aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2017-03-15 13:46:56 -0300
committerariel- <ariel-@users.noreply.github.com>2017-03-15 13:46:56 -0300
commit9f2f7ebf51a587199ee7328761c5842c3f491e3b (patch)
treea99d2c8e2c12e6ece3cafe0e1fe0e8f984b938dd
parent5eac21098efa35f3c6807a57bc44cc887c0cbc6a (diff)
Core/Auras: unregister AuraEffect from target list before changing amount, forces recalculation at stack change
Closes #19301
-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 7269e61db5f..a038d52e418 100644
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -611,7 +611,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)
{
@@ -623,7 +626,10 @@ void AuraEffect::ChangeAmount(int32 newAmount, bool mark, bool onStackOrReapply)
}
for (AuraApplication* aurApp : effectApplications)
+ {
+ aurApp->GetTarget()->_RegisterAuraEffect(this, true);
HandleEffect(aurApp, handleMask, true);
+ }
}
void AuraEffect::HandleEffect(AuraApplication * aurApp, uint8 mode, bool apply)