diff --git a/Projects/TavernMaster/TavernMaster/TavernDave.cs b/Projects/TavernMaster/TavernMaster/TavernDave.cs index aee35bd..55e1c3b 100644 --- a/Projects/TavernMaster/TavernMaster/TavernDave.cs +++ b/Projects/TavernMaster/TavernMaster/TavernDave.cs @@ -15,6 +15,9 @@ namespace TavernDave { public static ConfigEntry moneyMultiplier; public static ConfigEntry fastSpeed; public static ConfigEntry staffXpMultiplier; + public static ConfigEntry peoplePerMinuteMultiplier; + public static ConfigEntry peoplePerMinuteOffset; + public static ConfigEntry prestigeMultiplier; public void Awake() { moneyMultiplier = Config.Bind("General", "MoneyMultiplier", 1f); @@ -54,7 +57,7 @@ namespace TavernDave { Console.WriteLine($"Game speed modified to {gameSpeed}"); } } - + [HarmonyPrefix] [HarmonyPatch(typeof(StaffModel), "UpdateXp")] public static void PrefixXp(ref int id, ref int amount) { @@ -64,5 +67,25 @@ namespace TavernDave { Console.WriteLine($"Staff xp modified to {amount}"); } } + + [HarmonyPostfix] + [HarmonyPatch(typeof(TechTreeModel), nameof(TechTreeModel.GetBonusPeoplePerMinute))] + public static void PrefixGetBonusPeoplePerMinute(ref float __result) { + __result *= Main.peoplePerMinuteMultiplier.Value; + __result += Main.peoplePerMinuteOffset.Value; + } + + [HarmonyPrefix] + [HarmonyPatch(typeof(TavernModel), "RecalculateQuality")] + public static void PrefixRecalculateQuality(ref TavernModel __instance) { + Traverse traverse = Traverse.Create(__instance); + var quality = (int)traverse.Field("Quality").GetValue(); + Console.WriteLine($"Quality is {quality}"); + if (quality > 0) { + quality = (int)(quality * Main.prestigeMultiplier.Value); + Console.WriteLine($"Quality modified to {quality}"); + traverse.Field("Quality").SetValue(quality); + } + } } } \ No newline at end of file