using UnityEngine; using UnityEngine.UI; public class ActionUIHandler : MonoBehaviour { #region Statication public static ActionUIHandler instance; private void Awake() { if (instance != null && instance != this) { Destroy(gameObject); return; } instance = this; } #endregion private PlayerEntity selectedEntity; private RangedWeapon possibleRanged; [Header("UI")] [SerializeField] private Vector3 offset; [SerializeField] private GameObject actionUI; [SerializeField] private Button attackButton; [SerializeField] private Button reloadButton; public void ShowUI(PlayerEntity target) { possibleRanged = null; selectedEntity = target; transform.position = Input.mousePosition + offset; if (target.currentWeapon.TryGetComponent(out RangedWeapon isRanged)) { possibleRanged = isRanged; reloadButton.gameObject.SetActive(true); } else { reloadButton.gameObject.SetActive(false); } actionUI.SetActive(true); } public void HideUI() { actionUI.SetActive(false); } public void ReloadGun() { possibleRanged.Reload(); } public void Attack() { selectedEntity.Attack(); } public void SkipTurn() { selectedEntity.SkipTurn(); } public void MoveEntity() { HideUI(); PlayerEntityMovement.instance.SelectEntity(selectedEntity); } }