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")); } } }