public void RenderMap(MapSystem map) { for (int x = 0; x < map.mapRect.Width; x++) { for (int y = 0; y < map.mapRect.Height; y++) { if (map.isInFov[x, y] == true) { if (canvas[x, y].Effect != null && canvas[x, y].Effect != CellAppearances.HighlighEffect) { canvas[x, y].Effect.Clear(canvas[x, y]); canvas[x, y].Effect.Apply(canvas[x, y]); } switch (map.GetTile(x, y)) { case (TileType.Floor): { canvas.SetCellAppearance(x, y, CellAppearances.FloorFov); break; } case (TileType.Wall): { canvas.SetCellAppearance(x, y, CellAppearances.WallFov); break; } case (TileType.Corridor): { canvas.SetCellAppearance(x, y, CellAppearances.CorridorFov); break; } case (TileType.None): { break; } default: { break; } } } else if (map.isExplored[x, y]) { if (map.GetTile(x, y) != TileType.None) { canvas.SetEffect(x, y, CellAppearances.ExploredEffect); canvas[x, y].Effect.Apply(canvas[x, y]); } } } } if (map.IsValid(newHighlight)) { if (lastHighlight != null) { canvas.Clear(lastHighlight.X, lastHighlight.Y); } canvas[newHighlight.X, newHighlight.Y].Effect = CellAppearances.HighlighEffect; canvas[newHighlight.X, newHighlight.Y].Effect.Apply(canvas[newHighlight.X, newHighlight.Y]); lastHighlight = newHighlight; } }