From ad89472fe3512b4a5f4160240154fd5b11a3b07c Mon Sep 17 00:00:00 2001 From: Gildor Date: Fri, 24 May 2019 21:44:26 +0200 Subject: Core/Spells: Fix spells with Health Leech effect, now check damage absorb when calculate Heal (#23312) Closes: #23311 --- src/server/game/Spells/SpellEffects.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src') diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 23539d25bb6..ffa990f9191 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -1437,6 +1437,12 @@ void Spell::EffectHealthLeech(SpellEffIndex effIndex) float healMultiplier = m_spellInfo->Effects[effIndex].CalcValueMultiplier(unitCaster, this); m_damage += damage; + + DamageInfo damageInfo(unitCaster, unitTarget, damage, m_spellInfo, m_spellInfo->GetSchoolMask(), SPELL_DIRECT_DAMAGE, BASE_ATTACK); + Unit::CalcAbsorbResist(damageInfo); + uint32 const absorb = damageInfo.GetAbsorb(); + damage -= absorb; + // get max possible damage, don't count overkill for heal uint32 healthGain = uint32(-unitTarget->GetHealthGain(-damage) * healMultiplier); -- cgit v1.2.3