From 7ced76bab271f7fd1116455e2003d82d103e2854 Mon Sep 17 00:00:00 2001 From: ariel- Date: Thu, 27 Oct 2016 13:29:56 -0300 Subject: Core/Unit: fix logic error in DamageInfo::ModifyDamage. Previous code did not protect against m_damage underflow, rather only allow up to duplicate damage. It now should work as intended. Closes #18154 --- src/server/game/Entities/Unit/Unit.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index e9f20b1e01e..284a0503fa6 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -161,7 +161,8 @@ DamageInfo::DamageInfo(SpellNonMeleeDamage const& spellNonMeleeDamage, DamageEff void DamageInfo::ModifyDamage(int32 amount) { - amount = std::min(amount, int32(GetDamage())); + if (amount < 0) + amount = std::max(amount, static_cast(-GetDamage())); m_damage += amount; } -- cgit v1.2.3