public int GetItemIndex(InventoryItem.ItemType itemType) { for (int i = 0; i < m_items.Count; i++) { if (m_items[i].type == itemType) { return(i); } } return(-1); }
public InventoryItem GetItem(InventoryItem.ItemType itemType) { foreach (InventoryItem item in m_items) { if (item.type == itemType) { return(item); } } return(null); }
public InventoryItem GetInventoryItemByIndex(InventoryItem.ItemType itemType, int itemIndex) { if (!items.ContainsKey(itemType)) { return(null); } if (itemIndex >= items[itemType].Count) { return(null); } return(items[itemType][itemIndex].item); }
public void Add(InventoryItem.ItemType itemType, int quantity) { InventoryItem item = GetItem(itemType); if (item == null) { item = new InventoryItem(itemType); m_items.Add(item); } item.Add(quantity); // GameController.instance.notifier.Notify(new InventoryItemUpdated(item, GetItemIndex(itemType))); }
// Change current equipped weapon private void EquipWeapon(InventoryItem item) { // Select item item.selected = true; if (currentWeapon != null) { currentWeapon.selected = false; } // Set item currentWeapon = item; // Set stats switch (item.itemType) { case InventoryItem.ItemType.MeleeWeapon: { item.selected = true; MeleeWeapon curr = (MeleeWeapon)item; currentType = InventoryItem.ItemType.MeleeWeapon; if (equippedUI != null) { equippedUI.EquipWeapon(item); } break; } case InventoryItem.ItemType.RangedWeapon: { RangedWeapon curr = (RangedWeapon)item; currentType = InventoryItem.ItemType.RangedWeapon; if (equippedUI != null) { equippedUI.EquipWeapon(item); } break; } default: { break; } } }
// Change weapon type private void changeWeaponType() { // Change type currentType = currentType == InventoryItem.ItemType.MeleeWeapon ? InventoryItem.ItemType.RangedWeapon : InventoryItem.ItemType.MeleeWeapon; // Get current inventory LinkedList <InventoryItem> currWeapons; // Select the first available one if there is one or dont change type if (InventoryManager.Instance.Inventory.TryGetValue(currentType, out currWeapons)) { if (currWeapons.Count > 0) { EquipWeapon(currWeapons.First.Value); } } else { // Switch back currentType = currentType == InventoryItem.ItemType.MeleeWeapon ? InventoryItem.ItemType.RangedWeapon : InventoryItem.ItemType.MeleeWeapon; } }
public InventoryItem GetItem(string name, InventoryItem.ItemType type) { return(items.Find(i => i.itemName == name && i.type == type)); }
public List <Item> GetInventoryItemsByType(InventoryItem.ItemType queriedType) { return(items[queriedType]); }
public int GetItemQuantity(InventoryItem.ItemType itemType) { InventoryItem item = GetItem(itemType); return(item?.quantity ?? 0); }