using LitJson; using vnxbqy.UI; using System.Collections.Generic; /// /// 限时豪礼 /// public class LimitedTimeLuxuryGiftWin : ILWindow { ScrollerController itemCellScroller; //购买界面一般和策划协商最多几个物品展示即可,不用滚动条 ScrollerController buttonScroller; TextEx txtProfitNumber; TextEx txtGiftName; TextEx txtEndTimeNumber; TextEx txtBuyNow; ButtonEx btnClose; ButtonEx btnBuyNow; ImageEx imgBuyNow; ImageEx imgTimeOutNow; TextEx orgPrice; VipModel vipModel { get { return ModelCenter.Instance.GetModelEx(); } } protected override void BindController() { itemCellScroller = proxy.GetWidgtEx("itemCellScroller"); buttonScroller = proxy.GetWidgtEx("buttonScroller"); txtProfitNumber = proxy.GetWidgtEx("txtProfitNumber"); txtGiftName = proxy.GetWidgtEx("txtGiftName"); txtEndTimeNumber = proxy.GetWidgtEx("txtEndTimeNumber"); txtBuyNow = proxy.GetWidgtEx("txtBuyNow"); btnClose = proxy.GetWidgtEx("btnClose"); btnBuyNow = proxy.GetWidgtEx("btnBuyNow"); imgBuyNow = proxy.GetWidgtEx("imgBuyNow"); imgTimeOutNow = proxy.GetWidgtEx("imgTimeOutNow"); var obj = btnBuyNow.FindComponent("Text", "Txt_orgPrice"); if (obj != null) orgPrice = obj as TextEx; } protected override void AddListeners() { btnClose.SetListener(() => { CloseWin(); }); btnBuyNow.SetListener(() => { if (LimitedTimeLuxuryGiftModel.Instance.showCtgId == 0) return; vipModel.CTG(LimitedTimeLuxuryGiftModel.Instance.showCtgId); }); } protected override void OnPreOpen() { //未指定显示的ctgId时,显示第一个 if (LimitedTimeLuxuryGiftModel.Instance.showCtgId == 0) { var ctgList = LimitedTimeLuxuryGiftModel.Instance.GetShowCtgIDList(); if (ctgList.Count == 0) { CloseWin(); return; } LimitedTimeLuxuryGiftModel.Instance.showCtgId = ctgList[0]; } LimitedTimeLuxuryGiftModel.Instance.UpdateAllUIEvent += OnUpdateAllUIEvent; GlobalTimeEvent.Instance.secondEvent += OnRefreshSecond; itemCellScroller.OnRefreshCell += OnItemCellScrollerRefreshCell; buttonScroller.OnRefreshCell += OnButtonScrollerRefreshCell; } protected override void OnAfterOpen() { Initialize(); } protected override void OnPreClose() { LimitedTimeLuxuryGiftModel.Instance.UpdateAllUIEvent -= OnUpdateAllUIEvent; GlobalTimeEvent.Instance.secondEvent -= OnRefreshSecond; itemCellScroller.OnRefreshCell -= OnItemCellScrollerRefreshCell; buttonScroller.OnRefreshCell -= OnButtonScrollerRefreshCell; } protected override void OnAfterClose() { LimitedTimeLuxuryGiftModel.Instance.showCtgId = 0; } private void OnUpdateAllUIEvent() { CreateItemScroller(); buttonScroller.m_Scorller.RefreshActiveCellViews(); DisplayOther(); OnRefreshSecond(); } private void OnButtonScrollerRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell.GetILBehaviour(); _cell.Display(cell.index); } private void OnItemCellScrollerRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell.GetILBehaviour(); _cell.Display(cell.index); } void Initialize() { CreateCTGButtonScroller(); CreateItemScroller(); DisplayOther(); OnRefreshSecond(); } void CreateCTGButtonScroller() { buttonScroller.Refresh(); var ctgList = LimitedTimeLuxuryGiftModel.Instance.GetShowCtgIDList(); for (int i = 0; i < ctgList.Count; i++) { buttonScroller.AddCell(ScrollerDataType.Header, ctgList[i]); } buttonScroller.Restart(); } void CreateItemScroller() { itemCellScroller.Refresh(); var showCtgID = LimitedTimeLuxuryGiftModel.Instance.showCtgId; List awards = new List(); vipModel.TryGetRechargeItem(showCtgID, out awards); for (int i = 0; i < awards.Count; i++) { itemCellScroller.AddCell(ScrollerDataType.Header, i); } itemCellScroller.Restart(); } private void OnRefreshSecond() { int showCtgID = LimitedTimeLuxuryGiftModel.Instance.showCtgId; if (showCtgID == 0) return; int state = LimitedTimeLuxuryGiftModel.Instance.GetGiftState(showCtgID); if (state == 0) { int showLuxuryGiftID = ILLimitedTimeLuxuryGiftConfig.GetLuxuryGiftIDByCtgID(showCtgID); int seconds = LimitedTimeLuxuryGiftModel.Instance.GetShowCloseTime(showLuxuryGiftID); txtEndTimeNumber.text = UIHelper.AppendColor(TextColType.White, Language.Get("AllianceBoss_3", TimeUtility.SecondsToDHMS(seconds))); } else { txtEndTimeNumber.text = UIHelper.AppendColor(TextColType.White, Language.Get("XMZZ110")); } btnBuyNow.SetActiveIL(state == 0); imgBuyNow.SetActiveIL(state == 1); imgTimeOutNow.SetActiveIL(state == 2); } void DisplayOther() { int showCtgID = LimitedTimeLuxuryGiftModel.Instance.showCtgId; int showLuxuryGiftID = ILLimitedTimeLuxuryGiftConfig.GetLuxuryGiftIDByCtgID(showCtgID); int showGiftGearIndex = ILLimitedTimeLuxuryGiftConfig.GetGiftGearIndexByCtgID(showCtgID); OrderInfoConfig orderCfg; vipModel.TryGetOrderInfo(showCtgID, out orderCfg); txtBuyNow.text = Language.Get("NeedMoney", orderCfg.PayRMBNum); if (orgPrice != null) { orgPrice.SetActiveIL(PlayerDatas.Instance.baseData.IsActive90Off); orgPrice.text = Language.Get("PayMoneyNum", UIHelper.GetMoneyFormat(orderCfg.m_PayRMBNum)); } txtGiftName.text = CTGConfig.Get(showCtgID).Title; txtProfitNumber.text = ILLimitedTimeLuxuryGiftConfig.Get(showLuxuryGiftID).ProfitRatio[showGiftGearIndex].ToString(); } }