Example #1
0
        private static void LoadPerSaveOptions()
        {
            Logger.LogInformation($"per save options file path: {ModEntry.CurrentSaveOptionsPath}");
            if (!File.Exists(ModEntry.CurrentSaveOptionsPath))
            {
                SetupPerSaveOptionsFile();
            }
            var settings = new JsonSerializerSettings {
                ContractResolver = new PrivateSetterContractResolver()
            };

            Logger.LogInformation("Deserializing per save options file...");
            try
            {
                _instance = JsonConvert.DeserializeObject <PerSaveOptions>(File.ReadAllText(ModEntry.CurrentSaveOptionsPath), settings);
                if (Instance.CostOfTierOnePrestige <= 0)
                {
                    Logger.LogWarning("Tier one prestige cost loaded without value, defaulting to a cost of 1.");
                    Instance.CostOfTierOnePrestige = 1;
                }
                if (Instance.CostOfTierTwoPrestige <= 0)
                {
                    Logger.LogWarning("Tier two prestige cost loaded without value, defaulting to a cost of 2.");
                    Instance.CostOfTierTwoPrestige = 2;
                }
                if (Instance.ExperienceMultiplier <= 0)
                {
                    Logger.LogWarning("Experience Multiplier loaded without value, defaulting to 10%, turning on experience multiplier usage.");
                    Instance.ExperienceMultiplier    = 0.1m;
                    Instance.UseExperienceMultiplier = true;
                }
                if (Instance.PointsPerPrestige <= 0)
                {
                    Logger.LogWarning("Points per prestige loaded without value, defaulting to a 1 point per prestige.");
                    Instance.PointsPerPrestige = 1;
                }
                if (Instance.ExperienceNeededPerPainlessPrestige <= 0)
                {
                    Logger.LogWarning("Experience points needed per painless prestige loaded without value, defaulting to 15000 points per painless prestige.");
                    Instance.ExperienceNeededPerPainlessPrestige = 15000;
                }
            }
            catch (Exception ex)
            {
                Logger.LogError($"Error deserializing per-save options file. {Environment.NewLine}{ex.Message}{Environment.NewLine}{ex.StackTrace}");
                Logger.LogInformation(" Attempting to create new per-save options file...");
                SetupPerSaveOptionsFile();
            }
            Logger.LogInformation("Per save options loaded.");
        }
Example #2
0
 public static void ClearLoadedPerSaveOptionsFile()
 {
     _instance = null;
 }