Fix up birthing config

This commit is contained in:
2024-09-28 20:00:11 +02:00
parent 2273610965
commit 4cf2eb9e9b

View File

@@ -4,6 +4,7 @@ using System.Linq;
using BepInEx;
using BepInEx.Configuration;
using Controllers;
using Controllers.CharacterLogic;
using Controllers.Weather;
using GameCustomization;
using Gameplay.Buildings;
@@ -353,57 +354,65 @@ namespace InfectionFreeZone {
Console.WriteLine($"Production time modified to {__result}");
}
[HarmonyPostfix]
[HarmonyPatch(typeof(CharactersConfig), MethodType.Constructor, new Type[] { })]
public static void PostfixCharactersConfig(CharactersConfig __instance) {
[HarmonyPrefix]
[HarmonyPatch(typeof(CitizensController), "IncreasePopulation")]
// Could not find a better way to do this
public static void PostfixCharactersConfig(ref CitizensController __instance) {
if (Main.birthingConfigDebug.Value)
Console.WriteLine($"Characters config created");
Console.WriteLine($"Citizens controller IncreasePopulation");
var trav = Traverse.Create(__instance);
var charactersConfig = trav.Field<CharactersConfig>("_charactersConfig");
var charactersConfigV = charactersConfig.Value;
var bornConfig = charactersConfigV.bornConfig;
__instance.bornConfig.MaxCitizensInZoneToChildrenBorn = Main.maxCitizensInZoneToChildrenBorn.Value;
bornConfig.MaxCitizensInZoneToChildrenBorn = Main.maxCitizensInZoneToChildrenBorn.Value;
if (Main.birthingConfigDebug.Value)
Console.WriteLine(
$"Max citizens in zone to children born is {__instance.bornConfig.MaxCitizensInZoneToChildrenBorn}");
$"Max citizens in zone to children born is {bornConfig.MaxCitizensInZoneToChildrenBorn}");
__instance.bornConfig.MoraleInfluenceFloorParam = Main.moraleInfluenceFloorParam.Value;
bornConfig.MoraleInfluenceFloorParam = Main.moraleInfluenceFloorParam.Value;
if (Main.birthingConfigDebug.Value)
Console.WriteLine($"Morale influence floor param is {__instance.bornConfig.MoraleInfluenceFloorParam}");
Console.WriteLine($"Morale influence floor param is {bornConfig.MoraleInfluenceFloorParam}");
__instance.bornConfig.MoraleInfluenceCeilingParam = Main.moraleInfluenceCeilingParam.Value;
bornConfig.MoraleInfluenceCeilingParam = Main.moraleInfluenceCeilingParam.Value;
if (Main.birthingConfigDebug.Value)
Console.WriteLine(
$"Morale influence ceiling param is {__instance.bornConfig.MoraleInfluenceCeilingParam}");
$"Morale influence ceiling param is {bornConfig.MoraleInfluenceCeilingParam}");
__instance.bornConfig.FoodStockInfluenceFloorParam = Main.foodStockInfluenceFloorParam.Value;
bornConfig.FoodStockInfluenceFloorParam = Main.foodStockInfluenceFloorParam.Value;
if (Main.birthingConfigDebug.Value)
Console.WriteLine(
$"Food stock influence floor param is {__instance.bornConfig.FoodStockInfluenceFloorParam}");
$"Food stock influence floor param is {bornConfig.FoodStockInfluenceFloorParam}");
__instance.bornConfig.FoodStockInfluenceCeilingParam = Main.foodStockInfluenceCeilingParam.Value;
bornConfig.FoodStockInfluenceCeilingParam = Main.foodStockInfluenceCeilingParam.Value;
if (Main.birthingConfigDebug.Value)
Console.WriteLine(
$"Food stock influence ceiling param is {__instance.bornConfig.FoodStockInfluenceCeilingParam}");
$"Food stock influence ceiling param is {bornConfig.FoodStockInfluenceCeilingParam}");
__instance.bornConfig.QuartersRatioInfluenceFloorParam = Main.quartersRatioInfluenceFloorParam.Value;
bornConfig.QuartersRatioInfluenceFloorParam = Main.quartersRatioInfluenceFloorParam.Value;
if (Main.birthingConfigDebug.Value)
Console.WriteLine(
$"Quarters ratio influence floor param is {__instance.bornConfig.QuartersRatioInfluenceFloorParam}");
$"Quarters ratio influence floor param is {bornConfig.QuartersRatioInfluenceFloorParam}");
__instance.bornConfig.QuartersRatioInfluenceCeilingParam = Main.quartersRatioInfluenceCeilingParam.Value;
bornConfig.QuartersRatioInfluenceCeilingParam = Main.quartersRatioInfluenceCeilingParam.Value;
if (Main.birthingConfigDebug.Value)
Console.WriteLine(
$"Quarters ratio influence ceiling param is {__instance.bornConfig.QuartersRatioInfluenceCeilingParam}");
$"Quarters ratio influence ceiling param is {bornConfig.QuartersRatioInfluenceCeilingParam}");
__instance.bornConfig.ChildToAdultRatioInfluenceFloorParam =
bornConfig.ChildToAdultRatioInfluenceFloorParam =
Main.childToAdultRatioInfluenceFloorParam.Value;
if (Main.birthingConfigDebug.Value)
Console.WriteLine(
$"Child to adult ratio influence floor param is {__instance.bornConfig.ChildToAdultRatioInfluenceFloorParam}");
$"Child to adult ratio influence floor param is {bornConfig.ChildToAdultRatioInfluenceFloorParam}");
__instance.bornConfig.ChildToAdultRatioInfluenceCeilingParam =
bornConfig.ChildToAdultRatioInfluenceCeilingParam =
Main.childToAdultRatioInfluenceCeilingParam.Value;
if (Main.birthingConfigDebug.Value)
Console.WriteLine(
$"Child to adult ratio influence ceiling param is {__instance.bornConfig.ChildToAdultRatioInfluenceCeilingParam}");
$"Child to adult ratio influence ceiling param is {bornConfig.ChildToAdultRatioInfluenceCeilingParam}");
charactersConfigV.bornConfig = bornConfig;
charactersConfig.Value = charactersConfigV;
}
}
}