2 Commits

View File

@@ -19,7 +19,11 @@ 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;
public void Awake() {
debug = Config.Bind("General", "Debug", false);
@@ -36,9 +40,20 @@ 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)));
alwaysChad = Config.Bind("General", "Always Chad", false,
new ConfigDescription("Always Chad", new AcceptableValueRange<bool>(false, true)));
Logger.LogInfo("Cykasmith loaded");
HarmonyFileLog.Enabled = true;
@@ -92,11 +107,45 @@ 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) {
Main.LogDebug("Setting skill assignment strategy to evenly");
newPerson.SkillAssignmentStrategy = TavernData.SkillAssignmentStrategyType.Balanced;
if (Main.alwaysEvenly.Value)
newPerson.SkillAssignmentStrategy = TavernData.SkillAssignmentStrategyType.Balanced;
}
}
[HarmonyPatch(typeof(HireData), "GetStaffInfo")]
public class TavernData_GetStaffInfo {
public static void Prefix(Random rnd, int id, string staffName, bool isMale, ref bool shouldBeSuperWorker,
ref EliteTraitType forcedEliteTrait) {
Main.LogDebug("Setting shouldBeSuperWorker to true");
if (Main.alwaysChad.Value)
shouldBeSuperWorker = true;
}
}
}