IEnumerator CreateDungeon()
    {
        GameObject loading = (GameObject)Instantiate(loadingScreen);

        yield return(StartCoroutine(rooms.CreateRooms()));

        yield return(StartCoroutine(corridors.CreateCorridors()));

        yield return(StartCoroutine(walls.CreateRoomWalls()));

        yield return(StartCoroutine(walls.CreateCorridorWalls()));

        yield return(StartCoroutine(playerAndMerchantsGenerator.CreatePlayer()));

        yield return(StartCoroutine(playerAndMerchantsGenerator.CreateTraders()));

        yield return(StartCoroutine(chests.CreateChest()));

        Pathfinder.Instance.CreateMap();

        SpawnPortal();
        CreateScroll();
        SpawnSafeZoneCampfire();
        yield return(StartCoroutine(enemiesGenerator.CreateEnemies()));

        Destroy(loading);
    }
 public void InitializeRooms()
 {
     _roomGenerator = new RoomGenerator(200, new LimitedValue(3, 9),
                                        new LimitedValue(3, 9), rows, columns);
     _roomGenerator.CreateRooms();
     foreach (Room room in _roomGenerator.rooms)
     {
         foreach (Vector3 position in room.positions)
         {
             GameObject instance = Instantiate(floorTile, position, Quaternion.identity);
             instance.transform.SetParent(boardHolder);
         }
     }
 }