TiktokPushHandler.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. 
  2. using CommonLang;
  3. using ET.EventType;
  4. namespace ET.Client
  5. {
  6. [MessageHandler(SceneType.Client)]
  7. public class TiktokLikePushHandler : AMHandler<G2C_LikeInfoPush>
  8. {
  9. protected override async ETTask Run(Session session, G2C_LikeInfoPush a)
  10. {
  11. EventSystem.Instance.Publish(ShowUIAnimation.Clone(ShowUIAnimation.AniType.LikeEnergy, (int)((a.TotalNum % a.ConfigNum) * 100 / a.ConfigNum)));
  12. await ETTask.CompletedTask;
  13. }
  14. }
  15. [MessageHandler(SceneType.Client)]
  16. public class TiktokGiftPushHandler : AMHandler<G2C_GiftInfoPush>
  17. {
  18. public static HashMap<int, int> map = new();
  19. public static void Reset()
  20. {
  21. map.Clear();
  22. }
  23. protected override async ETTask Run(Session session, G2C_GiftInfoPush a)
  24. {
  25. EventSystem.Instance.Publish(TiktokGiftEvent.Clone(a.GiftType, a.GiftNum, a.NickName, a.Url));
  26. int vip = 0;
  27. for (int i = GameSetting.VipMoney.Length - 1; i >= 0; i--)
  28. {
  29. if (GameSetting.VipMoney[i] <= a.TotalMoney)
  30. {
  31. //花了钱,就可以显示大名
  32. vip = i + 1;
  33. EventSystem.Instance.Publish(ShowVipName.Clone((uint)a.UnitId, i + 1));
  34. break;
  35. }
  36. }
  37. if (vip > 0)
  38. {
  39. var unit = UnitMgr.Instance.GetUnit((uint)a.UnitId);
  40. if (unit != null && unit is BattleUnit bu)
  41. {
  42. bu.Vip = vip;
  43. }
  44. if (map.TryGetValue(a.UnitId, out _))
  45. {
  46. map.Remove(a.UnitId);
  47. }
  48. map.Add(a.UnitId, vip);
  49. }
  50. await ETTask.CompletedTask;
  51. }
  52. }
  53. [Event]
  54. public class NewUnitVipHandler : BEvent<EventType.OnNewZoneObject>
  55. {
  56. protected override async ETTask OnEvent(EventType.OnNewZoneObject args)
  57. {
  58. var obj = UnitMgr.Instance.GetUnit(args.ObjectId);
  59. if (obj != null && TiktokGiftPushHandler.map.TryGetValue((int)args.ObjectId, out int vip) && obj is BattleUnit bu)
  60. {
  61. bu.Vip = vip;
  62. TiktokGiftPushHandler.map.Remove((int)args.ObjectId);
  63. }
  64. await ETTask.CompletedTask;
  65. }
  66. }
  67. }