コード例 #1
0
    /// <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);
        }
    }
コード例 #2
0
 /// <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);
 }
コード例 #3
0
    /// <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;
                    }
                }
            }
        }
    }