diff --git a/src/endWeek/saRules_old.js b/src/endWeek/saRules_old.js
deleted file mode 100644
index 2eeb70847767cdbb94ddb110fdb4cdc4113edee7..0000000000000000000000000000000000000000
--- a/src/endWeek/saRules_old.js
+++ /dev/null
@@ -1,1490 +0,0 @@
-(function() {
-	"use strict";
-
-	let
-		PC = V.PC,
-		energy,
-		averageDick;
-
-	/**
-	 * @param {App.Entity.SlaveState} slave
-	 * @returns {string}
-	 */
-	function saRules(slave) {
-		const
-			{
-				// eslint-disable-next-line no-unused-vars
-				he, him, his, hers, himself, boy, He, His
-			} = getPronouns(slave);
-
-		let
-			release = slave.rules.release;
-
-		let r = ``;
-
-		energy = App.EndWeek.saVars.freeSexualEnergy;
-		averageDick = App.EndWeek.saVars.averageDick;
-
-		// TODO: may need updating to detail effect of chastity
-
-		if (!slave.fuckdoll) {
-			r += `${He} `;
-			if (slave.fetish === "mindbroken") {
-				r += `is mentally broken so none of the rules have any impact. `;
-			} else {
-				switch (slave.assignment) {
-					case Job.NURSE:
-					case Job.CLINIC:
-					case Job.WARDEN:
-					case Job.CELLBLOCK:
-					case Job.ATTENDANT:
-					case Job.SPA:
-					case Job.MATRON:
-					case Job.NURSERY:
-						// TODO: this will all need to be rewritten
-						if (slave.devotion < -50) {
-							r += `is so unhappy that ${he} has little interest in getting off. `;
-							slave.need = 0;
-						} else if (slave.energy <= 20) {
-							r += `is frigid and has little interest in getting off. `;
-							slave.need = 0;
-						} else if (S.Matron) {
-							r += `is routinely relieved of any built up tension by ${S.Matron.slaveName} and ${his}`;
-							if (canPenetrate(slave) && S.Matron.boobs >= 500) {
-								r += `luscious breasts. `;
-								actX(slave, "mammary", 14);
-							} else {
-								if (slave.lips > 40) {
-									r += `luscious lips. `;
-								} else if (slave.skill.oral > 30) {
-									r += `skilled tongue. `;
-								} else {
-									r += `willing mouth. `;
-								}
-								actX(slave, "oral", 14);
-							}
-							slave.need = -60;
-						} else {
-							if (!App.Utils.hasNonassignmentSex(slave) && release.masturbation === 0) {
-								if (release.master === 1) {
-									if (slave.devotion <= 50) {
-										if (slave.devotion <= 20) {
-											if (slave.trust > -20) {
-												r += `refuses to come up to the penthouse for sexual release and is <span class="gold">severely punished</span> for illicit masturbation. `;
-												slave.trust -= 2;
-												slave.need -= 10;
-											} else {
-												r += `occasionally comes to the penthouse to beg for sexual release. `;
-											}
-										} else {
-											r += `doesn't mind having to come to the penthouse to beg for sexual release. `;
-										}
-										r += `${playerEnergy(slave)}`;
-									} else {
-										r += `willingly comes up to the penthouse and begs you to ${playerFetishPlay(slave)} whenever the urge strikes. ${playerEnergy(slave)}`;
-									}
-									r += `${playerDiscoversFetish(slave)} ${playerDrugEffects(slave)}`;
-								} else {
-									if (disobedience(slave) > jsRandom(0, 100)) {
-										r += `is forbidden to masturbate or seek sexual release. In ${his} <span class="mediumorchid">intense frustration</span> ${he} breaks the rules and is <span class="gold">severely punished</span> for illicit masturbation. `;
-										slave.devotion -= 2;
-										slave.trust -= 2;
-										slave.need -= 10;
-									} else {
-										r += `is forbidden to masturbate or seek sexual release, which <span class="mediumorchid">highly frustrates</span> ${him}. `;
-										slave.devotion -= 2;
-									}
-									/* r += `${noReleaseDrugEffects(slave)}`; - port it from saRulesWidgets when we need it */
-								}
-							} else if (!App.Utils.hasNonassignmentSex(slave) && release.masturbation === 1) {
-								if (slave.devotion <= 20) {
-									if (slave.trust > -20) {
-										r += `takes solace in ${his} permission to masturbate rather than being forced to beg for sex, <span class="mediumaquamarine">reducing ${his} fear</span> of you. `;
-										slave.trust += 2;
-										slave.need = 0;
-									} else {
-										r += `enjoys being allowed to masturbate rather than trading sex with other slaves, <span class="mediumaquamarine">slightly reducing ${his} fear</span> of you but <span class="mediumorchid">allowing ${him} to remain in control of ${him} sexuality. </span>`;
-										slave.devotion--;
-										slave.trust++;
-										slave.need = 0;
-									}
-								} else if (slave.devotion <= 50) {
-									r += `accepts having to relieve ${himself} solely through masturbation. `;
-									slave.need = 0;
-								} else if (slave.devotion <= 80) {
-									r += `is a little disappointed that ${he}'s limited to ${his} hands and toys, but <span class="mediumaquamarine">trusts you know what's best for ${him}. </span>`;
-									slave.trust++;
-									slave.need = 0;
-								} else {
-									r += `<span class="mediumaquamarine">trusts your judgment</span> that only ${he} really knows how to pleasure ${himself}`;
-									if (release.master === 0) {
-										r += `, though ${he} <span class="mediumorchid">often wonders why you don't use ${him}. </span>`;
-										slave.devotion -= 2;
-									} else {
-										r += `.`;
-									}
-									slave.trust++;
-									slave.need = 0;
-								}
-
-								if (slave.devotion >= 20) {
-									r += `When ${he} does play with ${himself}, ${he} ${masturbationFetishPlay(slave)} ${masturbationDiscoversFetish(slave)}`;
-								}
-								r += `${masturbationDrugEffects(slave)}`;
-							} else { // hasNonassignmentSex is true
-								const whom = (release.slaves === 1) ? `other slaves` : `${his} family`;
-								if (!App.Utils.hasFamilySex(slave) && release.slaves === 0) {
-									// no family and no other slaves, so must be his partner
-									r += `finds frequent sexual release with ${his} ${relationshipTerm(slave)} <span class="lightgreen">${getSlave(slave.relationshipTarget).slaveName},</span> which ${he} is <span class="mediumaquamarine">thankful for.</span> `;
-									/* r += `${partnerDrugEffects(slave)}`; - port it from saRulesWidgets when we need it */
-									slave.need -= 20; // TODO: probably should be based on BOTH slaves' need, leaving the less needy partner slightly frustrated
-									slave.trust++;
-								} else if (!V.universalRulesConsent) {
-									if (slave.devotion <= 20) {
-										if (slave.trust > -20) {
-											if (release.masturbation === 1) {
-												r += `masturbates whenever ${he} can find a private moment to take care of the urges induced by the food, <span class="mediumaquamarine">slightly reducing ${his} fear</span> of you. `;
-												slave.trust++;
-												slave.need = 0;
-											} else {
-												r += `refuses to ask ${whom} for sex, and is <span class="gold">severely punished</span> for illicit masturbation. `;
-												slave.trust -= 2;
-												slave.need -= 10;
-											}
-										} else {
-											if (release.masturbation === 1) {
-												r += `prefers to masturbate rather than demanding sex from ${whom}, <span class="mediumaquamarine">slightly reducing ${his} fear</span> of you. `;
-												slave.trust++;
-												slave.need = 0;
-											} else {
-												r += `is forced by the urges induced by the food to demand sex from ${whom}, and <span class="hotpink">hates ${himself}</span> for it. `;
-												slave.devotion++;
-												slave.need = 0;
-											}
-										}
-									} else if (slave.devotion <= 50) {
-										r += `<span class="hotpink">accepts the need</span> to ${rapeFetish(slave)} ${rapeDiscoversFetish(slave)}`;
-										slave.devotion++;
-										slave.need = 0;
-									} else {
-										r += `happily <span class="mediumaquamarine">avails ${himself}</span> of your permission to ${rapeFetish(slave)} ${rapeDiscoversFetish(slave)}`;
-										slave.trust++;
-										slave.need = 0;
-									}
-								} else {
-									if (slave.devotion <= 20) {
-										if (slave.trust > -20) {
-											if (release.masturbation === 1) {
-												r += `prefers to masturbate rather than asking ${whom} for sex or giving free samples, <span class="mediumaquamarine">slightly reducing ${his} fear</span> of you. `;
-												slave.trust++;
-												slave.need = 0;
-											} else {
-												r += `refuses to ask ${whom} for sex, and is <span class="gold">severely punished</span> for illicit masturbation. `;
-												slave.trust -= 2;
-												slave.need -= 10;
-											}
-										} else {
-											if (release.masturbation === 1) {
-												r += `prefers to masturbate rather than trading sex with ${whom}, <span class="mediumaquamarine">slightly reducing ${his} fear</span> of you. `;
-												slave.trust++;
-												slave.need = 0;
-											} else {
-												r += `is forced by the urges induced by the food to swap sex with ${whom}, and <span class="hotpink">hates ${himself}</span> for it. `;
-												slave.devotion++;
-												slave.need *= 0.5;
-											}
-										}
-									} else if (slave.devotion <= 50) {
-										r += `<span class="hotpink">accepts having to ask</span> ${whom} for sex, ${consentFetish(slave)} ${consentDiscoversFetish(slave)}`;
-										slave.devotion++;
-										slave.need = 0;
-									} else {
-										r += `<span class="mediumaquamarine">relies</span> on your ${whom} for mutual satisfaction, ${consentFetish(slave)} ${consentDiscoversFetish(slave)}`;
-										slave.trust++;
-										slave.need = 0;
-									}
-								}
-								r += `${permissiveDrugEffects(slave)}`;
-							}
-						}
-
-						if (slave.devotion <= 20) {
-							r += App.EndWeek.Rules.speechRules(slave);
-
-							switch (V.nurseryDecoration) {
-								case "Chinese Revivalist":
-									r += `The Oriental artwork in ${his} personal room reminds ${him} of where ${he} is and <span class="hotpink">dulls ${his} will. </span>`;
-									slave.devotion++;
-									break;
-								case "Chattel Religionist":
-									r += `${He} gets a space of ${his} own in the communal slave quarters, but the constant sexual presence of the other slaves <span class="hotpink">get ${him} used</span> to the routine of`;
-									if (slave.trust >= 20) {
-										r += `slavery and <span class="gold">keep ${him} aware of ${his} lowly place. </span>`;
-										slave.trust--;
-									} else {
-										r += `slavery. `;
-									}
-									slave.devotion++;
-									break;
-								case "Degradationist":
-									r += `${He} gets a little room all to ${himself}, allowing ${him} to feel self-reliant; or it would, if it didn't have numerous cameras watching ${his} every move. The conditions <span class="hotpink">get ${him} used</span> to the routine of`;
-									if (slave.trust >= 20) {
-										r += `slavery and <span class="gold">keep ${him} aware of ${his} lowly place. </span>`;
-										slave.trust--;
-									} else {
-										r += `slavery. `;
-									}
-									break;
-								case "Asset Expansionist":
-								case "Transformation Fetishist":
-								case "Pastoralist":
-									r += `${He} gets a little room all to ${himself}, allowing ${him} to feel self-reliant; or it would, if it weren't filled with constant reminders of ${his} changing body. The conditions <span class="hotpink">get ${him} used</span> to the routine of`;
-									if (slave.trust >= 20) {
-										r += `slavery and <span class="gold">keep ${him} aware of ${his} lowly place. </span>`;
-										slave.trust--;
-									} else {
-										r += `slavery. `;
-									}
-									break;
-								default:
-									r += `${He} gets a comfortable little room all to ${himself}, allowing ${him} to let down ${his} guard and <span class="mediumaquamarine">feel self-reliant. </span>`;
-									slave.trust++;
-									break;
-							}
-						} else {
-							switch (V.nurseryDecoration) {
-								case "Chinese Revivalist":
-									r += `The Oriental artwork in ${his} personal room reminds ${him} of ${his} position and <span class="hotpink">renders ${him} even more submissive. </span>`;
-									slave.devotion++;
-									break;
-								case "Chattel Religionist":
-									r += `${He} likes ${his} personal space in ${V.nurseryName}, even if it constantly reminds ${him} that ${he} is naught but a servant to the Prophet. `;
-									break;
-								case "Degradationist":
-									if (slave.trust >= 40) {
-										r += `The invasive living conditions of ${V.nurseryName} <span class="gold">remind ${him} not to get too comfortable</span> with ${his} life. `;
-										slave.trust -= 2;
-									} else if (slave.trust >= 10) {
-										r += `The invasive living conditions of ${V.nurseryName} <span class="gold">keep ${him} aware of ${his} place. </span>`;
-										slave.trust--;
-									}
-									break;
-								case "Asset Expansionist":
-								case "Transformation Fetishist":
-								case "Pastoralist":
-									r += `${He} likes ${his} little room in ${V.nurseryName}, ${slave.boobs < 10000 ? `even if ${his} boobs are too small to make the most of it` : `even more so, since it accommodates ${his} expansive bust`}. `;	// TODO:
-									break;
-								default:
-									r += `${He} loves ${his} little room in ${V.nurseryName}. It's the perfect end to a busy day of taking care of children. `;
-									slave.trust++;
-									break;
-							}
-						}
-
-						if (!V.universalRulesConsent) {
-							if (slave.devotion <= 20) {
-								if (slave.trust > -10) {
-									if (App.Entity.facilities.nursery.employeesIDs().size > 2) {
-										r += `Under the rules, ${he} finds ${himself} constantly molested by other slaves, and lives ${his} life constantly <span class="gold">afraid. </span>`;
-									} else {
-										r += `Under the rules, ${he} is free game for other slaves to molest, and lives ${his} life constantly <span class="gold">afraid</span> of the day another slave grabs ${him} from under the water. `;
-									}
-									slave.trust -= 2;
-								} else {
-									if (App.Entity.facilities.nursery.employeesIDs().size > 2) {
-										r += `Under the rules, ${he} finds ${himself} constantly molested by other slaves, but ${he}'s already in such constant terror it doesn't seriously affect ${him}. `;
-									} else {
-										r += `Under the rules, ${he} will someday find ${himself} constantly molested by other slaves, but ${he}'s already in such constant terror it that it doesn't cross ${his} mind. `;
-									}
-								}
-							} else if (release.slaves === 1) {
-								if (slave.energy > 95) {
-									if (App.Entity.facilities.nursery.employeesIDs().size > 2) {
-										r += `Under the rules, ${he}'s allowed to demand that other slaves get ${him} off, and ${he} <span class="hotpink">adores</span> you for providing plentiful outlets for ${his} nymphomania. `;
-									} else {
-										r += `Under the rules, ${he}'s allowed to demand that other slaves get ${him} off, and ${he} <span class="hotpink">eagerly awaits</span> the day ${S.Matron ? `more of your slaves join ${him} in ${V.nurseryName} ` : `you assign more nurses to ${V.nurseryName} to help ${him} relieve ${his} ${slave.balls ? `swollen balls` : `tension`}`}. `;	// TODO:
-									}
-								} else if (slave.fetishKnown && slave.fetishStrength > 60) {
-									if (slave.fetish === "sadist") {
-										if (App.Entity.facilities.nursery.employeesIDs().size > 2) {
-											r += `Under the rules, ${he}'s allowed to sexually abuse other slaves, and ${he} <span class="hotpink">adores</span> you for providing a whole nursery of slaves for ${him} to rape. `;
-										} else {
-											r += `Under the rules, ${he}'s allowed to sexually abuse other slaves, and ${he} <span class="hotpink">eagerly awaits</span> the day ${S.Matron ? `more of your slaves join ${him} in ${V.nurseryName}` : `you assign more nurses to ${V.nurseryName} to help ${him} unwind`}. `;
-										}
-									} else if (slave.fetish === "dom") {
-										if (App.Entity.facilities.nursery.employeesIDs().size > 2) {
-											r += `Under the rules, ${he}'s allowed to force other slaves to have sex with ${him}, and ${he} <span class="hotpink">adores</span> you for providing a whole nursery of slaves for ${him} to dominate. `;
-										} else {
-											r += `Under the rules, ${he}'s allowed to force other slaves to have sex with ${him}, and ${he} <span class="hotpink">eagerly awaits</span> the day ${S.Matron ? `more of your slaves join ${him} in ${V.nurseryName}` : `you assign more nurses to ${V.nurseryName} to help ${him} unwind`}. `;
-										}
-									}
-								}
-								slave.devotion++;
-							}
-						} else {
-							if (slave.devotion <= 20 && slave.devotion > -20) {
-								if (App.Entity.facilities.nursery.employeesIDs().size > 2) {
-									r += `Since ${he}'s low in the slave hierarchy, <span class="mediumaquamarine">${he} knows</span> that the rule that slaves must get consent before having sex with ${him} are all that protect ${him} from abuse. `;
-								} else {
-									r += `Since ${he}'s low in the slave hierarchy, <span class="mediumaquamarine">${he} knows</span> that the rule that slaves must get consent before having sex with ${him} are all that protect ${him} from abuse. Well, that and the fact ${V.nurseryName} is ${S.Matron ? `mostly frequented by other slaveowners' stock` : `${his} little private sanctuary`}. `;
-								}
-								slave.trust++;
-							}
-						}
-
-						if (!slave.attrKnown) {
-							if ((V.week - slave.weekAcquired > 4) && slave.energy > 20) {
-								r += `${capFirstChar(V.assistant.name)} has been monitoring ${him} as ${he} mingles with other busily working slaves, analyzing ${his} sexual tastes. It seems ${he} is ${attractionDiscovery(slave)}`;
-								slave.attrKnown = 1;
-							}
-						}
-
-						r += App.SlaveAssignment.rewardAndPunishment(slave);
-
-						break;
-				}
-			}
-		}
-
-		return r;
-	}
-
-	function attractionDiscovery(slave) {
-		let r = ``;
-
-		if (slave.attrXY <= 5) {
-			r += `<span class="red">disgusted by men</span>`;
-		} else if (slave.attrXY <= 15) {
-			r += `<span class="red">turned off by men</span>`;
-		} else if (slave.attrXY <= 35) {
-			r += `<span class="red">not attracted to men</span>`;
-		} else if (slave.attrXY <= 65) {
-			r += `indifferent to men`;
-		} else if (slave.attrXY <= 85) {
-			r += `<span class="green">attracted to men</span>`;
-		} else if (slave.attrXY <= 95) {
-			r += `<span class="green">aroused by men</span>`;
-		} else {
-			r += `<span class="green">passionate about men</span>`;
-		}
-		r += ` and `;
-		if (slave.attrXX <= 5) {
-			r += `<span class="red">disgusted by women</span>`;
-		} else if (slave.attrXX <= 15) {
-			r += `<span class="red">turned off by women</span>`;
-		} else if (slave.attrXX <= 35) {
-			r += `<span class="red">not attracted to women</span>`;
-		} else if (slave.attrXX <= 65) {
-			r += `indifferent to women. `;
-		} else if (slave.attrXX <= 85) {
-			r += `<span class="green">attracted to women</span>`;
-		} else if (slave.attrXX <= 95) {
-			r += `<span class="green">aroused by women</span>`;
-		} else {
-			r += `<span class="green">passionate about women</span>`;
-		}
-
-		return r;
-	}
-
-	function playerFetishPlay(slave) {
-		const
-			{
-				// eslint-disable-next-line no-unused-vars
-				he, him, his, hers, himself, boy, He, His
-			} = getPronouns(slave);
-
-		let r = ``;
-
-		if (slave.fetishKnown && slave.fetishStrength >= 60) {
-			switch (slave.fetish) {
-				case "submissive":
-					r += `hold ${him} down and fuck ${him}`;
-					break;
-				case "cumslut":
-					if (PC.dick) {
-						r += `cum in ${his} mouth`;
-					} else {
-						r += `use your strap-on on ${his} mouth`;
-					}
-					break;
-				case "humiliation":
-					r += `use ${him} in public`;
-					break;
-				case "buttslut":
-					r += `fuck ${his} butt`;
-					break;
-				case "boobs":
-					r += `fondle ${his} breasts`;
-					if (slave.lactation > 0) {
-						slave.lactationDuration = 2;
-						slave.boobs -= slave.boobsMilk;
-						slave.boobsMilk = 0;
-					}
-					break;
-				case "sadist":
-					r += `let ${him} help you abuse other slaves`;
-					break;
-				case "masochist":
-					r += `hurt ${him}`;
-					break;
-				case "dom":
-					r += `let ${him} help you use other slaves`;
-					break;
-				case "pregnancy":
-					if (isFertile(slave) && PC.dick) {
-						r += `put a baby in ${him}`;
-					} else if (slave.bellyPreg >= 1500 || slave.bellyImplant >= 1500) {
-						r += `enjoy ${his} fecund curves`;
-					} else {
-						r += `breed ${him}`;
-					}
-					break;
-				default:
-					r += `fuck ${him}`;
-					break;
-			}
-		} else {
-			r += `fuck ${him}`;
-		}
-		return r;
-	}
-
-	function playerEnergy(slave) {
-		const
-			{
-				// eslint-disable-next-line no-unused-vars
-				he, him, his, hers, himself, boy, He, His
-			} = getPronouns(slave);
-
-		let r = ``;
-
-		if (energy > 0) {
-			if (energy === 3) {
-				r += `You have surplus sexual energy to burn, even when ${he} doesn't ask, and ${he}`;
-				if (slave.devotion < -20) {
-					r += `<span class="hotpink">hates ${himself}</span> for how often ${he} gets off on you relieving your needs with ${his} body. `;
-				} else if (slave.devotion <= 50 || slave.trust <= 20) {
-					r += `<span class="hotpink">gets used to being a sex slave</span> every time ${he} climaxes as you use ${him}. `;
-				} else {
-					r += `<span class="hotpink">eagerly looks forward</span> to each climax ${he} shares with you. `;
-				}
-				slave.devotion += 2;
-				slave.need = 0;
-				SimpleSexAct.Player(slave, 10);
-			} else if (energy === 2) {
-				r += `You have surplus sexual energy to fuck ${him} whenever <<if $slaves[$i].relationship == -3>> you notice ${his} need<<else>>${he} forces ${himself} to ask<</if>>, and ${he} is <span class="hotpink">sexually dependent</span> on you. `;
-				slave.devotion++;
-				slave.need -= 40;
-				SimpleSexAct.Player(slave, 5);
-			} else if (slave.relationship === -3) {
-				r += `You have little surplus sexual energy, but you make sure to keep your wife's needs in mind<<if $slaves[$i].devotion < -20>>, even if ${he} doesn't want it<</if>>. `;
-				slave.need -= 40;
-				SimpleSexAct.Player(slave, 5);
-			} else {
-				r += `You have little surplus sexual energy, and occasionally, ${he} asks in vain. `;
-				slave.need -= 20;
-				SimpleSexAct.Player(slave, 2);
-			}
-		} else {
-			r += `You have no surplus sexual energy, and ${he} asks in vain, <span class="gold">reducing ${his} trust</span> in you. `;
-			slave.trust--;
-		}
-
-		return r;
-	}
-
-	function playerDiscoversFetish(slave) {
-		const
-			{
-				// eslint-disable-next-line no-unused-vars
-				he, him, his, hers, himself, boy, He, His
-			} = getPronouns(slave);
-
-		let r = ``;
-
-		if (!slave.fetishKnown) {
-			if (energy > 0) {
-				if (energy > jsRandom(0, 5)) {
-					r += `You discover that ${he} really likes it when you`;
-					switch (slave.fetish) {
-						case "submissive":
-							r += `hold ${him} down and fuck ${him}; <span class="lightcoral">${he}'s a submissive!</span>`;
-							break;
-						case "cumslut":
-							if (PC.dick) {
-								r += `cum in ${his} mouth; <span class="lightcoral">${he}'s a cumslut!</span>`;
-							} else {
-								r += `use your strap-on in ${his} mouth; <span class="lightcoral">${he}'s a cumslut!</span>`;
-							}
-							break;
-						case "humiliation":
-							r += `use ${him} in public; <span class="lightcoral">${he}'s a humiliation fetishist!</span>`;
-							break;
-						case "buttslut":
-							r += `<<if canDoAnal($slaves[$i])>>fuck ${his} butt<<else>>tease ${his} anus<</if>>; <span class="lightcoral">${he}'s an anal slut!</span>`;
-							break;
-						case "boobs":
-							r += `fondle ${his} breasts; <span class="lightcoral">${he}'s a boob fetishist!</span>`;
-							break;
-						case "sadist":
-							r += `let ${him} help you abuse other slaves; <span class="lightcoral">${he}'s a sadist!</span>`;
-							break;
-						case "masochist":
-							r += `hurt ${him}; <span class="lightcoral">${he}'s a masochist!</span>`;
-							break;
-						case "dom":
-							r += `let ${him} help you use other slaves; <span class="lightcoral">${he}'s dominant!</span>`;
-							break;
-						case "pregnancy":
-							if (PC.dick) {
-								if (!slave.mpreg) {
-									r += `come <<if canDoVaginal($slaves[$i])>>inside<<else>>on<</if>> ${him}; <span class="lightcoral">${he}'s a pregnancy fetishist!</span>`;
-								} else {
-									r += `come <<if canDoAnal($slaves[$i])>>inside<<else>>on<</if>> ${him}; <span class="lightcoral">${he}'s a pregnancy fetishist!</span>`;
-								}
-							} else {
-								r += `talk dirty and call ${him} a mother; <span class="lightcoral">${he}'s a pregnancy fetishist!</span>`;
-							}
-							break;
-						default:
-							r += `fuck ${him}; <span class="lightcoral">${he}'s got a normal sexuality. </span>`;
-							break;
-					}
-					slave.fetishKnown = 1;
-				}
-			}
-		}
-
-		return r;
-	}
-
-	function playerDrugEffects(slave) {
-		const
-			{
-				// eslint-disable-next-line no-unused-vars
-				he, him, his, hers, himself, boy, He, His
-			} = getPronouns(slave);
-
-		let r = ``;
-
-		if (slave.balls > 0) {
-			if (slave.drugs === "testicle enhancement" || slave.drugs === "intensive testicle enhancement") {
-				if (slave.devotion >= 20 || slave.trust < -20) {
-					if (slave.hormoneBalance >= 100) {
-						r += `${He} can't seem to get enough cum out of ${his} terribly swollen balls in one orgasm to relieve the pressure:`;
-						if (slave.dick) {
-							r += `${his} poor soft dick produces slow, anemic ejaculations, no matter how backed up ${he} is. `;
-						} else {
-							r += `${his} cumhole produces slow, anemic ejaculations, no matter how backed up ${he} is. `;
-						}
-						r += `This forces ${him} to come to you for release many times a day, and ${he} <span class="mediumaquamarine">is desperately reliant</span>`;
-						if (slave.anus > 0 && canDoAnal(slave) && energy > 0) {
-							r += `on your <<if $PC.dick == 0>>strap-on<<else>>penis<</if>> inside ${his} ass as a source of relief. `;
-						} else {
-							r += `on you for relief. `;
-						}
-						slave.trust += 2;
-					} else {
-						r += `${His} terribly swollen balls force ${him} to come to you for release several times a day, and ${he} <span class="mediumaquamarine">learns to rely</span>`;
-						if (slave.anus > 0 && canDoAnal(slave) && energy > 0) {
-							r += `on your <<if $PC.dick == 0>>strap-on<<else>>penis<</if>> inside ${his} ass as a source of relief. `;
-						} else {
-							r += `on you for relief. `;
-						}
-						slave.trust++;
-					}
-				} else {
-					r += `${He} refuses to come to you for help with ${his} terribly swollen balls, no matter how backed up ${he} becomes. The intense blue-balling only <span class="mediumorchid">makes ${him} dislike you more. </span>`;
-					slave.devotion--;
-				}
-			} else if (slave.drugs === "hyper testicle enhancement") {
-				if (slave.devotion >= 20 || slave.trust < -20) {
-					if (slave.hormoneBalance >= 100) {
-						r += `${He} can't seem to get enough cum out of ${his} grotesquely swollen balls in one orgasm to get relieve the pressure:`;
-						if (slave.dick) {
-							r += `${his} poor soft dick produces slow, anemic ejaculations, no matter how backed up ${he} is. `;
-						} else {
-							r += `${his} cumhole produces slow, anemic ejaculations, no matter how backed up ${he} is. `;
-						}
-						r += `This forces ${him} to come to you for release many times a day, and ${he} <span class="mediumaquamarine">is desperately reliant</span>`;
-						if (slave.anus > 0 && canDoAnal(slave) && energy > 0) {
-							r += `on your <<if $PC.dick == 0>>strap-on<<else>>penis<</if>> inside ${his} ass as a source of relief. `;
-						} else {
-							r += `on you for relief. `;
-						}
-						slave.trust += 2;
-					} else {
-						r += `${His} grotesquely swollen balls force ${him} to come to you for release dozens of times a day, and ${he} <span class="mediumaquamarine">is desperately reliant</span>`;
-						if (slave.anus > 0 && canDoAnal(slave) && energy > 0) {
-							r += `on your <<if $PC.dick == 0>>strap-on<<else>>penis<</if>> inside ${his} ass as a source of relief. `;
-						} else {
-							r += `on you for relief. `;
-						}
-						slave.trust++;
-					}
-				} else {
-					r += `${He} refuses to come to you for help with ${his} grotesquely swollen balls, no matter how backed up and sore ${he} becomes. The intense blue-balling only <span class="mediumorchid">makes ${him} hate you more. </span>`;
-					slave.devotion -= 3;
-				}
-			}
-		}
-
-		if (slave.drugs === "super fertility drugs" && canImpreg(slave, PC)) {
-			if (slave.devotion >= 20 || slave.trust < -20) {
-				r += `${His} reproductive system is in overdrive leading ${him} to come to you for insemination several times a day; ${he} <span class="mediumaquamarine">desperately hopes</span> for the day your seed takes root in ${his} womb. `;
-				slave.trust++;
-			}
-		}
-
-		return r;
-	}
-
-	function masturbationFetishPlay(slave) {
-		const
-			{
-				// eslint-disable-next-line no-unused-vars
-				he, him, his, hers, himself, boy, He, His
-			} = getPronouns(slave);
-
-		let r = ``;
-
-		if (slave.fetishKnown && slave.fetishStrength >= 60) {
-			switch (slave.fetish) {
-				case "submissive":
-					r += `frequently pretends to be getting held down and dominated. `;
-					break;
-				case "cumslut":
-					if (slave.dick > 5) {
-						r += `enjoys giving ${himself} head. `;
-					} else if (slave.dick) {
-						r += `enjoys licking up ${his} own cum. `;
-					} else {
-						r += `always has a dildo in ${his} mouth. `;
-					}
-					break;
-				case "humiliation":
-					r += `usually does it out in the open for all to see. `;
-					break;
-				case "buttslut":
-					if (slave.anus > 0) {
-						r += `usually pounds ${his} ass with the largest dildo ${he} can find. `;
-					} else {
-						r += `enjoys fiddling with ${his} virgin asshole. `;
-					}
-					break;
-				case "boobs":
-					r += `pays extra attention to ${his} breasts and nipples. `;
-					if (slave.lactation) {
-						slave.lactationDuration = 2;
-						slave.boobs -= slave.boobsMilk;
-						slave.boobsMilk = 0;
-					} else {
-						induceLactation(slave);
-					}
-					break;
-				case "sadist":
-					r += `frequently poses threats at ${himself}. `;
-					break;
-				case "masochist":
-					r += `frequently pretends to be getting held down and forcibly raped. `;
-					break;
-				case "dom":
-					r += `usually pretends to dominate ${himself}. `;
-					break;
-				case "pregnancy":
-					if (slave.belly > 1500) {
-						let belly = bellyAdjective(slave);
-						r += `always rubs and teases ${his} ${belly} belly while doing so. `;
-					} else if (isItemAccessible.entry("a small empathy belly", "bellyAccessory")) {
-						r += `frequently straps on a fake belly to enhance ${his} fun. `;
-					} else {
-						r += `frequently pretends to be`;
-						if (slave.balls) {
-							r += `getting a girl pregnant. `;
-						} else {
-							r += `getting knocked up. `;
-						}
-					}
-					break;
-				default:
-					if (slave.energy > 95) {
-						r += `strives to achieve as many orgasms as ${he} can in one session. `;
-					} else {
-						r += `quickly gets off and moves on. `;
-					}
-					break;
-			}
-		} else if (slave.energy > 95) {
-			r += `strives to achieve as many orgasms as ${he} can in one session. `;
-		} else {
-			r += `quickly gets off and moves on. `;
-		}
-
-		return r;
-	}
-
-	function masturbationDiscoversFetish(slave) {
-		const
-			{
-				// eslint-disable-next-line no-unused-vars
-				he, him, his, hers, himself, boy, He, His
-			} = getPronouns(slave);
-
-		let r = ``;
-
-		if (!slave.fetishKnown && jsRandom(1, 20) === 1) {
-			r += `However, you start to notice a trend in ${his} fantasies,`;
-			switch (slave.fetish) {
-				case "submissive":
-					r += `${he} likes to tie ${himself} up and boss ${himself} around; <span class="lightcoral">${he}'s a submissive!</span>`;
-					break;
-				case "cumslut":
-					if (slave.dick) {
-						r += `${he} often eats ${his} own cum when ${he}'s finished; <span class="lightcoral">${he}'s a cumslut!</span>`;
-					} else {
-						r += `${he} likes to have something, anything, in ${his} mouth while ${he} masturbates; <span class="lightcoral">${he}'s a cumslut!</span>`;
-					}
-					break;
-				case "humiliation":
-					r += `${he} tends to masturbate in places where others can walk in on ${him}; <span class="lightcoral">${he}'s a humiliation fetishist!</span>`;
-					break;
-				case "buttslut":
-					r += `${he} always pays special attention to ${his} butthole; <span class="lightcoral">${he}'s an anal slut!</span>`;
-					break;
-				case "boobs":
-					r += `${he} always has a hand to ${his} nipples; <span class="lightcoral">${he}'s a boob fetishist!</span>`;
-					if (slave.lactation) {
-						slave.lactationDuration = 2;
-						slave.boobs -= slave.boobsMilk;
-						slave.boobsMilk = 0;
-					} else {
-						induceLactation(slave);
-					}
-					break;
-				case "sadist":
-					r += `${he} tends to threaten ${his} toys; <span class="lightcoral">${he}'s a sadist!</span>`;
-					break;
-				case "masochist":
-					r += `${he} often to abuses ${himself}; <span class="lightcoral">${he}'s a masochist!</span>`;
-					break;
-				case "dom":
-					r += `${he} sometimes bosses ${his} toys around; <span class="lightcoral">${he}'s dominant!</span>`;
-					break;
-				case "pregnancy":
-					r += `${he} frequently pretends to either get pregnant, be pregnant, or get someone else pregnant; <span class="lightcoral">${he}'s a pregnancy fetishist!</span>`;
-					break;
-				default:
-					if (slave.energy > 95) {
-						r += `${he}'s always horny; <span class="lightcoral">${he}'s a nympho!</span>`;
-					} else {
-						r += `<span class="lightcoral">they are incredibly mundane. </span>`;
-					}
-					break;
-			}
-		}
-
-		return r;
-	}
-
-	function masturbationDrugEffects(slave) {
-		const
-			{
-				// eslint-disable-next-line no-unused-vars
-				he, him, his, hers, himself, boy, He, His
-			} = getPronouns(slave);
-
-		let r = ``;
-
-		if (slave.balls) {
-			if (slave.drugs === "testicle enhancement" || slave.drugs === "intensive testicle enhancement") {
-				if (slave.hormoneBalance >= 100) {
-					r += `${He} can't seem to get enough cum out of ${his} terribly swollen balls in one orgasm to get relieve the pressure:`;
-					if (slave.dick) {
-						r += `${his} poor soft dick produces slow, anemic ejaculations, no matter how backed up ${he} is. `;
-					} else {
-						r += `${his} cumhole produces slow, anemic ejaculations, no matter how backed up ${he} is. `;
-					}
-					r += `${He} masturbates as often as ${he} can, but <span class="mediumorchid">can't find relief. </span>`;
-					slave.devotion--;
-				} else {
-					r += `${His} terribly swollen balls force ${him} to masturbate several times a day, cultivating a need for sex that <span class="mediumorchid">${he} can't fulfill. </span>`;
-					slave.devotion--;
-				}
-			} else if (slave.drugs === "hyper testicle enhancement") {
-				if (slave.hormoneBalance >= 100) {
-					r += `${He} can't seem to get enough cum out of ${his} grotesquely swollen balls in one orgasm to get relieve the pressure:`;
-					if (slave.dick) {
-						r += `${his} poor soft dick produces slow, anemic ejaculations, no matter how backed up ${he} is. `;
-					} else {
-						r += `${his} cumhole produces slow, anemic ejaculations, no matter how backed up ${he} is. `;
-					}
-					r += `${He} masturbates non-stop, but <span class="mediumorchid">can't find relief. </span>`;
-					slave.devotion -= 3;
-				} else {
-					r += `${His} grotesquely swollen balls force ${him} to masturbate constantly, cultivating a need for sex that <span class="mediumorchid">${he} can't fulfill. </span>`;
-					slave.devotion--;
-				}
-
-				if (slave.energy > 40) {
-					r += `The constant orgasms steadily lose their impact, <span class="red">weakening ${his} sex drive. </span>`;
-					slave.energy -= 2;
-				}
-			}
-		}
-
-		if (slave.drugs === "super fertility drugs" && canGetPregnant(slave)) {
-			r += `${His} reproductive system is in overdrive,`;
-			if (slave.dick > 9) {
-				r += `leaving ${him} <span class="mediumorchid">desperately fucking ${himself}</span> in an effort to get pregnant since <span class="gold">you won't <<if $PC.dick>>give ${him}<<else>>let ${him} find<</if>> the dick ${he} needs. </span>`;
-				if (canImpreg(slave, slave)) {
-					knockMeUp(slave, 5, 2, slave.ID, 1);
-				}
-				if (slave.mpreg && slave.anus === 0) {
-					r += `<span class="lime">${He} is so baby crazed ${he} takes ${his} own anal virginity. </span>`;
-					slave.anus++;
-				} else if (slave.vagina === 0) {
-					r += `<span class="lime">${He} is so baby crazed ${he} takes ${his} own virginity. </span>`;
-					slave.vagina++;
-				}
-				slave.devotion -= 3;
-				slave.trust -= 2;
-			} else if (slave.devotion >= -20) {
-				r += `leaving ${him} <span class="mediumorchid">completely unfulfilled</span> since <span class="gold">you won't <<if $PC.dick>>give ${him}<<else>>let ${him} find<</if>> the dick ${he} needs. </span>`;
-				slave.devotion -= 3;
-				slave.trust -= 2;
-			} else {
-				r += `leaving ${him} desperate for a thorough seeding <span class="mediumorchid">that you've forbidden ${him} from having. </span>`;
-				slave.devotion -= 3;
-			}
-		}
-
-		if (slave.energy >= 60) {
-			r += `${His} chronic masturbation <span class="red">steadily dulls</span> ${his} sexual pleasure. `;
-			slave.energy--;
-		}
-
-		return r;
-	}
-
-	function rapeFetish(slave) {
-		const
-			{
-				// eslint-disable-next-line no-unused-vars
-				he, him, his, hers, himself, boy, He, His
-			} = getPronouns(slave);
-
-		let
-			r = ``,
-			who = (slave.rules.release.slaves === 1) ? `other slaves` : `${his} family`; // should be the only two choices if we get here
-
-		if (slave.fetishKnown && slave.fetishStrength >= 60) {
-			switch (slave.fetish) {
-				case "submissive":
-					r += `plead that ${who} fuck ${him}. `;
-					if (averageDick > 4) {
-						if (slave.anus > 0 && slave.anus < 3 && canDoAnal(slave)) {
-							if ((slave.anus * 40) - (averageDick * 5) < jsRandom(1, 100)) {
-								r += `<span class="lime">${His} asshole is loosened</span> during sex with ${who}, since most of the cocks ${he} enticed a dominating buttfuck from are `;
-								slave.anus++;
-								actX(slave, "anal", 3);
-							}
-
-							if (averageDick > 5) {
-								if (slave.vagina > 0 && slave.vagina < 3 && canDoVaginal(slave)) {
-									if ((slave.vagina * 40) - (averageDick * 5) < jsRandom(1, 100)) {
-										r += `Since most of the slaves ${he} enticed a pounding from are extremely hung, <span class="lime">${his} cunt gets stretched out. </span>`;
-										slave.vagina++;
-										actX(slave, "vaginal", 3);
-									}
-								}
-							}
-						}
-					}
-					SimpleSexAct.Slave(slave, 7);
-					break;
-				case "cumslut":
-					if (slave.rules.release.slaves === 1) {
-						r += `suck or be sucked by any slave ${he} fancies. `;
-					} else {
-						r += `suck or be sucked by any relative ${he} fancies. `;
-					}
-					actX(slave, "oral", jsRandom(5, 15));
-					break;
-				case "humiliation":
-					r += `demand that ${who} let ${him} fuck them in public. `;
-					if (!slave.rivalry) {
-						let rival = randomRapeRivalryTarget(slave, (s) => { return s.devotion <= 20 && s.trust < -20; });
-						if (jsDef(rival)) {
-							r += `Craving a rush, ${he} repeatedly forces a reluctant ${SlaveFullName(rival)} to have sex with ${him} in public. ${rival.slaveName} resents this, and ${slave.slaveName}'s ongoing sexual abuse <span class="lightsalmon">starts a rivalry</span> between them. `;
-							slave.rivalry = 1;
-							rival.rivalry = 1;
-							slave.rivalryTarget = rival.ID;
-							rival.rivalryTarget = slave.ID;
-							SimpleSexAct.Slave(rival, 4);
-							if (canPenetrate(rival)) {
-								actX(rival, "penetrative", jsRandom(1, 3));
-							}
-
-							if (!App.Utils.sexAllowed(slave, rival)) {
-								r += `As the rules do not permit ${slave.slaveName} and ${rival.slaveName} to have sex, ${he} is <span class="yellow">severely punished.</span> `;
-								slave.trust -= 4;
-							}
-						}
-					}
-					SimpleSexAct.Slave(slave, 4);
-					if (canPenetrate(slave)) {
-						actX(slave, "penetrative", jsRandom(1, 3));
-					}
-					break;
-				case "buttslut":
-					r += `demand that ${who} penetrate ${his} anus. `;
-					if (averageDick > 4) {
-						if (slave.anus > 0 && slave.anus < 3 && canDoAnal(slave)) {
-							if ((slave.anus * 30) - (averageDick * 5) < jsRandom(1, 100)) {
-								r += `Since most of the slaves ${he} demands anal sex from are extremely hung, <span class="lime">${his} asshole gets stretched out. </span>`;
-								slave.anus++;
-							}
-						}
-					}
-					actX(slave, "anal", jsRandom(5, 12));
-					break;
-				case "boobs":
-					r += `demand that ${who} massage ${his} breasts. `;
-					if (slave.lactation) {
-						slave.lactationDuration = 2;
-						slave.boobs -= slave.boobsMilk;
-						slave.boobsMilk = 0;
-					} else {
-						induceLactation(slave);
-					}
-					actX(slave, "mammary", jsRandom(10, 25));
-					break;
-				case "sadist":
-					if (slave.rules.release.slaves === 1) {
-						r += `force the most reluctant slaves to let ${him} fuck them. `;
-					} else { // should imply hasFamilySex
-						r += `force ${his} most reluctant family members to let ${him} fuck them. `;
-					}
-					if (!slave.rivalry) {
-						let rival = randomRapeRivalryTarget(slave, (s) => { return s.devotion <= 50 && s.sexualFlaw !== "none"; });
-						if (jsDef(rival)) {
-							const {
-								// eslint-disable-next-line no-unused-vars
-								he2, him2, his2, hers2, himself2, boy2, He2, His2
-							} = getPronouns(rival).appendSuffix('2');
-
-							r += `${He} focuses on ${SlaveFullName(rival)}, who has a sexual flaw ${slave.slaveName} can exploit. ${He} sadistically`;
-							if (rival.sexualFlaw === "hates oral") {
-								r += `rapes the poor slave's face${!canAchieveErection(slave) ? ` with ${his} fingers` : ``}. ${rival.slaveName} hates oral`;
-							} else if (rival.sexualFlaw === "hates penetration" && canDoVaginal(rival)) {
-								r += `rapes the poor slave's pussy${!canAchieveErection(slave) ? ` with ${his} fingers` : ``}. ${rival.slaveName} hates penetration`;
-							} else if ((rival.sexualFlaw === "hates anal" || rival.sexualFlaw === "hates penetration") && canDoAnal(rival)) {
-								r += `rapes the poor slave's ass${!canAchieveErection(slave) ? ` with ${his} fingers` : ``}. ${rival.slaveName} hates anal`;
-							} else if (rival.sexualFlaw === "shamefast") {
-								r += `rapes the poor slave in public. ${rival.slaveName} is terribly shamefast`;
-							} else if (rival.sexualFlaw === "idealistic") {
-								r += `rapes the poor slave every time ${he} catches ${him2} being romantic. ${rival.slaveName} is still idealistic`;
-							} else {
-								r += `rapes the poor slave every chance ${he} gets,`;
-							}
-							r += ` and the sexual abuse <span class="lightsalmon">starts a rivalry</span> between them. `;
-							slave.rivalry = 1;
-							rival.rivalry = 1;
-							slave.rivalryTarget = rival.ID;
-							rival.rivalryTarget = slave.ID;
-							SimpleSexAct.Slave(rival, 4);
-							if (canPenetrate(rival)) {
-								actX(rival, "penetrative", jsRandom(1, 3));
-							}
-							if (!App.Utils.sexAllowed(slave, rival)) {
-								r += `As the rules do not permit ${slave.slaveName} and ${rival.slaveName} to have sex, ${he} is <span class="yellow">severely punished.</span> `;
-								slave.trust -= 4;
-							}
-						}
-					}
-					SimpleSexAct.Slave(slave, 4);
-					if (canPenetrate(slave)) {
-						actX(slave, "penetrative", jsRandom(1, 3));
-					}
-					break;
-				case "masochist":
-					r += `demand that ${who} hurt ${him}. `;
-					if (averageDick > 4) {
-						if (slave.anus > 0 && slave.anus < 3 && canDoAnal(slave)) {
-							if ((slave.anus * 30) - (averageDick * 5) < jsRandom(1, 100)) {
-								r += `<span class="lime">${His} asshole is loosened</span> during sex with hung slaves, since ${he} often relies on painal to address ${his} needs. `;
-								slave.anus++;
-								actX(slave, "anal", 3);
-							}
-						}
-
-						if (averageDick > 5) {
-							if (slave.vagina > 0 && slave.vagina < 3 && canDoVaginal(slave)) {
-								if ((slave.vagina * 30) - (averageDick * 5) < jsRandom(1, 100)) {
-									r += `Since ${he} usually demands that hung slaves fuck ${him} hard enough to make ${his} pussy hurt, <span class="lime">${his} cunt gets stretched out. </span>`;
-									slave.vagina++;
-									actX(slave, "vaginal", 3);
-								}
-							}
-						}
-					}
-					SimpleSexAct.Slave(slave, 12);
-					break;
-				case "dom":
-					r += `force ${who} to submit to ${him}. `;
-					if (!slave.rivalry) {
-						let rival = randomRapeRivalryTarget(slave, (s) => { return s.devotion <= 20 && s.trust < -20; });
-						if (jsDef(rival)) {
-							r += `${He} repeatedly rapes a reluctant ${SlaveFullName(rival)}; ${he} can't seem to keep ${his} hands off the poor slave, who can't avoid ${him}. Not surprisingly, ${rival.slaveName} resents this, and ${slave.slaveName}'s ongoing sexual abuse <span class="lightsalmon">starts a rivalry</span> between them. `;
-							slave.rivalry = 1;
-							rival.rivalry = 1;
-							slave.rivalryTarget = rival.ID;
-							rival.rivalryTarget = slave.ID;
-							SimpleSexAct.Slave(rival, 4);
-
-							if (!App.Utils.sexAllowed(slave, rival)) {
-								r += `As the rules do not permit ${slave.slaveName} and ${rival.slaveName} to have sex, ${he} is <span class="yellow">severely punished.</span> `;
-								slave.trust -= 4;
-							}
-						}
-					}
-					SimpleSexAct.Slave(slave, 7);
-					if (canPenetrate(slave)) {
-						actX(slave, "penetrative", jsRandom(6, 9));
-					}
-					break;
-				case "pregnancy":
-					r += `demand that ${who} indulge ${his} pregnancy fetish. `;
-					if (averageDick > 5) {
-						if (!slave.mpreg) {
-							if (slave.vagina > 0 && slave.vagina < 3 && canDoVaginal(slave)) {
-								if ((slave.vagina * 40) - (averageDick * 5) < jsRandom(1, 100)) {
-									r += `Since ${he} constantly demands to be fucked deeply to get ${his} womb filled with cum, <span class="lime">${his} cunt gets stretched out. </span>`;
-									slave.vagina++;
-									actX(slave, "vaginal", jsRandom(7, 14));
-								}
-							}
-						} else {
-							if (slave.anus > 0 && slave.anus < 3 && canDoAnal(slave)) {
-								if ((slave.anus * 40) - (averageDick * 5) < jsRandom(1, 100)) {
-									r += `Since ${he} constantly demands to be fucked deeply to get ${his} womb filled with cum, <span class="lime">${his} ass gets stretched out. </span>`;
-									slave.anus++;
-									actX(slave, "anal", jsRandom(7, 14));
-								}
-							}
-						}
-					}
-
-					if (canPenetrate(slave)) {
-						actX(slave, "penetrative", jsRandom(6, 9));
-					}
-					break;
-				default:
-					if (slave.energy > 95) {
-						r += `demand that ${who} satisfy ${his} formidable appetites. `;
-						if (averageDick > 4) {
-							if (slave.anus > 0 && slave.anus < 3 && canDoAnal(slave)) {
-								if ((slave.anus * 30) - (averageDick * 5) < jsRandom(1, 100)) {
-									r += `<span class="lime">${His} asshole is loosened</span> during sex with well endowed slaves, since ${he}'s so addicted to sex all ${his} holes see heavy traffic. `;
-									slave.anus++;
-									actX(slave, "anal", 3);
-								}
-							}
-							if (averageDick > 5) {
-								if (slave.vagina > 0 && slave.vagina < 3 && canDoVaginal(slave)) {
-									if ((slave.vagina * 30) - (averageDick * 5) < jsRandom(1, 100)) {
-										r += `${He} indulges in non-stop sex with your well endowed slaves, so much so that <span class="lime">${his} cunt gets stretched out. </span>`;
-										slave.vagina++;
-										actX(slave, "vaginal", 3);
-									}
-								}
-							}
-						}
-						SimpleSexAct.Slave(slave, 7);
-						if (canPenetrate(slave)) {
-							actX(slave, "penetrative", jsRandom(3, 6));
-						}
-					} else {
-						r += `demand that ${who} have sex with ${him}. `;
-						SimpleSexAct.Slave(slave, 7);
-						if (canPenetrate(slave)) {
-							actX(slave, "penetrative", jsRandom(3, 6));
-						}
-					}
-					break;
-			}
-		} else {
-			r += `demand that ${who} have sex with ${him}. `;
-			SimpleSexAct.Slave(slave, 7);
-			if (canPenetrate(slave)) {
-				actX(slave, "penetrative", jsRandom(3, 6));
-			}
-		}
-
-		return r;
-	}
-
-	function rapeDiscoversFetish(slave) {
-		const
-			{
-				// eslint-disable-next-line no-unused-vars
-				he, him, his, hers, himself, boy, He, His
-			} = getPronouns(slave);
-
-		let r = ``;
-
-		if (!slave.fetishKnown) {
-			if (jsRandom(1, 2) === 1) {
-				slave.fetishKnown = 1;
-				r += `You discover that ${he} really likes it when the other slaves`;
-				switch (slave.fetish) {
-					case "submissive":
-						r += `hold ${him} down and fuck ${him}; <span class="lightcoral">${he}'s a submissive!</span>`;
-						break;
-					case "cumslut":
-						r += `cum in ${his} mouth; <span class="lightcoral">${he}'s a cumslut!</span>`;
-						break;
-					case "humiliation":
-						r += `use ${him} in public; <span class="lightcoral">${he}'s a humiliation fetishist!</span>`;
-						break;
-					case "buttslut":
-						if (slave.anus > 0) {
-							r += `<<if canDoAnal($slaves[$i])>>fuck ${his} butt<<else>>tease ${his} anus<</if>>;`;
-						} else {
-							r += `tease ${his} virgin anus;`;
-						}
-						r += `<span class="lightcoral">${he}'s an anal slut!</span>`;
-						break;
-					case "boobs":
-						r += `fondle ${his} breasts; <span class="lightcoral">${he}'s a boob fetishist!</span>`;
-						if (slave.lactation) {
-							slave.lactationDuration = 2;
-							slave.boobs -= slave.boobsMilk;
-							slave.boobsMilk = 0;
-						} else {
-							induceLactation(slave);
-						}
-						break;
-					case "sadist":
-						r += `let ${him} abuse them; <span class="lightcoral">${he}'s a sadist!</span>`;
-						break;
-					case "masochist":
-						r += `hurt ${him}; <span class="lightcoral">${he}'s a masochist!</span>`;
-						break;
-					case "dom":
-						r += `let ${him} dominate them; <span class="lightcoral">${he}'s dominant!</span>`;
-						break;
-					case "pregnancy":
-						if (!slave.mpreg) {
-							r += `come <<if canDoVaginal($slaves[$i])>>inside<<else>>on<</if>> ${him}; <span class="lightcoral">${he}'s a pregnancy fetishist!</span>`;
-						} else {
-							r += `come <<if canDoAnal($slaves[$i])>>inside<<else>>on<</if>> ${him}; <span class="lightcoral">${he}'s a pregnancy fetishist!</span>`;
-						}
-						break;
-					default:
-						r += `fuck ${him}; <span class="lightcoral">${he}'s got a normal sexuality. </span>`;
-						break;
-				}
-			}
-		}
-
-		return r;
-	}
-
-	function consentFetish(slave) {
-		const
-			{
-				// eslint-disable-next-line no-unused-vars
-				he, him, his, hers, himself, boy, He, His
-			} = getPronouns(slave);
-
-		let r = ``;
-
-		if (slave.fetishKnown && slave.fetishStrength >= 60) {
-			switch (slave.fetish) {
-				case "submissive":
-					r += `usually pairing off with a more dominant slave. `;
-					if (largeDicks(slave, 40)) {
-						r += `<span class="lime">${His} asshole is loosened</span> during sex with other slaves, since most of the cocks ${he} lets dominate ${his} backdoor are very `;
-						slave.anus++;
-						actX(slave, "anal", 3);
-						if (hugeDicks(slave, 40)) {
-							r += `Since most of the slaves ${he} takes a pounding from are extremely hung, <span class="lime">${his} cunt gets stretched out .</span>`;
-							slave.vagina++;
-							actX(slave, "vaginal", 3);
-						}
-					}
-					SimpleSexAct.Slave(slave, 7);
-					break;
-				case "cumslut":
-					r += `and is popular for ${his} willingness to give oral. `;
-					actX(slave, "oral", jsRandom(5, 15));
-					break;
-				case "humiliation":
-					r += `usually asking them to fuck out in the open. `;
-					SimpleSexAct.Slave(slave, 7);
-					if (canPenetrate(slave)) {
-						actX(slave, "penetrative", jsRandom(1, 3));
-					}
-					break;
-				case "buttslut":
-					r += `looking after anyone who will`;
-					if (slave.anus > 0) {
-						if (canDoAnal(slave)) {
-							r += `penetrate`;
-							actX(slave, "anal", jsRandom(5, 12));
-						} else {
-							r += `tease`;
-						}
-						r += `${his} ass`;
-					} else {
-						r += `tease ${his} virgin anus`;
-					}
-					r += `in return. `;
-					if (largeDicks(slave, 30)) {
-						r += `Since most of the slaves ${he} enjoys anal sex with are extremely hung, <span class="lime">${his} asshole gets stretched out .</span>`;
-					}
-					break;
-				case "boobs":
-					r += `seeing to anyone who will show ${his} breasts some love. `;
-					if (slave.lactation) {
-						slave.lactationDuration = 2;
-						slave.boobs -= slave.boobsMilk;
-						slave.boobsMilk = 0;
-					} else {
-						induceLactation(slave);
-					}
-					actX(slave, "mammary", jsRandom(10, 25));
-					break;
-				case "sadist":
-					r += `usually pairing off with a masochistic slave willing to accept ${his} abuse. `;
-					SimpleSexAct.Slave(slave, 7);
-					if (canPenetrate(slave)) {
-						actX(slave, "penetrative", jsRandom(1, 3));
-					}
-					break;
-				case "masochist":
-					r += `usually pairing off with an abusive slave. `;
-					if (largeDicks(slave, 30)) {
-						r += `<span class="lime">${His} asshole is loosened,</span> since ${he} begs hung slaves to fuck ${his} butt until ${he} cries. `;
-						slave.anus++;
-						actX(slave, "anal", 3);
-						if (hugeDicks(slave, 30)) {
-							r += `Since ${he} eagerly begs hung slaves to fuck ${him} until ${he} cries, <span class="lime">${his} cunt gets stretched out .</span>`;
-							slave.vagina++;
-							actX(slave, "vaginal", 3);
-						}
-					}
-					SimpleSexAct.Slave(slave, 6);
-					break;
-				case "dom":
-					r += `usually pairing off with a submissive bitch. `;
-					SimpleSexAct.Slave(slave, 6);
-					if (canPenetrate(slave)) {
-						actX(slave, "penetrative", jsRandom(1, 3));
-					}
-					break;
-				case "pregnancy":
-					r += `doing ${his} best to pair off with any pregnant slaves. `;
-					if (!slave.mpreg) {
-						if (hugeDicks(slave, 40)) {
-							r += `${He} also takes cock whenever ${he} can, begging to be fucked deeply to get ${his} womb filled with cum, so <span class="lime">${his} cunt gets stretched out. </span>`;
-							slave.vagina++;
-							actX(slave, "vaginal", 3);
-						}
-					} else {
-						if (hugeDicks(slave, 40)) {
-							r += `${He} also takes cock whenever ${he} can, begging to be fucked deeply to get ${his} womb filled with cum, so <span class="lime">${his} ass gets stretched out. </span>`;
-							slave.anus++;
-							actX(slave, "anal", 3);
-						}
-					}
-					SimpleSexAct.Slave(slave, 7);
-					if (canPenetrate(slave)) {
-						actX(slave, "penetrative", jsRandom(6, 9));
-					}
-					break;
-				default:
-					if (slave.energy > 95) {
-						r += `and has to give out a lot of favors to get enough attention for ${himself}. `;
-						if (largeDicks(slave, 30)) {
-							r += `<span class="lime">${His} asshole is loosened</span> during sex with well endowed slaves, since ${he}'s so addicted to sex all ${his} holes see heavy traffic. `;
-							slave.anus++;
-							actX(slave, "anal", 3);
-							if (hugeDicks(slave, 30)) {
-								r += `${He} indulges in non-stop sex with your well endowed slaves, so much so that <span class="lime">${his} cunt gets stretched out. </span>`;
-								slave.vagina++;
-								actX(slave, "vaginal", 3);
-							}
-						}
-						SimpleSexAct.Slave(slave, 7);
-						if (canPenetrate(slave)) {
-							actX(slave, "penetrative", jsRandom(3, 6));
-						}
-					} else {
-						r += `doing ${his} best to get off and move on. `;
-						SimpleSexAct.Slave(slave, 7);
-						if (canPenetrate(slave)) {
-							actX(slave, "penetrative", jsRandom(3, 6));
-						}
-					}
-					break;
-			}
-		} else {
-			r += `doing ${his} best to get off and move on. `;
-			SimpleSexAct.Slave(slave, 7);
-			if (canPenetrate(slave)) {
-				actX(slave, "penetrative", jsRandom(3, 6));
-			}
-		}
-
-		return r;
-	}
-
-	function consentDiscoversFetish(slave) {
-		const
-			{
-				// eslint-disable-next-line no-unused-vars
-				he, him, his, hers, himself, boy, He, His
-			} = getPronouns(slave);
-
-		let r = ``;
-
-		if (!slave.fetishKnown) {
-			if (jsRandom(1, 2) === 1) {
-				slave.fetishKnown = 1;
-				r += `However, one of ${his} partners`;
-				switch (slave.fetish) {
-					case "submissive":
-						r += `holds ${him} down, and ${he} loves it; <span class="lightcoral">${he}'s a submissive!</span>`;
-						break;
-					case "cumslut":
-						r += `finally has to push ${him} away to get ${him} to stop sucking; <span class="lightcoral">${he}'s a cumslut!</span>`;
-						break;
-					case "humiliation":
-						r += `fucks ${him} in public, and ${he} loves it; <span class="lightcoral">${he}'s a humiliation fetishist!</span>`;
-						break;
-					case "buttslut":
-						if (slave.anus > 0) {
-							r += `<<if canDoAnal($slaves[$i])>>fucks ${his} butt<<else>>teases ${his} anus<</if>>, and ${he} loves it;`;
-						} else {
-							r += `teases ${his} virgin anus, and ${he} loves it;`;
-						}
-						r += `<span class="lightcoral">${he}'s an anal slut!</span>`;
-						break;
-					case "boobs":
-						r += `fondles ${his} breasts, and ${he} loves it; <span class="lightcoral">${he}'s a boob fetishist!</span>`;
-						if (slave.lactation) {
-							slave.lactationDuration = 2;
-							slave.boobs -= slave.boobsMilk;
-							slave.boobsMilk = 0;
-						} else {
-							induceLactation(slave);
-						}
-						break;
-					case "sadist":
-						r += `asks $slaves[$i].slaveName to hit ${him}, which $slaves[$i].slaveName enjoys doing; <span class="lightcoral">${he}'s a sadist!</span>`;
-						break;
-					case "masochist":
-						r += `hits $slaves[$i].slaveName while fucking ${him}, which only makes ${him} hornier; <span class="lightcoral">${he}'s a masochist!</span>`;
-						break;
-					case "dom":
-						r += `asks $slaves[$i].slaveName to make them $slaves[$i].slaveName's bitch, which $slaves[$i].slaveName manages like a natural; <span class="lightcoral">${he}'s dominant!</span>`;
-						break;
-					case "pregnancy":
-						r += `pretends to get ${him} pregnant, which ${he} really enjoys; <span class="lightcoral">${he}'s a pregnancy fetishist!</span>`;
-						break;
-					default:
-						if (slave.energy > 95) {
-							r += `discovers that ${he} cannot be satisfied; <span class="lightcoral">${he}'s a nympho!</span>`;
-						} else {
-							r += `discovers that ${he} isn't terribly exciting; <span class="lightcoral">${he}'s got a normal sexuality. </span>`;
-						}
-				}
-			}
-		}
-
-		return r;
-	}
-
-	function permissiveDrugEffects(slave) {
-		const
-			{
-				// eslint-disable-next-line no-unused-vars
-				he, him, his, hers, himself, boy, He, His
-			} = getPronouns(slave);
-
-		let r = ``;
-
-		if (slave.balls) {
-			if (slave.drugs === "testicle enhancement" || slave.drugs === "intensive testicle enhancement") {
-				if (slave.devotion >= 20 || slave.trust < -20) {
-					if (slave.hormoneBalance >= 100) {
-						r += `${He} can't seem to get enough cum out of ${his} terribly swollen balls in one orgasm to relieve the pressure:`;
-						if (slave.dick) {
-							r += `${his} poor soft dick produces slow, anemic ejaculations, no matter how backed up ${he} is. `;
-						} else {
-							r += `${his} cumhole produces slow, anemic ejaculations, no matter how backed up ${he} is. `;
-						}
-						r += `${He} is very reliant on your other slaves to help ${him}, which <span class="mediumaquamarine">habituates ${him}</span> to slave sex. `;
-					} else {
-						r += `${His} terribly swollen balls force ${him} to rely on other slaves for release several times a day, and jetting cum into and onto them <span class="mediumaquamarine">habituates ${him}</span> to slave sex. `;
-					}
-					slave.trust++;
-				} else {
-					r += `${He} can't seem to get enough cum out of ${his} terribly swollen balls to relieve the pressure and is either unwilling or unable to get help with it, something ${he} <span class="mediumorchid">blames you for. </span>`;
-					slave.devotion--;
-				}
-			} else if (slave.drugs === "hyper testicle enhancement") {
-				if (slave.devotion >= 20 || slave.trust < -20 || !canPenetrate(slave)) {
-					if (slave.hormoneBalance >= 100) {
-						r += `${He} can't seem to get enough cum out of ${his} grotesquely swollen balls in one orgasm to get relieve the pressure:`;
-						if (slave.dick) {
-							r += `${his} poor soft dick produces slow, anemic ejaculations, no matter how backed up ${he} is. `;
-						} else {
-							r += `${his} cumhole produces slow, anemic ejaculations, no matter how backed up ${he} is. `;
-						}
-						r += `${He} is completely dependent on your other slaves to help ${him}, which <span class="mediumaquamarine">habituates ${him}</span> to slave sex. `;
-					} else {
-						r += `${His} grotesquely swollen balls force ${him} to rely on other slaves for release throughout times a day, and swelling them with cum <span class="mediumaquamarine">habituates ${him}</span> to slave sex, though you have to take precautions so ${he} doesn't knock up your entire stock. `;
-					}
-					slave.trust++;
-				} else {
-					r += `${He} can't seem to get enough cum out of ${his} grotesquely swollen balls to relieve the pressure and is either unwilling or unable to get help with it, something ${he} <span class="mediumorchid">blames you for. </span>`;
-					slave.devotion--;
-				}
-			}
-		}
-		if (slave.drugs === "super fertility drugs" && canGetPregnant(slave)) {
-			r += `${His} reproductive system is in overdrive leading ${him} to seek out any dicked slaves ${he} can find several times a day. ${He} <span class="mediumaquamarine">desperately longs</span> for the day ${his} efforts fill ${his} womb with child. `;
-			slave.trust++;
-		}
-
-		return r;
-	}
-
-	function largeDicks(slave, x) {
-		if (averageDick > 4) {
-			if (slave.anus > 0 && slave.anus < 3 && canDoAnal(slave)) {
-				if ((slave.anus * x) - (averageDick * 5) < jsRandom(1, 100)) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	function hugeDicks(slave, x) {
-		if (averageDick > 5) {
-			if (slave.vagina > 0 && slave.vagina < 3 && canDoVaginal(slave)) {
-				if ((slave.vagina * x) - (averageDick * 5) < jsRandom(1, 100)) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	globalThis.saRules = saRules;
-})();