From 2c5cb59a6eef5eb74bd72044a98fafa034776bde Mon Sep 17 00:00:00 2001
From: Skriv <skrivelese@gmail.com>
Date: Sat, 15 May 2021 22:23:20 +0000
Subject: [PATCH] RESS arcade sadist to js

---
 src/events/RESS/arcadeSadist.js | 290 ++++++++++++++++++++++++++++++++
 src/events/randomEvent.js       |   1 +
 src/js/eventSelectionJS.js      |  13 --
 src/uncategorized/RESS.tw       |  93 ----------
 4 files changed, 291 insertions(+), 106 deletions(-)
 create mode 100644 src/events/RESS/arcadeSadist.js

diff --git a/src/events/RESS/arcadeSadist.js b/src/events/RESS/arcadeSadist.js
new file mode 100644
index 00000000000..8a6e5530b1a
--- /dev/null
+++ b/src/events/RESS/arcadeSadist.js
@@ -0,0 +1,290 @@
+App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEvent {
+	eventPrerequisites() {
+		return [
+			() => App.Entity.facilities.arcade.established,
+			() => App.Entity.facilities.arcade.hasEmployees,
+		]; // always valid if sufficient actors can be cast successfully
+	}
+
+	actorPrerequisites() {
+		return [
+			[ // single event slave
+				s => s.fetish === "sadist",
+				s => s.fetishStrength > 20,
+				s => s.fetishKnown === 1,
+				hasAnyArms,
+				hasAnyLegs,
+				canTalk,
+				s => s.devotion > 50,
+				s => s.trust >= -20,
+				s => s.belly < 300000,
+			]
+		];
+	}
+
+	execute(node) {
+		/** @type {Array<App.Entity.SlaveState>} */
+		let [eventSlave] = this.actors.map(a => getSlave(a));
+		const {
+			He, he, his, him, himself, girl
+		} = getPronouns(eventSlave);
+		const {title: Master, say} = getEnunciation(eventSlave);
+
+		V.nextLink = "Next Week";
+
+		let artDiv = document.createElement("div"); // named container so we can replace it later
+		App.Events.drawEventArt(artDiv, eventSlave);
+		node.appendChild(artDiv);
+
+		let r = [];
+		r.push(`You happen to come across`);
+		r.push(contextualIntro(V.PC, eventSlave, "DOM"));
+		r.push(`during one of ${his} rest periods. ${He}'s lying on a couch in the slave areas,`);
+		if (canSee(eventSlave)) {
+			r.push(`staring at the ceiling above ${him}`);
+		} else {
+			r.push(`leaning back`);
+		}
+		r.push(`with a dreamy expression on ${his} face. ${He}'s`);
+		if (eventSlave.rules.release.masturbation === 1) {
+			r.push(`touching ${himself} idly.`);
+		} else {
+			r.push(`not allowed to touch ${himself}, but ${he}'s extremely aroused.`);
+		}
+		r.push(`Whatever's on ${his} mind, it's so absorbing that ${he} doesn't realize you're there until you're standing over ${him}.`);
+		App.Events.addParagraph(node, r);
+		r = [];
+
+		r.push(Spoken(eventSlave, `"Sorry, ${Master},"`), `he ${say}s apologetically,`);
+		if (eventSlave.belly >= 10000) {
+			r.push(`struggling`);
+		} else {
+			r.push(`scrambling`);
+		}
+		r.push(`to ${his} feet.`);
+		r.push(Spoken(eventSlave, `"I didn't notice you there."`));
+		if (canSee(eventSlave)) {
+			r.push(`Seeing your questioning look,`);
+		} else if (canHear(eventSlave)) {
+			r.push(`Hearing your lack of response,`);
+		} else {
+			r.push(`Sensing a request to continue,`);
+		}
+		r.push(`${he} explains ${himself} further.`);
+		r.push(Spoken(eventSlave, `"I was just thinking about, um, my favorite place. I can almost get off just by thinking about it."`));
+		r.push(`There's a wild, perverted gleam`);
+		if (canSee(eventSlave)) {
+			r.push(`in ${his} ${App.Desc.eyesColor(eventSlave)}.`);
+		} else {
+			r.push(`on ${his} face.`);
+		}
+		r.push(`${He}'s a confirmed sadist, so whatever ${his} favorite mental masturbation is probably quite strong.`);
+
+
+		App.Events.addParagraph(node, r);
+		App.Events.addResponses(node, [
+			new App.Events.Result(`Ask ${him} about ${his} fantasy`, fantasy),
+			new App.Events.Result(`Just fuck ${him}`, fuck),
+		]);
+
+		function fantasy() {
+			const frag = document.createDocumentFragment();
+			r = [];
+
+			const {hisU, heU} = getNonlocalPronouns(V.seeDicks).appendSuffix("U");
+
+			r.push(`You order ${him} to explain further.`);
+			r.push(Spoken(eventSlave, `"${Master},"`), `${he} ${say}s carefully,`, Spoken(eventSlave, `"it's ${V.arcadeName}. There's a specific place there, and, well, I can't describe it. It's in the service area under ${V.arcadeName}. Can I show you what I mean?"`));
+			r.push(`Intrigued, you order ${him} to show you the place ${he}'s talking about, and lead ${him} to ${V.arcadeName} through the access hallway. ${He} points to the service tunnel under one of the rows of inmates, which allows trusted slaves to clean up and perform maintenance.`);
+			if (eventSlave.belly >= 100000) {
+				r.push(`Once you've managed to shove the massive slut`);
+			} else if (eventSlave.belly >= 5000) {
+				r.push(`Once you've helped the`);
+				if (eventSlave.bellyPreg >= 3000) {
+					r.push(`gravid`);
+				} else {
+					r.push(`bloated`);
+				}
+				r.push(`${girl} fit`);
+			} else {
+				r.push(`Once you've led ${him}`);
+			}
+			r.push(`in there, ${he} stops and`);
+			if (canSee(eventSlave)) {
+				r.push(`watches`);
+			} else if (canHear(eventSlave)) {
+				r.push(`listens`);
+			} else {
+				r.push(`waits`);
+			}
+			if (V.PC.belly >= 100000) {
+				r.push(r.pop() + `as you struggle to join ${him} in the increasingly cramped space.`);
+			} else if (V.PC.belly >= 5000) {
+				r.push(r.pop() + `as you gently slip your motherly body in after ${him}.`);
+			} else {
+				r.push(r.pop() + ".");
+			}
+			r.push(`Inside the industrial access corridor, above you both, is a row of bodies. The slaves' faces and hips are pressed against the apertures that present their holes to customers, but the rest of them is visible from here.`);
+			App.Events.addParagraph(frag, r);
+			r = [];
+
+			r.push(`There is little noise; the slaves are closely restrained. Indeed, you have to look closely to see that they're being fucked at all. Here and there, though, there are signs. When someone fucks a slave's face, ${hisU} throat bulges, and ${heU} often gags and struggles a little within the restraints. When their`);
+			if (App.Entity.facilities.arcade.employees().some(s => s.vagina > 0)) {
+				r.push(`pussies`);
+			} else {
+				r.push(`assholes`);
+			}
+			r.push(`get fucked, there's also some involuntary struggling, and if the phallus being thrust into them is particularly large, a rhythmic bulging of their abdomens can be discerned.`);
+			if (V.arcadeUpgradeInjectors === 1) {
+				r.push(`The bodies frequently jerk as electrostimulation is applied to force them to tighten their holes.`);
+			} else if (V.arcadeUpgradeInjectors === 2) {
+				r.push(`The quiet hissing of the drug injectors adds a menacing undertone, and the bodies frequently jerk as electrostimulation is applied to force them to tighten their holes.`);
+			}
+			if (V.arcadeUpgradeCollectors === 1) {
+				r.push(`The pumping collectors attached to the slaves' breasts`);
+				if (App.Entity.facilities.arcade.employees().some(s => s.dick > 0)) {
+					r.push(`and cocks`);
+				}
+				r.push(`carry the white fluid away to be processed elsewhere.`);
+			}
+			r.push(`The overall effect is subtle, but powerful. There's a sense of total servitude, overlaid with a certain feeling, or perhaps even a scent, of mindless despair. There's no wonder ${eventSlave.slaveName} likes it; there's an infinite supply of uncomplicated human anguish here.`);
+
+			App.Events.addParagraph(frag, r);
+			App.Events.addResponses(frag, [ // TODO: Why the fuck are you crawling around random access shafts?
+				(V.PC.belly < 5000 && eventSlave.belly < 5000)
+					? new App.Events.Result(`Fuck ${him} here`, here)
+					: new App.Events.Result(null, null, `Fucking ${him} here would be interesting; unfortunately, there just isn't enough room for two mothers-to-be.`),
+				new App.Events.Result(`Teach ${him} about true sadism`, truShit),
+			]);
+			return frag;
+
+			function here() {
+				r = [];
+
+				r.push(`You reach out for ${eventSlave.slaveName}, not taking your eyes off the mesmerizing sight above. ${He}'s enjoying the spectacle too, and is so aroused that your rough handling of ${his} breasts almost brings ${him} to an immediate orgasm.`);
+				if (eventSlave.nipples !== "fuckable") {
+					r.push(`Pinching`);
+				} else {
+					r.push(`Hooking`);
+				}
+				r.push(`${his} ${eventSlave.nipples} nipples to stop ${him} from getting off too soon, you`);
+				if (V.PC.dick === 0) {
+					r.push(`hug ${him} to your chest and start playing with ${his} pussy, commanding ${him} to reach around and do the same for you.`);
+					seX(eventSlave, "oral", V.PC, "penetrative");
+				} else if (canDoVaginal(eventSlave) && (eventSlave.vagina > 0)) {
+					r.push(`pull ${him} up to the right height and slide your dick inside ${him}, keeping both of you on your feet so you can take ${him} standing.`);
+					r.push(VCheck.Vaginal(eventSlave, 1));
+				} else if (canDoAnal(eventSlave) && (eventSlave.anus > 0)) {
+					r.push(`shove your cock roughly up ${his} asshole, letting ${him} struggle a little as ${he} finds the right angle to take standing anal here.`);
+					r.push(VCheck.Anal(eventSlave, 1));
+				} else {
+					r.push(`slide your stiff prick up between the virgin's thighs for some intercrural sex.`);
+				}
+				if (eventSlave.belly >= 5000 || V.PC.belly >= 5000 || eventSlave.weight > 160 || eventSlave.boobs > 40000 || eventSlave.butt > 10) {
+					r.push(`As you fuck in the cramped corridor, ${his}`);
+				} else {
+					r.push(`As you fuck, ${his}`);
+				}
+				if (canSee(eventSlave)) {
+					r.push(`gaze flicks up and down along the row`);
+				} else if (canHear(eventSlave)) {
+					r.push(`ears perk up at the subtle sounds`);
+				} else {
+					r.push(`expression indicates that ${he}'s become lost in ${his} thoughts`);
+				}
+				r.push(`of suffering bodies. ${He} climaxes again and again, shuddering at each new subtle sign that another one of the slaves here is being degraded by yet another cock inserted into yet another of ${hisU} defenseless holes. By the time you're satisfied, ${he}'s so exhausted that ${his} legs are shuddering uncontrollably as ${he} struggles to remain standing with you. You drop ${him}, leaving ${him} to find ${his} own way out of this place. You look back from the entrance, seeing that ${he}'s following you on shaky legs,`);
+				if (canSee(eventSlave)) {
+					r.push(`staring at`);
+				} else {
+					r.push(`facing`);
+				}
+				r.push(`you with a profound look of mixed <span class="mediumaquamarine">trust for your understanding of ${his} horrible sadism,</span> and deep unease that this is what truly gets ${him} off.`);
+				eventSlave.trust += 5;
+				return r;
+			}
+
+			function truShit() {
+				r = [];
+				const randomArcadeSlave = App.Entity.facilities.arcade.employees().random();
+				const {he2, His2, his2} = getPronouns(randomArcadeSlave).appendSuffix("2");
+				// replace slave art
+				$(artDiv).empty();
+				App.Events.drawEventArt(artDiv, [eventSlave, randomArcadeSlave], [eventSlave.clothes, "no clothing"]);
+
+				r.push(`${He} seems to be focusing on the purely physical aspects of the degradation here. The true meaning of this place is so much more, and you decide to share it with ${him}. You call ${his} name, tearing ${his} attention away from the spectacle mere`);
+				if (V.showInches === 2) {
+					r.push(`inches`);
+				} else {
+					r.push(`centimeters`);
+				}
+				r.push(`over your heads, and`);
+				if (canSee(eventSlave)) {
+					r.push(`point`);
+				} else {
+					r.push(`direct ${him}`);
+				}
+				r.push(`to a particular slave. You tell ${eventSlave.slaveName} that this particular Arcade inmate's name is ${SlaveFullName(randomArcadeSlave)}.`);
+				if (randomArcadeSlave.career !== 0) {
+					r.push(`You tell ${him} that ${he2} is ${randomArcadeSlave.actualAge} years old, that ${he2} is ${randomArcadeSlave.nationality}, and that ${he2} was once ${convertCareer(randomArcadeSlave)}.`);
+				} else {
+					r.push(`You tell ${him} that ${he2} is ${randomArcadeSlave.actualAge} years old and ${randomArcadeSlave.nationality}.`);
+				}
+				r.push(`You list more details of ${his2} life before ${he2} was placed here to be fucked endlessly. ${eventSlave.slaveName}'s eyes widen as you recite the details of the prior life of this piece of human sexual equipment and the sheer weight of the intellectual sadism smashes into ${him}. Then the slave above you both jerks a little.`);
+				if (eventSlave.dick === 0) {
+					r.push(`There's no visible sign ${his2} pussy's being fucked, so it must be`);
+				} else {
+					r.push(`${His2} cock hardens involuntarily, indicating that it's`);
+				}
+				r.push(`going into ${his2} ass. You resume, mentioning that ${he2}'s been buttfucked ${randomArcadeSlave.counter.anal} times.`);
+				r.push(`${eventSlave.slaveName} jerks suddenly,`);
+				if (canAchieveErection(eventSlave)) {
+					r.push(`shooting ${his} cum onto the floor.`);
+				} else if (eventSlave.vagina < 0) {
+					r.push(`dribbling a little.`);
+				} else if (eventSlave.vaginaLube > 0) {
+					r.push(`squirting onto the floor.`);
+				} else {
+					r.push(`orgasming.`);
+				}
+				r.push(`${He} came without being touched. ${He}`);
+				if (canSee(eventSlave)) {
+					r.push(`stares at`);
+				} else {
+					r.push(`faces`);
+				}
+				r.push(`the mess ${he} made just by being in the presence of the arcology's <span class="hotpink">undisputed preeminent sadist;</span> ${he} shudders at the sheer gothic glory of it. ${He} has a new moment to think of when ${he} feels like <span class="lightsalmon">indulging ${his} own sadism.</span>`);
+				eventSlave.devotion += 5;
+				eventSlave.fetishStrength = Math.clamp(eventSlave.fetishStrength+10, 0, 100);
+				return r;
+			}
+		}
+
+		function fuck() {
+			r = [];
+
+			r.push(`You're not particularly interested in what ${he} dreams about when ${he} gets the chance, and you tell ${him} so. Whatever sadistic little fantasies ${he} keeps locked away to bring out when ${he}'s got a moment to satiate ${his} perversions is less interesting to you than the prospect of`);
+			if (V.PC.dick === 0) {
+				r.push(`${his} mouth on your cunt. So, you shove ${him} down to sit on the couch and straddle ${his} face, cutting off any further whimsies by pressing your wet pussy against ${his} lips. ${He} eats you out obediently, accepting`);
+				seX(eventSlave, "oral", V.PC, "penetrative");
+			} else if (canDoVaginal(eventSlave) && (eventSlave.vagina > 0)) {
+				r.push(`giving it to ${him}. So, you shove ${him} down to sit on the couch, nudge ${his} legs apart, kneel between them, and pound ${his} pussy. You fuck ${him} so hard that ${he} doesn't have the attention for further whimsies, and ${he} accepts`);
+				r.push(VCheck.Vaginal(eventSlave, 1));
+			} else if (canDoAnal(eventSlave) && (eventSlave.anus > 0)) {
+				r.push(`fucking ${his} butt. So, you shove ${him} down to`);
+				if (hasAnyLegs(eventSlave)) {
+					r.push(`kneel`);
+				} else {
+					r.push(`get`);
+				}
+				r.push(`on the couch facing away from you, and ram your cock up ${his} asshole. You assfuck ${him} so hard that ${he} doesn't have the attention for further whimsies, and ${he} accepts`);
+				r.push(VCheck.Anal(eventSlave, 1));
+			} else {
+				r.push(`${him} sucking your dick. So, you shove ${him} down to sit on the couch and give ${him} your cock to keep ${his} mouth occupied, cutting off any further whimsies. ${He} blows you obediently, accepting`);
+				seX(eventSlave, "oral", V.PC, "penetrative");
+			}
+			r.push(`the implicit message that <span class="hotpink">${he}'s your slut</span> in the real world, whatever thoughts ${he} may find appealing in the privacy of ${his} own mind.`);
+			eventSlave.devotion += 3;
+			return r;
+		}
+	}
+};
diff --git a/src/events/randomEvent.js b/src/events/randomEvent.js
index 80542b0b170..2d2b385844c 100644
--- a/src/events/randomEvent.js
+++ b/src/events/randomEvent.js
@@ -10,6 +10,7 @@ App.Events.getIndividualEvents = function() {
 	return [
 		// instantiate all possible random individual events here
 		// example: new App.Events.TestEvent(),
+		new App.Events.RESSArcadeSadist(),
 		new App.Events.RESSAssFitting(),
 		new App.Events.RESSBondageGear(),
 		new App.Events.RESSCockFeederResistance(),
diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js
index 3a68bd417b2..7e781f226ab 100644
--- a/src/js/eventSelectionJS.js
+++ b/src/js/eventSelectionJS.js
@@ -482,19 +482,6 @@ if(eventSlave.drugs === "breast injections") {
 						}
 					}
 				}
-				if (eventSlave.fetish === "sadist") {
-					if (eventSlave.fetishStrength > 20) {
-						if (App.Entity.facilities.arcade.established && App.Entity.facilities.arcade.hasEmployees) {
-							if (eventSlave.trust >= -20) {
-								if (eventSlave.devotion > 50) {
-									if (eventSlave.belly < 300000) {
-										V.RESSevent.push("arcade sadist");
-									}
-								}
-							}
-						}
-					}
-				}
 				if (eventSlave.assignment !== Job.QUARTER) {
 					if (eventSlave.dick === 0) {
 						if (eventSlave.vagina === -1) {
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index 07d1413fc8a..d49b178f6fc 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -3147,12 +3147,6 @@ I didn't mean to <<s>>ound con<<c>>eited, either. I gue<<ss>> I'm <<s>>till gett
 	<<set $activeSlave.fetishKnown = 1>>
 <</if>>
 
-<<case "arcade sadist">>
-
-You happen to come across <<= App.UI.slaveDescriptionDialog($activeSlave)>> during one of $his rest periods. $He's lying on a couch in the slave areas, <<if canSee($activeSlave)>>staring at the ceiling above $him<<else>>leaning back<</if>> with a dreamy expression on $his face. $He's <<if $activeSlave.rules.release.masturbation == 1>>touching $himself idly.<<else>>not allowed to touch $himself, but $he's extremely aroused.<</if>> Whatever's on $his mind, it's so absorbing that $he doesn't realize you're there until you're standing over $him.
-<br><br>
-"<<S>>orry, <<Master>>," $he <<say>>s apologetically, <<if $activeSlave.belly >= 10000>>struggling<<else>>scrambling<</if>> to $his feet. "I didn't noti<<c>>e you there." <<if canSee($activeSlave)>>Seeing your questioning look<<elseif canHear($activeSlave)>>Hearing your lack of response<<else>>Sensing a request to continue<</if>>, $he explains $himself further. "I was ju<<s>>t thinking about, um, my favorite pla<<c>>e. I can almo<<s>>t get off ju<<s>>t by thinking about it." There's a wild, perverted gleam <<if canSee($activeSlave)>>in $his <<= App.Desc.eyesColor($activeSlave)>><<else>>on $his face<</if>>. $He's a confirmed sadist, so whatever $his favorite mental masturbation is probably quite strong.
-
 <<case "servant maid">>
 
 <<= App.UI.slaveDescriptionDialog($activeSlave)>> is scheduled to clean your office today, just one of $his many duties as a servant in your penthouse. $He pauses in the doorway of your office for a moment, only entering once it becomes clear that you're not going to be using $him immediately.
@@ -15719,93 +15713,6 @@ $He cranes $his neck, glancing over $his shoulder to give you a pleading look.
 	<</replace>>
 <</link>><<if canDoVaginal($activeSlave) && ($activeSlave.vagina == 0) && $PC.dick != 0>>//This option will take $his virginity//<<elseif !canDoVaginal($activeSlave) && ($activeSlave.anus == 0) && $PC.dick != 0>> //This option will take $his anal virginity//<</if>>
 
-<<case "arcade sadist">>
-
-<<link "Ask $him about $his fantasy">>
-	<<setNonlocalPronouns $seeDicks>>
-	<<replace "#result">>
-		<<set _pussy = App.Entity.facilities.arcade.employees().some(s => s.vagina > 0)>>
-		<<set _balls = App.Entity.facilities.arcade.employees().some(s => s.balls > 0)>>
-		You order $him to explain further. "<<Master>>," $he <<say>>s carefully, "it'<<s>> $arcadeName. There'<<s>> a <<s>>pe<<c>>ific pla<<c>>e there, and, well, I can't de<<s>>cribe it. It'<<s>> in the <<s>>ervi<<c>>e area under $arcadeName. Can I <<sh>>ow you what I mean?" Intrigued, you order $him to show you the place $he's talking about, and lead $him to $arcadeName through the access hallway. $He points to the service tunnel under one of the rows of inmates, which allows trusted slaves to clean up and perform maintenance.
-		<<if $activeSlave.belly >= 100000>>
-			Once you've managed to shove the massive slut
-		<<elseif $activeSlave.belly >= 5000>>
-			Once you've helped the <<if $activeSlave.bellyPreg >= 3000>>gravid<<else>>bloated<</if>> $girl fit
-		<<else>>
-			Once you've led $him
-		<</if>>
-		in there, $he stops and <<if canSee($activeSlave)>>watches<<elseif canHear($activeSlave)>>listens<<else>>waits<</if>><<if $PC.belly >= 100000>> as you struggle to join $him in the increasingly cramped space<<elseif $PC.belly >= 5000>> as you gently slip your motherly body in after $him<</if>>.
-		Inside the industrial access corridor, above you both is a row of bodies. The slaves' faces and hips are pressed against the apertures that present their holes to customers, but the rest of them is visible from here.
-		<br><br>
-		There is little noise; the slaves are closely restrained. Indeed, you have to look closely to see that they're being fucked at all. Here and there, though, there are signs. When someone fucks a slave's face, _hisU throat bulges, and _heU often gags and struggles a little within the restraints. When their <<if _pussy>>pussies<<else>>assholes<</if>> get fucked, there's also some involuntary struggling, and if the phallus being thrust into them is particularly large, a rhythmic bulging of their abdomens can be discerned.
-		<<if $arcadeUpgradeInjectors == 1>>
-			The bodies frequently jerk as electrostimulation is applied to force them to tighten their holes.
-		<<elseif $arcadeUpgradeInjectors == 2>>
-			The quiet hissing of the drug injectors adds a menacing undertone, and the bodies frequently jerk as electrostimulation is applied to force them to tighten their holes.
-		<</if>>
-		<<if $arcadeUpgradeCollectors == 1>>
-			The pumping collectors attached to the slaves' breasts<<if _dick>> and cocks<</if>> carry the white fluid away to be processed elsewhere.
-		<</if>>
-		The overall effect is subtle, but powerful. There's a sense of total servitude, overlaid with a certain feeling, or perhaps even a scent, of mindless despair. There's no wonder $activeSlave.slaveName likes it; there's an infinite supply of uncomplicated human anguish here.
-		<br><br>
-		<span id="result2">
-			<<if $PC.belly < 5000 && $activeSlave.belly < 5000>>
-				<<link "Fuck $him here">>
-					<<replace "#result2">>
-						You reach out for $activeSlave.slaveName, not taking your eyes off the mesmerizing sight above. $He's enjoying the spectacle too, and is so aroused that your rough handling of $his breasts almost brings $him to an immediate orgasm. <<if $activeSlave.nipples != "fuckable">>Pinching<<else>>Hooking<</if>> $his $activeSlave.nipples nipples to stop $him from getting off too soon, you
-						<<if $PC.dick == 0>>
-							hug $him to your chest and start playing with $his pussy, commanding $him to reach around and do the same for you.
-							<<run seX($activeSlave, "oral", $PC, "penetrative")>>
-						<<elseif canDoVaginal($activeSlave) && ($activeSlave.vagina > 0)>>
-							pull $him up to the right height and slide your dick inside $him, keeping both of you on your feet so you can take $him standing.
-							<<= VCheck.Vaginal($activeSlave, 1)>>
-						<<elseif canDoAnal($activeSlave) && ($activeSlave.anus > 0)>>
-							shove your cock roughly up $his asshole, letting $him struggle a little as $he finds the right angle to take standing anal here.
-							<<= VCheck.Anal($activeSlave, 1)>>
-						<<else>>
-							slide your stiff prick up between the virgin's thighs for some intercrural sex.
-						<</if>>
-						As you fuck<<if $activeSlave.belly >= 5000 || $PC.belly >= 5000 || $activeSlave.weight > 160 || $activeSlave.boobs > 40000 || $activeSlave.butt > 10>> in the cramped corridor<</if>>, $his <<if canSee($activeSlave)>>gaze flicks up and down along the row<<elseif canHear($activeSlave)>>ears perk up at the subtle sounds<<else>>expression indicates that $he's become lost in $his thoughts<</if>> of suffering bodies. $He climaxes again and again, shuddering at each new subtle sign that another one of the slaves here is being degraded by yet another cock inserted into yet another of _hisU defenseless holes. By the time you're satisfied, $he's so exhausted that $his legs are shuddering uncontrollably as $he struggles to remain standing with you. You drop $him, leaving $him to find $his own way out of this place. You look back from the entrance, seeing that $he's following you on shaky legs, <<if canSee($activeSlave)>>staring at<<else>>facing<</if>> you with a profound look of mixed @@.mediumaquamarine;trust for your understanding of $his horrible sadism,@@ and deep unease that this is what truly gets $him off.
-					<</replace>>
-					<<set $activeSlave.trust += 5>>
-				<</link>>
-			<<else>>
-				Fucking $him here would be interesting; unfortunately, there just isn't enough room for two mothers-to-be.
-			<</if>>
-			<br><<link "Teach $him about true sadism">>
-				<<set _ress = App.Entity.facilities.arcade.employees().random()>>
-				<<setLocalPronouns _ress 2>>
-				<<replace "#result2">>
-					$He seems to be focusing on the purely physical aspects of the degradation here. The true meaning of this place is so much more, and you decide to share it with $him. You call $his name, tearing $his attention away from the spectacle mere <<if $showInches == 2>>inches<<else>>centimeters<</if>> over your heads, and <<if canSee($activeSlave)>>point<<else>>direct $him<</if>> to a particular slave. You tell $activeSlave.slaveName that this particular Arcade inmate's name is
-					<<= SlaveFullName(_ress)>>. You tell $him that _he2 is _ress.actualAge years old, that _he2 is _ress.nationality, and that _he2 was once <<= convertCareer(_ress)>>. You list more details of _his2 life before _he2 was placed here to be fucked endlessly. $activeSlave.slaveName's eyes widen as you recite the details of the prior life of this piece of human sexual equipment and the sheer weight of the intellectual sadism smashes into $him. Then the slave above you both jerks a little. <<if $activeSlave.dick == 0>>There's no visible sign _his2 pussy's being fucked, so it must be<<else>>_His2 cock hardens involuntarily, indicating that it's<</if>> going into _his2 ass. You resume, mentioning that _he2's been buttfucked _ress.counter.anal times.
-					$activeSlave.slaveName jerks suddenly, <<if canAchieveErection($activeSlave)>>shooting $his cum onto the floor<<elseif $activeSlave.vagina < 0>>dribbling a little<<elseif $activeSlave.vaginaLube > 0>>squirting onto the floor<<else>>orgasming<</if>>. $He came without being touched. $He <<if canSee($activeSlave)>>stares at<<else>>faces<</if>> the mess $he made just by being in the presence of the arcology's @@.hotpink;undisputed preeminent sadist;@@ $he shudders at the sheer gothic glory of it. $He has a new moment to think of when $he feels like @@.lightsalmon;indulging $his own sadism.@@
-				<</replace>>
-				<<set $activeSlave.devotion += 5, $activeSlave.fetishStrength = Math.clamp($activeSlave.fetishStrength+10, 0, 100)>>
-			<</link>>
-		</span>
-	<</replace>>
-<</link>>
-<br><<link "Just fuck $him">>
-	<<replace "#result">>
-		You're not particularly interested in what $he dreams about when $he gets the chance, and you tell $him so. Whatever sadistic little fantasies $he keeps locked away to bring out when $he's got a moment to satiate $his perversions is less interesting to you than the prospect of
-		<<if $PC.dick == 0>>
-			$his mouth on your cunt. So, you shove $him down to sit on the couch and straddle $his face, cutting off any further whimsies by pressing your wet pussy against $his lips. $He eats you out obediently, accepting
-			<<run seX($activeSlave, "oral", $PC, "penetrative")>>
-		<<elseif canDoVaginal($activeSlave) && ($activeSlave.vagina > 0)>>
-			giving it to $him. So, you shove $him down to sit on the couch, nudge $his legs apart, kneel between them, and pound $his pussy. You fuck $him so hard that $he doesn't have the attention for further whimsies, and $he accepts
-			<<= VCheck.Vaginal($activeSlave, 1)>>
-		<<elseif canDoAnal($activeSlave) && ($activeSlave.anus > 0)>>
-			fucking $his butt. So, you shove $him down to <<if hasAnyLegs($activeSlave)>>kneel<<else>>get<</if>> on the couch facing away from you, and ram your cock up $his asshole. You assfuck $him so hard that $he doesn't have the attention for further whimsies, and $he accepts
-			<<= VCheck.Anal($activeSlave, 1)>>
-		<<else>>
-			$him sucking your dick. So, you shove $him down to sit on the couch and give $him your cock to keep $his mouth occupied, cutting off any further whimsies. $He blows you obediently, accepting
-			<<run seX($activeSlave, "oral", $PC, "penetrative")>>
-		<</if>>
-		the implicit message that @@.hotpink;$he's your slut@@ in the real world, whatever thoughts $he may find appealing in the privacy of $his own mind.
-	<</replace>>
-	<<set $activeSlave.devotion += 3>>
-<</link>>
-
 <<case "servant maid">>
 
 <<link "Stop $him">>
-- 
GitLab