Core/Spells: Use correct spell target in Spell::EffectEnvirinmentalDMG - fixes area damage of spells using this.

This commit is contained in:
QAston
2011-07-27 21:23:15 +02:00
parent 46851c3fda
commit 4c8c0ce193
+7 -9
View File
@@ -283,19 +283,17 @@ void Spell::EffectInstaKill(SpellEffIndex /*effIndex*/)
void Spell::EffectEnvirinmentalDMG(SpellEffIndex effIndex) void Spell::EffectEnvirinmentalDMG(SpellEffIndex effIndex)
{ {
if (!unitTarget || !unitTarget->isAlive())
return;
uint32 absorb = 0; uint32 absorb = 0;
uint32 resist = 0; uint32 resist = 0;
// Note: this hack with damage replace required until GO casting not implemented m_caster->CalcAbsorbResist(unitTarget, m_spellInfo->GetSchoolMask(), SPELL_DIRECT_DAMAGE, damage, &absorb, &resist, m_spellInfo);
// 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(m_caster, m_spellInfo->GetSchoolMask(), SPELL_DIRECT_DAMAGE, damage, &absorb, &resist, m_spellInfo); m_caster->SendSpellNonMeleeDamageLog(unitTarget, m_spellInfo->Id, damage, m_spellInfo->GetSchoolMask(), absorb, resist, false, 0, false);
if (unitTarget->GetTypeId() == TYPEID_PLAYER)
m_caster->SendSpellNonMeleeDamageLog(m_caster, m_spellInfo->Id, damage, m_spellInfo->GetSchoolMask(), absorb, resist, false, 0, false); unitTarget->ToPlayer()->EnvironmentalDamage(DAMAGE_FIRE, damage);
if (m_caster->GetTypeId() == TYPEID_PLAYER)
m_caster->ToPlayer()->EnvironmentalDamage(DAMAGE_FIRE, damage);
} }
void Spell::EffectSchoolDMG(SpellEffIndex /*effIndex*/) void Spell::EffectSchoolDMG(SpellEffIndex /*effIndex*/)