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)); } }
// Equip (Set gem set) public bool EquipGemSet(GemLibrary.GemSet gemSet) { m_GemSet = m_GemLibrary.GemsSetList[(int)gemSet]; if (GameData.Instance.m_Sets.Contains(gemSet)) { GameData.Instance.m_EquippedGemSet = gemSet; SaveLoad.Save(); return(true); } return(false); }
// 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(""); } }