Example #1
0
    private IEnumerator ILoadRoom()
    {
        canLoad = false;

        yield return(null);

        //Unload current room
        if (loadedRoomParent.childCount > 0)
        {
            Destroy(loadedRoomParent.GetChild(0).gameObject);
        }

        loadedRoomPuzzle = Instantiate(rooms[roomIndex].gameObject, loadedRoomParent).GetComponent <PuzzleRoom> ();
        loadedRoomPuzzle.transform.localPosition = Vector3.zero;
        loadedRoomPuzzle.gameObject.SetActive(true);

        foreach (Lure lure in lures)
        {
            if (lure != null)
            {
                Destroy(lure.gameObject);
            }
        }
        lures = new List <Lure> ();

        yield return(null);

        ResetObjects();

        loadRoomCo = null;
        canLoad    = true;
    }
Example #2
0
    private void RandomizeRooms()
    {
        List <PuzzleRoom> UnusedRooms = new List <PuzzleRoom>(Rooms);

        for (int i = 0; i < RoomPuzzles; i++)
        {
            int        index = Random.Range(0, UnusedRooms.Count);
            PuzzleRoom room  = UnusedRooms[index];
            UnusedRooms.Remove(room);
            Puzzle puzzle = room.SpawnPuzzle();
            if (puzzle)
            {
                UnsolvedPuzzles.Add(puzzle);
            }
        }
        while (UnusedRooms.Count > 0)
        {
            PuzzleRoom room = UnusedRooms[0];
            UnusedRooms.Remove(room);
            room.SpawnRoom();
        }
    }
Example #3
0
 public void RegisterRoom(PuzzleRoom room)
 {
     Rooms.Add(room);
 }