Example #1
0
        // Use this for initialization
        //private void Start()
        //{
        //
        //}

        // Update is called once per frame
        //private void Update()
        //{
        //
        //}

        public void OnLevelCompletedBannerEndAnimationEvent()
        {
            // Get scene from LevelEnd gameObject
            EGameScenes l_scene = GameObject.FindGameObjectWithTag("LevelEnd").GetComponent <LevelEnd>()._gameScenes;

            // Load next scene
            GameManager.Instance.GameManagerState.StateChange(l_scene);
        }
        private IEnumerator DisplayLevelTimeStatsCoroutine()
        {
            yield return(new WaitForSeconds(5.0f));

            // Get scene from LevelEnd gameObject
            EGameScenes l_scene = GameObject.FindGameObjectWithTag("LevelEnd").GetComponent <LevelEnd>()._gameScenes;

            // Load next scene
            GameManager.Instance.GameManagerState.StateChange(l_scene);
        }
Example #3
0
        public void StateChange(EGameScenes gameScenes)
        {
            // Assign new game state
            _nextState = new GameManagerStateMainMenu(_gameManagerInstance);

            // Load next scene -> main menu
            string l_scene = string.Empty;

            if (_gameManagerInstance.GameScenesDictionary.TryGetValue(gameScenes, out l_scene))
            {
                SceneManager.LoadScene(l_scene);
            }
        }
Example #4
0
        public void StateChange(EGameScenes gameScenes)
        {
            // Assign new game state
            switch (gameScenes)
            {
            case EGameScenes.LevelsMenu:
            {
                // Assing new game state
                _nextState = new GameManagerStateLevelsMenu(_gameManagerInstance);
            }
            break;

            case EGameScenes.TestLevel:
            {
                // Level scene to be loaded next
                _gameManagerInstance.LevelLoadNextScene = gameScenes;
                // Assing new game state
                _nextState = new GameManagerStateLevelLoad(_gameManagerInstance);
                // Load LevelLoad scene that will load the next level asynchronously
                gameScenes = EGameScenes.LevelLoad;
            }
            break;

            case EGameScenes.SettingsMenu:
            {
                // Assing settings game state
                _nextState = new GameManagerStateSettingsMenu(_gameManagerInstance);
            }
            break;

            default:
                _nextState = new GameManagerStateMainMenu(_gameManagerInstance);
                break;
            }

            // Load next scene
            string l_scene = string.Empty;

            if (_gameManagerInstance.GameScenesDictionary.TryGetValue(gameScenes, out l_scene))
            {
                SceneManager.LoadScene(l_scene);
            }
        }
        public void StateChange(EGameScenes gameScenes)
        {
            // Assign new game state
            switch (gameScenes)
            {
            case EGameScenes.MainMenu:
                _nextState = new GameManagerStateMainMenu(_gameManagerInstance);
                break;

            default:
                _nextState = new GameManagerStateMainMenu(_gameManagerInstance);
                break;
            }

            // Load next scene
            string l_scene = string.Empty;

            if (_gameManagerInstance.GameScenesDictionary.TryGetValue(gameScenes, out l_scene))
            {
                SceneManager.LoadScene(l_scene);
            }
        }
Example #6
0
        public void StateChange(EGameScenes gameScenes)
        {
            // Assign new game state
            switch (gameScenes)
            {
            case EGameScenes.TestLevel:
            case EGameScenes.Level_01:
            case EGameScenes.Level_02:
            case EGameScenes.Level_03:
            case EGameScenes.Level_04:
                _gameManagerInstance.GameManagerState = new GameManagerStateLevel(_gameManagerInstance);
                break;

            //case EGameScenes.TestLevel:
            //    _gameManagerInstance.GameManagerState = new GameManagerStateTestLevel(_gameManagerInstance);
            //    break;

            default:
                _gameManagerInstance.GameManagerState = new GameManagerStateMainMenu(_gameManagerInstance);
                break;
            }
        }
Example #7
0
        /// <summary>
        ///     Manages player death and respawn
        /// </summary>
        public void ManagePlayerDeathAndRespawn()
        {
            // Get scene name
            string l_levelName = SceneManager.GetActiveScene().name;

            // If time trial then reload the level
            if (_instance._timeTrialClock.GetComponent <TimeTrial>().IsTimeTrial)
            {
                // Prepare game scene enum
                EGameScenes l_gameScene = EGameScenes.MainMenu;
                // Look for game scene enum
                l_gameScene = _instance._gameScenesDictionary.FirstOrDefault(x => x.Value == l_levelName).Key;
                // Change state
                _instance.GameManagerState.StateChange(l_gameScene);
                // Return
                return;
            }

            // Manage player lifes
            _instance.PlayerLifes--;

            // If boss level then reload the level (if lifes left greater than 0)
            if (_instance.IsBossLevel(l_levelName) && _instance.PlayerLifes > 0)
            {
                // Prepare game scene enum
                EGameScenes l_gameScene = EGameScenes.MainMenu;
                // Look for game scene enum
                l_gameScene = _instance._gameScenesDictionary.FirstOrDefault(x => x.Value == l_levelName).Key;
                // Change state
                _instance.GameManagerState.StateChange(l_gameScene);
                // Return
                return;
            }

            // Update remaining lifes
            _instance._playerLifesText.GetComponent <Text>().text = "x" + _instance.PlayerLifes.ToString();
            // If no more lifes left, return to main menu
            if (_instance.PlayerLifes == 0)
            {
                _instance._gameManagerState.StateChange(EGameScenes.MainMenu);

                return;
            }

            // Get CharacterHealth component from player instance
            CharacterHealth l_characterHealth = _instance._playerInstance.GetComponent <CharacterHealth>();

            // Restore maximum health
            l_characterHealth.RestoreHealth(l_characterHealth.PlayerMaxHealth);

            // Set player gameObject to inactive
            _instance._playerInstance.SetActive(false);
            // Translate player gameObject to respawn position
            _instance._playerInstance.transform.Translate(
                _instance._currentCheckPointSpawnPosition.x - _instance._playerInstance.transform.position.x,
                _instance._currentCheckPointSpawnPosition.y - _instance._playerInstance.transform.position.y,
                0.0f);
            // Translate main camera gameObject to respawn position
            _instance._mainCamera.Translate(
                _instance._currentCheckPointSpawnPosition.x - _instance._playerInstance.transform.position.x,
                _instance._currentCheckPointSpawnPosition.y - _instance._playerInstance.transform.position.y,
                0.0f);
            // Set player not dead flag
            _instance._playerInstance.GetComponent <CharacterFlags>().IsDead = false;
            // Reset player control flags
            _instance._playerInstance.GetComponent <CharacterInputController2D>().ControlFlags.ResetFlags();
            // Set player gameObject to active
            _instance._playerInstance.SetActive(true);
            // Once everything is set up, set black panel inactive
            _instance._deathRespawnBlackPanel.SetActive(false);
        }