From fea35923f0faa86139dcb94ccbfbb762c4d0a0a7 Mon Sep 17 00:00:00 2001 From: "Ian T. Jacobsen" Date: Thu, 14 May 2020 17:15:36 +0200 Subject: [PATCH] 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 --- OpenRA.Mods.Cnc/Traits/Minelayer.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/OpenRA.Mods.Cnc/Traits/Minelayer.cs b/OpenRA.Mods.Cnc/Traits/Minelayer.cs index f7f0f04600..1c7d7911c4 100644 --- a/OpenRA.Mods.Cnc/Traits/Minelayer.cs +++ b/OpenRA.Mods.Cnc/Traits/Minelayer.cs @@ -115,7 +115,8 @@ namespace OpenRA.Mods.Cnc.Traits var movement = self.Trait(); 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(); self.QueueActivity(order.Queued, new LayMines(self, minefield)); @@ -236,7 +237,9 @@ namespace OpenRA.Mods.Cnc.Traits foreach (var c in minefield) { var tile = tileOk; - if (world.FogObscures(c)) + if (!world.Map.Contains(c)) + tile = tileBlocked; + else if (world.FogObscures(c)) tile = tileUnknown; else if (!movement.CanEnterCell(c, null, BlockedByActor.Immovable) || (mobile != null && !mobile.CanStayInCell(c))) tile = tileBlocked;