diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Spell.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index b6fca5a0597..a5da4e0fe78 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -5344,7 +5344,14 @@ int32 Spell::CalculateDamageDone(Unit *unit, const uint32 effectMask, float *mul { if (effectMask & (1<<i)) { - damage = CalculateDamage(i, NULL) * m_damageMultipliers[i]; + if(m_applyMultiplierMask & (1 << i)) + { + damage = CalculateDamage(i, NULL) * m_damageMultipliers[i]; + m_damageMultipliers[i] *= multiplier[i]; + } + else + damage = CalculateDamage(i, NULL); + switch(m_spellInfo->Effect[i]) { case SPELL_EFFECT_SCHOOL_DAMAGE: @@ -5360,8 +5367,6 @@ int32 Spell::CalculateDamageDone(Unit *unit, const uint32 effectMask, float *mul SpellDamageHeal(i); break; } - if ( m_applyMultiplierMask & (1 << i) ) - m_damageMultipliers[i] *= multiplier[i]; } } return m_damage; |