Files
back_cantanBuilding/Assets/Scripts/UI/RewardPopup/RewardAlbumComplete.cs
2026-05-26 16:15:54 +08:00

66 lines
1.8 KiB
C#

using asap.core;
using cfg;
using game;
using GameCore;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class RewardAlbumComplete : MonoBehaviour
{
public Button btnClose;
public Transform reward_group;
public AlbumAttribute albumAttribute;
List<RewardItemNew> items;
public List<ItemData> itemDatas = new List<ItemData>();
private void Awake()
{
btnClose = transform.Find("btn_close").GetComponent<Button>();
reward_group = transform.Find("reward_group");
albumAttribute = transform.Find("album").GetComponent<AlbumAttribute>();
}
private void Start()
{
btnClose.onClick.AddListener(OnClickClose);
}
void OnClickClose()
{
GContext.Publish(new ShowData(RewardType.Destroy));
}
public void Show(int id, List<RewardItemNew> rewardItems)
{
items = rewardItems;
GContext.Publish(new VibrationData(HapticTypes.HeavyImpact));
Album album = GContext.container.Resolve<Tables>().TbAlbum.GetOrDefault(id);
if (album != null)
{
albumAttribute.Init(album);
}
int itemCount = items.Count;
for (int i = 0; i < itemCount; i++)
{
items[i].gameObject.SetActive(false);
}
for (int i = 0; i < itemDatas.Count; i++)
{
items[i].transform.SetParent(reward_group);
items[i].SetRewardPopupData(itemDatas[i], false);
items[i].PlayOpen();
}
ShowReward();
}
async void ShowReward()
{
await Awaiters.Seconds(2f);
for (int i = 0; i < itemDatas.Count; i++)
{
await items[i].PlayClose();
await items[i].ParticleAttractor();
}
await Awaiters.Seconds(0.4f);
OnClickClose();
}
}