From 273e7fc45b625a05346dc4225840078480066edd Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 18 Oct 2025 11:35:38 +0200 Subject: [PATCH] Core/Spells: Remove stealth auras by dispel type when handling SPELL_ATTR1_FAILURE_BREAKS_STEALTH instead of picking a random interrupt flag that stealth has --- src/server/game/Spells/Spell.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 986c8376a00..c4260860fb3 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -2948,7 +2948,10 @@ void Spell::TargetInfo::DoDamageAndTriggers(Spell* spell) if (MissCondition == SPELL_MISS_RESIST && spell->m_spellInfo->HasAttribute(SPELL_ATTR1_FAILURE_BREAKS_STEALTH) && spell->unitTarget->GetTypeId() == TYPEID_UNIT) { Unit* unitCaster = ASSERT_NOTNULL(spell->m_caster->ToUnit()); - unitCaster->RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags::Interacting); + unitCaster->RemoveAppliedAuras([](AuraApplication const* aurApp) + { + return aurApp->GetBase()->GetSpellInfo()->Dispel == DISPEL_STEALTH; + }); spell->unitTarget->ToCreature()->EngageWithTarget(unitCaster); } }