using System;
using Continentis.MainGame;
using UnityEngine;
using UnityEngine.UI;
namespace Continentis.Menu
{
///
/// 覆盖跑局确认面板。
/// 挂载在确认面板的根 GameObject 上,自行管理显示/隐藏和按钮事件。
/// 由 MenuManager 通过 Show(onConfirm) 唤起;确认后先删除旧跑局存档,再执行回调。
///
public class ConfirmOverrideRunPanel : MonoBehaviour
{
public Button confirmButton;
public Button cancelButton;
private Action _onConfirm;
// ── 生命周期 ──────────────────────────────────────────────────────
private void Awake()
{
confirmButton.onClick.AddListener(OnConfirm);
cancelButton.onClick.AddListener(OnCancel);
gameObject.SetActive(false);
}
// ── 公共 API ──────────────────────────────────────────────────────
///
/// 显示确认面板。
///
/// 玩家点击"确认"后执行的回调(由 MenuManager 传入 StartNewRun)。
public void Show(Action onConfirm)
{
_onConfirm = onConfirm;
gameObject.SetActive(true);
}
// ── 按钮事件 ──────────────────────────────────────────────────────
private void OnConfirm()
{
gameObject.SetActive(false);
SaveManager.Instance.DeleteRunSave();
_onConfirm?.Invoke();
_onConfirm = null;
}
private void OnCancel()
{
gameObject.SetActive(false);
_onConfirm = null;
}
}
}