Files
back_cantanBuilding/Assets/Scripts/EventCan/EventCanRewardPanel.cs
2026-05-26 16:15:54 +08:00

49 lines
1.5 KiB
C#

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<RectTransform>());
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;
}
}