Files
ft/Client/Assets/Scripts/UI/ScratchTicket/EventScratchTicketRewardPopupPanel.cs
2026-06-29 21:18:33 +08:00

51 lines
1.7 KiB
C#

using asap.core;
using cfg;
using GameCore;
using System;
using UnityEngine;
using UnityEngine.UI;
namespace game
{
public class EventScratchTicketRewardPopupPanel : MonoBehaviour
{
[SerializeField] private RewardItemNew reward;
//[SerializeField] private GameObject[] gemBanners;
[SerializeField] private Image banner;
[SerializeField] private Button btnClaim;
private Action _action;
public void Init(ItemData rewardItem, EventScratchCard eventScratchCard, Action claimMark = null)
{
var dataManager = GContext.container.Resolve<EventScratchTicketDataManager>();
// Debug.Log($"[EventBreak] Init!!!!!!!!!!", this);
reward.SetData(rewardItem, abbr: true);
//for (int i = 0; i < gemBanners.Length; i++)
// gemBanners[i].SetActive(i == tunnelIdx);
banner.sprite = dataManager.SpriteAtlas.GetSprite(eventScratchCard.RewardIcon);
btnClaim.onClick.AddListener(OnClaim);
_action = claimMark;
}
private async void OnClaim()
{
try
{
// Debug.Log($"[EventBreak] Claim!!!!!!!!!!", this);
btnClaim.onClick.RemoveAllListeners();
_ = reward.ParticleAttractor();
await System.Threading.Tasks.Task.Delay(TimeSpan.FromSeconds(1.2f));
var dataManager = GContext.container.Resolve<EventScratchTicketDataManager>();
UIManager.Instance.DestroyUI(dataManager.GetRewardPanel());
_action?.Invoke();
}
catch (Exception e)
{
Debug.LogError(e);
btnClaim.onClick.AddListener(OnClaim);
}
}
}
}