private void RoomCheck(GameObject Room, Transform Exit) { bool Check = ColliderCheck(Room); if (Check) {//Good room _rooms.Enqueue(Room); Room.transform.parent = _levelMap; Room.transform.name = _roomCount.ToString(); ExitInfo EI = _joinedExit.GetComponent <ExitInfo>(); EI.SetExit(true); EI.ConnectExit(Exit); EI.ExitUpdate(); Exit.GetComponent <ExitInfo>().ConnectExit(_joinedExit); Exit.GetComponent <ExitInfo>().ExitUpdate(); _roomCount++; } else {//Invalid Exit Close and move on Debug.Log("Invalid Exit Close and move on"); Room.transform.position = _grave.position; Room.transform.parent = _grave; Exit.GetComponent <ExitInfo>().SetExit(false); ManageRoomChildren(Room, false); Room.GetComponent <BoxCollider>().enabled = false; Destroy(Room.gameObject); } }
private void OpenRoomExits(GameObject Room) {//Scan through Current Room's Exits to determine if they will be Used Debug.Log("Random Exits for " + Room); _currentRoomScript = Room.GetComponent <RoomInfo>(); for (int i = 0; i < _currentRoomScript.Exits.Length; i++) { ExitInfo ExitInfo = _currentRoomScript.Exits[i].gameObject.GetComponent <ExitInfo>(); int RND = Random.Range(0, 100); if (!ExitInfo.ExitState() && RND <= _exitChance) { if (ExitCheck(_currentRoomScript.Exits[i])) { ExitInfo.SetExit(true); _exits.Enqueue(_currentRoomScript.Exits[i]); } } } }