/// <summary> /// Calculates theme for the particular room number /// </summary> /// <param name="roomNo">Room number</param> /// <returns>Theme for the specified room number</returns> RoomThemes CalculateRoomTheme(int roomNo) { // Calculating theme value by using right shift across ENUM values // Roomoffset will determine how randomly room themes will be calculated RoomThemes roomTheme = (RoomThemes)Mathf.Abs(((totalRoomThemes + (roomOffset * roomNo))) % totalRoomThemes); return(roomTheme); }
/// <summary> /// Experimental portal system. Can be used in future /// </summary> /// <param name="roomNo">Room number to be teleported to</param> public void JumpToRoom(int roomNo) { currentRoomNo = roomNo; prevRoomThem = CalculateRoomTheme(currentRoomNo - 1); currentRoomTheme = CalculateRoomTheme(currentRoomNo); nextRoomTheme = CalculateRoomTheme(currentRoomNo + 1); UpdateUI(); RefurbishRoom(); playerManager.ResetPlayerPosition(); }
/// <summary> /// Loads next room onto the scene /// </summary> public void NextRoom() { currentRoomNo++; prevRoomThem = currentRoomTheme; currentRoomTheme = CalculateRoomTheme(currentRoomNo); nextRoomTheme = CalculateRoomTheme(currentRoomNo + 1); UpdateUI(); RefurbishRoom(); playerManager.ResetPlayerPosition(); // Resets player position }
private readonly int totalRoomThemes = 7; // Total number of available room themes // Start is called before the first frame update void Start() { RandomizeRoomOffset(); currentRoomTheme = CalculateRoomTheme(currentRoomNo); // Calculate current room theme prevRoomThem = currentRoomTheme; // Assign current room theme to previous room theme as a default value nextRoomTheme = CalculateRoomTheme(currentRoomNo + 1); // Calculate next room theme for UI purpose UpdateUI(); // Update game UI RefurbishRoom(); // Populate room with elements according to room theme PlayerPrefs.SetInt("RoomOffset", roomOffset); PlayerPrefs.Save(); }