aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-10-15 14:20:50 +0200
committerShauren <shauren.trinity@gmail.com>2023-10-15 14:20:50 +0200
commitd028bb0e374acfc635b2f6f224f5732d3bfa13fd (patch)
tree385425bd771fe92dd33ca71d71238d6f9173bec5 /src/server/game/Spells
parenta85dcb6fc1e8008fe6808117ba474da8dee32787 (diff)
Core/Auras: Implemented SPELL_ATTR7_DISABLE_AURA_WHILE_DEAD (suppress aura applications while dead without removing the aura)
(cherry picked from commit 0f7dd4eadf90a5407fd232d083485430d725152f)
Diffstat (limited to 'src/server/game/Spells')
-rw-r--r--src/server/game/Spells/Auras/SpellAuras.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp
index 48b281c3647..1b12ecf3362 100644
--- a/src/server/game/Spells/Auras/SpellAuras.cpp
+++ b/src/server/game/Spells/Auras/SpellAuras.cpp
@@ -2597,6 +2597,9 @@ void UnitAura::Remove(AuraRemoveMode removeMode)
void UnitAura::FillTargetMap(std::unordered_map<Unit*, uint8>& targets, Unit* caster)
{
+ if (GetSpellInfo()->HasAttribute(SPELL_ATTR7_DISABLE_AURA_WHILE_DEAD) && !GetUnitOwner()->IsAlive())
+ return;
+
Unit* ref = caster;
if (!ref)
ref = GetUnitOwner();