示例#1
0
    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);
    }
示例#2
0
    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);
    }
示例#4
0
    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]);
 }
示例#9
0
    public int GetItemQuantity(InventoryItem.ItemType itemType)
    {
        InventoryItem item = GetItem(itemType);

        return(item?.quantity ?? 0);
    }