using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UIElements; using VOID.Generic.Dict; using VOID.Generic.Objects.Abstract.Events; using VOID.Generic.Objects.Unit; using VOID.Generic.Objects.Unit.Actions; using VOID.Generic.Objects.Unit.Actions.Exceptions; using VOID.Generic.Objects.Unit.Events; using VOID.Generic.Player; using VOID.Generic.Turn; namespace VOID.UserInterface.Game { /// /// Manages ActionBar's Turn elements for current player only:
/// - Turn resources of
/// - Button to start new
/// - Buttons to and when in combat ///
public class ActionBarTurnInfoUI : MonoBehaviour { public static ActionBarTurnInfoUI current { get; private set; } // ActionBar for this unit private UnitObject _unit; private UnitObjectActionBar _actionBar; // Visual Elements - Turn Info private VisualElement _turnInfoElement; private VisualElement _actionPointsElement; private readonly List _actionPointsElements = new(); private ProgressBar _moveBar; private Button _nextTurnButton; private Button _startTurnButton; private Button _endTurnButton; // References private PlayerController _playerController; private void Awake() { current = this; var uiDocument = gameObject.GetComponent(); var templateElement = uiDocument.rootVisualElement; // Find all important elements _turnInfoElement = templateElement.Q("turn-info"); _actionPointsElement = templateElement.Q("action-points"); _moveBar = templateElement.Q("move-bar"); _nextTurnButton = templateElement.Q