// Load in all but the last level private IEnumerator LoadNextLevel(float delay) { yield return(new WaitForSeconds(delay)); // Destroy all enemies and stop all pattern DroneFactory.StopAllCoroutines(); foreach (Transform child in DroneFactory.transform) { Destroy(child.gameObject); } if (GameControl.GameState.SetGameMode == GameMode.TimeMode) { _score.AddRemainingCountdown(); _score.CurrentScoreText.GetComponent <TextMeshProUGUI>().text = "Current Score: " + _controlRLR.PlayerManager.TotalScore; _initializeGame.ChangeLives(_controlRLR.PlayerManager, 3); } if (GameControl.GameState.SetGameMode != GameMode.Practice) { _score.SetHighScore(); } GameControl.GameState.FinishedLevel = false; _controlRLR.CurrentLevel++; _controlRLR.InitializeLevel(); }
//events following Deathtrigger public void Death(PlayerManager playerManager) { playerManager.IsImmobile = true; playerManager.IsInvulnerable = true; playerManager.Model.SetActive(false); playerManager.CharacterController.DisableAllSkills(); switch (GameControl.GameState.SetGameMode) { case GameMode.Classic: _levelManager.EndGame(1); break; case GameMode.Practice: StartCoroutine(Respawn(3, 3, _initializeGame, playerManager)); break; case GameMode.TimeMode: if (playerManager.Lives == 0) { _levelManager.EndGame(1); break; } else { _initializeGame.ChangeLives(playerManager, playerManager.Lives - 1); StartCoroutine(Respawn(10, 3, _initializeGame, playerManager)); break; } } }
private void Start() { // temporary for testing if (GameControl.GameState.CharacterDto == null) { GameControl.GameState.CharacterDto = new CharacterDto(9, "Cat", 50, 50, 50, 0, 0, 1, 1); GameControl.GameState.Solo = true; } // Set gamemode specific UI if (GameControl.GameState.SetGameMode == GameMode.Practice) { PracticeMode.SetActive(true); } else if (GameControl.GameState.SetGameMode == GameMode.TimeMode) { TimeModeUI.SetActive(true); CountDownText.GetComponent <TextMeshProUGUI>().text = "Countdown: " + (285 + CurrentLevel * 15) / 60 + ":" + ((285 + CurrentLevel * 15) % 60).ToString("00.00"); HighScoreText.GetComponent <TextMeshProUGUI>().text = GameControl.GameState.SetDifficulty == Difficulty.Normal ? "Highscore: " + GameControl.HighScores.HighScoreRLRNormal[0].ToString("f0") : "Highscore: " + GameControl.HighScores.HighScoreRLRHard[0].ToString("f0"); } // Only initialize on it's own when playing solo if (!GameControl.GameState.Solo) { return; } PlayerManager = _initializeGame.InitializePlayer(new Player(0, PlayerPrefs.GetString("username"), PlayerColor.Green)); _initializeGame.InitializeControls(PlayerManager); _initializeGame.InitializeSafeZones(PlayerManager); PlayerManager.PlayerMovement = PlayerManager.gameObject.AddComponent <PlayerMovement>(); if (GameControl.GameState.SetGameMode == GameMode.TimeMode) { _initializeGame.ChangeLives(PlayerManager, 3); } InitializeLevel(); }