mirror of
https://gitgud.io/lutepickle/rjw_menstruation.git
synced 2024-08-14 22:46:52 +00:00
Change OvaryPowerThreshold to better handle very long cycles. Also have climacteric severity use an InverseLerp.
This commit is contained in:
parent
f19494fd5a
commit
592fcad088
5 changed files with 19 additions and 3 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -137,7 +137,22 @@ namespace RJW_Menstruation
|
|||
{
|
||||
get
|
||||
{
|
||||
if (opcache < 0) opcache = (int)(72f * parent.pawn.def.race.lifeExpectancy / ThingDefOf.Human.race.lifeExpectancy);
|
||||
if (opcache >= 0) return opcache;
|
||||
// Climacteric will set in 6 (human) years before egg exhaustion
|
||||
float avglittersize;
|
||||
try
|
||||
{
|
||||
avglittersize = Mathf.Max(Rand.ByCurveAverage(parent.pawn.def.race.litterSizeCurve), 1.0f);
|
||||
}
|
||||
catch
|
||||
{
|
||||
// Any exceptions in that will have been reported elsewhere in the code by now
|
||||
avglittersize = 1.0f;
|
||||
};
|
||||
opcache = (int)(RaceCyclesPerYear() *
|
||||
avglittersize *
|
||||
6f *
|
||||
(parent.pawn.def.race.lifeExpectancy / ThingDefOf.Human.race.lifeExpectancy));
|
||||
return opcache;
|
||||
}
|
||||
}
|
||||
|
@ -1035,7 +1050,7 @@ namespace RJW_Menstruation
|
|||
else if (ovarypower < OvaryPowerThreshold)
|
||||
{
|
||||
Hediff hediff = HediffMaker.MakeHediff(VariousDefOf.Hediff_Climacteric, parent.pawn);
|
||||
hediff.Severity = 0.008f * (OvaryPowerThreshold - ovarypower);
|
||||
hediff.Severity = Mathf.InverseLerp(OvaryPowerThreshold, 0, ovarypower);
|
||||
parent.pawn.health.AddHediff(hediff, Genital_Helper.get_genitalsBPR(parent.pawn));
|
||||
}
|
||||
}
|
||||
|
@ -1391,7 +1406,7 @@ namespace RJW_Menstruation
|
|||
else if (Configurations.EnableMenopause && ovarypower < OvaryPowerThreshold)
|
||||
{
|
||||
Hediff hediff = HediffMaker.MakeHediff(VariousDefOf.Hediff_Climacteric, parent.pawn);
|
||||
hediff.Severity = 0.008f * i;
|
||||
hediff.Severity = Mathf.InverseLerp(OvaryPowerThreshold, 0, ovarypower);
|
||||
parent.pawn.health.AddHediff(hediff, Genital_Helper.get_genitalsBPR(parent.pawn));
|
||||
GoNextStage(Stage.ClimactericLuteal);
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ Version 1.0.7.1
|
|||
- Nipple size/transition system rewritten to be simpler under the hood. Should work with existing saves, but you might find sizes to be different, especially for very large or very small breasts.
|
||||
- Identical twins conceived after this update will have identical sex part sizes, properties, etc. upon being born.
|
||||
- Replaced HugsLib-based scheduler with normal ticking. This should reduce some 'phantom cycle' bugs.
|
||||
- Redone calculation to determine low eggs remaining. This should cause climacteric to be applied at a more appropriate time in the pawn's life, especially for those with very long cycles.
|
||||
- For modders:
|
||||
- The function Hediff_MultiplePregnancy.ProcessIdenticalSibling is called on every identical sibling when born except the first. Any race-specfic genetic properties can be patched in there.
|
||||
- Any mods that add comps to RJW parts should copy what they need to on a postfix to Hediff_MultiplePregnancy.CopyBodyPartProperties, e.g. how menstruation itself does in that function.
|
||||
|
|
Loading…
Reference in a new issue