//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, July 18, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //限时礼包 namespace vnxbqy.UI { public class SuperUPGiftWin : Window { [SerializeField] Button m_Buy_Btn;//购买按钮 [SerializeField] GameObject m_BoughtObj;//已购买 [SerializeField] LimitedTimeItemInfo[] m_Items; [SerializeField] ScrollerController m_ScrollerControl; [SerializeField] Text m_Money1;//原价 [SerializeField] Text m_Money2;//现价 #region Built-in SuperUPGiftModel model { get { return ModelCenter.Instance.GetModel(); } } VipModel vipModel { get { return ModelCenter.Instance.GetModel(); } } protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { m_ScrollerControl.OnRefreshCell += OnRefreshGridCell; model.selectUpdate += SelectChanged; vipModel.rechargeCountEvent += RechargeCountEvent; model.gifts.Clear(); model.gifts = model.GetGiftsForSale(true); model.selectIndex = GetSelect(); DisPlay(model.selectIndex); DisplayGoodsTab(); m_ScrollerControl.JumpIndex(model.selectIndex); model.hasNewGift = false; DayRemind.Instance.SetDayRemind(DayRemind.SUPERUPGIFTS, true); //var _package = new CA123_tagCMQueryCoinToGoldCount(); //_package.RecordID = 0; //GameNetSystem.Instance.SendInfo(_package); } private void SelectChanged(int select) { DisPlay(select); } protected override void OnAfterOpen() { } private int GetSelect() { return model.gifts.Count-1; } private void DisplayGoodsTab() { m_ScrollerControl.Refresh(); for (int i = 0; i < model.gifts.Count; i++) { m_ScrollerControl.AddCell(ScrollerDataType.Header, i); } m_ScrollerControl.Restart(); } private void DisPlay(int _index = 0) { if (_index == -1 || _index >= model.gifts.Count) return; var ctgID = model.gifts[_index]; VipModel.RechargeCount _rechargeCount; var config = CTGConfig.Get(ctgID); if (config == null) { return; } m_Buy_Btn.SetActive(false); m_BoughtObj.SetActive(false); vipModel.TryGetRechargeCount(ctgID, out _rechargeCount); if (_rechargeCount.totalCount >= config.TotalBuyCount) { m_BoughtObj.SetActive(true); } else { m_Buy_Btn.SetActive(true); m_Buy_Btn.RemoveAllListeners(); m_Buy_Btn.SetListener(()=>{ vipModel.CTG(ctgID); }); } m_Money1.text = Language.Get("PayMoneyNum", UIHelper.GetMoneyFormat(SuperUpRechargeConfig.Get(ctgID).OriginalRMB)); m_Money2.text = Language.Get("PayMoneyNum", UIHelper.GetMoneyFormat(vipModel.GetPayRmb(ctgID))); List goods; vipModel.TryGetRechargeItem(ctgID, out goods); for (int i = 0; i < m_Items.Length; i++) { if (i >= goods.Count) { m_Items[i].SetActive(false); continue; } m_Items[i].SetActive(true); var itemID = goods[i].id; var ItemCell = m_Items[i].Item_Cell; ItemCellModel cellModel = new ItemCellModel(itemID, true, (ulong)goods[i].count); ItemCell.Init(cellModel); ItemCell.button.RemoveAllListeners(); ItemCell.button.AddListener(() => { ItemTipUtility.Show(itemID); }); } } protected override void OnPreClose() { m_ScrollerControl.OnRefreshCell -= OnRefreshGridCell; model.selectUpdate -= SelectChanged; vipModel.rechargeCountEvent -= RechargeCountEvent; } private void RechargeCountEvent(int id) { DisPlay(model.selectIndex); } protected override void OnAfterClose() { } #endregion private void OnRefreshGridCell(ScrollerDataType type, CellView cell) { var propertyCell = cell as SuperUPGiftCell; var key = cell.index; propertyCell.Display(cell.index); } } }