using System.Text.Json; [ChargeFragment( "Hurt", "造成伤害充能", Arg1 = "(int)充满能量需要造成的伤害值" )] public class Cha_Hurt : ChargeFragment { private int _value = 100; public override void InitParam(JsonElement[] arg) { _value = arg[0].GetInt32(); } public override void OnUse() { } public override void Process(float delta) { if (Master.IsUsing) { Master.ChargeProgress = 1 - Master.UsingProgress; } } public override void OnUsingFinish() { Master.ChargeProgress = 0; } public override void OnPickUpItem() { Role.OnDamageEvent += OnDamageEvent; } public override void OnRemoveItem() { Role.OnDamageEvent -= OnDamageEvent; } private void OnDamageEvent(Role role, int value) { if (Master.IsUsing) { return; } Master.ChargeProgress += 1f / _value * value; } }