// 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); }
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); } }
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); } }
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; } }
/// <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); }