mirror of
https://gitgud.io/lutepickle/rjw_menstruation.git
synced 2024-08-14 22:46:52 +00:00
Little refactor in PeriodRandomizer
This commit is contained in:
parent
5fbed7073a
commit
9d66be1e49
1 changed files with 5 additions and 3 deletions
|
@ -1854,18 +1854,20 @@ namespace RJW_Menstruation
|
|||
|
||||
protected int PeriodRandomizer(Stage stage)
|
||||
{
|
||||
float CycleSkew(float factor) => 1 + (cycleSpeed - 1) * factor;
|
||||
|
||||
float variabilityFactor = (EggHealth < 1.0f) ? 6.0f : 1.0f;
|
||||
// Most cycle lengthening or shortening occurs in the follicular phase, so weight towards that
|
||||
switch (stage)
|
||||
{
|
||||
case Stage.Follicular:
|
||||
return (int)(Utility.VariationRange(Props.follicularIntervalDays * GenDate.TicksPerDay, cycleVariability * 1.5f * variabilityFactor) / (1 + (cycleSpeed - 1) * 1.5f));
|
||||
return (int)(Utility.VariationRange(Props.follicularIntervalDays * GenDate.TicksPerDay, cycleVariability * 1.5f * variabilityFactor) / CycleSkew(1.5f));
|
||||
case Stage.Ovulatory:
|
||||
return Props.ovulationIntervalHours * GenDate.TicksPerHour; // No variability for now
|
||||
case Stage.Luteal:
|
||||
return (int)(Utility.VariationRange(Props.lutealIntervalDays * GenDate.TicksPerDay, cycleVariability * 0.5f * variabilityFactor) / (1 + (cycleSpeed - 1) * 0.5f));
|
||||
return (int)(Utility.VariationRange(Props.lutealIntervalDays * GenDate.TicksPerDay, cycleVariability * 0.5f * variabilityFactor) / CycleSkew(0.5f));
|
||||
case Stage.Bleeding:
|
||||
return (int)(Utility.VariationRange(Props.bleedingIntervalDays * GenDate.TicksPerDay, cycleVariability * 0.5f * variabilityFactor) / (1 + (cycleSpeed - 1) * 0.5f));
|
||||
return (int)(Utility.VariationRange(Props.bleedingIntervalDays * GenDate.TicksPerDay, cycleVariability * 0.5f * variabilityFactor) / CycleSkew(0.5f));
|
||||
case Stage.Recover:
|
||||
return (int)Utility.VariationRange(Props.recoveryIntervalDays * GenDate.TicksPerDay, 0.05f);
|
||||
case Stage.Pregnant:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue