diff --git a/Assets/Scripts/Gameplay/GameModeHandler.cs b/Assets/Scripts/Gameplay/GameModeHandler.cs index c0a2884..a30e5b6 100644 --- a/Assets/Scripts/Gameplay/GameModeHandler.cs +++ b/Assets/Scripts/Gameplay/GameModeHandler.cs @@ -25,7 +25,6 @@ public class BotModeData public class GameModeHandler : MonoBehaviour, IBase, IBootLoader, IDataLoader { private GameplayManager gameplayManager; - private GameManager gameManager; private PVPModeData pvpModeData; private BotModeData botModeData; @@ -34,6 +33,11 @@ public class GameModeHandler : MonoBehaviour, IBase, IBootLoader, IDataLoader get; private set; } + public GameManager GameManager + { + get; private set; + } + public void Initialize() { InterfaceManager.Instance.RegisterInterface(this); @@ -41,7 +45,7 @@ public class GameModeHandler : MonoBehaviour, IBase, IBootLoader, IDataLoader public void InitializeData() { - gameManager = InterfaceManager.Instance.GetInterfaceInstance(); + GameManager = InterfaceManager.Instance.GetInterfaceInstance(); gameplayManager = InterfaceManager.Instance.GetInterfaceInstance(); } @@ -70,7 +74,7 @@ public class GameModeHandler : MonoBehaviour, IBase, IBootLoader, IDataLoader public void OnGameRestarted() { - gameManager.OnGameStateChanged(GameState.InGame); + GameManager.OnGameStateChanged(GameState.InGame); gameplayManager.ResetGameRestartData(); switch (CurrentGameModeType) { diff --git a/Assets/Scripts/UI/Pages/PopUp/GameOverPopup.cs b/Assets/Scripts/UI/Pages/PopUp/GameOverPopup.cs index 0ea76bd..deefe5c 100644 --- a/Assets/Scripts/UI/Pages/PopUp/GameOverPopup.cs +++ b/Assets/Scripts/UI/Pages/PopUp/GameOverPopup.cs @@ -50,7 +50,7 @@ public class GameOverPopup : PopupBase { HidePopup(); - gameModeHandler = gameModeHandler == null ? InterfaceManager.Instance.GetInterfaceInstance() : gameModeHandler; + SetGameModeHandler(); gameModeHandler.OnGameRestarted(); } @@ -62,5 +62,13 @@ public class GameOverPopup : PopupBase public void OnMainMenuClicked() { HidePopup(); + + SetGameModeHandler(); + gameModeHandler.GameManager.OnGameStateChanged(GameState.InMenu); + } + + private void SetGameModeHandler() + { + gameModeHandler = gameModeHandler == null ? InterfaceManager.Instance.GetInterfaceInstance() : gameModeHandler; } }