Code Cleanup & Formula Adjustments
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
# Release Notes v0.4.0
|
||||
|
||||
- Updated difficulty formulas to be closer to the vanilla game.
|
||||
- Split difficulty options into separate categories for better control.
|
||||
- Fixed a bug causing the logs to be spammed with debug messages.
|
||||
- General code cleanup.
|
||||
@@ -0,0 +1,6 @@
|
||||
[h1]Release Notes v0.4.0[/h1]
|
||||
|
||||
- Updated difficulty formulas to be closer to the vanilla game.
|
||||
- Split difficulty options into separate categories for better control.
|
||||
- Fixed a bug causing the logs to be spammed with debug messages.
|
||||
- General code cleanup.
|
||||
+41
-12
@@ -7,15 +7,20 @@ using UnityEngine;
|
||||
|
||||
namespace MMOKitchen.Menus
|
||||
{
|
||||
public class PreferenceMenu<T> : KLMenu<T>
|
||||
public class PreferenceMenu : KLMenu
|
||||
{
|
||||
public PreferenceMenu(Transform container, ModuleList module_list) : base(container, module_list)
|
||||
{
|
||||
}
|
||||
|
||||
private Option<int> requiredPercentage = new Option<int>(new List<int> { 25, 50, 75, 100 }, Mod.manager.GetPreference<PreferenceInt>(Mod.PREFERENCE_REQUIRED_CONSENT_PERCENTAGE).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 }, Mod.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<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 }, Mod.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 }, Mod.manager.GetPreference<PreferenceBool>("scaleAbove4Players").Get(), new List<string> { "Enabled", "Disabled" });
|
||||
|
||||
|
||||
private Option<float> customerScaleAmount;
|
||||
private Option<float> fireScaleAmount;
|
||||
private Option<float> patienceScaleAmount;
|
||||
|
||||
public override void Setup(int player_id)
|
||||
{
|
||||
@@ -37,22 +42,46 @@ namespace MMOKitchen.Menus
|
||||
Mod.manager.GetPreference<PreferenceBool>("scaleAbove4Players").Set(result);
|
||||
Mod.manager.Save();
|
||||
};
|
||||
|
||||
AddScaleOption("Customer Scale Amount", ref customerScaleAmount, Mod.PREFERENCE_CUSTOMER_SCALE_AMOUNT);
|
||||
AddScaleOption("Fire Scale Amount", ref fireScaleAmount, Mod.PREFERENCE_FIRE_SCALE_AMOUNT);
|
||||
AddScaleOption("Patience Scale Amount", ref patienceScaleAmount, Mod.PREFERENCE_PATIENCE_SCALE_AMOUNT);
|
||||
|
||||
AddLabel("Scale Multiplier");
|
||||
AddSelect<float>(scaleMultiplier);
|
||||
scaleMultiplier.OnChanged += delegate (object _, float result)
|
||||
{
|
||||
Mod.manager.GetPreference<PreferenceFloat>("scaleAbove4PlayersMultiplier").Set(result);
|
||||
Mod.manager.Save();
|
||||
};
|
||||
|
||||
New<SpacerElement>(true);
|
||||
New<SpacerElement>(true);
|
||||
New<SpacerElement>();
|
||||
New<SpacerElement>();
|
||||
|
||||
AddButton(base.Localisation["MENU_BACK_SETTINGS"], delegate (int i)
|
||||
{
|
||||
this.RequestPreviousMenu();
|
||||
}, 0, 1f, 0.2f);
|
||||
}
|
||||
|
||||
private void AddScaleOption(string label, ref Option<float> option, string preferenceKey, float min = 0f, float max = 2f, float step = 0.1f)
|
||||
{
|
||||
if (option == null)
|
||||
{
|
||||
List<float> values = new List<float>();
|
||||
List<string> displayValues = new List<string>();
|
||||
|
||||
for (float f = min; f < max + step; f += step)
|
||||
{
|
||||
values.Add((float)System.Math.Round(f, 2));
|
||||
displayValues.Add(((float)System.Math.Round(f, 2)).ToString("0.00"));
|
||||
}
|
||||
|
||||
option = new Option<float>(values, Mod.manager.GetPreference<PreferenceFloat>(preferenceKey).Value, displayValues);
|
||||
}
|
||||
|
||||
New<SpacerElement>();
|
||||
|
||||
AddLabel(label);
|
||||
|
||||
AddSelect(option);
|
||||
option.OnChanged += (_, result) =>
|
||||
{
|
||||
Mod.manager.GetPreference<PreferenceFloat>(preferenceKey).Set(result);
|
||||
Mod.manager.Save();
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,9 +2,10 @@ using KitchenLib;
|
||||
using KitchenMods;
|
||||
using System.Reflection;
|
||||
using Kitchen;
|
||||
using KitchenLib.Event;
|
||||
using KitchenLib.Preferences;
|
||||
using KitchenLib.UI.PlateUp.PreferenceMenus;
|
||||
using MMOKitchen.Menus;
|
||||
using UnityEngine;
|
||||
using KitchenLogger = KitchenLib.Logging.KitchenLogger;
|
||||
|
||||
namespace MMOKitchen
|
||||
@@ -13,13 +14,16 @@ namespace MMOKitchen
|
||||
{
|
||||
public const string MOD_GUID = "com.starfluxgames.mmokitchen";
|
||||
public const string MOD_NAME = "MMO Kitchen";
|
||||
public const string MOD_VERSION = "0.3.3";
|
||||
public const string MOD_VERSION = "0.4.0";
|
||||
public const string MOD_AUTHOR = "StarFluxGames";
|
||||
public const string MOD_GAMEVERSION = ">=1.2.0";
|
||||
|
||||
public const string PREFERENCE_REQUIRED_CONSENT_PERCENTAGE = "requiredConsentPercentage";
|
||||
public const string PREFERENCE_SCALE_ABOVE_4_PLAYERS = "scaleAbove4Players";
|
||||
public const string PREFERENCE_SCALE_ABOVE_4_PLAYERS_MULTIPLIER = "scaleAbove4PlayersMultiplier";
|
||||
|
||||
public const string PREFERENCE_CUSTOMER_SCALE_AMOUNT = "PREFERENCE_CUSTOMER_SCALE_AMOUNT";
|
||||
public const string PREFERENCE_FIRE_SCALE_AMOUNT = "PREFERENCE_FIRE_SCALE_AMOUNT";
|
||||
public const string PREFERENCE_PATIENCE_SCALE_AMOUNT = "PREFERENCE_PATIENCE_SCALE_AMOUNT";
|
||||
|
||||
public static KitchenLogger Logger;
|
||||
public static PreferenceManager manager;
|
||||
@@ -40,22 +44,20 @@ namespace MMOKitchen
|
||||
protected override void OnPostActivate(KitchenMods.Mod mod)
|
||||
{
|
||||
Logger = InitLogger();
|
||||
manager = new PreferenceManager("mmokitchen"); // Keeping the old GUID so we don't have to reset the preferences
|
||||
manager = new PreferenceManager("mmokitchen");
|
||||
manager.RegisterPreference(new PreferenceInt(PREFERENCE_REQUIRED_CONSENT_PERCENTAGE, 100));
|
||||
manager.RegisterPreference(new PreferenceBool("scaleAbove4Players", false));
|
||||
manager.RegisterPreference(new PreferenceFloat("scaleAbove4PlayersMultiplier", 0.235f));
|
||||
manager.Load();
|
||||
manager.RegisterPreference(new PreferenceBool(PREFERENCE_SCALE_ABOVE_4_PLAYERS, true));
|
||||
|
||||
ModsPreferencesMenu<MenuAction>.RegisterMenu("MMO Kitchen", typeof(PreferenceMenu<MenuAction>), typeof(MenuAction));
|
||||
ModsPreferencesMenu<MenuAction>.RegisterMenu("MMO Kitchen", typeof(PreferenceMenu<MenuAction>), typeof(MenuAction));
|
||||
Events.MainMenuView_SetupMenusEvent += (s, args) =>
|
||||
{
|
||||
args.addMenu.Invoke(args.instance, new object[] { typeof(PreferenceMenu<MenuAction>), new PreferenceMenu<MenuAction>(args.instance.ButtonContainer, args.module_list) });
|
||||
};
|
||||
Events.PlayerPauseView_SetupMenusEvent += (s, args) =>
|
||||
{
|
||||
args.addMenu.Invoke(args.instance, new object[] { typeof(PreferenceMenu<MenuAction>), new PreferenceMenu<MenuAction>(args.instance.ButtonContainer, args.module_list) });
|
||||
};
|
||||
manager.RegisterPreference(new PreferenceFloat(PREFERENCE_CUSTOMER_SCALE_AMOUNT, 1f));
|
||||
manager.RegisterPreference(new PreferenceFloat(PREFERENCE_FIRE_SCALE_AMOUNT, 1f));
|
||||
manager.RegisterPreference(new PreferenceFloat(PREFERENCE_PATIENCE_SCALE_AMOUNT, 1f));
|
||||
|
||||
manager.Load();
|
||||
manager.Save();
|
||||
|
||||
MainMenuPreferencesesMenu.RegisterMenu(MOD_NAME, typeof(PreferenceMenu));
|
||||
PauseMenuPreferencesesMenu.RegisterMenu(MOD_NAME, typeof(PreferenceMenu));
|
||||
BasePreferencesMenu.RegisterUsableMenu(typeof(PreferenceMenu));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,35 +9,42 @@ namespace MMOKitchen.Patches
|
||||
{
|
||||
[HarmonyPatch("CustomerPlayersRateModifier")]
|
||||
[HarmonyPrefix]
|
||||
static bool CustomerPlayersRateModifier_Postfix(ref float __result, int player_count)
|
||||
static bool CustomerPlayersRateModifier_Prefix(ref float __result, int player_count)
|
||||
{
|
||||
if (player_count < 4 && Mod.manager.GetPreference<PreferenceBool>("scaleAbove4Players").Value)
|
||||
if (player_count > 4 && Mod.manager.GetPreference<PreferenceBool>(Mod.PREFERENCE_SCALE_ABOVE_4_PLAYERS).Value)
|
||||
{
|
||||
__result = (0.55f + (player_count * 0.25f) - 0.05f) * Mod.manager.GetPreference<PreferenceFloat>("scaleAbove4PlayersMultiplier").Value;
|
||||
__result = (float)(1.5 + 0.25 * (player_count - 4) * Mod.manager.GetPreference<PreferenceFloat>(Mod.PREFERENCE_CUSTOMER_SCALE_AMOUNT).Value);
|
||||
return false;
|
||||
}
|
||||
|
||||
Mod.Logger.LogInfo("5");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
[HarmonyPatch("FireSpreadModifier")]
|
||||
[HarmonyPrefix]
|
||||
static bool FireSpreadModifier_Prefix(ref float __result, int player_count)
|
||||
{
|
||||
if (player_count > 4 && Mod.manager.GetPreference<PreferenceBool>(Mod.PREFERENCE_SCALE_ABOVE_4_PLAYERS).Value)
|
||||
{
|
||||
__result = (float)(1.15 + 0.05 * (player_count - 4) * Mod.manager.GetPreference<PreferenceFloat>(Mod.PREFERENCE_FIRE_SCALE_AMOUNT).Value);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
[HarmonyPatch("FireSpreadModifier")]
|
||||
[HarmonyPostfix]
|
||||
static void FireSpreadModifier_Postfix(ref float __result, int player_count)
|
||||
{
|
||||
if (Mod.manager.GetPreference<PreferenceBool>("scaleAbove4Players").Value)
|
||||
if (player_count > 4)
|
||||
__result = 0.75f + (player_count * Mod.manager.GetPreference<PreferenceFloat>("scaleAbove4PlayersMultiplier").Value);
|
||||
}
|
||||
|
||||
[HarmonyPatch("PatiencePlayerCountModifier")]
|
||||
[HarmonyPostfix]
|
||||
static void PatiencePlayerCountModifier_Postfix(ref float __result, int player_count)
|
||||
[HarmonyPrefix]
|
||||
static bool PatiencePlayerCountModifier_Prefix(ref float __result, int player_count)
|
||||
{
|
||||
if (Mod.manager.GetPreference<PreferenceBool>("scaleAbove4Players").Value)
|
||||
if (player_count > 4)
|
||||
__result = 0.75f + (player_count * Mod.manager.GetPreference<PreferenceFloat>("scaleAbove4PlayersMultiplier").Value);
|
||||
if (player_count > 4 && Mod.manager.GetPreference<PreferenceBool>(Mod.PREFERENCE_SCALE_ABOVE_4_PLAYERS).Value)
|
||||
{
|
||||
__result = (float)(1.5 + 0.25 * (player_count - 4) * Mod.manager.GetPreference<PreferenceFloat>(Mod.PREFERENCE_PATIENCE_SCALE_AMOUNT).Value);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user