49 lines
1.5 KiB
C#
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;
|
|
}
|
|
}
|
|
|