From 38d5e24cbd2793fcc22bd93360345bb2ccfc2609 Mon Sep 17 00:00:00 2001
From: Blank_Alt <12406-Blank_Alt@users.noreply.gitgud.io>
Date: Wed, 4 May 2022 19:07:33 +0000
Subject: [PATCH] SlaveCareerStringification

---
 src/002-config/fc-version.js                  |   2 +-
 src/004-base/facility.js                      |   3 +-
 src/Mods/DinnerParty/dinnerPartyExecution.tw  |   2 +-
 .../backwardsCompatibility.js                 |   1 +
 .../updateSlaveObject.js                      |   1 +
 src/events/RESS/arcadeSadist.js               |  36 +--
 src/events/RESS/review/usedWhore.js           |   1 -
 src/interaction/sellSlave.js                  |  74 +++---
 src/js/SlaveState.js                          |   4 +-
 src/js/slaveCostJS.js                         |  78 +++----
 src/npc/children/ChildState.js                |   6 +-
 src/npc/descriptions/career.js                | 216 +++++++++---------
 12 files changed, 197 insertions(+), 227 deletions(-)

diff --git a/src/002-config/fc-version.js b/src/002-config/fc-version.js
index 68da110521d..25140c6fcde 100644
--- a/src/002-config/fc-version.js
+++ b/src/002-config/fc-version.js
@@ -2,5 +2,5 @@ App.Version = {
 	base: "0.10.7.1", // The vanilla version the mod is based off of, this should never be changed.
 	pmod: "4.0.0-alpha.14",
 	commitHash: null,
-	release: 1169, // When getting close to 2000, please remove the check located within the onLoad() function defined at line five of src/js/eventHandlers.js.
+	release: 1170, // When getting close to 2000, please remove the check located within the onLoad() function defined at line five of src/js/eventHandlers.js.
 };
diff --git a/src/004-base/facility.js b/src/004-base/facility.js
index 1063d5cd6f8..e5c54f0f896 100644
--- a/src/004-base/facility.js
+++ b/src/004-base/facility.js
@@ -207,8 +207,7 @@ App.Entity.Facilities.ManagingJob = class extends App.Entity.Facilities.Job {
 	 * @returns {boolean}
 	 */
 	slaveHasExperience(slave) {
-		return (this.desc.skill !== null && slave.skill[this.desc.skill] >= V.masteredXP) ||
-			(typeof slave.career === 'string' && this.desc.careers.includes(slave.career));
+		return (this.desc.skill && slave.skill[this.desc.skill] >= V.masteredXP) || (this.desc.careers.includes(slave.career));
 	}
 
 	/** @returns {App.Entity.SlaveState} */
diff --git a/src/Mods/DinnerParty/dinnerPartyExecution.tw b/src/Mods/DinnerParty/dinnerPartyExecution.tw
index a78bdb119d4..f923b0be5c5 100644
--- a/src/Mods/DinnerParty/dinnerPartyExecution.tw
+++ b/src/Mods/DinnerParty/dinnerPartyExecution.tw
@@ -555,7 +555,7 @@
 		<<set _slave.trust = -2>>
 		<<set _slave.oldDevotion = -20>>
 		<<set _slave.origin = "$He was once an arcology owner like yourself, who made the mistake of insulting you.">>
-		<<set _slave.career = 0>>
+		<<set _slave.career = "a slave">>
 		<<set _slave.prestige = 3>>
 		<<set _slave.prestigeDesc = "You stormed $his arcology, killed $his guards, and enslaved $him in revenge for insulting you at a dinner party.">>
 		<<run setHealth(_slave, 20, random(5, 15), 0, 0, 0)>>
diff --git a/src/data/backwardsCompatibility/backwardsCompatibility.js b/src/data/backwardsCompatibility/backwardsCompatibility.js
index 4b5b6d0372d..c104e5d782e 100644
--- a/src/data/backwardsCompatibility/backwardsCompatibility.js
+++ b/src/data/backwardsCompatibility/backwardsCompatibility.js
@@ -1687,6 +1687,7 @@ App.Update.arcologyLocation = function(node) {
 };
 
 App.Update.oldVersions = function(node) {
+	V.slaves.filter(s => s.career === 0).forEach(s => s.career = "a slave");
 	V.slaves.filter(s => s.origin === 0).forEach(s => s.origin = "");
 	if (V.releaseID === 1021 || V.releaseID === 1020 || V.releaseID === 1019 || V.releaseID === 2022) {
 		V.releaseID = 1022;
diff --git a/src/data/backwardsCompatibility/updateSlaveObject.js b/src/data/backwardsCompatibility/updateSlaveObject.js
index ef97357da7d..a88e58b40ab 100644
--- a/src/data/backwardsCompatibility/updateSlaveObject.js
+++ b/src/data/backwardsCompatibility/updateSlaveObject.js
@@ -4,6 +4,7 @@
  * @param {boolean} [genepool=false]
  */
 App.Update.Slave = function(slave, genepool = false) {
+	slave.career = slave.career || "a slave";
 	slave.origin = slave.origin || "";
 	const quirks = {};
 	App.Data.geneticQuirks.forEach((value, q) => quirks[q] = 0);
diff --git a/src/events/RESS/arcadeSadist.js b/src/events/RESS/arcadeSadist.js
index d589c641919..d0fe05d609d 100644
--- a/src/events/RESS/arcadeSadist.js
+++ b/src/events/RESS/arcadeSadist.js
@@ -29,6 +29,7 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven
 			He, he, his, him, himself, girl
 		} = getPronouns(eventSlave);
 		const {title: Master, say} = getEnunciation(eventSlave);
+		const hasSight = canSee(eventSlave);
 
 		let artDiv = document.createElement("div"); // named container so we can replace it later
 		App.Events.drawEventArt(artDiv, eventSlave);
@@ -104,12 +105,7 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven
 			} else {
 				r.push(`Once you've led ${him}`);
 			}
-			r.push(`in there, ${he} stops and`);
-			if (canSee(eventSlave)) {
-				r.push(`watches`);
-			} else {
-				r.push(`listens`);
-			}
+			r.push(`in there, ${he} stops and ${hasSight ? 'watches' : 'listens'}`);
 			if (V.PC.belly >= 100000 || V.PC.weight > 130) {
 				r.push(r.pop() + `as you struggle to join ${him} in the increasingly cramped space.`);
 			} else if (V.PC.belly >= 5000) {
@@ -198,12 +194,7 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven
 				} else {
 					r.push(`steadily pushing ${himself} along,`);
 				}
-				if (canSee(eventSlave)) {
-					r.push(`staring at`);
-				} else {
-					r.push(`facing`);
-				}
-				r.push(`you with a profound look of mixed <span class="trust inc">trust for your understanding of ${his} horrible sadism,</span> and deep unease that this is what truly gets ${him} off.`);
+				r.push(`${hasSight ? 'staring at' : 'facing'} you with a profound look of mixed <span class="trust inc">trust for your understanding of ${his} horrible sadism,</span> and deep unease that this is what truly gets ${him} off.`);
 				eventSlave.trust += 5;
 				return r;
 			}
@@ -217,19 +208,9 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven
 				App.Events.drawEventArt(artDiv, [eventSlave, randomArcadeSlave], [eventSlave.clothes, "no clothing"]);
 
 				r.push(`${He} seems to be focusing on the purely physical aspects of the degradation here. The true meaning of this place is so much more, and you decide to share it with ${him}. You call ${his} name, tearing ${his} attention away from the spectacle mere`);
-				if (V.showInches === 2) {
-					r.push(`inches`);
-				} else {
-					r.push(`centimeters`);
-				}
-				r.push(`over your heads, and`);
-				if (canSee(eventSlave)) {
-					r.push(`point`);
-				} else {
-					r.push(`direct ${him}`);
-				}
+				r.push(`${V.showInches === 2 ? 'inches' : 'centimeters'} over your heads, and ${hasSight ? 'point' : `direct ${him}`}`);
 				r.push(`to a particular slave. You tell ${eventSlave.slaveName} that this particular Arcade inmate's name is ${SlaveFullName(randomArcadeSlave)}.`);
-				if (randomArcadeSlave.career !== 0) {
+				if (randomArcadeSlave.career !== "a slave") {
 					r.push(`You tell ${him} that ${he2} is ${randomArcadeSlave.actualAge} years old, that ${he2} is ${randomArcadeSlave.nationality}, and that ${he2} was once ${convertCareer(randomArcadeSlave)}.`);
 				} else {
 					r.push(`You tell ${him} that ${he2} is ${randomArcadeSlave.actualAge} years old and ${randomArcadeSlave.nationality}.`);
@@ -251,12 +232,7 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven
 				} else {
 					r.push(`orgasming.`);
 				}
-				r.push(`${He} came without being touched. ${He}`);
-				if (canSee(eventSlave)) {
-					r.push(`stares at`);
-				} else {
-					r.push(`faces`);
-				}
+				r.push(`${He} came without being touched. ${He} ${hasSight ? 'stares at' : 'faces'}`);
 				r.push(`the mess ${he} made just by being in the presence of the arcology's <span class="devotion inc">undisputed preeminent sadist;</span> ${he} shudders at the sheer gothic glory of it. ${He} has a new moment to think of when ${he} feels like <span class="fetish inc">indulging ${his} own sadism.</span>`);
 				eventSlave.devotion += 5;
 				eventSlave.fetishStrength = Math.clamp(eventSlave.fetishStrength + 10, 0, 100);
diff --git a/src/events/RESS/review/usedWhore.js b/src/events/RESS/review/usedWhore.js
index dce40570926..90ef6cd54cb 100644
--- a/src/events/RESS/review/usedWhore.js
+++ b/src/events/RESS/review/usedWhore.js
@@ -416,7 +416,6 @@ App.Events.RESSUsedWhore = class RESSUsedWhore extends App.Events.BaseEvent {
 				case "a Futanari Sister":
 				case "a slave":
 				case "a slave since birth":
-				case 0:
 					r.push(`once upon a time.`);
 					break;
 				default:
diff --git a/src/interaction/sellSlave.js b/src/interaction/sellSlave.js
index 921528494d2..06ed5b232bf 100644
--- a/src/interaction/sellSlave.js
+++ b/src/interaction/sellSlave.js
@@ -315,44 +315,42 @@ App.Interact.sellSlave = function(slave) {
 				t.push(`${He} appears to be neotonic, which will turn off some but attract others. Overall should prove positive though.`);
 			}
 
-			if (slave.career !== 0) {
-				if (App.Data.Careers.Leader.bodyguard.includes(slave.career)) {
-					t.push(`${His} background would help make ${him} a good Bodyguard; that's valuable.`);
-				} else if (App.Data.Careers.Leader.wardeness.includes(slave.career)) {
-					t.push(`${His} background would help make ${him} a good Wardeness; that's valuable.`);
-				} else if (App.Data.Careers.Leader.attendant.includes(slave.career)) {
-					t.push(`${His} background would help make ${him} a good Attendant; that's valuable.`);
-				} else if (App.Data.Careers.Leader.nurse.includes(slave.career)) {
-					t.push(`${His} background would help make ${him} a good Nurse; that's valuable.`);
-				} else if (App.Data.Careers.Leader.matron.includes(slave.career)) {
-					t.push(`${His} background would help make ${him} a good Matron; that's valuable.`);
-				} else if (App.Data.Careers.Leader.schoolteacher.includes(slave.career)) {
-					t.push(`${His} background would help make ${him} a good Schoolteacher; that's valuable.`);
-				} else if (App.Data.Careers.Leader.stewardess.includes(slave.career)) {
-					t.push(`${His} background would help make ${him} a good Stewardess; that's valuable.`);
-				} else if (App.Data.Careers.Leader.milkmaid.includes(slave.career)) {
-					t.push(`${His} background would help make ${him} a good Milkmaid; that's valuable.`);
-				} else if (App.Data.Careers.Leader.farmer.includes(slave.career)) {
-					t.push(`${His} background would help make ${him} a good Farmer; that's valuable.`);
-				} else if (App.Data.Careers.Leader.madam.includes(slave.career)) {
-					t.push(`${His} background would help make ${him} a good Madam; that's valuable.`);
-				} else if (App.Data.Careers.Leader.DJ.includes(slave.career)) {
-					t.push(`${His} background would help make ${him} a good DJ; that's valuable.`);
-				} else if (App.Data.Careers.Leader.HG.includes(slave.career)) {
-					t.push(`${His} background would help make ${him} a good Head Girl; that's valuable.`);
-				} else if (App.Data.Careers.Leader.recruiter.includes(slave.career)) {
-					t.push(`${His} background would help make ${him} a good Recruiter; that's valuable.`);
-				} else if (App.Data.Careers.General.entertainment.includes(slave.career)) {
-					t.push(`${His} background should help ${his} flirting a little.`);
-				} else if (App.Data.Careers.General.whore.includes(slave.career)) {
-					t.push(`${His} background should help ${his} fucking a little.`);
-				} else if (App.Data.Careers.General.grateful.includes(slave.career)) {
-					t.push(`${His} background should make ${him} a bit more trusting.`);
-				} else if (App.Data.Careers.General.menial.includes(slave.career)) {
-					t.push(`${His} background should make ${him} a bit more tractable.`);
-				} else if (App.Data.Careers.General.servant.includes(slave.career)) {
-					t.push(`${His} background should make ${him} a good servant.`);
-				}
+			if (App.Data.Careers.Leader.bodyguard.includes(slave.career)) {
+				t.push(`${His} background would help make ${him} a good Bodyguard; that's valuable.`);
+			} else if (App.Data.Careers.Leader.wardeness.includes(slave.career)) {
+				t.push(`${His} background would help make ${him} a good Wardeness; that's valuable.`);
+			} else if (App.Data.Careers.Leader.attendant.includes(slave.career)) {
+				t.push(`${His} background would help make ${him} a good Attendant; that's valuable.`);
+			} else if (App.Data.Careers.Leader.nurse.includes(slave.career)) {
+				t.push(`${His} background would help make ${him} a good Nurse; that's valuable.`);
+			} else if (App.Data.Careers.Leader.matron.includes(slave.career)) {
+				t.push(`${His} background would help make ${him} a good Matron; that's valuable.`);
+			} else if (App.Data.Careers.Leader.schoolteacher.includes(slave.career)) {
+				t.push(`${His} background would help make ${him} a good Schoolteacher; that's valuable.`);
+			} else if (App.Data.Careers.Leader.stewardess.includes(slave.career)) {
+				t.push(`${His} background would help make ${him} a good Stewardess; that's valuable.`);
+			} else if (App.Data.Careers.Leader.milkmaid.includes(slave.career)) {
+				t.push(`${His} background would help make ${him} a good Milkmaid; that's valuable.`);
+			} else if (App.Data.Careers.Leader.farmer.includes(slave.career)) {
+				t.push(`${His} background would help make ${him} a good Farmer; that's valuable.`);
+			} else if (App.Data.Careers.Leader.madam.includes(slave.career)) {
+				t.push(`${His} background would help make ${him} a good Madam; that's valuable.`);
+			} else if (App.Data.Careers.Leader.DJ.includes(slave.career)) {
+				t.push(`${His} background would help make ${him} a good DJ; that's valuable.`);
+			} else if (App.Data.Careers.Leader.HG.includes(slave.career)) {
+				t.push(`${His} background would help make ${him} a good Head Girl; that's valuable.`);
+			} else if (App.Data.Careers.Leader.recruiter.includes(slave.career)) {
+				t.push(`${His} background would help make ${him} a good Recruiter; that's valuable.`);
+			} else if (App.Data.Careers.General.entertainment.includes(slave.career)) {
+				t.push(`${His} background should help ${his} flirting a little.`);
+			} else if (App.Data.Careers.General.whore.includes(slave.career)) {
+				t.push(`${His} background should help ${his} fucking a little.`);
+			} else if (App.Data.Careers.General.grateful.includes(slave.career)) {
+				t.push(`${His} background should make ${him} a bit more trusting.`);
+			} else if (App.Data.Careers.General.menial.includes(slave.career)) {
+				t.push(`${His} background should make ${him} a bit more tractable.`);
+			} else if (App.Data.Careers.General.servant.includes(slave.career)) {
+				t.push(`${His} background should make ${him} a good servant.`);
 			}
 			if ((V.week - slave.weekAcquired >= 20) && (slave.skill.entertainment >= 100)) {
 				if (!App.Data.Careers.General.entertainment.includes(slave.career)) {
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index 2591ca65494..4e4ffec6e55 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -613,8 +613,8 @@ App.Entity.SlaveState = class SlaveState {
 		 * @type {string} */
 		this.origin = "";
 		/** career prior to enslavement
-		 * @type {FC.Zeroable<string>} */
-		this.career = 0;
+		 * @type {string} */
+		this.career = "a slave";
 		/** slave's ID */
 		this.ID = 0;
 		/** slave's prestige */
diff --git a/src/js/slaveCostJS.js b/src/js/slaveCostJS.js
index 0553eceb285..fbf8596cb9b 100644
--- a/src/js/slaveCostJS.js
+++ b/src/js/slaveCostJS.js
@@ -2756,46 +2756,44 @@ globalThis.slaveCostBeauty = function(slave, isStartingSlave, followLaws, isSpec
 	 * @param {App.Entity.SlaveState} slave
 	 */
 	function calcCareersCost(slave) {
-		if (slave.career !== 0) {
-			if (slave.career === "a slave") {
-				updateMultiplier(`career`, 0.1);
-			} else if (App.Data.Careers.Leader.bodyguard.includes(slave.career)) {
-				updateMultiplier(`career`, 0.1);
-			} else if (App.Data.Careers.Leader.wardeness.includes(slave.career)) {
-				updateMultiplier(`career`, 0.1);
-			} else if (App.Data.Careers.Leader.attendant.includes(slave.career)) {
-				updateMultiplier(`career`, 0.1);
-			} else if (App.Data.Careers.Leader.nurse.includes(slave.career)) {
-				updateMultiplier(`career`, 0.1);
-			} else if (App.Data.Careers.Leader.matron.includes(slave.career)) {
-				updateMultiplier(`career`, 0.1);
-			} else if (App.Data.Careers.Leader.schoolteacher.includes(slave.career)) {
-				updateMultiplier(`career`, 0.1);
-			} else if (App.Data.Careers.Leader.stewardess.includes(slave.career)) {
-				updateMultiplier(`career`, 0.1);
-			} else if (App.Data.Careers.Leader.milkmaid.includes(slave.career)) {
-				updateMultiplier(`career`, 0.1);
-			} else if (App.Data.Careers.Leader.farmer.includes(slave.career)) {
-				updateMultiplier(`career`, 0.1);
-			} else if (App.Data.Careers.Leader.madam.includes(slave.career)) {
-				updateMultiplier(`career`, 0.1);
-			} else if (App.Data.Careers.Leader.DJ.includes(slave.career)) {
-				updateMultiplier(`career`, 0.1);
-			} else if (App.Data.Careers.Leader.HG.includes(slave.career)) {
-				updateMultiplier(`career`, 0.1);
-			} else if (App.Data.Careers.Leader.recruiter.includes(slave.career)) {
-				updateMultiplier(`career`, 0.1);
-			} else if (App.Data.Careers.General.entertainment.includes(slave.career)) {
-				updateMultiplier(`career`, 0.05);
-			} else if (App.Data.Careers.General.whore.includes(slave.career)) {
-				updateMultiplier(`career`, 0.05);
-			} else if (App.Data.Careers.General.grateful.includes(slave.career)) {
-				updateMultiplier(`career`, 0.05);
-			} else if (App.Data.Careers.General.menial.includes(slave.career)) {
-				updateMultiplier(`career`, 0.05);
-			} else if (App.Data.Careers.General.servant.includes(slave.career)) {
-				updateMultiplier(`career`, 0.05);
-			}
+		if (slave.career === "a slave") {
+			updateMultiplier(`career`, 0.1);
+		} else if (App.Data.Careers.Leader.bodyguard.includes(slave.career)) {
+			updateMultiplier(`career`, 0.1);
+		} else if (App.Data.Careers.Leader.wardeness.includes(slave.career)) {
+			updateMultiplier(`career`, 0.1);
+		} else if (App.Data.Careers.Leader.attendant.includes(slave.career)) {
+			updateMultiplier(`career`, 0.1);
+		} else if (App.Data.Careers.Leader.nurse.includes(slave.career)) {
+			updateMultiplier(`career`, 0.1);
+		} else if (App.Data.Careers.Leader.matron.includes(slave.career)) {
+			updateMultiplier(`career`, 0.1);
+		} else if (App.Data.Careers.Leader.schoolteacher.includes(slave.career)) {
+			updateMultiplier(`career`, 0.1);
+		} else if (App.Data.Careers.Leader.stewardess.includes(slave.career)) {
+			updateMultiplier(`career`, 0.1);
+		} else if (App.Data.Careers.Leader.milkmaid.includes(slave.career)) {
+			updateMultiplier(`career`, 0.1);
+		} else if (App.Data.Careers.Leader.farmer.includes(slave.career)) {
+			updateMultiplier(`career`, 0.1);
+		} else if (App.Data.Careers.Leader.madam.includes(slave.career)) {
+			updateMultiplier(`career`, 0.1);
+		} else if (App.Data.Careers.Leader.DJ.includes(slave.career)) {
+			updateMultiplier(`career`, 0.1);
+		} else if (App.Data.Careers.Leader.HG.includes(slave.career)) {
+			updateMultiplier(`career`, 0.1);
+		} else if (App.Data.Careers.Leader.recruiter.includes(slave.career)) {
+			updateMultiplier(`career`, 0.1);
+		} else if (App.Data.Careers.General.entertainment.includes(slave.career)) {
+			updateMultiplier(`career`, 0.05);
+		} else if (App.Data.Careers.General.whore.includes(slave.career)) {
+			updateMultiplier(`career`, 0.05);
+		} else if (App.Data.Careers.General.grateful.includes(slave.career)) {
+			updateMultiplier(`career`, 0.05);
+		} else if (App.Data.Careers.General.menial.includes(slave.career)) {
+			updateMultiplier(`career`, 0.05);
+		} else if (App.Data.Careers.General.servant.includes(slave.career)) {
+			updateMultiplier(`career`, 0.05);
 		}
 		if (V.week - slave.weekAcquired >= 20 && slave.skill.entertainment >= 100) {
 			if (!App.Data.Careers.General.entertainment.includes(slave.career)) {
diff --git a/src/npc/children/ChildState.js b/src/npc/children/ChildState.js
index 308179296ee..febdfae4c1a 100644
--- a/src/npc/children/ChildState.js
+++ b/src/npc/children/ChildState.js
@@ -24,11 +24,11 @@ App.Facilities.Nursery.ChildState = class ChildState {
 		 * _0: Obtained prior to game start / at game start_ */
 		this.weekAcquired = 0;
 		/** Child's origin
-		 * @type {FC.Zeroable<string>} */
+		 * @type {string} */
 		this.origin = "$He was born and raised in your arcology.";
 		/** Career prior to enslavement
-		 * @type {FC.Zeroable<string>} */
-		this.career = 0;
+		 * @type {string} */
+		this.career = "a slave";
 		/** Child's ID */
 		this.ID = 0;
 		/**
diff --git a/src/npc/descriptions/career.js b/src/npc/descriptions/career.js
index 692cda989f1..10bad3191c3 100644
--- a/src/npc/descriptions/career.js
+++ b/src/npc/descriptions/career.js
@@ -10,117 +10,115 @@ App.Desc.career = function(slave) {
 	const career = convertCareer(slave);
 
 	if (slave.fuckdoll === 0) {
-		if (slave.career !== 0) {
-			if (slave.career === "a slave") {
-				r.push(`${He} was a slave long before you obtained ${him}.`);
-			} else if (slave.career === "a slave since birth") {
-				r.push(`${He}'s been your slave ${his} entire life.`);
-			} else if (slave.career === "a meat toilet" || slave.career === "a cum dump") {
-				r.push(`${He} sees ${himself} as a cum receptacle.`);
-			} else if (slave.career === "a dairy cow") {
-				r.push(`${He}'s been broken into the belief that ${he} is nothing more than a cow to be milked and bred.`);
-			} else if (slave.career === "a breeding bull") {
-				r.push(`${He}'s been broken into the belief that ${he} is nothing more than a bull destined to fill fertile wombs with calves.`);
-			} else if (slave.career === "a breeder") {
-				r.push(`Before you obtained ${him}, ${he} was a breeding slave.`);
-			} else if (slave.career === "a bioreactor") {
-				r.push(`${He} has spent time as a cow in an industrial dairy, an experience that marked ${him} deeply.`);
-			} else {
-				r.push(`Before ${he} was a slave, ${he} was`);
-				if (App.Data.Careers.Leader.bodyguard.includes(slave.career)) {
-					r.push(`${career}, giving ${him} potential as a Bodyguard.`);
-				} else if (App.Data.Careers.Leader.wardeness.includes(slave.career)) {
-					r.push(`${career}, giving ${him} potential as a Wardeness for`);
-					if (V.cellblock === 0) {
-						r.push(`a Cellblock.`);
-					} else {
-						r.push(`${V.cellblockName}.`);
-					}
-				} else if (App.Data.Careers.Leader.attendant.includes(slave.career)) {
-					r.push(`${career}, giving ${him} potential as an Attendant for`);
-					if (V.spa === 0) {
-						r.push(`a Spa.`);
-					} else {
-						r.push(`${V.spaName}.`);
-					}
-				} else if (App.Data.Careers.Leader.matron.includes(slave.career)) {
-					r.push(`${career}, giving ${him} potential as a Matron for`);
-					if (V.nursery === 0 && V.nurseryNannies === 0) {
-						r.push(`a Nursery.`);
-					} else {
-						r.push(`${V.nurseryName}.`);
-					}
-				} else if (App.Data.Careers.Leader.nurse.includes(slave.career)) {
-					r.push(`${career}, giving ${him} potential as a Nurse for`);
-					if (V.clinic === 0) {
-						r.push(`a Clinic.`);
-					} else {
-						r.push(`${V.clinicName}.`);
-					}
-				} else if (App.Data.Careers.Leader.schoolteacher.includes(slave.career)) {
-					r.push(`${career}, giving ${him} potential as a Schoolteacher for`);
-					if (V.schoolroom === 0) {
-						r.push(`a Schoolroom.`);
-					} else {
-						r.push(`${V.schoolroomName}.`);
-					}
-				} else if (App.Data.Careers.Leader.stewardess.includes(slave.career)) {
-					r.push(`${career}, giving ${him} potential as a Stewardess for`);
-					if (V.servantsQuarters === 0) {
-						r.push(`a Servant's Quarters.`);
-					} else {
-						r.push(`${V.servantsQuartersName}.`);
-					}
-				} else if (App.Data.Careers.Leader.milkmaid.includes(slave.career)) {
-					r.push(`${career}, giving ${him} potential as a Milkmaid for`);
-					if (V.dairy === 0) {
-						r.push(`a Dairy.`);
-					} else {
-						r.push(`${V.dairyName}.`);
-					}
-				} else if (App.Data.Careers.Leader.farmer.includes(slave.career)) {
-					r.push(`${career}, giving ${him} potential as a Farmer for`);
-					if (V.farmyard === 0) {
-						r.push(`a Farmyard.`);
-					} else {
-						r.push(`${V.farmyardName}.`);
-					}
-				} else if (App.Data.Careers.Leader.madam.includes(slave.career)) {
-					r.push(`${career}, giving ${him} potential as a Madam for`);
-					if (V.brothel === 0) {
-						r.push(`a Brothel.`);
-					} else {
-						r.push(`${V.brothelName}.`);
-					}
-				} else if (App.Data.Careers.Leader.DJ.includes(slave.career)) {
-					r.push(`${career}, giving ${him} potential as a DJ for`);
-					if (V.club === 0) {
-						r.push(`a Club.`);
-					} else {
-						r.push(`${V.clubName}.`);
-					}
-				} else if (App.Data.Careers.Leader.HG.includes(slave.career)) {
-					r.push(`${career}, giving ${him} potential as a Head Girl.`);
-				} else if (App.Data.Careers.Leader.recruiter.includes(slave.career)) {
-					r.push(`${career}, giving ${him} potential as a recruiter.`);
-				} else if (App.Data.Careers.General.entertainment.includes(slave.career)) {
-					r.push(`${career}, giving ${him} a slight edge at entertainment.`);
-				} else if (App.Data.Careers.General.whore.includes(slave.career)) {
-					r.push(`${career}, giving ${him} a slight edge at sexual commerce.`);
-				} else if (App.Data.Careers.General.grateful.includes(slave.career)) {
-					r.push(`${career}, so ${he} can remember what it's like`);
-					if (slave.career === "prisoner") {
-						r.push(`no one looking out for you.`);
-					} else {
-						r.push(`to have the freedom to starve.`);
-					}
-				} else if (App.Data.Careers.General.menial.includes(slave.career)) {
-					r.push(`${career}, giving ${him} experience following orders.`);
-				} else if (App.Data.Careers.General.servant.includes(slave.career)) {
-					r.push(`${career}, giving ${him} a slight edge in housekeeping.`);
+		if (slave.career === "a slave") {
+			r.push(`${He} was a slave long before you obtained ${him}.`);
+		} else if (slave.career === "a slave since birth") {
+			r.push(`${He}'s been your slave ${his} entire life.`);
+		} else if (slave.career === "a meat toilet" || slave.career === "a cum dump") {
+			r.push(`${He} sees ${himself} as a cum receptacle.`);
+		} else if (slave.career === "a dairy cow") {
+			r.push(`${He}'s been broken into the belief that ${he} is nothing more than a cow to be milked and bred.`);
+		} else if (slave.career === "a breeding bull") {
+			r.push(`${He}'s been broken into the belief that ${he} is nothing more than a bull destined to fill fertile wombs with calves.`);
+		} else if (slave.career === "a breeder") {
+			r.push(`Before you obtained ${him}, ${he} was a breeding slave.`);
+		} else if (slave.career === "a bioreactor") {
+			r.push(`${He} has spent time as a cow in an industrial dairy, an experience that marked ${him} deeply.`);
+		} else {
+			r.push(`Before ${he} was a slave, ${he} was`);
+			if (App.Data.Careers.Leader.bodyguard.includes(slave.career)) {
+				r.push(`${career}, giving ${him} potential as a Bodyguard.`);
+			} else if (App.Data.Careers.Leader.wardeness.includes(slave.career)) {
+				r.push(`${career}, giving ${him} potential as a Wardeness for`);
+				if (V.cellblock === 0) {
+					r.push(`a Cellblock.`);
+				} else {
+					r.push(`${V.cellblockName}.`);
+				}
+			} else if (App.Data.Careers.Leader.attendant.includes(slave.career)) {
+				r.push(`${career}, giving ${him} potential as an Attendant for`);
+				if (V.spa === 0) {
+					r.push(`a Spa.`);
+				} else {
+					r.push(`${V.spaName}.`);
+				}
+			} else if (App.Data.Careers.Leader.matron.includes(slave.career)) {
+				r.push(`${career}, giving ${him} potential as a Matron for`);
+				if (V.nursery === 0 && V.nurseryNannies === 0) {
+					r.push(`a Nursery.`);
+				} else {
+					r.push(`${V.nurseryName}.`);
+				}
+			} else if (App.Data.Careers.Leader.nurse.includes(slave.career)) {
+				r.push(`${career}, giving ${him} potential as a Nurse for`);
+				if (V.clinic === 0) {
+					r.push(`a Clinic.`);
+				} else {
+					r.push(`${V.clinicName}.`);
+				}
+			} else if (App.Data.Careers.Leader.schoolteacher.includes(slave.career)) {
+				r.push(`${career}, giving ${him} potential as a Schoolteacher for`);
+				if (V.schoolroom === 0) {
+					r.push(`a Schoolroom.`);
+				} else {
+					r.push(`${V.schoolroomName}.`);
+				}
+			} else if (App.Data.Careers.Leader.stewardess.includes(slave.career)) {
+				r.push(`${career}, giving ${him} potential as a Stewardess for`);
+				if (V.servantsQuarters === 0) {
+					r.push(`a Servant's Quarters.`);
 				} else {
-					r.push(`${career}.`);
+					r.push(`${V.servantsQuartersName}.`);
 				}
+			} else if (App.Data.Careers.Leader.milkmaid.includes(slave.career)) {
+				r.push(`${career}, giving ${him} potential as a Milkmaid for`);
+				if (V.dairy === 0) {
+					r.push(`a Dairy.`);
+				} else {
+					r.push(`${V.dairyName}.`);
+				}
+			} else if (App.Data.Careers.Leader.farmer.includes(slave.career)) {
+				r.push(`${career}, giving ${him} potential as a Farmer for`);
+				if (V.farmyard === 0) {
+					r.push(`a Farmyard.`);
+				} else {
+					r.push(`${V.farmyardName}.`);
+				}
+			} else if (App.Data.Careers.Leader.madam.includes(slave.career)) {
+				r.push(`${career}, giving ${him} potential as a Madam for`);
+				if (V.brothel === 0) {
+					r.push(`a Brothel.`);
+				} else {
+					r.push(`${V.brothelName}.`);
+				}
+			} else if (App.Data.Careers.Leader.DJ.includes(slave.career)) {
+				r.push(`${career}, giving ${him} potential as a DJ for`);
+				if (V.club === 0) {
+					r.push(`a Club.`);
+				} else {
+					r.push(`${V.clubName}.`);
+				}
+			} else if (App.Data.Careers.Leader.HG.includes(slave.career)) {
+				r.push(`${career}, giving ${him} potential as a Head Girl.`);
+			} else if (App.Data.Careers.Leader.recruiter.includes(slave.career)) {
+				r.push(`${career}, giving ${him} potential as a recruiter.`);
+			} else if (App.Data.Careers.General.entertainment.includes(slave.career)) {
+				r.push(`${career}, giving ${him} a slight edge at entertainment.`);
+			} else if (App.Data.Careers.General.whore.includes(slave.career)) {
+				r.push(`${career}, giving ${him} a slight edge at sexual commerce.`);
+			} else if (App.Data.Careers.General.grateful.includes(slave.career)) {
+				r.push(`${career}, so ${he} can remember what it's like`);
+				if (slave.career === "prisoner") {
+					r.push(`no one looking out for you.`);
+				} else {
+					r.push(`to have the freedom to starve.`);
+				}
+			} else if (App.Data.Careers.General.menial.includes(slave.career)) {
+				r.push(`${career}, giving ${him} experience following orders.`);
+			} else if (App.Data.Careers.General.servant.includes(slave.career)) {
+				r.push(`${career}, giving ${him} a slight edge in housekeeping.`);
+			} else {
+				r.push(`${career}.`);
 			}
 		}
 		if (V.week - slave.weekAcquired >= 20 && slave.skill.entertainment >= 100) {
-- 
GitLab