using Chickensoft.Introspection; using Chickensoft.Serialization; using Godot; using Zennysoft.Ma.Adapter; namespace Zennysoft.Game.Ma; [Meta, Id("inventory_item_stats")] public abstract partial class InventoryItemStats : Resource { [Export] public string Name { get; set; } [Export(PropertyHint.MultilineText)] public string Description { get; set; } [Export(PropertyHint.Range, "0, 1, 0.01")] public float SpawnRate { get; set; } = 0.5f; [Export] [Save("weapon_damage")] public int BonusAttack { get; set; } = 0; [Export] [Save("armor_defense")] public int BonusDefense { get; set; } = 0; [Export] [Save("weapon_luck")] public double BonusLuck { get; set; } = 0.05; [Export] public int AeolicResistance { get; set; } = 0; [Export] public int TelluricResistance { get; set; } = 0; [Export] public int HydricResistance { get; set; } = 0; [Export] public int IgneousResistance { get; set; } = 0; [Export] public int FerrumResistance { get; set; } = 0; [Export(PropertyHint.Range, "0, 25, 0.1")] public float ThrowSpeed { get; set; } = 12.0f; [Export(PropertyHint.Range, "0, 999, 1")] public int IncreaseMaxHPAmount { get; set; } [Export(PropertyHint.Range, "0, 999, 1")] public int IncreaseMaxVTAmount { get; set; } [Export(PropertyHint.Range, "0, 999, 1")] public int ThrowDamage { get; set; } = 5; [Export] public ItemTag ItemTag { get; set; } = ItemTag.None; [Export] [Save("inventory_item_texture")] public Texture2D Texture { get; set; } }