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

71 lines
1.9 KiB
C#

using asap.core;
using GameCore;
using UnityEngine;
using UnityEngine.UI;
public class MiniBattlePassItemFirst : MiniBattlePassItem
{
public GameObject grandClaimed;
public RewardItemNew freeReward;
public GameObject freeClaim;
public Button freeClaimBtn;
public GameObject freeClaimed;
protected override void Start()
{
base.Start();
freeClaimBtn.onClick.AddListener(OnFreeClaimClicked);
}
private void OnFreeClaimClicked()
{
var animHost = GetComponentInParent<IMiniBattlePassAnimatedClaim>();
if (animHost != null)
{
if (animHost.TryScheduleClaim(data.index, true))
{
return;
}
if (animHost.ClaimAnimationInProgress)
{
return;
}
}
miniBP.ReceiveReward(data.index, true);
GContext.Publish(new RefreshPanelEvent());
}
public override void Init(MiniBPItemData bpItemFirstData, MiniBattlePassDataModel miniBP)
{
base.Init(bpItemFirstData, miniBP);
freeReward.SetData(bpItemFirstData.freeReward);
bg_done.SetActive(isClaim);
}
/// <summary>
/// 购买VIP 或 领奖之后刷新界面
/// </summary>
public override void Refresh()
{
base.Refresh();
freeClaim.SetActive(!data.isFreeClaimed && isClaim);
freeClaimed.SetActive(data.isFreeClaimed);
grandClaim.SetActive(data.isGrandReward && !data.isGrandClaimed && isClaim);
grandClaimed.SetActive(data.isGrandClaimed);
}
}
public class MiniBPItemData
{
public int index;
public int progress;
public int maxProgress;
public string taskName;
public ItemData freeReward;
public ItemData grandReward;
public bool isGrandReward;
public bool isGrandClaimed;
public bool isFreeClaimed;
public bool UILockVip;
}