Core/Spells: Use correct spell target in Spell::EffectEnvirinmentalDMG - fixes area damage of spells using this.
This commit is contained in:
@@ -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*/)
|
||||||
|
|||||||
Reference in New Issue
Block a user