diff --git a/Projects/CaptainOfIndustry/CaptainOfIndustry/Class1.cs b/Projects/CaptainOfIndustry/CaptainOfIndustry/Class1.cs index 7b8c5a1..236249e 100644 --- a/Projects/CaptainOfIndustry/CaptainOfIndustry/Class1.cs +++ b/Projects/CaptainOfIndustry/CaptainOfIndustry/Class1.cs @@ -24,6 +24,7 @@ namespace CaptainOfIndustry { public static ConfigEntry depotTransferSpeedMultiplier; public static ConfigEntry worldMineSpeedMultiplier; public static ConfigEntry housingCapacityMultiplier; + public static ConfigEntry dumpDelayMultiplier; public void Awake() { excavatorCapacityMultiplier = Config.Bind("General", "Excavator Capacity Multiplier", 1, new ConfigDescription("Excavator Capacity Multiplier")); @@ -38,6 +39,7 @@ namespace CaptainOfIndustry { depotTransferSpeedMultiplier = Config.Bind("General", "Depot Transfer Speed Multiplier", 1f, new ConfigDescription("Depot Transfer Speed Multiplier")); worldMineSpeedMultiplier = Config.Bind("General", "World Mine Speed Multiplier", 1f, new ConfigDescription("World Mine Speed Multiplier")); housingCapacityMultiplier = Config.Bind("General", "Housing Capacity Multiplier", 1f, new ConfigDescription("Housing Capacity Multiplier")); + dumpDelayMultiplier = Config.Bind("General", "Dump Delay Multiplier", 1f, new ConfigDescription("Dump Delay Multiplier")); // shootingSpeedMultiplier.SettingChanged += (sender, args) => WeaponPropertiesManager.DoPatch(); // energyGenMultiplier.SettingChanged += (sender, args) => GeneratorPropertiesManager.DoPatch(); diff --git a/Projects/CaptainOfIndustry/CaptainOfIndustry/Patches.cs b/Projects/CaptainOfIndustry/CaptainOfIndustry/Patches.cs index 429a96e..6a1325d 100644 --- a/Projects/CaptainOfIndustry/CaptainOfIndustry/Patches.cs +++ b/Projects/CaptainOfIndustry/CaptainOfIndustry/Patches.cs @@ -1,4 +1,5 @@ using System; +using System.Collections; using System.Collections.Generic; using System.Linq; using System.Reflection.Emit; @@ -15,6 +16,7 @@ using Mafi.Core.Entities.Dynamic; using Mafi.Core.Entities.Static; using Mafi.Core.Entities.Static.Layout; using Mafi.Core.Factory.Machines; +using Mafi.Core.Factory.Transports; using Mafi.Core.Population; using Mafi.Core.Products; using Mafi.Core.Prototypes; @@ -366,5 +368,28 @@ namespace CaptainOfIndustry { Traverse.Create(__instance).Field("Capacity").Value = (int)(__instance.Capacity * Main.housingCapacityMultiplier.Value); } + + // ublic StackerProto(StaticEntityProto.ID id, Proto.Str strings, EntityLayout layout, EntityCosts costs, Electricity consumedPowerPerTick, ThicknessTilesI minDumpOffset, RelTile3i dumpHeadRelPos, Duration dumpDelay, Duration dumpPeriod, StackerProto.Gfx graphics, ThicknessTilesI defaultDumpOffset, IEnumerable tags = null) + + [HarmonyPostfix] + [HarmonyPatch(typeof(StackerProto), MethodType.Constructor, new[] { + typeof(StaticEntityProto.ID), + typeof(Proto.Str), + typeof(EntityLayout), + typeof(EntityCosts), + typeof(Electricity), + typeof(ThicknessTilesI), + typeof(RelTile3i), + typeof(Duration), + typeof(Duration), + typeof(StackerProto.Gfx), + typeof(ThicknessTilesI), + typeof(IEnumerable), + })] + static void dumpDelayMultiplier(StackerProto __instance) { + Duration newDelay = + new Duration(Math.Max((int)(__instance.DumpDelay.Ticks * Main.dumpDelayMultiplier.Value), 1)); + Traverse.Create(__instance).Field("DumpDelay").SetValue(newDelay); + } } }