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

using System.Text.Json;

[EffectFragment(
    "TotalAmmo", 
    "修改武器总弹药量, ",
    Arg1 = "(int|null)弹药变化的具体值, 如果不传则表示补满弹药"
)]
public class Eff_TotalAmmo : EffectFragment
{
    private bool _initParam = false;
    private int _value;

    public override void InitParam(JsonElement[] args)
    {
        if (args.Length > 0)
        {
            _initParam = true;
            _value = args[0].GetInt32();
        }
    }

    public override void OnUse()
    {
        var weapon = Role.WeaponPack.ActiveItem;
        if (_initParam)
        {
            weapon.SetTotalAmmo(weapon.TotalAmmon + _value);
        }
        else
        {
            weapon.SetTotalAmmo(weapon.Attribute.MaxAmmoCapacity);
        }
    }
}