Browse Source

爬塔补充提交

zhangyuqian 11 months ago
parent
commit
fd63bae586

+ 1 - 0
GameClient/Assets/Game/HotUpdate/Data/FieldWorkDataManager.cs

@@ -45,6 +45,7 @@ namespace GFGGame
         public List<string> nameList = new List<string>() 
         {"壹","贰","叄","肆","伍","陆","柒","捌","玖","拾","拾壹","终"};
         public int guideLevelID = 100005009;
+        public int MaxLevelId = 0;
         /// <summary>
         /// 更新战斗结算总分,含胜负
         /// </summary>

+ 37 - 15
GameClient/Assets/Game/HotUpdate/ServerProxy/FieldWorkSproxy.cs

@@ -22,6 +22,7 @@ namespace GFGGame
             {
                 if (response.Error == ErrorCode.ERR_Success)
                 {
+                    FieldWorkDataManager.Instance.MaxLevelId = response.MaxLevelId;
                     FieldWorkDataManager.Instance.Tag = response.WeekTags ;
                     FieldWorkDataManager.Instance.DressupList.Clear();
                     FieldWorkDataManager.Instance.HistoryDressupList = response.WeekUserItems;
@@ -110,6 +111,7 @@ namespace GFGGame
             {
                 if (response.Error == ErrorCode.ERR_Success)
                 {
+                    FieldWorkDataManager.Instance.MaxLevelId = response.MaxLevelId;
                     FieldWorkDataManager.Instance.HistoryDressupList = response.WeekUserItems;
                     FieldWorkDataManager.Instance.CardAbrasionInfoList = response.CardAbrasionInfoList;
                     if(response.CimbingTowerLevelInfo.IsPass)
@@ -129,28 +131,47 @@ namespace GFGGame
                        for(int i=0;i<FieldWorkDataManager.Instance.DressupList.Count;i++)
                        {
                             FieldWorkDataManager.Instance.DressupList[i].itemList.Clear();
-                            //foreach(var item in FieldWorkDataManager.Instance.CardAbrasionInfoList)
-                            //{
-                            //    if(item.Card == FieldWorkDataManager.Instance.DressupList[i].cardId)
-                            //    {
-                            //        if(item.UseNum >= limit)
-                            //        {
-                                        FieldWorkDataManager.Instance.DressupList[i].cardId = 0;
-                                        isDelete = true;
-                                //    }
-                                //}
-                            //}                          
+                            FieldWorkDataManager.Instance.DressupList[i].cardId = 0;
+                            isDelete = true;                        
                        }
-                       //if(isDelete)
-                       //{
-                       //     PromptController.Instance.ShowFloatTextPrompt("词牌磨损率过高已自动解除佩戴!");
-                       //}
                         FieldWorkDataManager.Instance.BonusList = response.BonusList;
                         EventAgent.DispatchEvent(ConstMessage.FieldWork_StateCHANGE);
                         return true;
                     }
                     else
                     {
+                        if(response.CimbingTowerLevelInfo != null)
+                        {
+                            if (FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.ContainsKey(response.CimbingTowerLevelInfo.LevelId))
+                            {
+                                FieldWorkDataManager.Instance.CimbingTowerLevelInfoList[response.CimbingTowerLevelInfo.LevelId] = response.CimbingTowerLevelInfo;
+                            }
+                            else
+                            {
+                                FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.Add(response.CimbingTowerLevelInfo.LevelId, response.CimbingTowerLevelInfo);
+                            }
+                        }
+                        int limit = CimbingTowerCfgArray.Instance.dataArray[0].UseLimit;
+                        bool isDelete = false;
+                        for (int i = 0; i < FieldWorkDataManager.Instance.DressupList.Count; i++)
+                        {
+                            foreach (var item in FieldWorkDataManager.Instance.CardAbrasionInfoList)
+                            {
+                                if (item.Card == FieldWorkDataManager.Instance.DressupList[i].cardId)
+                                {
+                                    if (item.UseNum >= limit)
+                                    {
+                                        FieldWorkDataManager.Instance.DressupList[i].cardId = 0;
+                                        isDelete = true;
+                                    }
+                                }
+                            }
+                        }
+                        if (isDelete)
+                        {
+                            PromptController.Instance.ShowFloatTextPrompt("词牌磨损率过高已自动解除佩戴!");
+                            EventAgent.DispatchEvent(ConstMessage.FieldWork_StateCHANGE);
+                        }
                         return false;
                     }
                 }
@@ -166,6 +187,7 @@ namespace GFGGame
             {
                 if (response.Error == ErrorCode.ERR_Success)
                 {
+                    FieldWorkDataManager.Instance.MaxLevelId = response.MaxLevelId;
                     FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.Clear();
                     foreach (var item in response.CimbingTowerLevelInfoList)
                     {

+ 37 - 19
GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkLevelView.cs

@@ -111,8 +111,18 @@ namespace GFGGame
                 UI_CompStoryLevelItem.ProxyEnd();
             }
             //Timers.inst.StartCoroutine(InitChapter());
-            int levelCount = CimbingTowerLevelCfgArray.Instance.dataArray.Length - FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.Count;
-            indexY = 200.0f * Mathf.Max(0, (float)levelCount);
+            int isPassCount = 0;
+            foreach(var item in FieldWorkDataManager.Instance.CimbingTowerLevelInfoList)
+            {
+                if(item.Value.IsPass)
+                {
+                    isPassCount++;
+                }
+            }
+            int levelCount = CimbingTowerLevelCfgArray.Instance.dataArray.Length - isPassCount;
+            float height = _ui.m_chapter.target.height;
+            float value = 300 / (_ui.m_chapter.target.height / 1080.0f);
+            indexY = value * Mathf.Max(0, (float)levelCount);
             _ui.m_chapter.target.scrollPane.posY = indexY;
         }
         private void OnClickLevelItem(EventContext context)
@@ -177,8 +187,6 @@ namespace GFGGame
                 PromptController.Instance.ShowFloatTextPrompt("本周暂未参与该玩法,无法使用此功能!");
                 return;
             }
-            else
-            {
                 AlertUI.Show("重置后当前关卡进度将被清空,每周可使用一次,是否重置?")
                 .SetLeftButton(true, "否").SetRightButton(true, "是", async (object data) =>
                 {
@@ -190,10 +198,9 @@ namespace GFGGame
                     }
                     else
                     {
-                        PromptController.Instance.ShowFloatTextPrompt("没有重置次数!");
+                        //PromptController.Instance.ShowFloatTextPrompt("没有重置次数!");
                     }
                 });
-            }
         }
         private void OnClickBtnSkip()
         {
@@ -201,7 +208,15 @@ namespace GFGGame
             int vip = CimbingTowerCfgArray.Instance.dataArray[0].VipClearanceLimit;
             if (RoleDataManager.CheckIsMonthCardOpenByType(1) || RoleDataManager.CheckIsMonthCardOpenByType(1))
             {
-                if(FieldWorkDataManager.Instance.CimbingTowerLevelInfoList.Count > vip)
+                int isPassCount = 0;
+                foreach (var item in FieldWorkDataManager.Instance.CimbingTowerLevelInfoList)
+                {
+                    if (item.Value.IsPass)
+                    {
+                        isPassCount++;
+                    }
+                }
+                if (isPassCount >= FieldWorkDataManager.Instance.MaxLevelId)
                 {
                     PromptController.Instance.ShowFloatTextPrompt("通关数量已超过最大可通关数量!");
                     return;
@@ -209,20 +224,23 @@ namespace GFGGame
             }
             else
             {
-                AlertUI.Show("一键通关不消耗服装和词牌的使用次数,每周可使用一次,是否快速通关?")
-                .SetLeftButton(true, "否").SetRightButton(true, "是", async (object data) =>
+                if(FieldWorkDataManager.Instance.MaxLevelId != 0)
                 {
-                    bool result = await FieldWorkSproxy.ReqFieldWorkOneClickPass();
-                    if (result)
-                    {
-                        UpdateLevel();
-                        PromptController.Instance.ShowFloatTextPrompt("跳过成功!");
-                    }
-                    else
+                    AlertUI.Show("一键通关不消耗服装和词牌的使用次数,每周可使用一次,是否快速通关?")
+                    .SetLeftButton(true, "否").SetRightButton(true, "是", async (object data) =>
                     {
-                        PromptController.Instance.ShowFloatTextPrompt("暂未满足通关要求,无法使用此功能!");
-                    }
-                });
+                        bool result = await FieldWorkSproxy.ReqFieldWorkOneClickPass();
+                        if (result)
+                        {
+                            UpdateLevel();
+                            PromptController.Instance.ShowFloatTextPrompt("跳过成功!");
+                        }
+                    });
+                }
+                else
+                {
+                    PromptController.Instance.ShowFloatTextPrompt("暂未满足通关要求,无法使用此功能!");
+                }
             }
         }
         private void CheckGuide(object param)

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/FieldWork/FieldWorkRoundResultView.cs

@@ -84,7 +84,7 @@ namespace GFGGame
                 }
                 else
                 {
-                    PromptController.Instance.ShowFloatTextPrompt("未通过!");
+                    //PromptController.Instance.ShowFloatTextPrompt("未通过!");
                 }
             }
             else

BIN
GameClient/Assets/ResIn/UI/FieldWork/FieldWork_fui.bytes


BIN
GameClient/Assets/ResIn/UI/Main/Main_fui.bytes