示例#1
0
    private void ProductRestoredCallback(IAPOperationStatus status, string errorMessage, StoreProduct storeProduct)
    {
        if (status == IAPOperationStatus.Success)
        {
            if (storeProduct.productName == ShopProductNames.Subscription1.ToString())
            {
                if (CheckProductActive(storeProduct))
                {
                    Mediator.Instance.CustomStatisticsManager.IsSubscriptionPurchased = true;
                }
            }

            if (storeProduct.productName == ShopProductNames.DiceBR.ToString())
            {
                if (CheckProductActive(storeProduct))
                {
                    Mediator.Instance.CustomStatisticsManager.UserData.ApplyPurchasedDice("BR");
                }
            }

            if (storeProduct.productName == ShopProductNames.DiceBW.ToString())
            {
                if (CheckProductActive(storeProduct))
                {
                    Mediator.Instance.CustomStatisticsManager.UserData.ApplyPurchasedDice("BW");
                }
            }
        }
    }
示例#2
0
    private void ProductBoughtCallback(IAPOperationStatus status, string message, StoreProduct product)
    {
        if (status == IAPOperationStatus.Success)
        {
            if (product.productName == "RemoveAds")
            {
                noAds = true;
                return;
            }
            else if (product.productName == "UnlockChaos")
            {
                unlockedChaos = true;
            }
            else if (product.productName == "UnlockImpossible")
            {
                unlockedImpossible = true;
            }
            else if (product.productName == "UnlockUnfair")
            {
                unlockedUnfair = true;
            }

            GameObject.Find("Game Mode Manager").GetComponent <GameModeManager>().UpdateGameModeDisplay();
        }
    }
示例#3
0
    /// <summary>
    /// automatically called after one product is bought
    /// </summary>
    /// <param name="status">The purchase status: Success/Failed</param>
    /// <param name="message">Error message if status is failed</param>
    /// <param name="product">the product that was bought, use the values from shop product to update your game data</param>
    private void ProductBought(IAPOperationStatus status, string message, StoreProduct product)
    {
        purchaseInProgress = false;
        if (status == IAPOperationStatus.Success)
        {
            if (IAPManager.Instance.debug)
            {
                Debug.Log("Buy product completed: " + product.localizedTitle + " receive value: " + product.value);
                GleyEasyIAP.ScreenWriter.Write("Buy product completed: " + product.localizedTitle + " receive value: " + product.value);
            }

            //each consumable gives coins in this example
            if (product.productType == ProductType.Consumable)
            {
                coins += product.value;
            }

            //non consumable Unlock Level 1 -> unlocks level 1 so we set the corresponding bool to true
            if (product.productName == "UnlockLevel1")
            {
                //unlockLevel1 = true;
            }

            //non consumable Unlock Level 2 -> unlocks level 2 so we set the corresponding bool to true
            if (product.productName == "UnlockLevel2")
            {
                //unlockLevel2 = true;
            }

            //subscription has been bought so we set our subscription variable to true
            if (product.productName == "Subscription")
            {
                //subscription = true;
            }

            if (product.productType == ProductType.NonConsumable)
            {
                if (product.active)
                {
                    nonCOnsumableProducts.First(cond => cond.name.ToString() == product.productName).bought = true;
                }
            }
            if (product.productType == ProductType.Subscription)
            {
                if (product.active)
                {
                    subscriptions.First(cond => cond.name.ToString() == product.productName).bought = true;
                }
            }
        }
        else
        {
            //en error occurred in the buy process, log the message for more details
            if (IAPManager.Instance.debug)
            {
                Debug.Log("Buy product failed: " + message);
                GleyEasyIAP.ScreenWriter.Write("Buy product failed: " + message);
            }
        }
    }
示例#4
0
    private void InitializeResultCallback(IAPOperationStatus status, string message, List <StoreProduct> shopProducts)
    {
        if (status == IAPOperationStatus.Success)
        {
            //IAP was successfully initialized
            //loop through all products
            for (int i = 0; i < shopProducts.Count; i++)
            {
                //if active variable is true, means that user had bought that product
                //so enable access
                if (shopProducts[i].active)
                {
                    if (shopProducts[i].productName == "RemoveAds")
                    {
                        noAds = true;
                    }
                    if (shopProducts[i].productName == "UnlockChaos")
                    {
                        unlockedChaos = true;
                    }
                    if (shopProducts[i].productName == "UnlockImpossible")
                    {
                        unlockedImpossible = true;
                    }
                    if (shopProducts[i].productName == "UnlockUnfair")
                    {
                        unlockedUnfair = true;
                    }
                }
            }

            GameObject.Find("Game Mode Manager").GetComponent <GameModeManager>().UpdateGameModeDisplay();
        }
    }
 private static void BuyComplete(IAPOperationStatus status, string message, StoreProduct product)
 {
     if (status == IAPOperationStatus.Success)
     {
         CustomEvent.Trigger(buyEventTarget, "BuyComplete", true);
     }
     else
     {
         CustomEvent.Trigger(buyEventTarget, "BuyComplete", false);
     }
 }
示例#6
0
 private void RestoreResult(IAPOperationStatus status, string message, StoreProduct product)
 {
     if (status == IAPOperationStatus.Success)
     {
         Fsm.Event(eventTarget, restoreDone);
     }
     else
     {
         Fsm.Event(eventTarget, restoreFailed);
     }
 }
示例#7
0
 private void ProductBought(IAPOperationStatus status, string arg1, StoreProduct arg2)
 {
     callbackReceived = true;
     if (status == IAPOperationStatus.Success)
     {
         _output.SetValue(true);
     }
     else
     {
         _output.SetValue(false);
     }
 }
示例#8
0
 private void BuyComplete(IAPOperationStatus status, string message, StoreProduct storeProduct)
 {
     if (status == IAPOperationStatus.Success)
     {
         Fsm.Event(eventTarget, buySuccessful);
     }
     else
     {
         Fsm.Event(eventTarget, buyFailed);
     }
     Finish();
 }
 private void InitializationResult(IAPOperationStatus status, string arg1, List <StoreProduct> arg2)
 {
     callbackReceived = true;
     if (status == IAPOperationStatus.Success)
     {
         _output.SetValue(true);
     }
     else
     {
         _output.SetValue(false);
     }
 }
示例#10
0
 private void InitializationResult(IAPOperationStatus status, string message, List <StoreProduct> storeProducts)
 {
     if (status == IAPOperationStatus.Success)
     {
         Fsm.Event(eventTarget, initializationDone);
     }
     else
     {
         Fsm.Event(eventTarget, initializationFailed);
     }
     Finish();
 }
 private static void InitializeResult(IAPOperationStatus status, string message, List <StoreProduct> products)
 {
     if (status == IAPOperationStatus.Fail)
     {
         Debug.Log(message);
         CustomEvent.Trigger(initializeEventTarget, "InitComplete", false);
     }
     else
     {
         CustomEvent.Trigger(initializeEventTarget, "InitComplete", true);
     }
 }
示例#12
0
        // ----------------- End of Public Methods ------------------

        // ----------------- Private Helper Methods -----------------------

        private void InitializeResultCallback(IAPOperationStatus status, string message, List <StoreProduct> shopProducts)
        {
            if (status == IAPOperationStatus.Success)
            {
                debugger.Log("IAP Successfully validated products.");
                //IAP was successfully initialized
                NotifyDelegateDidValidateProducts(shopProducts, true, message);
            }
            else
            {
                debugger.Log("IAP Error validating products: " + message);
                NotifyDelegateDidValidateProducts(shopProducts, false, message);
            }
        }
 private void BuyComplete(IAPOperationStatus status, string message, StoreProduct product)
 {
     if (status == IAPOperationStatus.Success)
     {
         if (product.productName == "RemoveAds")
         {
             //remove ads
         }
     }
     else
     {
         //an error occurred in the buy process, log the message for more details
         Debug.Log("Buy product failed: " + message);
     }
 }
示例#14
0
        private void ProductRestoredCallback(IAPOperationStatus status, string message, StoreProduct product)
        {
            if (status == IAPOperationStatus.Success)
            {
                debugger.Log("IAP Successfully restored product: " + product.productName);
                NotifyDelegateDidRestorePurchase(product, true, message);
            }
            else
            {
                //an error occurred in the buy process, log the message for more details
                debugger.Log("IAP Failed to restore product: " + message);

                NotifyDelegateDidRestorePurchase(product, false, message);
            }
        }
示例#15
0
        // automatically called after one product is bought
        // this is an example of product bought callback
        private void ProductBoughtCallback(IAPOperationStatus status, string message, StoreProduct product)
        {
            if (status == IAPOperationStatus.Success)
            {
                debugger.Log("IAP Successfully purchased product: " + product.productName);

                // Notify delegate
                NotifyDelegateDidBuyProduct(product, true, message);
            }
            else
            {
                //an error occurred in the buy process, log the message for more details
                debugger.Log("IAP Buy product failed: " + message);

                // Notify delegate
                NotifyDelegateDidBuyProduct(product, false, message);
            }
        }
示例#16
0
    private void InitComplete(IAPOperationStatus status, string errorMessage, List <StoreProduct> storeProducts)
    {
        if (status == IAPOperationStatus.Success)
        {
            for (int i = 0; i < storeProducts.Count; i++)
            {
                if (Mediator.Instance.GameConfig.IsDebug)
                {
                    Debug.Log($"Init product: {storeProducts[i].productName} && Active: {CheckProductActive(storeProducts[i])}");
                }

                if (storeProducts[i].productName == ShopProductNames.Subscription1.ToString())
                {
                    if (CheckProductActive(storeProducts[i]))
                    {
                        Mediator.Instance.CustomStatisticsManager.IsSubscriptionPurchased = true;
                    }
                }

                if (storeProducts[i].productName == ShopProductNames.DiceBR.ToString())
                {
                    if (CheckProductActive(storeProducts[i]))
                    {
                        Mediator.Instance.CustomStatisticsManager.UserData.ApplyPurchasedDice("BR");
                    }
                }

                if (storeProducts[i].productName == ShopProductNames.DiceBW.ToString())
                {
                    if (CheckProductActive(storeProducts[i]))
                    {
                        Mediator.Instance.CustomStatisticsManager.UserData.ApplyPurchasedDice("BW");
                    }
                }
            }
        }

        CheckSubscription();
    }
 private void InitComplete(IAPOperationStatus status, string message, List <StoreProduct> shopProducts)
 {
     if (status == IAPOperationStatus.Success)
     {
         //IAP was successfully initialized
         //loop through all products
         for (int i = 0; i < shopProducts.Count; i++)
         {
             if (shopProducts[i].productName == "YourProductName")
             {
                 //if active variable is true, means that user had bought that product
                 //so enable access
                 if (shopProducts[i].active)
                 {
                     //activate things for the user
                 }
             }
         }
     }
     else
     {
         Debug.Log("Error occurred " + message);
     }
 }
示例#18
0
    /// <summary>
    /// automatically called after initialization is success
    /// </summary>
    /// <param name="status">The initialization result: Success/Failed</param>
    /// <param name="message">Error message if status is failed</param>
    /// <param name="shopProducts">list of all shop products, can be used to unlock update some game values</param>
    private void InitializeResult(IAPOperationStatus status, string message, List <StoreProduct> shopProducts)
    {
        initializationInProgress = false;
        consumableProducts       = new List <MyStoreProducts>();
        nonCOnsumableProducts    = new List <MyStoreProducts>();
        subscriptions            = new List <MyStoreProducts>();

        if (status == IAPOperationStatus.Success)
        {
            //IAP was successfully initialized
            //loop through all products and check which one are bought to update our variables
            for (int i = 0; i < shopProducts.Count; i++)
            {
                if (shopProducts[i].productName == "UnlockLevel1")
                {
                    //if a product is active, means that user had already bought that product so enable access
                    if (shopProducts[i].active)
                    {
                        //unlockLevel1 = true;
                    }
                }
                if (shopProducts[i].productName == "UnlockLevel2")
                {
                    if (shopProducts[i].active)
                    {
                        //unlockLevel2 = true;
                    }
                }
                if (shopProducts[i].productName == "Subscription")
                {
                    //if a subscription is active means that the subscription is still valid so enable access
                    if (shopProducts[i].active)
                    {
                        //subscription = true;
                    }
                }

                //construct a different list of each category of products, for an easy display purpose, not required
                switch (shopProducts[i].productType)
                {
                case ProductType.Consumable:
                    consumableProducts.Add(new MyStoreProducts(IAPManager.Instance.ConvertNameToShopProduct(shopProducts[i].productName), shopProducts[i].active));
                    break;

                case ProductType.NonConsumable:
                    nonCOnsumableProducts.Add(new MyStoreProducts(IAPManager.Instance.ConvertNameToShopProduct(shopProducts[i].productName), shopProducts[i].active));
                    break;

                case ProductType.Subscription:
                    subscriptions.Add(new MyStoreProducts(IAPManager.Instance.ConvertNameToShopProduct(shopProducts[i].productName), shopProducts[i].active));
                    break;
                }
            }
        }
        else
        {
            //Error initializing IAP
        }

        if (IAPManager.Instance.debug)
        {
            Debug.Log("Init status: " + status + " message " + message);
            GleyEasyIAP.ScreenWriter.Write("Init status: " + status + " message " + message);
        }
    }
示例#19
0
    private void ProductBought(IAPOperationStatus status, string errorMessage, StoreProduct storeProduct)
    {
        if (status == IAPOperationStatus.Success)
        {
            if (storeProduct.productName == ShopProductNames.Chips100.ToString())
            {
                Mediator.Instance.ResourcesStorage.Chips.AddResources(100);
            }
            else if (storeProduct.productName == ShopProductNames.Chips1000.ToString())
            {
                Mediator.Instance.ResourcesStorage.Chips.AddResources(1000);
            }
            else if (storeProduct.productName == ShopProductNames.Chips10000.ToString())
            {
                Mediator.Instance.ResourcesStorage.Chips.AddResources(10000);
            }
            else if (storeProduct.productName == ShopProductNames.Chips1000_SpecialOffer.ToString())
            {
                Mediator.Instance.ResourcesStorage.Chips.AddResources(1000);
            }
            else if (storeProduct.productName == ShopProductNames.Chips200.ToString())
            {
                Mediator.Instance.ResourcesStorage.Chips.AddResources(200);
            }
            else if (storeProduct.productName == ShopProductNames.Chips2000.ToString())
            {
                Mediator.Instance.ResourcesStorage.Chips.AddResources(2000);
            }
            else if (storeProduct.productName == ShopProductNames.Chips300.ToString())
            {
                Mediator.Instance.ResourcesStorage.Chips.AddResources(300);
            }
            else if (storeProduct.productName == ShopProductNames.Chips400.ToString())
            {
                Mediator.Instance.ResourcesStorage.Chips.AddResources(400);
            }
            else if (storeProduct.productName == ShopProductNames.Chips500.ToString())
            {
                Mediator.Instance.ResourcesStorage.Chips.AddResources(500);
            }
            else if (storeProduct.productName == ShopProductNames.Chips5000.ToString())
            {
                Mediator.Instance.ResourcesStorage.Chips.AddResources(5000);
            }
            else if (storeProduct.productName == ShopProductNames.DiceBR.ToString())
            {
                Mediator.Instance.CustomStatisticsManager.UserData.ApplyPurchasedDice("BR");
            }
            else if (storeProduct.productName == ShopProductNames.DiceBW.ToString())
            {
                Mediator.Instance.CustomStatisticsManager.UserData.ApplyPurchasedDice("BW");
            }
            else if (storeProduct.productName == ShopProductNames.Energy1.ToString())
            {
                Mediator.Instance.ResourcesStorage.Energy.AddResources(1);
            }
            else if (storeProduct.productName == ShopProductNames.Energy10.ToString())
            {
                Mediator.Instance.ResourcesStorage.Energy.AddResources(10);
            }
            else if (storeProduct.productName == ShopProductNames.Energy5.ToString())
            {
                Mediator.Instance.ResourcesStorage.Energy.AddResources(5);
            }
            else if (storeProduct.productName == ShopProductNames.Energy_Full_SpecialOffer.ToString())
            {
                Mediator.Instance.ResourcesStorage.Energy.AddResources(10);
            }
            else if (storeProduct.productName == ShopProductNames.Subscription1.ToString())
            {
                Mediator.Instance.CustomStatisticsManager.IsSubscriptionPurchased = true;
            }
            else if (storeProduct.productName == ShopProductNames.Surprise1.ToString())
            {
                Mediator.Instance.ResourcesStorage.SurpriseBox.AddResources(1);
            }

            SendPurchasedDataToDatabase(storeProduct);
        }
        else
        {
            Debug.LogError(errorMessage);
        }

        if (_productBoughtCallback != null)
        {
            _productBoughtCallback?.Invoke();
        }
    }