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;
}
}
}