private static void Postfix()
        {
            Logger.Log("The Long Dark version: '{0}'", GameManager.GetVersionString());

            SerializableSkill.MaybeRegisterInIl2Cpp();

            try { BlueprintMapper.MapBlueprints(); }
            catch (System.Exception e)
            {
                Logger.LogError("Blueprint Mapping failed: " + e);
            }

            try { SkillsMapper.MapSkills(); }
            catch (System.Exception e)
            {
                Logger.LogError("Skills Mapping failed: " + e);
            }


            //
            //Need to be called after GameManager is initialized
            //

            if (!ModExisting.IsInitialized())            //ModExisting only needs to be initialized at the start of the game
            {
                ModExisting.Initialize();
            }
            AlternativeToolManager.ProcessList();
        }
        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);
        }