Add birthing configs
This commit is contained in:
@@ -11,6 +11,7 @@ using Gameplay.GameResources;
|
|||||||
using Gameplay.InGameResources;
|
using Gameplay.InGameResources;
|
||||||
using Gameplay.Rebuilding;
|
using Gameplay.Rebuilding;
|
||||||
using Gameplay.Scavenge;
|
using Gameplay.Scavenge;
|
||||||
|
using Gameplay.Units.Characters;
|
||||||
using Gameplay.Units.Icons;
|
using Gameplay.Units.Icons;
|
||||||
using Gameplay.Units.Movements;
|
using Gameplay.Units.Movements;
|
||||||
using Gameplay.Units.Workers.WorkSystem.Works;
|
using Gameplay.Units.Workers.WorkSystem.Works;
|
||||||
@@ -50,6 +51,16 @@ namespace InfectionFreeZone {
|
|||||||
public static ConfigEntry<float> constructionTimeMultiplier;
|
public static ConfigEntry<float> constructionTimeMultiplier;
|
||||||
public static ConfigEntry<float> productionTimeMultiplier;
|
public static ConfigEntry<float> productionTimeMultiplier;
|
||||||
|
|
||||||
|
public static ConfigEntry<int> maxCitizensInZoneToChildrenBorn;
|
||||||
|
public static ConfigEntry<float> moraleInfluenceFloorParam;
|
||||||
|
public static ConfigEntry<float> moraleInfluenceCeilingParam;
|
||||||
|
public static ConfigEntry<float> foodStockInfluenceFloorParam;
|
||||||
|
public static ConfigEntry<float> foodStockInfluenceCeilingParam;
|
||||||
|
public static ConfigEntry<float> quartersRatioInfluenceFloorParam;
|
||||||
|
public static ConfigEntry<float> quartersRatioInfluenceCeilingParam;
|
||||||
|
public static ConfigEntry<float> childToAdultRatioInfluenceFloorParam;
|
||||||
|
public static ConfigEntry<float> childToAdultRatioInfluenceCeilingParam;
|
||||||
|
|
||||||
public void Awake() {
|
public void Awake() {
|
||||||
debug = Config.Bind("General", "Debug", false);
|
debug = Config.Bind("General", "Debug", false);
|
||||||
|
|
||||||
@@ -67,6 +78,21 @@ namespace InfectionFreeZone {
|
|||||||
constructionTimeMultiplier = Config.Bind("General", "Construction Time Multiplier", 1f);
|
constructionTimeMultiplier = Config.Bind("General", "Construction Time Multiplier", 1f);
|
||||||
productionTimeMultiplier = Config.Bind("General", "Production Time Multiplier", 1f);
|
productionTimeMultiplier = Config.Bind("General", "Production Time Multiplier", 1f);
|
||||||
|
|
||||||
|
maxCitizensInZoneToChildrenBorn =
|
||||||
|
Config.Bind("Birthing Config", "Max Citizens in Zone to Children Born", 600);
|
||||||
|
moraleInfluenceFloorParam = Config.Bind("Birthing Config", "Morale Influence Floor Param", 0.3f);
|
||||||
|
moraleInfluenceCeilingParam = Config.Bind("Birthing Config", "Morale Influence Ceiling Param", 2f);
|
||||||
|
foodStockInfluenceFloorParam = Config.Bind("Birthing Config", "Food Stock Influence Floor Param", 0f);
|
||||||
|
foodStockInfluenceCeilingParam = Config.Bind("Birthing Config", "Food Stock Influence Ceiling Param", 1f);
|
||||||
|
quartersRatioInfluenceFloorParam =
|
||||||
|
Config.Bind("Birthing Config", "Quarters Ratio Influence Floor Param", 0.6f);
|
||||||
|
quartersRatioInfluenceCeilingParam =
|
||||||
|
Config.Bind("Birthing Config", "Quarters Ratio Influence Ceiling Param", 1.4f);
|
||||||
|
childToAdultRatioInfluenceFloorParam =
|
||||||
|
Config.Bind("Birthing Config", "Child to Adult Ratio Influence Floor Param", 1f);
|
||||||
|
childToAdultRatioInfluenceCeilingParam =
|
||||||
|
Config.Bind("Birthing Config", "Child to Adult Ratio Influence Ceiling Param", 0f);
|
||||||
|
|
||||||
Logger.LogInfo("Cyka mod loaded");
|
Logger.LogInfo("Cyka mod loaded");
|
||||||
HarmonyFileLog.Enabled = true;
|
HarmonyFileLog.Enabled = true;
|
||||||
Harmony harmony = new Harmony(pluginGuid);
|
Harmony harmony = new Harmony(pluginGuid);
|
||||||
@@ -182,7 +208,7 @@ namespace InfectionFreeZone {
|
|||||||
[HarmonyPatch(typeof(Building), "DeconstructionResources", MethodType.Getter)]
|
[HarmonyPatch(typeof(Building), "DeconstructionResources", MethodType.Getter)]
|
||||||
public static ResourceQuantity[] PostfixDeconstructionResources(ResourceQuantity[] __result) {
|
public static ResourceQuantity[] PostfixDeconstructionResources(ResourceQuantity[] __result) {
|
||||||
if (Main.buildingDeconstructionResourcesMultiplier.Value <= 0)
|
if (Main.buildingDeconstructionResourcesMultiplier.Value <= 0)
|
||||||
return;
|
return __result;
|
||||||
|
|
||||||
ResourceQuantity[] modifiedResult = new ResourceQuantity[__result.Length];
|
ResourceQuantity[] modifiedResult = new ResourceQuantity[__result.Length];
|
||||||
for (int i = 0; i < __result.Length; i++) {
|
for (int i = 0; i < __result.Length; i++) {
|
||||||
@@ -279,5 +305,21 @@ namespace InfectionFreeZone {
|
|||||||
if (Main.debug.Value)
|
if (Main.debug.Value)
|
||||||
Console.WriteLine($"Production time modified to {__result}");
|
Console.WriteLine($"Production time modified to {__result}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HarmonyPostfix]
|
||||||
|
[HarmonyPatch(typeof(CharactersConfig), MethodType.Constructor, new Type[] { })]
|
||||||
|
public static void PostfixCharactersConfig(CharactersConfig __instance) {
|
||||||
|
__instance.bornConfig.MaxCitizensInZoneToChildrenBorn = Main.maxCitizensInZoneToChildrenBorn.Value;
|
||||||
|
__instance.bornConfig.MoraleInfluenceFloorParam = Main.moraleInfluenceFloorParam.Value;
|
||||||
|
__instance.bornConfig.MoraleInfluenceCeilingParam = Main.moraleInfluenceCeilingParam.Value;
|
||||||
|
__instance.bornConfig.FoodStockInfluenceFloorParam = Main.foodStockInfluenceFloorParam.Value;
|
||||||
|
__instance.bornConfig.FoodStockInfluenceCeilingParam = Main.foodStockInfluenceCeilingParam.Value;
|
||||||
|
__instance.bornConfig.QuartersRatioInfluenceFloorParam = Main.quartersRatioInfluenceFloorParam.Value;
|
||||||
|
__instance.bornConfig.QuartersRatioInfluenceCeilingParam = Main.quartersRatioInfluenceCeilingParam.Value;
|
||||||
|
__instance.bornConfig.ChildToAdultRatioInfluenceFloorParam =
|
||||||
|
Main.childToAdultRatioInfluenceFloorParam.Value;
|
||||||
|
__instance.bornConfig.ChildToAdultRatioInfluenceCeilingParam =
|
||||||
|
Main.childToAdultRatioInfluenceCeilingParam.Value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user