diff --git a/Assets/Scripts/Managers/GameOverManager.cs b/Assets/Scripts/Managers/GameOverManager.cs index 1ff72d8484713b61aaaf8360ac9f422ca928e492..d5564cac43da18a413884113ad6f1130a4b620b8 100644 --- a/Assets/Scripts/Managers/GameOverManager.cs +++ b/Assets/Scripts/Managers/GameOverManager.cs @@ -1,44 +1,39 @@ using System.Collections; using UnityEngine; using UnityEngine.Events; +using UnityEngine.SceneManagement; -namespace Nightmare -{ - public class GameOverManager : MonoBehaviour - { +namespace Nightmare { + public class GameOverManager : MonoBehaviour { private PlayerHealth playerHealth; [SerializeField] private TimerManager timerManager; Animator anim; - LevelManager lm; - private UnityEvent listener; - void Awake () - { + public float restartDelay = 10f; + float restartTimer; + + void Awake () { playerHealth = FindObjectOfType<PlayerHealth>(); - anim = GetComponent <Animator> (); + anim = GetComponent<Animator>(); lm = FindObjectOfType<LevelManager>(); - EventManager.StartListening("GameOver", ShowGameOver); } - void OnDestroy() - { - EventManager.StopListening("GameOver", ShowGameOver); - } + void Update() { + if (playerHealth.currentHealth <= 0) { + anim.SetTrigger("GameOver"); + restartTimer += Time.deltaTime; - void ShowGameOver() - { - anim.SetBool("GameOver", true); - timerManager.ResetTimer(); + if (restartTimer >= restartDelay) { + SceneManager.LoadScene("Menu"); + anim.SetBool("GameOver", false); + } + } } - private void ResetLevel() - { + private void ResetLevel() { ScoreManager.score = 0; - LevelManager lm = FindObjectOfType<LevelManager>(); - lm.LoadInitialLevel(); - anim.SetBool("GameOver", false); - playerHealth.ResetPlayer(); + timerManager.ResetTimer(); } } } \ No newline at end of file