code:
/**
 * @param {App.Entity.SlaveState} slave
 * @returns {string}
 */
App.SlaveAssignment.devotion = function saDevotion(slave) {
	/** @type {string[]} */
	const r = [];

	const PC = V.PC;

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

	const gettingPersonalAttention = V.personalAttention.task === PersonalAttention.TRAINING && V.personalAttention.slaves.some((s) => s.ID === slave.ID) && !onBedRest(V.PC, true);

	if (slave.fetish === Fetish.MINDBROKEN) {
		mindbreakDevotion(slave);
	} else if (slave.fuckdoll !== 0) {
		fuckdollDevotion(slave);
	} else {
		hostageDevotion(slave);
		playerPregnancyThoughts(slave);
		if (slave.devotion <= 95) {
			slaveryResistance(slave);
		}
		FSImpacts(slave);
		if (slave.bodySwap > 0 && slave.origBodyOwnerID > 0) {
			bodySwapThoughts(slave);
		}
		retirementThoughts(slave);
		if (assignmentVisible(slave) && V.personalAttention.task === PersonalAttention.SEX && !onBedRest(V.PC, true)) { // Needs heavy work for player libido and new training type
			sexualAttentionThoughts(slave);
		}
		collectiveSpirit(slave);
		statCrossovers(slave);
		statRebounding(slave);
		devotionReport(slave);
		finalChanges(slave);
	}

	return r.join(" ");

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function mindbreakDevotion(slave) {
		r.push(`<span class="red">${His} mind is fundamentally broken, so ${his} experiences have no lasting effect on ${his} emotional state.</span>`);
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function fuckdollDevotion(slave) {
		r.push(`${He} is confined in a suit that limits ${his} perception of the outside world to tonal commands from the suit itself and things that are inserted into ${his}`);
		if (slave.vagina > -1) {
			r.push(`mouth, vagina,`);
		} else {
			r.push(`mouth`);
		}
		r.push(`and anus.`);
		if (slave.sexualFlaw === "self hating") {
			r.push(`${His} self hatred <span class="trust dec">cannot eliminate the growing fear</span> engendered by ${his} remaining spark of self-preservation.`);
			slave.trust -= 5;
		} else if (slave.trust > 50) {
			r.push(`${He} still hopes you'll ${him} out of ${his} suit so ${he} can be your good slave again, but <span class="trust dec">fear and doubt creep in</span> by the minute. And there are a lot of them.`);
		} else {
			r.push(`With little to do but`);
			if (slave.fuckdoll <= 60) {
				r.push(`wonder if ${he}'s about to be used,`);
			} else {
				r.push(`desperately hope ${he}'ll be used soon,`);
			}
			r.push(`${he} dwells on the <span class="trust dec">horrible fear</span> that this dark existence will be perpetual.`);
		}
		slave.trust -= 10;
		if (slave.sexualFlaw === "self hating") {
			r.push(`${He} knows to ${his} core that ${he} deserves this, <span class="devotion dec">slowing but not stopping ${his} descent into depression.</span>`);
			slave.devotion += 5;
		} else if (slave.devotion > 50) {
			r.push(`${He} spirals through <span class="devotion dec">obsessive depression,</span> wondering what ${he} did to deserve this fate.`);
		} else {
			r.push(`In the silence and darkness between the times ${he}'s used, ${he} has little to do but <span class="devotion dec">hate you.</span>`);
		}
		slave.devotion -= 10;
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function hostageDevotion(slave) {
		if (slave.origin === "You were acquainted with $him before you were an arcology owner; your rival tried to use $him to manipulate you, but you rescued $him." && slave.newGamePlus === 0 && V.rival.FS.name !== "Slave Professionalism" && V.rival.FS.name !== "Intellectual Dependency") {
			if (V.rival.duration <= 10 || V.rival.FS.name === "Racial Supremacism" || V.rival.FS.name === "Paternalism") {
				r.push(`You saved ${slave.slaveName} from a living nightmare under your rival's rule. ${He} tries ${his} best to adapt to ${his} savior's wishes.`);
				slave.devotion += 10;
				slave.trust += 10;
			/* TODO: Setup setter code block. Already defined within js/003-Data/gameVariableData.js
			} else if (V.rival.hostageState === 3) {
				r.push(`Since you are <span class="trust inc">indulging</span> ${slave.slaveName}'s desires, ${he} <span class="devotion inc">likes you more.</span>`);
				slave.devotion += 5;
				slave.trust += 5;
			*/
			} else if (V.rival.duration > 20 && slave.devotion < 5) {
				if (gettingPersonalAttention) {
					r.push(`You took everything from ${slave.slaveName} and ${he} hates you for it. Since you won't give ${him} what ${he} wants, ${he} refuses to trust you. Since you are putting such a personal touch into ${his} care, ${he} can't find it in ${him} to rebel as strongly.`);
					slave.devotion -= 5;
					slave.trust -= 5;
				} else {
					r.push(`You took everything from ${slave.slaveName} and ${he} hates you for it. Since you won't give ${him} what ${he} wants, ${he} refuses to trust you at all.`);
					slave.devotion -= 25;
					slave.trust -= 25;
				}
			} else if (V.rival.duration > 10 && slave.devotion < 5) {
				if (gettingPersonalAttention) {
					r.push(`${He} is horrified by you. Your rival taught ${him} a great deal about slave life in your arcology and indulged ${his} deepest fantasies. ${slave.slaveName} considers being your pet a fate worse than death. Since you are putting such a personal touch into ${his} care, maybe you aren't the monster ${he} thought you were. ${He} can't find it in ${him} to hate and fear you as much.`);
					slave.devotion -= 3;
					slave.trust -= 3;
				} else {
					r.push(`${He} is horrified by you. Your rival taught ${him} a great deal about slave life in your arcology and indulged ${his} deepest fantasies. ${slave.slaveName} considers being your pet a fate worse than death.`);
					slave.devotion -= 15;
					slave.trust -= 15;
				}
			}
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function playerPregnancyThoughts(slave) {
		if (PC.preg >= 20 || (PC.preg >= 16 && PC.career === "escort")) { // switch to .belly
			if (slave.devotion > 60) {
				if (PC.pregMood === 2) {
					r.push(`${He} is devoted to you and does ${his} best to satisfy your demanding, hormone driven libido, no matter what you want from ${him}. ${His} efforts to give ${himself} you to further ${his} submission to you.`);
					slave.devotion += 2;
				} else if (PC.pregMood === 1) {
					r.push(`${He} is devoted to you and tries ${his} best to accommodate your needs and desires. Your hormonal mothering <span class="trust inc">leaves ${him} slightly more trusting</span> of you.`);
					slave.trust += 2;
				} else {
					r.push(`${He} is devoted to you and tries ${his} best to accommodate whatever needs and desires your pregnancy ushers forth.`);
				}
			} else {
				if (PC.pregMood === 2) {
					r.push(`${He} is horrified of your aggressive sexual advances, forcing ${him} to bend to your will or face punishment at the hands of a hormonal pregnant ${playerPronouns.woman}.`);
					slave.devotion += 4;
					slave.trust -= 4;
				} else if (PC.pregMood === 1) {
					r.push(`${He} happily <span class="devotion dec">takes advantage</span> of your hormone induced kindness, though your care <span class="trust inc">builds ${his} trust in you.</span>`);
					slave.devotion -= 4;
					slave.trust += 4;
				} else {
					r.push(`${He} takes note of your gravid form and <span class="devotion dec">begins testing just how much ${he} can get away with</span> while ${he} can.`);
					slave.devotion -= 3;
				}
			}
		}
		if (canPenetrate(slave) && PC.preg >= 18) {
			if (PC.pregMood === 2) {
				seX(PC, "vaginal", slave, "penetrative", 7);
			} else {
				seX(PC, "vaginal", slave, "penetrative", 3);
			}
		}

		if (slave.counter.PCKnockedUp > 0 && slave.devotion < -20) {
			const pregCountFactor = (slave.counter.PCKnockedUp * 5);
			r.push(`${He} got you pregnant`);
			if (slave.counter.PCKnockedUp > 1) {
				r.push(`more than once`);
			}
			r.push(`and ${he} knows it. This is a <span class="devotion dec">huge boost</span> to ${his} ego and gives ${him} a slight edge on you.`);
			slave.devotion -= pregCountFactor;
			if (slave.counter.PCChildrenFathered > 0) {
				r.push(`Even better; you gave birth to ${his} child${slave.counter.PCChildrenFathered > 1 ? "ren" : ""}. To ${him}, ${he} is the dominant force and you are just a bitch to be bred. ${He} could create a scandal if ${he} started running ${his} mouth, something ${he} lords over you every chance ${he} gets under the assumption that you'll try to appease ${him} to keep ${him} quiet.`);
				slave.devotion -= (5 + pregCountFactor);
				slave.trust += (5 + pregCountFactor);
			}
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function slaveryResistance(slave) {
		if (slave.devotion <= 20 && slave.devotion >= -50) {
			if (slave.trust > 20) {
				r.push(`${slave.slaveName} does not like you and believes that you will not punish ${him} severely; ${his} <span class="devotion dec">regard for you is severely reduced</span> by this lack of respect.`);
				slave.devotion -= 4;
			} else if (slave.trust >= -20) {
				r.push(`${slave.slaveName} neither likes nor fears you, and ${his} <span class="devotion dec">regard for you is reduced</span> by this lack of respect.`);
				slave.devotion -= 2;
			}
		}
		const effectiveInt = (slave.intelligence + slave.intelligenceImplant);
		if (effectiveInt > 95) {
			if (gettingPersonalAttention) {
				r.push(`${slave.slaveName}'s <span class="intelligent">brilliant mind</span> strongly resists slavery, but since you are giving ${him} personal attention you are able to compensate for ${his} genius.`);
			} else {
				if (slave.trust < -20) {
					r.push(`${slave.slaveName}'s brilliant mind strongly resists slavery, but ${he} fears you deeply enough that ${he} consciously forces ${himself} to obey out of self-preservation.`);
				} else {
					r.push(`${slave.slaveName}'s <span class="intelligent">brilliant mind</span> strongly <span class="devotion dec">resists</span> slavery and encourages ${him} to <span class="trust dec">fear you.</span>`);
					slave.devotion -= 2;
					slave.trust -= 2;
				}
			}
		} else if (effectiveInt > 50) {
			if (gettingPersonalAttention) {
				r.push(`${slave.slaveName}'s highly acute mind naturally resists slavery, but since you are giving ${him} personal attention you are able to compensate for ${his} intelligence.`);
			} else {
				if (slave.trust < -20) {
					r.push(`${slave.slaveName}'s highly acute mind naturally resists slavery, but ${he} fears you deeply enough that ${he} consciously forces ${himself} to obey out of self-preservation.`);
				} else {
					r.push(`${slave.slaveName}'s <span class="intelligent">highly acute mind</span> naturally <span class="devotion dec">resists</span> slavery and encourages ${him} to <span class="trust dec">fear you.</span>`);
					slave.devotion -= 2;
					slave.trust -= 2;
				}
			}
		} else if (effectiveInt > 15) {
			if (gettingPersonalAttention) {
				r.push(`${slave.slaveName}'s <span class="intelligent">intelligent mind</span> naturally resists slavery, but since you are giving ${him} personal attention you are able to compensate for ${his} cleverness.`);
			} else {
				if (slave.trust < -20) {
					r.push(`${slave.slaveName}'s intelligent mind naturally resists slavery, but ${he} fears you deeply enough that ${he} consciously forces ${himself} to obey out of self-preservation.`);
				} else {
					r.push(`${slave.slaveName}'s <span class="intelligent">intelligent mind</span> naturally <span class="devotion dec">resists</span> slavery.`);
					slave.devotion -= 2;
				}
			}
		} else if (effectiveInt < -95) {
			r.push(`${slave.slaveName}'s moronic mind naturally accepts slavery, and ${he}'s imbecile enough to instinctively trust you to know what's best for ${him}.`);
			slave.devotion += 2;
			slave.trust += 2;
		} else if (effectiveInt < -50) {
			r.push(`${slave.slaveName}'s idiotic mind naturally accepts slavery, and ${he}'s stupid enough to instinctively trust you to know what's best.`);
			slave.devotion += 1;
			slave.trust += 1;
		} else if (effectiveInt < -15) {
			r.push(`${slave.slaveName}'s <span class="stupid">unintelligent mind</span> naturally <span class="devotion inc">accepts</span> slavery.`);
			slave.devotion += 1;
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function FSImpacts(slave) {
		if (V.arcologies[0].FSPaternalistLaw === 1) {
			r.push(`The totally paternalistic society of your arcology encourages ${him} to <span class="trust inc">trust you.</span>`);
			slave.trust += 1;
		} else if (V.arcologies[0].FSPaternalist >= random(1, 120)) {
			r.push(`The paternalistic culture of your arcology encourages ${him} to <span class="trust inc">trust you.</span>`);
			slave.trust += 1;
		}
		if (V.arcologies[0].FSChattelReligionistLaw === 1) {
			r.push(`Your status as the prophet of your theocratic arcology encourages ${him} to <span class="trust inc">trust you.</span>`);
			slave.trust += 1;
		} else if (V.arcologies[0].FSChattelReligionist >= random(1, 120)) {
			r.push(`Your arcology's omnipresent religion encourages ${him} to <span class="trust inc">trust you.</span>`);
			slave.trust += 1;
		}
		if (V.arcologies[0].FSRestart !== "unset") {
			if (slave.bellyPreg >= 1500 && slave.devotion <= 20) {
				if (slave.breedingMark === 1) {
					r.push(`The mark prominently displayed across ${his} pregnant swell fills ${him} with an <span class="trust inc">undue sense of pride.</span>`);
					slave.trust += 5;
				} else {
					r.push(`Being visibly pregnant in a society that loathes slave breeding fills ${him} with <span class="trust dec">fear</span> for ${himself} and ${his} unborn child.`);
					slave.trust -= 10;
				}
			} else if (slave.pregKnown === 1 && slave.devotion <= 20) {
				r.push(`Being pregnant in a society that loathes slave breeding fills ${him} with <span class="trust dec">worry</span> that you'll harm ${him} or ${his} unborn child.`);
				slave.trust -= 5;
			}
		}
		if (V.arcologies[0].FSChattelReligionistCreed === 1) {
			if (V.nicaea.focus === "slaves") {
				r.push(`The creed of ${V.nicaea.name} <span class="devotion inc">focuses on slaves</span> and is repeated constantly all around ${him}.`);
				slave.devotion += V.nicaea.power;
			}
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function bodySwapThoughts(slave) {
		if (getSlave(slave.origBodyOwnerID) === undefined) {
			slave.origBodyOwnerID = 0;
			if (slave.devotion > 20) {
				r.push(`${slave.slaveName} is somewhat saddened to see ${his} body leave forever.`);
			} else if (slave.devotion >= -50) {
				r.push(`${slave.slaveName} is <span class="devotion dec">disturbed</span> to find ${his} body is gone for good, damaging ${his} <span class="trust dec">ability to trust you.</span>`);
				slave.devotion -= 30;
				slave.trust -= 30;
			} else {
				r.push(`${slave.slaveName} is deeply upset that ${he}'ll never see ${his} body again. With so little left, ${he} finds it easy to take vengeance by completely rejecting your ownership of ${him}.`);
				slave.devotion -= 50;
				slave.trust = 100;
			}
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 */
	function retirementToCitizenIsSoonThoughts(slave) {
		r.push(`${He} knows that it's less than a year until ${his} retirement from sexual slavery into citizenship.`);
		if (slave.devotion > 95) {
			r.push(`Since ${he} loves you, ${he} has mixed feelings about the prospect, but ${he} prefers to think of it as your way of looking after ${him}. It's ${his} favorite subject, and ${his} strong feelings about it`);
			if (V.arcologies[0].FSPaternalist !== "unset") {
				r.push(`advances paternalistic ideals and <span class="reputation inc">improves your reputation.</span>`);
				FutureSocieties.Change("Paternalist", 2);
			} else {
				r.push(`<span class="reputation inc">improves your reputation.</span>`);
				repX(V.FSSingleSlaveRep * 2, "retirement", slave);
			}
		} else if (slave.devotion >= -20) {
			r.push(`The prospect of manumission <span class="devotion inc">encourages ${him} to submit to slavery</span> and <span class="trust inc">encourages ${him} to be optimistic.</span>`);
			slave.devotion += 2;
			slave.trust += 2;
		} else {
			r.push(`The prospect of manumission encourages ${him} to <span class="trust inc">tolerate anything.</span>`);
			slave.trust += 2;
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 */
	function retirementToCitizenThoughts(slave) {
		r.push(`${His} retirement from sexual slavery into citizenship is on the horizon.`);
		if (slave.devotion > 95) {
			r.push(`Since ${he} loves you, ${he} has mixed feelings about the prospect, but ${he} prefers to think of it as your way of looking after ${him}. This`);
			if (V.arcologies[0].FSPaternalist !== "unset") {
				r.push(`advances paternalistic ideals and <span class="reputation inc">improves your reputation.</span>`);
				FutureSocieties.Change("Paternalist", 2);
			} else {
				r.push(`<span class="reputation inc">improves your reputation.</span>`);
				repX(V.FSSingleSlaveRep, "retirement", slave);
			}
		} else if (slave.devotion >= -20) {
			r.push(`The prospect of manumission <span class="devotion inc">cheers ${him} up</span> and <span class="trust inc">makes ${him} optimistic.</span>`);
			slave.devotion += 1;
			slave.trust += 1;
		} else {
			r.push(`The prospect of manumission works to make the indignities of slavery <span class="trust inc">weigh lightly</span> on ${him}.`);
			slave.trust += 1;
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 */
	function cruelRetirementIsSoonThoughts(slave) {
		if (slave.devotion > 95) {
			r.push(`Since ${he} loves you, ${he} desperately tries not to think about it, though ${he} occasionally bursts into tears without provocation.`);
		} else if (slave.devotion > 20) {
			r.push(`To put it mildly, <span class="trust dec">${he} is terrified.</span>`);
			slave.trust -= 3;
		} else {
			r.push(`${He} is filled with <span class="trust dec">terror</span> and <span class="devotion dec">horror.</span>`);
			slave.devotion -= 3;
			slave.trust -= 3;
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 */
	function cruelRetirementThoughts(slave) {
		if (slave.devotion > 95) {
			r.push(`Since ${he} loves you, ${he} tries not to think about it, though ${he} occasionally seems preoccupied.`);
		} else if (slave.devotion > 20) {
			r.push(`The prospect <span class="trust dec">scares ${him}.</span>`);
			slave.trust -= 2;
		} else {
			r.push(`The prospect <span class="trust dec">scares</span> and <span class="devotion dec">disgusts ${him}.</span>`);
			slave.devotion -= 2;
			slave.trust -= 2;
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 */
	function retirementByFateThoughts(slave) {
		const relevantAge = V.policies.retirement.physicalAgePolicy === 0 ? slave.actualAge : slave.physicalAge;
		const expectedTime = V.retirementAge - relevantAge;

		if (expectedTime > 5) {
			return;
		}

		if (V.policies.retirement.fate === "citizen") {
			if (expectedTime < 2) {
				retirementToCitizenIsSoonThoughts(slave);
			} else {
				retirementToCitizenThoughts(slave);
			}
		} else if (V.policies.retirement.fate === "bioreactor") {
			if (expectedTime < 2) {
				r.push(`${He} knows that it's less than a year until ${his} permanent inclusion in the arcology's milk production systems.`);
				cruelRetirementIsSoonThoughts(slave);
			} else {
				r.push(`${He} knows that ${his} permanent inclusion in the arcology's milk production systems is not far off.`);
				cruelRetirementThoughts(slave);
			}
		} else if (V.policies.retirement.fate === "arcade") {
			if (expectedTime < 2) {
				r.push(`${He} knows that it's less than a year until ${he} is to be permanently encased in a bodysuit with holes for nothing but dick.`);
				cruelRetirementIsSoonThoughts(slave);
			} else {
				r.push(`${He} knows that ${his} ultimate fate as a Fuckdoll is not far off.`);
				cruelRetirementThoughts(slave);
			}
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 */
	function retirementThoughts(slave) {
		if (slave.indenture > -1) {
			if (slave.indenture <= 52) {
				r.push(`${He} knows that it's less than a year until ${his} indenture ends.`);
				if (slave.devotion > 95) {
					r.push(`Since ${he} loves you, ${he} has mixed feelings about the prospect.`);
				} else if (slave.devotion >= -20) {
					r.push(`The prospect of freedom <span class="devotion inc">encourages ${him} to submit to your orders</span> and <span class="trust inc">encourages ${him} to be optimistic.</span>`);
					slave.devotion += 2;
					slave.trust += 2;
				} else {
					r.push(`The prospect of freedom encourages ${him} to <span class="trust inc">tolerate anything.</span>`);
					slave.trust += 2;
				}
			} else {
				r.push(`The fact that ${he} is an indentured servant, not a permanent slave, is never truly far from ${his} mind.`);
				if (slave.devotion > 95) {
					r.push(`Since ${he} loves you, ${he} has mixed feelings about eventual freedom.`);
				} else if (slave.devotion >= -20) {
					r.push(`The prospect of eventual freedom <span class="devotion inc">cheers ${him} up</span> and <span class="trust inc">makes ${him} optimistic.</span>`);
					slave.devotion += 1;
					slave.trust += 1;
				} else {
					r.push(`The prospect of eventual freedom works to make the indignities of slavery <span class="trust inc">weigh lightly</span> on ${him}.`);
					slave.trust += 1;
				}
			}
			if (slave.devotion <= 20) {
				if (slave.indentureRestrictions >= 2) {
					r.push(`${He}'s also <span class="trust inc">able to rely on the protection</span> of ${his} indenture.`);
					slave.trust += 1;
				} else if (slave.indentureRestrictions >= 1) {
					r.push(`${He}'s also <span class="trust inc">able to trust the restrictions</span> that ${his} indenture places on ${his} treatment.`);
					slave.trust += 1;
				}
			}
		} else if (V.seeAge === 1) {
			retirementByFateThoughts(slave);
			if (V.policies.retirement.fate === "citizen") {
				if (slave.devotion <= 95 || slave.trust <= 95) {
					if (V.policies.retirement.sex > 0) {
						if (slave.counter.oral + slave.counter.anal + slave.counter.vaginal + slave.counter.penetrative + slave.counter.mammary >= V.policies.retirement.sex * 0.8) {
							if (slave.devotion >= -20) {
								r.push(`${He}'s <span class="devotion inc">more obedient</span> and <span class="trust inc">more tolerant,</span>`);
								slave.devotion += 1;
								slave.trust += 1;
							} else {
								r.push(`${He} does ${his} best to <span class="trust inc">stay strong,</span>`);
								slave.trust += 1;
							}
							r.push(`since ${he} knows that ${his} freedom is only a few thousand dicks away.`);
						}
					}
					if (V.policies.retirement.milk > 0) {
						if (slave.counter.milk >= V.policies.retirement.milk * 0.8) {
							if (slave.devotion >= -20) {
								r.push(`${He}'s <span class="devotion inc">more obedient</span> and <span class="trust inc">more tolerant,</span>`);
								slave.devotion += 1;
								slave.trust += 1;
							} else {
								r.push(`${He} does ${his} best to <span class="trust inc">stay strong,</span>`);
								slave.trust += 1;
							}
							r.push(`since ${he} knows ${he} will be free if ${his} udders can gush just a bit more cream.`);
						}
					}
					if (V.policies.retirement.cum > 0) {
						if (slave.counter.cum >= V.policies.retirement.cum * 0.8) {
							if (slave.devotion >= -20) {
								r.push(`${He}'s <span class="devotion inc">more obedient</span> and <span class="trust inc">more tolerant,</span>`);
								slave.devotion += 1;
								slave.trust += 1;
							} else {
								r.push(`${He} does ${his} best to <span class="trust inc">stay strong,</span>`);
								slave.trust += 1;
							}
							r.push(`since ${he} knows ${he} will be free if ${his} prick can spurt just a bit more jizz.`);
						}
					}
					if (V.policies.retirement.births > 0) {
						if (slave.counter.births >= V.policies.retirement.births * 0.6) {
							if (slave.devotion >= -20) {
								r.push(`${He}'s <span class="devotion inc">more obedient</span> and <span class="trust inc">more tolerant,</span>`);
								slave.devotion += 1;
								slave.trust += 1;
							} else {
								r.push(`${He} does ${his} best to <span class="trust inc">stay strong,</span>`);
								slave.trust += 1;
							}
							r.push(`since ${he} knows ${he} only has to successfully breed a little more to be free.`);
						}
					}
					if (V.policies.retirement.kills > 0) {
						if (slave.counter.pitKills >= V.policies.retirement.kills * 0.6) {
							if (slave.devotion >= -20) {
								r.push(`${He}'s <span class="devotion inc">more obedient</span> and <span class="trust inc">more tolerant,</span>`);
								slave.devotion += 1;
								slave.trust += 1;
							} else {
								r.push(`${He} does ${his} best to <span class="trust inc">stay strong,</span>`);
								slave.trust += 1;
							}
							r.push(`since ${he} knows just a bit more murder in the pit will win ${his} freedom.`);
						}
					}
				}
			}
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function sexualAttentionThoughts(slave) {
		if (App.EndWeek.saVars.freeSexualEnergy > 0) {
			if (App.EndWeek.saVars.freeSexualEnergy === 3) {
				r.push(`${He} gets a lot of sexual attention from you, since you don't have nearly enough dedicated fucktoys to sate your libido, and this <span class="devotion inc">`);
				if (slave.devotion > 50) {
					r.push(`intensifies ${his} love for you.</span>`);
				} else {
					r.push(`forces ${him} to get used to sex slavery.</span>`);
				}
			} else if (App.EndWeek.saVars.freeSexualEnergy === 2) {
				r.push(`${He} receives some sexual attention from you, since you don't have enough dedicated fucktoys to sate your libido, and this <span class="devotion inc">`);
				if (slave.devotion > 50) {
					r.push(`builds ${his} closeness to you.</span>`);
				} else {
					r.push(`gets ${him} used to being your sex slave.</span>`);
				}
			} else {
				r.push(`${He} receives occasional sexual attention from you, since you barely have enough dedicated fucktoys to sate your libido, <span class="devotion inc">`);
				if (slave.devotion > 50) {
					r.push(`making ${him} feel closer to you.</span>`);
				} else {
					r.push(`keeping ${him} aware ${he}'s your sex slave.</span>`);
				}
			}
			slave.devotion += App.EndWeek.saVars.freeSexualEnergy;
			seX(slave, "oral", PC, "penetrative", App.EndWeek.saVars.freeSexualEnergy);
			if (canDoVaginal(slave) && slave.vagina > 0) {
				seX(slave, "vaginal", PC, "penetrative", App.EndWeek.saVars.freeSexualEnergy);
			}
			if (canDoAnal(slave) && slave.anus > 0) {
				seX(slave, "anal", PC, "penetrative", App.EndWeek.saVars.freeSexualEnergy);
			}
			if (slave.boobs > 500 && PC.dick > 0) {
				seX(slave, "mammary", PC, "penetrative", App.EndWeek.saVars.freeSexualEnergy);
			}
			if ((slave.toyHole === "dick" || V.policies.sexualOpenness === 1) && canPenetrate(slave)) {
				if (PC.vagina > 0) {
					seX(slave, "penetrative", PC, "vaginal", App.EndWeek.saVars.freeSexualEnergy);
					if (canImpreg(PC, slave)) {
						knockMeUp(PC, App.EndWeek.saVars.freeSexualEnergy, 0, slave.ID);
					}
				} else if (PC.anus > 0) {
					seX(slave, "penetrative", PC, "anal", App.EndWeek.saVars.freeSexualEnergy);
					if (canImpreg(PC, slave)) {
						knockMeUp(PC, App.EndWeek.saVars.freeSexualEnergy, 1, slave.ID);
					}
				}
				if (V.policies.sexualOpenness === 0) {
					PC.degeneracy++;
				}
			}
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function collectiveSpirit(slave) {
		if (V.slaves.length > 3) {
			let collectiveTrustEffect = 0;
			let collectiveDevotionEffect = 0;
			if (V.enduringDevotion > 50) {
				if (slave.devotion >= -20) {
					if (slave.devotion <= 20) {
						collectiveDevotionEffect = 1;
						slave.devotion += 1;
						if (assignmentVisible(slave)) {
							slave.devotion += 1;
						}
					}
				}
			} else if (V.enduringDevotion <= 0) {
				if (slave.devotion <= 20) {
					collectiveDevotionEffect = -1;
					slave.devotion -= 1;
					if (assignmentVisible(slave)) {
						slave.devotion -= 1;
					}
				}
			}
			if (V.enduringTrust > 50) {
				if (slave.trust >= -20) {
					if (slave.trust <= 20) {
						collectiveTrustEffect = 1;
						slave.trust += 1;
						if (assignmentVisible(slave)) {
							slave.trust += 1;
						}
					}
				}
			} else if (V.enduringTrust <= 0) {
				if (slave.trust <= 20) {
					collectiveTrustEffect = -1;
					slave.trust -= 1;
					if (assignmentVisible(slave)) {
						slave.trust -= 1;
					}
				}
			}
			if (collectiveDevotionEffect === 1) {
				if (collectiveTrustEffect === 1) {
					r.push(`Since ${he}'s ambivalent and fearful, the <span class="devotion inc">collective devotion</span> <span class="trust inc">and trust</span> of your slaves affect ${him} slightly.`);
				} else if (collectiveTrustEffect === 0) {
					r.push(`Since ${he}'s ambivalent about you, the <span class="devotion inc">collective devotion</span> your slaves feel for you affects ${him} slightly.`);
				} else {
					r.push(`Since ${he}'s ambivalent about you, the collective devotion your slaves feel for you affects ${him} slightly, but their general fear affects ${him} too.`);
				}
			} else if (collectiveDevotionEffect === 0) {
				if (collectiveTrustEffect === 1) {
					r.push(`Since ${he}'s fearful of you, the <span class="trust inc">collective trust</span> your slaves place in you affects ${him} slightly.`);
				} else if (collectiveTrustEffect === -1) {
					r.push(`Since ${he} doesn't trust you, the <span class="trust dec">collective fear</span> your slaves feel for you affects ${him} slightly.`);
				}
			} else {
				if (collectiveTrustEffect === 1) {
					r.push(`The <span class="devotion dec">collective anger</span> your slaves feel reinforces ${his} own feelings, but their <span class="trust inc">collective trust</span> also affects ${him} slightly.`);
				} else if (collectiveTrustEffect === 0) {
					r.push(`The <span class="devotion dec">collective anger</span> your slaves feel reinforces ${his} own feelings.`);
				} else {
					r.push(`The <span class="devotion dec">collective anger</span> <span class="trust dec">and fear</span> your slaves feel reinforce ${his} own feelings.`);
				}
			}
		}
		if (assignmentVisible(slave)) {
			if (V.arcade !== 0 || (V.dairy !== 0 && V.dairyRestraintsSetting >= 2)) {
				if (slave.devotion <= 95) {
					r.push(`${He} knows about`);
					if (V.arcade !== 0) {
						if (V.dairy !== 0 && V.dairyRestraintsSetting >= 2) {
							r.push(`${V.arcadeName} and ${V.dairyName},`);
						} else {
							r.push(`${V.arcadeName},`);
						}
					} else {
						r.push(`${V.dairyName},`);
					}
					r.push(`and <span class="trust dec">fears</span> that you might send ${him} there.`);
					slave.trust -= 1;
				} else {
					r.push(`${He} knows some of your other slaves meet terrible, industrial fates, but ${he} loves you so much that ${he} tries not to think about it.`);
				}
			}
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function statCrossovers(slave) {
		if (slave.trust >= -20) {
			if (slave.devotion > 95) {
				if (slave.trust <= 20) {
					r.push(`${slave.slaveName} loves you, so ${he} finds ${himself} <span class="trust inc">fearing you a little less.</span>`);
					slave.trust += 1;
				} else if (slave.trust <= 50) {
					r.push(`${slave.slaveName} loves you, so ${he} finds ${himself} <span class="trust inc">trusting you a little more.</span>`);
					slave.trust += 1;
				}
			} else if (slave.devotion > 60) {
				if (slave.trust <= 20) {
					r.push(`${slave.slaveName} is devoted to you, so ${he} finds ${himself} <span class="trust inc">fearing you a little less.</span>`);
					slave.trust += 1;
				}
			} else if (slave.devotion < -50) {
				if (slave.trust > 20) {
					r.push(`${slave.slaveName} hates you, but also doesn't fear you, <span class="defiant inc">bolstering ${his} disobedience.</span>`);
					slave.trust += 5;
				} else {
					r.push(`${slave.slaveName} hates you, so ${he} finds ${himself} <span class="trust dec">trusting you a little less.</span>`);
					slave.trust -= 2;
				}
			}
		}
		if (slave.trust > 95) {
			if (slave.devotion < -20) {
				r.push(`${slave.slaveName} feels no threat from you, so ${he} finds it easy to <span class="devotion dec">express ${his} hatred of you.</span>`);
				slave.devotion -= 10;
			} else if (slave.devotion <= 20) {
				r.push(`${slave.slaveName} trusts you implicitly, so ${he} finds ${himself} <span class="devotion inc">hating you a little less.</span>`);
				slave.devotion += 1;
			} else if (slave.devotion <= 50) {
				r.push(`${slave.slaveName} trusts you implicitly, so ${he} finds ${himself} <span class="devotion inc">liking you a little more.</span>`);
				slave.devotion += 1;
			}
		} else if (slave.trust > 50) {
			if (slave.devotion < -20) {
				r.push(`${slave.slaveName} finds you non-threatening, so it's easy for ${him} to <span class="devotion dec">defy you.</span>`);
				slave.devotion -= 5;
			} else if (slave.devotion <= 20) {
				r.push(`${slave.slaveName} trusts you, so ${he} finds ${himself} <span class="devotion inc">hating you a little less.</span>`);
				slave.devotion += 1;
			}
		} else if (slave.trust < -50) {
			if (slave.devotion >= -20) {
				if (slave.devotion <= 50) {
					r.push(`${slave.slaveName} is so terrified of you that ${he} tries desperately to avoid punishment, <span class="devotion inc">which is sometimes indistinguishable from devotion.</span>`);
					slave.devotion += 2;
				}
			}
		} else if (slave.trust < -20) {
			if (slave.devotion > 20) {
				if (slave.devotion <= 50) {
					r.push(`${slave.slaveName} is scared of you, but not truly terrified, so ${he} feels safe in <span class="devotion dec">hating the worst parts of being your sex slave.</span>`);
					slave.devotion -= 2;
				}
			}
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function statRebounding(slave) {
		if (slave.tankBaby > 0) {
			if (slave.devotion <= 95) {
				r.push(`The tank's imprinting systems left a <span class="devotion inc">deep, subconscious`);
				if (slave.tankBaby === 2) {
					r.push(`need`);
				} else {
					r.push(`desire`);
				}
				r.push(`</span> to serve ${his} owner.`);
				slave.devotion += 2;
			}
		}
		if (slave.sexualQuirk === "unflinching") {
			if (slave.devotion <= 95) {
				if (slave.devotion < slave.oldDevotion) {
					r.push(`${His} unflinching nature leads ${him} to forget some of the unpleasant things ${he}'s experienced this week, <span class="devotion inc">reducing their impact on ${his} feelings about you.</span>`);
					slave.devotion += Math.trunc((slave.oldDevotion - slave.devotion) / 2);
				}
			}
		} else if (slave.health.tired > 30) {
			if (slave.devotion <= 50) {
				if (slave.devotion < slave.oldDevotion) {
					r.push(`Some of the less unpleasant things done to ${him} this week slip ${his} tired mind, <span class="devotion inc">reducing their impact on ${his} feelings about you.</span>`);
					slave.devotion += Math.trunc((slave.oldDevotion - slave.devotion) / 4);
				}
			}
		}
		if (slave.health.tired > 30) {
			if (slave.trust >= -50) {
				if (slave.trust < slave.oldTrust) {
					r.push(`In ${his} tired state, ${he} begins to recall things as <span class="trust dec">worse than they actually were.</span>`);
					slave.trust -= Math.trunc((slave.oldTrust - slave.trust) / 2);
				}
			}
		}

		// CAPS ON DEVOTION GAIN
		if (slave.tankBaby === 1) {
			r.push(`The incubation facility conditioned ${his} mind for total subservience to ${his} owner; ${he} cannot resist ${his} progress.`);
		} else if (slave.tankBaby === 2) {
			r.push(`The incubation facility conditioned ${his} mind for total reverence of ${his} owner; ${he} cannot resist ${his} progress.`);
		} else if (slave.devotion >= -20) {
			if (slave.devotion >= (slave.oldDevotion + 5)) {
				if (V.arcologies[0].FSChattelReligionist >= random(1, 100)) {
					r.push(`The natural resilience of ${his} mind is overcome by the omnipresent combination of faith and servitude in ${V.arcologies[0].name}, and ${he} does not resist ${his} progress down the path towards total subservience.`);
				} else if (gettingPersonalAttention) {
					r.push(`${He} gained so much regard for you this week that ${his} natural reaction is to rebound a little, but since you're giving ${him} personal attention, your charismatic presence prevents this.`);
				} else if (slave.devotion < 95) {
					r.push(`So many things served to drive ${him} into subservience this week that ${his} mind <span class="devotion dec">rebounds a little.</span>`);
					slave.devotion = (slave.oldDevotion + 5);
				}
			}
		} else {
			if (slave.devotion >= (slave.oldDevotion + 5)) {
				if (slave.behavioralFlaw === "arrogant") {
					r.push(`Though ${he} made progress this week, <span class="devotion dec">it is limited by ${his} arrogance.</span>`);
					slave.devotion = (slave.oldDevotion + 5);
				} else if (slave.behavioralFlaw === "bitchy" && canTalk(slave)) {
					r.push(`Though ${he} made progress this week, <span class="devotion dec">it is limited by the independence ${he} regains by making snide comments.</span>`);
					slave.devotion = (slave.oldDevotion + 5);
				} else if (slave.behavioralFlaw === "devout") {
					r.push(`Though ${he} made progress this week, <span class="devotion dec">it is limited by the independence ${he} regains through reliance on ${his} faith.</span>`);
					slave.devotion = (slave.oldDevotion + 5);
				} else if (slave.behavioralFlaw === "liberated") {
					r.push(`Though ${he} made progress this week, <span class="devotion dec">it is limited by the independence ${he} retains due to ${his} moral convictions that this is wrong.</span>`);
					slave.devotion = (slave.oldDevotion + 5);
				}
			}
		}

		// CAPS ON TRUST GAIN
		const trustCap = slave.oldTrust + 5;
		if (slave.tankBaby === 1) {
			r.push(`Any natural doubts ${he} has are overcome by ${his} conditioning in the incubation facility; ${he} cannot resist trusting ${his} owner.`);
		} else if (slave.trust >= trustCap) {
			if (slave.trust >= -20) {
				if (V.arcologies[0].FSChattelReligionist >= random(1, 100)) {
					r.push(`Any natural doubts ${he} harbors are overcome by ${his} belief in Chattel Religionism, and ${he} does not resist ${his} progress down the path towards total trust in you.`);
				} else if (gettingPersonalAttention) {
					r.push(`${He} gained so much trust in you this week that ${his} natural reaction is to doubt ${himself}, but since you're giving ${him} personal attention, ${he} decides to trust ${his} understanding of your will.`);
				} else if (slave.trust < 95) {
					r.push(`${He} gained so much trust in you this week that ${he} <span class="trust dec">draws back a little</span> out of self-doubt.`);
					slave.trust = trustCap;
				}
			} else if (slave.behavioralFlaw === "odd" && slave.collar !== "shock punishment") {
				r.push(`Though ${he} made progress this week, <span class="trust dec">it is limited by ${his} preoccupation with ${his} own oddities.</span>`);
				slave.trust = trustCap;
			}
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function devotionReport(slave) {
		let energyPlus = 0;

		if (slave.devotion > 100 && slave.trust > 100) {
			r.push(`${His} perfect devotion and trust <span class="reputation inc">improve your reputation.</span>`);
			repX(10 * (slave.devotion - 100), "slavesViewOfPC", slave);
			repX(10 * (slave.trust - 100), "slavesViewOfPC", slave);
			if (slave.energy <= 50 && App.Utils.sexAllowed(slave, PC)) {
				energyPlus += Math.trunc((slave.trust + slave.devotion) - 200);
			}
			slave.devotion = 100;
			slave.trust = 100;
		} else {
			if (slave.devotion > 100) {
				if (slave.trust < 100 && slave.trust > 20) {
					slave.trust += Math.trunc((slave.devotion - 100) * 5) / 10;
				} else if (slave.energy <= 50 && App.Utils.sexAllowed(slave, PC)) {
					energyPlus += Math.trunc(slave.devotion - 100);
				} else {
					r.push(`${His} extreme devotion <span class="reputation inc">improved your reputation.</span>`);
					repX(10 * (slave.devotion - 100), "slavesViewOfPC", slave);
				}
				slave.devotion = 100;
			} else if (slave.devotion > 95) {
				slave.devotion = 100;
			} else if (slave.devotion < -95) {
				slave.devotion = -100;
			}
			if (slave.trust > 100) {
				if (slave.devotion < 100 && slave.devotion > 20) {
					slave.devotion += Math.trunc(slave.trust - 100);
				} else if (slave.devotion < -50) {
					r.push(`${His} blatant disregard for your rule <span class="reputation dec">damages your reputation.</span>`);
					repX(-30 * (slave.trust - 100), "slavesViewOfPC", slave);
				} else if (slave.energy <= 50 && App.Utils.sexAllowed(slave, PC)) {
					energyPlus += Math.trunc(slave.trust - 100);
				} else {
					r.push(`${His} extreme trust <span class="reputation inc">improved your reputation.</span>`);
					repX(10 * (slave.trust - 100), "slavesViewOfPC", slave);
				}
				slave.trust = 100;
			} else if (slave.trust > 95) {
				slave.trust = 100;
			} else if (slave.trust < -95) {
				slave.trust = -100;
			}
		}
		if (energyPlus > 0) {
			r.push(`${His} confidence in ${his} sexuality <span class="libido inc">improved ${his} low sex drive.</span>`);
			slave.energy += energyPlus;
		}
		if (slave.devotion > 95) {
			r.push(`${slave.slaveName}'s <span class="devotion worship">worshipfulness is beyond improvement,</span> and ${his}`);
		} else if (slave.devotion > 50) {
			if (slave.devotion > slave.oldDevotion) {
				r.push(`${slave.slaveName}'s <span class="devotion accept">devotion increased</span> and ${his}`);
			} else if (slave.devotion === slave.oldDevotion) {
				r.push(`${slave.slaveName}'s <span class="devotion ambivalent">devotion did not change</span> and ${his}`);
			} else {
				r.push(`${slave.slaveName}'s <span class="devotion resistant">devotion dropped</span> and ${his}`);
			}
		} else if (slave.devotion >= -20) {
			if (slave.devotion > slave.oldDevotion) {
				r.push(`${slave.slaveName}'s <span class="devotion inc">regard for you increased</span> and ${his}`);
			} else if (slave.devotion === slave.oldDevotion) {
				r.push(`${slave.slaveName}'s <span class="noteworthy">regard for you did not change</span> and ${his}`);
			} else {
				r.push(`${slave.slaveName}'s <span class="devotion dec">regard for you dropped</span> and ${his}`);
			}
		} else {
			if (slave.devotion > slave.oldDevotion) {
				r.push(`${slave.slaveName}'s <span class="devotion inc">resistance dropped</span> and ${his}`);
			} else if (slave.devotion === slave.oldDevotion) {
				r.push(`${slave.slaveName}'s <span class="noteworthy">resistance did not change</span> and ${his}`);
			} else {
				r.push(`${slave.slaveName}'s <span class="devotion dec">resistance increased</span> and ${his}`);
			}
		}
		if (slave.devotion < -20) {
			if (slave.trust > 95) {
				r.push(`<span class="defiant full">fear of you is non existent.</span>`);
			} else if (slave.trust > 20) {
				if (slave.trust > 20 && slave.trust > slave.oldTrust) {
					r.push(`<span class="defiant inc">fear of you</span> dropped this week.`);
				} else if (slave.trust > 20 && slave.trust === slave.oldTrust) {
					r.push(`<span class="noteworthy">fear did not change</span> this week.`);
				} else {
					r.push(`<span class="improvement">fear increased</span> this week.`);
				}
			} else {
				if (slave.trust > slave.oldTrust) {
					r.push(`<span class="mediumaquamarine">fear dropped</span> this week.`);
				} else if (slave.trust === slave.oldTrust) {
					r.push(`<span class="noteworthy">fear did not change</span> this week.`);
				} else {
					r.push(`<span class="trust dec">fear increased</span> this week.`);
				}
			}
		} else {
			if (slave.trust > 95) {
				r.push(`<span class="trust prof-trusting">trust in you is total.</span>`);
			} else if (slave.trust > 20) {
				if (slave.trust > 20 && slave.trust > slave.oldTrust) {
					r.push(`<span class="trust inc">trust improved</span> this week.`);
				} else if (slave.trust > 20 && slave.trust === slave.oldTrust) {
					r.push(`<span class="noteworthy">trust did not change</span> this week.`);
				} else {
					r.push(`<span class="trust dec">trust dropped</span> this week.`);
				}
			} else {
				if (slave.trust > slave.oldTrust) {
					r.push(`<span class="trust inc">fear dropped</span> this week.`);
				} else if (slave.trust === slave.oldTrust) {
					r.push(`<span class="noteworthy">fear did not change</span> this week.`);
				} else {
					r.push(`<span class="trust dec">fear increased</span> this week.`);
				}
			}
		}

		if (slave.devotion > 50 && slave.oldDevotion <= 50) {
			r.push(`<span class="positive">${He} has gone from accepting ${his} position to being devoted to you!</span>`);
			slave.devotion += 1;
		} else if (slave.devotion > 20 && slave.oldDevotion <= 20) {
			r.push(`<span class="positive">${He} has gone from being ambivalent toward you to accepting your ownership of ${him}!</span>`);
			slave.devotion += 1;
		} else if (slave.devotion >= -20 && slave.oldDevotion < -20) {
			r.push(`<span class="positive">${He} has gone from disliking you to being ambivalent about you!</span>`);
			slave.devotion += 1;
		} else if (slave.devotion >= -50 && slave.oldDevotion < -50) {
			r.push(`<span class="positive">${He} has gone from hating you to merely disliking you!</span>`);
			slave.devotion += 1;
		}

		if (slave.devotion < -20) {
			if (slave.trust > 50 && slave.oldTrust <= 50) {
				r.push(`<span class="warning">${He} has gone from being careful around you to showing open defiance!</span>`);
				slave.trust++;
			} else if (slave.trust > 20 && slave.oldTrust <= 20) {
				r.push(`<span class="noteworthy">${He} has gone from fearing you to merely being careful around you!</span>`);
				slave.trust++;
			} else if (slave.trust >= -20 && slave.oldTrust < -20) {
				r.push(`<span class="noteworthy">${He} has gone from being afraid of you to being merely fearful!</span>`);
				slave.trust++;
			} else if (slave.trust >= -50 && slave.oldTrust < -50) {
				r.push(`<span class="noteworthy">${He} has gone from being terrified to being merely afraid of you!</span>`);
				slave.trust++;
			}
		} else {
			if (slave.trust > 50 && slave.oldTrust <= 50) {
				r.push(`<span class="positive">${He} has gone from being careful around you to trusting you!</span>`);
				slave.trust += 1;
			} else if (slave.trust > 20 && slave.oldTrust <= 20) {
				r.push(`<span class="positive">${He} has gone from fearing you to merely being careful around you!</span>`);
				slave.trust += 1;
			} else if (slave.trust >= -20 && slave.oldTrust < -20) {
				r.push(`<span class="positive">${He} has gone from being afraid of you to being merely fearful!</span>`);
				slave.trust += 1;
			} else if (slave.trust >= -50 && slave.oldTrust < -50) {
				r.push(`<span class="positive">${He} has gone from being terrified to being merely afraid of you!</span>`);
				slave.trust += 1;
			}
		}

		if (slave.trust < -20 && slave.oldTrust >= -20) {
			if (slave.devotion <= 20) {
				r.push(`<span class="positive">${He} has gone from merely fearing you to actively being afraid of you!</span>`);
				slave.trust -= 2;
			}
		}
		if (V.debugMode) {
			r.push(`(Devotion: ${slave.devotion - slave.oldDevotion}; Trust: ${slave.trust - slave.oldTrust})`);
		}
	}

	/**
	 * @param {App.Entity.SlaveState} slave
	 *
	 */
	function finalChanges(slave) {
		// done stealthily to make the slave's progression seem natural
		if (slave.rudeTitle === 1 && slave.devotion >= -50) {
			slave.custom.title = "";
			slave.custom.titleLisp = "";
			slave.rudeTitle = 0;
		}
	}
};

repo_name: DontAskDontTell/fc

license: mit