public r_5x5_002(bool rotate) { this.rotate = rotate; treasures = new List <Treasure> (); char[,] defGrid; if (!rotate) { defGrid = new char[5, 5] { { ' ', 'w', ' ', 'w', ' ' }, { ' ', 'w', 'T', 'w', ' ' }, { ' ', 'w', 'w', 'w', ' ' }, { ' ', 'w', 'T', 'w', ' ' }, { ' ', ' ', ' ', ' ', ' ' } }; treasures.Add(new Treasure(new Coordinates(1, 2))); treasures.Add(new Treasure(new Coordinates(3, 2))); grid = new DungeonGrid(5, 5, defGrid); } else { defGrid = new char[5, 5] { { ' ', ' ', ' ', ' ', ' ' }, { ' ', 'w', 'w', 'w', 'w' }, { ' ', 'T', 'w', 'T', ' ' }, { ' ', 'w', 'w', 'w', 'w' }, { ' ', ' ', ' ', ' ', ' ' } }; treasures.Add(new Treasure(new Coordinates(2, 1))); treasures.Add(new Treasure(new Coordinates(2, 3))); grid = new DungeonGrid(5, 5, defGrid); } modelFileName = "TEMP_SHITTY_NAME_REMOVE_ME_BITCH"; }
private DungeonGrid borderGrid(DungeonGrid grid) { int x = grid.sizeX + 2; int y = grid.sizeY + 2; char[,] fullGrid = new char[x, y]; for (int i = 0; i < x; i++) { fullGrid [i, 0] = Constants.WALL_MARKER; fullGrid [i, y - 1] = Constants.WALL_MARKER; } for (int i = 0; i < y; i++) { fullGrid [0, i] = Constants.WALL_MARKER; fullGrid [x - 1, i] = Constants.WALL_MARKER; } for (int i = 0; i < grid.sizeX; i++) { for (int j = 0; j < grid.sizeY; j++) { fullGrid[i + 1, j + 1] = grid.grid[i, j]; } } return(new DungeonGrid(x, y, fullGrid)); }
////////////////////////////////////////////////////////////////////////////////// /* | */ /* PRIVATES */ /* | */ ////////////////////////////////////////////////////////////////////////////////// protected void shufflePaths(DungeonGrid grid, PathableArea area, Random rand) { double rateo = ((double)grid.countArea(area) / (double)grid.countPerimeter(area)); rateo = 5000 * (rateo); if (rateo > 9000) { rateo = 9000; } if (rateo < 1000) { rateo = 1000; } for (int x = area.position.x; x < area.sizeX + area.position.x; x++) { for (int y = area.position.y; y < area.sizeY + area.position.y; y++) { Coordinates position = new Coordinates(x, y); if (grid.hasDoorsTouching(position) || grid.hasForcedPathTouching(position)) { grid.grid[position.x, position.y] = Constants.PATH_MARKER; } else { int rnd = (rand.Next() % 10000) + 1; grid.grid[position.x, position.y] = rnd > rateo ? Constants.PATH_MARKER : Constants.PATHABLE_MARKER; } } } }
public r_3x5_003(bool rotate) { this.rotate = rotate; treasures = new List <Treasure> (); char[,] defGrid; if (!rotate) { defGrid = new char[3, 5] { { ' ', ' ', ' ', ' ', ' ' }, { ' ', 'w', 'w', 'w', ' ' }, { ' ', ' ', ' ', ' ', ' ' } }; grid = new DungeonGrid(3, 5, defGrid); } else { defGrid = new char[5, 3] { { ' ', ' ', ' ' }, { ' ', 'w', ' ' }, { ' ', 'w', ' ' }, { ' ', 'w', ' ' }, { ' ', ' ', ' ' } }; grid = new DungeonGrid(5, 3, defGrid); } modelFileName = "TEMP_SHITTY_NAME_REMOVE_ME_BITCH"; }
public r_7x7_002(bool rotate) { this.rotate = rotate; treasures = new List <Treasure> (); char[,] defGrid; if (!rotate) { defGrid = new char[7, 7] { { 'w', ' ', ' ', ' ', 'w', 'w', 'w' }, { 'w', ' ', ' ', ' ', 'w', 'w', 'w' }, { ' ', ' ', ' ', ' ', 'w', 'w', 'w' }, { ' ', ' ', ' ', ' ', 'D', ' ', ' ' }, { ' ', ' ', ' ', ' ', 'w', 'w', 'w' }, { 'w', ' ', ' ', ' ', 'w', ' ', 'T' }, { 'w', ' ', ' ', ' ', 'S', ' ', ' ' } }; treasures.Add(new Treasure(new Coordinates(5, 6))); grid = new DungeonGrid(7, 7, defGrid); } else { defGrid = new char[7, 7] { { 'w', 'w', ' ', ' ', ' ', 'w', 'w' }, { ' ', ' ', ' ', ' ', ' ', ' ', ' ' }, { ' ', ' ', ' ', ' ', ' ', ' ', ' ' }, { ' ', ' ', ' ', ' ', ' ', ' ', ' ' }, { 'S', 'w', 'w', 'D', 'w', 'w', 'w' }, { ' ', ' ', 'w', ' ', 'w', 'w', 'w' }, { ' ', 'T', 'w', ' ', 'w', 'w', 'w' } }; treasures.Add(new Treasure(new Coordinates(6, 1))); grid = new DungeonGrid(7, 7, defGrid); } modelFileName = "TEMP_SHITTY_NAME_REMOVE_ME_BITCH"; }
//LATER_PATCH: public List<Traps> trap; public Dungeon(DungeonGrid grid, List <DungeonRoom> rooms, List <Treasure> treasures, int seed) { this.seed = seed; this.rooms = rooms; this.treasures = setTreasures(treasures); this.grid = borderGrid(grid); }
public l_01() { char[,] defGrid = new char[25, 25] { //y-> 4 9 14 19 24 x { '.', '.', '.', '.', '.', '.', '.', 'w', 'p', 'p', 'p', 'w', 'w', 'E', 'w', 'w', 'p', 'p', 'p', 'w', 'w', '.', '.', '.', '.' }, // | { 'w', 'w', 'w', 'S', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'D', 'w', '.', 'w', 'w', 'S', 'w' }, // v { ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', 'w', ' ', ' ', ' ' }, { ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', 'D', ' ', ' ', ' ' }, { ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', 'w', ' ', ' ', ' ' }, // 4 { ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'D', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'D', '.', 'w', 'w', 'D', 'w' }, { ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', 'w', '.', '.', '.' }, { ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', 'w', '.', '.', '.' }, { ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', 'D', '.', '.', '.' }, { 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'D', 'w', 'D', 'w', '.', '.', '.' }, // 9 { '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.', '.', 'p', 'w', '.', '.', 'D', '.', '.', '.', 'w', '.', '.', '.' }, { '.', '.', '.', '.', '.', '.', 'S', '.', '.', '.', '.', '.', '.', 'p', 'w', '.', '.', 'w', '.', '.', '.', 'w', 'w', 'D', 'w' }, { 'w', 'w', 'w', 'D', 'w', 'w', 'w', '.', '.', '.', '.', '.', '.', 'w', 'w', 'D', 'w', 'w', '.', '.', '.', 'w', ' ', ' ', ' ' }, { 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', '.', 'D', ' ', ' ', ' ' }, { 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', '.', 'w', ' ', ' ', ' ' }, // 14 { 'w', ' ', ' ', ' ', ' ', ' ', 'S', '.', '.', '.', '.', '.', '.', 'D', ' ', ' ', ' ', 'D', '.', '.', '.', 'w', 'w', 'D', 'w' }, { 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', '.', 'w', '.', '.', '.' }, { 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', '.', 'w', '.', '.', '.' }, { 'w', 'w', 'w', 'S', 'w', 'w', 'w', '.', '.', '.', '.', '.', '.', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'p', 'w', '.', '.', '.' }, { '.', '.', '.', '.', 'w', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', '.', '.', '.', '.', 'w', 'w', 'w', 'D', 'w', 'w' }, // 19 { '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' }, { '.', '.', '.', '.', 'D', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'D', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' }, { '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', 'D', ' ', ' ', ' ', ' ', ' ' }, { '.', '.', '.', '.', 'w', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' }, { '.', '.', '.', '.', 'D', 'p', 'p', 'w', 'w', 'p', 'p', 'p', 'p', 'I', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' } // 24 }; grid = new DungeonGrid(25, 25, defGrid); rooms = new List <PseudoRoom> { new PseudoRoom(new Coordinates(2, 0), 7, 7), new PseudoRoom(new Coordinates(13, 1), 5, 5), new PseudoRoom(new Coordinates(2, 8), 7, 11), new PseudoRoom(new Coordinates(13, 14), 5, 3), new PseudoRoom(new Coordinates(20, 5), 3, 9), new PseudoRoom(new Coordinates(2, 22), 3, 3), new PseudoRoom(new Coordinates(12, 22), 3, 3), new PseudoRoom(new Coordinates(20, 20), 5, 5), }; pathableAreas = new List <PathableArea> { new PathableArea(new Coordinates(0, 0), 1, 7), new PathableArea(new Coordinates(10, 0), 2, 6), new PathableArea(new Coordinates(19, 0), 6, 4), new PathableArea(new Coordinates(10, 7), 9, 6), new PathableArea(new Coordinates(10, 15), 2, 2), new PathableArea(new Coordinates(19, 15), 6, 4), new PathableArea(new Coordinates(10, 18), 8, 3), new PathableArea(new Coordinates(1, 20), 8, 1), new PathableArea(new Coordinates(0, 21), 1, 4), new PathableArea(new Coordinates(6, 22), 5, 3), new PathableArea(new Coordinates(16, 22), 3, 3) }; }
public l_04() { char[,] defGrid = new char[25, 20] { //y-> 4 9 14 19 x { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ' }, // | { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', 'D', ' ', ' ', ' ' }, // v { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'D', '.', '.', '.', '.', 'w', ' ', ' ', ' ' }, { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', 'w', 'w', 'D', 'w' }, { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ' }, // 4 { 'D', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'D', 'w', '.', '.', '.', '.', 'D', ' ', ' ', ' ' }, { '.', '.', '.', 'w', '.', '.', '.', '.', 'w', '.', '.', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ' }, { '.', '.', '.', 'w', '.', '.', '.', '.', 'w', '.', '.', 'w', '.', '.', '.', '.', 'w', 'w', 'D', 'w' }, { 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', '.', '.', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ' }, { 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', 'p', '.', '.', '.', '.', 'D', ' ', ' ', ' ' }, // 9 { 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'D', 'w', ' ', ' ', ' ' }, { 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', 'w', 'p', 'w', 'w', 'D', 'w' }, { 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'S', ' ', ' ', ' ', ' ', ' ', 'D', '.', '.', '.', '.', '.' }, { 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.' }, { 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', 'w', 'w', 'D', 'w', 'w', 'w', '.', '.', '.', '.', '.' }, // 14 { 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', 'D', '.', '.', '.', '.', '.' }, { 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', 'w' }, { '.', '.', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', 'w' }, { '.', '.', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', 'w' }, { '.', '.', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', 'w' }, // 19 { '.', '.', '.', '.', '.', '.', '.', '.', 'S', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'D', 'p' }, { '.', '.', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', 'p' }, { '.', '.', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', 'p' }, { 'w', 'w', 'w', 'w', 'p', 'w', 'w', 'w', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', 'p' }, { 'w', 'w', 'w', 'w', 'I', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'E' }, // 24 }; grid = new DungeonGrid(25, 20, defGrid); rooms = new List <PseudoRoom> { new PseudoRoom(new Coordinates(0, 0), 5, 11), new PseudoRoom(new Coordinates(9, 1), 7, 7), new PseudoRoom(new Coordinates(0, 17), 3, 3), new PseudoRoom(new Coordinates(4, 17), 3, 3), new PseudoRoom(new Coordinates(8, 17), 3, 3), new PseudoRoom(new Coordinates(11, 9), 3, 5), new PseudoRoom(new Coordinates(17, 9), 7, 9) }; pathableAreas = new List <PathableArea> { new PathableArea(new Coordinates(6, 0), 2, 3), new PathableArea(new Coordinates(6, 4), 2, 4), new PathableArea(new Coordinates(17, 0), 6, 8), new PathableArea(new Coordinates(6, 9), 4, 2), new PathableArea(new Coordinates(0, 12), 10, 4), new PathableArea(new Coordinates(15, 9), 1, 5), new PathableArea(new Coordinates(12, 15), 4, 5) }; }
public l_03() { char[,] defGrid = new char[20, 30] { //y-> 4 9 14 19 24 29 x { ' ', ' ', ' ', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', 'w', 'w', 'w', 'w', 'p', 'p', 'p', 'p', 'E', 'w', 'w' }, // | { ' ', ' ', ' ', 'D', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', 'w', 'w', 'w', 'S', 'w', 'w' }, // v { ' ', ' ', ' ', 'w', '.', '.', '.', '.', 'D', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'D', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' }, { 'w', 'D', 'w', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' }, { '.', '.', '.', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', 'D', ' ', ' ', ' ', ' ', ' ' }, // 4 { '.', '.', '.', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', ' ', ' ', ' ', ' ', ' ' }, { '.', '.', '.', 'w', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' }, { '.', '.', '.', 'D', '.', '.', '.', '.', '.', 'D', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'D', '.', '.', '.', '.', '.', '.', 'w', 'w', 'w', 'S', 'w', 'w' }, { '.', '.', '.', 'w', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.' }, { '.', '.', '.', 'w', '.', '.', '.', '.', '.', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.' }, // 9 { 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', 'w', 'w', '.', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.', '.', 'w', 'w', 'w', 'S', 'w', 'w' }, { ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', 'D', '.', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' }, { ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' }, { ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', ' ', ' ', ' ', ' ', ' ' }, { ' ', ' ', ' ', ' ', ' ', 'D', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'D', ' ', ' ', ' ', ' ', ' ' }, // 14 { ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' }, { ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', 'D', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'D', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' }, { ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' }, { 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'D', 'w', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', 'w', 'w', 'D', 'w', 'w' }, { '.', '.', '.', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', 'w', 'w', 'I', 'w', 'w' } // 19 }; grid = new DungeonGrid(20, 30, defGrid); rooms = new List <PseudoRoom> { new PseudoRoom(new Coordinates(0, 0), 3, 3), new PseudoRoom(new Coordinates(0, 9), 5, 9), new PseudoRoom(new Coordinates(2, 25), 5, 5), new PseudoRoom(new Coordinates(6, 10), 3, 7), new PseudoRoom(new Coordinates(11, 0), 7, 5), new PseudoRoom(new Coordinates(13, 10), 7, 7), new PseudoRoom(new Coordinates(11, 25), 7, 5) }; pathableAreas = new List <PathableArea> { new PathableArea(new Coordinates(4, 0), 6, 3), new PathableArea(new Coordinates(0, 4), 5, 4), new PathableArea(new Coordinates(6, 4), 4, 5), new PathableArea(new Coordinates(11, 6), 7, 3), new PathableArea(new Coordinates(19, 0), 1, 9), new PathableArea(new Coordinates(10, 10), 2, 7), new PathableArea(new Coordinates(1, 19), 4, 5), new PathableArea(new Coordinates(6, 18), 7, 6), new PathableArea(new Coordinates(8, 25), 2, 5), new PathableArea(new Coordinates(14, 18), 6, 6) }; }
public void paste(DungeonGrid from, Coordinates start) { for (int i = 0; i < from.sizeX; i++) { for (int j = 0; j < from.sizeY; j++) { int tempX = i + start.x; int tempY = j + start.y; if (tempX < sizeX && tempY < sizeY) { grid[tempX, tempY] = from.grid[i, j]; } } } }
////////////////////////////////////////////////////////////////////////////////// /* | */ /* PRIVATES */ /* | */ ////////////////////////////////////////////////////////////////////////////////// private void recursiveMergePaths(DungeonGrid grid, PathableArea area, Random rand) { List <List <Coordinates> > tempPaths = grid.findAreas(Constants.PATH_MARKER, area.position, new Coordinates(area.position.x + area.sizeX, area.position.y + area.sizeY)); if (tempPaths.Count == 1) { return; } PathDistance closest = findClosestPaths(tempPaths, rand); grid.drawPath(closest.path_1, closest.path_2, rand); recursiveMergePaths(grid, area, rand); }
public r_3x3_001(bool rotate) { this.rotate = rotate; treasures = new List <Treasure> (); char[,] defGrid; defGrid = new char[3, 3] { { ' ', ' ', ' ' }, { ' ', 'T', ' ' }, { ' ', ' ', ' ' } }; treasures.Add(new Treasure(new Coordinates(1, 1))); grid = new DungeonGrid(3, 3, defGrid); modelFileName = "TEMP_SHITTY_NAME_REMOVE_ME_BITCH"; }
////////////////////////////////////////////////////////////////////////////////// /* | */ /* PRIVATES */ /* | */ ////////////////////////////////////////////////////////////////////////////////// private void mergePaths(DungeonGrid grid, PathableArea area, Random rand) { List <List <Coordinates> > tempPaths = grid.findAreas(Constants.PATH_MARKER, area.position, new Coordinates(area.position.x + area.sizeX, area.position.y + area.sizeY)); if (tempPaths.Count == 1) { return; } bool[,] linkedGraph = new bool[tempPaths.Count, tempPaths.Count]; for (int i = 0; i < tempPaths.Count; i++) { for (int j = 0; j < tempPaths.Count; j++) { linkedGraph [i, j] = (i == j ? true : false); } } int actual = 0; foreach (List <Coordinates> tempPath in tempPaths) { int linkTo = rand.Next() % tempPaths.Count; int count = 0; while (linkedGraph [actual, linkTo] && count < tempPaths.Count) { linkTo = (linkTo + 1) % tempPaths.Count; count++; } if (count == tempPaths.Count) { continue; } linkedGraph [actual, linkTo] = true; linkedGraph [linkTo, actual] = true; linkAll(linkedGraph, tempPaths.Count, actual, linkTo); PathDistance points = findClosestPoints(tempPath, tempPaths [linkTo]); grid.drawPath(points.path_1, points.path_2, rand); actual++; } }
public r_9x9_001(bool rotate) { this.rotate = rotate; treasures = new List <Treasure> (); char[,] defGrid; defGrid = new char[9, 9] { { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' }, { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' }, { ' ', ' ', ' ', 'w', ' ', 'w', ' ', ' ', ' ' }, { ' ', ' ', 'w', 'w', ' ', 'w', 'w', ' ', ' ' }, { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' }, { ' ', ' ', 'w', 'w', ' ', 'w', 'w', ' ', ' ' }, { ' ', ' ', ' ', 'w', ' ', 'w', ' ', ' ', ' ' }, { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' }, { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' } }; grid = new DungeonGrid(9, 9, defGrid); modelFileName = "TEMP_SHITTY_NAME_REMOVE_ME_BITCH"; }
public r_7x11_001(bool rotate) { this.rotate = rotate; treasures = new List <Treasure> (); char[,] defGrid; if (!rotate) { defGrid = new char[7, 11] { { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' }, { ' ', 'w', 'w', 'w', ' ', 'w', 'w', ' ', 'w', 'w', ' ' }, { ' ', ' ', ' ', 'w', ' ', 'w', ' ', ' ', ' ', 'w', ' ' }, { ' ', 'w', ' ', 'w', ' ', ' ', ' ', 'T', ' ', ' ', ' ' }, { ' ', 'w', ' ', 'w', ' ', 'w', ' ', ' ', ' ', 'w', ' ' }, { ' ', 'w', 'w', 'w', ' ', 'w', 'w', ' ', 'w', 'w', ' ' }, { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' } }; treasures.Add(new Treasure(new Coordinates(3, 7))); grid = new DungeonGrid(7, 11, defGrid); } else { defGrid = new char[11, 7] { { ' ', ' ', ' ', ' ', ' ', ' ', ' ' }, { ' ', 'w', 'w', 'w', ' ', 'w', ' ' }, { ' ', 'w', ' ', ' ', ' ', 'w', ' ' }, { ' ', 'w', 'w', 'w', 'w', 'w', ' ' }, { ' ', ' ', ' ', ' ', ' ', ' ', ' ' }, { ' ', 'w', 'w', ' ', 'w', 'w', ' ' }, { ' ', 'w', ' ', ' ', ' ', 'w', ' ' }, { ' ', ' ', ' ', 'T', ' ', ' ', ' ' }, { ' ', 'w', ' ', ' ', ' ', 'w', ' ' }, { ' ', 'w', 'w', ' ', 'w', 'w', ' ' }, { ' ', ' ', ' ', ' ', ' ', ' ', ' ' } }; treasures.Add(new Treasure(new Coordinates(7, 3))); grid = new DungeonGrid(11, 7, defGrid); } modelFileName = "TEMP_SHITTY_NAME_REMOVE_ME_BITCH"; }
// Start is called before the first frame update void Start() { instance = this; hackableObjects = new List <Hackable>(); terminals = new List <Terminal>(); tutorialInfo = FindObjectOfType <TutorialInfo>(); grid = FindObjectOfType <DungeonGrid>(); if (tutorialInfo) { generator = new GridGenerator(1, 0); } else { generator = TryMakeDungeonUntilSuccessful(); } int[][] gridPlan = generator.GetGrid(); SetUpCamera(gridPlan.Length); grid.GenerateGrid(gridPlan); grid.GenerateSwitchTilesOn(generator.GetSwitchTilesOn()); grid.GenerateSwitchTilesOff(generator.GetSwitchTilesOff()); grid.GenerateRamps(generator.GetRamps()); grid.GenerateFirewalls(generator.GetFirewalls()); grid.GenerateDefenses(generator.GetDefences()); grid.GenerateTerminals(generator.GetTerminals()); grid.GenerateSwitches(generator.GetSwitches()); grid.GenerateSecurityHubs(generator.GetHubs()); if (tutorialInfo) { AssignEnemyTypes(ref generator, tutorialInfo.GetEnemies()); } foreach (Room room in generator.rooms) { List <EnemyProgram> enemiesInRoom = grid.GenerateEnemies(room.GetEnemies()); grid.AssignPatrolRoutes(ref enemiesInRoom, room.patrolRoutes); } grid.GeneratePorts(generator.GetPorts()); grid.AssignTerminalControl(generator.GetTerminalControlledObjects()); foreach (Room room in generator.rooms) { if (room.isControlledByInternalTerminal) { room.ConnectTerminal(ref terminals); } room.ConnectSwitches(); } RemoveUnusedTerminals(); grid.PlaceLoot(generator.GetLoot()); grid.PlaceObjective(generator.getMissionObj()); if (tutorialInfo) { CreatePlayerPrograms(tutorialInfo.tutorialPrograms); } else { CreatePlayerPrograms(MissionStatus.instance.selectedPrograms); } grid.CreateDeploymentZone(generator.GetDeploymentArea()); FindObjectOfType <CameraContol>().Configure(); grid.ExploreStartingArea(generator.GetDeploymentArea()); PrepareNextDeployment(); }
public l_02() { char[,] defGrid = new char[30, 30] { //y-> 4 9 14 19 24 29 x { '.', '.', '.', 'S', '.', '.', '.', '.', '.', '.', '.', '.', 'w', 'w', 'E', 'w', '.', '.', '.', '.', '.', '.', '.', '.', 'D', '.', '.', '.', '.', '.' }, // | { '.', '.', '.', 'w', '.', '.', '.', '.', '.', '.', '.', '.', 'w', 'w', 'p', 'w', '.', '.', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.' }, // v { '.', '.', '.', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', 'w', 'S', 'w', 'w', 'w', '.', '.', '.', '.', '.' }, { '.', '.', '.', 'w', '.', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.' }, { '.', '.', '.', 'w', '.', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.' }, // 4 { '.', '.', '.', 'w', '.', 'w', '.', '.', '.', '.', 'D', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'D', ' ', ' ', ' ', ' ', ' ', 'S', '.', '.', '.', '.', '.' }, { '.', '.', '.', 'D', '.', 'D', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.' }, { 'w', 'D', 'w', 'w', '.', 'w', '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.' }, { ' ', ' ', ' ', 'w', '.', 'w', '.', '.', '.', '.', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', '.', '.', '.', '.', '.' }, { ' ', ' ', ' ', 'w', '.', 'w', '.', '.', '.', '.', 'w', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.' }, // 9 { ' ', ' ', ' ', 'w', '.', 'w', '.', '.', '.', '.', 'p', 'D', ' ', ' ', ' ', ' ', ' ', 'D', '.', '.', '.', '.', '.', '.', 'S', '.', '.', '.', '.', '.' }, { ' ', ' ', ' ', 'D', '.', 'w', 'w', 'D', 'w', 'w', 'w', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.' }, { ' ', ' ', ' ', 'w', 'w', ' ', ' ', ' ', ' ', ' ', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'S', 'w', 'w' }, { ' ', ' ', ' ', 'w', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' }, { ' ', ' ', ' ', 'w', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'D', ' ', ' ', ' ', 'D', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' }, // 14 { 'w', 'w', 'w', 'w', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' }, { '.', '.', '.', '.', 'D', ' ', ' ', ' ', ' ', ' ', 'D', '.', '.', '.', '.', '.', '.', 'w', 'w', 'D', 'w', 'w', '.', '.', 'D', ' ', ' ', ' ', ' ', ' ' }, { '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', 'w', 'w', 'w', 'w', ' ', ' ', ' ', ' ', ' ' }, { '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', 'D', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' }, { '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', 'w', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ' }, // 19 { '.', '.', '.', '.', 'w', ' ', ' ', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', 'w', 'w', 'D', 'w', 'w', '.', '.', 'w', 'w', 'w', 'D', 'w', 'w' }, { '.', '.', '.', '.', 'w', 'w', 'w', 'D', 'w', 'w', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', 'D', '.', '.', '.', 'w', 'w' }, { '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.', '.', 'D', ' ', ' ', ' ', 'D', '.', '.', 'w', '.', '.', '.', 'w', 'w' }, { '.', '.', '.', '.', 'D', '.', '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', 'w', '.', '.', '.', 'w', 'w' }, { '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', 'w', 'D', 'w', 'w', 'w', 'w', 'w', '.', '.', '.', 'w', 'w' }, // 24 { '.', '.', '.', '.', 'w', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', 'D', 'p' }, { 'w', 'S', 'w', 'w', 'w', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', 'w', 'p' }, { ' ', ' ', ' ', 'w', 'w', '.', '.', '.', '.', '.', 'D', ' ', ' ', ' ', 'D', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'w', '.', '.', '.', 'w', 'p' }, { ' ', ' ', ' ', 'w', 'w', '.', '.', '.', '.', '.', 'w', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'D', '.', '.', '.', 'w', 'p' }, { ' ', ' ', ' ', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', ' ', ' ', ' ', 'w', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'w', 'w', 'w', 'w', 'w', 'I' }, // 29 }; grid = new DungeonGrid(30, 30, defGrid); rooms = new List <PseudoRoom> { new PseudoRoom(new Coordinates(8, 0), 7, 3), new PseudoRoom(new Coordinates(27, 0), 3, 3), new PseudoRoom(new Coordinates(12, 5), 9, 5), new PseudoRoom(new Coordinates(3, 11), 5, 7), new PseudoRoom(new Coordinates(3, 19), 5, 5), new PseudoRoom(new Coordinates(9, 12), 3, 5), new PseudoRoom(new Coordinates(13, 18), 3, 3), new PseudoRoom(new Coordinates(21, 18), 3, 3), new PseudoRoom(new Coordinates(25, 11), 5, 3), new PseudoRoom(new Coordinates(13, 25), 7, 5) }; pathableAreas = new List <PathableArea> { new PathableArea(new Coordinates(0, 0), 7, 3), new PathableArea(new Coordinates(16, 0), 10, 4), new PathableArea(new Coordinates(0, 4), 2, 8), new PathableArea(new Coordinates(3, 4), 9, 1), new PathableArea(new Coordinates(3, 6), 8, 4), new PathableArea(new Coordinates(22, 5), 7, 5), new PathableArea(new Coordinates(13, 11), 11, 6), new PathableArea(new Coordinates(25, 15), 5, 9), new PathableArea(new Coordinates(0, 16), 2, 8), new PathableArea(new Coordinates(9, 18), 3, 6), new PathableArea(new Coordinates(17, 18), 3, 3), new PathableArea(new Coordinates(13, 22), 4, 2), new PathableArea(new Coordinates(18, 22), 6, 2), new PathableArea(new Coordinates(0, 25), 12, 5), new PathableArea(new Coordinates(21, 25), 8, 3) }; }