From 61df02c1fad712d6cec064666f3a07e181f5dc3c Mon Sep 17 00:00:00 2001
From: Pregmodder <pregmodder@gmail.com>
Date: Sun, 16 Feb 2020 23:31:19 -0500
Subject: [PATCH] saDrugs JS conversion

---
 src/endWeek/saDrugs.js          | 1910 +++++++++++++++++++++++++++++++
 src/endWeek/saServeThePublic.js |    1 +
 src/endWeek/saTakeClasses.js    |    1 +
 src/endWeek/saWhore.js          |    1 +
 src/endWeek/saWorkAGloryHole.js |    1 +
 5 files changed, 1914 insertions(+)
 create mode 100644 src/endWeek/saDrugs.js

diff --git a/src/endWeek/saDrugs.js b/src/endWeek/saDrugs.js
new file mode 100644
index 00000000000..51481b7b788
--- /dev/null
+++ b/src/endWeek/saDrugs.js
@@ -0,0 +1,1910 @@
+window.saDrugs = (function saDrugs() {
+	"use strict";
+
+	let r;
+
+	// eslint-disable-next-line no-unused-vars
+	let he, him, his, hers, himself, girl, loli, He, His;
+
+	let intensive;
+	let gigantomastiaMod;
+	let rearLipedemaMod;
+	let growth;
+	let shrinkage;
+	let boobSize;
+	let buttSize;
+
+	return saDrugs;
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * @returns {string}
+	 */
+	function saDrugs(slave) {
+		r = ``;
+		gigantomastiaMod = slave.geneticQuirks.gigantomastia === 2 ? (slave.geneticQuirks.macromastia === 2 ? 3 : 2) : 1;
+		rearLipedemaMod = slave.geneticQuirks.rearLipedema === 2 ? 1 : 0;
+		boobSize = slave.boobs - slave.boobsImplant - slave.boobsMilk;
+		buttSize = slave.butt - slave.buttImplant;
+
+		({
+			// eslint-disable-next-line no-unused-vars
+			he, him, his, hers, himself, girl, He, His, loli
+		} = getPronouns(slave));
+
+		if (slave.drugs !== "no drugs") {
+			drugEffects(slave);
+		}
+		if (slave.pregControl !== "none") {
+			pregnancyDrugEffects(slave);
+		}
+		if (slave.curatives > 1) {
+			curativeEffects(slave);
+		}
+		if (slave.aphrodisiacs > 0) {
+			aphrodisiacEffects(slave);
+		}
+		healthAndWellness(slave);
+		if (slave.drugs !== "no drugs") {
+			drugExpiry(slave);
+		}
+
+		return r;
+	}
+
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 *
+	 */
+	function drugEffects(slave) {
+		intensive = (slave.drugs === "intensive breast injections" || slave.drugs === "intensive butt injections" || slave.drugs === "intensive penis enhancement" || slave.drugs === "intensive testicle enhancement") ? 1 : 0;
+		r += ` `;
+		switch (slave.drugs) {
+			case "hormone enhancers":
+				r += `${His} drug regime prepares ${his} body to accept hormonal effects.`;
+				break;
+			case "priapism agents":
+				if (slave.dick === 0) {
+					r += `Since ${he} lacks a dick, it is pointless to try and keep it hard. <span class="yellow">${His} drug regimen has been ended.</span>`;
+					slave.drugs = "no drugs";
+				} else if (slave.chastityPenis === 1) {
+					r += `A tight cage around a dick forced hard are a bad mix so <span class="yellow">${his} drug regimen has been ended.</span>`;
+				} else if (slave.health.condition <= -50) {
+					r += `${He} is too unwell to risk further health complications from priapism. <span class="yellow">${His} drug regimen has been ended.</span>`;
+				} else if (slave.dick > 10) {
+					r += `${His} dick is so enormous that attempts to force an erection would kill ${him}. <span class="yellow">${His} drug regimen has been mercifully ended.</span>`;
+					slave.drugs = "no drugs";
+				} else {
+					r += `${His} drug regime keeps ${his} dick <span class="red">painfully erect.</span>`;
+					healthDamage(slave, 5);
+					if (slave.dick >= 7) {
+						r += ` The amount of blood needed to keep ${his} oversized cock hard has <span class="red">severe effects on ${his} health!</span>`;
+						healthDamage(slave, slave.dick*5);
+					}
+				}
+				break;
+			case "psychosuppressants":
+				if ((slave.fetish !== "mindbroken")) {
+					r += `The psychosuppressants <span class="hotpink">reduce ${his} ability to question ${his} role</span> or <span class="mediumaquamarine">think independently.</span>`;
+					slave.devotion += 4;
+					slave.trust += 4;
+					if ((slave.intelligence >= -95)) {
+						r += ` They <span class="orange">negatively impact ${his} intelligence,</span> as well.`;
+						slave.intelligence -= 5;
+					}
+					if (slave.fuckdoll === 0 && slave.intelligence < -15 && slave.fetishStrength <= 60 && slave.fetish !== "submissive" && fetishChangeChance(slave) > jsRandom(0, 100)) {
+						r += ` The willingness to <span class="lightcoral">submit</span> created by the drugs invades ${his} sexuality, too.`;
+						slave.fetish = "submissive";
+						slave.fetishKnown = 1;
+						slave.fetishStrength = 10;
+					}
+				} else {
+					r += `The psychosuppressants have little effect on ${his} passive mind.`;
+				}
+				break;
+			case "psychostimulants":
+				r += `${He} takes a cup of <span class="deepskyblue">mind stimulating</span> tea with each meal;`;
+				if ((slave.fetish !== "mindbroken")) {
+					r += ` the soothing drink <span class="mediumaquamarine">sets ${his} thoughts at ease.</span>`;
+					if (slave.devotion < -50) {
+						slave.trust += 6;
+					} else if (slave.devotion < -20) {
+						slave.trust += 4;
+					} else if (slave.devotion <= 20) {
+						slave.trust += 2;
+					} else {
+						slave.trust += 1;
+					}
+					slave.intelligence += 1;
+					if (slave.energy > 60) {
+						r += ` ${He} spends <span class="red">less time thinking about sex,</span> as well.`;
+						if (slave.energy > 95) {
+							slave.energy -= 3;
+						} else if (slave.energy > 80) {
+							slave.energy -= 2;
+						} else {
+							slave.energy -= 1;
+						}
+					}
+				} else {
+					r += ` it has little effect on ${his} passive mind.`;
+				}
+				break;
+			case "hyper breast injections":
+				slave.chem += 2;
+				growth = (1 + V.injectionUpgrade) * 3 * gigantomastiaMod;
+				r += ` ${He} receives <span class="lime">direct injections of`;
+				if (V.injectionUpgrade !== 0) {
+					r += ` advanced`;
+				}
+				r += ` hyper growth hormones, right into ${his} breasts;</span>`;
+				if ((slave.diet === "fattening")) {
+					r += ` all the food ${he}'s required to consume fuels growth, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth += 6;
+				} else if ((slave.diet === "fertility")) {
+					r += ` the fertility hormones in ${his} food favor breast growth, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth += 1;
+				} else if ((slave.diet === "restricted")) {
+					r += ` ${his} restricted diet means ${his} body has few resources to grow on, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth -= 1;
+				} else if ((slave.weight > 130)) {
+					r += ` the enormous diet ${he} eats to maintain ${his} hugely fat body helps support growth, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth += 4;
+				} else if ((slave.weight > 30)) {
+					r += ` the generous diet ${he} eats to maintain ${his} fat body helps support growth, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth += 2;
+				} else if ((slave.weight <= -30)) {
+					r += ` the diet ${he} is required to maintain to keep slim impedes growth, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth--;
+				}
+				if (slave.health.condition > 80) {
+					r += ` ${his} perfect health supports growth extremely well, `;
+					if (slave.boobs < 5000 || slave.boobs >= 10000) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth += 6;
+				} else if ((slave.health.condition > -20)) {
+					r += ` ${his} health supports growth, `;
+					if (slave.boobs < 2000 || slave.boobs >= 10000) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+				} else {
+					r += ` ${his} poor health does not support steady growth, but`;
+					growth--;
+				}
+				r += ` ${his}`;
+				if ((slave.boobs < 800)) {
+					r += ` small chest tends to grow rapidly.`;
+					growth += 10;
+					if ((slave.boobShape !== "saggy") && (slave.breastMesh !== 1)) {
+						if (jsRandom(1, 10) < 5) {
+							r += ` As ${his} boobs rapidly grow, they become saggy under their own rapid weight gain.`;
+							slave.boobShape = "saggy";
+						}
+					}
+				} else if ((slave.boobs < 2000)) {
+					r += ` modest tits tend to grow fast.`;
+					growth += 8;
+					if ((slave.boobShape !== "saggy") && (slave.breastMesh !== 1)) {
+						if (jsRandom(1, 10) < 5) {
+							r += ` As ${his} boobs rapidly grow, they become saggy under their own rapid weight gain.`;
+							slave.boobShape = "saggy";
+						}
+					}
+				} else if ((slave.boobs < 5000)) {
+					r += ` heavy boobs tend to grow modestly.`;
+					growth += 6;
+					if ((slave.boobShape !== "saggy") && (slave.breastMesh !== 1)) {
+						if (jsRandom(1, 10) === 1) {
+							r += ` As they grow, they <span class="coral">begin to sag</span> under their own monstrous weight, ${his} mass of breastflesh directing ${his} nipples downward.`;
+							slave.boobShape = "saggy";
+						}
+					}
+				} else if ((slave.boobs < 10000)) {
+					r += ` huge boobs tend to grow slowly.`;
+					growth += 4;
+					if ((slave.boobShape !== "saggy") && (slave.breastMesh !== 1)) {
+						if (jsRandom(1, 10) === 1) {
+							r += ` As they grow, they <span class="coral">begin to sag</span> under their own monstrous weight, ${his} mass of breastflesh directing ${his} nipples downward.`;
+							slave.boobShape = "saggy";
+						}
+					}
+				} else {
+					r += ` monstrous udders are just the right size to experience the explosive growth the drugs promise.`;
+					growth += 10;
+					if ((slave.boobShape !== "normal") && (slave.breastMesh !== 1)) {
+						if (jsRandom(1, 10) === 1) {
+							r += ` ${His} <span class="coral">breasts lose their unique shape</span> as they adapt to their monstrous, unnatural size. There's simply nowhere else for ${his} mass of boob to go, and its expansion fills ${his} breasts out and points ${his} nipples forward.`;
+							slave.boobShape = "normal";
+						}
+					}
+				}
+				if (slave.geneMods.NCS === 1) {
+					growth = Math.trunc(growth / 2.2);
+					r += ` ${His} <span class="orange">NCS</span> kicks in fighting the breast growth, converting the excess fat into sexual energy for ${him}.`;
+					slave.energy += growth;
+				}
+				growth = 25 * Math.trunc(growth * 0.8);
+				slave.boobs += Math.clamp(growth, 25, 5000);
+				if (jsRandom(1, 100) > 30 + (slave.areolae * 10) && slave.areolae < 4) {
+					r += ` The increase in breast size <span class="lime">stretches and broadens ${his} areolae.</span>`;
+					slave.areolae += 1;
+				}
+				if ((jsRandom(1, 100) > 70) && (slave.nipples !== "inverted") && (slave.nipples !== "fuckable")) {
+					if (["cute", "huge", "puffy", "tiny"].includes(slave.nipples)) {
+						r += ` The explosive increase in breast flesh also <span class="lime">completely swallows ${his} nipples.</span>`;
+						slave.nipples = "inverted";
+					}
+				}
+				if (slave.geneticQuirks.gigantomastia === 3 && jsRandom(1, 200) < slave.hormoneBalance) {
+					slave.geneticQuirks.gigantomastia = 2;
+				}
+				if (slave.geneticQuirks.macromastia === 3 && jsRandom(1, 200) < slave.hormoneBalance) {
+					slave.geneticQuirks.macromastia = 2;
+				}
+				break;
+			case "breast injections":
+			case "intensive breast injections":
+				growth = 1 + V.injectionUpgrade * gigantomastiaMod;
+				r += ` ${He} receives <span class="lime">`;
+				if (intensive) {
+					r += ` massive`;
+					growth *= 2;
+				}
+				r += ` injections of`;
+				if ((V.injectionUpgrade !== 0)) {
+					r += ` advanced`;
+				}
+				r += ` growth hormones, right into ${his} breasts;</span>`;
+				if ((slave.diet === "fattening")) {
+					r += ` all the food ${he}'s required to consume fuels growth, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth += 2;
+				} else if ((slave.diet === "fertility")) {
+					r += ` the fertility hormones in ${his} food favor breast growth, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth += 1;
+				} else if ((slave.diet === "restricted")) {
+					r += ` ${his} restricted diet means ${his} body has few resources to grow on, `;
+					if (slave.health.condition > -20) {
+						r += `but`;
+					} else {
+						r += `and`;
+					}
+					growth -= 2;
+				} else if ((slave.weight > 130)) {
+					r += ` the enormous diet ${he} eats to maintain ${his} hugely fat body helps support growth, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth++;
+				} else if ((slave.weight > 30)) {
+					r += ` the generous diet ${he} eats to maintain ${his} fat body helps support growth, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth++;
+				} else if ((slave.weight <= -30)) {
+					r += ` the diet ${he} is required to maintain to keep slim impedes growth, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth--;
+				}
+				if (slave.health.condition > 80) {
+					r += ` ${his} perfect health supports growth extremely well, `;
+					if (slave.boobs < 2000) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth++;
+				} else if ((slave.health.condition > -20)) {
+					r += ` ${his} health supports growth, `;
+					if (slave.boobs < 2000) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+				} else {
+					r += ` ${his} poor health does not support steady growth, `;
+					if (slave.boobs < 2000) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth--;
+				}
+				r += ` ${his}`;
+				if ((slave.boobs < 800)) {
+					r += ` modest chest tends to grow quickly.`;
+					growth += 3;
+					if ((slave.boobShape !== "torpedo-shaped") && (slave.boobShape !== "wide-set") && (slave.breastMesh !== 1)) {
+						if (jsRandom(1, 10) === 1) {
+							if (slave.shoulders < 0) {
+								r += ` <span class="lime">As ${his} boobs grow, they take on a torpedo shape within the frame of ${his} narrow shoulders,</span> projecting a long way from ${his} chest and swinging delightfully when ${he}'s naked.`;
+								slave.boobShape = "torpedo-shaped";
+							} else {
+								r += ` <span class="lime">As ${his} boobs grow, they become widely set across the broadness of ${his} chest,</span> spreading sideways even when ${he}'s not lying on ${his} back.`;
+								slave.boobShape = "wide-set";
+							}
+						}
+					}
+				} else if ((slave.boobs < 2000)) {
+					r += ` big tits tend to grow readily.`;
+					growth += 2;
+					if ((slave.boobShape === "saggy") || (slave.boobShape === "downward-facing") && (slave.breastMesh !== 1)) {
+						if (jsRandom(1, 10) === 1) {
+							r += ` <span class="lime">As they grow, they lose their sag,</span> with the expanding tissue lifting ${his} nipples up to point forward.`;
+							slave.boobShape = "normal";
+						}
+					}
+				} else if ((slave.boobs < 5000)) {
+					r += ` heavy boobs tend to grow slowly.`;
+					growth++;
+					if ((slave.boobShape !== "saggy") && (slave.breastMesh !== 1)) {
+						if (jsRandom(1, 10) === 1) {
+							r += ` <span class="coral">As they grow, they begin to sag</span> under their own monstrous weight, ${his} mass of breastflesh directing ${his} nipples downward. `;
+							slave.boobShape = "saggy";
+						}
+					}
+				} else {
+					r += ` monstrous udders tend to grow very slowly.`;
+					if ((slave.boobShape !== "normal") && (slave.breastMesh !== 1)) {
+						if (jsRandom(1, 10) === 1) {
+							r += ` <span class="coral">${His} breasts lose their unique shape</span> as they adapt to their monstrous, unnatural size. There's simply nowhere else for ${his} mass of boob to go, and its expansion fills ${his} breasts out and points ${his} nipples forward.`;
+							slave.boobShape = "normal";
+						}
+					}
+				}
+				if (slave.geneMods.NCS === 1) {
+					growth = Math.trunc(growth / 2.2);
+					r += ` ${His} <span class="orange">NCS</span> kicks in fighting the breast growth, converting the excess fat into sexual energy for ${him}.`;
+					slave.energy += growth;
+				}
+				growth = 25 * Math.trunc(growth * 0.8);
+				slave.boobs += Math.clamp(growth, 25, 200);
+				if (slave.areolae < 4) {
+					if (growth > slave.areolae * 25) {
+						r += ` The increase in breast size <span class="lime">stretches and broadens ${his} areolae.</span>`;
+						slave.areolae += 1;
+					}
+				}
+				if (slave.nipples !== "huge" && (slave.nipples !== "fuckable")) {
+					if (jsRandom(1, 200) < growth) {
+						if ((slave.nipples === "tiny")) {
+							r += ` The hormones also <span class="lime">cause nipple growth.</span>`;
+							slave.nipples = "cute";
+						} else if ((slave.nipples === "cute")) {
+							if (jsRandom(1, 2) === 1) {
+								r += ` The hormones also <span class="lime">cause ${his} cute nipples to become puffy.</span>`;
+								slave.nipples = "puffy";
+							} else {
+								r += ` The explosive breast growth also <span class="lime">causes ${his} cute nipples to become partially inverted.</span>`;
+								slave.nipples = "partially inverted";
+							}
+						} else if ((slave.nipples === "puffy")) {
+							if (jsRandom(1, 2) === 1) {
+								r += ` The hormones also <span class="lime">cause ${his} puffy nipples to become really enormous.</span>`;
+								slave.nipples = "huge";
+							} else {
+								r += ` The explosive breast growth also <span class="lime">causes ${his} puffy nipples to become completely inverted.</span>`;
+								slave.nipples = "inverted";
+							}
+						} else if ((slave.nipples === "partially inverted")) {
+							r += ` The explosive breast growth also <span class="lime">causes ${his} nipples to invert completely.</span>`;
+							slave.nipples = "inverted";
+						}
+					}
+				}
+				if (slave.geneticQuirks.gigantomastia === 3 && jsRandom(1, 300) < slave.hormoneBalance) {
+					slave.geneticQuirks.gigantomastia = 2;
+				}
+				if (slave.geneticQuirks.macromastia === 3 && jsRandom(1, 300) < slave.hormoneBalance) {
+					slave.geneticQuirks.macromastia = 2;
+				}
+				break;
+			case "butt injections":
+			case "intensive butt injections":
+				growth = 1 + V.injectionUpgrade;
+				r += ` ${He} receives <span class="lime">`;
+				if (intensive) {
+					r += ` massive`;
+					growth *= 2;
+				}
+				r += ` injections of`;
+				if ((V.injectionUpgrade !== 0)) {
+					r += ` advanced`;
+				}
+				r += ` growth hormones, right into ${his} buttocks;</span>`;
+				if ((slave.diet === "fattening")) {
+					r += ` all the food ${he}'s required to consume fuels growth, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth += 2;
+				} else if ((slave.diet === "restricted")) {
+					r += ` ${his} restricted diet means ${his} body has few resources to grow on, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth -= 2;
+				} else if ((slave.weight > 130)) {
+					r += ` the generous diet ${he} eats to maintain ${his} fat body helps support growth, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth += 3;
+				} else if ((slave.weight > 30)) {
+					r += ` the generous diet ${he} eats to maintain ${his} fat body helps support growth, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth++;
+				} else if ((slave.weight <= -30)) {
+					r += ` the diet ${he} is required to maintain to keep slim impedes growth, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth--;
+				}
+				if (slave.health.condition > 80) {
+					r += ` ${his} perfect health supports growth extremely well, `;
+					if (slave.butt < 6) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth++;
+				} else if ((slave.health.condition > -20)) {
+					r += ` ${his} health supports growth, `;
+					if (slave.butt < 6) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+				} else {
+					r += ` ${his} poor health does not support steady growth, `;
+					if (slave.butt < 6) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth--;
+				}
+				r += ` ${his}`;
+				if (slave.butt < 2) {
+					r += ` modest rear tends to grow quickly.`;
+				} else if (slave.butt < 4) {
+					r += ` big behind tends to grow readily.`;
+					growth += 2;
+				} else if (slave.butt < 6) {
+					r += ` massive ass tends to grow slowly.`;
+					growth++;
+				} else {
+					r += ` monstrous cheeks tend to grow very slowly.`;
+				}
+				if (rearLipedemaMod !== 0) {
+					growth += 3;
+					if (V.geneticMappingUpgrade >= 1) {
+						r += ` ${His} rear lipedema amplifies the drug's effects on ${his} bottom.`;
+					} else {
+						r += ` The drugs seem to have an added effect on ${him}.`;
+					}
+				}
+				growth *= 0.2;
+				if (slave.geneMods.NCS === 1) {
+					growth = Math.trunc(growth / 2.2);
+					r += ` ${His} <span class="orange">NCS</span> kicks in fighting the butt growth, `;
+					if (growth > 1) {
+						r += `converting the excess fat into sexual energy.`;
+					} else {
+						r += `but has no effect.`;
+					}
+					slave.energy += growth;
+				}
+				slave.butt += Math.clamp(growth, 0, 2 + rearLipedemaMod);
+				if (slave.geneMods.rapidCellGrowth !== 1) {
+					if (intensive) {
+						if (slave.anus > 1) {
+							r += ` The reckless drug therapy has the side effect of rejuvenating ${his} sphincter muscles, <span class="lime">tightening up ${his} `;
+							if (slave.anus > 4) {
+								r += `gaping`;
+							} else if (slave.anus > 3) {
+								r += `loose`;
+							} else {
+								r += `relaxed`;
+							}
+							r += ` anus.</span>`;
+							slave.anus--;
+						}
+					} else {
+						if (slave.anus > 2) {
+							r += ` The drugs nearby rejuvenate ${his} sphincter muscles, <span class="lime">tightening up ${his} `;
+							if (slave.anus > 4) {
+								r += `gaping`;
+							} else {
+								r += `loose`;
+							}
+							r += ` anus.</span>`;
+							slave.anus--;
+						}
+					}
+				}
+				break;
+			case "hyper butt injections":
+				slave.chem += 2;
+				growth = .5;
+				r += ` ${He} receives <span class="lime">direct injections of`;
+				if ((V.injectionUpgrade !== 0)) {
+					r += ` advanced`;
+				}
+				r += ` hyper growth hormones, right into ${his} buttocks;</span>`;
+				if ((slave.diet === "fattening")) {
+					r += ` all the food ${he}'s required to consume fuels growth, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth += 0.2;
+				} else if ((slave.diet === "restricted")) {
+					r += ` ${his} restricted diet means ${his} body has few resources to grow on, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth -= 0.2;
+				} else if ((slave.weight > 130)) {
+					r += ` the enormous diet ${he} eats to maintain ${his} hugely fat body helps support growth, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth += 0.2;
+				} else if ((slave.weight > 30)) {
+					r += ` the generous diet ${he} eats to maintain ${his} fat body helps support growth, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth += 0.1;
+				} else if ((slave.weight <= -30)) {
+					r += ` the diet ${he} is required to maintain to keep slim impedes growth, `;
+					if (slave.health.condition > -20) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth -= 0.1;
+				}
+				if (slave.health.condition > 80) {
+					r += ` ${his} perfect health supports growth extremely well, `;
+					if (slave.butt < 10) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth += .5;
+				} else if ((slave.health.condition > -20)) {
+					r += ` ${his} health supports growth reasonably well, `;
+					if ((slave.butt < 10)) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+				} else {
+					r += ` ${his} poor health does not support steady growth, `;
+					if ((slave.butt < 10)) {
+						r += `and`;
+					} else {
+						r += `but`;
+					}
+					growth -= 0.1;
+				}
+				r += ` ${his} `;
+				if ((slave.butt < 6)) {
+					r += `modest rear tends to grow quickly.`;
+					growth += 1;
+				} else if ((slave.butt < 8)) {
+					r += `gigantic behind tends to grow readily.`;
+					growth += 0.8;
+				} else if ((slave.butt < 10)) {
+					r += `titanic jiggly butt tends to grow steadily.`;
+					growth += 0.6;
+				} else {
+					r += `inhuman cheeks tend to grow slowly.`;
+					growth += 0.4;
+				}
+				if (rearLipedemaMod !== 0) {
+					growth += 1;
+					if (V.geneticMappingUpgrade >= 1) {
+						r += ` ${His} rear lipedema massively amplifies the drug's effects.`;
+					} else {
+						r += ` The drugs seem to have an added effect on ${him}.`;
+					}
+				}
+				if (slave.geneMods.NCS === 1) {
+					growth = Math.trunc(growth / 2.2);
+					r += ` ${His} <span class="orange">NCS</span> kicks in fighting the butt growth, `;
+					if (growth > 1) {
+						r += `converting the excess fat into sexual energy.`;
+					} else {
+						r += `but has no effect.`;
+					}
+					slave.energy += growth;
+				}
+				if (growth > 1 || slave.geneMods.NCS === 1) {
+					slave.butt += growth;
+				} else {
+					slave.butt += 1;
+				}
+				if (slave.butt >= 20) {
+					slave.butt = 20;
+				}
+				break;
+			case "lip injections":
+				if ((slave.lips <= 95)) {
+					r += ` <span class="lime">${His} lips swell rapidly from the injections of`;
+					if ((V.injectionUpgrade !== 0)) {
+						r += ` advanced `;
+					}
+					r += ` growth agents`;
+					if ((slave.lips > 90)) {
+						r += `, becoming a facepussy useless for anything other than oral sex.</span>`;
+					} else if ((slave.lips > 70) && (slave.lips <= 75)) {
+						r += `, and are now so large that ${he} can no longer enunciate properly.</span>`;
+					} else {
+						r += `.</span>`;
+					}
+					if (slave.geneMods.NCS === 1) {
+						slave.lips += 2;
+					} else {
+						slave.lips += 5;
+					}
+				}
+				break;
+			case "growth stimulants":
+				slave.chem += 2;
+				growth = 1;
+				r += `${He} receives frequent <span class="lime"> injections of growth stimulants.</span>`;
+				// Hormones
+				if (slave.hormones === 2 || slave.hormones === -2) {
+					growth--;
+					r += ` The massive quantities of sexual hormones flooding ${his} body limits the effectiveness of the treatment.`;
+				} else if (slave.hormones === 0) {
+					growth += 0.2;
+					r += ` In the absence of significant levels of sexual hormones, the treatment is more effective.`;
+				} else if (slave.hormones === 1 || slave.hormones === -1) {
+					r += ` ${His} low level of sexual hormones allow the treatment to work undisturbed.`;
+				}
+				// hormone balance
+				if (slave.hormoneBalance <= -50) {
+					growth += 0.5;
+				} else if (slave.hormoneBalance <= -25) {
+					growth += 0.2;
+				} else if (slave.hormoneBalance < 50) {
+					growth -= 0.2;
+				} else {
+					growth -= 0.5;
+				}
+				// diet
+				if (slave.diet === "fattening") {
+					r += ` All the food ${he}'s required to consume boosts `;
+					if (slave.dietMilk === 2) {
+						r += `growth with the generous amount of added milk enhancing its effect.`;
+						growth += 0.3;
+					} else if (slave.dietMilk === 1) {
+						r += `growth with the added milk enhancing its effect.`;
+						growth += 0.2;
+					} else {
+						r += `growth.`;
+					}
+					growth += 0.2;
+				} else if (slave.diet === "restricted") {
+					r += ` ${His} restricted diet means ${his} body has few resources to grow `;
+					if (slave.dietMilk === 2) {
+						r += `on, but the generous amount of added milk mitigates its effect.`;
+						growth += 0.3;
+					} else if (slave.dietMilk === 1) {
+						r += `on, but the added milk mitigates its effect.`;
+						growth += 0.2;
+					} else {
+						r += `on.`;
+					}
+					growth--;
+				} else if (slave.diet === "slimming") {
+					r += ` ${His} growth is slightly inhibited by ${his} strict `;
+					if (slave.dietMilk === 2) {
+						r += ` diet, but the generous amount of added milk mitigates its effect.`;
+						growth += 0.3;
+					} else if (slave.dietMilk === 1) {
+						r += ` diet, but the added milk mitigates its effect.`;
+						growth += 0.2;
+					} else {
+						r += ` diet.`;
+					}
+					growth -= 0.2;
+				} else if ((slave.diet === "fertility")) {
+					r += ` The fertility hormones in ${his} food restrain ${his}`;
+					if (slave.dietMilk === 2) {
+						r += ` growth, but the generous amount of added milk mitigates its effect.`;
+						growth += 0.3;
+					} else if (slave.dietMilk === 1) {
+						r += ` growth, but the added milk mitigates its effect.`;
+						growth += 0.2;
+					} else {
+						r += ` growth.`;
+					}
+					growth -= 0.1;
+				} else if (slave.diet === "XY" || slave.diet === "XX" || slave.diet === "XXY") {
+					r += ` ${His} growth is restrained by ${his} sexual hormones rich`;
+					if (slave.dietMilk === 2) {
+						r += ` diet, but the generous amount of added milk mitigates its effect.`;
+						growth += 0.3;
+					} else if (slave.dietMilk === 1) {
+						r += ` diet, but the added milk mitigates its effect.`;
+						growth += 0.2;
+					} else {
+						r += ` diet.`;
+					}
+					growth -= 0.5;
+				} else if (slave.diet === "cleansing") {
+					r += ` ${His} growth is severely inhibited by ${his} cleansing`;
+					if (slave.dietMilk === 2) {
+						r += ` diet, but the generous amount of added milk mitigates its effect.`;
+						growth += 0.3;
+					} else if (slave.dietMilk === 1) {
+						r += ` diet, but the added milk mitigates its effect.`;
+						growth += 0.2;
+					} else {
+						r += ` diet.`;
+					}
+					growth--;
+				} else if (slave.diet === "muscle building" || slave.muscles >= 96) {
+					r += ` ${His} workout diet and constant physical exercise help support`;
+					if (slave.dietMilk === 2) {
+						r += ` growth with the generous amount of added milk enhancing its effect. `;
+						growth += 0.3;
+					} else if (slave.dietMilk === 1) {
+						r += ` growth with the added milk enhancing its effect. `;
+						growth += 0.2;
+					} else {
+						r += ` growth.`;
+					}
+					growth += 0.5;
+				}
+				// health
+				if (slave.health.condition > 80) {
+					r += `${His} perfect health greatly supports ${his} growth. `;
+					growth += 0.2;
+				} else if (slave.health.condition > -20) {
+					r += `${His} health supports ${his} growth. `;
+				} else {
+					r += `${His} poor health hinders growth. `;
+					growth--;
+				}
+				// if growth was accomplished
+				if (growth > 0) {
+					// age modifier
+					let ageMod = 1;
+
+					if (slave.geneMods.NCS === 1) {
+						r += ` ${His} <span class="orange">NCS</span> inhibits ${his} body response to the treatment.`;
+						ageMod = .25;
+					} else if (slave.genes === "XY") {
+						if (slave.pubertyXY === 0 && slave.physicalAge <= 3) {
+							r += ` ${His} very young body responds extremely well to the treatment.`;
+							ageMod = 2.5;
+						} else if (slave.pubertyXY === 0 && slave.physicalAge > 3) {
+							r += ` ${His} young body eagerly responds to the stimulants.`;
+							ageMod = 1.5;
+						} else if (slave.physicalAge <= (slave.pubertyAgeXY + V.pubertyLength)) {
+							r += ` Due to ${his} recent puberty, ${his} body welcomes the treatment with open arms.`;
+							ageMod = 2;
+						} else if (slave.physicalAge <= V.maxGrowthAge) {
+							r += ` With ${his} puberty concluded, ${his} body resists the stimulants.`;
+							ageMod = 1;
+						} else {
+							r += ` ${His} mature body struggles to respond to the treatment, making progress difficult.`;
+							ageMod = 0.5;
+						}
+					} else if (slave.genes === "XX") {
+						if (slave.pubertyXX === 0 && slave.physicalAge <= 3) {
+							r += ` ${His} very young body responds extremely well to the treatment.`;
+							ageMod = 2.5;
+						} else if (slave.pubertyXX === 0 && slave.physicalAge > 3) {
+							r += ` ${His} young body eagerly responds to the stimulants.`;
+							ageMod = 1.5;
+						} else if (slave.physicalAge <= (slave.pubertyAgeXX + V.pubertyLength)) {
+							r += ` Due to ${his} recent puberty, ${his} body welcomes the treatment with open arms.`;
+							ageMod = 2;
+						} else if (slave.physicalAge <= V.maxGrowthAge) {
+							r += ` With ${his} puberty concluded, ${his} body resists the stimulants.`;
+							ageMod = 1;
+						} else {
+							r += ` ${His} mature body struggles to respond to the treatment, making progress difficult.`;
+							ageMod = 0.5;
+						}
+					}
+					// evaluate against slave expected height...
+					let heightDiff = slave.height / Height.forAge(slave.height, slave);
+					// if ${he} is taller than the expected height the growth is reduced, if shorter accelerated proportionally to the distance from the expected height
+					if (heightDiff >= 1) {
+						heightDiff = 1 - heightDiff;
+					} else {
+						heightDiff--;
+					}
+					// ...and calculates final value
+					let growth =(growth + growth * heightDiff) * ageMod;
+					if (slave.geneMods.NCS === 0) {
+						growth = Math.round(Math.clamp(growth, 0, 5));
+					} else {
+						growth = Math.round(Math.clamp(growth, 0, 2));
+					}
+					// communicates the amount of growth
+					if (growth < 1) { // in case heightDiff manages to bring growth down enough
+						r += ` Despite the treatment, ${his} height does not increase this week.`;
+					} else if (growth === 1) {
+						r += ` <span class="lime">${His} height slightly increased this week.</span>`;
+					} else if (growth === 2) {
+						r += ` <span class="lime">${His} height increased this week.</span>`;
+					} else if (growth === 3) {
+						r += ` <span class="lime">${His} height greatly increased this week.</span>`;
+					} else if (growth === 4) {
+						r += ` <span class="lime">${His} height dramatically increased this week.</span>`;
+					} else if (growth === 5) {
+						r += ` <span class="lime">${His} body experienced explosive growth this week,</span> so extreme that ${his} cardiovascular system can barely keep up, <span class="red">severely damaging ${his} health.</span>`;
+						healthDamage(slave, 20);
+					}
+					// health issues
+					if (jsRandom(1, 10) === 1 && growth !== 5) {
+						r += ` The stimulants stressed slave.slaveName's body more than expected, <span class="red">damaging ${his} health.</span>`;
+						healthDamage(slave, 10);
+					}
+					if (slave.physicalAge > V.maxGrowthAge) {
+						if (jsRandom(1, 6) === 1) {
+							r += ` Since ${his} body already concluded ${his} natural growth processes, the treatment <span class="red">weakens ${him} considerably.</span>`;
+							healthDamage(slave, 15);
+						}
+					}
+					// updates slave's height
+					slave.height += growth;
+				} else {
+					// if growth is zero or negative
+					r += ` Despite the treatment, ${his} height does not increase this week.`;
+				}
+				break;
+			case "male hormone injections":
+				if (slave.pubertyXY === 1) {
+					r += ` ${He} has potent sperm. <span class="yellow">${His} drug regimen has been ended.</span>`;
+					slave.drugs = "no drugs";
+				} else {
+					r += ` The intense hormonal injections leave ${him} <span class="red">sickened and weak</span> as ${his} body struggles to adapt to the overwhelming chemicals flooding ${his} system.`;
+					slave.chem += 20;
+					healthDamage(slave, 10);
+					if (slave.energy > 5) {
+						slave.energy -= 5;
+					}
+				}
+				break;
+			case "female hormone injections":
+				if (slave.pubertyXX === 1) {
+					r += ` ${He} has begun ovulating. <span class="yellow">${His} drug regimen has been ended.</span>`;
+					slave.drugs = "no drugs";
+				} else {
+					r += ` The intense hormonal injections leave ${him} <span class="red">sickened and weak</span> as ${his} body struggles to adapt to the overwhelming chemicals flooding ${his} system.`;
+					slave.chem += 20;
+					healthDamage(slave, 10);
+					if (slave.energy > 5) {
+						slave.energy -= 5;
+					}
+				}
+				break;
+			case "penis enhancement":
+			case "intensive penis enhancement":
+				growth = 60 - (V.injectionUpgrade * 10);
+				if (intensive) {
+					growth -= 20;
+				}
+				if (slave.geneMods.NCS === 1) {
+					growth += 30;
+				}
+				if ((slave.dick > 0)) {
+					if (jsRandom(1, 100) > growth + (slave.dick * 5)) {
+						r += ` <span class="lime">${His} cock grows painfully,</span> becoming both longer and girthier.`;
+						slave.dick++;
+					} else {
+						r += ` Despite being dosed with a spectrum of powerful growth promoters, ${his} dick does not grow.`;
+					}
+					if (slave.balls === 1) {
+						if (slave.scrotum > 0) {
+							r += ` As a side effect of the dick enhancement drugs, <span class="lime">${his} balls drop.</span>`;
+							slave.balls += 1;
+						}
+					}
+					if (slave.dick === 6) {
+						if (slave.balls > 0) {
+							r += ` <span class="yellow">${His} dick is at the limit of what ${his} cardiovascular system could conceivably bring erect.</span> Further penis enhancement may limit ${his} ability to get hard.`;
+						}
+					}
+				} else {
+					if (jsRandom(1, 100) > growth - (slave.clit * 10)) {
+						r += ` <span class="lime">${His} clit grows painfully,</span> becoming both longer and girthier.`;
+						slave.clit++;
+					} else {
+						r += ` Despite being dosed with a spectrum of powerful growth promoters, ${his} clit does not grow.`;
+					}
+				}
+				break;
+			case "hyper penis enhancement":
+				if ((slave.dick > 0)) {
+					r += `${He} receives <span class="lime">direct injections of hyper growth hormones, right into ${his} dick.</span> `;
+					slave.chem += 2;
+					if ((slave.dick >= 30)) {
+						r += `${His} cock is now so huge that further drug enhancement will not increase its size. <span class="yellow">${His} drug regimen has been ended.</span> `;
+						slave.drugs = "no drugs";
+					} else {
+						if (slave.geneMods.NCS === 0) {
+							r += `<span class="lime">${His} cock grows painfully,</span> becoming both longer and girthier. `;
+							slave.dick += 1;
+						} else if (jsRandom(1, (20 - slave.dick)) > 12) {
+							r += `<span class="lime">${His} cock grows painfully,</span> becoming both longer and girthier, depsite ${his} <span class="orange">NCS.</span> `;
+							slave.dick += 1;
+						} else {
+							r += `The treatment fails to overcome ${his} <span class="orange">NCS</span> and ${his} cock fails to grow. `;
+						}
+					}
+				} else {
+					r += ` ${He} receives <span class="lime">direct injections of hyper growth hormones, right into ${his} clit.</span>`;
+					slave.chem += 2;
+					if ((slave.clit === 5)) {
+						r += ` ${His} clit is now so huge that further drug enhancement will not increase its size. <span class="yellow">${His} drug regimen has been ended.</span>`;
+						slave.drugs = "no drugs";
+					} else {
+						if (slave.geneMods.NCS === 0) {
+							r += ` <span class="lime">${His} clit grows painfully,</span> becoming both longer and girthier.`;
+							slave.clit += 1;
+						} else if (jsRandom(1, (16 - slave.clit)) > 10) {
+							r += ` <span class="lime">${His} clit grows painfully,</span> becoming both longer and girthier, despite ${his} <span class="orange">NCS.</span>`;
+							slave.clit += 1;
+						} else {
+							r += ` The treatment does not overcome ${his} <span class="orange">NCS</span> and ${his} clit fails to grow.`;
+						}
+					}
+				}
+				break;
+			case "testicle enhancement":
+			case "intensive testicle enhancement":
+				if (slave.balls < 10) {
+					growth = 60 - (V.injectionUpgrade * 10);
+					if (intensive) {
+						growth -= 20;
+					}
+					if (slave.geneMods.NCS === 1) {
+						growth += 30;
+					}
+					if (jsRandom(1, 100) > growth + (slave.balls * 5)) {
+						r += ` <span class="lime">${His} balls swell painfully.</span>`;
+						slave.balls++;
+					} else {
+						r += ` Despite being filled with testicle enhancers and painfully swollen with resultant cum overproduction, ${his} balls do not grow.`;
+					}
+					if (slave.dick === 1 && slave.geneMods.NCS === 0) {
+						if (slave.scrotum > 0) {
+							r += ` As a side effect of the testicle enhancement drugs, <span class="lime">${his} micropenis grows,</span> becoming merely tiny.`;
+							slave.dick++;
+						}
+					}
+				}
+				break;
+			case "hyper testicle enhancement":
+				r += ` ${He} receives <span class="lime">direct injections of hyper growth hormones, right into ${his} testicles</span> forcing them to swell with cum overproduction.`;
+				slave.chem += 2;
+				if (slave.balls >= 125) {
+					r += ` ${His} balls are now so immense that further drug enhancement will not increase their size. However, leaving ${him} on them will still stimulate cum production.`;
+				} else if (slave.balls < 125) {
+					if (slave.geneMods.NCS === 0) {
+						r += ` <span class="lime">${His} balls swell painfully.</span>`;
+						slave.balls += 2;
+					} else if (jsRandom(1, 400 - slave.balls) > 200) {
+						r += ` <span class="lime">${His} balls swell painfully,</span> despite ${his} <span class="orange">NCS.</span>`;
+						slave.balls += 1;
+					} else {
+						r += ` The treatment fails to overcome ${his} <span class="orange">NCS</span> and ${his} balls fail to grow.`;
+					}
+				}
+				break;
+			case "steroids":
+				if (slave.geneMods.NCS === 0 || jsRandom(1, 100) > 50) {
+					if (slave.dick === 0 && jsRandom(1, 100) > 40 + (slave.clit * 10)) {
+						r += ` The gear ${he}'s on <span class="lime">increases the size of ${his} clit.</span>`;
+						slave.clit += 1;
+					} else if (slave.dick !== 0 && slave.dick < 3 && jsRandom(1, 100) > 95) {
+						r += ` The gear ${he}'s on <span class="lime">increases the size of ${his} penis.</span>`;
+						slave.dick += 1;
+					} else if (slave.faceShape !== "masculine" && slave.faceShape !== "androgynous" && jsRandom(1, 100) > 95) {
+						r += ` The gear ${he}'s on <span class="orange">hardens ${his} face into androgyny.</span>`;
+						slave.faceShape = "androgynous";
+					} else if (slave.balls !== 0 && slave.scrotum !== 0 && slave.balls < 3 && jsRandom(1, 100) > 95) {
+						r += ` The gear ${he}'s on <span class="lime">increases the size of ${his} balls.</span>`;
+						slave.balls += 1;
+					} else if (jsRandom(1, 100) > 110 - (slave.anus * 10) && slave.geneMods.rapidCellGrowth !== 1) {
+						r += ` The steroids ${he}'s on have an effect on ${his} stretched anal muscles, giving ${him} a <span class="lime">tighter butthole.</span>`;
+						slave.anus -= 1;
+					} else if (jsRandom(1, 100) > 110 - (slave.vagina * 10) && slave.geneMods.rapidCellGrowth !== 1) {
+						r += ` The steroids ${he}'s on have an effect on ${his} vaginal muscles, giving ${him} a <span class="lime">tighter pussy.</span>`;
+						slave.vagina -= 1;
+					} else if (slave.face-slave.faceImplant > 10 && jsRandom(1, 100) > 95) {
+						r += ` The gear ${he}'s on <span class="orange">hardens ${his} pretty face a little.</span>`;
+						slave.face -= 5;
+					}
+				}
+				break;
+			case "anti-aging cream":
+				if ((slave.visualAge <= 18)) {
+					r += ` ${His} outward age has regressed to the point that the creams will have little effect. Since there is no gain for further treatment, <span class="yellow">${his} drug regimen has been ended.</span>`;
+					slave.drugs = "no drugs";
+				} else {
+					r += ` The skin creams <span class="lime">soothe ${his} aging skin</span> leaving ${him} looking younger, though the effects are only skin deep.`;
+					slave.visualAge -= 1;
+				}
+				if (V.arcologies[0].FSYouthPreferentialist !== "unset") {
+					if (slave.visualAge > 30) {
+						r += ` ${He} <span class="mediumaquamarine">trusts you more</span> for allowing ${him} to fit in better with society and not be singled out for ${his} looks.`;
+						slave.trust += 2;
+					}
+				}
+				if (V.arcologies[0].FSMaturityPreferentialist !== "unset") {
+					if (slave.visualAge > 30) {
+						r += ` ${He} is <span class="gold">terrified</span> that ${his} fading age will single ${him} out for abuse in your society.`;
+						slave.trust -= 2;
+					}
+				}
+				break;
+			case "super fertility drugs":
+				if (slave.pregKnown === 1) {
+					if (slave.geneticQuirks.superfetation === 2 && V.geneticMappingUpgrade !== 0) {
+						r += ` ${He}'s already pregnant, but combined with ${his} superfetation the fertility drugs will cause ${him} multiple pregnancies.`;
+					} else {
+						r += ` <span class="yellow">${He}'s already pregnant, so the fertility drugs ${he}'s on do ${him} no good.</span>`;
+					}
+				} else if (slave.pregWeek < 0) {
+					r += ` ${He}'s still recovering from a recent pregnancy, so the fertility drugs ${he}'s on do ${him} little good.`;
+				} else if (slave.preg > 1) {
+					r += ` Despite being on intense fertility drugs, ${he} shows no signs of increased fertility. Cursory tests reveal that <span class="lime">${he} has a bun already in the oven.</span>`;
+					slave.pregKnown = 1;
+				} else if (slave.vagina === -1 && slave.mpreg !== 1) {
+					if (slave.lactation === 0) {
+						r += ` Unfortunately, it's impossible to fuck ${his} asshole pregnant, limiting the potential impact of the fertility drugs ${he}'s on to ${his} boobs.`;
+					} else {
+						r += ` The fertility drugs ${he}'s on are pointless, since ${he}'s already lactating and it's impossible to impregnate ${his} butthole. That's no reason not to try, of course.`;
+					}
+				} else if (slave.preg < -1) {
+					r += ` ${He}'s sterile, so the fertility drugs ${he}'s on do ${him} no good.`;
+				} else if (slave.ovaries === 0 && slave.mpreg !== 1) {
+					r += ` ${He}'s barren, so the fertility drugs ${he}'s on do ${him} no good.`;
+				} else if (slave.pubertyXX === 0 && (slave.ovaries === 1 || slave.mpreg === 1)) {
+					r += ` ${He}'s prepubescent, so the fertility drugs ${he}'s on do ${him} no good.`;
+				} else if (slave.preg === -1) {
+					r += ` ${He}'s on contraceptives, so the fertility drugs ${he}'s on do ${him} no good.`;
+				} else {
+					r += ` ${He}'s on super fertility drugs, so ${he} is more likely to conceive, and will have multiple pregnancy.`;
+				}
+				if (slave.geneMods.NCS === 0) {
+					if (slave.lactation === 0 && jsRandom(0, 50) < slave.health.condition) {
+						r += ` The hormonal changes produced by the fertility drugs have the side effect of <span class="lime">inducing lactation,</span> indistinguishable from natural lactation.`;
+						slave.lactation = 1;
+						slave.lactationDuration = 1;
+					}
+				}
+				if (slave.attrXY < 100 && jsRandom(0, 10) < slave.health.condition) {
+					r += ` The hormonal changes produced by the fertility drugs cause ${him} to begin <span class="green">finding men more attractive.</span>`;
+					slave.attrXY += jsRandom(5, 10);
+				}
+				if (slave.energy < 85 && jsRandom(0, 10) < slave.health.condition) {
+					r += ` The hormonal changes produced by the fertility drugs cause ${him} to <span class="green">begin craving sex more.</span>`;
+					slave.energy += 2;
+				}
+				break;
+			case "fertility drugs":
+				if (slave.pregKnown === 1) {
+					if (slave.geneticQuirks.superfetation === 2 && V.geneticMappingUpgrade !== 0) {
+						r += ` ${He}'s already pregnant, but combined with ${his} superfetation the fertility drugs are likely to cause ${him} multiple pregnancies.`;
+					} else {
+						r += ` <span class="yellow">${He}'s already pregnant, so the fertility drugs ${he}'s on do ${him} no good.</span>`;
+					}
+				} else if (slave.pregWeek < 0) {
+					r += ` ${He}'s still recovering from a recent pregnancy, so the fertility drugs ${he}'s on do ${him} little good.`;
+				} else if (slave.preg > 1) {
+					r += ` Despite being on intense fertility drugs, ${he} shows no signs of increased fertility. Cursory tests reveal that <span class="lime">${he} has a bun already in the oven.</span>`;
+					slave.pregKnown = 1;
+				} else if (slave.vagina === -1 && slave.mpreg !== 1) {
+					if (slave.lactation === 0) {
+						r += ` Unfortunately, it's impossible to fuck ${his} asshole pregnant, limiting the potential impact of the fertility drugs ${he}'s on to ${his} boobs.`;
+					} else {
+						r += ` The fertility drugs ${he}'s on are pointless, since ${he}'s already lactating and it's impossible to impregnate ${his} butthole. That's no reason not to try, of course.`;
+					}
+				} else if (slave.preg < -1) {
+					r += `${He}'s sterile, so the fertility drugs ${he}'s on do ${him} no good.`;
+				} else if (slave.ovaries === 0 && slave.mpreg !== 1) {
+					r += ` ${He}'s barren, so the fertility drugs ${he}'s on do ${him} no good.`;
+				} else if (slave.pubertyXX === 0 && (slave.ovaries === 1 || slave.mpreg === 1)) {
+					r += ` ${He}'s prepubescent, so the fertility drugs ${he}'s on do ${him} no good.`;
+				} else if (slave.preg === -1) {
+					r += ` ${He}'s on contraceptives, so the fertility drugs ${he}'s on do ${him} no good.`;
+				} else {
+					r += ` ${He}'s on fertility drugs, so ${he} is more likely to conceive, and may experience multiple pregnancy.`;
+				}
+				if (slave.geneMods.NCS === 0) {
+					if (slave.lactation === 0 && jsRandom(0, 100) < slave.health.condition) {
+						r += ` The hormonal changes produced by the fertility drugs have the side effect of <span class="lime">inducing lactation,</span> indistinguishable from natural lactation.`;
+						slave.lactation = 1;
+						slave.lactationDuration = 1;
+					}
+				}
+				break;
+			case "appetite suppressors":
+				if (slave.weight <= -95) {
+					r += ` Since ${his} body has no weight left to shed, ${he} no longer needs appetite suppressors to maintain it; <span class="yellow">${his} drug regimen has been ended.</span>`;
+					slave.drugs = "no drugs";
+				} else {
+					switch (slave.diet) {
+						case "slimming":
+						case "restricted":
+							r += ` Since ${he} is already on a diet that favors weight loss, ${his} reduced appetite allows ${his} body <span class="lime">to shed pounds</span> even more effectively.`;
+							slave.weight -= 5;
+							break;
+						case "fattening":
+							r += ` Since ${he} is on a diet that favors weight gain, ${his} reduced appetite is counter productive; <span class="yellow">${his} drug regimen has been ended.</span>`;
+							slave.drugs = "no drugs";
+							break;
+						default:
+							r += ` The appetite suppressors encourage ${him} to eat less at meal time, gradually causing ${him} to <span class="lime">lose weight.</span>`;
+							slave.weight -= 2;
+							break;
+					}
+				}
+				break;
+			case "penis atrophiers":
+				r += ` ${He} receives <span class="lime">direct injections of atrophiers right into ${his} penis,</span> causing ${his} body to begin pulling resources from it`;
+				if (slave.geneMods.NCS === 1) {
+					r += `; ${his} <span class="orange">NCS</span> amplifies their effectiveness`;
+				}
+				r += `.`;
+				shrinkage = 0;
+				if (slave.dick === 1) {
+					r += ` ${His} penis is now so minuscule that further drug use will fail to shrink it further; <span class="yellow">${his} drug regimen has been ended.</span>`;
+					slave.drugs = "no drugs";
+				} else if (slave.dick >= 20) {
+					r += ` <span class="lime">${His} cock shrinks painfully,</span> becoming massively shorter and thinner.`;
+					shrinkage = 3;
+				} else if (slave.dick >= 10) {
+					r += ` <span class="lime">${His} cock shrinks painfully,</span> becoming shorter and thinner.`;
+					shrinkage = 2;
+				} else if ((slave.geneMods.NCS === 1) || (jsRandom(1, 100) > 40 - (V.injectionUpgrade * 10) - (slave.dick * 5) && slave.dick > 1)) {
+					r += ` <span class="lime">${His} cock shrinks painfully,</span> becoming shorter and thinner.`;
+					shrinkage = 1;
+				}
+				if (slave.geneMods.NCS === 1 && slave.dick > 2) {
+					shrinkage *= 2;
+				}
+				slave.dick -= shrinkage;
+				break;
+			case "testicle atrophiers":
+				r += ` ${He} receives <span class="lime">direct injections of atrophiers right into ${his} testicles,</span> causing ${his} body to begin pulling resources from them`;
+				if (slave.geneMods.NCS === 1) {
+					r += `; ${his} <span class="orange">NCS</span> amplifies their effectiveness`;
+				}
+				r += `.`;
+				shrinkage = 0;
+				if (slave.balls === 1) {
+					r += ` ${His} balls are now so minuscule that further drug use will fail to shrink them further; <span class="yellow">${his} drug regimen has been ended.</span>`;
+					slave.drugs = "no drugs";
+				} else if (slave.balls >= 100) {
+					r += ` <span class="lime">${His} balls shrink painfully,</span> becoming massively smaller and leaving ${his} scrotum looser.`;
+					shrinkage = 5;
+				} else if (slave.balls >= 80) {
+					r += ` <span class="lime">${His} balls shrink painfully,</span> becoming massively smaller and leaving ${his} scrotum looser.`;
+					shrinkage = 4;
+				} else if (slave.balls >= 60) {
+					r += ` <span class="lime">${His} balls shrink painfully,</span> becoming massively smaller and leaving ${his} scrotum looser.`;
+					shrinkage = 3;
+				} else if (slave.balls >= 40) {
+					r += ` <span class="lime">${His} balls shrink painfully,</span> becoming much smaller and leaving ${his} scrotum looser.`;
+					shrinkage = 2;
+				} else if (slave.balls >= 20) {
+					r += ` <span class="lime">${His} balls shrink painfully,</span> becoming smaller and leaving ${his} scrotum looser.`;
+					shrinkage = 1;
+				} else if ((slave.geneMods.NCS === 1) || (jsRandom(1, 100) > 40 - (V.injectionUpgrade * 10) - (slave.balls * 2) && slave.balls > 1)) {
+					r += ` <span class="lime">${His} balls shrink painfully,</span> becoming smaller and leaving ${his} scrotum looser.`;
+					shrinkage = 1;
+				}
+				if (slave.geneMods.NCS === 1 && slave.balls > 2) {
+					shrinkage *= 2;
+				}
+				slave.balls -= shrinkage;
+				break;
+			case "clitoris atrophiers":
+				r += ` ${He} receives <span class="lime">direct injections of atrophiers right into ${his} clitoris,</span> causing ${his} body to begin pulling resources from it`;
+				if (slave.geneMods.NCS === 1) {
+					r += `; ${his} <span class="orange">NCS</span> amplifies their effectiveness`;
+				}
+				r += `.`;
+				if (slave.clit === 0) {
+					r += ` ${His} clit is now so minuscule that further drug use will fail to shrink it further; <span class="yellow">${his} drug regimen has been ended.</span>`;
+					slave.drugs = "no drugs";
+				} else if ((slave.geneMods.NCS === 1) || (jsRandom(1, 100) > 60 - (V.injectionUpgrade * 10) - (slave.clit * 5) && slave.clit > 0)) {
+					r += ` <span class="lime">${His} clit shrinks painfully,</span> becoming smaller.`;
+					slave.clit -= 1;
+				}
+				if (slave.geneMods.NCS === 1 && slave.clit > 2) {
+					slave.clit -= 1;
+				}
+				break;
+			case "labia atrophiers":
+				r += ` ${He} receives <span class="lime">direct injections of atrophiers right into ${his} labia majora,</span> causing ${his} body to begin pulling resources from them`;
+				if (slave.geneMods.NCS === 1) {
+					r += `; ${his} <span class="orange">NCS</span> amplifies their effectiveness`;
+				}
+				r += `.`;
+				if (slave.labia === 0) {
+					r += ` ${His} labia are now so minuscule that further drug use will fail to shrink them further; <span class="yellow">${his} drug regimen has been ended.</span>`;
+					slave.drugs = "no drugs";
+				} else if ((slave.geneMods.NCS === 1) || (jsRandom(1, 100) > 60 - (V.injectionUpgrade * 10) - (slave.labia * 5) && slave.labia > 0)) {
+					r += ` <span class="lime">${His} labia shrink painfully,</span> becoming smaller. `;
+					slave.labia -= 1;
+				}
+				if (slave.geneMods.NCS === 1 && slave.labia > 2) {
+					slave.labia -= 1;
+				}
+				break;
+			case "nipple atrophiers":
+				r += ` ${He} receives <span class="lime">direct injections of atrophiers right into ${his} nipples,</span> causing ${his} body to begin pulling resources from it`;
+				if (slave.geneMods.NCS === 1) {
+					r += `; ${his} <span class="orange">NCS</span> amplifies their effectiveness`;
+				}
+				r += `.`;
+				switch (slave.nipples) {
+					case "huge":
+						if ((slave.geneMods.NCS === 1) || (jsRandom(1, 100) > 60 - (V.injectionUpgrade * 15))) {
+							r += ` <span class="lime">${His} nipples shrink painfully,</span> becoming smaller and puffy.`;
+							slave.nipples = "puffy";
+						}
+						break;
+					case "puffy":
+						if ((slave.geneMods.NCS === 1) || (jsRandom(1, 100) > 60 - (V.injectionUpgrade * 15))) {
+							r += ` <span class="lime">${His} nipples shrink painfully,</span> becoming smaller and cuter.`;
+							slave.nipples = "cute";
+						}
+						break;
+					case "cute":
+						if ((slave.geneMods.NCS === 1) || (jsRandom(1, 100) > 60 - (V.injectionUpgrade * 15))) {
+							r += ` <span class="lime">${His} nipples shrink painfully,</span> becoming tiny.`;
+							slave.nipples = "tiny";
+						}
+						break;
+					default:
+						r += ` ${His} nipples are now so small that further drug use will fail to shrink them further; <span class="yellow">${his} drug regimen has been ended.</span>`;
+						slave.drugs = "no drugs";
+						break;
+				}
+				break;
+			case "lip atrophiers":
+				r += ` ${He} receives <span class="lime">direct injections of atrophiers right into ${his} lips,</span> causing ${his} body to begin pulling resources from them`;
+				if (slave.geneMods.NCS === 1) {
+					r += `; ${his} <span class="orange">NCS</span> amplifies the effectiveness`;
+				}
+				r += `.`;
+				shrinkage = 0;
+				if ((slave.lips - slave.lipsImplant) === 0) {
+					r += ` ${His} natural lips are now so thin that further drug use will fail to shrink them further; <span class="yellow">${his} drug regimen has been ended.</span>`;
+					slave.drugs = "no drugs";
+				} else if ((slave.lips - slave.lipsImplant) >= 70) {
+					r += ` <span class="lime">${His} natural lips shrink painfully,</span> becoming massively smaller and thinner.`;
+					shrinkage = 5;
+				} else if ((slave.lips - slave.lipsImplant) >= 50) {
+					r += ` <span class="lime">${His} natural lips shrink painfully,</span> becoming smaller and thinner.`;
+					shrinkage = 3;
+				} else if ((slave.lips - slave.lipsImplant) >= 20) {
+					r += ` <span class="lime">${His} natural lips shrink painfully,</span> becoming smaller and thinner.`;
+					shrinkage = 1;
+				} else if ((slave.geneMods.NCS === 1) || (jsRandom(1, 100) > (40 - (V.injectionUpgrade * 10) - (slave.lips - slave.lipsImplant)) && (slave.lips - slave.lipsImplant) > 0)) {
+					r += ` <span class="lime">${His} natural lips shrink painfully,</span> becoming smaller and thinner.`;
+					shrinkage = 1;
+				}
+				if (slave.geneMods.NCS === 1 && slave.lipsImplant > 1) {
+					shrinkage *= 2;
+				}
+				slave.lips -= shrinkage;
+				break;
+			case "breast redistributors":
+				r += ` ${He} receives <span class="lime">direct injections of fat redistributors right into ${his}`;
+				if (gigantomastiaMod !== 3) {
+					r += ` breasts, causing ${his} body to begin moving fatty tissue from them to ${his} core`;
+					if (slave.geneMods.NCS === 1) {
+						r += `; ${his} <span class="orange">NCS</span> amplifies the effectiveness</span>`;
+					}
+					r += `.`;
+					let factor = 0;
+					if (boobSize <= 100) {
+						r += `${His} natural breast tissue is now so thin that further drug use will fail to shrink it further; <span class="yellow">${his} drug regimen has been ended.</span>`;
+						slave.drugs = "no drugs";
+					} else if (slave.weight >= 200) {
+						r += `${He} is now so immensely obese ${his} health is greatly at risk; <span class="yellow">${his} drug regimen has been ended.</span>`;
+						slave.drugs = "no drugs";
+					} else if (boobSize >= 20000) {
+						r += `<span class="lime">${His} breasts shrink painfully,</span> becoming massively smaller while ${his} <span class="orange">waistline swells tremendously.</span>`;
+						factor = 20;
+					} else if (boobSize >= 10000) {
+						r += `<span class="lime">${His} breasts shrink painfully,</span> becoming greatly smaller while ${his} <span class="orange">waistline swells.</span>`;
+						factor = 10;
+					} else if (boobSize >= 5000) {
+						r += `<span class="lime">${His} breasts shrink painfully,</span> becoming smaller while ${his} <span class="orange">waistline swells.</span>`;
+						factor = 5;
+					} else if (boobSize >= 1000) {
+						r += `<span class="lime">${His} breasts shrink painfully,</span> becoming smaller while ${his} <span class="orange">waistline grows.</span>`;
+						factor = 3;
+					} else if (boobSize > 100) {
+						r += `<span class="lime">${His} breasts shrink painfully,</span> becoming smaller while ${his} <span class="orange">waistline grows slightly.</span>`;
+						factor = 1;
+					}
+					slave.weight += factor;
+					if (slave.geneMods.NCS === 1 && boobSize > 200) {
+						factor *= 2;
+					}
+					if (gigantomastiaMod === 2) {
+						factor = 1;
+						if (V.geneticMappingUpgrade >= 1) {
+							r += `However, <span class="orange">${his} gigantomastia inhibits ${his} breast loss.</span>`;
+						} else {
+							r += `However, <span class="orange">${his} breasts do not shrink proportionately to ${his} stomach's growth.</span>`;
+						}
+					}
+					slave.boobs -= 100 * factor;
+				} else if (V.geneticMappingUpgrade >= 1) {
+					r += ` breasts to no avail; ${his} body refuses to allow ${his} breasts to shrink, and as such, <span class="yellow">${his} drug regimen has been ended.</span>`;
+				} else {
+					r += ` breasts to no avail; <span class="yellow">${his} drug regimen has been ended.</span>`;
+				}
+				break;
+			case "butt redistributors":
+				r += ` ${He} receives <span class="lime">direct injections of fat redistributors right into ${his} buttocks,</span> causing ${his} body to begin moving fatty tissue from it to ${his} core`;
+				if (slave.geneMods.NCS === 1 && rearLipedemaMod !== 2) {
+					r += `; ${his} <span class="orange">NCS</span> amplifies the effectiveness`;
+				}
+				r += `.`;
+				if (buttSize <= 0) {
+					r += ` ${His} natural ass flesh is now so thin that further drug use will fail to shrink it further; <span class="yellow">${his} drug regimen has been ended.</span>`;
+					slave.drugs = "no drugs";
+				} else if (slave.weight >= 200) {
+					r += ` ${He} is now so immensely obese ${his} health is greatly at risk; <span class="yellow">${his} drug regimen has been ended.</span>`;
+					slave.drugs = "no drugs";
+				} else if (rearLipedemaMod === 2) {
+					r += ` ${His} <span class="orange">waistline swells slightly,</span> but <span class="lime">${his} butt barely loses any mass</span>`;
+					if (V.geneticMappingUpgrade >= 1) {
+						r += ` due to ${his} rear lipedema putting it right back.`;
+					} else {
+						r += ` for an unknown reason.`;
+					}
+					slave.butt -= .2;
+					slave.weight += 5;
+				} else if (buttSize >= 15) {
+					r += ` <span class="lime">${His} butt shrinks painfully,</span> becoming massively smaller while ${his} <span class="orange">waistline swells tremendously.</span>`;
+					slave.butt -= 2;
+					slave.weight += 25;
+				} else if (buttSize >= 10) {
+					r += ` <span class="lime">${His} butt shrinks painfully,</span> becoming smaller while ${his} <span class="orange">waistline swells tremendously.</span>`;
+					slave.butt -= 1;
+					slave.weight += 20;
+				} else if ((slave.geneMods.NCS === 1) || (jsRandom(1, 100) > (50 - (V.injectionUpgrade * 10) - buttSize))) {
+					r += ` <span class="lime">${His} butt shrinks painfully,</span> becoming smaller while ${his} <span class="orange">waistline swells greatly.</span>`;
+					slave.butt -= 1;
+					slave.weight += 10;
+				}
+				slave.butt = Math.clamp(slave.butt, 0, 20);
+				break;
+			case "sag-B-gone":
+				if (slave.assignment === "be your concubine") {
+					r += ` Before bed and when you awake, you take the time sensually <span class="coral">massage sag-B-gone into ${his} breasts,</span> which, while enjoyable to the both of you, doesn't seem to be doing much.`;
+				} else if (slave.assignment === "please you") {
+					r += ` Whenever you have a free moment you take that time to <span class="coral">massage sag-B-gone into ${his} breasts,</span> which, while enjoyable, doesn't seem to be doing much.`;
+				} else {
+					r += ` ${He} is required to frequently <span class="coral">massage sag-B-gone into ${his} breasts,</span> which, while enjoyable to watch, doesn't seem to be doing much.`;
+				}
+				break;
+		}
+		if (slave.drugs !== "no drugs" && slave.drugs !== "appetite suppressors") {
+			if (V.arcologies[0].FSBodyPuristLaw === 0) {
+				if (V.healthyDrugsUpgrade === 0) {
+					slave.chem += 1.5;
+					if (intensive) {
+						slave.chem += 1;
+					}
+				}
+			}
+		}
+		if (intensive) {
+			r += ` Such reckless doping is dangerous and <span class="red">unhealthy.</span>`;
+			healthDamage(slave, jsRandom(3, 5));
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 *
+	 */
+	function pregnancyDrugEffects(slave) {
+		switch (slave.pregControl) {
+			case "slow gestation":
+				slave.chem += 1;
+				if (slave.preg >= slave.pregData.normalBirth) {
+					r += ` ${He} is full term; gestation restriction agents <span class="red">can't suppress labor</span> and ${his} regimen is ended to prevent health damage.`;
+					slave.pregControl = "none";
+				} else if (slave.preg >= slave.pregData.normalBirth / 2.5) {
+					r += ` ${His} belly feels very docile, ${his} gestation rate is <span class="coral">greatly reduced.</span>`;
+				} else if (slave.preg > 0) {
+					r += ` ${His} gestation rate is <span class="coral">greatly reduced,</span> delaying how long it will be until ${his} pregnancy is visible.`;
+				}
+				break;
+			case "speed up":
+				slave.chem += 2;
+				if ((slave.assignment !== "get treatment in the clinic" || V.Nurse === 0) && slave.geneMods.rapidCellGrowth !== 1) {
+					r += ` ${His} `;
+					if (slave.pregType > 1) {
+						r += `children are`;
+					} else {
+						r += `child is`;
+					}
+					r += ` growing rapidly within ${his} womb, far faster than ${his} <span class="red">poor body can handle.</span>`;
+					if (slave.pregType >= 10 && slave.bellyPreg >= 100000) {
+						r += ` ${His} rate of growth is straining ${his} womb; ${he} is <span class="red">at risk of bursting!</span>`;
+					}
+					healthDamage(slave, (slave.preg + slave.pregType - slave.bellySag));
+					if (slave.health.condition < -90) {
+						r += ` ${His} critically poor health <span class="orange">caused ${him} to miscarry.</span>`;
+						if (lastPregRule(slave, V.defaultRules)) {
+							slave.preg = -1;
+						} else {
+							slave.preg = 0;
+						}
+						TerminatePregnancy(slave);
+						if (slave.fetish !== "mindbroken" && slave.fuckdoll === 0) {
+							r += ` ${He} is`;
+							if (slave.devotion < -50) {
+								r += ` <span class="mediumorchid">filled with violent, consuming hatred</span> and <span class="gold">fear.</span> Even though ${he} knew ${his} baby was destined for a slave orphanage, it seems ${he} cared for it and views you as its killer.`;
+								slave.devotion -= 25, slave.trust -= 25;
+							} else if (slave.devotion < -20) {
+								r += ` <span class="mediumorchid">afflicted by desperate, inconsolable grief</span> and <span class="gold">horror.</span> Even though ${he} knew ${his} baby was destined for a slave orphanage, it seems ${he} cared for it.`;
+								slave.devotion -= 10, slave.trust -= 20;
+							} else if (slave.devotion <= 20) {
+								r += ` <span class="mediumorchid">consumed by enduring sorrow</span> and <span class="gold">horror.</span> Even though ${he} knew ${his} baby was destined for a slave orphanage, it seems ${he} cared for it.`;
+								slave.devotion -= 5, slave.trust -= 5;
+							} else if (slave.devotion <= 50) {
+								r += ` dully obedient. ${He} has been broken to slave life so thoroughly that even this is neither surprising nor affecting.`;
+							} else {
+								r += ` <span class="hotpink">pleased by this stark development,</span> since ${he} is so attentive to your will. ${He} also expects ${he} will be able to fuck better now once ${his} health recovers.`;
+								slave.devotion += 4;
+							}
+						}
+						if (slave.abortionTat > -1) {
+							slave.abortionTat++;
+							r += ` The temporary tattoo of a child has been replaced with ${his} ${ordinalSuffix(slave.abortionTat)} crossed out infant.`;
+							cashX(forceNeg(V.modCost), "slaveMod", slave);
+						}
+					}
+				}
+				break;
+			case "labor suppressors":
+				slave.chem += 2;
+				if (WombBirthReady(slave, slave.pregData.normalBirth * 1.5) > 0) {
+					healthDamage(slave, 20);
+					slave.labor = 1;
+					slave.induce = 1;
+					V.birthee = 1;
+					r += ` ${He} has been ready to give birth for some time now. Suppressing birth for so long <span class="red">greatly affects ${his} health.</span> ${He} may <span class="red">have trouble</span> giving birth to ${his} oversized child`;
+					if (slave.pregType > 1) {
+						r += `ren`;
+					}
+					r += `. ${He} seems to be in distress, ${his} body is <span class="red">forcing ${his} child`;
+					if (slave.pregType > 1) {
+						r += `ren`;
+					}
+					r += ` out!</span>`;
+				} else if (WombBirthReady(slave, slave.pregData.normalBirth * 1.25) > 0) {
+					healthDamage(slave, 20);
+					r += ` ${He} has been ready to give birth for some time now. Suppressing birth for so long <span class="red">greatly affects ${his} health.</span> ${He} may <span class="red">have trouble</span> giving birth to ${his} oversized child`;
+					if (slave.pregType > 1) {
+						r += `ren`;
+					}
+					r += `. `;
+				} else if (WombBirthReady(slave, slave.pregData.normalBirth) > 0) {
+					healthDamage(slave, 10);
+					r += ` Labor suppressing agents <span class="red">negatively affect ${his} health.</span> `;
+				}
+				break;
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 *
+	 */
+	function curativeEffects(slave) {
+		if ((slave.health.condition > 90)) {
+			r += ` ${His} health is already outstanding and cannot be improved with further drug treatment. <span class="yellow">${His} drug regimen has defaulted to preventatives.</span>`;
+			slave.curatives = 1;
+		} else if ((slave.assignment === "rest" || slave.assignment === "rest in the spa") && (slave.fetish !== "mindbroken")) {
+			if (slave.inflationType !== "curative" || slave.inflation === 0) {
+				r += ` The curatives ${he}'s taking synergize with rest, keeping ${him} asleep most of the time. This is an <span class="green">extremely effective health treatment.</span>`;
+			} else {
+				r += ` Since ${he} is usually slumbering soundly, the curatives are able to <span class="green">work more efficiently.</span>`;
+			}
+			improveCondition(slave, 4);
+		} else if (slave.health.condition < -20) {
+			r += ` <span class="green">${His} poor health rapidly improves</span> under drug treatment.`;
+			improveCondition(slave, 2);
+		} else {
+			r += ` <span class="green">${His} health improves</span> under curative treatment.`;
+		}
+		if (slave.fuckdoll === 0 && slave.fetish !== "mindbroken") {
+			r += ` ${He} <span class="mediumaquamarine">trusts you more</span> for giving ${him} access to expensive modern medicine.`;
+			slave.trust += 1;
+		}
+		improveCondition(slave, 6);
+		improveCondition(slave, V.curativeUpgrade * 6);
+		slave.chem += 1;
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 *
+	 */
+	function aphrodisiacEffects(slave) {
+		if (slave.aphrodisiacs > 1) {
+			r += ` The aphrodisiacs ${he}'s on `;
+			if (slave.energy <= 95) {
+				r += `<span class="green">rapidly boost ${his} sex drive.</span>`;
+				slave.energy += 5;
+			} else {
+				r += `can't improve ${his} absurd sex drive.`;
+			}
+			if (slave.fuckdoll === 0 && slave.fetish !== "mindbroken") {
+				r += ` They <span class="hotpink">increase ${his} acceptance</span> of sexual slavery.`;
+				slave.devotion += 5;
+			}
+			if (V.arcologies[0].FSBodyPuristLaw === 0 && V.healthyDrugsUpgrade === 0) {
+				r += ` Such a high dosage <span class="red">isn't healthy.</span>`;
+				healthDamage(slave, 5);
+			}
+			slave.chem += 1;
+		} else {
+			r += ` The aphrodisiacs ${he}'s on `;
+			if (slave.energy <= 95) {
+				r += `<span class="green">boost ${his} sex drive.</span>`;
+				slave.energy += 3;
+			} else {
+				r += `can't improve ${his} absurd sex drive.`;
+			}
+			if (slave.fuckdoll === 0 && slave.fetish !== "mindbroken") {
+				r += ` They <span class="hotpink">increase ${his} acceptance</span> of sexual slavery.`;
+				slave.devotion += 3;
+			}
+			slave.chem += 0.5;
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 *
+	 */
+	function healthAndWellness(slave) {
+		slave.chem = Math.clamp(slave.chem-0.5, 0, 1000);
+		// illness
+		if (slave.curatives < 2 && slave.inflationType !== "curative" && slave.assignment !== "rest in the spa" && slave.assignment !== "rest" && slave.assignment !== "get treatment in the clinic") {
+			if (slave.health.illness > 0) {
+				r += ` ${He} is `;
+				if (slave.health.illness > 4) {
+					r += `deathly`;
+				} else if (slave.health.illness > 3) {
+					r += `seriously`;
+				} else if (slave.health.illness < 2) {
+					r += `slightly`;
+				}
+				if (slave.fuckdoll === 0) {
+					if (slave.fetish === "mindbroken") {
+						r += ` ill, yet still continues to mindlessly carry out ${his} duties.`;
+					} else if (slave.health.illness < 2) {
+						r += ` ill, though not enough to complain about.`;
+					} else if (slave.devotion < 20) {
+						r += ` ill and <span class="mediumorchid">hates</span> having ${his} health issues <span class="gold">ignored.</span>`;
+						slave.devotion -= slave.health.illness * 2;
+						slave.trust -= slave.health.illness;
+					} else if (slave.devotion < 50) {
+						r += ` ill and <span class="mediumorchid">resents</span> being <span class="gold">denied</span> proper treatment.`;
+						slave.devotion -= slave.health.illness * 3;
+						slave.trust -= slave.health.illness * 2;
+					} else if (slave.health.illness > 3) {
+						r += ` ill and <span class="gold">struggles with</span> being withheld treatment.`;
+						slave.trust -= slave.health.illness * 3;
+					} else {
+						r += ` ill and does ${his} best to continue with ${his} duties out of dedication to you.`;
+					}
+				} else {
+					r += ` ill, triggering ${his} suit's preventative measures.`;
+				}
+			}
+			if (slave.fuckdoll === 0) {
+				if (slave.fetish !== "mindbroken") {
+					if (slave.health.condition < -50) {
+						r += ` It's difficult being so in such poor condition, and ${he} <span class="mediumorchid">resents you</span> for ignoring ${his} plight.`;
+						slave.devotion -= 2;
+					} else if ((slave.health.condition > 50)) {
+						r += ` ${He} understands that ${he} owes ${his} near-perfect health to you and <span class="hotpink">believes</span> that life with you is better than freedom in some ways.`;
+						slave.trust += 1;
+					}
+				}
+			}
+		}
+		illness(slave);
+		// tiredness
+		if (slave.drugs !== "stimulants" && slave.inflationType !== "stimulant") {
+			if (slave.assignment !== "rest in the spa" && slave.assignment !== "rest" && slave.assignment !== "get treatment in the clinic") {
+				if (slave.health.tired > 90) {
+					r += ` ${He} has been worked to the bone`;
+					if (slave.devotion < 20) {
+						r += ` and <span class="hotpink">bends a little more to your will,</span> while <span class="gold">fearing ${he}'ll never earn a reprieve</span> from toiling.`;
+						slave.devotion += 2;
+						slave.trust -= 2;
+					} else if (slave.devotion < 50) {
+						r += ` and can't help but <span class="gold">worry a little about ${his} well-being.</span>`;
+						slave.trust -= 1;
+					} else {
+						r += ` but ${he} carries on without reservations.`;
+					}
+				} else if (slave.health.tired > 60) {
+					r += ` ${He} is suffering from exhaustion`;
+					if (slave.devotion < 20) {
+						r += ` and it is <span class="hotpink">wearing away at ${his} resistance.</span>`;
+						slave.devotion += 1;
+					} else {
+						r += ` but ${he} tries not to let it show.`;
+					}
+				}
+			}
+		}
+		// addiction
+		if (slave.addict > 0) {
+			if (slave.aphrodisiacs > 0) {
+				slave.addict += slave.aphrodisiacs;
+			} else if ((slave.addict < 2)) {
+				r += ` ${He} has finally been <span class="cyan">weaned off aphrodisiacs.</span>`;
+				slave.addict = 0;
+			} else if (V.aphrodisiacUpgrade === 1) {
+				r += ` Substitutes produced by your advanced pharmaceutical fabricator protect ${him} from the negative effects of aphrodisiac withdrawal and even hasten the flushing of ${his} system.`;
+				slave.addict -= 2;
+			} else if (slave.inflationType !== "aphrodisiac") {
+				r += ` ${He} feels the effects of withdrawal from aphrodisiacs keenly, and ${he} is <span class="mediumorchid">bitterly resentful.</span>`;
+				slave.addict -= 2;
+				slave.devotion -= 10;
+			} else {
+				r += ` ${He} gets ${his} fix from ${his} aphrodisiac filled belly.`;
+			}
+		} else {
+			if (slave.aphrodisiacs > 0) {
+				if (jsRandom(1, 100) < 40 + (20 * slave.aphrodisiacs)) {
+					r += ` <span class="cyan">${He} has become an aphrodisiac addict.</span>`;
+					slave.addict = 1;
+				}
+			}
+		}
+		// suppository drug delivery
+		if (slave.fuckdoll === 0) {
+			if (V.suppository === 1) {
+				if ((slave.aphrodisiacs > 0) || (slave.curatives > 0) || (slave.drugs === "psychosuppressants") || (slave.drugs === "hormone enhancers") || (slave.drugs === "hormone blockers") || (slave.hormones !== 0)) {
+					if (slave.anus === 0) {
+						if (slave.fetish === "mindbroken") {
+							r += ` ${His} <span class="lime">virgin anus is broken in</span> by a callous machine, but ${he} didn't notice.`;
+						} else if (slave.devotion <= 20) {
+							r += ` ${His} <span class="lime">anal virginity is taken</span> by a machine whose sole purpose is to fuck drugs into ${him}; <span class="mediumorchid">an indignity ${he} does not take well.</span>`;
+							slave.devotion -= 10;
+						} else {
+							` ${His} <span class="lime">virgin anus is broken in</span> by a callous machine, but ${he} accepts such indignities as a part of life.`;
+						}
+						slave.anus = 1;
+					} else {
+						if (slave.fetish === "mindbroken") {
+							r += ` A reciprocating dildo pumps ${his} drug regime into ${him} each morning and night.`;
+						} else if (slave.sexualFlaw === "hates anal") {
+							if (jsRandom(1, 100) > 80) {
+								r += ` Getting buttfucked morning and night by reciprocating dildos that ejaculate ${his} drug regime forces ${him} to <span class="green">accept anal sex</span> as a fact of life.`;
+								slave.sexualFlaw = "none";
+							} else {
+								r += ` Getting buttfucked morning and night by reciprocating dildos that ejaculate ${his} drug regime <span class="mediumorchid">infuriates ${him},</span> since ${he} hates getting assraped.`;
+								slave.devotion -= 4;
+							}
+						} else if ((slave.fetish === "buttslut")) {
+							if (slave.fetishKnown === 0) {
+								r += ` Getting buttfucked morning and night by reciprocating dildos that ejaculate ${his} drug regime has revealed something: <span class="lightcoral">${he} likes it up the ass!</span>`;
+								slave.fetishKnown = 1;
+							} else if ((slave.fetishStrength <= 95) && (slave.devotion > 4)) {
+								r += ` Getting buttfucked morning and night by reciprocating dildos that ejaculate ${his} drug regime has <span class="lightcoral">deepened ${his} anal fixation.</span>`;
+								slave.fetishStrength += 5;
+							}
+						} else if (slave.fetish !== "buttslut") {
+							if (slave.devotion < -20) {
+								r += ` Getting buttfucked morning and night by reciprocating dildos that ejaculate ${his} drug regime <span class="mediumorchid">disgusts ${him}.</span>`;
+								slave.devotion -= 2;
+							} else if (fetishChangeChance(slave) > jsRandom(0, 100)) {
+								r += ` ${He} starts to look forward to getting buttfucked morning and night by reciprocating dildos that ejaculate ${his} drug regime; ${he}'s <span class="lightcoral">become anally fixated.</span>`;
+								slave.fetish = "buttslut";
+								slave.fetishKnown = 1;
+								slave.fetishStrength = 10;
+							} else {
+								r += ` A reciprocating dildo pumps ${his} drug regime into ${him} each morning and night.`;
+							}
+						}
+						if (slave.sexualQuirk === "painal queen") {
+							r += ` ${He} <span class="hotpink">secretly enjoys</span> being assraped by a machine twice a day.`;
+							slave.devotion += 1;
+						}
+						if (slave.anus === 1) {
+							if (jsRandom(1, 100) > 70) {
+								r += ` The regular machine anal <span class="lime">stretches out ${his} tight asshole.</span>`;
+								slave.anus += 1;
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 *
+	 */
+	function drugExpiry(slave) {
+		switch (slave.drugs) {
+			case "growth stimulants":
+				if (!canImproveHeight(slave)) {
+					r += ` ${His} body has already grown far past ${his} natural limits; further injections of stimulants will have no effect. <span class="yellow">${His} drug regimen has been ended.</span>`;
+					slave.height = Math.clamp(slave.height, 0, maxHeight(slave));
+					slave.drugs = "no drugs";
+				}
+				break;
+			case "breast injections":
+			case "intensive breast injections":
+				if (slave.boobs >= 50000) {
+					r += ` ${His} udders are now so huge that further A-HGH treatment will not increase their size. <span class="yellow">${His} drug regimen has been ended.</span>`;
+					slave.boobs = Math.clamp(slave.boobs, 0, 50000);
+					slave.drugs = "no drugs";
+				}
+				break;
+			case "butt injections":
+			case "intensive butt injections":
+				if (slave.butt >= 10) {
+					r += ` ${His} ass is now so huge that further A-HGH treatment will not increase its size. <span class="yellow">${His} drug regimen has been ended.</span>`;
+					slave.butt = Math.clamp(slave.butt, 0, 20);
+					slave.drugs = "no drugs";
+				}
+				break;
+			case "hyper butt injections":
+				if (slave.butt >= 20) {
+					r += ` ${His} ass is now so freakishly monstrous that further HA-HGH treatment will not increase its size. <span class="yellow">${His} drug regimen has been ended.</span>`;
+					slave.butt = Math.clamp(slave.butt, 0, 20);
+					slave.drugs = "no drugs";
+				}
+				break;
+			case "hyper breast injections":
+				if (slave.boobs >= 50000) {
+					r += ` ${His} udders are now so huge that further HA-HGH treatment will not increase their size. <span class="yellow">${His} drug regimen has been ended.</span>`;
+					slave.boobs = Math.clamp(slave.boobs, 0, 50000);
+					slave.drugs = "no drugs";
+				}
+				break;
+			case "lip injections":
+				if ((slave.lips > 95) || (slave.lips > 85 && V.seeExtreme !== 1)) {
+					r += ` ${His} lips are now so huge that further A-HGH treatment will not increase their size. <span class="yellow">${His} drug regimen has been ended.</span>`;
+					slave.drugs = "no drugs";
+				}
+				break;
+			case "penis enhancement":
+			case "intensive penis enhancement":
+				if (slave.dick >= 10) {
+					r += ` ${His} cock is now so huge that further drug enhancement will not increase its size. <span class="yellow">${His} drug regimen has been ended.</span>`;
+					slave.dick = Math.clamp(slave.dick, 0, 10);
+					slave.drugs = "no drugs";
+				} else if (slave.clit >= 5 && slave.dick === 0) {
+					r += ` ${His} clit is now so huge that further drug enhancement will not increase its size. <span class="yellow">${His} drug regimen has been ended.</span>`;
+					slave.clit = Math.clamp(slave.clit, 0, 5);
+					slave.drugs = "no drugs";
+				}
+				break;
+			case "testicle enhancement":
+			case "intensive testicle enhancement":
+				if (slave.balls >= 10) {
+					r += ` ${His} balls are now so huge that further drug enhancement will not increase their size. However, leaving ${him} on them will still stimulate cum production.`;
+				} else if (slave.balls >= 2 && slave.scrotum === 0) {
+					r += ` ${His} balls are now functionally sized, and cannot sustainably grow larger hidden within ${his} abdomen. <span class="yellow">${His} drug regimen has been ended.</span>`;
+					slave.balls = Math.clamp(slave.balls, 0, 2);
+					slave.drugs = "no drugs";
+				}
+				break;
+			case "psychosuppressants":
+				if (slave.intelligence < -95) {
+					r += ` ${He} is so moronic that drug treatment can't really make ${him} more willing to obey others than ${he} already is. <span class="yellow">${His} drug regimen has been ended.</span>`;
+					slave.drugs = "no drugs";
+				}
+				break;
+			case "psychostimulants":
+				if (!canImproveIntelligence(slave)) {
+					r += ` ${His} intelligence has been improved as much as a drink possibly can. <span class="yellow">${His} drug regimen has been ended.</span>`;
+					slave.drugs = "no drugs";
+				}
+				break;
+		}
+	}
+})();
diff --git a/src/endWeek/saServeThePublic.js b/src/endWeek/saServeThePublic.js
index 108fa3cbb26..b80a5c65499 100644
--- a/src/endWeek/saServeThePublic.js
+++ b/src/endWeek/saServeThePublic.js
@@ -27,6 +27,7 @@ window.saServeThePublic = (function saServeThePublic() {
 		arcology = V.arcologies[0];
 		r = ` `;
 		({
+			// eslint-disable-next-line no-unused-vars
 			he, him, his, hers, himself, girl, He, His, loli
 		} = getPronouns(slave));
 
diff --git a/src/endWeek/saTakeClasses.js b/src/endWeek/saTakeClasses.js
index 9080e9ebdfd..e8e7f0a001e 100644
--- a/src/endWeek/saTakeClasses.js
+++ b/src/endWeek/saTakeClasses.js
@@ -19,6 +19,7 @@ window.saTakeClasses = (function saTakeClasses() {
 		learning = 1;
 		teaching = 0;
 		({
+			// eslint-disable-next-line no-unused-vars
 			he, him, his, hers, himself, girl, He, His, loli
 		} = getPronouns(slave));
 
diff --git a/src/endWeek/saWhore.js b/src/endWeek/saWhore.js
index 1fac1a68a7a..a2221b84bf8 100644
--- a/src/endWeek/saWhore.js
+++ b/src/endWeek/saWhore.js
@@ -32,6 +32,7 @@ window.saWhore = (function saWhore() {
 		arcology = V.arcologies[0];
 		r = ` `;
 		({
+			// eslint-disable-next-line no-unused-vars
 			he, him, his, hers, himself, girl, He, His, loli
 		} = getPronouns(slave));
 
diff --git a/src/endWeek/saWorkAGloryHole.js b/src/endWeek/saWorkAGloryHole.js
index 54188fce925..b2aef70b900 100644
--- a/src/endWeek/saWorkAGloryHole.js
+++ b/src/endWeek/saWorkAGloryHole.js
@@ -26,6 +26,7 @@ window.saWorkAGloryHole = (function saWorkAGloryHole() {
 		T = State.temporary;
 		r = ``;
 		({
+			// eslint-disable-next-line no-unused-vars
 			he, him, his, hers, himself, boy, He, His
 		} = getPronouns(slave));
 		beauty = slave.sexAmount; /* This gets calculated during slaveAssignmentReport and stored on the slave for later use */
-- 
GitLab