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; }
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(); } }
public void RegisterRoom(PuzzleRoom room) { Rooms.Add(room); }