using System; using System.Collections.Generic; using System.Linq; using Adventurer.Runtime; using Core.Runtime; using EventSystem.Runtime; using GameUI.Runtime.Events; using Item.Runtime; using Quests.Runtime; using TMPro; using UnityEngine; using UnityEngine.Serialization; using UnityEngine.UI; namespace GameUI.Runtime { public class InfoQuestPanel : BaseMonobehaviour { #region Publics [Header("UI Text Elements")] public TextMeshProUGUI m_title; public TextMeshProUGUI m_description; public TextMeshProUGUI m_objective; public TextMeshProUGUI m_reward; #endregion #region Privates and Protected [Header("UI Control Elements")] [SerializeField] private GameObject _buttonActivation; [FormerlySerializedAs("_buttonRecap")] [SerializeField] private GameObject _panelRecap; [SerializeField] private GameObject _adventurersOnThisQuestPanel; [SerializeField] private GameObject _adventurersSelection; private List _adventurersSelected = new List(); private Button _activationButton; private TMP_Text _activationButtonText; #endregion #region Unity API private void Start() { InitializeUI(); RegisterEventHandlers(); LocalizeTexts(); } private void OnDestroy() { UnregisterEventHandlers(); } private void Update() { UpdateActivationButtonState(); } #endregion #region Initialization private void InitializeUI() { _activationButton = _buttonActivation.GetComponent