From 63ca4cac5e6edab3797cfdb21bbebfce88c800fe Mon Sep 17 00:00:00 2001 From: KayenEQ Date: Wed, 17 Sep 2014 05:14:10 -0400 Subject: [PATCH] Fix for calculation for SE_ManaAbsorbPercentDamage --- zone/attack.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/zone/attack.cpp b/zone/attack.cpp index a515a08c4..d52d2a6ba 100644 --- a/zone/attack.cpp +++ b/zone/attack.cpp @@ -3331,10 +3331,13 @@ int32 Mob::ReduceAllDamage(int32 damage) if(damage <= 0) return damage; - if(spellbonuses.ManaAbsorbPercentDamage[0] && (GetMana() > damage * spellbonuses.ManaAbsorbPercentDamage[0] / 100)) { - damage -= (damage * spellbonuses.ManaAbsorbPercentDamage[0] / 100); - SetMana(GetMana() - damage); - TryTriggerOnValueAmount(false, true); + if(spellbonuses.ManaAbsorbPercentDamage[0]) { + int32 mana_reduced = damage * spellbonuses.ManaAbsorbPercentDamage[0] / 100; + if (GetMana() >= mana_reduced){ + damage -= mana_reduced; + SetMana(GetMana() - mana_reduced); + TryTriggerOnValueAmount(false, true); + } } CheckNumHitsRemaining(NUMHIT_IncomingDamage);