84 lines
2.2 KiB
C#
84 lines
2.2 KiB
C#
|
|
using asap.core;
|
|
using GameCore;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public interface IMiniBattlePassItem
|
|
{
|
|
void Init(MiniBPItemData bpItemFirstData, MiniBattlePassDataModel miniBP);
|
|
void Refresh();
|
|
void UnlockRefresh();
|
|
}
|
|
public class MiniBattlePassItem : MonoBehaviour, IMiniBattlePassItem
|
|
{
|
|
public GameObject bg_normal;
|
|
public GameObject bg_done;
|
|
public RewardItemNew grandReward;
|
|
public GameObject grandClaimLocked;
|
|
public GameObject fx_unlocked;
|
|
public GameObject grandClaim;
|
|
public Button grandClaimBtn;
|
|
public TMP_Text text_task;
|
|
public Image bar;
|
|
public TMP_Text text_bar;
|
|
protected MiniBattlePassDataModel miniBP;
|
|
protected bool isClaim;
|
|
|
|
protected virtual void Start()
|
|
{
|
|
grandClaimBtn.onClick.AddListener(ClickGrandClaim);
|
|
}
|
|
private void ClickLock()
|
|
{
|
|
if (isClaim)
|
|
{
|
|
ToastPanel.Show(LocalizationMgr.GetText("UI_ToastPanel_106"));
|
|
}
|
|
}
|
|
|
|
public MiniBPItemData data;
|
|
|
|
public virtual void Init(MiniBPItemData bpItemFirstData, MiniBattlePassDataModel miniBP)
|
|
{
|
|
if (bpItemFirstData == null)
|
|
{
|
|
return;
|
|
}
|
|
this.miniBP = miniBP;
|
|
this.data = bpItemFirstData;
|
|
isClaim = bpItemFirstData.progress >= bpItemFirstData.maxProgress;
|
|
text_bar.text = $"{bpItemFirstData.progress}/{bpItemFirstData.maxProgress}";
|
|
bar.fillAmount = (float)bpItemFirstData.progress / bpItemFirstData.maxProgress;
|
|
grandReward.SetData(bpItemFirstData.grandReward);
|
|
text_task.text = bpItemFirstData.taskName;
|
|
bg_normal.SetActive(!isClaim);
|
|
Refresh();
|
|
}
|
|
|
|
public virtual void Refresh()
|
|
{
|
|
grandClaimLocked.gameObject.SetActive(!data.isGrandReward);
|
|
}
|
|
public void UnlockRefresh()
|
|
{
|
|
fx_unlocked.SetActive(true);
|
|
}
|
|
private void ClickGrandClaim()
|
|
{
|
|
if (data.isGrandReward)
|
|
{
|
|
//领取付费奖励的逻辑
|
|
miniBP.ReceiveReward(data.index, false);
|
|
//Refresh();
|
|
GContext.Publish(new RefreshPanelEvent());
|
|
}
|
|
else
|
|
{
|
|
ToastPanel.Show(LocalizationMgr.GetText("UI_ToastPanel_106"));
|
|
}
|
|
}
|
|
}
|
|
|