| 
					
				 | 
			
			
				@@ -18,9 +18,23 @@ namespace GFGGame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private int _type; //决定数据的类型 --等级条件的数据,时间条件的数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private int _pageIndex; //当前页码,需要显示的数据的索引 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         protected override void OnInit() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             base.OnInit(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            packageName = UI_EnduringGiftBoxUI.PACKAGE_NAME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _ui = UI_RushSaleGiftBoxUI.Create(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.viewCom = _ui.target; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.viewCom.Center(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.modal = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            viewAnimationType = EnumViewAnimationType.None; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _ui.m_btnUp.onClick.Add(OnBtnPreviousClick); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _ui.m_btnNext.onClick.Add(OnBtnNextClick); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _ui.m_btnBack.onClick.Add(OnBtnCancelClick); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _ui.m_btnBuyPink.target.onClick.Add(OnBtnBuyClick); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public override void Dispose() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -38,8 +52,9 @@ namespace GFGGame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             base.OnShown(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             AddEffect(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            InitPageInex(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            UpdateView(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            UpdateView(ListUtil.NavigateType.None); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         protected override void AddEventListener() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -56,16 +71,165 @@ namespace GFGGame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        private void UpdateView() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //实例化索引 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void InitPageInex() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (_type == ConstActivityType.ActLimitGiftYxByLevel) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var data4 = LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .FirstOrDefault(a => a.IndexType == 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _pageIndex = data4 == null ? 0 : LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData4.IndexOf(data4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else if (_type == ConstActivityType.ActLimitGiftYxByTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var data5 = LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .FirstOrDefault(a => a.IndexType == 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _pageIndex = data5 == null ? 0 : LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData4.IndexOf(data5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void UpdateView(ListUtil.NavigateType type) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //筛选一条数据用来界面渲染 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var list = _type == ConstActivityType.ActLimitGiftYxByLevel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ? LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                : LimitedTimeGiftBoxDataManager.Instance.LtgGbItemData5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var data = ListUtil.Navigate(list, type, _pageIndex, out int newIndex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _pageIndex = newIndex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var shopCfg = ShopCfgArray.Instance.GetCfg(data.ShopCfgId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var boxItemCfg = ItemCfgArray.Instance.GetCfg(shopCfg.itemId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var remainBuyNum = shopCfg.maxBuyNum - ShopDataManager.Instance.GetGoodsBuyNumById(shopCfg.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            string mTxtUrc = string.Empty; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (shopCfg.refreshType == RefreshType.DAY) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mTxtUrc = $"今日限购{remainBuyNum}/{shopCfg.maxBuyNum}"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else if (shopCfg.refreshType == RefreshType.WEEK) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mTxtUrc = $"本周限购{remainBuyNum}/{shopCfg.maxBuyNum}"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else if (shopCfg.refreshType == RefreshType.MONTH) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mTxtUrc = $"本月限购{remainBuyNum}/{shopCfg.maxBuyNum}"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (remainBuyNum == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //已售完 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _ui.m_btnBuyPink.m_bagGrey.visible = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _ui.m_btnBuyPink.m_bagPink.visible = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //未售完 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _ui.m_btnBuyPink.m_bagGrey.visible = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _ui.m_btnBuyPink.m_bagPink.visible = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            string mTxtNewPrice; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _ui.m_btnBuyPink.m_loaIcon.visible = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _ui.m_btnBuyPink.m_txtOldPrice.text = shopCfg.originalPrice.ToString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (shopCfg.costType == CostType.ITEM) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //货币   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ItemCfg costCfg = ItemCfgArray.Instance.GetCfg(shopCfg.costId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mTxtNewPrice = shopCfg.price.ToString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _ui.m_btnBuyPink.m_loaIcon.visible = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _ui.m_btnBuyPink.m_loaIcon.url = ResPathUtil.GetIconPath(costCfg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else if (shopCfg.costType == CostType.RMB) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //人民币 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mTxtNewPrice = $"{shopCfg.price}元"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _ui.m_btnBuyPink.m_txtNewPrice.align = AlignType.Left; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _ui.m_btnBuyPink.m_txtNewPrice.x = 90; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //免费 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                mTxtNewPrice = $"免费"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _ui.m_btnBuyPink.m_txtOldPrice.text = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _ui.m_btnBuyPink.m_txtNewPrice.align = AlignType.Left; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _ui.m_btnBuyPink.m_txtNewPrice.x = 90; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _ui.m_txtBoxItemName.text = shopCfg.itemName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //这个B时间需要在一个地方统一处理,然后广播事件,不然可能会存在不同步的问题,最后做 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _ui.m_txtBoxResidueTime.text = TimeUtil.GetTimeLeft(TimeInfo.Instance.ServerNow(), data.EndTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _ui.m_txtUrc.text = mTxtUrc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _ui.m_comDiscount.m_txtDiscountNum.text = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                NumberUtil.CalculateDiscount(shopCfg.originalPrice, shopCfg.price); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _ui.m_txtLrc.text = $"可获得{shopCfg.price * 10}充值经验"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _ui.m_btnBuyPink.m_txtNewPrice.text = mTxtNewPrice; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _ui.m_btnBuyPink.target.data = shopCfg; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _ui.m_list.data = boxItemCfg; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _ui.m_list.itemRenderer = ListItemRender; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _ui.m_list.numItems = boxItemCfg.itemsArr.Length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _ui.m_list.visible = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private void ListItemRender(int index, GObject obj) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            UI_ComRsGifBoxIconItem uiItem = UI_ComRsGifBoxIconItem.Proxy(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var boxItemCfg = uiItem.target.parent.data as ItemCfg; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var itemKv = boxItemCfg.itemsArr[index]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemKv[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            uiItem.m_txtItemName.text = itemCfg.name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            uiItem.m_comRewardIconItem.m_bagBlue.visible = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            uiItem.m_comRewardIconItem.m_bagBlueEx.visible = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            uiItem.m_comRewardIconItem.m_num.text = itemKv[1].ToString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            uiItem.m_comRewardIconItem.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //上一条 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void OnBtnPreviousClick() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            UpdateView(ListUtil.NavigateType.Previous); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //下一条 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void OnBtnNextClick() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            UpdateView(ListUtil.NavigateType.Next); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        private void ChildListItemRender(int index, GObject obj) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //购买按钮点击事件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void OnBtnBuyClick(EventContext context) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            GObject sender = context.sender as GObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //GObject obj = sender.parent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ShopCfg cfg = sender.data as ShopCfg; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            bool isSellOut = cfg.maxBuyNum > 0 && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                             cfg.maxBuyNum - ShopDataManager.Instance.GetGoodsBuyNumById(cfg.id) <= 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (isSellOut) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                PromptController.Instance.ShowFloatTextPrompt("已售罄"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!ShopDataManager.Instance.GetShopGoodsStateById(cfg.id)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                PromptController.Instance.ShowFloatTextPrompt(ShopDataManager.Instance.GetShopGoodsStateTips(cfg.id)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (cfg.costType == CostType.FREE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ShopSProxy.ReqShopBuy(cfg.id, 1).Coroutine(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.SHANG_CHENG, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ViewManager.Show<ItemExchangeView>(cfg.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         protected override void OnHide() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -75,7 +239,7 @@ namespace GFGGame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             base.Hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        private void OnClickBtnCancel() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void OnBtnCancelClick() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.Hide(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 |