diff --git a/1.4/Assemblies/RJW_Menstruation.dll b/1.4/Assemblies/RJW_Menstruation.dll index 0621e5c..325db98 100644 Binary files a/1.4/Assemblies/RJW_Menstruation.dll and b/1.4/Assemblies/RJW_Menstruation.dll differ diff --git a/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Breast.cs b/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Breast.cs index b0d8b79..1d5eb60 100644 --- a/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Breast.cs +++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Breast.cs @@ -246,8 +246,14 @@ namespace RJW_Menstruation protected void CalculateBreastSize() { - // Scenario A: the youngest child is less than halfway into babyhood: Full size - if (ageOfLastBirth + BabyHalfAge * GenDate.TicksPerYear > Pawn.ageTracker.AgeBiologicalTicks) + // Ageless pawns can't depend on the chrono age, so just disable their growth entirely + if (Pawn.ageTracker.BiologicalTicksPerTick <= 0f && breastSizeIncreased > 0) + { + ShrinkBreasts(); + debugGrowthStatus = "Base size (ageless)"; + } + // The youngest child is less than halfway into babyhood: Full size + else if (ageOfLastBirth + BabyHalfAge * GenDate.TicksPerYear > Pawn.ageTracker.AgeBiologicalTicks) { debugGrowthStatus = "Full size due to young child"; if (breastSizeIncreased < MaxBreastIncrement) @@ -256,7 +262,7 @@ namespace RJW_Menstruation breastSizeIncreased = MaxBreastIncrement; } } - // Scenario B: Pregnant, grow in the second half of first trimester + // Pregnant, grow in the second half of first trimester else if (Pawn.IsRJWPregnant() || Pawn.IsBiotechPregnant()) { float pregnancySize = Mathf.InverseLerp(breastGrowthStart, breastGrowthEnd, Pawn.GetFarthestPregnancyProgress()) * MaxBreastIncrement; @@ -279,7 +285,7 @@ namespace RJW_Menstruation } else debugGrowthStatus = "Pregnant and full size"; } - // Scenario C: Not (or very early) pregnant and youngest child nonexistent or more than halfway into babyhood, time to shrink + // Not (or very early) pregnant and youngest child nonexistent or more than halfway into babyhood, time to shrink else if (breastSizeIncreased > 0) { debugGrowthStatus = "Shrinking due to no pregnancy nor young child"; @@ -291,7 +297,9 @@ namespace RJW_Menstruation protected void CalculateNipples() { float newNippleProgress; - if (ageOfLastBirth + BabyHalfAge * GenDate.TicksPerYear > Pawn.ageTracker.AgeBiologicalTicks) + if (Pawn.ageTracker.BiologicalTicksPerTick <= 0f) + newNippleProgress = 0f; + else if (ageOfLastBirth + BabyHalfAge * GenDate.TicksPerYear > Pawn.ageTracker.AgeBiologicalTicks) newNippleProgress = 1f; else if (Pawn.IsRJWPregnant() || Pawn.IsBiotechPregnant()) newNippleProgress = nippleTransitions.Evaluate(Pawn.GetFarthestPregnancyProgress()); diff --git a/changelogs.txt b/changelogs.txt index 237beb1..a798296 100644 --- a/changelogs.txt +++ b/changelogs.txt @@ -5,6 +5,7 @@ Version 1.0.8.5 - Some males will release small amounts of semen into a womb during vaginal sex before their actual ejaculation. - Babies born from multiple pregnancy will properly produce the prompt to name them. - Hopefully improve compatibility with xenotype inhertiance-altering mods for multiple pregnancy. + - Pawns that have stopped aging will no longer have larger breasts during and after pregnancy. - Experimental "periodic ovulator" cycle type, currently not used. See Patches/Hediffs_Private_Parts_Animal.xml. Version 1.0.8.4