diff options
-rw-r--r-- | src/game/SpellAuraEffects.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/game/SpellAuraEffects.cpp b/src/game/SpellAuraEffects.cpp index d12817eaef2..3adfe15d746 100644 --- a/src/game/SpellAuraEffects.cpp +++ b/src/game/SpellAuraEffects.cpp @@ -4679,8 +4679,13 @@ void AuraEffect::HandleAuraModIncreaseEnergy(AuraApplication const * aurApp, uin // Special case with temporary increase max/current power (percent) if (GetId()==64904) // Hymn of Hope { - if(mode & AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK) - target->SetPower(powerType, apply ? GetAmount() + target->GetPower(powerType) : target->GetPower(powerType) - GetAmount()); + if (mode & AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK) + { + int32 change = target->GetPower(powerType) + (apply ? GetAmount() : -GetAmount()); + if (change < 0) + change = 0; + target->SetPower(powerType, change); + } } // generic flat case |