code:
/**
 * @param {FC.ReportSlave} slave
 * @returns {string}
 */
App.SlaveAssignment.longTermMentalEffects = function saLongTermMentalEffects(slave) {
	const r = [];

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

	if (slave.fetish === "mindbroken") {
		applyMindbroken(slave);
	} else if (slave.fuckdoll === 0) {
		asexualOvariesBurnout(slave);
		sexualAttraction(slave);
		if (slave.behavioralQuirk !== "none") {
			behavioralQuirkEffects(slave);
		}
		if (slave.sexualQuirk !== "none") {
			sexualQuirkEffects(slave);
		}
		if (slave.fetishKnown === 1) {
			fetishEffects(slave);
		}
		if (slave.behavioralFlaw !== "none") { // Moved out of .fetishKnown for the devout block to be more prominent.
			behavioralFlawEffects(slave);
		}
		if (slave.sexualFlaw !== "none") {
			sexualFlawEffects(slave);
			paraphiliaImpacts(slave);
		}
		if (slave.energy > 95) {
			nymphoDevotionGain(slave);
		}
		careerEffects(slave);
	}
	r.push(App.SlaveAssignment.saSmartPiercingEffects(slave));
	if (slave.fetish !== "mindbroken" && slave.fuckdoll === 0) {
		organicFetishDevelopments(slave);
		if (slave.fetishKnown !== 0 && slave.fetish !== "none") {
			paraphiliaAcquisition(slave);
		}
	}

	return r.join(" ");

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function asexualOvariesBurnout(slave) {
		if (slave.ovaImplant === "asexual" && isFertile(slave) && (slave.preg === 0 || (slave.preg >= 0 && slave.geneticQuirks.superfetation === 2))) {
			r.push(`The frequent internal ejaculations and accompanying climaxes brought about by ${his} ovarian modifications keeps ${him} sexually sated.`);
			if (slave.energy >= 10 && (slave.attrXY >= 10 || slave.attrXX >= 10)) {
				r.push(`However, the constant self-gratification both <span class="stat drop">damages what ${he} finds attractive</span> and <span class="libido dec">leaves sex less satisfying.</span>`);
				slave.energy -= 10;
				slave.attrXY = Math.clamp(slave.attrXY - 10, 0, 100);
				slave.attrXX = Math.clamp(slave.attrXX - 10, 0, 100);
			} else if (slave.energy >= 10) {
				r.push(`However, the constant self-gratification <span class="libido dec">leaves sex less satisfying.</span>`);
				slave.energy -= 10;
			} else if (slave.attrXY >= 10 || slave.attrXX >= 10) {
				r.push(`However, the constant self-gratification <span class="stat drop">twists what ${he} finds attractive.</span>`);
				slave.attrXY = Math.clamp(slave.attrXY - 10, 0, 100);
				slave.attrXX = Math.clamp(slave.attrXX - 10, 0, 100);
			}
			slave.need = 0;
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function sexualAttraction(slave) {
		let t = [];
		if (slave.attrXY <= 35) {
			if (slave.energy >= 20) {
				if (slave.fetish === "submissive") {
					if (slave.fetishKnown === 1) {
						t.push(`Recently, ${he}'s been fantasizing about submitting to big strong men. ${His} revulsion at the idea of sex with a man <span class="positive">mellows.</span>`);
					}
					slave.attrXY += 3;
				} else if (slave.fetish === "buttslut") {
					if (slave.fetishKnown === 1) {
						t.push(`Recently, ${he}'s been reconsidering ${his} reluctance to be sodomized by a man. ${His} revulsion at the idea of sex with a man <span class="positive">mellows.</span>`);
					}
					slave.attrXY += 3;
				} else if (slave.fetish === "pregnancy") {
					if (slave.fetishKnown === 1) {
						t.push(`Recently, ${he}'s been fantasizing about getting knocked up. ${His} revulsion at the idea of sex with a man <span class="positive">mellows.</span>`);
					}
					slave.attrXY += 3;
				}
				if (slave.behavioralQuirk === "adores men") {
					t.push(`${He} enjoys spending time with men, and starts to <span class="positive">reconsider ${his} unwillingness to be fucked by men.</span>`);
					slave.attrXY += 3;
				}
				if (slave.dick > 0) {
					if (slave.energy >= 40) {
						if (slave.counter.anal > 0 && canDoAnal(slave)) {
							t.push(`Every time ${he} cums with a dick up ${his} ass, ${his} <span class="positive">resistance to sex with men is worn away.</span>`);
							slave.attrXY += 3;
						}
					}
				}
				if (slave.devotion > random(1, 100)) {
					t.push(`The atmosphere in your arcology is so ubiquitously sexual that ${he} <span class="positive">reconsiders ${his} unwillingness to have sex with men.</span>`);
					slave.attrXY += 3;
				}
			} else {
				t.push(`${His} weak libido limits natural development of ${his} sexuality.`);
			}
			if (slave.devotion >= -20) {
				if (slave.genes === "XY") {
					switch (random(1, 5)) {
						case 1:
							if (slave.piercing.nose.weight) {
								t.push(`${He}'s fascinated by ${his}`);
								if (slave.piercing.nose.weight > 1) {
									t.push(`slutty nose piercings, and unconsciously thinks of ${himself} as <span class="positive">prettier and more suited to take dick.</span>`);
								} else {
									t.push(`nice little nasal piercing, and feels like <span class="positive">more of a girly girl.</span>`);
								}
								slave.attrXY += 1;
							}
							break;
						case 2:
							if (slave.piercing.eyebrow.weight) {
								t.push(`${His}`);
								if (slave.piercing.eyebrow.weight > 1) {
									t.push(`degrading eyebrow piercings make ${him} feel <span class="positive">a little less disinclined to accept being on the bottom.</span>`);
								} else {
									t.push(`cute eyebrow piercing makes ${him} feel <span class="positive">a little girlier.</span>`);
								}
								slave.attrXY += 1;
							}
							break;
						case 3:
							if (slave.piercing.lips.weight) {
								t.push(`${He} kind of likes ${his} `);
								if (slave.piercing.lips.weight > 1) {
									t.push(`whorish lip ring, and seems <span class="positive">less disturbed by the idea of ${his} mouth as a fuckhole.</span>`);
								} else {
									t.push(`pretty little lip piercing, and feels like <span class="positive">${he} has a nice mouth.</span>`);
								}
								slave.attrXY += 1;
							}
							break;
						case 4:
							if (slave.piercing.navel.weight) {
								t.push(`${He} sometimes`);
								if (canSee(slave)) {
									t.push(`stares at`);
								} else {
									t.push(`considers`);
								}
								t.push(`${his}`);
								if (slave.piercing.navel.weight > 1) {
									t.push(`navel chain, turning this way and that to make it move, unconsciously <span class="positive">getting used to ${his} fuckable body.</span>`);
								} else {
									t.push(`little feminine navel piercing, and seems to think <span class="positive">${his} lower half is kind of pretty.</span>`);
								}
								slave.attrXY += 1;
							}
							break;
						case 5:
							if (slave.piercing.ear.weight) {
								if (canSee(slave)) {
									t.push(`Every morning, ${he}'s greeted by ${his} girly reflection in the mirror,`);
									if (slave.piercing.ear.weight > 1) {
										t.push(`whose slutty ear piercings make ${him} <span class="positive">feel more fuckable.</span>`);
									} else {
										t.push(`complete with pretty pierced ears <span class="positive">like a good slave girl.</span>`);
									}
								} else {
									t.push(`${His} girly pierced ears make ${him} feel `);
									if (slave.piercing.ear.weight > 1) {
										t.push(`<span class="positive">like a hot slut.</span>`);
									} else {
										t.push(`<span class="positive">like a cute girl.</span>`);
									}
								}
								slave.attrXY += 1;
							}
							break;
					}
				}
			}
		} else if (slave.attrXY <= 65) {
			if (slave.energy >= 40) {
				if (slave.fetish === "submissive") {
					if (slave.fetishKnown === 1) {
						t.push(`${He}'s found ${himself} enjoying watching big strong men use other slaves recently. ${He}'s now <span class="positive">more attracted to men.</span>`);
					}
					slave.attrXY += 3;
				} else if (slave.fetish === "buttslut") {
					if (slave.fetishKnown === 1) {
						t.push(`${He}'s started fantasizing about cocks being shoved up ${his} butt even when there are no cocks being shoved up ${his} butt. ${He}'s now <span class="positive">more attracted to men.</span>`);
					}
					slave.attrXY += 3;
				} else if (slave.fetish === "pregnancy") {
					if (slave.fetishKnown === 1) {
						t.push(`${His} fantasies about pregnancy have become quite vivid; ${he} loves ${slave.counter.vaginal === 0 ? `the idea of` : ``} hot cum jetting into ${him}. ${He}'s now more attracted to men.`);
					}
					slave.attrXY += 3;
				}
				if (slave.behavioralQuirk === "adores men") {
					t.push(`${He} enjoys spending time with men, and is now <span class="positive">more attracted to men.</span>`);
					slave.attrXY += 3;
				}
				if (slave.dick > 0) {
					if (slave.energy >= 60) {
						if (slave.counter.anal > 0) {
							t.push(`Every time ${he} cums to the feeling of a cock thrusting deep inside ${him}, ${his} <span class="positive">indifference to men is reduced.</span>`);
							slave.attrXY += 3;
						}
					}
				}
				if (slave.devotion > random(1, 200)) {
					t.push(`The atmosphere in your arcology is so ubiquitously sexual that ${he} has become <span class="positive">more attracted to men.</span>`);
					slave.attrXY += 3;
				}
			} else {
				t.push(`${His} poor sex drive limits natural development of ${his} sexuality.`);
			}
		} else if (slave.attrXY <= 85) {
			if (slave.energy >= 60) {
				if (slave.fetish === "submissive") {
					if (slave.fetishKnown === 1) {
						t.push(`${He} can no longer see a man without fantasizing about how it would feel if he held ${him} down. ${He}'s now <span class="positive">more aroused by men.</span>`);
					}
					slave.attrXY += 3;
				} else if (slave.fetish === "buttslut") {
					if (slave.fetishKnown === 1) {
						t.push(`${He} can't see a man without doing ${his} best to get his hard cock inside ${him}. ${He}'s now <span class="positive">more aroused by men.</span>`);
					}
					slave.attrXY += 3;
				} else if (slave.fetish === "pregnancy") {
					if (slave.fetishKnown === 1) {
						t.push(`${He} can't see a man without doing ${his} best to get his hot seed into ${his} body. ${He}'s now <span class="positive">more aroused by men.</span>`);
					}
					slave.attrXY += 3;
				}
				if (slave.dick > 0) {
					if (slave.energy >= 80) {
						if (slave.counter.anal > 0) {
							t.push(`${He} often starts to climax as a cock begins to push inside ${him}, <span class="positive">deepening ${his} appetite for men.</span>`);
							slave.attrXY += 3;
						}
					}
				}
				if (slave.behavioralQuirk === "adores men") {
					t.push(`${He} enjoys spending time with men so much that any interaction becomes flirtation; ${he}'s now <span class="positive">more aroused by men.</span>`);
					slave.attrXY += 3;
				}
			} else {
				t.push(`${His} average libido limits further natural development of ${his} sexuality.`);
			}
		} else {
			if (slave.energy < 40) {
				t.push(`${His} low sex drive <span class="stat drop">reduces ${his} extreme attraction to men.</span>`);
				slave.attrXY -= 5;
			}
		}
		if (slave.attrXX <= 35) {
			if (slave.energy >= 20) {
				if (slave.fetish === "dom") {
					if (slave.fetishKnown === 1) {
						t.push(`Recently, ${he}'s been fantasizing about how it would feel to force ${himself} on some of the cute women all around ${him}. ${His} revulsion at the idea of sex with a woman mellows.`);
					}
					slave.attrXX += 3;
				} else if (slave.fetish === "sadist") {
					if (slave.fetishKnown === 1) {
						t.push(`Recently, ${he}'s been fantasizing about how it would feel to abuse a weak female slave. ${His} revulsion at the idea of sex with a woman <span class="positive">mellows.</span>`);
					}
					slave.attrXX += 3;
				} else if (slave.fetish === "boobs") {
					if (slave.fetishKnown === 1) {
						t.push(`Recently, ${he}'s been fantasizing about other girls' tits. ${His} revulsion at the idea of sex with a woman <span class="positive">mellows.</span>`);
					}
					slave.attrXX += 3;
				}
				if (slave.behavioralQuirk === "adores women") {
					t.push(`${He} enjoys spending time with women, and starts to <span class="positive">reconsider ${his} unwillingness to have sex with a woman.</span>`);
					slave.attrXX += 3;
				}
				if (canAchieveErection(slave)) {
					if (slave.energy >= 40) {
						if (slave.counter.penetrative > 0) {
							t.push(`Getting to fuck another girl is rare and special, and ${he} <span class="positive">starts to value getting to have sex with women.</span>`);
							slave.attrXX += 3;
						}
					}
				}
				if (slave.devotion > random(1, 100)) {
					t.push(`The atmosphere in your arcology is so ubiquitously sexual that ${he} <span class="positive">reconsiders ${his} unwillingness to have sex with women.</span>`);
					slave.attrXX += 3;
				}
			} else {
				if (slave.attrXX > 35) {
					t.push(`${His} weak libido limits natural development of ${his} sexuality.`);
				}
			}
		} else if (slave.attrXX <= 65) {
			if (slave.energy >= 40) {
				if (slave.fetish === "dom") {
					if (slave.fetishKnown === 1) {
						t.push(`${He}'s found ${himself} enjoying the`);
						if (canSee(slave)) {
							t.push(`sight`);
						} else {
							t.push(`idea`);
						}
						t.push(`of female slaves being forced to fuck recently. ${He}'s now <span class="positive">more attracted to women.</span>`);
					}
					slave.attrXX += 3;
				} else if (slave.fetish === "sadist") {
					if (slave.fetishKnown === 1) {
						t.push(`${He}'s started fantasizing about how a girl might feel, struggling to get away from ${him}. ${He}'s now <span class="positive">more attracted to women.</span>`);
					}
					slave.attrXX += 3;
				} else if (slave.fetish === "boobs") {
					if (slave.fetishKnown === 1) {
						t.push(`${His} fantasies about boobs have become quite vivid. ${He}'s now <span class="positive">more attracted to women.</span>`);
					}
					slave.attrXX += 3;
				}
				if (slave.behavioralQuirk === "adores women") {
					t.push(`${He} enjoys spending time with women, and is now <span class="positive">more attracted to women.</span>`);
					slave.attrXX += 3;
				}
				if (canAchieveErection(slave)) {
					if (slave.energy >= 60) {
						if (slave.counter.penetrative > 0) {
							t.push(`<span class="positive">${His} indifference to women</span> is worn down on the special occasions that ${he}'s allowed to stick ${his} dick in one.`);
							slave.attrXX += 3;
						}
					}
				}
				if (slave.devotion > random(1, 200)) {
					t.push(`The atmosphere in your arcology is so ubiquitously sexual that ${he} has become <span class="positive">more attracted to women.</span>`);
					slave.attrXX += 3;
				}
			} else {
				if (slave.attrXX > 65) {
					t.push(`${His} poor sex drive limits natural development of ${his} sexuality.`);
				}
			}
		} else if (slave.attrXX <= 85) {
			if (slave.energy >= 60) {
				if (slave.fetish === "dom") {
					if (slave.fetishKnown === 1) {
						t.push(`${He} can't see a woman without plotting to dominate her. ${He}'s now <span class="positive">more aroused by women.</span>`);
					}
					slave.attrXX += 3;
				} else if (slave.fetish === "sadist") {
					if (slave.fetishKnown === 1) {
						t.push(`${He} can't see a woman without doing ${his} best to find a way the rules will allow ${him} to abuse the poor girl. ${He}'s now <span class="positive">more aroused by women.</span>`);
					}
					slave.attrXX += 3;
				} else if (slave.fetish === "boobs") {
					if (slave.fetishKnown === 1) {
						t.push(`${He} can't see a woman without doing ${his} best to get ${his}`);
						if (!hasAnyArms(slave)) {
							t.push(`face between`);
						} else {
							t.push(`${(hasBothArms(slave)) ? `hands` : `hand`} on`);
						}
						t.push(`her breasts. ${He}'s now <span class="positive">more aroused by women.</span>`);
					}
					slave.attrXX += 3;
				} else if (slave.fetish === "pregnancy" && canAchieveErection(slave)) {
					if (slave.fetishKnown === 1) {
						t.push(`${He} can't see a woman without plotting to plant ${his} seed in her womb. ${He}'s now <span class="positive">more aroused by women.</span>`);
					}
					slave.attrXX += 3;
				}
				if (slave.behavioralQuirk === "adores women") {
					t.push(`${He} enjoys spending time with women so much that any interaction becomes flirtation; ${he}'s now <span class="positive">more aroused by women.</span>`);
					slave.attrXX += 3;
				}
				if (canAchieveErection(slave)) {
					if (slave.energy >= 80) {
						if (slave.counter.penetrative > 0) {
							t.push(`${He} cherishes the special occasions on which ${he} gets to cum inside a girl, <span class="positive">building ${his} appetite for women.</span>`);
							slave.attrXX += 3;
						}
					}
				}
			} else {
				if (slave.attrXX > 85) {
					t.push(`${His} average libido limits further natural development of ${his} sexuality.`);
				}
			}
		} else {
			if (slave.energy < 40) {
				t.push(`${His} low sex drive <span class="stat drop">reduces ${his} extreme attraction to women.</span>`);
				slave.attrXX -= 5;
			}
		}
		if (slave.energy > 95) {
			if (slave.attrXX < 100) {
				if (slave.attrXY < 100) {
					t.push(`${His} nymphomania has a slow but inexorable impact on ${his} sexuality, <span class="positive">increasing ${his} attraction to everyone.</span>`);
					slave.attrXY += 3;
					slave.attrXX += 3;
				} else {
					t.push(`${His} nymphomania has a slow but inexorable impact on ${his} sexuality, <span class="positive">increasing ${his} lust for pussy,</span> since ${he}'s already crazy about guys.`);
					slave.attrXX += 3;
				}
			} else if (slave.attrXY < 100) {
				t.push(`${His} nymphomania has a slow but inexorable impact on ${his} sexuality, <span class="positive">increasing ${his} need for cock,</span> since ${he}'s already crazy about the ladies.`);
				slave.attrXY += 3;
			}
		}
		if (slave.attrKnown === 1) {
			r.push(t.join(' '));
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function behavioralQuirkEffects(slave) {
		if (slave.behavioralFlaw !== "none") {
			switch (slave.behavioralFlaw) {
				case "arrogant":
					if (slave.behavioralQuirk === "confident") {
						slave.behavioralFlaw = "none";
					}
					break;
				case "bitchy":
					if (slave.behavioralQuirk === "cutting") {
						slave.behavioralFlaw = "none";
					}
					break;
				case "odd":
					if (slave.behavioralQuirk === "funny") {
						slave.behavioralFlaw = "none";
					}
					break;
				case "hates men":
					if (slave.behavioralQuirk === "adores women") {
						slave.behavioralFlaw = "none";
					}
					break;
				case "hates women":
					if (slave.behavioralQuirk === "adores men") {
						slave.behavioralFlaw = "none";
					}
					break;
				case "gluttonous":
					if (slave.behavioralQuirk === "fitness") {
						slave.behavioralFlaw = "none";
					}
					break;
				case "anorexic":
					if (slave.behavioralQuirk === "insecure") {
						slave.behavioralFlaw = "none";
					}
					break;
				case "devout":
					if (slave.behavioralQuirk === "sinful") {
						slave.behavioralFlaw = "none";
					}
					break;
				case "liberated":
					if (slave.behavioralQuirk === "advocate") {
						slave.behavioralFlaw = "none";
					}
					break;
			}
		}
		if (slave.behavioralQuirk === "fitness") {
			if (slave.energy < 70) {
				r.push(`${His} physical overachievement and ${his} growing athletic prowess <span class="positive">increase ${his} sex drive.</span>`);
				slave.energy += 1;
			}
		}
		if (slave.fetishStrength <= 95) {
			switch (slave.behavioralQuirk) {
				case "confident":
					if (slave.fetish === "dom") {
						if (slave.fetishKnown === 1) {
							r.push(`${His} confidence and poise <span class="fetish inc">increase ${his} dominance.</span>`);
						}
						slave.fetishStrength += 4;
					}
					break;
				case "cutting":
					if (slave.fetish === "dom") {
						if (slave.fetishKnown === 1) {
							r.push(`${His} willingness to cut a partner down <span class="fetish inc">increases ${his} dominance.</span>`);
						}
						slave.fetishStrength += 4;
					}
					break;
				case "funny":
					if (slave.fetish === "masochist") {
						if (slave.fetishKnown === 1) {
							r.push(`Using pain as an outlet for all the mental troubles lurking behind ${his} funny façade <span class="fetish inc">increases ${his} masochism.</span>`);
						}
						slave.fetishStrength += 4;
					}
					break;
				case "adores men":
					if (slave.fetish === "pregnancy") {
						if (slave.fetishKnown === 1) {
							r.push(`${His} love of male company has <span class="fetish inc">advanced ${his} pregnancy fetish.</span>`);
						}
						slave.fetishStrength += 4;
					}
					break;
				case "adores women":
					if (slave.fetish === "boobs") {
						if (slave.fetishKnown === 1) {
							r.push(`${His} love of female company has <span class="fetish inc">advanced ${his} boob fetish.</span>`);
						}
						slave.fetishStrength += 4;
					}
					break;
				case "insecure":
					if (slave.fetish === "submissive") {
						if (slave.fetishKnown === 1) {
							r.push(`${His} desperation for validation from others <span class="fetish inc">increases ${his} submission.</span>`);
						}
						slave.fetishStrength += 4;
					}
					break;
				case "sinful":
					if (slave.fetish === "humiliation") {
						if (slave.fetishKnown === 1) {
							r.push(`${His} delight at sin <span class="fetish inc">increases ${his} appetite for humiliation.</span>`);
						}
						slave.fetishStrength += 4;
					}
					break;
				case "advocate":
					if (slave.fetish === "submissive") {
						if (slave.fetishKnown === 1) {
							r.push(`${His} conviction that slavery is right <span class="fetish inc">increases ${his} willingness to submit.</span>`);
						}
						slave.fetishStrength += 4;
					}
					break;
			}
			if (!slave.piercing.genitals.smart) {
				if (fetishChangeChance(slave) > random(0, 100)) {
					switch (slave.behavioralQuirk) {
						case "confident":
							if (slave.fetish !== "dom") {
								r.push(`${His} confidence and poise affect ${his} sexual outlook. <span class="fetish gain">${He}'s now a dom!</span>`);
								slave.fetish = "dom";
								slave.fetishKnown = 1;
								slave.fetishStrength = 65;
							}
							break;
						case "cutting":
							if (slave.fetish !== "sadist") {
								r.push(`${His} willingness to cut a partner down makes ${him} more aggressive in bed. <span class="fetish gain">${He}'s now a sadist!</span>`);
								slave.fetish = "sadist";
								slave.fetishKnown = 1;
								slave.fetishStrength = 65;
							}
							break;
						case "funny":
							if (slave.fetish !== "masochist") {
								r.push(`Pain becomes an outlet for all the mental troubles lurking behind ${his} funny façade. <span class="fetish gain">${He}'s now a masochist!</span>`);
								slave.fetish = "masochist";
								slave.fetishKnown = 1;
								slave.fetishStrength = 65;
							}
							break;
						case "adores men":
							if (slave.fetish !== "pregnancy" && slave.fetish !== "cumslut") {
								if (slave.ovaries === 1 || slave.mpreg === 1) {
									r.push(`${His} appreciation of men has turned into a fantasy about getting knocked up. <span class="fetish gain">${He}'s a pregnancy fetishist!</span>`);
									slave.fetish = "pregnancy";
									slave.fetishKnown = 1;
									slave.fetishStrength = 65;
								} else {
									r.push(`${His} appreciation of men has turned into a fetish for cocks, balls and, more importantly, what comes out of them. <span class="fetish gain">${He}'s now a cum fetishist!</span>`);
									slave.fetish = "cumslut";
									slave.fetishKnown = 1;
									slave.fetishStrength = 65;
								}
							}
							break;
						case "adores women":
							if (slave.fetish !== "pregnancy" && slave.fetish !== "boobs") {
								if (canPenetrate(slave)) {
									r.push(`${His} appreciation of women has turned into a fantasy about knocking them up. <span class="fetish gain">${He}'s an impregnation fetishist!</span>`);
									slave.fetish = "pregnancy";
									slave.fetishKnown = 1;
									slave.fetishStrength = 65;
								} else {
									r.push(`${His} appreciation of women has turned into a fetish for breasts. <span class="fetish gain">${He}'s a boob fetishist!</span>`);
									slave.fetish = "boobs";
									slave.fetishKnown = 1;
									slave.fetishStrength = 65;
								}
							}
							break;
						case "insecure":
							if (slave.fetish !== "submissive") {
								r.push(`${He} gets so desperate for validation from others that ${he} becomes willing to submit to anything. <span class="fetish gain">${He}'s now a submissive!</span>`);
								slave.fetish = "submissive";
								slave.fetishKnown = 1;
								slave.fetishStrength = 65;
							}
							break;
						case "sinful":
							if (slave.fetish !== "humiliation") {
								r.push(`${He} learns that ${he} likes nothing better than being seen doing something sacrilegious. <span class="fetish gain">${He}'s now a humiliation fetishist!</span>`);
								slave.fetish = "humiliation";
								slave.fetishKnown = 1;
								slave.fetishStrength = 65;
							}
							break;
						case "advocate":
							if (slave.fetish !== "submissive") {
								r.push(`${His} conviction that slavery is right seeps into ${his} sexuality. <span class="fetish gain">${He}'s now a submissive!</span>`);
								slave.fetish = "submissive";
								slave.fetishKnown = 1;
								slave.fetishStrength = 65;
							}
							break;
					}
				}
			}
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function sexualQuirkEffects(slave) {
		if (slave.sexualFlaw !== "none") {
			switch (slave.sexualFlaw) {
				case "hates oral":
					if (slave.sexualQuirk === "gagfuck queen") {
						slave.sexualFlaw = "none";
					}
					break;
				case "hates anal":
					if (slave.sexualQuirk === "painal queen") {
						slave.sexualFlaw = "none";
					}
					break;
				case "hates penetration":
					if (slave.sexualQuirk === "strugglefuck queen") {
						slave.sexualFlaw = "none";
					}
					break;
				case "shamefast":
					if (slave.sexualQuirk === "tease") {
						slave.sexualFlaw = "none";
					}
					break;
				case "idealistic":
					if (slave.sexualQuirk === "romantic") {
						slave.sexualFlaw = "none";
					}
					break;
				case "repressed":
					if (slave.sexualQuirk === "perverted") {
						slave.sexualFlaw = "none";
					}
					break;
				case "apathetic":
					if (slave.sexualQuirk === "caring") {
						slave.sexualFlaw = "none";
					}
					break;
				case "crude":
					if (slave.sexualQuirk === "unflinching") {
						slave.sexualFlaw = "none";
					}
					break;
				case "judgemental":
					if (slave.sexualQuirk === "size queen") {
						slave.sexualFlaw = "none";
					}
					break;
			}
		}
		if (slave.fetishStrength <= 95) {
			switch (slave.sexualQuirk) {
				case "gagfuck queen":
					if (slave.fetish === "cumslut") {
						if (slave.fetishKnown === 1) {
							r.push(`${His} eagerness to get roughly throatfucked has <span class="fetish inc">advanced ${his} oral fixation.</span>`);
						}
						slave.fetishStrength += 4;
					}
					break;
				case "painal queen":
					if (slave.fetish === "buttslut") {
						if (slave.fetishKnown === 1) {
							r.push(`${His} eagerness to get roughly assfucked has <span class="fetish inc">advanced ${his} anal fixation.</span>`);
						}
						slave.fetishStrength += 4;
					}
					break;
				case "strugglefuck queen":
					if (slave.fetish === "masochist") {
						if (slave.fetishKnown === 1) {
							r.push(`${His} eagerness to get roughly fucked has <span class="fetish inc">advanced ${his} masochism.</span>`);
						}
						slave.fetishStrength += 4;
					}
					break;
				case "tease":
					if (slave.fetish === "humiliation") { // swap me to exhib
						if (slave.fetishKnown === 1) {
							r.push(`The rush ${he} feels when ${he} shows ${himself} off has <span class="fetish inc">advanced ${his} humiliation fetish.</span>`);
						}
						slave.fetishStrength += 4;
					}
					break;
				case "romantic":
					if (slave.fetish === "pregnancy") {
						if (slave.fetishKnown === 1) {
							r.push(`${His} romanticism has <span class="fetish inc">advanced ${his} reproduction fetish.</span>`);
						}
						slave.fetishStrength += 4;
					}
					break;
				case "perverted":
					if (slave.fetish === "humiliation") {
						if (slave.fetishKnown === 1) {
							r.push(`${His} desire to be seen doing the forbidden has <span class="fetish inc">advanced ${his} humiliation fetish.</span>`);
						}
						slave.fetishStrength += 4;
					}
					if (slave.energy < 94) {
						r.push(`${He}'s such a pervert that the depravity all around ${him} <span class="libido inc">improves ${his} sex drive.</span>`);
						slave.energy += 1;
					}
					break;
				case "caring":
					if (slave.fetish === "submissive") {
						if (slave.fetishKnown === 1) {
							r.push(`${His} caring nature has <span class="fetish inc">advanced ${his} submissiveness.</span>`);
						}
						slave.fetishStrength += 4;
					}
					break;
				case "unflinching":
					if (slave.fetish === "masochist") {
						if (slave.fetishKnown === 1) {
							r.push(`${His} unflinching nature has <span class="fetish inc">advanced ${his} masochism.</span>`);
						}
						slave.fetishStrength += 4;
					}
					break;
				case "size queen":
					if (slave.fetish === "buttslut") {
						if (slave.fetishKnown === 1) {
							r.push(`${His} size queen tendencies have <span class="fetish inc">advanced ${his} devotion to being an anal slut.</span>`);
						}
						slave.fetishStrength += 4;
					}
					break;
			}
			if (!slave.piercing.genitals.smart) {
				if (fetishChangeChance(slave) > random(0, 100)) {
					switch (slave.sexualQuirk) {
						case "gagfuck queen":
							if (slave.fetish !== "cumslut") {
								r.push(`${His} willingness to get roughly throatfucked has turned into real anticipation. <span class="fetish gain">${He}'s now a cumslut!</span>`);
								slave.fetish = "cumslut";
								slave.fetishKnown = 1;
								slave.fetishStrength = 65;
							}
							break;
						case "painal queen":
							if (slave.fetish !== "buttslut") {
								r.push(`${His} willingness to get roughly assfucked has turned into real anticipation. <span class="fetish gain">${He}'s now a buttslut!</span>`);
								slave.fetish = "buttslut";
								slave.fetishKnown = 1;
								slave.fetishStrength = 65;
							}
							break;
						case "strugglefuck queen":
							if (slave.fetish !== "masochist") {
								r.push(`${His} willingness to be roughly used has turned into real anticipation. <span class="fetish gain">${He}'s now a masochist!</span>`);
								slave.fetish = "masochist";
								slave.fetishKnown = 1;
								slave.fetishStrength = 65;
							}
							break;
						case "tease":
							if (slave.fetish !== "humiliation") { // exhib
								r.push(`The rush ${he} feels when ${he} shows ${himself} off has deepened into a fetish for being publicly fucked. <span class="fetish gain">${He}'s a humiliation fetishist!</span>`);
								slave.fetish = "humiliation";
								slave.fetishKnown = 1;
								slave.fetishStrength = 65;
							}
							break;
						case "romantic":
							if (slave.fetish !== "pregnancy") {
								r.push(`${His} romantic bent has turned into a fantasy about settling down and having a child. <span class="fetish gain">${He}'s a pregnancy fetishist!</span>`);
								slave.fetish = "pregnancy";
								slave.fetishKnown = 1;
								slave.fetishStrength = 65;
							}
							break;
						case "perverted":
							if (slave.fetish !== "humiliation") {
								r.push(`${His} perverted side has turned into a desire to be seen doing the forbidden. <span class="fetish gain">${He}'s a humiliation fetishist!</span>`);
								slave.fetish = "humiliation";
								slave.fetishKnown = 1;
								slave.fetishStrength = 65;
							}
							break;
						case "caring":
							if (slave.fetish !== "submissive") {
								r.push(`${His} caring nature has matured into a need to submit. <span class="fetish gain">${He}'s a submissive!</span>`);
								slave.fetish = "submissive";
								slave.fetishKnown = 1;
								slave.fetishStrength = 65;
							}
							break;
						case "unflinching":
							if (slave.fetish !== "masochist") {
								r.push(`${He}'s so unflinching that ${he}'s left searching for sex extreme enough to excite ${him}. <span class="fetish gain">${He}'s a masochist!</span>`);
								slave.fetish = "masochist";
								slave.fetishKnown = 1;
								slave.fetishStrength = 65;
							}
							break;
						case "size queen":
							if (slave.fetish !== "buttslut") {
								r.push(`${He}'s such a size queen that ${he}'s decided ${he} prefers dicks where they'll feel biggest to ${him}. <span class="fetish gain">${He}'s a buttslut!</span>`);
								slave.fetish = "buttslut";
								slave.fetishKnown = 1;
								slave.fetishStrength = 65;
							}
							break;
					}
				}
			}
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function fetishEffects(slave) {
		if (slave.fetish !== "none") {
			if (slave.fetishStrength <= 75) {
				if (slave.devotion > 50) {
					if (slave.trust > 50) {
						r.push(`${He} has the confidence to pursue what pleases ${him}, <span class="fetish inc">increasing ${his} kinkiness.</span>`);
						slave.fetishStrength += 4;
					}
				}
			}
			if (slave.fetishStrength > 10) {
				if (slave.trust < -20) {
					r.push(`${He}'s too afraid to pursue what pleases ${him}, <span class="fetish loss">reducing ${his} sexual distinctiveness.</span>`);
					slave.fetishStrength -= 4;
				} else if (slave.devotion < -20) {
					r.push(`${He}'s so unhappy with ${his} life as a sex slave that <span class="fetish loss">${his} interest in unusual sex decreases.</span>`);
					slave.fetishStrength -= 4;
				} else if (slave.trust <= 50) {
					r.push(`${He} lacks the confidence to pursue what pleases ${him}, <span class="fetish loss">reducing ${his} kinkiness.</span>`);
					slave.fetishStrength -= 2;
				} else if (slave.devotion <= 50) {
					r.push(`${He}'s not fully comfortable being a sex slave, <span class="fetish loss">reducing ${his} interest in kinky sex.</span>`);
					slave.fetishStrength -= 2;
				}
				if (slave.fetish === "buttslut") {
					if (slave.prostate === 0) {
						if (slave.vagina === -1) {
							if (slave.trust >= -20) {
								r.push(`${He} thinks of ${his} anus as ${his} primary sexual organ, but ${he} lacks prostate or a g-spot to be internally stimulated by a cock inside ${his} rear hole, reducing ${his} ability to appreciate anal.`);
								slave.fetishStrength -= 4;
							}
						}
					}
				}
			}
			if (slave.fetishStrength <= 5) {
				r.push(`<span class="fetish loss">${He} has lost all interest in ${his} fetishes and is now sexually vanilla.</span>`);
				slave.fetish = "none";
				slave.fetishStrength = 0;
			}
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function behavioralFlawEffects(slave) {
		if (slave.behavioralFlaw === "devout" && V.arcologies[0].FSChattelReligionist !== "unset") {
			if (slave.devotion <= 20) {
				if (slave.trust < -20) {
					r.push(`${He} is inwardly <span class="trust dec">terrified</span> by living in what ${he} sees as a powerful theocratic society inimical to ${his} old world faith.`);
					slave.trust -= Math.trunc(V.arcologies[0].FSChattelReligionist / 25);
				} else {
					r.push(`${He} is filled with <span class="devotion dec">hatred and disgust</span> by Chattel Religionism, which ${he} believes to be heretical and wrong.`);
					slave.devotion -= Math.trunc(V.arcologies[0].FSChattelReligionist / 35);
				}
			} else if (slave.devotion <= 50) {
				if (slave.trust > 20) {
					r.push(`${He} is experiencing considerable spiritual anguish as ${he} is torn between obedience and conviction that Chattel Religionism is heretical and wrong. This hinders ${his} acceptance of ${his} place in slave society.`);
					slave.trust -= Math.trunc(V.arcologies[0].FSChattelReligionist / 25);
				} else {
					r.push(`${He} is badly torn between Chattel Religionism and ${his} old world faith, but ${he} is doing ${his} best to defer these spiritual issues for now.`);
				}
			} else {
				r.push(`${He} has experienced a religious epiphany, and now accepts Chattel Religionism in ${his} mind, ${his} heart, and ${his}`);
				if (slave.vagina > -1) {
					r.push(`womanhood.`);
				} else {
					r.push(`anus.`);
				}
				r.push(`${He} has become sinful, maliciously eager to transgress against the faith ${he} has abandoned. ${He} now sees that everything ${he} has suffered up to now has been a necessary and divinely ordained trial to bring ${him} into the true faith as a holy sex slave, enormously boosting ${his} trust in you.`);
				slave.behavioralQuirk = "sinful";
				slave.behavioralFlaw = "none";
				if (slave.trust < -30) {
					slave.trust = -10;
				} else {
					slave.trust += 20;
				}
			}
		} else if (slave.behavioralQuirk === "none" && slave.fetishKnown === 1) {
			if (slave.fetishStrength + slave.devotion + slave.trust > random(1, 500)) {
				if (slave.behavioralFlaw === "arrogant") {
					if (slave.fetish === "submissive") {
						r.push(`${His} need to submit has <span class="flaw break">softened ${his} arrogance into confidence.</span>`);
						SoftenBehavioralFlaw(slave);
					}
				} else if (slave.behavioralFlaw === "bitchy") {
					if (slave.fetish === "humiliation") {
						r.push(`${His} need to be humiliated has <span class="flaw break">softened ${his} bitchiness into a penchant for repartee.</span>`);
						SoftenBehavioralFlaw(slave);
					}
				} else if (slave.behavioralFlaw === "hates men") {
					if (slave.fetish === "pregnancy" && (slave.ovaries === 1 || slave.mpreg === 1)) {
						r.push(`${He} dislikes men, but fetishizes pregnancy; ${he} comes around, and decides that <span class="flaw break">${he} needs a man to knock ${him} up.</span>`);
						slave.behavioralQuirk = "adores men";
						slave.behavioralFlaw = "none";
					} else if (slave.fetish === "boobs") {
						r.push(`${He} dislikes men and adores boobs, which <span class="flaw break">builds ${his} hatred of men into a love of women.</span>`);
						slave.behavioralQuirk = "adores women";
					} else if (slave.attrXY > 85) {
						r.push(`${He} dislikes the company of men but likes their cocks; ${he} learns to <span class="flaw break">enjoy the male presence that comes with taking the dick.</span>`);
						slave.behavioralQuirk = "adores men";
						slave.behavioralFlaw = "none";
					} else if (slave.energy > 95) {
						r.push(`${He} dislikes men and has constant needs; women are the obvious answer, which <span class="flaw break">builds ${his} hatred of men into a love of feminine company.</span>`);
						slave.behavioralQuirk = "adores women";
					}
				} else if (slave.behavioralFlaw === "hates women") {
					if (slave.fetish === "pregnancy") {
						r.push(`${He} dislikes women, but fetishizes pregnancy; ${he} comes around, and decides that <span class="flaw break">${he} loves pregnant girls.</span>`);
						slave.behavioralQuirk = "adores women";
						slave.behavioralFlaw = "none";
					} else if (slave.fetish === "cumslut") {
						r.push(`${He} dislikes women and has a real oral fixation; eating dick is the obvious answer, which <span class="flaw break">funnels ${his} hatred of women into a love of men.</span>`);
						slave.behavioralQuirk = "adores men";
						slave.behavioralFlaw = "none";
					} else if (slave.attrXX > 85) {
						r.push(`${He} dislikes the company of women but likes fucking them; ${he} learns to <span class="flaw break">enjoy the feminine presence that comes with getting some pussy.</span>`);
						slave.behavioralQuirk = "adores women";
						slave.behavioralFlaw = "none";
					} else if (slave.energy > 95) {
						r.push(`${He} dislikes women and has constant needs; men are the obvious answer, which <span class="flaw break">builds ${his} hatred of women into a love of maleness.</span>`);
						slave.behavioralQuirk = "adores men";
						slave.behavioralFlaw = "none";
					}
				} else if (slave.behavioralFlaw === "devout") {
					if (slave.energy > 95) {
						r.push(`${His} need for constant sex has <span class="flaw break">softened ${his} devoutness into an appetite for sacrilege.</span>`);
						SoftenBehavioralFlaw(slave);
					}
				} else if (slave.behavioralFlaw === "liberated") {
					if (slave.fetish === "masochist") {
						r.push(`${His} subconscious need to be abused has <span class="flaw break">converted ${his} liberated philosophy into an ability to advocate for slavery.</span>`);
						SoftenBehavioralFlaw(slave);
					}
				}
			}
		} else if (slave.fetishKnown === 1) {
			if (slave.fetishStrength + slave.devotion + slave.trust > random(1, 500)) {
				if (slave.behavioralFlaw === "arrogant") {
					if (slave.fetish === "submissive") {
						r.push(`${His} arrogance was probably a reflection of ${his} subconscious need to submit, which is so satisfied by sexual slavery that <span class="flaw break">${he} no longer needs to act arrogant.</span>`);
						slave.behavioralFlaw = "none";
					}
				} else if (slave.behavioralFlaw === "bitchy") {
					if (slave.fetish === "humiliation") {
						r.push(`${His} bitchiness was probably a reflection of ${his} sexual need to be publicly humiliated, which is so satisfied by sexual slavery that ${he} no longer needs to be insulting to get the degradation ${he} subconsciously needs.`);
						slave.behavioralFlaw = "none";
					}
				} else if (slave.behavioralFlaw === "hates men") {
					if (slave.fetish === "pregnancy") {
						r.push(`${He} dislikes the company of men, but fetishizes pregnancy; ${he} decides that men, those hunky impregnators, can't be <i>that</i> bad, and <span class="flaw break">gets over ${his} hatred.</span>`);
						slave.behavioralFlaw = "none";
					} else if (slave.fetish === "boobs") {
						r.push(`${He} dislikes the company of men and adores boobs; ${he} finds that ${he} doesn't mind ogling titties with the boys, and <span class="flaw break">gets over ${his} hatred.</span>`);
						slave.behavioralFlaw = "none";
					} else if (slave.attrXY > 85) {
						r.push(`${He} dislikes the company of men but likes their cocks; ${he} gets used to putting up with maleness if it gets ${him} the dick, and <span class="flaw break">gets over ${his} hatred.</span>`);
						slave.behavioralFlaw = "none";
					} else if (slave.energy > 95) {
						r.push(`${He} dislikes the company of men and has constant needs; ${he} can't afford to narrow the playing field, and <span class="flaw break">gets over ${his} hatred.</span>`);
						slave.behavioralFlaw = "none";
					}
				} else if (slave.behavioralFlaw === "hates women") {
					if (slave.fetish === "pregnancy") {
						r.push(`${He} dislikes the company of women, but fetishizes pregnancy; ${he} decides that women, with their motherly hips and fertile cunts, can't be that bad, and gets over ${his} hatred.`);
						slave.behavioralFlaw = "none";
					} else if (slave.fetish === "cumslut") {
						r.push(`${He} dislikes the company of women and has a real oral fixation; ${he} decides that women, with their soft, kissable lips can't be that bad, and gets over ${his} hatred.`);
						slave.behavioralFlaw = "none";
					} else if (slave.attrXX > 85) {
						r.push(`${He} dislikes the company of women but likes fucking them; ${he} gets used to putting up with girls to get into their pants, and <span class="flaw break">gets over ${his} hatred.</span>`);
						slave.behavioralFlaw = "none";
					} else if (slave.energy > 95) {
						r.push(`${He} dislikes the company of women and has constant needs; ${he} can't afford to narrow the playing field, and <span class="flaw break">gets over ${his} hatred.</span>`);
						slave.behavioralFlaw = "none";
					}
				} else if (slave.behavioralFlaw === "devout") {
					if (slave.energy > 95) {
						r.push(`${He} finally resolves ${his} internal dilemma between the faith ${he} was brought up in and ${his} all-consuming need to be a slut by deciding that ${he} prefers being a sinner. ${He} is no longer devoutly faithful to ${his} old religion.`);
						slave.behavioralFlaw = "none";
					}
				} else if (slave.behavioralFlaw === "liberated") {
					if (slave.fetish === "masochist") {
						r.push(`${His} pre-enslavement belief that ${he} deserves rights and respect fades in light of how much ${he} likes being beaten and abused. ${He} is no longer a modern, liberated ${girl}, and accepts ${his} place as a sex slave as natural.`);
						slave.behavioralFlaw = "none";
					}
				}
			}
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function sexualFlawEffects(slave) {
		if (slave.fetishStrength + slave.devotion + slave.trust > random(1, 500)) {
			if (slave.sexualQuirk === "none") {
				if (slave.sexualFlaw === "hates anal") {
					if (slave.piercing.anus.weight) {
						r.push(`The constant stimulation ${his} guiche piercings give ${him} most intimate areas helps ${him} with ${his} anal hang-ups, softening ${his} hatred of anal into an appetite for anal pain. ${He} still struggles if ${he}'s fucked in the ass, but ${he} gets off on it anyway.`);
						SoftenSexualFlaw(slave);
					} else if (slave.fetish === "buttslut" && slave.fetishKnown === 1) {
						r.push(`${His} sexual fascination with things entering ${his} asshole softens ${his} hatred of anal into an appetite for anal pain. ${He} still struggles if ${he}'s fucked in the ass, but ${he} gets off on it anyway.`);
						SoftenSexualFlaw(slave);
					} else if (slave.energy > 95) {
						r.push(`As a nymphomaniac ${he} appreciates kinky sex, so ${he} softens ${his} hatred of anal into an appetite for anal pain. ${He} still struggles if ${he}'s fucked in the ass, but ${he} gets off on it anyway.`);
						SoftenSexualFlaw(slave);
					}
				} else if (slave.sexualFlaw === "hates oral") {
					if (slave.piercing.tongue.weight) {
						r.push(`${He} can't stop sucking on ${his} tongue piercings, and ${he} gets over ${his} oral hang-ups, softening ${his} hatred of oral into a willingness to be roughly throatfucked. ${He} still gags, but it's a good gagging, now.`);
						SoftenSexualFlaw(slave);
					} else if (slave.fetish === "cumslut" && slave.fetishKnown === 1) {
						r.push(`${He} can't get ${his} beloved cum without choking down dick, so ${he} softens ${his} hatred of oral into a willingness to be roughly throatfucked. ${He} still gags, but it's a good gagging, now.`);
						SoftenSexualFlaw(slave);
					} else if (slave.energy > 95) {
						r.push(`${He} needs sex so much ${he} often has to encourage ${his} partners orally, so ${he} softens ${his} hatred of oral into a willingness to be roughly throatfucked. ${He} still gags, but it's a good gagging, now.`);
						SoftenSexualFlaw(slave);
					}
				} else if (slave.sexualFlaw === "hates penetration") {
					if (slave.piercing.vagina.weight) {
						r.push(`${His} pussy piercings get ${him} used to the idea that it's a fuckhole, not ${his} precious womanhood, softening ${his} hatred of penetration into an appetite for abusive sex. ${He} still cries, but ${he} climaxes as ${he} cries.`);
						SoftenSexualFlaw(slave);
					} else if (slave.fetish === "buttslut" && slave.fetishKnown === 1) {
						r.push(`${His} sexual fascination with anal penetration softens ${his} hatred of penetration into an appetite for abusive sex. ${He} still cries, but ${he} climaxes as ${he} cries.`);
						SoftenSexualFlaw(slave);
					} else if (slave.energy > 95) {
						r.push(`As a nymphomaniac ${he} appreciates kinky sex, so ${he} softens ${his} hatred of penetration into an appetite for abusive intercourse. ${He} still cries, but ${he} climaxes as ${he} cries.`);
						SoftenSexualFlaw(slave);
					}
				} else if (slave.sexualFlaw === "apathetic") {
					if (slave.fetish === "submissive" && slave.fetishKnown === 1) {
						r.push(`${His} subconscious drive to submit <span class="flaw break">softens ${his} sexual apathy into constant care for ${his} partners' wants.</span>`);
						SoftenSexualFlaw(slave);
					} else if (slave.energy > 95) {
						r.push(`${He} needs sex so badly that ${he} can no longer be apathetic in bed, and <span class="flaw break">softens ${his} sexual apathy into care for what keeps ${his} partners aroused.</span>`);
						SoftenSexualFlaw(slave);
					}
				} else if (slave.sexualFlaw === "crude") {
					if (slave.fetish === "buttslut" && slave.fetishKnown === 1) {
						r.push(`${He} needs to avoid making unsexy noises during buttsex to be an appealing enough anal partner to satisfy ${his} backdoor needs, softening ${his} crudeness into a willingness to do anything.`);
						SoftenSexualFlaw(slave);
					} else if (slave.energy > 95) {
						r.push(`${He} needs sex so badly that ${he} can no longer afford to disgust partners, and <span class="flaw break">softens ${his} sexual crudeness into a willingness to do anything.</span>`);
						SoftenSexualFlaw(slave);
					}
				} else if (slave.sexualFlaw === "judgemental") {
					if (slave.fetish === "submissive" && slave.fetishKnown === 1) {
						r.push(`${His} subconscious belief that ${he}'s worthless <span class="flaw break">softens ${his} judgemental behavior into eagerness to be fucked by the biggest cocks.</span>`);
						SoftenSexualFlaw(slave);
					} else if (slave.energy > 95) {
						r.push(`${He} needs sex so badly that ${he} can no longer be selective, and <span class="flaw break">softens ${his} judgemental behavior into a love of big dicks, though ${he} now loves them all.</span>`);
						SoftenSexualFlaw(slave);
					}
				} else if (slave.sexualFlaw === "shamefast") {
					if (slave.fetish === "humiliation" && slave.fetishKnown === 1) { // exhib
						r.push(`${He} decides that hiding won't get ${him} the humiliation ${he} craves, and <span class="flaw break">softens ${his} shamefastness into a willingness to tease.</span>`);
						SoftenSexualFlaw(slave);
					} else if (slave.energy > 95) {
						r.push(`${He} decides that hiding isn't getting ${him} enough sex, and <span class="flaw break">softens ${his} shamefastness into a willingness to tease.</span>`);
						SoftenSexualFlaw(slave);
					}
				} else if (slave.sexualFlaw === "idealistic") {
					if (slave.fetish === "submissive" && slave.fetishKnown === 1) {
						r.push(`${His} appetite for submission has <span class="flaw break">softened ${his} innocent ideas about sex into an ability to find romance</span> in the life of a sex slave.`);
						SoftenSexualFlaw(slave);
					} else if (slave.energy > 95) {
						r.push(`${His} appetite for sex has <span class="flaw break">softened ${his} innocent ideas about sex into an ability to find something romantic</span> in a constant whirl of intercourse.`);
						SoftenSexualFlaw(slave);
					}
				} else if (slave.sexualFlaw === "repressed") {
					if (slave.fetish === "buttslut" && slave.fetishKnown === 1) {
						r.push(`${He} grew up being taught that good ${girl}s do not take cock up their good ${girl} anuses, but ${he}'s just now decided ${he} prefers being a bad ${girl} and has softened ${his} repression into arousal at the perversion of dicks up ${his} behind.`);
						SoftenSexualFlaw(slave);
					} else if (slave.fetish === "cumslut" && slave.fetishKnown === 1) {
						r.push(`${He} grew up being taught that good ${girl}s do not put their good ${girl} mouths on others' private parts, but ${he}'s just now decided ${he} prefers being a bad ${girl} and has softened ${his} repression into arousal at the perverted idea of dicks down ${his} throat.`);
						SoftenSexualFlaw(slave);
					} else if (slave.energy > 95) {
						r.push(`${He} grew up being taught that good ${girl}s do not happily fuck anything that moves, but ${he}'s just now decided ${he} prefers being a bad ${girl} and has softened ${his} repression into arousal at the perversion of reveling in sexual addiction.`);
						SoftenSexualFlaw(slave);
					}
				}
			} else {
				if (slave.sexualFlaw === "hates anal") {
					if (slave.piercing.anus.weight) {
						r.push(`The constant stimulation ${his} guiche piercings give ${him} most intimate areas helps ${him} with ${his} anal hang-ups, so ${his} previous hesitations about buttsex vanish.`);
						slave.sexualFlaw = "none";
					} else if (slave.fetish === "buttslut" && slave.fetishKnown === 1) {
						r.push(`${His} sexual fascination with things entering ${his} asshole overcomes ${his} professed hatred of anal, so <span class="flaw break">${his} previous hesitations about buttsex vanish.</span>`);
						slave.sexualFlaw = "none";
					} else if (slave.energy > 95) {
						r.push(`As a nymphomaniac ${he} doesn't really care which hole ${he}'s getting fucked in, so <span class="flaw break">${his} previous hesitations about buttsex vanish.</span>`);
						slave.sexualFlaw = "none";
					}
				} else if (slave.sexualFlaw === "hates oral") {
					if (slave.piercing.tongue.weight) {
						r.push(`${He} can't stop sucking on ${his} tongue piercings, so <span class="flaw break">${he} gets over ${his} oral hang-ups.</span>`);
						slave.sexualFlaw = "none";
					} else if (slave.fetish === "cumslut" && slave.fetishKnown === 1) {
						r.push(`${He} can't get ${his} beloved cum without sucking, so <span class="flaw break">${he} forcibly overcomes ${his} strong gag reflex.</span>`);
						slave.sexualFlaw = "none";
					} else if (slave.energy > 95) {
						r.push(`${He} needs sex so much ${he} often has to encourage ${his} partners orally, so <span class="flaw break">${he} forcibly overcomes ${his} strong gag reflex.</span>`);
						slave.sexualFlaw = "none";
					}
				} else if (slave.sexualFlaw === "hates penetration") {
					if (slave.piercing.vagina.weight) {
						r.push(`${His} pussy piercings get ${him} used to the idea that it's a fuckhole, not ${his} precious womanhood, so <span class="flaw break">${his} previous hesitations about getting fucked vanish.</span>`);
						slave.sexualFlaw = "none";
					} else if (slave.fetish === "buttslut" && slave.fetishKnown === 1) {
						r.push(`${He}'s fascinated with the perversity of being anally penetrated, so <span class="flaw break">${his} previous hesitations about getting fucked vanish.</span>`);
						slave.sexualFlaw = "none";
					} else if (slave.fetish === "pregnancy" && slave.fetishKnown === 1 && (slave.ovaries === 1 || slave.mpreg === 1)) {
						r.push(`It would be unreasonable to expect to become pregnant with out being penetrated, so <span class="flaw break">${his} previous hesitations about getting fucked vanish.</span>`);
					} else if (slave.energy > 95) {
						r.push(`${He} needs sex like ${he} needs air, so <span class="flaw break">${his} previous hesitations about getting fucked vanish.</span>`);
						slave.sexualFlaw = "none";
					}
				} else if (slave.sexualFlaw === "apathetic") {
					if (slave.fetish === "dom" && slave.fetishKnown === 1) {
						r.push(`${He} likes being on top so much <span class="flaw break">${he} can no longer bear being lazy in bed.</span>`);
						slave.sexualFlaw = "none";
					} else if (slave.energy > 95) {
						r.push(`${He} needs sex so badly that <span class="flaw break">${he} can no longer afford to wait apathetically for others to fuck ${him}.</span>`);
						slave.sexualFlaw = "none";
					}
				} else if (slave.sexualFlaw === "crude") {
					if (slave.energy > 95) {
						r.push(`${He} needs sex so badly that <span class="flaw break">${he} can no longer afford to disgust partners into abandoning intercourse.</span>`);
						slave.sexualFlaw = "none";
					}
				} else if (slave.sexualFlaw === "judgemental") {
					if (slave.energy > 95) {
						r.push(`${He} needs sex so badly that <span class="flaw break">${he} can no longer afford to turn potential partners off by judging them.</span>`);
						slave.sexualFlaw = "none";
					}
				} else if (slave.sexualFlaw === "shamefast") {
					if (slave.fetish === "humiliation" && slave.fetishKnown === 1) { // split with exhib
						r.push(`${His} shamefastness is no longer anything but a pretense; <span class="flaw break">${he}'s decided ${he} really does like getting fucked in public.</span>`);
						slave.sexualFlaw = "none";
					} else if (slave.energy > 95) {
						r.push(`${He} needs sex so badly that <span class="flaw break">${he} can no longer afford to be embarrassed by public fucking.</span>`);
						slave.sexualFlaw = "none";
					}
				} else if (slave.sexualFlaw === "idealistic") {
					if (slave.fetish === "submissive" && slave.fetishKnown === 1) {
						r.push(`${He} always expected to be able to turn down sex, but <span class="flaw break">${he}'s finally realized that ${he} doesn't want to be asked.</span>`);
						slave.sexualFlaw = "none";
					} else if (slave.energy > 95) {
						r.push(`Hard as it is for ${him} to admit, ${he} recognizes ${his} own willingness to take sex from other slaves if it isn't forthcoming, and accepts that a slave nympho can't worry about trifles like consent.`);
						slave.sexualFlaw = "none";
					}
				} else if (slave.sexualFlaw === "repressed") {
					if (slave.fetish === "buttslut" && slave.fetishKnown === 1) {
						r.push(`${He} grew up being taught that good ${girl}s do not take cock up their good ${girl} anuses, but <span class="flaw break">${he}'s just now decided ${he} prefers being a bad ${girl}.</span>`);
						slave.sexualFlaw = "none";
					} else if (slave.fetish === "cumslut") {
						r.push(`${He} grew up being taught that good ${girl}s do not put their good ${girl} mouths on others' private parts, but ${he}'s just now decided ${he} prefers being a bad ${girl}.`);
						slave.sexualFlaw = "none";
					} else if (slave.energy > 95) {
						r.push(`${He} grew up being taught that good ${girl}s do not happily fuck anything that moves, but <span class="flaw break">${he}'s just now decided ${he} prefers being a bad ${girl}.</span>`);
						slave.sexualFlaw = "none";
					}
				}
			}
		}
	}

	/**
	 * @param {FC.ReportSlave} slave
	 *
	 */
	function paraphiliaImpacts(slave) {
		switch (slave.sexualFlaw) {
			case "cum addict":
				if (slave.fetish !== "cumslut") {
					if (slave.fetishStrength > 60) {
						r.push(`${His} cum addiction <span class="fetish loss">disinterests ${him} in ${his} current fetish,</span> and the conflict of sexual identity causes ${him} <span class="devotion dec">some anguish.</span>`);
						slave.fetishStrength -= 5;
						slave.devotion -= 3;
					} else {
						r.push(`${His} cum addiction <span class="fetish gain">forces ${him} back towards oral fixation.</span>`);
						slave.fetish = "cumslut";
					}
				} else {
					if (slave.fetishStrength <= 95) {
						r.push(`${His} cum addiction <span class="fetish inc">forces ${him} back towards ${his} past life as an abject cumslut.</span>`);
						slave.fetishStrength += 5;
						slave.devotion -= 3;
					}
				}
				if (["be confined in the arcade", "serve in the club", "serve the public", "whore", "work a glory hole", "work in the brothel"].includes(slave.assignment)) {
					r.push(`${His} paraphilia is satisfied by how many dicks ${he} gets to suck at work.`);
					slave.paraphiliaSatisfied = 1;
				} else if (V.PC.dick !== 0 && slave.toyHole === "mouth" && ["be your Concubine", "please you", "serve in the master suite"].includes(slave.assignment)) {
					r.push(`${His} paraphilia is satisfied by constant oral sex with you.`);
					slave.paraphiliaSatisfied = 1;
				} else if (slave.inflation !== 0 && slave.inflationType === "cum") {
					r.push(`${His} paraphilia is satisfied by swelling ${his} body with cum.`);
					slave.paraphiliaSatisfied = 1;
				} else if (slave.dietCum === 1) {
					r.push(`${His} paraphilia is satisfied by what ${he} gets to eat.`);
					slave.paraphiliaSatisfied = 1;
				} else if (slave.dietCum === 2) {
					r.push(`Other slaves in your penthouse are disturbed by ${his} insatiable appetite for human ejaculate, which ${his} heavy cum-diet encourages.`);
					slave.paraphiliaSatisfied = 1;
				} else if (V.feeder !== 0) {
					r.push(`${His} paraphilia is satisfied by the way ${he} gets to eat.`);
					slave.paraphiliaSatisfied = 1;
				} else if (slave.assignment === Job.DAIRY && V.dairyFeedersSetting > 0) {
					// something involving cum production
				} else {
					r.push(`${He} doesn't seem to feel ${he}'s getting enough cum, leaving the cum addict <span class="devotion dec">depressed and anxious.</span>`);
					slave.devotion -= 2;
					slave.paraphiliaSatisfied = -1;
				}
				break;
			case "anal addict":
				if (slave.fetish !== "buttslut") {
					if (slave.fetishStrength > 60) {
						r.push(`${His} anal addiction <span class="fetish loss">disinterests ${him} in ${his} current fetish,</span> and the conflict of sexual identity causes ${him} <span class="devotion dec">some anguish.</span>`);
						slave.fetishStrength -= 5;
						slave.devotion -= 3;
					} else {
						r.push(`${His} anal addiction <span class="fetish gain">forces ${him} back towards an intense preference for buttsex.</span>`);
						slave.fetish = "buttslut";
					}
				} else {
					if (slave.fetishStrength <= 95) {
						r.push(`${His} anal addiction <span class="fetish inc">forces ${him} back towards ${his} past life as an abject buttslut.</span>`);
						slave.fetishStrength += 5;
						slave.devotion -= 3;
					}
				}
				if (["be confined in the arcade", "serve in the club", "serve the public", "whore", "work a glory hole", "work in the brothel"].includes(slave.assignment)) {
					r.push(`${His} paraphilia is satisfied by how many dicks get shoved up ${his} butt at work.`);
					slave.paraphiliaSatisfied = 1;
				} else if (slave.toyHole === "ass" && ["be your Concubine", "please you", "serve in the master suite"].includes(slave.assignment)) {
					r.push(`${His} paraphilia is satisfied by constant anal sex with you.`);
					slave.paraphiliaSatisfied = 1;
				} else if (V.suppository !== 0) {
					r.push(`${His} paraphilia is satisfied by the way ${he} gets to take medication.`);
					slave.paraphiliaSatisfied = 1;
				} else if (plugWidth(slave) > 2) {
					r.push(`${His} paraphilia is satisfied by the enormous plug ${he} wears in ${his} ass.`);
					slave.paraphiliaSatisfied = 1;
				} else if (slave.assignment === Job.DAIRY && V.dairyStimulatorsSetting > 0) {
					// major ass drilling
				} else {
					r.push(`${He} doesn't seem to feel ${he}'s getting buttfucked often enough, leaving the anal addict <span class="devotion dec">depressed and anxious.</span>`);
					slave.paraphiliaSatisfied = -1;
					slave.devotion -= 2;
				}
				if (slave.prostate === 0) {
					if (slave.vagina === -1) {
						if (random(1, 5) === 1) {
							r.push(`Since ${he} lacks a prostate or a g-spot to be stimulated by cocks up ${his} butt, ${his} purely psychological addiction to asshole sex resolves itself, and ${he} starts to consider other sexual pursuits.`);
							slave.sexualQuirk = "none";
							slave.fetishStrength -= 20;
						}
					}
				}
				break;
			case "attention whore":
				if (slave.fetish !== "humiliation") { // exhib?
					if (slave.fetishStrength > 60) {
						r.push(`Being an attention whore <span class="fetish inc">disinterests ${him} in ${his} current fetish,</span> and the conflict of sexual identity causes ${him} <span class="devotion dec">some anguish.</span>`);
						slave.fetishStrength -= 5;
						slave.devotion -= 3;
					} else {
						r.push(`${His} addiction to exposure <span class="fetish gain">forces ${him} back towards a humiliation fetish.</span>`);
						slave.fetish = "humiliation";
					}
				} else {
					if (slave.fetishStrength <= 95) {
						r.push(`${His} addiction to exposure <span class="fetish inc">forces ${him} back towards ${his} past life as an abject humiliation whore.</span>`);
						slave.fetishStrength += 5;
						slave.devotion -= 3;
					}
				}
				if (slave.porn.feed === 1 && slave.porn.viewerCount >= 10000) {
					r.push(`${His} paraphilia is satisfied by the viewcounts on ${his} porn and the many viewers no doubt enjoying themselves to ${his} day to day life.`);
					slave.paraphiliaSatisfied = 1;
				} else if (["whore", "serve the public", "work in the brothel", "serve in the club", "be the DJ"].includes(slave.assignment)) {
					r.push(`${His} paraphilia is satisfied by how often ${he} gets publicly fucked at work.`);
					slave.paraphiliaSatisfied = 1;
				} else if (slave.assignment === Job.RECRUITER && V.recruiterTarget === "other arcologies" && V.arcologies[0].influenceTarget !== -1) {
					r.push(`${His} paraphilia is satisfied by the sheer amount of attention ${he} gets as a sexual Ambassador.`);
					slave.paraphiliaSatisfied = 1;
				} else if (slave.assignment === Job.TEACHER && V.schoolroom >= 20) {
					r.push(`${His} paraphilia is satisfied by ${his} work as a sexual instructor; enough eyes are fixated on ${his} lessons.`);
					slave.paraphiliaSatisfied = 1;
				} else if (App.Data.clothes.get(slave.clothes).exposure >= 4) {
					r.push(`${His} paraphilia is satisfied by ${his} nudity.`);
					slave.paraphiliaSatisfied = 1;
				} else {
					r.push(`${He} doesn't seem to feel ${he}'s getting fucked in public enough, leaving the attention whore <span class="devotion dec">depressed and anxious.</span>`);
					slave.paraphiliaSatisfied = -1;
					slave.devotion -= 2;
				}
				break;
			case "breast growth":
				if (slave.fetish !== "boobs") {
					if (slave.fetishStrength > 60) {
						r.push(`Being a breast expansion fanatic disinterests ${him} in ${his} current fetish, and the conflict of sexual identity causes ${him} some anguish.`);
						slave.fetishStrength -= 5;
						slave.devotion -= 3;
					} else {
						r.push(`${His} addiction to breast growth <span class="fetish gain">forces ${him} back towards a boob fetish.</span>`);
						slave.fetish = "boobs";
					}
				} else {
					if (slave.fetishStrength <= 95) {
						r.push(`${His} addiction to breast growth <span class="fetish loss">forces ${him} back towards ${his} past life as an abject slut for mammary intercourse.</span>`);
						slave.fetishStrength += 5;
						slave.devotion -= 3;
					}
				}
				if (V.arcologies[0].FSSlimnessEnthusiast !== "unset") {
					r.push(`Living in a society that openly rejects ${his} paraphilia <span class="devotion dec">mentally and emotionally cripples</span> ${him}.`);
					slave.devotion -= 10;
				} else if (V.arcologies[0].FSAssetExpansionist !== "unset") {
					r.push(`Living in a society that glorifies ${his} paraphilia <span class="devotion inc">leaves ${him} in perpetual ecstasy.</span>`);
					slave.devotion += 5;
				}
				if (slave.drugs === "intensive breast injections" || slave.drugs === "hyper breast injections") {
					r.push(`${His} paraphilia makes ${him} feel <span class="trust inc">fulfilled to be a sex slave</span> if it means breast expansion like this.`);
					slave.trust += 2;
					slave.paraphiliaSatisfied = 1;
				} else if (slave.drugs === "breast injections") {
					r.push(`${His} paraphilia makes breast injections very satisfying for ${him}.`);
					slave.paraphiliaSatisfied = 1;
				} else if (["get milked", "work in the dairy"].includes(slave.assignment) && slave.lactation > 0) {
					r.push(`${His} paraphilia is satisfied by ${his} work as a cow; ${he} can feel ${his} udders swelling with milk.`);
					slave.paraphiliaSatisfied = 1;
				} else if (slave.geneticQuirks.gigantomastia === 2 && slave.geneticQuirks.macromastia === 2 && V.geneticMappingUpgrade >= 1) {
					r.push(`${His} paraphilia is satisfied by the knowledge that ${his} genetic abnormality will keep ${his} breasts growing for the rest of ${his} life.`);
					slave.paraphiliaSatisfied = 1;
				} else if (V.geneticMappingUpgrade >= 1 && (slave.geneticQuirks.gigantomastia === 2 || slave.geneticQuirks.macromastia === 2)) {
					r.push(`${His} paraphilia is satisfied by the knowledge that ${his} genetic abnormality will keep ${his} breasts bigger than ${his} head.`);
					slave.paraphiliaSatisfied = 1;
				} else if (slave.geneticQuirks.gigantomastia === 2) {
					r.push(`${His} paraphilia is satisfied by ${his} chest's curious tendency toward perpetual growth.`);
					slave.paraphiliaSatisfied = 1;
				} else if (slave.health.condition < 0) {
					r.push(`${His} paraphilia is ameliorated by ${his} poor health; ${he} knows ${he} can't take expansion right now.`);
					// paraphilia neither satisfied nor dissatisfied
				} else {
					r.push(`${He} feels ${his} breasts are shrinking horribly, leaving the growth addict <span class="devotion dec">depressed and anxious.</span>`);
					slave.paraphiliaSatisfied = -1;
					slave.devotion -= 2;
				}
				break;
			case "abusive":
				if (slave.fetish !== "dom") {
					if (slave.fetishStrength > 60) {
						r.push(`Being addicted to sexually abusing others disinterests ${him} in ${his} current fetish, and the conflict of sexual identity causes ${him} some anguish.`);
						slave.fetishStrength -= 5;
						slave.devotion -= 3;
					} else {
						r.push(`${His} addiction to sexual force <span class="fetish gain">forces ${him} back towards sexual dominance.</span>`);
						slave.fetish = "dom";
					}
				} else {
					if (slave.fetishStrength <= 95) {
						r.push(`${His} need to force others to pleasure ${him} <span class="fetish loss">forces ${him} back towards ${his} past life as a total dom.</span>`);
						slave.fetishStrength += 5;
						slave.devotion -= 3;
					}
				}
				if (slave.assignment === Job.HEADGIRL) {
					r.push(`${His} paraphilia is satisfied by ${his} work as your Head Girl.`);
					slave.paraphiliaSatisfied = 1;
				} else if (slave.assignment === Job.WARDEN) {
					r.push(`${His} paraphilia is satisfied by ${his} work as your Wardeness.`);
					slave.paraphiliaSatisfied = 1;
				} else if (slave.assignment === Job.STEWARD) {
					r.push(`${His} paraphilia is satisfied by ${his} work as the Stewardess.`);
					slave.paraphiliaSatisfied = 1;
				} else if (slave.assignment === Job.TEACHER) {
					r.push(`${His} paraphilia is satisfied by ${his} work as the Schoolteacher.`);
					slave.paraphiliaSatisfied = 1;
				} else if (canMove(slave) && (slave.rules.release.slaves === 1 || App.Utils.hasFamilySex(slave)) && V.universalRulesConsent === 0) {
					r.push(`${His} paraphilia makes pinning down and raping other slaves very satisfying.`);
					slave.paraphiliaSatisfied = 1;
				} else {
					r.push(`${He} gets few chances to indulge ${his} need to hold others down as ${he} fucks them, leaving ${him} <span class="devotion dec">depressed and anxious.</span>`);
					slave.paraphiliaSatisfied = -1;
					slave.devotion -= 2;
				}
				break;
			case "malicious":
				if (slave.fetish !== "sadist") {
					if (slave.fetishStrength > 60) {
						r.push(`Being addicted to others' sexual anguish disinterests ${him} in ${his} current fetish, and the conflict of sexual identity causes ${him} some anguish.`);
						slave.fetishStrength -= 5;
						slave.devotion -= 3;
					} else {
						r.push(`${His} addiction to tormenting others sexually <span class="fetish gain">forces ${him} back towards sadism.</span>`);
						slave.fetish = "sadist";
					}
				} else {
					if (slave.fetishStrength <= 95) {
						r.push(`${His} need to be the only one enjoying sex <span class="fetish loss">forces ${him} back towards ${his} past life as a complete sexual sadist.</span>`);
						slave.fetishStrength += 5;
						slave.devotion -= 3;
					}
				}
				if (slave.assignment === Job.HEADGIRL) {
					r.push(`${His} paraphilia is satisfied by ${his} work as your Head Girl.`);
					slave.paraphiliaSatisfied = 1;
				} else if (slave.assignment === Job.WARDEN) {
					r.push(`${His} paraphilia is satisfied by ${his} work as your Wardeness.`);
					slave.paraphiliaSatisfied = 1;
				} else if (canMove(slave) && (slave.rules.release.slaves === 1 || App.Utils.hasFamilySex(slave)) && V.universalRulesConsent === 0) {
					r.push(`${His} paraphilia makes pinning down and brutally raping other slaves very satisfying.`);
					slave.paraphiliaSatisfied = 1;
				} else {
					r.push(`${He} gets few chances to indulge ${his} need to subject others to sexual anguish, leaving ${him} <span class="devotion dec">depressed and anxious.</span>`);
					slave.paraphiliaSatisfied = -1;
					slave.devotion -= 2;
				}
				break;
			case "self hating": {
				if (slave.fetish !== "masochist") {
					if (slave.fetishStrength > 60) {
						r.push(`${His} sexual self hatred disinterests ${him} in ${his} current fetish, and the conflict of sexual identity causes ${him} some anguish.`);
						slave.fetishStrength -= 5;
						slave.devotion -= 3;
					} else {
						r.push(`${His} sexual self hatred <span class="fetish gain">forces ${him} back towards masochism.</span>`);
						slave.fetish = "masochist";
					}
				} else {
					if (slave.fetishStrength <= 95) {
						r.push(`${His} sexual self hatred <span class="fetish loss">forces ${him} back towards ${his} past life as a total masochist.</span>`);
						slave.fetishStrength += 5;
						slave.devotion -= 3;
					}
				}
				const dom = (slave.assignment === Job.SUBORDINATE && slave.subTarget > 0) ? getSlave(slave.subTarget) : null;
				if (slave.assignment === Job.DAIRY && V.dairyRestraintsSetting >= 2) {
					r.push(`${His} paraphilia is satisfied by ${his} horrible life as a producer of useful fluids and a receptacle for machine rape.`);
					slave.paraphiliaSatisfied = 1;
				} else if (["be confined in the arcade", "work a glory hole"].includes(slave.assignment)) {
					r.push(`${His} paraphilia is satisfied by ${his} horrible life as a helpless hole for an infinite bag of dicks.`);
					slave.paraphiliaSatisfied = 1;
				} else if (dom && ["abusive", "malicious"].includes(dom.sexualFlaw)) {
					r.push(`${His} paraphilia is satisfied by the constant mistreatment ${he} receives from ${his} dom, ${dom.slaveName}.`);
					slave.paraphiliaSatisfied = 1;
				} else if (slave.trust < -50) {
					r.push(`${His} paraphilia is satisfied by ${his} constant terror.`);
					slave.paraphiliaSatisfied = 1;
				} else {
					r.push(`${He} doesn't seem to feel ${he}'s treated poorly enough, leaving the self hating slut <span class="devotion dec">depressed and anxious.</span>`);
					slave.paraphiliaSatisfied = -1;
					slave.devotion -= 2;
				}
				break;
			}
			case "neglectful":
				if (slave.fetish !== "submissive") {
					if (slave.fetishStrength > 60) {
						r.push(`${His} sexual self neglect disinterests ${him} in ${his} current fetish, and the conflict of sexual identity causes ${him} some anguish.`);
						slave.fetishStrength -= 5;
						slave.devotion -= 3;
					} else {
						r.push(`${His} sexual self neglect <span class="fetish gain">forces ${him} back towards submissiveness.</span>`);
						slave.fetish = "submissive";
					}
				} else {
					if (slave.fetishStrength <= 95) {
						r.push(`${His} sexual self neglect <span class="fetish loss">forces ${him} back towards ${his} past life as a total submissive.</span>`);
						slave.fetishStrength += 5;
						slave.devotion -= 3;
					}
				}
				if (["be confined in the arcade", "serve in the club", "serve the public", "whore", "work a glory hole", "work in the brothel", "work as a servant", "be the Attendant", "be the Milkmaid"].includes(slave.assignment)) {
					r.push(`${His} paraphilia is satisfied by how ${he}'s expected to serve others' sexual needs at work.`);
					slave.paraphiliaSatisfied = 1;
				} else if (["be your Concubine", "please you", "serve in the master suite"].includes(slave.assignment)) {
					r.push(`${His} paraphilia is satisfied by how ${he}'s expected to serve your sexual needs at work.`);
					slave.paraphiliaSatisfied = 1;
				} else if (slave.assignment === Job.SUBORDINATE) {
					r.push(`${His} paraphilia is satisfied by how ${he}'s expected to serve other slaves' sexual needs.`);
					slave.paraphiliaSatisfied = 1;
				} else {
					r.push(`${He} doesn't seem to feel ${he}'s serving others' sexual needs enough, leaving ${him} <span class="devotion dec">depressed and anxious.</span>`);
					slave.paraphiliaSatisfied = -1;
					slave.devotion -= 2;
				}
				break;
			case "breeder":
				if (slave.fetish !== "pregnancy") {
					if (slave.fetishStrength > 60) {
						r.push(`${His} breeding obsession disinterests ${him} in ${his} current fetish, and the conflict of sexual identity causes ${him} some anguish.`);
						slave.fetishStrength -= 5;
						slave.devotion -= 3;
					} else {
						r.push(`${His} breeding obsession <span class="fetish gain">forces ${him} back towards appreciation for impregnation.</span>`);
						slave.fetish = "pregnancy";
					}
				} else {
					if (slave.fetishStrength <= 95) {
						r.push(`${His} breeding obsession <span class="fetish loss">forces ${him} back towards ${his} past life as an abject impregnation whore.</span>`);
						slave.fetishStrength += 5;
						slave.devotion -= 3;
					}
				}
				if (V.arcologies[0].FSRestart !== "unset") {
					r.push(`Living in a society that rejects ${his} paraphilia`);
					if (slave.breedingMark === 1 && V.propOutcome === 1) {
						r.push(`would have mentally and emotionally crippled ${him}; but as a designated breeder, ${he} can't help but <span class="devotion inc">love ${his} role</span> in society.`);
						slave.devotion++;
					} else {
						r.push(`<span class="devotion dec">mentally and emotionally cripples</span> ${him}.`);
						slave.devotion -= 10;
					}
				} else if (V.arcologies[0].FSRepopulationFocus !== "unset") {
					r.push(`Living in a society that glorifies ${his} paraphilia <span class="devotion inc">leaves ${him} in perpetual ecstasy.</span>`);
					slave.devotion += 5;
				}
				if (slave.broodmother > 0 && slave.pregKnown === 1) {
					r.push(`${He} knows ${he} will be pregnant until ${his} body gives out, and <span class="devotion inc">${he} couldn't be happier.</span>`);
					slave.paraphiliaSatisfied = 1;
					slave.devotion += 5;
				} else if (slave.pregControl === "labor suppressors" && slave.preg >= slave.pregData.normalBirth) {
					r.push(`Under the effects of labor suppression drugs, ${he} knows ${he} will be pregnant until you decided to allow ${his} birth. <span class="devotion inc">${He} couldn't be happier.</span>`);
					slave.paraphiliaSatisfied = 1;
					slave.devotion += 5;
				} else if (slave.pregType >= 10 && slave.pregKnown === 1) {
					r.push(`${His} growing hyperpregnancy feeds ${his} paraphilia and <span class="devotion inc">fulfills ${his} deepest fantasies.</span>`);
					slave.paraphiliaSatisfied = 1;
					slave.devotion += 3;
				} else if (slave.pregKnown === 1) {
					r.push(`${His} paraphilia is satisfied by ${his} pregnancy.`);
					slave.paraphiliaSatisfied = 1;
				} else if (canGetPregnant(slave) && V.PC.dick !== 0 && slave.toyHole === "pussy" && slave.mpreg !== 1 && ["be your Concubine", "please you", "serve in the master suite"].includes(slave.assignment)) {
					r.push(`${His} paraphilia is satisfied by constant unprotected vaginal sex with you.`);
					slave.paraphiliaSatisfied = 1;
				} else if (canGetPregnant(slave) && V.PC.dick !== 0 && slave.toyHole === "ass" && slave.mpreg === 1 && ["be your Concubine", "please you", "serve in the master suite"].includes(slave.assignment)) {
					r.push(`${His} paraphilia is satisfied by constant unprotected anal sex with you.`);
					slave.paraphiliaSatisfied = 1;
				} else if (slave.bellyImplant >= 60000) {
					r.push(`${His} paraphilia is satisfied by ${his} overfilled belly implant.`);
					slave.paraphiliaSatisfied = 1;
				} else if (App.Data.misc.fakeBellies.includes(slave.bellyAccessory)) {
					r.push(`${He} <span class="devotion dec">loathes</span> being forced to carry a fake pregnancy.`);
					slave.paraphiliaSatisfied = -1;
					slave.devotion -= 3;
				} else if (slave.pregWeek < 0) {
					r.push(`${His} paraphilia is temporarily sated by ${his} recent pregnancy, though ${he} anxiously counts the days until ${he} can get pregnant again.`);
					slave.paraphiliaSatisfied = 1;
				} else {
					r.push(`${He} isn't pregnant, leaving the breeder slut <span class="devotion dec">depressed and anxious.</span>`);
					slave.paraphiliaSatisfied = -1;
					slave.devotion -= 2;
				}
				break;
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function nymphoDevotionGain(slave) {
		if (slave.attrKnown === 1) {
			if (slave.devotion < -20) {
				r.push(`${He}'s having trouble accepting it, but the sex surrounding ${him} <span class="devotion inc">is intriguing to a nymphomaniac.</span>`);
			} else if (slave.devotion <= 50) {
				r.push(`<span class="devotion inc">${His} acceptance of ${his} life as a sex slave is driven faster</span> by how satisfied ${he} is by the availability of ${his} favorite activity.`);
			} else {
				r.push(`<span class="devotion inc">${He} loves being your nympho slut.</span>`);
			}
			slave.devotion += 2;
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function careerEffects(slave) {
		switch (slave.career) {
			case "a slave":
				r.push(`${He} has been a slave so long that ${he} can barely remember making decisions for ${himself}, and <span class="devotion inc">feels naturally drawn</span> to ${his} ${getWrittenTitle(slave)}.`);
				slave.devotion += 1;
				break;
			case "a dairy slave":
				r.push(`${He} is <span class="devotion inc">thankful</span> that you saved ${him} from becoming a mindless`);
				if (slave.trust < 50) {
					r.push(`cow, though ${he} still has ${his} doubts.`);
				} else {
					r.push(`cow.`);
				}
				slave.devotion += 2;
				break;
			case "a Fuckdoll":
				r.push(`${He} was once a Fuckdoll, leaving ${him} <span class="devotion inc">willing to obey on an instinctual level.</span>`);
				slave.devotion += 5;
				break;
			case "a cum dump":
			case "a meat toilet":
				r.push(`${He} was trained to be nothing more than a warm hole to fuck, leaving ${him} <span class="devotion inc">obedient</span> and <span class="trust inc">willing.</span>`);
				slave.devotion += 2;
				slave.trust += 1;
				break;
			case "a dairy cow":
				r.push(`${His} mental conditioning <span class="devotion inc">leaves ${him} mellow</span> and <span class="trust inc">trusting.</span>`);
				slave.trust += 1;
				slave.devotion += 1;
				if (slave.lactation === 0) {
					r.push(`However, ${he} is <span class="trust dec">reduced to a state of sheer panic</span> over ${his} dried up breasts.`);
					slave.trust -= 10;
				} else if (slave.pregKnown === 0 && slave.bellyImplant < 1500) {
					r.push(`However, ${he} is <span class="trust dec">reduced to a state of panic</span> that ${his} milk will dry up if ${he} doesn't get pregnant again soon.`);
					slave.trust -= 2;
				}
				break;
			case "a breeding bull":
				r.push(`${His} mental conditioning <span class="devotion inc">leaves ${him} mellow</span> and <span class="trust inc">trusting.</span>`);
				slave.trust += 1;
				slave.devotion += 1;
				if (!canAchieveErection(slave)) {
					r.push(`However, ${he} is <span class="trust dec">reduced to a state of sheer panic</span> over ${his} inability to get hard.`);
					slave.trust -= 10;
				} else if (!canPenetrate(slave)) {
					r.push(`However, ${he} is <span class="devotion dec">disappointed</span> that ${he} is unable to mount and fuck others any more.`);
					slave.devotion -= 2;
				}
				break;
			case "a slave since birth":
				if (slave.tankBaby > 0) {
					r.push(`The tank's imprinting left a lasting impression on ${him}; deep down ${he}`);
					if (slave.tankBaby === 2) {
						r.push(`<span class="devotion inc">knows you are to be obeyed</span> or <span class="trust dec">bad things will happen,</span>`);
						slave.devotion += 3;
						slave.trust -= 3;
					} else {
						r.push(`<span class="devotion inc">knows you are to be obeyed</span> and <span class="trust inc">trusted,</span>`);
						slave.devotion += 3;
						slave.trust += 3;
					}
					r.push(`even if ${he} can't understand why.`);
				}
				break;
			case "a breeder":
				if (slave.pregKnown === 1 && V.arcologies[0].FSRepopulationFocus !== "unset") {
					r.push(`${His} life used to revolve around being pregnant all the time and nothing has changed. However, being surrounded with happy, heavily pregnant women leaves ${him} slightly more accepting of ${his} fate and hopeful that ${his} trained body will be useful to you.`);
					slave.trust += 1;
					slave.devotion += 1;
				} else if (slave.pregControl === "speed up") {
					r.push(`${His} life used to revolve around being pregnant all the time and nothing has changed.`);
					if (!canSee(slave)) {
						r.push(`${He} can feel ${his} middle swell at a rate ${he} considers unnatural, which <span class="trust dec">frightens ${him}.</span>`);
					} else {
						r.push(`${He} <span class="trust dec">watches in horror</span> as ${his} middle visibly swells before ${his} eyes.`);
					}
					r.push(`${He} <span class="devotion inc">slips more into submission</span> as the pressure in ${his} womb increases.`);
					slave.trust -= 10;
					slave.devotion += 5;
				} else if (slave.pregKnown === 1 || slave.pregWeek < 0) {
					r.push(`${His} life used to revolve around being pregnant all the time and nothing has changed. ${He} fears that ${his} entire life will revolve around pregnancy and slips more into submission of ${his} fate.`);
					slave.trust -= 1;
					slave.devotion += 1;
				} else {
					r.push(`${He} remembers how ${his} womb used to be swollen with children as often as possible, and is thankful and grateful that ${he} isn't just meat to fuck pregnant anymore.`);
					slave.trust += 1;
					slave.devotion += 1;
				}
				break;
			case "a bioreactor":
				if (V.dairyRestraintsSetting < 2 || slave.assignment !== Job.DAIRY && slave.assignment !== Job.MILKED) {
					r.push(`${He} remembers what it was like to be a living, breathing, milk-jetting,`);
					if (isFertile(slave) && (V.dairyPregUpgrade > 0)) {
						r.push(`baby-filled,`);
					}
					if (slave.balls !== 0) {
						r.push(`cum-squirting,`);
					}
					r.push(`drug-filled piece of industrial equipment, and is <span class="devotion inc">thankful</span> and <span class="trust inc">grateful</span> that ${he} isn't any more.`);
					slave.trust += 1;
					slave.devotion += 1;
				}
				break;
			case "a Futanari Sister":
				if (V.masterSuiteUpgradeLuxury === 2) {
					if (slave.assignment === Job.MASTERSUITE) {
						r.push(`As a former Futanari Sister, the fuckpit in ${V.masterSuiteName} feels like home to ${him}, and ${he} has <span class="trust inc">no desire to ever leave.</span>`);
						slave.trust += 1;
					} else {
						r.push(`${He} knows that ${V.masterSuiteName} features a fuckpit much like the one ${he} spent years enjoying as a Futanari Sister, and does ${his} best to be a good girl in the hope you'll send ${him} there someday.`);
						slave.devotion += 1;
					}
				}
				break;
			default:
				if (slave.trust >= -50) {
					if (App.Data.Careers.General.grateful.includes(slave.career)) {
						slave.trust += 1;
						r.push(`${He} remembers how hard ${his} life was before ${he} was a slave, and`);
						if (slave.trust > 50) {
							r.push(`<span class="trust inc">trusts you a bit more</span> for improving it.`);
						} else if (slave.trust >= -20) {
							r.push(`<span class="trust inc">trusts you a bit more</span> because of it.`);
						} else {
							r.push(`<span class="trust inc">fears you a little less</span> because of it.`);
						}
						slave.trust += 1;
					}
				}
				if (slave.devotion >= -50) {
					if (App.Data.Careers.General.menial.includes(slave.career)) {
						slave.devotion += 1;
						r.push(`${He} took orders a lot before ${he} was a slave, and is subconsciously`);
						if (slave.trust > 50) {
							r.push(`<span class="devotion inc">a little more eager to obey.</span>`);
						} else if (slave.trust >= -20) {
							r.push(`<span class="devotion inc">a little quicker to obey.</span>`);
						} else {
							r.push(`<span class="devotion inc">a bit less resistant</span> to commands.`);
						}
						slave.devotion += 1;
					}
				}
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function organicFetishDevelopments(slave) {
		if (slave.assignment === Job.MILKED || slave.assignment === Job.DAIRY) {
			if (slave.lactation > 0) {
				if (slave.fetishStrength <= 95) {
					if (slave.fetish !== "boobs") {
						if (fetishChangeChance(slave) > random(0, 100)) {
							r.push(`Since ${he} has had ${his} lactating nipples constantly caressed by the milkers, <span class="fetish gain">${he} begins to appreciate nipple stimulation in a new way.</span>`);
							slave.fetish = "boobs";
							slave.fetishKnown = 1;
							slave.fetishStrength = 10;
						}
					} else if (slave.fetishStrength <= 95) {
						if (slave.fetishKnown === 1) {
							r.push(`Since ${he} has had ${his} lactating nipples constantly caressed by the milkers, <span class="fetish inc">${he} sinks deeper into sexual reliance on nipple stimulation.</span>`);
						}
						slave.fetishStrength += 4;
					}
				}
			}
			if (slave.balls > 0 || slave.prostate !== 0) {
				if (slave.fetishStrength <= 95) {
					if (slave.fetish !== "buttslut") {
						if (fetishChangeChance(slave) > random(0, 100)) {
							r.push(`Since ${he} has had ${his} prostate constantly stimulated to encourage ${him} to give cum, <span class="fetish gain">${he} begins to look forward to anal penetration.</span>`);
							slave.fetish = "buttslut";
							slave.fetishKnown = 1;
							slave.fetishStrength = 10;
						}
					} else {
						if (slave.fetishKnown === 1) {
							r.push(`Since ${he} has had ${his} prostate constantly stimulated to encourage ${him} to give cum, <span class="fetish inc">${he} sinks deeper into sexual reliance on penetration of ${his} butthole.</span>`);
						}
						slave.fetishStrength += 4;
					}
				}
			}
		}
		if (slave.heels === 1) {
			if (shoeHeelCategory(slave) === 0) {
				if (slave.fetish !== "submissive") {
					if (slave.career === "a dairy cow" || slave.career === "a breeding bull") {
						r.push(`${He} sees ${himself} as an animal, and as such, is perfectly content`);
						if (hasAllLimbs(slave)) {
							r.push(`walking on all fours.`);
						} else {
							r.push(`crawling on the ground.`);
						}
					} else {
						if (fetishChangeChance(slave) > random(0, 100)) {
							r.push(`Living as a sex slave on`);
							if (hasAllLimbs(slave)) {
								r.push(`all fours`);
							} else {
								r.push(`the ground`);
							}
							r.push(`<span class="fetish gain">turns ${him} into a sexual submissive.</span>`);
							slave.fetish = "submissive";
							slave.fetishKnown = 1;
							slave.fetishStrength = 65;
						}
					}
				} else {
					if (slave.fetishKnown === 1) {
						r.push(`Living as a sex slave on`);
						if (hasAllLimbs(slave)) {
							r.push(`all fours`);
						} else {
							r.push(`the floor`);
						}
						r.push(`<span class="fetish inc">pushes ${him} deeper into submission.</span>`);
					}
					slave.fetishStrength += 4;
				}
			}
		}
		if (!slave.piercing.genitals.smart || ["off", "none", "all", "men", "women", "anti-men", "anti-women"].includes(slave.clitSetting)) {
			if (canDoAnal(slave)) {
				if (slave.vagina > -1 && !canDoVaginal(slave)) {
					if (slave.fetishStrength <= 95) {
						if (fetishChangeChance(slave) > random(0, 100)) {
							if (slave.assignment === Job.PUBLIC || slave.assignment === Job.CLUB) {
								if (slave.fetish !== "buttslut") {
									r.push(`With so much sexual attention focused on ${his} anus, <span class="fetish gain">${he} comes to view buttsex as the centerpiece of ${his} sexuality.</span>`);
									slave.fetish = "buttslut";
									slave.fetishKnown = 1;
									slave.fetishStrength = 10;
								} else if (slave.fetish === "buttslut" && slave.fetishStrength <= 95) {
									if (slave.fetishKnown === 1) {
										r.push(`With so much sexual attention focused on ${his} anus, <span class="fetish inc">${his} love of anal increases.</span>`);
									}
									slave.fetishStrength += 4;
								}
							} else if (slave.assignment === Job.WHORE || slave.assignment === Job.BROTHEL) {
								if (slave.fetish !== "buttslut") {
									r.push(`With ${his} anus constantly sold for use, <span class="fetish gain">${he} comes to view buttsex as the centerpiece of ${his} sexuality.</span>`);
									slave.fetish = "buttslut";
									slave.fetishKnown = 1;
									slave.fetishStrength = 10;
								} else {
									if (slave.fetishKnown === 1) {
										r.push(`With ${his} anus constantly sold for use, <span class="fetish inc">${his} love of anal increases.</span>`);
									}
									slave.fetishStrength += 4;
								}
							}
						}
					}
				} else if (slave.vagina === -1) {
					if (slave.prostate !== 0) {
						if (slave.fetishStrength <= 95) {
							if (fetishChangeChance(slave) > random(0, 90)) {
								if (slave.assignment === Job.PUBLIC || slave.assignment === Job.CLUB) {
									if (slave.fetish !== "buttslut") {
										r.push(`Since most of ${his} orgasms are caused by prostate stimulation from anal sex with citizens, <span class="fetish gain">${he} comes to view ${his} asshole as ${his} primary sexual organ.</span>`);
										slave.fetish = "buttslut";
										slave.fetishKnown = 1;
										slave.fetishStrength = 10;
									} else {
										if (slave.fetishKnown === 1) {
											r.push(`After many, many prostate orgasms with a citizen's cock up ${his} butt, <span class="fetish inc">${his} love of anal increases.</span>`);
										}
										slave.fetishStrength += 4;
									}
								} else if (slave.assignment === Job.WHORE || slave.assignment === Job.BROTHEL) {
									if (slave.fetish !== "buttslut") {
										r.push(`Since most of ${his} orgasms are caused by prostate stimulation from anal sex with customers, <span class="fetish gain">${he} comes to view ${his} asshole as ${his} primary sexual organ.</span>`);
										slave.fetish = "buttslut";
										slave.fetishKnown = 1;
										slave.fetishStrength = 10;
									} else {
										if (slave.fetishKnown === 1) {
											r.push(`After many, many prostate orgasms with a customer's cock up ${his} butt, <span class="fetish inc">${his} love of anal increases.</span>`);
										}
										slave.fetishStrength += 4;
									}
								}
							}
						}
					}
				}
			}
			if (slave.rules.release.masturbation === 1) {
				if (slave.balls > 0) {
					if (slave.drugs === "testicle enhancement" || slave.drugs === "intensive testicle enhancement" || slave.drugs === "hyper testicle enhancement") {
						if (fetishChangeChance(slave) > random(0, 100)) {
							if (slave.fetish !== "cumslut") {
								r.push(`While masturbating, ${he}'s at first surprised but then aroused by ${his} drug-enhanced ejaculation. After repeatedly covering ${himself} in the stuff, ${he}'s become a cum fetishist.`);
								slave.fetish = "cumslut";
								slave.fetishKnown = 1;
								slave.fetishStrength = 10;
							} else {
								if (slave.fetishKnown === 1) {
									r.push(`${His} masturbation sessions have come to consist mainly of ${him} blowing massive loads of cum into ${his} own mouth. <span class="fetish inc">${His} ejaculate addiction increases.</span>`);
								}
								slave.fetishStrength += 4;
							}
						}
					}
				}
			}
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function paraphiliaAcquisition(slave) {
		let FSApproves = 0;
		if (slave.fetishStrength > random(80, 180)) {
			switch (slave.fetish) {
				case "submissive":
					if (slave.sexualFlaw !== "neglectful") {
						if (slave.energy < 80) {
							if ([Job.PUBLIC, Job.WHORE, Job.BROTHEL, Job.CLUB, Job.GLORYHOLE, Job.ARCADE].includes(slave.assignment)) {
								r.push(`Serving as a sex worker drives ${him} deeper and deeper into submission, and ${he} pays less and less attention to ${his} own pleasure. ${He}'s become sexually self neglectful, and only cares about getting others off.`);
								slave.sexualFlaw = "neglectful";
								slave.fetishStrength = 100;
								FSApproves = 1;
							}
						} else if (slave.aphrodisiacs > 0 || slave.inflationType === "aphrodisiac") {
							if (slave.addict > 2) {
								r.push(`${His} aphrodisiac addiction makes ${him} dependent on submission. <span class="paraphilia gain">${He}'s become sexually self neglectful,</span> and only cares about getting others off.`);
								slave.sexualFlaw = "neglectful";
								slave.fetishStrength = 100;
								FSApproves = 1;
							}
						}
					}
					break;
				case "cumslut":
					if (slave.sexualFlaw !== "cum addict") {
						if (slave.dietCum > 0) {
							r.push(`In addition to being an orally fixated cumslut, ${he} eats ejaculate in ${his} food, making the`);
							if (canTaste(slave)) {
								r.push(`taste`);
							} else {
								r.push(`texture`);
							}
							r.push(`omnipresent for ${him}. <span class="paraphilia gain">${He}'s become psychologically addicted to cum.</span>`);
							slave.sexualFlaw = "cum addict";
							slave.fetishStrength = 100;
							FSApproves = 1;
						} else if (slave.inflation !== 0 && slave.inflationType === "cum") {
							r.push(`In addition to being an orally fixated cumslut, ${he} is required to keep ${his} belly bloated with cum at all times, making ${his} life revolve around being full of cum. ${He}'s become psychologically addicted to cum.`);
							slave.sexualFlaw = "cum addict";
							slave.fetishStrength = 100;
							FSApproves = 1;
						} else if (V.cockFeeder !== 0) {
							r.push(`In addition to being an orally fixated cumslut, ${he} eats by sucking dick. <span class="paraphilia gain">${He}'s become psychologically addicted to cum.</span>`);
							slave.sexualFlaw = "cum addict";
							slave.fetishStrength = 100;
							FSApproves = 1;
						} else if (slave.aphrodisiacs > 0 || slave.inflationType === "aphrodisiac") {
							if (slave.addict > 2) {
								r.push(`${His} aphrodisiac addiction makes ${him} dependent on oral stimulation. <span class="paraphilia gain">${He}'s become psychologically addicted to cum.</span>`);
								slave.sexualFlaw = "cum addict";
								slave.fetishStrength = 100;
								FSApproves = 1;
							}
						}
					}
					break;
				case "buttslut":
					if (slave.sexualFlaw !== "anal addict") {
						if (slave.energy > 80) {
							if (slave.anus > 0) {
								if (slave.prostate > 0) {
									r.push(`${He} has a powerful sex drive, and constantly coming to prostate stimulation drives ${him} ever deeper into ${his} identity as a helpless anal slut. ${He}'s become psychologically addicted to getting assfucked.`);
									slave.sexualFlaw = "anal addict";
									slave.fetishStrength = 100;
									FSApproves = 1;
								} else if (slave.chastityVagina) {
									r.push(`${He} has a powerful sex drive, and since ${his} pussy's off limits, ${he} sinks ever deeper into ${his} identity as a helpless anal slut. ${He}'s become psychologically addicted to getting assfucked.`);
									slave.sexualFlaw = "anal addict";
									slave.fetishStrength = 100;
									FSApproves = 1;
								}
							}
						} else if (slave.aphrodisiacs > 0 || slave.inflationType === "aphrodisiac") {
							if (slave.addict > 2) {
								r.push(`${His} aphrodisiac addiction makes ${him} dependent on constant buttsex. <span class="paraphilia gain">${He}'s become psychologically addicted to getting assfucked.</span>`);
								slave.sexualFlaw = "anal addict";
								slave.fetishStrength = 100;
								FSApproves = 1;
							}
						}
					}
					break;
				case "humiliation":
					if (slave.sexualFlaw !== "attention whore") {
						if ([Job.PUBLIC, Job.WHORE, Job.BROTHEL, Job.CLUB].includes(slave.assignment)) {
							r.push(`Serving as a public sex worker gives ${him} plenty of delicious humiliation, and ${he} cares less and less about sex itself and more about making people blush. ${He}'s become an attention whore.`);
							slave.sexualFlaw = "attention whore";
							slave.fetishStrength = 100;
							FSApproves = 1;
						} else if (slave.aphrodisiacs > 0 || slave.inflationType === "aphrodisiac") {
							if (slave.addict > 2) {
								r.push(`${His} aphrodisiac addiction makes ${him} dependent on stares to get off. <span class="paraphilia gain">${He}'s become an attention whore.</span>`);
								slave.sexualFlaw = "attention whore";
								slave.fetishStrength = 100;
								FSApproves = 1;
							}
						}
					}
					break;
				case "boobs":
					if (slave.sexualFlaw !== "breast growth") {
						const boobSize = slave.boobs - slave.boobsImplant - slave.boobsMilk;
						if (slave.drugs === "breast injections" || slave.drugs === "intensive breast injections") {
							r.push(`${He} loves ${his} tits, and feeling them respond to drug injections starts to hold more fascination for ${him} than mere sex. ${His} sexual identity is now dominated by ${his} swelling boobs.`);
							slave.sexualFlaw = "breast growth";
							slave.fetishStrength = 100;
							FSApproves = 1;
						} else if (slave.drugs === "hyper breast injections") {
							r.push(`${He} loves ${his} tits, and watching them steadily swell from the hyper injections starts to hold more fascination for ${him} than mere sex. ${His} sexual identity is now dominated by ${his} swelling boobs.`);
							slave.sexualFlaw = "breast growth";
							slave.fetishStrength = 100;
							FSApproves = 1;
						} else if (slave.geneticQuirks.gigantomastia === 2 && boobSize >= 25000) {
							r.push(`${He} loves ${his} tits, and measuring their`);
							if (V.geneticMappingUpgrade >= 1) {
								r.push(`weekly growth from gigantomastia`);
							} else {
								r.push(`mysterious weekly growth`);
							}
							r.push(`starts to hold more fascination for ${him} than mere sex. <span class="paraphilia gain">${His} sexual identity is now dominated by ${his} swelling boobs.</span>`);
							slave.sexualFlaw = "breast growth";
							slave.fetishStrength = 100;
							FSApproves = 1;
						} else if (slave.hormoneBalance >= 100 && slave.boobs < 1000) {
							r.push(`${He} loves ${his} tits, and feeling them grow under female hormone treatments starts to hold more fascination for ${him} than mere sex. ${His} sexual identity is now dominated by ${his} swelling boobs.`);
							slave.sexualFlaw = "breast growth";
							slave.fetishStrength = 100;
							FSApproves = 1;
						} else if (slave.aphrodisiacs > 0 || slave.inflationType === "aphrodisiac") {
							if (slave.addict > 2) {
								r.push(`${His} aphrodisiac addiction makes ${him} dependent on ${his} tits for relief. <span class="paraphilia gain">${His} sexual identity is now dominated by ${his} swelling boobs.</span>`);
								slave.sexualFlaw = "breast growth";
								slave.fetishStrength = 100;
								FSApproves = 1;
							}
						}
					}
					break;
				case "sadist":
					if (slave.sexualFlaw !== "malicious") {
						if (slave.ID === V.WardenessID) {
							r.push(`As Wardeness, ${he} becomes <span class="paraphilia gain">sexually addicted to inflicting pain and anguish.</span>`);
							slave.sexualFlaw = "malicious";
							slave.fetishStrength = 100;
							FSApproves = 1;
						} else if (slave.aphrodisiacs > 0 || slave.inflationType === "aphrodisiac") {
							if (slave.addict > 2) {
								r.push(`${His} aphrodisiac addiction makes ${him} dependent on degradation in other slaves to get off. ${He} becomes <span class="paraphilia gain">sexually addicted to inflicting pain and anguish.</span>`);
								slave.sexualFlaw = "malicious";
								slave.fetishStrength = 100;
								FSApproves = 1;
							}
						}
					}
					break;
				case "dom":
					if (slave.sexualFlaw !== "abusive") {
						if (V.HeadGirlID !== 0) {
							if (V.HGSeverity >= 0) {
								if (slave.ID === V.HeadGirlID) {
									r.push(`As Head Girl, ${he}'s plentifully provided with misbehaving slaves to dominate sexually. ${He} becomes more and more eager until ${he}'s actively sexually abusive, getting off on the thrill of forcing ${himself} on other slaves.`);
									slave.sexualFlaw = "abusive";
									slave.fetishStrength = 100;
									FSApproves = 1;
								}
							}
						} else if (slave.aphrodisiacs > 0 || slave.inflationType === "aphrodisiac") {
							if (slave.addict > 2) {
								r.push(`${His} aphrodisiac addiction makes ${him} dependent on pain in others to get off. ${He}'s become sexually abusive, getting off on the thrill of forcing ${himself} on other slaves.`);
								slave.sexualFlaw = "abusive";
								slave.fetishStrength = 100;
								FSApproves = 1;
							}
						}
					}
					break;
				case "masochist":
					if (slave.sexualFlaw !== "self hating") {
						if ([Job.GLORYHOLE, Job.ARCADE].includes(slave.assignment)) {
							r.push(`Condemned to serve as a public fuckhole, ${his} masochistic tendencies darken into sexual appreciation for ${his} life as a human sex toy. ${He}'s descended into true self hatred.`);
							slave.sexualFlaw = "self hating";
							slave.fetishStrength = 100;
							FSApproves = 1;
						} else if (slave.assignment === Job.DAIRY && V.dairyRestraintsSetting >= 2) {
							r.push(`Strapped into a milking machine's tender, penetrative embrace, ${his} masochistic tendencies darken into sexual appreciation for ${his} life as a human factory. ${He}'s descended into true self hatred.`);
							slave.sexualFlaw = "self hating";
							slave.fetishStrength = 100;
							FSApproves = 1;
						} else if (slave.aphrodisiacs > 0 || slave.inflationType === "aphrodisiac") {
							if (slave.addict > 2) {
								r.push(`${His} aphrodisiac addiction makes ${him} dependent on sexual self harm. <span class="paraphilia gain">${He}'s descended into true self hatred.</span>`);
								slave.sexualFlaw = "self hating";
								slave.fetishStrength = 100;
								FSApproves = 1;
							}
						}
					}
					break;
				case "pregnancy":
					if (slave.sexualFlaw !== "breeder") {
						if (slave.preg >= slave.pregData.normalBirth * .75 && slave.geneticQuirks.uterineHypersensitivity === 2) {
							r.push(`The constant pleasure ${he} feels from the movement in ${his} womb causes ${him} to pay more sexual attention to being pregnant than to impregnation. ${He}'s become obsessed with breeding.`);
							slave.sexualFlaw = "breeder";
							slave.fetishStrength = 100;
							FSApproves = 1;
						} else if (slave.preg > 37 && slave.broodmother > 0) {
							if (slave.broodmother === 2) {
								r.push(`${He}'s nearly bursting with life and giving birth constantly,`);
							} else {
								r.push(`${He}'s stuffed full of child and brings a new life into the world each week, with or without a good fucking,`);
							}
							r.push(`causing ${him} to pay more sexual attention to pregnancy than to impregnation. <span class="paraphilia gain">${He}'s become obsessed with breeding.</span>`);
							slave.sexualFlaw = "breeder";
							slave.fetishStrength = 100;
							FSApproves = 1;
						} else if (slave.bellyPreg > 100 && slave.pregKnown === 1 && slave.pregSource === -1 && slave.breedingMark === 1 && V.propOutcome === 1 && slave.devotion > 75) {
							r.push(`${He}'s been marked to be the bearer of your offspring and is growing larger by the day with your child${slave.pregType > 1 ? "ren" : ""}. ${He} is to be nothing more than a vessel for your children, and as such has become obsessed with carrying them.`);
							slave.sexualFlaw = "breeder";
							slave.fetishStrength = 100;
							FSApproves = 1;
						} else if (slave.bellyPreg >= 120000) {
							r.push(`${He}'s so overfull with life that ${he} starts to pay much more sexual attention to pregnancy than to impregnation. <span class="paraphilia gain">${He}'s become obsessed with breeding.</span>`);
							slave.sexualFlaw = "breeder";
							slave.fetishStrength = 100;
							FSApproves = 1;
						} else if (slave.counter.births > 10) {
							r.push(`${He}'s been bred so much that ${he} starts to pay as much sexual attention to pregnancy as to impregnation. <span class="paraphilia gain">${He}'s become obsessed with breeding.</span>`);
							slave.sexualFlaw = "breeder";
							slave.fetishStrength = 100;
							FSApproves = 1;
						} else if (slave.assignment === Job.DAIRY && V.dairyPregSetting >= 2 && slave.pregKnown === 1) {
							r.push(`With ${his} womanhood fucked full of cum and fertility drugs, ${his} pregnancy fetish deepens into true perversity. <span class="paraphilia gain">${He}'s become obsessed with breeding.</span>`);
							slave.sexualFlaw = "breeder";
							slave.fetishStrength = 100;
							FSApproves = 1;
						} else if (slave.aphrodisiacs > 0 || slave.inflationType === "aphrodisiac") {
							if (slave.addict > 2) {
								r.push(`${His} aphrodisiac addiction makes ${him} dependent on ${his} pregnancy fantasies. <span class="paraphilia gain">${He}'s become obsessed with breeding.</span>`);
								slave.sexualFlaw = "breeder";
								slave.fetishStrength = 100;
								FSApproves = 1;
							}
						}
					}
					break;
			}
		}
		if (FSApproves) {
			if (V.arcologies[0].FSHedonisticDecadence !== "unset") {
				r.push(`Allowing ${him} to indulge in ${his} fetish to the point of obsession advances hedonism and <span class="reputation inc">bolsters your reputation.</span>`);
				FutureSocieties.Change("Hedonistic", 2);
			}
		}
	}
};

repo_name: Fanatey/fc

license: mit