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

	actorPrerequisites() {
		return [
			[ // single event slave
				s => s.fetish !== "mindbroken",
				hasAnyArms,
				canWalk,
				canTalk,
				s => s.devotion > 50,
				s => s.trust > 50,
				s => s.health.condition > 90,
				s => s.muscles > 5,
				s => s.weight >= -30,
				s => s.weight <= 30,
				s => s.health.tired <= 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 {say, title: Master} = getEnunciation(eventSlave);
		const desc = SlaveTitle(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("As you manage your empire from your office, a constant traffic of slaves passes by its door. The glass walls allow a good view of them, and since you naturally own what you find appealing, the passing chattel often draws your eye. For example, this morning you notice");
		t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave));
		t.push(`almost bounce into view. ${He}'s physically fit, at a healthy weight,`);
		if (eventSlave.belly >= 10000) {
			if (eventSlave.bellyPreg >= 3000) {
				t.push(`heavily pregnant,`);
			} else if (eventSlave.bellyImplant >= 3000) {
				t.push(`despite ${his} ${belly} fake belly,`);
			} else {
				t.push(`completely full of ${eventSlave.inflationType},`);
			}
		}
		if (eventSlave.physicalAge > 35) {
			t.push(`and is getting such excellent modern medical care that despite ${his} age, ${he} has the energy of a teenager.`);
		} else if (eventSlave.physicalAge > 19) {
			t.push(`is full of youth and vigor, and is in truly perfect health due to the miracles of modern medicine.`);
		} else if (eventSlave.physicalAge > 12) {
			t.push(`and is a teenager, not to mention the perfect health ${he} owes to the miracles of modern medicine.`);
		} else {
			t.push(`and is a little ${girl}, not to mention the perfect health ${he} owes to the miracles of modern medicine.`);
		}
		if (eventSlave.energy > 95) {
			t.push(`Apart from ${his} absurd sex drive,`);
		} else if (eventSlave.energy > 40) {
			t.push(`In addition to ${his} very healthy libido,`);
		} else {
			t.push(`Despite ${his} mediocre libido,`);
		}
		t.push(`${he}'s overflowing with energy. ${He} half-runs, half-skips down the hallway, slowing in the doorway as ${he} feels your gaze. Without stopping, ${he} turns to meet your eyes, winks trustingly, and bursts out, "${Spoken(eventSlave, `Hi ${Master}! Love you!`)}" Then ${he} continues on ${his} merry way.`);
		App.Events.addParagraph(node, t);
		t = [];

		t.push(`Someone's a happy ${desc} today.`);
		App.Events.addParagraph(node, t);
		t = [];

		App.Events.addResponses(node, [
			new App.Events.Result(`Follow ${him}`, follow),
			new App.Events.Result(`Play with ${him}`, play),
			new App.Events.Result(`Punish ${him}`, punish)
		]);

		function follow() {
			t = [];

			t.push(`${His} sheer 'joie de vivre' is irresistible, and it certainly draws you out of your office. You're not slow, and of course you know where ${he}'s going, so you catch up quickly. ${He} gives you the careful measuring glance of a devoted sex slave who's checking whether ${his} owner wants to fuck ${him} right now, and correctly decides that that isn't your intent, at least right this minute. Instead, you continue the direction ${he} was going, and ${he} follows. "${Master}," ${he} ${say}s hesitantly, "I hope that was an okay thing for me to do." You assure ${him} it was. "Thanks, ${Master}," ${he} beams, grinning like an idiot. Smiling at ${his} infectious enthusiasm for life, you ask ${him} why ${he}'s so happy this morning. ${He} looks momentarily ${eventSlave.intelligence + eventSlave.intelligenceImplant > 50 ? `perplexed, not a common look for a slave as smart as ${him}` : "perplexed"}.`);
			t.push(`"${Spoken(eventSlave, `I don't know! I just woke up this morning feeling really, really good. ${eventSlave.intelligence + eventSlave.intelligenceImplant > 50 ? `I'm sure the fact that I'm benefiting from incredibly advanced medicine has something to do with it; thank you very much for that, ${Master}. Other than that,` : ""} I just feel happy.`)}" This has to be some sort of milestone for ${him}, and for you, and maybe for slavery in general: if ${he} can be this pleased with life, something must be going right. You walk ${him} to where ${he}'s going`);
			switch (eventSlave.assignment) {
				case "whore":
					t.push(`(one of the arcology's nicer streets, where ${he}'ll spend the day selling ${his} body),`);
					break;
				case "serve the public":
					t.push(`(one of the arcology's nicer streets, where ${he}'ll spend the day flirting with citizens and having sex with anyone that's willing),`);
					break;
				case "work a glory hole":
					t.push(`(a wall mounting that will render ${him} a helpless target for dicks all day),`);
					break;
				case "get milked":
					t.push(`(${his} favorite milker in the penthouse),`);
					break;
				case "take classes":
					t.push(`(a quiet area with a touchscreen where ${he} can review material from the slave etiquette class ${he}'s working on),`);
					break;
				case "please you":
					t.push(`(the wardrobe, where ${he}'ll get dressed before attending to you for the rest of the day),`);
					break;
				case "be a subordinate slave":
					t.push(`(the living area of the slave ${he}'s been assigned to serve),`);
					break;
				case "work as a servant":
				case "be a servant":
					t.push(`(the closet that contains the cleaning items ${he}'ll use to dust and polish the penthouse today),`);
					break;
				case "work as a nanny":
					t.push(`(${V.nurseryName}, where ${he} is tending to the children),`);
					break;
				case "stay confined":
					t.push(`(${his} cell),`);
					break;
				case "guard you":
					t.push(`(the armory where ${his} weapons are kept),`);
					break;
				case "be your Head Girl":
					t.push(`(the assignment location of a slave who needs some hands-on guidance from your Head Girl),`);
					break;
				case "recruit girls":
					t.push(`(the camera station ${he} uses to convince people from the old world that becoming your slave is a good idea),`);
					break;
				case "serve in the master suite":
					t.push(`(your bedroom, where ${he}'ll ready ${himself} for later),`);
					break;
				case "be the DJ":
					t.push(`(the back of ${V.clubName} where ${he} decides the playlist for the day),`);
					break;
				case "be the Attendant":
					t.push(`(the back of ${V.spaName}, where ${he}'ll decide the perfect mixture for today's baths),`);
					break;
				case "be the Madam":
					t.push(`(${his} office in ${V.brothelName}, where ${he}'ll decide the slaves on display),`);
					break;
				case "be the Schoolteacher":
					t.push(`(${his} office in ${V.schoolroomName}, where ${he}'ll decide today's lesson),`);
					break;
				case "be the Stewardess":
					t.push(`(${his} office in ${V.servantsQuartersName}, where ${he}'ll divvy out today's tasks),`);
					break;
				case "be the Milkmaid":
					t.push(`(${V.dairyName}, to check on the cattle),`);
					break;
				case "be the Farmer":
					t.push(`(${V.farmyardName}, to tend to the crops),`);
					break;
				case "be the Wardeness":
					t.push(`(${V.cellblockName}, to oversee the inmates),`);
					break;
				case "be your Concubine":
					t.push(`(your bed),`);
					break;
				case "be the Nurse":
					t.push(`(${V.clinicName}, to check on the patients),`);
					break;
				case "be the Matron":
					t.push(`(${V.nurseryName}, where ${he} is managing children and nannies),`);
					break;
				case "live with your Head Girl":
					break;
				default:
					t.push(`(a waiting area for further assignment),`);
			}
			t.push(`and when you get there, ${he} gives you a peck on the cheek. ${eventSlave.height < 170 ? `The short ${desc} has to go up on tiptoe to reach.` : ""} "<span class="hotpink">${Spoken(eventSlave, "I really do love you")},</span> ${Master}," ${he} ${say}s, ${canSee(eventSlave) ? `${App.Desc.eyesColor(eventSlave)} shining` : "face filled with joy"}.`);

			eventSlave.devotion += 5;
			return t;
		}

		function play() {
			t = [];

			t.push(`You're not a slave, so you can't understand ${his} inner workings through direct empathy. But in your experience, a quick orgasm never fails to make a good day better. You're not slow, and of course you know where ${he}'s going, so you catch up to ${him} on quiet feet and`);
			if (eventSlave.butt > 12) {
				t.push(`sink both hands into ${his} immense rear.`);
			} else if (eventSlave.butt > 6) {
				t.push(`set ${his} enormous ass jiggling with a smack.`);
			} else if (eventSlave.butt > 3) {
				t.push(`give ${his} womanly bottom a squeeze.`);
			} else {
				t.push(`pinch ${his} cute rear.`);
			}
			t.push(`${He} squeals and whirls around, ${eventSlave.energy > 60 ? `eagerly flinging ${himself} into your arms, ready for some action` : `trustingly throwing ${himself} into your arms`}. Feeling spontaneous, you decide to get everyone off quickly and cleanly, right here.`);
			switch (eventSlave.fetish) {
				case "submissive":
					t.push(`You place a dominant hand around ${his} throat, firmly but not harshly, almost sending the submissive to ${his} knees. Your other hand`);
					break;
				case "cumslut":
					t.push(`You kiss ${him}, sliding your tongue all the way into ${his} mouth. ${He} melts into you, rhapsodically entranced by the intense oral stimulation, and ${his} tongue presses against yours with frankly sexual significance. Your hand`);
					break;
				case "humiliation":
					t.push(`Slaves are constantly passing the two of you, and you constantly turn ${him} to show ${his} body to each of them, spreading ${him} to display ${his} most intimate parts. ${His} cheeks flush with arousal and delicious shame. Your hand`);
					break;
				case "buttslut":
					t.push(`You slide a hand all the way under ${him}, pulling the flesh of ${his} buttock to one side and then nestling possessive fingers over ${his} anus, teasing and stimulating, but not penetrating. Your other hand`);
					break;
				case "boobs":
					t.push(`${He} gasps as your hot mouth finds one of ${his} ${eventSlave.nipples} nipples, and then moans openly as one of your hands mauls ${his} other breast. Your other hand`);
					break;
				case "pregnancy":
					t.push(`One of your hands begins to caress ${his} ${belly} ${eventSlave.pregKnown === 1 ? "pregnant" : ""} belly, worshipping its curve. Your other hand`);
					break;
				case "dom":
				case "sadist":
					t.push(`You press yourself aggressively against ${him}, and ${he} presses back; you grind harder still, letting ${him} know that ${he} can let ${himself} be a little aggressive, too. Groaning with pleasure and satisfaction, ${he} kisses you furiously. One of your hands`);
					break;
				case "masochist":
					t.push(`You caress one of ${his} nipples, ${eventSlave.nipples !== "fuckable" ? "bringing it completely erect before gripping it firmly. You twist it, pull it, pinch it" : "letting it swell completely shut before driving your entire fist into it"}; ${he} moans with masochistic pleasure. Your other hand`);
					break;
				default:
					t.push(`Your hand`);
			}
			if (canDoVaginal(eventSlave)) {
				t.push(`finds ${his} pussy`);
			} else if (canDoAnal(eventSlave)) {
				t.push(`reaches around behind ${him} to tease ${his} ass and play with ${his} sensitive perineum`);
			} else {
				t.push(`traces ${his} chastity`);
			}
			t.push(`and you press your groin towards ${him}. Getting the idea, ${he} begins to ${PC.dick !== 0 ? "jack you off" : "finger your clit"} energetically, taking the pace from your lusty demeanor and ${his} own feeling of energy and well-being. The two of you orgasm almost together. ${PC.dick !== 0 ? "You angle your hips to shoot your seed onto the floor" : "You climax so violently that some of your femcum makes it onto the floor"}.`);
			if (eventSlave.chastityPenis === 1) {
				t.push(`${His} ejaculate steadily drips from ${his} chastity cage,`);
			} else if (canAchieveErection(eventSlave)) {
				t.push(`${He} blows ${his} own load right after,`);
			} else if (eventSlave.balls > 0) {
				t.push(`${His} limp dick pours cum,`);
			} else if (eventSlave.dick > 0) {
				t.push(`${His} bitchclit produces a little watery fluid,`);
			} else if (eventSlave.vaginaLube > 1) {
				t.push(`${He} squirts copiously,`);
			} else {
				t.push(`Unusually for ${him}, ${he} manages to squirt a little,`);
			}
			t.push(`adding to the mess. You tell ${him} another slave will clean up, and order ${him} to go about ${his} business. ${He} turns to go, smiling with sexual satisfaction.`);

			eventSlave.trust += 5;
			return t;
		}

		function punish() {
			t = [];

			t.push(`That was not quite the prescribed way of greeting you, there was no need to greet you as ${he} passed, and most importantly, ${he}'s simply too cheery. Resolving to crush ${his} happiness, you call ${him} back to the office in a thunderous voice you know will reach ${him}. ${He} knows ${he}'s made a mistake, but comes promptly, lower lip quivering. ${His} feelings are plain to see on ${his} face: surprise, betrayal, fear. ${He} thought ${he} could be friendly, and now ${he} knows ${he} was wrong. What's more, ${he} thought ${he} could be happy, and now ${he}'s realizing that that was also wrong. As you`);
			switch (eventSlave.rules.punishment) {
				case "confinement":
					t.push(`close ${him} into a confinement cell,`);
					break;
				case "whipping":
					t.push(`tie ${him} up for a brief whipping,`);
					break;
				case "chastity":
					t.push(`lock ${him} into harsh chastity,`);
					break;
				default:
					t.push(`gag ${him} for speaking out of turn,`);
			}
			t.push(`a wail of despair tears its way out of ${his} throat, far out of proportion to the standard punishment you're applying. It's perhaps the saddest sound you've ever heard a slave make. Slaves cry all the time, but usually they already understand that happiness is out of their reach. This one just woke up thinking that ${he} could be happy and was happy, and now ${he}'s realizing it isn't allowed.`);

			eventSlave.devotion -= 10;
			eventSlave.trust -= 10;
			return t;
		}
	}
};


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

	actorPrerequisites() {
		return [
			[
				s => s.fetish !== "mindbroken",
				s => s.assignment !== "work as a servant",
				canStand,
				hasAnyArms,
				s => s.dietCum > 0,
				s => s.devotion <= 20,
				s => (s.fetish !== "cumslut" && s.fetish !== "masochist" && s.fetishStrength < 60) || s.fetishKnown === 0,
			]
		];
	}

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

		V.nextLink = "Next Week";

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

		let t = [];
		t.push(`You are inspecting the slave feeding area early in the week, watching your slaves as they come and go to get their required nourishment for the morning.`);
		t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave));
		if (V.cockFeeder === 1) {
			t.push(`You see as ${he} kneels in front of the feeder`);
			t.push(canSee(eventSlave) ? `phallus, staring at it with disgust plainly written on ${his} face.` : `phallus with a look of disgust on ${his} face.`);
		} else if (canSee(eventSlave)) {
			t.push(`You see ${him} staring into ${his} cup of nutritional fluid with a look of disgust on ${his} face.`);
		} else {
			t.push(`You see ${him} grimacing at ${his} cup of nutritional fluid.`);
		}
		t.push(`You quickly check your records and ${V.assistant.name} confirms that ${eventSlave.slaveName} is required to ingest`);
		t.push(eventSlave.dietCum === 2 ? `an extreme diet based almost entirely on human ejaculate.` : `a large amount of human ejaculate as part of ${his} diet.`);
		App.Events.addParagraph(node, t);

		t = [];
		t.push(`You watch ${eventSlave.slaveName} as ${he} retches unpleasantly,`);
		t.push(V.cockFeeder === 1 ? `stimulating the feeder phallus with ${his} mouth` : `tentatively drinking from ${his} cup`);
		t.push(`and choking ${his} food down. ${He} knows that if ${he} doesn't eat it willingly, ${he}'ll will be forced to, and you can almost see ${his}`);
		t.push(eventSlave.intelligence + eventSlave.intelligenceImplant > 15 ? `intelligent mind` : `stupid mind`);
		t.push(`working through the reality of what ${his} life has become. ${He} is now a receptacle for`);
		if (eventSlave.dietCum === 2) {
			t.push(`concentrated`);
		}
		t.push(`human ejaculate, and for no other reason than the perverse amusement of ${his} owner. Almost as soon as ${he} swallows ${his} food, ${he} whimpers, burps, and then`);
		t.push(eventSlave.belly >= 10000 ? `hastily waddles` : `quickly runs`);
		t.push(`to a nearby bathroom to vomit it back up. This is a common reaction for unbroken slaves on cum diets,`);
		t.push(eventSlave.weight > 0 ? `and can also be an effective, if unhealthy, way of forcing them to lose weight.` : `but it can also prevent slaves that are already too thin from gaining weight.`);

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

		App.Events.addResponses(node, [
			new App.Events.Result(`Have mercy on the poor ${girl} and take ${him} off ${his} cum diet for now`, mercy),
			(eventSlave.dietCum === 1)
				? new App.Events.Result(`Force ${him} onto a heavy cum diet, and double up on ${his} ejaculate intake`, heavy)
				: new App.Events.Result(),
			(eventSlave.dietCum === 2)
				? new App.Events.Result(`Give the poor ${girl} a break and reduce ${his} cum intake to a more modest level`, reduce)
				: new App.Events.Result(),
			new App.Events.Result(`Suppress ${his} gag reflex and double ${his} cum intake for a week`, double),
			(V.arcade > 0)
				? new App.Events.Result(`Sentence ${him} to a day in ${V.arcadeName} for cum injection therapy`, arcade)
				: new App.Events.Result(),
		]);

		function mercy() {
			eventSlave.devotion -= 5;
			eventSlave.trust += 5;
			eventSlave.dietCum = 0;
			return `You see how ${eventSlave.slaveName} is suffering and you decide to reconsider ${his} dietary prescription. You instruct ${V.assistant.name} to change ${eventSlave.slaveName}'s diet to exclude cum for now. Slaves who can't eat are unhealthy, and unhealthy slaves are unprofitable slaves. ${He} is now more confident that ${he} can resist you and get ${his} way, ${he} also trusts you a little more to look after ${his} well being.`;
		}
		function heavy() {
			eventSlave.devotion -= 3;
			eventSlave.trust -= 3;
			eventSlave.dietCum = 2;
			return `You instruct ${V.assistant.name} to double down on ${eventSlave.slaveName}'s cum diet. Ungrateful little sluts who retch up their expensive food sometimes need tough love. Making ${his} cum-food thicker and more concentrated might help ${him} to learn that no matter how bad things seem, you can always make them worse. Initially ${his} new heavy cum diet makes no difference in ${his} ability to keep it down, but you tell ${him} to give it some time. Eventually ${he} will learn to appreciate cum as the primary ingredient in everything ${he} ingests. All of your future cumsluts do, sooner or later. ${His} pathetic tears reveal how helpless ${he} feels, but they don't hide the streak of rebelliousness that remains burning inside ${him}.`;
		}

		function reduce() {
			eventSlave.devotion += 2;
			eventSlave.trust += 2;
			eventSlave.dietCum = 1;
			return `${eventSlave.slaveName} is on a very heavy cum diet, and it's possible you're forcing ${him} to take too much, too soon. You decide to give ${him} a break and instruct ${V.assistant.name} to reduce, but not eliminate the amount of cum in ${his} diet. Although it doesn't immediately make ${him} hate cum any less, ${he} appreciates your willingness to make things a little less unpleasant for ${him}. ${He} is a little less afraid of you too, although not as much as if you'd taken ${him} off ${his} cum diet altogether.`;
		}

		function double() {
			t = [];
			t.push(`${He} is already on a very heavy cum-based diet, and there's only so much ejaculate you can force a slut to ingest before it negatively affects ${his} health. However, as a temporary measure, you still have options. You instruct ${V.assistant.name} to re-double the amount of ejaculate in ${eventSlave.slaveName}'s diet for the week. You also have ${him} closely monitored and injected with anti-nausea drugs to help ${his} hold down ${his} food. Although the idea of being forced to eat large amounts of human reproductive fluid still disgusts ${him}, the week of having a super-concentrated cum-diet, along with the suppressed reflex to purge it has its effect. Knowing that you monitor and control every aspect of ${his} life breaks down ${his} resistance to your will, and by the end of the week, ${he} is grateful that you return ${him} to a more nutritionally viable regimen — even if its cum content is still overwhelmingly high.`);
			if (eventSlave.fetishKnown === 1) {
				t.push(`<span class="lightcoral">${His} brain has now begun to accept the sexual perversity of ${his} food as a turn on.</span>`);
			} else {
				t.push(`${He} is now able to eat and digest ${his} prescribed diet without pharmacological assistance.`);
			}
			eventSlave.devotion += 5;
			eventSlave.fetish = "cumslut";
			if (eventSlave.fetishKnown === 1) {
				eventSlave.fetishStrength = 10;
			}
			return t;
		}
		function arcade() {
			t = [];
			t.push(`You have ${V.assistant.name} inform ${eventSlave.slaveName} of ${his} unacceptable behavior and sentence ${him} to a day in ${V.arcadeName}. ${He} cries and pleads for mercy, and even begs to be allowed to suck a cock, any cock, so ${he} can prove ${his} newfound enthusiasm for cum, but you are unmerciful as two other slaves drag ${him} off to serve ${his} sentence. ${He} is forced to wear`);
			t.push(eventSlave.vagina !== -1 ? `a combined vaginal and` : `an`);
			t.push(`anal chastity belt so that the only hole available is ${his} mouth, and is then confined in ${V.arcadeName} with ${his} mouth spread open by a ring gag and ${his} head sticking through the hole in the wall. A sign below ${his} mouth proclaims ${him} to be a "cum extraction tube" and ${he} is used that way for the duration of ${his} stay — a grueling, 18-hour marathon of relentless throat fucking.`);
			if (eventSlave.sexualFlaw !== "hates oral") {
				t.push(`${His} ordeal is so extreme that ${he} now <span class="red">hates oral sex</span>,`);
			} else {
				t.push(`${His} hatred of oral sex makes ${his} ordeal that much more horrific,`);
			}
			t.push(`but it breaks down ${his} resistance. ${He} now better understands the terrifying power you have over ${him}, and the sheer amount of cum ${he} is forced to ingest negatively effects ${his} health. Your other cum-fed slaves take note of what you do to those who can't hold down their assigned diet.`);
			eventSlave.devotion += 5;
			eventSlave.trust -= 5;
			eventSlave.sexualFlaw = "hates oral";
			eventSlave.fetish = "masochist";
			seX(eventSlave, "oral", "public", "penetrative", 55);
			healthDamage(eventSlave, 5);
			return t;
		}
	}
};

repo_name: Welptard/fc

license: mit


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

	actorPrerequisites() {
		return [
			[ // single event slave
				s => s.assignment === Job.PUBLIC,
				s => canDoAnal(s) || canDoVaginal(s),
				s => s.devotion > 50,
				s => s.fetish !== "mindbroken",
				hasAnyArms,
				canTalk,
			]
		];
	}

	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 belly = bellyAdjective(eventSlave);

		V.nextLink = "Next Week";

		App.Events.drawEventArt(node, eventSlave);

		let t = [];

		t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave));
		t.push(`is a real public servant. This morning, ${he} rose early, did ${his} chores, and looked after ${himself}.`);
		if (canWalk(eventSlave) || (canMove(eventSlave) && eventSlave.rules.mobility === "permissive")) {
			t.push(`${He} heads out`);
		} else {
			t.push(`${He}'s being escorted`);
		}
		t.push(`past your desk toward the arcology's lower floors to offer ${himself} freely to everyone ${he} meets.`);

		App.Events.addParagraph(node, t);
		t = [];
		t.push(`As ${he} goes, you notice that`);
		if (eventSlave.chastityPenis === 1) {
			t.push(`precum is starting to dribble out of ${his} chastity cage.`);
		} else if ((eventSlave.dick > 0) && canAchieveErection(eventSlave)) {
			t.push(`${his} cock is so hard it's standing out, perfectly straight.`);
		} else if ((eventSlave.dick > 0) && (eventSlave.balls > 0) && !canAchieveErection(eventSlave)) {
			t.push(`${his} semi-hard cock is dribbling precum, a sure sign of a bitch who wants to be buttfucked.`);
		} else if ((eventSlave.dick > 0) && !canAchieveErection(eventSlave)) {
			t.push(`${his} pathetically soft cock is streaming precum, a sure sign of a bitch who wants to be buttfucked.`);
		} else if ((eventSlave.clit > 0)) {
			t.push(`${his} big clit is obviously engorged.`);
		} else if ((eventSlave.vaginaLube > 0)) {
			t.push(`${his} pussy is already soaking wet.`);
		} else {
			t.push(`${his} cheeks are flushed and ${he}'s panting a little.`);
		}
		t.push(`Apparently, ${he} can't wait to`);
		if (eventSlave.fetish === "submissive") {
			t.push(`play the submissive.`);
		} else if ((eventSlave.fetish === "humiliation")) {
			t.push(`be publicly degraded.`);
		} else if ((eventSlave.fetish === "masochist")) {
			t.push(`be roughly handled.`);
		} else if ((eventSlave.fetish === "dom")) {
			t.push(`play the dom.`);
		} else if ((eventSlave.fetish === "sadist")) {
			t.push(`find a willing masochist.`);
		} else if ((eventSlave.fetish === "pregnancy") && (eventSlave.preg > eventSlave.pregData.normalBirth / 4)) {
			t.push(`have ${his} pregnancy fondled.`);
		} else if ((eventSlave.fetish === "pregnancy")) {
			t.push(`pretend to get knocked up.`);
		} else if ((eventSlave.fetish === "boobs")) {
			t.push(`have ${his} tits fondled.`);
		} else if ((eventSlave.fetish === "cumslut")) {
			t.push(`gorge ${himself} on cum.`);
		} else if ((eventSlave.fetish === "buttslut")) {
			t.push(`spend all day getting pounded in the ass.`);
		} else if ((eventSlave.attrXX > 65)) {
			t.push(`enjoy all the women.`);
		} else if ((eventSlave.attrXY > 65)) {
			t.push(`enjoy all the men.`);
		} else {
			t.push(`be a complete slut.`);
		}
		t.push(`If you went with ${him}, you could certainly show off a little.`);

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

		App.Events.addResponses(node, [
			(canDoAnal(eventSlave))
				? new App.Events.Result(`Share ${his} body with the public`, share, virginityWarning())
				: new App.Events.Result(),
			new App.Events.Result(`Give ${him} some aftercare`, aftercare, virginityWarning()),
			new App.Events.Result(`Chat about ${his} day`, chat),
		]);

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

		function share() {
			let frag = document.createDocumentFragment();
			t = [];
			if (canWalk(eventSlave) || (canMove(eventSlave) && eventSlave.rules.mobility === "permissive")) {
				t.push(`${eventSlave.slaveName} is surprised to find you walking beside ${him}, but obediently falls in behind you as a proper slave should.`);
			} else if (canMove(eventSlave)) {
				t.push(`${eventSlave.slaveName} is surprised to find you swapping places with ${his} assistant to support ${his} weight.`);
			} else { // strength/height check here!
				t.push(`You scoop ${eventSlave.slaveName}'s ${isAmputee(eventSlave) ? "limbless" : "immobile"} form up and carry ${him} out.`);
			}
			t.push(`You take ${him} to a lovely open balcony and seat yourself on a bench surrounded by the lush greenery and flowing water of ${V.arcologies[0].name}'s food systems. You pull ${his} ass down onto your`);
			if (V.PC.dick === 0) {
				t.push(`strap-on`);
			} else {
				t.push(`rigid cock`);
			}
			t.push(`so ${he} can offer everything else to the public.`);
			if (V.PC.vagina !== -1 && V.PC.dick !== 0) {
				t.push(`They know not to presume to use the pussy located beneath your thrusting cock.`);
			}
			t.push(VCheck.Anal(eventSlave, 5));

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

			if (canDoVaginal(eventSlave)) {
				t.push(`For several hours, citizens come and go, most choosing to fuck ${his} wet and available pussy. You climax repeatedly from the`);
				if (V.PC.dick === 0) {
					t.push(`titillating nature of`);
				} else {
					t.push(`extra fullness of ${his} butt during`);
				}
				t.push(`double penetration, and by the time you're finished ${he}'s dripping ejaculate from both ${his} holes.`);
			} else if (eventSlave.belly >= 120000) {
				t.push(`Since`);
				if (eventSlave.bellyPreg >= 3000) {
					t.push(`${he}'s so enormously pregnant that ${his} ${belly} stomach blocks ${his} crotch`);
				} else {
					t.push(`${his} ${belly} stomach is so massive that is blocks ${his} crotch`);
				}
				t.push(`and you're wearing ${his} backdoor around your`);
				t.push(V.PC.dick === 0 ? "strap-on," : "cock,");
				t.push(`${his} mouth is all that's left. ${He} gives so many blowjobs by the time you're finished that ${his} face, hair, chest and belly are liberally spattered with cum.`);
			} else if ((eventSlave.chastityVagina)) {
				t.push(`Since ${he}'s wearing a chastity belt and you're wearing ${his} backdoor around your`);
				t.push(V.PC.dick === 0 ? "strap-on," : "cock,");
				t.push(`${his} mouth is all that's left. ${He} gives so many blowjobs by the time you're finished that ${his} face, hair, chest and`);
				if (eventSlave.belly >= 5000) {
					if (eventSlave.bellyPreg >= 3000) {
						t.push(`pregnant`);
					} else {
						t.push(belly);
					}
					t.push(`belly`);
				} else {
					t.push(`even stomach`);
				}
				t.push(`are liberally spattered with cum.`);
			} else {
				t.push(`With your cock pumping ${his} butt as much as you can manage with ${him} seated in your lap, ${his}`);
				if (eventSlave.dick !== 0 && eventSlave.belly >= 5000) {
					t.push(`dick flops up and down against the bottom of ${his} rounded stomach,`);
				} else if (eventSlave.dick !== 0) {
					t.push(`dick flops up and down,`);
				} else {
					t.push(`tiny front hole begins to glisten with the promise of a messy little orgasm,`);
				}
				t.push(`lewdly advertising ${his} sexual availability. ${He} gives so many blowjobs by the time you're finished that ${his} face, hair, chest and`);
				if (eventSlave.belly >= 5000) {
					if (eventSlave.bellyPreg >= 3000) {
						t.push(`pregnant`);
					} else {
						t.push(belly);
					}
					t.push(`belly`);
				} else {
					t.push(`even stomach`);
				}
				t.push(`are liberally spattered with cum.`);
			}
			t.push(`The public is sure to remember this spectacle; <span class="green">your reputation has increased.</span>`);
			repX(500, "event", eventSlave);
			if (canDoVaginal(eventSlave)) {
				seX(eventSlave, "vaginal", "public", "penetrative", 5);
				if (eventSlave.vagina === 0) {
					t.push(`They have also <span class="lime">broken in ${eventSlave.slaveName}'s virgin pussy.</span>`);
					eventSlave.vagina = 1;
				}
				if (canGetPregnant(eventSlave) && eventSlave.eggType === "human") {
					t.push(knockMeUp(eventSlave, 10, 0, -2));
				}
			} else {
				seX(eventSlave, "oral", "public", "penetrative", 5);
			}
			App.Events.addParagraph(frag, t);
			t = [];
			return [frag];
		}

		function aftercare() {
			t = [];
			t.push(`${eventSlave.slaveName} returns many hours later. ${He} carefully took breaks for ${his} own safety,`);
			if (eventSlave.preg > eventSlave.pregData.normalBirth / 1.33) {
				t.push(`especially so given ${his} advanced pregnancy,`);
			}
			t.push(`and cleaned ${himself} periodically, so there isn't much evidence, but ${he}'s obviously bone tired. When you meet ${him} at the entrance to your penthouse ${he}'s surprised to`);
			t.push(canSee(eventSlave) ? "see" : "find");
			t.push(`you, but ${he} gives you a little smile anyway. You give ${him} a strong massage and put ${him} to bed. Afterward you turn to be about your business, but ${he} wordlessly offers ${himself} to you as you do.`);
			if (canDoVaginal(eventSlave)) {
				if (eventSlave.vagina === 0) {
					t.push(`${His} virgin pussy is certainly tempting.`);
				} else if ((eventSlave.vagina === 1)) {
					t.push(`${His} tight pussy is certainly tempting.`);
				} else if ((eventSlave.vagina === 2)) {
					t.push(`${His} soft pussy is certainly tempting.`);
				} else if ((eventSlave.labia > 0)) {
					t.push(`${His} generous petals are certainly tempting.`);
				} else if ((eventSlave.clit > 0)) {
					t.push(`${His} prominent clit is certainly eye-catching.`);
				} else if ((eventSlave.vagina === -1)) {
					t.push(`${His} relaxed anus is certainly inviting.`);
				} else {
					t.push(`${His} capacious pussy is certainly inviting.`);
				}
			} else {
				if (eventSlave.anus === 0) {
					t.push(`${His} virgin asshole is certainly tempting.`);
				} else if ((eventSlave.anus === 1)) {
					t.push(`${His} tight asshole is certainly tempting.`);
				} else if ((eventSlave.anus === 2)) {
					t.push(`${His} experienced asshole is certainly tempting.`);
				} else {
					t.push(`${His} capacious asshole is certainly inviting.`);
				}
			}
			t.push(`${He}'s sore, so you spoon`);
			if (eventSlave.belly >= 5000) {
				if (eventSlave.bellyPreg >= 3000) {
					t.push(`${his} gravid`);
				} else {
					t.push(`${his} rounded`);
				}
				t.push(`body`);
			} else {
				t.push(him);
			}
			t.push(`gently in bed, fucking ${him} slowly to sleep.`);
			if (canDoVaginal(eventSlave)) {
				t.push(VCheck.Vaginal(eventSlave, 1));
			} else {
				t.push(VCheck.Anal(eventSlave, 1));
			}
			t.push(`${He} falls asleep with a serene expression on ${his} face. <span class="mediumaquamarine">${His} trust in you has increased.</span>`);
			eventSlave.trust += 4;
			return t;
		}

		function chat() {
			t = [];
			t.push(`${eventSlave.slaveName} returns many hours later. ${He}'s obviously bone tired. When you meet ${him} at the entrance to your penthouse ${he}'s surprised to`);
			t.push(canSee(eventSlave) ? "see" : "find");
			t.push(`you, but ${he} gives you a little smile anyway. You bring ${him} back to your office, and ${he}'s clearly expecting to get fucked, so ${he}'s surprised when you hand ${him} a hot beverage and sit down on the couch with ${him}. ${He} relaxes quickly and chats with you about ${his} day, gossiping about all the private doings of all the prominent citizens who fucked ${his}`);
			if ((eventSlave.vagina > 0) && canDoVaginal(eventSlave)) {
				t.push(`cunt`);
			} else if ((eventSlave.anus > 0) && canDoAnal(eventSlave)) {
				t.push(`asshole`);
			} else {
				t.push(`mouth`);
			}
			t.push(`today.`);
			if (eventSlave.intelligence + eventSlave.intelligenceImplant > 50) {
				t.push(`${He}'s witty and holds up ${his} end of the conversation without straying from ${his} role as a slave.`);
			} else if ((eventSlave.intelligence + eventSlave.intelligenceImplant >= -15)) {
				t.push(`${He} has a few juicy items to share, and even while gossiping, ${he}'s mindful of ${his} role as a slave.`);
			} else {
				t.push(`${He} may be an idiot, but ${his} babble is amusing enough.`);
			}
			t.push(`Time flies, and when you finally stand up to continue with your evening, ${he} thanks you prettily for listening to ${him}`);
			if (eventSlave.belly >= 10000) {
				t.push(`as you help ${his}`);
				if (eventSlave.bellyPreg >= 3000) {
					t.push(`pregnant`);
				} else {
					t.push(`heavy`);
				}
				t.push(`body off the couch`);
			}
			t.push(t.pop() + ".");
			t.push(`<span class="hotpink">${His} devotion to you has increased.</span>`);
			eventSlave.devotion += 4;
			return t;
		}
	}
};


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

	actorPrerequisites() {
		return [
			[ // single event slave
				s => s.fetish !== "mindbroken",
				s => App.Utils.hasFamilySex(s) || s.rules.release.slaves === 1,
				s => s.clit > 2
			]
		];
	}

	execute(node) {
		/** @type {Array<App.Entity.SlaveState>} */
		let [eventSlave] = this.actors.map(a => getSlave(a));
		const {
			He, he, His, his, him
		} = getPronouns(eventSlave);
		const {
			heU, hisU, himU, himselfU
		} = getNonlocalPronouns(0).appendSuffix('U');

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

		V.nextLink = "Next Week";

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

		let t = [];

		t.push(`Through the glass walls of your office, you see `);
		t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave));
		t.push(`fucking another slave. Odd, since ${he} doesn't have a penis: it seems the other slave likes ${him} enough to try to make clitoral penetration work. ${eventSlave.slaveName}'s ${V.seeRace === 1 ? eventSlave.race : ""} clit is certainly big enough to make it possible. Since you gave ${him} orders that permit ${him} to fuck your other slaves, ${he}'s been having as much sex with them as ${he} can. The other slave is enjoying ${himselfU} even though the clit in ${hisU} pussy is a little disappointing compared to a real cock.`);
		App.Events.addParagraph(node, t);
		t = [];

		App.Events.addResponses(node, [
			new App.Events.Result("The slave taking it has a free anus, so use that", bottom),
			canDoAnal(eventSlave)
				? new App.Events.Result("The slave giving it has a free anus, so use that", topAnal, virginWarning("anal"))
				: new App.Events.Result(),
			canDoVaginal(eventSlave)
				? new App.Events.Result("The slave giving it has a free pussy, so use that", topVaginal, virginWarning("vaginal"))
				: new App.Events.Result()
		]);

		function bottom() {
			t = [];

			t.push(`Since the other slave is riding ${eventSlave.slaveName}'s huge clit, it's a trivial matter to ${PC.dick === 0 ? "don a strap-on," : ""} come up behind the fucking slaves, stop the other slave's riding for a moment, and insert yourself into ${hisU} anus. The other slave gasps as your ${PC.dick === 0 ? "strap-on" : "big dick"} complements the clit in ${hisU} pussy. The poor slave rides out the sexual storm as you and ${eventSlave.slaveName} fuck ${himU}. ${eventSlave.slaveName} flirts outrageously with you over the other slave's shoulder whenever ${he} can. ${He} has become more trusting of you.`);

			eventSlave.trust += 4;
			seX(eventSlave, "penetrative", "slaves", "anal");
			return t;
		}

		function topAnal() {
			t = [];

			t.push(`Since ${eventSlave.slaveName} is on top, it's a trivial matter to ${PC.dick === 0 ? "don a strap-on," : ""} come up behind the fucking slaves, stop ${his} thrusting for a moment, and insert yourself into ${his} anus.`);
			if (eventSlave.fetish === "buttslut" && eventSlave.fetishKnown === 1) {
				t.push(`${He} shivers with delight as ${he} feels ${his} anal ring stretch to accommodate your ${PC.dick === 0 ? "strap-on" : "dick"}.`);
				eventSlave.devotion += 1;
			}
			t.push(VCheck.Anal(eventSlave, 1));
			t.push(`Fucking a slave with ${eventSlave.prostate > 0 ? "prostate" : ""} stimulation from your ${PC.dick === 0 ? "phallus" : "cock"} in ${his} ass makes ${him} cum with indecent speed. You let ${him} slide down so ${he} can finish the other slave with ${his} mouth while you continue using ${his} anus. The other slave definitely enjoys ${eventSlave.slaveName}'s moaning into ${hisU} pussy as you use ${eventSlave.slaveName}'s ass. The hard buttfucking ${eventSlave.slaveName} is getting keeps ${his} clit hard all the way through. ${His} submission to you has increased.`);

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

		function topVaginal() {
			t = [];

			t.push(`Since ${eventSlave.slaveName} is on top, it's a trivial matter to< ${PC.dick === 0 ? "don a strap-on," : ""} come up behind the fucking slaves, stop ${his} thrusting for a moment, and insert yourself into ${his} pussy. ${He} obediently stops fucking so you can maneuver into ${him}.`);
			t.push(VCheck.Vaginal(eventSlave, 1));
			t.push(`Having a ${PC.dick === 0 ? "strap-on" : "dick"} in ${his} pussy reduces ${his} ability to use ${his} engorged clit like a penis a little, so the slave beneath ${him} helps ${his} penetration as much as ${heU} can. It's not the most convenient of fucks, but that's to be expected when a ${properMaster()} and two slaves successfully have two separate instances of vaginal intercourse running at once. ${His} orgasm is general and intense. ${His} devotion to you has increased.`);

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

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


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

	actorPrerequisites() {
		return [
			[ // single event slave
				s => s.fetish !== "mindbroken",
				hasAnyArms,
				hasAnyLegs,
				canPenetrate,
				s => App.Utils.hasFamilySex(s) || s.rules.release.slaves === 1
			]
		];
	}

	execute(node) {
		/** @type {Array<App.Entity.SlaveState>} */
		let [eventSlave] = this.actors.map(a => getSlave(a));
		const {
			He, he, His, his, him
		} = getPronouns(eventSlave);
		const {
			heU, hisU, himU, himselfU
		} = getNonlocalPronouns(0).appendSuffix('U');

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

		V.nextLink = "Next Week";

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

		let t = [];

		t.push(`Through the glass walls of your office, you see`);
		t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave));
		t.push(`fucking another slave with ${his}`);
		if (eventSlave.dick <= 2) {
			t.push(`small penis.`);
		} else if (eventSlave.dick <= 4) {
			t.push(`long cock.`);
		} else if (eventSlave.dick > 4) {
			t.push(`huge, horse-like phallus.`);
		}
		t.push(`Since you gave ${him} orders that permit ${him} to fuck your other slaves, ${he}'s been fucking them whenever ${he} can. The other slave is`);
		if (eventSlave.dick <= 2) {
			t.push(`enjoying ${himselfU} even though the ${V.seeRace === 1 ? eventSlave.race : ""} dick in ${hisU} pussy is a little disappointing.`);
		} else if (eventSlave.dick <= 4) {
			t.push(`enjoying the sex.`);
		} else {
			t.push(`enjoying the big ${V.seeRace === 1 ? eventSlave.race : ""} dick, even if ${heU} does wince from time to time.`);
		}
		if (eventSlave.scrotum > 0) {
			if (eventSlave.balls > 3) {
				t.push(`As ${eventSlave.slaveName} pounds, ${his} big balls slap against ${his} partner.`);
			} else if (eventSlave.balls > 1) {
				t.push(`As ${eventSlave.slaveName} pounds, ${his} balls tighten, preparing to empty themselves.`);
			}
		}
		App.Events.addParagraph(node, t);
		t = [];

		App.Events.addResponses(node, [
			new App.Events.Result("Fuck the bottom", bottom),
			canDoAnal(eventSlave)
				? new App.Events.Result("Fuck the top", topAnal, virginWarning("anal"))
				: new App.Events.Result(),
			canDoVaginal(eventSlave)
				? new App.Events.Result("The slave giving it has a free pussy, so use that", topVaginal, virginWarning("vaginal"))
				: new App.Events.Result()
		]);

		function bottom() {
			t = [];

			t.push(`Since the other slave is riding ${eventSlave.slaveName}'s ${V.seeRace === 1 ? eventSlave.race : ""} dick, it's a trivial matter to ${PC.dick === 0 ? "don a strap-on," : ""} come up behind the fucking slaves, stop the other slave's riding for a moment, and insert yourself into ${hisU} anus. The other slave`);
			if (eventSlave.dick <= 2) {
				t.push(`gasps as your ${PC.dick === 0 ? "strap-on complements the small dick" : "big dick complements the small one"} in ${his} pussy.`);
			} else if (eventSlave.dick < 4) {
				t.push(`shrieks as ${heU} feels ${hisU} holes stretched by ${PC.dick === 0 ? "a strap-on and a cock" : "two cocks"}.`);
			} else {
				t.push(`struggles and begs for mercy as ${hisU} holes are brutally stretched.`);
			}
			t.push(`The poor slave rides out the sexual storm as you and ${eventSlave.slaveName} fuck ${PC.vagina !== -1 ? `${himU}, your pussy sliding against the base of ${eventSlave.slaveName}'s thrusting shaft` : `${himU}`}. ${eventSlave.slaveName} flirts outrageously with you over the other slave's shoulder whenever ${he} can. <span class="mediumaquamarine">${He} has become more trusting of you.</span>`);

			eventSlave.trust += 4;
			seX(eventSlave, "penetrative", "slaves", "anal");
			seX(PC, "penetrative", "slaves", "anal");
			return t;
		}

		function topAnal() {
			t = [];

			t.push(`Since ${eventSlave.slaveName} is on top, it's a trivial matter to ${PC.dick === 0 ? "don a strap-on," : ""} come up behind the fucking slaves, stop ${his} thrusting for a moment, and penetrate ${his} butthole.`);
			if (eventSlave.fetish === "buttslut" && eventSlave.fetishKnown === 1) {
				t.push(`${He} shivers with delight as ${he} feels ${his} anal ring stretch to accommodate your ${PC.dick === 0 ? "strap-on" : "dick"}.`);
				eventSlave.devotion += 1;
			}
			t.push(VCheck.Anal(eventSlave, 1));
			t.push(`Fucking a slave with ${eventSlave.prostate > 0 ? "prostate" : ""} stimulation from your ${PC.dick === 0 ? "phallus" : "dick"} in ${his} ${V.seeRace === 1 ? eventSlave.race : ""} ass makes ${him} cum with indecent speed. You let ${him} slide down so ${he} can finish the other slave with ${his} mouth while you continue using ${his} anus. The other slave definitely enjoys ${eventSlave.slaveName}'s moaning into ${hisU} pussy as you use ${eventSlave.slaveName}'s ass. The hard buttfucking ${eventSlave.slaveName} is getting keeps ${his} dick stiff all the way through. ${His} submission to you has increased.`);

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

		function topVaginal() {
			t = [];

			t.push(`${eventSlave.slaveName}'s hermaphroditic genitalia is a little crammed together; it's busy down there. ${He} obediently stops fucking so you can maneuver into ${him}.`);
			t.push(VCheck.Vaginal(eventSlave, 1));
			t.push(`Having a ${PC.dick === 0 ? "strap-on" : "dick"} in ${his} pussy reduces ${his} erection a little, so the slave beneath ${him} helps ${his} penetration as much as ${heU} can. It's not the most convenient of fucks, but that's to be expected when a ${properMaster()} and two slaves successfully have two separate instances of vaginal intercourse running at once. ${PC.vagina !== -1 && PC.dick !== 0 ? "You add a third by grabbing a free hand and guiding it to your own pussy; its owner gets the idea and strokes it as best they can." : ""} ${eventSlave.slaveName}'s orgasm is general and intense. ${His} devotion to you has increased.`);

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

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


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

	actorPrerequisites() {
		return [
			[ // single event slave
				s => s.fetish !== "mindbroken",
				canStand,
				hasAnyArms,
				s => s.drugs !== "none",
				s => s.devotion <= 20 && s.devotion >= -50,
				s => s.trust >= -20,
				s => s.fetish !== "buttslut"
			]
		];
	}

	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 {hisA} = getPronouns(assistant.pronouns().main).appendSuffix('A');
		const {s, sh, ss, title: Master} = getEnunciation(eventSlave);
		const desc = SlaveTitle(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(`As you're starting your day, ${V.assistant.name} pauses ${hisA} review of business matters to report that`);
		t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave));
		t.push(`is not accepting ${his} drugs from the phallic feeders in the kitchen. With nothing else urgent, you head down to address the situation. ${eventSlave.slaveName} is standing in front of the place where ${he}'s supposed to take ${his} drugs. It's a little pad on the ground on which ${he}'s supposed to kneel, with a fuckmachine positioned to penetrate ${his} anus once ${he} does so. ${He}'s not completely awake yet, and is just standing there, ${canSee(eventSlave) ? "viewing" : "feeling"} the setup with a vague look of distaste. ${He}'s facing it, and has ${his}`);
		if (eventSlave.butt > 6) {
			t.push("massive behind");
		} else if (eventSlave.butt > 3) {
			t.push("beautiful bottom");
		} else {
			t.push("cute butt");
		}
		t.push("pointed very much away from the machine that's supposed to be fucking it.");

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

		t.push(`${He} turns to you as you enter, and ${canSee(eventSlave) ? "seeing" : "realizing"} that it's you, ${he}`);
		if (canTalk(eventSlave)) {
			t.push(`mumbles unhappily, "Plea${s}e, ${Master}, can I ju${s}t take a ${sh}ot? A${ss}rape from, you know, people, i${s}, um, bad enough."`);
		} else {
			t.push(`uses hesitant gestures to beg you to let ${him} take ${his} drugs normally. ${He} tries to use gestures to explain that ${he} thinks ${he} gets enough anal from humans, without being buttfucked by a machine every morning.`);
		}

		App.Events.addParagraph(node, t);

		App.Events.addResponses(node, [
			new App.Events.Result(`Talk ${him} through it`, talk),
			new App.Events.Result(`Punish ${him} with a bigger phallus`, bigPhallus),
			new App.Events.Result(`Double penetrate ${his} ass for insolence`, penetrate)
		]);

		function talk() {
			t = [];

			t.push(`You put as much quiet authority into your ${canHear(eventSlave) ? "voice" : "words"} as you can, and explain to ${him} that ${he} is required to take ${his} drugs up ${his} ass. You do not explain any of the actual reasons why you require slaves to submit to daily machine anal, but couch your quiet explanation in terms of ${his} life as a slave. You tell ${him} that taking a solid buttfuck from a machine first thing in the morning is something you've ordered ${him} to do. ${He} needs to do it. If ${he} does, ${he}'ll be treated well; if ${he} does not, that will oblige you to punish ${him}. You tell ${him} that you would like ${him} to be a good slave, and that it would be disappointing if you had to punish ${him}. You put just a hint of steel into the last sentence, and ${he} stiffens a little at it. Hesitantly, ${he}`);
			if (eventSlave.belly >= 300000) {
				t.push(`shifts onto ${his} ${belly} belly, uses ${his} ${hasBothArms(eventSlave) ? "hands" : "hand"} to brace ${himself} against the impending pounding, and scoots towards the phallus.`);
			} else {
				t.push(`gets to ${his} ${hasBothLegs(eventSlave) ? "knees" : "knee"}, using ${his} ${hasBothArms(eventSlave) ? "hands" : "hand"} to spread ${his} cheeks for the phallus.`);
			}
			t.push(`Sensing that it's being offered an anus, it gently pushes inside ${his} rectum. Its strokes get longer and faster,`);
			if (eventSlave.anus > 2) {
				t.push(`until ${he}'s groaning under the sodomy despite ${his} loose ass.`);
			} else if (eventSlave.anus > 1) {
				t.push(`quickly gaping ${his} big butthole and making ${him} groan.`);
			} else {
				t.push(`making ${him} gasp as it stretches ${his} poor little asshole.`);
			}

			if (V.cockFeeder !== 0) {
				t.push(`${He} doesn't manage to groan for long, though, since the kitchen extends another phallus to feed ${him} ${his} breakfast. Before long, ${he}'s being spitroasted by machines.`);
			}
			t.push(`Once ${he}'s fully awake, ${he}'s mostly <span class="mediumaquamarine">relieved</span> that you let ${him} get away with hesitation about obedience and took the time to talk ${him} through it.`);

			eventSlave.trust += 4;
			return t;
		}

		function bigPhallus() {
			t = [];

			t.push(`You give the kitchen an order by voice command. ${canHear(eventSlave) ? "It's technical" : `${He} can't hear it`}, so ${he} doesn't understand it, but the meaning becomes clear soon enough. The phallus aiming meaningfully at the place where ${he}'s supposed to kneel and offer up ${his} butthole is withdrawn, and ${he}'s halfway through a shocked thank you when it's replaced by another, noticeably larger. You tell ${him} in deceptively mild tones that you'll keep increasing the size of ${his} phallus until ${he} decides to get down and take it like a good little ${desc}, or you run out of size options and are forced to strap ${him} down and apply two at once. At that point, ${his} ass might be able to take it; then again, it might not. ${He} begins to cry, but is so frightened by the threat that ${he} doesn't let ${his} tears distract ${him} from a delectable scramble to`);
			if (eventSlave.belly >= 300000) {
				t.push(`throw ${himself} onto ${his} ${belly} belly and`);
			} else {
				t.push(`get down on ${his} ${hasBothLegs(eventSlave) ? "knees" : "knee"} and`);
			}
			if (eventSlave.butt > 6) {
				t.push(`heave ${his} huge buttocks apart.`);
			} else if (eventSlave.butt > 3) {
				t.push(`spread ${his} broad buttocks.`);
			} else {
				t.push(`spread ${his} cute ass wide.`);
			}

			if (V.cockFeeder !== 0) {
				t.push(`Once it's got its phallus sliding in and out of ${his} asshole, the kitchen gives ${him} another, to suck off for ${his} breakfast. Fortunately for ${him}, ${he} doesn't object, and only gets facefucked by the normal dildo.`);
			}
			t.push(`${He} keeps the threat in mind, and has a slightly sore ass to <span class="hotpink">help ${him} remember to obey without question.</span>`);

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

		function penetrate() {
			t = [];

			t.push(`You step forward and take gentle hold of the slave's throat, telling ${him} to get down on ${his} knees like a good little ${desc}. You make no threat, but give ${him} the order in a voice of brass. ${He} knows what you can do to ${him}, and hurries to obey, terribly frightened. ${His} fear is justified. You announce that ${he}'s avoided serious punishment, but ${he} still needs correction for ${his} hesitation and insolence. ${He}'s concerned when ${he}`);
			if (canSee(eventSlave)) {
				t.push("sees you");
			} else if (canHear(eventSlave)) {
				t.push("hears you");
			} else {
				t.push("feels you");
			}

			if (PC.dick !== 0) {
				t.push(`get your dick ${PC.vagina !== -1 ? "and pussy" : ""} out,`);
			} else {
				t.push("don a strap-on,");
			}
			t.push(`though ${he}'s distracted by the rapidly accelerating buttfuck ${he}'s getting from the machine. ${He} tries to offer you ${his} throat, but ${his} hopes are dashed when you walk around behind ${him}, swing a leg over the machine pistoning in and out of ${his} asshole, and command it to stop for a moment. Then you work ${PC.dick !== 0 ? "yourself" : "your own dildo"} up ${his} ass alongside the phallus that already fills it. The drugs are delivered with lubricant, and you do fit, but only after a nice long session of sobbing, spasming, and finally crying resignation. Then you order the machine to go back to what it was doing, and the resignation vanishes, replaced with anal pain as ${eventSlave.slaveName} takes double penetration up ${his}`);
			if (eventSlave.anus > 2) {
				t.push("gaping anus.");
			} else if (eventSlave.anus === 2) {
				t.push("big butthole.");
			} else {
				t.push("poor, abused little butt.");
			}

			if (V.cockFeeder !== 0) {
				t.push(`When you grow tired of the whining, you order the kitchen to give the bitch breakfast. It extends a feeding phallus and fills ${his} throat, muffling the noise somewhat.`);
			}

			t.push(VCheck.Anal(eventSlave, 1));

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


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

	actorPrerequisites() {
		return [
			/** @param {App.Entity.SlaveState} s */
			[
				s => s.fetish !== "mindbroken",
				hasAnyArms,
				canWalk,
				canTalk,
				s => s.dietCum > 0,
				s => s.diet === "fattening",
				s => s.trust >= -50,
				s => s.fetish !== "cumslut",
				s => s.weight < -30,
				s => s.health.condition > -80,
				s => s.behavioralFlaw !== "anorexic",
				s => s.sexualFlaw !== "self hating",
				s => (s.fetishStrength <= 60 || s.fetishKnown !== 1),
			]
		];
	}

	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);

		V.nextLink = "Next Week";
		const belly = bellyAdjective(eventSlave);

		App.Events.drawEventArt(node, eventSlave);

		let t = [];
		t.push(`You are in your office, tending to the tedious business of requisition orders for your penthouse when you see`);
		t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave));
		t.push(`appear outside your door. ${He} hovers outside in the hall, peeking ${his} head around the entry-way, looking very unsure about disturbing you. You stop what you're doing and call ${him} in. ${He}'s reticent at first, but then ${he} obediently steps into your office. ${He} is`);
		if (eventSlave.clothes === "no clothing") {
			t.push(`forced to remain naked at all times, and the most striking thing about ${his} body is how`);
			if (eventSlave.belly >= 100000) {
				if (eventSlave.bellyPreg >= 3000) {
					t.push(`${his} ${belly} pregnancy utterly dwarfs ${his} skinny body.`);
				} else {
					t.push(`${his} ${belly} distended belly utterly dwarfs ${his} skinny body.`);
				}
			} else if (eventSlave.belly >= 15000) {
				if (eventSlave.bellyPreg >= 3000) {
					t.push(`${his} full pregnancy completely dominates ${his} skinny body.`);
				} else {
					t.push(`${his} hugely distended belly completely dominates ${his} skinny body.`);
				}
			} else if (eventSlave.belly >= 10000) {
				if (eventSlave.bellyPreg >= 3000) {
					t.push(`${his} advanced pregnancy dominates ${his} skinny body.`);
				} else {
					t.push(`${his} hugely distended belly dominates ${his} skinny body.`);
				}
			} else if (eventSlave.belly >= 5000) {
				if (eventSlave.bellyPreg >= 3000) {
					t.push(`massive ${his} pregnant belly is compared to ${his} skinny body.`);
				} else {
					t.push(`massive ${his} distended belly is compared to ${his} skinny body.`);
				}
			} else if (eventSlave.belly >= 1500) {
				if (eventSlave.bellyPreg > 0) {
					t.push(`noticeable ${his} growing pregnancy is against ${his} skinny body.`);
				} else {
					t.push(`noticeable the curve of ${his} belly is against ${his} skinny body.`);
				}
			} else if (eventSlave.belly >= 150) {
				if (eventSlave.bellyPreg > 0) {
					t.push(`noticeable ${his} early pregnancy is against ${his} skinny body.`);
				} else {
					t.push(`noticeable the curve of ${his} implant is against ${his} skinny body.`);
				}
			} else {
				t.push(`skinny ${he} is.`);
			}
		} else {
			t.push(`forced to wear ${eventSlave.clothes} all day, but even through ${his} outfit, it's easy to see how`);
			if (eventSlave.belly >= 100000) {
				if (eventSlave.bellyPreg >= 3000) {
					t.push(`${his} ${belly} pregnancy utterly dwarfs ${his} skinny body.`);
				} else {
					t.push(`${his} ${belly} distended belly utterly dwarfs ${his} skinny body.`);
				}
			} else if (eventSlave.belly >= 15000) {
				if (eventSlave.bellyPreg >= 3000) {
					t.push(`${his} heavy pregnancy completely dominates ${his} skinny body.`);
				} else {
					t.push(`${his} hugely distended belly completely dominates ${his} skinny body.`);
				}
			} else if (eventSlave.belly >= 10000) {
				if (eventSlave.bellyPreg >= 3000) {
					t.push(`${his} advanced pregnancy dominates ${his} skinny body.`);
				} else {
					t.push(`${his} hugely distended belly dominates ${his} skinny body.`);
				}
			} else if (eventSlave.belly >= 5000) {
				if (eventSlave.bellyPreg >= 3000) {
					t.push(`massive ${his} pregnant belly is compared to ${his} skinny body.`);
				} else {
					t.push(`massive ${his} distended belly is compared to ${his} skinny body.`);
				}
			} else if (eventSlave.belly >= 1500) {
				if (eventSlave.bellyPreg > 0) {
					t.push(`noticeable ${his} growing pregnancy is against ${his} skinny body.`);
				} else {
					t.push(`noticeable the curve of ${his} belly is against ${his} skinny body.`);
				}
			} else if (eventSlave.belly >= 150) {
				if (eventSlave.bellyPreg > 0) {
					t.push(`noticeable ${his} early pregnancy is against ${his} skinny body.`);
				} else {
					t.push(`noticeable the curve of ${his} implant is against ${his} skinny body.`);
				}
			} else {
				t.push(`impossibly skinny ${he} is.`);
			}
		}
		if (eventSlave.weight > -80) {
			t.push(`${He}'s not exclusively skin and bones, but ${he}'s close. ${His}`);
		} else {
			t.push(`${He}'s so thin that ${he} doesn't look entirely healthy. ${His}`);
		}

		if (eventSlave.boobs < 600) {
			if (eventSlave.boobs < 300) {
				t.push(`tiny`);
			} else if (eventSlave.boobs < 600) {
				t.push(`small`);
			}
			t.push("boobs are barely noticeable");
			t.push(eventSlave.belly >= 5000 ? `above ${his} bloated` : `against ${his} concave`);
			if (V.arcologies[0].FSSlimnessEnthusiast !== "unset") {
				t.push(`tummy, and that can be a very appealing look given the predilection your arcology has for slim ${girl}s.`);
			} else {
				t.push(`tummy, and to most clients, this makes ${him} a less appealing whore.`);
			}
		} else {
			t.push(eventSlave.boobs < 900 ? "large" : "massive");
			t.push(`tits are a sharp contrast to ${his}`);
			t.push(eventSlave.belly >= 150 ? "thin, bloated frame," : "concave belly");
			t.push(`and although impressive, they seem to especially stick out on a ${girl} who, in all other ways, seems`);
			t.push(eventSlave.weight > -80 ? "slightly" : "alarmingly");
			t.push(`malnourished. ${His} ${eventSlave.faceShape} face is clearly conflicted, and`);
		}
		t.push(canSee(eventSlave) ? `${his} ${App.Desc.eyesColor(eventSlave)} shift` : `${he} glances about`);
		t.push(`with nervous energy. ${He} is clearly unsure whether ${he} should say what ${he} came here to say.`);
		App.Events.addParagraph(node, t);
		t = [];
		t.push(`When you finally ask ${him} what ${he} wants, ${he} hesitates for a moment and then suddenly seems to gain ${his}`);
		if (eventSlave.accent > 1) {
			t.push(`courage, speaking in an atrociously thick accent.`);
		} else if (eventSlave.accent > 0) {
			t.push(`courage, speaking in a cute little accent.`);
		} else {
			t.push("courage.");
		}
		t.push(Spoken(eventSlave, `"Please ${Master}, I'm so hungry! It's seems like all I get to eat is cum. It's disgusting! Please! I have to eat so much of it. Can I be allowed to eat regular food again? Please ${Master}, I'm so hungry. I need real food!"`));
		App.Events.addParagraph(node, t);
		t = [];
		t.push(`It's true, cum`);
		t.push(eventSlave.dietCum === 1 ? "supplemented" : "based");
		t.push(`food can be hard on ${girl}s`);
		t.push(`who are not fully habituated to being toys for sexual amusement — particularly when you've ordered them to gain weight on it. You look at the`);
		if (eventSlave.belly >= 1500) {
			t.push(`gravid,`);
		}
		t.push(`skinny whore and consider your options.`);

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

		App.Events.addResponses(node, [
			(eventSlave.chastityAnus === 1)
				? new App.Events.Result(`Give the poor ${girl} a break and take ${him} off ${his} cum diet so ${he} can safely get to a healthier weight`, safely)
				: new App.Events.Result(),
			(canDoAnal(eventSlave))
				? new App.Events.Result(`Give the emaciated slut your answer in the form of a rough butt-fuck`, buttfuck, virginityWarning())
				: new App.Events.Result(),
			new App.Events.Result(`Use aphrodisiacs and positive reinforcement to make ${his} cum diet more palatable`, aphrodisiac),
		]);

		function virginityWarning() {
			if ((eventSlave.anus === 0) && (eventSlave.dietMilk === 1)) {
				return `This option will take ${his} anal virginity and remove milk from ${his} diet.`;
			} else if (eventSlave.anus === 0) {
				return `This option will take ${his} anal virginity`;
			} else if (eventSlave.dietMilk === 1) {
				return `This option will remove milk from ${his} diet.`;
			}
			return null;
		}

		function safely() {
			t = [];
			t.push(`You silently appraise ${eventSlave.slaveName}'s desperate face and lean forward in your chair to check your terminal. You confirm that`);
			if (eventSlave.dietCum === 1) {
				t.push(`${his} food is supplemented with cum for flavor.`);
			} else {
				t.push(`${he} is being fed significant amounts of ejaculate.`);
			}
			t.push(`While ${his}`);
			if (eventSlave.dietCum === 2) {
				t.push(`extreme`);
			}
			t.push(`diet is still engineered to`);
			if (eventSlave.dietCum === 2) {
				t.push(`barely`);
			}
			t.push(`provide the nutrition ${he} needs, if ${he} can't hold the stuff down, ${he} can't gain`);
			if (eventSlave.pregKnown === 1 && eventSlave.preg > eventSlave.pregData.normalBirth / 4) {
				t.push(`weight, especially with ${his} growing`);
				if (eventSlave.pregType > 1) {
					t.push(`children taking whatever nutrients they can.`);
				} else {
					t.push(`child taking whatever nutrients it can.`);
				}
			} else {
				t.push("weight.");
			}
			t.push(`With a few taps on the keyboard you change ${his} orders so that ${he} will be fed a much more nutritionally rich diet that is free of ejaculate. However, you make sure to warn ${him} that ${V.assistant.name} will be monitoring ${him}, and you may change your mind once ${he} reaches a more attractive weight. ${He} thanks you profusely,`);
			if (eventSlave.vagina !== 0) {
				t.push(`even attempting to offer ${his} body for use in gratitude,`);
			}
			t.push(`but you simply send ${him} away. You find yourself concerned that you are becoming soft by allowing slaves to dictate what they will and won't eat, but your benevolent decision has already had a positive effect on ${his} attitude. ${He} trusts you a little more too.`);
			eventSlave.trust += 2;
			eventSlave.devotion += 2;
			eventSlave.dietCum = 0;
			return t;
		}

		function buttfuck() {
			t = [];
			let frag = document.createDocumentFragment();
			t.push(`You stand up behind your desk. ${He} flinches, but holds ${his} ground, ${his} lip quivering slightly. You slowly walk toward ${him}, appraising ${his}`);
			t.push(eventSlave.belly >= 100 ? `bloated,` : `smooth,`);
			t.push(`skinny body, touching ${his} shoulder as you disappear behind ${him}. ${He} starts to cry as you`);
			if (V.PC.dick === 0) {
				t.push(`pull a massive rubber dong attachment off the wall and hook it to your strap-on.`);
			} else {
				t.push(`unbuckle your pants and ${him} feel your warm dick harden against ${his} tight, bony thigh.`);
			}
			t.push(`Without word or ceremony, you shove ${him} forward so that ${he} is bent over and crushed against your desk. The tears start to flow out of ${him} as ${he} feels your`);
			t.push(V.PC.dick === 0 ? `massive rubber dong` : `hard, thick cock`);
			t.push(`pressing against ${his} unprotected anus.`);
			App.Events.addParagraph(frag, t);

			t = [];
			t.push(`When you offer ${him} the opportunity to revise ${his} request, ${he} does.`);
			t.push(Spoken(eventSlave, `"Please, ${Master} I'm sorry! Please don't fuck my ass! I'll eat all the cum you want! Please!"`));
			t.push(`${He} screams`);
			if (eventSlave.accent > 1) {
				t.push(`in ${his} thick accent`);
			}
			t.push(`as you force your`);
			if (V.PC.dick === 0) {
				t.push(`strap-on`);
			} else {
				t.push(`self`);
			}
			t.push(`inside ${his} butt-hole and subdue ${his} weak, struggling body against your unforgiving desk. Horrified tears stream down ${his} face with each brutal thrust as you speak into ${his} ear and remind ${him} that slaves are not allowed to dictate their needs to their owners. You know what's best for ${him}, and right now, ${his} proper role is as an eager little depository for the products of the free-cities ejaculate market. It's ${his} job to suck down cum at the whim of ${his} owner, plain and simple, until ${he}'s told otherwise. You butt-fuck the cum-fed slag until ${he} simply lays there and accepts ${his} corrective assrape.`);
			if (eventSlave.anus === 0) {
				t.push(`<span class="lime">${His}</span>`);
				if (eventSlave.butt < 5) {
					t.push(`<span class="lime">skinny little</span>`);
				} else {
					t.push(`<span class="lime">plump little</span>`);
				}
				t.push(`<span class="lime">ass is now broken in.</span>`);
			}
			t.push(`${He} sobs quietly with each thrust of your hips, and when you finally`);
			if (V.PC.dick !== 0) {
				t.push(`make yet another cum deposit into ${his}`);
				t.push(eventSlave.weight < -80 ? `emaciated body and` : `bony body and`);
			}
			t.push(`pull out, you instruct`);
			if (eventSlave.dietCum === 1) {
				t.push(`${V.assistant.name} to dramatically increase the amount of cum in ${his} diet from now on. You won't have a slave telling you what ${he} eats. ${eventSlave.slaveName}`);
				if (canHear(eventSlave)) {
					t.push(`hears your instructions`);
				} else {
					t.push(`correctly guesses the meaning behind your body language`);
				}
				t.push(`and whimpers before rubbing ${his} sore bottom while heading`);
			} else {
				t.push(`another slave to drag the broken slut to the kitchen, where ${he}'s to receive an additional feeding of thick, creamy ejaculate-based nutrients before proceeding`);
			}
			t.push(`to ${his} next assignment.`);
			App.Events.addParagraph(frag, t);
			t = [];
			t.push(`${He}'s learned a valuable lesson about what it truly means to be a slave today, and it's one ${he} <span class="orchid">won't soon forget.</span>`);
			eventSlave.devotion -= 5;
			eventSlave.trust -= 5;
			if (eventSlave.anus === 0) {
				eventSlave.anus += 1;
			}
			VCheck.Anal(eventSlave, 1);
			if (eventSlave.dietCum === 1) {
				eventSlave.dietCum = 2;
				eventSlave.dietMilk = 0;
			}

			App.Events.addParagraph(frag, t);
			return [frag];
		}

		function aphrodisiac() {
			t = [];
			let frag = document.createDocumentFragment();
			t.push(`You do a quick check at your terminal. ${He} is indeed being fed`);
			if (eventSlave.dietCum === 1) {
				t.push(`food that is supplemented with cum for flavor.`);
			} else {
				t.push(`large amounts of human ejaculate.`);
			}
			t.push(`You tell ${him} that it can't be helped. When you assign a slave ${his} diet, it's for a reason, and in ${eventSlave.slaveName}'s case, you are using ${his} diet to make ${him} into a better whore. By the look on ${his} distressed face, you can tell ${he} doesn't understand or appreciate your perspective, but you tell ${him} you have just the thing to help change ${his} outlook.`);
			App.Events.addParagraph(frag, t);
			t = [];
			t.push(`You pull out a heavy dose of aphrodisiacs from the drawer in your desk. They are expensive, but powerful drugs that can be used in a brute force way to manipulate the sexual urges and tastes of even the most frigid sluts. The mild dose included in every slave's food is usually enough to affect a slow, inevitable change in attitude for resistant slaves, but sometimes a more acute dose can be an amusing way to turn disgust into dependence.`);
			App.Events.addParagraph(frag, t);
			t = [];
			t.push(`${eventSlave.slaveName} shivers as you reassure ${him} and inject ${his}`);
			t.push(eventSlave.weight < -80 ? `bony` : `tiny`);
			t.push(`body with the powerful drugs. You know they are working when ${he} begins to perspire a little, and`);
			if (eventSlave.vagina > -1) {
				t.push(`${he} starts to leak fresh girl-juice down ${his} shivering thighs.`);
			} else if (eventSlave.dick === 0) {
				t.push(`starts to turn instinctively to offer you ${his} only hole.`);
			} else {
				t.push(`${his} dick starts to come to attention.`);
			}
			t.push(`You then book ${him} to be the main attraction at a corporate office party that afternoon, where ${he} will be the target of a blow-bang and bukkake. You see that ${he}'s dosed heavily with the drugs every day this week, and then book the rest of ${his} afternoons for similar duties, making sure ${he} still tends to ${his} regular assignments as well. In the meantime, you also instruct the kitchen that ${he} is to eat as much cum-based food from the dispensers as ${he} can suck down in order to fuel up for these exhausting escapades.`);
			App.Events.addParagraph(frag, t);
			t = [];
			t.push(`By the end of the week, the aphrodisiacs and ${his} slide into an inescapable routine of cum immersion have done their job, and ${he} has begun to view cum as an inevitable component of ${his} daily life. ${He} also manages to gain a little weight. Thanks to your manipulation of ${his} Pavlovian responses through extreme drug therapy, ${his} health has suffered a bit, but ${he} is also more dependent on you thanks to ${his}`);
			if (eventSlave.addict === 0) {
				t.push(`<span class="cyan">new</span>`);
			} else {
				t.push(`<span class="cyan">developing</span>`);
			}
			t.push(`<span class="cyan">addiction to aphrodisiacs.</span>`);
			eventSlave.devotion += 5;
			eventSlave.weight += 10;
			eventSlave.fetish = "cumslut";
			eventSlave.fetishKnown = 1;
			eventSlave.fetishStrength = 10;
			eventSlave.addict += 1;
			seX((eventSlave), "oral", "public", "penetrative", 50);
			healthDamage((eventSlave), 10);

			App.Events.addParagraph(frag, t);
			return [frag];
		}
	}
};


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

	actorPrerequisites() {
		return [
			[ // single event slave
				s => s.fetish !== "mindbroken",
				canHear,
				canWalk,
				hasAnyArms,
				hasAnyLegs,
				s => s.devotion > 20 && s.devotion <= 50,
				s => s.trust > 20 && s.trust <= 50,
				s => s.weight > 20 && s.weight <= 30,
			]
		];
	}

	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);
		const {title: Master} = getEnunciation(eventSlave);

		V.nextLink = "Next Week";

		App.Events.drawEventArt(node, eventSlave);

		let t = [];
		t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave));
		t.push(`has spent the last half-hour pacing up and down the hall before your office, clearly lost in thought. While ${he} has nowhere to be at the moment, it is beginning to become a detriment to your work, so you call ${him} in to get to the bottom of the matter.`);
		App.Events.addParagraph(node, t);

		t = [];
		if (canTalk(eventSlave)) {
			t.push(`"${Master}," ${he} mumbles,`);
			t.push(Spoken(eventSlave, `"am I looking a little heavier?"`));
		} else {
			t.push(`${He} gestures at ${his} middle and`);
		}
		/* WIP specific clothing stuff, right now clothed slaves are not final so don't worry about how little sense it makes */
		switch (eventSlave.clothes) {
			case "clothes":
				if (canTalk(eventSlave)) {
					t.push(Spoken(eventSlave, `"This ${eventSlave.clothes} feels tight around my middle, I feel like it fit last week..."`));
					t.push(He);
				}
				t.push(`adjusts ${his} clothing, clearly uncomfortable.`);
				break;
			default:
				if (canTalk(eventSlave)) {
					t.push(Spoken(eventSlave, `"I feel like I wasn't this soft last week..."`));
					t.push(He);
				}
				t.push(`pinches ${his} belly, clearly grabbing hold of more of ${himself} than ${he} wants to.`);
		}
		t.push(`The ${SlaveTitle(eventSlave)} is`);
		if (eventSlave.diet === "fattening") {
			t.push(`purposefully being fattened up, so it really shouldn't come as a surprise to ${him}.`);
		} else if (eventSlave.behavioralFlaw === "gluttonous") {
			t.push(`a known stress eater, so perhaps somebody has been sneaking food again.`);
		} else if (eventSlave.behavioralFlaw === "anorexic") {
			t.push(`a known anorexic, so ${he}'s likely overreacting.`);
		} else {
			t.push(`certainly a little chubby, so perhaps this is a good time to get a handle on things.`);
		}
		App.Events.addParagraph(node, t);

		App.Events.addResponses(node, [
			new App.Events.Result(`Yes`, uFatGirl),
			new App.Events.Result(`No`, uThinGirl),
			new App.Events.Result(`Encourage ${him} to get bigger`, encourage),
			new App.Events.Result(`Send ${him} to the gym`, gym),
			(canDoAnal(eventSlave) || canDoVaginal(eventSlave))
				? new App.Events.Result(`Help ${him} burn some calories`, sex, virginityWarning())
				: new App.Events.Result(),
			/* ((eventSlave.toyHole === "dick" || V.policies.sexualOpenness === 1) && canPenetrate(eventSlave) && (eventSlave.belly + V.PC.belly < 5000) && ((eventSlave.height >= V.PC.height * 1.5) || eventSlave.muscles > 70))
				? new App.Events.Result(`Take ${him} for a jog`, jogging, "This option will penetrate you")
				: new App.Events.Result(),*/
			new App.Events.Result(`Send ${him} on ${his} way`, shoo),
		]);

		function virginityWarning() {
			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 uFatGirl() {
			let t = [];
			if ((eventSlave.diet === "fattening" || eventSlave.dietMilk > 0) && eventSlave.intelligence + eventSlave.intelligenceImplant > 15) {
				if (canTalk(eventSlave)) {
					t.push(Spoken(eventSlave, `"So the diet is working well, ${Master}? That's good, I suppose. I'm just a bit shocked at how honest you were; people usually try to dodge that question or outright lie."`));
				} else {
					t.push(`${He} smiles before explaining ${he} knows you want ${him} plumper and that ${he} accepts it, but is surprised by your honesty to such a question.`);
				}
				t.push(`${He} leaves your office <span class="trust inc">slightly more trusting</span> for someone whose life is now entirely out of their hands.`);
				eventSlave.trust++;
			} else if (eventSlave.behavioralFlaw === "gluttonous") {
				if (canTalk(eventSlave)) {
					t.push(`${His} eyes begin to water as ${he} struggles not to sob.`);
					t.push(Spoken(eventSlave, `"But... I can't help it, why would you say that?"`));
					t.push(`${He} breaks done completely and hastily flees your sight, likely to the cafeteria, jiggling in all the wrong places.`);
				} else {
					t.push(`${His} eyes begin to water as ${he} struggles not to sob, but ${he} quickly loses composure and hastily flees your gaze, likely to the cafeteria.`);
				}
				t.push(`${He} may have run out of your office in tears, but ${he}'ll quickly come to terms with all that matters is your judgment, not ${hers}. Even more so when ${he} realizes the resulting stress eating only filled ${him} out more.`);
				eventSlave.devotion += 7;
				eventSlave.trust -= 5;
				eventSlave.weight += 5;
			} else if (eventSlave.behavioralFlaw === "anorexic") {
				if (canTalk(eventSlave)) {
					t.push(Spoken(eventSlave, `"I'm so disgusting, ${Master}, I'm glad you see it too. I was so certain you'd lie to me... Sorry to have wasted your time."`));
					t.push(He);
				} else {
					t.push(`${His} face lightens at your ${canHear(eventSlave) ? "words" : "affirmation"}. It seems you told ${him} just what ${he} wanted to hear${!canHear(eventSlave) ? ", so to speak" : ""}. ${He} gives ${his} thanks and`);
				}
				t.push(`leaves your office with <span class="devotion inc">slightly more faith</span> in ${his} ${getWrittenTitle(eventSlave)}.`);
				eventSlave.devotion += 5;
			} else {
				if (canTalk(eventSlave)) {
					t.push(`${His} eyes begin to water as ${he} struggles not to sob.`);
					t.push(Spoken(eventSlave, `"But... But... I'm not... Why would you say that?"`));
					t.push(`${He} breaks done completely and hastily flees your sight, jiggling in all the wrong places.`);
				} else {
					t.push(`${His} eyes begin to water as ${he} struggles not to sob, but ${he} quickly loses composure and hastily flees your gaze.`);
				}
				t.push(`${He} may have run out of your office <span class="trust dec">in tears,</span> but ${he}'ll quickly come to terms with all that matters is <span class="devotion inc">your judgment, not ${hers}.</span>`);
				eventSlave.devotion += 5;
				eventSlave.trust -= 5;
			}
			return t;
		}

		function uThinGirl() {
			let t = [];
			if ((eventSlave.diet === "fattening" || eventSlave.dietMilk > 0) && eventSlave.intelligence + eventSlave.intelligenceImplant > 15) {
				if (canTalk(eventSlave)) {
					t.push(Spoken(eventSlave, `"I know you want me to gain weight, ${Master}, so you don't need to spare my feelings. It's a nice gesture, though."`));
				} else {
					t.push(`${He} frowns before explaining ${he} knows you want ${him} plumper and that ${he} accepts it, but does appreciate the thought.`);
				}
				t.push(`${He} leaves your office in <span class="devotion inc">a good mood</span> for someone being forced to gain weight.`);
				eventSlave.devotion++;
			} else if (eventSlave.behavioralFlaw === "gluttonous") {
				if (canTalk(eventSlave)) {
					t.push(Spoken(eventSlave, `"It's okay ${Master}, you don't have to lie to me. I know this is my fault, but thank you for trying to cheer me up."`));
				} else {
					t.push(`${He} frowns before explaining ${he} has only ${himself} to blame for ${his} weight, but does appreciate the thought.`);
				}
				t.push(`${He} leaves your office in <span class="devotion inc">good spirits</span> for nearly no effort.`);
				eventSlave.devotion++;
			} else if (eventSlave.behavioralFlaw === "anorexic") {
				if (canTalk(eventSlave)) {
					t.push(Spoken(eventSlave, `"Don't lie to me, ${Master}! You really think I don't know I'm a bloated hog!?"`));
				} else {
					t.push(`${His} face contorts into a vicious glare; it seems you choose the wrong thing to say.`);
				}
				t.push(`${He} runs out of your office <span class="devotion dec">in tears.</span> It's likely that ${he}'ll <span class="trust dec">dwell on your response</span> for some time.`);
				eventSlave.devotion -= 10;
				eventSlave.trust -= 10;
			} else {
				t.push(`Of course ${he} hasn't gained any weight. ${He} ponders your response for a moment before replying`);
				if (canTalk(eventSlave)) {
					t.push(`"Thank you, ${Master}"`);
				} else {
					t.push(`with a smile`);
				}
				t.push(`and leaving your office with a <span class="devotion inc">happy spring in ${his} step.</span> Crisis averted.`);
				eventSlave.devotion++;
			}
			return t;
		}

		function encourage() {
			let t = [];
			t.push(`${He}'s left standing there blankly, uncertain on just how to respond to such a bold statement. ${He}'s even less certain when you invite ${him} to join you for lunch in the cafeteria for the rest of the week. You want chubby and what ${he} is barely comes close.`);
			if (eventSlave.behavioralQuirk === "insecure") {
				t.push(`${He} enjoys you watching ${him} stuff ${himself} and quivers with delight as you measure the progress of ${his} waistline. By week's end, you're treated to the lovely sight of ${his} new belly jiggling as ${he} passes by your office.`);
				eventSlave.weight += 10;
			} else if (eventSlave.behavioralFlaw === "gluttonous") {
				t.push(`${He} thoroughly enjoys being permitted to stuff ${his} face for your amusement, even if your lunch is in jeopardy for the duration of the week. There is no denying the results, however, as you savor the sight of the chubby ${girl} jiggling past your office when it's over.`);
				eventSlave.weight += 20;
			} else if (eventSlave.behavioralFlaw === "anorexic") {
				t.push(`${He} appreciates having someone to eat lunch with, but that's not really why you are eating with ${him}. While ${he} doesn't make any real gains, you can't help but notice ${he} kept ${his} food down all week. You broke ${him} of ${his} eating disorder!`);
				eventSlave.behavioralFlaw = "none";
			} else {
				t.push(`${He} spends the week obediently eating for you. You are not disappointed when you see the results, however, nor when you get a good grip on ${his} soft belly. ${He} may still have other hidden problems, but this is not longer one of them, at least for the time being.`);
				eventSlave.weight += 10;
			}
			if (eventSlave.behavioralQuirk === "insecure" || eventSlave.behavioralFlaw === "gluttonous") {
				eventSlave.devotion += 5;
			} else {
				eventSlave.devotion += 3;
			}
			return t;
		}

		function gym() {
			let t = [];
			t.push(`${His} face ${eventSlave.behavioralQuirk === "fitness" ? "brightens" : "sours"} as you instruct ${him} to spend ${his} free time on the treadmill if ${he} is so bothered by it,`);
			if (eventSlave.behavioralQuirk === "fitness") {
				t.push(`and by week's end, ${he}'s <span class="devotion inc">in a fantastic mood.</span>`);
			} else {
				t.push(`but by week's end, ${he}'s singing a different tune.`);
			}
			t.push(`Not only is ${he} several sizes smaller than ${his} expectations, but ${he} looks and feels great, something ${he} just can't help but show off as ${he} struts past your office.`);
			if (eventSlave.behavioralQuirk === "fitness") {
				eventSlave.devotion += 10;
				eventSlave.trust += 10;
			} else {
				eventSlave.devotion += 5;
				eventSlave.trust += 5;
			}
			eventSlave.weight -= 10;
			return t;
		}

		function sex() {
			let frag = document.createDocumentFragment();
			let t = [];
			t.push(`${He}'s dismayed when you agree, but that fades quickly into hope when you continue, suggesting there's a way to start fixing the problem. ${He} just needs some exercise; to shed off those pounds with some hard physical work. The couch, you think aloud, will do perfectly, as you move around your desk to stretch out on the inviting surface, hands linked behind your head in a powerful display of your body. It's enough to make ${him} press ${his} thighs together, but you make no move for ${him}${V.PC.dick === 0 ? ", a strap-on," : ""} or even your clothing. You let ${him} puzzle and suffer for a few moments more before you make your intentions clear; if ${he} wants to burn calories, then it should be ${him} that does all the work.`);
			App.Events.addParagraph(frag, t);

			t = [];
			if (eventSlave.behavioralQuirk === "fitness") {
				t.push(`${He} brightens, catching on immediately and nodding ${his} head with understanding`);
				if (V.PC.dick === 0) {
					t.push(`before quickly ${eventSlave.clothes !== "no clothing" && eventSlave.clothes !== "body oil" ? `shedding ${his} clothes and` : ""} retrieving an appropriate dildo, eager for the workout.`);
				} else {
					t.push(`${eventSlave.clothes !== "no clothing" && eventSlave.clothes !== "body oil" ? "before" : ""} quickly ${eventSlave.clothes !== "no clothing" && eventSlave.clothes !== "body oil" ? `shedding ${his} clothes` : ""}, eager for the workout.`);
				}
			} else {
				t.push(`${He} catches on quickly, nodding ${his} head with understanding`);
				if (V.PC.dick === 0) {
					t.push(`before ${eventSlave.clothes !== "no clothing" && eventSlave.clothes !== "body oil" ? `shedding ${his} clothes and` : ""} retrieving an appropriate dildo, glad for the opportunity.`);
				} else {
					t.push(`${eventSlave.clothes !== "no clothing" && eventSlave.clothes !== "body oil" ? `before shedding ${his} clothes` : ""}, glad for the opportunity.`);
				}
			}
			t.push(`${His} hips settle close to yours, moving seductively while ${he} makes a show of undressing you. ${His} fingers smooth`);
			if (V.PC.dick === 0) {
				t.push(`around your hips, fastening the straps under and around your raised ass`);
				if (V.PC.butt <= 3) {
					t.push(`ass,`);
				} else if (V.PC.butt <= 4) {
					t.push(`with some effort,`);
				} else {
					t.push(`with a struggle,`);
				}
				t.push(`adjusting the attached toy`);
			} else {
				t.push(`over your half hard cock before drawing it out, pumping it`);
			}
			t.push(`until it's standing tall, ready for ${him} to spread ${his} legs over.`);
			if (eventSlave.behavioralQuirk === "fitness") {
				t.push(`${He} barely hesitates`);
			} else {
				t.push(`${He} spends a moment hovering`);
			}
			t.push(`before ${he} sinks ${his}`);
			if (canDoVaginal(eventSlave)) {
				t.push(`pussy`);
			} else {
				t.push(`asshole`);
			}
			t.push(`down onto the stiff rod with a moan, drawing back up almost immediately and starting an intense`);
			if (canDoVaginal(eventSlave)) {
				if (eventSlave.vagina === 0) {
					t.push(`pace, despite having been a <span class="lime">virgin</span> moments before.`);
				} else {
					t.push(`pace.`);
				}
				t.push(VCheck.Vaginal(eventSlave, 1));
			} else {
				if (eventSlave.anus === 0) {
					t.push(`pace, despite having been a <span class="lime">virgin</span> moments before.`);
				} else {
					t.push(`pace.`);
				}
				t.push(VCheck.Anal(eventSlave, 1));
			}
			App.Events.addParagraph(frag, t);

			t = [];
			t.push(`Riding certainly is exhausting, especially if you don't offer any assistance. With no hands on ${his} hips to keep ${him} steady, ${his} hand${hasBothArms(eventSlave) ? "s" : ""} find themselves on your`);
			if (V.PC.belly < 5000) {
				if (V.PC.boobs < 300) {
					t.push(`chest,`);
				} else if (V.PC.boobs >= 300) {
					t.push(`tits,`);
				} else {
					t.push(`stomach,`);
				}
			} else {
				if (V.PC.bellyPreg > 2000 || V.PC.bellyImplant > 2000) {
					t.push(`gravid swell,`);
				} else {
					t.push(`${V.PC.inflationType}-stuffed belly,`);
				}
			}
			t.push(`fingers curling as ${his} orgasm approaches and a delighted ${canTalk(eventSlave) ? "shout" : "shudder"}`);
			if (eventSlave.balls !== 0) {
				t.push(`and a`);
				if (eventSlave.prostate === 3) {
					t.push(`flood of cum`);
				} else if (eventSlave.prostate === 2) {
					t.push(`splatter of cum`);
				} else if (eventSlave.prostate === 1) {
					t.push(`splurt of cum`);
				} else {
					t.push(`dribble of fluid`);
				}
			}
			t.push(`announcing it. ${He}'s`);
			if (eventSlave.behavioralQuirk === "fitness") {
				t.push(`a little loopy from the rush, but a buck of your hips informs ${him} ${he}'s not finished yet. Delighted,`);
			} else {
				t.push(`panting from the exertion, but a buck of your hips informs ${him} ${he}'s not finished yet. It's not as hard and fast this time, but`);
			}
			t.push(`${he} pounds ${himself} diligently, only breaking momentarily for increasingly worn out gasps and moans, coating your couch ${eventSlave.balls !== 0 && eventSlave.prostate !== 0 ? "and clothing" : ""} with a mix of fluids each time. Only when ${his} legs refuse to support ${him} anymore and ${his} hips can barely shift do you let ${him} stop, admiring the sweat drenched spent slave draped over your`);
			if (V.PC.belly < 5000) {
				t.push(`chest.`);
			} else {
				t.push(`belly.`);
			}
			App.Events.addParagraph(frag, t);

			t = [];
			t.push(`You stretch before gathering ${him} up,`);
			if (V.PC.belly < 10000) {
				t.push(`carrying`);
			} else {
				t.push(`coaxing`);
			}
			t.push(`${him} to the shower to clean ${him} off, teasing another orgasm out of ${him} before you're finished as a reward. ${His} smile is tired but delighted when you lay ${him} down on clean cushions, pleased that ${he}`);
			if (eventSlave.behavioralQuirk === "fitness") {
				t.push(`got such a great workout,`);
			} else {
				t.push(`did such a good job,`);
			}
			t.push(`before drifting off. ${He}'s earned a nap before ${he} returns to`);
			switch (eventSlave.assignment) {
				case Job.REST:
					t.push(`the dorm,`);
					break;
				case Job.HOUSE:
					t.push(`${his} chores,`);
					break;
				case Job.MILKED:
					t.push(`getting milked,`);
					break;
				case Job.PUBLIC:
					t.push(`${his} slutting,`);
					break;
				case Job.FUCKTOY:
					t.push(`servicing you,`);
					break;
				case Job.WHORE:
					t.push(`selling ${himself},`);
					break;
				case Job.CLASSES:
					t.push(`studying,`);
					break;
				case Job.CONFINEMENT:
					t.push(`${his} solitude,`);
					break;
				case Job.GLORYHOLE:
					t.push(`being used,`);
					break;
				case Job.SUBORDINATE:
					t.push(`serving ${his} superior,`);
					break;
				case Job.QUARTER:
					t.push(`${his} work as a servant,`);
					break;
				case Job.CONCUBINE:
					t.push(`your bed to await another set,`);
					break;
				case Job.MASTERSUITE:
					t.push(`the other fucktoys,`);
					break;
				default:
					t.push(`${his} post,`);
			}
			t.push(`especially if ${he} hopes to walk there after <span class="lime">burning so many calories.</span>`);
			if (eventSlave.behavioralQuirk === "fitness") {
				eventSlave.devotion += 7;
				eventSlave.trust += 7;
			} else {
				eventSlave.devotion += 3;
				eventSlave.trust += 3;
			}
			eventSlave.weight -= 5;
			App.Events.addParagraph(frag, t);

			return frag;
		}

		function shoo() {
			let t = [];
			t.push(`All that ${he} should be worried about is serving you, not inconsequential changes to ${his} body.`);
			if (eventSlave.behavioralQuirk === "insecure") {
				t.push(`That's all ${he} needed to ${canHear(eventSlave) ? "hear" : "know"}. <span class="devotion inc">All's well and good</span> if ${getWrittenTitle(eventSlave)} says so.`);
				eventSlave.devotion += 3;
			} else {
				t.push(`${He} nods in acceptance and silently heads on ${his} way; ${his} thoughts on your indifference is <span class="trust dec">written across ${his} face.</span>`);
				eventSlave.trust -= 5;
			}
			return t;
		}
	}
};