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] [Save("equipment_name")] public string Name { get; set; } [Export(PropertyHint.MultilineText)] [Save("equipment_stat_text")] public string StatDescription { get; set; } [Export(PropertyHint.MultilineText)] [Save("equipment_flavor_text")] public string FlavorText { get; set; } [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 int BonusLuck { get; set; } = 5; [Export] [Save("equipment_bonus_hp")] public int BonusHP { get; set; } = 0; [Export] [Save("equipment_bonus_vt")] public int BonusVT { get; set; } = 0; [Export] [Save("equipment_aeolic_resist")] public int AeolicResistance { get; set; } = 0; [Export] [Save("equipment_telluric_resist")] public int TelluricResistance { get; set; } = 0; [Export] [Save("equipment_hydric_resist")] public int HydricResistance { get; set; } = 0; [Export] [Save("equipment_igneous_resist")] public int IgneousResistance { get; set; } = 0; [Export] [Save("equipment_ferrum_resist")] public int FerrumResistance { get; set; } = 0; [Export] [Save("equipment_holy_resist")] public int HolyResistance { get; set; } = 0; [Export] [Save("equipment_curse_resist")] public int CurseResistance { get; set; } = 0; [Export(PropertyHint.Range, "0, 25, 0.1")] [Save("equipment_throw_speed")] public float ThrowSpeed { get; set; } = 12.0f; [Export(PropertyHint.Range, "0, 999, 1")] [Save("equipment_throw_damage")] public int ThrowDamage { get; set; } = 5; [Export] [Save("equipment_item_tag")] public ItemTag ItemTag { get; set; } = ItemTag.None; [Export] [Save("inventory_item_texture")] public Texture2D Texture { get; set; } [Export] public RarityTag RarityTag { get; set; } [Export(PropertyHint.Range, "0, 1, 0.01")] public float SpawnRate { get; set; } = 1f; [Export] public FloorSpawnTable SpawnsOn { get; set; } = new FloorSpawnTable(); }