From 4c8c0ce1935e8b3ef4d182d3c322275d7c23e1e1 Mon Sep 17 00:00:00 2001 From: QAston Date: Wed, 27 Jul 2011 21:23:15 +0200 Subject: Core/Spells: Use correct spell target in Spell::EffectEnvirinmentalDMG - fixes area damage of spells using this. --- src/server/game/Spells/SpellEffects.cpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'src') 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*/) -- cgit v1.2.3