From 82dea0f425311ba39ec1356db13d569e0a3287cd Mon Sep 17 00:00:00 2001 From: lutepickle <28810-lutepickle@users.noreply.gitgud.io> Date: Sun, 11 Feb 2024 07:30:25 -0800 Subject: [PATCH] Always attempt to ovulate at least one egg --- .../HediffComps/HediffComp_Menstruation.cs | 8 +++----- 1 file changed, 3 insertions(+), 5 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 f970ff8..639e54d 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 @@ -681,10 +681,8 @@ namespace RJW_Menstruation opcache = -1; if (Pawn.genes == null || !ModsConfig.BiotechActive) return; - foreach (MenstruationModExtension extension in Pawn.genes.GenesListForReading.Select(gene => gene.def.GetModExtension())) + foreach (MenstruationModExtension extension in Pawn.genes.GenesListForReading.Select(gene => gene.def.GetModExtension()).Where(ext => ext != null)) { - if (extension == null) continue; - eggLifeSpanTicks = (int)(eggLifeSpanTicks * extension.eggLifeTimeFactor); if (extension.alwaysEstrus) estrusLevel = EstrusLevel.Visible; else if (extension.neverEstrus) estrusLevel = EstrusLevel.None; @@ -1656,7 +1654,7 @@ namespace RJW_Menstruation eggnum = 1f; } eggnum *= ovulationFactor; - int toOvulate = (int)eggnum + eggstack; + int toOvulate = Math.Max(1, (int)eggnum + eggstack); int ovulated = 0; for (int i = 0; i < toOvulate; i++) @@ -1667,7 +1665,7 @@ namespace RJW_Menstruation } ovarypower -= ovulated; eggstack = 0; - if (Configurations.Debug && ovulated != toOvulate) + if (Configurations.Debug && ovulated < toOvulate) Log.Message($"{Pawn} ovulated {ovulated}/{toOvulate} eggs ({OvulationChance.ToStringPercent()} chance)"); GoNextStage(Stage.Luteal);