// this REQUIRES that the memos are placed in such a way that players can NEVER pick them up from inside the trigger zone IEnumerator roomSwitch() { // close door doorClosing = true; Door.Instance.TryCloseDoor(); yield return(new WaitWhile(() => Door.Instance.Open)); doorClosing = false; // switch rooms currentRoom.Despawn(); if (destroyCurrentRoomOnSwitch) { destroyCurrentRoomOnSwitch = false; Destroy(currentRoom.gameObject); // ... onSwitch } currentRoom = waitingRoom; currentRoomDir = currentRoomDir.Flipped(); if (pooledRooms.Count > 0) { nextRoomIndex = (int)Mathf.Repeat(nextRoomIndex + 1, pooledRooms.Count); var nextPrefab = pooledRooms[nextRoomIndex]; waitingRoom = nextPrefab.Respawn(currentRoomDir.Flipped()); } nextIsBedroom = false; currentRoomTrigger = currentRoomDir.IsPositive() ? FrontTrigger : BackTrigger; waitingRoomTrigger = currentRoomDir.IsNegative() ? FrontTrigger : BackTrigger; }
void updateNetworkRoom(string r, string n, float rnd) { GameObject obj = GameObject.Find(n); RoomTrigger tag = obj.GetComponentInChildren <RoomTrigger>() as RoomTrigger; tag.room.fromString(r); tag.fillRoom(rnd); tag.instantiateRoom(tag.room.toString()); tag.built = true; }
//Health system //--------------------------------------------------------------// // ----------------Used for initialization---------------------// //--------------------------------------------------------------// void Start() { enemyState = state.idle; //pulling rooms value of entry or exit player = GameObject.FindGameObjectWithTag("Player"); trigger = GameObject.FindGameObjectWithTag("Room").GetComponent <RoomTrigger>(); playerScript = player.GetComponent <PlayerController2D>(); // grabbing players rigidbody playerRigidBody = player.GetComponent <Rigidbody2D>(); em = GetComponent <Rigidbody2D>(); //Declares where to return to when not present startpos = new Vector3(em.position.x, em.position.y); Debug.Log(playerScript.getHealth()); }
void Awake() { /* locate our different zones for this room */ RoomTrigger[] temp = GetComponentsInChildren<RoomTrigger>(); foreach(RoomTrigger zone in temp) { if(zone.name == "deep") deep = zone; else if (zone.name == "within") within = zone; } //TODO: change this to search only the local object... door = GameObject.Find ("Door"); door.SetActive(false); }
void Start() { Memo.MemoPickedUp += onMemoPickedUp; pooledRooms = new List <Room>(RoomPrefabs.Count); for (int i = 0; i < RoomPrefabs.Count; i++) { pooledRooms.Add(Instantiate(RoomPrefabs[i])); pooledRooms[i].Despawn(); } Bedroom = Room.Initialize(Bedroom, currentRoomDir); currentRoom = Bedroom; waitingRoom = pooledRooms[nextRoomIndex].Respawn(currentRoomDir.Flipped()); currentRoomTrigger = BackTrigger; waitingRoomTrigger = FrontTrigger; }
public void OnRoomExit(RoomTrigger room) { //Debug.Log("OnRoomExit"); this.inRooms.Remove(room); //Debug.Log($"In Rooms {inRooms.Count}"); }
public void OnRoomEnter(RoomTrigger room) { //Debug.Log("OnRoomEnter"); this.inRooms.Add(room); //Debug.Log($"In Rooms {inRooms.Count}"); }
private void Awake() { roomTrigger = GetComponent <RoomTrigger>(); }
private void loadMap(string s, int i) { int x = i; Room room = ScriptableObject.CreateInstance("Room") as Room; room.fromString(s); if (room.getState() == "active" || room.getState() == "treasure" || room.getState() == "boss" || room.getState() == "start") { GameObject temp = null; rooms.Add(tileSet[10]); rooms[x].name = "Room: " + x.ToString(); if (room.getX() == 0 && room.getY() == 0) { room.setBeaten(true); //GameObject camera = GameObject.FindGameObjectWithTag ("MainCamera") as GameObject; MouseOrbit orbit = Camera.main.GetComponent <MouseOrbit>(); orbit.setTarget(rooms[x].gameObject.transform); } else { room.setBeaten(false); } rooms[x] = Instantiate(rooms[x], new Vector3(0, 0, 0), Quaternion.identity) as GameObject; temp = Instantiate(tileSet[0], new Vector3(room.getX() * 50, -15f, room.getY() * 50), Quaternion.identity) as GameObject; temp.transform.parent = rooms[x].transform; temp = Instantiate(tileSet[7], new Vector3(room.getX() * 50, -940, room.getY() * 50), Quaternion.identity) as GameObject; temp.transform.parent = rooms[x].transform; temp = tileSet[5]; roomTrigger = temp.GetComponent("RoomTrigger") as RoomTrigger; roomTrigger.setRoom(room); temp = Instantiate(temp, new Vector3(room.getX() * 50, 0, room.getY() * 50), Quaternion.identity) as GameObject; temp.transform.parent = rooms[x].transform; //if(room.ge != null){ if ((room.getLeft() == "null")) { temp = Instantiate(tileSet[2], new Vector3(room.getX() * 50, 0, room.getY() * 50), Quaternion.Euler(0f, 270f, 0f)) as GameObject; temp.transform.parent = rooms[x].transform; temp = Instantiate(tileSet[8], new Vector3(room.getX() * 50 - 50, -940, room.getY() * 50), Quaternion.Euler(0f, 90f, 0f)) as GameObject; temp.transform.parent = rooms[x].transform; } else { temp = Instantiate(tileSet[3], new Vector3(room.getX() * 50, 0, room.getY() * 50), Quaternion.Euler(0f, 270f, 0f)) as GameObject; temp.transform.parent = rooms[x].transform; temp = Instantiate(tileSet[9], new Vector3(room.getX() * 50 - 50, -940, room.getY() * 50), Quaternion.Euler(0f, 90f, 0f)) as GameObject; temp.transform.parent = rooms[x].transform; } //} //if(room.getRoom ("right") != null){ if ((room.getRight() == "null")) { temp = Instantiate(tileSet[2], new Vector3(room.getX() * 50, 0, room.getY() * 50), Quaternion.Euler(0f, 90f, 0f)) as GameObject; temp.transform.parent = rooms[x].transform; temp = Instantiate(tileSet[8], new Vector3(room.getX() * 50, -940, room.getY() * 50), Quaternion.Euler(0f, 90f, 0f)) as GameObject; temp.transform.parent = rooms[x].transform; } else { temp = Instantiate(tileSet[3], new Vector3(room.getX() * 50, 0, room.getY() * 50), Quaternion.Euler(0f, 90f, 0f)) as GameObject; temp.transform.parent = rooms[x].transform; temp = Instantiate(tileSet[9], new Vector3(room.getX() * 50, -940, room.getY() * 50), Quaternion.Euler(0f, 90f, 0f)) as GameObject; temp.transform.parent = rooms[x].transform; } //} //if(room.getRoom ("up") != null){ if ((room.getUp() == "null")) { temp = Instantiate(tileSet[2], new Vector3(room.getX() * 50, 0, room.getY() * 50), Quaternion.Euler(0f, 180f, 0f)) as GameObject; temp.transform.parent = rooms[x].transform; temp = Instantiate(tileSet[8], new Vector3(room.getX() * 50, -940, room.getY() * 50 - 50), Quaternion.identity) as GameObject; temp.transform.parent = rooms[x].transform; } else { temp = Instantiate(tileSet[3], new Vector3(room.getX() * 50, 0, room.getY() * 50), Quaternion.Euler(0f, 180f, 0f)) as GameObject; temp.transform.parent = rooms[x].transform; temp = Instantiate(tileSet[9], new Vector3(room.getX() * 50, -940, room.getY() * 50 - 50), Quaternion.identity) as GameObject; temp.transform.parent = rooms[x].transform; } //} //if(room.getRoom ("down") != null){ if ((room.getDown() == "null")) { temp = Instantiate(tileSet[2], new Vector3(room.getX() * 50, 0, room.getY() * 50), Quaternion.identity) as GameObject; temp.transform.parent = rooms[x].transform; temp = Instantiate(tileSet[8], new Vector3(room.getX() * 50, -940, room.getY() * 50), Quaternion.identity) as GameObject; temp.transform.parent = rooms[x].transform; } else { temp = Instantiate(tileSet[3], new Vector3(room.getX() * 50, 0, room.getY() * 50), Quaternion.identity) as GameObject; temp.transform.parent = rooms[x].transform; temp = Instantiate(tileSet[9], new Vector3(room.getX() * 50, -940, room.getY() * 50), Quaternion.identity) as GameObject; temp.transform.parent = rooms[x].transform; } //} //rooms[x].transform.parent = level.transform; if (!room.getBeaten()) { foreach (MeshRenderer r in rooms[x].GetComponentsInChildren <MeshRenderer>()) { if (r.gameObject.name != "MapRoom") { r.enabled = false; } } } x++; } }