using UnityEngine;
using UnityEngine.UI;
using Ashwild.Settings;
namespace Ashwild.UI
{
///
/// The in-game pause menu, now a regular panel driven by . Wires its
/// buttons to the game manager (resume / invite / quit) and to the shared settings panel. Every
/// button is optional — leave a reference empty to omit it.
///
public class PausePanel : UIPanel
{
#region Panel Kind
///
/// The pause menu freezes the game while open.
///
public override PanelKind Kind => PanelKind.Pause;
#endregion
#region Serialized Fields
[Header("Buttons")]
[SerializeField] private Button resumeButton;
[SerializeField] private Button settingsButton;
[SerializeField] private Button inviteButton;
[SerializeField] private Button quitButton;
#endregion
#region State
///
/// The active game manager (the shared Instance is always a GameUIManager in gameplay).
///
private GameUIManager Game => UIManager.Instance as GameUIManager;
#endregion
#region Unity Lifecycle
///
/// Wires the buttons; runs once.
///
protected override void Awake()
{
base.Awake();
if (resumeButton != null) resumeButton.onClick.AddListener(() => Game?.Resume());
if (inviteButton != null) inviteButton.onClick.AddListener(() => Game?.InviteFriend());
if (quitButton != null) quitButton.onClick.AddListener(() => Game?.QuitToMenu());
if (settingsButton != null) settingsButton.onClick.AddListener(() => UIManager.Instance.OpenPanel());
}
#endregion
}
}