From f1c288bcfcc3c9ffe3475393e19a19a9936edd9a Mon Sep 17 00:00:00 2001
From: humungusluver <82497-humungusluver@users.noreply.gitgud.io>
Date: Thu, 20 Feb 2025 12:26:35 -0500
Subject: [PATCH] minor fixes and adjusments

---
 js/medicine/surgery/genitals/fertility.js | 3 +++
 js/medicine/surgery/genitals/sterilize.js | 6 ++++++
 src/endWeek/nextWeek/nextWeek.js          | 9 +++++----
 src/js/slaveSummaryWidgets.js             | 4 ++--
 4 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/js/medicine/surgery/genitals/fertility.js b/js/medicine/surgery/genitals/fertility.js
index e421107cee4..abb7ad5b1cb 100644
--- a/js/medicine/surgery/genitals/fertility.js
+++ b/js/medicine/surgery/genitals/fertility.js
@@ -38,6 +38,9 @@ App.Medicine.Surgery.Procedures.RestoreFertility = class extends App.Medicine.Su
 
 	apply(cheat) {
 		this._slave.preg = 0;
+		if (V.menstruation === 1) {
+			this._slave.fertPeak = 1;
+		}
 		return this._assemble(new App.Medicine.Surgery.Reactions.Fertility());
 	}
 };
diff --git a/js/medicine/surgery/genitals/sterilize.js b/js/medicine/surgery/genitals/sterilize.js
index 8e822bd5c09..52452311b8a 100644
--- a/js/medicine/surgery/genitals/sterilize.js
+++ b/js/medicine/surgery/genitals/sterilize.js
@@ -41,6 +41,9 @@ App.Medicine.Surgery.Procedures.Sterilize = class extends App.Medicine.Surgery.P
 
 	apply(cheat) {
 		this._slave.preg = -2;
+		if (V.menstruation === 1) {
+			this._slave.fertPeak = 1;
+		}
 		return this._assemble(new App.Medicine.Surgery.Reactions.Sterilize());
 	}
 };
@@ -58,6 +61,9 @@ App.Medicine.Surgery.Procedures.Oophorectomy = class extends App.Medicine.Surger
 		this._slave.ovaries = 0;
 		this._slave.ovaImplant = OvaryImplantType.NONE;
 		this._slave.wombImplant = "none";
+		if (V.menstruation === 1) {
+			this._slave.fertPeak = 1;
+		}
 		return this._assemble(new App.Medicine.Surgery.Reactions.Sterilize());
 	}
 };
diff --git a/src/endWeek/nextWeek/nextWeek.js b/src/endWeek/nextWeek/nextWeek.js
index 66a0c12e5e1..a686a853d0a 100644
--- a/src/endWeek/nextWeek/nextWeek.js
+++ b/src/endWeek/nextWeek/nextWeek.js
@@ -76,8 +76,8 @@ App.EndWeek.nextWeek = function() {
 		}
 	}
 	if (V.menstruation === 1) {
-		if (V.PC.preg < 0 || (!V.PC.ovaries && !V.PC.mpreg) || V.PC.pubertyXX === 0) {
-			// Handle contraceptives and sterility.
+		if (V.PC.preg < -1 || (!V.PC.ovaries && !V.PC.mpreg) || V.PC.pubertyXX === 0 || V.PC.ovaryAge >= 47) {
+			// Handle sterility. Contraceptives will still continue the cycle.
 			V.PC.fertPeak = 1;
 		} else if (V.PC.geneticQuirks.superfetation === 2) {
 			if (V.PC.womb.length > 0) {
@@ -92,7 +92,7 @@ App.EndWeek.nextWeek = function() {
 			V.PC.fertPeak = 2;
 		} else {
 			if (V.PC.fertPeak === 0) {
-				// Assume a standard 4 week cycle, 3 weeks fertile 1 week not.
+				// Assume a standard 4 week cycle
 				V.PC.fertPeak += 3;
 			} else if (V.PC.fertPeak > 0) {
 				V.PC.fertPeak--;
@@ -221,7 +221,8 @@ App.EndWeek.nextWeek = function() {
 			}
 		}
 		if (V.menstruation === 1) {
-			if (slave.preg < 0 || (!slave.ovaries && !slave.mpreg) || slave.pubertyXX === 0) {
+			if (slave.preg < -1 || (!slave.ovaries && !slave.mpreg) || slave.pubertyXX === 0 || slave.ovaryAge >= 47) {
+				// Handle sterility. Contraceptives will still continue the cycle.
 				slave.fertPeak = 1;
 			} else if (slave.geneticQuirks.superfetation === 2) {
 				// Handle Superfetation
diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js
index 8313043e1f2..98cef4072b6 100644
--- a/src/js/slaveSummaryWidgets.js
+++ b/src/js/slaveSummaryWidgets.js
@@ -235,7 +235,7 @@ App.UI.SlaveSummaryRenderers = function() {
 				makeSpan(c, "Postpartum", styles);
 			} else if (slave.preg === -1) {
 				makeSpan(c, "CC", styles);
-			} else if (V.menstruation === 1 && slave.fertPeak > 0 && slave.preg === 0) {
+			} else if (V.menstruation === 1 && slave.fertPeak > 0 && slave.preg === 0 && (slave.ovaries === 1 || slave.mpreg === 1)) {
 				makeSpan(c, "Safe", styles);
 			}  else if (slave.preg === 0 && (slave.ovaries === 1 || slave.mpreg === 1)) {
 				makeSpan(c, "Fert+", styles);
@@ -583,7 +583,7 @@ App.UI.SlaveSummaryRenderers = function() {
 				}
 			} else if (slave.preg === -1) {
 				makeSpan(c, "On contraceptives.", styles);
-			}  else if (V.menstruation === 1 && slave.fertPeak > 0 && slave.preg === 0) {
+			}  else if (V.menstruation === 1 && slave.fertPeak > 0 && slave.preg === 0 && (slave.ovaries === 1 || slave.mpreg === 1)) {
 				makeSpan(c, "Safe.", styles);
 			} else if (slave.preg === 0 && (slave.ovaries === 1 || slave.mpreg === 1)) {
 				makeSpan(c, "Fertile.", styles);
-- 
GitLab