Core/Spells: Check a few aura effects for determining if should be negative
Port From (https://github.com/TrinityCore/TrinityCore/commit/81154a7455fccdcc55e740f98d73face3adc8da4)
This commit is contained in:
@@ -3567,30 +3567,27 @@ namespace Game.Spells
|
|||||||
return true;
|
return true;
|
||||||
case AuraType.PeriodicTriggerSpellWithValue:
|
case AuraType.PeriodicTriggerSpellWithValue:
|
||||||
case AuraType.PeriodicTriggerSpellFromClient:
|
case AuraType.PeriodicTriggerSpellFromClient:
|
||||||
case AuraType.PeriodicTriggerSpell:
|
SpellInfo spellTriggeredProto = Global.SpellMgr.GetSpellInfo(effect.TriggerSpell, spellInfo.Difficulty);
|
||||||
if (!_isPositiveTarget(effect))
|
if (spellTriggeredProto != null)
|
||||||
{
|
{
|
||||||
SpellInfo spellTriggeredProto = Global.SpellMgr.GetSpellInfo(effect.TriggerSpell, spellInfo.Difficulty);
|
// negative targets of main spell return early
|
||||||
if (spellTriggeredProto != null)
|
foreach (var spellTriggeredEffect in spellTriggeredProto.GetEffects())
|
||||||
{
|
{
|
||||||
// negative targets of main spell return early
|
// already seen this
|
||||||
foreach (var spellTriggeredEffect in spellTriggeredProto.GetEffects())
|
if (visited.Contains(Tuple.Create(spellTriggeredProto, spellTriggeredEffect.EffectIndex)))
|
||||||
{
|
continue;
|
||||||
// already seen this
|
|
||||||
if (visited.Contains(Tuple.Create(spellTriggeredProto, spellTriggeredEffect.EffectIndex)))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (!spellTriggeredEffect.IsEffect())
|
if (!spellTriggeredEffect.IsEffect())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// if non-positive trigger cast targeted to positive target this main cast is non-positive
|
// if non-positive trigger cast targeted to positive target this main cast is non-positive
|
||||||
// this will place this spell auras as debuffs
|
// this will place this spell auras as debuffs
|
||||||
if (_isPositiveTarget(spellTriggeredEffect) && !_isPositiveEffectImpl(spellTriggeredProto, spellTriggeredEffect, visited))
|
if (_isPositiveTarget(spellTriggeredEffect) && !_isPositiveEffectImpl(spellTriggeredProto, spellTriggeredEffect, visited))
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case AuraType.PeriodicTriggerSpell:
|
||||||
case AuraType.ModStun:
|
case AuraType.ModStun:
|
||||||
case AuraType.Transform:
|
case AuraType.Transform:
|
||||||
case AuraType.ModDecreaseSpeed:
|
case AuraType.ModDecreaseSpeed:
|
||||||
|
|||||||
Reference in New Issue
Block a user