diff options
| author | Gildor <gildor55@gmail.com> | 2019-05-24 21:44:26 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-12-07 00:31:48 +0100 |
| commit | 9752ef4d6ea311acb6a60317c270cb5c053f951d (patch) | |
| tree | 3a18729ec758f872c3fb3afc3fa400ac6fe99e40 /src/server/game/Spells/SpellEffects.cpp | |
| parent | 6034992dffbbd511f59e77c13285da282d9c737d (diff) | |
Core/Spells: Fix spells with Health Leech effect, now check damage absorb when calculate Heal (#23312)
Closes: #23311
(cherry picked from commit ad89472fe3512b4a5f4160240154fd5b11a3b07c)
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
| -rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 6 |
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); |
