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."); }
public static void ClearLoadedPerSaveOptionsFile() { _instance = null; }