diff options
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index d68d4587d56..d845ee76b22 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -790,6 +790,50 @@ void Spell::prepareDataForTriggerSystem(AuraEffect const * /*triggeredByAura*/) to prevent chain proc of these spells */ + switch (m_spellInfo->SpellFamilyName) + { + case SPELLFAMILY_MAGE: + { + // Blizzard - trigger as DOT + if (m_spellInfo->SpellFamilyFlags[0] & 0x80) + { + m_procAttacker = PROC_FLAG_ON_DO_PERIODIC; + m_procVictim = PROC_FLAG_ON_TAKE_PERIODIC; + } + break; + } + case SPELLFAMILY_WARLOCK: + { + // For Hellfire Effect / Rain of Fire - trigger as DOT + if (m_spellInfo->SpellFamilyFlags[0] & 0x60) + { + m_procAttacker = PROC_FLAG_ON_DO_PERIODIC; + m_procVictim = PROC_FLAG_ON_TAKE_PERIODIC; + } + break; + } + case SPELLFAMILY_HUNTER: + { + // Volley - trigger as DOT + if (m_spellInfo->SpellFamilyFlags[0] & 0x0002000) + { + m_procAttacker = PROC_FLAG_ON_DO_PERIODIC; + m_procVictim = PROC_FLAG_ON_TAKE_PERIODIC; + } + break; + } + case SPELLFAMILY_DRUID: + { + // Hurricane - trigger as DOT + if (m_spellInfo->SpellFamilyFlags[0] & 0x0400000) + { + m_procAttacker = PROC_FLAG_ON_DO_PERIODIC; + m_procVictim = PROC_FLAG_ON_TAKE_PERIODIC; + } + break; + } + } + // Ranged autorepeat attack is set as triggered spell - ignore it if (!(m_procAttacker & PROC_FLAG_SUCCESSFUL_RANGED_HIT)) { |