From 5732bf387fb504d683a3249ca4ba1002a043e636 Mon Sep 17 00:00:00 2001
From: DCoded <dcoded@live.com>
Date: Wed, 8 Jul 2020 00:18:28 -0400
Subject: [PATCH] Moved farmyard shows section to new file

---
 src/endWeek/saWorkTheFarm.js                  | 354 +-----------------
 .../farmyard/shows/saFarmyardShows.js         | 353 +++++++++++++++++
 2 files changed, 357 insertions(+), 350 deletions(-)
 create mode 100644 src/facilities/farmyard/shows/saFarmyardShows.js

diff --git a/src/endWeek/saWorkTheFarm.js b/src/endWeek/saWorkTheFarm.js
index 15d3dac78e3..7bc68e538b7 100644
--- a/src/endWeek/saWorkTheFarm.js
+++ b/src/endWeek/saWorkTheFarm.js
@@ -8,11 +8,8 @@ App.SlaveAssignment.workTheFarm = function (slave) {
 	let frag = document.createDocumentFragment();
 
 	const
-		{ he, him, his, hers, He, His } = getPronouns(slave),
+		{ he, him, his, He, His } = getPronouns(slave),
 		incomeStats = getSlaveStatisticData(slave, V.facility.farmyard),
-		arcology = V.arcologies[0],
-		_beautiful = beautiful(slave),
-		_pretty = pretty(slave),
 
 		slaveApproves = () => sexualQuirks.includes(slave.sexualQuirk) || behavorialQuirks.includes(slave.behavioralQuirk) || fetishes.includes(slave.fetish);
 
@@ -26,7 +23,7 @@ App.SlaveAssignment.workTheFarm = function (slave) {
 
 
 	function fullReport(slave) {
-		const report = App.UI.appendNewElement("p", frag, '', "indent");
+		const report = App.UI.DOM.appendNewElement("p", frag, '', "indent");
 
 		let r = [];
 
@@ -199,350 +196,7 @@ App.SlaveAssignment.workTheFarm = function (slave) {
 	if (V.farmyardShows) {
 		const shows = App.UI.DOM.appendNewElement("p", frag, '', "indent");
 
-		let r = [];
-
-		incomeStats.income += App.Facilities.Farmyard.farmShowsIncome(slave);
-
-		r.push(`${He} also puts on shows with animals this week.`);
-
-		// Open FS Subsection
-
-		if (arcology.FSSupremacist !== "unset") {
-			if (isSuperiorRace(slave)) {
-				if (V.seeBestiality) {
-					r.push(`Since ${arcology.FSSupremacistRace} slaves are in fashion, ${he} attracts a little more attention than if ${he} wasn't ${arcology.FSSupremacistRace}.`);
-				} else {
-					r.push(`Society <span class="reputation dec">disapproves</span> of your allowing a member of the elite race to be degraded in such a fashion, and thus ${he} didn't earn as much.`);
-				}
-			}
-		}
-
-		if (arcology.FSSubjugationist !== "unset") {
-			if (isInferiorRace(slave)) {
-				if (V.seeBestiality) {
-					r.push(`Society <span class="reputation inc">approves</span> of the degradation you submit your ${arcology.FSSubjugationistRace} slaves to, and so ${he} earns you a bit more.`);
-				} else {
-					r.push(`Fewer people want to go see a ${arcology.FSSubjugationistRace} slave put on a show, and so ${he} doesn't earn as much as ${he} otherwise could.`);
-				}
-			} else {
-				r.push(`Society doesn't disapprove of ${him} not being ${arcology.FSSubjugationistRace}, but ${he} doesn't earn as much as ${he} would if ${he} was.`);
-			}
-		}
-
-		if (arcology.FSRepopulationFocus !== "unset") {
-			if (isPreg(slave)) {
-				if (slave.eggType !== "human") {
-					r.push(`Society is <span class="reputation dec">disgusted</span> by ${his} pregnancy when they realize that what it is in ${his} womb is not human.`);
-				} else {
-					r.push(`Society <span class="reputation inc">greatly approves</span> of your having pregnant slaves ${V.seeBestiality ? `have sex` : `put on shows`} with animals.`);
-				}
-			}
-		}
-
-		if (arcology.FSRestart !== "unset") {
-			if (isPreg(slave)) {
-				if (slave.eggType !== "human") {
-					r.push(`Society is disgusted by ${his} pregnancy until they learn that what is in ${his} womb is not human.`);
-				} else {
-					r.push(`Society is <span class="reputation dec">extremely disgusted</span> by ${his} pregnancy and the fact that you would have ${him} ${V.seeBestiality ? `have sex` : `put on shows`} with animals while sporting a baby bump.`);
-				}
-			}
-		}
-
-		if (arcology.FSGenderRadicalist !== "unset") {
-			if (slave.dick > 0) {
-				r.push(`${His} patrons <span class="reputation inc">approve</span> of the fact that ${he} has a dick.`);
-			} else {
-				r.push(`${His} patrons <span class="reputation dec">are disappointed</span> that ${he} doesn't have a dick.`);
-			}
-		}
-
-		if (arcology.FSGenderFundamentalist !== "unset") {
-			if (isPreg(slave) || setup.fakeBellies.includes(slave.bellyAccessory)) {
-				r.push(`${His} viewers <span class="reputation inc">approve</span> of the fact that ${he} is sporting a baby bump${setup.fakeBellies.includes(slave.bellyAccessory) ? `, even though ${hers} isn't real` : ``}.`);
-			} else {
-				r.push(`${His} viewers <span class="reputation dec">are disappointed</span> that ${he} isn't pregnant.`);
-			}
-		}
-
-		if (arcology.FSPaternalist !== "unset") {
-			if (V.seeBestiality && V.farmyardBreeding) {
-				r.push(`Your citizens are <span class="reputation dec">very disapproving</span> of the fact that you would allow something as degrading as having your slaves be knocked up by filthy beasts.`);
-			} else {
-				r.push(`Your citizens <span class="reputation dec">disapprove</span> of the fact that you would allow your slaves to be degraded in such a manner.`);
-			}
-		}
-
-		if (arcology.FSDegradationist !== "unset") {
-			if (V.seeBestiality && V.farmyardBreeding) {
-				r.push(`Your citizens are <span class="reputation inc">very approving</span> of the fact that you would allow something as degrading as having your slaves be knocked up by filthy beasts.`);
-			} else {
-				r.push(`Your citizens <span class="reputation inc">approve</span> of the fact that you would allow your slaves to be degraded in such a manner.`);
-			}
-		}
-
-		if (arcology.FSBodyPurist !== "unset") {
-			if (SlaveStatsChecker.isModded(slave)) {
-				r.push(`The members of the audience <span class="reputation dec">disapprove</span> that you would use a slave with such heavy modifications to put on shows.`);	//TODO: add checks for amount of modification (piercings, tats, etc)
-			}
-		}
-
-		if (arcology.FSTransformationFetishist !== "unset") {
-			if (SlaveStatsChecker.isModded(slave)) {
-				r.push(`The members of the audience <span class="reputation inc">approve</span> that you would use a slave with such heavy modifications to put on shows.`);	//TODO: add checks for amount of modification (piercings, tats, etc)
-			}
-		}
-
-		if (arcology.FSYouthPreferentialist !== "unset") {
-			if (isYoung(slave)) {
-				r.push(`${arcology.name}'s citizens <span class="reputation dec">disapprove</span> of your using such old slaves to put on shows.`);
-			} else {
-				r.push(`${arcology.name}'s citizens <span class="reputation inc">approve</span> of your using young slaves to put on shows.`);
-			}
-		}
-
-		if (arcology.FSMaturityPreferentialist !== "unset") {
-			if (isYoung(slave)) {
-				r.push(`${arcology.name}'s citizens <span class="reputation inc">approve</span> of your using mature slaves to put on shows.`);
-			} else {
-				r.push(`${arcology.name}'s citizens <span class="reputation dec">disapprove</span> of your using such young slaves to put on shows.`);
-			}
-		}
-
-		if (arcology.FSSlimnessEnthusiast !== "unset") {
-			if (!isSlim(slave)) {
-				r.push(`Society finds your using a slave with such a flabby body <span class="reputation dec">absolutely disgusting.</span>`);
-			}
-		}
-
-		if (arcology.FSAssetExpansionist !== "unset") {
-			if (!isSlim && genderLawPass(slave)) {
-				r.push(`Society <span class="reputation inc">approves</span> of the fact that you respect their ideals in using a larger slave.`);
-			}
-		}
-
-		if (arcology.FSPastoralist !== "unset") {
-			if (slave.boobs >= 1000) {
-				r.push(`The fact that ${slave.slaveName} has such large udders pleases your citizens.`);
-			}
-
-			if (slave.lactation > 0) {
-				r.push(`Your citizens ${slave.boobs >= 1000 ? `also ` : ``}approve of the fact that ${he} is visibly lactating.`);
-			}
-		}
-
-		if (arcology.FSPhysicalIdealist !== "unset") {
-			if (genderLawPass(slave)) {
-				r.push(`The fact that ${slave.slaveName} has what is considered the ideal form also helps ${him} attract attention, and so ${he} earns a bit more.`);
-			}
-		}
-
-		if (arcology.FSHedonisticDecadence !== "unset") {
-			if (slave.weight > 10) {
-				// TODO: write this
-			} else {
-				// TODO: write this
-			}
-		}
-
-		if (arcology.FSChattelReligionist !== "unset") {
-			if (slave.devotion <= 20) {
-				// TODO: write this
-			} else {
-				// TODO: write this
-			}
-		}
-
-		if (arcology.FSPetiteAdmiration !== "unset") {
-			if (heightPass(slave)) {
-				r.push(`The fact that you are using such small slaves <span class="reputation inc">pleases your citizens.</span>`);
-			} else {
-				r.push(`The fact that you are using such small slaves <span class="reputation dec">displeases your citizens.</span>`);
-			}
-		}
-
-		if (arcology.FSStatuesqueGlorification !== "unset") {
-			if (heightPass(slave)) {
-				r.push(`Your citizens <span class="reputation inc">approve</span> of your using such tall slaves for putting on shows.`);
-			} else {
-				r.push(`Your citizens <span class="reputation dec">disapprove</span> of your using such tall slaves for putting on shows.`);
-			}
-		}
-
-		// Close FS Subsection
-
-		if (setup.entertainmentCareers.includes(slave.career)) {
-			r.push(`${He} has experience with putting on shows from ${his} life before ${he} was a slave, making ${him} more effective at putting on shows.`);
-		}
-
-		if (setup.farmerCareers.includes(slave.career)) {
-			// TODO: write this
-		}
-
-		if (slave.prestige === 1) {
-			r.push(`Because some of your citizens already know of ${him}, ${he} earns more.`);
-		} else if (slave.prestige === 2) {
-			r.push(`Because a lot of your citizens already know of ${him}, ${he} earns quite a bit more.`);
-		} else if (slave.prestige === 3) {
-			r.push(`Because ${he} is so famous, ${he} earns a lot more then ${he} would otherwise.`);
-		}
-
-		if (slave.porn.prestige === 1) {
-			r.push(`${He} earns a bit more because some of your citizens already know ${him} from porn.`);
-		} else if (slave.porn.prestige === 2) {
-			r.push(`${He} earns quite a bit more because a lot of your citizens already know ${him} from porn.`);
-		} else if (slave.porn.prestige === 3) {
-			r.push(`${He} earns a lot more because ${he} is so famous from porn.`);
-		}
-
-		if (slave.health.condition > 20) {
-			r.push(`${He} is in such excellent health that ${he} is able to put on longer and more energetic shows, earning you more.`);
-		} else if (slave.health.condition < -20) {
-			r.push(`${His} poor health negatively affects ${his} ability to put on good shows, cutting into your profits.`);
-		}
-
-		if (slave.face > 40) {
-			r.push(`${He} is so ${_beautiful} that ${his} audience is willing to pay more to watch ${him} put on shows.`);
-		} else if (slave.face > 10) {
-			r.push(`${He} is so ${_pretty} that ${his} audience is willing to pay more to watch ${him} put on shows.`);
-		} else if (slave.face < -10) {
-			r.push(`${His} audience isn't willing to pay as much because of how unattractive ${his} face is.`);
-		} else if (slave.face < -40) {
-			r.push(`${His} audience isn't willing to pay as much because of how hard ${his} face is to look at.`);
-		}
-
-		// TODO: write this block with different combinations of trust / devotion
-		if (slave.devotion > 50) {
-			// TODO: write this
-		} else if (slave.devotion < -50) {
-			// TODO: write this
-		}
-
-		if (slave.trust > 50) {
-			// TODO: write this
-		} else if (slave.trust < -50) {
-			// TODO: write this
-		}
-
-		if (slave.weight > 30 && arcology.FSHedonisticDecadence === "unset") {
-			r.push(`Your citizens are not willing to pay as much to see such a fat slave put on shows, so ${he} loses some income.`);
-		} else if (slave.weight < -30) {
-			r.push(`Your citizens don't like watching such a sickly-looking slaves put on shows, so ${he} loses some income.`);
-		}
-
-		if (slave.muscles > 30) {
-			// TODO: write this - do we want something for muscles?
-		} else if (slave.muscles < -30) {
-			r.push(`${slave.slaveName} is so weak that ${he} cannot even properly handle the animals ${he}'s assigned to ${V.seeBestiality ? `fuck` : `work with`}, and isn't able to put on any sort of meaningful show.`);
-		}
-
-		if (!canSeePerfectly(slave)) {
-			r.push(`${His} ${!canSee(slave) ? `blindness makes it impossible` : `nearsightedness makes it harder`} for ${him} to see what ${he}'s doing, affecting ${his} ability to put on a good show.`);
-		}
-
-		if (slave.hears < 0) {
-			r.push(`${His} ${slave.hears < -1 ? `lack of` : `poor`} hearing makes it difficult for ${him} to hear what ${his} audience wants from ${him}, which really affects ${his} earnings.`);
-		}
-
-		if (isPreg(slave)) {
-			r.push(`${His}${slave.bellyPreg > 100000 ? ` advanced` : ``} pregnancy makes it more difficult for him to effectively put on a good show.`);
-		}
-
-		if (slave.health.tired > 60) {
-			r.push(`${He} is so tired that the energy in ${his} shows is basically nonexistent, affecting ${his} profits.`);
-		}
-
-		if (slave.intelligence > 50) {
-			// TODO: write this - include something about .intelligenceImplant?
-		} else if (slave.intelligence < -50) {
-			// TODO: write this
-		}
-
-		if (slave.energy <= 20) {
-			// TODO: write this
-		} else if (slave.energy <= 40) {
-			// TODO: write this
-		} else if (slave.energy <= 60) {
-			// TODO: write this
-		} else if (slave.energy <= 80) {
-			// TODO: write this
-		} else if (slave.energy <= 95) {
-			// TODO: write this
-		} else {
-			// TODO: write this
-		}
-
-		// TODO: add more to the fetishes and flaws / quirks
-		switch (slave.fetish) {
-			case "submissive":
-				if (V.seeBestiality) {
-					if (slave.fetishKnown) {
-						r.push(`${He} is so submissive that ${he} willingly accepts ${his} position as an animal's fucktoy and <span class="reputation inc">is able to put on a decent show</span>.`);
-					} else {
-						r.push(`${V.Headgirl ? `${V.Headgirl.slaveName} notices` : `You notice`} that ${slave.slaveName} seems to have really taken to ${his} position as a fucktoy for animals. <span class="lightcoral">${He}'s a submissive!</span>`);
-					}
-				} else {
-					if (slave.fetishKnown) {
-						r.push(`Being a submissive, ${he} <span class="reputation dec">doesn't have the confidence required</span> to really put on a good show.`);
-					} else {
-						r.push(`${slave.slaveName} doesn't seem to have the type of fortitude needed to put on a show, and after some probing, you discover why - it turns out <span class="lightcoral">${he}'s a submissive!</span>`);
-					}
-				}
-				break;
-
-			case "humiliation":
-				if (V.seeBestiality) {
-					if (slave.fetishKnown) {
-						r.push(`${slave.slaveName} uses the most of this humiliating experience to really put on a show, to <span class="reputation inc">the approval of ${his} audience</span>.`);
-					} else {
-						// TODO:
-					}
-				} else {
-					// TODO: not sure about this one
-				}
-				break;
-
-			default:
-				break;
-		}
-
-		switch (slave.behavioralFlaw) {
-			case "devout":
-				r.push(`${He} often prays ${V.seeBestiality ? ` while getting fucked by animals` : ` during ${his} shows`}, which your citizens <span class="reputation dec">find off-putting.</span>`);
-				break;
-
-			default:
-				break;
-		}
-
-		switch (slave.behavioralQuirk) {
-			case "sinful":
-				r.push(`${He} relishes in ${his} ability to do something so sinful and depraved, and <span class="reputation inc">really puts on a show.</span>`);
-				break;
-
-			default:
-				break;
-		}
-
-		switch (slave.sexualFlaw) {
-			case "shamefast":
-				r.push(`${His} crippling shamefastness <span class="reputation dec">limits ${his} ability</span> to put on a decent show.`);
-				break;
-
-			default:
-				break;
-		}
-
-		switch (slave.sexualQuirk) {
-			case "perverted":
-				r.push(`${His} shows are a <span class="reputation inc">real spectacle,</span> since ${he} is so perverted taht ${he} is willing to go far beyond the bare minimum.`);
-				break;
-
-			default:
-				break;
-		}
-
-		$(shows).append(r.join(' '));
+		$(shows).append(App.Facilities.Farmyard.putOnShows(slave));
 	}
 
 	// Close Shows
@@ -550,7 +204,7 @@ App.SlaveAssignment.workTheFarm = function (slave) {
 	// Open Long-Term Effects
 
 	function longTermEffects(slave) {
-		const longTermEffects = App.UI.appendNewElement("p", frag, '', "indent");
+		const longTermEffects = App.UI.DOM.appendNewElement("p", frag, '', "indent");
 
 		let r = [];
 
diff --git a/src/facilities/farmyard/shows/saFarmyardShows.js b/src/facilities/farmyard/shows/saFarmyardShows.js
new file mode 100644
index 00000000000..914d6c110c4
--- /dev/null
+++ b/src/facilities/farmyard/shows/saFarmyardShows.js
@@ -0,0 +1,353 @@
+App.Facilities.Farmyard.putOnShows = function (slave) {
+	const
+		{ he, him, his, hers, He, His } = getPronouns(slave),
+		incomeStats = getSlaveStatisticData(slave, V.facility.farmyard),
+		arcology = V.arcologies[0],
+		_beautiful = beautiful(slave),
+		_pretty = pretty(slave);
+
+	let r = [];
+
+	incomeStats.income += App.Facilities.Farmyard.farmShowsIncome(slave);
+
+	r.push(`${He} also puts on shows with animals this week.`);
+
+	// Open FS Subsection
+
+	if (arcology.FSSupremacist !== "unset") {
+		if (isSuperiorRace(slave)) {
+			if (V.seeBestiality) {
+				r.push(`Since ${arcology.FSSupremacistRace} slaves are in fashion, ${he} attracts a little more attention than if ${he} wasn't ${arcology.FSSupremacistRace}.`);
+			} else {
+				r.push(`Society <span class="reputation dec">disapproves</span> of your allowing a member of the elite race to be degraded in such a fashion, and thus ${he} didn't earn as much.`);
+			}
+		}
+	}
+
+	if (arcology.FSSubjugationist !== "unset") {
+		if (isInferiorRace(slave)) {
+			if (V.seeBestiality) {
+				r.push(`Society <span class="reputation inc">approves</span> of the degradation you submit your ${arcology.FSSubjugationistRace} slaves to, and so ${he} earns you a bit more.`);
+			} else {
+				r.push(`Fewer people want to go see a ${arcology.FSSubjugationistRace} slave put on a show, and so ${he} doesn't earn as much as ${he} otherwise could.`);
+			}
+		} else {
+			r.push(`Society doesn't disapprove of ${him} not being ${arcology.FSSubjugationistRace}, but ${he} doesn't earn as much as ${he} would if ${he} was.`);
+		}
+	}
+
+	if (arcology.FSRepopulationFocus !== "unset") {
+		if (isPreg(slave)) {
+			if (slave.eggType !== "human") {
+				r.push(`Society is <span class="reputation dec">disgusted</span> by ${his} pregnancy when they realize that what it is in ${his} womb is not human.`);
+			} else {
+				r.push(`Society <span class="reputation inc">greatly approves</span> of your having pregnant slaves ${V.seeBestiality ? `have sex` : `put on shows`} with animals.`);
+			}
+		}
+	}
+
+	if (arcology.FSRestart !== "unset") {
+		if (isPreg(slave)) {
+			if (slave.eggType !== "human") {
+				r.push(`Society is disgusted by ${his} pregnancy until they learn that what is in ${his} womb is not human.`);
+			} else {
+				r.push(`Society is <span class="reputation dec">extremely disgusted</span> by ${his} pregnancy and the fact that you would have ${him} ${V.seeBestiality ? `have sex` : `put on shows`} with animals while sporting a baby bump.`);
+			}
+		}
+	}
+
+	if (arcology.FSGenderRadicalist !== "unset") {
+		if (slave.dick > 0) {
+			r.push(`${His} patrons <span class="reputation inc">approve</span> of the fact that ${he} has a dick.`);
+		} else {
+			r.push(`${His} patrons <span class="reputation dec">are disappointed</span> that ${he} doesn't have a dick.`);
+		}
+	}
+
+	if (arcology.FSGenderFundamentalist !== "unset") {
+		if (isPreg(slave) || setup.fakeBellies.includes(slave.bellyAccessory)) {
+			r.push(`${His} viewers <span class="reputation inc">approve</span> of the fact that ${he} is sporting a baby bump${setup.fakeBellies.includes(slave.bellyAccessory) ? `, even though ${hers} isn't real` : ``}.`);
+		} else {
+			r.push(`${His} viewers <span class="reputation dec">are disappointed</span> that ${he} isn't pregnant.`);
+		}
+	}
+
+	if (arcology.FSPaternalist !== "unset") {
+		if (V.seeBestiality && V.farmyardBreeding) {
+			r.push(`Your citizens are <span class="reputation dec">very disapproving</span> of the fact that you would allow something as degrading as having your slaves be knocked up by filthy beasts.`);
+		} else {
+			r.push(`Your citizens <span class="reputation dec">disapprove</span> of the fact that you would allow your slaves to be degraded in such a manner.`);
+		}
+	}
+
+	if (arcology.FSDegradationist !== "unset") {
+		if (V.seeBestiality && V.farmyardBreeding) {
+			r.push(`Your citizens are <span class="reputation inc">very approving</span> of the fact that you would allow something as degrading as having your slaves be knocked up by filthy beasts.`);
+		} else {
+			r.push(`Your citizens <span class="reputation inc">approve</span> of the fact that you would allow your slaves to be degraded in such a manner.`);
+		}
+	}
+
+	if (arcology.FSBodyPurist !== "unset") {
+		if (SlaveStatsChecker.isModded(slave)) {
+			r.push(`The members of the audience <span class="reputation dec">disapprove</span> that you would use a slave with such heavy modifications to put on shows.`);	//TODO: add checks for amount of modification (piercings, tats, etc)
+		}
+	}
+
+	if (arcology.FSTransformationFetishist !== "unset") {
+		if (SlaveStatsChecker.isModded(slave)) {
+			r.push(`The members of the audience <span class="reputation inc">approve</span> that you would use a slave with such heavy modifications to put on shows.`);	//TODO: add checks for amount of modification (piercings, tats, etc)
+		}
+	}
+
+	if (arcology.FSYouthPreferentialist !== "unset") {
+		if (isYoung(slave)) {
+			r.push(`${arcology.name}'s citizens <span class="reputation dec">disapprove</span> of your using such old slaves to put on shows.`);
+		} else {
+			r.push(`${arcology.name}'s citizens <span class="reputation inc">approve</span> of your using young slaves to put on shows.`);
+		}
+	}
+
+	if (arcology.FSMaturityPreferentialist !== "unset") {
+		if (isYoung(slave)) {
+			r.push(`${arcology.name}'s citizens <span class="reputation inc">approve</span> of your using mature slaves to put on shows.`);
+		} else {
+			r.push(`${arcology.name}'s citizens <span class="reputation dec">disapprove</span> of your using such young slaves to put on shows.`);
+		}
+	}
+
+	if (arcology.FSSlimnessEnthusiast !== "unset") {
+		if (!isSlim(slave)) {
+			r.push(`Society finds your using a slave with such a flabby body <span class="reputation dec">absolutely disgusting.</span>`);
+		}
+	}
+
+	if (arcology.FSAssetExpansionist !== "unset") {
+		if (!isSlim && genderLawPass(slave)) {
+			r.push(`Society <span class="reputation inc">approves</span> of the fact that you respect their ideals in using a larger slave.`);
+		}
+	}
+
+	if (arcology.FSPastoralist !== "unset") {
+		if (slave.boobs >= 1000) {
+			r.push(`The fact that ${slave.slaveName} has such large udders pleases your citizens.`);
+		}
+
+		if (slave.lactation > 0) {
+			r.push(`Your citizens ${slave.boobs >= 1000 ? `also ` : ``}approve of the fact that ${he} is visibly lactating.`);
+		}
+	}
+
+	if (arcology.FSPhysicalIdealist !== "unset") {
+		if (genderLawPass(slave)) {
+			r.push(`The fact that ${slave.slaveName} has what is considered the ideal form also helps ${him} attract attention, and so ${he} earns a bit more.`);
+		}
+	}
+
+	if (arcology.FSHedonisticDecadence !== "unset") {
+		if (slave.weight > 10) {
+			// TODO: write this
+		} else {
+			// TODO: write this
+		}
+	}
+
+	if (arcology.FSChattelReligionist !== "unset") {
+		if (slave.devotion <= 20) {
+			// TODO: write this
+		} else {
+			// TODO: write this
+		}
+	}
+
+	if (arcology.FSPetiteAdmiration !== "unset") {
+		if (heightPass(slave)) {
+			r.push(`The fact that you are using such small slaves <span class="reputation inc">pleases your citizens.</span>`);
+		} else {
+			r.push(`The fact that you are using such small slaves <span class="reputation dec">displeases your citizens.</span>`);
+		}
+	}
+
+	if (arcology.FSStatuesqueGlorification !== "unset") {
+		if (heightPass(slave)) {
+			r.push(`Your citizens <span class="reputation inc">approve</span> of your using such tall slaves for putting on shows.`);
+		} else {
+			r.push(`Your citizens <span class="reputation dec">disapprove</span> of your using such tall slaves for putting on shows.`);
+		}
+	}
+
+	// Close FS Subsection
+
+	if (setup.entertainmentCareers.includes(slave.career)) {
+		r.push(`${He} has experience with putting on shows from ${his} life before ${he} was a slave, making ${him} more effective at putting on shows.`);
+	}
+
+	if (setup.farmerCareers.includes(slave.career)) {
+		// TODO: write this
+	}
+
+	if (slave.prestige === 1) {
+		r.push(`Because some of your citizens already know of ${him}, ${he} earns more.`);
+	} else if (slave.prestige === 2) {
+		r.push(`Because a lot of your citizens already know of ${him}, ${he} earns quite a bit more.`);
+	} else if (slave.prestige === 3) {
+		r.push(`Because ${he} is so famous, ${he} earns a lot more then ${he} would otherwise.`);
+	}
+
+	if (slave.porn.prestige === 1) {
+		r.push(`${He} earns a bit more because some of your citizens already know ${him} from porn.`);
+	} else if (slave.porn.prestige === 2) {
+		r.push(`${He} earns quite a bit more because a lot of your citizens already know ${him} from porn.`);
+	} else if (slave.porn.prestige === 3) {
+		r.push(`${He} earns a lot more because ${he} is so famous from porn.`);
+	}
+
+	if (slave.health.condition > 20) {
+		r.push(`${He} is in such excellent health that ${he} is able to put on longer and more energetic shows, earning you more.`);
+	} else if (slave.health.condition < -20) {
+		r.push(`${His} poor health negatively affects ${his} ability to put on good shows, cutting into your profits.`);
+	}
+
+	if (slave.face > 40) {
+		r.push(`${He} is so ${_beautiful} that ${his} audience is willing to pay more to watch ${him} put on shows.`);
+	} else if (slave.face > 10) {
+		r.push(`${He} is so ${_pretty} that ${his} audience is willing to pay more to watch ${him} put on shows.`);
+	} else if (slave.face < -10) {
+		r.push(`${His} audience isn't willing to pay as much because of how unattractive ${his} face is.`);
+	} else if (slave.face < -40) {
+		r.push(`${His} audience isn't willing to pay as much because of how hard ${his} face is to look at.`);
+	}
+
+	// TODO: write this block with different combinations of trust / devotion
+	if (slave.devotion > 50) {
+		// TODO: write this
+	} else if (slave.devotion < -50) {
+		// TODO: write this
+	}
+
+	if (slave.trust > 50) {
+		// TODO: write this
+	} else if (slave.trust < -50) {
+		// TODO: write this
+	}
+
+	if (slave.weight > 30 && arcology.FSHedonisticDecadence === "unset") {
+		r.push(`Your citizens are not willing to pay as much to see such a fat slave put on shows, so ${he} loses some income.`);
+	} else if (slave.weight < -30) {
+		r.push(`Your citizens don't like watching such a sickly-looking slaves put on shows, so ${he} loses some income.`);
+	}
+
+	if (slave.muscles > 30) {
+		// TODO: write this - do we want something for muscles?
+	} else if (slave.muscles < -30) {
+		r.push(`${slave.slaveName} is so weak that ${he} cannot even properly handle the animals ${he}'s assigned to ${V.seeBestiality ? `fuck` : `work with`}, and isn't able to put on any sort of meaningful show.`);
+	}
+
+	if (!canSeePerfectly(slave)) {
+		r.push(`${His} ${!canSee(slave) ? `blindness makes it impossible` : `nearsightedness makes it harder`} for ${him} to see what ${he}'s doing, affecting ${his} ability to put on a good show.`);
+	}
+
+	if (slave.hears < 0) {
+		r.push(`${His} ${slave.hears < -1 ? `lack of` : `poor`} hearing makes it difficult for ${him} to hear what ${his} audience wants from ${him}, which really affects ${his} earnings.`);
+	}
+
+	if (isPreg(slave)) {
+		r.push(`${His}${slave.bellyPreg > 100000 ? ` advanced` : ``} pregnancy makes it more difficult for him to effectively put on a good show.`);
+	}
+
+	if (slave.health.tired > 60) {
+		r.push(`${He} is so tired that the energy in ${his} shows is basically nonexistent, affecting ${his} profits.`);
+	}
+
+	if (slave.intelligence > 50) {
+		// TODO: write this - include something about .intelligenceImplant?
+	} else if (slave.intelligence < -50) {
+		// TODO: write this
+	}
+
+	if (slave.energy <= 20) {
+		// TODO: write this
+	} else if (slave.energy <= 40) {
+		// TODO: write this
+	} else if (slave.energy <= 60) {
+		// TODO: write this
+	} else if (slave.energy <= 80) {
+		// TODO: write this
+	} else if (slave.energy <= 95) {
+		// TODO: write this
+	} else {
+		// TODO: write this
+	}
+
+	// TODO: add more to the fetishes and flaws / quirks
+	switch (slave.fetish) {
+		case "submissive":
+			if (V.seeBestiality) {
+				if (slave.fetishKnown) {
+					r.push(`${He} is so submissive that ${he} willingly accepts ${his} position as an animal's fucktoy and <span class="reputation inc">is able to put on a decent show</span>.`);
+				} else {
+					r.push(`${V.Headgirl ? `${V.Headgirl.slaveName} notices` : `You notice`} that ${slave.slaveName} seems to have really taken to ${his} position as a fucktoy for animals. <span class="lightcoral">${He}'s a submissive!</span>`);
+				}
+			} else {
+				if (slave.fetishKnown) {
+					r.push(`Being a submissive, ${he} <span class="reputation dec">doesn't have the confidence required</span> to really put on a good show.`);
+				} else {
+					r.push(`${slave.slaveName} doesn't seem to have the type of fortitude needed to put on a show, and after some probing, you discover why - it turns out <span class="lightcoral">${he}'s a submissive!</span>`);
+				}
+			}
+			break;
+
+		case "humiliation":
+			if (V.seeBestiality) {
+				if (slave.fetishKnown) {
+					r.push(`${slave.slaveName} uses the most of this humiliating experience to really put on a show, to <span class="reputation inc">the approval of ${his} audience</span>.`);
+				} else {
+					// TODO:
+				}
+			} else {
+				// TODO: not sure about this one
+			}
+			break;
+
+		default:
+			break;
+	}
+
+	switch (slave.behavioralFlaw) {
+		case "devout":
+			r.push(`${He} often prays ${V.seeBestiality ? ` while getting fucked by animals` : ` during ${his} shows`}, which your citizens <span class="reputation dec">find off-putting.</span>`);
+			break;
+
+		default:
+			break;
+	}
+
+	switch (slave.behavioralQuirk) {
+		case "sinful":
+			r.push(`${He} relishes in ${his} ability to do something so sinful and depraved, and <span class="reputation inc">really puts on a show.</span>`);
+			break;
+
+		default:
+			break;
+	}
+
+	switch (slave.sexualFlaw) {
+		case "shamefast":
+			r.push(`${His} crippling shamefastness <span class="reputation dec">limits ${his} ability</span> to put on a decent show.`);
+			break;
+
+		default:
+			break;
+	}
+
+	switch (slave.sexualQuirk) {
+		case "perverted":
+			r.push(`${His} shows are a <span class="reputation inc">real spectacle,</span> since ${he} is so perverted taht ${he} is willing to go far beyond the bare minimum.`);
+			break;
+
+		default:
+			break;
+	}
+
+	return r.join(' ');
+};
-- 
GitLab