public static bool Prefix(SkillsManager __instance, ref string __result)
        {
            Dictionary <string, string> skillsData = new Dictionary <string, string>();

            for (int i = 0; i < __instance.GetNumSkills(); i++)
            {
                Skill  skill = __instance.GetSkillFromIndex(i);
                string data  = ModUtils.ExecuteMethod <string>(skill, "Serialize");
                skillsData.Add(SerializableSkill.GetSkillSaveKey(skill), data);
            }

            __result = Utils.SerializeObject(skillsData);

            return(false);
        }
        public static bool Prefix(SkillsManager __instance, string text)
        {
            Dictionary <string, string> skillsData = Utils.DeserializeObject <Dictionary <string, string> >(text);

            foreach (var eachEntry in skillsData)
            {
                for (int i = 0; i < __instance.GetNumSkills(); i++)
                {
                    Skill skill = __instance.GetSkillFromIndex(i);
                    if (SerializableSkill.GetSkillSaveKey(skill) == eachEntry.Key)
                    {
                        ModUtils.ExecuteMethod(skill, "Deserialize", eachEntry.Value);
                        break;
                    }
                }
            }

            return(false);
        }