TaskSProxy.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. taskInfo.ID = message.TaskInfo.Id;
  14. taskInfo.State = message.TaskInfo.Status;
  15. taskInfo.Progress = message.TaskInfo.Progress;
  16. TaskDataManager.Instance.UpdateTaskInfo(taskInfo.ID, taskInfo);
  17. EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
  18. await ETTask.CompletedTask;
  19. }
  20. }
  21. }
  22. namespace GFGGame
  23. {
  24. public static class TaskSProxy
  25. {
  26. //获取所有类型的任务信息
  27. public static void GetTaskInfos()
  28. {
  29. for (var i = TaskType.Daily; i < TaskType.TaskMax; i++) GetTaskInfos(i).Coroutine();
  30. }
  31. //C2M_GetTaskInfos
  32. private static async ETTask<bool> GetTaskInfos(int taskType)
  33. {
  34. //C2M_GetTaskInfos
  35. var response = (M2C_GetTaskInfos)await MessageHelper.SendToServer(new C2M_GetTaskInfos { Type = taskType });
  36. return response.Error == ErrorCode.ERR_Success;
  37. }
  38. //C2M_GetTaskBonus
  39. public static async ETTask<bool> GetTaskBonus(int taskId)
  40. {
  41. //C2M_GetTaskBonus
  42. var response = (M2C_GetTaskBonus)await MessageHelper.SendToServer(new C2M_GetTaskBonus { Id = taskId });
  43. if (!(response is { Error: ErrorCode.ERR_Success })) return false;
  44. TaskDataManager.Instance.UpdateTaskState(response.Id, response.Status);
  45. var bonus = TaskCfgArray.Instance.GetCfg(response.Id).rewardsArr;
  46. BonusController.TryShowBonusList(bonus);
  47. return true;
  48. }
  49. //C2M_GetAllTaskBonus
  50. public static async ETTask<bool> GetAllTaskBonus(int taskType)
  51. {
  52. //C2M_GetAllTaskBonus
  53. var response =
  54. (M2C_GetAllTaskBonus)await MessageHelper.SendToServer(new C2M_GetAllTaskBonus { Type = taskType });
  55. if (!(response is { Error: ErrorCode.ERR_Success })) return false;
  56. // BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(response.bonusList));
  57. foreach (var taskInfo in response.TaskList.Select(t => new TaskInfo
  58. { ID = t.Id, State = t.Status, Progress = t.Progress }))
  59. {
  60. TaskDataManager.Instance.UpdateTaskInfo(taskInfo.ID, taskInfo);
  61. }
  62. var itemDatas = ItemUtil.CreateItemDataList(response.BonusList);
  63. BonusController.TryShowBonusList(itemDatas);
  64. return true;
  65. }
  66. }
  67. }