Minefield now shows red when out of map bounds and Minelayer now does not get stuck at edge of map

Made it impossible to detect enemy units again

Fix whitespace
This commit is contained in:
Ian T. Jacobsen
2020-05-14 17:15:36 +02:00
committed by abcdefg30
parent 9627776318
commit fea35923f0

View File

@@ -115,7 +115,8 @@ namespace OpenRA.Mods.Cnc.Traits
var movement = self.Trait<IPositionable>(); var movement = self.Trait<IPositionable>();
var minefield = GetMinefieldCells(minefieldStart, cell, Info.MinefieldDepth) var minefield = GetMinefieldCells(minefieldStart, cell, Info.MinefieldDepth)
.Where(c => movement.CanEnterCell(c, null, BlockedByActor.Immovable) || !self.Owner.Shroud.IsVisible(c)) .Where(c => movement.CanEnterCell(c, null, BlockedByActor.Immovable)
|| (!self.Owner.Shroud.IsVisible(c) && self.World.Map.Contains(c)))
.OrderBy(c => (c - minefieldStart).LengthSquared).ToList(); .OrderBy(c => (c - minefieldStart).LengthSquared).ToList();
self.QueueActivity(order.Queued, new LayMines(self, minefield)); self.QueueActivity(order.Queued, new LayMines(self, minefield));
@@ -236,7 +237,9 @@ namespace OpenRA.Mods.Cnc.Traits
foreach (var c in minefield) foreach (var c in minefield)
{ {
var tile = tileOk; var tile = tileOk;
if (world.FogObscures(c)) if (!world.Map.Contains(c))
tile = tileBlocked;
else if (world.FogObscures(c))
tile = tileUnknown; tile = tileUnknown;
else if (!movement.CanEnterCell(c, null, BlockedByActor.Immovable) || (mobile != null && !mobile.CanStayInCell(c))) else if (!movement.CanEnterCell(c, null, BlockedByActor.Immovable) || (mobile != null && !mobile.CanStayInCell(c)))
tile = tileBlocked; tile = tileBlocked;