Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / buff / charge / Cha_Hurt.cs
@小李xl 小李xl on 22 Mar 2024 1012 bytes 道具逻辑片段更新参数描述

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