public override InventoryItem.MergeResult TryStack(IInventoryItem other) { int num = base.uses; if (num == 0) { return(InventoryItem.MergeResult.Failed); } DB dB = (DB)(other.datablock as DB); if (dB && dB == this.datablock) { if (other.uses == this.maxUses) { return(InventoryItem.MergeResult.Failed); } if (this.datablock.IsSplittable()) { IInventoryItem inventoryItem = other; InventoryItem <DB> inventoryItem1 = this; int num1 = inventoryItem.AddUses(num); if (num1 == 0) { return(InventoryItem.MergeResult.Failed); } if (inventoryItem1.Consume(ref num1)) { inventoryItem1.inventory.RemoveItem(inventoryItem1.slot); } return(InventoryItem.MergeResult.Merged); } } return(InventoryItem.MergeResult.Failed); }
public bool ConsumeItem(InventoryItem item) { if (item.Type == ItemType.Medical || item.Type == ItemType.Energy || item.Type == ItemType.Food || item.Type == ItemType.Augmentation) { item.Consume(); return(true); } Debug.Log("Item is not consumable"); return(false); }
private void ProcessConsumable() { CountInSlot--; print("Consuming " + Item.Name); Item.Consume(); if (CountInSlot > 0) { _countText.text = $"{CountInSlot}"; } else { Item = null; _image.sprite = null; _image.enabled = false; _countText.enabled = false; } }