From f70c2ad5850a1c6cb5b6eb7c51e74274e4b1ccec Mon Sep 17 00:00:00 2001 From: lutepickle <28810-lutepickle@users.noreply.gitgud.io> Date: Wed, 31 Jul 2024 07:22:20 -0700 Subject: [PATCH 1/4] Put a warning in the log when loading a pregnancy with mother == father --- .../RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs index 38fbb81..895685e 100644 --- a/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs +++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs @@ -639,8 +639,12 @@ namespace RJW_Menstruation if (Scribe.mode == LoadSaveMode.PostLoadInit) { Initialize(); - if (pregnancy is HediffWithParents vanillaPreg && vanillaPreg.Mother == vanillaPreg.Father) // Fix mother == father issue + // Biotech labor errors if the mother is also the father, so don't let that happen + if (pregnancy is HediffWithParents vanillaPreg && vanillaPreg.Mother == vanillaPreg.Father && vanillaPreg.Mother != null) + { + Log.Warning($"Pregnancy of {Pawn} has same mother and father, setting father to null"); vanillaPreg.SetParents(vanillaPreg.Mother, null, vanillaPreg.geneSet); + } } } From 80611882c9d0243d56963c3d5d057534105576c6 Mon Sep 17 00:00:00 2001 From: lutepickle <28810-lutepickle@users.noreply.gitgud.io> Date: Wed, 31 Jul 2024 15:16:06 -0700 Subject: [PATCH 2/4] Don't show stage or time to next stage for pawns that don't cycle --- .../HediffComps/HediffComp_Menstruation.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs index 895685e..4c6681c 100644 --- a/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs +++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs @@ -794,7 +794,7 @@ namespace RJW_Menstruation { get { - if (Pawn.Dead) return null; + if (Pawn.Dead || !Pawn.ShouldCycle()) return null; StringBuilder tip = new StringBuilder(); tip.Append(Translations.Dialog_WombInfo01); tip.Append(": "); @@ -816,7 +816,11 @@ namespace RJW_Menstruation public override string CompDebugString() { - if (Pawn.Dead || curStage == Stage.None || curStage == Stage.Infertile || curStage == Stage.Pregnant) return null; + if (Pawn.Dead || + !Pawn.ShouldCycle() || + curStage == Stage.None || + curStage == Stage.Infertile || + curStage == Stage.Pregnant) return null; StringBuilder debugString = new StringBuilder(); debugString.Append($"Time to next state: "); debugString.Append(GenDate.ToStringTicksToPeriod(TicksToNextStage())); From 3d9b22776e703d67a106e619ee61cf89f7ba184e Mon Sep 17 00:00:00 2001 From: lutepickle <28810-lutepickle@users.noreply.gitgud.io> Date: Wed, 31 Jul 2024 15:18:21 -0700 Subject: [PATCH 3/4] Remove vaginal washing order for pawns that don't cycle --- .../RJW_Menstruation/RJW_Menstruation/Patch/Pawn_Patch.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/Patch/Pawn_Patch.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/Patch/Pawn_Patch.cs index 26a66eb..ef1c8b3 100644 --- a/1.5/source/RJW_Menstruation/RJW_Menstruation/Patch/Pawn_Patch.cs +++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/Patch/Pawn_Patch.cs @@ -33,8 +33,12 @@ namespace RJW_Menstruation foreach (LocalTargetInfo t in selftargets) { - if (t.Pawn == pawn && pawn.HasMenstruationComp()) opts.AddDistinct(MakeSelfMenu(pawn, t)); - break; + if (t.Pawn == pawn) + { + if (pawn.HasMenstruationComp() && pawn.ShouldCycle()) + opts.AddDistinct(MakeSelfMenu(pawn, t)); + break; + } } } From 36c88d27526b6bd63ac053264379068a8039896f Mon Sep 17 00:00:00 2001 From: lutepickle <28810-lutepickle@users.noreply.gitgud.io> Date: Sat, 3 Aug 2024 08:59:06 -0700 Subject: [PATCH 4/4] Null check for pawn job in GetOvaryIcon --- .../RJW_Menstruation/HediffComps/MenstruationUtility.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs index db4bd06..d608249 100644 --- a/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs +++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs @@ -242,7 +242,7 @@ namespace RJW_Menstruation bool isInduced = comp is HediffComp_InducedOvulator; if (comp.curStage == HediffComp_Menstruation.Stage.Follicular && isInduced && - comp.Pawn.jobs.curDriver is JobDriver_Sex job && + comp.Pawn.jobs?.curDriver is JobDriver_Sex job && job.Sexprops != null && !UsingCondom(comp.Pawn, job.Partner) && (job.Sexprops.sexType == xxx.rjwSextype.Vaginal || job.Sexprops.sexType == xxx.rjwSextype.DoublePenetration))