Files
GameJamDungeon/Zennysoft.Game.Ma/src/items/InventoryItemStats.cs
T
2026-06-12 18:09:52 -07:00

96 lines
2.2 KiB
C#

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