using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class CombatActionUI : MonoBehaviour
{
[SerializeField] private GameObject visualContainer;
[SerializeField] private Button[] combatActionButtons;
void OnEnable ()
{
TurnManager.Instance.OnBeginTurn += OnBeginTurn;
TurnManager.Instance.OnEndTurn += OnEndTurn;
}
void OnDisable ()
{
TurnManager.Instance.OnBeginTurn -= OnBeginTurn;
TurnManager.Instance.OnEndTurn -= OnEndTurn;
}
void OnBeginTurn (Character character)
{
if(!character.IsPlayer)
return;
visualContainer.SetActive(true);
for(int i = 0; i < combatActionButtons.Length; i++)
{
if(i < character.CombatActions.Count)
{
combatActionButtons[i].gameObject.SetActive(true);
CombatAction ca = character.CombatActions[i];
combatActionButtons[i].GetComponentInChildren<TextMeshProUGUI>().text = ca.DisplayName;
combatActionButtons[i].onClick.RemoveAllListeners();
combatActionButtons[i].onClick.AddListener(() => OnClickCombatAction(ca));
}
else
{
combatActionButtons[i].gameObject.SetActive(false);
}
}
}
void OnEndTurn (Character character)
{
visualContainer.SetActive(false);
}
public void OnClickCombatAction (CombatAction combatAction)
{
TurnManager.Instance.CurrentCharacter.CastCombatAction(combatAction);
}
}
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter