zhaoyang пре 3 година
родитељ
комит
9811e152dc

+ 3 - 0
FGUIProject/assets/RechargeStore/components/ListGiftItem.xml

@@ -38,5 +38,8 @@
       <gearDisplay controller="c1" pages="1"/>
       <gearDisplay controller="c1" pages="1"/>
       <gearDisplay2 controller="c2" pages="0" condition="0"/>
       <gearDisplay2 controller="c2" pages="0" condition="0"/>
     </text>
     </text>
+    <image id="n45_t8xr" name="n45" src="10not1u" fileName="images/sc_kuangand.png" xy="3,96">
+      <gearDisplay controller="c1" pages="1"/>
+    </image>
   </displayList>
   </displayList>
 </component>
 </component>

+ 15 - 0
GameClient/Assets/Game/HotUpdate/Data/RechargeDataManager.cs

@@ -213,6 +213,21 @@ namespace GFGGame
             }
             }
             return giftBagCfgs[0];
             return giftBagCfgs[0];
         }
         }
+
+        public List<ShopExchangeCfg> GetExchangeCfgs()
+        {
+            List<ShopExchangeCfg> shopExchangeCfgs = new List<ShopExchangeCfg>(ShopExchangeCfgArray.Instance.dataArray);
+            shopExchangeCfgs.Sort((ShopExchangeCfg a, ShopExchangeCfg b) =>
+            {
+                //未售罄的>已售罄的
+                int buyTypeA = (a.num == 0 || a.num - GetExchangeBuyNumById(a.id) > 0) ? 1 : -1;
+                int buyTypeB = (b.num == 0 || b.num - GetExchangeBuyNumById(b.id) > 0) ? 1 : -1;
+                if (buyTypeA > buyTypeB) return -1;
+                if (buyTypeA < buyTypeB) return 1;
+                return 0;
+            });
+            return shopExchangeCfgs;
+        }
         /// <summary>
         /// <summary>
         /// 根据礼包Id获取礼包解锁状态
         /// 根据礼包Id获取礼包解锁状态
         /// /// </summary>
         /// /// </summary>

+ 1 - 0
GameClient/Assets/Game/HotUpdate/Views/RechargeStore/ItemExchangeView.cs

@@ -126,6 +126,7 @@ namespace GFGGame
                 PromptController.Instance.ShowFloatTextPrompt("道具不足");
                 PromptController.Instance.ShowFloatTextPrompt("道具不足");
                 return;
                 return;
             }
             }
+
             bool result = await RechargeSProxy.ReqExchangeShopItem(_exchangeId, _buyCount);
             bool result = await RechargeSProxy.ReqExchangeShopItem(_exchangeId, _buyCount);
             if (result)
             if (result)
             {
             {

+ 16 - 8
GameClient/Assets/Game/HotUpdate/Views/RechargeStore/RechargeStoreView.cs

@@ -12,6 +12,7 @@ namespace GFGGame
         private ValueBarController _valueBarController;
         private ValueBarController _valueBarController;
 
 
         private List<GiftBagCfg> _giftCfgs;
         private List<GiftBagCfg> _giftCfgs;
+        private List<ShopExchangeCfg> _exchangeCfgs;
         public override void Dispose()
         public override void Dispose()
         {
         {
             _valueBarController.Dispose();
             _valueBarController.Dispose();
@@ -42,15 +43,12 @@ namespace GFGGame
             _ui.m_comTab.m_c1.onChanged.Add(OnComTabChange);
             _ui.m_comTab.m_c1.onChanged.Add(OnComTabChange);
             _ui.m_c1.onChanged.Add(OnTabChange);
             _ui.m_c1.onChanged.Add(OnTabChange);
 
 
-            EventAgent.AddEventListener(ConstMessage.BUY_GIFT_SUCCESS, UpdateGiftBagList);
             EventAgent.AddEventListener(ConstMessage.BUY_RECHARGE_SUCCESS, () =>
             EventAgent.AddEventListener(ConstMessage.BUY_RECHARGE_SUCCESS, () =>
             {
             {
                 _ui.m_list.numItems = RechargeCfgArray.Instance.dataArray.Length;
                 _ui.m_list.numItems = RechargeCfgArray.Instance.dataArray.Length;
             });
             });
-            EventAgent.AddEventListener(ConstMessage.BUY_EXCHANGE_SUCCESS, () =>
-            {
-                _ui.m_listExchange.numItems = ShopExchangeCfgArray.Instance.dataArray.Length;
-            });
+            EventAgent.AddEventListener(ConstMessage.BUY_EXCHANGE_SUCCESS, UpdateExchangeList);
+            EventAgent.AddEventListener(ConstMessage.BUY_GIFT_SUCCESS, UpdateGiftBagList);
         }
         }
 
 
         protected override void OnShown()
         protected override void OnShown()
@@ -60,7 +58,7 @@ namespace GFGGame
             _ui.m_c1.selectedIndex = 0;
             _ui.m_c1.selectedIndex = 0;
             _ui.m_comTab.m_c1.selectedIndex = 0;
             _ui.m_comTab.m_c1.selectedIndex = 0;
             _ui.m_list.numItems = RechargeCfgArray.Instance.dataArray.Length;
             _ui.m_list.numItems = RechargeCfgArray.Instance.dataArray.Length;
-            _ui.m_listExchange.numItems = ShopExchangeCfgArray.Instance.dataArray.Length;
+            UpdateExchangeList();
             UpdateGiftBagList();
             UpdateGiftBagList();
             OnTabChange();
             OnTabChange();
             Timers.inst.Add(1, 0, UpdateExchangeTime);
             Timers.inst.Add(1, 0, UpdateExchangeTime);
@@ -94,6 +92,11 @@ namespace GFGGame
             _giftCfgs = RechargeDataManager.Instance.GetGiftBagCfgs();
             _giftCfgs = RechargeDataManager.Instance.GetGiftBagCfgs();
             _ui.m_listGift.numItems = _giftCfgs.Count;
             _ui.m_listGift.numItems = _giftCfgs.Count;
         }
         }
+        private void UpdateExchangeList()
+        {
+            _exchangeCfgs = RechargeDataManager.Instance.GetExchangeCfgs();
+            _ui.m_listExchange.numItems = _exchangeCfgs.Count;
+        }
         private void UpdateExchangeTime(object param)
         private void UpdateExchangeTime(object param)
         {
         {
             int endTime = TimeUtil.GetTomorrowTime(GlobalCfgArray.globalCfg.refreshTime);
             int endTime = TimeUtil.GetTomorrowTime(GlobalCfgArray.globalCfg.refreshTime);
@@ -101,7 +104,7 @@ namespace GFGGame
             _ui.m_txtRefreshTime.text = time + "后刷新";
             _ui.m_txtRefreshTime.text = time + "后刷新";
             for (int i = 0; i < _ui.m_listGift.numItems; i++)
             for (int i = 0; i < _ui.m_listGift.numItems; i++)
             {
             {
-                UI_ListGiftItem item = UI_ListGiftItem.Proxy(_ui.m_listGift.GetChildAt(1));
+                UI_ListGiftItem item = UI_ListGiftItem.Proxy(_ui.m_listGift.GetChildAt(i));
                 GiftBagCfg cfg = _giftCfgs[i];
                 GiftBagCfg cfg = _giftCfgs[i];
                 item.m_txtEndTime.text = RechargeDataManager.Instance.GetEndTime(cfg.id);
                 item.m_txtEndTime.text = RechargeDataManager.Instance.GetEndTime(cfg.id);
             }
             }
@@ -212,7 +215,7 @@ namespace GFGGame
 
 
         private void ListExchangeItemRenderer(int index, GObject obj)
         private void ListExchangeItemRenderer(int index, GObject obj)
         {
         {
-            ShopExchangeCfg cfg = ShopExchangeCfgArray.Instance.dataArray[index];
+            ShopExchangeCfg cfg = _exchangeCfgs[index];
             UI_StoreListItem item = UI_StoreListItem.Proxy(obj);
             UI_StoreListItem item = UI_StoreListItem.Proxy(obj);
             item.m_btnBuy.m_c1.selectedIndex = 0;
             item.m_btnBuy.m_c1.selectedIndex = 0;
             item.m_btnBuy.m_txtTitle.text = cfg.costNum.ToString();
             item.m_btnBuy.m_txtTitle.text = cfg.costNum.ToString();
@@ -220,6 +223,11 @@ namespace GFGGame
             {
             {
                 item.m_btnBuy.target.onClick.Add(() =>
                 item.m_btnBuy.target.onClick.Add(() =>
                 {
                 {
+                    if (cfg.num > 0 && cfg.num - RechargeDataManager.Instance.GetExchangeBuyNumById(cfg.id) <= 0)
+                    {
+                        PromptController.Instance.ShowFloatTextPrompt("已售罄");
+                        return;
+                    }
                     ViewManager.Show<ItemExchangeView>(cfg.id);
                     ViewManager.Show<ItemExchangeView>(cfg.id);
                 });
                 });
             }
             }

BIN
GameClient/Assets/ResIn/UI/RechargeStore/RechargeStore_atlas0!a.png


BIN
GameClient/Assets/ResIn/UI/RechargeStore/RechargeStore_atlas0.png


BIN
GameClient/Assets/ResIn/UI/RechargeStore/RechargeStore_fui.bytes