aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2017-03-15 13:46:56 -0300
committerShauren <shauren.trinity@gmail.com>2019-08-17 20:04:14 +0200
commitf51a493dc87c4002aeea84b39679e7dbe379aca5 (patch)
tree9da58089d7f969d044469522a2a52e20d3a74c7f
parent586a450ec96ac982d134471ac51f960ab52bbadb (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.cpp6
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();