From ba8801370f1243bdb46d970ea33ae9f9437a7edd Mon Sep 17 00:00:00 2001 From: lutepickle <28810-lutepickle@users.noreply.gitgud.io> Date: Wed, 13 Mar 2024 08:03:02 -0700 Subject: [PATCH] Have TotalFertCum account for destroyed pawns and animals --- .../HediffComps/HediffComp_Menstruation.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs b/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs index 0208c9c..f952929 100644 --- a/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs +++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs @@ -259,7 +259,7 @@ namespace RJW_Menstruation } public float TotalFertCum { - get => cums?.Sum(cum => cum.FertVolume) ?? 0; + get => cums?.Where(cum => CumCanFertilize(cum)).Sum(cum => cum.FertVolume) ?? 0; } public float TotalCumPercent { @@ -1335,10 +1335,18 @@ namespace RJW_Menstruation } } + public bool CumCanFertilize(Cum cum) + { + return !cum.notcum && + cum.FertVolume > 0 && + !(cum.pawn?.Destroyed ?? true) && + (RJWPregnancySettings.bestial_pregnancy_enabled || xxx.is_animal(Pawn) == xxx.is_animal(cum.pawn)); + } + protected Pawn Fertilize() { if (cums.NullOrEmpty()) return null; - List eligibleCum = cums.FindAll(cum => !cum.notcum && cum.FertVolume > 0 && !(cum.pawn?.Destroyed ?? true) && (RJWPregnancySettings.bestial_pregnancy_enabled || xxx.is_animal(Pawn) == xxx.is_animal(cum.pawn))); + List eligibleCum = cums.FindAll(cum => CumCanFertilize(cum)); if (eligibleCum.Count == 0) return null; float totalFertPower = eligibleCum.Sum(cum => cum.FertVolume);