using System.Collections.Generic;
|
using UnityEngine;
|
|
public class TimeRushGiftCell : MonoBehaviour
|
{
|
[SerializeField] TextEx titleText;
|
[SerializeField] ItemCell[] itemCells;
|
[SerializeField] ButtonEx buyButton;
|
[SerializeField] ImageEx buyImage;
|
[SerializeField] TextEx buyText;
|
[SerializeField] TextEx buyText1;
|
[SerializeField] ImageEx moneyIconImage;
|
[SerializeField] TextEx limitCountText;
|
[SerializeField] ImageEx redImage;
|
TimeRushManager manager { get { return TimeRushManager.Instance; } }
|
StoreModel storeModel { get { return StoreModel.Instance; } }
|
public void Display(int index, List<TimeRushGiftItem> giftItems)
|
{
|
if (giftItems.IsNullOrEmpty() || index < 0 || index >= giftItems.Count)
|
return;
|
TimeRushGiftItem item = giftItems[index];
|
if (item.type == 0)
|
{
|
DisplayStore(item.id);
|
return;
|
}
|
|
DisplayCTG(item.id);
|
}
|
|
private void DisplayCTG(int ctgId)
|
{
|
redImage.SetActive(false);
|
buyText.SetActive(true);
|
buyText1.SetActive(false);
|
moneyIconImage.SetActive(false);
|
|
if (!RechargeManager.Instance.TryGetOrderInfo(ctgId, out var orderConfig))
|
return;
|
if (!RechargeManager.Instance.TryGetRechargeCount(ctgId, out var rechargeCount))
|
return;
|
if (!CTGConfig.HasKey(ctgId))
|
return;
|
if (!RechargeManager.Instance.TryGetRechargeItem(ctgId, out var rechargeItemList))
|
return;
|
|
CTGConfig config = CTGConfig.Get(ctgId);
|
|
bool isCanBuy = manager.IsCanBuyCTG(ctgId);
|
titleText.text = config.Title;
|
buyImage.SetSprite(isCanBuy ? "DailySpecialsBuy1" : "DailySpecialsBuy2");
|
buyText.text = !isCanBuy ? Language.Get("storename11") : Language.Get("PayMoneyNum", UIHelper.GetMoneyFormat(orderConfig.PayRMBNum));
|
limitCountText.SetActive(true);
|
limitCountText.text = Language.Get("TimeRush07", UIHelper.AppendColor(rechargeCount.totalCount >= config.TotalBuyCount ? TextColType.Red : TextColType.LightGreen, Mathf.Max(0, config.TotalBuyCount - rechargeCount.totalCount).ToString()));
|
buyButton.interactable = isCanBuy;
|
buyButton.SetListener(() =>
|
{
|
RechargeManager.Instance.CTG(ctgId);
|
});
|
|
for (int i = 0; i < itemCells.Length; i++)
|
{
|
var itemBaisc = itemCells[i];
|
if (i < rechargeItemList.Count)
|
{
|
var itemInfo = rechargeItemList[i];
|
itemBaisc.SetActive(true);
|
itemBaisc.Init(new ItemCellModel((int)itemInfo.id, false, itemInfo.countEx));
|
itemBaisc.button.AddListener(() =>
|
{
|
ItemTipUtility.Show((int)itemInfo.id);
|
});
|
}
|
else
|
{
|
itemBaisc.SetActive(false);
|
}
|
}
|
}
|
|
private void DisplayStore(int id)
|
{
|
if (!StoreConfig.HasKey(id))
|
return;
|
StoreConfig storeConfig = StoreConfig.Get(id);
|
int remainNum;
|
storeModel.TryGetIsSellOut(storeConfig, out remainNum);
|
|
bool isFree = manager.IsFree(id);
|
titleText.text = storeConfig.Name;
|
|
limitCountText.SetActive(!isFree);
|
limitCountText.text = Language.Get("TimeRush08", UIHelper.AppendColor(remainNum == 0 ? TextColType.Red : TextColType.LightGreen, Mathf.Max(0, remainNum).ToString(), true));
|
|
bool isCanBuy = manager.IsCanBuyShop(id);
|
|
redImage.SetActive(isFree && isCanBuy);
|
buyText.SetActive(isFree || !isCanBuy);
|
buyText.text = isFree ? Language.Get("L1127") : Language.Get("storename11");
|
buyText1.SetActive(!isFree && isCanBuy);
|
buyText1.text = UIHelper.GetMoneyFormat(storeConfig.MoneyNum);
|
moneyIconImage.SetActive(!isFree && isCanBuy);
|
moneyIconImage.SetIconWithMoneyType(1);
|
buyImage.SetSprite(isCanBuy ? "DailySpecialsBuy1" : "DailySpecialsBuy2");
|
buyButton.interactable = isCanBuy;
|
buyButton.SetListener(() =>
|
{
|
storeModel.SendBuyShopItemWithPopCheck(storeConfig, 1, (int)BuyStoreItemCheckType.ActGift);
|
});
|
|
var items = storeModel.GetShopItemlistByIndex(storeConfig);
|
for (int i = 0; i < itemCells.Length; i++)
|
{
|
var itemBaisc = itemCells[i];
|
if (i < items.Count)
|
{
|
var itemInfo = items[i];
|
itemBaisc.SetActive(true);
|
itemBaisc.Init(new ItemCellModel(itemInfo.itemId, false, itemInfo.count));
|
itemBaisc.button.AddListener(() =>
|
{
|
ItemTipUtility.Show(itemInfo.itemId);
|
});
|
}
|
else
|
{
|
itemBaisc.SetActive(false);
|
}
|
}
|
}
|
}
|
public class TimeRushGiftItem
|
{
|
public int type;//0 商店id 1 充值id
|
public int id;
|
}
|