예제 #1
0
        // 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();
        }
예제 #2
0
        //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;
                }
            }
        }
예제 #3
0
        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();
        }