private static void LoadUpgrades() { string savedUpgrades = PlayerPrefs.GetString("savedUpgrades"); if (savedUpgrades != default && savedUpgrades != "") //If saved datas are found { //Example of string retrieved from playerPrefs: Dash=Base,Pass=Upgrade1,PerfectReception=Upgrade2 string[] upgradesValues = savedUpgrades.Split(char.Parse(",")); foreach (string s in upgradesValues) { if (s != "") { string[] splitValue = s.Split(char.Parse("=")); string abilityName = splitValue[0]; string upgradeName = splitValue[1]; ConcernedAbility foundAbility = default; Upgrade foundUpgrade = default; if (System.Enum.TryParse <ConcernedAbility>(abilityName, out foundAbility) && System.Enum.TryParse <Upgrade>(upgradeName, out foundUpgrade)) { unlockedAbilities[foundAbility] = foundUpgrade; } } } } UpdateUpgrades(); }
public void GoToSpecificAbility(ConcernedAbility _concernedAbility) { for (int i = 0; i < abilitiesData.Length; i++) { if (abilitiesData[i].ability == _concernedAbility) { GotToSpecificAbilityByIndex(i); } } }
public static void UpgradeAbility(ConcernedAbility _ability, Upgrade _upgrade) { //Check that the upgrade is better than the current int upgradeValue = (int)_upgrade; if (upgradeValue > (int)unlockedAbilities[_ability]) { //Unlocking upgrade unlockedAbilities[_ability] = _upgrade; SaveUpgrades(); UpdateUpgrades(); Debug.Log("Upgraded " + _ability + " with " + _upgrade); } }
public void OpenAbilitiesMenuAtSpecificOne(ConcernedAbility _concernedAbility, Upgrade _newAbilityLevel) { abilitiesMenuCanvas.enabled = true; AbilityListNavigation i_script = abilitiesMenu.GetComponent <AbilityListNavigation>(); if (_concernedAbility == ConcernedAbility.PerfectReception) { i_script.GoToSpecificAbility(_concernedAbility); i_script.UnlockNextUpgradeForPerfectReception(); } else { i_script.GoToSpecificAbility(_concernedAbility); i_script.UnlockUpgrade(_newAbilityLevel); } //AbilityManager.UnlockAbility(_concernedAbility, _newAbilityLevel) i_script.isNavigationAllowed = true; isMainMenuActive = false; }
public static void PickedUpAnUpgrade(ConcernedAbility _concernedAbility, Upgrade _newAbilityLevel) { AbilityManager.UpgradeAbility(_concernedAbility, _newAbilityLevel); OpenLevelMenu(); mainMenu.OpenAbilitiesMenuAtSpecificOne(_concernedAbility, _newAbilityLevel); }
public static Upgrade GetAbilityLevel(ConcernedAbility _ability) { return(unlockedAbilities[_ability]); }