diff options
author | QAston <qaston@gmail.com> | 2011-07-27 21:23:15 +0200 |
---|---|---|
committer | QAston <qaston@gmail.com> | 2011-07-27 21:23:15 +0200 |
commit | 4c8c0ce1935e8b3ef4d182d3c322275d7c23e1e1 (patch) | |
tree | bf0ea7e04eaa451b7c7a54bdc44ddd465d98f803 | |
parent | 46851c3fda1405bb4195f6b66478cb0661604b15 (diff) |
Core/Spells: Use correct spell target in Spell::EffectEnvirinmentalDMG - fixes area damage of spells using this.
-rwxr-xr-x | src/server/game/Spells/SpellEffects.cpp | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index d270d6741fe..2e8f9960a63 100755 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -283,19 +283,17 @@ void Spell::EffectInstaKill(SpellEffIndex /*effIndex*/) void Spell::EffectEnvirinmentalDMG(SpellEffIndex effIndex) { + if (!unitTarget || !unitTarget->isAlive()) + return; + uint32 absorb = 0; uint32 resist = 0; - // Note: this hack with damage replace required until GO casting not implemented - // environment damage spells already have around enemies targeting but this not help in case not existed GO casting support - // currently each enemy selected explicitly and self cast damage, we prevent apply self casted spell bonuses/etc - damage = m_spellInfo->Effects[effIndex].CalcValue(m_caster); + m_caster->CalcAbsorbResist(unitTarget, m_spellInfo->GetSchoolMask(), SPELL_DIRECT_DAMAGE, damage, &absorb, &resist, m_spellInfo); - m_caster->CalcAbsorbResist(m_caster, m_spellInfo->GetSchoolMask(), SPELL_DIRECT_DAMAGE, damage, &absorb, &resist, m_spellInfo); - - m_caster->SendSpellNonMeleeDamageLog(m_caster, m_spellInfo->Id, damage, m_spellInfo->GetSchoolMask(), absorb, resist, false, 0, false); - if (m_caster->GetTypeId() == TYPEID_PLAYER) - m_caster->ToPlayer()->EnvironmentalDamage(DAMAGE_FIRE, damage); + m_caster->SendSpellNonMeleeDamageLog(unitTarget, m_spellInfo->Id, damage, m_spellInfo->GetSchoolMask(), absorb, resist, false, 0, false); + if (unitTarget->GetTypeId() == TYPEID_PLAYER) + unitTarget->ToPlayer()->EnvironmentalDamage(DAMAGE_FIRE, damage); } void Spell::EffectSchoolDMG(SpellEffIndex /*effIndex*/) |