using System; using asap.core; using GameCore; using UnityEngine; using UnityEngine.UI; public class EventCanRewardPanel : MonoBehaviour { [SerializeField] private RewardItemNew reward; [SerializeField] private GameObject[] gemBanners; [SerializeField] private Button btnClaim; private Action _action; private IEventAggregator _eventAggregator; private ItemData _rewardItem; public void Init(ItemData rewardItem, int tunnelIdx, IEventAggregator ea, Action claimMark = null) { _rewardItem = rewardItem; reward.SetData(rewardItem, abbr: true); for (int i = 0; i < gemBanners.Length; i++) gemBanners[i].SetActive(i == tunnelIdx); btnClaim.onClick.AddListener(OnClaim); _action = claimMark; _eventAggregator = ea; } private void OnClaim() { UIManager.Instance.DestroyUI(UITypes.EventCanRewardPopupPanel); _action?.Invoke(); // _eventAggregator.Publish( // new EventCanTaskRewardClaimEvent(_rewardItem, reward.gameObject.transform.position)); var request = new EventRewardFlyStashRequest(_rewardItem, reward.icon.GetComponent()); GContext.Publish(request); } } public class EventCanTaskRewardClaimEvent { public ItemData Reward{get; set;} public Vector3 StartPos{get; set;} public EventCanTaskRewardClaimEvent(ItemData item, Vector3 pos) { Reward = item; StartPos = pos; } }