using Chickensoft.AutoInject; using Chickensoft.Introspection; using Chickensoft.Serialization; using Godot; using Zennysoft.Ma.Adapter; namespace Zennysoft.Game.Ma; [Meta(typeof(IAutoNode)), Id("accessory")] public partial class Accessory : EquipableItem { public override void _Notification(int what) => this.Notify(what); [Node] private Sprite3D _sprite { get; set; } = default!; public override void _Ready() { _sprite.Texture = Stats.Texture; } public override string ItemName => Stats.Name; public override string Description => Stats.Description; public override float SpawnRate => Stats.SpawnRate; public override double ThrowDamage => Stats.ThrowDamage; public override float ThrowSpeed => Stats.ThrowSpeed; public int MaxHPUp => Stats.MaxHPUp; public int MaxVTUp => Stats.MaxVTUp; public double LuckUp => Stats.LuckUp; public int ATKUp => Stats.ATKUp; public int DEFUp => Stats.DEFUp; public AccessoryTag AccessoryTag => Stats.AccessoryTag; public override ItemTag ItemTag => Stats.ItemTag; [Export] [Save("accessory_stats")] public AccessoryStats Stats { get; set; } = new AccessoryStats(); public override Texture2D GetTexture() => Stats.Texture; }