| 
					
				 | 
			
			
				@@ -2,25 +2,24 @@ using System.Collections.Generic; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using System.Linq; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using ET; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using GFGGame; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-using UnityEditor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 namespace ET 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //M2C_TaskInfoChange 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public class M2C_TaskInfoChangeHandler : AMHandler<M2C_TaskInfoChange> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        protected override async ETTask Run(Session session, M2C_TaskInfoChange message) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var taskInfo = new TaskInfo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ID = message.TaskInfo.Id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                State = message.TaskInfo.Status, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Progress = message.TaskInfo.Progress 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            TaskDataManager.Instance.UpdateTaskInfo(taskInfo.ID, taskInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            await ETTask.CompletedTask; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // public class M2C_TaskInfoChangeHandler : AMHandler<M2C_TaskInfoChange> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     protected override async ETTask Run(Session session, M2C_TaskInfoChange message) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         var taskInfo = new TaskInfo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             ID = message.TaskInfo.Id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             State = message.TaskInfo.Status, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             Progress = message.TaskInfo.Progress 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         TaskDataManager.Instance.UpdateTaskInfo(taskInfo.ID, taskInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         await ETTask.CompletedTask; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //M2C_TaskClose 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public class M2C_TaskCloseHandler : AMHandler<M2C_TaskClose> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -28,27 +27,22 @@ namespace ET 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         protected override async ETTask Run(Session session, M2C_TaskClose message) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             TaskDataManager.Instance.RemoveTaskInfo(message.TaskId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            EventAgent.DispatchEvent(ConstMessage.NOTICE_TASK_STATE_CHANGE, message.TaskId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            EventAgent.DispatchEvent(ConstMessage.NOTICE_BATCH_TASK_STATE_CHANGE, new List<int> { message.TaskId }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             await ETTask.CompletedTask; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //通知任务重置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public class M2C_TaskResetHandler : AMHandler<M2C_TaskReset> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public class M2C_TaskResetHandler : AMHandler<M2C_TaskChange> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        protected override async ETTask Run(Session session, M2C_TaskReset message) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        protected override async ETTask Run(Session session, M2C_TaskChange message) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var changeIds = new List<int>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             message.TaskList.ForEach(proto => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                var taskInfo = new TaskInfo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ID = proto.Id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    State = proto.Status, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    Progress = proto.Progress 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                TaskDataManager.Instance.UpdateTaskInfo(taskInfo.ID, taskInfo, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var taskInfo = new TaskInfo { ID = proto.Id, State = proto.Status, Progress = proto.Progress }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                TaskDataManager.Instance.UpdateTaskInfo(taskInfo.ID, taskInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 changeIds.Add(taskInfo.ID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //NOTICE_TASK_STATE_CHANGE 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -84,10 +78,10 @@ namespace GFGGame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     State = proto.Status, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     Progress = proto.Progress 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                TaskDataManager.Instance.UpdateTaskInfo(taskInfo.ID, taskInfo, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                TaskDataManager.Instance.UpdateTaskInfo(taskInfo.ID, taskInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 changeIds.Add(taskInfo.ID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            EventAgent.DispatchEvent(ConstMessage.NOTICE_TASK_STATE_CHANGE, changeIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            EventAgent.DispatchEvent(ConstMessage.NOTICE_BATCH_TASK_STATE_CHANGE, changeIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return response.Error == ErrorCode.ERR_Success; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -99,6 +93,8 @@ 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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            EventAgent.DispatchEvent(ConstMessage.NOTICE_BATCH_TASK_STATE_CHANGE, new List<int> { taskId }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var taskCfg = TaskCfgArray.Instance.GetCfg(response.Id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (taskCfg == null) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var bonus = TaskDataManager.Instance.GetReward(taskCfg); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -114,13 +110,17 @@ namespace GFGGame 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 (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)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var changeIds = new List<int>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             foreach (var taskInfo in response.TaskList.Select(t => new TaskInfo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                          { ID = t.Id, State = t.Status, Progress = t.Progress })) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 TaskDataManager.Instance.UpdateTaskInfo(taskInfo.ID, taskInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                changeIds.Add(taskInfo.ID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var itemDatas = ItemUtil.CreateItemDataList(response.BonusList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             BonusController.TryShowBonusList(itemDatas); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            EventAgent.DispatchEvent(ConstMessage.NOTICE_BATCH_TASK_STATE_CHANGE, changeIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 |