From f5297d60a534bbc36a33fbac7ff31c190284db6e Mon Sep 17 00:00:00 2001
From: kopareigns <kopareigns@gmail.com>
Date: Sat, 9 Feb 2019 11:25:53 -0500
Subject: [PATCH] pubertyXX/XY fixes

---
 src/js/SlaveState.js         |  4 ++--
 src/js/assayJS.js            | 11 +++++++++++
 src/js/generateNewSlaveJS.js | 24 ------------------------
 3 files changed, 13 insertions(+), 26 deletions(-)

diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index 11531fc0a6a..6cc977e2afe 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -1930,13 +1930,13 @@ App.Entity.SlaveState = class SlaveState {
 		/** Has the slave gone through female puberty.
 		 *
 		 * 0: no; 1: yes */
-		this.pubertyXX = undefined;
+		this.pubertyXX = 0;
 		/** Target .physicalAge for male puberty to occur. */
 		this.pubertyAgeXY = 13;
 		/** Has the slave gone through male puberty.
 		 *
 		 * 0: no; 1: yes */
-		this.pubertyXY = undefined;
+		this.pubertyXY = 0;
 		/**
 		 * not fully implemented.
 		 * * 0: no scars
diff --git a/src/js/assayJS.js b/src/js/assayJS.js
index 62ea88d163a..80868bdbf88 100644
--- a/src/js/assayJS.js
+++ b/src/js/assayJS.js
@@ -349,6 +349,17 @@ window.newSlave = /** @param {App.Entity.SlaveState} slave */ function newSlave(
 		V.REReductionCheckinIDs.push(slave.ID);
 	}
 
+	if ((slave.ovaries === 1 || slave.mpreg === 1) && slave.physicalAge >= slave.pubertyAgeXX) {
+		slave.pubertyXX = 1;
+	} else {
+		slave.pubertyXX = 0;
+	}
+	if (slave.balls > 0 && slave.ballType !== "sterile" && slave.physicalAge >= slave.pubertyAgeXY) {
+		slave.pubertyXY = 1;
+	} else {
+		slave.pubertyXY = 0;
+	}
+
 	generatePronouns(slave);
 	SetBellySize(slave);
 	addSlave(slave);
diff --git a/src/js/generateNewSlaveJS.js b/src/js/generateNewSlaveJS.js
index f4dee9f0c0a..a10e638dbb4 100644
--- a/src/js/generateNewSlaveJS.js
+++ b/src/js/generateNewSlaveJS.js
@@ -69,7 +69,6 @@ window.GenerateNewSlave = (function(){
 
 	function GenerateXXSlave() {
 		slave.ovaries = 1;
-		slave.pubertyXY = 0;
 		slave.energy = jsRandom(1,85);
 
 		generateXXGeneticQuirks();
@@ -84,14 +83,12 @@ window.GenerateNewSlave = (function(){
 		generateXXTeeth();
 		generateXXMods();
 		generateXXBodyHair();
-		generateXXPuberty();
 	}
 
 	function GenerateXYSlave() {
 		slave.genes = "XY";
 		slave.hLength = 10;
 		slave.prostate = 1;
-		slave.pubertyXX = 0;
 		slave.energy = jsRandom(15,90);
 
 		generateXYGeneticQuirks();
@@ -107,7 +104,6 @@ window.GenerateNewSlave = (function(){
 		generateXYTeeth();
 		generateXYMods();
 		generateXYBodyHair();
-		generateXYPuberty();
 	}
 
 	function generateXXBodyProportions() {
@@ -1050,26 +1046,6 @@ window.GenerateNewSlave = (function(){
 		slave.eyebrowFullness = jsEither(["bushy", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "natural", "pencil-thin", "tapered", "tapered", "tapered", "thick", "thick", "thin", "thin", "threaded", "threaded", "threaded"]);
 	}
 
-	function generateXXPuberty() {
-		if (slave.physicalAge >= slave.pubertyAgeXX) {
-			slave.pubertyXX = 1;
-		} else {
-			slave.pubertyXX = 0;
-		}
-	}
-
-	function generateXYPuberty() {
-		if (slave.balls > 0) {
-			if (slave.physicalAge >= slave.pubertyAgeXY) {
-				slave.pubertyXY = 1;
-			} else {
-				slave.pubertyXY = 0;
-			}
-		} else {
-			slave.pubertyXY = 0;
-		}
-	}
-
 	function generateXXGeneticQuirks() {
 		chance = jsRandom(1,1000);
 		if (chance >= 980) {
-- 
GitLab