public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args) { // A consumable product has been purchased by this user. if (String.Equals(args.purchasedProduct.definition.id, PRODUCT_REMOVE_ADS, StringComparison.Ordinal)) { CloudVariables.ImportantValues[2] = 1; RemoveAdsController.DestroyButton(); } else if (String.Equals(args.purchasedProduct.definition.id, PRODUCT_2000_COINS, StringComparison.Ordinal)) { CoinsPurchased?.Invoke(2000); } else if (String.Equals(args.purchasedProduct.definition.id, PRODUCT_5000_COINS, StringComparison.Ordinal)) { CoinsPurchased?.Invoke(5000); } else if (String.Equals(args.purchasedProduct.definition.id, PRODUCT_12000_COINS, StringComparison.Ordinal)) { CoinsPurchased?.Invoke(12000); } else { Debug.Log(string.Format("ProcessPurchase: FAIL. Unrecognized product: '{0}'", args.purchasedProduct.definition.id)); } _playGamesService.SaveData(); // Return a flag indicating whether this product has completely been received, or if the application needs // to be reminded of this purchase at next app launch. Use PurchaseProcessingResult.Pending when still // saving purchased products to the cloud, and when that save is delayed. return(PurchaseProcessingResult.Complete); }
private void AddCoins(int coins) { CloudVariables.ImportantValues[1] += coins; _playGamesService.SaveData(); _uiService.UpdateMainMenu(); UpdateStoreCoins?.Invoke(); }
private void GetRandomSkin() { var lockedSkins = _skinsList.Where(skin => !skin.IsUnlocked).ToList(); var skinCost = GetSkinCost(); if (lockedSkins.Count <= 0 || skinCost > CloudVariables.ImportantValues[1]) { return; } { var newSkin = lockedSkins[Random.Range(0, lockedSkins.Count - 1)].UnlockSkin().SkinImage.sprite; _skinService.SetSkin(newSkin); int newSkinPageId = (int)Math.Truncate((decimal)Convert.ToInt32(newSkin.name.Split('_')[1]) / 9); int deltaPage = newSkinPageId - _scroll.CurrentScreen(); if (deltaPage > 0) { _scroll.NextScreen(Math.Abs(deltaPage)); } else { _scroll.PreviousScreen(Math.Abs(deltaPage)); } CloudVariables.ImportantValues[1] -= skinCost; var binString = "1"; _skinsList.ForEach(skin => { if (skin.SkinImage.sprite.name == "Train_0") { return; } if (skin.IsUnlocked) { binString += "1"; } else { binString += "0"; } }); CloudVariables.ImportantValues[3] = Convert.ToInt64(binString, 2); _playGamesService.SaveData(); _uiService.UpdateMainMenu(); UpdateStoreCoins?.Invoke(); _randomSkinButtonText.text = $"{GetSkinCost()} COINS"; _achievementsService.UnlockAchievement(GPGSIds.achievement_new_customer); _achievementsService.IncrementAchievement(GPGSIds.achievement_train_station, 1); _achievementsService.IncrementAchievement(GPGSIds.achievement_railway_tycoon, 1); } }
private void ResetData() { CloudVariables.ImportantValues = new long[5]; _playGamesService.SaveData(); PlayerPrefs.DeleteAll(); _uiService.UpdateMainMenu(); _uiService.ShowStoreUI(); AndroidNotificationCenter.CancelAllNotifications(); AndroidNotificationCenter.CancelAllDisplayedNotifications(); AndroidNotificationCenter.CancelAllScheduledNotifications(); }
private void GetFreeCoins() { CloudVariables.ImportantValues[1] += _freeCoinsCount; _playGamesService.SaveData(); _notificationService.ShowFreeCoinsNotification(time); _uiService.UpdateMainMenu(); SetTimer(CallBack); _button.interactable = false; _text.color = _runningColor; _lightObject.SetActive(false); }
private void ExitToMainMenu() { if (!CloudVariables.IsAdsRemoved()) { _adsService.ShowGameOverAdvertisement(); } SetActivePanel(false); _gameDataService.SetLastLevel(_levelService.Level); _gameDataService.UpdateCloudVariables(); _playGamesService.SaveData(); _bonusButton.gameObject.SetActive(true); MapGenerator.Instance.ResetGenerator(); _levelService.UpdateService(); _uiService.UpdateMainMenu(); _uiService.ExitToMainMenu(); }