code:
App.Events.RESSImScared = class RESSImScared extends App.Events.BaseEvent {
	eventPrerequisites() {
		return [];
	}

	actorPrerequisites() {
		return [
			[ // single event slave
				s => s.fetish !== "mindbroken",
				hasAnyArms,
				canMove,
				canTalk,
				s => s.assignment !== Job.QUARTER,
				s => s.trust < -50,
				s => s.devotion <= 50,
			]
		];
	}

	execute(node) {
		/** @type {Array<App.Entity.SlaveState>} */
		let [eventSlave] = this.actors.map(a => getSlave(a));
		const {
			He, he, his, him, himself
		} = getPronouns(eventSlave);
		const {say, title: Master} = getEnunciation(eventSlave);

		/** @type {App.Entity.PlayerState} */
		let PC = V.PC;

		V.nextLink = "Next Week";

		App.Events.drawEventArt(node, eventSlave, "no clothing");

		let t = [];

		t.push(`During ${his} weekly inspection,`);
		t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave));
		t.push(`has trouble following the routine orders that position ${him} so you can examine ${his} body. The cause is not difficult to determine: ${he}'s so cripplingly terrified that ${he}'s having difficulty functioning. ${He} seems to be trying to obey you, but ${he}'s so scared that ${his} mind is having trouble translating your simple verbal commands into physical obedience. You ask ${him} what ${he}'s so frightened of. The question stuns ${him}, and ${he} ${canSee(eventSlave) ? "stares at" : "faces"} you in mute horror, looking even more terrified than ${he} has up to this point and completely devoid of any idea how to respond. You order ${him} to respond, and this starts ${him} out of ${his} fugue. ${He} begins to cry, makes two false starts, sobs, and then begins forcing out words.`);
		App.Events.addParagraph(node, t);
		t = [];

		t.push(`"E-e-everything," ${he} cries. "${Spoken(eventSlave, "I'm s-so s-sorry b-but I c-can't help")}," ${he} chokes on a sob and hiccups, "${Spoken(eventSlave, "help it. This, this place, being a sex slave")},`);
		switch (eventSlave.rules.punishment) {
			case "confinement":
				t.push(Spoken(eventSlave, "b-being sh-shut up in the d-dark"));
				break;
			case "whipping":
				t.push(Spoken(eventSlave, "b-being wh-wh-whip-ped"));
				break;
			case "chastity":
				t.push(Spoken(eventSlave, "h-having my p-parts locked up in ch-chastity"));
				break;
			default:
				t.push(Spoken(eventSlave, "n-never knowing what th-the p-punishment will be"));
		}
		t.push(`${Spoken(eventSlave, `wh-when I'm bad, e-everything, ${eventSlave.rudeTitle === 1 ? PoliteRudeTitle(eventSlave) : Master}. Oh, oh, I'm sorry, p-please, I'm sorry I, I'm like this, I'm crying, p-please ${eventSlave.rudeTitle === 1 ? PoliteRudeTitle(eventSlave) : Master}, please don't...`)}" ${He} trails off, giving you a look of supplication.`);
		App.Events.addParagraph(node, t);
		t = [];

		App.Events.addResponses(node, [
			new App.Events.Result(`Punish ${him}`, punish),
			new App.Events.Result(`Comfort ${him}`, comfort),
			(V.dairyRestraintsSetting === 2
				? new App.Events.Result(`Threaten ${him} with the industrial Dairy`, industrial)
				: new App.Events.Result()),
			(V.seeExtreme === 1
				? new App.Events.Result(`Threaten to convert ${him} into a Fuckdoll`, fuckdoll)
				: new App.Events.Result())
		]);

		function punish() {
			t = [];

			t.push(`${He} obviously knows that breaking down like this would displease you, but you patiently explain that it's against the rules anyway. ${He} cries harder, nodding through ${his} tears. ${He} knows that interrupting you to beg would be profoundly stupid, so ${he} clasps ${his} ${hasBothArms(eventSlave) ? "hands" : "hand"} in wordless submission. You tell ${him} that ${he}'s to keep ${himself} under control; if ${he} fails, ${he} will be punished. Since ${he} failed, ${he} will now suffer ${his} standard punishment, and be`);

			switch (eventSlave.rules.punishment) {
				case "confinement":
					t.push(`shut up in a box. <span class="gold">${He} breaks down,</span> falling to ${his} knees, begging abjectly for mercy.`);
					if (eventSlave.belly >= 100000 || eventSlave.boobs > 25000 || eventSlave.weight > 190) {
						t.push(Spoken(eventSlave, `"It's too cramped in there,"`));
					} else {
						t.push(Spoken(eventSlave, `"It's dark in there,"`));
					}
					t.push(`${he} screams as you open the box for ${him}. ${He} knows that if ${he} doesn't climb in, it'll be longer before ${he}'s let out, so ${he} does, scrabbling inside and sobbing desperately as you close the lid.`);
					break;
				case "whipping":
					t.push(`whipped. ${He} breaks down, falling to ${his} knees, begging abjectly for mercy. "It'll h-hu-hurt," ${he} blubbers weakly as you attach ${his} ${hasBothArms(eventSlave) ? "hands" : "hand"} to shackles high on the office wall. The first stroke across ${his} buttocks draws a long shriek out of ${him}.`);
					break;
				case "chastity":
					t.push(`locked up in chastity. ${He} breaks down, falling to ${his} knees, begging abjectly for mercy. "I c-can't," ${he} moans. "I can't take it. I can't stand it." As you lock the chastity onto ${him}, ${he} sobs inconsolably, knowing that any arousal will be torturous until ${he}'s released.`);
					break;
				default:
					t.push(`gagged, since that's the appropriate castigation for failure to control ${his} mouth and deportment. ${He} tries to behave, but breaks down as you slide a dildo gag into ${his} throat, choking and struggling to breathe as ${he} tries to cry past it.`);
			}
			t.push(`The thing ${he}'s most frightened of is that ${he} won't be able to control ${his} fear in the future, and will continue to suffer.`);

			eventSlave.trust -= 5;
			return t;
		}

		function comfort() {
			t = [];

			t.push(`You rise from behind your desk, and ${eventSlave.slaveName} collapses to the floor, sure that ${he}'s about to be severely punished. ${He}'s shocked to feel your arms encircle ${him} as you kneel down beside ${him} and embrace ${his} huddled form. You pull ${his} head`);
			if (V.PC.boobs >= 1400) {
				t.push(`against your enormous, ${PC.boobsImplant !== 0 ? "hard" : "soft"} breasts,`);
			} else if (V.PC.boobs >= 1200) {
				t.push(`against your huge ${PC.boobsImplant !== 0 ? "firm" : "soft"} breasts,`);
			} else if (V.PC.boobs >= 1000) {
				t.push(`against your big ${PC.boobsImplant !== 0 ? "firm" : "soft"} breasts,`);
			} else if (V.PC.boobs >= 300) {
				t.push(`against your soft breasts,`);
			} else if (V.PC.title === 0) {
				t.push(`against your flat chest,`);
			} else {
				t.push(`into your shoulder,`);
			}
			t.push(`stroking it reassuringly and murmuring kindness. ${He} clings to you, mostly for lack of any other comfort in the whole world, and sobs convulsively, ${his} terror flowing out of ${him} in a torrent as you gently rub ${his} back. When ${he}'s mostly cried ${himself} out, you tell ${him} that ${he}'ll be all right. You're sure ${he}'ll be a good slave one day. You understand that ${his} life is hard. ${He}'ll make mistakes, and you'll punish ${him} for them, but that's part of slave training, and that's all right. If ${he} does ${his} best, ${he}'ll be all right. ${He} sniffles, cuffing tears away. "${Spoken(eventSlave, `Th-thank you, ${eventSlave.rudeTitle === 1 ? PoliteRudeTitle(eventSlave) : Master}, I'll d-do my b-best`)}," ${he} manages to ${say}.`);

			eventSlave.trust += 5;
			return t;
		}

		function industrial() {
			t = [];
			const watchListenFreezes = canSee(eventSlave) ? "watches" : (canHear(eventSlave) ? "listens" : "freezes");

			t.push(`You grab ${him} by the scruff of ${his} neck and drag ${him} down to ${V.dairyName}. ${He} tries to control ${himself}, but breaks down in tears when you haul ${him} to a stop, forcing ${him} to get a good`);
			if (canSee(eventSlave)) {
				t.push(`look at the`);
			} else if (canHear(eventSlave)) {
				t.push(`listen of the sound of`);
			} else {
				t.push(`feel for the omnipresent aura of`);
			}
			t.push(`rows of bodies being mercilessly milked. You explain that if ${he} continues to fail to control ${himself}, your patience with ${his} will eventually expire, and you'll be forced to immure ${him} here. ${canSee(eventSlave) ? "Indicating" : `Facing ${him} towards`} a slave who's being`);
			if (eventSlave.balls > 0 && V.dairyStimulatorsSetting === 2) {
				t.push(`cockmilked by the machines, you tell ${eventSlave.slaveName} to pay close attention. ${He} ${watchListenFreezes} in horror as a dildo the size of ${his} forearm slides in and out of the slave's rectum, pounding it harder and harder until the slave stiffens and the transparent tubing coming off its cockhead whitens with cum. As the slave relaxes slightly in the restrains, the powerful milkers continue their relentless tugging at ${his} gigantic udders.`);
				if (!canSee(eventSlave)) {
					t.push(`As the dildo begins its efforts to loose a second cumming, you grab the horrified slave's hands and push them to the cow's throbbing dick just in time for ${him} to feel the ejaculate forced out by its unwilling orgasm.`);
				}
				t.push(`You run a hand down to ${eventSlave.slaveName}'s own balls and, squeezing them slightly, tell ${him} that unless ${he} wants ${his} ass ruined by constant machine rape, ${his} tits turned into immobilizing milk factories and ${his} balls drained of every last drop of seed,`);
			} else if ((eventSlave.ovaries === 1 || eventSlave.mpreg === 1) && V.dairyPregSetting === 2) {
				t.push(`used for reproduction by the machines, you tell ${eventSlave.slaveName} to pay close attention. ${He} ${watchListenFreezes} in horror as a dildo the size of ${his} forearm fucks the slave's enormous cunt, keeping it as gaped as possible to ease birth and constantly ejaculating preparatory drugs against ${his} cervix. The slave is gigantically pregnant. You tell ${eventSlave.slaveName} that this is the vaginal treatment ${he} can expect when pregnant; when impregnation is required, the dildos ejaculate more than a liter of cum a minute.`);
				if (!canSee(eventSlave)) {
					t.push(`As the dildo retracts from the cow's gaping cunt, you grab the horrified slave's hands and push them to its gravid middle just in time for ${him} to feel a massive contraction.`);
				}
				t.push(`You run a hand down to ${eventSlave.slaveName}'s own middle and, patting it gently, tell ${him} that unless ${he} wants ${his} womb converted into an industrial component,`);
			} else if ((eventSlave.ovaries === 1 || eventSlave.mpreg === 1) && V.dairyPregSetting === 3) {
				t.push(`used for mass reproduction by the machines, you tell ${eventSlave.slaveName} to pay close attention. ${He} ${watchListenFreezes} in horror as a dildo the size of ${his} forearm fucks the slave's cavernous cunt, keeping it as gaped as possible to ease birth and constantly ejaculating preparatory drugs against ${his} tortured cervix. The slave is absolutely enormous, more a taut sphere of a belly than a person; so pregnant that the children within ${his} are visibly forced to bulge the skin covering ${his} straining womb by their sisters. You tell ${eventSlave.slaveName} that this is the treatment ${he} can expect when pregnant here; when impregnation is required, the dildos ejaculate more than a liter of cum a minute.`);
				if (!canSee(eventSlave)) {
					t.push(`As the cow takes the huge dildo absentmindedly, you grab the horrified slave's ${hasBothArms(eventSlave) ? "hands" : "hand"} and push ${hasBothArms(eventSlave) ? "them" : "it"} to its gravid middle, forcing ${him} to feel the children squirming within its packed womb. ${He} squeals in terror at the feeling of so many babies moving under ${his} fingers.`);
				}
				t.push(`You run a hand down to ${eventSlave.slaveName}'s own middle and, patting it gently, tell ${him} that unless ${he} wants to become an industrial breeder,`);
			} else {
				t.push(`drained of ${his} milk, you tell ${eventSlave.slaveName} to pay close attention. ${He} ${watchListenFreezes} in horror as the slave's gigantic breasts are massaged and squeezed, while the milkers attached to ${his} absurd nipples tug and pull with industrial power. ${He} can't ${canSee(eventSlave) ? "look away; the orbs of jiggling flesh being manipulated are each as big as the slave's torso" : "shut out the sound of those enormous jiggling orbs of flesh being so roughly manipulated"}. It's good for milk production to drain slaves completely on occasion, and the machine doesn't stop until every drop is wrung from both udders.`);
				if (!canSee(eventSlave)) {
					t.push(`You force the horrified slave's ${hasBothArms(eventSlave) ? "hands" : "hand"} onto its breasts so that ${he} may get a good sense of just how big and swollen they are and how hard the milker is pulling at them.`);
				}
				t.push(`You run a hand over to ${eventSlave.slaveName}'s own breast and, teasing ${his} nipple, tell ${him} that unless ${he} wants to experience that twice a day,`);
			}
			t.push(`${he} had better behave ${himself}. ${He} nods furiously, <span class="gold">terrified beyond the ability to speak.</span>`);

			eventSlave.trust -= 8;
			return t;
		}

		function fuckdoll() {
			t = [];

			t.push(`You order a Fuckdoll brought to your office. ${eventSlave.slaveName} `);
			if (canSee(eventSlave)) {
				t.push(`watches it totter in,`);
			} else if (canHear(eventSlave)) {
				t.push(`listens to the clicks of its approaching heels and the ominous squeaking of its latex shell,`);
			} else {
				t.push(`feels the uncomfortable latex skin of its suit when it brushes up against ${him},`);
			}
			t.push(`automatically following the tugs on its leash and the tonal commands passed by its suit. ${He} already understands the implicit threat, and ${he} shivers uncontrollably, almost falling to ${his} knees in fear. Not content with that, you tell ${him} that ${he}'s trying your patience with ${his} behavior. If ${he} doesn't control ${himself} better in the future, you'll give up on ${him} and convert ${him} into a Fuckdoll. At the spoken threat ${eventSlave.slaveName} does collapse, but you order ${him} to get back to ${his} feet and ${canSee(eventSlave) ? "watch" : "pay attention"}. ${He} does, shakily, tears streaming down ${his} face as you put the Fuckdoll on all fours, as though it were about to take dick. Its`);
			if (eventSlave.vagina > -1) {
				t.push(`holes are pointed straight at ${eventSlave.slaveName}'s face,`);
				if (canSee(eventSlave)) {
					t.push(`and ${he} can't avoid seeing how loose and used they look.`);
				} else {
					t.push(`so you grab both ${his} hands and force one into each of its blown out holes. ${eventSlave.slaveName} shrieks in horror at the recognizable sensation.`);
				}
			} else {
				t.push(`rear hole is pointed straight at ${eventSlave.slaveName}'s face,`);
				if (canSee(eventSlave)) {
					t.push(`and ${he} can't avoid seeing how loose and used it looks.`);
				} else {
					t.push(`so you grab both ${his} hands and force them into its blown out ass. ${eventSlave.slaveName} shrieks in horror at the recognizable sensation.`);
				}
			}
			t.push(`Suddenly, you activate the Fuckdoll's suit's punishment systems. It does not and cannot scream, but `);
			if (canSee(eventSlave)) {
				t.push(`a slight stiffening of its posture communicates extreme anguish, and its sphincter spasms tightly closed with obviously involuntary force.`);
			} else {
				t.push(`the sudden, pitiful attempt to clamp down on ${his} arms makes it perfectly clear that you just forced it to undergo extreme anguish.`);
			}
			t.push(`${eventSlave.slaveName} is almost incapacitated by terror.`);

			eventSlave.trust -= 8;
			return t;
		}
	}
};


code:
App.Events.RESSLazyEvening = class RESSLazyEvening extends App.Events.BaseEvent {
	eventPrerequisites() {
		return [];
	}

	actorPrerequisites() {
		return [
			[ // single event slave
				s => s.fetish !== "mindbroken",
				canStand,
				hasAnyArms,
				s => (s.assignment === Job.FUCKTOY || s.assignment === Job.MASTERSUITE || s.assignment === Job.CONCUBINE),
				s => s.devotion > 20,
			]
		];
	}

	execute(node) {
		/** @type {Array<App.Entity.SlaveState>} */
		let [eventSlave] = this.actors.map(a => getSlave(a));
		const {
			He, he, His, his, hers, him, himself, girl, woman
		} = getPronouns(eventSlave);
		const {s, title} = getEnunciation(eventSlave);

		V.nextLink = "Next Week";

		/** @param {App.Entity.SlaveState} slave */
		function getSceneClothes(slave) {
			if (getLimbCount(slave, 102) > 2) {
				return "an oversized t-shirt";
			} else if (slave.boobs > 4000) {
				return "an oversized t-shirt"; /* loose pajama top */
			} else if (slave.intelligence+slave.intelligenceImplant > 50) {
				return "a halter top dress";
			} else if (slave.muscles > 30) {
				if (isItemAccessible.entry("sport shorts", "clothing")) {
					if (slave.boobs >= 650) {
						return "sport shorts and a sports bra";
					} else {
						return "sport shorts";
					}
				} else {
					return "spats and a tank top";
				}
			} else if (slave.energy > 95) {
				return null; // no change of clothes
			} else {
				return "conservative clothing";
			}
		}

		App.Events.drawEventArt(node, eventSlave, getSceneClothes(eventSlave));

		let t = [];
		t.push(`Although your life as an arcology owner comes with many associated privileges, extended idleness to bask in your luxury is not often among them. Thankfully, ${V.assistant.name} knows better than to let you run yourself ragged from the weight of your assorted responsibilities and often allots time in the evenings of your active schedule to simply relax.`);
		App.Events.addParagraph(node, t);

		t = [];
		t.push(`Of course, no self respecting arcology owner could be expected to enjoy a lazy night of idle relaxation on their own. As you resolve the last of your most pressing responsibilities for the evening, ${V.assistant.name} directs one of your attentive slaves to gently guide you away from the unending burdens of running your arcology. Leaning against the doorway and wearing a facsimile of what an old world ${woman} might wear on a casual night in,`);
		t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave));
		if (!canTalk(eventSlave)) {
			t.push(`asks with a gesture that carries just the right mixture of submission and exaggerated casualness if you'd like to 'hang out.'`);
		} else if (SlaveStatsChecker.checkForLisp(eventSlave)) {
			t.push(`lisps with exaggerated casualness, "Let'${s} hang out, ${title}?"`);
		} else {
			t.push(`asks with exaggerated casualness, "Want to hang out, ${title}?"`);
		}
		App.Events.addParagraph(node, t);

		t = [];
		t.push(`${He} saunters over and`);
		if (eventSlave.belly >= 100000) {
			t.push(`struggles to lower ${his} ${bellyAdjective(eventSlave)} form to an obedient kneel`);
		} else if (eventSlave.belly >= 10000) {
			t.push(`gingerly lowers ${his} heavily ${eventSlave.bellyPreg > 3000 ? "gravid" : "swollen"} form to an obedient kneel`);
		} else if (eventSlave.belly >= 5000) {
			t.push(`gently lowers ${his} ${eventSlave.bellyPreg > 3000 ? "gravid" : "swollen"} form to an obedient kneel`);
		} else {
			t.push(`kneels obediently`);
		}
		t.push(`in front of you, awaiting further direction.`);

		/* If you are updating below, please consider updating the vector art swaps at the top to match. */
		if (getLimbCount(eventSlave, 102) > 2) {
			t.push(`Clad in an antique T-Shirt referencing some defunct old world website, ${his} P-Limbs stand in stark contrast — gyros and servomotors against simple thread and cloth. With such tangible examples of the technological prowess of the Free Cities serving as ${his} limbs, ${his} ${eventSlave.belly >= 5000 ? "taut " : ""} shirt is an amusing testimonial to how far behind the old world stands in contrast to the new.`);
		} else if (eventSlave.boobs > 4000) {
			t.push(`${His} breasts are so massive that the front of ${his} loose pajama top must be unbuttoned. Even so, the protrusion of ${his} immense breasts`);
			if (eventSlave.belly >= 5000) {
				t.push(`and ${bellyAdjective(eventSlave)} rounded belly from ${his} body`);
			} else {
				t.push(`from ${his} chest`);
			}
			t.push(`strains the soft pajama top to it's breaking point.`);
		} else if (eventSlave.intelligence+eventSlave.intelligenceImplant > 50) {
			t.push(`As a clever ${girl}, ${his} simple${eventSlave.belly >= 5000 ? `, yet tight around the middle,` : ""} summer dress evokes memories of bygone warm weather days at elite old world colleges — and the sexual conquest of their youthful residents.`);
		} else if (eventSlave.muscles > 30) {
			t.push(`${His} simple sports bra and compression shorts ensemble does little to conceal ${his} incredible musculature,`);
			if (eventSlave.belly >= 1500) {
				t.push(`straining to hold up against ${his} swelling middle and`);
			}
			t.push(`glistening with sweat from a recent workout. Despite ${his} recent exertions, ${he}'s able to maintain utter stillness in the perfect posture of an obedient slave.`);
		} else if (eventSlave.energy > 95) {
			t.push(`${He}'s controlling ${his} absurd sex drive for the moment in deference to the notion of your relaxation time, but ${he} clearly wouldn't mind some sex as part of the evening.`);
			if (eventSlave.dick > 0) {
				if (canAchieveErection(eventSlave)) {
					t.push(`${His} cock is painfully erect`);
					if (eventSlave.belly >= 10000) {
						t.push(`and pressed against the underside of ${his} belly,`);
					}
				} else {
					t.push(`${His} soft dick is dribbling precum,`);
				}
			} else {
				t.push(`${His} pussy is visibly soaked,`);
			}
			t.push(`showing unmistakably how badly ${he} needs release.`);
		} else {
			t.push(`${He} keeps ${his}`);
			if (canSee(eventSlave)) {
				t.push(App.Desc.eyesColor(eventSlave));
			} else {
				t.push("face");
			}
			t.push(`slightly downcast, ${his} hands lightly smoothing the folds from ${his} tight skirt while ${his} breasts visibly rise and fall under ${his} even tighter blouse.`);
			if (eventSlave.belly >= 5000) {
				t.push(`Between the two, there is little ${he} can do to cover ${his} exposed ${eventSlave.bellyPreg >= 3000 ? "pregnancy" : "middle"}.`);
			 }
			 t.push(`${He}'s the perfect picture of an attentive little old world ${girl}friend ${eventSlave.height > 185 ? ` (though, of course, ${he}'s anything but physically small)` : ""}.`);
		}
		App.Events.addParagraph(node, t);

		App.Events.addResponses(node, [
			new App.Events.Result("Enjoy some oral with an evening of wallscreen television", flixAndChill),
			new App.Events.Result("Spend the night idly cuddling", cuddle),
			new App.Events.Result(`Unwind by tormenting ${him}`, torture)
		]);

		function flixAndChill() {
			let t = [];
			t.push(`There are some things that never change, even after ascension to the high position of an arcology owner. One of these fixtures of life is the ability to enjoy a relaxing evening of wallscreen television and`);
			if (V.PC.dick !== 0) {
				t.push("a blowjob");
				if (V.PC.vagina !== -1) {
					t.push("and");
				}
			}
			if (V.PC.vagina !== -1) {
				t.push("some cunnilingus");
			}
			t.push(t.pop() + ".");
			t.push(`With ${eventSlave.slaveName} sequestered between your legs, you tune into your favorite Free Cities serial drama and widen your legs slightly as you sink back into the chair with a sigh of contentment. ${He}`);
			if (eventSlave.belly >= 300000) {
				t.push(`gently leans onto ${his} ${bellyAdjective(eventSlave)} belly`);
				if (hasAnyArms(eventSlave)) {
					t.push(`with ${his} arm${hasBothArms(eventSlave) ? "s" : ""} steadying the mass`);
				}
			} else if (eventSlave.belly >= 5000) {
				if (hasAnyLegs(eventSlave)) {
					t.push(`kneels carefully`);
				} else {
					t.push(`lowers ${himself}`);
				}
				if (hasAnyArms(eventSlave)) {
					t.push(`with ${hasBothArms(eventSlave) ? `an` : `${his}`} arm`);
					if (eventSlave.bellyPreg >= 3000) {
						t.push(`wrapped protectively around ${his} bump`);
					} else {
						t.push(`cradling ${his} ${bellyAdjective(eventSlave)} belly`);
					}
				}
			} else {
				t.push(`sinks to`);
				if (hasAnyLegs(eventSlave)) {
					t.push(`${his} knee${hasBothLegs(eventSlave) ? "s" : ""} obediently`);
					if (hasAnyArms(eventSlave)) {
						t.push(`with ${his} hand${hasBothArms(eventSlave) ? "s" : ""} placed placidly on ${his} thigh${hasBothLegs(eventSlave) ? "s" : ""}`);
					}
				} else {
					t.push("the ground");
				}
			}
			t.push(`before putting ${his} mouth to work,`);
			if (eventSlave.skill.oral >= 100) {
				t.push(`${his} mastery at giving oral providing a wealth of pleasure.`);
			} else if (eventSlave.skill.oral > 60) {
				t.push(`${his} skills in oral providing ample pleasure.`);
			} else {
				t.push(`${his} mediocre oral skills providing some relief.`);
			}
			if (eventSlave.teeth === "pointy") {
				t.push(`Although most of your attention is focused on the intriguing drama unfolding on your wallscreen, you still feel the extreme care ${he} has to take to keep ${his} shark-like teeth clear of you.`);
			} else if (eventSlave.teeth === "fangs") {
				t.push(`Although most of your attention is focused on the intriguing drama unfolding on your wallscreen, you can feel the slight hesitations as ${he} takes care to not scratch you with ${his} fangs.`);
			} else if (eventSlave.lips > 40) {
				t.push(`${His} huge lips are soft and pillowy against you.`);
			} else if (eventSlave.teeth === "fang") {
				t.push(`Although most of your attention is focused on the intriguing drama unfolding on your wallscreen, you can feel the care ${he} is taking to keep ${his} fang from clipping you.`);
			} else if (eventSlave.teeth === "gapped") {
				t.push(`Although most of your attention is focused on the intriguing drama unfolding on your wallscreen, you can feel the slight hesitations as ${he} takes care to not pinch you between ${his} front teeth.`);
			} else if ((eventSlave.teeth === "straightening braces") || (eventSlave.teeth === "cosmetic braces")) {
				t.push(`Although most of your attention is focused on the intriguing drama unfolding on your wallscreen, you can feel the slight hesitations as ${he} takes care to keep ${his} braces off you.`);
			}
			t.push(`You have an enjoyable evening glued to your wallscreen, punctuated by the playful ruffling ${eventSlave.hLength > 1 ? `of ${eventSlave.slaveName}'s ${eventSlave.hColor} hair` : `across ${eventSlave.slaveName}'s scalp`} and the occasional orgasm into ${his} waiting mouth.`);
			if (eventSlave.sexualFlaw !== "hates oral") {
				t.push(`Though your experience was more stimulating than ${hers}, ${eventSlave.slaveName} <span class="devotion inc">enjoyed being used while you enjoyed yourself.</span>`);
				eventSlave.devotion += 4;
			} else {
				t.push(`Although you enjoyed ${his} ministrations, ${eventSlave.slaveName} had a bad time because of ${his} <span class="devotion dec">hate of oral.</span>`);
				eventSlave.devotion -= 2;
			}
			seX(eventSlave, "oral", V.PC, "penetrative");
			return t;
		}

		function cuddle() {
			let t = [];
			t.push(`Though your evening could hardly be called eventful, there is something eminently comforting about having a warm`);
			if (eventSlave.physicalAge > 30) {
				t.push(woman);
			} else if (eventSlave.physicalAge > 18) {
				t.push("young lady");
			} else if (eventSlave.physicalAge > 12) {
				t.push("teen");
			} else {
				t.push(`little ${girl}`);
			}
			t.push(`cuddled up beside you to idly while away the hours`);
			if (eventSlave.bellyPreg >= 1500 && eventSlave.pregSource === -1) {
				t.push(t.pop() + ",");
				t.push(`especially when ${he} is ${eventSlave.belly >= 300000 ? `so massively swollen with your children` : `heavy with your child${eventSlave.pregType > 1 ? "ren" : ""}`}`);
			}
			t.push(t.pop() + ".");
			t.push(`${He} <span class="trust inc">trusts you more</span> for these few intimate hours amidst ${his} life of sexual servitude.`);
			eventSlave.trust += 4;
			return t;
		}

		function torture() {
			let t = [];
			t.push(`Though there is no shortage of torments you inflict during the course of your day to day life as an arcology owner, there is something refreshing about torturing a slave out of idle boredom rather than corrective disciple or sexual domination. Your night is filled with ${eventSlave.voice === 0 ? "the horrible rasping that a mute throat substitutes for cries of agony" : "echoing shrieks of anguish"}, though every vocal outburst is idly punished with electro shock or strike of the whip. Come the morning, ${eventSlave.slaveName}`);
			if (eventSlave.fetish === "masochist") {
				t.push(`is mortified by the intensity of ${his} orgasms that night,<span class="devotion inc">and more convinced than ever that ${he}'s a pain slut,</span> and yet`);
				eventSlave.devotion += 4;
			}
			t.push(`<span class="trust dec">scuttles away to tend to the bruises and marks that litter ${his} battered body.</span>`);
			eventSlave.trust -= 5;
			return t;
		}
	}
};

repo_name: Welptard/fc

license: mit


code:
App.Events.RESSMoistPussy = class RESSMoistPussy extends App.Events.BaseEvent {
	eventPrerequisites() {
		return []; // always valid if sufficient actors can be cast successfully
	}

	actorPrerequisites() {
		return [
			[ // single event slave
				s => s.assignment !== Job.QUARTER,
				s => s.devotion > 20,
				s => s.vaginaLube > 1,
				hasAnyArms,
				canDoVaginal,
			]
		];
	}

	execute(node) {
		/** @type {Array<App.Entity.SlaveState>} */
		let [eventSlave] = this.actors.map(a => getSlave(a));
		const {
			He, he, His, his, him, hers
		} = getPronouns(eventSlave);
		const belly = bellyAdjective(eventSlave);

		V.nextLink = "Next Week";

		App.Events.drawEventArt(node, eventSlave, "no clothing");

		let t = [];
		t.push("Just as you're about to give");
		t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave));
		t.push(`${his} weekly inspection, a minor business matter comes up and diverts your attention.`);
		t.push(`So, for about ten minutes, ${he} has nothing at all to do other than ${canStand(eventSlave) ? "stand" : hasAnyLegs(eventSlave) ? "kneel" : "sit"} in front of your desk in your office, ${canSee(eventSlave) ? "watching" : canHear(eventSlave) ? "listening to" : "feeling the subtle vibrations from"} you, ${(V.assistant.personality > 0) ? `${V.assistant.name}'s avatar,` : ""} the other slaves who come and go, and the general lewdness of the arcology, much of which is ${(canSee(eventSlave)) ? "visible" : canHear(eventSlave) ? "audible" : "apparent"} from right here.`);
		if ((eventSlave.attrXY > 50) && (V.PC.boobs < 300)) {
			t.push(`${He} finds your strong body attractive, and ${his} gaze rests most frequently ${canSee(eventSlave) ? "on" : "towards"} you.`);
		} else if ((eventSlave.attrXX > 50) && (V.PC.boobs >= 650)) {
			t.push(`${He} finds your prominent breasts attractive, and ${his} gaze rests most frequently ${canSee(eventSlave) ? "on" : "towards"} them.`);
		} else if (eventSlave.fetish === "pregnancy") {
			if (eventSlave.preg > eventSlave.pregData.normalBirth / 1.33) {
				t.push(`The combination of being hugely pregnant and a pregnancy fetishist keeps ${his} libido raging.`);
			} else if (V.PC.belly >= 10000) {
				t.push(`${He} finds your protruding pregnancy attractive, and ${his} gaze rests most frequently ${canSee(eventSlave) ? "on" : "towards"} it.`);
			}
		} else if (eventSlave.aphrodisiacs > 0 || eventSlave.inflationType === "aphrodisiac") {
			t.push(`The aphrodisiacs ${he}'s on never let ${his} libido rest for long.`);
		} else if (eventSlave.energy > 95) {
			t.push(`${His} nymphomania keeps ${him} perpetually ${canSee(eventSlave) ? "watchful for any sexual sights" : canHear(eventSlave) ? "listening for sexual acts" : "eager for sexual acts"}, especially any which promise ${his} participation.`);
		} else if (eventSlave.energy > 40) {
			t.push(`${His} healthy sex drive does its work, and with the constant coming and going ${he}'s not starved for things ${he} finds attractive.`);
		} else {
			t.push(`Despite ${his} weak libido, ${he}'s been a sex slave long enough that ${his} body knows that it may be called upon to render sexual service soon.`);
		}
		t.push(`The consequences of the special qualities of ${his} womanhood soon become apparent.`);
		App.Events.addParagraph(node, t);

		t = [];
		t.push(`Your slaves are all in the very best of vaginal health, so the scent of ${his} female arousal is not strong. But ${his} cunt produces such copious natural lubricant that with nothing to do but ${canStand(eventSlave) ? "stand" : "rest"} there, ${his} ${eventSlave.counter.births > 0 ? "motherly" : eventSlave.weight > 30 ? "thick" : eventSlave.muscles > 30 ? "strong" : "feminine"} inner thighs are soon slick with a sheen of healthy pussyjuice. You notice a droplet of the stuff running down ${his} warm ${eventSlave.skin} skin.`);
		if (canAchieveErection(eventSlave) && eventSlave.chastityPenis !== 1) {
			t.push(`${His} ${eventSlave.dick > 3 ? "stiff prick" : "hard little dick"} is sticking up from atop ${his} pussy, leaving it nice and visible.`);
		} else if (eventSlave.dick > 0) {
			t.push(`${His} pussy is ${eventSlave.dick > 3 ? "entirely" : "partially"} concealed by ${his} limp dick, which is getting a good coating, since it's resting against the source.`);
		}
		if (eventSlave.labia > 0) {
			t.push(`${His} prominent labia is flushed and moist, and frame ${his} womanhood invitingly.`);
		}
		if (eventSlave.clit > 0) {
			t.push(`${His} clit is rapidly becoming visible as the blood rushes there from every other part of ${his} body.`);
		}
		if (eventSlave.bellyPreg >= 10000) {
			t.push(`${His} huge pregnancy heaves a little as ${he} starts to breathe a bit harder, and the visual connection between ${his} gravid belly and ${his} needy womanhood is inescapable.`);
		}
		t.push(`${He}'s a good ${SlaveTitle(eventSlave)}, and remains obediently before your desk, filling your office with ${his} subtle perfume as ${he} waits for you.`);

		App.Events.addParagraph(node, t);
		App.Events.addResponses(node, [
			new App.Events.Result(`Make love to ${his} ready cunt`, love, virginityWarningLove()),
			new App.Events.Result(`Pound ${his} wet pussy`, pound, virginityWarningPound()),
			new App.Events.Result(`Feed ${him} ${his} own pussyjuice`, feed),
		]);

		function love() {
			let container = document.createDocumentFragment();
			t = [];

			t.push(`${His} body is so perfectly made to be fucked that it's getting itself ready for you, without your even having to give the order.`);
			t.push(`Deciding not to bother with verbal commands, you approach ${him} and reach for one of ${his} hands; ${he} obediently extends it towards your grasp, and follows`);
			if ((eventSlave.energy > 40) || (eventSlave.aphrodisiacs > 0) || eventSlave.inflationType === "aphrodisiac") {
				t.push("eagerly");
			} else {
				t.push("willingly");
			}
			t.push(`as you pull ${him} in for a`);
			if (eventSlave.boobs > 5000) {
				t.push(`hug (cushioned by ${his} enormous udders),`);
			} else if (eventSlave.belly >= 10000) {
				t.push(`hug (quite a stretch thanks to ${his} ${belly} belly),`);
			} else if (eventSlave.dick > 5) {
				t.push(`hug (made rather lewd by ${his} enormous penis),`);
			} else {
				t.push(`hug,`);
			}
			t.push(`kiss ${him} deeply, and slide your arms down ${his}`);
			if (eventSlave.weight > 160) {
				t.push(`rippling`);
			} else if (eventSlave.weight > 95) {
				t.push(`soft`);
			} else if (eventSlave.muscles > 95) {
				t.push(`ripped`);
			} else if (eventSlave.muscles > 30) {
				t.push(`muscular`);
			} else if (eventSlave.muscles > 5) {
				t.push(`toned`);
			} else {
				t.push(`soft`);
			}
			t.push(`back to`);
			if (eventSlave.butt > 12) {
				t.push(`sink your arms into ${his} expansive`);
			} else if (eventSlave.butt > 6) {
				t.push(`heft ${his} monstrous`);
			} else if (eventSlave.butt > 3) {
				t.push(`squeeze ${his} healthy`);
			} else {
				t.push(`cup ${his} cute little`);
			}
			t.push(`buttocks. ${He} ${eventSlave.voice > 0 ? "coos" : "hums mutely"} at the feeling of your ${V.PC.title === 1 ? "strong" : "feminine"} hands on ${his} bottom, and presses ${him}self against you as you rotate the two of you until you can set ${his} butt on the edge of your desk and ${V.PC.dick !== 0 ? `slide your big dick into ${his} well-lubricated cunt.` : `assertively press your own pussy against ${his} wet cunt.`}`);
			App.Events.addParagraph(container, t);

			t = [];
			t.push(`${He} makes as if to lie back and take it, but you keep an arm around ${his} back and hug ${his}`);
			if (eventSlave.boobs > 2000 || eventSlave.belly >= 5000) {
				if (eventSlave.boobs > eventSlave.belly) {
					t.push(`as closely as ${his} big breasts will permit.`);
				} else {
					t.push(`as closely as ${his} ${belly} ${eventSlave.bellyPreg >= 3000 ? "pregnant belly" : "belly"} will permit.`);
				}
			} else if (V.PC.belly >= 5000) {
				t.push(`as closely as your pregnant belly will permit.`);
			} else {
				t.push(`closer than ever.`);
			}
			t.push(`You take your other hand and place a firm but loving grip under ${his} chin, lifting ${his} ${App.Desc.eyeColor(eventSlave)}-eyed gaze to meet yours before kissing ${him} again. All the while, you`);
			if (V.PC.dick !== 0) {
				t.push(`fuck ${him} powerfully, withdrawing your dick almost all the way and then hilting yourself in ${his} soaked slit.`);
				t.push(VCheck.Vaginal(eventSlave, 1));
			} else {
				t.push(`trib ${him} with assurance, grinding your hips against ${hers} and making ${him} feel your heat.`);
				seX(eventSlave, "vaginal", V.PC, "penetrative");
			}
			t.push(`${He} clings to you, accepting the closeness to ${his} ${getWrittenTitle(eventSlave)} and enjoying the loving attention, even as the extreme wetness of ${his} cunt and your ${V.PC.dick !== 0 ? "powerful thrusting" : "hungry grinding"} begin to produce lewd noises from between you.`);
			t.push(`${His} generous natural lubrication lessens the friction and sensation a little, and you go for a long time before you both climax.`);
			t.push(`You lead ${him} into your office shower, since you're both coated in ${his} pussyjuice${V.PC.dick !== 0 ? ` and ${he}'s carrying a big load of your cum` : ", and your own"}.`);
			t.push(`Under the hot water, you don't even have to pull ${him} close; <span class="hotpink">${he} presses ${him}self into your arms on ${his} own.</span>`);
			if (eventSlave.sexualQuirk === "romantic") {
				t.push(`For an incorrigible romantic like ${him}, this encounter was perfect, and ${he} <span class="hotpink">loves you all the more for it.</span>`);
				eventSlave.devotion += 3;
			}
			eventSlave.devotion += 5;
			App.Events.addParagraph(container, t);

			return container;
		}

		function pound() {
			t = [];

			t.push(`${He}'s so generously lubricated that ${he}'s ready to take a good hard fuck, so you decide to give ${him} one.`);
			t.push(`You point at the ground, and you don't even have to tell ${him} to get down on all fours and get ready to take it.`);
			if (canSee(eventSlave)) {
				t.push(`Your gesture says it for you, and ${he} obediently gets down and gets in position to be bred like a bitch.`);
			} else {
				t.push(`The atmosphere of the room says it for you, and ${he} obediently gets down and gets in position to be bred like a bitch.`);
			}
			t.push(`${He} angles ${his} hips just right to offer ${his} cunt to you,`);
			if (eventSlave.belly >= 300000) {
				t.push(`an endeavor given the size of ${his} middle,`);
			} else if (eventSlave.belly >= 5000) {
				t.push(`while giving ${his} rounded middle room to hang,`);
			}
			t.push(`and even reaches down to spread ${his} ${eventSlave.labia > 1 ? "dangling labia" : "labia"} to invite you into ${his} pink channel.`);
			if (V.PC.dick !== 0) {
				if (eventSlave.vagina > 1) {
					t.push(`${He} can take your big dick without a twinge,`);
				} else {
					t.push(`Your big dick will fill ${his} tight cunt to its limits,`);
				}
				t.push(`but you grab ${his} hips and`);
			} else {
				t.push(`You select a strap-on that's right at the limits of ${his}`);
				if (eventSlave.vagina > 3) {
					t.push(`cavernous`);
				} else if (eventSlave.vagina > 2) {
					t.push(`big`);
				} else if (eventSlave.vagina > 1) {
					t.push(`open`);
				} else {
					t.push(`tight little`);
				}
				t.push(`cunt's capacity, don it, and`);
			}
			t.push(`mount ${him} with such force that your first stroke brings ${his} butt against your hips with an audible smack. There's also a deliciously lewd noise as ${V.PC.dick !== 0 ? "your invading penis" : "the invading phallus"} forces a little gush of pussyjuice out of ${him}.`);
			t.push(`${He} ${eventSlave.voice > 0 ? "shrieks, but it's a shriek" : "gasps, but it's a gasp"} of pleasure, and your rutting is so well-lubricated that ${he} has no trouble getting off on it. Wanting ${his} climax, you reach around ${him} and grab hold of ${his} pussy, feeling the slippery fluid between your fingers and the lewd thrusting motion as ${V.PC.dick !== 0 ? "your cock" : "the phallus"} pistons in and out of ${him}.`);
			t.push(`That bit of stimulation is enough to tip ${him} over, and you feel a gush of femcum against your hand as ${V.PC.dick !== 0 ? "your dickhead" : "the head of the strap-on"} forces an orgasm out of ${his} g-spot. ${He}'s so discombobulated that ${he} collapses into the puddle of pussyjuice ${he} left on the floor when you stand up and head off for a shower, but ${he} crawls after you as best ${he} can${hasBothLegs(eventSlave) ? " on rubbery legs." : "."}`);
			if (eventSlave.fetish === "submissive") {
				if (eventSlave.fetishKnown === 1) {
					t.push(`The ${SlaveTitle(eventSlave)} sub loves getting fucked like that, and`);
					if (eventSlave.fetishStrength > 95) {
						t.push(`<span class="lightsalmon">seems even more submissive</span>`);
						eventSlave.fetishStrength += 10;
					} else {
						t.push(`since ${he}'s fully confirmed in ${his} status as a sub, ${he} <span class="hotpink">glows with devotion</span>`);
						eventSlave.devotion += 3;
					}
					t.push(`as ${he} washes ${him}self in the shower with you.`);
				} else {
					t.push(`${He} seems utterly dissipated by the fucking ${he} just got, and may have just had the best sex of ${his} life. <span class="lightsalmon">${He}'s a submissive!</span>`);
					eventSlave.fetishKnown = 1;
				}
			}
			t.push(VCheck.Vaginal(eventSlave, 1));
			eventSlave.devotion += 5;
			return t;
		}

		function feed() {
			t = [];

			t.push(`You approach ${him} and`);
			if (eventSlave.dick > 0) {
				t.push(`reach under ${his} girldick for ${his}`);
			} else if (eventSlave.balls > 3) {
				t.push(`reach under ${his} dangling balls`);
			} else {
				t.push(`cup ${his}`);
			}
			t.push(`sopping pussy. ${He} gasps as ${he} feels your cool grasp.`);
			t.push(`Your possessive hand encompasses ${his} vulva, with your index and ring fingers sliding around either side of ${his} pubic mound to grip ${his} entire womanhood.`);
			if (eventSlave.vagina > 0) {
				if (eventSlave.vagina > 1) {
					t.push(`${His} relaxed pussy almost draws your middle finger inward and upward,`);
				} else {
					t.push(`${His} pussy welcomes your middle finger,`);
				}
				t.push(`and you hook it inside ${his} body, gathering a healthy amount of pussyjuice and brushing ${his} g-spot.`);
			} else {
				t.push(`You're careful not to penetrate ${his} virgin slit with your middle finger, but you draw it up the exterior of ${his} channel, gathering a healthy amount of pussyjuice.`);
			}
			t.push(`Then you remove your hand, though the horny ${SlaveTitle(eventSlave)} unconsciously tries to follow the withdrawing digits.`);
			if (canSee(eventSlave)) {
				t.push(`${He} stares at you, waiting to see what you're going to do, and a blush begins to rise on ${his} ${eventSlave.skin} cheeks as ${he} sees you reaching for ${his} mouth. ${His}`);
			} else if (canHear(eventSlave)) {
				t.push(`${He} listens carefully to your movements, waiting to see what you're going to do, and a blush begins to rise on ${his} ${eventSlave.skin} cheeks as ${he} feels you reaching for ${his} mouth. ${His}`);
			} else {
				t.push(`${He} stays as still as ${he} can, until ${his} ${eventSlave.skin} cheeks blush as ${he} feels you reaching for ${his} mouth. ${His}`);
			}
			if (eventSlave.lips > 95) {
				t.push(`facepussy`);
			} else if (eventSlave.lips > 40) {
				t.push(`pillow-like`);
			} else if (eventSlave.lips > 10) {
				t.push(`soft`);
			} else {
				t.push(`thin`);
			}
			t.push(`lips part and you insert all three of your fingers into ${his} hot mouth. ${He} quivers at the intimacy of the gesture, and the ${canTaste(eventSlave) ? "taste" : "feel"} of ${his} own juices. The tremor sends a delicious motion through ${his}`);
			if ((eventSlave.boobsImplant === 0) && (eventSlave.boobs > 300)) {
				t.push(`natural ${eventSlave.boobs > 2000 ? "udders." : "breasts."}`);
			} else if ((eventSlave.boobsImplant / eventSlave.boobs) >= 0.60) {
				t.push(`fake tits.`);
			} else if (eventSlave.weight > 160) {
				t.push(`fat folds.`);
			} else if (eventSlave.belly >= 5000) {
				if (eventSlave.bellyPreg >= 3000) {
					t.push(`gravidness.`);
				} else if (eventSlave.bellyImplant >= 3000) {
					t.push(`distended belly.`);
				} else {
					t.push(`${eventSlave.inflationType}-filled belly.`);
				}
			} else if (eventSlave.weight > 95) {
				t.push(`soft body.`);
			} else if (canAchieveErection(eventSlave) && !(eventSlave.chastityPenis)) {
				t.push(`stiff prick.`);
			} else if (eventSlave.scrotum > 4) {
				t.push(`dangling balls.`);
			} else if (eventSlave.dick > 0) {
				t.push(`limp bitchclit.`);
			} else if (eventSlave.weight > 30) {
				t.push(`chubbiness.`);
			} else {
				t.push(`body.`);
			}
			t.push(`You keep your fingers where they are until ${he}'s licked them really clean. ${His} hot tongue runs repeatedly between each of your fingers`);
			if (eventSlave.tonguePiercing > 0) {
				t.push(`and the smooth hardness of ${his} tongue piercing brushes against them`);
			 }
			t.push(t.pop() + ".");
			t.push(`${He} ${eventSlave.voice > 0 ? "moans whorishly" : "begins to pant"} when you go back for more, and the third time you harvest ${his} own pussyjuice to feed it to ${him}, ${he} orgasms, adding some femcum to ${his} next little meal licked off your fingers.`);
			t.push(`${His} ${canSee(eventSlave) ? "eyes shine" : "face is alight"} with <span class="mediumaquamarine">gratitude and trust.</span>`);
			eventSlave.trust += 5;
			return t;
		}

		function virginityWarningLove() {
			return (eventSlave.vagina === 0 && V.PC.dick !== 0) ? `This option will take ${his} virginity` : null;
		}

		function virginityWarningPound() {
			return eventSlave.vagina === 0 ? `This option will take ${his} virginity` : null;
		}
	}
};


code:
App.Events.RESSMuscles = class RESSMuscles extends App.Events.BaseEvent {
	eventPrerequisites() {
		return [];
	}

	actorPrerequisites() {
		return [
			[ // single event slave
				s => s.fetish !== "mindbroken",
				canMove,
				hasAnyArms,
				s => s.muscles > 30,
				s => s.weight <= 10
			]
		];
	}

	execute(node) {
		/** @type {Array<App.Entity.SlaveState>} */
		let [eventSlave] = this.actors.map(a => getSlave(a));
		const {
			He, he, His, his, hers, him, himself, girl
		} = getPronouns(eventSlave);

		V.nextLink = "Next Week";

		App.Events.drawEventArt(node, eventSlave, "no clothing");

		let t = [];
		t.push(`Early one morning,`);
		t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave));
		if (!canWalk(eventSlave)) {
			t.push(`crawls`);
		} else if ((eventSlave.shoes === "heels") || (eventSlave.shoes === "pumps") || (eventSlave.shoes === "boots") || (eventSlave.shoes === "extreme heels")) {
			t.push(`totters`);
		} else if (eventSlave.belly >= 10000) {
			t.push(`waddles`);
		} else {
			t.push(`walks`);
		}
		t.push(`past your door stark naked, with a towel thrown over ${his} shoulder. ${He}'s clearly moving from the gym to the showers after a hard workout; ${he}'s quite the iron pumper and gets up before anyone to protect ${his} gains. ${He} notices your gaze, so ${he} subtly flexes for your benefit. Cords of muscle ripple along ${his} massive thighs,`);
		if (eventSlave.bellyPreg >= 15000) {
			// no abs
		} else if (eventSlave.bellyPreg >= 10000) {
			t.push(`pregnancy ruined abs,`);
		} else if (eventSlave.belly >= 10000) {
			t.push(`hints of what were once abs across ${his} ${bellyAdjective(eventSlave)} taut middle,`);
		} else if (eventSlave.belly >= 1500) {
			t.push(`broadening abs,`);
		} else {
			t.push(`washboard abs,`);
		}
		t.push(`ripped biceps, and strapping lats.`);
		if (eventSlave.dick > 2) {
			t.push(`${His} massive cock completes the picture.`);
		}
		App.Events.addParagraph(node, t);

		App.Events.addResponses(node, [
			new App.Events.Result(`Reward ${him} for ${his} gains`, reward, fuckNote()),
			new App.Events.Result(`Take advantage of ${his} gains with a powerfuck`, powerfuck, fuckNote()),
			((eventSlave.toyHole === "dick" || V.policies.sexualOpenness === 1) && canPenetrate(eventSlave) && eventSlave.belly < 100000)
				? new App.Events.Result(`See if ${he} can put those gains to good use`, penetration, "This option will penetrate you")
				: new App.Events.Result(),
			new App.Events.Result(`Compliment ${his} gains and send ${him} on ${his} way`, compliment),
		]);

		function fuckNote() {
			if (V.PC.dick > 0) {
				if (canDoVaginal(eventSlave) && (eventSlave.vagina === 0)) {
					return `This option will take ${his} virginity`;
				} else if (!canDoVaginal(eventSlave) && canDoAnal(eventSlave) && (eventSlave.anus === 0)) {
					return `This option will take ${his} anal virginity`;
				}
			}
			return null;
		}

		function reward() {
			let t = [];
			t.push(`You tell ${him} to spread ${his} towel on the floor and lie`);
			if (eventSlave.belly >= 5000) {
				t.push(`on ${his} side on it. You lie next to ${him} and`);
			} else {
				t.push(`face-down on it. You`);
			}
			t.push(`run your hands across ${his} sweaty ${V.seeRace === 1 ? eventSlave.race : ""} muscles before giving ${him} a thorough, skillful and very intense massage. ${He} moans and grunts as you work the lactic acid out of ${his} muscles, slowly reducing ${him} to a puddle of ripped sex slave. As you're rubbing ${him} down to finish the massage, ${he} meekly begs you to fuck ${him}.`);
			if (!canDoVaginal(eventSlave) && !canDoAnal(eventSlave)) {
				t.push(`You tell ${him} that's not an option and pull ${him} into a kiss instead. It's a strange sensation, this mass of muscle lying quietly still in your arms you, whimpering with delight as you gently make out with ${him}. Your wandering hands eventually tip ${him} over the edge; ${he} hugs you tight as ${he} shakes with orgasm. Once ${he} stops crushing you, you return to enjoying ${his} sweaty body.`);
			} else {
				t.push(`As ${he} lies still,`);
				if (V.PC.dick === 0) {
					t.push(`you lift one of ${his} legs and straddle yourself in to bring your groin against ${hers}. It's a strange sensation, this mass of muscle lying quietly still beneath you, whimpering with delight as you gently scissor yourself against ${him}. ${He} comes in no time at all. When ${he} does ${he} squeezes you between vice-like thighs, ${V.PC.vagina !== -1 ? "pressing your pussy deliciously and" : ""} bringing you to climax, too.`);
				} else {
					t.push(`you slowly push your cock into ${his}`);
					if (canDoVaginal(eventSlave)) {
						t.push(`pussy; ${he}'s so relaxed from the massage that it slides in easily.`);
						t.push(VCheck.Vaginal(eventSlave, 1));
						t.push(`It's a strange sensation, this mass of muscle lying quietly still beneath you, whimpering with delight as you gently penetrate ${him}. ${He} comes in no time at all. When ${he} does you happen to be halfway inside ${him}; ${he} wraps ${his} legs around you and pulls you into ${his} depths. You explode into ${him} as ${he} holds you in place with ${his} vice-like thighs.`);
					} else {
						t.push(`ass; ${he}'s so relaxed from the massage that it slides in easily.`);
						t.push(VCheck.Anal(eventSlave, 1));
						t.push(`It's a strange sensation, this mass of muscle lying quietly still beneath you, whimpering with delight as you gently take ${his} ass. ${He} comes in no time at all. When ${he} does you happen to be halfway inside ${him}; ${his} sphincter mercilessly squeezes your head while ${his} muscular buttocks clench your shaft between them. You explode into ${him}.`);
					}
				}
				if (eventSlave.dick > 0) {
					t.push(`As ${he} stands, ${his} now-softening penis drips cum.`);
				}
			}
			t.push(`<span class="devotion inc">${His} love for you has increased.</span>`);
			eventSlave.devotion += 4;
			return t;
		}

		function powerfuck() {
			let t = [];
			t.push(`It's time to see if ${he}'s got anything left in those sore ${V.seeRace === 1 ? eventSlave.race : ""} muscles. You push the towel off ${his} shoulder, take a lick of the delicious salty sweat along ${his} collarbone, and get to work. For the next hour, you put ${him} through a series of sexual positions that require ${him} to balance and support ${himself} in difficult positions. ${He} hangs from the ceiling, goes up on one tiptoe, and fucks in a handstand. ${He}'s as muscular inside as ${he} is outside.`);
			if (V.PC.dick === 0) {
				t.push(`You climax repeatedly, mixing your pussy juice with ${his} sweat all across ${his} body.`);
			} else {
				if (canDoVaginal(eventSlave)) {
					t.push(VCheck.Vaginal(eventSlave, 1));
					t.push(`You come repeatedly, and before long cum is dripping out of ${his} pussy as you continue.`);
				} else if (canDoAnal(eventSlave)) {
					t.push(VCheck.Anal(eventSlave, 1));
					t.push(`You come repeatedly, and before long cum is dripping out of ${his} ass as you continue.`);
				} else {
					t.push(`You come repeatedly, leaving ropes of your cum all across ${his} sweaty body.`);
				}
			}
			if (eventSlave.dick > 0) {
				t.push(`From position to position, ${his} erection adds its own fluids to the mess on the floor.`);
			}
			t.push(`By the end, ${he}'s shaking from muscle fatigue and panting ${his} gratitude. <span class="trust inc">${His} confidence in ${his} place has increased.</span>`);
			eventSlave.trust += 4;
			return t;
		}

		function penetration() {
			let t = [];
			t.push(`It's time to see if ${he}'s got anything left in those sore ${V.seeRace === 1 ? eventSlave.race : ""} muscles. You order ${him} to take you in a standing fuck${V.PC.belly >= 10000 ? ", a tall order given how pregnant you are" : ""}. Despite how exhausted ${he} is, ${he} manages to lift you and hilt ${himself} in your`);
			if (V.PC.vagina !== -1) {
				t.push("pussy.");
			} else {
				t.push("ass.");
			}
			t.push(`You feel ${his} quivering trying to hold you up, so you permit ${him} to take you against the wall; a welcome respite for the`);
			if (eventSlave.belly >= 5000) {
				if (eventSlave.bellyPreg >= 3000) {
					if (eventSlave.belly >= 100000) {
						t.push("massively");
					} else if (eventSlave.belly >= 10000) {
						t.push("hugely");
					}
					t.push("pregnant");
				} else if (eventSlave.bellyFluid >= 5000) {
					t.push(`${eventSlave.inflationType} filled`);
				} else {
					t.push(`${bellyAdjective(eventSlave)} bellied`);
				}
			}
			t.push("sweaty");
			if (eventSlave.physicalAge > 30) {
				t.push(`MILF.`);
			} else if (eventSlave.physicalAge > 17) {
				t.push(`slave${girl}.`);
			} else if (eventSlave.physicalAge > 12) {
				t.push(`teenager.`);
			} else {
				t.push(`kid.`);
			}
			t.push(`${He} dominantly fucks you, ${his} muscles flexing powerfully with every thrust. You're no slouch when it comes to muscles yourself, so when you feel ${him} tense with orgasm you wrap your legs around ${him} and hilt ${him} deep inside you. This only encourages ${him} to fuck you harder, quickly bring you to climax as well. ${He} gently carries you to your couch, where ${he} slides in behind you for a little post-coitus spooning. You definitely appreciate ${his} gains after such a good fuck. ${His} confidence in ${his} place has increased, as has ${his} love for you.`);
			eventSlave.trust += 4;
			eventSlave.devotion += 4;
			if (V.PC.vagina === -1) {
				seX(eventSlave, "penetrative", V.PC, "anal");
			} else {
				seX(eventSlave, "penetrative", V.PC, "vaginal");
			}
			if (canImpreg(V.PC, eventSlave)) {
				knockMeUp(V.PC, 50, 0, eventSlave.ID);
			}
			return t;
		}

		function compliment() {
			return `${He} finishes posing with an impressive display of ${his} obliques. ${He} walks powerfully to the shower, ${his} ripped buttocks delineating each step. The shower is glass-walled. As ${he} washes, several of your other slaves are waking up and starting their days. They can't help but stare as ${eventSlave.slaveName} soaps ${himself}. ${eventSlave.slaveName} enjoys the attention.`;
		}
	}
};


code:
App.Events.RESSObedientAddict = class RESSObedientAddict extends App.Events.BaseEvent {
	eventPrerequisites() {
		return [
			() => V.suppository === 0
		];
	}

	actorPrerequisites() {
		return [
			[ // single event slave
				s => s.fetish !== "mindbroken",
				hasAnyArms,
				hasAnyLegs,
				s => s.aphrodisiacs > 0 || s.inflationType === "aphrodisiac",
				s => s.addict > 20,
				s => s.devotion > 20 || s.trust < -20
			]
		];
	}

	execute(node) {
		/** @type {Array<App.Entity.SlaveState>} */
		let [eventSlave] = this.actors.map(a => getSlave(a));
		const {
			He, he, His, his, him, girl
		} = getPronouns(eventSlave);
		const {title: Master} = getEnunciation(eventSlave);

		/** @type {App.Entity.PlayerState} */
		let PC = V.PC;

		V.nextLink = "Next Week";

		App.Events.drawEventArt(node, eventSlave);

		let t = [];

		t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave));
		t.push(`takes ${his} aphrodisiacs in pill form, with ${his} food. They're dispensed alongside ${his} nutrition in the kitchen. You happen to be passing by when ${he}'s being issued ${his} drugs, and you see ${him} ${canSee(eventSlave) ? "staring" : "gazing"} thoughtfully at the insignificant-looking little pill, just holding it in ${his} hand and considering it for a long time. When ${he} realizes you're watching, ${he} turns to you and you realize ${his} eyes are moist.`);
		if (canTalk(eventSlave)) {
			t.push(`${He} ${SlaveStatsChecker.checkForLisp(eventSlave) ? "lisps through huge, quivering lips" : "mutters"}, "${Master}, ${Spoken(eventSlave, "I hate this shit. I come and come and come but it's just physical. I haven't felt close to anyone ever since I've been on these fucking aphrodisiacs.")}" ${He} shrugs bitterly. ${Spoken(eventSlave, `"Still crave them though."`)}`);
		} else {
			t.push(`${He} uses trembling gestures to pour out dissatisfaction with life as an aphrodisiac addict. ${He} is emotionally unsatisfied with the mechanical orgasms ${he} gets on the drugs, but craves them intensely.`);
		}
		App.Events.addParagraph(node, t);
		t = [];

		App.Events.addResponses(node, [
			new App.Events.Result(`Make an example by forcing ${him} to take a massive dose`, forceful),
			canDoVaginal(eventSlave) || canDoAnal(eventSlave)
				? new App.Events.Result(`Have caring sex with ${him} before ${he} takes the aphrodisiacs`, caring, virginityCheck())
				: new App.Events.Result()
		]);

		function forceful() {
			t = [];

			if (hasAnyEyes(eventSlave)) {
				t.push(`You take ${him} by the shoulders, look into ${his} ${hasBothEyes(eventSlave) ? "eyes" : "eye"},`);
			} else {
				t.push(`You take ${him} by the shoulders`);
			}
			t.push(`and tell ${him} you'll fix things so ${he} doesn't mind so much. ${He} looks hopeful, even when you tell ${him} to take ${his} pill. ${He} does, and you hand ${him} another. And another. ${He}'s crying with dread by the fourth pill, knowing that this is ${his} punishment for complaining. ${His} pupils dilate, ${he} begins to breathe hard, and ${his} ${eventSlave.skin} skin flushes badly. ${He} tries to beg you to fuck ${him} but can't seem to find the words. ${He} begins to masturbate compulsively, so hard that ${he} collapses to the kitchen floor with ${his} first spastic orgasm.`);
			if (eventSlave.chastityPenis === 1) {
				t.push(`${His} cock is painfully compressed by ${his} chastity cage, but it does nothing to stop ${his} frantic efforts to come.`);
			} else if (canAchieveErection(eventSlave)) {
				if (eventSlave.dick > 9) {
					t.push(`${His} inhuman cock is as engorged as physically possible given its size, threatens to knock ${him} unconscious from the sheer amount of blood diverted into it, and doesn't shrink at all when cum weakly splurts from its tip.`);
				} else if (eventSlave.dick > 6) {
					t.push(`${His} monstrous cock is agonizingly erect, threatens to knock ${him} unconscious from the sheer amount of blood is takes ${him} to get hard, and doesn't soften at all when ${he} spatters ${his} own chest with cum.`);
				} else if (eventSlave.dick > 4) {
					t.push(`${His} huge cock is agonizingly erect and doesn't soften at all when ${he} spatters ${his} own chest with cum.`);
				} else if (eventSlave.dick > 3) {
					t.push(`${His} big cock is agonizingly erect and doesn't soften at all when ${he} spatters ${his} own chest with cum.`);
				} else if (eventSlave.dick > 1) {
					t.push(`${His} cock is agonizingly erect and doesn't soften at all when ${he} spatters ${his} own chest with cum.`);
				} else if (eventSlave.dick > 0) {
					t.push(`${His} pathetic dick is agonizingly erect and doesn't soften at all when ${he} weakly dribbles cum.`);
				}
			} else if (canDoVaginal(eventSlave)) {
				t.push(`${His} pussy is dripping with moisture and ${his} ragingly stiff clit doesn't soften at all when ${he} comes.`);
			} else if (canDoAnal(eventSlave)) {
				t.push(`${His} hungry asshole spasms with orgasm, but ${he} doesn't even pause ${his} anal masturbation.`);
			} else {
				t.push(`${His} whole body spasms with orgasm, but ${he} doesn't even pause ${his} efforts to draw out an orgasm by any means possible.`);
			}
			t.push(`For the hour or so it takes ${him} to pass out, slaves using the kitchen have to step over ${his} prostrate, orgasming body, lying in a pool of ${his} own drool, tears, sweat, and fluids. The next time you see ${him} in the kitchen, ${he} takes ${his} medicine like a good ${girl}. All your aphrodisiac addicts recognize the symptoms and the punishment, and avoid even thinking about resisting the system.`);

			V.slaves.forEach(function(s) { if (s.aphrodisiacs > 0 || s.inflationType === "aphrodisiac") { s.trust -= 5; } });
			return t;
		}

		function caring() {
			t = [];

			t.push(`You back ${him} up against the wall of the kitchen, kissing ${him}, touching ${his} body with care, and quietly shushing ${his} attempts to ask questions. You deftly extract the pill form ${his} hand and put it on the counter for later. With time and skill you bring ${him} to a fine state of arousal, not to mention emotional need; ${he} begins to kiss you back with almost frantic enthusiasm. When ${he}'s clearly ready, you lay ${him} across the kitchen table and ${PC.dick === 0 ? `work your groin up between ${his} legs` : `enter ${him}`}, drawing out a lusty moan. As the sex continues, however, ${he} begins to look doubtful, then distracted, and then to twitch occasionally. Finally ${he} bursts into tears.`);
			if (canTalk(eventSlave)) {
				t.push(`"I — I — fucking need my fix to come, ${Master}," ${he} sobs.`);
			} else {
				t.push(`${He} indicates through ${his} weeping that ${he} can't climax without the drugs.`);
			}
			t.push(`You pass ${him} the pill, and ${he} continues to weep inconsolably, apologizing all the while, until the drug takes away ${his} ability to care about anything but getting fucked. When you finish and extract ${PC.dick === 0 ? `yourself from between ${his} legs` : `your cock from ${his} well-used hole`}, though, you think you can detect a deep sadness in ${his} eyes that it cannot reach.`);
			if (canDoVaginal(eventSlave)) {
				t.push(VCheck.Vaginal(eventSlave, 1));
			} else {
				t.push(VCheck.Anal(eventSlave, 1));
			}

			eventSlave.devotion += 4;
			return t;
		}

		function virginityCheck() {
			if (canDoVaginal(eventSlave) && eventSlave.vagina === 0) {
				return `This option will take ${his} virginity`;
			} else if (!canDoVaginal(eventSlave) && eventSlave.anus === 0) {
				return `This option will take ${his} anal virginity`;
			}
		}
	}
};


code:
App.Events.RESSObedientBitchy = class RESSObedientBitchy extends App.Events.BaseEvent {
	eventPrerequisites() {
		return [];
	}

	actorPrerequisites() {
		return [
			[ // single event slave
				s => s.fetish !== "mindbroken",
				canTalk,
				canSee,
				s => s.behavioralFlaw === "bitchy",
				s => s.devotion > 20,
				s => s.trust >= -20
			]
		];
	}

	execute(node) {
		/** @type {Array<App.Entity.SlaveState>} */
		let [eventSlave] = this.actors.map(a => getSlave(a));
		const {
			He, he, His, his, him
		} = getPronouns(eventSlave);
		const belly = bellyAdjective(eventSlave);

		/** @type {App.Entity.PlayerState} */
		let PC = V.PC;

		V.nextLink = "Next Week";

		App.Events.drawEventArt(node, eventSlave);

		let t = [];

		t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave));
		t.push(`is a decent slave, pretty well broken to your will and generally obedient. However, ${he} retains a cutting tongue. Though ${he}'s learned to ${his} considerable cost not to direct ${his} cheek at you, ${he} still insults your other slaves, and worse, will be sarcastic to members of the public ${he} encounters. You've worked on it, but it remains unsolved. Today, however, ${he} crossed the line. You were doing business in your office with a respected female slave drug wholesaler. The woman is in her late forties, and though she's something of a plastic surgery addict she has permitted her hair to go a becoming steel grey. Passing your office, ${eventSlave.slaveName} audibly commented on how old she looked to`);
		if (canStand(eventSlave)) {
			t.push(`another slave.`);
		} else {
			t.push(`${his} aide.`);
		}
		t.push(`Anger flashes in the businesswoman's eyes.`);

		App.Events.addParagraph(node, t);
		t = [];

		App.Events.addResponses(node, [
			new App.Events.Result("Beg her pardon and offer to loan the bitch to her", loan),
			new App.Events.Result("Offer to spitroast the bitch between the two of you", spitroast, analVirginWarning()),
			V.arcade > 0
				? new App.Events.Result(`Sentence ${him} to a month in the arcade`, arcade)
				: new App.Events.Result()
		]);

		function loan() {
			t = [];

			t.push(`The businesswoman's anger turns to malicious anticipation as you call ${eventSlave.slaveName} over and inform ${him} that you and the businesswoman have decided ${eventSlave.slaveName} will be spending the night with her. Now that you look at your business partner, she has certain signs of a sadist. ${eventSlave.slaveName} notices too, and begins to cry ${eventSlave.bellyPreg >= 1500 ? `and shield ${his} pregnancy` : ""} as the businesswoman promises that there will be "no permanent damage." ${eventSlave.slaveName} is unceremoniously returned in the early hours of the morning. ${His} back and buttocks have been meticulously flogged right up to the very edge of damage, leaving angry marks across ${his} ${eventSlave.skin} skin. ${His} mouth lolls open, as though ${he}'s been doing little but give cunnilingus.`);
			if (eventSlave.vagina !== -1) {
				t.push(`${His} pussy,`);
			} else if (eventSlave.dick === 0) {
				t.push(`${His} shamefully featureless groin with its tiny little hole,`);
			} else {
				t.push(`${His} dick,`);
			}
			t.push(`anus, ${eventSlave.belly >= 10000 ? "popped navel," : ""} and even ${his} nipples show signs of torture. Whenever ${he} thinks of a sharp remark in the future, ${he}'ll remember the pain and keep ${his} mouth shut.`);

			eventSlave.behavioralFlaw = "none";
			seX(eventSlave, "oral", "public", "penetrative", 5);

			return t;
		}

		function spitroast() {
			t = [];

			t.push(`The businesswoman grins slowly and reaches into ${his} purse as you inform ${eventSlave.slaveName} that you and the businesswoman will punish ${him} together. ${eventSlave.slaveName}'s eyes widen as the businesswoman fishes a massive strap-on out of ${his} bag. The surprise turns to fear as the businesswoman begins to slap it against ${eventSlave.slaveName}'s buttocks as you`);
			if (!isAmputee(eventSlave)) {
				if (eventSlave.belly >= 300000) {
					t.push(`push ${him} onto ${his} ${belly} belly.`);
				} else {
					t.push(`pull ${him} down on ${hasAllLimbs(eventSlave) ? "all fours." : "the ground."}`);
				}
			} else {
				t.push("arrange your bitchy little sex toy between you and your guest.");
			}
			t.push(`The businesswoman clearly wants ${his} ass, so you ${!canDoAnal(eventSlave) ? `quickly unfasten ${his} anal chastity. You` : ""} ${PC.vagina !== -1 ? `ride ${eventSlave.slaveName}'s face` : `facefuck ${eventSlave.slaveName}`} roughly as ${eventSlave.slaveName} takes a painful anal raping from the huge dildo. The businesswoman winks at you companionably and extracts squeals from ${eventSlave.slaveName} that feel especially delicious ${PC.vagina !== -1 ? "against your cunt" : "along your dick"}.`);
			if (canMove(eventSlave)) {
				t.push(`${eventSlave.slaveName} collapses ${eventSlave.belly >= 5000 ? `and rolls onto ${his} side` : ""} after a long punishment fuck;`);
			} else {
				t.push(`${eventSlave.slaveName} ends the day a sore toy;`);
			}
			t.push(`${his} <span class="hotpink">submission</span> to you and <span class="gold">fear of you</span> have both increased.`);

			if (eventSlave.anus === 0) {
				t.push(`The businesswoman considered ${his} <span class="lime">anal cherry</span> a <span class="green">respectable offer.</span>`);
				eventSlave.anus++;
				repX(500, "event", eventSlave);
			}

			eventSlave.devotion += 3;
			eventSlave.trust -= 3;
			seX(eventSlave, "anal", "public", "penetrative");
			seX(eventSlave, "oral", PC, "penetrative");
			return t;
		}

		function arcade() {
			t = [];

			t.push(`${eventSlave.slaveName} screams and begs when ${he} realizes what ${his} punishment for being stupid is to be, but you are obdurate.`);
			if (eventSlave.muscles > 30) {
				t.push(`${His} powerful form has to be sedated for immurement in the arcade.`);
			} else if (eventSlave.weight >= 190) {
				t.push(`${He} is so massively fat that immuring ${him} in the arcade is a struggle, even when ${he} isn't trying to.`);
			} else if (eventSlave.belly >= 120000) {
				t.push(`${He} is so enormously gravid that immuring ${him} in the arcade is a hassle, even though ${his} ${belly} middle limits ${his} ability to struggle.`);
			} else if (eventSlave.weight >= -10) {
				t.push(`${His} desperate struggles make immuring ${him} in the arcade difficult.`);
			} else if (eventSlave.belly >= 1500) {
				t.push(`${His} ${eventSlave.bellyPreg >= 3000 ? "pregnant" : `${belly}`} body makes it slightly difficult to fit ${him} properly into the restraints for immurement in the arcade.`);
			} else if (eventSlave.muscles < -15) {
				t.push(`${His} weak body makes immuring ${him} in the arcade pathetically easy.`);
			} else {
				t.push(`${His} thin form makes immuring ${him} in the arcade pathetically easy.`);
			}
			t.push(`After ${he}'s properly confined, the only sign of ${his} discomfiture is a slight movement of ${his} ${eventSlave.skin} butt as ${he} wriggles desperately against ${his} restraints.`);

			assignJob(eventSlave, "be confined in the arcade");
			eventSlave.sentence = 4;
			return t;
		}

		function analVirginWarning() {
			if (eventSlave.anus === 0) {
				return "This option will take anal virginity and ignore anal chastity";
			}
		}
	}
};


code:
App.Events.RESSObedientGirlish = class RESSObedientGirlish extends App.Events.BaseEvent {
	eventPrerequisites() {
		return [];
	}

	actorPrerequisites() {
		return [
			[ // single event slave
				s => s.fetish !== "mindbroken",
				s => s.assignment !== "work as a servant",
				s => canDoAnal(s) || canDoVaginal(s),
				s => s.butt < 3,
				s => s.boobs < 500,
				s => s.weight <= 10,
				s => s.muscles <= 30,
				s => s.trust >= -20,
				s => s.devotion > 20,
				s => s.devotion <= 50
			]
		];
	}

	execute(node) {
		/** @type {Array<App.Entity.SlaveState>} */
		let [eventSlave] = this.actors.map(a => getSlave(a));
		const {
			He, he, His, his, him, himself
		} = getPronouns(eventSlave);
		const {title: Master} = getEnunciation(eventSlave);
		const belly = bellyAdjective(eventSlave);

		/** @type {App.Entity.PlayerState} */
		let PC = V.PC;

		V.nextLink = "Next Week";

		App.Events.drawEventArt(node, eventSlave, "no clothing");

		let t = [];

		t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave));
		if (eventSlave.bellyPreg >= 1500) {
			t.push(`is nice and slim as ${he} can be given ${his} pregnancy,`);
		} else if (eventSlave.bellyImplant >= 1500) {
			t.push(`is nice and slim as ${he} can be given the implant rounding out ${his} middle,`);
		} else if (eventSlave.bellyFluid >= 1500) {
			t.push(`is nice and slim as ${he} can be given the amount of ${eventSlave.inflationType} distending ${his} middle,`);
		} else {
			t.push("is nice and slim,");
		}
		t.push(`with a trim chest, narrow hips and not much of an ass to speak of. Despite the myriad ways a Free Cities slaveowner can give his property tits and asses, you've held off for now, keeping ${him} lithe.`);
		if (canMove(eventSlave)) {
			if (hasAnyArms(eventSlave)) {
				t.push(`${He} comes before you for a routine nude inspection, obediently ${canStand(eventSlave) ? "standing" : "kneeling"} before your desk with ${his} ${hasBothArms(eventSlave) ? "hands crossed" : "hand placed"}`);
				if (eventSlave.belly >= 30000) {
					t.push(`atop ${his} ${belly} stomach.`);
				} else if (eventSlave.belly >= 1500) {
					t.push(`over ${his} rounded stomach.`);
				} else {
					t.push(`over ${his} flat stomach.`);
				}
			} else {
				t.push(`${He} comes before you for a routine nude inspection, obediently ${canStand(eventSlave) ? "standing" : "kneeling"} before your desk.`);
			}
		} else if (!hasAnyLegs(eventSlave)) {
			t.push(`Another slave strips ${him} and leaves ${his} naked torso on your desk for a routine inspection.`);
		} else {
			t.push(`Another slave helps ${him} in, aids in undressing ${him}, and leaves ${him} for your routine inspection.`);
		}
		t.push(`A perfectly devoted slave might display ${himself}, and a rebellious one might try to cover ${himself}: ${he}'s neither. `);
		if (eventSlave.dick > 0) {
			t.push(`Though ${he}'s not sexually aroused, ${his} cock is visible and contributes greatly to ${his} androgyny.`);
		} else if (eventSlave.vagina === -1) {
			t.push(`The smooth featureless skin between ${his} legs makes ${him} look like a doll, not a girl.`);
		} else {
			t.push(`${His} bare pussy completes the picture of simultaneous innocence and availability.`);
		}
		App.Events.addParagraph(node, t);
		t = [];

		App.Events.addResponses(node, [
			new App.Events.Result(`Let ${him} get dressed and spend some quality time with ${him}`, dress, virginityWarning(1)),
			canDoAnal(eventSlave)
				? new App.Events.Result(`Dominate ${his} narrow ass`, dominate, virginityWarning(0))
				: new App.Events.Result()
		]);

		function dress() {
			t = [];

			t.push(`You let ${eventSlave.slaveName} don a nice dress and take ${him} out ${!canWalk(eventSlave) ? "in a wheelchair" : ""}. ${He}'s a little suspicious at first but when you reach the first balcony on your lazy route around the huge building the sun on ${his} face and the gentle breeze around ${his} ears convince ${him} there's no trick. ${He} watches you shyly as you lead ${him} around, soaking in the sights and relaxing. Though you still speak as ${his} ${getWrittenTitle(eventSlave)}, you chat about goings on around the arcology, and you buy ${him} a fresh fruit from a vendor. The unexpected show of care and compassion has ${him} quite agog. By the time you take ${him} out onto another park-like balcony and fuck ${him} on a bench,`);
			if (eventSlave.dick > 0 && eventSlave.chastityPenis === 1 && eventSlave.chastityAnus === 1) {
				t.push(`${his} combined chastity cage and anal chastity belt makes ${him} move awkwardly.`);
			} else if (eventSlave.dick > 0 && eventSlave.chastityPenis === 1) {
				t.push(`${his} chastity cage is dribbling precum, a sign ${he} wouldn't mind having to take it up the ass.`);
			} else if (eventSlave.dick > 0 && eventSlave.chastityAnus === 1) {
				t.push(`${his} dick is tenting the front of ${his} dress, through ${his} anal chastity belt.`);
			} else if (eventSlave.dick > 0 && canAchieveErection(eventSlave)) {
				t.push(`${his} dick is tenting the front of ${his} dress and ${he}'s happy to take it up the ass.`);
			} else if (eventSlave.dick > 6) {
				t.push(`${he}'s happy to take it up the ass; there's even a steady stream of pre dripping from ${his} monstrous cock.`);
			} else if (eventSlave.dick > 0) {
				t.push(`${he}'s happy to take it up the ass, though there's no sign of an erection from ${his} useless sissy dick.`);
			} else if (!canDoVaginal(eventSlave)) {
				t.push(`${he}'s obviously ready and willing to get buttfucked, even if ${his} body has no physically obvious way to show it off.`);
			} else {
				t.push(`${he}'s wet and ready and moans happily as you enter ${him}.`);
			}
			if (canDoVaginal(eventSlave)) {
				t.push(VCheck.Vaginal(eventSlave, 1));
			} else {
				t.push(VCheck.Anal(eventSlave, 1));
			}
			t.push(`There's no hesitation or fear at all on ${his} face when ${he} ${canSee(eventSlave) ? "sees" : "notices"} you're returning ${him} to your penthouse; ${his} trust in you has increased.`);

			eventSlave.trust += 4;
			return t;
		}

		function dominate() {
			t = [];

			t.push(`You make a show of examining ${him} with a critical air that makes ${him} aware of ${his} modest endowments. Finished, you announce in a serious tone that you're concerned that you can't tell if ${he}'s a girl, since girls have breasts and butts. ${eventSlave.belly >= 1500 ? `${He} should do something about that bulbous gut too, you mock.` : ""}`);
			if (!canTalk(eventSlave)) {
				t.push(`${He} protests wordlessly, gesturing desperately at ${himself}.`);
			} else {
				if (eventSlave.lips > 70) {
					t.push(`${He} protests through ${his} huge lips,`);
				} else if (eventSlave.lipsPiercing + eventSlave.tonguePiercing > 2) {
					t.push(`${He} protests through ${his} piercings,`);
				} else {
					t.push(`${He} protests,`);
				}
				t.push(Spoken(eventSlave, `"${Master}, I'm a slave girl! Please, just look at me, ${Master}!"`));
			}
			t.push(`${canSee(eventSlave) ? "Shaking your head" : "Tutting"} with pretended doubt, you say that since you're not sure you'll have to make do. Your order ${him} to`);
			if (eventSlave.belly >= 300000) {
				t.push(`lean over ${his} ${belly} belly${PC.dick === 0 ? " while you don a strap-on" : ""}.`);
			} else if (eventSlave.belly >= 5000) {
				t.push(`lean face-down into the couch cushions${PC.dick === 0 ? " while you don a strap-on" : ""}.`);
			} else {
				t.push(`lie face-down on the couch${PC.dick === 0 ? " while you don a strap-on" : ""}.`);
			}
			t.push(`${He} does doubtfully, only realizing what you intend when ${he} feels ${PC.dick === 0 ? "the strap-on" : "your dickhead"} forcing its way between ${his} narrow buttcheeks. ${He} whimpers and moans ${eventSlave.belly < 300000 ? "into the couch" : ""} as you roughly sodomize ${him}. It's true, ${he}'s pretty androgynous from this angle, especially while ${he} takes it up the butthole. ${He} has become more submissive to you, but there's some fear there, too.`);
			t.push(VCheck.Anal(eventSlave, 1));

			eventSlave.trust -= 2;
			eventSlave.devotion += 4;
			return t;
		}

		function virginityWarning(type) {
			if (type === 1 && canDoVaginal(eventSlave)) {
				if (eventSlave.vagina === 0) {
					return `This option will take ${his} vaginal virginity`;
				}
			} else if (eventSlave.anus === 0 && canDoVaginal(eventSlave)) {
				return `This option will take ${his} anal virginity`;
			}
		}
	}
};


code:
App.Events.RESSObedientIdiot = class RESSObedientIdiot extends App.Events.BaseEvent {
	eventPrerequisites() {
		return [
			() => V.cockFeeder === 0
		];
	}

	actorPrerequisites() {
		return [
			[ // single event slave
				s => s.fetish !== "mindbroken",
				canMove,
				hasAnyArms,
				s => s.intelligence + s.intelligenceImplant < -50,
				s => s.devotion <= 50,
				s => s.devotion > -20 || s.trust < -20
			]
		];
	}

	execute(node) {
		/** @type {Array<App.Entity.SlaveState>} */
		let [eventSlave] = this.actors.map(a => getSlave(a));
		const {
			He, he, His, his, him, himself, girl
		} = getPronouns(eventSlave);
		const {HeA, heA} = getPronouns(assistant.pronouns().main).appendSuffix('A');
		const {say, title: Master} = getEnunciation(eventSlave);
		const belly = bellyAdjective(eventSlave);

		/** @type {App.Entity.PlayerState} */
		let PC = V.PC;

		V.nextLink = "Next Week";

		App.Events.drawEventArt(node, eventSlave, "no clothing");

		let t = [];

		t.push(`${capFirstChar(V.assistant.name)} breaks in on your work at your desk.`);
		t.push(App.UI.DOM.combineNodes(`"${assistant.personality === 0 ? properTitle() : "Sweetheart"}," ${heA} says, "`, App.UI.DOM.slaveDescriptionDialog(eventSlave)));
		t.push("is having trouble figuring out the meal dispenser again.");
		if (V.assistant.personality === 0) {
			t.push(`The report is deadpan, but ${heA} brings up a visual feed.`);
		} else {
			t.push(`${HeA} brings up a visual feed. "Poor baby!" ${heA} exclaims.`);
		}
		App.Events.addParagraph(node, t);
		t = [];

		t.push(`Slaves are supposed to place a cup under a spigot, which detects the cup's presence and dispenses the appropriate nutrition for the ${girl}. Unfortunately this concept seems a little tough for ${eventSlave.slaveName}. With no one around to ask for help, ${he} has resorted to trying to suck food out of the spigot with ${his} mouth. With no cup to be detected, ${he}'s not getting very far, and is getting bitterly frustrated.`);
		App.Events.addParagraph(node, t);
		t = [];

		App.Events.addResponses(node, [
			new App.Events.Result(`Give ${him} something more appropriate to suck on`, suck),
			new App.Events.Result(`Reassure ${him} and get ${him} to slow down`, reassure),
			new App.Events.Result(`Spank the stupid out of ${him}`, spank),
			V.arcade > 0
				? new App.Events.Result(`Sentence ${him} to a month in the arcade`, arcade)
				: new App.Events.Result()
		]);

		function suck() {
			t = [];

			t.push(`${capFirstChar(V.assistant.name)}, as usual, has to give the stupid slut considerable coaching to get ${him} to your office without getting lost. This is a near-miraculous imbecility, as the penthouse is expressly designed to make it nearly impossible to get anywhere from anywhere else without passing by the office door. ${He} understands orders to`);
			if (PC.dick === 0) {
				t.push(`perform cunnilingus, though, and gets down to it eagerly enough. When ${he} finishes the job, ${he} wipes ${his} mouth and then looks up at you doubtfully.`);
			} else {
				t.push(`suck a dick, though, and gets down to it eagerly enough. When ${he} finishes the job, ${he} busily swallows every drop of your ejaculate and then looks up at you doubtfully.`);
			}
			if (!canTalk(eventSlave)) {
				t.push(`${He} slowly spells out a question with ${his} ${hasBothArms(eventSlave) ? "hands" : "hand"}, asking if ${he}'s a good slave.`);
			} else {
				t.push(`${He} mumbles a hesitant question:`);
				t.push(Spoken(eventSlave, `"${eventSlave.rudeTitle === 1 ? PoliteRudeTitle(eventSlave) : Master}, am I a good slave?"`));
			}
			t.push(`You tell ${him} that ${he} is, running a hand ${eventSlave.hStyle === "shaved bald" ? `across ${his} bald scalp` : `through ${his} hair`}. ${He} seems <span class="hotpink">reassured,</span> and thankful when you give ${him} a cup of ${his} proper rations from your own hand.`);

			eventSlave.devotion += 4;
			seX(eventSlave, "oral", PC, "penetrative");
			return t;
		}

		function reassure() {
			t = [];

			t.push(`${He}'s so intent on trying to suck off the food dispenser that ${he} doesn't ${canHear(eventSlave) ? "hear" : "notice"} you enter the room. ${He} starts with surprise when you encircle ${his}`);
			if (eventSlave.belly >= 1500) {
				t.push(`${belly} ${eventSlave.bellyPreg >= 1500 ? "pregnant" : ""} belly`);
			} else {
				t.push("waist");
			}
			t.push(`with your arms and ${canHear(eventSlave) ? `murmur reassuringly in ${his} ear` : `give ${him} a reassuring squeeze`}.`);
			if (canTalk(eventSlave)) {
				t.push(`${He} ${say}s sadly,`);
				t.push(Spoken(eventSlave, `"Sorry ${eventSlave.rudeTitle === 1 ? PoliteRudeTitle(eventSlave) : Master}. I'm trying to be a good slave but it's hard."`));
			} else {
				t.push(`${He} sadly gestures at the spigot and then flicks ${his} own head.`);
			}
			t.push(`You kindly tell ${him} that you know ${he}'s trying, and that that's what really matters.`);
			if (canTalk(eventSlave)) {
				t.push(Spoken(eventSlave, `"Really, ${eventSlave.rudeTitle === 1 ? PoliteRudeTitle(eventSlave) : Master}?"`));
				t.push(`${he} asks hopefully.`);
			} else {
				if (hasBothArms(eventSlave)) {
					t.push(`${His} hands awkwardly ask, "Really?"`);
				} else {
					t.push(`${His} hand awkwardly asks, "Really?"`);
				}
			}
			t.push(`You whisper into ${his} ear that yes, ${he} will be all right as long as ${he} does ${his} best. ${He} wiggles ${his} butt against you a little and giggles`);
			if (PC.dick !== 0) {
				t.push(`at the responding stiffness ${he} feels between ${his} buttocks. ${He} shimmies down and takes you into ${his} mouth${PC.vagina !== 1 ? ` and does ${his} best to reach the top of your pussy with the tip of ${his} tongue` : ""},`);
			} else {
				t.push(`as you shove ${him} to ${his} knees. ${He} shimmies down and eats you out,`);
			}
			t.push(`${canSee(eventSlave) ? "looking you in the eyes the whole time and" : ""} <span class="hotpink">smiling</span> as much as ${he} can manage with ${PC.dick !== 0 ? `a dick in ${his} mouth` : `${his} tongue working your clit`}.`);

			eventSlave.devotion += 4;
			seX(eventSlave, "oral", PC, "penetrative");
			return t;
		}

		function spank() {
			t = [];

			t.push(`${He}'s so intent on trying to suck off the food dispenser that ${he} doesn't ${canHear(eventSlave) ? "hear" : "notice"} you enter the room. ${He} starts with surprise when you seize ${him} and push ${him}`);
			if (eventSlave.belly >= 300000) {
				t.push(`over ${his} ${belly} belly, face-down into the counter.`);
			} else {
				t.push(`face-down across the counter.`);
			}
			t.push(`After making ${him} confirm that ${canHear(eventSlave) ? `${he} can hear you` : `${he}'s paying attention`}, you patiently repeat the very simple instructions for getting meals from the kitchen. Then, you tell ${him} to repeat them. ${He} manages the first step fine and has completely forgotten the second. The moment ${he} hesitates, ${he} has an instant to ${canHear(eventSlave) ? "hear" : "feel"} the rush of air trying to get out of the way of your speeding palm before it contacts the ${eventSlave.skin} skin of ${his} buttocks. ${He} writhes and cries and promises to try harder, but ${his} poor rear end is almost raw before ${he} gets it all right. ${He} leaves the kitchen snuffling sadly to ${himself}, but in the coming days ${he} really does seem to do ${his} best to avoid another beating.`);

			eventSlave.trust -= 5;
			return t;
		}

		function arcade() {
			t = [];

			t.push(`${eventSlave.slaveName} screams and begs when ${he} realizes what ${his} punishment for being stupid is to be, but you are obdurate.`);
			if (eventSlave.muscles > 30) {
				t.push(`${His} powerful form has to be sedated for immurement in the arcade.`);
			} else if (eventSlave.weight >= 190) {
				t.push(`${He} is so massively fat that immuring ${him} in the arcade is a struggle, even when ${he} isn't trying to.`);
			} else if (eventSlave.belly >= 120000) {
				t.push(`${He} is so enormously gravid that immuring ${him} in the arcade is a hassle, even though ${his} ${belly} middle limits ${his} ability to struggle.`);
			} else if (eventSlave.weight >= -10) {
				t.push(`${His} desperate struggles make immuring ${him} in the arcade difficult.`);
			} else if (eventSlave.belly >= 1500) {
				t.push(`${His} ${eventSlave.bellyPreg >= 3000 ? "pregnant" : `${belly}`} body makes it slightly difficult to fit ${him} properly into the restraints for immurement in the arcade.`);
			} else if (eventSlave.muscles < -15) {
				t.push(`${His} weak body makes immuring ${him} in the arcade pathetically easy.`);
			} else {
				t.push(`${His} thin form makes immuring ${him} in the arcade pathetically easy.`);
			}
			t.push(`After ${he}'s properly confined, the only sign of ${his} discomfiture is a slight movement of ${his} ${eventSlave.skin} butt as ${he} wriggles desperately against ${his} restraints.`);

			assignJob(eventSlave, "be confined in the arcade");
			eventSlave.sentence = 4;
			return t;
		}
	}
};


code:
App.Events.RESSObedientShemale = class RESSObedientShemale extends App.Events.BaseEvent {
	eventPrerequisites() {
		return [];
	}

	actorPrerequisites() {
		return [
			[ // single event slave
				s => s.fetish !== "mindbroken",
				s => s.rules.release.masturbation !== 0,
				hasAnyArms,
				hasAnyLegs,
				canTalk,
				canDoAnal,
				s => s.devotion <= 50,
				s => s.devotion > 20 || s.trust < -20,
				s => s.vagina < 0,
				s => s.dick > 0,
				s => s.anus > 0,
				s => s.skill.anal <= 30
			]
		];
	}

	execute(node) {
		/** @type {Array<App.Entity.SlaveState>} */
		let [eventSlave] = this.actors.map(a => getSlave(a));
		const {
			He, he, His, his, him, himself, girl
		} = getPronouns(eventSlave);
		const {title: Master} = getEnunciation(eventSlave);
		const anusDesc = eventSlave.anus > 2 ? "gaping" : (eventSlave.anus > 1 ? "loose" : "tight");

		/** @type {App.Entity.PlayerState} */
		let PC = V.PC;

		V.nextLink = "Next Week";

		App.Events.drawEventArt(node, eventSlave);

		let t = [];

		t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave));
		t.push(`has been doing ${his} best to be a good slave ${girl} recently. Since ${he} doesn't have a pussy, that means ${he}'s been doing ${his} best to take it up the ass like a good slave. ${He} isn't all that used to it yet, but ${he} tries. ${He}'s trying right now, bent over the arm of the couch in your office with your ${PC.dick === 0 ? "vibrating strap-on" : "cock"} pumping in and out of ${him}. ${He} looks like ${he} wants to ask something, so you tell ${him} to spit it out.`);
		if (canTalk(eventSlave)) {
			if (eventSlave.lips > 70) {
				t.push(`${He} begs meekly through ${his} massive dick-sucking lips,`);
			} else if (eventSlave.lipsPiercing + eventSlave.tonguePiercing > 2) {
				t.push(`${He} begs meekly through ${his} mouthful of piercings,`);
			} else {
				t.push(`${He} begs meekly,`);
			}
			t.push(`"${Spoken(eventSlave, `${Master}, may I please, please touch myself?`)}"`);
		} else {
			t.push(`${He} uses gestures to ask if ${he} can masturbate while you sodomize ${him}.`);
		}
		App.Events.addParagraph(node, t);
		t = [];

		App.Events.addResponses(node, [
			new App.Events.Result(`Let ${him}`, permit),
			new App.Events.Result(`Train ${him} to be a skilled anal bottom`, bottom),
			(eventSlave.fetish !== "buttslut" || eventSlave.fetishKnown !== 1) && eventSlave.prostate > 0
				? new App.Events.Result(`Train ${him} to orgasm anally`, orgasm)
				: new App.Events.Result()
		]);

		function permit() {
			t = [];

			t.push(`${He} moans with gratitude and relief. ${He} masturbates furiously as you continue to use ${his} butt. ${He} was clearly near the edge anyway, and`);
			if (eventSlave.balls > 0) {
				t.push("spatters the couch with cum");
			} else if (eventSlave.prostate > 0) {
				t.push("spatters the couch with ejaculate");
			} else {
				t.push("shakes with release");
			}
			t.push(`after just a few strokes of your ${PC.dick === 0 ? "strap-on" : "cock"} up ${his} butt. ${His} ${anusDesc} ass spasms and tightens with ${his} climax${PC.dick !== 0 ? ", a wonderful sensation" : ""}. You aren't finished with ${him}, but ${he} rubs ${himself} languidly and enjoys the hard anal reaming more than ${he} ever has previously. ${His} devotion to you has increased.`);
			t.push(VCheck.Anal(eventSlave, 1));

			eventSlave.devotion += 4;
			return t;
		}

		function bottom() {
			t = [];

			t.push(`${He} obeys your orders to keep ${his} ${hasBothArms(eventSlave) ? "hands" : "hand"} off ${his} dick, but can't hide ${his} disappointment and frustration. You keep a close watch on ${him}, and buttfuck ${him} every chance you get, teaching ${him} the finer points of taking a ${PC.dick === 0 ? "strap-on" : "dick"} up the butt. You focus entirely on your pleasure, teaching ${him} how to use ${his} ${anusDesc} anal ring to extract orgasms from cocks. This experience was hard for ${him} but has increased ${his} anal skill.`);
			t.push(VCheck.Anal(eventSlave, 9));

			slaveSkillIncrease('anal', eventSlave, 10);
			return t;
		}

		function orgasm() {
			t = [];

			t.push(`${He} obeys your orders to keep ${his} ${hasBothArms(eventSlave) ? "hands" : "hand"} off ${his} dick, but can't hide ${his} disappointment and frustration. You keep a close watch on ${him}, and fuck ${his} ${anusDesc} anus every chance you get, keeping ${him} desperately aroused and desperately sodomized. After some days of this, ${he} finally reaches a point of desperate arousal that permits ${him} to orgasm to prostate stimulation alone.`);
			if (fetishChangeChance(eventSlave) > jsRandom(1, 100)) {
				t.push(`Before ${he} realizes what's happening, <span class="lightcoral">${he}'s getting aroused at the thought of anal sex.</span>`);

				eventSlave.fetishStrength = 10;
				eventSlave.fetish = "buttslut";
				eventSlave.fetishKnown = 1;
			} else {
				t.push(`Despite being used as an anal slut for a whole week, ${he} was not significantly affected.`);
			}

			t.push(VCheck.Anal(eventSlave, 9));
			return t;
		}
	}
};