diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-02-05 20:35:13 +0100 |
---|---|---|
committer | Ovahlord <dreadkiller@gmx.de> | 2025-02-08 22:05:29 +0100 |
commit | 4d0439ca1beed71271f0e486506fb89b9c4ca5dc (patch) | |
tree | 6a22cb83e653bdc73b91865a149368574db7cbdf /src/server | |
parent | 162e724e2e0bea54ab0de46a80f066df4bb2d1b9 (diff) |
Core/Auras: Ensure aura target of SPELL_AURA_TRIGGER_SPELL_ON_POWER_PCT has required power type
Closes #30669
(cherry picked from commit fc54ae79a95bc162bd0ceec199561af873576a23)
Diffstat (limited to 'src/server')
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 3 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 4a4d7944e33..bb3439d96ec 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -9759,6 +9759,9 @@ void Unit::TriggerOnPowerChangeAuras(Powers power, int32 oldVal, int32 newVal) if (effect->GetAuraType() == SPELL_AURA_TRIGGER_SPELL_ON_POWER_PCT) { int32 maxPower = GetMaxPower(power); + if (!maxPower) + continue; + oldValueCheck = GetPctOf(oldVal, maxPower); newValueCheck = GetPctOf(newVal, maxPower); } diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 20ca17156fa..15a8a1cd0de 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -5255,7 +5255,11 @@ void AuraEffect::HandleTriggerSpellOnPowerPercent(AuraApplication const* aurApp, int32 effectAmount = GetAmount(); uint32 triggerSpell = GetSpellEffectInfo().TriggerSpell; - float powerAmountPct = GetPctOf(target->GetPower(Powers(GetMiscValue())), target->GetMaxPower(Powers(GetMiscValue()))); + int32 maxPower = target->GetMaxPower(Powers(GetMiscValue())); + if (!maxPower) + return; + + float powerAmountPct = GetPctOf(target->GetPower(Powers(GetMiscValue())), maxPower); switch (AuraTriggerOnPowerChangeDirection(GetMiscValueB())) { |