Пример #1
0
    /// <summary>
    /// Add Consume in inventory extension method
    /// </summary>
    protected bool AddConsInInvExtension(int id, int quantity)
    {
        bool           createNew       = false;
        XmlStorageItem xmlStorage      = new XmlStorageItem();
        List <int>     freeSlotsIndex  = GetAllFreeIndexInInventory();
        ItemConsume    tempItemConsume = GetItemConsumeById(id, false);

        //else add from xml storage item
        if (tempItemConsume == null)
        {
            if (freeSlotsIndex.Count == 0)
            {
                return(false);
            }

            tempItemConsume = xmlStorage.GetItemConsumeById(id);
            if (tempItemConsume == null)
            {
                return(false);
            }
            createNew = true;
        }

        int maxInStack = xmlStorage.GetConsumeMaxInStackById(id);

        return(AddConsInInvExtension(tempItemConsume, quantity, maxInStack, createNew, freeSlotsIndex));
    }
Пример #2
0
    /// <summary>
    /// Add consume item to inventory in free slot./
    /// Returns: True - successfully | False - fail
    /// </summary>
    /// <param name="itemConsume">Consume item</param>
    /// <returns>True - successfully | False - fail</returns>
    public bool AddItemToInventory(ItemConsume itemConsume)
    {
        ItemConsume    tempItemConsume = new ItemConsume();
        List <int>     freeSlotsIndex  = GetAllFreeIndexInInventory();
        XmlStorageItem xmlStorage      = new XmlStorageItem();
        int            maxInStack      = xmlStorage.GetConsumeMaxInStackById(itemConsume.id);

        foreach (ItemConsume itemConsumeInInv in itemsConsumeInInv)
        {
            if (itemConsumeInInv.id == itemConsume.id)
            {
                tempItemConsume = itemConsumeInInv;
                break;
            }
        }

        if (tempItemConsume.IsEmpty())
        {
            if (freeSlotsIndex.Count == 0)
            {
                return(false);
            }
            return(AddConsInInvExtension(itemConsume, 0, maxInStack, true, freeSlotsIndex));
        }
        else
        {
            return(AddConsInInvExtension(tempItemConsume, itemConsume.quantity, maxInStack, false, freeSlotsIndex));
        }
    }