Browse Source

添加获取途径不显示未上架的商品的判断
修改元宵活动结束时,玩家处在活动界面不关闭界面

leiyasi 1 year ago
parent
commit
043614ae5b

+ 0 - 6
GameClient/Assets/Editor/Excel/Scanner/ItemApproachScanner.cs

@@ -683,12 +683,6 @@ namespace GFGEditor
             List<ShopCfg> storyActivityCfg = ShopCfgArray.Instance.GetCfgsBymenu1Andmenu2(ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_ACTIVITY_EXCHANGE);
             for (int i = 0; i < storyActivityCfg.Count; i++)
             {
-                // 去除未上架的活动商品
-                if (!string.IsNullOrEmpty(storyActivityCfg[i].startTime) && !TimeUtil.IsBeforeCurTime(storyActivityCfg[i].startTime) || !string.IsNullOrEmpty(storyActivityCfg[i].endTime) && !TimeUtil.IsLaterCurTime(storyActivityCfg[i].endTime))
-                {
-                    continue;
-                }
-
                 if (CheckIsHasItem(itemId, storyActivityCfg[i].itemId))
                 {
                     approachs.Add(ConstFunctionId.STORE + "=" + ConstStoreTabId.STORE_EXCHANGE + "=" + ConstStoreSubId.STORE_ACTIVITY_EXCHANGE);

+ 20 - 19
GameClient/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoEntryView.cs

@@ -61,24 +61,19 @@ namespace GFGGame
         protected async override void OnShown()
         {
             base.OnShown();
-            _valueBarController.OnShown();
-            _valueBarController.UpdateList(new List<int>() { ConstItemID .YUANXIAO_REWARD, ConstItemID.YUANXIAO_GAME_CONSUME});
 
             _ui.m_list.visible = false;
+            _valueBarController.OnShown();
+            _valueBarController.UpdateList(new List<int>());
             var result = await ActivityGetYuanXiaoProxy.ReqGetActivityGameInfos();
 
-            if (!isShowing)
+            if (!isShowing || !result)
             {
                 return;
             }
 
-            if (!result)
-            {
-                OnBtnBackClick();
-                return;
-            }
-
             _ui.m_list.visible = true;
+            _valueBarController.UpdateList(new List<int>() { ConstItemID.YUANXIAO_REWARD, ConstItemID.YUANXIAO_GAME_CONSUME });
             _ui.m_listShow.Play();
             _curLevel = ActivityGetYuanXiaoDataManager.Instance.GetCurLevel();
             _ui.m_list.numItems = ActivityGetYuanXiaoDataManager.Instance.gameinfoList.Count;
@@ -137,6 +132,13 @@ namespace GFGGame
 
         private void OnBtnStartClick()
         {
+            int activityID = ActivityDataManager.Instance.GetCurOpenActiveByType(ActivityType.YuanXiao);
+            if (activityID == 0)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("活动已结束");
+                return;
+            }
+
             if (_ui.m_list.selectedIndex > _curLevel)
             {
                 PromptController.Instance.ShowFloatTextPrompt("请先通关前置关卡");
@@ -161,10 +163,6 @@ namespace GFGGame
         private async void StartGame()
         {
             int activityID = ActivityDataManager.Instance.GetCurOpenActiveByType(ActivityType.YuanXiao);
-            if (activityID == 0)
-            {
-                return;
-            }
 
             PickUpGame cfg = PickUpGameArray.Instance.dataArray[_ui.m_list.selectedIndex];
             var result = await MiniGameProxy.ReqMiniGameStart(cfg.id, cfg.type, activityID);
@@ -175,6 +173,13 @@ namespace GFGGame
 
         private void OnBtnShopClick()
         {
+            int activityID = ActivityDataManager.Instance.GetCurOpenActiveByType(ActivityType.YuanXiao);
+            if (activityID == 0)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("活动已结束");
+                return;
+            }
+
             ViewManager.Show<StoreView>(new object[] { ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_ACTIVITY_EXCHANGE });
         }
 
@@ -183,8 +188,10 @@ namespace GFGGame
             int activityID = ActivityDataManager.Instance.GetCurOpenActiveByType(ActivityType.YuanXiao);
             if (activityID == 0)
             {
+                PromptController.Instance.ShowFloatTextPrompt("活动已结束");
                 return;
             }
+
             ViewManager.Show<ActivityGetYuanXiaoTaskView>();
         }
 
@@ -228,12 +235,6 @@ namespace GFGGame
         {
             long curTime = TimeHelper.ServerNow();
             int activityID = ActivityDataManager.Instance.GetCurOpenActiveByType(ActivityType.YuanXiao);
-            if (activityID == 0)
-            {
-                OnBtnBackClick();
-                return;
-            }
-
             var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfo(activityID);
             if (activityInfo != null)
             {

+ 7 - 2
GameClient/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoTaskView.cs

@@ -93,8 +93,13 @@ namespace GFGGame
 
             UI_taskItem item = UI_taskItem.Proxy(gObject);
             item.m_desc.text = TaskDataManager.Instance.GetTaskDesc(_cfgs[index].id);
-            item.m_txtCount.SetVar("cur", $"{TaskDataManager.Instance.GetTaskProgressById(_cfgs[index].id)}")
-                .SetVar("sum", $"{_cfgs[index].GetTargetCount()}").FlushVars();
+            long progress = TaskDataManager.Instance.GetTaskProgressById(_cfgs[index].id);
+            int sum = _cfgs[index].GetTargetCount();
+            if (progress > sum)
+            {
+                progress = sum;
+            }
+            item.m_txtCount.SetVar("cur", $"{progress}").SetVar("sum", $"{sum}").FlushVars();
             item.m_c1.selectedIndex = TaskDataManager.Instance.GetTaskStateById(_cfgs[index].id);
             item.m_c2.selectedIndex = _cfgs[index].jumpId == "" ? 1 : 0;
 

+ 35 - 1
GameClient/Assets/Game/HotUpdate/Views/CommonGame/ApproachView.cs

@@ -65,9 +65,43 @@ namespace GFGGame
             {
                 if (string.IsNullOrEmpty(approachStr)) continue;
                 string[] infos = approachStr.Split('=');
-                _approachDatas.Add(infos);
+
+                if(infos[0] == ConstFunctionId.STORE)
+                {
+                    if (CheckStoreItem(infos))
+                    {
+                        _approachDatas.Add(infos);
+                    }
+                }
+                else
+                {
+                    _approachDatas.Add(infos);
+                }
             }
         }
+
+        /// <summary>
+        /// 去除未上架的商品
+        /// </summary>
+        /// <param name="infos"></param>
+        /// <returns></returns>
+        private bool CheckStoreItem(string[] infos)
+        {
+            int storeTabId = int.Parse(infos[1]);
+            int storeSubId = int.Parse(infos[2]);
+            List<ShopCfg> storyActivityCfg = ShopCfgArray.Instance.GetCfgsBymenu1Andmenu2(storeTabId, storeSubId);
+            storyActivityCfg = ShopDataManager.Instance.RemoveNotOpenCfg(storyActivityCfg);
+            foreach (var v in storyActivityCfg)
+            {
+                if (v.itemId == _itemId)
+                {
+                    return true;
+                }
+            }
+
+            return false;
+        }
+
         private void UpdateView()
         {
             _ui.m_txtNone.visible = _approachDatas.Count == 0;