Lay mines in order from start to end.
This commit is contained in:
@@ -41,9 +41,6 @@ namespace OpenRA.Mods.Cnc.Traits
|
||||
{
|
||||
public readonly MinelayerInfo Info;
|
||||
|
||||
// TODO: [Sync] when sync can cope with arrays!
|
||||
public CPos[] Minefield = null;
|
||||
|
||||
public readonly Sprite Tile;
|
||||
|
||||
[Sync]
|
||||
@@ -104,15 +101,16 @@ namespace OpenRA.Mods.Cnc.Traits
|
||||
if (order.OrderString == "BeginMinefield")
|
||||
minefieldStart = cell;
|
||||
else if (order.OrderString == "PlaceMine")
|
||||
self.QueueActivity(order.Queued, new LayMines(self, null));
|
||||
self.QueueActivity(order.Queued, new LayMines(self));
|
||||
else if (order.OrderString == "PlaceMinefield")
|
||||
{
|
||||
var movement = self.Trait<IPositionable>();
|
||||
|
||||
Minefield = GetMinefieldCells(minefieldStart, cell, Info.MinefieldDepth)
|
||||
.Where(p => movement.CanEnterCell(p, null, false)).ToArray();
|
||||
var minefield = GetMinefieldCells(minefieldStart, cell, Info.MinefieldDepth)
|
||||
.Where(c => movement.CanEnterCell(c, null, false))
|
||||
.OrderBy(c => (c - minefieldStart).LengthSquared).ToList();
|
||||
|
||||
self.QueueActivity(order.Queued, new LayMines(self, Minefield));
|
||||
self.QueueActivity(order.Queued, new LayMines(self, minefield));
|
||||
self.ShowTargetLines();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user