From 78aaa136cc1aa728674cc1b0138842f7bf06ae53 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Sat, 15 Jun 2024 13:43:30 -0300 Subject: [PATCH] fix(Scripts/BlackTemple): Fix Free Friend spell (#19065) --- src/server/game/Spells/Auras/SpellAuraEffects.cpp | 1 + .../Outland/BlackTemple/instance_black_temple.cpp | 12 ++---------- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 2d0c5c76f..16000a27b 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -4146,6 +4146,7 @@ void AuraEffect::HandleModMechanicImmunity(AuraApplication const* aurApp, uint8 case 34471: // The Beast Within case 19574: // Bestial Wrath case 38484: // Bestial Wrath + case 40081: // Free friend (Black Temple) mechanic = IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK; target->ApplySpellImmune(GetId(), IMMUNITY_MECHANIC, MECHANIC_CHARM, apply); target->ApplySpellImmune(GetId(), IMMUNITY_MECHANIC, MECHANIC_DISORIENTED, apply); diff --git a/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp b/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp index 175437358..75dbcd67a 100644 --- a/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp +++ b/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp @@ -253,16 +253,8 @@ public: void HandleScriptEffect(SpellEffIndex effIndex) { PreventHitDefaultEffect(effIndex); - Unit* target = GetHitUnit(); - if (!target) - return; - - target->RemoveAurasDueToSpell(SPELL_AURA_MOD_CHARM); - target->RemoveAurasDueToSpell(SPELL_AURA_MOD_STUN); - target->RemoveAurasDueToSpell(SPELL_AURA_MOD_DECREASE_SPEED); - target->RemoveAurasDueToSpell(SPELL_AURA_MOD_ROOT); - target->RemoveAurasDueToSpell(SPELL_AURA_MOD_CONFUSE); - target->RemoveAurasDueToSpell(SPELL_AURA_MOD_FEAR); + if (Unit* target = GetHitUnit()) + target->RemoveAurasWithMechanic(IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK); } void Register() override