Improve climacteric follicular

This commit is contained in:
lutepickle 2022-05-31 14:36:26 -07:00
parent bba7fd8dbb
commit 4ce0574e0b
2 changed files with 15 additions and 5 deletions

View file

@ -46,6 +46,7 @@ namespace RJW_Menstruation
if (curStageHrs >= FollicularIntervalHours) if (curStageHrs >= FollicularIntervalHours)
{ {
estrusflag = false; estrusflag = false;
lutealIntervalhours = PeriodRandomizer(lutealIntervalhours, Props.deviationFactor);
GoNextStage(Stage.Luteal); GoNextStage(Stage.Luteal);
} }
else else
@ -70,11 +71,23 @@ namespace RJW_Menstruation
else if (curStageHrs >= (follicularIntervalhours - bleedingIntervalhours) * CycleFactor) else if (curStageHrs >= (follicularIntervalhours - bleedingIntervalhours) * CycleFactor)
{ {
estrusflag = false; estrusflag = false;
lutealIntervalhours = PeriodRandomizer(lutealIntervalhours, Props.deviationFactor);
GoNextStage(Stage.ClimactericLuteal);
}
else if (ovarypower < OvaryPowerThreshold / 3 && Rand.Range(0.0f, 1.0f) < 0.2f) // Might randomly skip to luteal early)
{
estrusflag = false;
lutealIntervalhours = PeriodRandomizer(lutealIntervalhours, Props.deviationFactor * 6);
GoNextStage(Stage.ClimactericLuteal); GoNextStage(Stage.ClimactericLuteal);
} }
else else
{ {
curStageHrs += Configurations.CycleAcceleration; curStageHrs += Configurations.CycleAcceleration;
if (!estrusflag && curStageHrs > FollicularIntervalHours - Props.estrusDaysBeforeOvulation * 24)
{
estrusflag = true;
SetEstrus(Props.eggLifespanDays + Props.estrusDaysBeforeOvulation);
}
StayCurrentStage(); StayCurrentStage();
} }
} }
@ -85,10 +98,7 @@ namespace RJW_Menstruation
switch (curStage) switch (curStage)
{ {
case Stage.Follicular: case Stage.Follicular:
curStage = Stage.Ovulatory;
break;
case Stage.ClimactericFollicular: case Stage.ClimactericFollicular:
if(ovarypower >= OvaryPowerThreshold / 3 || Rand.Range(0.0f, 1.0f) > 0.2f) // chance to fail to induce
curStage = Stage.Ovulatory; curStage = Stage.Ovulatory;
break; break;
} }

View file

@ -1515,7 +1515,7 @@ namespace RJW_Menstruation
} }
else if (ovarypower < OvaryPowerThreshold / 3 && Rand.Range(0.0f, 1.0f) < 0.2f) //skips ovulatory else if (ovarypower < OvaryPowerThreshold / 3 && Rand.Range(0.0f, 1.0f) < 0.2f) //skips ovulatory
{ {
follicularIntervalhours = PeriodRandomizer(follicularIntervalhours, Props.deviationFactor * 6); lutealIntervalhours = PeriodRandomizer(lutealIntervalhours, Props.deviationFactor * 6);
GoNextStage(Stage.ClimactericLuteal); GoNextStage(Stage.ClimactericLuteal);
} }
else else