diff --git a/OpenRA.Mods.Cnc/Traits/Minelayer.cs b/OpenRA.Mods.Cnc/Traits/Minelayer.cs index 94fb21f3c6..1beda661c9 100644 --- a/OpenRA.Mods.Cnc/Traits/Minelayer.cs +++ b/OpenRA.Mods.Cnc/Traits/Minelayer.cs @@ -11,6 +11,7 @@ using System; using System.Collections.Generic; +using System.Drawing; using System.Linq; using OpenRA.Graphics; using OpenRA.Mods.Cnc.Activities; @@ -102,10 +103,12 @@ namespace OpenRA.Mods.Cnc.Traits { var movement = self.Trait(); - Minefield = GetMinefieldCells(minefieldStart, order.TargetLocation, - self.Info.TraitInfo().MinefieldDepth) + Minefield = GetMinefieldCells(minefieldStart, order.TargetLocation, info.MinefieldDepth) .Where(p => movement.CanEnterCell(p, null, false)).ToArray(); + if (Minefield.Length == 1 && Minefield[0] != self.Location) + self.SetTargetLine(Target.FromCell(self.World, Minefield[0]), Color.Red); + self.CancelActivity(); self.QueueActivity(new LayMines(self)); } @@ -143,6 +146,10 @@ namespace OpenRA.Mods.Cnc.Traits if (self.Owner != self.World.LocalPlayer || Minefield == null) yield break; + // Single-cell mine fields use a target line instead + if (Minefield.Length == 1) + yield break; + var pal = wr.Palette(TileSet.TerrainPaletteInternalName); foreach (var c in Minefield) yield return new SpriteRenderable(tile, self.World.Map.CenterOfCell(c),