KitchenChaos/Assets/Scripts/UI/GameOverUI.cs

53 lines
1.6 KiB
C#

using System;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class GameOverUI : MonoBehaviour
{
public static GameOverUI Instance { get; private set; }
[SerializeField] private TextMeshProUGUI recipeDeliveredText;
[SerializeField] private TextMeshProUGUI pointsText;
[SerializeField] private Button restartButton;
[SerializeField] private Button mainMenuButton;
private void Awake()
{
Instance = this;
restartButton.onClick.AddListener(() => Loader.Load(Loader.Scene.GameScene));
mainMenuButton.onClick.AddListener(() => Loader.Load(Loader.Scene.MainMenuScene));
}
private void Start()
{
KitchenGameManager.Instance.OnStateChanged += KitchenGameManager_OnStateChanged;
Hide();
restartButton.Select();
}
private void KitchenGameManager_OnStateChanged(object sender, System.EventArgs e)
{
if (KitchenGameManager.Instance.IsGameOver())
{
recipeDeliveredText.text = DeliveryManager.Instance.SuccessfulRecipes.ToString();
pointsText.text = DeliveryManager.Instance.Points.ToString();
Show();
GamePlayingClockUI.Instance.Hide();
DeliveryManagerUI.Instance.Hide();
PointsUI.Instance.Hide();
}
else
{
Hide();
GamePlayingClockUI.Instance.Show();
DeliveryManagerUI.Instance.Show();
PointsUI.Instance.Show();
}
}
public void Hide() => gameObject.SetActive(false);
public void Show() => gameObject.SetActive(true);
}