namespace ET { /// /// 监视hp数值变化,改变血条值 /// [NumericWatcher(NumericType.Mp)] public class NumericWatcher_Mp : INumericWatcher { public async ETTask Run(Entity entity, float old, float value) { if (!entity) return; NumericComponent num = entity.GetComponent(); int maxMp = num.GetAsInt(NumericType.MaxMp); if (value <= 0) { value = 0; } else if (value > maxMp) { num.Set(NumericType.Mp, maxMp); value = maxMp; } DelaySendSyncAttributeComponent.instance.Add(entity.As(), NumericType.Mp, value); await ETTask.CompletedTask; } } }