ActivityGlobalSProxy.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. using ET;
  2. using GFGGame;
  3. namespace ET
  4. {
  5. //S2C_NoticeActivityOpen
  6. public class S2C_NoticeActivityOpenHandler : AMHandler<S2C_NoticeActivityOpen>
  7. {
  8. protected override async ETTask Run(Session session, S2C_NoticeActivityOpen message)
  9. {
  10. ActivityInfo info = new ActivityInfo
  11. {
  12. ActivityId = message.ActivityId,
  13. StartTime = message.StartTime,
  14. EndTime = message.EndTime
  15. };
  16. info.EndTime = info.ActivityId == 501 ? 1689703200000 : info.EndTime;//临时屏蔽一个限时活动,测试结束后要删掉
  17. if (info.ActivityId == 501 && (TimeHelper.ServerNow() < info.StartTime || TimeHelper.ServerNow() > info.EndTime))
  18. {
  19. ActivityGlobalDataManager.Instance.RemoveActivityInfo(info.ActivityId);
  20. }
  21. else
  22. {
  23. ActivityGlobalDataManager.Instance.AddActivityInfo(info);
  24. }
  25. await ETTask.CompletedTask;
  26. }
  27. }
  28. //S2C_NoticeActivityClose
  29. public class S2C_NoticeActivityCloseHandler : AMHandler<S2C_NoticeActivityClose>
  30. {
  31. protected override async ETTask Run(Session session, S2C_NoticeActivityClose message)
  32. {
  33. ActivityGlobalDataManager.Instance.RemoveActivityInfo(message.ActivityId);
  34. await ETTask.CompletedTask;
  35. }
  36. }
  37. //S2C_SyncActivityCountValue
  38. public class S2C_SyncActivityCountValueHandler : AMHandler<S2C_SyncActivityCountValue>
  39. {
  40. protected override async ETTask Run(Session session, S2C_SyncActivityCountValue message)
  41. {
  42. ActivityGlobalDataManager.Instance.SetActivityCountValue(message.ActivityId, message.CountValue);
  43. await ETTask.CompletedTask;
  44. }
  45. }
  46. }
  47. namespace GFGGame
  48. {
  49. public class ActivityGlobalSProxy
  50. {
  51. public static async ETTask GetActivityInfo()
  52. {
  53. var c2SGetActivityList = new C2S_GetActivityList();
  54. //获取活动数据,这里是一次性拉去所有活动数据,如果活动数据量大,可以分类型拉取
  55. c2SGetActivityList.Type.Add(0);
  56. var response = (S2C_GetActivityList)await MessageHelper.SendToServer(c2SGetActivityList);
  57. if (!(response is { Error: ErrorCode.ERR_Success }))
  58. {
  59. Log.Error("GetActivityInfo error");
  60. return;
  61. }
  62. response.ActivityList.ForEach(activityInfo =>
  63. {
  64. ActivityInfo info = new ActivityInfo
  65. {
  66. ActivityId = activityInfo.ActivityId,
  67. StartTime = activityInfo.StartTime,
  68. EndTime = activityInfo.EndTime,
  69. GetRewards = activityInfo.GetRewards,
  70. CountValue = activityInfo.CountValue
  71. };
  72. info.EndTime = info.ActivityId == 501 ? 1689703200000 : info.EndTime;//临时屏蔽一个限时活动,测试结束后要删掉
  73. if (info.ActivityId == 501 && (TimeHelper.ServerNow() < info.StartTime || TimeHelper.ServerNow() > info.EndTime))
  74. {
  75. ActivityGlobalDataManager.Instance.RemoveActivityInfo(info.ActivityId);
  76. return;
  77. }
  78. ActivityGlobalDataManager.Instance.AddActivityInfo(info);
  79. });
  80. }
  81. //C2S_CloseActivity
  82. public static async ETTask<bool> ReqCloseActivity(int activityId)
  83. {
  84. var response =
  85. (S2C_CloseActivity)await MessageHelper.SendToServer(new C2S_CloseActivity { ActivityId = activityId });
  86. if (!(response is { Error: ErrorCode.ERR_Success }))
  87. {
  88. Log.Error("ReqCloseActivity error");
  89. return false;
  90. }
  91. return true;
  92. }
  93. //C2S_GetActivityBonus
  94. public static async ETTask<bool> ReqGetActivityBonus(int activityId, int bonusId)
  95. {
  96. var response =
  97. (S2C_GetActivityBonus)await MessageHelper.SendToServer(new C2S_GetActivityBonus()
  98. { ActivityId = activityId, BonusId = bonusId });
  99. if (!(response is { Error: ErrorCode.ERR_Success })) return false;
  100. //奖励弹窗
  101. BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(response.itemList));
  102. ActivityGlobalDataManager.Instance.AddActivityRewardInfo(activityId, bonusId);
  103. EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
  104. return false;
  105. }
  106. }
  107. }