public void BuyButtonClicked(bool fromCoin) { PlayerStatistics.Upgrade currentUpgrade = playerStats.upgradesList[selectedUpgradeIndexForPreview]; if (currentUpgrade.IsUnlocked) { if (fromCoin) { PlayerStatistics.SkinColorStuff skinColorData = currentUpgrade.ColorStuff[currentUpgrade.ParticlesColor.ToString()]; if (playerStats.playerCoins >= skinColorData.CoinCost) { AudioSource.PlayClipAtPoint(buyUpgradesSFX, Camera.main.transform.position, playerStats.sfxVolume); playerStats.playerCoins -= skinColorData.CoinCost; numCoinsTMPro.text = playerStats.playerCoins.ToString(); skinColorData.IsUnlocked = true; currentUpgrade.ColorStuff[currentUpgrade.ParticlesColor.ToString()] = skinColorData; taskHandlerClass.UpdateLevelTaskState(ObjectsDescription.Player, TaskTypes.UpdateSkin, TaskCategory.ImmediateActionTask, new List <string>() { skinColorData.CoinCost.ToString() }); } } else { // pay from credit card. } playerStats.upgradesList[selectedUpgradeIndexForPreview] = currentUpgrade; } else { if (fromCoin) { if (playerStats.playerCoins >= currentUpgrade.CoinCost) { AudioSource.PlayClipAtPoint(buyUpgradesSFX, Camera.main.transform.position, playerStats.sfxVolume); playerStats.playerCoins -= currentUpgrade.CoinCost; numCoinsTMPro.text = playerStats.playerCoins.ToString(); currentUpgrade.IsUnlocked = true; taskHandlerClass.UpdateLevelTaskState(ObjectsDescription.Player, TaskTypes.UpdateSkin, TaskCategory.ImmediateActionTask, new List <string>() { currentUpgrade.CoinCost.ToString() }); } } else { // pay from credit card. } playerStats.upgradesList[selectedUpgradeIndexForPreview] = currentUpgrade; upgradeScrollerClass.UpgradeUnlocked(selectedUpgradeIndexForPreview); } UpdateUiData(currentUpgrade); }
public void SelectButtonClicked() { PlayerStatistics.Upgrade currentUpgrade = playerStats.upgradesList[selectedUpgradeIndexForPreview]; if (currentUpgrade.IsActive) { PlayerStatistics.SkinColorStuff skinColorData = currentUpgrade.ColorStuff[currentUpgrade.ParticlesColor.ToString()]; List <string> keys = new List <string>(currentUpgrade.ColorStuff.Keys); foreach (string key in keys) { PlayerStatistics.SkinColorStuff colorData = currentUpgrade.ColorStuff[key]; if (key == currentUpgrade.ParticlesColor.ToString()) { colorData.IsActive = true; } else { colorData.IsActive = false; } currentUpgrade.ColorStuff[key] = colorData; } } else { int numUpgrades = playerStats.upgradesList.Count; for (int i = 0; i < numUpgrades; i++) { PlayerStatistics.Upgrade tempUpgrade = playerStats.upgradesList[i]; if (tempUpgrade.ApplicableOn == currentUpgrade.ApplicableOn) { tempUpgrade.IsActive = false; playerStats.upgradesList[i] = tempUpgrade; } } currentUpgrade.IsActive = true; } playerStats.upgradesList[selectedUpgradeIndexForPreview] = currentUpgrade; UpdateUiData(currentUpgrade); }