This repository has been archived on 2024-08-16. You can view files and clone it, but cannot push or open issues or pull requests.
sota/RunningLateGame/Assets/Scripts/OverlayPauseMenu.cs

85 lines
2.7 KiB
C#

/*
* author: mark joshwel, sai puay
* date: 11/8/2024
* description: script for handling pause overlay functions
*/
using UnityEngine;
using UnityEngine.UIElements;
/// <summary>
/// class managing the pause overlay and button function invocations
/// </summary>
public class OverlayPauseMenu : CommonMenu
{
/// <summary>
/// button to resume the run
/// </summary>
private Button _buttonResume;
// /// <summary>
// /// button to retry the run
// /// </summary>
// private Button _buttonRetry;
/// <summary>
/// button to return to the main menu
/// </summary>
private Button _buttonReturn;
/// <summary>
/// function to associate a display state with the menu,
/// and subscribe button events to their respective functions
/// </summary>
public override void OnEnable()
{
// set the associated state and call the base OnEnable
associatedState = GameManager.DisplayState.OverlayPauseMenu;
base.OnEnable();
// get the resume button from the ui root and subscribe appropriate functions
_buttonResume = UI.Q<Button>("ButtonResume");
_buttonResume.clicked += PlayClick;
_buttonResume.clicked += OptionResumeGame;
// // get the retry button from the ui root and subscribe appropriate functions
// _buttonRetry = UI.Q<Button>("ButtonRetry");
// _buttonRetry.clicked += PlayClick;
// _buttonRetry.clicked += OptionRetryGame;z
// get the return button from the ui root and subscribe appropriate functions
_buttonReturn = UI.Q<Button>("ButtonReturn");
_buttonReturn.clicked += PlayClick;
_buttonReturn.clicked += OptionReturnToMainMenu;
}
/// <summary>
/// handles resume button press,
/// signals the game manager appropriately
/// </summary>
private static void OptionResumeGame()
{
Debug.Log("OverlayPauseMenu.OptionResumeGame (static shared): clicked, resuming game");
GameManager.Instance.NewGame();
}
/// <summary>
/// handles retry button press,
/// signals the game manager appropriately
/// </summary>
public static void OptionRetryGame()
{
Debug.Log("OverlayPauseMenu.OptionRetryGame (static shared): clicked, retrying run");
GameManager.Instance.RestartRun();
}
/// <summary>
/// handles return button press,
/// signals the game manager appropriately
/// </summary>
public static void OptionReturnToMainMenu()
{
Debug.Log("OverlayPauseMenu.OptionReturnToMainMenu (static shared): clicked, returning to main menu");
GameManager.Instance.RestartGame();
}
}