Example #1
0
        public static Skill GetSerializableSkillByName(string name)
        {
            if (string.IsNullOrEmpty(name))
            {
                return(null);
            }

            SkillsManager skillsManager = GameManager.GetSkillsManager();

            if (skillsManager is null)
            {
                return(null);
            }

            for (int i = 0; i < skillsManager.GetNumSkills(); i++)
            {
                Skill             skill             = skillsManager.GetSkillFromIndex(i);
                SerializableSkill serializableSkill = skill?.TryCast <SerializableSkill>();
                if (name == serializableSkill?.name)
                {
                    return(skill);
                }
            }

            return(null);
        }
Example #2
0
        public static Skill GetSkillByName(string name)
        {
            if (string.IsNullOrEmpty(name))
            {
                return(null);
            }

            SkillsManager skillsManager = GameManager.GetSkillsManager();

            if (skillsManager == null)
            {
                return(null);
            }

            for (int i = 0; i < skillsManager.GetNumSkills(); i++)
            {
                Skill skill = skillsManager.GetSkillFromIndex(i);
                if (name == skill.name)
                {
                    return(skill);
                }
            }

            return(null);
        }
        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);
        }