internal inventoryItem AddItem(inventoryItem item) { _inventoryItems.Add(item); return(item); }
/// <summary> /// Adds or removes a specified amount of an <see cref="inventoryItem"/> to this <see cref="Inventory"/> /// </summary> /// <param name="item">Item code or item name of the <see cref="inventoryItem"/> wanting to be added</param> /// <param name="amount">Amount of the <see cref="inventoryItem"/> wanting to be added</param> /// <param name="userSource">Optional <see cref="Player"/> parameter to be used if this <see cref="Inventory"/> is being used by the non-owning player</param> /// <param name="callingMember"></param> /// <param name="fileName"></param> /// <param name="lineNumber"></param> public abstract void AddItem(inventoryItem item, int amount, Player userSource = null, [CallerMemberName] string callingMember = "", [CallerFilePath] string fileName = "", [CallerLineNumber] int lineNumber = 0);
/// <summary> /// Gets a specified <see cref="inventoryItem"/> via its name /// </summary> /// <param name="item"></param> /// <returns></returns> public inventoryItem GetItem(inventoryItem item) => _inventoryItems.Find(o => o.metaData == item.metaData && o.itemName == item.itemName) ?? _inventoryItems.Find(o => o.metaData == item.metaData && o.itemCode == item.itemCode) ?? _inventoryItems.Find(o => o.itemName == item.itemName) ?? _inventoryItems.FirstOrDefault(o => o.itemCode == item.itemCode);
/// <summary> /// Checks if this <see cref="Inventory"/> has enough of the specified <see cref="inventoryItem"/> /// </summary> /// <param name="item">Specified <see cref="inventoryItem"/></param> /// <param name="itemAmount">Amount of the item</param> /// <returns></returns> public bool HasItemWithAmount(inventoryItem item, int itemAmount) { return(_inventoryItems.Any(o => (o.itemCode == item.itemCode || o.itemName == item.itemName) && o.itemAmount >= itemAmount)); }
/// <summary> /// Checks if this <see cref="Inventory"/> contains the specified <see cref="inventoryItem"/> /// </summary> /// <param name="invItem"><see cref="inventoryItem"/> object</param> /// <returns><see cref="Boolean"/> value indicating if a player has the specified item or not</returns> public bool HasItem(inventoryItem invItem) => GetItem(invItem) != null;