using CommonLang; using ET.EventType; namespace ET.Client { [MessageHandler(SceneType.Client)] public class TiktokLikePushHandler : AMHandler { protected override async ETTask Run(Session session, G2C_LikeInfoPush a) { EventSystem.Instance.Publish(ShowUIAnimation.Clone(ShowUIAnimation.AniType.LikeEnergy, (int)((a.TotalNum % a.ConfigNum) * 100 / a.ConfigNum))); await ETTask.CompletedTask; } } [MessageHandler(SceneType.Client)] public class TiktokGiftPushHandler : AMHandler { public static HashMap map = new(); public static void Reset() { map.Clear(); } protected override async ETTask Run(Session session, G2C_GiftInfoPush a) { EventSystem.Instance.Publish(TiktokGiftEvent.Clone(a.GiftType, a.GiftNum, a.NickName, a.Url)); int vip = 0; for (int i = GameSetting.VipMoney.Length - 1; i >= 0; i--) { if (GameSetting.VipMoney[i] <= a.TotalMoney) { //花了钱,就可以显示大名 vip = i + 1; EventSystem.Instance.Publish(ShowVipName.Clone((uint)a.UnitId, i + 1)); break; } } if (vip > 0) { var unit = UnitMgr.Instance.GetUnit((uint)a.UnitId); if (unit != null && unit is BattleUnit bu) { bu.Vip = vip; } if (map.TryGetValue(a.UnitId, out _)) { map.Remove(a.UnitId); } map.Add(a.UnitId, vip); } await ETTask.CompletedTask; } } [Event] public class NewUnitVipHandler : BEvent { protected override async ETTask OnEvent(EventType.OnNewZoneObject args) { var obj = UnitMgr.Instance.GetUnit(args.ObjectId); if (obj != null && TiktokGiftPushHandler.map.TryGetValue((int)args.ObjectId, out int vip) && obj is BattleUnit bu) { bu.Vip = vip; TiktokGiftPushHandler.map.Remove((int)args.ObjectId); } await ETTask.CompletedTask; } } }