Esempio n. 1
0
        /// <summary>
        /// Buy an item. Currently only outfits supported (itemType 0)
        /// </summary>
        /// <param name="userId">Id of user in Database</param>
        /// <param name="itemId">Id of item</param>
        /// <param name="itemType">Type of item. Currently only 0 supported</param>
        /// <returns>Descriptive result as string</returns>
        public async Task <string> BuyItemForUser(int userId, int netId, int itemId, ShopItemType itemType, bool forceCommerceCheck)
        {
            int result;

            switch (itemType)
            {
            case ShopItemType.OUTFIT:
                result = await m_database.BuyUserOutfit(userId, itemId);

                break;

            case ShopItemType.XPBOOST:
                result = await m_database.BuyUserBoost(userId, itemId);

                break;

            case ShopItemType.CURRENCY:
                // buy user in-game currency
                result = 1;
                break;

            case ShopItemType.DONATION:
                // donation
                result = 1;
                break;

            case ShopItemType.WEAPONTINT:
                result = await m_database.BuyUserWeaponTint(userId, itemId);

                break;

            default:
                result = -99;
                break;
            }

            switch (result)
            {
            case 0:
                return("You already own this item");

            case -1:
                return("You don't have enough money");

            case -2:
                return("You need more XP for this item");

            case -3:
                return("Item is for donators only");

            case -99:
                return("Something went wrong");

            default:
                bool commerce = false;

                if (forceCommerceCheck && CanPlayerStartCommerceSession(netId.ToString()))
                {
                    commerce = true;
                }

                await UpdateItems(userId, netId, itemType, commerce);

                return("Success");
            }
        }