void UpdateSpeed() { var speedLevel = PlayerStatsManager.GetSpeedLevel(); for (int i = 0; i < speedLevel; i++) { speedButtons[i].interactable = false; } speedCostText.text = speedCosts[speedLevel].ToString(); }
void UnlockAbility(string name, int level) { int currentLevel; var availableCoins = PlayerPrefsManager.GetCoins(); switch (name) { case "Double Jump": currentLevel = PlayerStatsManager.GetDoubleJumpLevel(); if (level == currentLevel + 1 && availableCoins >= doubleJumpCost) { PlayerStatsManager.SetDoubleJumpLevel(level); PlayerPrefsManager.SetCoins(availableCoins - doubleJumpCost); } UpdateDoubleJump(); break; case "Speed": currentLevel = PlayerStatsManager.GetSpeedLevel(); if (level == currentLevel + 1 && level - 1 < speedCosts.Length && availableCoins >= speedCosts[level - 1]) { PlayerStatsManager.SetSpeedLevel(level); PlayerPrefsManager.SetCoins(availableCoins - speedCosts[level - 1]); } UpdateSpeed(); break; case "Jump Force": currentLevel = PlayerStatsManager.GetJumpForceLevel(); if (level == currentLevel + 1 && level - 1 < jumpForceCosts.Length && availableCoins >= jumpForceCosts[level - 1]) { PlayerStatsManager.SetJumpForceLevel(level); PlayerPrefsManager.SetCoins(availableCoins - jumpForceCosts[level - 1]); } UpdateJumpForce(); break; default: Debug.LogError("Ability " + name + " not recognized"); break; } UpdateCoins(); }