From 34ad8bef4d76d98e405923898405ee4e0e8e4adc Mon Sep 17 00:00:00 2001 From: PhatPhuckDave Date: Sun, 29 Sep 2024 00:05:07 +0200 Subject: [PATCH] Fix improperly loading prod multiplier --- .../InfectionFreeZone/InfectionFreeZone.cs | 51 ++++++++++--------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/Projects/InfectionFreeZone/InfectionFreeZone/InfectionFreeZone.cs b/Projects/InfectionFreeZone/InfectionFreeZone/InfectionFreeZone.cs index 8245773..b2bdb3f 100644 --- a/Projects/InfectionFreeZone/InfectionFreeZone/InfectionFreeZone.cs +++ b/Projects/InfectionFreeZone/InfectionFreeZone/InfectionFreeZone.cs @@ -179,30 +179,8 @@ namespace InfectionFreeZone { productionProfitMultiplier = Config.Bind("General", "Production Profit Multiplier (Resource ID: multiplier)", ""); productionProfitMultiplierDict = new Dictionary(); - productionProfitMultiplier.SettingChanged += delegate(object sender, EventArgs e) { - productionProfitMultiplierDict.Clear(); - var str = productionProfitMultiplier.Value; - if (str == "") - return; - var split = str.Split(','); - foreach (var s in split) { - if (Main.productionProfitMultiplierDebug.Value) - Console.WriteLine($"Parsing {s}"); - var split2 = s.Split(':'); - if (split2.Length != 2) - continue; - var success = Enum.TryParse(split2[0], out var resourceID); - if (!success) { - Console.WriteLine($"Failed to parse {split2[0]} as a resource ID"); - continue; - } - - var multiplier = float.Parse(split2[1]); - productionProfitMultiplierDict.Add(resourceID, multiplier); - if (Main.productionProfitMultiplierDebug.Value) - Console.WriteLine($"Added {resourceID} with multiplier {multiplier}"); - } - }; + productionProfitMultiplier.SettingChanged += delegate { UpdateProductionProfitMultiplierDict(); }; + UpdateProductionProfitMultiplierDict(); towerEchoSelectionDebug = Config.Bind("General", "Tower Echo Selection Debug", false); towerEchoSelection = Config.Bind("General", "Tower Echo Selection", false); @@ -218,6 +196,31 @@ namespace InfectionFreeZone { Logger.LogInfo("Patched " + method.Name); } } + + public static void UpdateProductionProfitMultiplierDict() { + Main.productionProfitMultiplierDict.Clear(); + var str = productionProfitMultiplier.Value; + if (str == "") + return; + var split = str.Split(','); + foreach (var s in split) { + if (productionProfitMultiplierDebug.Value) + Console.WriteLine($"Parsing {s}"); + var split2 = s.Split(':'); + if (split2.Length != 2) + continue; + var success = Enum.TryParse(split2[0], out var resourceID); + if (!success) { + Console.WriteLine($"Failed to parse {split2[0]} as a resource ID"); + continue; + } + + var multiplier = float.Parse(split2[1]); + productionProfitMultiplierDict.Add(resourceID, multiplier); + if (productionProfitMultiplierDebug.Value) + Console.WriteLine($"Added {resourceID} with multiplier {multiplier}"); + } + } } [HarmonyPatch]