From fa0cbd9b7d5a7cbb4be04a70911309fc36c20526 Mon Sep 17 00:00:00 2001
From: DCoded <dsoloha@live.com>
Date: Tue, 18 Jun 2019 10:25:56 -0400
Subject: [PATCH] Began adding options to the interact menus, fixed fatal flaw

---
 src/facilities/nursery/childInteract.tw       |  43 ++++--
 src/facilities/nursery/childrenReport.tw      |  87 +-----------
 src/facilities/nursery/infantInteract.tw      |  15 +++
 .../nursery/nurseryDatatypeCleanup.js         |  99 +++++++-------
 src/facilities/nursery/nurseryReport.tw       |  17 +--
 src/facilities/nursery/nurseryWidgets.js      | 124 +++++++++++++++---
 src/uncategorized/slaveAssignmentsReport.tw   |   1 +
 7 files changed, 204 insertions(+), 182 deletions(-)

diff --git a/src/facilities/nursery/childInteract.tw b/src/facilities/nursery/childInteract.tw
index 5bc8389b3d1..f304faa51f8 100644
--- a/src/facilities/nursery/childInteract.tw
+++ b/src/facilities/nursery/childInteract.tw
@@ -1789,25 +1789,42 @@ Typical reward: ''<span id="standardReward">$activeChild.standardReward</span>.'
 Relationship rules: ''<span id="relationshipRules">$activeChild.relationshipRules</span>.''
 <<link "Restrictive">>
 	<<set $activeChild.relationshipRules = "restrictive">>
-		<<replace "#relationshipRules">>
-			$activeChild.relationshipRules
-		<</replace>>
-	<</link>> |
+	<<replace "#relationshipRules">>
+		$activeChild.relationshipRules
+	<</replace>>
+<</link>> |
 <<link "Just friends">>
 	<<set $activeChild.relationshipRules = "just friends">>
-		<<replace "#relationshipRules">>
-			$activeChild.relationshipRules
-		<</replace>>
-	<</link>> |
+	<<replace "#relationshipRules">>
+		$activeChild.relationshipRules
+	<</replace>>
+<</link>> |
 <<link "Permissive">>
 	<<set $activeChild.relationshipRules = "permissive">>
-		<<replace "#relationshipRules">>
-			$activeChild.relationshipRules
-		<</replace>>
-	<</link>>
+	<<replace "#relationshipRules">>
+		$activeChild.relationshipRules
+	<</replace>>
+<</link>>
+
+<br>
+Target destination: <strong><span id="targetLocation">$activeChild.targetLocation</span></strong>
+<<link "Slavery">>
+	<<set $activeChild.targetLocation = "slavery">>
+	<<replace "#targetLocation">>
+		$activeChild.targetLocation
+	<</replace>>
+<</link>> |
+<<link "Freedom">>
+	<<set $activeChild.targetLocation = "freedom">>
+	<<replace "#targetLocation">>
+		$activeChild.targetLocation
+	<</replace>>
+<</link>>
+
+<br><br>
 
 /*|	<<link "Upload $him" "Upload Slave">><</link>>*/
-|	<<link "Export this slave" "Export Slave">><</link>>
+<<link "Export this slave" "Export Slave">><</link>>
 <<if $cheatMode>>
 	|	<<link "Import a slave" "Import Slave">><</link>>
 <</if>>
diff --git a/src/facilities/nursery/childrenReport.tw b/src/facilities/nursery/childrenReport.tw
index 89224786b08..ad6a9f11f99 100644
--- a/src/facilities/nursery/childrenReport.tw
+++ b/src/facilities/nursery/childrenReport.tw
@@ -1,88 +1,3 @@
 :: Children Report [nobr]
 
-<<set $nurserySlaves = 0>>
-
-<<for _nur = 0; _nur < $cribs.length; _nur++>>
-	<<set $cribs[_nur].birthWeek += 1>>
-	<<if $cribs[_nur].birthWeek >= 52>>
-		<<set $cribs[_nur].birthWeek = 0>>
-		<<if $seeAge == 1>>
-			<<set $cribs[_nur].actualAge++, $cribs[_nur].ovaryAge++>>
-		<</if>>
-	<</if>>
-	<<set $nurserySlaves += 1>>
-	<<if $cribs[_nur].growTime > 0>>
-		<<set $cribs[_nur].growTime -= 1>>
-		<br>@@.pink;<<print $cribs[_nur].slaveName>>@@ is growing steadily. $He <<if $cribs[_nur].growTime <= 0>>is @@.lime;ready for release.@@ $He will be ejected from $his crib upon your approach<<else>>will be ready for release in about <<print $cribs[_nur].growTime>> weeks<</if>>.
-	<<else>>
-		@@.pink;$cribs[_nur].slaveName@@ is @@.lime;ready for release.@@ $He will be removed from $nurseryName upon your approach.
-	<</if>>
-
-	<<if $nurseryWeight == 1>>
-		<br>
-		<<if $nurseryWeightSetting == 1>>
-			<<if $cribs[_nur].weight < 200>>
-				<<set $cribs[_nur].weight += 5>>
-			<</if>>
-			The weight monitoring systems are overloading $his intake causing @@.red;rapid weight gain.@@
-		<<elseif $nurseryWeightSetting == 2>>
-			<<if $cribs[_nur].weight > 10>>
-				<<set $cribs[_nur].weight -= 1>>
-				The weight monitoring systems detect $he is overweight and @@.green;decrease $his caloric intake.@@
-			<<elseif $cribs[_nur].weight < -10>>
-				<<set $cribs[_nur].weight += 1>>
-				The weight monitoring systems detect $he is underweight and @@.green;increase $his caloric intake.@@
-			<<else>>
-				$He is @@.lime;currently a healthy weight;@@ efforts will be made to maintain it.
-			<</if>>
-		<<elseif $nurseryWeightSetting == 0>>
-			<<if $cribs[_nur].weight > -100>>
-				$His developing body @@.red;quickly sheds its gained weight.@@
-				<<set $cribs[_nur].weight -= 40>>
-			<</if>>
-		<</if>>
-	<<else>>
-		<<if $cribs[_nur].weight > -100>>
-			$His developing body @@.red;quickly sheds its gained weight.@@
-			<<set $cribs[_nur].weight -= 40>>
-		<</if>>
-	<</if>>
-
-	<<if $nurseryMuscles == 1>>
-		<br>
-		<<if $nurseryMusclesSetting == 2>>
-			<<if $cribs[_nur].muscles < 100>>
-				<<set $cribs[_nur].muscles += 5>>
-			<</if>>
-			The strength monitoring systems are overloading $him with steroids causing @@.green;rapid muscle development.@@
-		<<elseif $nurseryMusclesSetting == 1>>
-			<<if $cribs[_nur].muscles > 10>>
-				<<set $cribs[_nur].muscles-->>
-				The strength monitoring systems detect $he is overly muscular and @@.green;decrease $his steroid dosage.@@
-			<<elseif $cribs[_nur].muscles < -10>>
-				<<set $cribs[_nur].muscles++>>
-				The strength monitoring systems detect $he is weak and @@.green;increase $his steroid dosage.@@
-			<<else>>
-				$He has @@.lime;a healthy musculature;@@ efforts will be made to maintain it.
-			<</if>>
-		<<elseif $nurseryMusclesSetting == 0>>
-			<<if $cribs[_nur].muscles > -100>>
-				$His developing body @@.red;quickly loses its gained muscle.@@
-				<<set $cribs[_nur].muscles -= 40>>
-			<</if>>
-		<</if>>
-	<<else>>
-		<<if $cribs[_nur].muscles > -100>>
-			$His developing body @@.red;quickly loses its gained muscle.@@
-			<<set $cribs[_nur].muscles -= 40>>
-		<</if>>
-	<</if>>
-<br>
-<</for>>
-/*
-<<if $nurserySlaves == 0>>
-$nurseryNameCaps is currently unused.
-<</if>>
-*/
-
-<br><br>
+<<run App.Facilities.Nursery.childrenReport>>
\ No newline at end of file
diff --git a/src/facilities/nursery/infantInteract.tw b/src/facilities/nursery/infantInteract.tw
index cb5931ae711..0d33efc49eb 100644
--- a/src/facilities/nursery/infantInteract.tw
+++ b/src/facilities/nursery/infantInteract.tw
@@ -47,3 +47,18 @@
 <<else>>
 	//[[Show descriptions|Infant Interact][$seeDetails = 1]]//
 <</if>>
+
+<br><br>
+Target destination: <strong><span id="targetLocation">$activeChild.targetLocation</span></strong>
+<<link "Slavery">>
+	<<set $activeChild.targetLocation = "slavery">>
+	<<replace "#targetLocation">>
+		$activeChild.targetLocation
+	<</replace>>
+<</link>> |
+<<link "Freedom">>
+	<<set $activeChild.targetLocation = "freedom">>
+	<<replace "#targetLocation">>
+		$activeChild.targetLocation
+	<</replace>>
+<</link>>
\ No newline at end of file
diff --git a/src/facilities/nursery/nurseryDatatypeCleanup.js b/src/facilities/nursery/nurseryDatatypeCleanup.js
index 0598db3c072..e3236ee1081 100644
--- a/src/facilities/nursery/nurseryDatatypeCleanup.js
+++ b/src/facilities/nursery/nurseryDatatypeCleanup.js
@@ -345,56 +345,55 @@ App.Facilities.Nursery.ChildDatatypeCleanup = function(child) {
 		child.curatives = Math.clamp(+child.curatives, 0, 2) || 0;
 	}
 
-	function childPornDatatypeCleanup(child) {
-		child.pornFeed = Math.clamp(+child.pornFeed, 0, 1) || 0;
-		child.pornFame = Math.max(+child.pornFame, 0) || 0;
-		child.pornFameSpending = Math.max(+child.pornFameSpending, 0) || 0;
-		child.pornPrestige = Math.clamp(+child.pornPrestige, 0, 3) || 0;
-		if (typeof child.pornPrestigeDesc !== "string") {
-			child.pornPrestigeDesc = 0;
-		}
-		if (typeof child.porn.fameType !== "string") {
-			child.porn.fameType = "none";
-		}
-		if (typeof child.porn.focus !== "string") {
-			child.porn.focus = "none";
-		}
-		child.porn.fame.general = Math.max(+child.porn.fame.general, 0) || 0;
-		child.porn.fame.fuckdoll = Math.max(+child.porn.fame.fuckdoll, 0) || 0;
-		child.porn.fame.rape = Math.max(+child.porn.fame.rape, 0) || 0;
-		child.porn.fame.preggo = Math.max(+child.porn.fame.preggo, 0) || 0;
-		child.porn.fame.BBW = Math.max(+child.porn.fame.BBW, 0) || 0;
-		child.porn.fame.gainer = Math.max(+child.porn.fame.gainer, 0) || 0;
-		child.porn.fame.stud = Math.max(+child.porn.fame.stud, 0) || 0;
-		child.porn.fame.loli = Math.max(+child.porn.fame.loli, 0) || 0;
-		child.porn.fame.deepThroat = Math.max(+child.porn.fame.deepThroat, 0) || 0;
-		child.porn.fame.struggleFuck = Math.max(+child.porn.fame.struggleFuck, 0) || 0;
-		child.porn.fame.painal = Math.max(+child.porn.fame.painal, 0) || 0;
-		child.porn.fame.tease = Math.max(+child.porn.fame.tease, 0) || 0;
-		child.porn.fame.romantic = Math.max(+child.porn.fame.romantic, 0) || 0;
-		child.porn.fame.pervert = Math.max(+child.porn.fame.pervert, 0) || 0;
-		child.porn.fame.caring = Math.max(+child.porn.fame.caring, 0) || 0;
-		child.porn.fame.unflinching = Math.max(+child.porn.fame.unflinching, 0) || 0;
-		child.porn.fame.sizeQueen = Math.max(+child.porn.fame.sizeQueen, 0) || 0;
-		child.porn.fame.neglectful = Math.max(+child.porn.fame.neglectful, 0) || 0;
-		child.porn.fame.cumAddict = Math.max(+child.porn.fame.cumAddict, 0) || 0;
-		child.porn.fame.analAddict = Math.max(+child.porn.fame.analAddict, 0) || 0;
-		child.porn.fame.attentionWhore = Math.max(+child.porn.fame.attentionWhore, 0) || 0;
-		child.porn.fame.breastGrowth = Math.max(+child.porn.fame.breastGrowth, 0) || 0;
-		child.porn.fame.abusive = Math.max(+child.porn.fame.abusive, 0) || 0;
-		child.porn.fame.malicious = Math.max(+child.porn.fame.malicious, 0) || 0;
-		child.porn.fame.selfHating = Math.max(+child.porn.fame.selfHating, 0) || 0;
-		child.porn.fame.breeder = Math.max(+child.porn.fame.breeder, 0) || 0;
-		child.porn.fame.sub = Math.max(+child.porn.fame.sub, 0) || 0;
-		child.porn.fame.cumSlut = Math.max(+child.porn.fame.cumSlut, 0) || 0;
-		child.porn.fame.anal = Math.max(+child.porn.fame.anal, 0) || 0;
-		child.porn.fame.humiliation = Math.max(+child.porn.fame.humiliation, 0) || 0;
-		child.porn.fame.boobs = Math.max(+child.porn.fame.boobs, 0) || 0;
-		child.porn.fame.dom = Math.max(+child.porn.fame.dom, 0) || 0;
-		child.porn.fame.sadist = Math.max(+child.porn.fame.sadist, 0) || 0;
-		child.porn.fame.masochist = Math.max(+child.porn.fame.masochist, 0) || 0;
-		child.porn.fame.pregnancy = Math.max(+child.porn.fame.pregnancy, 0) || 0;
-	}
+	// function childPornDatatypeCleanup(child) {
+	// 	child.pornFeed = Math.clamp(+child.pornFeed, 0, 1) || 0;
+	// 	child.pornFame = Math.max(+child.pornFame, 0) || 0;
+	// 	child.pornFameSpending = Math.max(+child.pornFameSpending, 0) || 0;
+	// 	child.pornPrestige = Math.clamp(+child.pornPrestige, 0, 3) || 0;
+	// 	if (typeof child.pornPrestigeDesc !== "string") {
+	// 		child.pornPrestigeDesc = 0;
+	// 	}
+	// 	if (typeof child.porn.fameType !== "string") {
+	// 		child.porn.fameType = "none";
+	// 	}
+	// 	if (typeof child.porn.focus !== "string") {
+	// 		child.porn.focus = "none";
+	// 	}
+	// child.porn.fame.general = Math.max(+child.porn.fame.general, 0) || 0;
+	// child.porn.fame.rape = Math.max(+child.porn.fame.rape, 0) || 0;
+	// child.porn.fame.preggo = Math.max(+child.porn.fame.preggo, 0) || 0;
+	// child.porn.fame.BBW = Math.max(+child.porn.fame.BBW, 0) || 0;
+	// child.porn.fame.gainer = Math.max(+child.porn.fame.gainer, 0) || 0;
+	// child.porn.fame.stud = Math.max(+child.porn.fame.stud, 0) || 0;
+	// child.porn.fame.loli = Math.max(+child.porn.fame.loli, 0) || 0;
+	// child.porn.fame.deepThroat = Math.max(+child.porn.fame.deepThroat, 0) || 0;
+	// child.porn.fame.struggleFuck = Math.max(+child.porn.fame.struggleFuck, 0) || 0;
+	// child.porn.fame.painal = Math.max(+child.porn.fame.painal, 0) || 0;
+	// child.porn.fame.tease = Math.max(+child.porn.fame.tease, 0) || 0;
+	// child.porn.fame.romantic = Math.max(+child.porn.fame.romantic, 0) || 0;
+	// child.porn.fame.pervert = Math.max(+child.porn.fame.pervert, 0) || 0;
+	// child.porn.fame.caring = Math.max(+child.porn.fame.caring, 0) || 0;
+	// child.porn.fame.unflinching = Math.max(+child.porn.fame.unflinching, 0) || 0;
+	// child.porn.fame.sizeQueen = Math.max(+child.porn.fame.sizeQueen, 0) || 0;
+	// child.porn.fame.neglectful = Math.max(+child.porn.fame.neglectful, 0) || 0;
+	// child.porn.fame.cumAddict = Math.max(+child.porn.fame.cumAddict, 0) || 0;
+	// child.porn.fame.analAddict = Math.max(+child.porn.fame.analAddict, 0) || 0;
+	// child.porn.fame.attentionWhore = Math.max(+child.porn.fame.attentionWhore, 0) || 0;
+	// child.porn.fame.breastGrowth = Math.max(+child.porn.fame.breastGrowth, 0) || 0;
+	// child.porn.fame.abusive = Math.max(+child.porn.fame.abusive, 0) || 0;
+	// child.porn.fame.malicious = Math.max(+child.porn.fame.malicious, 0) || 0;
+	// child.porn.fame.selfHating = Math.max(+child.porn.fame.selfHating, 0) || 0;
+	// child.porn.fame.breeder = Math.max(+child.porn.fame.breeder, 0) || 0;
+	// child.porn.fame.sub = Math.max(+child.porn.fame.sub, 0) || 0;
+	// child.porn.fame.cumSlut = Math.max(+child.porn.fame.cumSlut, 0) || 0;
+	// child.porn.fame.anal = Math.max(+child.porn.fame.anal, 0) || 0;
+	// child.porn.fame.humiliation = Math.max(+child.porn.fame.humiliation, 0) || 0;
+	// child.porn.fame.boobs = Math.max(+child.porn.fame.boobs, 0) || 0;
+	// child.porn.fame.dom = Math.max(+child.porn.fame.dom, 0) || 0;
+	// child.porn.fame.sadist = Math.max(+child.porn.fame.sadist, 0) || 0;
+	// child.porn.fame.masochist = Math.max(+child.porn.fame.masochist, 0) || 0;
+	// child.porn.fame.pregnancy = Math.max(+child.porn.fame.pregnancy, 0) || 0;
+	// }
 
 	function childRelationDatatypeCleanup(child) {
 		child.mother = +child.mother || 0;
diff --git a/src/facilities/nursery/nurseryReport.tw b/src/facilities/nursery/nurseryReport.tw
index 6eff7a1bc06..4f984daf228 100644
--- a/src/facilities/nursery/nurseryReport.tw
+++ b/src/facilities/nursery/nurseryReport.tw
@@ -1,6 +1,5 @@
 :: Nursery Report [nobr]
 
-/* TODO: add children in nursery to this */
 /* TODO: This will most likely still need some rewriting */
 <<SlaveIDSort $NurseryiIDs>>
 <<set _NL = $NurseryiIDs.length, $nurserySlaves = _NL, _SL = $slaves.length, _bonusToggle = 0, _healthBonus = 0, _idleBonus = 0, _trustBonus = 0>>
@@ -197,21 +196,7 @@
 		<</silently>>
 	<</if>>
 <</for>>
-/*
-<<if (_restedSlaves > 0)>>
-	<br><br>&nbsp;&nbsp;&nbsp;
-	<<if (_restedSlaves == 1)>>
-		One slave has rested until $he reached a state of @@.hotpink;devotion@@ and @@.mediumaquamarine;trust@@ and will leave the nursery before the end of the week.
-	<<else>>
-		_restedSlaves slaves have rested until they reached a state of @@.hotpink;devotion@@ and @@.mediumaquamarine;trust@@ and will leave the nursery before the end of the week.
-	<</if>>
-	<<if $nurseryDecoration != "standard">>
-		<br><br>&nbsp;&nbsp;&nbsp;&nbsp;$nurseryNameCaps's $nurseryDecoration atmosphere @@.hotpink;had an impact on <<if _restedSlaves == 1>>$him while $he was<<else>>them while they were<</if>>@@ working.
-	<</if>>
-<</if>>
-*/
+
 <<if _NL > 0 || $Matron != 0>>
 	<br><br>
 <</if>>
-
-<<include "Children Report">>
diff --git a/src/facilities/nursery/nurseryWidgets.js b/src/facilities/nursery/nurseryWidgets.js
index 962c313af3b..2aaa30f4e63 100644
--- a/src/facilities/nursery/nurseryWidgets.js
+++ b/src/facilities/nursery/nurseryWidgets.js
@@ -15520,19 +15520,16 @@ App.Facilities.Nursery.childList = function() {
 			He = capFirstChar(he);
 
 		if (child.actualAge < 3) {
-			r += `<<link "${SlaveFullName(child)}" "Infant Interact">>`;
-			V.activeChild = child;
-			r += `<</link>>`;
+			r += App.UI.passageLink(`${SlaveFullName(child)}`, "Infant Interact", `$activeChild = $cribs[${i}]`);
 			r += App.Facilities.Nursery.InfantSummary(child);
 		} else {
-			r += `<<link "${SlaveFullName(child)}" "Child Interact">>`;
-			V.activeChild = child;
-			r += `<</link>>`;
+			r += App.UI.passageLink(`${SlaveFullName(child)}`, "Child Interact", `$activeChild = $cribs[${i}]`);
 			r += App.Facilities.Nursery.ChildSummary(child);
 		}
 
 		if (child.actualAge >= 18) {
 			V.nurseryOldID = child.ID;
+			V.freedSlaves.push(cribs[i]);
 			V.readySlave = cribs.pluck([i], [i]);
 			r += `<<goto "Nursery Retrieval Workaround">>`;
 			return r;
@@ -15540,19 +15537,118 @@ App.Facilities.Nursery.childList = function() {
 
 		if (child.growTime <= 0) {
 			r += `<br>`;
-			r += `${He} is ready to leave ${V.nurseryName} and join your ménage. `;
-			r += `<<link "Introduce ${him} to life as a slave" "Nursery Retrieval Workaround">>`;
+			r += `${He} is ready to leave ${V.nurseryName} and ${child.targetLocation === "slavery" ? `join your ménage` : `become a free citizen`}. `;
+			r += `<<link ${child.targetLocation === "slavery" ? `"Introduce ${him} to life as a slave"` : `"Set ${him} free"`} "Nursery Retrieval Workaround">>`;
 			V.readySlave = cribs.pluck([i], [i]);
 			r += `<</link>>`;
 		} else {
 			r += `<br>`;
-			r += `${He} is to continue staying in ${V.nurseryName} for another ${years(weeksLeft)}. `;
+			r += `${He} is to continue staying in ${V.nurseryName} for another ${years(weeksLeft)}. 
+				${He} is destined for ${child.targetLocation} once ${he} is of age. `;
 		}
 	}
 
 	return r;
 };
 
+/**
+ * Details week-to-week changes in children in the Nursery
+ * @returns {string}
+ */
+App.Facilities.Nursery.childrenReport = function childrenReport() {
+	"use strict";
+
+	const
+		V = State.variables;
+
+	let
+		r = ``;
+
+	V.nurseryBabies = 0;
+
+	for (let i = 0; i < V.cribs.length; i++) {
+		const
+			child = V.cribs[i],
+		{
+			he, him, his, He, His
+		} = getPronouns(child);
+
+		child.birthWeek++;
+
+		if (child.birthWeek >= 52) {
+			child.birthWeek = 0;
+			if (V.seeAge) {
+				child.actualAge++, child.ovaryAge++;
+			}
+		}
+
+		if (child.growTime > 0) {
+			child.growTime--;
+			r += `<br><span class="pink">${child.slaveName}</span> is growing steadily. ${He} ${child.growTime <= 0 ? `is <span class="lime">ready for release.</span> ${He} will be ejected from ${his} crib upon your approach` : `will be ready for release in about ${child.growTime} weeks`}.`;
+		} else {
+			r += `<span class="pink">${child.slaveName}</span> is <span class="lime">ready for release.</span> ${He} will be removed from ${V.nurseryName} upon your approach.`;
+		}
+
+		// TODO: rework these entirely
+		if (V.nurseryWeight) {
+			r += `<br>`;
+			if (V.nurseryWeightSetting === 1) {
+				if (child.weight < 200) {
+					child.weight += 5;
+				}
+				r += `The weight monitoring systems are overloading ${his} intake causing <span class="red">rapid weight gain.</span> `;
+			} else if (V.nurseryWeightSetting === 2) {
+				if (child.weight > 10) {
+					child.weight--;
+					r += `The weight monitoring systems detect ${he} is overweight and <span class="green">decrease ${his} caloric intake.</span> `;
+				} else if (child.weight <= -10) {
+					child.weight++;
+					r += `The weight monitoring systems detect ${he} is underweight and <span class="green">increase ${his} caloric intake.</span> `;
+				} else {
+					r += `${He} is <span class="lime">currently a healthy weight;</span> efforts will be made to maintain it. `;
+				}
+			} else if (V.nurseryWeightSetting === 0) {
+				if (child.weight > -100) {
+					r += `${His} developing body <span class="red">quickly sheds its gained weight.</span> `;
+					child.weight -= 40;
+				}
+			}
+		} else {
+			if (child.weight > -100) {
+				child.weight -= 40;
+				r += `${His} developing body <span class="red">quickly sheds its gained weight.</span>`;
+			}
+		}
+
+		if (V.nurseryMuscles) {
+			r += `The strength monitoring systems are overloading ${him} with steroids causing <span class="green">rapid muscle development.</span> `;
+			if (V.nurseryMusclesSetting === 2) {
+				if (child.muscles < 100) {
+					child.muscles += 5;
+				}
+				r += `The strength monitoring systems detect ${he} is overly muscular and <span class="green">decrease ${his} steroid dosage.</span> `;
+			} else if (V.nurseryMusclesSetting === 1) {
+				if (child.muscles > 10) {
+					child.muscles--;
+					r += `The strength monitoring systems detect ${he} is weak and <span class="green">increase ${his} steroid dosage.</span> `;
+				} else if (child.muscles < -10) {
+					child.muscles++;
+					r += `${He} has <span class="lime">a healthy musculature;</span> efforts will be made to maintain it. `;
+				} else {
+					r += `${His} developing body <span class="red">quickly loses its gained muscle.</span> `;
+				}
+			} else if (V.nurseryMusclesSetting === 0) {
+				if (child.muscles > -100) {
+					child.muscles -= 40;
+					r += `${His} developing body <span class="red">quickly loses its gained muscle.</span> `;
+				}
+			}
+		}
+	}
+	r += `<br>`;
+	return r;
+};
+
 /**
  * Converts the infant object into a new child object
  * @param {object} child
@@ -16239,14 +16335,7 @@ App.Facilities.Nursery.newChild = function newChild(child) {
 		child.canRecruit = 0;
 	}
 
-	if (child.fuckdoll > 0) {
-		child.pronoun = "it";
-		child.possessivePronoun = "its";
-		child.possessive = "its";
-		child.object = "it";
-		child.objectReflexive = "itself";
-		child.noun = "toy";
-	} else if (child.dick > 0 && child.vagina === -1 && V.diversePronouns) {
+	if (child.dick > 0 && child.vagina === -1 && V.diversePronouns) {
 		child.pronoun = "he";
 		child.possessivePronoun = "his";
 		child.possessive = "his";
@@ -16262,6 +16351,7 @@ App.Facilities.Nursery.newChild = function newChild(child) {
 		child.noun = "girl";
 	}
 	child.origin = `${He} was born and raised in your arcology. `;
+	child.targetLocation = "slavery";
 	child.growTime = V.targetAgeNursery * 52;
 	V.cribs.push(child);
 	V.nurseryBabies++;
diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw
index 11699931175..c64459476dd 100644
--- a/src/uncategorized/slaveAssignmentsReport.tw
+++ b/src/uncategorized/slaveAssignmentsReport.tw
@@ -739,6 +739,7 @@ $NPCMarketShareLC = Math.trunc(($NPCSexSupply.lowerClass * 1000) / ($NPCSexSuppl
 	["Spa Report", $spaNameCaps, $spa, $spaSlaves, $Attendant, "Attendant"],
 	["Nursery Report", $nurseryNameCaps, $nurseryNannies, $nurserySlaves, $Matron, "Matron"],
 	["Servants' Quarters Report", $servantsQuartersNameCaps, $servantsQuarters, $servantsQuartersSlaves, $Stewardess, "Stewardess"],
+	["Children Report", "Children Report", $nurseryCribs, $nurseryBabies, -1, -1],
 	["Incubator Report", $incubatorNameCaps, $incubator, $incubatorSlaves, -1, -1],
 	["Master Suite Report", $masterSuiteNameCaps, $masterSuite, $masterSuiteSlaves, $Concubine, "Concubine"],
 	["Penthouse Report", "The Penthouse", 1, $slavesVisible, -1, -1],
-- 
GitLab