Core/Spells: Corrected unit flag checked with SPELL_ATTR6_CAN_TARGET_UNTARGETABLE

Port From (https://github.com/TrinityCore/TrinityCore/commit/61263bf74dfa6d8ee6e54b56f54a8b3e01c80140)
This commit is contained in:
hondacrx
2022-06-20 22:46:50 -04:00
parent 7d502f167d
commit b204754f51
+10 -4
View File
@@ -2510,7 +2510,10 @@ namespace Game.Entities
return false;
// can't attack untargetable
if ((bySpell == null || !bySpell.HasAttribute(SpellAttr6.CanTargetUntargetable)) && unitTarget != null && unitTarget.HasUnitFlag(UnitFlags.Uninteractible))
if ((bySpell == null || !bySpell.HasAttribute(SpellAttr6.CanTargetUntargetable)) && unitTarget != null && unitTarget.HasUnitFlag(UnitFlags.NonAttackable2))
return false;
if (unitTarget != null && unitTarget.HasUnitFlag(UnitFlags.Uninteractible))
return false;
Player playerAttacker = ToPlayer();
@@ -2521,7 +2524,7 @@ namespace Game.Entities
}
// check flags
if (unitTarget != null && unitTarget.HasUnitFlag(UnitFlags.NonAttackable | UnitFlags.OnTaxi | UnitFlags.NotAttackable1 | UnitFlags.NonAttackable2))
if (unitTarget != null && unitTarget.HasUnitFlag(UnitFlags.NonAttackable | UnitFlags.OnTaxi | UnitFlags.NotAttackable1))
return false;
Unit unitOrOwner = unit;
@@ -2668,11 +2671,14 @@ namespace Game.Entities
return false;
// can't assist untargetable
if ((bySpell == null || !bySpell.HasAttribute(SpellAttr6.CanTargetUntargetable)) && unitTarget && unitTarget.HasUnitFlag(UnitFlags.Uninteractible))
if ((bySpell == null || !bySpell.HasAttribute(SpellAttr6.CanTargetUntargetable)) && unitTarget != null && unitTarget.HasUnitFlag(UnitFlags.NonAttackable2))
return false;
if (unitTarget != null && unitTarget.HasUnitFlag(UnitFlags.Uninteractible))
return false;
// check flags for negative spells
if (isNegativeSpell && unitTarget != null && unitTarget.HasUnitFlag(UnitFlags.NonAttackable | UnitFlags.OnTaxi | UnitFlags.NotAttackable1 | UnitFlags.NonAttackable2))
if (isNegativeSpell && unitTarget != null && unitTarget.HasUnitFlag(UnitFlags.NonAttackable | UnitFlags.OnTaxi | UnitFlags.NotAttackable1))
return false;
if (isNegativeSpell || bySpell == null || !bySpell.HasAttribute(SpellAttr6.CanAssistImmunePc))