aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/SpellEffects.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 51fd904caa4..6d1e0cbe581 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -1274,6 +1274,12 @@ void Spell::EffectHealthLeech()
float healMultiplier = effectInfo->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);