Add multipliers for daily customers, decoration addition, and global speed

This commit is contained in:
2025-05-17 12:58:04 +02:00
parent dcf88a498e
commit 8c4e8b9366

View File

@@ -19,6 +19,9 @@ namespace BlacksmithMaster {
public static ConfigEntry<float> moneyMultiplier;
public static ConfigEntry<float> researchMultiplier;
public static ConfigEntry<float> salaryMultiplier;
public static ConfigEntry<float> dailyCustomerMultiplier;
public static ConfigEntry<float> decorationAdditionMultiplier;
public static ConfigEntry<float> globalSpeedMultiplier;
public static ConfigEntry<bool> alwaysEvenly;
public static ConfigEntry<bool> alwaysChad;
@@ -37,6 +40,15 @@ namespace BlacksmithMaster {
salaryMultiplier =
Config.Bind("General", "Salary Multiplier", 1f,
new ConfigDescription("Salary Multiplier", new AcceptableValueRange<float>(0.01f, 1024f)));
dailyCustomerMultiplier = Config.Bind(
"General", "Daily Customer Multiplier", 1f,
new ConfigDescription("Daily Customer Multiplier", new AcceptableValueRange<float>(0.01f, 1024f)));
decorationAdditionMultiplier = Config.Bind(
"General", "Decoration Addition Multiplier", 1f,
new ConfigDescription("Decoration Addition Multiplier", new AcceptableValueRange<float>(0.01f, 1024f)));
globalSpeedMultiplier = Config.Bind(
"General", "Global Speed Multiplier", 1f,
new ConfigDescription("Global Speed Multiplier", new AcceptableValueRange<float>(0.01f, 1024f)));
alwaysEvenly =
Config.Bind("General", "Always Evenly", false,
new ConfigDescription("Always Evenly", new AcceptableValueRange<bool>(false, true)));
@@ -95,6 +107,29 @@ namespace BlacksmithMaster {
}
}
[HarmonyPatch(typeof(StaffModel), "RefreshGlobalModifiers")]
public class StaffModel_RefreshGlobalModifiers {
public static void Postfix(StaffModel __instance) {
var instanceTrav = Traverse.Create(__instance);
var globalCustomersPerDayMultiplierField = instanceTrav.Field("GlobalCustomersPerDayMultiplier");
var globalDecorationAdditionMultiplierField = instanceTrav.Field("GlobalDecorationAdditionMultiplier");
var globalSpeedModifierField = instanceTrav.Field("GlobalSpeedModifier");
Main.LogDebug("Original daily customer: " + globalCustomersPerDayMultiplierField.GetValue<float>());
globalCustomersPerDayMultiplierField.SetValue(globalCustomersPerDayMultiplierField.GetValue<float>() * Main.dailyCustomerMultiplier.Value);
Main.LogDebug("Modified daily customer: " + globalCustomersPerDayMultiplierField.GetValue<float>());
Main.LogDebug("Original decoration addition: " + globalDecorationAdditionMultiplierField.GetValue<float>());
globalDecorationAdditionMultiplierField.SetValue(globalDecorationAdditionMultiplierField.GetValue<float>() * Main.decorationAdditionMultiplier.Value);
Main.LogDebug("Modified decoration addition: " + globalDecorationAdditionMultiplierField.GetValue<float>());
Main.LogDebug("Original global speed: " + globalSpeedModifierField.GetValue<float>());
globalSpeedModifierField.SetValue(globalSpeedModifierField.GetValue<float>() * Main.globalSpeedMultiplier.Value);
Main.LogDebug("Modified global speed: " + globalSpeedModifierField.GetValue<float>());
}
}
[HarmonyPatch(typeof(StaffUtil), "FillBasicInfo")]
public class StaffUtil_FillBasicInfo {
public static void Postfix(TavernData.StaffType staffType, Random rnd, ref TavernData.StaffInfo newPerson) {