From bf328da0d1ee98be550a37f62ae9892f1b871fbb Mon Sep 17 00:00:00 2001
From: DCoded <dcoded@live.com>
Date: Wed, 10 Jun 2020 23:42:06 -0400
Subject: [PATCH] Replaced sentence strings with arrays, bugfix

---
 .../nursery/widgets/infants/infantSummary.js  |  9 +++--
 .../nursery/widgets/utils/nurseryUtils.js     | 39 ++++++++++---------
 2 files changed, 25 insertions(+), 23 deletions(-)

diff --git a/src/facilities/nursery/widgets/infants/infantSummary.js b/src/facilities/nursery/widgets/infants/infantSummary.js
index 0f6cf944540..c3dda62a306 100644
--- a/src/facilities/nursery/widgets/infants/infantSummary.js
+++ b/src/facilities/nursery/widgets/infants/infantSummary.js
@@ -1599,7 +1599,7 @@ App.Facilities.Nursery.InfantSummary = function(child) {
 
 	function shortExtendedFamily() {
 		const
-			{ daughter, sister } = getPronouns(slave);
+			{ daughter, sister } = getPronouns(child);
 
 		let
 			handled = 0,
@@ -1720,11 +1720,12 @@ App.Facilities.Nursery.InfantSummary = function(child) {
 	}
 
 	function longExtendedFamily() {
+		const
+			{ daughter, sister } = getPronouns(child);
+
 		let
 			handled = 0,
-			r = ``,
-			daughter = getPronouns(slave).daughter,
-			sister = getPronouns(slave).sister;
+			r = ``;
 
 		if (child.mother > 0) {
 			const _ssj = V.slaves.findIndex(function(s) {
diff --git a/src/facilities/nursery/widgets/utils/nurseryUtils.js b/src/facilities/nursery/widgets/utils/nurseryUtils.js
index 7e6c6c7c207..6afe2694e45 100644
--- a/src/facilities/nursery/widgets/utils/nurseryUtils.js
+++ b/src/facilities/nursery/widgets/utils/nurseryUtils.js
@@ -1,19 +1,19 @@
 /**
  * Displays a list of the children in the Nursery
- * @returns {string}
+ * @returns {DocumentFragment}
  */
 App.Facilities.Nursery.childList = function () {
 	const
+		frag = document.createDocumentFragment(),
 		cribs = V.cribs;
 
 	let
-		r = ``;
+		r = [];
 
-	for (let i = cribs.length; i--;) {
-		r += `<hr style="margin:0">`;
+	for (const child of cribs) {
+		r.push(`<hr style="margin:0">`);
 
 		const
-			child = cribs[i],
 			weeksOwned = V.week - child.weekAcquired,
 			weeksLeft = (V.targetAgeNursery * 52) - weeksOwned,
 			he = getPronouns(child).he,
@@ -21,37 +21,38 @@ App.Facilities.Nursery.childList = function () {
 			He = getPronouns(child).He;
 
 		if (child.actualAge < 3) {
-			r += App.UI.passageLink(`${SlaveFullName(child)}`, "Infant Interact", `$activeChild = $cribs[${i}]`);
-			r += App.Facilities.Nursery.InfantSummary(child);
+			r.push(App.UI.passageLink(`${SlaveFullName(child)}`, "Infant Interact", `${V.activeChild = child}`));
+			r.push(App.Facilities.Nursery.InfantSummary(child));
 		} else {
-			r += App.UI.passageLink(`${SlaveFullName(child)}`, "Child Interact", `$activeChild = $cribs[${i}]`);
-			r += App.Facilities.Nursery.ChildSummary(child);
+			r.push(App.UI.passageLink(`${SlaveFullName(child)}`, "Child Interact", `${V.activeChild = child}`));
+			r.push(App.Facilities.Nursery.ChildSummary(child));
 		}
 
 		if (child.actualAge >= 18) {
 			V.nurseryOldID = child.ID;
+
 			if (child.targetLocation === "freedom") {
 				V.freedSlaves.push(child);
 			}
-			V.readySlave = cribs.pluck([i], [i]);
-			r += `<<goto "Nursery Retrieval Workaround">>`;
+
+			V.readySlave = cribs.pluck();
+			r.push(`<<goto "Nursery Retrieval Workaround">>`);
 			return r;
 		}
 
 		if (child.growTime <= 0 || child.actualAge >= V.targetAgeNursery) {
-			r += `<br>`;
-			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">>`;	// FIXME: figure out why App.UI.passageLink doesn't work here
+			r.push(`<br>`);
+			r.push(`${He} is ready to leave ${V.nurseryName} and ${child.targetLocation === "slavery" ? `join your ménage` : `become a free citizen`}. `);
+			r.push(`<<link ${child.targetLocation === "slavery" ? `"Introduce ${him} to life as a slave"` : `"Set ${him} free"`} "Nursery Retrieval Workaround">>`);	// FIXME: figure out why App.UI.passageLink doesn't work here
 			V.readySlave = cribs[child];
-			r += `<</link>>`;
+			r.push(`<</link>>`);
 		} else {
-			r += `<br>`;
-			r += `${He} is to continue staying in ${V.nurseryName} for another ${years(weeksLeft)}.
-				${He} is destined for ${child.targetLocation} once ${he} is of age. `;
+			r.push(`<br>`);
+			r.push(`${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;
+	return r.join(' ');
 };
 
 /**
-- 
GitLab