private void CreateDoor(RoomSpawnData room, Transform doorParent, int sign = 1) { GameObject door = Instantiate(prefabDoor, doorParent); door.transform.position = transform.position + GetHalfRoomWidthVector(room) * sign; Vector3 newScale = door.transform.localScale; newScale.x *= -1.0f * UtilMath.Sign(roomNumber % roomOrder.Length == 1) * sign; door.transform.localScale = newScale; latestDoor = door.GetComponent <RoomDoor>(); }
private void CreateRoom(RoomSpawnData room) { if (roomNumber != 0) { RoomSpawnData previousRoom = roomOrder[(roomNumber - 1) % roomOrder.Length]; MoveForwardByHalfRoomWidth(previousRoom); } MoveForwardByHalfRoomWidth(room); GameObject obj = Instantiate(room.prefab, transform.position, Quaternion.identity); Room rm = obj.GetComponent <Room>(); rm.RoomStarted += Iterate; rm.SetItemPool(itemPool); rooms.Add(roomNumber, rm); ++roomNumber; }
private void CreateRoom(RoomSpawnData room) { if (roomNumber != 0) { RoomSpawnData previousRoom = roomOrder[(roomNumber - 1) % roomOrder.Length]; MoveForwardByHalfRoomWidth(previousRoom); } MoveForwardByHalfRoomWidth(room); GameObject obj = Instantiate(room.prefab, transform.position, Quaternion.identity); obj.GetComponent <TimeScale>().SetData(timeScale); Room rm = obj.GetComponent <Room>(); rm.RoomStarted += Iterate; rm.SetItemPool(itemPool); rm.SetBossPool(bossPool); rm.SetPlayerHealth(playerHealth); // When upgrade rooms start, they should heal the player. if (roomNumber % roomOrder.Length == 0) { rm.RoomStarted += playerHealth.FullHeal; } // If the latest door is null, this is the very first room in the game. if (latestDoor == null) { CreateDoor(room, obj.transform, -1); } rm.SetDoorEntry(latestDoor); CreateDoor(room, obj.transform); rm.SetDoorExit(latestDoor); rm.SetLoopNumber(loopNumber); rm.SetBossesKilled(bossesKilled); rooms.Add(roomNumber, rm); ++roomNumber; loopNumber = roomNumber / 2; }
private void MoveForwardByHalfRoomWidth(RoomSpawnData room) { transform.position += GetHalfRoomWidthVector(room); }
private Vector3 GetHalfRoomWidthVector(RoomSpawnData room) { return(new Vector3(GetHalfRoomWidth(room), 0.0f, 0.0f)); }
private float GetHalfRoomWidth(RoomSpawnData room) { return(room.width * 0.01f * 0.5f); }
private void CreateNextRoom() { RoomSpawnData roomToSpawn = roomOrder[roomNumber % roomOrder.Length]; CreateRoom(roomToSpawn); }
private void MoveForwardByHalfRoomWidth(RoomSpawnData room) { transform.position += new Vector3(room.width * 0.01f * 0.5f, 0.0f, 0.0f); }