This commit is contained in:
Lachlan Leone
2023-03-24 13:05:49 +11:00
parent 5e5ec0d118
commit 4a836641b9
4 changed files with 36 additions and 7 deletions
+4
View File
@@ -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.
+3 -1
View File
@@ -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<PauseMenuAction>.RegisterMenu("MMO Kitchen", typeof(PreferenceMenu<PauseMenuAction>), typeof(PauseMenuAction));
+19
View File
@@ -15,6 +15,7 @@ namespace MMOKitchenReborn.Menus
public override void Setup(int player_id)
{
New<SpacerElement>(true);
AddLabel("Required Consent Percentage");
AddSelect<int>(requiredPercentage);
requiredPercentage.OnChanged += delegate (object _, int result)
@@ -22,6 +23,22 @@ namespace MMOKitchenReborn.Menus
Main.manager.GetPreference<PreferenceInt>("requiredConsentPercentage").Set(result);
};
New<SpacerElement>(true);
AddLabel("Scale Above 4 Players");
AddSelect<bool>(scaleEnabled);
scaleEnabled.OnChanged += delegate (object _, bool result)
{
Main.manager.GetPreference<PreferenceBool>("scaleAbove4Players").Set(result);
};
AddLabel("Scale Multiplier");
AddSelect<float>(scaleMultiplier);
scaleMultiplier.OnChanged += delegate (object _, float result)
{
Main.manager.GetPreference<PreferenceFloat>("scaleAbove4PlayersMultiplier").Set(result);
};
New<SpacerElement>(true);
New<SpacerElement>(true);
@@ -32,5 +49,7 @@ namespace MMOKitchenReborn.Menus
}, 0, 1f, 0.2f);
}
private Option<int> requiredPercentage = new Option<int>(new List<int> { 25, 50, 75, 100 }, Main.manager.GetPreference<PreferenceInt>("requiredConsentPercentage").Get(), new List<string> { "25%", "50%", "75%", "100%" });
private Option<float> scaleMultiplier = new Option<float>(new List<float> { 0.1f, 0.2f, 0.3f, 0.4f, 0, 5f, 0.6f, 0.7f, 0.8f, 0.9f, 1f }, Main.manager.GetPreference<PreferenceFloat>("scaleAbove4PlayersMultiplier").Get(), new List<string> { "0.1", "0.2", "0.3", "0.4", "0.5", "0.6", "0.7", "0.8", "0.9", "1.0" });
private Option<bool> scaleEnabled = new Option<bool>(new List<bool> { true, false }, Main.manager.GetPreference<PreferenceBool>("scaleAbove4Players").Get(), new List<string> { "Enabled", "Disabled" });
}
}
@@ -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 (Main.manager.GetPreference<PreferenceBool>("scaleAbove4Players").Value)
if (player_count > 4)
__result = 1 + (player_count * 0.25f);
__result = 1 + (player_count * Main.manager.GetPreference<PreferenceFloat>("scaleAbove4PlayersPercentage").Value);
}
[HarmonyPatch("FireSpreadModifier")]
[HarmonyPostfix]
static void FireSpreadModifier_Postfix(ref float __result, int player_count)
{
if (Main.manager.GetPreference<PreferenceBool>("scaleAbove4Players").Value)
if (player_count > 4)
__result = 0.75f + (player_count * 0.25f);
__result = 0.75f + (player_count * Main.manager.GetPreference<PreferenceFloat>("scaleAbove4PlayersPercentage").Value);
}
[HarmonyPatch("PatiencePlayerCountModifier")]
[HarmonyPostfix]
static void PatiencePlayerCountModifier_Postfix(ref float __result, int player_count)
{
if (Main.manager.GetPreference<PreferenceBool>("scaleAbove4Players").Value)
if (player_count > 4)
__result = 0.75f + (player_count * 0.25f);
__result = 0.75f + (player_count * Main.manager.GetPreference<PreferenceFloat>("scaleAbove4PlayersPercentage").Value);
}
}
}