public void EatItem(InventoryData inventory, int slot) { InventoryItemData idata = inventory.GetItem(slot); ItemData item = ItemData.Get(idata?.item_id); if (item != null && item.type == ItemType.Consumable) { if (inventory.IsItemIn(item.id, slot)) { inventory.RemoveItemAt(slot, 1); if (item.container_data) { inventory.AddItem(item.container_data.id, 1, item.container_data.durability, UniqueID.GenerateUniqueID()); } character.StopSleep(); character.Attributes.AddAttribute(AttributeType.Health, item.eat_hp); character.Attributes.AddAttribute(AttributeType.Hunger, item.eat_hunger); character.Attributes.AddAttribute(AttributeType.Thirst, item.eat_thirst); character.Attributes.AddAttribute(AttributeType.Happiness, item.eat_happiness); foreach (BonusEffectData bonus in item.eat_bonus) { character.Data.AddTimedBonus(bonus.type, bonus.value, item.eat_bonus_duration); } } } }