Esempio n. 1
0
        /**
         * Assigns a specific upgrade to the given virtual good.
         *
         * @param good the VirtualGood to upgrade
         * @param upgradeVG the upgrade to assign
         * @param notify if true post event to bus
         */
        public void assignCurrentUpgrade(VirtualGood good, UpgradeVG upgradeVG, bool notify)
        {
            if (getCurrentUpgrade(good) != null && getCurrentUpgrade(good).getItemId() == upgradeVG.getItemId()) {
            return;
            }

            SoomlaUtils.LogDebug(mTag, "Assigning upgrade " + upgradeVG.getName() + " to virtual good: "
                + good.getName());

            String itemId = good.getItemId();
            String key = keyGoodUpgrade(itemId);
            String upItemId = upgradeVG.getItemId();

            KeyValueStorage.SetValue(key, upItemId);

            if (notify) {
            BusProvider.Instance.Post(new GoodUpgradeEvent(good, upgradeVG));
            }
        }
Esempio n. 2
0
        public void Prepare(int version, String JsonStoreAssets)
        {
            try
            {
                SoomlaUtils.LogDebug(TAG,"Prepare :\n"+JsonStoreAssets);
                mVersion = version;

                JSONObject jSONObject = new JSONObject(JsonStoreAssets,-10);

                JSONObject virtualCurrencies = jSONObject[StoreJSONConsts.STORE_CURRENCIES];
                mVirtualCurrency = new VirtualCurrency[virtualCurrencies.Count];
                for (int i = 0; i < virtualCurrencies.Count; i++)
                {
                    JSONObject o = virtualCurrencies[i];
                    VirtualCurrency c = new VirtualCurrency(o);
                    mVirtualCurrency[i] = c;
                }

                JSONObject currencyPacks = jSONObject[StoreJSONConsts.STORE_CURRENCYPACKS];
                mVirtualCurrencyPack = new VirtualCurrencyPack[currencyPacks.Count];
                for (int i = 0; i < currencyPacks.Count; i++)
                {
                    JSONObject o = currencyPacks[i];
                    VirtualCurrencyPack pack = new VirtualCurrencyPack(o);
                    mVirtualCurrencyPack[i] = pack;
                }

                // The order in which VirtualGoods are created matters!
                // For example: VGU and VGP depend on other VGs
                JSONObject virtualGoods = jSONObject[StoreJSONConsts.STORE_GOODS];
                JSONObject suGoods = virtualGoods[StoreJSONConsts.STORE_GOODS_SU];
                JSONObject ltGoods = virtualGoods[StoreJSONConsts.STORE_GOODS_LT];
                JSONObject eqGoods = virtualGoods[StoreJSONConsts.STORE_GOODS_EQ];
                JSONObject upGoods = virtualGoods[StoreJSONConsts.STORE_GOODS_UP];
                JSONObject paGoods = virtualGoods[StoreJSONConsts.STORE_GOODS_PA];
                List<VirtualGood> goods = new List<VirtualGood>();
                for (int i = 0; i < suGoods.Count; i++)
                {
                    JSONObject o = suGoods[i];
                    SingleUseVG g = new SingleUseVG(o);
                    SoomlaUtils.LogDebug(TAG, "SingleUseVG " + g.getItemId());
                    goods.Add(g);
                }
                for (int i = 0; i < ltGoods.Count; i++)
                {
                    JSONObject o = ltGoods[i];
                    LifetimeVG g = new LifetimeVG(o);
                    SoomlaUtils.LogDebug(TAG, "LifetimeVG " + g.getItemId());
                    goods.Add(g);
                }
                for (int i = 0; i < eqGoods.Count; i++)
                {
                    JSONObject o = eqGoods[i];
                    EquippableVG g = new EquippableVG(o);
                    SoomlaUtils.LogDebug(TAG, "EquippableVG " + g.getItemId());
                    goods.Add(g);
                }
                for (int i = 0; i < paGoods.Count; i++)
                {
                    JSONObject o = paGoods[i];
                    SingleUsePackVG g = new SingleUsePackVG(o);
                    SoomlaUtils.LogDebug(TAG, "SingleUsePackVG " + g.getItemId());
                    goods.Add(g);
                }
                for (int i = 0; i < upGoods.Count; i++)
                {
                    JSONObject o = upGoods[i];
                    UpgradeVG g = new UpgradeVG(o);
                    SoomlaUtils.LogDebug(TAG, "UpgradeVG " + g.getItemId());
                    goods.Add(g);
                }

                mVirtualGood = new VirtualGood[goods.Count];
                for(int i = 0; i < goods.Count; i++)
                {
                    SoomlaUtils.LogDebug(TAG, "VirtualGood " + goods[i].getItemId());
                    mVirtualGood[i] = goods[i];
                }

                // categories depend on virtual goods. That's why the have to be initialized after!
                JSONObject virtualCategories = jSONObject[StoreJSONConsts.STORE_CATEGORIES];
                mVirtualCategory = new VirtualCategory[virtualCategories.Count];
                for (int i = 0; i < virtualCategories.Count; i++)
                {
                    JSONObject o = virtualCategories[i];
                    VirtualCategory category = new VirtualCategory(o);
                    mVirtualCategory[i] = category;
                }
                /*
                JArray nonConsumables = JSONObject.Value<JArray>(StoreJSONConsts.STORE_NONCONSUMABLES);
                mNonConsumableItem = new NonConsumableItem[nonConsumables.Count];
                for (int i = 0; i < nonConsumables.Count; i++)
                {
                    JSONObject o = nonConsumables.Value<JSONObject>(i);
                    NonConsumableItem non = new NonConsumableItem(o);
                    mNonConsumableItem[i] = non;
                }
                */
            }
            catch (Exception ex)
            {
                SoomlaUtils.LogError(TAG, "An error occurred while trying to prepare storeAssets" + ex.Message);
            }
        }