aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-01-19 18:16:02 +0100
committerShauren <shauren.trinity@gmail.com>2023-01-19 18:16:02 +0100
commit835e2918319ed20109992086311a2c146140937f (patch)
tree34b8af99c62fb273db63c1878507a95436a5e6fd /src/server
parent593721ff1fc7bb20fa2667625f5d3848a0786c73 (diff)
Core/Auras: Fully remove auras that had all of their effect suppressed with immunity
Diffstat (limited to 'src/server')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 7e30092b6e6..a272a405c2a 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -4095,7 +4095,13 @@ void Unit::RemoveAurasWithMechanic(uint32 mechanicMaskToRemove, AuraRemoveMode r
}, removeMode);
for (Aura* aura : aurasToUpdateTargets)
+ {
aura->UpdateTargetMap(aura->GetCaster());
+
+ // Fully remove the aura if all effects were removed
+ if (!aura->IsPassive() && aura->GetOwner() == this && !aura->GetApplicationOfTarget(GetGUID()))
+ aura->Remove(removeMode);
+ }
}
void Unit::RemoveAurasByShapeShift()