using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
///
/// Финальный экран победы при успешном завершении игры на 2-м уровне.
///
public class FinalVictoryUI : MonoBehaviour
{
private static FinalVictoryUI _instance;
public static FinalVictoryUI Instance
{
get
{
if (_instance == null)
{
_instance = Object.FindAnyObjectByType(FindObjectsInactive.Include);
}
return _instance;
}
}
[Header("Корневая панель")]
[SerializeField] private GameObject victoryPanelRoot;
public bool IsOpen => victoryPanelRoot != null && victoryPanelRoot.activeInHierarchy;
[Header("Кнопки")]
[SerializeField] private Button restartButton;
[SerializeField] private Button mainMenuButton;
private void Awake()
{
_instance = this;
if (victoryPanelRoot == null)
victoryPanelRoot = gameObject;
if (restartButton != null)
{
restartButton.onClick.RemoveAllListeners();
restartButton.onClick.AddListener(OnRestartGameClicked);
}
if (mainMenuButton != null)
{
mainMenuButton.onClick.RemoveAllListeners();
mainMenuButton.onClick.AddListener(OnMainMenuClicked);
}
}
public void ShowVictoryScreen()
{
if (!gameObject.activeSelf) gameObject.SetActive(true);
if (victoryPanelRoot != null)
victoryPanelRoot.SetActive(true);
Time.timeScale = 0f;
Cursor.lockState = CursorLockMode.None;
Cursor.visible = true;
GameAudioSynthesizer.PlaySuccessChime();
}
public void OnRestartGameClicked()
{
Time.timeScale = 1f;
SceneManager.LoadScene("SampleScene"); // Начать с 1-го уровня
}
public void OnMainMenuClicked()
{
Time.timeScale = 1f;
SceneManager.LoadScene("MainMenu");
}
}