private static void AddFullWall() { for (int i = 0; i < MapTiles[0].Length - 1; i++) { MapTiles[0][i] = new UnbreakableWallTile(new Position(i, 0)); } MapTiles[0][MapTiles[0].Length - 1] = new EmptyNewLineTile(); for (int i = 0; i < MapTiles[0].Length - 1; i++) { MapTiles[MapTiles.Length - 1][i] = new UnbreakableWallTile(new Position(i, MapTiles.Length - 1)); } MapTiles[MapTiles.Length - 1][MapTiles[0].Length - 1] = new EmptyNewLineTile(); }
private static void SetTile(ref int x, int y) { char currentCharacter = characters[random.Next(0, characters.Count)]; ITile tile = null; Position position = new Position(x, y); switch (currentCharacter) { case Constants.TreasureLeftChar: if (x < Map.MapTiles[y].Length - 3 || (y == 1 && x == 1)) { tile = new TreasureChestTile(x, x + 1, y); Map.MapTiles[y][x] = tile; Map.MapTiles[y][x + 1] = tile; x += 1; return; } else { x -= 1; return; } case Constants.MonsterChar: int power = new Random().Next(1, 4); if (power == 2) { tile = new MonsterMediumTile(power, position); } else { tile = new MonsterWeakTile(1, position); } break; case Constants.MonsterStrongChar: tile = new MonsterStrongTile(3, position); break; case Constants.BonusLifeChar: tile = new BonusLifeTile(new Random().Next(1, 6), position); break; case Constants.NextLevelChar: if (nextMapTileGenerated) { x -= 1; return; } else { tile = new NextLevelTile(position); nextMapTileGenerated = true; } break; case Constants.FreeSpaceChar: tile = new EmptySpaceTile(); break; case Constants.WallChar: tile = new WallTile(position); break; case Constants.UnbreakableWallChar: tile = new UnbreakableWallTile(position); break; case Constants.QuestGiverChar: if (questGiverTileGenerated) { x -= 1; return; } tile = new QuestGiver(position); questGiverTileGenerated = true; break; } Map.MapTiles[y][x] = tile; }