Example #1
0
    /// <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();
    }