diff --git a/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_InducedOvulator.cs b/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_InducedOvulator.cs index 08dcf50..d09eba9 100644 --- a/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_InducedOvulator.cs +++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_InducedOvulator.cs @@ -109,5 +109,10 @@ namespace RJW_Menstruation if (curStage == Stage.Luteal && !hadOvulatoryStage) return false; else return base.ShouldBeInEstrus(); } + + protected override float RandomOvulationChance() + { + return 0; + } } } 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 e5cfef8..7eba238 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 @@ -1917,10 +1917,16 @@ namespace RJW_Menstruation else return Rand.Range(0.6f, 1.0f); } + protected virtual float RandomOvulationChance() + { + return (float)Props.ovulationIntervalHours / GenDate.HoursPerDay; + } + protected Stage RandomStage() { Stage stage = Rand.ElementByWeight( Stage.Follicular, Props.follicularIntervalDays - Props.bleedingIntervalDays, + Stage.Ovulatory, RandomOvulationChance(), Stage.Luteal, Props.lutealIntervalDays, Stage.Bleeding, Props.bleedingIntervalDays); @@ -1929,6 +1935,9 @@ namespace RJW_Menstruation case Stage.Follicular: curStageTicks = Rand.Range(0, (Props.follicularIntervalDays - Props.bleedingIntervalDays) * GenDate.TicksPerDay); break; + case Stage.Ovulatory: + curStageTicks = Rand.Range(0, Props.ovulationIntervalHours * GenDate.TicksPerHour); + break; case Stage.Luteal: curStageTicks = Rand.Range(0, Props.lutealIntervalDays * GenDate.TicksPerDay); break;