浏览代码

feat 任务奖励修改

Jae 2 年之前
父节点
当前提交
4124186c62

+ 8 - 0
GameClient/Assets/Game/HotUpdate/Data/ActivityGlobalDataManager.cs

@@ -121,5 +121,13 @@ namespace GFGGame
             activityInfo.CountValue = countValue;
             EventAgent.DispatchEvent(ConstMessage.ACTIVITY_COUNT_VALUE_CHANGE, activityId);
         }
+     
+        //根据活动id判断活动是否开启
+        public bool IsActivityOpen(int activityId)
+        {
+            if (!activityInfos.ContainsKey(activityId)) return false;
+            var activityInfo = activityInfos[activityId];
+            return activityInfo.StartTime <= TimeHelper.ServerNow() && activityInfo.EndTime > TimeHelper.ServerNow();
+        }
     }
 }

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

@@ -178,9 +178,9 @@ namespace GFGGame
                     return string.Format(activeRewardCfg.desc, taskCfg.paramsArr[0], taskCfg.paramsArr[1]);
                 case ConstTaskType.FinishStory:
                 case ConstTaskType.FinishInstanceZones:
-                    {
-                        return string.Format(activeRewardCfg.desc, taskCfg.paramsArr[0]);
-                    }
+                {
+                    return string.Format(activeRewardCfg.desc, taskCfg.paramsArr[0]);
+                }
                 default: return string.Format(activeRewardCfg.desc, taskCfg.GetTargetCount());
             }
         }
@@ -200,5 +200,14 @@ namespace GFGGame
             TaskInfosDic.Clear();
             TaskType2TaskIdListDic.Clear();
         }
+
+        public int[][] GetReward(TaskCfg taskCfg)
+        {
+            var activityId = taskCfg.activityId;
+            if (activityId == 0) return taskCfg.rewardsArr;
+            return !ActivityGlobalDataManager.Instance.IsActivityOpen(activityId)
+                ? taskCfg.rewardsArr
+                : taskCfg.activityRewardsArr;
+        }
     }
 }

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

@@ -99,7 +99,9 @@ namespace GFGGame
             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;
+            var taskCfg = TaskCfgArray.Instance.GetCfg(response.Id);
+            if (taskCfg == null) return false;
+            var bonus = TaskDataManager.Instance.GetReward(taskCfg);
             BonusController.TryShowBonusList(bonus);
             return true;
         }

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

@@ -204,8 +204,8 @@ namespace GFGGame
             {
                 item.m_listTaskReward.itemRenderer = ListTaskRewardItemRender;
             }
-            item.m_listTaskReward.data = taskCfg.rewardsArr;
-            item.m_listTaskReward.numItems = taskCfg.rewardsArr.Length;
+            item.m_listTaskReward.data = TaskDataManager.Instance.GetReward(taskCfg);
+            item.m_listTaskReward.numItems = TaskDataManager.Instance.GetReward(taskCfg).Length;
             RedDotController.Instance.SetComRedDot(item.m_GetRewardBt, item.m_c1.selectedIndex == 1);
             UI_TaskListItem.ProxyEnd();
         }

+ 17 - 10
GameClient/Assets/Game/HotUpdate/Views/ActivityThemeLuckyBox/ActivityThemeLuckyBoxTaskView.cs

@@ -35,11 +35,12 @@ namespace GFGGame
             _ui.m_list.itemRenderer = RenderListItem;
             _ui.m_btnClose.onClick.Add(Hide);
         }
+
         protected override void AddEventListener()
         {
             base.AddEventListener();
-
         }
+
         protected override void OnShown()
         {
             base.OnShown();
@@ -49,26 +50,31 @@ namespace GFGGame
         protected override void OnHide()
         {
             base.OnHide();
-
         }
 
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
-
         }
+
         private void UpdateView()
         {
-            _taskCfgs = TaskDataManager.Instance.GetTaskCfgs(TaskType.LuckyBoxActivity); //TaskCfgArray.Instance.GetCfgsBytaskType(TaskType.LuckyBoxActivity);
+            _taskCfgs =
+                TaskDataManager.Instance.GetTaskCfgs(TaskType
+                    .LuckyBoxActivity); //TaskCfgArray.Instance.GetCfgsBytaskType(TaskType.LuckyBoxActivity);
             _ui.m_list.numItems = _taskCfgs.Count;
         }
+
         private void RenderListItem(int index, GObject obj)
         {
             UI_ListItem item = UI_ListItem.Proxy(obj);
             //领取状态
             int state = TaskDataManager.Instance.GetTaskStateById(_taskCfgs[index].id);
-            item.m_c1.selectedIndex = state == ConstBonusStatus.CAN_NOT_GET && !string.IsNullOrEmpty(_taskCfgs[index].jumpId) ? 3 : state;
-            item.m_txtTitle.text = string.Format("{0}({1}/{2})", TaskDataManager.Instance.GetTaskDesc(_taskCfgs[index].id), TaskDataManager.Instance.GetTaskProgressById(_taskCfgs[index].id), _taskCfgs[index].GetTargetCount());
+            item.m_c1.selectedIndex =
+                state == ConstBonusStatus.CAN_NOT_GET && !string.IsNullOrEmpty(_taskCfgs[index].jumpId) ? 3 : state;
+            item.m_txtTitle.text = string.Format("{0}({1}/{2})",
+                TaskDataManager.Instance.GetTaskDesc(_taskCfgs[index].id),
+                TaskDataManager.Instance.GetTaskProgressById(_taskCfgs[index].id), _taskCfgs[index].GetTargetCount());
 
             if (item.m_btnGet.data == null)
             {
@@ -86,8 +92,9 @@ namespace GFGGame
             {
                 item.m_listRewards.itemRenderer = RenderListRewardItem;
             }
-            item.m_listRewards.data = _taskCfgs[index].rewardsArr;
-            item.m_listRewards.numItems = _taskCfgs[index].rewardsArr.Length;
+            var reward = TaskDataManager.Instance.GetReward(_taskCfgs[index]);
+            item.m_listRewards.data = reward;
+            item.m_listRewards.numItems = reward.Length;
             UI_ListItem.ProxyEnd();
         }
 
@@ -109,7 +116,6 @@ namespace GFGGame
             var result = await TaskSProxy.GetTaskBonus((int)btnGet.data);
             if (!result) return;
             UpdateView();
-
         }
 
         private void OnBtnGoClick(EventContext context)
@@ -122,7 +128,8 @@ namespace GFGGame
             {
                 param[i] = taskCfg.jumpParamArr[i];
             }
-            ViewManager.JumpToView(taskCfg.jumpId, param, new object[] { typeof(ActivityThemeLuckyBoxView).FullName, true });
+            ViewManager.JumpToView(taskCfg.jumpId, param,
+                new object[] { typeof(ActivityThemeLuckyBoxView).FullName, true });
         }
     }
 }

+ 13 - 12
GameClient/Assets/Game/HotUpdate/Views/Task/CombTaskView.cs

@@ -180,8 +180,9 @@ namespace GFGGame
             {
                 item.m_listTaskReward.itemRenderer = ListTaskRewardItemRender;
             }
-            item.m_listTaskReward.data = _cfgs[index].rewardsArr;
-            item.m_listTaskReward.numItems = _cfgs[index].rewardsArr.Length;
+            var reward = TaskDataManager.Instance.GetReward(_cfgs[index]);
+            item.m_listTaskReward.data = reward;
+            item.m_listTaskReward.numItems = reward.Length;
             RedDotController.Instance.SetComRedDot(item.m_GetRewardBt, item.m_c1.selectedIndex == 1);
             UI_TaskListItem.ProxyEnd();
         }
@@ -259,17 +260,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;