From 56c0fda4e66e202630bb82016bd1e3fa19dfee8a Mon Sep 17 00:00:00 2001 From: hondacrx Date: Thu, 23 Sep 2021 19:09:49 -0400 Subject: [PATCH] Scripts/Spells: handle auras on unequipping scripted items Port From (https://github.com/TrinityCore/TrinityCore/commit/bc34fd2f6575aedb54a3779518a95671d225594a) --- Source/Scripts/Spells/Items.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Source/Scripts/Spells/Items.cs b/Source/Scripts/Spells/Items.cs index 1445e143b..ba4e28421 100644 --- a/Source/Scripts/Spells/Items.cs +++ b/Source/Scripts/Spells/Items.cs @@ -642,9 +642,15 @@ namespace Scripts.Spells.Items caster.CastSpell(target, spellId, new CastSpellExtraArgs(aurEff)); } + void OnRemove(AuraEffect aurEff, AuraEffectHandleModes mode) + { + GetTarget().RemoveAurasDueToSpell(SpellIds.MoteOfAnger); + } + public override void Register() { OnEffectProc.Add(new EffectProcHandler(HandleProc, 0, AuraType.Dummy)); + AfterEffectRemove.Add(new EffectApplyHandler(OnRemove, 0, AuraType.Dummy, AuraEffectHandleModes.Real)); } int _stackAmount; @@ -1831,10 +1837,16 @@ namespace Scripts.Spells.Items } } + void OnRemove(AuraEffect aurEff, AuraEffectHandleModes mode) + { + GetTarget().RemoveAurasDueToSpell(SpellIds.ShadowmourneSoulFragment); + } + public override void Register() { DoCheckProc.Add(new CheckProcHandler(CheckProc)); OnEffectProc.Add(new EffectProcHandler(HandleProc, 0, AuraType.Dummy)); + AfterEffectRemove.Add(new EffectApplyHandler(OnRemove, 0, AuraType.Dummy, AuraEffectHandleModes.Real)); } } @@ -3095,9 +3107,15 @@ namespace Scripts.Spells.Items caster.CastSpell(target, _triggerSpell, new CastSpellExtraArgs(aurEff)); } + void OnRemove(AuraEffect aurEff, AuraEffectHandleModes mode) + { + GetTarget().RemoveAurasDueToSpell(_stackSpell); + } + public override void Register() { OnEffectProc.Add(new EffectProcHandler(HandleProc, 0, AuraType.PeriodicTriggerSpell)); + AfterEffectRemove.Add(new EffectApplyHandler(OnRemove, 0, AuraType.PeriodicTriggerSpell, AuraEffectHandleModes.Real)); } uint _stackSpell;