コード例 #1
0
    public void RemoveItem(Items item)
    {
        if (item.itemType == Items.ItemType.SMG)
        {
            playerController.DropWeapon();
        }
        else if (item.itemType == Items.ItemType.Shotgun)
        {
            playerController.DropWeapon();
        }

        if (item.IsStackable())
        {
            Items itemInInventory = null;
            foreach (Items inventoryItem in itemList)
            {
                if (inventoryItem.itemType == item.itemType)
                {
                    inventoryItem.iItemAmmount -= item.iItemAmmount;
                    itemInInventory             = inventoryItem;
                }
            }
            if (itemInInventory != null && itemInInventory.iItemAmmount <= 0)
            {
                itemList.Remove(itemInInventory);
            }
        }
        else
        {
            itemList.Remove(item);
        }
        OnItemsListChanged?.Invoke(this, EventArgs.Empty);
    }
コード例 #2
0
    public void AddItem(Items item)
    {
        if (item.IsStackable())
        {
            bool bItemAlreadyInInventory = false;
            foreach (Items inventoryItem in itemList)
            {
                if (inventoryItem.itemType == item.itemType)
                {
                    inventoryItem.iItemAmmount += item.iItemAmmount;
                    bItemAlreadyInInventory     = true;
                }
            }
            if (!bItemAlreadyInInventory)
            {
                itemList.Add(item);
            }
        }
        else
        {
            itemList.Add(item);
        }

        OnItemsListChanged?.Invoke(this, EventArgs.Empty);
    }