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;
using BepInEx.Configuration; using BepInEx.Configuration;
using Controllers; using Controllers;
using Controllers.CharacterLogic;
using Controllers.Weather; using Controllers.Weather;
using GameCustomization; using GameCustomization;
using Gameplay.Buildings; using Gameplay.Buildings;
@@ -353,57 +354,65 @@ namespace InfectionFreeZone {
Console.WriteLine($"Production time modified to {__result}"); Console.WriteLine($"Production time modified to {__result}");
} }
[HarmonyPostfix] [HarmonyPrefix]
[HarmonyPatch(typeof(CharactersConfig), MethodType.Constructor, new Type[] { })] [HarmonyPatch(typeof(CitizensController), "IncreasePopulation")]
public static void PostfixCharactersConfig(CharactersConfig __instance) { // Could not find a better way to do this
public static void PostfixCharactersConfig(ref CitizensController __instance) {
if (Main.birthingConfigDebug.Value) 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) if (Main.birthingConfigDebug.Value)
Console.WriteLine( 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) 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) if (Main.birthingConfigDebug.Value)
Console.WriteLine( 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) if (Main.birthingConfigDebug.Value)
Console.WriteLine( 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) if (Main.birthingConfigDebug.Value)
Console.WriteLine( 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) if (Main.birthingConfigDebug.Value)
Console.WriteLine( 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) if (Main.birthingConfigDebug.Value)
Console.WriteLine( 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; Main.childToAdultRatioInfluenceFloorParam.Value;
if (Main.birthingConfigDebug.Value) if (Main.birthingConfigDebug.Value)
Console.WriteLine( 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; Main.childToAdultRatioInfluenceCeilingParam.Value;
if (Main.birthingConfigDebug.Value) if (Main.birthingConfigDebug.Value)
Console.WriteLine( 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;
} }
} }
} }