using System.Collections; using System.Collections.Generic; using BlueWater.Audios; using BlueWater.Tycoons; using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.InputSystem; using UnityEngine.UI; namespace BlueWater.Uis { public class TycoonSelectCard : PausePopupUi { [SerializeField] private GameObject _panel; [SerializeField] private Transform _contents; [SerializeField] private string _openSfxName = "OpenNormalRewardBox"; [Title("참조")] [SerializeField] private UiEventsController _uiEventsController; private List _tycoonCards = new(3); private LevelData _currentLevelData; private TycoonManager _tycoonManager; private TycoonCardController _tycoonCardController; private InputAction _interactionEAction; private void Start() { _panel.SetActive(false); _interactionEAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.InteractionE); _tycoonManager = TycoonManager.Instance; _tycoonCardController = _tycoonManager.TycoonCardController; EventManager.OnOpenedNormalRewardBox += CreateCard; } private void OnDestroy() { EventManager.OnOpenedNormalRewardBox -= CreateCard; if (_interactionEAction != null) { _interactionEAction.performed -= OnInteractionE; } } public override void Open() { OpenSwitch(InputActionMaps.TycoonUi); AudioManager.Instance.PlaySfx(_openSfxName, ignoreTimeScale: true); _panel.SetActive(true); } public override void Close() { CloseSwitch(InputActionMaps.Tycoon); _panel.SetActive(false); EventSystem.current.SetSelectedGameObject(null); } public override void EnableInput() { _interactionEAction.performed += OnInteractionE; _uiEventsController.EnableAutoNavigate(); } public override void DisableInput() { _interactionEAction.performed -= OnInteractionE; _uiEventsController.DisableAutoNavigate(); } public void OnInteractionE(InputAction.CallbackContext context) { var current = EventSystem.current.currentSelectedGameObject; if (!current) return; var currenButton = current.GetComponent