//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, September 26, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System.Collections.Generic; namespace vnxbqy.UI { //自选充值 + 商店 public class RechargeGiftAct31Cell : CellView { [SerializeField] Text title; [SerializeField] Transform saleObj; [SerializeField] Text saleValue; [SerializeField] Text limiteBuyCntText; [SerializeField] List itemCells; [SerializeField] Button buyBtn; [SerializeField] Text priceText; [SerializeField] Image buyYetImg; [SerializeField] Text limitBuyText; Transform orgPriceImg; RechargeGiftAct31Model model { get { return ModelCenter.Instance.GetModel(); } } VipModel vipModel { get { return ModelCenter.Instance.GetModel(); } } CustomizedRechargeModel customizedRechargeModel { get { return ModelCenter.Instance.GetModel(); } } StoreModel storeModel { get { return ModelCenter.Instance.GetModel(); } } public void Display(int index) { OperationRechargeGiftAct act; OperationTimeHepler.Instance.TryGetOperation(RechargeGiftAct31Model.operaType, out act); List _list = null; StoreConfig.TryGetStoreConfigs(act.shopType, out _list); if (_list != null && index < _list.Count) { DisplayStore(_list[index]); return; } index = index - _list.Count; int ctgID = act.ctgIDs[index]; var ctgConfig = CTGConfig.Get(ctgID); title.text = ctgConfig.Title; saleObj.SetActive(true); saleValue.text = Language.Get("RechargeGiftActWin3", ctgConfig.Percentage); limitBuyText.text = ctgConfig.VipLevel > 0 ? Language.Get("SecretPlaceAct7", ctgConfig.VipLevel) : Language.Get("SecretPlaceAct6"); var countInfo = model.GetBuyCntInfo(ctgID); int buyCnt = countInfo.x; int totalCnt = countInfo.y; limiteBuyCntText.text = (totalCnt - buyCnt).ToString(); customizedRechargeModel.ShowUIItems(itemCells, ctgID); buyBtn.SetActive(buyCnt < totalCnt); buyBtn.SetListener(() => { if (PlayerDatas.Instance.baseData.VIPLv < ctgConfig.VipLevel) { SysNotifyMgr.Instance.ShowTip("VIPNotEnough", ctgConfig.VipLevel); return; } vipModel.CTG(ctgID); }); buyYetImg.SetActive(buyCnt >= totalCnt); OrderInfoConfig orderConfig; vipModel.TryGetOrderInfo(ctgID, out orderConfig); priceText.text = Language.Get("PayMoneyNum", UIHelper.GetMoneyFormat((long)orderConfig.PayRMBNum)); var obj = buyBtn.FindComponent("Transform", "saleImage"); if (obj != null) orgPriceImg = obj as Transform; if (orgPriceImg != null) { orgPriceImg.SetActiveIL(PlayerDatas.Instance.baseData.IsActive90Off); } } void DisplayStore(StoreConfig storeConfig) { bool isFree = storeConfig.MoneyNumber == 0; title.text = isFree ? Language.Get("StoreName_free") : Language.Get("StoreName_money"); saleObj.SetActive(false); int remainNum; storeModel.TryGetIsSellOut(storeConfig, out remainNum); limiteBuyCntText.text = remainNum.ToString(); var items = storeModel.GetShopItemlistByIndex(storeConfig); for (int i = 0; i < itemCells.Count; i++) { var itemBaisc = itemCells[i]; if (i < items.Count) { var itemInfo = items[i]; itemBaisc.SetActive(true); ItemCellModel cellModel = new ItemCellModel(itemInfo.itemId, false, (ulong)itemInfo.count); itemBaisc.Init(cellModel); itemBaisc.button.AddListener(() => { ItemTipUtility.Show(itemInfo.itemId); }); } else { itemBaisc.SetActive(false); } } buyBtn.SetActive(remainNum > 0); buyBtn.SetListener(() => { storeModel.SendBuyShopItemWithPopCheck(storeConfig, 1, (int)BuyStoreItemCheckType.ActGift); }); buyYetImg.SetActive(remainNum <= 0); priceText.text = isFree ? Language.Get("AloneFree") : Language.Get("ItemOverdue105", storeConfig.MoneyNumber); var obj = buyBtn.FindComponent("Transform", "saleImage"); if (obj != null) orgPriceImg = obj as Transform; if (orgPriceImg != null) { orgPriceImg.SetActiveIL(false); } } } }