aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Spells/Spell.cpp44
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))
{