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

82 lines
2.3 KiB
C#

using asap.core;
using game;
using GameCore;
using System;
using UnityEngine;
public class LuckyADTaskItem : ItemRewardBase
{
public LuckyADTaskItemData data { get; private set; }
GameObject bg_gray;
GameObject bg_normal;
GameObject bg_done;
AdvertButton btn_advert;
Action<LuckyADTaskItem> onBuySuccess;
private void Awake()
{
bg_gray = transform.Find("bg_gray").gameObject;
bg_normal = transform.Find("bg_normal").gameObject;
bg_done = transform.Find("bg_done").gameObject;
btn_advert = transform.Find("btn_advert").GetComponent<AdvertButton>();
for (int i = 0; i < 2; i++)
{
var rewardItem = transform.Find($"reward{i + 1}").GetComponent<RewardItemNew>();
if (rewardItem != null)
{
rewardItemNews.Add(rewardItem);
}
}
}
private void Start()
{
btn_advert.SetData(OnBuySuccess, AdvertPopupType.LuckyMission);
btn_advert.adticketBtnGray.onClick.AddListener(() => ToastPanel.Show(LocalizationMgr.GetText("EventLuckyCardsADTaskPopupPanel_4")));
}
void OnBuySuccess()
{
data.state = -1;
Refresh();
onBuySuccess?.Invoke(this);
}
public void Init(LuckyADTaskItemData luckyTaskItemData, Action<LuckyADTaskItem> onBuySuccess)
{
this.data = luckyTaskItemData;
this.onBuySuccess = onBuySuccess;
SetItem();
}
void SetItem()
{
Refresh();
System.Collections.Generic.List<ItemData> itemData = GContext.container.Resolve<PlayerItemData>().GetItemDataByDropIdLureInflation(data.inflationRate, data.reward);
SetItemData(itemData);
}
public void Refresh()
{
bg_gray.gameObject.SetActive(data.state != 1);
bg_normal.gameObject.SetActive(data.state == 1);
bg_done.SetActive(data.state == -1);
btn_advert.gameObject.SetActive(data.state >= 0);
if (data.state == 0)
{
btn_advert.SetGray();
}
else if (data.state == 1)
{
btn_advert.ShowBtn();
}
}
}
public class LuckyADTaskItemData
{
public int index;
public int reward;
/// <summary>
/// // 0:不可看 1:可看 -1:已看
/// </summary>
public int state;
public float inflationRate;
}