Remove Order.TargetLocation from Minelayer.
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user