TurnBasedStrategyCourse/Assets/Scripts/UI/TurnSystemUI.cs

33 lines
1.3 KiB
C#

using System;
using TMPro;
using UnityEngine;
using UnityEngine.Serialization;
using UnityEngine.UI;
namespace UI {
public class TurnSystemUI : MonoBehaviour {
[FormerlySerializedAs("NextTurnButton")] [SerializeField] private Button nextTurnButton;
[FormerlySerializedAs("TurnText")] [SerializeField] private TextMeshProUGUI turnText;
[SerializeField] private GameObject enemyTurnVisualGameObject;
private void Start() {
nextTurnButton.onClick.AddListener(() => TurnSystem.Instance.NextTurn());
TurnSystem.Instance.OnTurnChanged += TurnSystem_OnTurnChanged;
UpdateTurnText();
UpdateEnemyTurnVisual();
UpdateEndTurnButtonVisibility();
}
private void TurnSystem_OnTurnChanged(object sender, EventArgs e) {
UpdateTurnText();
UpdateEnemyTurnVisual();
UpdateEndTurnButtonVisibility();
}
private void UpdateTurnText() => turnText.text = $"Turn {TurnSystem.Instance.TurnNumber}";
private void UpdateEnemyTurnVisual() => enemyTurnVisualGameObject.SetActive(!TurnSystem.Instance.IsPlayerTurn);
private void UpdateEndTurnButtonVisibility() => nextTurnButton.gameObject.SetActive(TurnSystem.Instance.IsPlayerTurn);
}
}