diff --git a/Projects/InfectionFreeZone/InfectionFreeZone/InfectionFreeZone.cs b/Projects/InfectionFreeZone/InfectionFreeZone/InfectionFreeZone.cs index 766535e..10f986b 100644 --- a/Projects/InfectionFreeZone/InfectionFreeZone/InfectionFreeZone.cs +++ b/Projects/InfectionFreeZone/InfectionFreeZone/InfectionFreeZone.cs @@ -30,6 +30,8 @@ namespace InfectionFreeZone { public static ConfigEntry resourceMultiplier; public static ConfigEntry resourceGatheringMultiplier; public static ConfigEntry resourceScavengingMultiplier; + public static ConfigEntry buildingStorageCapacityMultiplier; + public static ConfigEntry buildingQuartersCapacityMultiplier; // public static ConfigEntry workSpeedMultiplier; public void Awake() { @@ -38,6 +40,8 @@ namespace InfectionFreeZone { resourceMultiplier = Config.Bind("General", "ResourceMultiplier", 1f); resourceGatheringMultiplier = Config.Bind("General", "ResourceGatheringMultiplier", 1f); resourceScavengingMultiplier = Config.Bind("General", "ResourceScavengingMultiplier", 1f); + buildingStorageCapacityMultiplier = Config.Bind("General", "BuildingStorageCapacityMultiplier", 1f); + buildingQuartersCapacityMultiplier = Config.Bind("General", "BuildingQuartersCapacityMultiplier", 1f); // workSpeedMultiplier = Config.Bind("General", "WorkSpeedMultiplier", 1f); Logger.LogInfo("Cyka mod loaded"); @@ -107,10 +111,37 @@ namespace InfectionFreeZone { Console.WriteLine($"Resource {resource.Key} to drop modified to: {newResourceValue}"); } } + resourcesToDrop.Value = resourcesToDropNew; if (Main.debug.Value) Console.WriteLine($"Resources to drop modified: {resourcesToDrop}"); } + + [HarmonyPostfix] + [HarmonyPatch(typeof(PlaceableObjectDraft), "GetCapacity")] + public static void PostfixGetCapacity(ref int __result) { + if (Main.buildingStorageCapacityMultiplier.Value <= 0) + return; + + if (Main.debug.Value) + Console.WriteLine($"Building capacity is {__result}"); + __result = (int)(__result * Main.buildingStorageCapacityMultiplier.Value); + if (Main.debug.Value) + Console.WriteLine($"Building capacity modified to {__result}"); + } + + [HarmonyPostfix] + [HarmonyPatch(typeof(PlaceableObjectDraft), "GetLivingCapacity")] + public static void PostfixGetLivingCapacity(ref int __result) { + if (Main.buildingQuartersCapacityMultiplier.Value <= 0) + return; + + if (Main.debug.Value) + Console.WriteLine($"Building capacity is {__result}"); + __result = (int)(__result * Main.buildingQuartersCapacityMultiplier.Value); + if (Main.debug.Value) + Console.WriteLine($"Building capacity modified to {__result}"); + } // private void InstantiateResources() // { // foreach (KeyValuePair generatedResource in this._resourcesToDrop)