using Godot; using SupaLidlGame.Characters; namespace SupaLidlGame.Items { public abstract partial class Item : Node2D { [Export] public string ItemName { get; set; } [Export] public string Description { get; set; } [Export] public bool CanStack { get; set; } = false; public int Count { get; set; } = 1; public Character CharacterOwner { get; set; } public bool IsOneHanded { get; set; } = false; /// /// Determines if this item can directly stack with other items /// public virtual bool StacksWith(Item item) { if (!CanStack) { return false; } if (ItemName != item.ItemName) { return false; } // several more conditions may be added soon return true; } public abstract void Equip(Character character); public abstract void Unequip(Character character); public abstract void Use(); public abstract void Deuse(); } }