public static Room Generate(RoomSettings settings) { RoomGenerator.settings = settings; room = new Room(settings.width, settings.height); prng = new System.Random(settings.seed); openCoords = new FisherYates.ShuffleList <Coord>(room.tileCount, prng); // fill coord array and initialize room with empty tiles for (int x = 0; x < settings.width; x++) { for (int y = 0; y < settings.height; y++) { Coord c = new Coord(x, y); InstantiateEmpty(c); openCoords.Add(c); } } // place doors // place obstacles PlaceRandomObstacles(); return(room); }
public static Room Generate(RoomSettings settings) { RoomGenerator.settings = settings; room = new Room(settings); prng = new System.Random(settings.seed); openCoords = new FisherYates.ShuffleList <Coord>(room.tileCount, prng); // fill coord array and initialize room with empty tiles for (int x = 0; x < settings.width; x++) { for (int y = 0; y < settings.height; y++) { Coord c = new Coord(x, y); InsertEmpty(c); openCoords.Add(c); } } // place Warps foreach (RoomSettings.WarpSettings warp in settings.warps) { InsertWarp(warp.position, warp.target); } PlaceRandomObstacles(); PlaceEnemySpawnPoints(); return(room); }
void Awake() { projectileRadius = subBossProjectilePrefab.GetComponent <SphereCollider>().radius; gravity = Physics.gravity.magnitude; spawnPoints = new FisherYates.ShuffleList <Vector3>( spawnPointTransforms.Length); foreach (Transform point in spawnPointTransforms) { spawnPoints.Add(point.position); } SubBossController.DyingStatic -= SubBossDyingHandler; SubBossController.DyingStatic += SubBossDyingHandler; }
public void SetTile(int x, int y, ITile tile) { // change openTiles list if necessary if (tiles[x, y] == null || tiles[x, y].type != tile.type) { Coord c = new Coord(x, y); if (tile.type == TileType.Empty) { openTiles.Add(c); } else { openTiles.Remove(c); } } tiles[x, y] = tile; }