/// <summary> /// Main method to generate everything (basically start point for level generation) /// </summary> private void GenerateLevel(int floor) { //spawn rooms //Debug.Log("Generating rooms..."); int numRooms = Random.Range(minRoomSpawns, maxRoomSpawns); //Debug.Log($"NumRooms: {numRooms}"); List <RoomSpawn> roomSpawns = SpawnRooms(numRooms); List <RoomSpawn> currentRooms = roomSpawns; //backup list incase bossroom is unable to spawn //Debug.Log("Spawning elevators..."); //Debug.Log($"Spawning boss room..."); roomSpawns = SpawnBossRoom(roomSpawns, floor); if (roomSpawns == null) { Debug.LogWarning("roomSpawns came back null from boss generation... stopping GenerateLevel() and destroying old level"); DestroyLevel(currentRooms); return; } //Debug.Log("Spawning elevators..."); List <GameObject> elevators = SpawnElevators(roomSpawns); UpdateDoors(roomSpawns); //Debug.Log($"...Finished!"); //send elevator info to wave manager waveManager.SetupElevators(elevators, bossRoomPick.obj, bossPick); //send info to trader manager traderManager.SetupRoomData(roomSpawns); graph.SetGraph(); }