Core/SAI: Split set/remove unit_flags actions

Port From (https://github.com/TrinityCore/TrinityCore/commit/e80777cb39d5eb940348300aa2a6d42cede039a8)
This commit is contained in:
hondacrx
2022-05-29 23:06:21 -04:00
parent 6086ae63f3
commit ba7b2e42a3
2 changed files with 97 additions and 3 deletions
@@ -2458,6 +2458,48 @@ namespace Game.AI
break;
}
case SmartActions.SetImmunePC:
{
foreach (var target in targets)
{
if (IsUnit(target))
{
if (e.Action.setImmunePC.immunePC != 0)
target.ToUnit().AddUnitFlag(UnitFlags.ImmuneToPc);
else
target.ToUnit().RemoveUnitFlag(UnitFlags.ImmuneToPc);
}
}
break;
}
case SmartActions.SetImmuneNPC:
{
foreach (var target in targets)
{
if (IsUnit(target))
{
if (e.Action.setImmuneNPC.immuneNPC != 0)
target.ToUnit().AddUnitFlag(UnitFlags.ImmuneToNpc);
else
target.ToUnit().RemoveUnitFlag(UnitFlags.ImmuneToNpc);
}
}
break;
}
case SmartActions.SetUninteractible:
{
foreach (var target in targets)
{
if (IsUnit(target))
{
if (e.Action.setUninteractible.uninteractible != 0)
target.ToUnit().AddUnitFlag(UnitFlags.Uninteractible);
else
target.ToUnit().RemoveUnitFlag(UnitFlags.Uninteractible);
}
}
break;
}
case SmartActions.CreateConversation:
{
WorldObject baseObject = GetBaseObject();