TaskSProxy.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using System.Linq;
  2. using ET;
  3. using GFGGame;
  4. namespace ET
  5. {
  6. //M2C_TaskInfoChange
  7. public class M2C_TaskInfoChangeHandler : AMHandler<M2C_TaskInfoChange>
  8. {
  9. protected override async ETTask Run(Session session, M2C_TaskInfoChange message)
  10. {
  11. // Log.Info($"M2C_TaskInfoChangeHandler");
  12. var taskInfo = new TaskInfo
  13. {
  14. ID = message.TaskInfo.Id,
  15. State = message.TaskInfo.Status,
  16. Progress = message.TaskInfo.Progress
  17. };
  18. TaskDataManager.Instance.UpdateTaskInfo(taskInfo.ID, taskInfo);
  19. EventAgent.DispatchEvent(ConstMessage.NOTICE_TASK_STATE_CHANGE, taskInfo.ID);
  20. await ETTask.CompletedTask;
  21. }
  22. }
  23. }
  24. namespace GFGGame
  25. {
  26. public static class TaskSProxy
  27. {
  28. //获取所有类型的任务信息
  29. public static void GetTaskInfos()
  30. {
  31. for (var i = TaskType.Daily; i < TaskType.TaskMax; i++) GetTaskInfos(i).Coroutine();
  32. }
  33. //C2M_GetTaskInfos
  34. private static async ETTask<bool> GetTaskInfos(int taskType)
  35. {
  36. //C2M_GetTaskInfos
  37. var response = (M2C_GetTaskInfos)await MessageHelper.SendToServer(new C2M_GetTaskInfos { Type = taskType });
  38. response.TaskList.ForEach(proto =>
  39. {
  40. var taskInfo = new TaskInfo
  41. {
  42. ID = proto.Id,
  43. State = proto.Status,
  44. Progress = proto.Progress
  45. };
  46. TaskDataManager.Instance.UpdateTaskInfo(taskInfo.ID, taskInfo);
  47. });
  48. return response.Error == ErrorCode.ERR_Success;
  49. }
  50. //C2M_GetTaskBonus
  51. public static async ETTask<bool> GetTaskBonus(int taskId)
  52. {
  53. //C2M_GetTaskBonus
  54. var response = (M2C_GetTaskBonus)await MessageHelper.SendToServer(new C2M_GetTaskBonus { Id = taskId });
  55. if (!(response is { Error: ErrorCode.ERR_Success })) return false;
  56. TaskDataManager.Instance.UpdateTaskState(response.Id, response.Status);
  57. var bonus = TaskCfgArray.Instance.GetCfg(response.Id).rewardsArr;
  58. BonusController.TryShowBonusList(bonus);
  59. return true;
  60. }
  61. //C2M_GetAllTaskBonus
  62. public static async ETTask<bool> GetAllTaskBonus(int taskType)
  63. {
  64. //C2M_GetAllTaskBonus
  65. var response =
  66. (M2C_GetAllTaskBonus)await MessageHelper.SendToServer(new C2M_GetAllTaskBonus { Type = taskType });
  67. if (!(response is { Error: ErrorCode.ERR_Success })) return false;
  68. // BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(response.bonusList));
  69. foreach (var taskInfo in response.TaskList.Select(t => new TaskInfo
  70. { ID = t.Id, State = t.Status, Progress = t.Progress }))
  71. {
  72. TaskDataManager.Instance.UpdateTaskInfo(taskInfo.ID, taskInfo);
  73. }
  74. var itemDatas = ItemUtil.CreateItemDataList(response.BonusList);
  75. BonusController.TryShowBonusList(itemDatas);
  76. return true;
  77. }
  78. }
  79. }