using System.Collections.Generic; using UnityEngine; public class DailySpecialsWeekGiftCell : MonoBehaviour { [SerializeField] ItemCell[] itemCells; [SerializeField] ImageEx imgGiftIcon; [SerializeField] ImageEx imgRate; [SerializeField] ImageEx imgMask; [SerializeField] TextEx txtRate; [SerializeField] TextEx txtGiftTitle; [SerializeField] TextEx txtLimitInfo; [SerializeField] ButtonEx btnBuy; [SerializeField] ImageEx imgBuy; [SerializeField] TextEx txtBuy; DailySpecialsManager manager { get { return DailySpecialsManager.Instance; } } public void Display(int index, List ctgIDList) { if (ctgIDList.IsNullOrEmpty() || ctgIDList.Count <= index || index < 0) { return; } int ctgId = ctgIDList[index]; if (!RechargeManager.Instance.TryGetOrderInfo(ctgId, out var orderInfoConfig)) { return; } if (!CTGConfig.HasKey(ctgId)) { return; } CTGConfig ctgConfig = CTGConfig.Get(ctgId); int[][] gainItemList = ctgConfig.GainItemList; if (gainItemList.IsNullOrEmpty()) { return; } for (int i = 0; i < itemCells.Length; i++) { if (i < gainItemList.Length) { int itemId = gainItemList[i][0]; int count = gainItemList[i][1]; itemCells[i].Init(new ItemCellModel(itemId, false, count)); itemCells[i].button.SetListener(() => { ItemTipUtility.Show(itemId); }); itemCells[i].SetActive(true); } else { itemCells[i].SetActive(false); } } bool hasRechargeCount = RechargeManager.Instance.TryGetRechargeCount(ctgId, out RechargeCount _rechargeCount); bool isBuy = manager.IsWeekGiftBuy(ctgId); imgRate.SetActive(!isBuy); imgMask.SetActive(isBuy); imgBuy.SetSprite(!isBuy ? "DailySpecialsBuy1" : "DailySpecialsBuy2"); txtBuy.text = !isBuy ? Language.Get("PayMoneyNum", orderInfoConfig.PayRMBNumOnSale) : Language.Get("storename11"); imgGiftIcon.SetSprite(ctgConfig.Icon); txtGiftTitle.text = ctgConfig.Title; txtRate.text = Language.Get("DailySpecials07", ctgConfig.Percentage); txtLimitInfo.text = Language.Get("storename7", ctgConfig.WeekBuyCount - _rechargeCount.weekPayCount, ctgConfig.WeekBuyCount); btnBuy.SetListener(() => { if (isBuy) { return; } RechargeManager.Instance.CTG(ctgId); }); } }