TaskSProxy.cs 3.5 KB

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