public virtual bool Craft(ItemStorage i) { if (CanBeCrafted(i) && i.GetFreeSpace() >= Quantity) { i.Add(Result, Quantity); foreach (var c in Costs) { i.Remove(c.Item, c.Count); } return(true); } return(false); }
public virtual bool Craft(ItemStorage materialStorage, ItemStorage destinationStorage) { if (CanBeCrafted(materialStorage) && destinationStorage.GetFreeSpace() >= Quantity) { destinationStorage.Add(Result, Quantity); foreach (var c in Costs) { materialStorage.Remove(c.Item, c.Count); } return(true); } return(false); }
private void AddItemToStorage(int itemId, int amount, int maxAmountBonus, ItemStorage cis) { if (ItemDatabase.IsItemidValid(itemId)) { Item item = ItemDatabase.ItemById(itemId); if (item != null) { if (!item.MatchType(Item.Types.Story)) { cis.Add(itemId, amount, maxAmountBonus); } else if (amount > 0) { base.StartCoroutine(this.DelayedAddItem(itemId, amount)); } } else { UnityEngine.Debug.LogError("Item not found while creating loot backpack id=" + itemId); } } }
private void AddItemToStorage(int itemId, int amount, ItemStorage cis, ItemProperties properties = null) { if (ItemDatabase.IsItemidValid(itemId)) { Item item = ItemDatabase.ItemById(itemId); if (item != null) { if (!item.MatchType(Item.Types.Story)) { cis.Add(itemId, amount, properties); this._addedItems = true; } else if (amount > 0) { base.StartCoroutine(this.DelayedAddItem(itemId, amount)); } } else { Debug.LogError("Item not found while creating loot backpack id=" + itemId); } } }