aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/server/game/Spells/SpellEffects.cpp16
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*/)