From 5517effaef299e12a37f01e4eb5408278ccac3be Mon Sep 17 00:00:00 2001
From: Anu <anulithic@gmail.com>
Date: Fri, 25 Aug 2023 00:30:07 -0700
Subject: [PATCH] Immortal Ovaries: basic PC framework

---
 src/data/backwardsCompatibility/datatypeCleanup.js | 4 +++-
 src/endWeek/nextWeek/nextWeek.js                   | 3 +++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/data/backwardsCompatibility/datatypeCleanup.js b/src/data/backwardsCompatibility/datatypeCleanup.js
index 83c7593f62c..81212ba109f 100644
--- a/src/data/backwardsCompatibility/datatypeCleanup.js
+++ b/src/data/backwardsCompatibility/datatypeCleanup.js
@@ -1197,7 +1197,9 @@ globalThis.PCDatatypeCleanup = (function PCDatatypeCleanup() {
 		}
 		PC.physicalAge = Math.clamp(+PC.physicalAge, 10, Infinity) || PC.actualAge;
 		PC.visualAge = Math.clamp(+PC.visualAge, 10, Infinity) || PC.actualAge;
-		PC.ovaryAge = Math.clamp(+PC.ovaryAge, 10, Infinity) || PC.physicalAge;
+		if (typeof PC.ovaryAge !== "number") { // immortalOvaries intentionally sets ovaryAge to a negative number, so treat it more leniently
+			PC.ovaryAge = PC.physicalAge;
+		}
 		if (V.playerAging !== 0) {
 			V.playerAging = Math.clamp(+V.playerAging, 0, 2) || 2;
 		}
diff --git a/src/endWeek/nextWeek/nextWeek.js b/src/endWeek/nextWeek/nextWeek.js
index f2d70e09ad2..4fcbd18817e 100644
--- a/src/endWeek/nextWeek/nextWeek.js
+++ b/src/endWeek/nextWeek/nextWeek.js
@@ -42,6 +42,9 @@ App.EndWeek.nextWeek = function() {
 				if (V.PC.physicalAge <= 20 && V.loliGrow > 0) {
 					App.EndWeek.Shared.physicalDevelopment(V.PC, true);
 				}
+				if ((V.PC.ovaries > 0 || V.PC.mpreg > 0) && V.PC.ovaryAge < 0) {
+					V.PC.ovaryAge = -100; // once PC can have immortal ovaries, this is where it takes effect
+				}
 				agePCEffects();
 			}
 		}
-- 
GitLab