From 4a836641b9684261f0e124c7877e47fe818c3e58 Mon Sep 17 00:00:00 2001 From: Lachlan Leone Date: Fri, 24 Mar 2023 13:05:49 +1100 Subject: [PATCH] v0.1.9 --- MMOKitchen/Changelogs/v0.1.9.MD | 4 ++++ MMOKitchen/Main.cs | 4 +++- MMOKitchen/Menus/PreferenceMenu.cs | 19 +++++++++++++++++++ MMOKitchen/Patches/DifficultyHelpers_Patch.cs | 16 ++++++++++------ 4 files changed, 36 insertions(+), 7 deletions(-) create mode 100644 MMOKitchen/Changelogs/v0.1.9.MD diff --git a/MMOKitchen/Changelogs/v0.1.9.MD b/MMOKitchen/Changelogs/v0.1.9.MD new file mode 100644 index 0000000..21c83e8 --- /dev/null +++ b/MMOKitchen/Changelogs/v0.1.9.MD @@ -0,0 +1,4 @@ +# Release Notes v0.1.9 + +- Adjusted default scaling above 4 players. +- Scaling above 4 players can now be adjusted and disabled in the preference. \ No newline at end of file diff --git a/MMOKitchen/Main.cs b/MMOKitchen/Main.cs index 5c92324..16e65d4 100644 --- a/MMOKitchen/Main.cs +++ b/MMOKitchen/Main.cs @@ -15,7 +15,7 @@ namespace MMOKitchenReborn public const string MOD_ID = "mmokitchen"; public const string MOD_NAME = "MMO Kitchen"; public const string MOD_AUTHOR = "StarFluxGames"; - public const string MOD_VERSION = "0.1.8"; + public const string MOD_VERSION = "0.1.9"; public const string MOD_COMPATIBLE_VERSIONS = ">=1.1.4"; public static PreferenceManager manager; @@ -25,6 +25,8 @@ namespace MMOKitchenReborn { manager = new PreferenceManager(MOD_ID); manager.RegisterPreference(new PreferenceInt("requiredConsentPercentage", 100)); + manager.RegisterPreference(new PreferenceBool("scaleAbove4Players", false)); + manager.RegisterPreference(new PreferenceFloat("scaleAbove4PlayersMultiplier", 0.1f)); manager.Load(); ModsPreferencesMenu.RegisterMenu("MMO Kitchen", typeof(PreferenceMenu), typeof(PauseMenuAction)); diff --git a/MMOKitchen/Menus/PreferenceMenu.cs b/MMOKitchen/Menus/PreferenceMenu.cs index f30dfa2..3dc9200 100644 --- a/MMOKitchen/Menus/PreferenceMenu.cs +++ b/MMOKitchen/Menus/PreferenceMenu.cs @@ -15,6 +15,7 @@ namespace MMOKitchenReborn.Menus public override void Setup(int player_id) { + New(true); AddLabel("Required Consent Percentage"); AddSelect(requiredPercentage); requiredPercentage.OnChanged += delegate (object _, int result) @@ -22,6 +23,22 @@ namespace MMOKitchenReborn.Menus Main.manager.GetPreference("requiredConsentPercentage").Set(result); }; + New(true); + + AddLabel("Scale Above 4 Players"); + AddSelect(scaleEnabled); + scaleEnabled.OnChanged += delegate (object _, bool result) + { + Main.manager.GetPreference("scaleAbove4Players").Set(result); + }; + + AddLabel("Scale Multiplier"); + AddSelect(scaleMultiplier); + scaleMultiplier.OnChanged += delegate (object _, float result) + { + Main.manager.GetPreference("scaleAbove4PlayersMultiplier").Set(result); + }; + New(true); New(true); @@ -32,5 +49,7 @@ namespace MMOKitchenReborn.Menus }, 0, 1f, 0.2f); } private Option requiredPercentage = new Option(new List { 25, 50, 75, 100 }, Main.manager.GetPreference("requiredConsentPercentage").Get(), new List { "25%", "50%", "75%", "100%" }); + private Option scaleMultiplier = new Option(new List { 0.1f, 0.2f, 0.3f, 0.4f, 0, 5f, 0.6f, 0.7f, 0.8f, 0.9f, 1f }, Main.manager.GetPreference("scaleAbove4PlayersMultiplier").Get(), new List { "0.1", "0.2", "0.3", "0.4", "0.5", "0.6", "0.7", "0.8", "0.9", "1.0" }); + private Option scaleEnabled = new Option(new List { true, false }, Main.manager.GetPreference("scaleAbove4Players").Get(), new List { "Enabled", "Disabled" }); } } diff --git a/MMOKitchen/Patches/DifficultyHelpers_Patch.cs b/MMOKitchen/Patches/DifficultyHelpers_Patch.cs index 73bf152..b063094 100644 --- a/MMOKitchen/Patches/DifficultyHelpers_Patch.cs +++ b/MMOKitchen/Patches/DifficultyHelpers_Patch.cs @@ -1,5 +1,6 @@ using HarmonyLib; using Kitchen; +using KitchenLib.Preferences; namespace MMOKitchenReborn.Patches { @@ -10,24 +11,27 @@ namespace MMOKitchenReborn.Patches [HarmonyPostfix] static void CustomerPlayersRateModifier_Postfix(ref float __result, int player_count) { - if (player_count > 4) - __result = 1 + (player_count * 0.25f); + if (Main.manager.GetPreference("scaleAbove4Players").Value) + if (player_count > 4) + __result = 1 + (player_count * Main.manager.GetPreference("scaleAbove4PlayersPercentage").Value); } [HarmonyPatch("FireSpreadModifier")] [HarmonyPostfix] static void FireSpreadModifier_Postfix(ref float __result, int player_count) { - if (player_count > 4) - __result = 0.75f + (player_count * 0.25f); + if (Main.manager.GetPreference("scaleAbove4Players").Value) + if (player_count > 4) + __result = 0.75f + (player_count * Main.manager.GetPreference("scaleAbove4PlayersPercentage").Value); } [HarmonyPatch("PatiencePlayerCountModifier")] [HarmonyPostfix] static void PatiencePlayerCountModifier_Postfix(ref float __result, int player_count) { - if (player_count > 4) - __result = 0.75f + (player_count * 0.25f); + if (Main.manager.GetPreference("scaleAbove4Players").Value) + if (player_count > 4) + __result = 0.75f + (player_count * Main.manager.GetPreference("scaleAbove4PlayersPercentage").Value); } } }