using UnityEngine; public enum ItemType { Consumable, Weapon, Armor, Quest, Misc } public enum ConsumableEffect { None, RestoreStamina, RestoreHealth, RestoreBoth } [System.Serializable] public class InventoryItem { public string itemName; public Sprite icon; public int quantity; public ItemType itemType = ItemType.Misc; public ConsumableEffect consumableEffect = ConsumableEffect.None; public int effectAmount = 20; // Amount of stamina/HP restored public void Use(CharacterInGroup character) { if (itemType != ItemType.Consumable) return; switch (consumableEffect) { case ConsumableEffect.RestoreStamina: character.currentFatigue = Mathf.Min(character.maxFatigue, character.currentFatigue + effectAmount); UIUpdater.Instance?.UpdateCharacterFatigue(character); break; case ConsumableEffect.RestoreHealth: character.currentHP = Mathf.Min(character.maxHP, character.currentHP + effectAmount); UIUpdater.Instance?.UpdateCharacterHP(character); break; case ConsumableEffect.RestoreBoth: character.currentFatigue = Mathf.Min(character.maxFatigue, character.currentFatigue + effectAmount); character.currentHP = Mathf.Min(character.maxHP, character.currentHP + effectAmount); UIUpdater.Instance?.UpdateCharacterFatigue(character); UIUpdater.Instance?.UpdateCharacterHP(character); break; } quantity--; } }