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;