Пример #1
0
    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));
        }
    }
Пример #2
0
    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
    }
Пример #3
0
 // Use this for initialization
 void Start()
 {
     if (m_Instance != null)
     {
         Destroy(this.gameObject);
     }
     else
     {
         m_Instance = this;
         DontDestroyOnLoad(this);
     }
 }
Пример #4
0
    // 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);
        }
    }
Пример #5
0
    // 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("");
        }
    }
Пример #6
0
    // 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();
    }