From facb5c89a11c63e8b73146ac18b66dfeb6342bc7 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Mon, 28 Feb 2022 14:06:44 -0500 Subject: [PATCH] Core/Spells: Check a few aura effects for determining if should be negative Port From (https://github.com/TrinityCore/TrinityCore/commit/81154a7455fccdcc55e740f98d73face3adc8da4) --- Source/Game/Spells/SpellInfo.cs | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/Source/Game/Spells/SpellInfo.cs b/Source/Game/Spells/SpellInfo.cs index 770d7f1a4..fc44c57fe 100644 --- a/Source/Game/Spells/SpellInfo.cs +++ b/Source/Game/Spells/SpellInfo.cs @@ -3567,30 +3567,27 @@ namespace Game.Spells return true; case AuraType.PeriodicTriggerSpellWithValue: case AuraType.PeriodicTriggerSpellFromClient: - case AuraType.PeriodicTriggerSpell: - if (!_isPositiveTarget(effect)) + SpellInfo spellTriggeredProto = Global.SpellMgr.GetSpellInfo(effect.TriggerSpell, spellInfo.Difficulty); + if (spellTriggeredProto != null) { - SpellInfo spellTriggeredProto = Global.SpellMgr.GetSpellInfo(effect.TriggerSpell, spellInfo.Difficulty); - if (spellTriggeredProto != null) + // negative targets of main spell return early + foreach (var spellTriggeredEffect in spellTriggeredProto.GetEffects()) { - // negative targets of main spell return early - foreach (var spellTriggeredEffect in spellTriggeredProto.GetEffects()) - { - // already seen this - if (visited.Contains(Tuple.Create(spellTriggeredProto, spellTriggeredEffect.EffectIndex))) - continue; + // already seen this + if (visited.Contains(Tuple.Create(spellTriggeredProto, spellTriggeredEffect.EffectIndex))) + continue; - if (!spellTriggeredEffect.IsEffect()) - continue; + if (!spellTriggeredEffect.IsEffect()) + continue; - // if non-positive trigger cast targeted to positive target this main cast is non-positive - // this will place this spell auras as debuffs - if (_isPositiveTarget(spellTriggeredEffect) && !_isPositiveEffectImpl(spellTriggeredProto, spellTriggeredEffect, visited)) - return false; - } + // if non-positive trigger cast targeted to positive target this main cast is non-positive + // this will place this spell auras as debuffs + if (_isPositiveTarget(spellTriggeredEffect) && !_isPositiveEffectImpl(spellTriggeredProto, spellTriggeredEffect, visited)) + return false; } - } + } break; + case AuraType.PeriodicTriggerSpell: case AuraType.ModStun: case AuraType.Transform: case AuraType.ModDecreaseSpeed: