From f65511549f5ad3db5417677c7058ebd18f77c45a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Majdand=C5=BEi=C4=87?= Date: Thu, 18 Apr 2024 22:33:10 +0200 Subject: [PATCH] Add housing capacity patch --- .../CaptainOfIndustry/Class1.cs | 4 ++-- .../CaptainOfIndustry/Patches.cs | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Projects/CaptainOfIndustry/CaptainOfIndustry/Class1.cs b/Projects/CaptainOfIndustry/CaptainOfIndustry/Class1.cs index 692e2c2..6be68f6 100644 --- a/Projects/CaptainOfIndustry/CaptainOfIndustry/Class1.cs +++ b/Projects/CaptainOfIndustry/CaptainOfIndustry/Class1.cs @@ -21,7 +21,7 @@ namespace CaptainOfIndustry { public static ConfigEntry unityGenerationMultiplier; public static ConfigEntry depotTransferSpeedMultiplier; public static ConfigEntry worldMineSpeedMultiplier; - public static ConfigEntry worldMineLevelIncrementMultiplier; + public static ConfigEntry housingCapacityMultiplier; public void Awake() { excavatorCapacityMultiplier = Config.Bind("General", "Excavator Capacity Multiplier", 1, new ConfigDescription("Excavator Capacity Multiplier")); @@ -33,7 +33,7 @@ namespace CaptainOfIndustry { unityGenerationMultiplier = Config.Bind("General", "Unity Generation Multiplier", 1f, new ConfigDescription("Unity Generation Multiplier")); 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")); - worldMineLevelIncrementMultiplier = Config.Bind("General", "World Mine Level Increment Multiplier", 1f, new ConfigDescription("World Mine Level Increment Multiplier")); + housingCapacityMultiplier = Config.Bind("General", "Housing Capacity Multiplier", 1f, new ConfigDescription("Housing Capacity 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 c3a5bdf..64b26e1 100644 --- a/Projects/CaptainOfIndustry/CaptainOfIndustry/Patches.cs +++ b/Projects/CaptainOfIndustry/CaptainOfIndustry/Patches.cs @@ -4,9 +4,11 @@ using System.Linq; using System.Reflection.Emit; using HarmonyLib; using Mafi; +using Mafi.Collections.ImmutableCollections; using Mafi.Core; using Mafi.Core.Buildings.Cargo.Modules; using Mafi.Core.Buildings.Cargo.Ships.Modules; +using Mafi.Core.Buildings.Settlements; using Mafi.Core.Buildings.Storages; using Mafi.Core.Entities; using Mafi.Core.Entities.Dynamic; @@ -337,5 +339,23 @@ namespace CaptainOfIndustry { return codes.AsEnumerable(); } + + [HarmonyPostfix] + [HarmonyPatch(typeof(SettlementHousingModuleProto), MethodType.Constructor, new[] { + typeof(StaticEntityProto.ID), + typeof(Proto.Str), + typeof(EntityLayout), + typeof(EntityCosts), + typeof(int), + typeof(Upoints), + typeof(ImmutableArray, Percent>>), + typeof(IReadOnlyDictionary), + typeof(Option), + typeof(SettlementHousingModuleProto.Gfx), + })] + static void housingCapacityMultiplier(SettlementHousingModuleProto __instance) { + Traverse.Create(__instance).Field("Capacity").Value = + (int)(__instance.Capacity * Main.housingCapacityMultiplier.Value); + } } }