| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | using System.Linq;using ET;using GFGGame;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);            EventAgent.DispatchEvent(ConstMessage.NOTICE_TASK_STATE_CHANGE, taskInfo.ID);            await ETTask.CompletedTask;        }    }    //M2C_TaskClose    public class M2C_TaskCloseHandler : AMHandler<M2C_TaskClose>    {        protected override async ETTask Run(Session session, M2C_TaskClose message)        {            TaskDataManager.Instance.RemoveTaskInfo(message.TaskId);            EventAgent.DispatchEvent(ConstMessage.NOTICE_TASK_STATE_CHANGE, message.TaskId);            await ETTask.CompletedTask;        }    }}namespace GFGGame{    public static class TaskSProxy    {        //获取所有类型的任务信息        public static void GetTaskInfos()        {            for (var i = TaskType.Daily; i < TaskType.TaskMax; i++) GetTaskInfos(i).Coroutine();        }        //C2M_GetTaskInfos        private static async ETTask<bool> GetTaskInfos(int taskType)        {            //C2M_GetTaskInfos            var response = (M2C_GetTaskInfos)await MessageHelper.SendToServer(new C2M_GetTaskInfos { Type = taskType });            response.TaskList.ForEach(proto =>            {                var taskInfo = new TaskInfo                {                    ID = proto.Id,                    State = proto.Status,                    Progress = proto.Progress                };                TaskDataManager.Instance.UpdateTaskInfo(taskInfo.ID, taskInfo);            });            return response.Error == ErrorCode.ERR_Success;        }        //C2M_GetTaskBonus        public static async ETTask<bool> GetTaskBonus(int taskId)        {            //C2M_GetTaskBonus            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(int taskType)        {            //C2M_GetAllTaskBonus            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 }))            {                TaskDataManager.Instance.UpdateTaskInfo(taskInfo.ID, taskInfo);            }            var itemDatas = ItemUtil.CreateItemDataList(response.BonusList);            BonusController.TryShowBonusList(itemDatas);            return true;        }    }}
 |