/// <summary> /// Agrega o quita un skill de la lista /// </summary> /// <param name='skill'> /// El skill por habilitar/deshabilitar /// </param> /// <param name='skillEnabled'> /// True si se quiere habilitar el skill, falso si no. /// </param> public static void SetSkill(NonBasicCharacterSkill skill, bool skillEnabled) { if (Skills == null) { Skills = new List <NonBasicCharacterSkill>(); } if (Skills.Contains(skill)) { if (!skillEnabled) { Skills.Remove(skill); } } else if (skillEnabled) { Skills.Add(skill); } }
/// <summary> /// Devuelve el estado de un skill /// </summary> /// <returns> /// Verdadero si el skill existe, falso si no. /// </returns> /// <param name='skill'> /// El skill por determinar /// </param> public static bool GetSkill(NonBasicCharacterSkill skill) { return(Skills != null ? (Skills.Contains(skill) ? true : false) : false); }
/// <summary> /// Loads the stats for the current profile. Uses Unity's multiplatform PlayerPrefs class. /// </summary> public static void LoadStats() { if (!PlayerPrefs.HasKey(CurrentProfileName)) { ClearStats(); } else { string playerStats = PlayerPrefs.GetString(CurrentProfileName); string[] settings = playerStats.Split(','); foreach (string setting in settings) { string settingName = setting.Split(':')[0]; if (!string.IsNullOrEmpty(settingName)) { string settingValue = setting.Split(':')[1]; switch (settingName) { case "LastPosition": LastPosition = new Vector3( float.Parse(settingValue.Split('|')[0]), float.Parse(settingValue.Split('|')[1]), float.Parse(settingValue.Split('|')[2])); break; case "LastRotation": LastRotation = new Quaternion( float.Parse(settingValue.Split('|')[0]), float.Parse(settingValue.Split('|')[1]), float.Parse(settingValue.Split('|')[2]), float.Parse(settingValue.Split('|')[3])); break; case "GlobalScore": GlobalScore = long.Parse(settingValue); break; case "CreditCount": CreditCount = int.Parse(settingValue); break; case "MaxLife": MaxLife = float.Parse(settingValue); break; case "CurrentLife": CurrentLife = float.Parse(settingValue); break; case "LevelCredits": LevelCredits = new Dictionary <string, long>(); if (!string.IsNullOrEmpty(settingValue)) { string[] creditData = settingValue.Split('|'); foreach (string creditSetting in creditData) { string levelName = creditSetting.Split('-')[0]; long levelCreditCount = long.Parse(creditSetting.Split('-')[1]); LevelCredits[levelName] = levelCreditCount; } } break; case "LevelBugs": LevelBugs = new Dictionary <string, long>(); if (!string.IsNullOrEmpty(settingValue)) { string[] bugData = settingValue.Split('|'); foreach (string bugSetting in bugData) { string levelName = bugSetting.Split('-')[0]; long levelBugCount = long.Parse(bugSetting.Split('-')[1]); LevelBugs[levelName] = levelBugCount; } } break; case "Skills": Skills = new List <NonBasicCharacterSkill>(); if (!string.IsNullOrEmpty(settingValue)) { string[] skillStrings = settingValue.Split('|'); foreach (string skillName in skillStrings) { NonBasicCharacterSkill skill = (NonBasicCharacterSkill)Enum.Parse(typeof(NonBasicCharacterSkill), skillName); Skills.Add(skill); } } break; default: LevelScores = new Dictionary <string, long>(); LevelScores[settingName] = long.Parse(settingValue); break; } } } } }