using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
//时装礼包
|
public class HeroSkinGiftWin : UIBase
|
{
|
[SerializeField] GroupButtonEx[] giftBtns;
|
|
[SerializeField] ItemCell[] itemCells;
|
[SerializeField] Text priceText;
|
[SerializeField] Button buyBtn;
|
[SerializeField] Transform saleOutObj;
|
[SerializeField] Image bg1;
|
[SerializeField] Image bg2;
|
[SerializeField] Button closeBtn;
|
|
int index;
|
|
protected override void InitComponent()
|
{
|
buyBtn.AddListener(() =>
|
{
|
RechargeManager.Instance.CTG(GeneralDefine.heroSkinGiftList[index]);
|
});
|
for (int i = 0; i < giftBtns.Length; i++)
|
{
|
int _index = i;
|
giftBtns[i].AddListener(() =>
|
{
|
index = _index;
|
Display();
|
});
|
}
|
closeBtn.AddListener(() =>
|
{
|
CloseWindow();
|
});
|
}
|
|
|
protected override void OnPreOpen()
|
{
|
index = 0;
|
RechargeManager.Instance.rechargeCountEvent += OnRechargeCountEvent;
|
|
for (int i = 0; i < giftBtns.Length; i++)
|
{
|
if (i < GeneralDefine.heroSkinGiftList.Length)
|
{
|
giftBtns[i].SetActive(true);
|
var cfg = CTGConfig.Get(GeneralDefine.heroSkinGiftList[i]);
|
RechargeManager.Instance.TryGetRechargeCount(GeneralDefine.heroSkinGiftList[i], out RechargeCount _rechargeCount);
|
if (_rechargeCount.todayCount < cfg.DailyBuyCount)
|
{
|
index = i;
|
break;
|
}
|
}
|
else
|
{
|
giftBtns[i].SetActive(false);
|
}
|
}
|
giftBtns[index].SelectBtn();
|
|
Display();
|
}
|
|
protected override void OnPreClose()
|
{
|
RechargeManager.Instance.rechargeCountEvent -= OnRechargeCountEvent;
|
}
|
|
void Display()
|
{
|
RechargeManager.Instance.TryGetRechargeItem(GeneralDefine.heroSkinGiftList[index], out var itemList);
|
for (int i = 0; i < itemCells.Length; i++)
|
{
|
if (i < itemList.Count)
|
{
|
itemCells[i].SetActive(true);
|
int itemID = itemList[i].id;
|
itemCells[i].Init(new ItemCellModel(itemID, true, itemList[i].countEx));
|
itemCells[i].button.SetListener(() => ItemTipUtility.Show(itemID));
|
}
|
else
|
{
|
itemCells[i].SetActive(false);
|
}
|
}
|
if (!RechargeManager.Instance.IsSellOut(GeneralDefine.heroSkinGiftList[index]))
|
{
|
buyBtn.SetActive(true);
|
saleOutObj.SetActive(false);
|
}
|
else
|
{
|
buyBtn.SetActive(false);
|
saleOutObj.SetActive(true);
|
}
|
|
|
RechargeManager.Instance.TryGetOrderInfo(GeneralDefine.heroSkinGiftList[index], out var orderInfoConfig);
|
priceText.text = Language.Get("PayMoneyNum", UIHelper.GetMoneyFormat(orderInfoConfig.PayRMBNumOnSale));
|
|
bg1.SetSprite($"HeroSkinGiftBg{index}_1");
|
bg2.SetSprite($"HeroSkinGiftBg{index}_2");
|
bg1.SetNativeSize();
|
bg2.SetNativeSize();
|
}
|
private void OnRechargeCountEvent(int obj)
|
{
|
Display();
|
}
|
|
|
|
|
}
|