Jae 2 жил өмнө
parent
commit
fe40f53a53

+ 3 - 0
GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs

@@ -139,5 +139,8 @@ namespace GFGGame
         //通知通行证赛季变更
         public const string NOTICE_PASSPORT_SEASON_CHANGE = "NOTICE_PASSPORT_SEASON_CHANGE";
         
+        //通知任务状态变更
+        public const string NOTICE_TASK_STATE_CHANGE = "NOTICE_TASK_STATE_CHANGE";
+        
     }
 }

+ 3 - 4
GameClient/Assets/Game/HotUpdate/Data/ActivityDay7DataManager.cs

@@ -23,14 +23,13 @@ namespace GFGGame
 
         public bool CheckOpen()
         {
-            return GetActivityDay7Day() <= Activity7DaysCfgArray.Instance.dataArray.Length;
+            return GetEndTime() > TimeHelper.ServerNow();
         }
-        
+
         public long GetEndTime()
         {
-            //TODO 进行缓存
             return TimeUtil.TodayRestTime() +
-                   (Activity7DaysCfgArray.Instance.dataArray.Length - GetActivityDay7Day())
+                   (GlobalCfgArray.globalCfg.Activity7DaysLastTime - GetActivityDay7Day() + 1)
                    * TimeUtil.SECOND_PER_DAY * 1000;
         }
     }

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Data/ArenaDataManager.cs

@@ -111,7 +111,7 @@ namespace GFGGame
         /// <value></value>
         public bool IsSeasonOpen
         {
-            get
+            get 
             {
                 ArenaOpenCfg cfg = ArenaOpenCfgArray.Instance.GetCfg(SeasonId);
                 if (TimeUtil.IsBeforeCurTime(cfg.openTime) && TimeUtil.IsLaterCurTime(cfg.endTime))

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

@@ -143,9 +143,11 @@ namespace GFGGame
                     }
                     return string.Format(activeRewardCfg.desc, taskCfg.GetTargetCount(), name);
                 case ConstTaskType.UseItem:
-                case ConstTaskType.Suitsynthesis:
                     var cfg = ItemCfgArray.Instance.GetCfg(taskCfg.paramsArr[0]);
                     return string.Format(activeRewardCfg.desc, taskCfg.GetTargetCount(), cfg.name);
+                case ConstTaskType.Suitsynthesis:
+                    var suitCfg = SuitCfgArray.Instance.GetCfg(taskCfg.paramsArr[0]);
+                    return string.Format(activeRewardCfg.desc, taskCfg.GetTargetCount(), suitCfg.name);
                 case ConstTaskType.UpgradeCardLvl:
                 case ConstTaskType.UpgradeCardStar:
                     return string.Format(activeRewardCfg.desc, taskCfg.paramsArr[0], taskCfg.paramsArr[1]);

+ 1 - 1
GameClient/Assets/Game/HotUpdate/ServerProxy/TaskSProxy.cs

@@ -17,7 +17,7 @@ namespace ET
                 Progress = message.TaskInfo.Progress
             };
             TaskDataManager.Instance.UpdateTaskInfo(taskInfo.ID, taskInfo);
-            EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
+            EventAgent.DispatchEvent(ConstMessage.NOTICE_TASK_STATE_CHANGE, taskInfo.ID);
             await ETTask.CompletedTask;
         }
     }

+ 20 - 0
GameClient/Assets/Game/HotUpdate/Views/ActivityDay7/ActivityDay7View.cs

@@ -71,6 +71,25 @@ namespace GFGGame
         protected override void AddEventListener()
         {
             EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, OnItemChange);
+            // ConstMessage.NOTICE_TASK_STATE_CHANGE
+            EventAgent.AddEventListener(ConstMessage.NOTICE_TASK_STATE_CHANGE, OnTaskChange);
+        }
+
+        private void OnTaskChange(EventContext context)
+        {
+            var taskId = (int)context.data;
+            var taskCfg = TaskCfgArray.Instance.GetCfg(taskId);
+            if (taskCfg == null) return;
+            if (taskCfg.taskType != TaskType.Day7) return;
+            SetTasks();
+        }
+
+        protected override void RemoveEventListener()
+        {
+            //ConstMessage.ITEM_CHANGED
+            EventAgent.RemoveEventListener(ConstMessage.ITEM_CHANGED, OnItemChange);
+            // ConstMessage.NOTICE_TASK_STATE_CHANGE
+            EventAgent.RemoveEventListener(ConstMessage.NOTICE_TASK_STATE_CHANGE, OnTaskChange);
         }
 
         private void OnItemChange(EventContext context)
@@ -224,6 +243,7 @@ namespace GFGGame
             //7日活动配置
             cfgDataArray = Activity7DaysTaskCfgArray.Instance.dataArray;
             _ui.m_DayList.numItems = cfgDataArray.Length;
+            _ui.m_DayList.ScrollToView(onClickDayIndex);
         }
 
         private void FreshGetStatus()

+ 21 - 10
GameClient/Assets/Game/HotUpdate/Views/Task/CombTaskView.cs

@@ -55,11 +55,22 @@ namespace GFGGame
         protected override void AddEventListener()
         {
             EventAgent.AddEventListener(ConstMessage.LIVENESS_CHANGE, UpdateLivenessProcess);
+            EventAgent.AddEventListener(ConstMessage.NOTICE_TASK_STATE_CHANGE, OnTaskChange);
         }
 
         protected override void RemoveEventListener()
         {
             EventAgent.RemoveEventListener(ConstMessage.LIVENESS_CHANGE, UpdateLivenessProcess);
+            EventAgent.RemoveEventListener(ConstMessage.NOTICE_TASK_STATE_CHANGE, OnTaskChange);
+        }
+
+        private void OnTaskChange(EventContext eventContext)
+        {
+            var taskId = (int)eventContext.data;
+            var taskCfg = TaskCfgArray.Instance.GetCfg(taskId);
+            if (taskCfg == null) return;
+            if (taskCfg.taskType != taskType) return;
+            UpdateTask();
         }
 
         //切换任务类型
@@ -199,17 +210,17 @@ namespace GFGGame
             switch (state)
             {
                 case ConstBonusStatus.CAN_NOT_GET:
-                    {
-                        var rewards = ItemUtil.CreateItemDataList(cfg.rewardsArr);
-                        ViewManager.Show<RewardPreView>(new object[] { rewards, "活跃度奖励", $"满足{cfg.count}活跃度可领取" });
-                        break;
-                    }
+                {
+                    var rewards = ItemUtil.CreateItemDataList(cfg.rewardsArr);
+                    ViewManager.Show<RewardPreView>(new object[] { rewards, "活跃度奖励", $"满足{cfg.count}活跃度可领取" });
+                    break;
+                }
                 case ConstBonusStatus.CAN_GET:
-                    {
-                        var result = await DailyTaskSProxy.ReqLivenessBox(cfg.id);
-                        if (result) UpdateLivenessProcess();
-                        break;
-                    }
+                {
+                    var result = await DailyTaskSProxy.ReqLivenessBox(cfg.id);
+                    if (result) UpdateLivenessProcess();
+                    break;
+                }
                 case ConstBonusStatus.GOT:
                     //领取完毕
                     break;