From 26c5d44d8a2d4e9af5b998ae3d565b27095e3ec4 Mon Sep 17 00:00:00 2001 From: moreoreganostodump Date: Wed, 3 Feb 2021 22:20:21 +0900 Subject: [PATCH] fertilized stage is merged into luteal stage --- Assemblies/RJW_Menstruation.dll | Bin 46592 -> 46592 bytes Defs/HediffDef/Hediffs_Menstruation.xml | 10 +++---- .../HediffComp_Menstruation.cs | 25 +++++++++++------- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/Assemblies/RJW_Menstruation.dll b/Assemblies/RJW_Menstruation.dll index 5ceea9448d794dce3a5265410cd32396b109a520..d7c17c46afc6d3d0b78df557669cd45711f6c434 100644 GIT binary patch delta 8540 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 b{?9v4{mM-`!w!5U(YV4++q2h5%TV>-zY{uK diff --git a/Defs/HediffDef/Hediffs_Menstruation.xml b/Defs/HediffDef/Hediffs_Menstruation.xml index ce5973c..4638851 100644 --- a/Defs/HediffDef/Hediffs_Menstruation.xml +++ b/Defs/HediffDef/Hediffs_Menstruation.xml @@ -20,27 +20,27 @@
  • - 0.05 + 0.05
  • 0.2 - 0.1 + 0.1
  • 0.4 - 0.2 + 0.2
  • 0.6 - 0.4 + 0.4
  • - -0.1 + -0.1
  • diff --git a/source/RJW_Menstruation/RJW_Menstruation/HediffComp_Menstruation.cs b/source/RJW_Menstruation/RJW_Menstruation/HediffComp_Menstruation.cs index f344bfb..abf0909 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/HediffComp_Menstruation.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/HediffComp_Menstruation.cs @@ -545,7 +545,7 @@ namespace RJW_Menstruation bool pregnant = false; foreach(Egg egg in eggs) { - if (!egg.fertilized) continue; + if (egg.position < 24 || !egg.fertilized) continue; else if (Rand.Range(0.0f, 1.0f) <= Configurations.ImplantationChance * Props.baseImplantationChanceFactor * ImplantFactor * InterspeciesImplantFactor(egg.fertilizer)) { PregnancyHelper.PregnancyDecider(parent.pawn, egg.fertilizer); @@ -592,7 +592,8 @@ namespace RJW_Menstruation List deadeggs = new List(); foreach (Egg egg in eggs) { - egg.lifespanhrs--; + egg.lifespanhrs -= Configurations.CycleAcceleration; + egg.position += Configurations.CycleAcceleration; if (egg.lifespanhrs < 0) deadeggs.Add(egg); } @@ -639,20 +640,19 @@ namespace RJW_Menstruation { if (!eggs.NullOrEmpty()) { - if (FertilizationCheck()) - { - GoNextStage(Stage.Fertilized); - } + EggDecay(); + FertilizationCheck(); + if (Implant()) GoNextStage(Stage.Pregnant); else { - curStageHrs+=Configurations.CycleAcceleration; + curStageHrs += Configurations.CycleAcceleration; StayCurrentStage(); } } else if (curStageHrs <= lutealIntervalhours) { curStageHrs+=Configurations.CycleAcceleration; - StayCurrentStage(); + StayCurrentStage(); } else { @@ -668,6 +668,8 @@ namespace RJW_Menstruation { Hediff hediff = HediffMaker.MakeHediff(VariousDefOf.Hediff_MenstrualCramp, parent.pawn); hediff.Severity = crampPain * Rand.Range(0.9f, 1.1f); + HediffCompProperties_SeverityPerDay Prop = (HediffCompProperties_SeverityPerDay)hediff.TryGetComp().props; + Prop.severityPerDay = - hediff.Severity / (bleedingIntervalhours/24) * Configurations.CycleAcceleration; parent.pawn.health.AddHediff(hediff, Genital_Helper.get_genitalsBPR(parent.pawn)); } GoNextStage(Stage.Bleeding); @@ -691,7 +693,7 @@ namespace RJW_Menstruation } }; break; - case Stage.Fertilized: + case Stage.Fertilized: //Obsoleted stage. merged in luteal stage action = delegate { if (curStageHrs >= 24) @@ -750,7 +752,6 @@ namespace RJW_Menstruation action += () => { CumOut(); - if (!eggs.NullOrEmpty()) EggDecay(); }; actionref = action; @@ -833,12 +834,14 @@ namespace RJW_Menstruation public bool fertilized; public int lifespanhrs; public Pawn fertilizer; + public int position; public Egg() { fertilized = false; lifespanhrs = 96; fertilizer = null; + position = 0; } public Egg(int lifespanhrs) @@ -846,6 +849,7 @@ namespace RJW_Menstruation fertilized = false; this.lifespanhrs = lifespanhrs; fertilizer = null; + position = 0; } public void ExposeData() @@ -853,6 +857,7 @@ namespace RJW_Menstruation Scribe_References.Look(ref fertilizer, "fertilizer", true); Scribe_Values.Look(ref fertilized, "fertilized", fertilized, true); Scribe_Values.Look(ref lifespanhrs, "lifespanhrs", lifespanhrs, true); + Scribe_Values.Look(ref position, "position", position, true); } }