diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-07-26 22:46:52 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-07-26 22:46:52 +0200 |
commit | c850e2f7801fecd9a56d88dda1fc60e27fd30bdf (patch) | |
tree | cebd4656d39fe2a46e1ae1337722440fbceddfb5 /src | |
parent | 43644e4c296dc2036c4cea81854e79c76d81de81 (diff) |
Core/Auras: Check min power instead of 0 for SPELL_AURA_OBS_MOD_POWER
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 37be9a553c7..6d138b02b10 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -6007,10 +6007,16 @@ void AuraEffect::HandleObsModPowerAuraTick(Unit* target, Unit* caster) const // don't regen when permanent aura and limit is already reached if (GetBase()->IsPermanent()) { - if ((target->GetPower(powerType) == target->GetMaxPower(powerType) && GetAmount() > 0) - || (target->GetPower(powerType) == 0 && GetAmount() < 0)) - return; + if (GetAmount() >= 0) + { + if (target->GetPower(powerType) >= target->GetMaxPower(powerType)) + return; + } + else + if (target->GetPower(powerType) <= target->GetMinPower(powerType)) + return; } + int32 amount = GetAmount() * target->GetMaxPower(powerType) / 100; TC_LOG_DEBUG("spells.aura.effect", "PeriodicTick: {} energize {} for {} dmg inflicted by {}", GetCasterGUID().ToString(), target->GetGUID().ToString(), amount, GetId()); |