private static bool CheckGemUpgradeIngredients(IInventory inventory, ItemGemstoneUpgradeMetadata metadata)
    {
        for (int i = 0; i < metadata.IngredientItems.Count; i++)
        {
            IReadOnlyCollection <Item> ingredients = inventory.GetAllByTag(metadata.IngredientItems[i]);
            int inventoryItemCount = ingredients.Sum(x => x.Amount);

            if (inventoryItemCount < metadata.IngredientAmounts[i])
            {
                return(false);
            }
        }
        return(true);
    }
Esempio n. 2
0
    private static bool CheckGemUpgradeIngredients(Inventory inventory, ItemGemstoneUpgradeMetadata metadata)
    {
        for (int i = 0; i < metadata.IngredientItems.Count; i++)
        {
            int inventoryItemCount = 0;
            List <KeyValuePair <long, Item> > ingredients = inventory.Items.Where(x => x.Value.Tag == metadata.IngredientItems[i]).ToList();
            ingredients.ForEach(x => inventoryItemCount += x.Value.Amount);

            if (inventoryItemCount < metadata.IngredientAmounts[i])
            {
                return(false);
            }
        }
        return(true);
    }
Esempio n. 3
0
    private static void ConsumeIngredients(GameSession session, ItemGemstoneUpgradeMetadata metadata)
    {
        for (int i = 0; i < metadata.IngredientItems.Count; i++)
        {
            List <KeyValuePair <long, Item> > ingredients = session.Player.Inventory.Items.Where(x => x.Value.Tag == metadata.IngredientItems[i]).ToList();

            foreach ((long uid, Item item) in ingredients)
            {
                if (item.Amount >= metadata.IngredientAmounts[i])
                {
                    session.Player.Inventory.ConsumeItem(session, uid, metadata.IngredientAmounts[i]);
                    break;
                }

                metadata.IngredientAmounts[i] -= item.Amount;
                session.Player.Inventory.ConsumeItem(session, uid, item.Amount);
            }
        }
    }
        private static void ConsumeIngredients(GameSession session, ItemGemstoneUpgradeMetadata metadata)
        {
            for (int i = 0; i < metadata.IngredientItems.Count; i++)
            {
                List <KeyValuePair <long, Item> > ingredients = new List <KeyValuePair <long, Item> >();
                ingredients = session.Player.Inventory.Items.Where(x => x.Value.Tag == metadata.IngredientItems[i]).ToList();

                foreach (KeyValuePair <long, Item> item in ingredients)
                {
                    if (item.Value.Amount >= metadata.IngredientAmounts[i])
                    {
                        InventoryController.Consume(session, item.Key, metadata.IngredientAmounts[i]);
                        break;
                    }
                    else
                    {
                        metadata.IngredientAmounts[i] -= item.Value.Amount;
                        InventoryController.Consume(session, item.Key, item.Value.Amount);
                    }
                }
            }
        }