public void ProcessPurchase(string productIdentifier) { if (m_ProductParamMap.ContainsKey(productIdentifier)) { ProductParam productParam = m_ProductParamMap[productIdentifier]; switch (productParam.m_ProductType) { case InAppProductList.ProductType.COIN: GameData.Instance.m_Coin += productParam.m_nProductParam; Debug.Log(string.Format("InAppProcessor::ProcessPurchase: PASS. Product: '{0}'", productIdentifier)); // @todo Some feedback break; case InAppProductList.ProductType.AVATAR: GemLibrary.GemSet gemType = (GemLibrary.GemSet)productParam.m_nProductParam; /* * if ( !GameData.Instance.m_Sets.Contains( gemType ) ) * { * GameData.Instance.m_Sets.Add( gemType ); * GameData.Instance.m_GemList.Add( gemType ); * } */ GameData.Instance.UnlockGem(gemType); Debug.Log(string.Format("InAppProcessor::ProcessPurchase: PASS. Product: '{0}'", productIdentifier)); // Enable item screen controls GameObject shopManager = GameObject.FindGameObjectWithTag("Shop Manager"); ShopManager sm = shopManager.GetComponent <ShopManager>(); sm.EnableItemScreenControl(true); // Some feedback //GemLibrary gemLibrary = GameObject.Find( "Gem Library" ).GetComponent<GemLibrary>(); GemLibrary gemLibrary = GemLibrary.Instance; GemContainerSet gemSet = gemLibrary.GemsSetList[productParam.m_nProductParam]; GameObject explosion = ( GameObject )Instantiate(gemSet.m_Explosion, sm.GetCurrentItemIcon().transform.position, Quaternion.identity); explosion.layer = LayerMask.NameToLayer("UI Particles"); ParticleSystem ps = explosion.GetComponent <ParticleSystem>(); ps.GetComponent <Renderer>().sortingLayerName = "UI Particles"; ps.GetComponent <Renderer>().sortingOrder = LayerMask.NameToLayer("UI Particles"); Destroy(explosion, ps.duration + ps.startLifetime + Time.deltaTime); break; default: Debug.Log(string.Format("InAppProcessor::ProcessPurchase: FAIL. Invalid product type: '{0}'", productParam.m_ProductType.ToString())); return; } SaveLoad.Save(); } else { Debug.Log(string.Format("InAppProcessor::ProcessPurchase: FAIL. Unrecognized product: '{0}'", productIdentifier)); } }
public void InitialiseProductList() { if (m_ConsumableList.Count != 0 || m_NonConsumableList.Count != 0 || m_SubscriptionList.Count != 0) { return; } // Consumables foreach (KeyValuePair <ProductType, List <int> > consumeInfo in m_ConsumableMap) { foreach (int amount in consumeInfo.Value) { string productIdentifier = GetProductIdentifier(consumeInfo.Key, amount); m_ConsumableList.Add(productIdentifier, new ProductInfo(productIdentifier, Store.ALL)); InAppProcessor.Instance.AddProductParam(productIdentifier, consumeInfo.Key, amount); } } // Non-consumables //GemLibrary gemLibrary = GameObject.Find( "Gem Library" ).GetComponent<GemLibrary>(); GemLibrary gemLibrary = GemLibrary.Instance; for (int i = 0; i < gemLibrary.GemsSetList.Count; ++i) { string productIdentifier = GetProductIdentifier(ProductType.AVATAR, i); m_NonConsumableList.Add(productIdentifier, new ProductInfo(productIdentifier, Store.ALL)); InAppProcessor.Instance.AddProductParam(productIdentifier, ProductType.AVATAR, i); } // Subscriptions }
// Use this for initialization void Start() { if (m_Instance != null) { Destroy(this.gameObject); } else { m_Instance = this; DontDestroyOnLoad(this); } }
// Use this for initialization void Start() { DontDestroyOnLoad(this); m_GemLibrary = GameObject.Find("Gem Library").GetComponent <GemLibrary>(); // If gem set is inside the inventory if (GameData.Instance.m_Sets.Contains(GameData.Instance.m_EquippedGemSet)) { m_GemSet = m_GemLibrary.m_GemsSetList[(int)GameData.Instance.m_EquippedGemSet]; } else { EquipGemSet(GemLibrary.GemSet.GEM); } }
// return: com.<company_name>.<project_name>.<product_type>.<product_identifier> public static string GetProductIdentifier(ProductType productType, int productParam) { switch (productType) { case InAppProductList.ProductType.COIN: return(PRODUCT_PREFIX + productType.ToString().ToLower() + "." + productParam.ToString()); case InAppProductList.ProductType.AVATAR: GemLibrary gemLibrary = GameObject.Find("Gem Library").GetComponent <GemLibrary>(); GemContainerSet gemSet = gemLibrary.m_GemsSetList[productParam]; return(PRODUCT_PREFIX + ProductType.AVATAR.ToString().ToLower() + "." + gemSet.m_sGemContainerSetName.ToLower()); default: Debug.Log(string.Format("InAppProcessor::GetProductIdentifier: FAIL. Invalid product type: '{0}'", productType.ToString())); return(""); } }
// Use this for initialization void Start() { m_GemLibrary = GemLibrary.Instance; //m_fItemContentWidth = m_ItemContent.GetComponent<RectTransform>().sizeDelta.x; m_fItemIconWidth = m_ItemPrefab.GetComponent <RectTransform>().sizeDelta.x; m_ItemIconDim = m_ItemPrefab.GetComponent <RectTransform>().sizeDelta; m_ItemIconLockDim = m_ItemPrefab.transform.GetChild(1).GetComponent <RectTransform>().sizeDelta; m_ItemIconStartPos = m_ItemPrefab.GetComponent <RectTransform>().localPosition; m_ItemContentTransform = m_ItemContent.GetComponent <RectTransform>(); m_ItemIcons = new List <GameObject>(); m_PreviousContentPos = m_ItemContentTransform.localPosition; ChangeEquippedSprite(GameData.Instance.m_EquippedGemSet); InitialiseShopList(); }