code:
/**
 *
 * @param {App.Entity.SlaveState} slave
 * @returns {DocumentFragment}
 */
App.Interact.fFuckdollImpreg = function(slave) {
	const node = new DocumentFragment();
	let r = [];

	const {
		He, His,
		he, his, him
	} = getPronouns(slave);

	const bonus = random(6, 20);
	seX(slave, slave.mpreg ? "anal" : 'vaginal', V.PC, "penetrative", bonus + 1);

	if (slave.mpreg === 1) {
		V.analTotal += bonus + 1;
	} else {
		V.vaginalTotal += bonus + 1;
	}

	r.push(`You decide to use the Fuckdoll's fertile womb to grow a child.`);
	if (slave.fuckdoll <= 10) {
		r.push(`Since ${he} is not well adapted to life as a living sex toy yet, ${he} won't respond to position commands. So, you simply`);
		if (hasAnyLegs(slave)) {
			r.push(`push ${him} down to lie on the couch`);
		} else {
			r.push(`set ${him} on your desk`);
		}
		r.push(`and shove`);
		if (V.PC.dick !== 0) {
			r.push(`your cock`);
		} else {
			r.push(`a strap-on`);
		}
		r.push(`inside ${his}`);
		if (slave.mpreg === 1) {
			r.push(`asshole.`);
		} else {
			r.push(`vagina.`);
		}
	} else if (slave.fuckdoll <= 70) {
		r.push(`${He} can follow intermediate commands, so you order ${him} into a position for use of ${his}`);
		if (slave.mpreg === 1) {
			r.push(`rear`);
		} else {
			r.push(`front`);
		}
		r.push(`hole. ${He} obediently`);
		if (hasAllLimbs(slave)) {
			r.push(`gets down on all fours and`);
		}
		r.push(`cocks ${his} hips, offering ${his}`);
		if (slave.mpreg === 1) {
			r.push(`asspussy`);
		} else {
			r.push(`cunt`);
		}
		r.push(`until you insert your`);
		if (V.PC.dick > 0) {
			r.push(`cock`);
		} else {
			r.push(`strap-on`);
		}
		r.push(`into ${his}`);
		if (slave.mpreg === 1) {
			r.push(`winking`);
		} else {
			r.push(`wet`);
		}
		r.push(`channel.`);
	} else {
		r.push(`${He} can follow advanced commands, so you bring ${him} over to your chair`);
		if (hasAnyLegs(slave)) {
			r.push(`and order ${him} to squat down onto your cock and ride.`);
		} else {
			r.push(`and impale ${him} on your cock, ordering ${him} to do ${his} feeble best to bounce.`);
		}
	}
	if (slave.fuckdoll <= 20) {
		r.push(`${He}'s not fully used to being raped without warning, so ${he} struggles, ${his} muscles spasming delightfully.`);
	} else if (slave.fuckdoll <= 40) {
		r.push(`Aware that ${he} is supposed to relax and accept rape, ${he} does ${his} best to let you take ${him} without resistance.`);
	} else {
		r.push(`You command ${him} to milk your cock with ${his}`);
		if (slave.mpreg === 1) {
			r.push(`anal`);
		} else {
			r.push(`vaginal`);
		}
		r.push(`walls, and ${he} obediently starts to flex ${his} well-developed`);
		if (slave.mpreg === 1) {
			r.push(`cunt`);
		} else {
			r.push(`anal`);
		}
		r.push(`muscles, squeezing you from base to tip.`);
	}
	if (slave.fuckdoll <= 60) {
		if (slave.energy > 40) {
			r.push(`Denied any other outlet for ${his} healthy sex drive, ${he} orgasms.`);
		}
	} else {
		r.push(`${He} orgasmed for the first time as you entered ${him}, and ${he} continues to do so as you fuck ${him}. ${He}'s perfectly tuned.`);
	}
	if (slave.voice === 0) {
		r.push(`Though ${he} is mute, ${his} breath hisses loudly`);
		if (slave.lips > 95) {
			r.push(`past the lips of ${his} facepussy.`);
		} else {
			r.push(`through ${his} mouth insert.`);
		}
	} else {
		r.push(`${He} moans,`);
		if (slave.lips > 95) {
			r.push(`and the lips of ${his} facepussy quiver.`);
		} else {
			r.push(`struggling to force the sound past ${his} mouth insert.`);
		}
	}
	r.push(`You climax, your cum shooting forward to splash against ${his} womb, and return ${he} to`);
	if (hasAnyLegs(slave)) {
		r.push(`a standing position`);
	} else {
		r.push(`where ${he} was resting`);
	}
	r.push(`to allow your seed to find ${his} mark.`);
	if (slave.mpreg === 1) {
		if (slave.anus > 2) {
			r.push(`Your cum flows out of ${his} gaping rear hole and down the material of ${his} suit.`);
		} else if (slave.anus === 2) {
			r.push(`Your cum drips out of ${his} well-fucked rear hole and down the material of ${his} suit.`);
		} else {
			r.push(`${His} tight rear hole retains almost every drop of your cum. A few escape and run down the material of ${his} suit.`);
		}
		r.push(`The Fuckdoll will be cleaned by another slave.`);
		if (slave.anus === 0) {
			if (slave.fetish !== Fetish.MINDBROKEN) {
				r.push(`As you return to your business, ${he} shakes slightly in place, and a few low moans come out of ${his} face hole. This is probably a reaction to losing ${his} anal virginity.`);
			} else {
				r.push(`${He} gives no external indication that ${he}'s aware that ${he}'s just lost ${his} virginity.`);
			}
			r.push(`In any case, <span class="virginity loss">${his} rear hole has been broken in.</span>`);
			slave.anus = 1;
		}
	} else {
		if (slave.vagina >= 10) {
			r.push(`Your cum steadily flows from its prolapsed front hole and down the material of ${his} suit.`);
		} else if (slave.vagina > 2) {
			r.push(`Your cum flows out of ${his} gaping front hole and down the material of ${his} suit.`);
		} else if (slave.vagina === 2) {
			r.push(`Your cum drips out of ${his} well-fucked front hole and down the material of ${his} suit.`);
		} else {
			r.push(`${His} tight front hole retains almost every drop of your cum. A few escape and run down the material of ${his} suit.`);
		}
		r.push(`The Fuckdoll will be cleaned by another slave.`);
		if (slave.vagina === 0) {
			if (slave.fetish !== Fetish.MINDBROKEN) {
				r.push(`As you return to your business, ${he} shakes slightly in place, and a few low moans come out of ${his} face hole. This is probably a reaction to losing ${his} virginity.`);
			} else {
				r.push(`${He} gives no external indication that ${he}'s aware that ${he}'s just lost ${his} virginity.`);
			}
			r.push(`In any case, <span class="virginity loss">${his} front hole has been broken in.</span>`);
			slave.vagina = 1;
		}
	}

	r.push(`You repeat this ritual throughout the week, ensuring that ${he} will be an <span class="pregnant">incubator for your child.</span>`);
	knockMeUp(slave, 100, 2, -1);

	if (FutureSocieties.isActive('FSRestart') && V.eugenicsFullControl !== 1) {
		if (slave.breedingMark !== 1 || V.propOutcome === 0) {
			r.push(`Rumors spread about you knocking up your playthings; the Societal Elite are <span class="elites loss">very displeased</span> by these rumors.`);
			V.failedElite += 5;
		}
	}
	App.Events.addParagraph(node, r);
	return node;
};


code:
/**
 *
 * @param {App.Entity.SlaveState} slave
 * @returns {DocumentFragment}
 */
App.Interact.fFuckdollOral = function(slave) {
	const node = new DocumentFragment();
	let r = [];

	const {
		He,
		he, his, him
	} = getPronouns(slave);

	seX(slave, "oral", V.PC, "penetrative");
	r.push(`You decide to use the Fuckdoll's`);
	if (slave.lips > 95) {
		r.push(`facepussy.`);
	} else {
		r.push(`face hole.`);
	}
	if (slave.fuckdoll <= 10) {
		r.push(`Since ${he} is not well adapted to life as a living sex toy yet, ${he} won't respond to position commands. So, you simply`);
		if (hasBothLegs(slave)) {
			r.push(`shove ${him} into a kneeling position`);
		} else {
			r.push(`set ${him} on the couch`);
		}
		r.push(`and straddle ${his} face.`);
	} else if (slave.fuckdoll <= 80) {
		r.push(`${He} can follow intermediate commands, so you order ${him} into a position for use of ${his} face hole. ${He} obediently`);
		if (hasBothLegs(slave)) {
			r.push(`gets to ${his} knees`);
		} else {
			r.push(`cranes ${his} neck up`);
		}
		r.push(`and sticks ${his} tongue out as far as it will go, wiggling it invitingly. You straddle ${his} face.`);
	} else {
		r.push(`${He} can follow advanced commands, so you order ${him} into a position for use of ${his} face hole. ${He} instantly`);
		if (hasAnyLegs(slave)) {
			if (V.PC.dick !== 0) {
				r.push(`bends at the waist and turns ${his} head upward, placing ${his} throat horizontally and at waist height.`);
			} else {
				r.push(`gets to ${his} knees and turns ${his} head upward at just the right angle for a pussy to ride ${his} face hole.`);
			}
		} else {
			r.push(`cranes ${his} neck up and sticks ${his} tongue out as far as it will go, wiggling it invitingly.`);
		}
		r.push(`You straddle ${his} face.`);
	}
	if (slave.fuckdoll <= 20) {
		r.push(`${He}'s not fully used to being surprised with face rape, so ${he} struggles, and ${his} difficulty breathing`);
		if (V.PC.dick !== 0) {
			r.push(`makes ${his} throat spasm around your dickhead.`);
		} else {
			r.push(`feels lovely on your cunt.`);
		}
	} else if (slave.fuckdoll <= 50) {
		r.push(`Aware that ${he} is supposed to relax and let you rape ${his} face, ${he} does ${his} best to let you`);
		if (V.PC.dick !== 0) {
			r.push(`fuck ${his} throat.`);
		} else {
			r.push(`ride ${his} face.`);
		}
	} else {
		r.push(`You command ${him} to`);
		if (V.PC.dick !== 0) {
			r.push(`milk your dick, and ${he} begins to suck with almost frightening force.`);
		} else {
			r.push(`pleasure your cunt, and ${he} begins to eat you out with almost frightening hunger.`);
		}
	}
	if (slave.fuckdoll <= 60) {
		if (slave.energy > 80) {
			r.push(`Denied any other outlet for ${his} extreme sex drive, ${he} orgasms from nothing more than oral stimulation.`);
		}
	} else {
		r.push(`${He}'s so perfectly tuned that ${he} begins to orgasm from nothing more than oral stimulation, and ${he} continues to shiver with repeated orgasms as ${he} sucks.`);
	}
	r.push(`You climax,`);
	if (V.PC.dick !== 0) {
		r.push(`blowing your load down ${his} throat,`);
	} else {
		r.push(`giving ${him} a good amount of femcum to swallow,`);
	}
	r.push(`and return ${him} to`);
	if (hasAnyLegs(slave)) {
		r.push(`a standing position.`);
	} else {
		r.push(`where ${he} was resting.`);
	}
	if (V.PC.dick !== 0) {
		if (slave.lips > 95) {
			r.push(`${He} gives sloppy blowjobs, ${his} lips being too big for much control, and strings of your cum beribbon ${his} suit. The Fuckdoll will be cleaned by another slave.`);
		} else {
			r.push(`${He} swallows repeatedly as ${he} returns to ${his} resting posture.`);
		}
	}
	App.Events.addParagraph(node, r);
	return node;
};

repo_name: Arkerthan/fc

license: mit


code:
/**
 *
 * @param {App.Entity.SlaveState} slave
 * @returns {DocumentFragment}
 */
App.Interact.fFuckdollVaginal = function(slave) {
	const node = new DocumentFragment();
	let r = [];

	const {
		He, His,
		he, his, him
	} = getPronouns(slave);

	seX(slave, "vaginal", V.PC, "penetrative");
	r.push(`You decide to use the Fuckdoll's`);
	if (slave.vagina > 3) {
		r.push(`cavernous`);
	} else if (slave.vagina === 3) {
		r.push(`soft`);
	} else if (slave.vagina === 2) {
		r.push(`inviting`);
	} else if (slave.vagina === 1) {
		r.push(`tight`);
	}
	r.push(`front hole.`);
	if (slave.fuckdoll <= 10) {
		r.push(`Since ${he} is not well adapted to life as a living sex toy yet, ${he} won't respond to position commands. So, you simply`);
		if (hasAnyLegs(slave)) {
			r.push(`push ${him} down to lie on the couch`);
		} else {
			r.push(`set ${him} on your desk`);
		}
		r.push(`and shove`);
		if (V.PC.dick !== 0) {
			r.push(`your cock`);
		} else {
			r.push(`a strap-on`);
		}
		r.push(`inside ${his} vagina.`);
	} else if (slave.fuckdoll <= 70) {
		r.push(`${He} can follow intermediate commands, so you order ${him} into a position for use of ${his} front hole. ${He} obediently`);
		if (hasAllLimbs(slave)) {
			r.push(`gets down on all fours and`);
		} else if (hasAnyLegs(slave)) {
			r.push(`bends over and`);
		}
		r.push(`cocks ${his} hips, offering ${his} cunt until you insert`);
		if (V.PC.dick !== 0) {
			r.push(`your cock`);
		} else {
			r.push(`a strap-on`);
		}
		r.push(`into ${his} wet channel.`);
	} else {
		r.push(`${He} can follow advanced commands, so you bring ${him} over to your chair`);
		if (hasAnyLegs(slave)) {
			r.push(`and order ${him} to squat down onto your`);
			if (V.PC.dick !== 0) {
				r.push(`cock`);
			} else {
				r.push(`strap-on`);
			}
			r.push(`and ride.`);
		} else {
			r.push(`and impale ${him} on`);
			if (V.PC.dick !== 0) {
				r.push(`your cock,`);
			} else {
				r.push(`your strap-on,`);
			}
			r.push(`ordering ${him} to do ${his} feeble best to bounce.`);
		}
	}
	if (slave.fuckdoll <= 20) {
		r.push(`${He}'s not fully used to being raped without warning, so ${he} struggles, ${his} muscles spasming delightfully.`);
	} else if (slave.fuckdoll <= 40) {
		r.push(`Aware that ${he} is supposed to relax and accept rape, ${he} does ${his} best to let you take ${him} without resistance.`);
	} else {
		r.push(`You command ${him} to milk your`);
		if (V.PC.dick !== 0) {
			r.push(`cock`);
		} else {
			r.push(`strap-on`);
		}
		r.push(`with ${his} vaginal walls, and ${he} obediently starts to flex ${his} well-developed cunt muscles, squeezing`);
		if (V.PC.dick !== 0) {
			r.push(`you`);
		} else {
			r.push(`your strap-on`);
		}
		r.push(`from base to tip.`);
	}
	if (slave.fuckdoll <= 60) {
		if (slave.energy > 40) {
			r.push(`Denied any other outlet for ${his} healthy sex drive, ${he} orgasms.`);
		}
	} else {
		r.push(`${He} orgasmed for the first time as you entered ${him}, and ${he} continues to do so as you fuck ${him}. ${He}'s perfectly tuned.`);
	}
	if (slave.voice === 0) {
		r.push(`Though ${he} is mute, ${his} breath hisses loudly`);
		if (slave.lips > 95) {
			r.push(`past the lips of ${his} facepussy.`);
		} else {
			r.push(`through ${his} mouth insert.`);
		}
	} else {
		r.push(`${He} moans,`);
		if (slave.lips > 95) {
			r.push(`and the lips of ${his} facepussy quiver.`);
		} else {
			r.push(`struggling to force the sound past ${his} mouth insert.`);
		}
	}
	r.push(`You climax${(V.PC.dick !== 0) ? `, your cum shooting forward to splash against ${his} womb,` : ``} and return ${him} to`);
	if (hasAnyLegs(slave)) {
		r.push(`a standing position.`);
	} else {
		r.push(`where ${he} was resting.`);
	}
	if (V.PC.dick !== 0) {
		if (slave.vagina > 2) {
			r.push(`Your cum flows out of ${his} gaping front hole and down the material of ${his} suit.`);
		} else if (slave.vagina === 2) {
			r.push(`Your cum drips out of ${his} well-fucked front hole and down the material of ${his} suit.`);
		} else {
			r.push(`${His} tight front hole retains almost every drop of your cum. A few escape and run down the material of ${his} suit.`);
		}
		if (canImpreg(slave, V.PC)) {
			r.push(knockMeUp(slave, 5, 1, -1));
		}
		r.push(`The Fuckdoll will be cleaned by another slave.`);
	}
	if (slave.vagina === 0) {
		if (slave.fetish !== Fetish.MINDBROKEN) {
			r.push(`As you return to your business, ${he} shakes slightly in place, and a few low moans come out of ${his} face hole. This is probably a reaction to losing ${his} virginity.`);
		} else {
			r.push(`${He} gives no external indication that ${he}'s aware that ${he}'s just lost ${his} virginity.`);
		}
		r.push(`In any case, <span class="lime">${his} front hole has been broken in.</span>`);
		slave.vagina = 1;
	}
	App.Events.addParagraph(node, r);
	return node;
};


code:
/**
 *
 * @param {App.Entity.SlaveState} slave
 * @returns {DocumentFragment}
 */
App.Interact.fSuckle = function(slave) {
	const node = new DocumentFragment();
	let r = [];

	const {
		He, His,
		he, his, him, himself
	} = getPronouns(slave);

	seX(slave, "mammary", V.PC, "oral");
	let mood;
	if (V.PC.pregMood === 0 || V.PC.preg < 28) {
		mood = 0;
	} else if (V.PC.pregMood === 1) {
		mood = 1;
	} else if (V.PC.pregMood === 2) {
		mood = 2;
	}

	// still needed: breast implant support, nipple piercing support

	r.push(`You`);
	if (mood === 2) {
		r.push(`demand`);
	} else {
		r.push(`beckon`);
	}
	r.push(`${slave.slaveName} to`);
	if (!hasAnyLegs(slave)) {
		r.push(`have another slave set ${him} on the floor close to you.`);
	} else if (tooBigBreasts(slave)) {
		r.push(`have another slave help ${him} heft ${his} tits so ${he} can take a seat on the floor close to you.`);
	} else if (tooBigBelly(slave)) {
		r.push(`have another slave help ${him} heft ${his} belly so ${he} can take a seat on the floor close to you.`);
	} else if (tooBigButt(slave)) {
		r.push(`have another slave help ${him} heft ${his} ass cheeks so ${he} can take a seat on the floor close to you.`);
	} else if (tooBigDick(slave)) {
		r.push(`have another slave help ${him} heft ${his} cock so ${he} can take a seat on the floor close to you.`);
	} else if (tooBigBalls(slave)) {
		r.push(`have another slave help ${him} heft ${his} balls so ${he} can take a seat on the floor close to you.`);
	} else if (tooFatSlave(slave)) {
		r.push(`have another slave help ${him} up so ${he} can take a seat on the floor close to you.`);
	} else {
		r.push(`to take a seat on the floor close to you.`);
	}

	if (canMove(slave)) {
		if (slave.fetish === Fetish.MINDBROKEN) {
			r.push(`${He} complies without a thought.`);
		} else if (slave.devotion > 20 && slave.trust > 20) {
			r.push(`${He} complies,`);
			if (mood === 2) {
				r.push(`knowing full well what you want.`);
			} else {
				r.push(`giddy with anticipation of your plans for ${him}.`);
			}
		} else if (slave.trust < -20) {
			r.push(`${He} hurriedly complies,`);
			if (mood === 2) {
				r.push(`fearful of the sudden shift in your demeanor.`);
			} else {
				r.push(`aware of the consequences of disobedience.`);
			}
		} else if (slave.devotion < -20) {
			if (mood === 2) {
				r.push(`${He} is shaken by your tone, knowing that disobedience may lead to even worse matters for ${him}; ${he} complies without any further hassle.`);
			} else {
				r.push(`${He} begrudgingly complies, not understanding your intentions, but knowing worse things await at ${his} disobedience.`);
			}
		} else {
			if (mood === 2) {
				r.push(`${He} is a little afraid of your sudden demanding tone, but steels ${himself} for whatever punishment you wish to mete out to ${him}.`);
			} else {
				r.push(`Though hesitant, ${he} complies without question.`);
			}
		}
	} else {
		if (slave.fetish === Fetish.MINDBROKEN) {
			r.push(`${He} pays no attention as ${he} is carefully positioned for your use.`);
		} else if (slave.devotion > 20 && slave.trust > 20) {
			r.push(`Though ${he} has no agency over this,`);
			if (mood === 2) {
				r.push(`${he} is somewhat confused by your sudden aggressive posture.`);
			} else {
				r.push(`${he} is visibly giddy with anticipation for your next course of action as ${he} is helped into position.`);
			}
		} else if (slave.trust < -20) {
			if (mood === 2) {
				r.push(`${He} knows better than to struggle as ${he} is helped into position, though ${he} dreads what ${his} pregnant ${getWrittenTitle(slave)} has planned.`);
			} else {
				r.push(`${He} knows better than to struggle as ${he} is helped into position, well aware of the consequences it would bring.`);
			}
		} else if (slave.devotion < -20) {
			r.push(`Though ${he} is rebellious,`);
			if (mood === 2) {
				r.push(`seeing such a gravid person take such a predatory stance shakes ${him} and ${he} becomes more compliant.`);
			} else {
				r.push(`${his} inability to move and distaste for falling to the ground kept ${him} from giving ${his} help much trouble.`);
			}
		} else {
			if (mood === 2) {
				r.push(`Though ${he} is frightened by your sudden aggressiveness, ${he} complies with ${his} helper as ${he} is positioned.`);
			} else {
				r.push(`Though hesitant, ${he} complies with ${his} helper as ${he} is positioned.`);
			}
		}
	}

	if (slave.boobs >= 20000) {
		r.push(`You`);
		if (mood === 1) {
			r.push(`caress`);
		} else {
			r.push(`take note of`);
		}
		r.push(`${his} massive udders,`);
		if (mood === 2) {
			if (slave.nipples === "puffy") {
				r.push(`grabbing a puffy nipple, lifting it up and letting it drop back down with a loud plop and a spurt of milk. They are dripping with excess milk and the flurry of kicks in your middle tells you what you need to do.`);
			} else if (slave.nipples === "inverted") {
				r.push(`prying an inverted nipple out of one of them before letting it slip back down with a loud plop and a gush of milk. A strong kick tells you that you are to take some of that cream for yourself.`);
			} else if (slave.nipples === "flat") {
				r.push(`pinching a nubby nipple, eliciting a dribble of milk that causes you to lose your grip. A strong kick insists you wrap your lips around it and try your hardest to suck out some cream.`);
			} else if (slave.nipples === "fuckable") {
				r.push(`using two fingers to pry a nippleslit open before letting it slip shut with a moist plop. A strong kick tells you that something good is hiding in there that you'll need to work out.`);
			} else {
				r.push(`grabbing one by the nipple only to let it drop back down with a loud plop and a spurt of milk. A strong kick tells you that you are to take some of that cream for yourself.`);
			}
		} else {
			r.push(`dripping with excess milk and resting on ${his} legs, the very spot you plan to make your own, but it will take finesse.`);
		}
		r.push(`You lift up ${his} hefty breasts and`);
		if (V.PC.belly >= 10000) {
			r.push(`gently lower yourself`);
		} else {
			r.push(`lie`);
		}
		r.push(`down on ${his} lap,`);
		if (slave.belly >= 30000) {
			if (slave.bellyPreg > 1000) {
				r.push(`getting familiar with ${his} huge life-swollen baby bump and`);
			} else {
				r.push(`getting familiar with ${his} hugely swollen belly and`);
			}
		} else if (slave.belly >= 10000) {
			if (slave.bellyPreg >= 8000) {
				r.push(`beside ${his} baby bump and`);
			} else if (slave.bellyImplant >= 8000) {
				r.push(`beside the swollen orb that is ${his} stomach and`);
			} else {
				r.push(`beside the bloated container of ${slave.inflationType} that is ${his} middle and`);
			}
		} else if (slave.belly >= 1000) {
			if (slave.bellyPreg >= 1000) {
				r.push(`beside the life growing within ${him} and`);
			} else if (slave.bellyImplant >= 1000) {
				r.push(`beside the curve of ${his} stomach and`);
			} else {
				r.push(`beside the groaning container of ${slave.inflationType} within ${him} and`);
			}
		} else if (slave.weight > 95) {
			r.push(`getting familiar with ${his} fat belly and`);
		}
		r.push(`letting go so that ${his} tits cover your face and`);
		if (V.PC.belly >= 5000) {
			r.push(`belly`);
		} else {
			r.push(`torso`);
		}
		r.push(`in heavenly softness, ${his}`);
		if (slave.nipples !== "fuckable") {
			if (slave.nipples === "puffy") {
				r.push(`exceedingly soft nipple already brushing against your lips, covering your face with excess milk as if begging for you to empty ${him}.`);
			} else if (slave.nipples === "inverted" || slave.nipples === "partially inverted") {
				r.push(`internally curved nipple providing an inviting hole for you to tease out with your tongue.`);
			} else if (slave.nipples === "flat") {
				r.push(`coin-sized nipple brushing your lips, daring you to get a grip on it.`);
			} else {
				r.push(`overly exertive nipple already prodding at your mouth, as if begging to be suckled on.`);
			}
			r.push(`Though muffled, you`);
			if (mood === 2) {
				r.push(`order ${him} to deal with`);
				if (V.PC.dick !== 0) {
					r.push(`the erect monster pressing uncomfortably against the underside of your belly.`);
				} else {
					r.push(`the needy hole leaking all over your floor.`);
				}
				if (slave.fetish === Fetish.MINDBROKEN) {
					r.push(`${He} obeys without question and mechanically begins to`);
					if (V.PC.dick !== 0) {
						r.push(`jerk you off.`);
					} else {
						r.push(`finger you.`);
					}
				} else if (slave.devotion >= -20) {
					r.push(`This proves unnecessary as, before you finish speaking, ${he}`);
					if (V.PC.dick !== 0) {
						r.push(`wraps ${his} fingers around your needy cock`);
					} else {
						if (canSmell(slave)) {
							r.push(`smells`);
						} else {
							r.push(`recognizes`);
						}
						r.push(`your arousal`);
					}
					r.push(`and begins to apply ${his} ministrations to take care of you${slave.nipples.endsWith("inverted") ? `, as the sensations to ${his} nipple add so much more to the already surrounding breastflesh` : ``}. You buck to ${his} touch, forcing ${him} to try and steady ${his} breasts as your baby bump jumps with life.`);
				} else if (slave.trust < -20) {
					r.push(`${He} begins to question your order, but quickly realizes that was a mistake as you grab ${his} hand and force it to your crotch. Hastily, ${he} begins to stroke`);
					if (V.PC.dick !== 0) {
						r.push(`your dick`);
					} else {
						r.push(`your pussy`);
					}
					r.push(`until reassured that ${he} is pleasing you from your lusty moans and thrusting. ${He} does ${his} best, hoping to not anger you further as ${he} presses`);
					if (V.PC.dick !== 0) {
						r.push(`the head`);
					} else {
						r.push(`your lower lips`);
					}
					r.push(`against ${his} nearby nipple.`);
				} else {
					r.push(`Though ${he} furrows ${his} brow, ${he} decides it's better to get it over with quickly and in ${his} hand before ${he} is pinned in a much more compromising position by your pregnancy. ${slave.slaveName} begins to`);
					if (V.PC.dick !== 0) {
						r.push(`tug at your penis, pressing the head against ${his} nearby nipple, hoping this doesn't`);
					} else {
						r.push(`finger your quivering pussy, rubbing ${his} thumb against your clit, hoping this won't`);
					}
					r.push(`take too long.`);
				}
			} else {
				r.push(`instruct ${him} to use ${his} hand to appease the evident arousal between your legs.`);
				if (slave.fetish === Fetish.MINDBROKEN) {
					r.push(`${He} obeys without question and mechanically begins to`);
					if (V.PC.dick !== 0) {
						r.push(`jerk you off.`);
					} else {
						r.push(`finger you.`);
					}
				} else if (slave.devotion >= -20) {
					r.push(`This proves unnecessary as, before you finish speaking, ${he}`);
					if (V.PC.dick !== 0) {
						r.push(`notices your hardening penis`);
					} else {
						if (canSmell(slave)) {
							r.push(`smells`);
						} else {
							r.push(`recognizes`);
						}
						r.push(`your arousal`);
					}
					r.push(`and begins to apply ${his} ministrations to take care of you${slave.nipples.endsWith("inverted") ? `, as the sensations to ${his} nipple add so much more to the already surrounding breastflesh` : ``}. You respond further with a positive "Mmmhmm~", which calms ${his} worries as ${he} works on pleasuring you as much as ${he} can with one hand.`);
				} else if (slave.trust < -20) {
					r.push(`${He} begins to question your order, but quickly realizes`);
					if (V.PC.dick !== 0) {
						r.push(`your penis is at full mast and prodding ${his} breastflesh.`);
					} else {
						r.push(`you're soaking wet and quivering with desire.`);
					}
					r.push(`Cautiously, ${he} begins to stroke`);
					if (V.PC.dick !== 0) {
						r.push(`it`);
					} else {
						r.push(`your pussy`);
					}
					r.push(`until reassured that ${he} is pleasing you with a positive "Mmmhmm~". ${He} does ${his} best, hoping to not anger you in any way or make a mistake as ${he} presses`);
					if (V.PC.dick !== 0) {
						r.push(`the head`);
					} else {
						r.push(`your lower lips`);
					}
					r.push(`against ${his} nearby nipple.`);
				} else {
					r.push(`Though ${he} furrows ${his} brow, ${he} decides it's better to get it over with quickly and in ${his} hand rather than any other hole or in worse circumstances. ${slave.slaveName} begins to`);
					if (V.PC.dick !== 0) {
						r.push(`tug at your hardened penis, pressing the head against ${his} nearby nipple, hoping this doesn't`);
					} else {
						r.push(`finger your quivering pussy, rubbing ${his} thumb against your clit, hoping this won't`);
					}
					r.push(`take too long.`);
				}
			}
		} else {
			r.push(`exotic nipple brushing across your lips, as if wanting to have your tongue inside it, while ${his} other nipple`);
			if (mood === 2) {
				r.push(`brushes across your`);
				if (V.PC.dick !== 0) {
					r.push(`penis, just begging to be penetrated. You struggle to shift yourself in such a way to penetrate ${his} nipple, before finally managing to slip the tip into ${him}`);
				} else {
					r.push(`clit, as if begging to join in. You struggle to shift yourself to an angle where you could attach your sex to`);
				}
				r.push(`${his} nippleslit.`);
				if (slave.fetish === Fetish.MINDBROKEN) {
					if (V.PC.dick !== 0) {
						r.push(`${He} gasps in surprise as you force yourself all the way into ${him} and your gravid swell parts ${his} breasts.`);
					} else {
						r.push(`${He} fails to understand your efforts, leaving you humping against ${his} breast.`);
					}
				} else if (slave.devotion >= -20) {
					r.push(`${He} gasps in surprise before understanding what you desire and begins to`);
					if (V.PC.dick !== 0) {
						r.push(`ease ${his} breast into consuming the rest of your length. ${He} fails to do so fast enough and you force yourself upwards, your gravid swell parting ${his} breasts as your cock delves into the depths of ${his} tits.`);
					} else {
						r.push(`jiggle ${his} breast in an attempt to add to your efforts.`);
					}
				} else if (slave.trust < -20) {
					r.push(`${He} begins to question your intent, but quickly realizes your`);
					if (V.PC.dick !== 0) {
						r.push(`penis is entering ${his} breastpussy by force and the ${he}'d better get used to it.`);
					} else {
						r.push(`pussy is rubbing against ${his} nippleslit. ${He} begins to jiggle ${his} breast in an attempt to add to your efforts.`);
					}
				} else {
					r.push(`Though ${he} furrows ${his} brow, ${he} decides it's better to get it over with quickly rather than in worse circumstances. ${slave.slaveName}`);
					if (V.PC.dick !== 0) {
						r.push(`shudders as the rest of your shaft forces its way into ${his} breastpussy,`);
					} else {
						r.push(`begins to jiggle ${his} breast in an attempt to get you off,`);
					}
					r.push(`hoping this doesn't take too long.`);
				}
				r.push(`You breathe in ${his} scent as you let out a moan, your ${(V.PC.pregType > 1) ? `children` : `child`} satisfied with the sensations of ${his} milky depths surrounding your crotch.`);
			} else {
				r.push(`brushes across your hardening`);
				if (V.PC.dick !== 0) {
					r.push(`penis, as if begging to be penetrated. You shift to angle yourself just right before thrusting your hips upwards, inserting the tip of your shaft into`);
				} else {
					r.push(`clit, as if begging to join in. You shift to angle yourself just right before thrusting your hips upwards in an attempt to attach your sex to`);
				}
				r.push(`${his} nippleslit.`);
				if (slave.fetish === Fetish.MINDBROKEN) {
					if (V.PC.dick !== 0) {
						r.push(`${He} gasps in surprise as you push all the way into ${him}.`);
					} else {
						r.push(`${He} fails to understand your efforts, leaving you rubbing yourself against ${his} breast.`);
					}
				} else if (slave.devotion >= -20) {
					r.push(`${He} gasps in surprise before understanding what you desire and begins to`);
					if (V.PC.dick !== 0) {
						r.push(`ease ${his} breast into consuming the rest of your length.`);
					} else {
						r.push(`jiggle ${his} breast in an attempt to add to your efforts.`);
					}
				} else if (slave.trust < -20) {
					r.push(`${He} begins to question your intent, but quickly realizes your`);
					if (V.PC.dick !== 0) {
						r.push(`penis is entering ${his} breastpussy one way or another and begins to ease it all the way in before you decide to force the matter.`);
					} else {
						r.push(`pussy is rubbing against ${his} nippleslit. ${He} begins to jiggle ${his} breast in an attempt to add to your efforts.`);
					}
				} else {
					r.push(`Though ${he} furrows ${his} brow, ${he} decides it's better to get it over with quickly rather than in worse circumstances. ${slave.slaveName} begins to`);
					if (V.PC.dick !== 0) {
						r.push(`ease the rest of your shaft into ${his} breastpussy,`);
					} else {
						r.push(`jiggle ${his} breast in an attempt to get you off,`);
					}
					r.push(`hoping this doesn't take too long.`);
				}
				r.push(`You breathe in ${his} scent as you let out a sigh, content with the sensations of ${his} milky depths surrounding your crotch.`);
			}
		}
	} else if (slave.boobs >= 2000) {
		r.push(`You`);
		if (mood === 1) {
			r.push(`caress`);
		} else if (mood === 2) {
			r.push(`hungrily eye`);
		} else {
			r.push(`eye`);
		}
		r.push(`${his} ${slave.nipples} nipples,`);
		if (slave.nipples === "puffy") {
			if (mood === 2) {
				r.push(`gripping the nipple with your hand and squeezing hard enough to force out a spurt of milk. A flurry of kicks tells you that you are to take one of those swollen, dripping beauties and have a drink.`);
			} else {
				r.push(`swollen and dripping with excess milk and calling on your instincts to suckle on them.`);
			}
		} else if (slave.nipples === "inverted") {
			if (mood === 2) {
				r.push(`poking it with your finger as deep as you can. The inviting hole keeps all the delicious milk locked up, your instincts insisting that you pry out the flavor for yourself. The kicking in your middle settles it, you're taking a drink whether or not ${his} nipples agree.`);
			} else {
				r.push(`the inviting hole keeping all the delicious milk locked up, your instincts insisting that you pry out the flavor for yourself.`);
			}
		} else if (slave.nipples === "flat") {
			if (mood === 2) {
				r.push(`pinching the nipple with your fingertips and squeezing hard enough to force out some drops of milk. A flurry of kicks demands you wrap you lips around it and take what little milk hides within.`);
			} else {
				r.push(`swollen and dripping with excess milk and calling on your instincts to suck on them.`);
			}
		} else if (slave.nipples === "fuckable") {
			if (mood === 2) {
				r.push(`using two fingers to penetrate and spread apart to appreciate the insides. They are dripping with excess milk and resemble a tiny pussy; a series of kicks insist that you have a taste${(V.PC.dick !== 0) ? ` and a little stress relief` : ``}.`);
			} else {
				r.push(`dripping with excess milk and resembling a tiny pussy, your instincts doubly insisting that you have a taste.`);
			}
		} else {
			if (mood === 2) {
				r.push(`pinching one between your thumb and forefinger with enough force to hurt. Excess milk drips from it as a rather forceful kick from your womb insists that you take your fill; you wouldn't mind a taste yourself.`);
			} else {
				r.push(`dripping with excess milk and calling on your instincts to suckle on them.`);
			}
		}
		r.push(`Though you plan to sate those innate desires, you also plan to do so with finesse. You`);
		if (V.PC.belly >= 10000) {
			r.push(`gently lower yourself`);
		} else {
			r.push(`lay`);
		}
		r.push(`down on ${his} lap and`);
		if (slave.nipples === "fuckable") {
			r.push(`ease your head onto`);
		} else {
			r.push(`rest your head on`);
		}
		r.push(`${his} thigh,`);
		if (slave.belly >= 30000) {
			if (slave.bellyPreg > 1000) {
				r.push(`the huge life-swollen orb that is ${his} middle brushing you and`);
			} else {
				r.push(`the hugely swollen orb that is ${his} middle brushing you and`);
			}
		} else if (slave.belly >= 10000) {
			if (slave.bellyPreg >= 8000) {
				r.push(`beside ${his} baby bump and`);
			} else if (slave.bellyImplant >= 8000) {
				r.push(`beside the swollen orb that is ${his} stomach and`);
			} else {
				r.push(`beside the bloated container of ${slave.inflationType} that is ${his} middle and`);
			}
		} else if (slave.belly >= 1000) {
			if (slave.bellyPreg >= 1000) {
				r.push(`beside the life growing within ${him} and`);
			} else if (slave.bellyImplant >= 1000) {
				r.push(`beside the curve of ${his} stomach and`);
			} else {
				r.push(`beside the groaning container of ${slave.inflationType} within ${him} and`);
			}
		} else if (slave.weight > 95) {
			r.push(`${his} fat belly softly cushioning your cheek and`);
		}
		r.push(`${his} over-productive bosoms dripping sweet cream on your face${(slave.nipples === "inverted") ? `, the milk waiting to be sucked from the tight inverted holes above you` : ``}${(V.PC.belly >= 10000) ? ` and your belly brushing the undersides of ${his} tits` : ``}. You`);
		if (mood === 2) {
			r.push(`order ${him} to deal with`);
			if (V.PC.dick !== 0) {
				r.push(`the erect monster pressing uncomfortably against the underside of your belly.`);
			} else {
				r.push(`the needy hole leaking all over your floor.`);
			}
		} else {
			r.push(`instruct ${him} to use ${his} hand to appease the evident arousal between your legs.`);
		}
		if (slave.fetish === Fetish.MINDBROKEN) {
			r.push(`${He} obeys without question and mechanically begins to`);
			if (V.PC.dick !== 0) {
				r.push(`jerk you off.`);
			} else {
				r.push(`finger you.`);
			}
		} else if (slave.devotion >= -20 || slave.trust < -20) {
			if (V.PC.dick !== 0) {
				r.push(`Though ${he} believes it would be better for you to use another of ${his} slew of pleasurable orifices, ${he} does not question your decision.`);
			} else {
				r.push(`${He} happily sets to work on your clit.`);
			}
		} else {
			r.push(`Though ${he} furrows ${his} brow, ${he} decides it's better to get it over with quickly and in ${his} hand rather than any other hole or in worse circumstances. ${slave.slaveName} begins to`);
			if (V.PC.dick !== 0) {
				r.push(`tug at your hardened penis,`);
			} else {
				r.push(`stroke your quivering pussy as best as ${he} can,`);
			}
			r.push(`hoping this doesn't take too long.`);
		}
	}

	if (slave.fetish === Fetish.MINDBROKEN) {
		r.push(`You`);
		if (mood === 1) {
			r.push(`struggle to lean forward and wrap your lips gently around a nipple,`);
		} else {
			r.push(`lurch forward and engulf a nipple with your lips,`);
		}
		r.push(`causing ${him} to shudder with arousal as the suction causes milk to gush into your mouth to sate your needs.`);
	} else if (slave.devotion <= 20 || slave.trust < -20) {
		r.push(`${He} braces ${himself} as you`);
		if (mood === 1) {
			r.push(`struggle to lean forward and wrap your lips gently around a nipple,`);
		} else {
			r.push(`lurch forward and engulf a nipple with your lips,`);
		}
		r.push(`cringing as the suction causes milk to gush into your mouth to sate your needs.`);
	} else {
		r.push(`You`);
		if (mood === 1) {
			r.push(`struggle to lean forward and wrap your lips gently around a nipple,`);
		} else {
			r.push(`lurch forward and engulf a nipple with your lips,`);
		}
		r.push(`causing ${him} to coo with delight`);
		if (mood === 1) {
			r.push(`and support your head`);
		}
		r.push(`as the suction causes milk to gush into your mouth to sate your needs.`);
	}
	if (mood === 2) {
		r.push(`Your`);
		if (V.PC.pregType > 1) {
			r.push(`babies calm`);
		} else {
			r.push(`baby calms`);
		}
		r.push(`down as ${his} cream reaches your system.`);
	} else if (mood === 1) {
		r.push(`Your`);
		if (V.PC.pregType > 1) {
			r.push(`babies kick`);
		} else {
			r.push(`baby kicks`);
		}
		r.push(`happily as you hug yourself closer to ${him}.`);
	} else {
		r.push(`You find yourself moaning at the delight of ${his} cream flowing into you.`);
		if (V.PC.preg > 15) {
			r.push(`A fluttering sensation in your womb tells you someone else also appreciates the drink.`);
		}
	}

	if (slave.boobs >= 20000) {
		r.push(`Such sensations hasten your breath, making you take in more of ${his} womanly scent. You work with your lips and tongue to`);
		if (slave.nipples === "inverted" || slave.nipples === "partially inverted") {
			r.push(`tease out ${his} nipple and suckle with newfound gusto,`);
		} else if (slave.nipples === "flat") {
			r.push(`get a hold of ${his} nipple and suckle with newfound gusto,`);
		} else if (slave.nipples === "fuckable") {
			r.push(`explore the inner chambers of ${his} breasts and ease out more of ${his} cream in a lustful frenzy,`);
		} else {
			r.push(`ease out more of ${his} cream in a lustful frenzy,`);
		}
		r.push(`as though the rest of the world did not exist. It might as well not, given how the entirety of your upper body sees and feels nothing but ${his} mesmerizing mammaries and`);
		if (slave.nipples === "puffy") {
			r.push(`${his} soft nipple in your mouth, while your sex focuses on the soft hand diligently working it. You feverishly suckle on ${his} nipple as you thrash your tongue, your efforts rewarded with more milk.`);
		} else if (slave.nipples === "flat") {
			r.push(`${his} milky nub in your mouth, while your sex focuses on the soft hand diligently working it. You feverishly suck on ${his} nipple as you thrash your tongue, your efforts accidentally forcing you off with a wet pop, but you just latch back on like nothing happened.`);
		} else if (slave.nipples === "inverted" || slave.nipples === "partially inverted") {
			r.push(`${his} erect nipple in your mouth, while your sex focuses on the soft hand diligently working it. You feverishly suckle on ${his} nipple as you thrash your tongue, your efforts rewarded with more milk.`);
		} else if (slave.nipples === "fuckable") {
			r.push(`your sex feeling nothing but the wet`);
			if (V.PC.dick !== 0) {
				r.push(`insides of ${his} breast.`);
			} else {
				r.push(`lips of ${his} breastpussy.`);
			}
			r.push(`You feverishly thrash your tongue around inside of the bumpy enclosure, with each strong movement sending shivers through ${him}, forcing gasps, moans and milk out of ${him}.`);
		} else {
			r.push(`${his} milky nipple in your mouth, while your sex focuses on the soft hand diligently working it. You feverishly suckle on ${his} nipple as you thrash your tongue, your efforts rewarded with more milk.`);
		}
		r.push(`You would worry about drowning if it didn't taste good enough for you to suckle ever harder with each spurt.`);
	} else if (slave.boobs >= 2000) {
		r.push(`Such sensations bring your attention further to ${his} teat; as you`);
		if (slave.nipples === "inverted") {
			r.push(`tease ${his} nipple`);
		} else if (slave.nipples === "fuckable") {
			r.push(`explore the depths of ${his} inner breast`);
		} else {
			r.push(`roll and prod`);
		}
		r.push(`with your tongue, trying to get the most out of ${his} mammaries, you hasten ${his} breath and bring ${him} further pleasure${(slave.nipples === "inverted") ? ` as it slowly hardens and leaves its inverted state` : ``}.`);
		if (slave.nipples === "puffy") {
			r.push(`You note the texture of ${his} nipple: soft, more so even than the rest of ${his} boob. Your constant efforts of sucking and tongueplay are rewarded`);
		} else if (slave.nipples === "flat") {
			r.push(`You take in the texture of ${his} nipple: hard and bumpy, just like the firm globe pulling it flat. Your constant efforts of sucking and tongueplay are rewarded`);
		} else if (slave.nipples === "fuckable") {
			r.push(`You feverishly thrash your tongue around in the bumpy enclosure, each strong movement sending shivers through ${him}, causing ${him} to gasp and moan, as well as rewarding you`);
		} else if (slave.nipples !== "inverted") {
			r.push(`You take in the texture of ${his} nipple: hard and bumpy, a stark contrast to the rest of ${his} boob — an undeniable ocean of softness. Your constant efforts of sucking and tongueplay are rewarded`);
		} else {
			r.push(`Your constant efforts of sucking and tongueplay are rewarded`);
		}
		r.push(`with more milk straight from the tap.`);
	}

	r.push(`Milk continues to spill into your mouth as you suckle away at the`);
	if (slave.nipples === "puffy") {
		r.push(`softness,`);
	} else if (slave.nipples === "flat") {
		r.push(`swollen bulge,`);
	} else if (slave.nipples === "inverted" || slave.nipples === "partially inverted") {
		r.push(`erect hardness,`);
	} else if (slave.nipples === "fuckable") {
		r.push(`milky slit,`);
	} else {
		r.push(`hardness,`);
	}
	r.push(`relishing the delicious treat one could have only received from a mother's bosom; at least, so was the case before modern medicine decided to say something about it. Though it may as well be artificial, the act of breastfeeding continues to appease a fundamental emotional need that is arguably unique to the action.`);
	if (mood === 2) {
		r.push(`It gives you undeniable emotional respite despite the mood caused by your pregnancy, even if it will only last as long as you stay with ${him}.`);
	} else if (mood === 1) {
		r.push(`You can only hope ${he}'ll return the favor when you yourself become too heavy with milk.`);
	} else if (V.PC.preg > 30) {
		r.push(`You know that you'll soon have your own ${onlyPlural(V.PC.pregType, 'child', 'children')} to share this feeling with and deep down, you hope to enjoy it just as much as ${he} does.`);
	}

	if (slave.boobs >= 20000) {
		if (slave.nipples === "fuckable") {
			r.push(`${He}`);
			if (V.PC.dick !== 0) {
				r.push(`holds ${his} breast and jiggles it in an attempt to compliment your thrusts, adding even more sensation alongside your own efforts. With the milk adding lubrication to the sensual hole of ${his} nipple and the enclosed nature of ${his} sopping wet breastpussy itself adding suction, it's like you were enveloped inside of a highly advanced cock milking machine, each bump sending thrums of pleasure as your dick brushed against them.`);
			} else {
				r.push(`held ${his} breast and jiggled it in an attempt to compliment your thrusts, adding more sensation to your own efforts. The milk adding wetness to the sensual hole of ${his} nipple and the nature of ${his} sopping wet breastpussy itself adding suction felt like you were being enveloped by a world class pussy pump, each movement adding more suction and wetness than the last.`);
			}
		} else {
			r.push(`While you were busy suckling, ${he} was anything but idle, using ${his} hand as best as ${he} could to bring you the most pleasure ${he} is capable of. Though no lube was applied, ${his} ministrations were more than enough to take you to the knife's edge of orgasm more than once. In your`);
			if (V.PC.dick !== 0) {
				r.push(`already dazed state,`);
			} else {
				r.push(`lust addled haze,`);
			}
			r.push(`${his} fingers seem to send lightning along your nerves${(V.PC.dick !== 0) ? `; the tips brushing across your shaft to tickle its head make you thrust instinctively. ${His} tugs, gentle yet firm` : `. ${His} fingertips brush across your labia to tickle your clit, making you buck instinctively. ${His} strokes, gentle yet decisive`}, have an almost motherly feel to them. Such ministrations cannot help but prepare you to`);
			if (V.PC.dick !== 0) {
				r.push(`shoot your load`);
			} else {
				r.push(`come`);
			}
			r.push(`as hard as you can.`);
		}
	} else if (slave.boobs >= 2000) {
		r.push(`While you were busy suckling, ${he} was anything but idle, using ${his} hand as best as ${he} could to bring you the most pleasure ${he} is capable of. Though no lube was applied, ${his} ministrations were more than enough to take you to the knife's edge of orgasm more than once. ${His} hand continues to apply itself to your`);
		if (V.PC.dick !== 0) {
			r.push(`shaft, its fingertips brushing across your shaft to tickle its head and make you thrust instinctively. ${His} tugs,`);
		} else {
			r.push(`sex, ${his} fingertips seeming to send lightning along your nerves. As ${he} tickles your clit, you buck instinctively. ${His} strokes,`);
		}
		r.push(`gentle yet firm, have an almost motherly feel to them. Such ministrations cannot help but prepare you to`);
		if (V.PC.dick !== 0) {
			r.push(`shoot your load`);
		} else {
			r.push(`come`);
		}
		r.push(`as hard as you can.`);
	}

	r.push(`The two of you put so much into seeking pleasure in the act that you both cum at once, ${his} great gasp coinciding with your`);
	if (V.PC.dick !== 0) {
		if (V.PC.balls >= 10) {
			r.push(`flood`);
		} else {
			r.push(`jet`);
		}
		r.push(`of jizz flying`);
	} else {
		r.push(`own jet of pussy juice squirting`);
	}
	if (slave.boobs >= 20000 && slave.nipples === "fuckable") {
		r.push(`into`);
	} else {
		r.push(`onto`);
	}
	r.push(`${his} other breast${(V.PC.dick !== 0 && V.PC.balls >= 10) ? ` and backflowing hard from your sheer volume` : ``}. You release ${his} nipple with a loud pop and lick your lips in delight.`);
	if (slave.boobs >= 20000 && slave.nipples === "fuckable") {
		r.push(`Your`);
		if (V.PC.dick !== 0) {
			r.push(`dick slips out`);
		} else {
			r.push(`pussy separates`);
		}
		r.push(`from ${his} other breast with a delicate pop, followed by lewd dripping noises and the sight of`);
		if (V.PC.dick !== 0) {
			r.push(`semen`);
		} else {
			r.push(`girlcum`);
		}
		r.push(`and milk oozing from ${his}`);
		if (V.PC.dick !== 0) {
			r.push(`newly expanded hole.`);
		} else {
			r.push(`nippleslit.`);
		}
	}
	if (mood === 2) {
		r.push(`For a moment, ${he} thought you were finished, but with your hormone fueled libido, ${he}'ll be feeling a lot more than sore nipples but the time you tire of ${his} touch.`);
	} else if (mood === 1) {
		r.push(`You cuddle up against ${him}, holding close to ${him} as you snooze off your milky meal.`);
		if (slave.fetish === Fetish.MINDBROKEN) {
			r.push(`${He} struggles in discomfort at your pregnant weight pinning ${him} down until ${he} manages to rouse your ${onlyPlural(V.PC.pregType, 'child', 'children')} and get you to move.`);
		} else if (slave.devotion > 20 && slave.trust > 20) {
			r.push(`${He} holds you close, gently caressing your head and pregnancy as you rest it off.`);
		} else if (slave.trust < -20) {
			r.push(`${He} freezes in fear, unsure of what to do other than let you rest.`);
		} else if (slave.devotion < -20) {
			r.push(`${He} groans at the weight leaning against ${him} and begrudgingly rests ${his} arm atop your pregnant bulge.`);
			if (V.PC.pregSource === slave.ID) {
				r.push(`${He} takes a moment to appreciate the size of your belly, knowing ${he} was the one that seeded you. ${He} admires ${his} work with pride.`);
			} else {
				r.push(`${He} knows ${he} has little choice but to put up with it.`);
			}
		} else {
			r.push(`Though hesitant, ${he} carefully rubs the taut dome of your belly as you rest.`);
		}
	}

	if (slave.lactation > 0) {
		slave.lactationDuration = 2;
		slave.boobs -= slave.boobsMilk;
		slave.boobsMilk = 0;
	}

	r.push(`Once you`);
	if (mood === 1) {
		r.push(`wake and slowly rise to your feet, you help ${him} clean up`);
	} else {
		r.push(`are done, you allow ${him} to clean up`);
	}
	switch (slave.assignment) {
		case "work in the brothel":
			r.push(`before returning ${his} lovely tits to the brothel.`);
			break;
		case "serve in the club":
			r.push(`before resuming ${his} lovely bouncing in the club.`);
			break;
		case "work in the dairy":
			r.push(`before returning to the dairy.`);
			break;
		case "work as a farmhand":
			r.push(`to avoid tainting the food in ${V.farmyardName}.`);
			break;
		case "work as a servant":
			r.push(`mostly to keep everything ${he} has to clean from getting any dirtier.`);
			break;
		case "work as a nanny":
			r.push(`before heading back to take care of the children.`);
			break;
		case "whore":
			r.push(`before returning to offering ${his} lovely tits for sale.`);
			break;
		case "serve the public":
			r.push(`before returning to offering ${his} lovely tits for free.`);
			break;
		case "rest":
			r.push(`before crawling back into bed.`);
			break;
		case "get milked":
			r.push(`before resting until ${his} tits swell with milk again.`);
			break;
		case "be a servant":
			r.push(`since ${his} chores didn't perform themselves while you enjoyed ${him}.`);
			break;
		case "please you":
			r.push(`before returning to await your next use of ${his} body, as though nothing had happened.`);
			break;
		case "be a subordinate slave":
			r.push(`though it's only a matter of time before another slave decides to play with ${his} tits.`);
			break;
		case "be your Head Girl":
			r.push(`worried that ${his} charges got up to trouble while ${he} enjoyed ${his} ${getWrittenTitle(slave)}'s use.`);
			break;
		case "guard you":
			r.push(`so ${he} can be fresh and ready for more sexual use even as ${he} guards your person.`);
			break;
		case "be the Schoolteacher":
			r.push(`before ${he} returns to teaching ${his} classes.`);
			break;
		default:
			r.push(`before ${he} returns to ${slave.assignment}.`);
	}
	App.Events.addParagraph(node, r);
	return node;
};


code:
/**
 *
 * @param {App.Entity.SlaveState} slave
 * @returns {DocumentFragment}
 */
App.Interact.fAbuse = function(slave) {
	const node = new DocumentFragment();
	let r = [];

	const {
		He, His,
		he, his, him, himself
	} = getPronouns(slave);

	if (slave.assignment === Job.BODYGUARD) {
		if (slave.fetish === "masochist" && slave.fetishKnown === 1 && slave.fetishStrength > 95) {
			r.push(`Knowing how much your bodyguard likes being hurt, you decide to reward ${him} in ${his} own particular way.`);
		} else if (slave.muscles < -5 && slave.skill.combat <= 30) {
			r.push(`Looking at your bodyguard, you think ${he} doesn't seem that dangerous, as ${he} can barely hold a weapon up. You order ${him} to spar with you, and you quickly overpower ${him} without even breaking a sweat. Afterwards, you take the pretext of punishing ${him} to satisfy your urges.`);
		} else if (slave.muscles >= -5 && slave.muscles <= 5 && slave.skill.combat > 30) {
			r.push(`You glance at your bodyguard. ${He} looks like ${he} can handle ${himself}, and you know ${he} does, but ${his} lack of musculature makes ${him} look somewhat frail. You inform ${him} that ${he} isn't muscular enough, and that you'll punish ${him} yourself for neglecting ${his} physique.`);
		} else if (slave.muscles > 50 && slave.skill.combat <= 30) {
			r.push(`Your bodyguard may look strong and powerful, you know ${he} can't really handle ${his} weapon. You order ${him} to spar with you, and you use ${his} own muscles against ${him}, winning easily. Afterwards, you take the pretext of punishing ${him} to satisfy your urges.`);
		} else if (slave.muscles > 5 && slave.skill.combat > 30) {
			r.push(`Your bodyguard stands at your side. ${He} is definitely a force to be reckoned with. You know you'd have a hard time besting ${him}, and do not wish to get hurt, so you'll just inform ${him} ${he}'ll be undertaking some particular training.`);
		} else if (slave.muscles > 5 && slave.skill.combat <= 30) {
			r.push(`Your bodyguard may look fit, you know ${he} can't really handle ${his} weapon. You order ${him} to spar with you; while ${he} may be quick, ${he} mostly just flails ${his} weapon around allowing you an easy win. Afterwards, you take the pretext of punishing ${him} to satisfy your urges.`);
		}
	}

	let assPain = 0;

	if (!hasAnyLegs(slave)) {
		r.push(`You set ${his} helpless form down for abuse. Brutalizing ${him} is almost childishly easy; ${his}`);
		if (hasAnyArms(slave)) {
			r.push(`leg`);
		} else {
			r.push(`limb`);
		}
		r.push(`less torso leaves ${him} at your mercy.`);
	} else {
		r.push(`You call ${him} over so you can abuse the`);
		if (V.seeRace === 1) {
			r.push(slave.race);
		}
		r.push(`bitch. You get things started with an open-handed slap across the face${(!canSee(slave)) ? `; ${he} never saw it coming` : ``}. As ${he} reels in shock and pain, you follow up with`);
		if (slave.bellyPreg >= 600000) {
			r.push(`a vicious slap across ${his} straining pregnancy,`);
		} else if (slave.bellyFluid > 2000) {
			r.push(`a vicious punch into ${his} bloated belly,`);
		} else if (slave.dick > 0) {
			r.push(`a vicious slap to ${his} cock,`);
		} else if (slave.clit > 0) {
			r.push(`a vicious slap to ${his} exposed clit,`);
		} else if (slave.nipples === "fuckable") {
			r.push(`a vicious jab deep into ${his} nipplecunt,`);
		} else if (slave.nipples === "huge") {
			r.push(`a vicious jerk on ${his} big nipples,`);
		} else if (slave.nipples === "inverted") {
			r.push(`a vicious pinch to each side of ${his} sensitive, fully inverted nipples,`);
		} else if (slave.bellyPreg >= 100000) {
			r.push(`a vicious slap across ${his} overfull pregnant belly,`);
		} else if (slave.preg > slave.pregData.normalBirth/4) {
			r.push(`a vicious slap across ${his} pregnant belly,`);
		} else if (slave.heels > 0) {
			r.push(`a vicious thrust to ${his} altered tendons,`);
		} else if (slave.boobs >= 800) {
			r.push(`a vicious slap across ${his} massive breasts,`);
		} else if (slave.bellyImplant >= 1500) {
			r.push(`a vicious slap across ${his} implant rounded belly,`);
		} else if (!(slave.chastityVagina)) {
			r.push(`a vicious slap on the mons,`);
		} else {
			r.push(`a vicious jerk on ${his} nipples,`);
		}

		if (slave.bellyFluid >= 10000) {
			if (slave.inflationMethod === 2) {
				r.push(`which causes ${him} to discharge ${his} contained ${slave.inflationType} all over ${himself} before collapsing into ${his} puddle on the floor in agony.`);
				deflate(slave);
			} else {
				r.push(`which causes ${him} to vomit up ${his} contained ${slave.inflationType} all over ${himself} before collapsing into ${his} puddle on the floor in agony.`);
				deflate(slave);
			}
		} else if (slave.bellyFluid >= 5000) {
			if (random(1, 100) > slave.devotion) {
				r.push(`which nearly forces ${him} to lose ${his} contained ${slave.inflationType}, but ${he} controls ${himself} out of devotion to you as ${he} drops to the floor in agony.`);
			} else {
				if (slave.inflationMethod === 2) {
					r.push(`which causes ${him} to discharge ${his} contained ${slave.inflationType} all over ${himself} before collapsing into ${his} puddle on the floor in agony.`);
					deflate(slave);
				} else {
					r.push(`which causes ${him} to vomit up ${his} contained ${slave.inflationType} all over ${himself} before collapsing into ${his} puddle on the floor in agony.`);
					deflate(slave);
				}
			}
		} else {
			r.push(`which causes ${him} to collapse to the floor in agony.`);
		}
		if (!hasAnyArms(slave)) {
			if (slave.clothes !== "no clothing") {
				r.push(`You don't have the patience for ${him} to squirm ${his} way out of ${his} clothing, so you roughly extract ${him} from it, making sure that to treat ${his} clothes better than you do ${him}.`);
			}
		} else {
			if (slave.clothes !== "no clothing" || slave.bellyAccessory !== "none") {
				r.push(`You tell ${him} ${he} has ten seconds to get naked.`);
			}
			switch (slave.bellyAccessory) {
				case "a support band":
					r.push(`${His} fingers fumble desperately trying to grip the hook and loop of ${his} support band.`);
					break;
				case "a corset":
					r.push(`${His} fingers fumble desperately with the straps of ${his} corset.`);
					break;
				case "an extreme corset":
					r.push(`${His} fingers fumble desperately with the bindings of ${his} corset, and ${he} hyperventilates within its embrace as ${he} works.`);
					break;
			}
			switch (slave.clothes) {
				case "uncomfortable straps":
					r.push(`In ${his} haste to get out of ${his} straps ${he} trips and falls flat.`);
					break;
				case "clubslut netting":
					r.push(`In ${his} haste to get out of ${his} slutty netting ${he} trips and falls flat.`);
					break;
				case "shibari ropes":
					r.push(`In ${his} haste to get out of ${his} shibari ropes ${he} only manages to get tangled and fall over.`);
					break;
				case "a latex catsuit":
				case "restrictive latex":
					r.push(`In ${his} haste to get out of ${his} clinging latex ${he} trips and falls flat in a tangle of latex and trembling flesh.`);
					break;
				case "a schutzstaffel uniform":
					r.push(`${He}'s desperately torn between hurry to avoid punishment and fear ${he}'ll damage ${his} trousers.`);
					break;
				case "a slutty schutzstaffel uniform":
					r.push(`${He}'s desperately torn between hurry to avoid punishment and fear ${he}'ll tear ${his} miniskirt.`);
					break;
				case "a military uniform":
				case "a red army uniform":
				case "a confederate army uniform":
					r.push(`${He}'s desperately torn between hurry to avoid punishment and fear ${he}'ll damage ${his} shirt.`);
					break;
				case "a mounty outfit":
					r.push(`${He}'s desperately torn between hurry to avoid punishment and fear ${he}'ll damage ${his} slacks.`);
					break;
				case "a nice nurse outfit":
					r.push(`${He} quickly tears off ${his} loose scrubs.`);
					break;
				case "a biyelgee costume":
					r.push(`${He} quickly tears off ${his} loose dress.`);
					break;
				case "a mini dress":
					r.push(`${He} struggles to take off ${his} tight mini dress.`);
					break;
				case "attractive lingerie":
					r.push(`${He} almost tears ${his} delicate lingerie in ${his} haste to avoid punishment.`);
					break;
				case "a succubus outfit":
					if (["a corset", "an extreme corset"].includes(slave.bellyAccessory)) {
						r.push(`${He} struggles with ${his} leather corset.`);
					} else {
						r.push(`Panic sets in as ${he} hastily sheds what's left of ${his} outfit.`);
					}
					break;
				case "spats and a tank top":
					r.push(`${He} hastily slips ${his} top off and struggles to get out of ${his} clinging spats.`);
					break;
				case "lederhosen":
					r.push(`${He} hastily slips ${his} tunic off and struggles to unbutton ${his} clinging shorts.`);
					break;
				case "attractive lingerie for a pregnant woman":
					r.push(`${He} quickly sheds ${his} vest and tight bra before panicking and resorting to ripping ${his} silk panties off.`);
					break;
				case "a maternity dress":
					r.push(`${He} hastily pulls ${his} dress down, revealing ${his} body.`);
					break;
				case "a dirndl":
					r.push(`${He} hastily pulls ${his} dress down, revealing ${his} body.`);
					break;
				case "a long qipao":
					r.push(`${He} hastily pulls ${his} dress down, revealing ${his} body.`);
					break;
				case "stretch pants and a crop-top":
					r.push(`${He} hastily pulls ${his} crop-top over ${his} head and struggles to remove ${his} stretch pants only to get tangled and fall over.`);
					break;
				case "a cheerleader outfit":
					r.push(`${He} yanks ${his} cheerleader skirt down and pulls ${his} slutty top off.`);
					break;
				case "a string bikini":
					r.push(`${He} gives ${himself} a nasty pinch between the legs in ${his} haste to get out of ${his} string bottom.`);
					break;
				case "a scalemail bikini":
					r.push(`${He} gives ${himself} a tiny cut on ${his} breast in ${his} haste to get out of ${his} scalemail top.`);
					break;
				case "striped panties":
					r.push(`${He} yanks ${his} panties down, kicking them off to the side.`);
					break;
				case "a monokini":
					r.push(`${He} nearly snaps the shoulder straps of ${his} monokini in ${his} haste to remove it.`);
					break;
				case "overalls":
					r.push(`${He} nearly snaps the shoulder straps of ${his} overalls in ${his} haste to remove them.`);
					break;
				case "an apron":
					r.push(`${He} quickly undoes ${his} apron's straps and hoists the garment over ${his} head.`);
					break;
				case "a hijab and blouse":
				case "conservative clothing":
					r.push(`${He} winds up tearing a few buttons off ${his} shirt in ${his} haste to remove it.`);
					break;
				case "Western clothing":
					r.push(`${He} winds up tearing a few buttons off ${his} flannel shirt in ${his} haste to remove it.`);
					break;
				case "a cybersuit":
					r.push(`${He} whimpers as ${he} knows ${he} can barely remove ${his} visor in that amount of time, let alone the whole bodysuit, but ${he} tries anyway.`);
					break;
				case "a tight Imperial bodysuit":
					r.push(`${He} struggles valiantly to get ${his} tight-fitting bodysuit off, but can only frantically peel it down halfway in your short timeframe.`);
					break;
				case "battlearmor":
					r.push(`${He} whimpers as ${he} knows ${he} can barely remove ${his} arm guards in that amount of time, let alone the whole suit, but ${he} tries anyway.`);
					break;
				case "Imperial Plate":
					r.push(`${He} quietly whimpers, knowing that it'll take ${him} full minutes to completely get off ${his} ultra-heavy Imperial Plate. Nevertheless, ${he} makes a valiant effort. Having this heavily-armored tank squirming underneath you is almost amusing.`);
					break;
				case "a fallen nuns habit":
					r.push(`${He} tugs desperately at the laces of ${his} tight latex nun getup.`);
					break;
				case "a chattel habit":
					r.push(`${He} shucks ${his} habit off easily, since it was designed to be removed quickly.`);
					break;
				case "a penitent nuns habit":
					r.push(`${He} pulls ${his} coarse habit over ${his} head, revealing ${his} chafed flesh.`);
					break;
				case "cutoffs and a t-shirt":
					r.push(`${He} shimmies out of ${his} cutoffs and whips ${his} t-shirt over ${his} head.`);
					break;
				case "a slutty nurse outfit":
					r.push(`Getting out of ${his} tight nurse getup in that amount of time is impossible, but ${he} tries anyway.`);
					break;
				case "a schoolgirl outfit":
					r.push(`${His} schoolgirl outfit is easily stripped off: ${he} pulls down ${his} skimpy skirt and tears off ${his} little blouse, and ${he}'s nude.`);
					break;
				case "a kimono":
					r.push(`Getting out of ${his} kimono in that amount of time is flagrantly impossible, but ${he} tries anyway.`);
					break;
				case "a klan robe":
					r.push(`Because ${he}'s nude under ${his} robes, ${he} simply lifts them over ${his} head.`);
					break;
				case "a hijab and abaya":
				case "a niqab and abaya":
					r.push(`Because ${he}'s nude under ${his} abaya, ${he} simply lifts it over ${his} head.`);
					break;
				case "a burqa":
					r.push(`Because ${he}'s nude under ${his} burqa, ${he} simply lifts it over ${his} head.`);
					break;
				case "a tube top and thong":
					r.push(`${He} shimmies out of ${his} thong and whips ${his} tube top over ${his} head.`);
					break;
				case "a button-up shirt and panties":
					r.push(`${He} drops ${his} panties and lifts ${his} shirt over ${his} head.`);
					break;
				case "a gothic lolita dress":
					r.push(`Getting out of ${his} lolita dress in that amount of time is impossible, but ${he} tries anyway.`);
					break;
				case "a hanbok":
					r.push(`${He} winds up tearing stitches out of ${his} shirt in ${his} haste to remove it.`);
					break;
				case "a bra":
					r.push(`Because ${he}'s nude under ${his} bra, ${he} simply lifts it over ${his} head.`);
					break;
				case "a button-up shirt":
					r.push(`Because ${he}'s nude under ${his} shirt, ${he} simply lifts it over ${his} head.`);
					break;
				case "a nice pony outfit":
					r.push(`${He} whimpers as ${he} knows ${he} can't remove ${his} outfit without some help.`);
					break;
				case "a slutty pony outfit":
					r.push(`${He} whimpers as ${he} knows ${he} can't remove ${his} outfit without some help.`);
					break;
				case "a sweater":
					r.push(`Because ${he}'s nude under ${his} sweater, ${he} simply lifts it over ${his} head.`);
					break;
				case "a tank-top":
					r.push(`Because ${he}'s nude under ${his} tank-top, ${he} simply lifts it over ${his} head.`);
					break;
				case "a thong":
					r.push(`${He} slips out of ${his} thong and kicks it aside.`);
					break;
				case "a tube top":
					r.push(`Because ${he}'s nude under ${his} tube top, ${he} simply lifts it over ${his} head.`);
					break;
				case "a one-piece swimsuit":
					r.push(`Because ${he}'s nude under ${his} swimsuit, ${he} simply pulls it down past ${his} hips and wiggles free.`);
					break;
				case "a police uniform":
					r.push(`${He} almost tears ${his} uniform in ${his} haste to avoid punishment.`);
					break;
				case "a striped bra":
					r.push(`Because ${he}'s nude under ${his} bra, ${he} simply lifts it over ${his} head.`);
					break;
				case "striped underwear":
					r.push(`${He} pulls off ${his} bra and panties with minimal effort.`);
					break;
				case "a skimpy loincloth":
					r.push(`${He} slips out of ${his} loincloth and kicks it aside.`);
					break;
				case "a slutty klan robe":
					r.push(`${He} slips off ${his} robe and throws it aside.`);
					break;
				case "a sports bra":
					r.push(`Because ${he}'s nude under ${his} bra, ${he} simply lifts it over ${his} head.`);
					break;
				case "a sweater and panties":
					r.push(`${He} tears ${his} sweater in ${his} haste and slips out of ${his} panties quickly.`);
					break;
				case "a t-shirt":
					r.push(`Because ${he}'s nude under ${his} t-shirt, ${he} simply lifts it over ${his} head and throws it aside.`);
					break;
				case "a tank-top and panties":
					r.push(`${He} yanks off ${his} t-shirt and drops ${his} panties.`);
					break;
				case "a t-shirt and thong":
					r.push(`${He} yanks off ${his} t-shirt and drops ${his} thong.`);
					break;
				case "an oversized t-shirt and boyshorts":
					r.push(`${He} yanks off ${his} t-shirt and drops ${his} boy shorts.`);
					break;
				case "an oversized t-shirt":
					r.push(`${He} yanks off ${his} t-shirt.`);
					break;
				case "a t-shirt and jeans":
					r.push(`${He} yanks off ${his} t-shirt but struggles to wiggle out of ${his} blue jeans.`);
					break;
				case "boyshorts":
					r.push(`${He} drops ${his} shorts quickly.`);
					break;
				case "cutoffs":
					r.push(`${He} wiggles out of ${his} shorts quickly.`);
					break;
				case "leather pants and pasties":
					r.push(`${He} yanks ${his} pasties off but struggles to wiggle out of ${his} leather pants.`);
					break;
				case "leather pants":
					r.push(`${He} struggles to wiggle out of ${his} leather pants.`);
					break;
				case "panties":
					r.push(`${He} drops ${his} panties quickly.`);
					break;
				case "sport shorts and a t-shirt":
					r.push(`${He} yanks off ${his} shirt and drops ${his} shorts.`);
					break;
				case "a t-shirt and panties":
					r.push(`${He} yanks off ${his} t-shirt and drops ${his} panties.`);
					break;
				case "panties and pasties":
					r.push(`${He} yanks off ${his} pasties and drops ${his} panties.`);
					break;
				case "pasties":
					r.push(`${He} hastily yanks off ${his} pasties.`);
					break;
				case "sport shorts and a sports bra":
					r.push(`${He} drops ${his} shorts and tosses ${his} bra.`);
					break;
				case "jeans":
					r.push(`${He} struggles to wiggle out of ${his} blue jeans.`);
					break;
				case "a sweater and cutoffs":
					r.push(`${He} tosses off ${his} sweater and drops ${his} shorts.`);
					break;
				case "leather pants and a tube top":
					r.push(`${He} yanks ${his} tube top off but struggles to wiggle out of ${his} leather pants.`);
					break;
				case "sport shorts":
					r.push(`${He} drops ${his} shorts quickly.`);
					break;
				case "battledress":
					r.push(`${He} strips ${his} tank top off in one motion, unfastens ${his} belt, and pulls down ${his} pants, though ${his} boots defeat ${him} and stay on.`);
					break;
				case "a slutty outfit":
					r.push(`${He} hurriedly strips ${himself} out of ${his} carefully chosen outfit.`);
					break;
				case "a slave gown":
					r.push(`${He}'s desperately torn between hurry to avoid punishment and fear ${he}'ll rip ${his} delicate gown.`);
					break;
				case "a halter top dress":
				case "an evening dress":
					r.push(`${He}'s desperately torn between hurry to avoid punishment and fear ${he}'ll rip ${his} delicate dress.`);
					break;
				case "a ball gown":
					r.push(`${He}'s desperately torn between hurry to avoid punishment and fear ${he}'ll rip ${his} delicate silken ball gown.`);
					break;
				case "nice business attire":
					r.push(`${He}'s desperately torn between hurry to avoid punishment and fear ${he}'ll damage ${his} blouse.`);
					break;
				case "slutty business attire":
					r.push(`${He}'s desperately torn between hurry to avoid punishment and fear ${he}'ll tear ${his} suit in ${his} haste.`);
					break;
				case "a nice maid outfit":
					r.push(`${He} pulls ${his} dress over ${his} head and quickly undoes the buttons of ${his} blouse, one after the other.`);
					break;
				case "a slutty maid outfit":
					r.push(`${His} short dress comes off easily, but ${he} fumbles with the buttons on ${his} tight blouse.`);
					break;
				case "a comfortable bodysuit":
					r.push(`${He}'s desperately torn between hurry to avoid punishment and fear ${he}'ll stretch out ${his} bodysuit.`);
					break;
				case "a burkini":
					r.push(`${He}'s desperately torn between hurry to avoid punishment and fear ${he}'ll stretch out ${his} burkini.`);
					break;
				case "a leotard":
					r.push(`${His} leotard is tight enough that ${he} has to struggle mightily to get it off that quickly.`);
					break;
				case "a bunny outfit":
					r.push(`${He}'s desperately torn between hurry to avoid punishment and fear ${he}'ll put runs in ${his} hose.`);
					break;
				case "kitty lingerie":
					r.push(`${He} almost tears ${his} decorative lingerie in ${his} haste to avoid punishment.`);
					break;
				case "harem gauze":
					r.push(`${He}'s desperately torn between hurry to avoid punishment and fear ${he}'ll tear ${his} flimsy gauze.`);
					break;
				case "a Santa dress":
					r.push(`${He} tears off some of ${his} dress's white fur trim in ${his} struggle to remove it.`);
					break;
				case "slutty jewelry":
					r.push(`${He} hurriedly strips fine jewelry from ${his} neck, ${hasBothArms(slave) ? `wrists` : `wrist`} and ${hasBothLegs(slave) ? `ankles` : `ankle`}.`);
					break;
				case "a courtesan dress":
					if (["a corset", "an extreme corset"].includes(slave.bellyAccessory)) {
						r.push(`${His} fingers fumble desperately with the straps of ${his} corset, knowing there is still a lot of dress left to remove after it.`);
					} else {
						r.push(`Panic sets in as ${he} realizes just how much dress is left to remove. In ${his} haste, ${he} hooks a sleeve with ${his} foot and falls flat, exposing ${his} bare ass.`);
					}
					break;
				case "a bimbo outfit":
					r.push(`In two swift motions ${he}'s out of ${his} outfit.`);
			}
		}
	}

	if (slave.fetish === "masochist" && slave.fetishKnown === 1 && slave.fetishStrength > 95) {
		r.push(`The slap seems to have excited ${him}, seeing ${his} hard nipples and wet pussy, and ${his} eyes practically beg for more.`);
	} else if (slave.fetish === "masochist" && slave.fetishKnown === 1 && slave.fetishStrength > 60) {
		r.push(`${He} seems to be a bit expectant of what is to come.`);
	}

	if (V.PC.dick !== 0) {
		if (hasAnyArms(slave) && App.Data.clothes.get(slave.clothes).exposure <= 3) {
			r.push(`While ${he} strips, your`);
		} else {
			r.push(`Your`);
		}
		r.push(`stiffening cock rises,${(V.PC.vagina !== -1) ? `revealing your pussy and ` : ``} earning`);
	} else {
		if (hasAnyArms(slave) && App.Data.clothes.get(slave.clothes).exposure <= 3) {
			r.push(`While ${he} strips, you`);
		} else {
			r.push(`You`);
		}
		r.push(`don a cruelly large strap-on, earning`);
	}
	if (slave.fetish === "masochist" && slave.fetishKnown === 1 && slave.fetishStrength > 95) {
		r.push(`a sultry look`);
	} else if (slave.fetish === "masochist" && slave.fetishKnown === 1 && slave.fetishStrength > 60) {
		r.push(`a shy look`);
	} else {
		r.push(`a frightened glance`);
	}
	r.push(`from your victim.`);

	if (isAmputee(slave)) {
		if (App.Data.clothes.get(slave.clothes).exposure <= 3) {
			r.push(`Growing impatient, you rip the clothes off ${his} limbless torso`);
		} else {
			r.push(`You walk up to ${him}`);
		}
		r.push(`and spank ${him} brutally; spinning ${him} to present`);
		if (slave.vagina > -1) {
			r.push(`${his} holes`);
		} else {
			r.push(`${his} hole`);
		}
		r.push(`to you and`);
		if (slave.fetish === "masochist" && slave.fetishKnown === 1 && slave.fetishStrength > 60) {
			if (canAchieveErection(slave)) {
				r.push(`making ${his} erect dick throb`);
			} else if (slave.vagina > -1) {
				r.push(`making ${his} pussy throb`);
			} else {
				r.push(`making ${his} butthole throb`);
			}
		}
		r.push(`with anticipation.`);
	} else {
		r.push(`You order ${him} to present`);
		if (slave.vagina > -1) {
			r.push(`${his} holes`);
		} else {
			r.push(`${his} hole`);
		}
		r.push(`to you and spank ${him} brutally`);
		if (slave.fetish === "masochist" && slave.fetishKnown === 1 && slave.fetishStrength > 60) {
			if (canAchieveErection(slave)) {
				r.push(`making ${his} erect dick throb`);
			} else if (slave.vagina > -1) {
				r.push(`making ${his} pussy throb`);
			} else {
				r.push(`making ${his} butthole throb`);
			}
		}
		if (slave.devotion < -50) {
			r.push(`until ${he} complies.`);
		} else if (slave.devotion < -20) {
			r.push(`as ${he} slowly complies.`);
		} else if (slave.devotion <= 20) {
			r.push(`as ${he} fearfully complies.`);
		} else if (slave.devotion <= 50) {
			r.push(`as ${he} rushes to comply.`);
		} else {
			r.push(`as ${he} complies.`);
		}
	}

	r.push(`${His} ${slave.skin}${V.seeRace === 1 ? `, ${slave.race}` : ``} ass`);
	const skinToneLvl = skinToneLevel(slave.skin);
	if (App.Medicine.Modification.dyedSkins.includes(slave.skin)) {
		r.push(`barely shows the spanking.`);
	} else if (skinToneLvl < 5) {
		r.push(`shows the spanking extremely well.`);
	} else if (skinToneLvl < 12) {
		r.push(`shows the spanking well.`);
	} else if (skinToneLvl < 20) {
		r.push(`barely shows the spanking.`);
	} else {
		r.push(`barely shows any marks from the spanking.`);
	}

	if (slave.chastityPenis === 1) {
		r.push(`You rip ${his} dick chastity off ${him}, though ${he} knows not to be relieved. ${His} cock is now vulnerable, not free.`);
	}

	if (slave.anus === 0) {
		r.push(`The bitch is still a butthole virgin and you don't mean to take that now, but you torture ${him} with the threat of raping ${his} virgin ass for a while before settling for ${his} gagging throat.`);
		seX(slave, "oral", V.PC, "penetrative");
	} else if (slave.chastityVagina && canDoAnal(slave)) {
		r.push(`The bitch is wearing a chastity belt, so ${he} isn't surprised when you shove`);
		if (V.PC.dick === 0) {
			r.push(`the strap-on`);
		} else {
			r.push(`your dick`);
		}
		r.push(`up ${his} butt. What surprises ${him} is when you slide a finger or two in alongside your dick to stretch ${him} to the point of pain.`);
		r.push(VCheck.Anal(slave, 1));
		assPain = 1;
	} else if (slave.vagina === 0) {
		r.push(`The bitch is still a virgin and you don't mean to take that now, but you torture ${him} with the threat of raping ${his} virgin pussy for a while before settling for ${his} gagging throat.`);
		seX(slave, "oral", V.PC, "penetrative");
	} else if (slave.bellyPreg >= 600000) {
		r.push(`The bitch is on the brink of bursting, so hard intercourse will be painful and terrifying to ${him}. You thrust hard into ${him} causing ${his} taut belly to bulge and making ${his} children squirm within ${his} straining womb.`);
		if (V.PC.vagina !== -1 && V.PC.dick !== 0) {
			r.push(`Fortunately for ${him}, this gets you so wet that some of your pussyjuice makes it down onto your shaft and serves as improvised lube.`);
		}
		r.push(`You brutally fuck ${him} as ${he} pleads for you to stop until you're at your edge. More cum won't make the bitch more pregnant, but you cum inside ${him} anyway.`);
		r.push(VCheck.Vaginal(slave, 1));
	} else if (slave.bellyPreg >= 120000) {
		r.push(`The bitch is hugely pregnant, so hard intercourse will be uncomfortable and worrying for ${him}. You have hard intercourse. ${He} sobs as you rock the huge weight of ${his} belly back and forth without mercy, forcing ${his} already straining belly to bulge further, and whines as ${he} feels your cockhead batter ${his} womb.`);
		if (V.PC.vagina !== -1 && V.PC.dick !== 0) {
			r.push(`Fortunately for ${him}, this gets you so wet that some of your pussyjuice makes it down onto your shaft and serves as improvised lube.`);
		}
		r.push(`More cum won't make the bitch more pregnant, but you cum inside ${him} anyway.`);
		r.push(VCheck.Vaginal(slave, 1));
	} else if (slave.preg > slave.pregData.normalBirth/2) {
		r.push(`The bitch is pregnant, so hard intercourse will be uncomfortable and even worrying for ${him}. You have hard intercourse. ${He} sobs as you saw the huge weight of ${his} belly back and forth without mercy, and whines as ${he} feels your cockhead batter ${his} womb.`);
		if (V.PC.vagina !== -1 && V.PC.dick !== 0) {
			r.push(`Fortunately for ${him}, this gets you so wet that some of your pussyjuice makes it down onto your shaft and serves as improvised lube.`);
		}
		r.push(`More cum won't make the bitch more pregnant, but you cum inside ${him} anyway.`);
		r.push(VCheck.Vaginal(slave, 1));
	} else if (slave.pregKnown === 1) {
		r.push(`The bitch knows ${he} is pregnant, even if it isn't obvious yet, so hard intercourse will be uncomfortable and even worrying for ${him}. You have hard intercourse. ${He} sobs as you pound ${his} vagina without mercy, and whines as ${he} feels your cockhead batter ${his} womb.`);
		if (V.PC.vagina !== -1 && V.PC.dick !== 0) {
			r.push(`Fortunately for ${him}, this gets you so wet that some of your pussyjuice makes it down onto your shaft and serves as improvised lube.`);
		}
		r.push(`More cum won't make the bitch more pregnant, but you cum inside ${him} anyway.`);
		r.push(VCheck.Vaginal(slave, 1));
	} else if (slave.vagina === 1) {
		r.push(`The bitch's pussy is tight, so you ram`);
		if (V.PC.dick === 0) {
			r.push(`the strap-on`);
		} else {
			r.push(`your dick`);
		}
		r.push(`into ${him} without preamble and fuck ${him} hard and fast.`);
		if (V.PC.vagina !== -1 && V.PC.dick !== 0) {
			r.push(`Fortunately for ${him}, this gets you so wet that some of your pussyjuice makes it down onto your shaft and serves as improvised lube.`);
		}
		r.push(`${His} cunt spasms with the pain of the rape. You cum in no time.`);
		r.push(VCheck.Vaginal(slave, 1));
	} else if (slave.anus === 1) {
		r.push(`The bitch's butt is tight, so you ram`);
		if (V.PC.dick === 0) {
			r.push(`the strap-on`);
		} else {
			r.push(`your dick`);
		}
		r.push(`into ${him} without lubricant and sodomize ${him} as hard as you can without damaging your property.`);
		if (V.PC.vagina !== -1 && V.PC.dick !== 0) {
			r.push(`Fortunately for ${him}, this gets you so wet that some of your pussyjuice makes it down onto your shaft and serves as improvised lube.`);
		}
		r.push(`${His} asshole spasms with the pain of the rape. You cum explosively.`);
		r.push(VCheck.Anal(slave, 1));
		assPain = 1;
	} else if (slave.dick > 0 && slave.scrotum > 0) {
		r.push(`You ram`);
		if (V.PC.dick === 0) {
			r.push(`the strap-on`);
		} else {
			r.push(`your dick`);
		}
		r.push(`into ${his} sissy butt without lubricant. As ${he} flinches you announce that ${he}'ll be taking part in giving ${himself} anal pain. ${He} humps into you lamely, so you administer a truly agonizing slap to ${his} balls`);
		if (V.PC.dick === 0) {
			r.push(r.pop() + ".");
		} else {
			r.push(`that makes ${his} anal ring stiffen deliciously around your dick.`);
		}
		r.push(`To avoid further punishment ${he} fucks ${himself} against you almost hard enough to hurt ${himself}.`);
		if (V.PC.vagina !== -1 && V.PC.dick !== 0) {
			r.push(`Fortunately for ${him}, this gets you so wet that some of your pussyjuice makes it down onto your shaft and serves as improvised lube.`);
		}
		r.push(`You orgasm explosively.`);
		r.push(VCheck.Anal(slave, 1));
		assPain = 1;
	} else if (slave.dick > 0) {
		r.push(`You ram`);
		if (V.PC.dick === 0) {
			r.push(`the strap-on`);
		} else {
			r.push(`your dick`);
		}
		r.push(`into ${his} gelded butt without lubricant and sodomize ${him} as hard as you can without damaging your property.`);
		if (V.PC.vagina !== -1) {
			r.push(`Fortunately for ${him}, this gets you so wet that some of your pussyjuice makes it down onto your shaft and serves as improvised lube.`);
		}
		r.push(`${He}'s such a slut that ${he} shows signs of enjoyment, but you put a stop to that whenever it happens by slapping and flicking ${his} cock. You cum explosively.`);
		r.push(VCheck.Anal(slave, 1));
		assPain = 1;
	} else {
		r.push(`${He}'s got no special physical targets for abuse, so you just rape ${him} hard and fast, raining stinging slaps down on ${him} as you do. ${He} cries and whimpers; you finish.`);
		r.push(VCheck.Both(slave, 1));
	}
	if (slave.assignment !== Job.BODYGUARD) {
		r.push(`This leaves ${him} sobbing on the floor`);
		if (V.PC.dick === 0) {
			r.push(`as you shuck off the strap-on and drop it on ${his} face.`);
		} else {
			r.push(`with cum dripping out of ${him}.`);
		}
	} else if (slave.assignment === Job.BODYGUARD && slave.fetish === "masochist" && slave.fetishKnown === 1 && slave.fetishStrength > 95) {
		r.push(`${He} thanks you rapidly, trying to break away from the pleasure of your reward. ${He} quickly gets back to ${his} feet and stumbles towards the shower, to make sure you won't stay unprotected too long.`);
	} else {
		r.push(`Even though ${he}'s in a somewhat bad shape, ${he} still jumps back to ${his} feet and stumbles towards the shower, to make sure you won't stay unprotected too long.`);
	}

	if (slave.assignment !== Job.BODYGUARD) {
		if (slave.minorInjury === 0) {
			if (assPain === 1) {
				r.push(`The anal rape leaves ${him} with a sore butthole.`);
			} else if (random(1, 100) > 50) {
				slave.minorInjury = either("black eye", "bruise", "split lip");
				r.push(`Your abuse gave ${him} a ${slave.minorInjury}.`);
			}
		}
	}

	if (slave.bellyPreg >= 600000) {
		r.push(`The rough fucking was <span class="health dec">very unhealthy</span> for ${his} massive pregnancy.`);
		healthDamage(slave, 40);
	}

	if (slave.assignment === Job.BODYGUARD) {
		if (slave.muscles <= 5 && slave.skill.combat <= 30) {
			r.push(`Your bodyguard accepts this as a punishment for ${his} uselessness.`);
		} else if (slave.muscles <= 5 && slave.skill.combat > 30) {
			r.push(`Your bodyguard accepts this as a punishment for ${his} lack of muscles`);
		} else if (slave.muscles > 30 && slave.skill.combat <= 30) {
			r.push(`Your bodyguard accepts this as a punishment for ${his} lack of combat skills`);
		} else if (slave.muscles > 5 && slave.skill.combat > 30) {
			r.push(`Your bodyguard just admits it as a part of ${his} body training.`);
		} else if (slave.muscles > 5 && slave.skill.combat <= 30) {
			r.push(`Your bodyguard accepts this as a punishment for ${his} lack of expertise`);
		}
		if (slave.fetish === "masochist" && slave.fetishStrength > 60 && slave.fetishKnown === 1) {
			r.push(`Though ${he} secretly got off on the pain and humiliation.`);
		}
	} else if (slave.fetish === "masochist" && slave.fetishStrength > 60 && slave.fetishKnown === 1) {
		r.push(`${He} secretly got off on the pain and humiliation.`);
	} else if (FutureSocieties.isActive('FSDegradationist')) {
		r.push(`${He} knew that a degradationist arcology wouldn't be easy on ${him}, so even if ${he} resents it, ${he} tries to accept it.`);
	} else if (slave.devotion < -50) {
		r.push(`${His} <span class="mediumorchid">hatred</span> and <span class="gold">fear</span> of you have increased.`);
		slave.devotion-=4;
		slave.trust-=4;
	} else if (slave.devotion < -20) {
		r.push(`${His} <span class="mediumorchid">resistance</span> to and <span class="gold">fear</span> of you have increased.`);
		slave.devotion-=4;
		slave.trust-=4;
	} else if (slave.devotion <= 20) {
		r.push(`${His} <span class="gold">fear</span> of you is tinged with <span class="mediumorchid">hatred.</span>`);
		slave.devotion-=4;
		slave.trust-=4;
	} else if (slave.devotion <= 50) {
		r.push(`${His} <span class="mediumorchid">obedience to you is reduced,</span> and ${he} <span class="gold">fears</span> further abuse.`);
		slave.devotion-=4;
		slave.trust-=4;
	} else {
		r.push(`${He} is so devoted to you that ${he} accepts your abuse as ${his} just due, but ${he} now <span class="gold">fears</span> you more and trusts you less.`);
		slave.trust-=4;
	}

	if (random(1, 100) > (20+slave.devotion+slave.trust)) {
		if (slave.fetish !== "submissive" && slave.fetish !== "masochist" && slave.assignment !== Job.BODYGUARD) {
			const seed = random(1, 8);
			r.push(`Brutal abuse has left ${him}`);
			if (seed === 1 && slave.behavioralFlaw !== "odd") {
				r.push(`<span class="red">acting strangely.</span>`);
				slave.behavioralFlaw = "odd";
			} else if (seed === 2 && slave.behavioralFlaw !== "anorexic") {
				r.push(`<span class="red">starving ${himself}</span> in a crippling attempt to be pretty.`);
				slave.behavioralFlaw = "anorexic";
			} else if (seed === 3 && slave.behavioralFlaw !== "gluttonous") {
				r.push(`<span class="red">stress eating</span> whenever ${he} can.`);
				slave.behavioralFlaw = "gluttonous";
			} else if (seed === 4 && slave.behavioralFlaw !== "devout") {
				r.push(`<span class="red">praying in private</span> whenever ${he} can.`);
				slave.behavioralFlaw = "devout";
			} else if (seed === 5 && slave.sexualFlaw !== "apathetic") {
				r.push(`<span class="red">sexually apathetic,</span> since ${he} feels it cannot go well for ${him}.`);
				slave.sexualFlaw = "apathetic";
			} else if (seed === 6 && slave.sexualFlaw !== "crude") {
				r.push(`<span class="red">sexually crude,</span> out of an unconscious belief that sex is ugly and unworthy of effort.`);
				slave.sexualFlaw = "crude";
			} else if (seed === 7 && slave.sexualFlaw !== "judgemental") {
				r.push(`<span class="red">sexually judgemental,</span> out of an unconscious desire to disqualify people from being good enough to have sex with ${him}.`);
				slave.sexualFlaw = "judgemental";
			} else if (V.PC.dick !== 0) {
				r.push(`<span class="red">hating men,</span> since you forced your cock on ${him}.`);
				slave.behavioralFlaw = "hates men";
			} else {
				r.push(`<span class="red">hating women,</span> since you forced your cunt on ${him}.`);
				slave.behavioralFlaw = "hates women";
			}
		}
	}
	if (random(1, 100) > (50+slave.devotion+slave.trust) && slave.assignment !== Job.BODYGUARD) {
		if (slave.fetish !== Fetish.MINDBROKEN && slave.fetishKnown === 0 && !smartPiercingReinforcesFetish(slave)) {
			r.push(`${His} acceptance of your abuse has twisted ${his}`);
			if (random(1, 2) === 1 && slave.fetish !== "submissive") {
				r.push(`<span class="lightcoral">sexuality towards submissiveness.</span>`);
				slave.fetish = "submissive";
				slave.fetishKnown = 1;
			} else if (slave.fetish !== "masochist") {
				r.push(`<span class="lightcoral">sexuality towards masochism.</span>`);
				slave.fetish = "masochist";
				slave.fetishKnown = 1;
			}
		}
	}
	if (slave.fetish === Fetish.MINDBROKEN && slave.relationship === -3) {
		if (slave.kindness) {
			slave.kindness = 0;
		}
	}
	App.Events.addParagraph(node, r);
	return node;
};