Don't draw mine overlay for single-cell fields.
This commit is contained in:
@@ -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<IPositionable>();
|
||||
|
||||
Minefield = GetMinefieldCells(minefieldStart, order.TargetLocation,
|
||||
self.Info.TraitInfo<MinelayerInfo>().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),
|
||||
|
||||
Reference in New Issue
Block a user