コード例 #1
0
ファイル: VirtualGoodsStorage.cs プロジェクト: yulsmir/soomla
        private void equipPriv(EquippableVG good, bool equip, bool notify)
        {
            string itemId = good.ItemId;
            string key    = keyGoodEquipped(itemId);

            if (equip)
            {
                PlayerPrefs.SetString(key, "yes");
                if (notify)
                {
                    var eventJSON = new JSONObject();
                    eventJSON.AddField("itemId", good.ItemId);
                    StoreEvents.Instance.onGoodEquipped(eventJSON.print());
                }
            }
            else
            {
                PlayerPrefs.DeleteKey(key);
                if (notify)
                {
                    var eventJSON = new JSONObject();
                    eventJSON.AddField("itemId", good.ItemId);
                    StoreEvents.Instance.onGoodUnequipped(eventJSON.print());
                }
            }
        }
コード例 #2
0
ファイル: VirtualGoodsStorage.cs プロジェクト: yulsmir/soomla
        /// <summary>
        /// Retrieves the current upgrade for the given virtual good.
        /// </summary>
        /// <param name="good">the virtual good to retrieve upgrade for.</param>
        /// <return>the current upgrade for the given virtual good.</return>
        public static bool IsEquipped(EquippableVG good)
        {
            SoomlaUtils.LogDebug(TAG, "checking if virtual good with itemId: " + good.ItemId +
                                 " is equipped.");

            return(instance._isEquipped(good));
        }
コード例 #3
0
 protected override bool _isEquipped(EquippableVG good)
 {
     bool equipped;
     SoomlaWpStore.domain.virtualGoods.EquippableVG evg = (SoomlaWpStore.domain.virtualGoods.EquippableVG)SoomlaWpStore.data.StoreInfo.getVirtualItem(good.ItemId);
     equipped = SoomlaWpStore.data.StorageManager.getVirtualGoodsStorage().isEquipped(evg);
     return equipped;
 }
コード例 #4
0
        /// <summary>
        /// Checks if the virtual good with the given <c>goodItemId</c> is currently equipped.
        /// </summary>
        /// <param name="goodItemId">Id of the virtual good who we want to know if is equipped.</param>
        /// <returns>True if the virtual good is equipped, false otherwise.</returns>
        /// <exception cref="VirtualItemNotFoundException">Thrown if the item is not found.</exception>
        public static bool IsVirtualGoodEquipped(string goodItemId)
        {
            SoomlaUtils.LogDebug(TAG, "Checking if " + goodItemId + " is equipped");

            EquippableVG good = (EquippableVG)StoreInfo.GetItemByItemId(goodItemId);

            return(VirtualGoodsStorage.IsEquipped(good));;
        }
コード例 #5
0
        /// <summary>
        /// Unequips the virtual good with the given <c>goodItemId</c>. Unequipping means that the
        /// user decides to stop using the virtual good he/she is currently using.
        /// For more details and examples <see cref="com.soomla.store.domain.virtualGoods.EquippableVG"/>.
        /// </summary>
        /// <param name="goodItemId">Id of the good to be unequipped.</param>
        /// <exception cref="VirtualItemNotFoundException">Thrown if the item is not found.</exception>
        public static void UnEquipVirtualGood(string goodItemId)
        {
            SoomlaUtils.LogDebug(TAG, "UnEquipping: " + goodItemId);

            EquippableVG good = (EquippableVG)StoreInfo.GetItemByItemId(goodItemId);

            good.Unequip();
        }
コード例 #6
0
ファイル: StoreEvents.cs プロジェクト: mkzheng/unity3d-store
        /// <summary>
        /// Handles an <c>onGoodUnequipped</c> event, which is fired when a specific <c>EquippableVG</c>
        /// has been unequipped.
        /// </summary>
        /// <param name="message">Message that contains information about the <c>EquippableVG</c>.</param>
        public void onGoodUnequipped(string message)
        {
            SoomlaUtils.LogDebug(TAG, "SOOMLA/UNITY onVirtualGoodUnEquipped:" + message);

            EquippableVG vg = (EquippableVG)StoreInfo.GetItemByItemId(message);

            StoreEvents.OnGoodUnEquipped(vg);
        }
コード例 #7
0
        protected override bool _isEquipped(EquippableVG good)
        {
            bool res = false;
            int  err = vgStorage_IsEquipped(good.ItemId, out res);

            IOS_ErrorCodes.CheckAndThrowException(err);
            return(res);
        }
コード例 #8
0
ファイル: StoreEvents.cs プロジェクト: quaxela/BoxHeads
            public void PushEventOnGoodUnequipped(EquippableVG good)
            {
                var eventJSON = new JSONObject();

                eventJSON.AddField("itemId", good.ItemId);

                _pushEventGoodUnequipped(eventJSON.print());
            }
コード例 #9
0
ファイル: VirtualGoodsStorageWP.cs プロジェクト: umardev0/Six
        protected override bool _isEquipped(EquippableVG good)
        {
            bool equipped;

            SoomlaWpStore.domain.virtualGoods.EquippableVG evg = (SoomlaWpStore.domain.virtualGoods.EquippableVG)SoomlaWpStore.data.StoreInfo.getVirtualItem(good.ItemId);
            equipped = SoomlaWpStore.data.StorageManager.getVirtualGoodsStorage().isEquipped(evg);
            return(equipped);
        }
コード例 #10
0
		protected override void _unequip(EquippableVG good, bool notify) {
			AndroidJNI.PushLocalFrame(100);
			using(AndroidJavaClass jniStorageManager = new AndroidJavaClass("com.soomla.store.data.StorageManager")) {
				using(AndroidJavaObject jniVGStorage = jniStorageManager.CallStatic<AndroidJavaObject>("getVirtualGoodsStorage")) {
					jniVGStorage.Call("unequip", good.ItemId, notify);
				}
			}
			AndroidJNI.PopLocalFrame(IntPtr.Zero);
		}
コード例 #11
0
ファイル: EquippableVG.cs プロジェクト: lickey10/BeerMe
        /// <summary>
        /// Equips the current <code>EquippableVG</code>.
        /// The equipping is done according to the equipping model ('GLOBAL', 'CATEGORY', or 'LOCAL').
        /// </summary>
        /// <exception cref="Soomla.Store.NotEnoughGoodsException">Throws NotEnoughGoodsException</exception>
        /// <param name="notify">if true, the relevant event will be posted when equipped.</param>
        public void Equip(bool notify)
        {
            // only if the user has bought this EquippableVG, the EquippableVG is equipped.
            if (VirtualGoodsStorage.GetBalance(this) > 0)
            {
                if (Equipping == EquippingModel.CATEGORY)
                {
                    VirtualCategory category = null;
                    try {
                        category = StoreInfo.GetCategoryForVirtualGood(this.ItemId);
                    } catch (VirtualItemNotFoundException) {
                        SoomlaUtils.LogError(TAG,
                                             "Tried to unequip all other category VirtualGoods but there was no " +
                                             "associated category. virtual good itemId: " + this.ItemId);
                        return;
                    }

                    foreach (string goodItemId in category.GoodItemIds)
                    {
                        EquippableVG equippableVG = null;
                        try {
                            equippableVG = (EquippableVG)StoreInfo.GetItemByItemId(goodItemId);

                            if (equippableVG != null && equippableVG != this)
                            {
                                equippableVG.Unequip(notify);
                            }
                        } catch (VirtualItemNotFoundException) {
                            SoomlaUtils.LogError(TAG, "On equip, couldn't find one of the itemIds "
                                                 + "in the category. Continuing to the next one. itemId: "
                                                 + goodItemId);
                        } catch (System.InvalidCastException) {
                            SoomlaUtils.LogDebug(TAG, "On equip, an error occurred. It's a debug "
                                                 + "message b/c the VirtualGood may just not be an EquippableVG. "
                                                 + "itemId: " + goodItemId);
                        }
                    }
                }
                else if (Equipping == EquippingModel.GLOBAL)
                {
                    foreach (VirtualGood good in StoreInfo.Goods)
                    {
                        if (good != this &&
                            good is EquippableVG)
                        {
                            ((EquippableVG)good).Unequip(notify);
                        }
                    }
                }

                VirtualGoodsStorage.Equip(this, notify);
            }
            else
            {
                throw new NotEnoughGoodsException(ItemId);
            }
        }
コード例 #12
0
 protected override void _unequip(EquippableVG good, bool notify)
 {
     AndroidJNI.PushLocalFrame(100);
     using (AndroidJavaClass jniStorageManager = new AndroidJavaClass("com.soomla.store.data.StorageManager")) {
         using (AndroidJavaObject jniVGStorage = jniStorageManager.CallStatic <AndroidJavaObject>("getVirtualGoodsStorage")) {
             jniVGStorage.Call("unequip", good.ItemId, notify);
         }
     }
     AndroidJNI.PopLocalFrame(IntPtr.Zero);
 }
コード例 #13
0
ファイル: VirtualGoodsStorage.cs プロジェクト: yulsmir/soomla
        protected virtual void _unequip(EquippableVG good, bool notify)
        {
#if UNITY_EDITOR
            if (!IsEquipped(good))
            {
                return;
            }
            equipPriv(good, false, notify);
#endif
        }
コード例 #14
0
ファイル: VirtualGoodsStorage.cs プロジェクト: yulsmir/soomla
        protected virtual bool _isEquipped(EquippableVG good)
        {
#if UNITY_EDITOR
            string itemId = good.ItemId;
            string key    = keyGoodEquipped(itemId);
            string val    = PlayerPrefs.GetString(key);

            return(!string.IsNullOrEmpty(val));
#else
            return(false);
#endif
        }
コード例 #15
0
		protected override bool _isEquipped(EquippableVG good){
			bool equipped;
			AndroidJNI.PushLocalFrame(100);
			using(AndroidJavaClass jniStorageManager = new AndroidJavaClass("com.soomla.store.data.StorageManager")) {
				using(AndroidJavaObject jniVGStorage = jniStorageManager.CallStatic<AndroidJavaObject>("getVirtualGoodsStorage")) {
					equipped = jniVGStorage.Call<bool>("isEquipped", good.ItemId);
				}
			}
			AndroidJNI.PopLocalFrame(IntPtr.Zero);
			
			return equipped;
		}
コード例 #16
0
        /// <summary>
        /// Equips the virtual good with the given <c>goodItemId</c>.
        /// Equipping means that the user decides to currently use a specific virtual good.
        /// For more details and examples <see cref="com.soomla.store.domain.virtualGoods.EquippableVG"/>.
        /// </summary>
        /// <param name="goodItemId">Id of the good to be equipped.</param>
        /// <exception cref="VirtualItemNotFoundException">Thrown if the item is not found.</exception>
        /// <exception cref="NotEnoughGoodsException"></exception>
        public static void EquipVirtualGood(string goodItemId)
        {
            SoomlaUtils.LogDebug(TAG, "Equipping: " + goodItemId);

            EquippableVG good = (EquippableVG)StoreInfo.GetItemByItemId(goodItemId);

            try {
                good.Equip();
            } catch (NotEnoughGoodsException e) {
                SoomlaUtils.LogError(TAG, "UNEXPECTED! Couldn't equip something");
                throw e;
            }
        }
コード例 #17
0
        protected override bool _isEquipped(EquippableVG good)
        {
            bool equipped;

            AndroidJNI.PushLocalFrame(100);
            using (AndroidJavaClass jniStorageManager = new AndroidJavaClass("com.soomla.store.data.StorageManager")) {
                using (AndroidJavaObject jniVGStorage = jniStorageManager.CallStatic <AndroidJavaObject>("getVirtualGoodsStorage")) {
                    equipped = jniVGStorage.Call <bool>("isEquipped", good.ItemId);
                }
            }
            AndroidJNI.PopLocalFrame(IntPtr.Zero);

            return(equipped);
        }
コード例 #18
0
ファイル: StoreEvents.cs プロジェクト: pontura/FamilympicsRun
        public static void onGoodUnequipped(GoodUnEquippedEvent _Event, bool alsoPush)
        {
            SoomlaWpStore.domain.virtualGoods.EquippableVG good = _Event.GetEquippableVG();
            SoomlaUtils.LogDebug(TAG, "SOOMLA/UNITY onVirtualGoodUnEquipped:" + good.getItemId());

            EquippableVG vg = (EquippableVG)StoreInfo.GetItemByItemId(good.getItemId());

            StoreInventory.RefreshOnGoodUnEquipped(vg);
            StoreEvents.OnGoodUnEquipped(vg);

            if (alsoPush)
            {
                sep.PushEventOnGoodUnequipped(_Event);
            }
        }
コード例 #19
0
        /// <summary>
        /// Checks currently equipped good in given <c>category</c>
        /// </summary>
        /// <param name="category">Category we want to check</param>
        /// <returns>EquippableVG otherwise null</returns>
        public static EquippableVG GetEquippedVirtualGood(VirtualCategory category)
        {
            SoomlaUtils.LogDebug(TAG, "Checking equipped goood in " + category.Name + " category");

            foreach (string goodItemId in category.GoodItemIds)
            {
                EquippableVG good = (EquippableVG)StoreInfo.GetItemByItemId(goodItemId);

                if (good != null && good.Equipping == EquippableVG.EquippingModel.CATEGORY &&
                    VirtualGoodsStorage.IsEquipped(good) &&
                    StoreInfo.GetCategoryForVirtualGood(goodItemId) == category)
                {
                    return(good);
                }
            }
            SoomlaUtils.LogError(TAG, "There is no virtual good equipped in " + category.Name + " category");
            return(null);
        }
コード例 #20
0
ファイル: StoreEvents.cs プロジェクト: quaxela/BoxHeads
        public void onGoodUnequipped(string message, bool alsoPush)
        {
            SoomlaUtils.LogDebug(TAG, "SOOMLA/UNITY onVirtualGoodUnEquipped:" + message);

            var eventJSON = new JSONObject(message);

            EquippableVG vg = (EquippableVG)StoreInfo.GetItemByItemId(eventJSON["itemId"].str);

            StoreInventory.RefreshOnGoodUnEquipped(vg);

            StoreEvents.OnGoodUnEquipped(vg);

            if (alsoPush)
            {
#if (UNITY_ANDROID || UNITY_IOS) && !UNITY_EDITOR
                sep.PushEventOnGoodUnequipped(vg);
#endif
            }
        }
コード例 #21
0
ファイル: VirtualGoodsStorage.cs プロジェクト: yulsmir/soomla
        /// <summary>
        /// UnEquips the given <code>EquippableVG</code>.
        /// </summary>
        /// <param name="good">the <code>EquippableVG</code> to equip.</param>
        public static void UnEquip(EquippableVG good)
        {
            SoomlaUtils.LogDebug(TAG, "unequipping: " + good.ItemId);

            UnEquip(good, true);
        }
コード例 #22
0
		public GoodUnEquippedEvent (EquippableVG item , Object sender) : base(sender)
		{
			mItem  = item ;
		}
コード例 #23
0
		private void equipPriv(EquippableVG good, bool equip, bool notify){
			string itemId = good.ItemId;
			string key = keyGoodEquipped(itemId);
			
			if (equip) {
				PlayerPrefs.SetString(key, "yes");
				if (notify) {
					var eventJSON = new JSONObject();
					eventJSON.AddField("itemId", good.ItemId);
					StoreEvents.Instance.onGoodEquipped(eventJSON.print());
				}
			} else {
				PlayerPrefs.DeleteKey(key);
				if (notify) {
					var eventJSON = new JSONObject();
					eventJSON.AddField("itemId", good.ItemId);
					StoreEvents.Instance.onGoodUnequipped(eventJSON.print());
				}
			}
		}
コード例 #24
0
ファイル: GoodUnEquippedEvent.cs プロジェクト: umardev0/Six
 public GoodUnEquippedEvent(EquippableVG item) : this(item, null)
 {
 }
コード例 #25
0
		/// <summary>
		/// UnEquips the given <code>EquippableVG</code>.
		/// </summary>
		/// <param name="good">the <code>EquippableVG</code> to equip.</param>
		public static void UnEquip(EquippableVG good){
			SoomlaUtils.LogDebug(TAG, "unequipping: " + good.ItemId);
			
			UnEquip(good, true);
		}
コード例 #26
0
		protected virtual bool _isEquipped(EquippableVG good){
#if UNITY_EDITOR
			string itemId = good.ItemId;
			string key = keyGoodEquipped(itemId);
			string val = PlayerPrefs.GetString(key);
			
			return !string.IsNullOrEmpty(val);
#else			
			return false;
#endif
		}
コード例 #27
0
ファイル: StoreInventory.cs プロジェクト: Faisalimrann/Shop
 public static void RefreshOnGoodEquipped(EquippableVG equippable)
 {
     localEquippedGoods.Add(equippable.ItemId);
 }
コード例 #28
0
		/// <summary>
		/// Retrieves the current upgrade for the given virtual good.
		/// </summary>
		/// <param name="good">the virtual good to retrieve upgrade for.</param>
		/// <return>the current upgrade for the given virtual good.</return>
		public static bool IsEquipped(EquippableVG good){
			SoomlaUtils.LogDebug(TAG, "checking if virtual good with itemId: " + good.ItemId +
			                     " is equipped.");
			
			return instance._isEquipped(good);
		}
コード例 #29
0
ファイル: VirtualGoodsStorageWP.cs プロジェクト: umardev0/Six
 protected override void _unequip(EquippableVG good, bool notify)
 {
     SoomlaWpStore.domain.virtualGoods.EquippableVG evg = (SoomlaWpStore.domain.virtualGoods.EquippableVG)SoomlaWpStore.data.StoreInfo.getVirtualItem(good.ItemId);
     SoomlaWpStore.data.StorageManager.getVirtualGoodsStorage().unequip(evg, notify);
 }
コード例 #30
0
ファイル: GoodEquippedEvent.cs プロジェクト: umardev0/Six
 public GoodEquippedEvent(EquippableVG item, Object sender) : base(sender)
 {
     mItem = item;
 }
コード例 #31
0
ファイル: GoodEquippedEvent.cs プロジェクト: umardev0/Six
 public GoodEquippedEvent(EquippableVG item) : this(item, null)
 {
     mItem = item;
 }
コード例 #32
0
ファイル: ShopManager.cs プロジェクト: ttat/puzzlewarrior
 private void OnGoodUnequipped(EquippableVG good)
 {
     Debug.Log(string.Format("GNOME: GoodUnequipped - ItemId: {0}", good.ItemId));
 }
コード例 #33
0
ファイル: StoreEvents.cs プロジェクト: Eremes/unity3d-store
			public void PushEventOnGoodUnequipped(EquippableVG good) {
				var eventJSON = new JSONObject();
				eventJSON.AddField("itemId", good.ItemId);

				_pushEventGoodUnequipped(eventJSON.print());
			}
コード例 #34
0
ファイル: StoreInventory.cs プロジェクト: Faisalimrann/Shop
 public static void RefreshOnGoodUnEquipped(EquippableVG equippable)
 {
     localEquippedGoods.Remove(equippable.ItemId);
 }
コード例 #35
0
 /// <summary>
 /// Handles a good unequipped event.
 /// </summary>
 /// <param name="good">Equippable virtual good.</param>
 public void onGoodUnequipped(EquippableVG good)
 {
 }
コード例 #36
0
		/// <summary>
		/// Equips the given <code>EquippableVG</code>.
		/// </summary>
		/// <param name="good">the <code>EquippableVG</code> to equip.</param>
		public static void Equip(EquippableVG good){
			SoomlaUtils.LogDebug(TAG, "equipping: " + good.ItemId);
			
			Equip(good);
		}
コード例 #37
0
		protected override bool _isEquipped(EquippableVG good){
			bool res = false;
			int err = vgStorage_IsEquipped(good.ItemId, out res);
			IOS_ErrorCodes.CheckAndThrowException(err);
			return res;
		}
コード例 #38
0
		/// <summary>
		/// UnEquips the given <code>EquippableVG</code>.
		/// </summary>
		/// <param name="good">the <code>EquippableVG</code> to equip.</param>
		/// <param name="notify">true will also post event.</param>
		public static void UnEquip(EquippableVG good, bool notify){
			SoomlaUtils.LogDebug(TAG, "unequipping: " + good.ItemId);
			
			instance._unequip(good, notify);
		}
コード例 #39
0
		protected override void _unequip(EquippableVG good, bool notify) {
			int err = vgStorage_UnEquip(good.ItemId, notify);
			IOS_ErrorCodes.CheckAndThrowException(err);
		}
コード例 #40
0
		protected virtual void _unequip(EquippableVG good, bool notify) {
#if UNITY_EDITOR
			if (!IsEquipped(good)) {
				return;
			}
			equipPriv(good, false, notify);
#endif
		}
コード例 #41
0
        protected override void _equip(EquippableVG good, bool notify)
        {
            int err = vgStorage_Equip(good.ItemId, notify);

            IOS_ErrorCodes.CheckAndThrowException(err);
        }
コード例 #42
0
 public static void RefreshOnGoodEquipped(EquippableVG equippable)
 {
     localEquippedGoods.Add(equippable.ItemId);
 }
コード例 #43
0
		public GoodUnEquippedEvent (EquippableVG item ) : this(item , null)
		{
		}
コード例 #44
0
ファイル: VirtualGoodsStorage.cs プロジェクト: yulsmir/soomla
        /// <summary>
        /// Equips the given <code>EquippableVG</code>.
        /// </summary>
        /// <param name="good">the <code>EquippableVG</code> to equip.</param>
        public static void Equip(EquippableVG good)
        {
            SoomlaUtils.LogDebug(TAG, "equipping: " + good.ItemId);

            Equip(good);
        }
コード例 #45
0
 /// <summary>
 /// Handles a good unequipped event.
 /// </summary>
 /// <param name="good">Equippable virtual good.</param>
 public void onGoodUnequipped(EquippableVG good)
 {
 }
コード例 #46
0
 protected override void _equip(EquippableVG good, bool notify)
 {
     SoomlaWpStore.domain.virtualGoods.EquippableVG evg = (SoomlaWpStore.domain.virtualGoods.EquippableVG)SoomlaWpStore.data.StoreInfo.getVirtualItem(good.ItemId);
     SoomlaWpStore.data.StorageManager.getVirtualGoodsStorage().equip(evg, notify);
 }
コード例 #47
0
ファイル: VirtualGoodsStorage.cs プロジェクト: yulsmir/soomla
        /// <summary>
        /// UnEquips the given <code>EquippableVG</code>.
        /// </summary>
        /// <param name="good">the <code>EquippableVG</code> to equip.</param>
        /// <param name="notify">true will also post event.</param>
        public static void UnEquip(EquippableVG good, bool notify)
        {
            SoomlaUtils.LogDebug(TAG, "unequipping: " + good.ItemId);

            instance._unequip(good, notify);
        }
コード例 #48
0
 public static void RefreshOnGoodUnEquipped(EquippableVG equippable)
 {
     localEquippedGoods.Remove(equippable.ItemId);
 }
コード例 #49
0
		public GoodEquippedEvent (EquippableVG item) : this(item, null)
		{
			mItem = item;
		}