33 lines
1.3 KiB
C#
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);
|
|
}
|
|
} |