Add mining multiplier

This commit is contained in:
2025-05-17 13:52:38 +02:00
parent f72fcee86c
commit fbcabc90b7

View File

@@ -26,6 +26,7 @@ namespace BlacksmithMaster {
public static ConfigEntry<float> globalSpeedMultiplier; public static ConfigEntry<float> globalSpeedMultiplier;
public static ConfigEntry<float> globalSpeedOffset; public static ConfigEntry<float> globalSpeedOffset;
public static ConfigEntry<float> hiringCostMultiplier; public static ConfigEntry<float> hiringCostMultiplier;
public static ConfigEntry<float> miningMultiplier;
public static ConfigEntry<bool> alwaysEvenly; public static ConfigEntry<bool> alwaysEvenly;
public static ConfigEntry<bool> alwaysChad; public static ConfigEntry<bool> alwaysChad;
@@ -65,6 +66,9 @@ namespace BlacksmithMaster {
hiringCostMultiplier = Config.Bind( hiringCostMultiplier = Config.Bind(
"General", "Hiring Cost Multiplier", 1f, "General", "Hiring Cost Multiplier", 1f,
new ConfigDescription("Hiring Cost Multiplier", new AcceptableValueRange<float>(0.01f, 1024f))); new ConfigDescription("Hiring Cost Multiplier", new AcceptableValueRange<float>(0.01f, 1024f)));
miningMultiplier = Config.Bind(
"General", "Mining Multiplier", 1f,
new ConfigDescription("Mining Multiplier", new AcceptableValueRange<float>(0.01f, 1024f)));
alwaysEvenly = alwaysEvenly =
Config.Bind("General", "Always Evenly", false, Config.Bind("General", "Always Evenly", false,
new ConfigDescription("Always Evenly", new AcceptableValueRange<bool>(false, true))); new ConfigDescription("Always Evenly", new AcceptableValueRange<bool>(false, true)));
@@ -177,4 +181,24 @@ namespace BlacksmithMaster {
shouldBeSuperWorker = true; shouldBeSuperWorker = true;
} }
} }
[HarmonyPatch(typeof(MineBoxController), "AddMineralPiece")]
public class MineBoxController_AddMineralPiece {
private static int before;
public static void Prefix(ref MineBoxController __instance) {
var trav = Traverse.Create(__instance);
var piecesInsideAmount = trav.Field("PiecesInsideAmount");
Main.LogDebug("Original pieces: " + piecesInsideAmount.GetValue<int>());
before = piecesInsideAmount.GetValue<int>();
}
public static void Postfix(ref MineBoxController __instance) {
var trav = Traverse.Create(__instance);
var piecesInsideAmount = trav.Field("PiecesInsideAmount");
Main.LogDebug("Original pieces: " + piecesInsideAmount.GetValue<int>());
var delta = piecesInsideAmount.GetValue<int>() - before;
piecesInsideAmount.SetValue(before + (int)(delta * Main.miningMultiplier.Value));
Main.LogDebug("Modified pieces: " + piecesInsideAmount.GetValue<int>());
}
}
} }