Ludo-3D/Assets/Scripts/UI/Pages/PopUp/PauseMenuPopup.cs
Ashby Issac 627ddacb10 Fix: User dice timer system.
Fix: User's dice roll attempt was not stopping while the game was paused.
2026-02-23 17:09:04 +05:30

75 lines
2.3 KiB
C#

using UnityEngine;
using UnityEngine.UI;
public class PauseMenuPopup : PopupBase
{
[Header("Buttons")]
[SerializeField] private Button homeBtn;
[SerializeField] private Button playBtn;
[SerializeField] private Button restartBtn;
private UIManager uiManager;
private SoundManager soundManager;
private GameModeHandler gameModeHandler;
private void OnEnable()
{
playBtn.onClick.AddListener(OnClick_PlayButton);
homeBtn.onClick.AddListener(OnClick_HomeButton);
restartBtn.onClick.AddListener(OnClick_RestartButton);
}
private void OnDisable()
{
playBtn.onClick.RemoveListener(OnClick_PlayButton);
homeBtn.onClick.RemoveListener(OnClick_HomeButton);
restartBtn.onClick.RemoveListener(OnClick_RestartButton);
}
private void OnClick_PlayButton()
{
SetUIManager();
uiManager.GameManager.SetGameState(GameState.InGame);
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
popupManager.HidePopup(popupType);
ScreenManager screenManager = InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>();
screenManager.ShowScreen(ScreenType.InGameHUDScreen);
SetGameModeHandler();
gameModeHandler.GameplayManager.OnGameResumed();
}
private void OnClick_HomeButton()
{
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
popupManager.HidePopup(popupType);
SetUIManager();
uiManager.GameManager.OnGameStateChanged(GameState.InMenu);
}
private void SetUIManager()
{
uiManager = uiManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<UIManager>() : uiManager;
}
private void OnClick_RestartButton()
{
popupManager.HidePopup(popupType);
SetGameModeHandler();
gameModeHandler.OnGameRestarted();
}
private void SetGameModeHandler()
{
gameModeHandler = gameModeHandler == null ? InterfaceManager.Instance.GetInterfaceInstance<GameModeHandler>() : gameModeHandler;
}
}