diff options
author | ariel- <ariel-@users.noreply.github.com> | 2017-03-15 13:46:56 -0300 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2019-08-17 20:04:14 +0200 |
commit | f51a493dc87c4002aeea84b39679e7dbe379aca5 (patch) | |
tree | 9da58089d7f969d044469522a2a52e20d3a74c7f | |
parent | 586a450ec96ac982d134471ac51f960ab52bbadb (diff) |
Core/Auras: unregister AuraEffect from target list before changing amount, forces recalculation at stack change
Closes #19301
(cherrypicked from 9f2f7ebf51a587199ee7328761c5842c3f491e3b)
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 53452b767d6..77cc228683b 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -775,7 +775,10 @@ void AuraEffect::ChangeAmount(int32 newAmount, bool mark, bool onStackOrReapply) GetApplicationList(effectApplications); for (AuraApplication* aurApp : effectApplications) + { + aurApp->GetTarget()->_RegisterAuraEffect(this, false); HandleEffect(aurApp, handleMask, false); + } if (handleMask & AURA_EFFECT_HANDLE_CHANGE_AMOUNT) { @@ -787,7 +790,10 @@ void AuraEffect::ChangeAmount(int32 newAmount, bool mark, bool onStackOrReapply) } for (AuraApplication* aurApp : effectApplications) + { + aurApp->GetTarget()->_RegisterAuraEffect(this, true); HandleEffect(aurApp, handleMask, true); + } if (GetSpellInfo()->HasAttribute(SPELL_ATTR8_AURA_SEND_AMOUNT)) GetBase()->SetNeedClientUpdateForTargets(); |