Remove Order.TargetLocation from Minelayer.

This commit is contained in:
Paul Chote
2019-02-22 20:04:47 +00:00
parent 9c4231165b
commit f70a452c56

View File

@@ -89,22 +89,24 @@ namespace OpenRA.Mods.Cnc.Traits
void IResolveOrder.ResolveOrder(Actor self, Order order) void IResolveOrder.ResolveOrder(Actor self, Order order)
{ {
if (order.OrderString == "BeginMinefield") if (order.OrderString != "BeginMinefield" && order.OrderString != "PlaceMinefield" && order.OrderString != "PlaceMine")
minefieldStart = order.TargetLocation; return;
if (order.OrderString == "PlaceMine") var cell = self.World.Map.CellContaining(order.Target.CenterPosition);
if (order.OrderString == "BeginMinefield")
minefieldStart = cell;
else if (order.OrderString == "PlaceMine")
{ {
minefieldStart = order.TargetLocation; minefieldStart = cell;
Minefield = new CPos[] { order.TargetLocation }; Minefield = new[] { cell };
self.CancelActivity(); self.CancelActivity();
self.QueueActivity(new LayMines(self)); self.QueueActivity(new LayMines(self));
} }
else if (order.OrderString == "PlaceMinefield")
if (order.OrderString == "PlaceMinefield")
{ {
var movement = self.Trait<IPositionable>(); var movement = self.Trait<IPositionable>();
Minefield = GetMinefieldCells(minefieldStart, order.TargetLocation, info.MinefieldDepth) Minefield = GetMinefieldCells(minefieldStart, cell, info.MinefieldDepth)
.Where(p => movement.CanEnterCell(p, null, false)).ToArray(); .Where(p => movement.CanEnterCell(p, null, false)).ToArray();
if (Minefield.Length == 1 && Minefield[0] != self.Location) if (Minefield.Length == 1 && Minefield[0] != self.Location)