Browse Source

feat 任务修改

Jae 2 years ago
parent
commit
cac00000ca
23 changed files with 297 additions and 149 deletions
  1. 0 1
      FGUIProject/assets/CommonGame/package.xml
  2. 1 0
      FGUIProject/assets/Task/CombTaskUI.xml
  3. 1 1
      FGUIProject/assets/Task/components/BattlePassRewardItem.xml
  4. 13 0
      FGUIProject/assets/Task/components/ComeBt.xml
  5. 6 6
      FGUIProject/assets/Task/components/TaskListItem.xml
  6. 0 0
      FGUIProject/assets/Task/images/lm_an_jujue_1.png
  7. 2 0
      FGUIProject/assets/Task/package.xml
  8. 0 3
      GameClient/Assets/Game/HotUpdate/Controller/BonusController.cs
  9. 1 1
      GameClient/Assets/Game/HotUpdate/Controller/GameController.cs
  10. 58 0
      GameClient/Assets/Game/HotUpdate/Data/BattlePassTaskDataManager.cs
  11. 3 0
      GameClient/Assets/Game/HotUpdate/Data/BattlePassTaskDataManager.cs.meta
  12. 3 7
      GameClient/Assets/Game/HotUpdate/Data/TaskDataManager.cs
  13. 139 0
      GameClient/Assets/Game/HotUpdate/ServerProxy/BattlePassTaskSProxy.cs
  14. 3 0
      GameClient/Assets/Game/HotUpdate/ServerProxy/BattlePassTaskSProxy.cs.meta
  15. 6 56
      GameClient/Assets/Game/HotUpdate/ServerProxy/DailyTaskSProxy.cs
  16. 0 28
      GameClient/Assets/Game/HotUpdate/ServerProxy/DailyWelfareSProxy.cs
  17. 17 16
      GameClient/Assets/Game/HotUpdate/ServerProxy/TaskSProxy.cs
  18. 13 11
      GameClient/Assets/Game/HotUpdate/Views/Task/BattlePassTaskView.cs
  19. 31 17
      GameClient/Assets/Game/HotUpdate/Views/Task/CombTaskView.cs
  20. BIN
      GameClient/Assets/ResIn/UI/Task/Task_atlas0!a.png
  21. BIN
      GameClient/Assets/ResIn/UI/Task/Task_atlas0.png
  22. BIN
      GameClient/Assets/ResIn/UI/Task/Task_fui.bytes
  23. 0 2
      GameClient/GameClient.sln.DotSettings.user

+ 0 - 1
FGUIProject/assets/CommonGame/package.xml

@@ -291,7 +291,6 @@
     <image id="a0cf2h" name="lm_tb.png" path="/imagesNew/" exported="true"/>
     <image id="9jv65m" name="lm_dt_zsx1.png" path="/imagesNew/" exported="true"/>
     <image id="o9gh4o" name="lm_an_jujue.png" path="/imagesNew/" exported="true"/>
-    <image id="nd17tlv" name="lm_an_jujue_1.png" path="/imagesNew/"/>
     <image id="o9gh4l" name="lm_an__weixuan_qifu.png" path="/imagesNew/" exported="true"/>
     <component id="rv091o" name="Button11.xml" path="/components/" exported="true"/>
     <image id="a0cf2o" name="lm_an_yellow.png" path="/imagesNew/" exported="true" scale="9grid" scale9grid="54,15,108,30"/>

+ 1 - 0
FGUIProject/assets/Task/CombTaskUI.xml

@@ -28,6 +28,7 @@
     </component>
     <group id="n27_ids4" name="n27" xy="294,805" size="522,72" advanced="true" layout="hz" excludeInvisibles="true"/>
     <component id="n18_ids4" name="GetAll" src="rv091o" fileName="components/Button11.xml" pkg="eg2y0ldp" xy="405,1779" size="273,59">
+      <relation target="" sidePair="bottom-bottom"/>
       <Button title="一键领取" titleColor="#915e15"/>
     </component>
   </displayList>

+ 1 - 1
FGUIProject/assets/Task/components/BattlePassRewardItem.xml

@@ -13,7 +13,7 @@
     <component id="n12_nd17" name="ComeBt" src="rv091p" fileName="components/BtnStyle1Big.xml" pkg="eg2y0ldp" xy="822,43" size="189,58">
       <gearDisplay controller="c1" pages="0"/>
       <gearDisplay2 controller="c2" pages="0" condition="0"/>
-      <Button title="前往" icon="ui://eg2y0ldpnd17tlv"/>
+      <Button title="前往" icon="ui://5mpsibzznd17tlv"/>
     </component>
     <component id="n10_nd17" name="GetRewardBt" src="rv091p" fileName="components/BtnStyle1Big.xml" pkg="eg2y0ldp" xy="822,44" size="189,58">
       <gearDisplay controller="c1" pages="1"/>

+ 13 - 0
FGUIProject/assets/Task/components/ComeBt.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="189,58" extention="Button">
+  <controller name="button" pages="0,up,1,down" selected="0"/>
+  <displayList>
+    <image id="n0_9qpb" name="n0" src="nd17tlv" fileName="imagesNew/lm_an_jujue_1.png" xy="0,0">
+      <relation target="" sidePair="width-width,height-height"/>
+    </image>
+    <text id="n1_9qpb" name="title" xy="0,0" size="189,58" font="ui://eg2y0ldpa0cftky" fontSize="28" align="center" vAlign="middle" autoSize="none" singleLine="true" text="前往">
+      <relation target="" sidePair="width-width,height-height"/>
+    </text>
+  </displayList>
+  <Button/>
+</component>

+ 6 - 6
FGUIProject/assets/Task/components/TaskListItem.xml

@@ -5,24 +5,24 @@
     <remark page="1" value="可领取"/>
     <remark page="2" value="已领取"/>
   </controller>
-  <controller name="c2" pages="0,CanGo,1,NotGo" selected="1"/>
+  <controller name="c2" pages="0,CanGo,1,NotGo" selected="0"/>
   <displayList>
     <image id="n13_ids4" name="n13" src="nd172s" fileName="images/mrrw_db.png" xy="-4,8"/>
     <image id="n12_ids4" name="n12" src="nd172y" fileName="images/mrrw_bq_qb.png" xy="35,12"/>
     <text id="n1_lh8v" name="txtDesc" xy="56,19" size="260,44" font="ui://eg2y0ldpa0cftks" fontSize="32" color="#915e15" align="center" vAlign="middle" text="任务描述任务描述"/>
     <text id="n14_ids4" name="txtCount" xy="390,20" size="80,44" fontSize="32" color="#915e15" text="1/100"/>
-    <list id="n7_wet2" name="listTaskReward" xy="93,78" size="265,125" layout="row" colGap="6" defaultItem="ui://5mpsibzzwet22j" autoClearItems="true">
-      <item url="ui://5mpsibzznd1743"/>
-      <item url="ui://5mpsibzznd1743"/>
+    <list id="n7_wet2" name="listTaskReward" xy="93,78" size="265,125" layout="row" colGap="6" defaultItem="ui://5mpsibzznd1743" autoClearItems="true">
+      <item/>
+      <item/>
     </list>
     <component id="n16_ids4" name="GetRewardBt" src="rv091p" fileName="components/BtnStyle1Big.xml" pkg="eg2y0ldp" xy="804,82" size="189,58">
       <gearDisplay controller="c1" pages="2"/>
       <Button title="领取" icon="ui://eg2y0ldpo9gh4k"/>
     </component>
-    <component id="n17_ids4" name="ComeBt" src="rv091p" fileName="components/BtnStyle1Big.xml" pkg="eg2y0ldp" xy="804,81" size="189,58">
+    <component id="n17_ids4" name="ComeBt" src="9qpb4h" fileName="components/ComeBt.xml" xy="804,81" size="189,58">
       <gearDisplay controller="c1" pages="1"/>
       <gearDisplay2 controller="c2" pages="0" condition="0"/>
-      <Button title="前往" icon="ui://eg2y0ldpnd17tlv"/>
+      <Button title="前往" icon="ui://5mpsibzznd17tlv"/>
     </component>
     <component id="n18_ids4" name="HadGet" src="rv091p" fileName="components/BtnStyle1Big.xml" pkg="eg2y0ldp" xy="804,81" size="189,58">
       <gearDisplay controller="c1" pages="3"/>

+ 0 - 0
FGUIProject/assets/CommonGame/imagesNew/lm_an_jujue_1.png → FGUIProject/assets/Task/images/lm_an_jujue_1.png


+ 2 - 0
FGUIProject/assets/Task/package.xml

@@ -61,6 +61,8 @@
     <component id="ids449" name="LivenessRewardProcess.xml" path="/components/"/>
     <component id="ids44c" name="LivenessRewardProcessItem.xml" path="/components/"/>
     <component id="ids44e" name="TabButton.xml" path="/components/"/>
+    <component id="9qpb4h" name="ComeBt.xml" path="/components/"/>
+    <image id="nd17tlv" name="lm_an_jujue_1.png" path="/images/"/>
   </resources>
   <publish name="" path="../GameClient/Assets/ResIn/UI/Task" packageCount="2" genCode="true" extractAlpha="true"/>
 </packageDescription>

+ 0 - 3
GameClient/Assets/Game/HotUpdate/Controller/BonusController.cs

@@ -1,8 +1,5 @@
 using System;
 using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
 
 namespace GFGGame
 {

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Controller/GameController.cs

@@ -239,8 +239,8 @@ namespace GFGGame
             CardSProxy.GetCardInfos().Coroutine();
             RechargeSProxy.ReqRechargeInfo().Coroutine();
             RechargeSProxy.ReqExchangeInfo().Coroutine();
-            DailyTaskSProxy.ReqDailyTaskInfos().Coroutine();
             TaskSProxy.GetTaskInfos();
+            DailyTaskSProxy.ReqDailyTaskInfos().Coroutine();
             NoticeSProxy.ReqSystemNoticeList().Coroutine();
             MailSProxy.ReqMailCount().Coroutine();
             FriendSProxy.ReqAllFriendInfos().Coroutine();

+ 58 - 0
GameClient/Assets/Game/HotUpdate/Data/BattlePassTaskDataManager.cs

@@ -0,0 +1,58 @@
+using System.Collections.Generic;
+
+namespace GFGGame
+{
+    public class BattlePassTaskDataManager : Singleton<BattlePassTaskDataManager>
+    {
+        //通行证赛季Id
+        private int SeasonId = 0;
+
+        //是否购买通行证
+        private bool IsBuy = false;
+        
+        
+
+        //已经领奖levelId
+        private HashSet<int> NormalRewards = new HashSet<int>();
+
+        //已经高级领奖levelId
+        private HashSet<int> SuperRewards = new HashSet<int>();
+        
+        public int GetSeasonId()
+        {
+            return SeasonId;
+        }
+        
+        public void AddNormalReward(int levelId)
+        {
+            NormalRewards.Add(levelId);
+        }
+        
+        public void AddSuperReward(int levelId)
+        {
+            SuperRewards.Add(levelId);
+        }
+        
+        public void SetSeasonId(int seasonId)
+        {
+            SeasonId = seasonId;
+        }
+        
+        public void SetIsBuy(bool isBuy)
+        {
+            IsBuy = isBuy;
+        }
+
+        //检查普通领取状态
+        public bool CheckLevelRewardGet(int levelId)
+        {
+            return NormalRewards.Contains(levelId);
+        }
+        
+        //检查高级领取状态
+        public bool CheckSuperLevelRewardGet(int levelId)
+        {
+            return SuperRewards.Contains(levelId);
+        }
+    }
+}

+ 3 - 0
GameClient/Assets/Game/HotUpdate/Data/BattlePassTaskDataManager.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 12da934eae4f4857a82e52272ca1a7b5
+timeCreated: 1684565752

+ 3 - 7
GameClient/Assets/Game/HotUpdate/Data/TaskDataManager.cs

@@ -31,7 +31,7 @@ namespace GFGGame
         public void UpdateTaskInfo(int taskId, TaskInfo info)
         {
             //获取任务配置
-            var cfg = DailyTaskCfgArray.Instance.GetCfg(taskId);
+            var cfg = TaskCfgArray.Instance.GetCfg(taskId);
             if (cfg == null)
             {
                 Log.Error($"出现了没有配置的任务id{taskId}");
@@ -42,7 +42,7 @@ namespace GFGGame
             if (taskInfo == null)
             {
                 TaskInfosDic.Add(taskId, info);
-                TaskType2TaskIdListDic.TryGetValue(taskId, out var taskIds);
+                TaskType2TaskIdListDic.TryGetValue(cfg.type, out var taskIds);
                 if (taskIds == null)
                 {
                     taskIds = new List<int>();
@@ -126,17 +126,13 @@ namespace GFGGame
                         name = EctypeCfgArray.Instance
                             .GetCfgBytypeAndsubType(taskCfg.paramsArr[0], taskCfg.paramsArr[1]).subName;
                     }
-
                     return string.Format(activeRewardCfg.desc, taskCfg.count, name);
-
                 case ConstTaskType.UseItem:
                     var cfg = ItemCfgArray.Instance.GetCfg(taskCfg.paramsArr[0]);
                     return string.Format(activeRewardCfg.desc, taskCfg.count, cfg.name);
-
                 case ConstTaskType.UpgradeCardLvl:
                 case ConstTaskType.PlayLuckBox:
-                default:
-                    return string.Format(activeRewardCfg.desc, taskCfg.count);
+                default: return string.Format(activeRewardCfg.desc, taskCfg.count);
             }
         }
     }

+ 139 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/BattlePassTaskSProxy.cs

@@ -0,0 +1,139 @@
+using System.Collections.Generic;
+using System.Linq;
+using ET;
+using GFGGame;
+
+namespace ET
+{
+    public class M2C_SyncBattlePassHandler : AMHandler<M2C_SyncBattlePass>
+    {
+        protected override async ETTask Run(Session session, M2C_SyncBattlePass message)
+        {
+            var battlePassTaskDataManager = BattlePassTaskDataManager.Instance;
+            if (battlePassTaskDataManager.GetSeasonId() != message.SeasonId)
+            {
+                return;
+            }
+            battlePassTaskDataManager.SetIsBuy(message.IsBuy);
+            //TODO 通知UI
+            await ETTask.CompletedTask;
+        }
+    }
+
+    public class M2C_SyncBattlePassLevelHandler : AMHandler<M2C_SyncBattlePassLevel>
+    {
+        protected override async ETTask Run(Session session, M2C_SyncBattlePassLevel message)
+        {
+            var battlePassTaskDataManager = BattlePassTaskDataManager.Instance;
+            foreach (var level in message.Level)
+            {
+                battlePassTaskDataManager.AddNormalReward(level);
+            }
+            foreach (var superLevel in message.SuperLevel)
+            {
+                battlePassTaskDataManager.AddSuperReward(superLevel);
+            }
+            //TODO 通知UI
+            await ETTask.CompletedTask;
+        }
+    }
+
+    //M2C_SyncBattlePassSeasonId
+    public class M2C_SyncBattlePassSeasonIdHandler : AMHandler<M2C_SyncBattlePassSeasonId>
+    {
+        protected override async ETTask Run(Session session, M2C_SyncBattlePassSeasonId message)
+        {
+            var battlePassTaskDataManager = BattlePassTaskDataManager.Instance;
+            battlePassTaskDataManager.SetSeasonId(message.SeasonId);
+            //TODO 通知UI
+            await ETTask.CompletedTask;
+        }
+    }
+}
+
+
+namespace GFGGame
+{
+    public static class BattlePassTaskSProxy
+    {
+        //C2S_GetBattlePassInfo
+        public static async ETTask GetBattlePassInfo()
+        {
+            var response = (S2C_GetBattlePassInfo)await MessageHelper.SendToServer(new C2S_GetBattlePassInfo());
+            if (!(response is { Error: ErrorCode.ERR_Success })) return;
+            var battlePassTaskDataManager = BattlePassTaskDataManager.Instance;
+            battlePassTaskDataManager.SetIsBuy(response.IsBuy);
+            battlePassTaskDataManager.SetSeasonId(response.SeasonId);
+            foreach (var level in response.RewardList)
+            {
+                battlePassTaskDataManager.AddNormalReward(level);
+            }
+            foreach (var superLevel in response.SuperRewardList)
+            {
+                battlePassTaskDataManager.AddSuperReward(superLevel);
+            }
+        }
+
+        //C2S_GetBattlePassReward
+        public static async ETTask GetBattlePassReward(int level)
+        {
+            var response =
+                (S2C_GetBattlePassReward)await MessageHelper.SendToServer(new C2S_GetBattlePassReward { Id = level });
+            if (!(response is { Error: ErrorCode.ERR_Success })) return;
+            var responseGetType = response.GetType;
+            //获取通行证奖励配置
+            var passCfg =
+                BattlePassCfgArray.Instance.GetCfgByidAndlevel(BattlePassTaskDataManager.Instance.GetSeasonId(), level);
+            if (passCfg == null) return;
+            var passCfgBonusNormalArr = passCfg.bonusNormalArr;
+            var passCfgBonusSuperArr = passCfg.bonusSpecialArr;
+            var bonusList = new List<ItemData>();
+            if (MathHelper.isBitSet(responseGetType, 1))
+            {
+                bonusList.AddRange(ItemUtil.CreateItemDataList(passCfgBonusNormalArr));
+            }
+            if (MathHelper.isBitSet(responseGetType, 2))
+            {
+                bonusList.AddRange(ItemUtil.CreateItemDataList(passCfgBonusSuperArr));
+            }
+            BonusController.TryShowBonusList(bonusList);
+        }
+
+        //C2S_GetAllBattlePassReward
+        public static async ETTask GetAllBattlePassReward()
+        {
+            var response =
+                (S2C_GetAllBattlePassReward)await MessageHelper.SendToServer(new C2S_GetAllBattlePassReward());
+            if (!(response is { Error: ErrorCode.ERR_Success })) return;
+            var normalLevels = response.Levels;
+            var superLevels = response.SuperLevels;
+            var levels = new HashSet<int>();
+            levels.UnionWith(normalLevels);
+            levels.UnionWith(superLevels);
+            var bonusList = new List<ItemData>();
+            foreach (var level in levels)
+            {
+                //获取通行证奖励配置
+                var passCfg =
+                    BattlePassCfgArray.Instance.GetCfgByidAndlevel(BattlePassTaskDataManager.Instance.GetSeasonId(),
+                        level);
+                if (normalLevels.Contains(level))
+                {
+                    bonusList.AddRange(ItemUtil.CreateItemDataList(passCfg.bonusNormalArr));
+                }
+                if (superLevels.Contains(level))
+                {
+                    bonusList.AddRange(ItemUtil.CreateItemDataList(passCfg.bonusSpecialArr));
+                }
+            }
+            BonusController.TryShowBonusList(bonusList);
+        }
+
+        //购买等级 C2S_BuyBattlePassLevel
+        public static async ETTask BuyBattlePassLevel(int upLevel)
+        {
+            _ = (S2C_BuyBattlePassLevel)await MessageHelper.SendToServer(new C2S_BuyBattlePassLevel
+                { UpLevel = upLevel });
+        }
+    }
+}

+ 3 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/BattlePassTaskSProxy.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 64a0594caf4d4b15befe7fb0ef3d6ed7
+timeCreated: 1684565827

+ 6 - 56
GameClient/Assets/Game/HotUpdate/ServerProxy/DailyTaskSProxy.cs

@@ -1,23 +1,13 @@
-using System.Collections.Generic;
 using ET;
 using GFGGame;
 
 namespace ET
 {
-
-    public class NoticeDailyTaskInfoChange : AMHandler<M2C_DailyTaskInfoChange>
-    {
-        protected override async ETTask Run(Session session, M2C_DailyTaskInfoChange message)
-        {
-            //移到了 M2C_TaskInfoChangeHandler
-            await ETTask.CompletedTask;
-        }
-    }
     public class NoticeLivenessBoxChange : AMHandler<M2C_LivenessBoxChange>
     {
         protected override async ETTask Run(Session session, M2C_LivenessBoxChange message)
         {
-            for (int i = 0; i < message.kLivenessBox.Count; i++)
+            for (var i = 0; i < message.kLivenessBox.Count; i++)
             {
                 DailyTaskDataManager.Instance.UpdateLivenessBoxInfo(message.kLivenessBox[i], message.vLivenessBox[i]);
             }
@@ -27,24 +17,15 @@ namespace ET
         }
     }
 }
+
 namespace GFGGame
 {
     public static class DailyTaskSProxy
     {
         public static async ETTask<bool> ReqDailyTaskInfos()
         {
-            M2C_GetDailyTaskInfos response;
-            response = (M2C_GetDailyTaskInfos)await MessageHelper.SendToServer(new C2M_GetDailyTaskInfos());
-            if (response == null) return false;
-            if (response.Error != ErrorCode.ERR_Success) return false;
-            foreach (var t in response.TaskList)
-            {
-                TaskInfo taskInfo = new TaskInfo();
-                taskInfo.ID = t.Id;
-                taskInfo.State = t.Status;
-                taskInfo.Progress = t.Progress;
-                TaskDataManager.Instance.UpdateTaskInfo(taskInfo.ID, taskInfo);
-            }
+            var response = (M2C_GetDailyTaskInfos)await MessageHelper.SendToServer(new C2M_GetDailyTaskInfos());
+            if (!(response is { Error: ErrorCode.ERR_Success })) return false;
             for (var i = 0; i < response.kLivenessBox.Count; i++)
             {
                 DailyTaskDataManager.Instance.UpdateLivenessBoxInfo(response.kLivenessBox[i], response.vLivenessBox[i]);
@@ -52,38 +33,7 @@ namespace GFGGame
 
             return true;
         }
-        public static async ETTask<bool> ReqDailyTaskBonus(int taskId)
-        {
-            M2C_GetDailyTaskBonus response;
-            response = (M2C_GetDailyTaskBonus)await MessageHelper.SendToServer(new C2M_GetDailyTaskBonus() { Id = taskId });
-            if (response == null) return false;
-            if (response.Error != ErrorCode.ERR_Success) return false;
-            TaskDataManager.Instance.UpdateTaskState(response.Id, response.Status);
-            int[][] bonus = DailyTaskCfgArray.Instance.GetCfg(response.Id).rewardsArr;
-            BonusController.TryShowBonusList(bonus);
-            return true;
-        }
-        public static async ETTask<bool> ReqAllDailyTaskBonus()
-        {
-            M2C_GetAllDailyTaskBonus response = null;
-            response = (M2C_GetAllDailyTaskBonus)await MessageHelper.SendToServer(new C2M_GetAllDailyTaskBonus());
-            if (response == null) return false;
-            if (response.Error != ErrorCode.ERR_Success) return false;
-            // BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(response.bonusList));
-            foreach (var t in response.TaskList)
-            {
-                var taskInfo = new TaskInfo
-                {
-                    ID = t.Id,
-                    State = t.Status,
-                    Progress = t.Progress
-                };
-                TaskDataManager.Instance.UpdateTaskInfo(taskInfo.ID, taskInfo);
-            }
-            var itemDatas = ItemUtil.CreateItemDataList(response.BonusList);
-            BonusController.TryShowBonusList(itemDatas);
-            return true;
-        }
+
         public static async ETTask<bool> ReqLivenessBox(int boxId)
         {
             M2C_GetLivenessBox response;
@@ -96,4 +46,4 @@ namespace GFGGame
             return true;
         }
     }
-}
+}

+ 0 - 28
GameClient/Assets/Game/HotUpdate/ServerProxy/DailyWelfareSProxy.cs

@@ -1,38 +1,10 @@
-using System;
 using System.Collections.Generic;
 using ET;
-using GFGGame;
 
 namespace GFGGame
 {
     public static class DailyWelfareSProxy
     {
-        public static async ETTask<bool> ReqDailyTaskInfos()
-        {
-            M2C_GetDailyTaskInfos response = null;
-            response = (M2C_GetDailyTaskInfos)await MessageHelper.SendToServer(new C2M_GetDailyTaskInfos());
-            if (response != null)
-            {
-                if (response.Error == ErrorCode.ERR_Success)
-                {
-                    for (int i = 0; i < response.TaskList.Count; i++)
-                    {
-                        TaskInfo taskInfo = new TaskInfo();
-                        taskInfo.ID = response.TaskList[i].Id;
-                        taskInfo.State = response.TaskList[i].Status;
-                        taskInfo.Progress = response.TaskList[i].Progress;
-                        TaskDataManager.Instance.UpdateTaskInfo(taskInfo.ID, taskInfo);
-                    }
-                    for (int i = 0; i < response.kLivenessBox.Count; i++)
-                    {
-                        DailyTaskDataManager.Instance.UpdateLivenessBoxInfo(response.kLivenessBox[i], response.vLivenessBox[i]);
-                    }
-
-                    return true;
-                }
-            }
-            return false;
-        }
         //每日签到
         public static async ETTask<bool> ReqSign(int taskId)
         {

+ 17 - 16
GameClient/Assets/Game/HotUpdate/ServerProxy/TaskSProxy.cs

@@ -1,3 +1,4 @@
+using System.Linq;
 using ET;
 using GFGGame;
 
@@ -27,7 +28,7 @@ namespace GFGGame
         //获取所有类型的任务信息
         public static void GetTaskInfos()
         {
-            for (var i = TaskType.Day7; i < TaskType.TaskMax; i++) GetTaskInfos(i).Coroutine();
+            for (var i = TaskType.Daily; i < TaskType.TaskMax; i++) GetTaskInfos(i).Coroutine();
         }
 
         //C2M_GetTaskInfos
@@ -42,29 +43,29 @@ namespace GFGGame
         public static async ETTask<bool> GetTaskBonus(int taskId)
         {
             //C2M_GetTaskBonus
-            var response = (M2C_GetTaskBonus)await MessageHelper.SendToServer(new C2M_GetTaskBonus
-            {
-            });
-            if (response.Error != ErrorCode.ERR_Success)
-            {
-                return false;
-            }
-
+            var response = (M2C_GetTaskBonus)await MessageHelper.SendToServer(new C2M_GetTaskBonus { Id = taskId });
+            if (!(response is { Error: ErrorCode.ERR_Success })) return false;
+            TaskDataManager.Instance.UpdateTaskState(response.Id, response.Status);
+            var bonus = TaskCfgArray.Instance.GetCfg(response.Id).rewardsArr;
+            BonusController.TryShowBonusList(bonus);
             return true;
         }
 
         //C2M_GetAllTaskBonus
-        public static async ETTask<bool> GetAllTaskBonus()
+        public static async ETTask<bool> GetAllTaskBonus(int taskType)
         {
             //C2M_GetAllTaskBonus
-            var response = (M2C_GetAllTaskBonus)await MessageHelper.SendToServer(new C2M_GetAllTaskBonus
-            {
-            });
-            if (response.Error != ErrorCode.ERR_Success)
+            var response =
+                (M2C_GetAllTaskBonus)await MessageHelper.SendToServer(new C2M_GetAllTaskBonus { Type = taskType });
+            if (!(response is { Error: ErrorCode.ERR_Success })) return false;
+            // BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(response.bonusList));
+            foreach (var taskInfo in response.TaskList.Select(t => new TaskInfo
+                         { ID = t.Id, State = t.Status, Progress = t.Progress }))
             {
-                return false;
+                TaskDataManager.Instance.UpdateTaskInfo(taskInfo.ID, taskInfo);
             }
-
+            var itemDatas = ItemUtil.CreateItemDataList(response.BonusList);
+            BonusController.TryShowBonusList(itemDatas);
             return true;
         }
     }

+ 13 - 11
GameClient/Assets/Game/HotUpdate/Views/Task/BattlePassTaskView.cs

@@ -44,46 +44,47 @@ namespace GFGGame
         {
             base.OnShown();
             //获取通行证奖励配置
-            //TODO 获取赛季id
-            var SeaseonId = 1;
-            _rewardCfgs = new List<BattlePassCfg>(BattlePassCfgArray.Instance.GetCfgsByid(SeaseonId));
+            var seasonId = BattlePassTaskDataManager.Instance.GetSeasonId();
+            _rewardCfgs = new List<BattlePassCfg>(BattlePassCfgArray.Instance.GetCfgsByid(seasonId));
             _ui.m_RewardList.numItems = _rewardCfgs.Count;
             _ui.m_RewardList.ScrollToView(0);
         }
 
         //开启通行证
-        private void OnBtnOpenClick()
+        private void OnBtnOpenClick(EventContext context)
         {
             //TODO
             Log.Debug("开启通行证");
         }
 
         //领取奖励
-        private void OnBtnGetClick()
+        private void OnBtnGetClick(EventContext context)
         {
             //TODO
             Log.Debug("领取奖励");
         }
 
         //继续领取
-        private void OnBtnContinueClick()
+        private void OnBtnContinueClick(EventContext context)
         {
             //TODO
             Log.Debug("继续领取");
         }
 
         //领取全部奖励
-        private void OnBtnGetAllClick()
+        private void OnBtnGetAllClick(EventContext context)
         {
             //TODO
             Log.Debug("领取全部奖励");
         }
 
         //前往
-        private void OnBtnGoClick()
+        private void OnBtnGoClick(EventContext context)
         {
-            //TODO
-            Log.Debug("前往");
+            Hide();
+            var btnGo = context.sender as GObject;
+            if (btnGo == null) return;
+            ViewManager.Show($"GFGGame.{btnGo.data}", null, new[] { typeof(TaskView).FullName, viewData }, true);
         }
 
         private void ListBoxRewardItemRender(int index, GObject obj)
@@ -111,7 +112,8 @@ namespace GFGGame
 
             item.m_RewardList.data = battlePassCfg.bonusSpecialArr;
             item.m_RewardList.numItems = battlePassCfg.bonusSpecialArr.Length;
-            //TODO 设置按钮状态
+            //获取玩家当前的通行证等级
+            var dataManager = BattlePassTaskDataManager.Instance;
             var state = 1;
             //设置按钮状态
             SetBtnState(item, battlePassCfg.id, state);

+ 31 - 17
GameClient/Assets/Game/HotUpdate/Views/Task/CombTaskView.cs

@@ -11,6 +11,8 @@ namespace GFGGame
         private List<TaskCfg> _cfgs;
         private List<DailyActiveRewardCfg> _rewardCfgs;
 
+        private int taskType = TaskType.Daily;
+
         public override void Dispose()
         {
             if (_ui != null)
@@ -30,6 +32,8 @@ namespace GFGGame
             viewCom = _ui.target;
             isfullScreen = true;
             clickBlankToClose = false;
+            _ui.m_c1.onChanged.Add(OnCtrlChange);
+            _ui.m_TaskList.itemRenderer = TaskItemRender;
         }
 
         protected override void OnShown()
@@ -37,6 +41,24 @@ namespace GFGGame
             base.OnShown();
             _rewardCfgs = new List<DailyActiveRewardCfg>(DailyActiveRewardCfgArray.Instance.dataArray);
             UpdateLivenessProcess();
+            UpdateTask();
+        }
+
+        //切换任务类型
+        private void OnCtrlChange()
+        {
+            taskType = _ui.m_c1.selectedIndex switch
+            {
+                0 =>
+                    //每日任务
+                    TaskType.Daily,
+                1 =>
+                    //织造任务
+                    TaskType.BattlePass,
+                _ => taskType
+            };
+            //更新任务列表
+            UpdateTask();
         }
 
         //更新活跃度进度条
@@ -76,26 +98,16 @@ namespace GFGGame
         //更新任务列表
         private void UpdateTask()
         {
-            var selectedIndex = _ui.m_c1.selectedIndex;
-            switch (selectedIndex)
-            {
-                case 0:
-                    _cfgs = TaskDataManager.Instance.GetTaskCfgs(TaskType.Daily);
-                    break;
-                case 1:
-                    _cfgs = TaskDataManager.Instance.GetTaskCfgs(TaskType.BattlePass);
-                    break;
-            }
-
-            _ui.m_TaskList.itemRenderer = TaskItemIndex;
+            _cfgs = TaskDataManager.Instance.GetTaskCfgs(taskType);
             _ui.m_TaskList.numItems = _cfgs.Count;
         }
 
-        private void TaskItemIndex(int index, GObject obj)
+        private void TaskItemRender(int index, GObject obj)
         {
             var item = UI_TaskListItem.Proxy(obj);
             //领取状态
             item.m_c1.selectedIndex = TaskDataManager.Instance.GetTaskStateById(_cfgs[index].id);
+            item.m_c2.selectedIndex = _cfgs[index].jumpId == "" ? 1 : 0;
             item.m_txtDesc.text = TaskDataManager.Instance.GetTaskDesc(_cfgs[index].id);
             item.m_txtCount.text =
                 $"{TaskDataManager.Instance.GetTaskProgressById(_cfgs[index].id)}/{_cfgs[index].count}";
@@ -135,8 +147,9 @@ namespace GFGGame
         private async void OnBtnGetClick(EventContext context)
         {
             var btnGet = context.sender as GObject;
-            var result = await DailyTaskSProxy.ReqDailyTaskBonus((int)btnGet.data);
-            if (!result) return;
+            //TODO 通用任务领奖
+            // var result = await DailyTaskSProxy.ReqDailyTaskBonus((int)btnGet.data);
+            // if (!result) return;
             UpdateLivenessProcess();
             UpdateTask();
             LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.MEI_RI_REN_WU, 2);
@@ -146,7 +159,7 @@ namespace GFGGame
         {
             Hide();
             var btnGo = context.sender as GObject;
-            ViewManager.Show($"GFGGame.{btnGo.data}", null, new[] { typeof(CombTaskView).FullName, viewData }, true);
+            ViewManager.Show($"GFGGame.{btnGo.data}", null, new[] { typeof(TaskView).FullName, viewData }, true);
         }
 
         private async void OnBoxRewardItemClick(EventContext context)
@@ -176,7 +189,8 @@ namespace GFGGame
 
         private async void OnBtnGetAllClick()
         {
-            var result = await DailyTaskSProxy.ReqAllDailyTaskBonus();
+            //通用任务一键领奖
+            var result = await TaskSProxy.GetAllTaskBonus(taskType);
             if (!result) return;
             UpdateLivenessProcess();
             UpdateTask();

BIN
GameClient/Assets/ResIn/UI/Task/Task_atlas0!a.png


BIN
GameClient/Assets/ResIn/UI/Task/Task_atlas0.png


BIN
GameClient/Assets/ResIn/UI/Task/Task_fui.bytes


+ 0 - 2
GameClient/GameClient.sln.DotSettings.user

@@ -1,2 +0,0 @@
-<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
-	<s:Boolean x:Key="/Default/CodeEditing/Unity/AllowRiderUpdateNotifications/@EntryValue">False</s:Boolean></wpf:ResourceDictionary>