using ET; namespace ET { /// /// 监视hp数值变化,改变血条值 /// [NumericWatcher(NumericType.Level)] public class NumericWatcher_Level : INumericWatcher { public async ETTask Run(Entity entity, float old, float value) { Log.Info($"@{entity.Id}改变 Level:{old} -> {value}"); Unit unit = entity.As(); Game.EventSystem.Publish_Sync(new ET.EventType.SetHudCharacter_ChangeLevel { unit = unit, level = (int)value }); Game.EventSystem.Publish_Sync(new ET.EventType.UpdateHeadInfo_ChangeLevel { zoneScene = entity.ZoneScene(), unit = unit, old = (int)old, value = (int)value, duration = 0.6f, }); Game.EventSystem.Publish_Sync(new ET.EventType.UpdateHeadInfo_ChangeMaxExp { zoneScene = entity.ZoneScene(), unit = unit, level = (int)value, }); await ETTask.CompletedTask; } } }