aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/3943_world_spell_proc_event.sql8
-rw-r--r--sql/world_spell_full.sql3
-rw-r--r--src/game/SpellAuras.cpp6
-rw-r--r--src/game/Unit.cpp7
4 files changed, 23 insertions, 1 deletions
diff --git a/sql/updates/3943_world_spell_proc_event.sql b/sql/updates/3943_world_spell_proc_event.sql
new file mode 100644
index 00000000000..5776d411995
--- /dev/null
+++ b/sql/updates/3943_world_spell_proc_event.sql
@@ -0,0 +1,8 @@
+DELETE FROM `spell_proc_event` WHERE `entry` IN (52610);
+INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
+(52610, 0x00, 7, 0x80000000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0); -- Savage roar
+
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (52610, -52610);
+INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comment`) VALUES
+( 52610, 62071, 0, 'Savage Roar'),
+( -52610, -62071, 0, 'Savage Roar'); \ No newline at end of file
diff --git a/sql/world_spell_full.sql b/sql/world_spell_full.sql
index 0ca4fc884d1..61456af0c4a 100644
--- a/sql/world_spell_full.sql
+++ b/sql/world_spell_full.sql
@@ -78,6 +78,9 @@ INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comm
( 32391, 60468, 2, 'Shadow Embrace Rank5'),
( 33206, 44416, 2, 'Pain Suppression (threat)'),
( 50720, 59665, 0, 'Vigilance (redirect threat)'),
+( 52610, 62071, 0, 'Savage Roar'),
+( -52610, -62071, 0, 'Savage Roar'),
+
-- Creature
( 36574, 36650, 0, 'Apply Phase Slip Vulnerability'),
-- instance
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index bd49f494b26..cbfebbb065c 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -398,6 +398,11 @@ m_auraSlot(MAX_AURAS), m_auraLevel(1), m_procCharges(0), m_stackAmount(1),m_aura
if(!m_permanent && modOwner)
{
+ // Glyph of Thorns
+ if (m_target == caster && m_spellProto->SpellFamilyName==SPELLFAMILY_DRUID && m_spellProto->SpellFamilyFlags[0] & 0x100)
+ if (AuraEffect * aurEff = m_target->GetDummyAura(57862))
+ m_maxduration += aurEff->GetAmount() * MINUTE * IN_MILISECONDS;
+
modOwner->ApplySpellMod(GetId(), SPELLMOD_DURATION, m_maxduration);
// Get zero duration aura after - need set m_maxduration > 0 for apply/remove aura work
if (m_maxduration<=0)
@@ -2754,7 +2759,6 @@ void AuraEffect::HandleAuraDummy(bool apply, bool Real, bool changeAmount)
return;
}
}
-
// Lifebloom
if ( GetSpellProto()->SpellFamilyFlags[1] & 0x10 )
{
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index ca478a42c9e..4c1022d4ae9 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -5814,6 +5814,13 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
{
switch(dummySpell->Id)
{
+ // Savage Roar (aura recast on return to cat form)
+ case 52610:
+ {
+ target = this;
+ triggered_spell_id = 62071;
+ break;
+ }
// Leader of the Pack
case 24932:
{