public void LoadPlayerSaveData()
    {
        var regex = new Regex(@"(?<=[A-Z])(?=[A-Z][a-z])|(?<=[^A-Z])(?=[A-Z])");

        HP = ES3.Load("HP", 100.0f);
        SetHP(HP);

        string defaultSkill = "Healing Wave";

        string e1   = (string)ES3.Load("energySkill1.description", defaultValue: defaultSkill);
        int    e1Lv = ES3.Load("energySkill1.skillLevel", 0);

        string e2   = (string)ES3.Load("energySkill2.description", defaultValue: "Lightning");
        int    e2Lv = ES3.Load("energySkill2.skillLevel", 0);

        string s   = (string)ES3.Load("staminaSkill.description", defaultValue: "Locked Talent");
        int    sLv = ES3.Load("staminaSkill.skillLevel", 0);

        skills.PlayerId = ES3.Load("PlayerId", 2);

        foreach (var prop in skills.GetType().GetFields())
        {
            //Debug.LogFormat("{0}", prop.Name);
            var name = FirstLetterToUpper(regex.Replace(prop.Name, " "));
            if (name == e1)
            {
                var p = (PlayerSkills.BaseSkill)prop.GetValue(skills);
                energySkill1 = p;
                //Debug.Log(p.description);
                energySkill1.skillLevel = e1Lv;
                //Debug.Log(skills.warcry.skillLevel);
                //Debug.Log(p.GetType().GetProperty("description").GetValue(p));
            }
            else if (name == e2)
            {
                var p = (PlayerSkills.BaseSkill)prop.GetValue(skills);
                energySkill2            = p;
                energySkill2.skillLevel = e2Lv;
            }
            else if (name == s)
            {
                var p = (PlayerSkills.BaseSkill)prop.GetValue(skills);
                staminaSkill            = p;
                staminaSkill.skillLevel = sLv;
            }
        }
    }