public void RevealShroud(Point point) { if (!ShroudActive) { return; } // start simple, reveal in all directions var minX = GetSafeXValue(point.X - ShroudRevealDistance); var minY = GetSafeYValue(point.Y - ShroudRevealDistance); var maxX = GetSafeXValue(point.X + ShroudRevealDistance); var maxY = GetSafeYValue(point.Y + ShroudRevealDistance); for (var x = minX; x <= maxX; x++) { for (var y = minY; y <= maxY; y++) { var p = new Point(x, y); if (!ShroudRevealedPoints.Contains(p)) { ShroudRevealedPoints.Add(p); } } } }