Validate order targets when resolving orders.

This commit is contained in:
RoosterDragon
2023-07-20 18:36:40 +01:00
committed by Gustas
parent c08ddb61b3
commit 2ac855488b
8 changed files with 27 additions and 0 deletions

View File

@@ -1065,6 +1065,9 @@ namespace OpenRA.Mods.Common.Traits
var orderString = order.OrderString;
if (orderString == "Move")
{
if (!order.Target.IsValidFor(self))
return;
var cell = self.World.Map.Clamp(self.World.Map.CellContaining(order.Target.CenterPosition));
if (!Info.MoveIntoShroud && !self.Owner.Shroud.IsExplored(cell))
return;
@@ -1080,6 +1083,9 @@ namespace OpenRA.Mods.Common.Traits
}
else if (orderString == "Land")
{
if (!order.Target.IsValidFor(self))
return;
var cell = self.World.Map.Clamp(self.World.Map.CellContaining(order.Target.CenterPosition));
if (!Info.MoveIntoShroud && !self.Owner.Shroud.IsExplored(cell))
return;

View File

@@ -83,6 +83,9 @@ namespace OpenRA.Mods.Common.Traits
{
if (order.OrderString == "AttackMove" || order.OrderString == "AssaultMove")
{
if (!order.Target.IsValidFor(self))
return;
var cell = self.World.Map.Clamp(self.World.Map.CellContaining(order.Target.CenterPosition));
if (!Info.MoveIntoShroud && !self.Owner.Shroud.IsExplored(cell))
return;

View File

@@ -128,6 +128,9 @@ namespace OpenRA.Mods.Common.Traits
if (order.OrderString != OrderID)
return;
if (!order.Target.IsValidFor(self))
return;
if (!order.Queued)
Path.Clear();

View File

@@ -121,6 +121,9 @@ namespace OpenRA.Mods.Common.Traits
if (order.OrderString == "Move")
{
if (!order.Target.IsValidFor(self))
return;
var cell = self.World.Map.Clamp(self.World.Map.CellContaining(order.Target.CenterPosition));
if (!Info.MoveIntoShroud && !self.Owner.Shroud.IsExplored(cell))
return;

View File

@@ -112,6 +112,9 @@ namespace OpenRA.Mods.Common.Traits
if (order.OrderString == "Move")
{
if (!order.Target.IsValidFor(self))
return;
var cell = self.World.Map.Clamp(this.self.World.Map.CellContaining(order.Target.CenterPosition));
if (!Info.LocomotorInfo.MoveIntoShroud && !self.Owner.Shroud.IsExplored(cell))
return;

View File

@@ -348,6 +348,9 @@ namespace OpenRA.Mods.Common.Traits
{
if (order.OrderString == "DeliverUnit")
{
if (!order.Target.IsValidFor(self))
return;
var cell = self.World.Map.Clamp(self.World.Map.CellContaining(order.Target.CenterPosition));
if (!aircraftInfo.MoveIntoShroud && !self.Owner.Shroud.IsExplored(cell))
return;

View File

@@ -143,6 +143,9 @@ namespace OpenRA.Mods.Common.Traits
if (order.OrderString != "BeginMinefield" && order.OrderString != "PlaceMinefield" && order.OrderString != "PlaceMine")
return;
if (!order.Target.IsValidFor(self))
return;
var cell = self.World.Map.CellContaining(order.Target.CenterPosition);
if (order.OrderString == "BeginMinefield")
minefieldStart = cell;

View File

@@ -922,6 +922,9 @@ namespace OpenRA.Mods.Common.Traits
if (order.OrderString == "Move")
{
if (!order.Target.IsValidFor(self))
return;
var cell = self.World.Map.Clamp(this.self.World.Map.CellContaining(order.Target.CenterPosition));
if (!Info.LocomotorInfo.MoveIntoShroud && !self.Owner.Shroud.IsExplored(cell))
return;