diff --git a/src/SpecialForce/SpecialForce.js b/src/SpecialForce/SpecialForce.js
index abfac066e43a9e0e2b5f5bf3181971883c814516..e083976cb1aed71705de1fa4c577ce30ca44e0c6 100644
--- a/src/SpecialForce/SpecialForce.js
+++ b/src/SpecialForce/SpecialForce.js
@@ -1,53 +1,110 @@
 // V=SugarCube.State.variables, T=SugarCube.State.temporary;
-window.Main = function() {
- const V = State.variables;
- V.SF = {
-		Toggle:V.SF.Toggle, Active:-1, Depravity:0, Size:0, Upgrade:0, Gift:0,
-		UC:{Assign:0, Lock:0, num:0}, ROE:"hold", Target:"recruit", Regs:"strict",
-		Caps:"The Special Force", Lower:"the special force", Subsidy:1, BadOutcome:""
+window.Main = function () {
+	const V = State.variables;
+	V.SF = {
+		Toggle: V.SF.Toggle,
+		Active: -1,
+		Depravity: 0,
+		Size: 0,
+		Upgrade: 0,
+		Gift: 0,
+		UC: {
+			Assign: 0,
+			Lock: 0,
+			num: 0
+		},
+		ROE: "hold",
+		Target: "recruit",
+		Regs: "strict",
+		Caps: "The Special Force",
+		Lower: "the special force",
+		Subsidy: 1,
+		BadOutcome: ""
 	};
- V.arcologies[0].SFRaid = 1; V.arcologies[0].SFRaidTarget = -1;
+	V.arcologies[0].SFRaid = 1;
+	V.arcologies[0].SFRaidTarget = -1;
 };
-window.Squad = function() {
- const V = State.variables;
- V.SF.Squad = {
-		Troops:40, Armoury:0, Firebase:0, AV:0, TV:0, Drones:0, Drugs:0,
-		PGT:0, AA:0, TA:0, SpacePlane:0, GunS:0, Satellite:{lv:0, InOrbit:0},
-		GiantRobot:0, MissileSilo:0, AircraftCarrier:0, Sub:0, HAT:0
+window.Squad = function () {
+	const V = State.variables;
+	V.SF.Squad = {
+		Troops: 40,
+		Armoury: 0,
+		Firebase: 0,
+		AV: 0,
+		TV: 0,
+		Drones: 0,
+		Drugs: 0,
+		PGT: 0,
+		AA: 0,
+		TA: 0,
+		SpacePlane: 0,
+		GunS: 0,
+		Satellite: {
+			lv: 0,
+			InOrbit: 0
+		},
+		GiantRobot: 0,
+		MissileSilo: 0,
+		AircraftCarrier: 0,
+		Sub: 0,
+		HAT: 0
 	};
 };
-window.Colonel = function() {
- const V = State.variables;
- V.SF.Colonel = {Core:"", Talk:0, Fun:0, Status:0};
+window.Colonel = function () {
+	const V = State.variables;
+	V.SF.Colonel = {
+		Core: "",
+		Talk: 0,
+		Fun: 0,
+		Status: 0
+	};
 };
-window.MercCon = function() {
- const V = State.variables;
- V.SF.MercCon = {
-		History:0, CanAttend:-2, Income:0, Revenue:0, Menials:0,
-		TotalMenials:0, Mercs:0, TotalMercs:0
+window.MercCon = function () {
+	const V = State.variables;
+	V.SF.MercCon = {
+		History: 0,
+		CanAttend: -2,
+		Income: 0,
+		Revenue: 0,
+		Menials: 0,
+		TotalMenials: 0,
+		Mercs: 0,
+		TotalMercs: 0
 	};
 };
-window.Facility = function() {
- const V = State.variables;
- V.SF.Facility = {
-		Toggle:0, Active:0, LC:0, Workers:0, Max:5,
-		Caps:"Special force support facility", Lower:"special force support facility",
-		Decoration:"standard", Speed:0, Upgrade:0, IDs:[]
+window.Facility = function () {
+	const V = State.variables;
+	V.SF.Facility = {
+		Toggle: 0,
+		Active: 0,
+		LC: 0,
+		Workers: 0,
+		Max: 5,
+		Caps: "Special force support facility",
+		Lower: "special force support facility",
+		Decoration: "standard",
+		Speed: 0,
+		Upgrade: 0,
+		IDs: []
 	};
 };
 
-window.SFInit = function() {
- Main(); Squad(); Colonel();
+window.SFInit = function () {
+	Main();
+	Squad();
+	Colonel();
 };
 
-window.SFBC = function() {
+window.SFBC = function () {
 	const V = State.variables;
+
 	function InitClean() {
 		delete V.SFMODToggle;
 		delete V.securityForceActive;
 		delete V.securityForceCreate;
 		delete V.securityForceEventSeen;
 	}
+
 	function MainClean() {
 		delete V.securityForceActive;
 		delete V.securityForceRecruit;
@@ -69,6 +126,7 @@ window.SFBC = function() {
 		delete V.SubsidyActive;
 		delete V.securityForceSubsidyActive;
 	}
+
 	function ColonelClean() {
 		delete V.ColonelCore;
 		delete V.securityForceColonelToken;
@@ -76,6 +134,7 @@ window.SFBC = function() {
 		delete V.ColonelRelationship;
 		delete V.securityForceSexedColonelToken;
 	}
+
 	function TradeShowClean() {
 		delete V.OverallTradeShowAttendance;
 		delete V.CurrentTradeShowAttendance;
@@ -84,6 +143,7 @@ window.SFBC = function() {
 		delete V.TradeShowHelots;
 		delete V.TotalTradeShowHelots;
 	}
+
 	function UnitsClean() {
 		delete V.securityForceInfantryPower;
 		delete V.securityForceArcologyUpgrades;
@@ -111,47 +171,58 @@ window.SFBC = function() {
 		} else {
 			V.securityForceActive = 2;
 		}
-		V.SF = {Toggle:V.SFMODToggle, Active:V.securityForceActive}; InitClean();
+		V.SF = {
+			Toggle: V.SFMODToggle,
+			Active: V.securityForceActive
+		};
+		InitClean();
 		if (V.securityForceName === undefined) V.securityForceName = "the special force";
 		if (V.SF.Active >= 1) {
-			Object.assign(V.SF,
-			{
-				Depravity:V.securityForceDepravity,
-				Size:V.SFAO,
-				Upgrade:V.securityForceUpgradeToken,
-				Gift:V.securityForceGiftToken,
-				UC:{Assign:V.SF.SpecOps, Lock:V.SF.SpecOpsLock},
-				ROE:V.securityForceRulesOfEngagement,
-				Target:V.securityForceFocus,
-				Regs:V.securityForceAccountability,
-				Caps:"The Special Force",
-				Lower:V.securityForceName,
-				Subsidy:V.SubsidyActive
+			Object.assign(V.SF, {
+				Depravity: V.securityForceDepravity,
+				Size: V.SFAO,
+				Upgrade: V.securityForceUpgradeToken,
+				Gift: V.securityForceGiftToken,
+				UC: {
+					Assign: V.SF.SpecOps,
+					Lock: V.SF.SpecOpsLock
+				},
+				ROE: V.securityForceRulesOfEngagement,
+				Target: V.securityForceFocus,
+				Regs: V.securityForceAccountability,
+				Caps: "The Special Force",
+				Lower: V.securityForceName,
+				Subsidy: V.SubsidyActive
 			});
-			MainClean(); SFNameCapsCheck();
+			MainClean();
+			SFNameCapsCheck();
 
 			if (V.ColonelCore === undefined) V.ColonelCore = "";
 			if (V.ColonelDiscussion === undefined) V.ColonelDiscussion = 0;
 			if (V.ColonelSexed === undefined) V.ColonelSexed = 0;
 			V.SF.Colonel = {
-				Core:V.ColonelCore,
-				Talk:V.securityForceColonelToken,
-				Fun:V.securityForceColonelSexed,
-				Status:V.ColonelRelationship}; ColonelClean();
+				Core: V.ColonelCore,
+				Talk: V.securityForceColonelToken,
+				Fun: V.securityForceColonelSexed,
+				Status: V.ColonelRelationship
+			};
+			ColonelClean();
 
 			if (V.TradeShowIncome === undefined) V.TradeShowIncome = 0;
 			if (V.TotalTradeShowIncome === undefined) V.TotalTradeShowIncome = 0;
 			if (V.TradeShowHelots === undefined) V.TradeShowHelots = 0;
 			if (V.TotalTradeShowHelots === undefined) V.TotalTradeShowHelots = 0;
 			V.SF.MercCon = {
-				History:V.OverallTradeShowAttendance,
-				CanAttend:V.CurrentTradeShowAttendance,
-				Income:V.TradeShowIncome,
-				Revenue:V.TotalTradeShowIncome,
-				Menials:V.TradeShowHelots,
-				TotalMenials:V.TotalTradeShowHelots,
-				Mercs:0,
-				TotalMercs:0}; TradeShow();
+				History: V.OverallTradeShowAttendance,
+				CanAttend: V.CurrentTradeShowAttendance,
+				Income: V.TradeShowIncome,
+				Revenue: V.TotalTradeShowIncome,
+				Menials: V.TradeShowHelots,
+				TotalMenials: V.TotalTradeShowHelots,
+				Mercs: 0,
+				TotalMercs: 0
+			};
+			TradeShow();
 			if (V.SF.MercCon.History > 0) V.SF.MercCon.CanAttend = 1;
 
 			if (V.securityForceHeavyBattleTank === undefined) V.securityForceHeavyBattleTank = 0;
@@ -163,26 +234,28 @@ window.SFBC = function() {
 			if (V.securityForceAircraftCarrier === undefined) V.securityForceAircraftCarrier = 0;
 			if (V.securityForceSubmarine === undefined) V.securityForceSubmarine = 0;
 			if (V.securityForceHeavyAmphibiousTransport === undefined) V.securityForceHeavyAmphibiousTransport = 0;
-			V.SF.Squad =
-			{
-				Troops:V.securityForcePersonnel,
-				Armoury:V.securityForceInfantryPower,
-				Firebase:V.securityForceArcologyUpgrades,
-				AV:V.securityForceVehiclePower,
-				TV:V.securityForceVehiclePower,
-				Drones:V.securityForceDronePower,
-				Drugs:V.securityForceStimulantPower,
-				PGT:V.securityForceHeavyBattleTank,
-				AA:V.securityForceAircraftPower,
-				TA:V.securityForceAircraftPower,
-				SpacePlane:V.securityForceSpacePlanePower,
-				GunS:V.securityForceAC130,
-				Satellite:{lv:V.securityForceSatellitePower, InOrbit:0},
-				GiantRobot:V.securityForceGiantRobot,
-				MissileSilo:V.securityForceMissileSilo,
-				AircraftCarrier:V.securityForceAircraftCarrier,
-				Sub:V.securityForceSubmarine,
-				HAT:V.securityForceHeavyAmphibiousTransport
+			V.SF.Squad = {
+				Troops: V.securityForcePersonnel,
+				Armoury: V.securityForceInfantryPower,
+				Firebase: V.securityForceArcologyUpgrades,
+				AV: V.securityForceVehiclePower,
+				TV: V.securityForceVehiclePower,
+				Drones: V.securityForceDronePower,
+				Drugs: V.securityForceStimulantPower,
+				PGT: V.securityForceHeavyBattleTank,
+				AA: V.securityForceAircraftPower,
+				TA: V.securityForceAircraftPower,
+				SpacePlane: V.securityForceSpacePlanePower,
+				GunS: V.securityForceAC130,
+				Satellite: {
+					lv: V.securityForceSatellitePower,
+					InOrbit: 0
+				},
+				GiantRobot: V.securityForceGiantRobot,
+				MissileSilo: V.securityForceMissileSilo,
+				AircraftCarrier: V.securityForceAircraftCarrier,
+				Sub: V.securityForceSubmarine,
+				HAT: V.securityForceHeavyAmphibiousTransport
 			};
 			UnitsClean();
 		} else {
@@ -190,26 +263,39 @@ window.SFBC = function() {
 		}
 	} else {
 		if (V.SF.MercCon && V.SF.MercCon.View) delete V.SF.MercCon.View;
-		if (V.SFUC > 0) V.SF.UC.num = V.SFUC; delete V.SFUC;
+		if (V.SFUC > 0) V.SF.UC.num = V.SFUC;
+		delete V.SFUC;
 		if (V.SF.Active === -1) SFInit();
 		if (V.SF.MWU) delete V.SF.MWU;
-		if (V.SpecOpsLock !== undefined) V.SF.SpecOpsLock = V.SpecOpsLock; delete V.SpecOpsLock;
+		if (V.SpecOpsLock !== undefined) V.SF.SpecOpsLock = V.SpecOpsLock;
+		delete V.SpecOpsLock;
 		if (V.SF.UC === undefined) {
 			if (V.SF.SpecOps !== undefined && V.SF.SpecOpsLock !== undefined) {
-				V.SF.UC = {Assign:V.SF.SpecOps, Lock:V.SF.SpecOpsLock};
-		delete V.SF.SpecOps; delete V.SF.SpecOpsLock;
+				V.SF.UC = {
+					Assign: V.SF.SpecOps,
+					Lock: V.SF.SpecOpsLock
+				};
+				delete V.SF.SpecOps;
+				delete V.SF.SpecOpsLock;
 			} else if (V.SF.UC === {}) {
-				V.SF.UC = {Assign:0, Lock:0};
+				V.SF.UC = {
+					Assign: 0,
+					Lock: 0
+				};
 			}
 		}
-		if (V.SF.U !== undefined) V.SF.Upgrade = V.SF.U; delete V.SF.U;
-		if (V.SF.WG !== undefined) V.SF.Gift = V.SF.WG; delete V.SF.WG;
+		if (V.SF.U !== undefined) V.SF.Upgrade = V.SF.U;
+		delete V.SF.U;
+		if (V.SF.WG !== undefined) V.SF.Gift = V.SF.WG;
+		delete V.SF.WG;
 
 		if (V.SF.MercCon === undefined) MercCon();
 		if (V.SF.MercCon.Helots !== undefined) {
 			V.SF.MercCon.Menials = V.SF.MercCon.Helots;
 			delete V.SF.MercCon.Helots;
-		} else { V.SF.MercCon.Menials = 0; }
+		} else {
+			V.SF.MercCon.Menials = 0;
+		}
 		if (V.SF.MercCon.TotalHelots !== undefined) {
 			V.SF.MercCon.TotalMenials = V.SF.MercCon.TotalHelots;
 			delete V.SF.MercCon.TotalHelots;
@@ -219,177 +305,309 @@ window.SFBC = function() {
 
 		if (V.SF.Bonus !== undefined) delete V.SF.Bonus;
 		if (V.SF.Depravity < 0) V.SF.Depravity = 0;
-		if (V.SF.Size === undefined) V.SF.Size = V.SF.Units; delete V.SF.Units;
+		if (V.SF.Size === undefined) V.SF.Size = V.SF.Units;
+		delete V.SF.Units;
 		if (V.SFUnit !== undefined) {
 			if (V.SFUnit.AT !== undefined) V.SFUnitTA = 0;
-			if (V.SFTradeShow !== undefined) V.SF.MercCon = V.SFTradeShow; delete V.SFTradeShow;
-			if (V.SFColonel !== undefined) V.SF.Colonel = V.SFColonel; delete V.SFColonel;
+			if (V.SFTradeShow !== undefined) V.SF.MercCon = V.SFTradeShow;
+			delete V.SFTradeShow;
+			if (V.SFColonel !== undefined) V.SF.Colonel = V.SFColonel;
+			delete V.SFColonel;
 			if (V.SF.BadOutcome === undefined) V.SF.BadOutcome = "";
 			if (V.SF.Squad.Satellite !== undefined && V.SatLaunched === undefined) {
-				V.SF.Squad.Sat = {lv:0, InOrbit:0};
+				V.SF.Squad.Sat = {
+					lv: 0,
+					InOrbit: 0
+				};
 				V.SF.Squad.Satellite = V.SF.Squad.Sat;
-				delete V.SF.Squad.Sat; delete V.SatLaunched; delete V.SFUnit;
+				delete V.SF.Squad.Sat;
+				delete V.SatLaunched;
+				delete V.SFUnit;
 			}
 		}
 		if (V.SF.Squad !== undefined && V.SF.Squad.Satellite.lv === undefined) {
-			V.SF.Squad.Sat = {lv:V.SF.Squad.Satellite, InOrbit:0};
-			V.SF.Squad.Satellite = V.SF.Squad.Sat; delete V.SF.Squad.Sat;
+			V.SF.Squad.Sat = {
+				lv: V.SF.Squad.Satellite,
+				InOrbit: 0
+			};
+			V.SF.Squad.Satellite = V.SF.Squad.Sat;
+			delete V.SF.Squad.Sat;
 		}
 	}
- InitClean(); MainClean(); ColonelClean(); TradeShowClean(); UnitsClean();
- if (V.SF.Facility === undefined) Facility();
- if (V.SF.Squad.Satellite === undefined) V.SF.Squad.Satellite = {lv:0, InOrbit:0};
+	InitClean();
+	MainClean();
+	ColonelClean();
+	TradeShowClean();
+	UnitsClean();
+	if (V.SF.Facility === undefined) Facility();
+	if (V.SF.Squad.Satellite === undefined) V.SF.Squad.Satellite = {
+		lv: 0,
+		InOrbit: 0
+	};
 };
 
-window.SFReport = function() {
-	"use strict"; const V = State.variables, T = State.temporary, S = V.SF.Squad;
-	const target = 50000, baseLine = 5000; let profit = 0, upkeep = 0, income = 0;
-	let Multiplier = {action:1, troop:1, unit:1, depravity:1};
-	let FNG = 10, unitCap = 2500, Trade = 0.025;
-	let cost = {a:0.01, b:2.5}, NO = 1+(V.SF.Size/5), N1 = 1+(V.SF.Size/5);
-
-	V.SF.UC.num = 0; Count(); let r = ``, deaths = 0, SFD = V.SF.Depravity;
-	if (profit < 1) cost.a = 10; cost.b = 0.1; NO = 1; N1 = 0.1;
+window.SFReport = function () {
+	"use strict";
+	const V = State.variables,
+		T = State.temporary,
+		S = V.SF.Squad;
+	const target = 50000,
+		baseLine = 5000;
+	let profit = 0,
+		upkeep = 0,
+		income = 0;
+	let Multiplier = {
+		action: 1,
+		troop: 1,
+		unit: 1,
+		depravity: 1
+	};
+	let FNG = 10,
+		unitCap = 2500,
+		Trade = 0.025;
+	let cost = {
+			a: 0.01,
+			b: 2.5
+		},
+		NO = 1 + (V.SF.Size / 5),
+		N1 = 1 + (V.SF.Size / 5);
+
+	V.SF.UC.num = 0;
+	Count();
+	let r = ``,
+		deaths = 0,
+		SFD = V.SF.Depravity;
+	if (profit < 1) cost.a = 10;
+	cost.b = 0.1;
+	NO = 1;
+	N1 = 0.1;
 
 	if (S.Troops > unitCap) S.Troops = unitCap;
 	if (S.Troops < 100) {
 		S.Troops += Math.ceil(jsRandom(2, 5));
 	} else {
 		if (V.SF.Target === "recruit") {
-			S.Troops -= Math.ceil(jsRandom(1*S.Troops/1000, 0));
+			S.Troops -= Math.ceil(jsRandom(1 * S.Troops / 1000, 0));
 		} else if (V.SF.Target === "raiding") {
-			S.Troops -= Math.ceil(jsRandom(1.15*S.Troops/1000, -1.20*S.Troops/1000));
+			S.Troops -= Math.ceil(jsRandom(1.15 * S.Troops / 1000, -1.20 * S.Troops / 1000));
 		} else {
-			S.Troops -= Math.ceil(jsRandom(1.10*S.Troops/1000, -1.15*S.Troops/1000));
+			S.Troops -= Math.ceil(jsRandom(1.10 * S.Troops / 1000, -1.15 * S.Troops / 1000));
 		}
 	}
 	if (V.SF.UC.Assign > 0) {
 		if (V.SF.UC.Assign < 2) {
-			V.SF.UC.num = Math.ceil(S.Troops*0.01);
+			V.SF.UC.num = Math.ceil(S.Troops * 0.01);
 		} else {
-			V.SF.UC.num = Math.ceil(S.Troops*0.05);
+			V.SF.UC.num = Math.ceil(S.Troops * 0.05);
 		}
 	}
 	S.Troops -= V.SF.UC.num;
 	if (S.Troops > 200) {
-		Trade += 0.05*(S.Troops/200);
-		Multiplier.troop += S.Troops/200; upkeep += (S.Troops*25)/cost.a;
+		Trade += 0.05 * (S.Troops / 200);
+		Multiplier.troop += S.Troops / 200;
+		upkeep += (S.Troops * 25) / cost.a;
 		if (V.secExp > 0) {
-			V.authority += 25*(Math.ceil(S.Troops/200)); V.authority += V.SF.Size*10;
+			V.authority += 25 * (Math.ceil(S.Troops / 200));
+			V.authority += V.SF.Size * 10;
 			V.authority = Math.clamp(V.authority, 0, 20000);
 		}
 	}
 
 	if (S.Firebase > 0) {
-		FNG += S.Firebase; Trade += 0.5*S.Firebase; Multiplier.unit += 7.5*S.Firebase+2*Math.pow(S.Firebase, 2)*cost.a; upkeep += (95*10+S.Firebase)*cost.b;
+		FNG += S.Firebase;
+		Trade += 0.5 * S.Firebase;
+		Multiplier.unit += 7.5 * S.Firebase + 2 * Math.pow(S.Firebase, 2) * cost.a;
+		upkeep += (95 * 10 + S.Firebase) * cost.b;
 	}
 	if (S.Armoury > 0) {
-		FNG += 2*S.Armoury; Trade += 0.25*S.Armoury; Multiplier.unit += 7.5*S.Armoury+2*Math.pow(S.Armoury, 2)*cost.a; upkeep += (55*S.Armoury)*cost.b;
+		FNG += 2 * S.Armoury;
+		Trade += 0.25 * S.Armoury;
+		Multiplier.unit += 7.5 * S.Armoury + 2 * Math.pow(S.Armoury, 2) * cost.a;
+		upkeep += (55 * S.Armoury) * cost.b;
 	}
 	if (S.Drugs > 0) {
-		FNG += S.Drugs; Trade += 0.25*S.Drugs; Multiplier.unit += 7.5*S.Drugs+2*Math.pow(S.Drugs, 2)*cost.a; upkeep += (35*S.Drugs)*cost.b;
+		FNG += S.Drugs;
+		Trade += 0.25 * S.Drugs;
+		Multiplier.unit += 7.5 * S.Drugs + 2 * Math.pow(S.Drugs, 2) * cost.a;
+		upkeep += (35 * S.Drugs) * cost.b;
 	}
 	if (S.Firebase >= 1) {
 		if (S.AV > 0) {
-			FNG += S.AV; Trade += 0.25*S.AV; Multiplier.unit += 7.5*S.AV+2*Math.pow(S.AV, 2)*cost.a; upkeep += (89*S.AV)*cost.b;
+			FNG += S.AV;
+			Trade += 0.25 * S.AV;
+			Multiplier.unit += 7.5 * S.AV + 2 * Math.pow(S.AV, 2) * cost.a;
+			upkeep += (89 * S.AV) * cost.b;
 		}
 		if (S.TV > 0) {
-			FNG += S.TV; Trade += 0.25*S.TV; Multiplier.unit += 7.5*S.TV+2*Math.pow(S.TV, 2)*cost.a; upkeep += (89*S.TV)*cost.b;
+			FNG += S.TV;
+			Trade += 0.25 * S.TV;
+			Multiplier.unit += 7.5 * S.TV + 2 * Math.pow(S.TV, 2) * cost.a;
+			upkeep += (89 * S.TV) * cost.b;
 		}
 		if (S.PGT > 0) {
-			FNG += S.PGT; Trade += 0.25*S.PGT; Multiplier.unit += 15*S.PGT+3*Math.pow(S.PGT, 2)*cost.a; upkeep += (100*S.PGT)*cost.b;
+			FNG += S.PGT;
+			Trade += 0.25 * S.PGT;
+			Multiplier.unit += 15 * S.PGT + 3 * Math.pow(S.PGT, 2) * cost.a;
+			upkeep += (100 * S.PGT) * cost.b;
 		}
 	}
 
 	if (S.Firebase >= 2 && S.Drones > 0) {
-		FNG += S.Drones; Trade += 0.5*S.Drones; Multiplier.unit += 7.5*S.Drones+2*Math.pow(S.Drones, 2)*cost.a; upkeep += (50*S.Drones)*cost.b;
+		FNG += S.Drones;
+		Trade += 0.5 * S.Drones;
+		Multiplier.unit += 7.5 * S.Drones + 2 * Math.pow(S.Drones, 2) * cost.a;
+		upkeep += (50 * S.Drones) * cost.b;
 	}
 
 	if (S.Firebase >= 4) {
 		if (S.AA > 0) {
-			FNG += S.AA; Trade += 0.25*S.AA; Multiplier.unit += 7.5*S.AA+2*Math.pow(S.AA, 2)*cost.a; upkeep += (100*S.AA)*cost.b;
+			FNG += S.AA;
+			Trade += 0.25 * S.AA;
+			Multiplier.unit += 7.5 * S.AA + 2 * Math.pow(S.AA, 2) * cost.a;
+			upkeep += (100 * S.AA) * cost.b;
 		}
 		if (S.TA > 0) {
-			FNG += S.TA; Trade += 0.25*S.TA; Multiplier.unit += 7.5*S.TA+2*Math.pow(S.TA, 2)*cost.a; upkeep += (100*S.TA)*cost.b;
+			FNG += S.TA;
+			Trade += 0.25 * S.TA;
+			Multiplier.unit += 7.5 * S.TA + 2 * Math.pow(S.TA, 2) * cost.a;
+			upkeep += (100 * S.TA) * cost.b;
 		}
 		if (S.SpacePlane > 0) {
-			FNG += S.SpacePlane; Trade += 0.25*S.SpacePlane; Multiplier.unit += 7.5*S.SpacePlane+2*Math.pow(S.SpacePlane, 2)*cost.a; upkeep += (100*S.SpacePlane)*cost.b;
+			FNG += S.SpacePlane;
+			Trade += 0.25 * S.SpacePlane;
+			Multiplier.unit += 7.5 * S.SpacePlane + 2 * Math.pow(S.SpacePlane, 2) * cost.a;
+			upkeep += (100 * S.SpacePlane) * cost.b;
 		}
 		if (S.GunS > 0) {
-			FNG += S.GunS; Trade += 0.25*S.GunS; Multiplier.unit += 12*S.GunS+3*Math.pow(S.GunS, 2)*cost.a; upkeep += 70*S.GunS;
+			FNG += S.GunS;
+			Trade += 0.25 * S.GunS;
+			Multiplier.unit += 12 * S.GunS + 3 * Math.pow(S.GunS, 2) * cost.a;
+			upkeep += 70 * S.GunS;
 		}
 		if (S.Satellite.lv > 0 && S.Satellite.InOrbit > 0) {
-			FNG += S.Satellite.lv; Trade += 0.25*S.Satellite.lv; Multiplier.unit += 15*S.Satellite.lv+5*Math.pow(S.Satellite.lv, 2)*cost.a; upkeep += (85*S.Satellite.lv)*cost.b;
+			FNG += S.Satellite.lv;
+			Trade += 0.25 * S.Satellite.lv;
+			Multiplier.unit += 15 * S.Satellite.lv + 5 * Math.pow(S.Satellite.lv, 2) * cost.a;
+			upkeep += (85 * S.Satellite.lv) * cost.b;
 		}
 		if (S.GiantRobot > 0) {
-			FNG += S.GiantRobot; Trade += 0.25*S.GiantRobot; Multiplier.unit += 15*S.GiantRobot+5*Math.pow(S.GiantRobot, 2)*cost.a; upkeep += (95*S.GiantRobot)*cost.b;
+			FNG += S.GiantRobot;
+			Trade += 0.25 * S.GiantRobot;
+			Multiplier.unit += 15 * S.GiantRobot + 5 * Math.pow(S.GiantRobot, 2) * cost.a;
+			upkeep += (95 * S.GiantRobot) * cost.b;
 		}
 		if (S.MissileSilo > 0) {
-			FNG += S.MissileSilo; Trade += 0.25*S.MissileSilo; Multiplier.unit += 15*S.MissileSilo+5*Math.pow(S.MissileSilo, 2)*cost.a; upkeep += (100*S.MissileSilo)*cost.b;
+			FNG += S.MissileSilo;
+			Trade += 0.25 * S.MissileSilo;
+			Multiplier.unit += 15 * S.MissileSilo + 5 * Math.pow(S.MissileSilo, 2) * cost.a;
+			upkeep += (100 * S.MissileSilo) * cost.b;
 		}
 	}
 
 	if (S.AircraftCarrier > 0) {
-		FNG += S.AircraftCarrier; Trade += 0.25*S.AircraftCarrier; Multiplier.unit += 9*S.AircraftCarrier+3*Math.pow(S.AircraftCarrier, 2)*cost.a; upkeep += (80*S.AircraftCarrier)*cost.b;
+		FNG += S.AircraftCarrier;
+		Trade += 0.25 * S.AircraftCarrier;
+		Multiplier.unit += 9 * S.AircraftCarrier + 3 * Math.pow(S.AircraftCarrier, 2) * cost.a;
+		upkeep += (80 * S.AircraftCarrier) * cost.b;
 	}
 	if (S.Sub > 0) {
-		FNG += S.Sub; Trade += 0.25*S.Sub; Multiplier.unit += 7.5*S.Sub+2*Math.pow(S.Sub, 2)*cost.a; upkeep += (90*S.Sub)*cost.b;
+		FNG += S.Sub;
+		Trade += 0.25 * S.Sub;
+		Multiplier.unit += 7.5 * S.Sub + 2 * Math.pow(S.Sub, 2) * cost.a;
+		upkeep += (90 * S.Sub) * cost.b;
 	}
 	if (S.HAT > 0) {
-		FNG += S.HAT; Trade += 0.25*S.HAT; Multiplier.unit += 7.5*S.HAT+2*Math.pow(S.HAT, 2)*cost.a; upkeep += (70*S.HAT)*cost.b;
+		FNG += S.HAT;
+		Trade += 0.25 * S.HAT;
+		Multiplier.unit += 7.5 * S.HAT + 2 * Math.pow(S.HAT, 2) * cost.a;
+		upkeep += (70 * S.HAT) * cost.b;
 	}
 
 	switch (V.SF.Colonel.Core) {
-		case "kind": FNG += 10; Trade += 0.15; SFD -= 0.15; break;
-		case "cruel": Trade -= 0.15; SFD += 0.15; break;
-		case "brazen": FNG += 15; Multiplier.unit += 0.5; break;
-		case "jaded": Trade -= 0.05; SFD += 0.05; break;
-		case "shell shocked": Trade += 0.05; SFD -= 0.05; Multiplier.unit -= 0.5; break;
-		
+		case "kind":
+			FNG += 10;
+			Trade += 0.15;
+			SFD -= 0.15;
+			break;
+		case "cruel":
+			Trade -= 0.15;
+			SFD += 0.15;
+			break;
+		case "brazen":
+			FNG += 15;
+			Multiplier.unit += 0.5;
+			break;
+		case "jaded":
+			Trade -= 0.05;
+			SFD += 0.05;
+			break;
+		case "shell shocked":
+			Trade += 0.05;
+			SFD -= 0.05;
+			Multiplier.unit -= 0.5;
+			break;
+
 	}
 
 	if (V.SF.Target === "raiding") {
-		SFD += 0.05; Multiplier.action += 0.5;
+		SFD += 0.05;
+		Multiplier.action += 0.5;
 	} else if (V.SF.Target === "secure") {
-		SFD -= 0.05; Multiplier.action += 0.2;
+		SFD -= 0.05;
+		Multiplier.action += 0.2;
 	} else {
-		SFD -= 0.1; Multiplier.action -= 0.5;
+		SFD -= 0.1;
+		Multiplier.action -= 0.5;
 	}
 	if (V.SF.ROE === "free") {
-		Multiplier.action *= 0.8; SFD += 0.05; Trade += Trade*0.95;
+		Multiplier.action *= 0.8;
+		SFD += 0.05;
+		Trade += Trade * 0.95;
 	} else if (V.SF.ROE === "hold") {
-		Multiplier.action *= 1.1; SFD -= 0.05; Trade += Trade*1.05;
+		Multiplier.action *= 1.1;
+		SFD -= 0.05;
+		Trade += Trade * 1.05;
 	}
 	if (V.SF.Regs === "none") {
-			Multiplier.action *= 0.8; SFD += 0.05; Trade += Trade*0.95;
-		} else if (V.SF.Regs === "strict") {
-			Multiplier.action *= 1.1; SFD -= 0.05; Trade += Trade*1.05;
-			Multiplier.depravity = 1+SFD;
-		}
-	if (SFD > -2) Trade *= 1+SFD/2;
+		Multiplier.action *= 0.8;
+		SFD += 0.05;
+		Trade += Trade * 0.95;
+	} else if (V.SF.Regs === "strict") {
+		Multiplier.action *= 1.1;
+		SFD -= 0.05;
+		Trade += Trade * 1.05;
+		Multiplier.depravity = 1 + SFD;
+	}
+	if (SFD > -2) Trade *= 1 + SFD / 2;
 
 	if (V.SF.Target === "recruit") {
-		FNG += FNG*0.95;
+		FNG += FNG * 0.95;
 	} else {
-		FNG += FNG*0.25;
+		FNG += FNG * 0.25;
 	}
-	FNG = Math.ceil(FNG/2);
+	FNG = Math.ceil(FNG / 2);
 
 	if (V.SF.Target === "secure") {
-		repX((Math.ceil(V.rep*((Trade/100)*0.95))), "specialForces");
-		V.arcologies[0].prosperity = Math.ceil((V.arcologies[0].prosperity+(Trade/10)*0.95));
+		repX((Math.ceil(V.rep * ((Trade / 100) * 0.95))), "specialForces");
+		V.arcologies[0].prosperity = Math.ceil((V.arcologies[0].prosperity + (Trade / 10) * 0.95));
 	} else {
-		repX((Math.ceil(V.rep*(Trade/100)*0.25)), "specialForces");
-		V.arcologies[0].prosperity = Math.ceil(V.arcologies[0].prosperity+(Trade/10)*0.25);
+		repX((Math.ceil(V.rep * (Trade / 100) * 0.25)), "specialForces");
+		V.arcologies[0].prosperity = Math.ceil(V.arcologies[0].prosperity + (Trade / 10) * 0.25);
 	}
 
-	income += ( (baseLine* (1+Multiplier.troop/NO).toFixed(2) * (1+Multiplier.unit/NO).toFixed(2) * (1+Multiplier.action/NO).toFixed(2) * (1+Multiplier.depravity/NO).toFixed(2) ) - (upkeep*N1).toFixed(2) )/( (V.SF.Size/2+S.Troops/2)*5 );
-	if (V.SF.Target === "raiding") income *= 1.25; else income *= 1.15;
-	if (V.economy < 100) if (V.SF.Target === "raiding") income *= 14.25; else income *= 14.15;// Remove line if hard mode ever gets fixed.
-	S.Troops += FNG; income = Math.ceil(income);
+	income += ((baseLine * (1 + Multiplier.troop / NO).toFixed(2) * (1 + Multiplier.unit / NO).toFixed(2) * (1 + Multiplier.action / NO).toFixed(2) * (1 + Multiplier.depravity / NO).toFixed(2)) - (upkeep * N1).toFixed(2)) / ((V.SF.Size / 2 + S.Troops / 2) * 5);
+	if (V.SF.Target === "raiding") income *= 1.25;
+	else income *= 1.15;
+	if (V.economy < 100)
+		if (V.SF.Target === "raiding") income *= 14.25;
+		else income *= 14.15; // Remove line if hard mode ever gets fixed.
+	S.Troops += FNG;
+	income = Math.ceil(income);
 	if (V.debugMode > 0) r += `<br>income:${num(income)}, troop:${num((0.09+Multiplier.troop/NO).toFixed(2))}, unit:${num((0.09+Multiplier.unit/NO).toFixed(2))}, action:${num((0.09+Multiplier.action/NO).toFixed(2))}, depravity:${num((0.09+Multiplier.depravity/NO).toFixed(2))}, upkeep:${num((upkeep*N1).toFixed(2))}`;
 
-	if (income >= target) profit = 1; delete V.SF.Subsidy; cashX(income, "specialForces");
+	if (income >= target) profit = 1;
+	delete V.SF.Subsidy;
+	cashX(income, "specialForces");
 	if (S.Troops > unitCap) S.Troops = unitCap;
 	if (V.arcologies[0].prosperity > V.ProsperityCap) V.arcologies[0].prosperity = V.ProsperityCap;
 
@@ -400,12 +618,14 @@ window.SFReport = function() {
 		} else if (S.Drugs >= 10) {
 			survivalChance += 5;
 		}
-		if (jsRandom(0, 100) > survivalChance) deaths = jsRandom(0, ((S.Drugs*2)+4));
+		if (jsRandom(0, 100) > survivalChance) deaths = jsRandom(0, ((S.Drugs * 2) + 4));
 		if (deaths > 0) S.Troops -= deaths;
 	}
 	if (V.SF.UC.Assign === 1 && V.SF.UC.Lock < 1) V.SF.UC.Assign = 0;
-	if (V.SF.Upgrade !== undefined) V.SF.Upgrade = 0; V.SF.Gift = 0;
-	V.SF.Colonel.Talk = 0; V.SF.Colonel.Fun = 0;
+	if (V.SF.Upgrade !== undefined) V.SF.Upgrade = 0;
+	V.SF.Gift = 0;
+	V.SF.Colonel.Talk = 0;
+	V.SF.Colonel.Fun = 0;
 
 	r += `<br>__Week ${V.week} (AO:${V.terrain}) operational report for ${V.SF.Lower}__:`;
 	r += `<br>${V.SF.Caps} focused their ${num(S.Troops)} troops on `;
@@ -441,32 +661,39 @@ window.SFReport = function() {
 	r += `<br>//Your instructions to ${SFC()}://`;
 
 	r += `<br>&nbsp;Deployment focus: `; // The below lines are indented to increase readability.
-		r += `<span id="focus"> <<if $SF.Target == "recruit">>''Recruiting and Training''<<elseif $SF.Target == "secure">>''Securing Trade Routes''<<else>>''Raiding and Slaving''<</if>></span>.&nbsp;&nbsp;`;
-		r += `<<link "Recruit and Train">> <<set $SF.Target="recruit">> <<replace "#focus">>''Recruiting and Training''<</replace>> <</link>> | <<link "Secure Trade Routes">> <<set $SF.Target="secure">> <<replace "#focus">>''Securing Trade Routes''<</replace>> <</link>> | <<link "Raiding and Slaving">> <<set $SF.Target="raiding">> <<replace "#focus">>''Raiding and Slaving''<</replace>> <</link>>`;
+	r += `<span id="focus"> <<if $SF.Target == "recruit">>''Recruiting and Training''<<elseif $SF.Target == "secure">>''Securing Trade Routes''<<else>>''Raiding and Slaving''<</if>></span>.&nbsp;&nbsp;`;
+	r += `<<link "Recruit and Train">> <<set $SF.Target="recruit">> <<replace "#focus">>''Recruiting and Training''<</replace>> <</link>> | <<link "Secure Trade Routes">> <<set $SF.Target="secure">> <<replace "#focus">>''Securing Trade Routes''<</replace>> <</link>> | <<link "Raiding and Slaving">> <<set $SF.Target="raiding">> <<replace "#focus">>''Raiding and Slaving''<</replace>> <</link>>`;
 
 	r += `<br>&nbsp;Rules of Engagement: `; // The below lines are indented to increase readability.
-		r += `<span id="roe"> <<if $SF.ROE === "hold">>''Hold Fire''<<elseif $SF.ROE === "limited">>''Limited Fire''<<else>>''Free Fire''<</if>></span>.&nbsp;&nbsp;`;
-		r += `<<link "Hold Fire">> <<set $SF.ROE="hold">> <<replace "#roe">>''Hold Fire''<</replace>> <</link>> | <<link "Limited Fire">> <<set $SF.ROE="limited">> <<replace "#roe">>''Limited Fire''<</replace>> <</link>> | <<link "Free Fire">> <<set $SF.ROE="free">> <<replace "#roe">>''Free Fire''<</replace>> <</link>>`;
+	r += `<span id="roe"> <<if $SF.ROE === "hold">>''Hold Fire''<<elseif $SF.ROE === "limited">>''Limited Fire''<<else>>''Free Fire''<</if>></span>.&nbsp;&nbsp;`;
+	r += `<<link "Hold Fire">> <<set $SF.ROE="hold">> <<replace "#roe">>''Hold Fire''<</replace>> <</link>> | <<link "Limited Fire">> <<set $SF.ROE="limited">> <<replace "#roe">>''Limited Fire''<</replace>> <</link>> | <<link "Free Fire">> <<set $SF.ROE="free">> <<replace "#roe">>''Free Fire''<</replace>> <</link>>`;
 
 	r += `<br>&nbsp;Accountability: `; // The below lines are indented to increase readability.
-		r += `<span id="accountability"> <<if $SF.Regs === "strict">>''Strict Accountability''<<elseif $SF.Regs === "some">>''Some Accountability''<<else>>''No Accountability''<</if>></span>.&nbsp;&nbsp;`;
-		r += `<<link "Strict Accountability">> <<set $SF.Regs="strict">> <<replace "#accountability">>''Strict Accountability''<</replace>> <</link>> | <<link "Some Accountability">> <<set $SF.Regs="some">> <<replace "#accountability">>''Some Accountability''<</replace>> <</link>> | <<link "No Accountability">> <<set $SF.Regs="none">> <<replace "#accountability">>''No Accountability''<</replace>> <</link>>`;
+	r += `<span id="accountability"> <<if $SF.Regs === "strict">>''Strict Accountability''<<elseif $SF.Regs === "some">>''Some Accountability''<<else>>''No Accountability''<</if>></span>.&nbsp;&nbsp;`;
+	r += `<<link "Strict Accountability">> <<set $SF.Regs="strict">> <<replace "#accountability">>''Strict Accountability''<</replace>> <</link>> | <<link "Some Accountability">> <<set $SF.Regs="some">> <<replace "#accountability">>''Some Accountability''<</replace>> <</link>> | <<link "No Accountability">> <<set $SF.Regs="none">> <<replace "#accountability">>''No Accountability''<</replace>> <</link>>`;
 
 	if (V.SF.MercCon.CanAttend === 1) {
-		V.SF.MercCon.Income = 0; V.SF.MercCon.Menials = 0;
-		let tradeShowAttendes = 200, menialGiftsPerAttendee = 5, NewMercs = 0;
-		let menialGifts = Math.ceil(jsRandom(1, ((tradeShowAttendes*menialGiftsPerAttendee)/10)));
-		let TSProfit = Math.ceil(500000*(1+(V.SF.Size/1000))*(1+(V.arcologies[0].prosperity/1000))*T.Env);
-
-		V.SF.MercCon.Menials += menialGifts; V.SF.MercCon.TotalMenials += menialGifts;
-		V.menials += menialGifts; V.SF.MercCon.History += 1;
-		V.SF.MercCon.Income += TSProfit; V.SF.MercCon.Revenue += TSProfit;
+		V.SF.MercCon.Income = 0;
+		V.SF.MercCon.Menials = 0;
+		let tradeShowAttendes = 200,
+			menialGiftsPerAttendee = 5,
+			NewMercs = 0;
+		let menialGifts = Math.ceil(jsRandom(1, ((tradeShowAttendes * menialGiftsPerAttendee) / 10)));
+		let TSProfit = Math.ceil(500000 * (1 + (V.SF.Size / 1000)) * (1 + (V.arcologies[0].prosperity / 1000)) * T.Env);
+
+		V.SF.MercCon.Menials += menialGifts;
+		V.SF.MercCon.TotalMenials += menialGifts;
+		V.menials += menialGifts;
+		V.SF.MercCon.History += 1;
+		V.SF.MercCon.Income += TSProfit;
+		V.SF.MercCon.Revenue += TSProfit;
 		cashX(TSProfit, "specialForces");
 
 		if (V.secExp > 0 && V.mercenaries > 0) {
 			V.SF.MercCon.Mercs = 0;
-			NewMercs = jsRandom(1, (tradeShowAttendes/10));
-			V.mercFreeManpower += NewMercs; V.SF.MercCon.TotalMercs += NewMercs;
+			NewMercs = jsRandom(1, (tradeShowAttendes / 10));
+			V.mercFreeManpower += NewMercs;
+			V.SF.MercCon.TotalMercs += NewMercs;
 			V.SF.MercCon.Mercs += NewMercs;
 			r += `<br>''TradeShow'': During a break, The Colonel managed to sell some generic schematics to the ${tradeShowAttendes} attendees, some of whom decided to also give a few menial slaves as a bonus.<br>`;
 		}
@@ -474,44 +701,96 @@ window.SFReport = function() {
 	return r;
 };
 
-window.Count = function() {
-	const V = State.variables, T = State.temporary, C = Math.clamp, S = V.SF.Squad, E = V.economy;
-	T.FU = 10; S.Firebase = C(S.Firebase, 0, T.FU);
-	T.AU = 10; S.Armoury = C(S.Armoury, 0, T.AU);
-	T.DrugsU = 10; S.Drugs = C(S.Drugs, 0, T.DrugsU);
-	T.DU = 10; S.Drones = C(S.Drones, 0, T.DU);
-	T.AVU = 10; S.AV = C(S.AV, 0, T.AVU);
-	T.TVU = 10; S.TV = C(S.TV, 0, T.TVU);
-	T.AAU = 10; S.AA = C(S.AA, 0, T.AAU);
-	T.TAU = 10; S.TA = C(S.TA, 0, T.TAU);
+window.Count = function () {
+	const V = State.variables,
+		T = State.temporary,
+		C = Math.clamp,
+		S = V.SF.Squad,
+		E = V.economy;
+	T.FU = 10;
+	S.Firebase = C(S.Firebase, 0, T.FU);
+	T.AU = 10;
+	S.Armoury = C(S.Armoury, 0, T.AU);
+	T.DrugsU = 10;
+	S.Drugs = C(S.Drugs, 0, T.DrugsU);
+	T.DU = 10;
+	S.Drones = C(S.Drones, 0, T.DU);
+	T.AVU = 10;
+	S.AV = C(S.AV, 0, T.AVU);
+	T.TVU = 10;
+	S.TV = C(S.TV, 0, T.TVU);
+	T.AAU = 10;
+	S.AA = C(S.AA, 0, T.AAU);
+	T.TAU = 10;
+	S.TA = C(S.TA, 0, T.TAU);
 
 	if (V.PC.warfare >= 75) {
-		T.PGTU = 10; T.SPU = 10; T.GunSU = 10; T.SatU = 10; T.GRU = 10; T.MSU = 10; T.ACU = 10; T.SubU = 10; T.HATU = 10;
+		T.PGTU = 10;
+		T.SPU = 10;
+		T.GunSU = 10;
+		T.SatU = 10;
+		T.GRU = 10;
+		T.MSU = 10;
+		T.ACU = 10;
+		T.SubU = 10;
+		T.HATU = 10;
 	} else if (V.PC.warfare >= 50) {
-		T.PGTU = 9; T.SPU = 9; T.GunSU = 9; T.SatU = 9; T.GRU = 9; T.MSU = 9; T.ACU = 9; T.SubU = 9; T.HATU = 9;}
-	else {
-		T.PGTU = 8; T.SPU = 8; T.GunSU = 8; T.SatU = 8; T.GRU = 8; T.MSU = 8; T.ACU = 8; T.SubU = 8; T.HATU = 8;
+		T.PGTU = 9;
+		T.SPU = 9;
+		T.GunSU = 9;
+		T.SatU = 9;
+		T.GRU = 9;
+		T.MSU = 9;
+		T.ACU = 9;
+		T.SubU = 9;
+		T.HATU = 9;
+	} else {
+		T.PGTU = 8;
+		T.SPU = 8;
+		T.GunSU = 8;
+		T.SatU = 8;
+		T.GRU = 8;
+		T.MSU = 8;
+		T.ACU = 8;
+		T.SubU = 8;
+		T.HATU = 8;
 	}
 
 	S.PGT = C(S.PGT, 0, T.PGTU);
-	S.SpacePlane = C(S.SpacePlane, 0, T.SPU); S.GunS = C(S.GunS, 0, T.GunSU);
-	S.Satellite.lv = C(S.Satellite.lv, 0, T.SatU); S.GiantRobot = C(S.GiantRobot, 0, T.GRU); S.MissileSilo = C(S.MissileSilo, 0, T.MSU);
-	S.AircraftCarrier = C(S.AircraftCarrier, 0, T.ACU); S.Sub = C(S.Sub, 0, T.SubU); S.HAT = C(S.HAT, 0, T.HATU);
-	T.GU = T.AVU+T.TVU+T.PGTU; T.G = S.AV+S.TV+S.PGT;
-	T.H = S.AA+S.TA+S.SpacePlane+S.GunS; T.HU = T.AAU+T.TAU+T.SPU+T.GunSU;
-	T.LBU = T.SatU+T.MSU; T.LB = S.Satellite.lv+S.MissileSilo;
-	T.Base = S.Firebase+S.Armoury+S.Drugs+S.Drones+T.H;
-	T.max = T.FU+T.AU+T.DrugsU+T.DU+T.HU;
+	S.SpacePlane = C(S.SpacePlane, 0, T.SPU);
+	S.GunS = C(S.GunS, 0, T.GunSU);
+	S.Satellite.lv = C(S.Satellite.lv, 0, T.SatU);
+	S.GiantRobot = C(S.GiantRobot, 0, T.GRU);
+	S.MissileSilo = C(S.MissileSilo, 0, T.MSU);
+	S.AircraftCarrier = C(S.AircraftCarrier, 0, T.ACU);
+	S.Sub = C(S.Sub, 0, T.SubU);
+	S.HAT = C(S.HAT, 0, T.HATU);
+	T.GU = T.AVU + T.TVU + T.PGTU;
+	T.G = S.AV + S.TV + S.PGT;
+	T.H = S.AA + S.TA + S.SpacePlane + S.GunS;
+	T.HU = T.AAU + T.TAU + T.SPU + T.GunSU;
+	T.LBU = T.SatU + T.MSU;
+	T.LB = S.Satellite.lv + S.MissileSilo;
+	T.Base = S.Firebase + S.Armoury + S.Drugs + S.Drones + T.H;
+	T.max = T.FU + T.AU + T.DrugsU + T.DU + T.HU;
 	// if (V.SF.Facility.Toggle > 0) T.Base + = 1; T.max + = 1;
 
 	if (V.terrain !== "oceanic" || V.terrain === "marine") {
-		T.LBU += T.GRU; T.LB += S.GiantRobot; T.Base += T.G; T.max += T.GU;
-		T.max += T.LBU; T.Base += T.LB;
+		T.LBU += T.GRU;
+		T.LB += S.GiantRobot;
+		T.Base += T.G;
+		T.max += T.GU;
+		T.max += T.LBU;
+		T.Base += T.LB;
 	} else {
-		T.NY = S.AircraftCarrier + S.Sub + S.HAT; T.Base += T.NY;
-		T.NYU = T.ACU + T.SubU + T.HATU; T.max += T.NYU;
+		T.NY = S.AircraftCarrier + S.Sub + S.HAT;
+		T.Base += T.NY;
+		T.NYU = T.ACU + T.SubU + T.HATU;
+		T.max += T.NYU;
 	}
-	V.SF.Size = T.Base; V.SF.Size = C(V.SF.Size, 1, T.max); T.T1 = 0;
+	V.SF.Size = T.Base;
+	V.SF.Size = C(V.SF.Size, 1, T.max);
+	T.T1 = 0;
 
 	if (E > 100) {
 		T.Env = 4;
@@ -521,7 +800,8 @@ window.Count = function() {
 		T.Env = 2;
 	}
 
-	if (V.SF.Size >= 30) T.T1 = 1; T.SFSubsidy = 5000*(1+((V.SF.Squad.Troops/100)+(V.SF.Size/100)));
+	if (V.SF.Size >= 30) T.T1 = 1;
+	T.SFSubsidy = 5000 * (1 + ((V.SF.Squad.Troops / 100) + (V.SF.Size / 100)));
 	SFNameCapsCheck();
 	if (V.SF.IntroProgress > -1) delete V.SF.IntroProgress;
 	if (V.SF.MercCon === undefined) MercCon();
@@ -529,42 +809,50 @@ window.Count = function() {
 	if (V.SF.MercCon.CanAttend !== -2 || V.SF.MercCon.CanAttend !== -3) V.SF.MercCon.CanAttend = -1;
 };
 
-window.SFNameCapsCheck = function() {
- const V = State.variables;
- if (V.SF.Lower !== "the special force") V.SF.Caps = V.SF.Lower.replace("the ", "The ");
+window.SFNameCapsCheck = function () {
+	const V = State.variables;
+	if (V.SF.Lower !== "the special force") V.SF.Caps = V.SF.Lower.replace("the ", "The ");
 };
 
-window.SFUpgradeCost = function(cost, unit) {
-	"use strict"; const V = State.variables, T = State.temporary, S = V.SF.Squad; let value = 0;
-	value = cost*T.Env*(1.15+(V.SF.Size/10))*(1.15+(unit/100));
+window.SFUpgradeCost = function (cost, unit) {
+	"use strict";
+	const V = State.variables,
+		T = State.temporary,
+		S = V.SF.Squad;
+	let value = 0;
+	value = cost * T.Env * (1.15 + (V.SF.Size / 10)) * (1.15 + (unit / 100));
 	if ([S.Sub, S.AircraftCarrier, S.MissileSilo, S.GiantRobot, S.Satellite.lv, S.GunS, S.SpacePlane, S.Drones].includes(unit)) value *= V.HackingSkillMultiplier;
 	return Math.ceil(value);
 };
 
-window.progress = function(x, max) {
-	"use strict"; let out = `⏐`, z, i;
+window.progress = function (x, max) {
+	"use strict";
+	let out = `⏐`,
+		z, i;
 	if (max === undefined) {
 		Math.clamp(x, 0, 10);
 		if (State.variables.SF.Size < 30) {
 			z = 5 - x;
-			for (i = 0; i<x; i++) out += `█⏐`;
-			for (i = 0; i<z; i++) out += `<span style='opacity: 0;'>█</span>⏐`;
-			for (i = 0; i<5; i++) out += `░⏐`;}
-		else {
+			for (i = 0; i < x; i++) out += `█⏐`;
+			for (i = 0; i < z; i++) out += `<span style='opacity: 0;'>█</span>⏐`;
+			for (i = 0; i < 5; i++) out += `░⏐`;
+		} else {
 			z = 10 - x;
-			for (i = 0; i<x; i++) out += `█⏐`;
-			for (i = 0; i<z; i++) out += `<span style='opacity: 0;'>█</span>⏐`;}}
-	else {
+			for (i = 0; i < x; i++) out += `█⏐`;
+			for (i = 0; i < z; i++) out += `<span style='opacity: 0;'>█</span>⏐`;
+		}
+	} else {
 		Math.clamp(x, 0, max);
-		x = Math.floor(10*x/max);
+		x = Math.floor(10 * x / max);
 		z = 10 - x;
-		for (i = 0; i<x; i++) out += `█⏐`;
-		for (i = 0; i<z; i++) out += `<span style='opacity: 0;'>█</span>⏐`;}
+		for (i = 0; i < x; i++) out += `█⏐`;
+		for (i = 0; i < z; i++) out += `<span style='opacity: 0;'>█</span>⏐`;
+	}
 	return `${out}`;
 };
 
-window.SFC = function() {
-	const V=State.variables;
+window.SFC = function () {
+	const V = State.variables;
 	if (V.SF.MercCon.CanAttend === -1) {
 		return `The Colonel`;
 	} else {
@@ -575,8 +863,9 @@ window.SFC = function() {
 	}
 };
 
-window.SFCR = function() {
-	const V = State.variables, C = V.SF.Colonel;
+window.SFCR = function () {
+	const V = State.variables,
+		C = V.SF.Colonel;
 	if (C.Status <= 19) {
 		return `boss`;
 	} else if (C.Status <= 39) {
@@ -586,12 +875,15 @@ window.SFCR = function() {
 	}
 };
 
-window.Interactions = function() {
-	"use strict"; let choice = ``, time = ``;
-	const V = State.variables, C = V.SF.Colonel;
+window.Interactions = function () {
+	"use strict";
+	let choice = ``,
+		time = ``;
+	const V = State.variables,
+		C = V.SF.Colonel;
 	if (V.SF.Gift > 0) {
 		if (V.choice === 1) {
-			choice +=`${V.SF.Caps} is turning over spare capital in tribute this week. `;
+			choice += `${V.SF.Caps} is turning over spare capital in tribute this week. `;
 			if (V.SF.MercCon.CanAttend === -1 && (C.Talk + C.Fun !== 1)) {
 				choice += `"I think I can find <span class='yellowgreen'>${cashFormat(Math.ceil(V.CashGift))}</span> for you, boss."`;
 			} else {
@@ -612,33 +904,48 @@ window.Interactions = function() {
 				choice += `"Your <span class='yellowgreen'>arcology's business prospects should see an improvement</span> this week, boss".`;
 			}
 		}
-	} if (C.Talk + C.Fun > 0) time = `<br>The Colonel is busy for the rest of the week, so the Lieutenant Colonel will assist you.`;
+	}
+	if (C.Talk + C.Fun > 0) time = `<br>The Colonel is busy for the rest of the week, so the Lieutenant Colonel will assist you.`;
 	return `${time} <br>${choice}`;
 };
 
-window.BadOutcome = function() {
+window.BadOutcome = function () {
 	"use strict";
 	const V = State.variables;
 	let r = ``;
 	V.SF.Active = -2;
 
-	switch(V.SF.Colonel.Core) {
+	switch (V.SF.Colonel.Core) {
 		case "Shell-Shocked":
-			V.SF.BadOutcome = "lockdown"; V.trinkets.push("${t} explosives detonator");
+			V.SF.BadOutcome = "lockdown";
+			V.trinkets.push("${t} explosives detonator");
 			r += `Unnerved by your ever-increasing influence over your men and undercutting of her authority, The Colonel uses heavy explosives at midnight to seal off The Firebase from your access. When you step off of your express elevator, you are met not with two guards, but several armed proximity mines next to an incredibly thick wall of smoking rubble. No doubt there are machine gun nests, anti-tank nests, and lots more proximity mines just waiting for you on the other side, should you somehow get through the wall of debris.`;
 			r += `<br>The ${V.SF.Lower} still deploys into the old world to plunder as it pleases, but no longer for you. You receive no money from their exploits, and their total defiance and independence of you is a permanent stain on your reputation. Of course, you'll never have the needed military power to dislodge them, especially with all the redundant fortifications, crossfire envelopes, and myriad traps that paranoid bitch had built around each entrance ever since she went rouge. Trying to sabotage certain support beams from above to make the Firebase facility collapse in on itself could easily cause enough damage to topple other parts of the arcology too, and such a thing would be very difficult to cover up. In other words, you're stuck with them. The Firebase has become a permanent tumor on your Arcology and good name.`;
 			break;
 		case "Cruel":
-			V.SF.BadOutcome = "Revolt"; V.trinkets.push("${t} dog tags"); repX((0 - V.rep), "specialForces");
-			V.arcologies[0].prosperity -= 50; V.ASlaves = 49; cashX(-10000, "specialForces");
-			V.ACitizens = 751; V.menials = 0; V.researchLab.menials = 0;
-			V.researchLab.hired = 0; V.fuckdolls = 0; V.menialBioreactors = 0;
-			V.activeUnits = 0; V.secBots.troops = 0; V.createdSlavesUnits = 0;
-			V.createdMilitiaUnits = 0; V.createdMercUnits = 0;
+			V.SF.BadOutcome = "Revolt";
+			V.trinkets.push("${t} dog tags");
+			repX((0 - V.rep), "specialForces");
+			V.arcologies[0].prosperity -= 50;
+			V.ASlaves = 49;
+			cashX(-10000, "specialForces");
+			V.ACitizens = 751;
+			V.menials = 0;
+			V.researchLab.menials = 0;
+			V.researchLab.hired = 0;
+			V.fuckdolls = 0;
+			V.menialBioreactors = 0;
+			V.activeUnits = 0;
+			V.secBots.troops = 0;
+			V.createdSlavesUnits = 0;
+			V.createdMilitiaUnits = 0;
+			V.createdMercUnits = 0;
 			r += `<br>The ${V.SF.Lower} still deploys into the old world to plunder as it pleases, but no longer for you. You receive no money from their exploits, and their total defiance and independence of you is a permanent stain on your reputation. Of course, you'll never have the needed military power to dislodge them, especially with all the redundant fortifications, crossfire envelopes, and myriad traps that paranoid bitch had built around each entrance ever since she went rouge. Trying to sabotage certain support beams from above to make the Firebase facility collapse in on itself could easily cause enough damage to topple other parts of the arcology too, and such a thing would be very difficult to cover up. In other words, you're stuck with them. The Firebase has become a permanent tumor on your Arcology and good name.`;
 			break;
 		case "Cruel and Psychopathic":
-			V.SF.BadOutcome = "Revolt"; V.trinkets.push("${t} dog tags"); repX((0 - V.rep), "specialForces");
+			V.SF.BadOutcome = "Revolt";
+			V.trinkets.push("${t} dog tags");
+			repX((0 - V.rep), "specialForces");
 			r += `<br>Finally fed up with your constant intrusions into her territory and crew, The Colonel riles up her people for an utterly ferocious rebellion. The promises of rape and plunder and dominion over some of the wealthiest tenants in the entire Free City (and their world-class slaves) are all that's needed to give the selfish lot of them a nearly unshakable resolve in the task of delivering their overlord Her most coveted prize: You.`;
 			r += `<br>It is now midnight. The lights are the first thing they disable, as they still have the excellent night vision equipment you purchased for them. Some of your citizens start panicking almost immediately at the sudden blackout; this is very reminiscent of the Daughters of Liberty attack that still haunts many of their memories. Things like this were never supposed to happen again. You had promised them that you'd create an army that would protect them...`;
 			r += `<br>Her army vanguard strikes fast and hard throughout the main Plaza, cutting through your security personnel, defensive platoons, and drones with an ease that stinks of months of careful planning and study. Your defensive platoons, veterans of many Battles, are outmaneuvered at every turn; their hidden ammunition caches are found empty, their communications networks are mysteriously scrambled, and key chokepoints are found to be booby-trapped before your men can even get to them; their well-rehearsed arcology defense routines have gone to ash. Assuming you ever get a chance to speak to The Colonel again, you would ask if her betrayal was actually inevitable rather than something you triggered.`;
@@ -653,7 +960,9 @@ window.BadOutcome = function() {
 			r += `<br>The Colonel's body was never found.`;
 			break;
 		case "Kind":
-			V.SF.BadOutcome = "Exodus"; V.trinkets.push("${t} gift card"); V.menials += 73;
+			V.SF.BadOutcome = "Exodus";
+			V.trinkets.push("${t} gift card");
+			V.menials += 73;
 			cashX(55000, "specialForces");
 			r += `Your Colonel has had enough of your meddling. In her eyes, you've broken faith with her. She asked one thing of you in return for her full support, and you could not even give her that.`;
 			r += `<br>At midnight, a great mechanized convoy, the biggest you've seen in a long while, streams out of your Arcology. Troop Carriers, Aircraft, Heavy Trucks, and other war machines of varying sizes pour out of the Firebase in tight formation. The Colonel is refusing your calls, and you know it would be ill advised to go out there yourself or to try to stop them with force. The many bandits and mercenary groups that the convoy will inevitably pass by will probably feel this way as well. You have no idea where they are going or how they will end up, but with their wealth and weaponry, you are not worried.`;
@@ -661,118 +970,249 @@ window.BadOutcome = function() {
 			r += `<br>When you climb the crates to take it and read it, you see The Colonel's handwritten sentiments about the way things turned out; her gratitude for taking her in when you did, her disappointment in your actions, a detailed account of your failings, her regrets that things had to end this way, and finally, her well wishes for your future endeavors.`;
 			r += `<br>Disgusted, you pocket the gift card and leave your employees and menials to gather up the valuables here before stalking back to your Penthouse. The former Firebase is returned to being a warehouse facility.`;
 			break;
-		
+
 	}
 	return r;
 };
 
-window.UnitText = function(input) {
-	"use strict"; const V = State.variables, S = V.SF.Squad;
+window.UnitText = function (input) {
+	"use strict";
+	const V = State.variables,
+		S = V.SF.Squad;
 	// Sorted by case
 	let appear = `is currently constructed in a haphazard fashion.`;
 	let barracks = `Soldiers' cots are mixed in with weapons crates and ammunition.`;
 	let slave = `Cages for processing slaves lie off to one side,`;
 	let common = `and in the center is a common area with tables for soldiers to gather around for meals or rowdy conversations.`;
-	let garage = ``, drone = ``, hangar = ``, launch = ``, artillery = ``;
-	let comms = ``, training = ``;
+	let garage = ``,
+		drone = ``,
+		hangar = ``,
+		launch = ``,
+		artillery = ``;
+	let comms = ``,
+		training = ``;
 
 	const Quantity = `the ${num(S.Troops)} members of ${V.SF.Lower}`;
 
 	let weapons = `The weapons are mostly worn rifles that have already seen years of service before ${V.SF.Lower} acquired them.`;
 	let armor1 = `The body armor is enough to stop smaller calibers, but nothing serious.`;
-	let radio = ``, helmets = ``, ammo0 = ``, uniforms = ``, special = ``;
+	let radio = ``,
+		helmets = ``,
+		ammo0 = ``,
+		uniforms = ``,
+		special = ``;
 	let exo = ``;
 
-	let amphet = ``, phen = ``, steroid = ``, downer = ``, concen = ``;
-	let stimpack = ``, stabilizer = ``;
-
-	let a = `have been recommissioned for use by ${V.SF.Lower}`, b = `.`, c = ``;
-	let d = ``, e = ``, f = ``, g = ``, h = ``, i = ``, j = ``, k = ``;
+	let amphet = ``,
+		phen = ``,
+		steroid = ``,
+		downer = ``,
+		concen = ``;
+	let stimpack = ``,
+		stabilizer = ``;
+
+	let a = `have been recommissioned for use by ${V.SF.Lower}`,
+		b = `.`,
+		c = ``;
+	let d = ``,
+		e = ``,
+		f = ``,
+		g = ``,
+		h = ``,
+		i = ``,
+		j = ``,
+		k = ``;
 
 	let activate = `has been recommissioned for use by ${V.SF.Lower}. They`;
 	let mechanics = `, mechanics are methodically checking the recent purchases for battle-readiness`;
 	let MG = `120 mm main gun is enough to handle the majority of opponents around the Free Cities.`;
-	let engine1 = ``, armor2 = ``, armor22 = ``, ammo1 = ``, mg = ``;
-	let fireC0 = ``, fireC1 = ``, fireC2 = ``, fireC3 = ``, turret = ``;
+	let engine1 = ``,
+		armor2 = ``,
+		armor22 = ``,
+		ammo1 = ``,
+		mg = ``;
+	let fireC0 = ``,
+		fireC1 = ``,
+		fireC2 = ``,
+		fireC3 = ``,
+		turret = ``;
 
 	let B = `has been recommissioned for use by ${V.SF.Lower}. They`;
 	let C = `, mechanics are giving the new purchases a final tuneup`;
-	let squad = `a squad`, G1 = `20`, G2 = `in a firefight`;
-	let e0 = `The engine has been`, engine3 = ``, armor3 = ``, tires = ``;
-	let m1 = ``, m2 = ``, pod1 = ``, pod2 = ``;
+	let squad = `a squad`,
+		G1 = `20`,
+		G2 = `in a firefight`;
+	let e0 = `The engine has been`,
+		engine3 = ``,
+		armor3 = ``,
+		tires = ``;
+	let m1 = ``,
+		m2 = ``,
+		pod1 = ``,
+		pod2 = ``;
 
 	let b1 = `has been sold to ${V.SF.Lower} through back channels to support a failing old world nation. The tank is so large it cannot fit inside the garage, and has`;
-	let c1 = ``, engines4 = `. Two engines power the left and right sides of the tank separately, leaving it underpowered and slow`;
-	let gun0 = ``, gun1 = ``, gun2 = `an undersized main gun and makeshift firing system from a standard battle tank`;
-	let armor5 = ``, armor6 = ``, cannon = ``, laser = ``, PGTframe = ``;
-
-	let W1 = `only armed`, W2 = `;`, W3 = `a poor weapon against flying targets, but enough to handle ground forces`;
+	let c1 = ``,
+		engines4 = `. Two engines power the left and right sides of the tank separately, leaving it underpowered and slow`;
+	let gun0 = ``,
+		gun1 = ``,
+		gun2 = `an undersized main gun and makeshift firing system from a standard battle tank`;
+	let armor5 = ``,
+		armor6 = ``,
+		cannon = ``,
+		laser = ``,
+		PGTframe = ``;
+
+	let W1 = `only armed`,
+		W2 = `;`,
+		W3 = `a poor weapon against flying targets, but enough to handle ground forces`;
 	let group = `A small group of attack VTOL have been recommissioned for use by ${V.SF.Lower}, enough to make up a squadron`;
-	let engines = ``, TAI = ``, lock = ``, support = ``, stealth = ``;
-	let scramble = ``, PAI = ``;
-
-	let Num = `number`, type = `tiltrotor`, capacity = `small platoon or 15`;
-	let engines0 = ``, engines01 = ``, Radar = ``, Armor = ``, landing = ``;
-	let miniguns = ``, counter = ``;
+	let engines = ``,
+		TAI = ``,
+		lock = ``,
+		support = ``,
+		stealth = ``;
+	let scramble = ``,
+		PAI = ``;
+
+	let Num = `number`,
+		type = `tiltrotor`,
+		capacity = `small platoon or 15`;
+	let engines0 = ``,
+		engines01 = ``,
+		Radar = ``,
+		Armor = ``,
+		landing = ``;
+	let miniguns = ``,
+		counter = ``;
 
 	let engine20 = `ramjet engines in the atmosphere that can reach Mach 10`;
 	let b5 = `has been purchased from an insolvent old world nation. It `;
-	let shield = ``, camera = ``, efficiency = ``, camera2 = ``, drag = ``;
-	let crew = ``, engine2 = ``, skin = ``;
+	let shield = ``,
+		camera = ``,
+		efficiency = ``,
+		camera2 = ``,
+		drag = ``;
+	let crew = ``,
+		engine2 = ``,
+		skin = ``;
 
 	let activate2 = `has been recommissioned for use by ${V.SF.Lower}. Currently, it `;
-	let barrels = `Miniguns and Gatling cannons line`, distance = `, though the distance to ground targets renders the smaller calibers somewhat less useful`;
-	// eslint-disable-next-line camelcase
-	let b4 = ``, c2 = ``, fuel = ``, GS_Speed = ``, countermeasures = ``, ammunition = ``, DFA = ``, autocannon = ``;
+	let barrels = `Miniguns and Gatling cannons line`,
+		distance = `, though the distance to ground targets renders the smaller calibers somewhat less useful`;
+	let b4 = ``,
+		c2 = ``,
+		fuel = ``,
+		// eslint-disable-next-line camelcase
+		GS_Speed = ``,
+		countermeasures = ``,
+		ammunition = ``,
+		DFA = ``,
+		autocannon = ``;
 
 	let loc1 = `An unused science satellite has been purchased from an old world nation. While currently useless, it holds potential to be a powerful tool.`;
-	let gyro = ``, telemetry = ``, thrusters = ``, solar = ``, surviv = ``;
-	let laser1 = ``, heat = ``, reactor = ``, lens = ``, kin = ``;
+	let gyro = ``,
+		telemetry = ``,
+		thrusters = ``,
+		solar = ``,
+		surviv = ``;
+	let laser1 = ``,
+		heat = ``,
+		reactor = ``,
+		lens = ``,
+		kin = ``;
 
 	let loc = `has been purchased from a crumbling old world nation. It`;
 	let power = `Large batteries mounted in oversized shoulders power the robot for up to ten minutes of use, though they make for large targets.`;
 	let knife = `simply a 8.5 meter long knife, though additional weapons are under development.`;
-	let armor8 = ``, actuator = ``, cannon1 = ``, heatsink = ``, ammo2 = ``;
+	let armor8 = ``,
+		actuator = ``,
+		cannon1 = ``,
+		heatsink = ``,
+		ammo2 = ``;
 	let missile = ``;
 
 	let a4 = `A cruise missile launch site has been constructed near the base of`;
 	let b2 = `outdated, something quickly rigged together to give the launch site something to fire in the case of an attack`;
-	let c8 = ``, d1 = ``, e1 = ``, f1 = ``, g1 = ``, h1 = ``;
+	let c8 = ``,
+		d1 = ``,
+		e1 = ``,
+		f1 = ``,
+		g1 = ``,
+		h1 = ``;
 
 	let recom1 = `has been recommissioned from the old world for ${V.SF.Lower}. It`;
-	let jets = `Formerly mothballed strike jets`, loc2 = ``, radar = ``, AAG = ``;
-	let prop = ``, torp = ``, armor9 = ``, power1 = ``, scramble1 = ``;
+	let jets = `Formerly mothballed strike jets`,
+		loc2 = ``,
+		radar = ``,
+		AAG = ``;
+	let prop = ``,
+		torp = ``,
+		armor9 = ``,
+		power1 = ``,
+		scramble1 = ``;
 
 	let recom = `has been recommissioned from the old world, and`;
 	let reactor0 = `Because diesel engines provide power and breathing oxygen is kept in pressurized canisters, the sub must frequently surface.`;
-	let reactor1 = ``, cal = ``, hull = ``, tubes = ``, torpedoes = ``, sonar = ``;
-	let control = ``, missiles = ``;
+	let reactor1 = ``,
+		cal = ``,
+		hull = ``,
+		tubes = ``,
+		torpedoes = ``,
+		sonar = ``;
+	let control = ``,
+		missiles = ``;
 
 	let recom2 = `; has been recommissioned for use by ${V.SF.Lower}. It`;
-	let tons = `200`, skirt = ``, guns = ``, guns2 = ``, fans = ``, speed = ``;
-	let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``;
-
-	switch(input) {
+	let tons = `200`,
+		skirt = ``,
+		guns = ``,
+		guns2 = ``,
+		fans = ``,
+		speed = ``;
+	let turbines = ``,
+		armor10 = ``,
+		ramps = ``,
+		HATframe = ``,
+		loadout = ``;
+
+	switch (input) {
 		case 'firebase':
-			if (S.Firebase >= 0) { const text0 = `<br>''Firebase:''`;
-				if (S.Firebase >= 1) appear = `has had some organization put into it.`; barracks = `The majority of weapons, armor, and ammunition have been separated from the soldiers' cots into their own armory.`; garage = `A section near the outer wall of the arcology has been converted to a garage with an adjoining vehicle maintenance bay`; drone = `.`; if (V.terrain === "oceanic") garage += ` for inter-arcology travel`;
-				if (S.Firebase >= 2) barracks = `A barracks has been constructed near the armory, allowing soldiers a quieter place to sleep and store their personal spoils.`; drone = `; as well as a facility for the storage, maintenance, and deployment of armed combat drones.`;
-				if (S.Firebase >= 3) appear = `has become more permanent.`; barracks = `A command center has been constructed near the barracks and armory, allowing for additional support personnel.`;
+			if (S.Firebase >= 0) {
+				const text0 = `<br>''Firebase:''`;
+				if (S.Firebase >= 1) appear = `has had some organization put into it.`;
+				barracks = `The majority of weapons, armor, and ammunition have been separated from the soldiers' cots into their own armory.`;
+				garage = `A section near the outer wall of the arcology has been converted to a garage with an adjoining vehicle maintenance bay`;
+				drone = `.`;
+				if (V.terrain === "oceanic") garage += ` for inter-arcology travel`;
+				if (S.Firebase >= 2) barracks = `A barracks has been constructed near the armory, allowing soldiers a quieter place to sleep and store their personal spoils.`;
+				drone = `; as well as a facility for the storage, maintenance, and deployment of armed combat drones.`;
+				if (S.Firebase >= 3) appear = `has become more permanent.`;
+				barracks = `A command center has been constructed near the barracks and armory, allowing for additional support personnel.`;
 				if (S.Firebase >= 4) hangar = `Hangar space for storing and repairing aircraft has been converted from unused space on the other side of the garage.`;
 				if (S.Firebase >= 5)
-					appear = `is nearing the appearance of a military base.`; launch = `The rest of the firebase has been designated for special projects.`; artillery = `Artillery batteries are set around the base of the arcology.`; if (V.terrain === "oceanic" || V.terrain === "marine") launch += ` A Naval Yard has been constructed in the waters near the arcology.`;
+					appear = `is nearing the appearance of a military base.`;
+				launch = `The rest of the firebase has been designated for special projects.`;
+				artillery = `Artillery batteries are set around the base of the arcology.`;
+				if (V.terrain === "oceanic" || V.terrain === "marine") launch += ` A Naval Yard has been constructed in the waters near the arcology.`;
 				if (S.Firebase >= 6) common = `and in the center is a common area for recreation, including a small movie theater and a mess hall.`;
-				if (S.Firebase >= 7) {slave = `A slave detention facility has been sectioned off to one side`;
+				if (S.Firebase >= 7) {
+					slave = `A slave detention facility has been sectioned off to one side`;
 					if (V.SF.Depravity > 1.5) slave += ` emanating the sounds of rape and torture`;
-					slave += `;`;}
-				if (S.Firebase >= 8) { appear = `has become a fully fledged military base.`; comms = `A Free City-wide communication network for ${V.SF.Lower} has been constructed to facilitate faster responses and efficient monitoring of the surrounding area.`; }
+					slave += `;`;
+				}
+				if (S.Firebase >= 8) {
+					appear = `has become a fully fledged military base.`;
+					comms = `A Free City-wide communication network for ${V.SF.Lower} has been constructed to facilitate faster responses and efficient monitoring of the surrounding area.`;
+				}
 				if (S.Firebase >= 9) training = `A high-tech killhouse has been constructed to aid in soldier training.`;
 				if (S.Firebase >= 10) artillery = `Railgun artillery batteries are set around the base of the arcology, capable of accurately destroying enemies an absurd distance away.`;
 				return `${text0} The firebase ${appear} ${barracks} ${comms} ${training} ${slave} ${common} ${garage}${drone} ${hangar} ${launch} ${artillery}`;
 			}
 			break;
 		case 'troop':
-			if (S.Troops > 0) { const text1 = `<br>&nbsp;The large dormitories are`;
+			if (S.Troops > 0) {
+				const text1 = `<br>&nbsp;The large dormitories are`;
 				if (S.Troops < 100) {
 					return `${text1} sparsely occupied, ${Quantity} residing within them concentrating together in a corner. The hundreds of empty beds and lockers visibly herald the future.`;
 				} else if (S.Troops < 400) {
@@ -787,7 +1227,10 @@ window.UnitText = function(input) {
 			}
 			break;
 		case 'armory':
-			if (S.Armoury >= 0) { const text2 = `<br><br>''Armory:''<br>`; radio = `Radios have been wired into the soldiers helmets`; helmets = `.`;
+			if (S.Armoury >= 0) {
+				const text2 = `<br><br>''Armory:''<br>`;
+				radio = `Radios have been wired into the soldiers helmets`;
+				helmets = `.`;
 				if (S.Armoury >= 2) helmets = ` and a HUD has been integrated into the soldier's eyewear.`;
 				if (S.Armoury >= 3) ammo0 = `Tactical vests have been provided, allowing soldiers to carry additional ammo.`;
 				if (S.Armoury >= 4) armor1 = `The body armor is a newer variant, able to stop small arms fire and protect against shrapnel.`;
@@ -801,7 +1244,9 @@ window.UnitText = function(input) {
 			}
 			break;
 		case 'drugs':
-			if (S.Drugs >= 0) { const text3 = `<br><br>''Drug Lab:''`; amphet = `Amphetamines have been added to the cocktail at a low dosage to act as a stimulant, physical performance enhancer, cognition control enhancer. Some side-effects exist.`;
+			if (S.Drugs >= 0) {
+				const text3 = `<br><br>''Drug Lab:''`;
+				amphet = `Amphetamines have been added to the cocktail at a low dosage to act as a stimulant, physical performance enhancer, cognition control enhancer. Some side-effects exist.`;
 				if (S.Drugs >= 2) phen = `Phencyclidine has been added to the cocktail at a low dosage as a dissociative psychotropic for soldiers in battle to introduce feelings of detachment, strength and invincibility, and aggression. Some side-effects reduce the tolerable dosage before soldiers go on uncontrollable violent outbreaks.`;
 				if (S.Drugs >= 3) steroid = `Testosterone is being produced for soldiers in training as a natural muscle growth stimulant and to invoke aggression.`;
 				if (S.Drugs >= 4) downer = `Zaleplon is being produced as a downer to counteract the battle cocktail and encourage rest before combat.`;
@@ -815,10 +1260,15 @@ window.UnitText = function(input) {
 			}
 			break;
 		case 'UAV':
-			if(S.Firebase >= 2 && S.Drones >= 1) { const text4 = `<br><br>''Drone Bay:''`;
-				if (S.Drones >= 2) a = `equipped with missiles are resting on one side of the drone bay`; b = `; as well as destroying the occasional target.`;
-				if (S.Drones >= 3) c = `A fleet of`; d = `large delivery quadcopters have been converted for military service to support ground forces as combat drones.`;
-				if (S.Drones >= 4) d = `combat drones take up the rest of the space in the drone bay. They have a`; e = `small automatic rifle`; f = `mounted to the underside.`;
+			if (S.Firebase >= 2 && S.Drones >= 1) {
+				const text4 = `<br><br>''Drone Bay:''`;
+				if (S.Drones >= 2) a = `equipped with missiles are resting on one side of the drone bay`;
+				b = `; as well as destroying the occasional target.`;
+				if (S.Drones >= 3) c = `A fleet of`;
+				d = `large delivery quadcopters have been converted for military service to support ground forces as combat drones.`;
+				if (S.Drones >= 4) d = `combat drones take up the rest of the space in the drone bay. They have a`;
+				e = `small automatic rifle`;
+				f = `mounted to the underside.`;
 				if (S.Drones >= 5) g = `Armor has been added to protect vulnerable components from small arms fire.`;
 				if (S.Drones >= 6) h = `The fleet's batteries have been replaced with higher capacity models, increasing the functional time spent in combat.`;
 				if (S.Drones >= 7) i = `The propellers and motors have been upgraded, increasing maneuverability and speed.`;
@@ -829,13 +1279,20 @@ window.UnitText = function(input) {
 			}
 			break;
 		case 'AV':
-			if (S.AV >= 1) { const text5 = `<br>&nbsp;&nbsp;''Assault:''`;
-				if (S.AV >= 2) engine1 = `The engine1 has been overhauled, allowing much faster maneuvering around the battlefield.`; activate = ``; mechanics = ``;
+			if (S.AV >= 1) {
+				const text5 = `<br>&nbsp;&nbsp;''Assault:''`;
+				if (S.AV >= 2) engine1 = `The engine1 has been overhauled, allowing much faster maneuvering around the battlefield.`;
+				activate = ``;
+				mechanics = ``;
 				if (S.AV >= 3) armor2 = `A composite ceramic armor has replaced the original, offering much greater protection from attacks.`;
 				if (S.AV >= 4) ammo1 = `The tanks have been outfitted with additional types of ammo for situational use.`;
 				if (S.AV >= 5) mg = `A remote-controlled .50 cal machine gun has been mounted on the turret to handle infantry and low-flying aircraft.`;
-				if (S.AV >= 6) fireC0 = `A fire-control system`; fireC3 = `been installed, guaranteeing`; fireC2 = `has`; fireC1 = `accurate fire.`;
-				if (S.AV >= 7) fireC2 = `and an autoloader have`; fireC1 = `rapid, accurate fire while separating the crew from the stored ammunition in the event the ammo cooks off.`;
+				if (S.AV >= 6) fireC0 = `A fire-control system`;
+				fireC3 = `been installed, guaranteeing`;
+				fireC2 = `has`;
+				fireC1 = `accurate fire.`;
+				if (S.AV >= 7) fireC2 = `and an autoloader have`;
+				fireC1 = `rapid, accurate fire while separating the crew from the stored ammunition in the event the ammo cooks off.`;
 				if (S.AV >= 8) armor22 = `A reactive armor system has been added, giving the tank an additional, if temporary, layer of protection.`;
 				if (S.AV >= 9) turret = `The turret has been massively redesigned, lowering the tank profile and increasing the efficiency of the mechanisms within.`;
 				if (S.AV >= 10) MG = `140 mm main gun can quash anything even the greatest old world nations could muster.`;
@@ -843,24 +1300,38 @@ window.UnitText = function(input) {
 			}
 			break;
 		case 'TV':
-			if (S.TV >= 1) { const text6 = `<br>&nbsp;&nbsp;''Transport:''`;
-				if (S.TV >= 2) engine3 = `${e0} overhauled, allowing for higher mobility.`; C = ``; B = ``;
+			if (S.TV >= 1) {
+				const text6 = `<br>&nbsp;&nbsp;''Transport:''`;
+				if (S.TV >= 2) engine3 = `${e0} overhauled, allowing for higher mobility.`;
+				C = ``;
+				B = ``;
 				if (S.TV >= 3) armor3 = `Composite armor has been bolted to the exterior, increasing the survivability of an explosive attack for the crew and passengers.`;
 				if (S.TV >= 4) tires = `The tires have been replaced with a much more durable version that can support a heavier vehicle.`;
-				if (S.TV >= 5) m1 = `An automatic missile defense system has been installed,`; m2 = `targeting any guided missiles with laser dazzlers and deploying a smokescreen.`;
-				if (S.TV >= 6) pod1 = `An anti-tank missile pod`; pod2 = `has been installed on the side of the turret.`;
-				if (S.TV >= 7) G1 = `25`; G2 = `by attacking enemies through cover and destroying light armor`;
+				if (S.TV >= 5) m1 = `An automatic missile defense system has been installed,`;
+				m2 = `targeting any guided missiles with laser dazzlers and deploying a smokescreen.`;
+				if (S.TV >= 6) pod1 = `An anti-tank missile pod`;
+				pod2 = `has been installed on the side of the turret.`;
+				if (S.TV >= 7) G1 = `25`;
+				G2 = `by attacking enemies through cover and destroying light armor`;
 				if (S.TV >= 8) pod2 = `and an anti-aircraft missile pod have been installed on either side of the turret.`;
-				if (S.TV >= 9) squad = `two squads`; armor3 = ``; m2 = `destroying any incoming missiles with a high-powered laser. Some of the now redundant composite armor has been removed, and the reclaimed space allows for more passengers.`;
+				if (S.TV >= 9) squad = `two squads`;
+				armor3 = ``;
+				m2 = `destroying any incoming missiles with a high-powered laser. Some of the now redundant composite armor has been removed, and the reclaimed space allows for more passengers.`;
 				if (S.TV >= 10) engine3 = `${e0} replaced with the newest model, allowing the vehicle to get in and out of the conflict extremely quickly.`;
 				return `${text6} A fleet of infantry fighting vehicles ${B} are parked in the garage${C}. The IFVs can carry ${squad} of 6 to a firezone. The ${G1} mm autocannon supports infantry ${G2}. ${pod1} ${pod2} ${engine3} ${armor3} ${tires} ${m1} ${m2}`;
 			}
 			break;
 		case 'PGT':
-			if (S.PGT >= 1) { const text7 = `<br>&nbsp;''Prototype Goliath Tank:''`;
-				if (S.PGT >= 2) c1 = `rests in`; b1 = ``; engines4 = ` and powered by their own engine, allowing the tank to travel with an unsettling speed for its massive bulk`;
-				if (S.PGT >= 3) gun0 = `a railgun capable of`; gun1 = `firing steel slugs`; gun2 = `through one tank and into another`;
-				if (S.PGT >= 4) armor6 = `reinforced, increasing survivability for the crew inside.`; armor5 = `The armor has been`;
+			if (S.PGT >= 1) {
+				const text7 = `<br>&nbsp;''Prototype Goliath Tank:''`;
+				if (S.PGT >= 2) c1 = `rests in`;
+				b1 = ``;
+				engines4 = ` and powered by their own engine, allowing the tank to travel with an unsettling speed for its massive bulk`;
+				if (S.PGT >= 3) gun0 = `a railgun capable of`;
+				gun1 = `firing steel slugs`;
+				gun2 = `through one tank and into another`;
+				if (S.PGT >= 4) armor6 = `reinforced, increasing survivability for the crew inside.`;
+				armor5 = `The armor has been`;
 				if (S.PGT >= 5) cannon = `A coaxial 30mm autocannon has been installed in the turret, along with automated .50 cal machine guns mounted over the front treads.`;
 				if (S.PGT >= 6) laser = `Laser anti-missile countermeasures have been installed, destroying any subsonic ordinance fired at the Goliath.`;
 				if (S.PGT >= 7) PGTframe = `The frame has been reinforced, allowing the Goliath to carry more armor and guns.`;
@@ -871,13 +1342,18 @@ window.UnitText = function(input) {
 			}
 			break;
 		case 'AA':
-			if (S.AA >= 1) { const text8 = `<br>&nbsp;&nbsp;''Assault:''`;
-				if (S.AA >= 2) W1 = `armed`; W2 = ` and air-to-air missiles,`; W3 = `a combination that can defend the arcology from enemy aircraft, as well as`; support = ` support ground troops`;
+			if (S.AA >= 1) {
+				const text8 = `<br>&nbsp;&nbsp;''Assault:''`;
+				if (S.AA >= 2) W1 = `armed`;
+				W2 = ` and air-to-air missiles,`;
+				W3 = `a combination that can defend the arcology from enemy aircraft, as well as`;
+				support = ` support ground troops`;
 				if (S.AA >= 3) engines = `The engines have been tuned, allowing faster flight with greater acceleration.`;
 				if (S.AA >= 4) TAI = `An advanced targeting AI has been installed to handle all control of weapons, allowing much more efficient use of ammunition and anti-countermeasure targeting.`;
 				if (S.AA >= 5) lock = `Installed multispectrum countermeasures protect against all types of missile locks.`;
 				if (S.AA >= 6) group = `A respectable number of attack VTOL protect your arcology, split into a few squadrons`;
-				if (S.AA >= 7) support = ` attack ground targets`; W2 = `; rocket pods, and air-to-air missiles,`;
+				if (S.AA >= 7) support = ` attack ground targets`;
+				W2 = `; rocket pods, and air-to-air missiles,`;
 				if (S.AA >= 8) stealth = `The old skin has been replaced with a radar-absorbent material, making the aircraft difficult to pick up on radar.`;
 				if (S.AA >= 9) scramble = `The VTOLs can scramble to react to any threat in under three minutes.`;
 				if (S.AA >= 10) PAI = `A piloting AI has been installed, allowing the VTOLs to perform impossible maneuvers that cannot be done by a human pilot. This removes the need for a human in the aircraft altogether.`;
@@ -885,21 +1361,28 @@ window.UnitText = function(input) {
 			}
 			break;
 		case 'TA':
-			if (S.TA >= 1) { const text9 = `<br>&nbsp;&nbsp;''Transport:''`;
+			if (S.TA >= 1) {
+				const text9 = `<br>&nbsp;&nbsp;''Transport:''`;
 				if (S.TA >= 2) engines0 = `The tiltrotor engines have been replaced with a more powerful engine, allowing faster travel times.`;
 				if (S.TA >= 3) counter = `Multispectrum countermeasures have been added to protect against guided missiles.`;
 				if (S.TA >= 4) miniguns = `Mounted miniguns have been installed to cover soldiers disembarking in dangerous areas.`;
 				if (S.TA >= 5) Num = `large number`;
 				if (S.TA >= 6) landing = `The landing equipment has been overhauled, protecting personnel and cargo in the event of a hard landing or crash.`;
 				if (S.TA >= 7) Armor = `Armor has been added to protect passengers from small arms fire from below.`;
-				if (S.TA >= 8) capacity = `large platoon or 20`; engines01 = `Further tweaks to the engine allow for greater lifting capacity.`;
+				if (S.TA >= 8) capacity = `large platoon or 20`;
+				engines01 = `Further tweaks to the engine allow for greater lifting capacity.`;
 				if (S.TA >= 9) Radar = `Radar-absorbent materials have replaced the old skin, making it difficult to pick up the VTOL on radar.`;
-				if (S.TA >= 10) type = `tiltjet`; engines01 = ``; engines0 = `The tiltrotors have been replaced with tiltjets, allowing for much greater airspeed and acceleration.`;
+				if (S.TA >= 10) type = `tiltjet`;
+				engines01 = ``;
+				engines0 = `The tiltrotors have been replaced with tiltjets, allowing for much greater airspeed and acceleration.`;
 				return `${text9} A ${Num} of transport ${type} VTOL have been recommissioned for use by ${V.SF.Lower}. The VTOLs are resting on large pads near the base to load either a ${capacity} tons of material. ${engines0} ${engines01} ${Armor} ${landing} ${counter} ${Radar} ${miniguns}`;
-			} break;
+			}
+			break;
 		case 'SP':
-			if (S.SpacePlane >= 1) { const text10 = `<br>&nbsp;''Spaceplane:''`;
-				if (S.SpacePlane >= 2) b5 = ``; shield = `The current heat shielding has been upgraded, reducing the likelihood of heat damage during reentry.`;
+			if (S.SpacePlane >= 1) {
+				const text10 = `<br>&nbsp;''Spaceplane:''`;
+				if (S.SpacePlane >= 2) b5 = ``;
+				shield = `The current heat shielding has been upgraded, reducing the likelihood of heat damage during reentry.`;
 				if (S.SpacePlane >= 3) engine2 = ` and liquid rocket engines in orbit that can reach an equivalent Mach 18`;
 				if (S.SpacePlane >= 4) camera = `A state-of-the-art camera has been installed in the underbelly that takes incredibly high resolution photos, but requires the frictionless environment of space to focus.`;
 				if (S.SpacePlane >= 5) efficiency = `Tweaks to the engines have increased fuel efficiency to the point where midflight refueling is no longer necessary.`;
@@ -907,56 +1390,77 @@ window.UnitText = function(input) {
 				if (S.SpacePlane >= 7) drag = `Miraculous advances in aerodynamics and materials allow frictionless flight, even while in the atmosphere.`;
 				if (S.SpacePlane >= 8) crew = `Increased the crew comfort and life support systems to increase operational time.`;
 				if (S.SpacePlane >= 9) skin = `Replaced the underbelly skin with a chameleon kit, matching the color to the sky above it.`;
-				if (S.SpacePlane >= 10) engine20 = `experimental scramjet engines in the atmosphere that can reach Mach 15`; engine2 = ` and liquid rocket engines in orbit that can reach an equivalent Mach 25`;
+				if (S.SpacePlane >= 10) engine20 = `experimental scramjet engines in the atmosphere that can reach Mach 15`;
+				engine2 = ` and liquid rocket engines in orbit that can reach an equivalent Mach 25`;
 				return `${text10} A prototype spaceplane ${b5} rests in the hangar, its black fuselage gleaming. The craft is powered by ${engine20}${engine2}. ${efficiency} ${shield} ${camera} ${camera2} ${drag} ${crew} ${skin}`;
 			}
 			break;
 		case 'GunS':
-			if(S.GunS >= 1) { const text11 = `<br>&nbsp;''Gunship:''`;
-				if (S.GunS >= 2) b4 = `Infrared sensors have been added for the gunners to better pick targets.`; activate2 = ``;
-				if (S.GunS >= 3) c2 = `The underside of the aircraft has been better armored against small-arms fire`; countermeasures = `.`;
+			if (S.GunS >= 1) {
+				const text11 = `<br>&nbsp;''Gunship:''`;
+				if (S.GunS >= 2) b4 = `Infrared sensors have been added for the gunners to better pick targets.`;
+				activate2 = ``;
+				if (S.GunS >= 3) c2 = `The underside of the aircraft has been better armored against small-arms fire`;
+				countermeasures = `.`;
 				if (S.GunS >= 4) fuel = `Larger fuel tanks have been installed in the wings and fuselage, allowing the gunship to provide aerial support for longer periods before refueling.`;
-				if (S.GunS >= 5) barrels = `25 mm Gatling cannons`; distance = `; allowing the gunship to eliminate infantry`; DFA = ` and light vehicles from above`; autocannon = ` and a 40 mm autocannon are mounted on`;
+				if (S.GunS >= 5) barrels = `25 mm Gatling cannons`;
+				distance = `; allowing the gunship to eliminate infantry`;
+				DFA = ` and light vehicles from above`;
+				autocannon = ` and a 40 mm autocannon are mounted on`;
 				// eslint-disable-next-line camelcase
 				if (S.GunS >= 6) GS_Speed = `The engines have been replaced, allowing both faster travel to a target, and slower travel around a target.`;
 				if (S.GunS >= 7) countermeasures = `; and multi-spectrum countermeasures have been installed to protect against guided missiles.`;
 				if (S.GunS >= 8) b4 = `Upgraded multi-spectrum sensors can clearly depict targets even with IR shielding.`;
 				if (S.GunS >= 9) ammunition = `The ammunition storage has been increased, only slightly depriving loaders of a place to sit.`;
-				if (S.GunS >= 10) DFA = `; both light and heavy vehicles, and most enemy cover from above`; autocannon = `; a 40 mm autocannon, and a 105 mm howitzer are mounted on`;
+				if (S.GunS >= 10) DFA = `; both light and heavy vehicles, and most enemy cover from above`;
+				autocannon = `; a 40 mm autocannon, and a 105 mm howitzer are mounted on`;
 				// eslint-disable-next-line camelcase
 				return `${text11} A large gunship ${activate2} is being refueled in the hangar. ${barrels}${autocannon} the port side of the fuselage${distance}${DFA}. ${b4} ${ammunition} ${GS_Speed} ${c2}${countermeasures} ${fuel}`;
 			}
 			break;
 		case 'sat':
-			if (S.Satellite.lv >= 1) { const text12 = `<br>&nbsp;''Satellite:''`;
+			if (S.Satellite.lv >= 1) {
+				const text12 = `<br>&nbsp;''Satellite:''`;
 				if (S.Satellite.lv >= 2)
-					if (V.SF.Squad.Satellite.InOrbit < 1) loc1 = `The satellite is being worked on in the Launch Bay.`; else loc1 = `The satellite is in geosynchronous orbit, far above the arcology.`; gyro = `A suite of sensors have been installed to ensure the satellite can detect attitude and orbital altitude.`;
+					if (V.SF.Squad.Satellite.InOrbit < 1) loc1 = `The satellite is being worked on in the Launch Bay.`;
+					else loc1 = `The satellite is in geosynchronous orbit, far above the arcology.`;
+				gyro = `A suite of sensors have been installed to ensure the satellite can detect attitude and orbital altitude.`;
 				if (S.Satellite.lv >= 3) telemetry = `Telemetry systems have been installed to communicate with the satellite in orbit, with strong encryption measures.`;
 				if (S.Satellite.lv >= 4) thrusters = `Thrusters have been installed to control satellite attitude and orbit.`;
-				if (S.Satellite.lv >= 5) solar = `A massive folding solar panel array, combined with the latest in battery technology allow the satellite to store an enormous amount of energy relatively quickly.`; surviv = `Enough of the satellite has been finished that it can expect to survive for a significant period of time in space.`;
-				if (S.Satellite.lv >= 6) laser1 = `A laser cannon has been mounted facing the earth, capable of cutting through steel in seconds`; heat = ` while generating a large amount of heat.`;
+				if (S.Satellite.lv >= 5) solar = `A massive folding solar panel array, combined with the latest in battery technology allow the satellite to store an enormous amount of energy relatively quickly.`;
+				surviv = `Enough of the satellite has been finished that it can expect to survive for a significant period of time in space.`;
+				if (S.Satellite.lv >= 6) laser1 = `A laser cannon has been mounted facing the earth, capable of cutting through steel in seconds`;
+				heat = ` while generating a large amount of heat.`;
 				if (S.Satellite.lv >= 7) heat = `. The installed heatsink allows the laser cannon to fire more frequently without damaging the satellite.`;
 				if (S.Satellite.lv >= 8) reactor = `A small, efficient nuclear reactor has been installed to continue generating energy while in the Earth's shadow.`;
 				if (S.Satellite.lv >= 9) lens = `A higher quality and adjustable lens has been installed on the laser, allowing scalpel precision on armor or wide-area blasts on unarmored targets.`;
 				if (S.Satellite.lv >= 10) kin = `A magazine of directable tungsten rods have been mounted to the exterior of the satellite, allowing for kinetic bombardment roughly equal to a series of nuclear blasts.`;
 				return `${text12} ${loc1} ${gyro} ${thrusters} ${telemetry} ${solar} ${reactor} ${surviv} ${laser1}${heat} ${lens} ${kin}`;
-			} break;
+			}
+			break;
 		case 'GR':
-			if (S.GiantRobot >= 1) { const text13 = `<br>&nbsp;''Giant Robot:''`;
-				if (S.GiantRobot >= 2) loc = ``; armor8 = `Armor plating has been mounted over the majority of the robot.`;
+			if (S.GiantRobot >= 1) {
+				const text13 = `<br>&nbsp;''Giant Robot:''`;
+				if (S.GiantRobot >= 2) loc = ``;
+				armor8 = `Armor plating has been mounted over the majority of the robot.`;
 				if (S.GiantRobot >= 3) power = `The robot is now powered by an umbilical cable system instead of bulky and short-lived batteries.`;
 				if (S.GiantRobot >= 4) knife = `a 25 meter plasma sword. The cutting edge uses plasma to melt and cut through targets, reducing the strain on the sword.`;
 				if (S.GiantRobot >= 5) actuator = `The limb actuators have been replaced with a faster and more powerful variant, granting the robot the same.`;
-				if (S.GiantRobot >= 6) cannon1 = `A custom 45 mm Gatling cannon rifle has been developed for ranged use`; ammo2 = `; though it lacks enough ammo storage for a main weapon.`;
+				if (S.GiantRobot >= 6) cannon1 = `A custom 45 mm Gatling cannon rifle has been developed for ranged use`;
+				ammo2 = `; though it lacks enough ammo storage for a main weapon.`;
 				if (S.GiantRobot >= 7) heatsink = `Large heatsinks have been installed out of the back to solve a massive overheating problem. These heatsinks resemble wings, and tend to glow red with heat when in heavy use.`;
-				if (S.GiantRobot >= 8) armor8 = ``; actuator = `Final actuator tweaks have allowed for the addition of exceptionally thick armor without any loss in speed or power.`;
+				if (S.GiantRobot >= 8) armor8 = ``;
+				actuator = `Final actuator tweaks have allowed for the addition of exceptionally thick armor without any loss in speed or power.`;
 				if (S.GiantRobot >= 9) ammo2 = `; with spare ammunition drums kept along the robot's waist.`;
 				if (S.GiantRobot >= 10) missile = `Missile pods have been mounted on the shoulders.`;
 				return `${text13} A prototype giant robot ${loc} rests in a gantry along the side of the arcology. The robot is as tall as a medium-sized office building, focusing on speed over other factors. ${power} ${armor8} ${actuator} ${heatsink} The main armament is ${knife} ${cannon1}${ammo2} ${missile}`;
-			} break;
+			}
+			break;
 		case 'ms':
-			if (S.MissileSilo >= 1) { const text14 = `<br>&nbsp;''Cruise Missile:''`;
-				if (S.MissileSilo >= 2) b2 = `a modern missile`; c8 = `; tipped with a conventional warhead`;
+			if (S.MissileSilo >= 1) {
+				const text14 = `<br>&nbsp;''Cruise Missile:''`;
+				if (S.MissileSilo >= 2) b2 = `a modern missile`;
+				c8 = `; tipped with a conventional warhead`;
 				if (S.MissileSilo >= 3) d1 = `The launch systems have been overhauled, allowing a launch within seconds of an attack order being given.`;
 				if (S.MissileSilo >= 4) e1 = `The missile engines have been tweaked, giving them a greater range.`;
 				if (S.MissileSilo >= 5) f1 = `A passive radar has been installed, allowing the missile to follow moving targets.`;
@@ -969,9 +1473,12 @@ window.UnitText = function(input) {
 			}
 			break;
 		case 'AC':
-			if (S.AircraftCarrier >= 1) { const text15 = `<br>&nbsp;''Aircraft Carrier:''`;
-				if (V.week % 6 === 0) loc2 = `moored to the pier in the Naval Yard`; else loc2 = `patrolling the waters near ${V.arcologies[0].name}`;
-				if (S.AircraftCarrier >= 2) radar = `The island's radar and comms have been improved.`; recom1 = ``;
+			if (S.AircraftCarrier >= 1) {
+				const text15 = `<br>&nbsp;''Aircraft Carrier:''`;
+				if (V.week % 6 === 0) loc2 = `moored to the pier in the Naval Yard`;
+				else loc2 = `patrolling the waters near ${V.arcologies[0].name}`;
+				if (S.AircraftCarrier >= 2) radar = `The island's radar and comms have been improved.`;
+				recom1 = ``;
 				if (S.AircraftCarrier >= 3) AAG = `The antiair guns have been updated to automatically track and predict enemy aircraft movement.`;
 				if (S.AircraftCarrier >= 4) jets = `Modern strike jets with state-of-the-art armaments`;
 				if (S.AircraftCarrier >= 5) prop = `The propellers have been redesigned, granting greater speed with less noise.`;
@@ -984,12 +1491,16 @@ window.UnitText = function(input) {
 			}
 			break;
 		case 'Sub':
-			if (S.Sub >= 1) { const text16 = `<br>&nbsp;''Submarine:''`;
-				if (S.Sub >= 2) recom = ``; reactor0 = `A nuclear reactor provides power`; reactor1 = `; but because oxygen is still kept in pressurized canisters the sub must frequently surface to replenish its oxygen stocks.`;
+			if (S.Sub >= 1) {
+				const text16 = `<br>&nbsp;''Submarine:''`;
+				if (S.Sub >= 2) recom = ``;
+				reactor0 = `A nuclear reactor provides power`;
+				reactor1 = `; but because oxygen is still kept in pressurized canisters the sub must frequently surface to replenish its oxygen stocks.`;
 				if (S.Sub >= 3) reactor1 = ` and an oxygen generator pulls Oâ‚‚ from the surrounding seawater, allowing the submarine to remain underwater for months if necessary.`;
 				if (S.Sub >= 4) cal = `Calibration of the propulsion systems has reduced the telltale hum of a moving sub to a whisper.`;
 				if (S.Sub >= 5) hull = `The outer hull has been redesigned for hydrodynamics and sonar absorption.`;
-				if (S.Sub >= 6) tubes = `The torpedo tubes have been redesigned for faster loading speeds`; torpedoes = `.`;
+				if (S.Sub >= 6) tubes = `The torpedo tubes have been redesigned for faster loading speeds`;
+				torpedoes = `.`;
 				if (S.Sub >= 7) sonar = `The passive sonar has been finely tuned to detect mechanical noises miles away.`;
 				if (S.Sub >= 8) control = `The control room computers have been upgraded to automate many conn duties.`;
 				if (S.Sub >= 9) torpedoes = `and launch more agile torpedoes.`;
@@ -998,12 +1509,19 @@ window.UnitText = function(input) {
 			}
 			break;
 		case 'HAT':
-			if (S.HAT >= 1) { const text17 = `<br>&nbsp;''Amphibious Transport:''`;
-				if (S.HAT >= 2) skirt = `The skirt has been upgraded to increase durability and improve cushion when traveling over uneven terrain and waves.`; recom2 = `;`;
-				if (S.HAT >= 3) guns = `A minigun`; guns2 = `has been mounted on the front corners of the craft to defend against attackers.`;
-				if (S.HAT >= 4) fans = `The turbines powering the rear fans`; speed = `acceleration and speed.`; turbines = `have been replaced with a more powerful version, allowing greater`;
+			if (S.HAT >= 1) {
+				const text17 = `<br>&nbsp;''Amphibious Transport:''`;
+				if (S.HAT >= 2) skirt = `The skirt has been upgraded to increase durability and improve cushion when traveling over uneven terrain and waves.`;
+				recom2 = `;`;
+				if (S.HAT >= 3) guns = `A minigun`;
+				guns2 = `has been mounted on the front corners of the craft to defend against attackers.`;
+				if (S.HAT >= 4) fans = `The turbines powering the rear fans`;
+				speed = `acceleration and speed.`;
+				turbines = `have been replaced with a more powerful version, allowing greater`;
 				if (S.HAT >= 5) armor10 = `The armor protecting its cargo has been increased.`;
-				if (S.HAT >= 6) tons = `300`; fans = `The turbines powering the rear fans and impeller`; speed = `acceleration, speed, and carrying capacity.`;
+				if (S.HAT >= 6) tons = `300`;
+				fans = `The turbines powering the rear fans and impeller`;
+				speed = `acceleration, speed, and carrying capacity.`;
 				if (S.HAT >= 7) guns = `A minigun and grenade launcher`;
 				if (S.HAT >= 8) ramps = `The loading ramps have been improved, allowing for faster unloading.`;
 				if (S.HAT >= 9) HATframe = `The frame has been widened and reinforced, allowing for more space on the deck.`;
@@ -1011,16 +1529,16 @@ window.UnitText = function(input) {
 				return `${text17} An air cushion transport vehicle, or hovercraft ${recom2} is parked on the pier of the Naval Yard, ready to ferry ${tons} tons of soldiers and vehicles. ${guns} ${guns2} ${fans} ${turbines} ${speed} ${skirt} ${armor10} ${ramps} ${HATframe} ${loadout}`;
 			}
 			break;
-		
+
 	}
-		/* if (V.SF.Facility.Toggle > 0 && V.SF.Facility.Active > 0) { r += `<br><br>''${V.SF.Facility.Caps}:''`;
-			if (passage() === "Firebase") {
-				r += `<br>[[Enter the building|<<= SFReport()>>][]]`;
-			}
-			} else if (passage() === "SF_Report") {
-				<<include "SF_.SupportFacilityReport">>
-			}
-		}*/
+	/* if (V.SF.Facility.Toggle > 0 && V.SF.Facility.Active > 0) { r += `<br><br>''${V.SF.Facility.Caps}:''`;
+		if (passage() === "Firebase") {
+			r += `<br>[[Enter the building|<<= SFReport()>>][]]`;
+		}
+		} else if (passage() === "SF_Report") {
+			<<include "SF_.SupportFacilityReport">>
+		}
+	}*/
 };
 
 /* window.FSIntegrationMenu = function() {
diff --git a/src/endWeek/saChoosesOwnClothes.js b/src/endWeek/saChoosesOwnClothes.js
index 7c8177caa9197a0e1727ae633b0df099d77df770..4c8ba1d7e47d5327edeab2a7140b4587acb5daec 100644
--- a/src/endWeek/saChoosesOwnClothes.js
+++ b/src/endWeek/saChoosesOwnClothes.js
@@ -1,4 +1,4 @@
-window.saChoosesOwnClothes = (function() {
+window.saChoosesOwnClothes = (function () {
 	"use strict";
 	let V;
 	let player;
@@ -110,7 +110,10 @@ window.saChoosesOwnClothes = (function() {
 
 		if (slave.fetish === "mindbroken") {
 			if (V.arcologies[0].FSChattelReligionist > 0) {
-				selection = {text: `${he} commonly sees others wearing chattel habits and is drawn to doing so ${himself}.`, clothes: "a chattel habit"};
+				selection = {
+					text: `${he} commonly sees others wearing chattel habits and is drawn to doing so ${himself}.`,
+					clothes: "a chattel habit"
+				};
 			} else {
 				clothing.push("panties");
 				if (V.arcologies[0].FSEgyptianRevivalist > 0) {
@@ -151,521 +154,1193 @@ window.saChoosesOwnClothes = (function() {
 				chosenClothing = jsEither(clothing);
 				switch (chosenClothing) {
 					case "egyptian":
-						selection = {text: `${he} commonly sees others wearing nothing but jewelry and is drawn to doing so ${himself}.`, clothes: "slutty jewelry"};
+						selection = {
+							text: `${he} commonly sees others wearing nothing but jewelry and is drawn to doing so ${himself}.`,
+							clothes: "slutty jewelry"
+						};
 						break;
 					case "roman":
-						selection = {text: `${he} commonly sees others wearing togas and is drawn to doing so ${himself}.`, clothes: "a toga"};
+						selection = {
+							text: `${he} commonly sees others wearing togas and is drawn to doing so ${himself}.`,
+							clothes: "a toga"
+						};
 						break;
 					case "aztec":
-						selection = {text: `${he} commonly sees others wearing huipils and is drawn to doing so ${himself}.`, clothes: "a huipil"};
+						selection = {
+							text: `${he} commonly sees others wearing huipils and is drawn to doing so ${himself}.`,
+							clothes: "a huipil"
+						};
 						break;
 					case "edo":
-						selection = {text: `${he} commonly sees others wearing kimonos and is drawn to doing so ${himself}.`, clothes: "a kimono"};
+						selection = {
+							text: `${he} commonly sees others wearing kimonos and is drawn to doing so ${himself}.`,
+							clothes: "a kimono"
+						};
 						break;
 					case "arabic":
-						selection = {text: `${he} commonly sees others wearing silk and is drawn to doing so ${himself}.`, clothes: "harem gauze"};
+						selection = {
+							text: `${he} commonly sees others wearing silk and is drawn to doing so ${himself}.`,
+							clothes: "harem gauze"
+						};
 						break;
 					case "chinese":
-						selection = {text: `${he} commonly sees others wearing qipaos and is drawn to doing so ${himself}.`, clothes: "a slutty qipao"};
+						selection = {
+							text: `${he} commonly sees others wearing qipaos and is drawn to doing so ${himself}.`,
+							clothes: "a slutty qipao"
+						};
 						break;
 					case "genderFund":
 						if (jsRandom(1, 2) === 1) {
-							selection = {text: `${he} commonly sees cheerleaders around and instinctually follows along.`, clothes: jsEither(["a cheerleader outfit", "a schoolgirl outfit"])};
+							selection = {
+								text: `${he} commonly sees cheerleaders around and instinctually follows along.`,
+								clothes: jsEither(["a cheerleader outfit", "a schoolgirl outfit"])
+							};
 						} else {
-							selection = {text: `${he} commonly sees bunnies around and instinctually follows along.`, clothes: "a bunny outfit"};
+							selection = {
+								text: `${he} commonly sees bunnies around and instinctually follows along.`,
+								clothes: "a bunny outfit"
+							};
 						}
 						break;
 					case "paternalist":
-						selection = {text: `${he} commonly sees others wearing normal clothing and is drawn to doing so ${himself}.`, clothes: "conservative clothing"};
+						selection = {
+							text: `${he} commonly sees others wearing normal clothing and is drawn to doing so ${himself}.`,
+							clothes: "conservative clothing"
+						};
 						break;
 					case "degradationist":
-						selection = {text: `${he} commonly sees others wearing chains and is drawn to doing so ${himself}.`, clothes: jsEither(["chains", "shibari ropes", "uncomfortable straps"])};
+						selection = {
+							text: `${he} commonly sees others wearing chains and is drawn to doing so ${himself}.`,
+							clothes: jsEither(["chains", "shibari ropes", "uncomfortable straps"])
+						};
 						break;
 					case "mature":
-						selection = {text: `${he} commonly sees others wearing suits and is drawn to doing so ${himself}.`, clothes: jsEither(["a nice maid outfit", "nice business attire", "slutty business attire"])};
+						selection = {
+							text: `${he} commonly sees others wearing suits and is drawn to doing so ${himself}.`,
+							clothes: jsEither(["a nice maid outfit", "nice business attire", "slutty business attire"])
+						};
 						break;
 					case "youth":
-						selection = {text: `${he} commonly sees schoolgirls around and instinctually follows along.`, clothes: jsEither(["a cheerleader outfit", "a schoolgirl outfit"])};
+						selection = {
+							text: `${he} commonly sees schoolgirls around and instinctually follows along.`,
+							clothes: jsEither(["a cheerleader outfit", "a schoolgirl outfit"])
+						};
 						break;
 					case "physicalIdealist":
-						selection = {text: `${he} commonly sees naked girls around and seldom realizes they are coated in oil.`, clothes: jsEither(["body oil", "no clothing", "no clothing"])};
+						selection = {
+							text: `${he} commonly sees naked girls around and seldom realizes they are coated in oil.`,
+							clothes: jsEither(["body oil", "no clothing", "no clothing"])
+						};
 						break;
 					case "pastoralist":
-						selection = {text: `${he} commonly sees cowgirls around and instinctually follows along.`, clothes: "Western clothing"};
+						selection = {
+							text: `${he} commonly sees cowgirls around and instinctually follows along.`,
+							clothes: "Western clothing"
+						};
 						break;
 					case "bodyPurist":
-						selection = {text: `${he} commonly sees others wearing tight, form-fitting clothes and is drawn to doing so ${himself}.`, clothes: jsEither(["a comfortable bodysuit", "a halter top dress", "a leotard", "a leotard", "a slave gown", "a string bikini", "clubslut netting", "restrictive latex"])};
+						selection = {
+							text: `${he} commonly sees others wearing tight, form-fitting clothes and is drawn to doing so ${himself}.`,
+							clothes: jsEither(["a comfortable bodysuit", "a halter top dress", "a leotard", "a leotard", "a slave gown", "a string bikini", "clubslut netting", "restrictive latex"])
+						};
 						break;
 					default:
-						selection = {text: `${he} chooses to put on underwear, the reasons lost to ${him}, and moves on.`, clothes: jsEither(["attractive lingerie", "panties"])};
+						selection = {
+							text: `${he} chooses to put on underwear, the reasons lost to ${him}, and moves on.`,
+							clothes: jsEither(["attractive lingerie", "panties"])
+						};
 						break;
 				}
 			}
 		} else if (slave.devotion <= 20) {
-			clothing.push({text: `${He} uses the ability to select outfits to cover up with comfortable cutoffs and a t-shirt.`, clothes: "cutoffs and a t-shirt"});
+			clothing.push({
+				text: `${He} uses the ability to select outfits to cover up with comfortable cutoffs and a t-shirt.`,
+				clothes: "cutoffs and a t-shirt"
+			});
 			if (isItemAccessible("a hijab and blouse")) {
-				clothing.push({text: `${He} uses the ability to select outfits to cover up with the most conservative clothing ${he} can find.`, clothes: "a hijab and blouse"});
+				clothing.push({
+					text: `${He} uses the ability to select outfits to cover up with the most conservative clothing ${he} can find.`,
+					clothes: "a hijab and blouse"
+				});
 			}
 			if (isItemAccessible("conservative clothing")) {
-				clothing.push({text: `${He} uses the ability to select outfits to cover up with the most conservative clothing ${he} can find.`, clothes: "conservative clothing"});
+				clothing.push({
+					text: `${He} uses the ability to select outfits to cover up with the most conservative clothing ${he} can find.`,
+					clothes: "conservative clothing"
+				});
 			}
 			if (isItemAccessible("a kimono")) {
-				clothing.push({text: `${He} uses the ability to select outfits to cover ${himself} with a kimono.`, clothes: "a kimono"});
+				clothing.push({
+					text: `${He} uses the ability to select outfits to cover ${himself} with a kimono.`,
+					clothes: "a kimono"
+				});
 			}
 			if (isItemAccessible("stretch pants and a crop-top")) {
-				clothing.push({text: `${He} uses the ability to select outfits to cover up with stretch pants and a crop-top, though ${he} wishes it didn't have lewd comments printed on it.`, clothes: "stretch pants and a crop-top"});
+				clothing.push({
+					text: `${He} uses the ability to select outfits to cover up with stretch pants and a crop-top, though ${he} wishes it didn't have lewd comments printed on it.`,
+					clothes: "stretch pants and a crop-top"
+				});
 			}
 			selection = jsEither(clothing);
 		} else {
 			if (V.arcologies[0].FSChattelReligionist > 0) {
-				clothing.push({text: `and wears a chattel habit to conform to your arcology's culture.`, clothes: "a chattel habit"});
+				clothing.push({
+					text: `and wears a chattel habit to conform to your arcology's culture.`,
+					clothes: "a chattel habit"
+				});
 			}
 			/* Chooses clothes according to assignment (no exceptions)*/
 			else if (slave.assignment === "be the Nurse") {
 				if (slave.energy > 95 || slave.need > 100) {
-					wardrobeAssignment.push({text: `and wears a slutty nurse outfit to make it clear just how much this nurse needs ${his} daily lay.`, clothes: "a slutty nurse outfit"});
+					wardrobeAssignment.push({
+						text: `and wears a slutty nurse outfit to make it clear just how much this nurse needs ${his} daily lay.`,
+						clothes: "a slutty nurse outfit"
+					});
 				} else if (slave.energy > 80) {
-					wardrobeAssignment.push({text: `and wears a slutty nurse outfit to show off ${his} body and arouse ${his} patients.`, clothes: "a slutty nurse outfit"});
+					wardrobeAssignment.push({
+						text: `and wears a slutty nurse outfit to show off ${his} body and arouse ${his} patients.`,
+						clothes: "a slutty nurse outfit"
+					});
 					if (isItemAccessible("a nice nurse outfit")) {
-						wardrobeAssignment.push({text: `and wears a nice nurse outfit to look professional before ${his} patients.`, clothes: "a nice nurse outfit"});
-					}
-					wardrobeAssignment.push({text: `and wears a slutty nurse outfit to show to a little skin as ${he} cares for ${his} patients.`, clothes: "a slutty nurse outfit"});
+						wardrobeAssignment.push({
+							text: `and wears a nice nurse outfit to look professional before ${his} patients.`,
+							clothes: "a nice nurse outfit"
+						});
+					}
+					wardrobeAssignment.push({
+						text: `and wears a slutty nurse outfit to show to a little skin as ${he} cares for ${his} patients.`,
+						clothes: "a slutty nurse outfit"
+					});
 				} else {
 					if (isItemAccessible("a nice nurse outfit")) {
-						wardrobeAssignment.push({text: `and wears a nice nurse outfit to look professional before ${his} patients.`, clothes: "a nice nurse outfit"});
+						wardrobeAssignment.push({
+							text: `and wears a nice nurse outfit to look professional before ${his} patients.`,
+							clothes: "a nice nurse outfit"
+						});
 					}
-					wardrobeAssignment.push({text: `and wears a slutty nurse outfit to show to a little skin as ${he} cares for ${his} patients.`, clothes: "a slutty nurse outfit"});
+					wardrobeAssignment.push({
+						text: `and wears a slutty nurse outfit to show to a little skin as ${he} cares for ${his} patients.`,
+						clothes: "a slutty nurse outfit"
+					});
 				}
 			} else if (slave.assignment === "be the Madam") {
 				if (slave.energy > 95 || slave.need > 100) {
-					wardrobeAssignment.push({text: `and wears a slutty suit to be certain nothing blocks ${him} from getting the sex ${he} needs.`, clothes: "slutty business attire"});
+					wardrobeAssignment.push({
+						text: `and wears a slutty suit to be certain nothing blocks ${him} from getting the sex ${he} needs.`,
+						clothes: "slutty business attire"
+					});
 				} else if (slave.energy > 80) {
 					if (isItemAccessible("nice business attire")) {
-						wardrobeAssignment.push({text: `and wears a nice suit to show ${he} means business.`, clothes: "nice business attire"});
-					}
-					wardrobeAssignment.push({text: `and wears a slutty suit to entice and arouse while still looking managerial.`, clothes: "slutty business attire"});
-					wardrobeAssignment.push({text: `and wears a slutty suit to entice and arouse while still looking managerial.`, clothes: "slutty business attire"});
+						wardrobeAssignment.push({
+							text: `and wears a nice suit to show ${he} means business.`,
+							clothes: "nice business attire"
+						});
+					}
+					wardrobeAssignment.push({
+						text: `and wears a slutty suit to entice and arouse while still looking managerial.`,
+						clothes: "slutty business attire"
+					});
+					wardrobeAssignment.push({
+						text: `and wears a slutty suit to entice and arouse while still looking managerial.`,
+						clothes: "slutty business attire"
+					});
 				} else {
 					if (isItemAccessible("nice business attire")) {
-						wardrobeAssignment.push({text: `and wears a nice suit to show ${he} means business.`, clothes: "nice business attire"});
+						wardrobeAssignment.push({
+							text: `and wears a nice suit to show ${he} means business.`,
+							clothes: "nice business attire"
+						});
 					}
-					wardrobeAssignment.push({text: `and wears a slutty suit to entice and arouse while still looking managerial.`, clothes: "slutty business attire"});
+					wardrobeAssignment.push({
+						text: `and wears a slutty suit to entice and arouse while still looking managerial.`,
+						clothes: "slutty business attire"
+					});
 				}
 			} else if (slave.assignment === "be the Milkmaid") {
 				if (slave.energy > 95 || slave.need > 100) {
 					if (isItemAccessible("body oil")) {
-						wardrobeAssignment.push({text: `and coats ${himself} with oil to better slip between ${his} cows as ${he} pleasures them.`, clothes: "body oil"});
-					}
-					wardrobeAssignment.push({text: `but goes nude to not be slowed down while moving between ${his} charges.`, clothes: "no clothing"});
+						wardrobeAssignment.push({
+							text: `and coats ${himself} with oil to better slip between ${his} cows as ${he} pleasures them.`,
+							clothes: "body oil"
+						});
+					}
+					wardrobeAssignment.push({
+						text: `but goes nude to not be slowed down while moving between ${his} charges.`,
+						clothes: "no clothing"
+					});
 				} else {
 					if (isItemAccessible("a nice maid outfit")) {
-						wardrobeAssignment.push({text: `and wears a sturdy maid outfit, since anything else might be damaged by ${his} hard work with the cows.`, clothes: "a nice maid outfit"});
-					}
-					wardrobeAssignment.push({text: `and puts on a proper pair of worker's overalls, but not much else.`, clothes: "overalls"});
-					wardrobeAssignment.push({text: `and decides to call it Casual Friday and wear nothing but cutoffs and a t-shirt. Not like the cows will mind.`, clothes: "cutoffs and a t-shirt"});
-					wardrobeAssignment.push({text: `and opts to don a cheerleader outfit to help cheer the cows on.`, clothes: "a cheerleader outfit"});
-					wardrobeAssignment.push({text: `and dresses up as a succubus since ${he}'ll be drawing plenty of fluids.`, clothes: "a succubus outfit"});
-					wardrobeAssignment.push({text: `and slips into some spats and a tank top since ${he} feels a workout coming on.`, clothes: "spats and a tank top"});
+						wardrobeAssignment.push({
+							text: `and wears a sturdy maid outfit, since anything else might be damaged by ${his} hard work with the cows.`,
+							clothes: "a nice maid outfit"
+						});
+					}
+					wardrobeAssignment.push({
+						text: `and puts on a proper pair of worker's overalls, but not much else.`,
+						clothes: "overalls"
+					});
+					wardrobeAssignment.push({
+						text: `and decides to call it Casual Friday and wear nothing but cutoffs and a t-shirt. Not like the cows will mind.`,
+						clothes: "cutoffs and a t-shirt"
+					});
+					wardrobeAssignment.push({
+						text: `and opts to don a cheerleader outfit to help cheer the cows on.`,
+						clothes: "a cheerleader outfit"
+					});
+					wardrobeAssignment.push({
+						text: `and dresses up as a succubus since ${he}'ll be drawing plenty of fluids.`,
+						clothes: "a succubus outfit"
+					});
+					wardrobeAssignment.push({
+						text: `and slips into some spats and a tank top since ${he} feels a workout coming on.`,
+						clothes: "spats and a tank top"
+					});
 					if (isItemAccessible("Western clothing")) {
-						wardrobeAssignment.push({text: `and wears an appropriate cowgirl outfit. ${His} bare ass walking past is sure to amuse ${his} charges.`, clothes: "Western clothing"});
+						wardrobeAssignment.push({
+							text: `and wears an appropriate cowgirl outfit. ${His} bare ass walking past is sure to amuse ${his} charges.`,
+							clothes: "Western clothing"
+						});
 					}
 					if (isItemAccessible("stretch pants and a crop-top")) {
-						wardrobeAssignment.push({text: `and slips into some comfy stretch pants to relax as ${he} works the cows.`, clothes: "stretch pants and a crop-top"});
+						wardrobeAssignment.push({
+							text: `and slips into some comfy stretch pants to relax as ${he} works the cows.`,
+							clothes: "stretch pants and a crop-top"
+						});
 					}
 					if (State.variables.cumSlaves > 2) {
-						wardrobeAssignment.push({text: `and wears a slutty nurse outfit to help keep ${his} charges hard.`, clothes: "a slutty nurse outfit"});
-						wardrobeAssignment.push({text: `and wears nothing but sexy lingerie to help keep ${his} charges hard.`, clothes: "attractive lingerie"});
-						wardrobeAssignment.push({text: `and wears the skimpiest bikini on hand to help keep ${his} charges hard.`, clothes: "a string bikini"});
+						wardrobeAssignment.push({
+							text: `and wears a slutty nurse outfit to help keep ${his} charges hard.`,
+							clothes: "a slutty nurse outfit"
+						});
+						wardrobeAssignment.push({
+							text: `and wears nothing but sexy lingerie to help keep ${his} charges hard.`,
+							clothes: "attractive lingerie"
+						});
+						wardrobeAssignment.push({
+							text: `and wears the skimpiest bikini on hand to help keep ${his} charges hard.`,
+							clothes: "a string bikini"
+						});
 						if (isItemAccessible("body oil")) {
-							wardrobeAssignment.push({text: `and coats ${himself} in oil for ${his} charges to savor.`, clothes: "body oil"});
+							wardrobeAssignment.push({
+								text: `and coats ${himself} in oil for ${his} charges to savor.`,
+								clothes: "body oil"
+							});
 						}
 					}
 				}
 			} else if (slave.assignment === "be your Head Girl") {
 				if (isItemAccessible("a military uniform")) {
-					wardrobeAssignment.push({text: `and wears a military uniform to give ${him} that extra touch of authority.`, clothes: "a military uniform"});
+					wardrobeAssignment.push({
+						text: `and wears a military uniform to give ${him} that extra touch of authority.`,
+						clothes: "a military uniform"
+					});
 				}
 				if (isItemAccessible("a schutzstaffel uniform")) {
-					wardrobeAssignment.push({text: `and wears a schutzstaffel uniform to give ${him} that extra touch of authority.`, clothes: "a schutzstaffel uniform"});
-					wardrobeAssignment.push({text: `and wears a slutty schutzstaffel uniform to give ${him} that extra touch of authority.`, clothes: "a slutty schutzstaffel uniform"});
+					wardrobeAssignment.push({
+						text: `and wears a schutzstaffel uniform to give ${him} that extra touch of authority.`,
+						clothes: "a schutzstaffel uniform"
+					});
+					wardrobeAssignment.push({
+						text: `and wears a slutty schutzstaffel uniform to give ${him} that extra touch of authority.`,
+						clothes: "a slutty schutzstaffel uniform"
+					});
 				}
 				if (isItemAccessible("a red army uniform")) {
-					wardrobeAssignment.push({text: `and wears a red army uniform to give ${him} that extra touch of authority.`, clothes: "a red army uniform"});
+					wardrobeAssignment.push({
+						text: `and wears a red army uniform to give ${him} that extra touch of authority.`,
+						clothes: "a red army uniform"
+					});
 				}
 				if (isItemAccessible("a mounty outfit")) {
-					wardrobeAssignment.push({text: `and wears a mounty outfit to give ${him} that extra touch of authority.`, clothes: "a mounty outfit"});
+					wardrobeAssignment.push({
+						text: `and wears a mounty outfit to give ${him} that extra touch of authority.`,
+						clothes: "a mounty outfit"
+					});
 				}
 				if (isItemAccessible("nice business attire")) {
-					wardrobeAssignment.push({text: `and wears a handsome suit to give ${him} that extra touch of authority.`, clothes: "nice business attire"});
+					wardrobeAssignment.push({
+						text: `and wears a handsome suit to give ${him} that extra touch of authority.`,
+						clothes: "nice business attire"
+					});
 				}
 				if (canPenetrate(slave)) {
-					wardrobeAssignment.push({text: `and wears a slutty suit to make it perfectly clear that ${his} dick is ${his} main tool in ${his} job.`, clothes: "slutty business attire"});
+					wardrobeAssignment.push({
+						text: `and wears a slutty suit to make it perfectly clear that ${his} dick is ${his} main tool in ${his} job.`,
+						clothes: "slutty business attire"
+					});
 				} else {
-					wardrobeAssignment.push({text: `and wears a slutty suit to give ${him} an extra touch of authority while keeping ${his} crotch available.`, clothes: "slutty business attire"});
+					wardrobeAssignment.push({
+						text: `and wears a slutty suit to give ${him} an extra touch of authority while keeping ${his} crotch available.`,
+						clothes: "slutty business attire"
+					});
 				}
 			} else if (slave.assignment === "be the Schoolteacher") {
 				if (isItemAccessible("nice business attire")) {
-					wardrobeAssignment.push({text: `and wears a handsome suit to give ${him} that teacherly authority.`, clothes: "nice business attire"});
-				}
-				wardrobeAssignment.push({text: `and wears a slutty suit to give ${him} an air of authority will keeping all eyes focused on ${him}.`, clothes: "slutty business attire"});
-				wardrobeAssignment.push({text: `and wears a schoolgirl outfit to help keep ${his} charges focused on ${him}.`, clothes: "a schoolgirl outfit"});
-				wardrobeAssignment.push({text: `and dresses up as a succubus to give ${his} sex lessons an extra kick.`, clothes: "a succubus outfit"});
+					wardrobeAssignment.push({
+						text: `and wears a handsome suit to give ${him} that teacherly authority.`,
+						clothes: "nice business attire"
+					});
+				}
+				wardrobeAssignment.push({
+					text: `and wears a slutty suit to give ${him} an air of authority will keeping all eyes focused on ${him}.`,
+					clothes: "slutty business attire"
+				});
+				wardrobeAssignment.push({
+					text: `and wears a schoolgirl outfit to help keep ${his} charges focused on ${him}.`,
+					clothes: "a schoolgirl outfit"
+				});
+				wardrobeAssignment.push({
+					text: `and dresses up as a succubus to give ${his} sex lessons an extra kick.`,
+					clothes: "a succubus outfit"
+				});
 				if (isItemAccessible("conservative clothing")) {
-					wardrobeAssignment.push({text: `and wears conservative clothes to not detract from this week's lesson.`, clothes: "conservative clothing"});
+					wardrobeAssignment.push({
+						text: `and wears conservative clothes to not detract from this week's lesson.`,
+						clothes: "conservative clothing"
+					});
 				}
 				if (isItemAccessible("a toga")) {
-					wardrobeAssignment.push({text: `and wraps ${himself} in a toga to model ${himself} after the philosophers of yore.`, clothes: "a toga"});
+					wardrobeAssignment.push({
+						text: `and wraps ${himself} in a toga to model ${himself} after the philosophers of yore.`,
+						clothes: "a toga"
+					});
 				}
 				if (isItemAccessible("a maternity dress") && slave.belly >= 10000) {
-					wardrobeAssignment.push({text: `and settles for a comfortable maternity dress to support ${his} middle while ${he} lectures in front of the class all week.`, clothes: "a maternity dress"});
+					wardrobeAssignment.push({
+						text: `and settles for a comfortable maternity dress to support ${his} middle while ${he} lectures in front of the class all week.`,
+						clothes: "a maternity dress"
+					});
 				}
 			} else if (slave.assignment === "be the Wardeness") {
 				if (isItemAccessible("battledress")) {
-					wardrobeAssignment.push({text: `and dons battledress, the better to intimidate the prisoners.`, clothes: "battledress"});
-				}
-				wardrobeAssignment.push({text: `and slips into a scalemail bikini, the better to intimidate the prisoners.`, clothes: "a scalemail bikini"});
-				wardrobeAssignment.push({text: `and dons a scandalous habit to make it perfectly clear that crossing this nun will result in sexual punishment.`, clothes: "a fallen nuns habit"});
+					wardrobeAssignment.push({
+						text: `and dons battledress, the better to intimidate the prisoners.`,
+						clothes: "battledress"
+					});
+				}
+				wardrobeAssignment.push({
+					text: `and slips into a scalemail bikini, the better to intimidate the prisoners.`,
+					clothes: "a scalemail bikini"
+				});
+				wardrobeAssignment.push({
+					text: `and dons a scandalous habit to make it perfectly clear that crossing this nun will result in sexual punishment.`,
+					clothes: "a fallen nuns habit"
+				});
 				if (isItemAccessible("a military uniform")) {
-					wardrobeAssignment.push({text: `and wears a military uniform to look even more brutal and authoritative.`, clothes: "a military uniform"});
+					wardrobeAssignment.push({
+						text: `and wears a military uniform to look even more brutal and authoritative.`,
+						clothes: "a military uniform"
+					});
 				}
 				if (isItemAccessible("a schutzstaffel uniform")) {
-					wardrobeAssignment.push({text: `and wears a schutzstaffel uniform to look even more brutal and authoritative.`, clothes: "a schutzstaffel uniform"});
-					wardrobeAssignment.push({text: `and wears a slutty schutzstaffel uniform to look even more brutal and authoritative.`, clothes: "a slutty schutzstaffel uniform"});
+					wardrobeAssignment.push({
+						text: `and wears a schutzstaffel uniform to look even more brutal and authoritative.`,
+						clothes: "a schutzstaffel uniform"
+					});
+					wardrobeAssignment.push({
+						text: `and wears a slutty schutzstaffel uniform to look even more brutal and authoritative.`,
+						clothes: "a slutty schutzstaffel uniform"
+					});
 				}
 				if (isItemAccessible("a red army uniform")) {
-					wardrobeAssignment.push({text: `and wears a red army uniform to look even more brutal and authoritative.`, clothes: "a red army uniform"});
+					wardrobeAssignment.push({
+						text: `and wears a red army uniform to look even more brutal and authoritative.`,
+						clothes: "a red army uniform"
+					});
 				}
 				if (isItemAccessible("stretch pants and a crop-top")) {
-					wardrobeAssignment.push({text: `and decides to take it easy by slipping into some stretch pants. They come off just as quickly as they come on, just in case.`, clothes: "stretch pants and a crop-top"});
+					wardrobeAssignment.push({
+						text: `and decides to take it easy by slipping into some stretch pants. They come off just as quickly as they come on, just in case.`,
+						clothes: "stretch pants and a crop-top"
+					});
 				}
 			} else if (slave.assignment === "be the Attendant") {
-				wardrobeAssignment.push({text: `and wears a string bikini, since it's all ${he} can wear that won't be ruined by all the moisture in the spa.`, clothes: "a string bikini"});
+				wardrobeAssignment.push({
+					text: `and wears a string bikini, since it's all ${he} can wear that won't be ruined by all the moisture in the spa.`,
+					clothes: "a string bikini"
+				});
 				if (isItemAccessible("a monokini")) {
-					wardrobeAssignment.push({text: `and wears an one-piece swimsuit, since it's all ${he} can wear that won't be ruined by all the moisture in the spa.`, clothes: "a monokini"});
+					wardrobeAssignment.push({
+						text: `and wears an one-piece swimsuit, since it's all ${he} can wear that won't be ruined by all the moisture in the spa.`,
+						clothes: "a monokini"
+					});
 				}
 				if (isItemAccessible("a one-piece swimsuit")) {
-					wardrobeAssignment.push({text: `and wears a one-piece swimsuit, since it's all ${he} can wear that won't be ruined by all the moisture in the spa.`, clothes: "a one-piece swimsuit"});
+					wardrobeAssignment.push({
+						text: `and wears a one-piece swimsuit, since it's all ${he} can wear that won't be ruined by all the moisture in the spa.`,
+						clothes: "a one-piece swimsuit"
+					});
 				}
 				if (isItemAccessible("a burkini")) {
-					wardrobeAssignment.push({text: `and wears a modest swimsuit, since it's all ${he} can wear that won't be ruined by all the moisture in the spa.`, clothes: "a burkini"});
-				}
-				wardrobeAssignment.push({text: `but decides to go nude, since ${he}'ll be spending so much time in the water.`, clothes: "no clothing"});
+					wardrobeAssignment.push({
+						text: `and wears a modest swimsuit, since it's all ${he} can wear that won't be ruined by all the moisture in the spa.`,
+						clothes: "a burkini"
+					});
+				}
+				wardrobeAssignment.push({
+					text: `but decides to go nude, since ${he}'ll be spending so much time in the water.`,
+					clothes: "no clothing"
+				});
 			} else if (slave.assignment === "rest") {
-				wardrobeAssignment.push({text: `and wears a comfortable t-shirt and cutoffs to relax.`, clothes: "cutoffs and a t-shirt"});
-				wardrobeAssignment.push({text: `and slips into some attractive lingerie to enjoy ${himself} as ${he} unwinds.`, clothes: "attractive lingerie"});
-				wardrobeAssignment.push({text: `and slips into nothing more than a pair of panties.`, clothes: "panties"});
-				wardrobeAssignment.push({text: `but decides that clothing takes too much work and would rather sleep nude.`, clothes: "no clothing"});
+				wardrobeAssignment.push({
+					text: `and wears a comfortable t-shirt and cutoffs to relax.`,
+					clothes: "cutoffs and a t-shirt"
+				});
+				wardrobeAssignment.push({
+					text: `and slips into some attractive lingerie to enjoy ${himself} as ${he} unwinds.`,
+					clothes: "attractive lingerie"
+				});
+				wardrobeAssignment.push({
+					text: `and slips into nothing more than a pair of panties.`,
+					clothes: "panties"
+				});
+				wardrobeAssignment.push({
+					text: `but decides that clothing takes too much work and would rather sleep nude.`,
+					clothes: "no clothing"
+				});
 				if (isItemAccessible("stretch pants and a crop-top")) {
-					wardrobeAssignment.push({text: `and slips into some comfy stretch pants to relax.`, clothes: "stretch pants and a crop-top"});
+					wardrobeAssignment.push({
+						text: `and slips into some comfy stretch pants to relax.`,
+						clothes: "stretch pants and a crop-top"
+					});
 				}
 				if (isItemAccessible("attractive lingerie for a pregnant woman") && slave.belly >= 1500) {
-					wardrobeAssignment.push({text: `and slips into some attractive lingerie to enjoy ${himself} as ${he} unwinds.`, clothes: "attractive lingerie for a pregnant woman"});
+					wardrobeAssignment.push({
+						text: `and slips into some attractive lingerie to enjoy ${himself} as ${he} unwinds.`,
+						clothes: "attractive lingerie for a pregnant woman"
+					});
 				}
 				if (slave.fetish === "submissive") {
-					wardrobeAssignment.push({text: `and decides the best way to relax is tied up nice and tight.`, clothes: "shibari ropes"});
+					wardrobeAssignment.push({
+						text: `and decides the best way to relax is tied up nice and tight.`,
+						clothes: "shibari ropes"
+					});
 				}
 			} else if (slave.assignment === "get milked" || slave.assignment === "work in the dairy") {
-				wardrobeAssignment.push({text: `and wears sturdy lingerie to offer the best support to ${his} sore, milk-filled udders.`, clothes: "attractive lingerie"});
+				wardrobeAssignment.push({
+					text: `and wears sturdy lingerie to offer the best support to ${his} sore, milk-filled udders.`,
+					clothes: "attractive lingerie"
+				});
 				if (isItemAccessible("attractive lingerie for a pregnant woman") && slave.belly >= 1500) {
-					wardrobeAssignment.push({text: `and wears lingerie designed for milky mothers.`, clothes: "attractive lingerie for a pregnant woman"});
+					wardrobeAssignment.push({
+						text: `and wears lingerie designed for milky mothers.`,
+						clothes: "attractive lingerie for a pregnant woman"
+					});
 				}
 				if (isItemAccessible("a maternity dress") && slave.belly >= 10000) {
-					wardrobeAssignment.push({text: `and chooses a maternity dress since it is easy to free ${his} breasts from.`, clothes: "a maternity dress"});
+					wardrobeAssignment.push({
+						text: `and chooses a maternity dress since it is easy to free ${his} breasts from.`,
+						clothes: "a maternity dress"
+					});
 				}
 				if (isItemAccessible("a monokini")) {
-					wardrobeAssignment.push({text: `and chooses a swimsuit that leaves ${his} breasts exposed.`, clothes: "a monokini"});
-				}
-				wardrobeAssignment.push({text: `and puts on a pair of overalls, making sure to leave ${his} breasts exposed.`, clothes: "overalls"});
-				wardrobeAssignment.push({text: `and wears a string bikini for easy access to ${his} udders.`, clothes: "a string bikini"});
-				wardrobeAssignment.push({text: `and decides to wear nothing, since anything ${he}'d wear would just get soaked anyway.`, clothes: "no clothing"});
+					wardrobeAssignment.push({
+						text: `and chooses a swimsuit that leaves ${his} breasts exposed.`,
+						clothes: "a monokini"
+					});
+				}
+				wardrobeAssignment.push({
+					text: `and puts on a pair of overalls, making sure to leave ${his} breasts exposed.`,
+					clothes: "overalls"
+				});
+				wardrobeAssignment.push({
+					text: `and wears a string bikini for easy access to ${his} udders.`,
+					clothes: "a string bikini"
+				});
+				wardrobeAssignment.push({
+					text: `and decides to wear nothing, since anything ${he}'d wear would just get soaked anyway.`,
+					clothes: "no clothing"
+				});
 				if (slave.lactation > 1) {
-					wardrobeAssignment.push({text: `but goes nude. There's no time for clothing, ${his} udders need to be drained now!`, clothes: "no clothing"});
-				}
-				wardrobeAssignment.push({text: `and dons a slutty outfit. If ${his} breasts are going to hang out, might as well wear something to complement them.`, clothes: "a slutty outfit"});
+					wardrobeAssignment.push({
+						text: `but goes nude. There's no time for clothing, ${his} udders need to be drained now!`,
+						clothes: "no clothing"
+					});
+				}
+				wardrobeAssignment.push({
+					text: `and dons a slutty outfit. If ${his} breasts are going to hang out, might as well wear something to complement them.`,
+					clothes: "a slutty outfit"
+				});
 			} else if (slave.assignment === "guard you") {
-				wardrobeAssignment.push({text: `and wears a bodysuit to show off ${his} curves without hindering ${his} deadliness.`, clothes: "a comfortable bodysuit"});
+				wardrobeAssignment.push({
+					text: `and wears a bodysuit to show off ${his} curves without hindering ${his} deadliness.`,
+					clothes: "a comfortable bodysuit"
+				});
 				if (isItemAccessible("a military uniform")) {
-					wardrobeAssignment.push({text: `and wears a military uniform to look the part of the honor guard.`, clothes: "a military uniform"});
+					wardrobeAssignment.push({
+						text: `and wears a military uniform to look the part of the honor guard.`,
+						clothes: "a military uniform"
+					});
 				}
 				if (isItemAccessible("a schutzstaffel uniform")) {
-					wardrobeAssignment.push({text: `and wears a schutzstaffel uniform to look the part of the honor guard.`, clothes: "a schutzstaffel uniform"});
-					wardrobeAssignment.push({text: `and wears a slutty schutzstaffel uniform to look the part of the honor guard.`, clothes: "a slutty schutzstaffel uniform"});
+					wardrobeAssignment.push({
+						text: `and wears a schutzstaffel uniform to look the part of the honor guard.`,
+						clothes: "a schutzstaffel uniform"
+					});
+					wardrobeAssignment.push({
+						text: `and wears a slutty schutzstaffel uniform to look the part of the honor guard.`,
+						clothes: "a slutty schutzstaffel uniform"
+					});
 				}
 				if (isItemAccessible("a red army uniform")) {
-					wardrobeAssignment.push({text: `and wears a red army uniform to look the part of the honor guard.`, clothes: "a red army uniform"});
+					wardrobeAssignment.push({
+						text: `and wears a red army uniform to look the part of the honor guard.`,
+						clothes: "a red army uniform"
+					});
 				}
 				if (isItemAccessible("nice business attire")) {
-					wardrobeAssignment.push({text: `and wears a nice suit to make it clear you mean business.`, clothes: "nice business attire"});
+					wardrobeAssignment.push({
+						text: `and wears a nice suit to make it clear you mean business.`,
+						clothes: "nice business attire"
+					});
 				}
 				if (isItemAccessible("a mounty outfit")) {
-					wardrobeAssignment.push({text: `and wears a mounty outfit to make it clear you mean business.`, clothes: "a mounty outfit"});
-				}
-				wardrobeAssignment.push({text: `and wears a scalemail bikini to make ${himself} look fierce.`, clothes: "a scalemail bikini"});
+					wardrobeAssignment.push({
+						text: `and wears a mounty outfit to make it clear you mean business.`,
+						clothes: "a mounty outfit"
+					});
+				}
+				wardrobeAssignment.push({
+					text: `and wears a scalemail bikini to make ${himself} look fierce.`,
+					clothes: "a scalemail bikini"
+				});
 				if (isItemAccessible("a kimono")) {
-					wardrobeAssignment.push({text: `and wears a nice kimono to add an air of elegance to your presence.`, clothes: "a kimono"});
+					wardrobeAssignment.push({
+						text: `and wears a nice kimono to add an air of elegance to your presence.`,
+						clothes: "a kimono"
+					});
 				}
 			} else {
 				/* Chooses clothes according to assignment (exceptions allowed)*/
 				if (slave.assignment === "recruit girls") {
 					if (isItemAccessible("a mini dress")) {
-						wardrobeAssignment.push({text: `and wears a flattering mini dress to appear sexy and carefree before those desperately seeking a better life.`, clothes: "a mini dress"});
-					}
-					wardrobeAssignment.push({text: `and wears a cutoffs and a t-shirt to appear sexy and carefree before those desperately seeking a better life.`, clothes: "cutoffs and a t-shirt"});
+						wardrobeAssignment.push({
+							text: `and wears a flattering mini dress to appear sexy and carefree before those desperately seeking a better life.`,
+							clothes: "a mini dress"
+						});
+					}
+					wardrobeAssignment.push({
+						text: `and wears a cutoffs and a t-shirt to appear sexy and carefree before those desperately seeking a better life.`,
+						clothes: "cutoffs and a t-shirt"
+					});
 					if (isItemAccessible("nice business attire")) {
-						wardrobeAssignment.push({text: `and wears a nice suit to appear trustworthy before those desperately seeking a better life.`, clothes: "nice business attire"});
-					}
-					wardrobeAssignment.push({text: `and wears a schoolgirl outfit to appear sexy and carefree before those desperately seeking a better life.`, clothes: "a schoolgirl outfit"});
+						wardrobeAssignment.push({
+							text: `and wears a nice suit to appear trustworthy before those desperately seeking a better life.`,
+							clothes: "nice business attire"
+						});
+					}
+					wardrobeAssignment.push({
+						text: `and wears a schoolgirl outfit to appear sexy and carefree before those desperately seeking a better life.`,
+						clothes: "a schoolgirl outfit"
+					});
 					if (isItemAccessible("a ball gown")) {
-						wardrobeAssignment.push({text: `and wears an opulent gown to showcase your wealth before those desperately seeking a better life.`, clothes: "a ball gown"});
-					}
-					wardrobeAssignment.push({text: `and dresses as a succubus to attempt to lure any potential catches.`, clothes: "a succubus outfit"});
+						wardrobeAssignment.push({
+							text: `and wears an opulent gown to showcase your wealth before those desperately seeking a better life.`,
+							clothes: "a ball gown"
+						});
+					}
+					wardrobeAssignment.push({
+						text: `and dresses as a succubus to attempt to lure any potential catches.`,
+						clothes: "a succubus outfit"
+					});
 					if (isItemAccessible("harem gauze")) {
-						wardrobeAssignment.push({text: `and dons ${his} finest silks to showcase the luxuries waiting would-be slaves.`, clothes: "harem gauze"});
+						wardrobeAssignment.push({
+							text: `and dons ${his} finest silks to showcase the luxuries waiting would-be slaves.`,
+							clothes: "harem gauze"
+						});
 					}
 					if (isItemAccessible("stretch pants and a crop-top")) {
-						wardrobeAssignment.push({text: `and wears comfortable stretch pants to and crop-top to appear carefree before those desperately seeking a better life.`, clothes: "stretch pants and a crop-top"});
+						wardrobeAssignment.push({
+							text: `and wears comfortable stretch pants to and crop-top to appear carefree before those desperately seeking a better life.`,
+							clothes: "stretch pants and a crop-top"
+						});
 					}
 					if (isItemAccessible("conservative clothing")) {
-						wardrobeAssignment.push({text: `and wears normal clothing to suggest to those desperately seeking a better life that they can find it here with you.`, clothes: "conservative clothing"});
+						wardrobeAssignment.push({
+							text: `and wears normal clothing to suggest to those desperately seeking a better life that they can find it here with you.`,
+							clothes: "conservative clothing"
+						});
 					}
 				} else if (slave.assignment === "be the DJ") {
-					wardrobeAssignment.push({text: `and wears clubslut netting to look like the perfect easy club girl.`, clothes: "clubslut netting"});
-					wardrobeAssignment.push({text: `and wears cutoffs and a t-shirt to look like the perfect easy club girl.`, clothes: "cutoffs and a t-shirt"});
-					wardrobeAssignment.push({text: `and wears the slutty outfit ${he} can find to look like the perfect easy club girl.`, clothes: "a slutty outfit"});
-					wardrobeAssignment.push({text: `and wears nothing but slutty jewelry since ${he} loves the way it jingles to ${his} moves.`, clothes: "slutty jewelry"});
-					wardrobeAssignment.push({text: `and wears a skin tight bodysuit so nothing gets in the way of ${his} moves.`, clothes: "a comfortable bodysuit"});
+					wardrobeAssignment.push({
+						text: `and wears clubslut netting to look like the perfect easy club girl.`,
+						clothes: "clubslut netting"
+					});
+					wardrobeAssignment.push({
+						text: `and wears cutoffs and a t-shirt to look like the perfect easy club girl.`,
+						clothes: "cutoffs and a t-shirt"
+					});
+					wardrobeAssignment.push({
+						text: `and wears the slutty outfit ${he} can find to look like the perfect easy club girl.`,
+						clothes: "a slutty outfit"
+					});
+					wardrobeAssignment.push({
+						text: `and wears nothing but slutty jewelry since ${he} loves the way it jingles to ${his} moves.`,
+						clothes: "slutty jewelry"
+					});
+					wardrobeAssignment.push({
+						text: `and wears a skin tight bodysuit so nothing gets in the way of ${his} moves.`,
+						clothes: "a comfortable bodysuit"
+					});
 					if (slave.boobs > 1000) {
-						wardrobeAssignment.push({text: `but decides to go naked and let ${his} girls bounce free as ${he} dances.`, clothes: "no clothing"});
+						wardrobeAssignment.push({
+							text: `but decides to go naked and let ${his} girls bounce free as ${he} dances.`,
+							clothes: "no clothing"
+						});
 					}
 					if (isItemAccessible("harem gauze")) {
-						wardrobeAssignment.push({text: `and wears the finest available silks to give ${his} moves a sensual grace.`, clothes: "harem gauze"});
+						wardrobeAssignment.push({
+							text: `and wears the finest available silks to give ${his} moves a sensual grace.`,
+							clothes: "harem gauze"
+						});
 					}
 				} else if (slave.assignment === "be your Concubine") {
-					wardrobeAssignment.push({text: `and goes naked, since it's ${his} honored role to be the chief object of your desire.`, clothes: "no clothing"});
-					wardrobeAssignment.push({text: `and dresses as a slutty nurse as your genitals are always in need of ${his} special treatment.`, clothes: "a slutty nurse outfit"});
-					wardrobeAssignment.push({text: `and dresses as a schoolgirl in the hopes that you teach ${him} how to be a woman.`, clothes: "a schoolgirl outfit"});
-					wardrobeAssignment.push({text: `and dresses as a cheerleader so ${he} may cheer you on as you blow ${his} mind.`, clothes: "a cheerleader outfit"});
+					wardrobeAssignment.push({
+						text: `and goes naked, since it's ${his} honored role to be the chief object of your desire.`,
+						clothes: "no clothing"
+					});
+					wardrobeAssignment.push({
+						text: `and dresses as a slutty nurse as your genitals are always in need of ${his} special treatment.`,
+						clothes: "a slutty nurse outfit"
+					});
+					wardrobeAssignment.push({
+						text: `and dresses as a schoolgirl in the hopes that you teach ${him} how to be a woman.`,
+						clothes: "a schoolgirl outfit"
+					});
+					wardrobeAssignment.push({
+						text: `and dresses as a cheerleader so ${he} may cheer you on as you blow ${his} mind.`,
+						clothes: "a cheerleader outfit"
+					});
 					if (player.dick === 1) {
-						wardrobeAssignment.push({text: `and dresses as a slutty maid as you always come home with a stiff package that needs a thorough polishing.`, clothes: "a slutty maid outfit"});
-					}
-					wardrobeAssignment.push({text: `and, since you personally see that ${he} never goes hungry, ${he} dresses like the sex demoness ${he} is.`, clothes: "a succubus outfit"});
+						wardrobeAssignment.push({
+							text: `and dresses as a slutty maid as you always come home with a stiff package that needs a thorough polishing.`,
+							clothes: "a slutty maid outfit"
+						});
+					}
+					wardrobeAssignment.push({
+						text: `and, since you personally see that ${he} never goes hungry, ${he} dresses like the sex demoness ${he} is.`,
+						clothes: "a succubus outfit"
+					});
 					if (isItemAccessible("attractive lingerie for a pregnant woman") && slave.belly >= 10000 && slave.pregSource === -1) {
-						wardrobeAssignment.push({text: `and chooses attractive lingerie to showcase the body you've given ${him} in the hopes that you ravish ${him}.`, clothes: "attractive lingerie for a pregnant woman"});
+						wardrobeAssignment.push({
+							text: `and chooses attractive lingerie to showcase the body you've given ${him} in the hopes that you ravish ${him}.`,
+							clothes: "attractive lingerie for a pregnant woman"
+						});
 					}
 					if (slave.toyHole === "dick" && canPenetrate(slave)) {
-						wardrobeAssignment.push({text: `and slips into a scalemail bikini so ${he} can act the role of your conqueror as ${he} bends you over.`, clothes: "a scalemail bikini"});
+						wardrobeAssignment.push({
+							text: `and slips into a scalemail bikini so ${he} can act the role of your conqueror as ${he} bends you over.`,
+							clothes: "a scalemail bikini"
+						});
 					}
 				} else if (slave.assignment === "be a subordinate slave") {
-					wardrobeAssignment.push({text: `but gives up and goes naked after the other slaves constantly tear whatever ${he}'s wearing off ${him}.`, clothes: "no clothing"});
+					wardrobeAssignment.push({
+						text: `but gives up and goes naked after the other slaves constantly tear whatever ${he}'s wearing off ${him}.`,
+						clothes: "no clothing"
+					});
 					if (isItemAccessible("Western clothing")) {
-						wardrobeAssignment.push({text: `and chooses a pair of crotchless chaps so your other slaves don't have to waste time undressing ${him}.`, clothes: "Western clothing"});
+						wardrobeAssignment.push({
+							text: `and chooses a pair of crotchless chaps so your other slaves don't have to waste time undressing ${him}.`,
+							clothes: "Western clothing"
+						});
 					}
 					if (slave.fetish === "submissive") {
-						wardrobeAssignment.push({text: `and chooses to slip on a pair of spats and a tank top in the hopes that ${he} gets to be a violated schoolgirl.`, clothes: "spats and a tank top"});
-						wardrobeAssignment.push({text: `and chooses to slip on a schoolgirl outfit in the hope that ${he} gets held down and raped.`, clothes: "a schoolgirl outfit"});
-						wardrobeAssignment.push({text: `and chooses to wear the sluttiest outfit available to make it clear what ${he} wants done to ${him}.`, clothes: "a slutty outfit"});
+						wardrobeAssignment.push({
+							text: `and chooses to slip on a pair of spats and a tank top in the hopes that ${he} gets to be a violated schoolgirl.`,
+							clothes: "spats and a tank top"
+						});
+						wardrobeAssignment.push({
+							text: `and chooses to slip on a schoolgirl outfit in the hope that ${he} gets held down and raped.`,
+							clothes: "a schoolgirl outfit"
+						});
+						wardrobeAssignment.push({
+							text: `and chooses to wear the sluttiest outfit available to make it clear what ${he} wants done to ${him}.`,
+							clothes: "a slutty outfit"
+						});
 					}
 				} else if (slave.assignment === "work a glory hole") {
-					wardrobeAssignment.push({text: `but doesn't bother wearing anything, since no one can see ${his} clothing when ${he}'s immured inside a glory hole.`, clothes: "no clothing"});
+					wardrobeAssignment.push({
+						text: `but doesn't bother wearing anything, since no one can see ${his} clothing when ${he}'s immured inside a glory hole.`,
+						clothes: "no clothing"
+					});
 				} else if (slave.assignment === "take classes" || slave.assignment === "learn in the schoolroom") {
-					wardrobeAssignment.push({text: `and wears a schoolgirl outfit, since it seems most appropriate.`, clothes: "a schoolgirl outfit"});
-					wardrobeAssignment.push({text: `and wears a cheerleader outfit, since ${he} might as well be one of the popular girls.`, clothes: "a cheerleader outfit"});
+					wardrobeAssignment.push({
+						text: `and wears a schoolgirl outfit, since it seems most appropriate.`,
+						clothes: "a schoolgirl outfit"
+					});
+					wardrobeAssignment.push({
+						text: `and wears a cheerleader outfit, since ${he} might as well be one of the popular girls.`,
+						clothes: "a cheerleader outfit"
+					});
 					if (isItemAccessible("conservative clothing")) {
-						wardrobeAssignment.push({text: `and wears normal clothing to not distract from ${his} lessons.`, clothes: "conservative clothing"});
+						wardrobeAssignment.push({
+							text: `and wears normal clothing to not distract from ${his} lessons.`,
+							clothes: "conservative clothing"
+						});
 					}
 				} else if ((slave.assignment === "whore") || (slave.assignment === "work in the brothel")) {
 					if (slave.belly >= 5000 && isItemAccessible("attractive lingerie for a pregnant woman")) {
-						wardrobeAssignment.push({text: `and wears pretty lingerie to show off ${his} merchandise and accentuate ${his} pregnancy while still looking a little classy.`, clothes: "attractive lingerie for a pregnant woman"});
-					}
-					wardrobeAssignment.push({text: `and wears pretty lingerie to show off ${his} merchandise and still look a little classy.`, clothes: "attractive lingerie"});
+						wardrobeAssignment.push({
+							text: `and wears pretty lingerie to show off ${his} merchandise and accentuate ${his} pregnancy while still looking a little classy.`,
+							clothes: "attractive lingerie for a pregnant woman"
+						});
+					}
+					wardrobeAssignment.push({
+						text: `and wears pretty lingerie to show off ${his} merchandise and still look a little classy.`,
+						clothes: "attractive lingerie"
+					});
 					if (isItemAccessible("kitty lingerie")) {
-						wardrobeAssignment.push({text: `and wears pretty lingerie to show off ${his} merchandise and still look a little cute.`, clothes: "kitty lingerie"});
+						wardrobeAssignment.push({
+							text: `and wears pretty lingerie to show off ${his} merchandise and still look a little cute.`,
+							clothes: "kitty lingerie"
+						});
 					}
 					if (isItemAccessible("harem gauze")) {
-						wardrobeAssignment.push({text: `and dresses ${himself} with harem gauze to add an exotic charm to ${his} display.`, clothes: "harem gauze"});
+						wardrobeAssignment.push({
+							text: `and dresses ${himself} with harem gauze to add an exotic charm to ${his} display.`,
+							clothes: "harem gauze"
+						});
 					}
 					if (isItemAccessible("a kimono")) {
-						wardrobeAssignment.push({text: `and wraps ${himself} in a kimono to add some elegance to ${his} display.`, clothes: "a kimono"});
+						wardrobeAssignment.push({
+							text: `and wraps ${himself} in a kimono to add some elegance to ${his} display.`,
+							clothes: "a kimono"
+						});
 					}
 					if (isItemAccessible("a slave gown")) {
-						wardrobeAssignment.push({text: `and adorns ${himself} in fine dress to show off how much of a high class whore ${he} is.`, clothes: "a slave gown"});
-					}
-					wardrobeAssignment.push({text: `and dresses ${himself} in a slutty suit to show ${he}'s in it for the ¤.`, clothes: "slutty business attire"});
+						wardrobeAssignment.push({
+							text: `and adorns ${himself} in fine dress to show off how much of a high class whore ${he} is.`,
+							clothes: "a slave gown"
+						});
+					}
+					wardrobeAssignment.push({
+						text: `and dresses ${himself} in a slutty suit to show ${he}'s in it for the ¤.`,
+						clothes: "slutty business attire"
+					});
 					if (isItemAccessible("a mini dress")) {
-						wardrobeAssignment.push({text: `and wears a flattering mini dress to really strut ${his} stuff.`, clothes: "a mini dress"});
+						wardrobeAssignment.push({
+							text: `and wears a flattering mini dress to really strut ${his} stuff.`,
+							clothes: "a mini dress"
+						});
 					}
 				} else if (slave.assignment === "serve the public" || slave.assignment === "serve in the club") {
-					wardrobeAssignment.push({text: `and wears string lingerie to look fun and fuckable.`, clothes: "a string bikini"});
-					wardrobeAssignment.push({text: `and throws together the sluttiest outfit since if you're going to slut you might as well go all out.`, clothes: "a slutty outfit"});
-					wardrobeAssignment.push({text: `and tosses on a slutty suit that screams ${he} needs a good fuck after a long day.`, clothes: "slutty business attire"});
-					wardrobeAssignment.push({text: `and dresses up as a slutty nurse; ${he} has just the technique to cure penile swelling.`, clothes: "a slutty nurse outfit"});
-					wardrobeAssignment.push({text: `and wears a cheerleader outfit to look energetic and fuckable.`, clothes: "a cheerleader outfit"});
+					wardrobeAssignment.push({
+						text: `and wears string lingerie to look fun and fuckable.`,
+						clothes: "a string bikini"
+					});
+					wardrobeAssignment.push({
+						text: `and throws together the sluttiest outfit since if you're going to slut you might as well go all out.`,
+						clothes: "a slutty outfit"
+					});
+					wardrobeAssignment.push({
+						text: `and tosses on a slutty suit that screams ${he} needs a good fuck after a long day.`,
+						clothes: "slutty business attire"
+					});
+					wardrobeAssignment.push({
+						text: `and dresses up as a slutty nurse; ${he} has just the technique to cure penile swelling.`,
+						clothes: "a slutty nurse outfit"
+					});
+					wardrobeAssignment.push({
+						text: `and wears a cheerleader outfit to look energetic and fuckable.`,
+						clothes: "a cheerleader outfit"
+					});
 					if (isItemAccessible("a bunny outfit")) {
-						wardrobeAssignment.push({text: `and slips into a teddy to add some class to ${his} post.`, clothes: "a bunny outfit"});
-					}
-					wardrobeAssignment.push({text: `and dresses up as a succubus to clearly advertise ${his} promiscuity.`, clothes: "a succubus outfit"});
+						wardrobeAssignment.push({
+							text: `and slips into a teddy to add some class to ${his} post.`,
+							clothes: "a bunny outfit"
+						});
+					}
+					wardrobeAssignment.push({
+						text: `and dresses up as a succubus to clearly advertise ${his} promiscuity.`,
+						clothes: "a succubus outfit"
+					});
 					if (slave.bellyPreg >= 10000) {
-						wardrobeAssignment.push({text: `and struggles into a schoolgirl outfit. ${His} gravid belly just screams that ${he} is a slutty little student who cares more for dick than lessons.`, clothes: "a succubus outfit"});
+						wardrobeAssignment.push({
+							text: `and struggles into a schoolgirl outfit. ${His} gravid belly just screams that ${he} is a slutty little student who cares more for dick than lessons.`,
+							clothes: "a succubus outfit"
+						});
 					}
 				} else if (slave.assignment === "be a servant" || slave.assignment === "work as a servant") {
 					if (slave.energy > 95 || slave.need > 100) {
-						wardrobeAssignment.push({text: `and wears a skimpy maid outfit hoping that someone sneaks up behind ${him} as ${he} works and fulfills ${his} desires.`, clothes: "a slutty maid outfit"});
-						wardrobeAssignment.push({text: `and wears nothing more than an apron in the hopes that someone sneaks up behind ${him} as ${he} works and fulfills ${his} desires.`, clothes: "an apron"});
+						wardrobeAssignment.push({
+							text: `and wears a skimpy maid outfit hoping that someone sneaks up behind ${him} as ${he} works and fulfills ${his} desires.`,
+							clothes: "a slutty maid outfit"
+						});
+						wardrobeAssignment.push({
+							text: `and wears nothing more than an apron in the hopes that someone sneaks up behind ${him} as ${he} works and fulfills ${his} desires.`,
+							clothes: "an apron"
+						});
 					} else if (slave.energy > 80) {
-						wardrobeAssignment.push({text: `and wears a skimpy maid outfit to tempt anyone watching ${his} work.`, clothes: "a slutty maid outfit"});
+						wardrobeAssignment.push({
+							text: `and wears a skimpy maid outfit to tempt anyone watching ${his} work.`,
+							clothes: "a slutty maid outfit"
+						});
 						if (isItemAccessible("a nice maid outfit")) {
-							wardrobeAssignment.push({text: `and wears a sturdy maid outfit, since anything else might be damaged by ${his} hard work around the penthouse.`, clothes: "a nice maid outfit"});
+							wardrobeAssignment.push({
+								text: `and wears a sturdy maid outfit, since anything else might be damaged by ${his} hard work around the penthouse.`,
+								clothes: "a nice maid outfit"
+							});
 						}
-						wardrobeAssignment.push({text: `and wears a skimpy maid outfit to tempt anyone watching ${his} work.`, clothes: "a slutty maid outfit"});
-						wardrobeAssignment.push({text: `and wears nothing more than an apron to tempt anyone watching ${his} work.`, clothes: "an apron"});
+						wardrobeAssignment.push({
+							text: `and wears a skimpy maid outfit to tempt anyone watching ${his} work.`,
+							clothes: "a slutty maid outfit"
+						});
+						wardrobeAssignment.push({
+							text: `and wears nothing more than an apron to tempt anyone watching ${his} work.`,
+							clothes: "an apron"
+						});
 					} else {
 						if (isItemAccessible("a nice maid outfit")) {
-							wardrobeAssignment.push({text: `and wears a sturdy maid outfit, since anything else might be damaged by ${his} hard work around the penthouse.`, clothes: "a nice maid outfit"});
+							wardrobeAssignment.push({
+								text: `and wears a sturdy maid outfit, since anything else might be damaged by ${his} hard work around the penthouse.`,
+								clothes: "a nice maid outfit"
+							});
 						}
-						wardrobeAssignment.push({text: `and wears a skimpy maid outfit to tempt anyone watching ${his} work.`, clothes: "a slutty maid outfit"});
-						wardrobeAssignment.push({text: `and wears nothing more than an apron to tempt anyone watching ${his} work.`, clothes: "an apron"});
+						wardrobeAssignment.push({
+							text: `and wears a skimpy maid outfit to tempt anyone watching ${his} work.`,
+							clothes: "a slutty maid outfit"
+						});
+						wardrobeAssignment.push({
+							text: `and wears nothing more than an apron to tempt anyone watching ${his} work.`,
+							clothes: "an apron"
+						});
 					}
 				}
 
 				/* Chooses clothes according to FS*/
 				if (V.arcologies[0].FSEgyptianRevivalist > 0) {
-					wardrobeFS.push({text: `and complements it with golden bangles, since no clothing is necessary for a sex slave in your warm and sunny arcology.`, clothes: "slutty jewelry"});
+					wardrobeFS.push({
+						text: `and complements it with golden bangles, since no clothing is necessary for a sex slave in your warm and sunny arcology.`,
+						clothes: "slutty jewelry"
+					});
 				} else if (V.arcologies[0].FSRomanRevivalist > 0) {
-					wardrobeFS.push({text: `and wears a toga to take part in your Roman revivalism.`, clothes: "a toga"});
+					wardrobeFS.push({
+						text: `and wears a toga to take part in your Roman revivalism.`,
+						clothes: "a toga"
+					});
 				} else if (V.arcologies[0].FSEdoRevivalist > 0) {
-					wardrobeFS.push({text: `and wears a kimono, overjoyed that such lovely clothing is now appropriate.`, clothes: "a kimono"});
+					wardrobeFS.push({
+						text: `and wears a kimono, overjoyed that such lovely clothing is now appropriate.`,
+						clothes: "a kimono"
+					});
 				} else if (V.arcologies[0].FSArabianRevivalist > 0) {
-					wardrobeFS.push({text: `and wears a harem outfit to look like a slave girl fit for a Sultan.`, clothes: "harem gauze"});
+					wardrobeFS.push({
+						text: `and wears a harem outfit to look like a slave girl fit for a Sultan.`,
+						clothes: "harem gauze"
+					});
 				} else if (V.arcologies[0].FSChineseRevivalist > 0) {
-					wardrobeFS.push({text: `and wears a brief qipao to show off and look Chinese at the same time.`, clothes: "a slutty qipao"});
-					wardrobeFS.push({text: `and wears a long qipao to show off and look Chinese at the same time.`, clothes: "a long qipao"});
+					wardrobeFS.push({
+						text: `and wears a brief qipao to show off and look Chinese at the same time.`,
+						clothes: "a slutty qipao"
+					});
+					wardrobeFS.push({
+						text: `and wears a long qipao to show off and look Chinese at the same time.`,
+						clothes: "a long qipao"
+					});
 				} else if (V.arcologies[0].FSAztecRevivalist > 0) {
-					wardrobeFS.push({text: `and drapes a huipil over ${himself} to fit in with your Aztec revivalism.`, clothes: "a huipil"});
+					wardrobeFS.push({
+						text: `and drapes a huipil over ${himself} to fit in with your Aztec revivalism.`,
+						clothes: "a huipil"
+					});
 				}
 				if (V.arcologies[0].FSGenderFundamentalist > 0) {
-					wardrobeFS.push({text: `and wears a schoolgirl outfit to look like a hot slut.`, clothes: "a schoolgirl outfit"});
-					wardrobeFS.push({text: `and wears a cheerleader outfit to look like a hot slut.`, clothes: "a cheerleader outfit"});
-					wardrobeFS.push({text: `and wears a bunny outfit to look like a slut from the glory days.`, clothes: "a bunny outfit"});
-					wardrobeFS.push({text: `and wears only an apron, making ${him} look like a slutty housewife.`, clothes: "an apron"});
+					wardrobeFS.push({
+						text: `and wears a schoolgirl outfit to look like a hot slut.`,
+						clothes: "a schoolgirl outfit"
+					});
+					wardrobeFS.push({
+						text: `and wears a cheerleader outfit to look like a hot slut.`,
+						clothes: "a cheerleader outfit"
+					});
+					wardrobeFS.push({
+						text: `and wears a bunny outfit to look like a slut from the glory days.`,
+						clothes: "a bunny outfit"
+					});
+					wardrobeFS.push({
+						text: `and wears only an apron, making ${him} look like a slutty housewife.`,
+						clothes: "an apron"
+					});
 					if (slave.bellyPreg >= 5000) {
-						wardrobeFS.push({text: `but decides to wear nothing at all; ${he}'s already pregnant, so ${he} just needs to be barefoot and naked to complete ${his} look.`, clothes: "no clothing"});
+						wardrobeFS.push({
+							text: `but decides to wear nothing at all; ${he}'s already pregnant, so ${he} just needs to be barefoot and naked to complete ${his} look.`,
+							clothes: "no clothing"
+						});
 					}
 				} else if (V.arcologies[0].FSGenderRadicalist > 0) {
-					wardrobeFS.push({text: `and eagerly slips into a skimpy maid outfit so ${he} can take advantage of its short skirt and ${his} lack of underwear`, clothes: "a slutty maid outfit"});
-					wardrobeFS.push({text: `and wears a cheerleader outfit that clearly shows off ${his} ass.`, clothes: "a cheerleader outfit"});
-					wardrobeFS.push({text: `and settles for some sexy succubutt.`, clothes: "a succubus outfit"});
+					wardrobeFS.push({
+						text: `and eagerly slips into a skimpy maid outfit so ${he} can take advantage of its short skirt and ${his} lack of underwear`,
+						clothes: "a slutty maid outfit"
+					});
+					wardrobeFS.push({
+						text: `and wears a cheerleader outfit that clearly shows off ${his} ass.`,
+						clothes: "a cheerleader outfit"
+					});
+					wardrobeFS.push({
+						text: `and settles for some sexy succubutt.`,
+						clothes: "a succubus outfit"
+					});
 				}
 				if (V.arcologies[0].FSPaternalist > 0) {
-					wardrobeFS.push({text: `and wears conservative clothing, as permitted by your paternalism.`, clothes: "conservative clothing"});
+					wardrobeFS.push({
+						text: `and wears conservative clothing, as permitted by your paternalism.`,
+						clothes: "conservative clothing"
+					});
 					if (isItemAccessible("a hijab and blouse") && slave.race === "middle eastern") {
-						wardrobeFS.push({text: `and wears very conservative clothing, as permitted by your paternalism.`, clothes: "a hijab and blouse"});
+						wardrobeFS.push({
+							text: `and wears very conservative clothing, as permitted by your paternalism.`,
+							clothes: "a hijab and blouse"
+						});
 					}
 					if (isItemAccessible("stretch pants and a crop-top")) {
-						wardrobeFS.push({text: `and wears the most comfortable stretch pants ${he} can find.`, clothes: "stretch pants and a crop-top"});
+						wardrobeFS.push({
+							text: `and wears the most comfortable stretch pants ${he} can find.`,
+							clothes: "stretch pants and a crop-top"
+						});
 					}
 				} else if (V.arcologies[0].FSDegradationist > 0) {
-					wardrobeFS.push({text: `and wears chains, to degrade ${himself} as required by your societal goals.`, clothes: "chains"});
-					wardrobeFS.push({text: `and binds ${himself} with a set of uncomfortable straps.`, clothes: "uncomfortable straps"});
-					wardrobeFS.push({text: `and binds ${himself} with a set of uncomfortable ropes.`, clothes: "shibari ropes"});
+					wardrobeFS.push({
+						text: `and wears chains, to degrade ${himself} as required by your societal goals.`,
+						clothes: "chains"
+					});
+					wardrobeFS.push({
+						text: `and binds ${himself} with a set of uncomfortable straps.`,
+						clothes: "uncomfortable straps"
+					});
+					wardrobeFS.push({
+						text: `and binds ${himself} with a set of uncomfortable ropes.`,
+						clothes: "shibari ropes"
+					});
 				}
 				if (V.arcologies[0].FSMaturityPreferentialist > 0) {
 					if (slave.visualAge >= 30) {
 						if (isItemAccessible("nice business attire")) {
-							wardrobeFS.push({text: `and wears a formal suit to look like the ideal older woman.`, clothes: "nice business attire"});
+							wardrobeFS.push({
+								text: `and wears a formal suit to look like the ideal older woman.`,
+								clothes: "nice business attire"
+							});
 						}
-						wardrobeFS.push({text: `and wears a slutty suit to look like the ideal horny older woman.`, clothes: "slutty business attire"});
-						wardrobeFS.push({text: `and wears only an apron to make ${himself} seem more matronly.`, clothes: "an apron"});
+						wardrobeFS.push({
+							text: `and wears a slutty suit to look like the ideal horny older woman.`,
+							clothes: "slutty business attire"
+						});
+						wardrobeFS.push({
+							text: `and wears only an apron to make ${himself} seem more matronly.`,
+							clothes: "an apron"
+						});
 					} else {
 						if (isItemAccessible("nice business attire")) {
-							wardrobeFS.push({text: `and wears a formal suit to look more mature.`, clothes: "nice business attire"});
+							wardrobeFS.push({
+								text: `and wears a formal suit to look more mature.`,
+								clothes: "nice business attire"
+							});
 						}
 						if (isItemAccessible("a Santa dress")) {
-							wardrobeFS.push({text: `and wears a dress referencing a figure of advanced age.`, clothes: "a Santa dress"});
+							wardrobeFS.push({
+								text: `and wears a dress referencing a figure of advanced age.`,
+								clothes: "a Santa dress"
+							});
 						}
-						wardrobeFS.push({text: `and wears only an apron in an attempt to make ${himself} seem more matronly.`, clothes: "an apron"});
+						wardrobeFS.push({
+							text: `and wears only an apron in an attempt to make ${himself} seem more matronly.`,
+							clothes: "an apron"
+						});
 					}
 				} else if (V.arcologies[0].FSYouthPreferentialist > 0) {
-					wardrobeFS.push({text: `and wears a schoolgirl outfit to look younger.`, clothes: "a schoolgirl outfit"});
-					wardrobeFS.push({text: `and wears a cheerleader outfit to look younger and more energetic.`, clothes: "a cheerleader outfit"});
-					wardrobeFS.push({text: `and wears spats and a tank top to look younger and more energetic.`, clothes: "spats and a tank top"});
+					wardrobeFS.push({
+						text: `and wears a schoolgirl outfit to look younger.`,
+						clothes: "a schoolgirl outfit"
+					});
+					wardrobeFS.push({
+						text: `and wears a cheerleader outfit to look younger and more energetic.`,
+						clothes: "a cheerleader outfit"
+					});
+					wardrobeFS.push({
+						text: `and wears spats and a tank top to look younger and more energetic.`,
+						clothes: "spats and a tank top"
+					});
 				}
 				if (V.arcologies[0].FSPhysicalIdealist > 0) {
-					wardrobeFS.push({text: `and coats ${himself} in body oil to show off how ${he}'s part of your physical idealism.`, clothes: "body oil"});
-					wardrobeFS.push({text: `and goes totally nude to show off how ${he}'s part of your physical idealism.`, clothes: "no clothing"});
-					wardrobeFS.push({text: `and slips into a leotard for ${his} next workout.`, clothes: "a leotard"});
-					wardrobeFS.push({text: `and slips into some spats for ${his} next workout.`, clothes: "spats and a tank top"});
+					wardrobeFS.push({
+						text: `and coats ${himself} in body oil to show off how ${he}'s part of your physical idealism.`,
+						clothes: "body oil"
+					});
+					wardrobeFS.push({
+						text: `and goes totally nude to show off how ${he}'s part of your physical idealism.`,
+						clothes: "no clothing"
+					});
+					wardrobeFS.push({
+						text: `and slips into a leotard for ${his} next workout.`,
+						clothes: "a leotard"
+					});
+					wardrobeFS.push({
+						text: `and slips into some spats for ${his} next workout.`,
+						clothes: "spats and a tank top"
+					});
 				} else if (V.arcologies[0].FSHedonisticDecadence > 0) {
-					wardrobeFS.push({text: `and throws on a very casual getup.`, clothes: "stretch pants and a crop-top"});
-					wardrobeFS.push({text: `but decides against putting forth the effort and goes nude.`, clothes: "no clothing"});
+					wardrobeFS.push({
+						text: `and throws on a very casual getup.`,
+						clothes: "stretch pants and a crop-top"
+					});
+					wardrobeFS.push({
+						text: `but decides against putting forth the effort and goes nude.`,
+						clothes: "no clothing"
+					});
 				}
 				if (V.arcologies[0].FSPastoralist > 0) {
-					wardrobeFS.push({text: `and wears Western clothing, since ${he} thinks it fits with pastoralism.`, clothes: "Western clothing"});
-					wardrobeFS.push({text: `and wears overalls that leave ${his} breasts uncovered.`, clothes: "overalls"});
+					wardrobeFS.push({
+						text: `and wears Western clothing, since ${he} thinks it fits with pastoralism.`,
+						clothes: "Western clothing"
+					});
+					wardrobeFS.push({
+						text: `and wears overalls that leave ${his} breasts uncovered.`,
+						clothes: "overalls"
+					});
 					if (isItemAccessible("a monokini")) {
-						wardrobeFS.push({text: `and wears a swimsuit that leaves ${his} breasts uncovered.`, clothes: "a monokini"});
+						wardrobeFS.push({
+							text: `and wears a swimsuit that leaves ${his} breasts uncovered.`,
+							clothes: "a monokini"
+						});
 					}
 					if (isItemAccessible("pasties")) {
-						wardrobeFS.push({text: `and wears nothing more than a pair of pasties over ${his} nipples.`, clothes: "pasties"});
+						wardrobeFS.push({
+							text: `and wears nothing more than a pair of pasties over ${his} nipples.`,
+							clothes: "pasties"
+						});
 					}
 					if (slave.lactation > 0) {
-						wardrobeFS.push({text: `and dresses up as a slutty wet nurse.`, clothes: "a slutty nurse outfit"});
+						wardrobeFS.push({
+							text: `and dresses up as a slutty wet nurse.`,
+							clothes: "a slutty nurse outfit"
+						});
 					}
-					wardrobeFS.push({text: `but decides to let ${his} breasts be free. Clothes will just get in the way.`, clothes: "no clothing"});
+					wardrobeFS.push({
+						text: `but decides to let ${his} breasts be free. Clothes will just get in the way.`,
+						clothes: "no clothing"
+					});
 				}
 				if (V.arcologies[0].FSBodyPurist > 0) {
-					wardrobeFS.push({text: `and wears a leotard to show off the purity of ${his} body.`, clothes: "a leotard"});
-					wardrobeFS.push({text: `but decides ${his} body is too nice to hide with clothing.`, clothes: "no clothing"});
+					wardrobeFS.push({
+						text: `and wears a leotard to show off the purity of ${his} body.`,
+						clothes: "a leotard"
+					});
+					wardrobeFS.push({
+						text: `but decides ${his} body is too nice to hide with clothing.`,
+						clothes: "no clothing"
+					});
 					if (isItemAccessible("body oil")) {
-						wardrobeFS.push({text: `and coats ${his} pure body in oil to make it stand out.`, clothes: "body oil"});
+						wardrobeFS.push({
+							text: `and coats ${his} pure body in oil to make it stand out.`,
+							clothes: "body oil"
+						});
 					}
 				} else if (V.arcologies[0].FSTransformationFetishist > 0) {
-					wardrobeFS.push({text: `and decides squeezing into a latex suit will only complement ${his} unnatural appearance.`, clothes: "restrictive latex"});
-					wardrobeFS.push({text: `and decides to go nude, ensuring everyone sees ${his} assets.`, clothes: "no clothing"});
+					wardrobeFS.push({
+						text: `and decides squeezing into a latex suit will only complement ${his} unnatural appearance.`,
+						clothes: "restrictive latex"
+					});
+					wardrobeFS.push({
+						text: `and decides to go nude, ensuring everyone sees ${his} assets.`,
+						clothes: "no clothing"
+					});
 					if (isItemAccessible("body oil")) {
-						wardrobeFS.push({text: `and coats ${his} assets in body oil to give them some extra shine.`, clothes: "body oil"});
+						wardrobeFS.push({
+							text: `and coats ${his} assets in body oil to give them some extra shine.`,
+							clothes: "body oil"
+						});
 					}
 				}
 				if (V.arcologies[0].FSAssetExpansioninst > 0) {
-					wardrobeFS.push({text: `and decides to dress up like a young man's wet dream.`, clothes: "a succubus outfit"});
-					wardrobeFS.push({text: `and decides to wear a skimpy bikini to make ${his} assets look even larger.`, clothes: "a string bikini"});
-					wardrobeFS.push({text: `and decides to throw together a slutty outfit that highlight ${his} assets.`, clothes: "a slutty outfit"});
+					wardrobeFS.push({
+						text: `and decides to dress up like a young man's wet dream.`,
+						clothes: "a succubus outfit"
+					});
+					wardrobeFS.push({
+						text: `and decides to wear a skimpy bikini to make ${his} assets look even larger.`,
+						clothes: "a string bikini"
+					});
+					wardrobeFS.push({
+						text: `and decides to throw together a slutty outfit that highlight ${his} assets.`,
+						clothes: "a slutty outfit"
+					});
 					if (isItemAccessible("a monokini")) {
-						wardrobeFS.push({text: `and decides to wear a monokini that clings to the assets it actually does conceal.`, clothes: "a monokini"});
+						wardrobeFS.push({
+							text: `and decides to wear a monokini that clings to the assets it actually does conceal.`,
+							clothes: "a monokini"
+						});
 					}
 				} else if (V.arcologies[0].FSSlimnessEnthusiast > 0) {
 					if (slave.boobs < 300) {
-						wardrobeFS.push({text: `and wears a string bikini to show off just how flat ${he} is.`, clothes: "a string bikini"});
+						wardrobeFS.push({
+							text: `and wears a string bikini to show off just how flat ${he} is.`,
+							clothes: "a string bikini"
+						});
 						if (isItemAccessible("a monokini")) {
-							wardrobeFS.push({text: `and wears a monokini that leaves ${his} flat chest bare.`, clothes: "a monokini"});
+							wardrobeFS.push({
+								text: `and wears a monokini that leaves ${his} flat chest bare.`,
+								clothes: "a monokini"
+							});
 						}
-						wardrobeFS.push({text: `and wears only panties, leaving ${his} flat chest bare.`, clothes: "panties"});
+						wardrobeFS.push({
+							text: `and wears only panties, leaving ${his} flat chest bare.`,
+							clothes: "panties"
+						});
 					}
 					if (slave.boobs < 600 && slave.butt < 3) {
-						wardrobeFS.push({text: `and wears a leotard to show off ${his} lithe body.`, clothes: "a leotard"});
-						wardrobeFS.push({text: `and wears a form fitting bodysuit to show off ${his} lithe figure.`, clothes: "a comfortable bodysuit"});
-						wardrobeFS.push({text: `and wears spats to hug ${his} tight butt.`, clothes: "spats and a tank top"});
-						wardrobeFS.push({text: `and wears an apron that covers ${his} front while leaving ${his} rear free.`, clothes: "an apron"});
+						wardrobeFS.push({
+							text: `and wears a leotard to show off ${his} lithe body.`,
+							clothes: "a leotard"
+						});
+						wardrobeFS.push({
+							text: `and wears a form fitting bodysuit to show off ${his} lithe figure.`,
+							clothes: "a comfortable bodysuit"
+						});
+						wardrobeFS.push({
+							text: `and wears spats to hug ${his} tight butt.`,
+							clothes: "spats and a tank top"
+						});
+						wardrobeFS.push({
+							text: `and wears an apron that covers ${his} front while leaving ${his} rear free.`,
+							clothes: "an apron"
+						});
 					} else {
-						wardrobeFS.push({text: `and squeezes into a form fitting bodysuit in the hopes that it squishes down ${his} assets.`, clothes: "restrictive latex"});
+						wardrobeFS.push({
+							text: `and squeezes into a form fitting bodysuit in the hopes that it squishes down ${his} assets.`,
+							clothes: "restrictive latex"
+						});
 					}
 				}
 				if (V.arcologies[0].FSSupremacist > 0) {
 					if (V.arcologies[0].FSSupremacistRace === "white") {
 						if (isItemAccessible("a dirndl")) {
-							wardrobeFS.push({text: `and wears one of the beautiful folk costumes of the white race.`, clothes: "a dirndl"});
+							wardrobeFS.push({
+								text: `and wears one of the beautiful folk costumes of the white race.`,
+								clothes: "a dirndl"
+							});
 						}
 						if (isItemAccessible("lederhosen")) {
-							wardrobeFS.push({text: `and wears one of the beautiful folk costumes of the white race.`, clothes: "lederhosen"});
+							wardrobeFS.push({
+								text: `and wears one of the beautiful folk costumes of the white race.`,
+								clothes: "lederhosen"
+							});
 						}
 					} else if (V.arcologies[0].FSSupremacistRace === "asian") {
 						if (isItemAccessible("a biyelgee costume")) {
-							wardrobeFS.push({text: `and wears one of the beautiful folk costumes of the asian race.`, clothes: "a biyelgee costume"});
+							wardrobeFS.push({
+								text: `and wears one of the beautiful folk costumes of the asian race.`,
+								clothes: "a biyelgee costume"
+							});
 						}
 						if (isItemAccessible("a long qipao")) {
-							wardrobeFS.push({text: `and wears one of the beautiful folk costumes of the asian race.`, clothes: "a long qipao"});
+							wardrobeFS.push({
+								text: `and wears one of the beautiful folk costumes of the asian race.`,
+								clothes: "a long qipao"
+							});
 						}
 						if (isItemAccessible("a kimono")) {
-							wardrobeAssignment.push({text: `and wears one of the beautiful folk costumes of the asian race.`, clothes: "a kimono"});
+							wardrobeAssignment.push({
+								text: `and wears one of the beautiful folk costumes of the asian race.`,
+								clothes: "a kimono"
+							});
 						}
 					}
 				}
@@ -673,261 +1348,546 @@ window.saChoosesOwnClothes = (function() {
 				/* Chooses clothes according to fetishes, quirks, etc.*/
 				if (slave.attrXY > 70) {
 					if (slave.attrKnown === 1) {
-						wardrobeTastes.push({text: `and wears a schoolgirl outfit to show off a some T&A to attract boys.`, clothes: "a schoolgirl outfit"});
-						wardrobeTastes.push({text: `and wears nothing but pretty lingerie to attract boys.`, clothes: "attractive lingerie"});
-						wardrobeTastes.push({text: `and selects a slutty outfit that's sure to have men drooling.`, clothes: "a slutty outfit"});
+						wardrobeTastes.push({
+							text: `and wears a schoolgirl outfit to show off a some T&A to attract boys.`,
+							clothes: "a schoolgirl outfit"
+						});
+						wardrobeTastes.push({
+							text: `and wears nothing but pretty lingerie to attract boys.`,
+							clothes: "attractive lingerie"
+						});
+						wardrobeTastes.push({
+							text: `and selects a slutty outfit that's sure to have men drooling.`,
+							clothes: "a slutty outfit"
+						});
 						if (slave.butt > 3) {
-							wardrobeTastes.push({text: `and slips on some cutoffs that are sure to have men checking out ${his} ass.`, clothes: "cutoffs and a t-shirt"});
+							wardrobeTastes.push({
+								text: `and slips on some cutoffs that are sure to have men checking out ${his} ass.`,
+								clothes: "cutoffs and a t-shirt"
+							});
 						}
 						if (isItemAccessible("a bunny outfit")) {
-							wardrobeTastes.push({text: `and slips into a bunny outfit that ${he} knows will have men lining up.`, clothes: "a bunny outfit"});
+							wardrobeTastes.push({
+								text: `and slips into a bunny outfit that ${he} knows will have men lining up.`,
+								clothes: "a bunny outfit"
+							});
 						}
 						if (slave.boobs > 800) {
-							wardrobeTastes.push({text: `and dresses up as a busty succubus that pulls eyes to ${his} chest and leaves pants feeling tight.`, clothes: "a succubus outfit"});
+							wardrobeTastes.push({
+								text: `and dresses up as a busty succubus that pulls eyes to ${his} chest and leaves pants feeling tight.`,
+								clothes: "a succubus outfit"
+							});
 						}
 					} else {
-						wardrobeTastes.push({text: `and selects a schoolgirl outfit that shows off some T&A.`, clothes: "a schoolgirl outfit"});
-						wardrobeTastes.push({text: `and wears pretty lingerie that shows off ${his} body.`, clothes: "attractive lingerie"});
-						wardrobeTastes.push({text: `and selects a slutty outfit that's sure to draw attention.`, clothes: "a slutty outfit"});
+						wardrobeTastes.push({
+							text: `and selects a schoolgirl outfit that shows off some T&A.`,
+							clothes: "a schoolgirl outfit"
+						});
+						wardrobeTastes.push({
+							text: `and wears pretty lingerie that shows off ${his} body.`,
+							clothes: "attractive lingerie"
+						});
+						wardrobeTastes.push({
+							text: `and selects a slutty outfit that's sure to draw attention.`,
+							clothes: "a slutty outfit"
+						});
 						if (slave.butt > 3) {
-							wardrobeTastes.push({text: `and slips on some cutoffs that shows off ${his} ass.`, clothes: "cutoffs and a t-shirt"});
+							wardrobeTastes.push({
+								text: `and slips on some cutoffs that shows off ${his} ass.`,
+								clothes: "cutoffs and a t-shirt"
+							});
 						}
 						if (isItemAccessible("a bunny outfit")) {
-							wardrobeTastes.push({text: `and slips into a bunny outfit that hugs ${his} curves.`, clothes: "a bunny outfit"});
+							wardrobeTastes.push({
+								text: `and slips into a bunny outfit that hugs ${his} curves.`,
+								clothes: "a bunny outfit"
+							});
 						}
 						if (slave.boobs > 800) {
-							wardrobeTastes.push({text: `and dresses up as a busty succubus that's sure to draw eyes.`, clothes: "a succubus outfit"});
+							wardrobeTastes.push({
+								text: `and dresses up as a busty succubus that's sure to draw eyes.`,
+								clothes: "a succubus outfit"
+							});
 						}
 					}
 				}
 				if (slave.attrXX > 70) {
 					if (slave.attrKnown === 1) {
 						if (isItemAccessible("a slave gown")) {
-							wardrobeTastes.push({text: `and wears a fashionable gown, since girls appreciate nice clothes.`, clothes: "a slave gown"});
+							wardrobeTastes.push({
+								text: `and wears a fashionable gown, since girls appreciate nice clothes.`,
+								clothes: "a slave gown"
+							});
 						}
-						wardrobeTastes.push({text: `and wears nothing but pretty lingerie to give the girls a show.`, clothes: "attractive lingerie"});
+						wardrobeTastes.push({
+							text: `and wears nothing but pretty lingerie to give the girls a show.`,
+							clothes: "attractive lingerie"
+						});
 						if (isItemAccessible("nice business attire")) {
-							wardrobeTastes.push({text: `and wears a nice suit, since girls appreciate nice clothes.`, clothes: "nice business attire"});
+							wardrobeTastes.push({
+								text: `and wears a nice suit, since girls appreciate nice clothes.`,
+								clothes: "nice business attire"
+							});
 						}
 					} else {
 						if (isItemAccessible("a slave gown")) {
-							wardrobeTastes.push({text: `and wears a fashionable gown.`, clothes: "a slave gown"});
+							wardrobeTastes.push({
+								text: `and wears a fashionable gown.`,
+								clothes: "a slave gown"
+							});
 						}
-						wardrobeTastes.push({text: `and wears pretty lingerie that shows off ${his} body.`, clothes: "attractive lingerie"});
+						wardrobeTastes.push({
+							text: `and wears pretty lingerie that shows off ${his} body.`,
+							clothes: "attractive lingerie"
+						});
 						if (isItemAccessible("nice business attire")) {
-							wardrobeTastes.push({text: `and wears a nice suit, the reasons not entirely clear to you.`, clothes: "nice business attire"});
+							wardrobeTastes.push({
+								text: `and wears a nice suit, the reasons not entirely clear to you.`,
+								clothes: "nice business attire"
+							});
 						}
 					}
 				}
 
 				/* need */
 				if (slave.need > 90) {
-					wardrobeTastes.push({text: `but goes naked. ${He} needs sex now and clothing will only get in the way.`, clothes: "no clothing"});
-					wardrobeTastes.push({text: `and throws on a slutty suit. ${He} hopes that it gets the point across that ${he} needs sex now.`, clothes: "slutty business attire"});
-					wardrobeTastes.push({text: `and dons a slutty nurse outfit. ${He}'s been infected and the only cure is a strong dicking.`, clothes: "a slutty nurse outfit"});
-					wardrobeTastes.push({text: `and dresses up as a slutty maid. Maybe if ${he} does ${his} job poorly enough, someone will bend ${him} over and fuck some sense into ${him}.`, clothes: "a slutty maid outfit"});
-					wardrobeTastes.push({text: `and dresses up as a succubus in the hopes it screams that ${he} needs sex now.`, clothes: "a succubus outfit"});
+					wardrobeTastes.push({
+						text: `but goes naked. ${He} needs sex now and clothing will only get in the way.`,
+						clothes: "no clothing"
+					});
+					wardrobeTastes.push({
+						text: `and throws on a slutty suit. ${He} hopes that it gets the point across that ${he} needs sex now.`,
+						clothes: "slutty business attire"
+					});
+					wardrobeTastes.push({
+						text: `and dons a slutty nurse outfit. ${He}'s been infected and the only cure is a strong dicking.`,
+						clothes: "a slutty nurse outfit"
+					});
+					wardrobeTastes.push({
+						text: `and dresses up as a slutty maid. Maybe if ${he} does ${his} job poorly enough, someone will bend ${him} over and fuck some sense into ${him}.`,
+						clothes: "a slutty maid outfit"
+					});
+					wardrobeTastes.push({
+						text: `and dresses up as a succubus in the hopes it screams that ${he} needs sex now.`,
+						clothes: "a succubus outfit"
+					});
 				}
 
 				/* quirks n flaws */
 				if (slave.behavioralFlaw === "arrogant") {
 					if (isItemAccessible("a ball gown")) {
-						wardrobeTastes.push({text: `and chooses a formal dress that makes ${him} feel like royalty.`, clothes: "a ball gown"});
+						wardrobeTastes.push({
+							text: `and chooses a formal dress that makes ${him} feel like royalty.`,
+							clothes: "a ball gown"
+						});
 					}
 				} else if (slave.behavioralFlaw === "devout") {
-					wardrobeTastes.push({text: `and wears something more appropriate for a monastery than a whorehouse.`, clothes: "a penitent nuns habit"});
+					wardrobeTastes.push({
+						text: `and wears something more appropriate for a monastery than a whorehouse.`,
+						clothes: "a penitent nuns habit"
+					});
 				}
 
 				if (slave.behavioralQuirk === "sinful") {
-					wardrobeTastes.push({text: `and dresses up like a succubus because it makes ${him} feel naughty.`, clothes: "a succubus outfit"});
+					wardrobeTastes.push({
+						text: `and dresses up like a succubus because it makes ${him} feel naughty.`,
+						clothes: "a succubus outfit"
+					});
 				} else if (slave.behavioralQuirk === "fitness") {
-					wardrobeTastes.push({text: `and wears spats and a tank top to give ${himself} a sporty look.`, clothes: "spats and a tank top"});
+					wardrobeTastes.push({
+						text: `and wears spats and a tank top to give ${himself} a sporty look.`,
+						clothes: "spats and a tank top"
+					});
 				}
 
 				if (slave.sexualFlaw === "shamefast") {
-					wardrobeTastes.push({text: `and chooses an outfit that covers ${him} up as much as possible.`, clothes: "a hijab and abaya"});
+					wardrobeTastes.push({
+						text: `and chooses an outfit that covers ${him} up as much as possible.`,
+						clothes: "a hijab and abaya"
+					});
 				} else if (slave.sexualFlaw === "breeder") {
 					if (isItemAccessible("attractive lingerie for a pregnant woman")) {
-						wardrobeTastes.push({text: `and wears lingerie designed to accommodate pregnancies, hoping that others get the hint.`, clothes: "attractive lingerie for a pregnant woman"});
+						wardrobeTastes.push({
+							text: `and wears lingerie designed to accommodate pregnancies, hoping that others get the hint.`,
+							clothes: "attractive lingerie for a pregnant woman"
+						});
 					}
 				} else if (slave.sexualFlaw === "malicious") {
 					if (isItemAccessible("a schutzstaffel uniform")) {
-						wardrobeTastes.push({text: `and chooses an outfit that is commonly associated with wanton cruelty.`, clothes: "a schutzstaffel uniform"});
-						wardrobeTastes.push({text: `and chooses a skimpy outfit that is commonly associated with wanton cruelty.`, clothes: "a slutty schutzstaffel uniform"});
+						wardrobeTastes.push({
+							text: `and chooses an outfit that is commonly associated with wanton cruelty.`,
+							clothes: "a schutzstaffel uniform"
+						});
+						wardrobeTastes.push({
+							text: `and chooses a skimpy outfit that is commonly associated with wanton cruelty.`,
+							clothes: "a slutty schutzstaffel uniform"
+						});
 					}
 				}
 
 				if (slave.sexualQuirk === "romantic") {
 					if (isItemAccessible("a halter top dress")) {
-						wardrobeTastes.push({text: `and dresses up like ${he}'s about to go on a date.`, clothes: "a halter top dress"});
+						wardrobeTastes.push({
+							text: `and dresses up like ${he}'s about to go on a date.`,
+							clothes: "a halter top dress"
+						});
 					}
 				} else if (slave.sexualQuirk === "tease") {
 					if (isItemAccessible("kitty lingerie")) {
-						wardrobeTastes.push({text: `and wears a set of provocatively designed lingerie.`, clothes: "kitty lingerie"});
+						wardrobeTastes.push({
+							text: `and wears a set of provocatively designed lingerie.`,
+							clothes: "kitty lingerie"
+						});
 					}
 					if (isItemAccessible("panties and pasties")) {
-						wardrobeTastes.push({text: `and wears the skimpiest outfit ${he} can find.`, clothes: "panties and pasties"});
+						wardrobeTastes.push({
+							text: `and wears the skimpiest outfit ${he} can find.`,
+							clothes: "panties and pasties"
+						});
 					}
 				}
 
 				/* age stuff */
 				if (slave.actualAge < 10) {
 					if (isItemAccessible("a ball gown")) {
-						wardrobeTastes.push({text: `and puts on a pretty dress so ${he} can be a princess.`, clothes: "a ball gown"});
-					}
-					wardrobeTastes.push({text: `and dresses up like a cheerleader since ${he} thinks it looks cute.`, clothes: "a cheerleader outfit"});
+						wardrobeTastes.push({
+							text: `and puts on a pretty dress so ${he} can be a princess.`,
+							clothes: "a ball gown"
+						});
+					}
+					wardrobeTastes.push({
+						text: `and dresses up like a cheerleader since ${he} thinks it looks cute.`,
+						clothes: "a cheerleader outfit"
+					});
 					if (isItemAccessible("a kimono")) {
-						wardrobeTastes.push({text: `and wraps ${himself} in a kimono, since it feels so good on ${his} skin.`, clothes: "a kimono"});
+						wardrobeTastes.push({
+							text: `and wraps ${himself} in a kimono, since it feels so good on ${his} skin.`,
+							clothes: "a kimono"
+						});
 					}
 				} else if (slave.actualAge < 18) {
-					wardrobeTastes.push({text: `and chooses an outfit that somewhat resembles one of ${his} school uniforms.`, clothes: "a schoolgirl outfit"});
+					wardrobeTastes.push({
+						text: `and chooses an outfit that somewhat resembles one of ${his} school uniforms.`,
+						clothes: "a schoolgirl outfit"
+					});
 				} else if (slave.actualAge > 65) {
 					if (isItemAccessible("a Santa dress")) {
-						wardrobeTastes.push({text: `and chooses a dress that acknowledges ${his} advanced age while still looking sexy.`, clothes: "a Santa dress"});
+						wardrobeTastes.push({
+							text: `and chooses a dress that acknowledges ${his} advanced age while still looking sexy.`,
+							clothes: "a Santa dress"
+						});
 					}
 				}
 
 				/* fetishes */
 				if (slave.fetishKnown === 1) {
 					if (slave.fetish === "submissive") {
-						wardrobeTastes.push({text: `and wears restrictive latex to encourage others to dominate ${him}.`, clothes: "restrictive latex"});
-						wardrobeTastes.push({text: `and wears shibari ropes to encourage others to dominate ${him}.`, clothes: "shibari ropes"});
+						wardrobeTastes.push({
+							text: `and wears restrictive latex to encourage others to dominate ${him}.`,
+							clothes: "restrictive latex"
+						});
+						wardrobeTastes.push({
+							text: `and wears shibari ropes to encourage others to dominate ${him}.`,
+							clothes: "shibari ropes"
+						});
 					} else if (slave.fetish === "dom") {
 						if (isItemAccessible("nice business attire")) {
-							wardrobeTastes.push({text: `and wears a handsome suit, since ${he} likes other slaves to look up to ${him}.`, clothes: "nice business attire"});
+							wardrobeTastes.push({
+								text: `and wears a handsome suit, since ${he} likes other slaves to look up to ${him}.`,
+								clothes: "nice business attire"
+							});
 						}
 						if (isItemAccessible("a latex catsuit")) {
-							wardrobeTastes.push({text: `and wears a full body latex catsuit to look the part of the whip cracking dom.`, clothes: "a latex catsuit"});
+							wardrobeTastes.push({
+								text: `and wears a full body latex catsuit to look the part of the whip cracking dom.`,
+								clothes: "a latex catsuit"
+							});
 						}
-						wardrobeTastes.push({text: `and wears a scalemail bikini to make ${himself} look tough.`, clothes: "a scalemail bikini"});
+						wardrobeTastes.push({
+							text: `and wears a scalemail bikini to make ${himself} look tough.`,
+							clothes: "a scalemail bikini"
+						});
 					} else if (slave.fetish === "masochist") {
-						wardrobeTastes.push({text: `and wears painfully restrictive bondage gear, since ${he} likes the torment.`, clothes: "uncomfortable straps"});
+						wardrobeTastes.push({
+							text: `and wears painfully restrictive bondage gear, since ${he} likes the torment.`,
+							clothes: "uncomfortable straps"
+						});
 						if (isItemAccessible("chains")) {
-							wardrobeTastes.push({text: `and wears painfully tight chains, since ${he} likes the torment.`, clothes: "chains"});
+							wardrobeTastes.push({
+								text: `and wears painfully tight chains, since ${he} likes the torment.`,
+								clothes: "chains"
+							});
 						}
 					} else if (slave.fetish === "sadist") {
 						if (isItemAccessible("a slave gown")) {
-							wardrobeTastes.push({text: `and wears an elegant gown, since ${he} thinks it makes ${him} look the part of the femme fatale.`, clothes: "a slave gown"});
+							wardrobeTastes.push({
+								text: `and wears an elegant gown, since ${he} thinks it makes ${him} look the part of the femme fatale.`,
+								clothes: "a slave gown"
+							});
 						}
-						wardrobeTastes.push({text: `and wears a scalemail bikini, since ${he} thinks it makes ${him} look fierce.`, clothes: "a scalemail bikini"});
+						wardrobeTastes.push({
+							text: `and wears a scalemail bikini, since ${he} thinks it makes ${him} look fierce.`,
+							clothes: "a scalemail bikini"
+						});
 					} else if (slave.fetish === "cumslut") {
-						wardrobeTastes.push({text: `and wears cutoffs and a t-shirt, because the fun yet relatively conservative outfit seems to encourage others to ask ${him} for blowjobs.`, clothes: "cutoffs and a t-shirt"});
+						wardrobeTastes.push({
+							text: `and wears cutoffs and a t-shirt, because the fun yet relatively conservative outfit seems to encourage others to ask ${him} for blowjobs.`,
+							clothes: "cutoffs and a t-shirt"
+						});
 					} else if (slave.fetish === "humiliation") {
-						wardrobeTastes.push({text: `and wears leather straps with rings over ${his} private parts because ${he} enjoys the embarrassment such a humiliating outfit causes ${him}.`, clothes: "uncomfortable straps"});
+						wardrobeTastes.push({
+							text: `and wears leather straps with rings over ${his} private parts because ${he} enjoys the embarrassment such a humiliating outfit causes ${him}.`,
+							clothes: "uncomfortable straps"
+						});
 					} else if (slave.fetish === "buttslut") {
-						wardrobeTastes.push({text: `and wears nothing other than slutty bangles, because ${he} likes to catch the eye without putting anything between cocks and ${his} rear end.`, clothes: "slutty jewelry"});
-						wardrobeTastes.push({text: `and wears nothing other than an apron, because ${he} likes to catch the eye without putting anything between cocks and ${his} rear end.`, clothes: "an apron"});
+						wardrobeTastes.push({
+							text: `and wears nothing other than slutty bangles, because ${he} likes to catch the eye without putting anything between cocks and ${his} rear end.`,
+							clothes: "slutty jewelry"
+						});
+						wardrobeTastes.push({
+							text: `and wears nothing other than an apron, because ${he} likes to catch the eye without putting anything between cocks and ${his} rear end.`,
+							clothes: "an apron"
+						});
 					} else if (slave.fetish === "pregnancy") {
-						wardrobeTastes.push({text: `and wears a short maid dress, because ${he} wants to look motherly and fuckable at the same time.`, clothes: "a slutty maid outfit"});
+						wardrobeTastes.push({
+							text: `and wears a short maid dress, because ${he} wants to look motherly and fuckable at the same time.`,
+							clothes: "a slutty maid outfit"
+						});
 						if (isItemAccessible("a maternity dress") && canGetPregnant(slave)) {
-							wardrobeTastes.push({text: `and wears a maternity dress in the hope someone fills out its middle.`, clothes: "a maternity dress"});
+							wardrobeTastes.push({
+								text: `and wears a maternity dress in the hope someone fills out its middle.`,
+								clothes: "a maternity dress"
+							});
 						}
 					} else if (slave.fetish === "boobs") {
-						wardrobeTastes.push({text: `and wears a cheerleader outfit, since ${he} loves the way it hugs ${his} tits as ${he} moves.`, clothes: "a cheerleader outfit"});
+						wardrobeTastes.push({
+							text: `and wears a cheerleader outfit, since ${he} loves the way it hugs ${his} tits as ${he} moves.`,
+							clothes: "a cheerleader outfit"
+						});
 						if (isItemAccessible("a monokini")) {
-							wardrobeTastes.push({text: `and wears a monokini, since ${he} loves how it leaves ${his} breasts totally bare.`, clothes: "a monokini"});
+							wardrobeTastes.push({
+								text: `and wears a monokini, since ${he} loves how it leaves ${his} breasts totally bare.`,
+								clothes: "a monokini"
+							});
 						}
 						if (isItemAccessible("kitty lingerie")) {
-							wardrobeTastes.push({text: `and chooses a lingerie set that leaves ${his} cleavage on public display.`, clothes: "kitty lingerie"});
+							wardrobeTastes.push({
+								text: `and chooses a lingerie set that leaves ${his} cleavage on public display.`,
+								clothes: "kitty lingerie"
+							});
 						}
 						if (isItemAccessible("pasties")) {
-							wardrobeTastes.push({text: `and wears nothing but a pair of pasties to draw eyes straight to ${his} nipples.`, clothes: "pasties"});
+							wardrobeTastes.push({
+								text: `and wears nothing but a pair of pasties to draw eyes straight to ${his} nipples.`,
+								clothes: "pasties"
+							});
 						}
 						if (isItemAccessible("a bra")) {
-							wardrobeTastes.push({text: `and wears nothing but a bra in the hopes that the outlandish get up fixes eyes on ${his} chest.`, clothes: "a bra"});
+							wardrobeTastes.push({
+								text: `and wears nothing but a bra in the hopes that the outlandish get up fixes eyes on ${his} chest.`,
+								clothes: "a bra"
+							});
 						}
-						wardrobeTastes.push({text: `and wears nothing but a pair of panties so ${his} tits can bounce freely.`, clothes: "panties"});
+						wardrobeTastes.push({
+							text: `and wears nothing but a pair of panties so ${his} tits can bounce freely.`,
+							clothes: "panties"
+						});
 					}
 				} else {
 					if (slave.fetish === "submissive") {
-						wardrobeTastes.push({text: `and strangely opts for restrictive latex.`, clothes: "restrictive latex"});
-						wardrobeTastes.push({text: `and strangely opts for shibari ropes.`, clothes: "shibari ropes"});
+						wardrobeTastes.push({
+							text: `and strangely opts for restrictive latex.`,
+							clothes: "restrictive latex"
+						});
+						wardrobeTastes.push({
+							text: `and strangely opts for shibari ropes.`,
+							clothes: "shibari ropes"
+						});
 					} else if (slave.fetish === "dom") {
 						if (isItemAccessible("nice business attire")) {
-							wardrobeTastes.push({text: `and wears a handsome suit; ${he} seems to think highly of ${himself} in it.`, clothes: "nice business attire"});
+							wardrobeTastes.push({
+								text: `and wears a handsome suit; ${he} seems to think highly of ${himself} in it.`,
+								clothes: "nice business attire"
+							});
 						}
 						if (isItemAccessible("a latex catsuit")) {
-							wardrobeTastes.push({text: `and wears a full body latex catsuit; there is a strange look on ${his} face as ${he} wears it.`, clothes: "a latex catsuit"});
+							wardrobeTastes.push({
+								text: `and wears a full body latex catsuit; there is a strange look on ${his} face as ${he} wears it.`,
+								clothes: "a latex catsuit"
+							});
 						}
-						wardrobeTastes.push({text: `and wears a scalemail bikini; ${he} keeps flexing and acting tough to ${himself}.`, clothes: "a scalemail bikini"});
+						wardrobeTastes.push({
+							text: `and wears a scalemail bikini; ${he} keeps flexing and acting tough to ${himself}.`,
+							clothes: "a scalemail bikini"
+						});
 					} else if (slave.fetish === "masochist") {
-						wardrobeTastes.push({text: `and strangely opts for painfully restrictive bondage gear.`, clothes: "uncomfortable straps"});
+						wardrobeTastes.push({
+							text: `and strangely opts for painfully restrictive bondage gear.`,
+							clothes: "uncomfortable straps"
+						});
 						if (isItemAccessible("chains")) {
-							wardrobeTastes.push({text: `and strangely opts for painfully tight chains.`, clothes: "chains"});
+							wardrobeTastes.push({
+								text: `and strangely opts for painfully tight chains.`,
+								clothes: "chains"
+							});
 						}
 					} else if (slave.fetish === "sadist") {
 						if (isItemAccessible("a slave gown")) {
-							wardrobeTastes.push({text: `and wears an elegant gown for some reason.`, clothes: "a slave gown"});
+							wardrobeTastes.push({
+								text: `and wears an elegant gown for some reason.`,
+								clothes: "a slave gown"
+							});
 						}
-						wardrobeTastes.push({text: `and wears a scalemail bikini; an odd choice.`, clothes: "a scalemail bikini"});
+						wardrobeTastes.push({
+							text: `and wears a scalemail bikini; an odd choice.`,
+							clothes: "a scalemail bikini"
+						});
 					} else if (slave.fetish === "cumslut") {
-						wardrobeTastes.push({text: `and wears cutoffs and a t-shirt; ${he} can't stop licking ${his} lips.`, clothes: "cutoffs and a t-shirt"});
+						wardrobeTastes.push({
+							text: `and wears cutoffs and a t-shirt; ${he} can't stop licking ${his} lips.`,
+							clothes: "cutoffs and a t-shirt"
+						});
 					} else if (slave.fetish === "humiliation") {
-						wardrobeTastes.push({text: `and strangely opts for leather straps with rings over ${his} private parts.`, clothes: "uncomfortable straps"});
+						wardrobeTastes.push({
+							text: `and strangely opts for leather straps with rings over ${his} private parts.`,
+							clothes: "uncomfortable straps"
+						});
 					} else if (slave.fetish === "buttslut") {
-						wardrobeTastes.push({text: `and wears nothing other than slutty bangles, an odd choice; ${his} ass is completely exposed.`, clothes: "slutty jewelry"});
-						wardrobeTastes.push({text: `and wears nothing other than an apron, an odd choice; ${his} ass is completely exposed.`, clothes: "an apron"});
+						wardrobeTastes.push({
+							text: `and wears nothing other than slutty bangles, an odd choice; ${his} ass is completely exposed.`,
+							clothes: "slutty jewelry"
+						});
+						wardrobeTastes.push({
+							text: `and wears nothing other than an apron, an odd choice; ${his} ass is completely exposed.`,
+							clothes: "an apron"
+						});
 					} else if (slave.fetish === "pregnancy") {
-						wardrobeTastes.push({text: `and wears a short maid dress; you frequently notice ${him} observing ${his} stomach.`, clothes: "a slutty maid outfit"});
+						wardrobeTastes.push({
+							text: `and wears a short maid dress; you frequently notice ${him} observing ${his} stomach.`,
+							clothes: "a slutty maid outfit"
+						});
 						if (isItemAccessible("a maternity dress") && canGetPregnant(slave)) {
-							wardrobeTastes.push({text: `and wears a maternity dress even though ${he} isn't pregnant.`, clothes: "a maternity dress"});
+							wardrobeTastes.push({
+								text: `and wears a maternity dress even though ${he} isn't pregnant.`,
+								clothes: "a maternity dress"
+							});
 						}
 					} else if (slave.fetish === "boobs") {
-						wardrobeTastes.push({text: `and wears a cheerleader outfit; ${he} seems to enjoy jiggling ${his} breasts in it.`, clothes: "a cheerleader outfit"});
+						wardrobeTastes.push({
+							text: `and wears a cheerleader outfit; ${he} seems to enjoy jiggling ${his} breasts in it.`,
+							clothes: "a cheerleader outfit"
+						});
 						if (isItemAccessible("a monokini")) {
-							wardrobeTastes.push({text: `and strangely decides to wear a monokini, which leaves ${his} breasts totally bare.`, clothes: "a monokini"});
+							wardrobeTastes.push({
+								text: `and strangely decides to wear a monokini, which leaves ${his} breasts totally bare.`,
+								clothes: "a monokini"
+							});
 						}
 						if (isItemAccessible("kitty lingerie")) {
-							wardrobeTastes.push({text: `and oddly chooses a lingerie set with a cleavage cutout in the bra.`, clothes: "kitty lingerie"});
+							wardrobeTastes.push({
+								text: `and oddly chooses a lingerie set with a cleavage cutout in the bra.`,
+								clothes: "kitty lingerie"
+							});
 						}
 						if (isItemAccessible("pasties")) {
-							wardrobeTastes.push({text: `and oddly opts for just a pair of pasties attached to ${his} nipples.`, clothes: "pasties"});
+							wardrobeTastes.push({
+								text: `and oddly opts for just a pair of pasties attached to ${his} nipples.`,
+								clothes: "pasties"
+							});
 						}
 						if (isItemAccessible("a bra")) {
-							wardrobeTastes.push({text: `and oddly opts for nothing more than a bra.`, clothes: "a bra"});
+							wardrobeTastes.push({
+								text: `and oddly opts for nothing more than a bra.`,
+								clothes: "a bra"
+							});
 						}
-						wardrobeTastes.push({text: `and wears nothing but a pair of panties; ${he} seems to enjoy the way ${his} breasts bounce freely.`, clothes: "panties"});
+						wardrobeTastes.push({
+							text: `and wears nothing but a pair of panties; ${he} seems to enjoy the way ${his} breasts bounce freely.`,
+							clothes: "panties"
+						});
 					}
 				}
 
 				/* energy */
 				if (slave.energy > 95) {
-					wardrobeTastes.push({text: `but goes nude, since as a nympho ${he} gets plenty of attention anyway, and considers clothes an unnecessary hindrance.`, clothes: "no clothing"});
+					wardrobeTastes.push({
+						text: `but goes nude, since as a nympho ${he} gets plenty of attention anyway, and considers clothes an unnecessary hindrance.`,
+						clothes: "no clothing"
+					});
 				} else if (slave.energy > 60) {
-					wardrobeTastes.push({text: `and puts on some daring lingerie to draw attention to ${himself}.`, clothes: "attractive lingerie"});
-					wardrobeTastes.push({text: `and goes topless to draw attention to ${himself}.`, clothes: "panties"});
+					wardrobeTastes.push({
+						text: `and puts on some daring lingerie to draw attention to ${himself}.`,
+						clothes: "attractive lingerie"
+					});
+					wardrobeTastes.push({
+						text: `and goes topless to draw attention to ${himself}.`,
+						clothes: "panties"
+					});
 					if (isItemAccessible("kitty lingerie")) {
-						wardrobeTastes.push({text: `and puts on some decorative lingerie to draw attention to ${himself}.`, clothes: "kitty lingerie"});
+						wardrobeTastes.push({
+							text: `and puts on some decorative lingerie to draw attention to ${himself}.`,
+							clothes: "kitty lingerie"
+						});
 					}
 				}
 
 				/* pregnancy */
 				if (slave.belly >= 5000) {
-					wardrobeTastes.push({text: `and wears pretty lingerie to show off ${his} merchandise while giving ${his} protruding belly plenty of room to hang free.`, clothes: "attractive lingerie"});
-					wardrobeTastes.push({text: `and wears only panties. Something so easy to slit on is appreciable with such a big belly in the way.`, clothes: "panties"});
+					wardrobeTastes.push({
+						text: `and wears pretty lingerie to show off ${his} merchandise while giving ${his} protruding belly plenty of room to hang free.`,
+						clothes: "attractive lingerie"
+					});
+					wardrobeTastes.push({
+						text: `and wears only panties. Something so easy to slit on is appreciable with such a big belly in the way.`,
+						clothes: "panties"
+					});
 					if (isItemAccessible("kitty lingerie")) {
-						wardrobeTastes.push({text: `and wears cute lingerie to show off ${his} merchandise while giving ${his} protruding belly plenty of room to hang free.`, clothes: "kitty lingerie"});
+						wardrobeTastes.push({
+							text: `and wears cute lingerie to show off ${his} merchandise while giving ${his} protruding belly plenty of room to hang free.`,
+							clothes: "kitty lingerie"
+						});
 					}
 					if (isItemAccessible("a Santa dress")) {
-						wardrobeTastes.push({text: `and chooses a dress that pokes fun at ${his} rotund figure while still looking sexy.`, clothes: "a Santa dress"});
+						wardrobeTastes.push({
+							text: `and chooses a dress that pokes fun at ${his} rotund figure while still looking sexy.`,
+							clothes: "a Santa dress"
+						});
 					}
 					if (isItemAccessible("attractive lingerie for a pregnant woman") && slave.energy > 70) {
-						wardrobeTastes.push({text: `and wears pretty lingerie to show off ${his} merchandise and accentuate ${his} pregnancy while giving it plenty of room to hang free.`, clothes: "attractive lingerie for a pregnant woman"});
+						wardrobeTastes.push({
+							text: `and wears pretty lingerie to show off ${his} merchandise and accentuate ${his} pregnancy while giving it plenty of room to hang free.`,
+							clothes: "attractive lingerie for a pregnant woman"
+						});
 					} else if (isItemAccessible("a maternity dress")) {
-						wardrobeTastes.push({text: `and wears a conservative dress with plenty of give for ${his} belly to stretch it.`, clothes: "a maternity dress"});
-					}
-					wardrobeTastes.push({text: `and wears string lingerie to look fun and fuckable while giving ${his} protruding belly plenty of room to hang free.`, clothes: "a string bikini"});
+						wardrobeTastes.push({
+							text: `and wears a conservative dress with plenty of give for ${his} belly to stretch it.`,
+							clothes: "a maternity dress"
+						});
+					}
+					wardrobeTastes.push({
+						text: `and wears string lingerie to look fun and fuckable while giving ${his} protruding belly plenty of room to hang free.`,
+						clothes: "a string bikini"
+					});
 				} else {
-					wardrobeTastes.push({text: `and wears string lingerie to show off ${his} body.`, clothes: "a string bikini"});
+					wardrobeTastes.push({
+						text: `and wears string lingerie to show off ${his} body.`,
+						clothes: "a string bikini"
+					});
 				}
 
 				if (slave.nationality === "Canadian") {
 					if (isItemAccessible("a mounty outfit")) {
-						wardrobeTastes.push({text: `and chooses an outfit that makes ${him} feel oddly nostalgic.`, clothes: "a mounty outfit"});
+						wardrobeTastes.push({
+							text: `and chooses an outfit that makes ${him} feel oddly nostalgic.`,
+							clothes: "a mounty outfit"
+						});
 					}
 				} else if (slave.nationality === "Japanese") {
 					if (isItemAccessible("a kimono")) {
-						wardrobeTastes.push({text: `and chooses an outfit that makes ${him} feel oddly nostalgic.`, clothes: "a kimono"});
+						wardrobeTastes.push({
+							text: `and chooses an outfit that makes ${him} feel oddly nostalgic.`,
+							clothes: "a kimono"
+						});
 					}
 				}
 			}
@@ -954,56 +1914,110 @@ window.saChoosesOwnClothes = (function() {
 		return selection;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * @returns {string}
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * @returns {string}
+	 */
 	function todaysShoes(slave) {
 		const shoes = [];
 
 		if (slave.fetish === "mindbroken") {
 			if (slave.amp !== 1 && slave.heels === 1) {
-				shoes.push({text: `${He} finds ${he} can inexplicably walk if ${he} wears heels; a daily lesson for ${him}, as ${he} forgets shortly after leaving.`, shoes: jsEither(["boots", "extreme heels", "heels", "pumps"])});
+				shoes.push({
+					text: `${He} finds ${he} can inexplicably walk if ${he} wears heels; a daily lesson for ${him}, as ${he} forgets shortly after leaving.`,
+					shoes: jsEither(["boots", "extreme heels", "heels", "pumps"])
+				});
 			}
-			shoes.push({text: `${He} vaguely remembers putting things on ${his} feet, so ${he} does.`, shoes: jsEither(["boots", "extreme heels", "flats", "heels", "pumps"])});
-			shoes.push({text: `${He} entered without shoes, and will leave the same.`, shoes: "none"});
+			shoes.push({
+				text: `${He} vaguely remembers putting things on ${his} feet, so ${he} does.`,
+				shoes: jsEither(["boots", "extreme heels", "flats", "heels", "pumps"])
+			});
+			shoes.push({
+				text: `${He} entered without shoes, and will leave the same.`,
+				shoes: "none"
+			});
 		} else if (slave.devotion <= 20) {
 			if (slave.heels === 0) {
-				shoes.push({text: `and wears comfortable flats,`, shoes: "flats"});
+				shoes.push({
+					text: `and wears comfortable flats,`,
+					shoes: "flats"
+				});
 			} else {
-				shoes.push({text: `and angrily wears the heels ${he} needs to walk,`, shoes: "heels"});
+				shoes.push({
+					text: `and angrily wears the heels ${he} needs to walk,`,
+					shoes: "heels"
+				});
 			}
 		} else {
 			if (slave.fetishKnown === 1 && slave.fetish === "dom") {
-				shoes.push({text: `${He} wears boots to look like a proper dominant.`, shoes: "boots"});
+				shoes.push({
+					text: `${He} wears boots to look like a proper dominant.`,
+					shoes: "boots"
+				});
 			} else if (slave.fetishKnown === 1 && slave.fetish === "sadist") {
-				shoes.push({text: `${He} wears boots, since ${he} thinks they make ${him} look dangerous.`, shoes: "boots"});
+				shoes.push({
+					text: `${He} wears boots, since ${he} thinks they make ${him} look dangerous.`,
+					shoes: "boots"
+				});
 			} else if (slave.fetishKnown === 1 && slave.fetish === "masochist") {
-				shoes.push({text: `${He} wears painfully tall heels, since ${he} enjoys the twinge of pain with each step.`, shoes: "extreme heels"});
+				shoes.push({
+					text: `${He} wears painfully tall heels, since ${he} enjoys the twinge of pain with each step.`,
+					shoes: "extreme heels"
+				});
 			} else if (slave.heels === 1) {
-				shoes.push({text: `${He} wears the heels ${he} needs to walk.`, shoes: "heels"});
+				shoes.push({
+					text: `${He} wears the heels ${he} needs to walk.`,
+					shoes: "heels"
+				});
 			} else if (slave.fetishKnown === 1 && slave.fetish === "pregnancy" && slave.bellyPreg >= 500) {
-				shoes.push({text: `${He} goes barefoot to complement ${his} pregnancy.`, shoes: "none"});
+				shoes.push({
+					text: `${He} goes barefoot to complement ${his} pregnancy.`,
+					shoes: "none"
+				});
 			} else if (slave.fetishKnown === 1 && slave.fetish === "none") {
-				shoes.push({text: `${He} wears comfortable flats, since ${he} doesn't have a fetish to show off.`, shoes: "flats"});
+				shoes.push({
+					text: `${He} wears comfortable flats, since ${he} doesn't have a fetish to show off.`,
+					shoes: "flats"
+				});
 			} else if (slave.actualAge < 13) {
-				shoes.push({text: `${He} puts on boots so ${he} can stomp around.`, shoes: "boots"});
-				shoes.push({text: `${He} playfully puts on heels to be like all the other girls.`, shoes: "heels"});
-				shoes.push({text: `${He} wears flats as they are comfortable and easy to take on and off.`, shoes: "flats"});
-				shoes.push({text: `Going barefoot is fun, so no shoes for ${him}.`, shoes: "none"});
+				shoes.push({
+					text: `${He} puts on boots so ${he} can stomp around.`,
+					shoes: "boots"
+				});
+				shoes.push({
+					text: `${He} playfully puts on heels to be like all the other girls.`,
+					shoes: "heels"
+				});
+				shoes.push({
+					text: `${He} wears flats as they are comfortable and easy to take on and off.`,
+					shoes: "flats"
+				});
+				shoes.push({
+					text: `Going barefoot is fun, so no shoes for ${him}.`,
+					shoes: "none"
+				});
 			} else {
-				shoes.push({text: `${He} wears heels to strut ${his} stuff.`, shoes: "heels"});
-				shoes.push({text: `${He} wears comfortable flats to take it easy.`, shoes: "flats"});
-				shoes.push({text: `${He} goes barefoot to show off ${his} toes.`, shoes: "none"});
+				shoes.push({
+					text: `${He} wears heels to strut ${his} stuff.`,
+					shoes: "heels"
+				});
+				shoes.push({
+					text: `${He} wears comfortable flats to take it easy.`,
+					shoes: "flats"
+				});
+				shoes.push({
+					text: `${He} goes barefoot to show off ${his} toes.`,
+					shoes: "none"
+				});
 			}
 		}
 		return jsEither(shoes);
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * @returns {string}
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * @returns {string}
+	 */
 	function todaysCollar(slave) {
 		const neck = [];
 
@@ -1013,29 +2027,59 @@ window.saChoosesOwnClothes = (function() {
 			//
 		} else {
 			if (V.arcologies[0].FSEgyptianRevivalist > 0) {
-				neck.push({text: `dons a wesekh to support your ancient Egyptian pretensions,`, collar: "ancient Egyptian"});
+				neck.push({
+					text: `dons a wesekh to support your ancient Egyptian pretensions,`,
+					collar: "ancient Egyptian"
+				});
 			}
 			if (slave.fetish === "masochist") {
-				neck.push({text: `dons a tight steel collar around ${his} neck,`, collar: "tight steel"});
-				neck.push({text: `dons a painful leather collar,`, collar: "uncomfortable leather"});
-				neck.push({text: `dons a painfully tight neck corset,`, collar: "neck corset"});
+				neck.push({
+					text: `dons a tight steel collar around ${his} neck,`,
+					collar: "tight steel"
+				});
+				neck.push({
+					text: `dons a painful leather collar,`,
+					collar: "uncomfortable leather"
+				});
+				neck.push({
+					text: `dons a painfully tight neck corset,`,
+					collar: "neck corset"
+				});
 			} else if (slave.fetish === "pregnancy" && (canGetPregnant(slave) || slave.pregKnown === 1)) {
-				neck.push({text: `dons a digital display that tells everything about ${his} womb,`, collar: "preg biometrics"});
+				neck.push({
+					text: `dons a digital display that tells everything about ${his} womb,`,
+					collar: "preg biometrics"
+				});
 			} else if (slave.fetish === "boobs" && slave.boobs >= 1000) {
-				neck.push({text: `dons a cowbell to draw attention to ${his} luscious udders,`, collar: "leather with cowbell"});
+				neck.push({
+					text: `dons a cowbell to draw attention to ${his} luscious udders,`,
+					collar: "leather with cowbell"
+				});
 			}
-			neck.push({text: `decides ${his} neck needs no accenting,`, collar: "none"});
-			neck.push({text: `dons some pretty jewelry,`, collar: "pretty jewelry"});
-			neck.push({text: `dons a lovely gold collar,`, collar: "heavy gold"});
-			neck.push({text: `dons a simple silk ribbon around ${his} neck,`, collar: "silk ribbon"});
+			neck.push({
+				text: `decides ${his} neck needs no accenting,`,
+				collar: "none"
+			});
+			neck.push({
+				text: `dons some pretty jewelry,`,
+				collar: "pretty jewelry"
+			});
+			neck.push({
+				text: `dons a lovely gold collar,`,
+				collar: "heavy gold"
+			});
+			neck.push({
+				text: `dons a simple silk ribbon around ${his} neck,`,
+				collar: "silk ribbon"
+			});
 		}
 		return jsEither(neck);
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * @returns {string}
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * @returns {string}
+	 */
 	function todaysCorset(slave) {
 		const belly = [];
 		const empathyBellies = ["a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly"];
@@ -1043,46 +2087,97 @@ window.saChoosesOwnClothes = (function() {
 		if (slave.fetish === "mindbroken") {
 			if (V.arcologies[0].FSRepopulationFocus > 0 && slave.belly < 1500) {
 				if (slave.weight > 130) {
-					belly.push({text: `${He} notices the fake bellies; since every girl ${he} has ever met has a rounded middle, it's only natural ${he} is compelled to wear one. ${He} struggles to fit it around ${his} huge gut, only stopping when another slave takes it away from ${him} so ${he} moves on and stops blocking the wardrobe with ${his} fat ass.`, bellyAccessory: "none"});
+					belly.push({
+						text: `${He} notices the fake bellies; since every girl ${he} has ever met has a rounded middle, it's only natural ${he} is compelled to wear one. ${He} struggles to fit it around ${his} huge gut, only stopping when another slave takes it away from ${him} so ${he} moves on and stops blocking the wardrobe with ${his} fat ass.`,
+						bellyAccessory: "none"
+					});
 				} else {
-					belly.push({text: `${He} notices the fake bellies; since every girl ${he} has ever met has a rounded middle, it's only natural ${he} is compelled to wear one.`, bellyAccessory: jsEither(["a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly"])});
+					belly.push({
+						text: `${He} notices the fake bellies; since every girl ${he} has ever met has a rounded middle, it's only natural ${he} is compelled to wear one.`,
+						bellyAccessory: jsEither(["a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly"])
+					});
 				}
 			} else {
-				belly.push({text: "", bellyAccessory: slave.bellyAccessory}); /* compatibility for no output, will likely get deprecated in the future as content is added*/
+				belly.push({
+					text: "",
+					bellyAccessory: slave.bellyAccessory
+				}); /* compatibility for no output, will likely get deprecated in the future as content is added*/
 			}
 		} else if (slave.devotion <= 20) {
-			if (slave.belly > 10000 && (slave.pregAdaptation*800 <= slave.belly) && slave.bellyAccessory !== "a support band") {
-				belly.push({text: `slips a pregnancy support band around ${his} middle to help alleviate some of the discomfort,`, bellyAccessory: "a support band"});
+			if (slave.belly > 10000 && (slave.pregAdaptation * 800 <= slave.belly) && slave.bellyAccessory !== "a support band") {
+				belly.push({
+					text: `slips a pregnancy support band around ${his} middle to help alleviate some of the discomfort,`,
+					bellyAccessory: "a support band"
+				});
 			} else if (slave.belly < 8000 && slave.bellyAccessory === "a support band") {
-				belly.push({text: `removes ${his} support band since ${he} no longer needs it,`, bellyAccessory: "none"});
+				belly.push({
+					text: `removes ${his} support band since ${he} no longer needs it,`,
+					bellyAccessory: "none"
+				});
 			}
 		} else {
 			if (V.arcologies[0].FSRepopulationFocus > 0 && slave.belly < 1500 && slave.sexualFlaw !== "breeder") {
 				if (slave.weight > 130) {
-					belly.push({text: `struggles to fit a fake pregnant belly around ${his} gut before giving up and hoping ${he} can pass as fecund,`, bellyAccessory: "none"});
+					belly.push({
+						text: `struggles to fit a fake pregnant belly around ${his} gut before giving up and hoping ${he} can pass as fecund,`,
+						bellyAccessory: "none"
+					});
 				} else {
-					belly.push({text: `straps on a fake pregnant belly to fit in with all the other pregnant girls,`, bellyAccessory: jsEither(["a small empathy belly", "a medium empathy belly", "a large empathy belly"])});
+					belly.push({
+						text: `straps on a fake pregnant belly to fit in with all the other pregnant girls,`,
+						bellyAccessory: jsEither(["a small empathy belly", "a medium empathy belly", "a large empathy belly"])
+					});
 				}
 			} else if (slave.belly < 1500 && slave.fetish === "pregnancy" && isItemAccessible("a small empathy belly") && slave.sexualFlaw !== "breeder" && slave.weight <= 130) {
 				if (slave.fetishStrength <= 30) {
-					belly.push({text: `straps on a 1st trimester belly to sate ${his} curiosity,`, bellyAccessory: "a small empathy belly"});
-					belly.push({text: `straps on a 2nd trimester belly to sate ${his} curiosity,`, bellyAccessory: "a medium empathy belly"});
-					belly.push({text: `straps on a 3rd trimester belly to sate ${his} curiosity,`, bellyAccessory: "a large empathy belly"});
+					belly.push({
+						text: `straps on a 1st trimester belly to sate ${his} curiosity,`,
+						bellyAccessory: "a small empathy belly"
+					});
+					belly.push({
+						text: `straps on a 2nd trimester belly to sate ${his} curiosity,`,
+						bellyAccessory: "a medium empathy belly"
+					});
+					belly.push({
+						text: `straps on a 3rd trimester belly to sate ${his} curiosity,`,
+						bellyAccessory: "a large empathy belly"
+					});
 				} else if (slave.fetishStrength <= 95) {
-					belly.push({text: `straps on a 3rd trimester belly to satisfy ${his} pregnancy fetish,`, bellyAccessory: "a large empathy belly"});
+					belly.push({
+						text: `straps on a 3rd trimester belly to satisfy ${his} pregnancy fetish,`,
+						bellyAccessory: "a large empathy belly"
+					});
 				} else if (slave.fetishStrength > 95) {
-					belly.push({text: `straps on the largest belly ${he} can find to satisfy ${his} pregnancy fetish,`, bellyAccessory: "a huge empathy belly"});
-				}
-			} else if (slave.belly > 10000 && (slave.pregAdaptation*1200 <= slave.belly) && slave.bellyAccessory !== "a support band") {
-				belly.push({text: `slips a pregnancy support band around ${his} middle to better handle ${his} fecund mound,`, bellyAccessory: "a support band"});
+					belly.push({
+						text: `straps on the largest belly ${he} can find to satisfy ${his} pregnancy fetish,`,
+						bellyAccessory: "a huge empathy belly"
+					});
+				}
+			} else if (slave.belly > 10000 && (slave.pregAdaptation * 1200 <= slave.belly) && slave.bellyAccessory !== "a support band") {
+				belly.push({
+					text: `slips a pregnancy support band around ${his} middle to better handle ${his} fecund mound,`,
+					bellyAccessory: "a support band"
+				});
 			} else if (empathyBellies.includes(slave.bellyAccessory) && slave.fetish !== "pregnancy") {
-				belly.push({text: `removes ${his} fake belly, since ${he} dislikes it,`, bellyAccessory: "none"});
+				belly.push({
+					text: `removes ${his} fake belly, since ${he} dislikes it,`,
+					bellyAccessory: "none"
+				});
 			} else if (empathyBellies.includes(slave.bellyAccessory) && slave.sexualFlaw === "breeder") {
-				belly.push({text: `pulls ${his} fake belly off, disgusted by it,`, bellyAccessory: "none"});
+				belly.push({
+					text: `pulls ${his} fake belly off, disgusted by it,`,
+					bellyAccessory: "none"
+				});
 			} else if (slave.belly < 8000 && slave.bellyAccessory === "a support band") {
-				belly.push({text: `removes ${his} support band since ${he} no longer needs it,`, bellyAccessory: "none"});
+				belly.push({
+					text: `removes ${his} support band since ${he} no longer needs it,`,
+					bellyAccessory: "none"
+				});
 			} else {
-				belly.push({text: "", bellyAccessory: slave.bellyAccessory}); /* compatibility for no output, will likely get deprecated in the future as content is added*/
+				belly.push({
+					text: "",
+					bellyAccessory: slave.bellyAccessory
+				}); /* compatibility for no output, will likely get deprecated in the future as content is added*/
 			}
 		}
 		return jsEither(belly);
diff --git a/src/endWeek/saPorn.js b/src/endWeek/saPorn.js
index 93ab5aa36c52c40b03030d04339859f23b79298d..38897cbc19d93217604249612d27fe684bdede90 100644
--- a/src/endWeek/saPorn.js
+++ b/src/endWeek/saPorn.js
@@ -4,113 +4,221 @@
  * @param {App.Entity.SlaveState} slave
  * @returns {object}
  */
-window.getHighestPorn = function(slave) {
-	let max = {value: 0, type: "none"};
+window.getHighestPorn = function (slave) {
+	let max = {
+		value: 0,
+		type: "none"
+	};
 
 	if (slave.porn.fame.general > max.value) {
-		max = {value: slave.porn.fame.general, type: "generic"};
+		max = {
+			value: slave.porn.fame.general,
+			type: "generic"
+		};
 	}
 	if (slave.porn.fame.fuckdoll > max.value) {
-		max = {value: slave.porn.fame.fuckdoll, type: "fuckdoll"};
+		max = {
+			value: slave.porn.fame.fuckdoll,
+			type: "fuckdoll"
+		};
 	}
 	if (slave.porn.fame.rape > max.value) {
-		max = {value: slave.porn.fame.rape, type: "rape"};
+		max = {
+			value: slave.porn.fame.rape,
+			type: "rape"
+		};
 	}
 	if (slave.porn.fame.preggo > max.value) {
-		max = {value: slave.porn.fame.preggo, type: "preggo"};
+		max = {
+			value: slave.porn.fame.preggo,
+			type: "preggo"
+		};
 	}
 	if (slave.porn.fame.BBW > max.value) {
-		max = {value: slave.porn.fame.BBW, type: "BBW"};
+		max = {
+			value: slave.porn.fame.BBW,
+			type: "BBW"
+		};
 	}
 	if (slave.porn.fame.gainer > max.value) {
-		max = {value: slave.porn.fame.gainer, type: "weight gain"};
+		max = {
+			value: slave.porn.fame.gainer,
+			type: "weight gain"
+		};
 	}
 	if (slave.porn.fame.stud > max.value) {
-		max = {value: slave.porn.fame.stud, type: "big dick"};
+		max = {
+			value: slave.porn.fame.stud,
+			type: "big dick"
+		};
 	}
 	if (slave.porn.fame.loli > max.value) {
-		max = {value: slave.porn.fame.loli, type: "underage"};
+		max = {
+			value: slave.porn.fame.loli,
+			type: "underage"
+		};
 	}
 	if (slave.porn.fame.deepThroat > max.value) {
-		max = {value: slave.porn.fame.deepThroat, type: "deepthroat"};
+		max = {
+			value: slave.porn.fame.deepThroat,
+			type: "deepthroat"
+		};
 	}
 	if (slave.porn.fame.struggleFuck > max.value) {
-		max = {value: slave.porn.fame.struggleFuck, type: "unwilling"};
+		max = {
+			value: slave.porn.fame.struggleFuck,
+			type: "unwilling"
+		};
 	}
 	if (slave.porn.fame.painal > max.value) {
-		max = {value: slave.porn.fame.painal, type: "hardcore anal"};
+		max = {
+			value: slave.porn.fame.painal,
+			type: "hardcore anal"
+		};
 	}
 	if (slave.porn.fame.tease > max.value) {
-		max = {value: slave.porn.fame.tease, type: "softcore"};
+		max = {
+			value: slave.porn.fame.tease,
+			type: "softcore"
+		};
 	}
 	if (slave.porn.fame.romantic > max.value) {
-		max = {value: slave.porn.fame.romantic, type: "romantic"};
+		max = {
+			value: slave.porn.fame.romantic,
+			type: "romantic"
+		};
 	}
 	if (slave.porn.fame.pervert > max.value) {
-		max = {value: slave.porn.fame.pervert, type: "really perverted"};
+		max = {
+			value: slave.porn.fame.pervert,
+			type: "really perverted"
+		};
 	}
 	if (slave.porn.fame.caring > max.value) {
-		max = {value: slave.porn.fame.caring, type: "voyeur"};
+		max = {
+			value: slave.porn.fame.caring,
+			type: "voyeur"
+		};
 	}
 	if (slave.porn.fame.unflinching > max.value) {
-		max = {value: slave.porn.fame.unflinching, type: "unspeakable"};
+		max = {
+			value: slave.porn.fame.unflinching,
+			type: "unspeakable"
+		};
 	}
 	if (slave.porn.fame.sizeQueen > max.value) {
-		max = {value: slave.porn.fame.sizeQueen, type: "huge insertion"};
+		max = {
+			value: slave.porn.fame.sizeQueen,
+			type: "huge insertion"
+		};
 	}
 	if (slave.porn.fame.neglectful > max.value) {
-		max = {value: slave.porn.fame.neglectful, type: "orgasm denial"};
+		max = {
+			value: slave.porn.fame.neglectful,
+			type: "orgasm denial"
+		};
 	}
 	if (slave.porn.fame.cumAddict > max.value) {
-		max = {value: slave.porn.fame.cumAddict, type: "cum addiction"};
+		max = {
+			value: slave.porn.fame.cumAddict,
+			type: "cum addiction"
+		};
 	}
 	if (slave.porn.fame.analAddict > max.value) {
-		max = {value: slave.porn.fame.analAddict, type: "anal addiction"};
+		max = {
+			value: slave.porn.fame.analAddict,
+			type: "anal addiction"
+		};
 	}
 	if (slave.porn.fame.attentionWhore > max.value) {
-		max = {value: slave.porn.fame.attentionWhore, type: "exhibition"};
+		max = {
+			value: slave.porn.fame.attentionWhore,
+			type: "exhibition"
+		};
 	}
 	if (slave.porn.fame.breastGrowth > max.value) {
-		max = {value: slave.porn.fame.breastGrowth, type: "breast expansion"};
+		max = {
+			value: slave.porn.fame.breastGrowth,
+			type: "breast expansion"
+		};
 	}
 	if (slave.porn.fame.abusive > max.value) {
-		max = {value: slave.porn.fame.abusive, type: "abuse"};
+		max = {
+			value: slave.porn.fame.abusive,
+			type: "abuse"
+		};
 	}
 	if (slave.porn.fame.malicious > max.value) {
-		max = {value: slave.porn.fame.malicious, type: "sexual torture"};
+		max = {
+			value: slave.porn.fame.malicious,
+			type: "sexual torture"
+		};
 	}
 	if (slave.porn.fame.selfHating > max.value) {
-		max = {value: slave.porn.fame.selfHating, type: "self hating"};
+		max = {
+			value: slave.porn.fame.selfHating,
+			type: "self hating"
+		};
 	}
 	if (slave.porn.fame.breeder > max.value) {
-		max = {value: slave.porn.fame.breeder, type: "breeder"};
+		max = {
+			value: slave.porn.fame.breeder,
+			type: "breeder"
+		};
 	}
 	if (slave.porn.fame.sub > max.value) {
-		max = {value: slave.porn.fame.sub, type: "submissive"};
+		max = {
+			value: slave.porn.fame.sub,
+			type: "submissive"
+		};
 	}
 	if (slave.porn.fame.cumSlut > max.value) {
-		max = {value: slave.porn.fame.cumSlut, type: "cum"};
+		max = {
+			value: slave.porn.fame.cumSlut,
+			type: "cum"
+		};
 	}
 	if (slave.porn.fame.anal > max.value) {
-		max = {value: slave.porn.fame.anal, type: "buttslut"};
+		max = {
+			value: slave.porn.fame.anal,
+			type: "buttslut"
+		};
 	}
 	if (slave.porn.fame.humiliation > max.value) {
-		max = {value: slave.porn.fame.humiliation, type: "humiliating"};
+		max = {
+			value: slave.porn.fame.humiliation,
+			type: "humiliating"
+		};
 	}
 	if (slave.porn.fame.boobs > max.value) {
-		max = {value: slave.porn.fame.boobs, type: "breast"};
+		max = {
+			value: slave.porn.fame.boobs,
+			type: "breast"
+		};
 	}
 	if (slave.porn.fame.dom > max.value) {
-		max = {value: slave.porn.fame.dom, type: "dominant"};
+		max = {
+			value: slave.porn.fame.dom,
+			type: "dominant"
+		};
 	}
 	if (slave.porn.fame.sadist > max.value) {
-		max = {value: slave.porn.fame.sadist, type: "sadistic"};
+		max = {
+			value: slave.porn.fame.sadist,
+			type: "sadistic"
+		};
 	}
 	if (slave.porn.fame.masochist > max.value) {
-		max = {value: slave.porn.fame.masochist, type: "masochistic"};
+		max = {
+			value: slave.porn.fame.masochist,
+			type: "masochistic"
+		};
 	}
 	if (slave.porn.fame.pregnancy > max.value) {
-		max = {value: slave.porn.fame.pregnancy, type: "pregnancy fetish"};
+		max = {
+			value: slave.porn.fame.pregnancy,
+			type: "pregnancy fetish"
+		};
 	}
 
 	return max;
diff --git a/src/endWeek/saRest.js b/src/endWeek/saRest.js
index e40028c941241cfa3295492f285e6afce5e6e0ef..fad01c69f3ca761908412e352f3d9913d38db686 100644
--- a/src/endWeek/saRest.js
+++ b/src/endWeek/saRest.js
@@ -73,7 +73,7 @@ window.saRest = function saRest(slave) {
 			} else {
 				t += `an incident without lasting effect.`;
 			}
-			cashX(Math.trunc(V.FResult*_vignette.effect), "rest", slave);
+			cashX(Math.trunc(V.FResult * _vignette.effect), "rest", slave);
 		} else if (_vignette.type === "devotion") {
 			if (_vignette.effect > 0) {
 				if (slave.devotion > 50) {
@@ -137,7 +137,7 @@ window.saRest = function saRest(slave) {
 			} else {
 				t += `an incident without lasting effect.`;
 			}
-			repX((V.FResult*_vignette.effect*0.1), "vignette", slave);
+			repX((V.FResult * _vignette.effect * 0.1), "vignette", slave);
 		}
 	}
 
diff --git a/src/endWeek/saServeThePublic.js b/src/endWeek/saServeThePublic.js
index 8c5881d018ba370ea54d4564891362d215d6779b..4cfcfa2acbefdd4fe699b39f2b736b6397a24f67 100644
--- a/src/endWeek/saServeThePublic.js
+++ b/src/endWeek/saServeThePublic.js
@@ -18,10 +18,10 @@ window.saServeThePublic = (function saServeThePublic() {
 
 	return saServeThePublic;
 
-/**
- * @param {App.Entity.SlaveState} slave
- * @returns {string}
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * @returns {string}
+	 */
 	function saServeThePublic(slave) {
 		V = State.variables;
 		T = State.temporary;
@@ -62,10 +62,10 @@ window.saServeThePublic = (function saServeThePublic() {
 		return r;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function gatherStatistics(slave) {
 		/* Statistics gathering */
 		const facility = slave.assignment === Job.CLUB ? V.facility.club : undefined;
@@ -73,10 +73,10 @@ window.saServeThePublic = (function saServeThePublic() {
 		T.incomeStats.customers = slave.sexAmount;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function jobPreface(slave) {
 		if (slave.devotion > 95 || slave.energy > 95) {
 			r += `enthusiastically serves`;
@@ -93,10 +93,10 @@ window.saServeThePublic = (function saServeThePublic() {
 	}
 
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function bonusMultiplierText(slave) {
 		if (V.club > 0) {
 			if ((V.universalRulesFacilityWork === 1 && slave.assignment === "serve the public" && V.clubSpots > 0) || (slave.assignment === "serve in the club")) {
@@ -210,10 +210,10 @@ window.saServeThePublic = (function saServeThePublic() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function usageCountDescripions(slave) {
 		r += ` ${His} appearance attracted ${slave.sexAmount} members of the public (${Math.trunc(slave.sexAmount / 7)} a day)`;
 		if (slave.sexAmount > 160) {
@@ -253,10 +253,10 @@ window.saServeThePublic = (function saServeThePublic() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function comingOfAge(slave) {
 		if (slave.physicalAge === V.minimumSlaveAge && slave.physicalAge === V.fertilityAge && canGetPregnant(slave) && (arcology.FSRepopulationFocus !== "unset" || arcology.FSGenderFundamentalist !== "unset") && arcology.FSRestart === "unset") {
 			if (slave.birthWeek === 0) {
@@ -279,10 +279,10 @@ window.saServeThePublic = (function saServeThePublic() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function mentalEffects(slave) {
 		if (slave.behavioralQuirk === "advocate") {
 			r += ` ${slave.slaveName} <span class="hotpink">really enjoys</span> being able to share ${his} convert's enthusiasm about slavery with new people.`;
@@ -300,10 +300,10 @@ window.saServeThePublic = (function saServeThePublic() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function physicalEffects(slave) {
 		let injury = 0;
 		if (slave.assignment !== "serve in the club") {
@@ -446,10 +446,10 @@ window.saServeThePublic = (function saServeThePublic() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function slaveSkills(slave) {
 		let skillIncrease;
 		if (!setup.entertainmentCareers.includes(slave.career) && slave.skill.entertainer < V.masteredXP) {
@@ -557,10 +557,10 @@ window.saServeThePublic = (function saServeThePublic() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function publicReactions(slave) {
 		let sstp;
 
@@ -573,7 +573,7 @@ window.saServeThePublic = (function saServeThePublic() {
 			if (totalRelatives(slave) > 0) {
 				let children = [];
 				children = V.slaves.filter(
-					function(s) {
+					function (s) {
 						return ((slave.ID === s.father || slave.ID === s.mother || s.ID === slave.father || s.ID === slave.mother || areSisters(slave, s) > 0) && (s.assignment === slave.assignment));
 					}
 				);
@@ -641,7 +641,7 @@ window.saServeThePublic = (function saServeThePublic() {
 			r += ` ${He} attracts fewer people due to ${his} minor injury.`;
 		}
 
-		if ((slave.hears === -1 && slave.earwear !== "hearing aids") || (slave.hears === 0 && slave.earwear === "muffling ear plugs") ||(slave.hears === -2)) {
+		if ((slave.hears === -1 && slave.earwear !== "hearing aids") || (slave.hears === 0 && slave.earwear === "muffling ear plugs") || (slave.hears === -2)) {
 			r += ` ${His} trouble hearing causes ${him} to miss potential partners.`;
 		}
 
@@ -1201,10 +1201,10 @@ window.saServeThePublic = (function saServeThePublic() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function addFlaw(slave) {
 		if (slave.devotion < 10) {
 			if (jsRandom(1, 100) > 70) {
@@ -1222,10 +1222,10 @@ window.saServeThePublic = (function saServeThePublic() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function addRep(slave) {
 		if (slave.assignment !== "recruit girls") {
 			if (slave.assignment === "serve in the club") {
@@ -1239,10 +1239,10 @@ window.saServeThePublic = (function saServeThePublic() {
 		T.incomeStats.income += Math.trunc((slave.sexAmount * slave.sexQuality) * (1 + (0.003 * slave.skill.entertainment)) * 0.15);
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function applyFSDecoration(slave) {
 		/* FACILITY DECORATION IMPACTS */
 		const fsBeauty = (0.0005 * V.FSSingleSlaveRep * slave.sexAmount);
@@ -1322,10 +1322,10 @@ window.saServeThePublic = (function saServeThePublic() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function sexCounts(slave) {
 		/* SEX ACT COUNTS AND SEXUAL SATISFACTION */
 
@@ -1404,10 +1404,10 @@ window.saServeThePublic = (function saServeThePublic() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function sexualSatiation(slave) {
 		if (slave.need) {
 			if (slave.fetishKnown) {
@@ -1487,10 +1487,10 @@ window.saServeThePublic = (function saServeThePublic() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function assignmentVignette(slave) {
 		let vignette;
 		if (slave.assignment !== "recruit girls") {
diff --git a/src/endWeek/saWorkAGloryHole.js b/src/endWeek/saWorkAGloryHole.js
index 008051f98dd494aa29a70b16ebf12c01df0730aa..0ac6216ffe613ab414e515eec7356570a27706c4 100644
--- a/src/endWeek/saWorkAGloryHole.js
+++ b/src/endWeek/saWorkAGloryHole.js
@@ -37,10 +37,10 @@ window.saWorkAGloryHole = (function saWorkAGloryHole() {
 		return r;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- *
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 *
+	 */
 	function gatherStatistics(slave) {
 		/* Statistics gathering */
 		const facility = slave.assignment === Job.ARCADE ? V.facility.arcade : undefined;
@@ -48,10 +48,10 @@ window.saWorkAGloryHole = (function saWorkAGloryHole() {
 		T.incomeStats.customers = beauty;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- *
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 *
+	 */
 	function jobPreface(slave) {
 		r += ` is `;
 		if (slave.fuckdoll === 0) {
@@ -85,10 +85,10 @@ window.saWorkAGloryHole = (function saWorkAGloryHole() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function physicalEffects(slave) {
 		// check usage counts for these — more fucks should be more damaging
 		if (slave.curatives > 0 || slave.inflationType === "curative") {
@@ -161,10 +161,10 @@ window.saWorkAGloryHole = (function saWorkAGloryHole() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function mentalEffects(slave) {
 		if (slave.fetish === "mindbroken") {
 			r += ` ${He} serves ${his} role as a mindless set of holes to perfection.`;
@@ -221,10 +221,10 @@ window.saWorkAGloryHole = (function saWorkAGloryHole() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function jobBody(slave) {
 		r += ` ${His} feelings, skills, and appearance do not matter. ${He} is condemned to a world that consists of a tiny cell, featureless except for the never-ending dicks ${he} is required to service. You `;
 		if (V.publicFuckdolls === 0) {
@@ -235,10 +235,10 @@ window.saWorkAGloryHole = (function saWorkAGloryHole() {
 		r += ` for the use of ${slave.slaveName}'s holes this week.`;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function applyFSDecoration(slave) {
 		/* FACILITY DECORATION IMPACTS */
 		if (slave.assignment === "be confined in the arcade" && V.arcadeDecoration !== "standard") {
@@ -320,10 +320,10 @@ window.saWorkAGloryHole = (function saWorkAGloryHole() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function sexCounts(slave) {
 		/* SEX ACT COUNTS AND SEXUAL SATISFACTION */
 
@@ -428,10 +428,10 @@ window.saWorkAGloryHole = (function saWorkAGloryHole() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * 
+	 */
 	function profitReport(slave) {
 		if (V.publicFuckdolls === 0) {
 			if (slave.assignment === "work a glory hole") {
diff --git a/src/endWeek/saWorkTheFarm.js b/src/endWeek/saWorkTheFarm.js
index 91ff1e15a038be9f5be110cffc91ba31762044b7..ba39bcec6cb841fa86d5d2097ae1575873c13908 100644
--- a/src/endWeek/saWorkTheFarm.js
+++ b/src/endWeek/saWorkTheFarm.js
@@ -28,7 +28,7 @@ window.saWorkTheFarm = function saWorkTheFarm(slave) {
 		} else {
 			t += `care`;
 		}
-		if (V.Farmer.skill.oral) {			// TODO: keep this? replace with something else?
+		if (V.Farmer.skill.oral) { // TODO: keep this? replace with something else?
 			t += ` and talented tongue`;
 		}
 		t += `. `;
@@ -212,14 +212,14 @@ window.saWorkTheFarm = function saWorkTheFarm(slave) {
 			}
 		}
 		if (arcology.FSYouthPreferentialist !== "unset") {
-			if (slave.visualAge > 25) {		// TODO: not sure about this age
+			if (slave.visualAge > 25) { // TODO: not sure about this age
 				t += `${arcology.name }'s citizens <span class=red>disapprove</span> of your using such old slaves to put on shows. `;
 			} else {
 				t += `${arcology.name }'s citizens <span class=green>approve</span> of your using young slaves to put on shows. `;
 			}
 		}
 		if (arcology.FSMaturityPreferentialist !== "unset") {
-			if (slave.visualAge > 25) {		// TODO: not sure about this age
+			if (slave.visualAge > 25) { // TODO: not sure about this age
 				t += `${arcology.name }'s citizens <span class=green>approve</span> of your using mature slaves to put on shows. `;
 			} else {
 				t += `${arcology.name }'s citizens <span class=red>disapprove</span> of your using such young slaves to put on shows. `;
@@ -286,7 +286,7 @@ window.saWorkTheFarm = function saWorkTheFarm(slave) {
 		if (setup.entertainmentCareers.includes(slave.career)) {
 			t += ` ${He} has experience with putting on shows from ${his} life before ${he} was a slave, making ${him} more effective at putting on shows.`;
 		}
-		if (setup.farmerCareers.includes(slave.career)) {		// TODO: does this even make sense to include?
+		if (setup.farmerCareers.includes(slave.career)) { // TODO: does this even make sense to include?
 			// TODO: write this
 		}
 		if (slave.prestige === 1) {
@@ -296,7 +296,7 @@ window.saWorkTheFarm = function saWorkTheFarm(slave) {
 		} else if (slave.prestige === 3) {
 			t += `Because ${he} is so famous, ${he} earns a lot more then ${he} would otherwise.`;
 		}
-		if (slave.pornPrestige === 1) {		// TODO: are prestige and pornPrestige mutually exclusive?
+		if (slave.pornPrestige === 1) { // TODO: are prestige and pornPrestige mutually exclusive?
 			t += `${He} earns a bit more because some of your citizens already know $him from porn. `;
 		} else if (slave.pornPrestige === 2) {
 			t += `${He} earns quite a bit more because a lot of your citizens already know $him from porn. `;
@@ -388,7 +388,7 @@ window.saWorkTheFarm = function saWorkTheFarm(slave) {
 		} else if (slave.intelligence < -50) {
 			// TODO: write this
 		}
-		if (slave.energy <= 20 ) {
+		if (slave.energy <= 20) {
 			// TODO: write this
 		} else if (slave.energy <= 40) {
 			// TODO: write this
@@ -407,7 +407,7 @@ window.saWorkTheFarm = function saWorkTheFarm(slave) {
 			// TODO: write this
 		} else if (slave.fetish === "masochist") {
 			// TODO: write this
-		}	// TODO: incoroporate quirks
+		} // TODO: incoroporate quirks
 	}
 
 	// Close Shows
@@ -419,7 +419,7 @@ window.saWorkTheFarm = function saWorkTheFarm(slave) {
 			if (V.seeBestiality === 1) {
 				t += `Getting fucked by animals is the perfect job for ${him}, as far as ${he} can tell. <span class=hotpink>${He} is happy</span> to spend ${his} days being utterly degraded. `;
 			} else {
-				t += `${He} loves putting on shows with animals, and as far as ${he} can tell, it's the perfect job for ${him}. <span class=hotpink>${He} is happy</span> to spend ${his} days doing something so degrading. `;		// TODO: not sure how degrading putting on shows is
+				t += `${He} loves putting on shows with animals, and as far as ${he} can tell, it's the perfect job for ${him}. <span class=hotpink>${He} is happy</span> to spend ${his} days doing something so degrading. `; // TODO: not sure how degrading putting on shows is
 			}
 		}
 		slave.devotion += 1;
@@ -448,8 +448,8 @@ window.saWorkTheFarm = function saWorkTheFarm(slave) {
 			} else {
 				t += ` an incident without lasting effect. `;
 			}
-			cashX(Math.trunc(V.FResult*vignette.effect), "farmyard");
-			incomeStats.income += (Math.trunc(V.FResult*vignette.effect));
+			cashX(Math.trunc(V.FResult * vignette.effect), "farmyard");
+			incomeStats.income += (Math.trunc(V.FResult * vignette.effect));
 		} else if (vignette.type === "devotion") {
 			if (vignette.effect > 0) {
 				if (slave.devotion > 50) {
@@ -474,7 +474,7 @@ window.saWorkTheFarm = function saWorkTheFarm(slave) {
 			} else {
 				t += ` an incident without lasting effect. `;
 			}
-			slave.devotion += 1*vignette.effect;
+			slave.devotion += 1 * vignette.effect;
 		} else if (vignette.type === "trust") {
 			if (vignette.effect > 0) {
 				if (slave.trust > 20) {
@@ -495,7 +495,7 @@ window.saWorkTheFarm = function saWorkTheFarm(slave) {
 			} else {
 				t += ` an incident without lasting effect. `;
 			}
-			slave.trust += 1*vignette.effect;
+			slave.trust += 1 * vignette.effect;
 		} else if (vignette.type === "health") {
 			if (vignette.effect > 0) {
 				t += ` <span class=green>improving ${his} health.</span> `;
@@ -504,7 +504,7 @@ window.saWorkTheFarm = function saWorkTheFarm(slave) {
 			} else {
 				t += ` an incident without lasting effect. `;
 			}
-			slave.health += 2*vignette.effect;
+			slave.health += 2 * vignette.effect;
 		} else {
 			FResult(slave);
 			if (vignette.effect > 0) {
@@ -514,8 +514,8 @@ window.saWorkTheFarm = function saWorkTheFarm(slave) {
 			} else {
 				t += ` an incident without lasting effect. `;
 			}
-			repX(Math.trunc(V.FResult*vignette.effect*0.1), "vignette", slave);
-			incomeStats.rep += Math.trunc(V.FResult*vignette.effect*0.1);
+			repX(Math.trunc(V.FResult * vignette.effect * 0.1), "vignette", slave);
+			incomeStats.rep += Math.trunc(V.FResult * vignette.effect * 0.1);
 		}
 	}
 
@@ -524,7 +524,7 @@ window.saWorkTheFarm = function saWorkTheFarm(slave) {
 	// Open Facility Decorations
 
 	if (V.farmyardDecoration !== "standard") {
-		const fsGain = Math.min(0.0001*V.FSSingleSlaveRep*(food), 1);
+		const fsGain = Math.min(0.0001 * V.FSSingleSlaveRep * (food), 1);
 		switch (V.farmyardDecoration) {
 			case "Roman Revivalist":
 				arcology.FSRomanRevivalist = Math.clamp(arcology.FSRomanRevivalist += fsGain, 0, 100);
diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js
index c9ca26cff6a6d73a6d92d4cbcd5e1f4b21dd4914..995677bbd4901fd3068197f6655f4e68252f8b59 100644
--- a/src/js/DefaultRules.js
+++ b/src/js/DefaultRules.js
@@ -1,6 +1,6 @@
 // this code applies RA rules onto slaves
 
-window.DefaultRules = (function() {
+window.DefaultRules = (function () {
 	"use strict";
 	let V;
 	let r;
@@ -9,11 +9,11 @@ window.DefaultRules = (function() {
 	let him;
 	let his;
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @returns {object}
 	 */
-function DefaultRules(slave) {
+	function DefaultRules(slave) {
 		if (slave.useRulesAssistant === 0) return r; // exempted
 
 		V = State.variables;
@@ -80,23 +80,23 @@ function DefaultRules(slave) {
 		return r;
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @returns {map} 
-	*/
-function MergeRules(slave) {
+	 */
+	function MergeRules(slave) {
 		// merge all rules applying on a slave into one big rule
 		const rules = V.defaultRules.filter((x) => ruleAppliesP(x.condition, slave));
 		slave.currentRules = rules.map((x) => x.ID);
 		return mergeRules(rules.map((x) => ProcessAssignments(slave, Object.assign({}, x.set))));
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule	// not sure about this
 	 * @returns {object}	// not sure about this
-	*/
-function ProcessAssignments(slave, rule) {
+	 */
+	function ProcessAssignments(slave, rule) {
 		// Before merging rules, we process assignments for each rule separately so we can remove slaves from facilities when they no longer qualify, even if the final "winning" rule assigns them elsewhere
 		// We also ignore inapplicable assignments for the current slave, so we only merge assignments that are valid
 		switch (rule.setAssignment) {
@@ -182,7 +182,7 @@ function ProcessAssignments(slave, rule) {
 				break;
 
 			case "work in the dairy":
-				if ((V.dairy > V.dairySlaves+V.bioreactorsXY+V.bioreactorsXX+V.bioreactorsHerm+V.bioreactorsBarren)) {
+				if ((V.dairy > V.dairySlaves + V.bioreactorsXY + V.bioreactorsXX + V.bioreactorsHerm + V.bioreactorsBarren)) {
 					if ((slave.indentureRestrictions > 0) && (V.dairyRestraintsSetting > 1)) {
 						break;
 					} else if (((slave.indentureRestrictions > 1) && (V.dairyRestraintsSetting > 0)) || (slave.breedingMark === 1 && V.propOutcome === 1 && V.dairyRestriantsSettings > 0) || ((V.dairyPregSetting > 0) && ((slave.bellyImplant !== -1) || (slave.broodmother !== 0)))) {
@@ -233,7 +233,7 @@ function ProcessAssignments(slave, rule) {
 
 			case "learn in the schoolroom":
 				if ((V.schoolroomSlaves < V.schoolroom && slave.fetish !== "mindbroken" && (slave.devotion >= -20 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)))) {
-					if ((slave.intelligenceImplant < 30) || (slave.voice !== 0 && slave.accent+V.schoolroomUpgradeLanguage > 2) || (slave.skill.oral <= 10+V.schoolroomUpgradeSkills*20) || (slave.skill.whoring <= 10+V.schoolroomUpgradeSkills*20) || (slave.skill.entertainment <= 10+V.schoolroomUpgradeSkills*20) || (slave.skill.anal < 10+V.schoolroomUpgradeSkills*20) || ((slave.vagina >= 0) && (slave.skill.vaginal < 10+V.schoolroomUpgradeSkills*20))) {
+					if ((slave.intelligenceImplant < 30) || (slave.voice !== 0 && slave.accent + V.schoolroomUpgradeLanguage > 2) || (slave.skill.oral <= 10 + V.schoolroomUpgradeSkills * 20) || (slave.skill.whoring <= 10 + V.schoolroomUpgradeSkills * 20) || (slave.skill.entertainment <= 10 + V.schoolroomUpgradeSkills * 20) || (slave.skill.anal < 10 + V.schoolroomUpgradeSkills * 20) || ((slave.vagina >= 0) && (slave.skill.vaginal < 10 + V.schoolroomUpgradeSkills * 20))) {
 						break;
 					} else {
 						RAFacilityRemove(slave, rule); // before deleting rule.setAssignment
@@ -311,11 +311,11 @@ function ProcessAssignments(slave, rule) {
 		return rule;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * @param {object} rule
- */
-function AssignJobToSlave(slave, rule) {
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * @param {object} rule
+	 */
+	function AssignJobToSlave(slave, rule) {
 		// place slave on assignment defined by the rule
 		if ((rule.setAssignment !== undefined && rule.setAssignment !== "no default setting")) {
 			if (((rule.setAssignment === "choose her own job" && !slave.choosesOwnAssignment) || rule.setAssignment !== slave.assignment)) {
@@ -371,11 +371,11 @@ function AssignJobToSlave(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessClothing(slave, rule) {
+	 */
+	function ProcessClothing(slave, rule) {
 		// apply clothes to slave
 		if ((rule.clothes !== undefined) && (rule.clothes !== "no default setting")) {
 			if ((rule.clothes === "choosing her own clothes")) {
@@ -392,11 +392,11 @@ function ProcessClothing(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessCollar(slave, rule) {
+	 */
+	function ProcessCollar(slave, rule) {
 		// apply collar to slave
 		if ((rule.collar !== undefined) && (rule.collar !== "no default setting")) {
 			if ((slave.collar !== rule.collar)) {
@@ -423,11 +423,11 @@ function ProcessCollar(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessEyewear(slave, rule) {
+	 */
+	function ProcessEyewear(slave, rule) {
 		// apply glasses, contacts to slave
 		if ((rule.eyewear !== undefined) && (rule.eyewear !== "no default setting")) {
 			switch (rule.eyewear) {
@@ -517,11 +517,11 @@ function ProcessEyewear(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessEarwear(slave, rule) {
+	 */
+	function ProcessEarwear(slave, rule) {
 		// apply earplugs to slave
 		if ((rule.earwear !== undefined) && (rule.earwear !== "no default setting")) {
 			switch (rule.earwear) {
@@ -580,11 +580,11 @@ function ProcessEarwear(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessDildos(slave, rule) {
+	 */
+	function ProcessDildos(slave, rule) {
 		// apply vaginal dildos to slave
 		if (slave.vagina === 0) {
 			ProcessVVirginDildos(slave, rule);
@@ -596,11 +596,11 @@ function ProcessDildos(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessVVirginDildos(slave, rule) {
+	 */
+	function ProcessVVirginDildos(slave, rule) {
 		// apply vaginal dildos to vaginal virgins
 		if ((rule.virginAccessory !== undefined) && (rule.virginAccessory !== "no default setting")) {
 			if (slave.vaginalAccessory !== rule.virginAccessory) {
@@ -657,11 +657,11 @@ function ProcessVVirginDildos(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessAVirginDildos(slave, rule) {
+	 */
+	function ProcessAVirginDildos(slave, rule) {
 		// apply vaginal dildos to anal virgins
 		if ((rule.aVirginAccessory !== undefined) && (rule.aVirginAccessory !== "no default setting")) {
 			if (slave.vaginalAccessory !== rule.aVirginAccessory) {
@@ -718,11 +718,11 @@ function ProcessAVirginDildos(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessNonVirginDildos(slave, rule) {
+	 */
+	function ProcessNonVirginDildos(slave, rule) {
 		// apply vaginal dildos to non-virgins
 		if ((rule.vaginalAccessory !== undefined) && (rule.vaginalAccessory !== "no default setting")) {
 			if (slave.vaginalAccessory !== rule.vaginalAccessory) {
@@ -778,11 +778,11 @@ function ProcessNonVirginDildos(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessVaginalAttachments(slave, rule) {
+	 */
+	function ProcessVaginalAttachments(slave, rule) {
 		// apply vaginal accessories to slaves
 		if (slave.vaginalAccessory === "none" && slave.vaginalAttachment === "vibrator") {
 			slave.vaginalAttachment = "none"; // clears dildo attachment when dildos are removed above
@@ -818,11 +818,11 @@ function ProcessVaginalAttachments(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessDickAccessories(slave, rule) {
+	 */
+	function ProcessDickAccessories(slave, rule) {
 		// apply dick accessories to slave
 		if ((slave.dick > 0)) {
 			if (slave.anus === 0) {
@@ -851,11 +851,11 @@ function ProcessDickAccessories(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessChastity(slave, rule) {
+	 */
+	function ProcessChastity(slave, rule) {
 		// apply chastity to slave
 		if ((rule.chastityVagina !== undefined) && (rule.chastityVagina !== "no default setting")) {
 			if (slave.vagina > -1) {
@@ -893,11 +893,11 @@ function ProcessChastity(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessShoes(slave, rule) {
+	 */
+	function ProcessShoes(slave, rule) {
 		// apply shoes to slave
 		if ((rule.shoes !== undefined) && (rule.shoes !== "no default setting")) {
 			if ((slave.shoes !== rule.shoes)) {
@@ -909,11 +909,11 @@ function ProcessShoes(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessBellyAccessories(slave, rule) {
+	 */
+	function ProcessBellyAccessories(slave, rule) {
 		// apply belly accessories to slave
 		if ((rule.bellyAccessory !== undefined) && (rule.bellyAccessory !== "no default setting")) {
 			if ((slave.bellyAccessory !== rule.bellyAccessory)) {
@@ -932,22 +932,22 @@ function ProcessBellyAccessories(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessLegAccessory(slave, rule) {
+	 */
+	function ProcessLegAccessory(slave, rule) {
 		if (rule.legAccessory !== undefined && rule.legAccessory !== "no default setting" && slave.amp !== 1 && slave.legAccessory !== rule.legAccessory) {
 			slave.legAccessory = rule.legAccessory;
 			r += `<br>${slave.slaveName}'s leg accessory was set to ${rule.legAccessory}.`;
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessAnalAccessories(slave, rule) {
+	 */
+	function ProcessAnalAccessories(slave, rule) {
 		// apply buttplugs and buttplug accessories to slave
 		if (slave.chastityAnus !== 1) {
 			if (slave.anus === 0) {
@@ -959,11 +959,11 @@ function ProcessAnalAccessories(slave, rule) {
 		ProcessButtplugAttachments(slave, rule);
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessAnalVirginButtplugs(slave, rule) {
+	 */
+	function ProcessAnalVirginButtplugs(slave, rule) {
 		// apply buttplugs to virgins
 		if ((rule.aVirginButtplug !== undefined) && (rule.aVirginButtplug !== "no default setting")) {
 			if ((slave.buttplug !== rule.aVirginButtplug)) {
@@ -1020,11 +1020,11 @@ function ProcessAnalVirginButtplugs(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessNonVirginButtplugs(slave, rule) {
+	 */
+	function ProcessNonVirginButtplugs(slave, rule) {
 		// apply buttplugs to non-virgins
 		if ((rule.buttplug !== undefined) && (rule.buttplug !== "no default setting")) {
 			if ((slave.buttplug !== rule.buttplug)) {
@@ -1081,11 +1081,11 @@ function ProcessNonVirginButtplugs(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessButtplugAttachments(slave, rule) {
+	 */
+	function ProcessButtplugAttachments(slave, rule) {
 		// apply buttplug accessories to slaves
 		if (slave.buttplug === "none" && slave.buttplugAttachment !== "none") {
 			slave.buttplugAttachment = "none"; // clears buttplug attachments when buttplugs are removed above
@@ -1105,32 +1105,32 @@ function ProcessButtplugAttachments(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessBellyImplant(slave, rule) {
+	 */
+	function ProcessBellyImplant(slave, rule) {
 		// Here is belly implant size control, it's used in Surgery Degradation passage to setup devotion and trust changes.
-	// silent calls to surgery degradation have been replaced with a js function, which is less hacky
+		// silent calls to surgery degradation have been replaced with a js function, which is less hacky
 		if ((rule.bellyImplantVol !== undefined) && slave.bellyImplant >= 0 && rule.bellyImplantVol >= 0) {
 			r += "<br>";
-			if (slave.health > -10 ) {
+			if (slave.health > -10) {
 				let diff = rule.bellyImplantVol - slave.bellyImplant;
 				if (diff >= 5000 && slave.bellyPain === 0 && slave.health > 50) {
 					r += `${slave.slaveName}'s belly is way too small, so ${he} has been directed to have intensive belly implant filling procedures throughout this week.`;
 					slave.bellyImplant += 1000;
 					slave.bellyPain += 2;
 					BellySurgery(slave, diff);
-				} else if (diff >= 500 && slave.bellyPain < 2 ) {
+				} else if (diff >= 500 && slave.bellyPain < 2) {
 					r += `${slave.slaveName}'s belly has not reached the desired size, so ${he} has been directed to have belly implant filling procedures throughout this week.`;
 					slave.bellyImplant += 500;
 					slave.bellyPain += 1;
 					BellySurgery(slave, diff);
-				} else if (diff <= -5000 ) {
+				} else if (diff <= -5000) {
 					r += `${slave.slaveName}'s belly is way too big, so ${he} has been directed to have intensive belly implant draining procedures throughout this week.`;
 					slave.bellyImplant -= 1000;
 					BellySurgery(slave, diff);
-				} else if (diff <= -500 ) {
+				} else if (diff <= -500) {
 					r += `${slave.slaveName}'s belly is too big, so ${he} has been directed to have belly implant draining procedures throughout this week.`;
 					slave.bellyImplant -= 500;
 					BellySurgery(slave, diff);
@@ -1141,11 +1141,11 @@ function ProcessBellyImplant(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} volume
-	*/
-function BellySurgery(slave, volume) {
+	 */
+	function BellySurgery(slave, volume) {
 		// this is a port of the belly implant portion of surgeryDegradation.tw
 		// that way, we don't have to use ugly hacks
 		// the original still exists, and may be worth replacing
@@ -1187,11 +1187,11 @@ function BellySurgery(slave, volume) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessContraceptives(slave, rule) {
+	 */
+	function ProcessContraceptives(slave, rule) {
 		if ((rule.preg !== undefined) && (rule.preg !== "no default setting")) {
 			if (rule.preg === true && slave.preg === 0) {
 				r += `<br>${slave.slaveName} is being given contraceptives.`;
@@ -1203,11 +1203,11 @@ function ProcessContraceptives(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessAbortions(slave, rule) {
+	 */
+	function ProcessAbortions(slave, rule) {
 		if ((rule.abortion !== undefined) && (rule.abortion !== "no default setting")) {
 			if (rule.abortion === "all") {
 				if (slave.preg < 4 || (slave.fetish === "mindbroken" || slave.fuckdoll !== 0)) {
@@ -1287,11 +1287,11 @@ function ProcessAbortions(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessAssetGrowthDrugs(slave, rule) {
+	 */
+	function ProcessAssetGrowthDrugs(slave, rule) {
 		// Asset Growth
 		const growthDrugs = new Set(["breast injections", "breast redistributors", "butt injections", "butt redistributors", "hyper breast injections", "hyper butt injections", "hyper penis enhancement", "hyper testicle enhancement", "intensive breast injections", "intensive butt injections", "intensive penis enhancement", "intensive testicle enhancement", "lip atrophiers", "lip injections", "penis atrophiers", "penis enhancement", "testicle atrophiers", "testicle enhancement"]);
 		if ((slave.drugs === "super fertility drugs" || slave.drugs === "fertility drugs") && isFertile(slave)) {
@@ -1305,65 +1305,85 @@ function ProcessAssetGrowthDrugs(slave, rule) {
 			if (rule.growth_boobs !== "no default setting") {
 				let _priority;
 				if (slave.boobs < rule.growth_boobs) {
-					_priority = {drug: "breast injections", weight: (rule.growth_boobs-slave.boobs)/rule.growth_boobs};
+					_priority = {
+						drug: "breast injections",
+						weight: (rule.growth_boobs - slave.boobs) / rule.growth_boobs
+					};
 					_priorities.push(_priority);
-				} else if ((slave.boobs > parseInt(rule.growth_boobs)+200) && slave.weight < 100 && (V.arcologies[0].FSSlimnessEnthusiastResearch === 1)) {
+				} else if ((slave.boobs > parseInt(rule.growth_boobs) + 200) && slave.weight < 100 && (V.arcologies[0].FSSlimnessEnthusiastResearch === 1)) {
 					_priority = {
 						drug: "breast redistributors",
-						weight: (1+((slave.boobs-slave.boobsImplant-slave.boobsMilk-rule.growth_boobs)/rule.growth_boobs))};
+						weight: (1 + ((slave.boobs - slave.boobsImplant - slave.boobsMilk - rule.growth_boobs) / rule.growth_boobs))
+					};
 					_priorities.push(_priority);
 				}
 			}
 			if (rule.growth_butt !== "no default setting") {
 				let _priority;
 				if (slave.butt < rule.growth_butt) {
-					_priority = {drug: "butt injections", weight: (rule.growth_butt-slave.butt)/rule.growth_butt};
+					_priority = {
+						drug: "butt injections",
+						weight: (rule.growth_butt - slave.butt) / rule.growth_butt
+					};
 					_priorities.push(_priority);
 				} else if ((Math.trunc(slave.butt) > rule.growth_butt) && slave.weight < 100 && (V.arcologies[0].FSSlimnessEnthusiastResearch === 1)) {
 					_priority = {
 						drug: "butt redistributors",
-						weight: (1+((slave.butt-slave.buttImplant-rule.growth_butt)/rule.growth_butt))};
+						weight: (1 + ((slave.butt - slave.buttImplant - rule.growth_butt) / rule.growth_butt))
+					};
 					_priorities.push(_priority);
 				}
 			}
 			if (rule.growth_lips !== "no default setting") {
 				let _priority;
 				if (slave.lips < rule.growth_lips) {
-					_priority = {drug: "lip injections", weight: (rule.growth_lips-slave.lips)/rule.growth_lips};
+					_priority = {
+						drug: "lip injections",
+						weight: (rule.growth_lips - slave.lips) / rule.growth_lips
+					};
 					_priorities.push(_priority);
 				} else if ((slave.lips > rule.growth_lips) && (V.arcologies[0].FSSlimnessEnthusiastResearch === 1)) {
 					_priority = {
 						drug: "lip atrophiers",
-						weight: (1+((slave.lips-slave.lipsImplant-rule.growth_lips)/rule.growth_lips))};
+						weight: (1 + ((slave.lips - slave.lipsImplant - rule.growth_lips) / rule.growth_lips))
+					};
 					_priorities.push(_priority);
 				}
 			}
 			if (rule.growth_dick !== "no default setting" && slave.dick) {
 				let _priority;
 				if (slave.dick < rule.growth_dick) {
-					_priority = {drug: "penis enhancement", weight: (rule.growth_dick-slave.dick)/rule.growth_dick};
+					_priority = {
+						drug: "penis enhancement",
+						weight: (rule.growth_dick - slave.dick) / rule.growth_dick
+					};
 					_priorities.push(_priority);
 				} else if ((slave.dick > rule.growth_dick) && (V.arcologies[0].FSSlimnessEnthusiastResearch === 1)) {
 					_priority = {
 						drug: "penis atrophiers",
-						weight: (1+((slave.dick-rule.growth_dick)/rule.growth_dick))};
+						weight: (1 + ((slave.dick - rule.growth_dick) / rule.growth_dick))
+					};
 					_priorities.push(_priority);
 				}
 			}
 			if (rule.growth_balls !== "no default setting" && slave.balls) {
 				let _priority;
 				if (slave.balls < rule.growth_balls) {
-					_priority = {drug: "testicle enhancement", weight: (rule.growth_balls-slave.balls)/rule.growth_balls};
+					_priority = {
+						drug: "testicle enhancement",
+						weight: (rule.growth_balls - slave.balls) / rule.growth_balls
+					};
 					_priorities.push(_priority);
 				} else if ((slave.balls > rule.growth_balls) && (V.arcologies[0].FSSlimnessEnthusiastResearch === 1)) {
 					_priority = {
 						drug: "testicle atrophiers",
-						weight: (1+((slave.balls-rule.growth_balls)/rule.growth_balls))};
+						weight: (1 + ((slave.balls - rule.growth_balls) / rule.growth_balls))
+					};
 					_priorities.push(_priority);
 				}
 			}
 			if (_priorities.length > 1) {
-			_priorities = _priorities.sort(function(a, b) {
+				_priorities = _priorities.sort(function (a, b) {
 					if (a.weight > b.weight) {
 						return -1;
 					}
@@ -1386,9 +1406,9 @@ function ProcessAssetGrowthDrugs(slave, rule) {
 						r += `${Math.trunc(_priorities[0].weight*100)}% `;
 					}
 					if (_priorities[0].weight < 1) {
-						r+= "below ";
+						r += "below ";
 					} else {
-						r+= "above ";
+						r += "above ";
 					}
 					r += "the targeted size.";
 				}
@@ -1456,7 +1476,7 @@ function ProcessAssetGrowthDrugs(slave, rule) {
 			}
 			if (V.arcologies[0].FSSlimnessEnthusiastResearch === 1) {
 				if (rule.growth_boobs !== "no default setting") {
-					if (slave.boobs-slave.boobsImplant-slave.boobsMilk > parseInt(rule.growth_boobs)+200 && slave.weight < 100) {
+					if (slave.boobs - slave.boobsImplant - slave.boobsMilk > parseInt(rule.growth_boobs) + 200 && slave.weight < 100) {
 						if (slave.drugs !== "breast redistributors") {
 							slave.drugs = "breast redistributors";
 							r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`;
@@ -1465,7 +1485,7 @@ function ProcessAssetGrowthDrugs(slave, rule) {
 					}
 				}
 				if (rule.growth_butt !== "no default setting") {
-					if (Math.trunc(slave.butt-slave.buttImplant) > rule.growth_butt && slave.weight < 100) {
+					if (Math.trunc(slave.butt - slave.buttImplant) > rule.growth_butt && slave.weight < 100) {
 						if (slave.drugs !== "butt redistributors") {
 							slave.drugs = "butt redistributors";
 							r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`;
@@ -1474,7 +1494,7 @@ function ProcessAssetGrowthDrugs(slave, rule) {
 					}
 				}
 				if (rule.growth_lips !== "no default setting") {
-					if (slave.lips-slave.lipsImplant > rule.growth_lips) {
+					if (slave.lips - slave.lipsImplant > rule.growth_lips) {
 						if (slave.drugs !== "lip atrophiers") {
 							slave.drugs = "lip atrophiers";
 							r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`;
@@ -1508,11 +1528,11 @@ function ProcessAssetGrowthDrugs(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessOtherDrugs(slave, rule) {
+	 */
+	function ProcessOtherDrugs(slave, rule) {
 		// Other Drugs
 		if (slave.indentureRestrictions < 2 && rule.drug !== "no default setting" && slave.drugs !== rule.drug) {
 			let flag = true;
@@ -1667,7 +1687,7 @@ function ProcessOtherDrugs(slave, rule) {
 					}
 					break;
 
-				
+
 			}
 			if (flag) {
 				slave.drugs = rule.drug;
@@ -1679,11 +1699,11 @@ function ProcessOtherDrugs(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessEnema(slave, rule) {
+	 */
+	function ProcessEnema(slave, rule) {
 		if ((rule.inflationType !== undefined) && (rule.inflationType !== "no default setting")) {
 			if (slave.inflationType !== rule.inflationType) {
 				if ((slave.inflationType === "curative" && slave.health > 90) || (slave.inflationType === "tightener" && slave.anus <= 1 && slave.vagina <= 1)) {
@@ -1724,11 +1744,11 @@ function ProcessEnema(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessDiet(slave, rule) {
+	 */
+	function ProcessDiet(slave, rule) {
 		// Diet Setting
 		if (rule.diet !== undefined && rule.diet !== "no default setting") {
 			/*
@@ -1763,12 +1783,12 @@ function ProcessDiet(slave, rule) {
 							r += `<br>${slave.slaveName} is too skinny so ${his} diet has been set to fattening.`;
 						}
 					} else if ((rule.muscles !== undefined) && (rule.muscles !== "no default setting") && (slave.amp !== 1)) {
-						if ((slave.muscles >= rule.muscles+8)) {
+						if ((slave.muscles >= rule.muscles + 8)) {
 							if ((slave.diet !== "slimming")) {
 								slave.diet = "slimming";
 								r += `<br>${slave.slaveName} has been put on a slimming exercise regime.`;
 							}
-						} else if ((slave.muscles <= rule.muscles-2)) {
+						} else if ((slave.muscles <= rule.muscles - 2)) {
 							if ((slave.diet !== "muscle building")) {
 								slave.diet = "muscle building";
 								r += `<br>${slave.slaveName} has been put on a muscle building exercise regime.`;
@@ -1797,12 +1817,12 @@ function ProcessDiet(slave, rule) {
 							r += `<br>${slave.slaveName} is too skinny so ${his} diet has been set to fattening.`;
 						}
 					} else if ((rule.muscles !== undefined) && (rule.muscles !== "no default setting") && (slave.amp !== 1)) {
-						if ((slave.muscles >= rule.muscles+8)) {
+						if ((slave.muscles >= rule.muscles + 8)) {
 							if ((slave.diet !== "slimming")) {
 								slave.diet = "slimming";
 								r += `<br>${slave.slaveName} has been put on a slimming exercise regime.`;
 							}
-						} else if ((slave.muscles <= rule.muscles-2)) {
+						} else if ((slave.muscles <= rule.muscles - 2)) {
 							if ((slave.diet !== "muscle building")) {
 								slave.diet = "muscle building";
 								r += `<br>${slave.slaveName} has been put on a muscle building exercise regime.`;
@@ -1878,12 +1898,12 @@ function ProcessDiet(slave, rule) {
 				}
 			}
 		} else if ((rule.muscles !== undefined) && (rule.muscles !== "no default setting") && (slave.amp !== 1)) { // no diet rule, muscles only
-			if ((slave.muscles >= rule.muscles+8)) {
+			if ((slave.muscles >= rule.muscles + 8)) {
 				if ((slave.diet !== "slimming")) {
 					slave.diet = "slimming";
 					r += `<br>${slave.slaveName} has been put on a slimming exercise regime.`;
 				}
-			} else if ((slave.muscles <= rule.muscles-2)) {
+			} else if ((slave.muscles <= rule.muscles - 2)) {
 				if ((slave.diet !== "muscle building")) {
 					slave.diet = "muscle building";
 					r += `<br>${slave.slaveName} has been put on a muscle building exercise regime.`;
@@ -1905,11 +1925,11 @@ function ProcessDiet(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessCuratives(slave, rule) {
+	 */
+	function ProcessCuratives(slave, rule) {
 		if ((rule.curatives !== undefined) && (rule.curatives !== "no default setting")) {
 			if (slave.curatives !== rule.curatives) {
 				if (rule.curatives === 2) {
@@ -1930,11 +1950,11 @@ function ProcessCuratives(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessAphrodisiacs(slave, rule) {
+	 */
+	function ProcessAphrodisiacs(slave, rule) {
 		if ((rule.aphrodisiacs !== undefined) && (rule.aphrodisiacs !== "no default setting")) {
 			if (slave.aphrodisiacs !== rule.aphrodisiacs) {
 				r += `<br>${slave.slaveName} has been ${rule.aphrodisiacs > 0 ? "put on the proper" : "taken off"} aphrodisiacs.`;
@@ -1943,11 +1963,11 @@ function ProcessAphrodisiacs(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessPenisHormones(slave, rule) {
+	 */
+	function ProcessPenisHormones(slave, rule) {
 		if ((slave.dick > 0)) {
 			if ((slave.balls === 0)) {
 				if ((rule.gelding !== undefined) && (rule.gelding !== "no default setting")) {
@@ -1985,11 +2005,11 @@ function ProcessPenisHormones(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessFemaleHormones(slave, rule) {
+	 */
+	function ProcessFemaleHormones(slave, rule) {
 		if ((slave.vagina > -1) && (slave.dick === 0) && (rule.XX !== undefined) && (rule.XX !== "no default setting")) {
 			if ((slave.hormones !== rule.XX)) {
 				const _oldHormones = slave.hormones;
@@ -2004,11 +2024,11 @@ function ProcessFemaleHormones(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessPregnancyDrugs(slave, rule) {
+	 */
+	function ProcessPregnancyDrugs(slave, rule) {
 		if (slave.pregKnown === 1 && rule.pregSpeed !== "no default setting" && (slave.breedingMark !== 1 || V.propOutcome === 0) && slave.indentureRestrictions < 1 && slave.broodmother === 0) {
 			if (rule.pregSpeed === "slow" && slave.preg < slave.pregData.minLiveBirth) {
 				slave.pregControl = "slow gestation";
@@ -2034,11 +2054,11 @@ function ProcessPregnancyDrugs(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessLivingStandard(slave, rule) {
+	 */
+	function ProcessLivingStandard(slave, rule) {
 		if ((rule.livingRules !== undefined) && (rule.livingRules !== "no default setting")) {
 			if (setup.facilityCareers.includes(slave.assignment)) {
 				r += ""; // `<br>${slave.slaveName}'s living standards are controlled by ${his} assignment.`;
@@ -2051,7 +2071,7 @@ function ProcessLivingStandard(slave, rule) {
 				}
 			} else if (slave.livingRules !== rule.livingRules) {
 				if (rule.livingRules !== "luxurious") {
-					if (V.roomsPopulation <= V.rooms-0.5) {
+					if (V.roomsPopulation <= V.rooms - 0.5) {
 						slave.livingRules = rule.livingRules;
 						r += `<br>${slave.slaveName}'s living standard has been set to ${rule.livingRules}.`;
 						if (slave.relationship >= 4) {
@@ -2071,11 +2091,11 @@ function ProcessLivingStandard(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessSpeech(slave, rule) {
+	 */
+	function ProcessSpeech(slave, rule) {
 		if ((rule.speechRules !== undefined) && (rule.speechRules !== "no default setting") && (slave.speechRules !== rule.speechRules)) {
 			if (slave.fetish === "mindbroken") {
 				if ((slave.speechRules !== "restrictive")) {
@@ -2105,14 +2125,14 @@ function ProcessSpeech(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessRelationship(slave, rule) {
+	 */
+	function ProcessRelationship(slave, rule) {
 		if ((slave.fetish !== "mindbroken")) {
 			if ((rule.relationshipRules !== undefined) && (rule.relationshipRules !== "no default setting")) {
-				if ((slave.relationshipRules !== rule.relationshipRules )) {
+				if ((slave.relationshipRules !== rule.relationshipRules)) {
 					slave.relationshipRules = rule.relationshipRules;
 					r += `<br>${slave.slaveName}'s relationship rules have been set to ${rule.relationshipRules}.`;
 				}
@@ -2120,11 +2140,11 @@ function ProcessRelationship(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessRelease(slave, rule) {
+	 */
+	function ProcessRelease(slave, rule) {
 		if ((rule.releaseRules !== undefined) && (rule.releaseRules !== "no default setting")) {
 			let _release = 0;
 			if (rule.releaseRules === "restrictive" &&
@@ -2146,11 +2166,11 @@ function ProcessRelease(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessPunishment(slave, rule) {
+	 */
+	function ProcessPunishment(slave, rule) {
 		if ((rule.standardPunishment !== undefined) && (rule.standardPunishment !== "no default setting")) {
 			if ((slave.standardPunishment !== rule.standardPunishment)) {
 				slave.standardPunishment = rule.standardPunishment;
@@ -2159,11 +2179,11 @@ function ProcessPunishment(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessReward(slave, rule) {
+	 */
+	function ProcessReward(slave, rule) {
 		if ((rule.standardReward !== undefined) && (rule.standardReward !== "no default setting")) {
 			if ((slave.standardReward !== rule.standardReward)) {
 				slave.standardReward = rule.standardReward;
@@ -2172,11 +2192,11 @@ function ProcessReward(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessToyHole(slave, rule) {
+	 */
+	function ProcessToyHole(slave, rule) {
 		if ((rule.toyHole !== undefined) && (rule.toyHole !== "no default setting")) {
 			if (rule.toyHole === "pussy") {
 				if (slave.vagina > 0 && canDoVaginal(slave)) {
@@ -2209,11 +2229,11 @@ function ProcessToyHole(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessDietCum(slave, rule) {
+	 */
+	function ProcessDietCum(slave, rule) {
 		if ((rule.dietCum !== undefined) && (rule.dietCum !== "no default setting")) {
 			if (slave.dietCum !== rule.dietCum) {
 				slave.dietCum = rule.dietCum;
@@ -2229,11 +2249,11 @@ function ProcessDietCum(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessDietMilk(slave, rule) {
+	 */
+	function ProcessDietMilk(slave, rule) {
 		if ((rule.dietMilk !== undefined) && (rule.dietMilk !== "no default setting")) {
 			if (slave.dietMilk !== rule.dietMilk) {
 				slave.dietMilk = rule.dietMilk;
@@ -2249,11 +2269,11 @@ function ProcessDietMilk(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessSolidFood(slave, rule) {
+	 */
+	function ProcessSolidFood(slave, rule) {
 		if ((rule.onDiet !== undefined) && (rule.onDiet !== "no default setting")) {
 			if ((slave.onDiet !== rule.onDiet)) {
 				slave.onDiet = rule.onDiet;
@@ -2266,11 +2286,11 @@ function ProcessSolidFood(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessTeeth(slave, rule) {
+	 */
+	function ProcessTeeth(slave, rule) {
 		if ((rule.teeth !== undefined) && (rule.teeth !== "no default setting")) {
 			if ((rule.teeth === "universal")) {
 				if ((slave.teeth === "crooked")) {
@@ -2311,11 +2331,11 @@ function ProcessTeeth(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessStyle(slave, rule) {
+	 */
+	function ProcessStyle(slave, rule) {
 		if (rule.eyeColor !== undefined && (rule.eyeColor !== "no default setting")) {
 			if ((slave.eyeColor !== rule.eyeColor)) {
 				slave.eyeColor = rule.eyeColor;
@@ -2374,7 +2394,7 @@ function ProcessStyle(slave, rule) {
 						cashX(forceNeg(V.modCost), "slaveMod", slave);
 						r += `<br>${slave.slaveName}'s hair has been cut; it `;
 					} else {
-						cashX(forceNeg(V.modCost*Math.trunc((rule.hLength-slave.hLength)/10)), "slaveMod", slave);
+						cashX(forceNeg(V.modCost * Math.trunc((rule.hLength - slave.hLength) / 10)), "slaveMod", slave);
 						r += `<br>${slave.slaveName} has been given extensions; ${his} hair `;
 					}
 					r += `is now ${lengthToEitherUnit(rule.hLength)} long.`;
@@ -2519,7 +2539,7 @@ function ProcessStyle(slave, rule) {
 		}
 	}
 
-function ProcessPiercings(slave, rule) {
+	function ProcessPiercings(slave, rule) {
 		if (rule.nipplesPiercing !== undefined && (rule.nipplesPiercing !== "no default setting")) {
 			if ((slave.nipplesPiercing !== rule.nipplesPiercing)) {
 				if ((rule.nipplesPiercing === 0)) {
@@ -2709,11 +2729,11 @@ function ProcessPiercings(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessSmartPiercings(slave, rule) {
+	 */
+	function ProcessSmartPiercings(slave, rule) {
 		if ((slave.clitPiercing === 3)) {
 			let _used = 0;
 			if (rule.clitSetting !== undefined && (rule.clitSetting !== "no default setting")) {
@@ -2779,11 +2799,11 @@ function ProcessSmartPiercings(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessTattoos(slave, rule) {
+	 */
+	function ProcessTattoos(slave, rule) {
 		if (rule.boobsTat !== undefined && (rule.boobsTat !== "no default setting")) {
 			if ((slave.boobsTat !== rule.boobsTat)) {
 				slave.boobsTat = rule.boobsTat;
@@ -2889,11 +2909,11 @@ function ProcessTattoos(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessPornFeedEnabled(slave, rule) {
+	 */
+	function ProcessPornFeedEnabled(slave, rule) {
 		if (rule.pornFeed === undefined || rule.pornFeed === "no default setting") {
 			return;
 		}
@@ -2908,7 +2928,7 @@ function ProcessPornFeedEnabled(slave, rule) {
 		r += `<br>Highlights of ${slave.slaveName}'s sex life ${yesno} being released.`;
 	}
 
-function ProcessPorn(slave, rule) {
+	function ProcessPorn(slave, rule) {
 		if ((rule.pornFameSpending !== undefined) && (rule.pornFameSpending !== "no default setting")) {
 			if ((slave.pornPrestige < 3)) {
 				if ((slave.pornFameSpending !== rule.pornFameSpending)) {
@@ -2919,11 +2939,11 @@ function ProcessPorn(slave, rule) {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} rule
-	*/
-function ProcessLabel(slave, rule) {
+	 */
+	function ProcessLabel(slave, rule) {
 		if (rule.label !== "no default setting" && !slave.custom.label.includes(`[${rule.label}]`)) {
 			slave.custom.label = `${slave.custom.label }[${ rule.label }]`;
 			r += `<br>${slave.slaveName} has been tagged as ${rule.label}`;
diff --git a/src/js/SetBellySize.js b/src/js/SetBellySize.js
index 07326e91533f0d8d3b67748ac498a6d3c5b2439a..abe9d645c9d6eb5f404fce22772d2b8d6bdef957 100644
--- a/src/js/SetBellySize.js
+++ b/src/js/SetBellySize.js
@@ -16,5 +16,5 @@ window.SetBellySize = function SetBellySize(slave) {
 		slave.bellyFluid = 0;
 	}
 
-	slave.belly = slave.bellyPreg+slave.bellyFluid+_implantSize;
+	slave.belly = slave.bellyPreg + slave.bellyFluid + _implantSize;
 };
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index 17f928eb2aed368f386559caf3ecca06bc75284a..e5ff99a7a6d2a2104a3e436b7eed3b3547649e5d 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -276,18 +276,18 @@ App.Entity.SlaveCustomAddonsState = class SlaveCustomAddonsState {
 		 * @property {string} format one of "png", "jpg", "gif" or "webm"
 		 */
 		/**
-		* holds the custom slave image file name (used if images are enabled)
-		*
-		* null: no custom image
-		* @type {CustomImage}
-		*/
+		 * holds the custom slave image file name (used if images are enabled)
+		 *
+		 * null: no custom image
+		 * @type {CustomImage}
+		 */
 		this.image = null;
 		/**
-		* holds the custom hair vector base file name
-		*
-		* used if vector images are enabled
-		* @type {number|string}
-		*/
+		 * holds the custom hair vector base file name
+		 *
+		 * used if vector images are enabled
+		 * @type {number|string}
+		 */
 		this.hairVector = 0;
 	}
 };
@@ -369,7 +369,7 @@ App.Entity.SlaveState = class SlaveState {
 		 * * 3: friends with benefits with relationshipTarget
 		 * * 4: lover with relationshipTarget
 		 * * 5: relationshipTarget 's slave wife
-		*/
+		 */
 		this.relationship = 0;
 		/** target of relationship (ID) */
 		this.relationshipTarget = 0;
@@ -555,7 +555,7 @@ App.Entity.SlaveState = class SlaveState {
 		 * "neko", "inu", "kit", "tanuki" */
 		this.earT = "none";
 		/** kemonomimi ear color
-		* "hairless" */
+		 * "hairless" */
 		this.earTColor = "hairless";
 		/** sense of smell
 		0 - yes, -1 - no */
@@ -1748,22 +1748,22 @@ App.Entity.SlaveState = class SlaveState {
 		 */
 		this.dickAccessory = "none";
 		/**
-		* whether the slave has a chastity device on their anus
-		* 0 - no
-		* 1 - yes
-		*/
+		 * whether the slave has a chastity device on their anus
+		 * 0 - no
+		 * 1 - yes
+		 */
 		this.chastityAnus = 0;
 		/**
-		* whether the slave has a chastity device on their penis
-		* 0 - no
-		* 1 - yes
-		*/
+		 * whether the slave has a chastity device on their penis
+		 * 0 - no
+		 * 1 - yes
+		 */
 		this.chastityPenis = 0;
 		/**
-		* whether the slave has a chastity device on their vagina
-		* 0 - no
-		* 1 - yes
-		*/
+		 * whether the slave has a chastity device on their vagina
+		 * 0 - no
+		 * 1 - yes
+		 */
 		this.chastityVagina = 0;
 		/**
 		 * may accept strings, use at own risk
@@ -1864,7 +1864,7 @@ App.Entity.SlaveState = class SlaveState {
 		 * *if both attrXX and attrXY > 95, slave will be omnisexual*
 		 *
 		 * *if energy > 95 and either attrXX or attrXY > 95, slave will be nymphomaniac*
-		*/
+		 */
 		this.attrXY = 0;
 		/** 0: no; 1: yes */
 		this.attrKnown = 0;
@@ -1952,8 +1952,8 @@ App.Entity.SlaveState = class SlaveState {
 		 */
 		this.sexualQuirk = "none";
 		/** 0: does not have; 1: carrier; 2: active
-		* * heterochromia is an exception. String = active
-		*/
+		 * * heterochromia is an exception. String = active
+		 */
 		this.geneticQuirks = {
 			/** Oversized breasts. Increased growth rate, reduced shrink rate. Breasts try to return to oversized state if reduced. */
 			macromastia: 0,
@@ -2136,7 +2136,7 @@ App.Entity.SlaveState = class SlaveState {
 		 * * 8000+: looks full term
 		 * * 16000+: hyperpregnant 1
 		 * * 32000+: hyperpregnant 2
-		*/
+		 */
 		this.bellyImplant = -1;
 		/** How saggy her belly is after being distended for too long.
 		 *
@@ -2366,9 +2366,9 @@ App.Entity.SlaveState = class SlaveState {
 	 */
 	static makeSkeleton() {
 		return {
-			counter: { },
+			counter: {},
 			porn: {
-				fame: { }
+				fame: {}
 			},
 			skill: {},
 			custom: {},
diff --git a/src/js/accordianJS.js b/src/js/accordianJS.js
index 1efcf79cee67756fd2d953f382d2d9f7ffe63404..c07ad7dfdb125daca881dd7d78e784b548a055eb 100644
--- a/src/js/accordianJS.js
+++ b/src/js/accordianJS.js
@@ -11,7 +11,7 @@
  * might benefit.
  *
  * 000-250-006 03092017
-*/
+ */
 
 postdisplay["doAccordionSet"] = function () {
 	if (variables().useAccordion === 1) {
@@ -31,7 +31,7 @@ postdisplay["doAccordion"] = function () {
 			let panel = this.nextElementSibling;
 			if (panel === null || panel === undefined) {
 				panel = document.getElementById(`${this.id }accHidden`);
-				if ( panel.style.display === "none" ) {
+				if (panel.style.display === "none") {
 					panel.style.display = "";
 				} else {
 					panel.style.display = "none";
diff --git a/src/js/assayJS.js b/src/js/assayJS.js
index 7f2210d3052cf96d09732887924de682298dd7fe..eb8c2f82a85022f1e9e9ce168d0e603f60b6a008 100644
--- a/src/js/assayJS.js
+++ b/src/js/assayJS.js
@@ -44,9 +44,9 @@ window.hasVisibleHeterochromia = function hasVisibleHeterochromia(slave) {
  */
 window.isLeaderP = function isLeaderP(slave) {
 	const V = State.variables;
-/**
- * @type {App.Entity.SlaveState[]}*/
-	const leaders = [V.HeadGirl, V.Bodyguard, V.Recruiter, V.Concubine, V.Nurse, V.Attendant, V.Matron, V.Madam, V.DJ, V.Milkmaid, V. Farmer, V.Stewardess, V.Schoolteacher, V.Wardeness];
+	/**
+	 * @type {App.Entity.SlaveState[]}*/
+	const leaders = [V.HeadGirl, V.Bodyguard, V.Recruiter, V.Concubine, V.Nurse, V.Attendant, V.Matron, V.Madam, V.DJ, V.Milkmaid, V.Farmer, V.Stewardess, V.Schoolteacher, V.Wardeness];
 	return leaders.some(leader => leader.ID && leader.ID === slave.ID);
 };
 
@@ -166,7 +166,7 @@ window.newSlave = function newSlave(slave) {
 	if (slave.actualAge > 35 && slave.face < 40 && slave.skill.anal <= 30) {
 		V.REMILFCheckinIDs.push(slave.ID);
 	}
-	if (slave.attrXY <= 60 && slave.attrXX > 60 ) {
+	if (slave.attrXY <= 60 && slave.attrXX > 60) {
 		V.REOrientationCheckinIDs.push(slave.ID);
 	}
 	if (slave.face < -10) {
@@ -187,7 +187,9 @@ window.newSlave = function newSlave(slave) {
 		V.genePool.push(slave);
 		/* Store non-albino stats in genePool */
 		if (slave.geneticQuirks.albinism === 2) {
-			const albInd = V.genePool.findIndex(function(s) { return s.ID === slave.ID; });
+			const albInd = V.genePool.findIndex(function (s) {
+				return s.ID === slave.ID;
+			});
 			V.genePool.genePool[albInd].origSkin = slave.albinismOverride.skin;
 			V.genePool.genePool[albInd].origEye = slave.albinismOverride.eyeColor;
 			V.genePool.genePool[albInd].origHColor = slave.albinismOverride.hColor;
@@ -197,14 +199,16 @@ window.newSlave = function newSlave(slave) {
 			slave.albinismOverride = 0;
 		}
 	} else {
-		if (V.genePool.findIndex(function(s) { return s.ID === slave.ID; }) === -1) {
+		if (V.genePool.findIndex(function (s) {
+				return s.ID === slave.ID;
+			}) === -1) {
 			V.genePool.push(slave);
 		}
 	}
 
 	assignJob(slave, slave.assignment);
 
-/** do not run the Rules Assistant before adding the new slave to the slaves list! **/
+	/** do not run the Rules Assistant before adding the new slave to the slaves list! **/
 	if (V.ui !== "start" && V.universalRulesNewSlavesRA === 1 && V.rulesAssistantAuto !== 0) {
 		DefaultRules(slave);
 	}
@@ -328,7 +332,9 @@ window.getSlave = function getSlave(ID) {
 };
 window.getChild = function getChild(ID) {
 	const V = State.variables;
-	return V.cribs.find(function(s) { return s.ID === ID; });
+	return V.cribs.find(function (s) {
+		return s.ID === ID;
+	});
 };
 /**
  * @param {App.Entity.SlaveState} slave
@@ -341,7 +347,8 @@ window.getPronouns = function getPronouns(slave) {
 		possessive: slave.possessive,
 		object: slave.object,
 		objectReflexive: slave.objectReflexive,
-		noun: slave.noun};
+		noun: slave.noun
+	};
 };
 
 /**
@@ -520,16 +527,16 @@ window.Enunciate = function Enunciate(slave) {
  */
 window.fetishChangeChance = function fetishChangeChance(slave) {
 	const V = State.variables;
-	let chance = 0, sex = 0;
+	let chance = 0,
+		sex = 0;
 
 	if (slave.clitSetting !== slave.fetish) {
 		if (slave.balls) {
 			sex = V.potencyAge - slave.actualAge;
-		}
-		else if (slave.ovaries || slave.mpreg) {
+		} else if (slave.ovaries || slave.mpreg) {
 			sex = V.fertilityAge - slave.actualAge;
 		}
-		chance = Math.trunc(Math.clamp((slave.devotion/4)-(slave.fetishStrength/4)-(Math.max(sex, 0)*10), 0, 100));
+		chance = Math.trunc(Math.clamp((slave.devotion / 4) - (slave.fetishStrength / 4) - (Math.max(sex, 0) * 10), 0, 100));
 	}
 
 	return chance;
@@ -653,7 +660,7 @@ window.PCTitle = function PCTitle() {
 			case "Exodus":
 				titles.push("The Abandoned");
 				break;
-			
+
 		}
 	}
 
@@ -966,7 +973,9 @@ window.PCTitle = function PCTitle() {
 		titles.push("Caretaker of the Youth");
 	}
 
-	const schoolsPresent = []; const schoolsPerfected = []; let schoolTitle = "";
+	const schoolsPresent = [];
+	const schoolsPerfected = [];
+	let schoolTitle = "";
 	if (V.TSS.schoolProsperity >= 10) {
 		schoolsPerfected.push("The Slave School");
 	} else if (V.TSS.schoolPresent === 1) {
@@ -1120,9 +1129,9 @@ window.PoliteRudeTitle = function PoliteRudeTitle(slave) {
 			r += (PC.surname ? PC.surname : `${PC.name}${s}an`);
 		}
 	} else {
-		if (slave.intelligence+slave.intelligenceImplant < -95) {
+		if (slave.intelligence + slave.intelligenceImplant < -95) {
 			r += V.titleEnunciate;
-		} else if (slave.intelligence+slave.intelligenceImplant > 50) {
+		} else if (slave.intelligence + slave.intelligenceImplant > 50) {
 			r += (PC.title > 0 ? `Ma${s}ter` : `Mi${s}tre${ss}`);
 		} else if (slave.trust > 0) {
 			r += PC.name;
@@ -1265,7 +1274,7 @@ window.SlaveTitle = function SlaveTitle(slave) {
 			r = `indentured ${ r}`;
 		}
 
-		if (slave.preg > slave.pregData.normalBirth/4 && slave.pregKnown === 1) {
+		if (slave.preg > slave.pregData.normalBirth / 4 && slave.pregKnown === 1) {
 			r = `pregnant ${ r}`;
 		} else if (slave.bellyFluid >= 5000) {
 			r = `bloated ${ r}`;
@@ -1278,7 +1287,8 @@ window.SlaveTitle = function SlaveTitle(slave) {
 		}
 	} else {
 		r = "slave"; /* I don't tihnk there is an 'else'? */
-		if ((slave.dick === 0) && (slave.vagina === -1)) { /* NULLS */
+		if ((slave.dick === 0) && (slave.vagina === -1)) {
+			/* NULLS */
 			r = "null";
 			if ((slave.lactation > 0) && (slave.boobs > 2000)) {
 				r = `${r } cow`;
@@ -1302,7 +1312,8 @@ window.SlaveTitle = function SlaveTitle(slave) {
 			}
 		}
 
-		if ((slave.dick === 0) && (slave.vagina !== -1)) { /* FEMALES */
+		if ((slave.dick === 0) && (slave.vagina !== -1)) {
+			/* FEMALES */
 			if (slave.visualAge > 55) {
 				r = "GILF";
 			} else if (slave.visualAge > 35) {
@@ -1326,9 +1337,11 @@ window.SlaveTitle = function SlaveTitle(slave) {
 		}
 
 		if ((slave.dick !== 0) && (slave.vagina !== -1)) {
-			if (slave.balls > 0) { /* FUTANARI: cock & balls & vagina */
+			if (slave.balls > 0) {
+				/* FUTANARI: cock & balls & vagina */
 				r = "futanari ";
-			} else { /* FUTANARI: cock & vagina */
+			} else {
+				/* FUTANARI: cock & vagina */
 				r = "futa ";
 			}
 			if ((slave.lactation > 0) && (slave.boobs > 2000)) {
@@ -1356,7 +1369,8 @@ window.SlaveTitle = function SlaveTitle(slave) {
 			}
 		}
 
-		if ((slave.dick !== 0) && (slave.vagina === -1) && (slave.balls > 0) && (slave.boobs > 300) && (slave.butt > 2)) { /* SHEMALES: cock & balls, T&A above minimum */
+		if ((slave.dick !== 0) && (slave.vagina === -1) && (slave.balls > 0) && (slave.boobs > 300) && (slave.butt > 2)) {
+			/* SHEMALES: cock & balls, T&A above minimum */
 			if (slave.visualAge > 55) {
 				r = "sheGILF";
 			} else if (slave.visualAge > 35) {
@@ -1382,7 +1396,8 @@ window.SlaveTitle = function SlaveTitle(slave) {
 		if ((slave.boobs < 300) || (slave.butt < 2)) {
 			if ((slave.dick !== 0) && (slave.vagina === -1) && (slave.balls > 0)) {
 				if ((slave.shoulders < 1) || (slave.muscles <= 30)) {
-					if ((slave.faceShape === "masculine") || (slave.faceShape === "androgynous")) { /* SISSIES: feminine shoulders or muscles, masculine faces */
+					if ((slave.faceShape === "masculine") || (slave.faceShape === "androgynous")) {
+						/* SISSIES: feminine shoulders or muscles, masculine faces */
 						if (slave.visualAge > 55) {
 							r = "sissyGILF";
 						} else if (slave.visualAge > 35) {
@@ -1390,7 +1405,8 @@ window.SlaveTitle = function SlaveTitle(slave) {
 						} else {
 							r = "sissy";
 						}
-					} else { /* TRAPS: feminine shoulders or muscles, feminine faces */
+					} else {
+						/* TRAPS: feminine shoulders or muscles, feminine faces */
 						if (slave.visualAge > 55) {
 							r = "trapGILF";
 						} else if (slave.visualAge > 35) {
@@ -1412,7 +1428,8 @@ window.SlaveTitle = function SlaveTitle(slave) {
 
 		if ((slave.boobs < 300) || (slave.butt < 2)) {
 			if ((slave.dick !== 0) && (slave.vagina === -1) && (slave.balls > 0)) {
-				if ((slave.shoulders > 1) || (slave.muscles >= 30)) { /* BITCHES: masculine shoulders or muscles */
+				if ((slave.shoulders > 1) || (slave.muscles >= 30)) {
+					/* BITCHES: masculine shoulders or muscles */
 					r = "bitch";
 					if ((slave.muscles > 30) && (slave.height < 185)) {
 						r = `muscle${ r}`;
@@ -1480,7 +1497,7 @@ window.SlaveTitle = function SlaveTitle(slave) {
 			r = `indentured ${ r}`;
 		}
 
-		if (slave.preg > slave.pregData.normalBirth/4 && slave.pregKnown === 1) {
+		if (slave.preg > slave.pregData.normalBirth / 4 && slave.pregKnown === 1) {
 			r = `pregnant ${ r}`;
 		} else if (slave.bellyFluid >= 5000) {
 			r = `bloated ${ r}`;
@@ -1514,7 +1531,8 @@ window.DegradingName = function DegradingName(slave) {
 		"be the Nurse",
 		"be your Head Girl",
 		"guard you",
-		"recruit girls"];
+		"recruit girls"
+	];
 	const names = [];
 	const suffixes = [];
 
@@ -1563,7 +1581,7 @@ window.DegradingName = function DegradingName(slave) {
 				case "mixed race":
 					names.push("Mixed", "Mulatto", "Mutt");
 					break;
-				
+
 			}
 		}
 		names.push(slave.hColor);
@@ -1612,7 +1630,7 @@ window.DegradingName = function DegradingName(slave) {
 				names.push("Fertile");
 			}
 		}
-		if (slave.boobs*slave.lactation > 1000) {
+		if (slave.boobs * slave.lactation > 1000) {
 			names.push("Creamy", "Milky");
 			suffixes.push("Cow");
 		}
@@ -1642,7 +1660,7 @@ window.DegradingName = function DegradingName(slave) {
 			names.push("Potent");
 			suffixes.push("Cannon", "Daddy");
 		}
-		if (slave.preg > slave.pregData.normalBirth/1.33) {
+		if (slave.preg > slave.pregData.normalBirth / 1.33) {
 			if (slave.broodmother === 2) {
 				names.push("Bursting", "Seeded");
 				suffixes.push("Factory", "Nursery");
@@ -1704,12 +1722,12 @@ window.DegradingName = function DegradingName(slave) {
 		if (slave.skill.anal > 95) {
 			suffixes.push("Asspussy", "Sphincter");
 		}
-		if (slave.intelligence+slave.intelligenceImplant > 50) {
+		if (slave.intelligence + slave.intelligenceImplant > 50) {
 			names.push("Bright", "Clever", "Smart");
 			if (slave.intelligenceImplant >= 15) {
 				names.push("College", "Graduate", "Nerdy");
 			}
-		} else if (slave.intelligence+slave.intelligenceImplant < -50) {
+		} else if (slave.intelligence + slave.intelligenceImplant < -50) {
 			names.push("Cretin", "Dumb", "Retarded", "Stupid");
 		}
 		if (slave.vagina === 1 && slave.skill.vaginal <= 10) {
@@ -1754,16 +1772,20 @@ window.DegradingName = function DegradingName(slave) {
 				suffixes.push("Futa");
 			} else {
 				if (slave.balls > 0) {
-					if (slave.boobs > 300 && slave.butt > 2) { /* SHEMALES: cock & balls, T&A above minimum */
+					if (slave.boobs > 300 && slave.butt > 2) {
+						/* SHEMALES: cock & balls, T&A above minimum */
 						suffixes.push("Shemale");
 					} else {
 						if (slave.shoulders < 1 && slave.muscles <= 30) {
-							if (slave.faceShape === "masculine" || slave.faceShape === "androgynous") { /* SISSIES: feminine shoulders or muscles, masculine faces */
+							if (slave.faceShape === "masculine" || slave.faceShape === "androgynous") {
+								/* SISSIES: feminine shoulders or muscles, masculine faces */
 								suffixes.push("Sissy");
-							} else { /* TRAPS: feminine shoulders or muscles, feminine faces */
+							} else {
+								/* TRAPS: feminine shoulders or muscles, feminine faces */
 								suffixes.push("Trap");
 							}
-						} else { /* BITCHES: masculine shoulders or muscles */
+						} else {
+							/* BITCHES: masculine shoulders or muscles */
 							suffixes.push("Bitch");
 						}
 					}
@@ -1885,7 +1907,7 @@ window.DegradingName = function DegradingName(slave) {
 			case "recruit girls":
 				slave.slaveName = jsEither(["Cam", "Recruiter"]);
 				break;
-			
+
 		}
 	}
 	const surname = jsEither(suffixes);
diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js
index cf4abec2bdf2e72bc924b7744446489422f8954b..2f9d258472c6b94fc5bc341ece4fa45bca310e02 100644
--- a/src/js/datatypeCleanupJS.js
+++ b/src/js/datatypeCleanupJS.js
@@ -9,9 +9,9 @@ App.Entity.Utils.SlaveDataSchemeCleanup = (function () {
 	"use strict";
 	return SlaveDataSchemeCleanup;
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function SlaveDataSchemeCleanup(slave) { // eslint-disable-line no-unused-vars
 		migratePorn(slave);
 		migrateSkills(slave);
@@ -19,9 +19,9 @@ App.Entity.Utils.SlaveDataSchemeCleanup = (function () {
 		migrateCustomProperties(slave);
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function migratePorn(slave) {
 		if (!slave.hasOwnProperty("porn")) {
 			slave.porn = new App.Entity.SlavePornPerformanceState();
@@ -48,9 +48,9 @@ App.Entity.Utils.SlaveDataSchemeCleanup = (function () {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function migrateSkills(slave) {
 		if (!slave.hasOwnProperty("skill")) {
 			slave.skill = new App.Entity.SlaveSkillsState();
@@ -96,9 +96,9 @@ App.Entity.Utils.SlaveDataSchemeCleanup = (function () {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function migrateCounters(slave) {
 		if (!slave.hasOwnProperty("counter")) {
 			slave.counter = new App.Entity.SlaveActionsCountersState();
@@ -130,9 +130,9 @@ App.Entity.Utils.SlaveDataSchemeCleanup = (function () {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function migrateCustomProperties(slave) {
 		if (!slave.hasOwnProperty("custom")) {
 			slave.custom = new App.Entity.SlaveCustomAddonsState();
@@ -199,7 +199,7 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 	let V;
 	return SlaveDatatypeCleanup;
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {number} isIncubatorSlave
 	 */
@@ -232,9 +232,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		generatePronouns(slave);
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slaveAgeDatatypeCleanup(slave) {
 		slave.birthWeek = Math.clamp(+slave.birthWeek, 0, 51) || 0;
 		if (slave.age > 0) { // delete slave.age?
@@ -252,9 +252,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		slave.NCSyouthening = Math.max(+slave.NCSyouthening, 0) || 0;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slavePhysicalDatatypeCleanup(slave) {
 		if (typeof slave.nationality !== "string") {
 			slave.nationality = "slave";
@@ -283,9 +283,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		slave.hips = Math.clamp(+slave.hips, -2, 3) || 0;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slaveFaceDatatypeCleanup(slave) {
 		slave.face = Math.clamp(+slave.face, -100, 100) || 0;
 		if (typeof slave.faceShape !== "string") {
@@ -309,9 +309,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slaveHairDatatypeCleanup(slave) {
 		if (typeof slave.hColor !== "string") {
 			slave.hColor = "brown";
@@ -350,9 +350,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slaveBoobsDatatypeCleanup(slave) {
 		slave.boobs = Math.max(+slave.boobs, 100) || 200;
 		if (typeof slave.boobShape !== "string") {
@@ -373,9 +373,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		slave.lactationAdaptation = Math.clamp(+slave.lactationAdaptation, 0, 100) || 0;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slaveButtDatatypeCleanup(slave) {
 		if (slave.butt !== 0) {
 			slave.butt = Math.clamp(+slave.butt, 0, 20) || 1;
@@ -384,9 +384,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		slave.analArea = Math.max(+slave.analArea, 0) || 0;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slaveNekoDatatypeCleanup(slave) {
 		if (typeof slave.earShape !== "string") {
 			slave.earShape = "normal";
@@ -414,9 +414,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slavePregnancyDatatypeCleanup(slave) {
 		slave.induce = Math.clamp(+slave.induce, 0, 1) || 0;
 		slave.labor = Math.clamp(+slave.labor, 0, 1) || 0;
@@ -442,9 +442,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		WombNormalizePreg(slave);
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slaveBellyDatatypeCleanup(slave) {
 		slave.inflation = Math.clamp(+slave.inflation, 0, 3) || 0;
 		if (typeof slave.inflationType !== "string") {
@@ -464,9 +464,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		SetBellySize(slave);
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slaveGenitaliaDatatypeCleanup(slave) {
 		slave.vagina = Math.clamp(+slave.vagina, -1, 10) || 0;
 		slave.vaginaLube = Math.clamp(+slave.vaginaLube, 0, 2) || 0;
@@ -485,9 +485,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slaveImplantsDatatypeCleanup(slave) {
 		slave.ageImplant = Math.clamp(+slave.ageImplant, 0, 1) || 0;
 		slave.faceImplant = Math.clamp(+slave.faceImplant, 0, 100) || 0;
@@ -504,9 +504,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		slave.hipsImplant = Math.clamp(+slave.hipsImplant, -1, 1) || 0;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slavePiercingsDatatypeCleanup(slave) {
 		slave.earPiercing = Math.clamp(+slave.earPiercing, 0, 2) || 0;
 		slave.nosePiercing = Math.clamp(+slave.nosePiercing, 0, 2) || 0;
@@ -523,9 +523,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		slave.anusPiercing = Math.clamp(+slave.anusPiercing, 0, 2) || 0;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slaveTattooDatatypeCleanup(slave) {
 		if (typeof slave.shouldersTat !== "string") {
 			slave.shouldersTat = 0;
@@ -568,9 +568,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slaveCosmeticsDatatypeCleanup(slave) {
 		slave.makeup = Math.clamp(+slave.makeup, 0, 8) || 0;
 		slave.nails = Math.clamp(+slave.nails, 0, 9) || 0;
@@ -632,9 +632,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slaveDietDatatypeCleanup(slave) {
 		if (typeof slave.diet !== "string") {
 			slave.diet = "healthy";
@@ -651,9 +651,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		slave.curatives = Math.clamp(+slave.curatives, 0, 2) || 0;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slavePornDatatypeCleanup(slave) {
 		slave.pornFeed = Math.clamp(+slave.pornFeed, 0, 1) || 0;
 		slave.pornFame = Math.max(+slave.pornFame, 0) || 0;
@@ -705,9 +705,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		slave.porn.fame.pregnancy = Math.max(+slave.porn.fame.pregnancy, 0) || 0;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slaveRelationDatatypeCleanup(slave) {
 		slave.mother = +slave.mother || 0;
 		slave.father = +slave.father || 0;
@@ -722,9 +722,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		slave.cloneID = +slave.cloneID || 0;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slaveSkillsDatatypeCleanup(slave) {
 		slave.skill.oral = Math.clamp(+slave.skill.oral, 0, 100) || 0;
 		slave.skill.vaginal = Math.clamp(+slave.skill.vaginal, 0, 100) || 0;
@@ -750,9 +750,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		slave.skill.whore = Math.clamp(+slave.skill.whore, 0, 200) || 0;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slaveStatCountDatatypeCleanup(slave) {
 		slave.counter.oral = Math.max(+slave.counter.oral, 0) || 0;
 		slave.counter.vaginal = Math.max(+slave.counter.vaginal, 0) || 0;
@@ -773,9 +773,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		slave.bodySwap = Math.max(+slave.bodySwap, 0) || 0;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slavePreferencesDatatypeCleanup(slave) {
 		slave.energy = Math.clamp(+slave.energy, 0, 100) || 0;
 		slave.need = Math.max(+slave.need, 0) || 0;
@@ -786,9 +786,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		slave.fetishKnown = Math.clamp(+slave.fetishKnown, 0, 1) || 0;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slaveRulesDatatypeCleanup(slave) {
 		if (typeof slave.standardPunishment !== "string") {
 			slave.standardPunishment = "situational";
@@ -806,9 +806,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		slave.rudeTitle = Math.clamp(+slave.rudeTitle, 0, 1) || 0;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slaveCustomStatsDatatypeCleanup(slave) {
 		if (typeof slave.custom.label !== "string") {
 			slave.custom.label = "";
@@ -829,9 +829,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function slaveMiscellaneousDatatypeCleanup(slave) {
 		slave.weekAcquired = Math.max(+slave.weekAcquired, 0) || 0;
 		slave.newGamePlus = Math.clamp(+slave.newGamePlus, 0, 1) || 0;
@@ -1445,7 +1445,7 @@ window.PCDatatypeCleanup = function PCDatatypeCleanup() {
 	PC.ballsImplant = Math.clamp(+PC.ballsImplant, 0, 4) || 0;
 	PC.degeneracy = Math.max(+PC.degeneracy, 0) || 0;
 	PC.birthWeek = Math.clamp(+PC.birthWeek, 0, 51) || 0;
-	if (PC.sexualEnergy !== 0 ) {
+	if (PC.sexualEnergy !== 0) {
 		PC.sexualEnergy = +PC.sexualEnergy || 4;
 	}
 	PC.refreshmentType = Math.clamp(+PC.refreshmentType, 0, 6) || 0;
@@ -1612,11 +1612,11 @@ window.ArcologyDatatypeCleanup = function ArcologyDatatypeCleanup() {
 	}
 	generateAssistantPronouns();
 
-	V.foodCost = Math.trunc(2500/V.economy);
-	V.drugsCost = Math.trunc(10000/V.economy);
-	V.rulesCost = Math.trunc(10000/V.economy);
-	V.modCost = Math.trunc(5000/V.economy);
-	V.surgeryCost = Math.trunc(30000/V.economy);
+	V.foodCost = Math.trunc(2500 / V.economy);
+	V.drugsCost = Math.trunc(10000 / V.economy);
+	V.rulesCost = Math.trunc(10000 / V.economy);
+	V.modCost = Math.trunc(5000 / V.economy);
+	V.surgeryCost = Math.trunc(30000 / V.economy);
 	V.facilityCost = +V.facilityCost || 100;
 	V.policyCost = +V.policyCost || 5000;
 
@@ -1638,7 +1638,7 @@ window.ArcologyDatatypeCleanup = function ArcologyDatatypeCleanup() {
 	V.TFS.schoolProsperity = Math.clamp(+V.TFS.schoolProsperity, -10, 10) || 0;
 };
 
-window.FacilityDatatypeCleanup = (function() {
+window.FacilityDatatypeCleanup = (function () {
 	"use strict";
 	let V;
 	return FacilityDatatypeCleanup;
@@ -1669,7 +1669,7 @@ window.FacilityDatatypeCleanup = (function() {
 			if (!Array.isArray(facilityIDArray)) {
 				facilityIDArray = [];
 			} else if (typeof facilityIDArray[0] === "object") {
-				facilityIDArray = facilityIDArray.map(function(a) {
+				facilityIDArray = facilityIDArray.map(function (a) {
 					return a.ID;
 				});
 			}
@@ -1736,7 +1736,7 @@ window.FacilityDatatypeCleanup = (function() {
 		V.brothel = Math.max(+V.brothel, 0) || 0;
 		V.brothelUpgradeDrugs = Math.clamp(+V.brothelUpgradeDrugs, 0, 2) || 0;
 		/* madam */
-		V.Madam = V.slaves.find(function(s) {
+		V.Madam = V.slaves.find(function (s) {
 			return s.assignment === "be the Madam";
 		}) || 0;
 		V.MadamIgnoresFlaws = Math.clamp(+V.MadamIgnoresFlaws, 0, 1) || 0;
@@ -1768,7 +1768,7 @@ window.FacilityDatatypeCleanup = (function() {
 		V.bioreactorsXY = Math.max(+V.bioreactorsXY, 0) || 0;
 		V.bioreactorsBarren = Math.max(+V.bioreactorsBarren, 0) || 0;
 		/* milkmaid */
-		V.Milkmaid = V.slaves.find(function(s) {
+		V.Milkmaid = V.slaves.find(function (s) {
 			return s.assignment === "be the Milkmaid";
 		}) || 0;
 		V.milkmaidImpregnates = Math.clamp(+V.milkmaidImpregnates, 0, 1) || 0;
@@ -1779,7 +1779,7 @@ window.FacilityDatatypeCleanup = (function() {
 		V.farmyardBreeding = Math.clamp(+V.farmyardBreeding, 0, 1) || 0;
 		V.farmyardShows = Math.clamp(+V.farmyardShows, 0, 1) || 0;
 		/* farmer */
-		V.Farmer = V.slaves.find(function(s) {
+		V.Farmer = V.slaves.find(function (s) {
 			return s.assignment === "be the Farmer";
 		}) || 0;
 	}
@@ -1797,7 +1797,7 @@ window.FacilityDatatypeCleanup = (function() {
 		V.club = Math.max(+V.club, 0) || 0;
 		V.clubUpgradePDAs = Math.clamp(+V.clubUpgradePDAs, 0, 1) || 0;
 		/* madam */
-		V.DJ = V.slaves.find(function(s) {
+		V.DJ = V.slaves.find(function (s) {
 			return s.assignment === "be the DJ";
 		}) || 0;
 		V.DJignoresFlaws = Math.clamp(+V.DJignoresFlaws, 0, 1) || 0;
@@ -1808,7 +1808,7 @@ window.FacilityDatatypeCleanup = (function() {
 		V.servantsQuarters = Math.max(+V.servantsQuarters, 0) || 0;
 		V.servantsQuartersUpgradeMonitoring = Math.clamp(+V.servantsQuartersUpgradeMonitoring, 0, 1) || 0;
 		/* stewardess */
-		V.Stewardess = V.slaves.find(function(s) {
+		V.Stewardess = V.slaves.find(function (s) {
 			return s.assignment === "be the Stewardess";
 		}) || 0;
 		V.stewardessImpregnates = Math.clamp(+V.stewardessImpregnates, 0, 1) || 0;
@@ -1821,7 +1821,7 @@ window.FacilityDatatypeCleanup = (function() {
 		V.schoolroomUpgradeLanguage = Math.clamp(+V.schoolroomUpgradeLanguage, 0, 1) || 0;
 		V.schoolroomUpgradeRemedial = Math.clamp(+V.schoolroomUpgradeRemedial, 0, 1) || 0;
 		/* schoolteacher */
-		V.Schoolteacher = V.slaves.find(function(s) {
+		V.Schoolteacher = V.slaves.find(function (s) {
 			return s.assignment === "be the Schoolteacher";
 		}) || 0;
 	}
@@ -1831,7 +1831,7 @@ window.FacilityDatatypeCleanup = (function() {
 		V.spa = Math.max(+V.spa, 0) || 0;
 		V.spaUpgrade = Math.clamp(+V.spaUpgrade, 0, 1) || 0;
 		/* attendant */
-		V.Attendant = V.slaves.find(function(s) {
+		V.Attendant = V.slaves.find(function (s) {
 			return s.assignment === "be the Attendant";
 		}) || 0;
 		V.spaFix = Math.clamp(+V.spaFix, 0, 2) || 0;
@@ -1846,7 +1846,7 @@ window.FacilityDatatypeCleanup = (function() {
 		V.clinicInflateBelly = Math.clamp(+V.clinicInflateBelly, 0, 1) || 0;
 		V.clinicSpeedGestation = Math.clamp(+V.clinicSpeedGestation, 0, 1) || 0;
 		/* nurse */
-		V.Nurse = V.slaves.find(function(s) {
+		V.Nurse = V.slaves.find(function (s) {
 			return s.assignment === "be the Nurse";
 		}) || 0;
 	}
@@ -1865,7 +1865,7 @@ window.FacilityDatatypeCleanup = (function() {
 		V.cellblock = Math.max(+V.cellblock, 0) || 0;
 		V.cellblockUpgrade = Math.clamp(+V.cellblockUpgrade, 0, 1) || 0;
 		/* wardeness */
-		V.Wardeness = V.slaves.find(function(s) {
+		V.Wardeness = V.slaves.find(function (s) {
 			return s.assignment === "be the Wardeness";
 		}) || 0;
 		V.cellblockWardenCumsInside = Math.clamp(+V.cellblockWardenCumsInside, 0, 1) || 0;
@@ -1881,14 +1881,14 @@ window.FacilityDatatypeCleanup = (function() {
 		V.masterSuitePregnancyFertilityDrugs = Math.clamp(+V.masterSuitePregnancyFertilityDrugs, 0, 1) || 0;
 		V.masterSuiteHyperPregnancy = Math.clamp(+V.masterSuiteHyperPregnancy, 0, 1) || 0;
 		/* concubine */
-		V.Concubine = V.slaves.find(function(s) {
+		V.Concubine = V.slaves.find(function (s) {
 			return s.assignment === "be your Concubine";
 		}) || 0;
 	}
 
 	function HeadGirlSuiteDatatypeCleanup() {
 		/* headgirl */
-		V.HeadGirl = V.slaves.find(function(s) {
+		V.HeadGirl = V.slaves.find(function (s) {
 			return s.assignment === "be your Head Girl";
 		}) || 0;
 		V.HGSuiteEquality = Math.clamp(+V.HGSuiteEquality, 0, 1) || 0;
@@ -1915,9 +1915,9 @@ App.Entity.Utils.GenePoolRecordCleanup = (function () {
 	"use strict";
 	return GenePoolRecordCleanup;
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function GenePoolRecordCleanup(slave) {
 		App.Entity.Utils.SlaveDataSchemeCleanup(slave);
 
diff --git a/src/js/descriptionWidgets.js b/src/js/descriptionWidgets.js
index fa09d8658b6f467cdf265bc769d36485ec0e05dd..2d910680a0942f8d8a17eb4f66499f80d0d34eb9 100644
--- a/src/js/descriptionWidgets.js
+++ b/src/js/descriptionWidgets.js
@@ -34,7 +34,7 @@ App.Desc.eyes = function (slave) {
 				}
 				r += ` and unfocused`;
 			}
-		} else if (slave.eyes === -3){
+		} else if (slave.eyes === -3) {
 			r += `${He} has ${slave.eyeColor} colored glass eyes`
 		} else {
 			r += `${His} gaze is empty`;
@@ -251,7 +251,7 @@ App.Desc.eyeColor = function (slave) {
 	"use strict";
 	let r;
 
-	if (slave.eyes === -4){
+	if (slave.eyes === -4) {
 		r = 'empty'
 	} else if (hasVisibleHeterochromia(slave)) {
 		r = `heterochromatic ${slave.eyeColor} and ${slave.geneticQuirks.heterochromatia}`;
@@ -572,31 +572,31 @@ App.Desc.ageAndHealth = function (slave) {
  * @returns {string} Slave's brand
  */
 App.Desc.brand = function (slave) {
-		"use strict";
-		let r = ``;
-		let bellyAccessory;
-		/* eslint-disable */
-		let pronouns = getPronouns(slave);
-		let he = pronouns.pronoun;
-		let him = pronouns.object;
-		let his = pronouns.possessive;
-		let hers = pronouns.possessivePronoun;
-		let himself = pronouns.objectReflexive;
-		let boy = pronouns.noun;
-		let He = capFirstChar(he);
-		let His = capFirstChar(his);
-		/* eslint-enable */
+	"use strict";
+	let r = ``;
+	let bellyAccessory;
+	/* eslint-disable */
+	let pronouns = getPronouns(slave);
+	let he = pronouns.pronoun;
+	let him = pronouns.object;
+	let his = pronouns.possessive;
+	let hers = pronouns.possessivePronoun;
+	let himself = pronouns.objectReflexive;
+	let boy = pronouns.noun;
+	let He = capFirstChar(he);
+	let His = capFirstChar(his);
+	/* eslint-enable */
 
-		if (slave.brand) {
-			bellyAccessory = slave.bellyAccessory;
-			if (setup.fakeBellies.includes(bellyAccessory) && slave.brandLocation === "belly") {
-				r += `${His} fake belly has ${slave.brand} branded on it. `;
-			} else {
-				r += `${He} has ${slave.brand} branded into the flesh of ${his} ${slave.brandLocation}. `;
-			}
+	if (slave.brand) {
+		bellyAccessory = slave.bellyAccessory;
+		if (setup.fakeBellies.includes(bellyAccessory) && slave.brandLocation === "belly") {
+			r += `${His} fake belly has ${slave.brand} branded on it. `;
+		} else {
+			r += `${He} has ${slave.brand} branded into the flesh of ${his} ${slave.brandLocation}. `;
 		}
-		return r;
 	}
+	return r;
+}
 
 /**
  * @param {App.Entity.SlaveState} slave
diff --git a/src/js/economyJS.js b/src/js/economyJS.js
index 3bed3b385af57612276bc3157927559ee37a5e8d..b8e530f1e430fb602453cc748937482da71c06ea 100644
--- a/src/js/economyJS.js
+++ b/src/js/economyJS.js
@@ -1,43 +1,76 @@
-window.LivingRule = Object.freeze({LUXURIOUS: 'luxurious', NORMAL: 'normal', SPARE: 'spare'});
+window.LivingRule = Object.freeze({
+	LUXURIOUS: 'luxurious',
+	NORMAL: 'normal',
+	SPARE: 'spare'
+});
 window.Job = Object.freeze({
-	DAIRY: 'work in the dairy', MILKMAID: 'be the Milkmaid', MASTER_SUITE: 'serve in the master suite', CONCUBINE: 'be your Concubine',
-	BABY_FACTORY: 'labor in the production line', BROTHEL: 'work in the brothel', MADAM: 'be the Madam', ARCADE: 'be confined in the arcade',
-	SERVANT: 'work as a servant', SERVER: 'be a servant', STEWARD: 'be the Stewardess', CLUB: 'serve in the club', DJ: 'be the DJ',
-	JAIL: 'be confined in the cellblock', WARDEN: 'be the Wardeness', CLINIC: 'get treatment in the clinic', NURSE: 'be the Nurse',
-	HGTOY: 'live with your Head Girl', SCHOOL: 'learn in the schoolroom', TEACHER: 'be the Schoolteacher', SPA: 'rest in the spa', ATTEND: 'be the Attendant',
-	NANNY: 'work as a nanny', MATRON: 'be the Matron', FARMYARD: 'work as a farmhand', FARMER: 'be the Farmer', REST: 'rest'
+	DAIRY: 'work in the dairy',
+	MILKMAID: 'be the Milkmaid',
+	MASTER_SUITE: 'serve in the master suite',
+	CONCUBINE: 'be your Concubine',
+	BABY_FACTORY: 'labor in the production line',
+	BROTHEL: 'work in the brothel',
+	MADAM: 'be the Madam',
+	ARCADE: 'be confined in the arcade',
+	SERVANT: 'work as a servant',
+	SERVER: 'be a servant',
+	STEWARD: 'be the Stewardess',
+	CLUB: 'serve in the club',
+	DJ: 'be the DJ',
+	JAIL: 'be confined in the cellblock',
+	WARDEN: 'be the Wardeness',
+	CLINIC: 'get treatment in the clinic',
+	NURSE: 'be the Nurse',
+	HGTOY: 'live with your Head Girl',
+	SCHOOL: 'learn in the schoolroom',
+	TEACHER: 'be the Schoolteacher',
+	SPA: 'rest in the spa',
+	ATTEND: 'be the Attendant',
+	NANNY: 'work as a nanny',
+	MATRON: 'be the Matron',
+	FARMYARD: 'work as a farmhand',
+	FARMER: 'be the Farmer',
+	REST: 'rest'
+});
+window.PersonalAttention = Object.freeze({
+	TRADE: 'trading',
+	WAR: 'warfare',
+	SLAVING: 'slaving',
+	ENGINEERING: 'engineering',
+	MEDICINE: 'medicine',
+	MAID: 'upkeep',
+	HACKING: 'hacking'
 });
-window.PersonalAttention = Object.freeze({TRADE: 'trading', WAR: 'warfare', SLAVING: 'slaving', ENGINEERING: 'engineering', MEDICINE: 'medicine', MAID: 'upkeep', HACKING: 'hacking'});
 
-window.predictCost = function(array) {
+window.predictCost = function (array) {
 	const array2 = array;
 	let totalCosts = (
 		getBrothelCosts() +
-	getBrothelAdsCosts() +
-	getArcadeCosts() +
-	getClubCosts() +
-	getClubAdsCosts() +
-	getDairyCosts() +
-	getIncubatorCosts() +
-	getServantsQuartersCosts() +
-	getMasterSuiteCosts() +
-	getNurseryCosts() +
-	getFarmyardCosts() +
-	getSecurityExpansionCost() +
-	getLifestyleCosts() +
-	getFSCosts() +
-	getCitizenOrphanageCosts() +
-	getPrivateOrphanageCosts() +
-	getPeacekeeperCosts() +
-	getMercenariesCosts() +
-	getMenialRetirementCosts() +
-	getRecruiterCosts() +
-	getSchoolCosts() +
-	getPolicyCosts() +
-	getCyberModCosts() +
-	getPCTrainingCosts() +
-	getPCCosts() +
-	predictTotalSlaveCosts(array2)
+		getBrothelAdsCosts() +
+		getArcadeCosts() +
+		getClubCosts() +
+		getClubAdsCosts() +
+		getDairyCosts() +
+		getIncubatorCosts() +
+		getServantsQuartersCosts() +
+		getMasterSuiteCosts() +
+		getNurseryCosts() +
+		getFarmyardCosts() +
+		getSecurityExpansionCost() +
+		getLifestyleCosts() +
+		getFSCosts() +
+		getCitizenOrphanageCosts() +
+		getPrivateOrphanageCosts() +
+		getPeacekeeperCosts() +
+		getMercenariesCosts() +
+		getMenialRetirementCosts() +
+		getRecruiterCosts() +
+		getSchoolCosts() +
+		getPolicyCosts() +
+		getCyberModCosts() +
+		getPCTrainingCosts() +
+		getPCCosts() +
+		predictTotalSlaveCosts(array2)
 	);
 
 	// these two apply a multiplicative effect to all costs so far.
@@ -47,7 +80,7 @@ window.predictCost = function(array) {
 	// in the old order these were applied after multiplication. Not sure if deliberate, but I'm leaving it for now.
 	totalCosts += (
 		getSFCosts() +
-	getWeatherCosts()
+		getWeatherCosts()
 	);
 	/*
 	// clean up
@@ -60,7 +93,7 @@ window.predictCost = function(array) {
 	return totalCosts;
 };
 
-window.getCost = function(array) {
+window.getCost = function (array) {
 	const array2 = array;
 	const oldCash = State.variables.cash;
 	let costSoFar = 0;
@@ -107,7 +140,7 @@ window.getCost = function(array) {
 };
 
 // slave expenses
-window.predictTotalSlaveCosts = function(array3) {
+window.predictTotalSlaveCosts = function (array3) {
 	let loopCosts = 0;
 	// slave expenses
 	for (const slave of array3) {
@@ -117,7 +150,7 @@ window.predictTotalSlaveCosts = function(array3) {
 	return loopCosts;
 };
 
-window.getTotalSlaveCosts = function(array3) {
+window.getTotalSlaveCosts = function (array3) {
 	let slaveCost = 0;
 	let slaveCostMinor = 0;
 	for (const slave of array3) {
@@ -130,7 +163,7 @@ window.getTotalSlaveCosts = function(array3) {
 };
 
 // facility expenses
-window.getBrothelCosts = function() {
+window.getBrothelCosts = function () {
 	const facilityCost = State.variables.facilityCost;
 	const brothel = State.variables.brothel;
 	let costs = (brothel * facilityCost);
@@ -138,7 +171,7 @@ window.getBrothelCosts = function() {
 	return costs;
 };
 
-window.getBrothelAdsCosts = function() {
+window.getBrothelAdsCosts = function () {
 	const brothel = State.variables.brothel;
 	let costs = 0;
 	if (brothel > 0) {
@@ -147,7 +180,7 @@ window.getBrothelAdsCosts = function() {
 	return costs;
 };
 
-window.getArcadeCosts = function() {
+window.getArcadeCosts = function () {
 	const facilityCost = State.variables.facilityCost;
 	const arcade = State.variables.arcade;
 	let costs = (arcade * facilityCost * 0.05);
@@ -155,7 +188,7 @@ window.getArcadeCosts = function() {
 	return costs;
 };
 
-window.getClubCosts = function() {
+window.getClubCosts = function () {
 	const facilityCost = State.variables.facilityCost;
 	const club = State.variables.club;
 	let costs = (club * facilityCost);
@@ -166,7 +199,7 @@ window.getClubCosts = function() {
 	return costs;
 };
 
-window.getClubAdsCosts = function() {
+window.getClubAdsCosts = function () {
 	const club = State.variables.club;
 	let costs = 0;
 	if (club > 0) {
@@ -175,41 +208,41 @@ window.getClubAdsCosts = function() {
 	return costs;
 };
 
-window.getDairyCosts = function() {
+window.getDairyCosts = function () {
 	const facilityCost = State.variables.facilityCost;
 	const dairy = State.variables.dairy;
-	let costs = (dairy * facilityCost) + (0.2 * State.variables.dairyFeedersUpgrade * dairy * facilityCost)
-	+ (0.1 * State.variables.dairyPregUpgrade * dairy * facilityCost)
-	+ (0.2 * State.variables.dairyStimulatorsUpgrade * facilityCost);
+	let costs = (dairy * facilityCost) + (0.2 * State.variables.dairyFeedersUpgrade * dairy * facilityCost) +
+		(0.1 * State.variables.dairyPregUpgrade * dairy * facilityCost) +
+		(0.2 * State.variables.dairyStimulatorsUpgrade * facilityCost);
 	if (dairy > 0) {
 		costs += ((State.variables.bioreactorsXY + State.variables.bioreactorsXX + State.variables.bioreactorsHerm + State.variables.bioreactorsBarren) * 100);
 	}
 	return costs;
 };
 
-window.getIncubatorCosts = function() {
+window.getIncubatorCosts = function () {
 	const facilityCost = State.variables.facilityCost;
 	const incubator = State.variables.incubator;
 	let costs = (State.variables.incubator * facilityCost * 10);
-	costs += (0.2 * State.variables.incubatorUpgradeWeight * incubator * facilityCost)
-	+ (0.2 * State.variables.incubatorUpgradeMuscles * incubator * facilityCost)
-	+ (0.2 * State.variables.incubatorUpgradeReproduction * incubator * facilityCost)
-	+ (0.2 * State.variables.incubatorUpgradeGrowthStims * incubator * facilityCost)
-	+ (0.5 * State.variables.incubatorUpgradeSpeed * incubator * facilityCost);
+	costs += (0.2 * State.variables.incubatorUpgradeWeight * incubator * facilityCost) +
+		(0.2 * State.variables.incubatorUpgradeMuscles * incubator * facilityCost) +
+		(0.2 * State.variables.incubatorUpgradeReproduction * incubator * facilityCost) +
+		(0.2 * State.variables.incubatorUpgradeGrowthStims * incubator * facilityCost) +
+		(0.5 * State.variables.incubatorUpgradeSpeed * incubator * facilityCost);
 	if (incubator > 0) {
 		costs += ((State.variables.incubatorWeightSetting + State.variables.incubatorMusclesSetting + State.variables.incubatorReproductionSetting + State.variables.incubatorGrowthStimsSetting) * 500);
 	}
 	return costs;
 };
 
-window.getServantsQuartersCosts = function() {
+window.getServantsQuartersCosts = function () {
 	const facilityCost = State.variables.facilityCost;
 	const servantsQuarters = State.variables.servantsQuarters;
 	const costs = (0.2 * State.variables.servantsQuartersUpgradeMonitoring * servantsQuarters * facilityCost);
 	return costs;
 };
 
-window.getMasterSuiteCosts = function() {
+window.getMasterSuiteCosts = function () {
 	let costs = 0;
 	if (State.variables.masterSuitePregnancySlaveLuxuries === 1) {
 		costs += 500;
@@ -220,21 +253,21 @@ window.getMasterSuiteCosts = function() {
 	return costs;
 };
 
-window.getNurseryCosts = function() {
+window.getNurseryCosts = function () {
 	const facilityCost = State.variables.facilityCost;
 	const nursery = State.variables.nursery;
 	const costs = (nursery * facilityCost);
 	return costs;
 };
 
-window.getFarmyardCosts = function() {
+window.getFarmyardCosts = function () {
 	const facilityCost = State.variables.facilityCost;
 	const farmyard = State.variables.farmyard;
 	const costs = (farmyard * facilityCost);
 	return costs;
 };
 
-window.getSecurityExpansionCost = function() {
+window.getSecurityExpansionCost = function () {
 	// security expansion
 	let secExpCost = 0;
 	let soldierMod = 0;
@@ -259,11 +292,9 @@ window.getSecurityExpansionCost = function() {
 		}
 		if (State.variables.soldierWages === 0) {
 			soldierMod = 1;
-		}
-		else if (State.variables.soldierWages === 1) {
+		} else if (State.variables.soldierWages === 1) {
 			soldierMod = 1.5;
-		}
-		else {
+		} else {
 			soldierMod = 2;
 		}
 		if (State.variables.militiaUnits !== null) {
@@ -293,14 +324,14 @@ window.getSecurityExpansionCost = function() {
 
 // general arcology costs
 
-window.getLifestyleCosts = function() {
+window.getLifestyleCosts = function () {
 	let costs = 0;
 	const localEcon = State.variables.localEcon;
 	costs += (State.variables.girls * (250 + (50000 / localEcon)));
 	return costs;
 };
 
-window.getFSCosts = function() {
+window.getFSCosts = function () {
 	let costs = 0;
 	costs += State.variables.FSSpending;
 	if (State.variables.arcologies[0].FSRepopulationFocusLaw === 1 && State.variables.PC.pregKnown === 1) {
@@ -309,13 +340,13 @@ window.getFSCosts = function() {
 	return costs;
 };
 
-window.getCitizenOrphanageCosts = function() {
+window.getCitizenOrphanageCosts = function () {
 	let costs = 0;
 	costs += State.variables.citizenOrphanageTotal * 100;
 	return costs;
 };
 
-window.getPrivateOrphanageCosts = function() {
+window.getPrivateOrphanageCosts = function () {
 	let costs = 0;
 	costs += State.variables.privateOrphanageTotal * 500;
 	if (State.variables.breederOrphanageTotal > 0) {
@@ -324,7 +355,7 @@ window.getPrivateOrphanageCosts = function() {
 	return costs;
 };
 
-window.getPeacekeeperCosts = function() {
+window.getPeacekeeperCosts = function () {
 	let costs = 0;
 	if (State.variables.peacekeepers !== 0 && State.variables.peacekeepers.undermining !== 0) {
 		costs += State.variables.peacekeepers.undermining;
@@ -332,7 +363,7 @@ window.getPeacekeeperCosts = function() {
 	return costs;
 };
 
-window.getMercenariesCosts = function() {
+window.getMercenariesCosts = function () {
 	let costs = 0;
 	let mercCosts = State.variables.mercenaries * 2000;
 	if (State.variables.mercenaries > 0) {
@@ -347,7 +378,7 @@ window.getMercenariesCosts = function() {
 	return costs;
 };
 
-window.getMenialRetirementCosts = function() {
+window.getMenialRetirementCosts = function () {
 	let costs = 0;
 	if (State.variables.citizenRetirementMenials === 1) {
 		costs += State.variables.menials * 2;
@@ -356,7 +387,7 @@ window.getMenialRetirementCosts = function() {
 };
 
 // policy and other expenses
-window.getRecruiterCosts = function() {
+window.getRecruiterCosts = function () {
 	let costs = 0;
 	if (State.variables.Recruiter !== 0) {
 		costs += 250;
@@ -364,7 +395,7 @@ window.getRecruiterCosts = function() {
 	return costs;
 };
 
-window.getSchoolCosts = function() {
+window.getSchoolCosts = function () {
 	let costs = 0;
 	if (State.variables.TSS.schoolPresent === 1) {
 		costs += 1000;
@@ -417,7 +448,7 @@ window.getSchoolCosts = function() {
 	return costs;
 };
 
-window.getPolicyCosts = function() {
+window.getPolicyCosts = function () {
 	let costs = 0;
 	let policyCost = State.variables.policyCost;
 	if (State.variables.alwaysSubsidizeGrowth === 1) {
@@ -443,7 +474,7 @@ window.getPolicyCosts = function() {
 	return costs;
 };
 
-window.getCyberModCosts = function() {
+window.getCyberModCosts = function () {
 	let costs = 0;
 	if (State.variables.cyberMod !== 0 && State.variables.researchLab.built === 'true') {
 		costs += ((100 * State.variables.researchLab.maxSpace) + (300 * State.variables.researchLab.hired) + (100 * State.variables.researchLab.hired));
@@ -453,26 +484,26 @@ window.getCyberModCosts = function() {
 
 
 // player expenses
-window.getPCTrainingCosts = function() {
+window.getPCTrainingCosts = function () {
 	let costs = 0;
 	if (State.variables.PC.actualAge >= State.variables.IsInPrimePC && State.variables.PC.actualAge < State.variables.IsPastPrimePC) {
 		if (State.variables.personalAttention === PersonalAttention.TRADE) {
-			costs += 10000*State.variables.AgeEffectOnTrainerPricingPC;
+			costs += 10000 * State.variables.AgeEffectOnTrainerPricingPC;
 		} else if (State.variables.personalAttention === PersonalAttention.WAR) {
-			costs += 10000*State.variables.AgeEffectOnTrainerPricingPC;
+			costs += 10000 * State.variables.AgeEffectOnTrainerPricingPC;
 		} else if (State.variables.personalAttention === PersonalAttention.SLAVING) {
-			costs += 10000*State.variables.AgeEffectOnTrainerPricingPC;
+			costs += 10000 * State.variables.AgeEffectOnTrainerPricingPC;
 		} else if (State.variables.personalAttention === PersonalAttention.ENGINEERING) {
-			costs += 10000*State.variables.AgeEffectOnTrainerPricingPC;
+			costs += 10000 * State.variables.AgeEffectOnTrainerPricingPC;
 		} else if (State.variables.personalAttention === PersonalAttention.MEDICINE) {
-			costs += 10000*State.variables.AgeEffectOnTrainerPricingPC;
+			costs += 10000 * State.variables.AgeEffectOnTrainerPricingPC;
 		} else if (State.variables.personalAttention === PersonalAttention.HACKING) {
-			costs += 10000*State.variables.AgeEffectOnTrainerPricingPC;
+			costs += 10000 * State.variables.AgeEffectOnTrainerPricingPC;
 		}
 	}
 	return costs;
 };
-window.getPCCosts = function() {
+window.getPCCosts = function () {
 	let costs = 0;
 	if (State.variables.PC.preg === -1) {
 		costs += 25;
@@ -488,7 +519,7 @@ window.getPCCosts = function() {
 };
 
 
-window.getPCMultiplierCosts = function(cost) {
+window.getPCMultiplierCosts = function (cost) {
 	if (State.variables.PC.career === 'servant') {
 		if (State.variables.personalAttention === PersonalAttention.MAID) {
 			if (State.variables.PC.belly >= 5000) {
@@ -504,7 +535,7 @@ window.getPCMultiplierCosts = function(cost) {
 	return cost;
 };
 
-window.getEnvironmentCosts = function(cost) {
+window.getEnvironmentCosts = function (cost) {
 	if (State.variables.secExp === 1) {
 		if (State.variables.terrain === 'oceanic' || State.variables.terrain === 'marine') {
 			if (State.variables.docks > 0) {
@@ -517,15 +548,16 @@ window.getEnvironmentCosts = function(cost) {
 	return Math.trunc(cost);
 };
 
-window.getSFCosts = function() {
+window.getSFCosts = function () {
 	let costs = 0;
 	if (State.variables.SF.Toggle && State.variables.SF.Active >= 1 && State.variables.SF.Subsidy !== undefined) {
-		Count(); costs += Math.ceil(State.temporary.SFSubsidy);
+		Count();
+		costs += Math.ceil(State.temporary.SFSubsidy);
 	}
 	return costs;
 };
 
-window.getWeatherCosts = function() {
+window.getWeatherCosts = function () {
 	let costs = 0;
 	if (State.variables.econWeatherDamage && State.variables.disasterResponse > 0) {
 		costs += Math.trunc(State.variables.disasterResponse * 200000 / State.variables.localEcon);
@@ -536,7 +568,7 @@ window.getWeatherCosts = function() {
 	return costs;
 };
 
-window.getSlaveMinorCosts = function(slave) {
+window.getSlaveMinorCosts = function (slave) {
 	let costs = 0;
 	let rulesCost = State.variables.rulesCost;
 	if (slave.assignment === Job.SERVANT || slave.assignment === Job.SERVER) {
@@ -581,8 +613,10 @@ window.getSlaveMinorCosts = function(slave) {
 	return costs;
 };
 
-window.getSlaveCost = function(s) {
-	if (!s) { return 0; }
+window.getSlaveCost = function (s) {
+	if (!s) {
+		return 0;
+	}
 	// Data duplicated from Cost Report
 	let cost = 0;
 	const rulesCost = State.variables.rulesCost;
@@ -621,7 +655,8 @@ window.getSlaveCost = function(s) {
 				cost += rulesCost;
 			}
 			break;
-		case Job.SCHOOL: case Job.CLUB:
+		case Job.SCHOOL:
+		case Job.CLUB:
 			cost += rulesCost * 1.5;
 			break;
 		case Job.CLINIC:
@@ -633,7 +668,8 @@ window.getSlaveCost = function(s) {
 				cost += rulesCost;
 			}
 			break;
-		case Job.SPA: case Job.NANNY:
+		case Job.SPA:
+		case Job.NANNY:
 			if (s.livingRules === LivingRule.LUXURIOUS) {
 				cost += rulesCost * 1.75;
 			} else if (s.livingRules === LivingRule.NORMAL) {
@@ -660,7 +696,16 @@ window.getSlaveCost = function(s) {
 				cost += rulesCost * 0.90;
 			}
 			break;
-		case Job.MADAM: case Job.DJ: case Job.NURSE: case Job.WARDEN: case Job.ATTEND: case Job.STEWARD: case Job.MILKMAID: case Job.FARMER: case Job.TEACHER: case Job.MATRON:
+		case Job.MADAM:
+		case Job.DJ:
+		case Job.NURSE:
+		case Job.WARDEN:
+		case Job.ATTEND:
+		case Job.STEWARD:
+		case Job.MILKMAID:
+		case Job.FARMER:
+		case Job.TEACHER:
+		case Job.MATRON:
 			cost += rulesCost * 2;
 			break;
 		default:
@@ -677,10 +722,12 @@ window.getSlaveCost = function(s) {
 	// Food
 	cost += foodCost * 4;
 	switch (s.diet) {
-		case 'fattening': case 'muscle building':
+		case 'fattening':
+		case 'muscle building':
 			cost += foodCost;
 			break;
-		case 'restricted': case 'slimming':
+		case 'restricted':
+		case 'slimming':
 			cost -= foodCost;
 			break;
 	}
@@ -701,14 +748,14 @@ window.getSlaveCost = function(s) {
 		cost -= foodCost;
 	}
 	if (s.lactation > 0) {
-		cost += foodCost * s.lactation * (1 + Math.trunc(s.boobs/10000));
+		cost += foodCost * s.lactation * (1 + Math.trunc(s.boobs / 10000));
 	}
-	if (s.preg > s.pregData.normalBirth/8) {
+	if (s.preg > s.pregData.normalBirth / 8) {
 		if (s.assignment === Job.DAIRY && State.variables.dairyFeedersSetting > 0) {
 			// Extra feeding costs to support pregnancy are covered by dairy feeders.
 			// TODO: Include them here anyway?
-		} else if ((s.assignment === Job.MASTER_SUITE || s.assignment === Job.CONCUBINE)
-			&& State.variables.masterSuiteUpgradePregnancy === 1) {
+		} else if ((s.assignment === Job.MASTER_SUITE || s.assignment === Job.CONCUBINE) &&
+			State.variables.masterSuiteUpgradePregnancy === 1) {
 			// Extra feeding costs to support pregnancy are covered by master suite luxuries.
 			// TODO: Include them here anyway?
 		} else {
@@ -733,12 +780,12 @@ window.getSlaveCost = function(s) {
 	}
 
 	// Accessibility costs
-	if (State.variables.boobAccessibility !== 1 && s.boobs > 20000
-		&& (s.assignment !== Job.DAIRY || State.variables.dairyRestraintsSetting < 2) && (s.assignment !== Job.ARCADE)) {
+	if (State.variables.boobAccessibility !== 1 && s.boobs > 20000 &&
+		(s.assignment !== Job.DAIRY || State.variables.dairyRestraintsSetting < 2) && (s.assignment !== Job.ARCADE)) {
 		cost += 50;
 	}
-	if (State.variables.pregAccessibility !== 1
-		&& (s.belly >= 60000) && s.assignment !== Job.BABY_FACTORY && (s.assignment !== Job.DAIRY || State.variables.dairyRestraintsSetting < 2) && (s.assignment !== Job.ARCADE)) {
+	if (State.variables.pregAccessibility !== 1 &&
+		(s.belly >= 60000) && s.assignment !== Job.BABY_FACTORY && (s.assignment !== Job.DAIRY || State.variables.dairyRestraintsSetting < 2) && (s.assignment !== Job.ARCADE)) {
 		cost += 100;
 	}
 	if (State.variables.dickAccessibility !== 1 && s.dick > 45 && (s.assignment !== Job.DAIRY || State.variables.dairyRestraintsSetting < 2) && (s.assignment !== Job.ARCADE)) {
@@ -807,7 +854,9 @@ window.getSlaveCost = function(s) {
 			case 'food':
 				cost += (foodCost * 4);
 				break;
-			case 'curative': case 'aphrodisiac': case 'tightener':
+			case 'curative':
+			case 'aphrodisiac':
+			case 'tightener':
 				cost += (100 + (drugsCost * 2));
 				break;
 		}
@@ -819,7 +868,9 @@ window.getSlaveCost = function(s) {
 			case 'food':
 				cost += (foodCost * 2);
 				break;
-			case 'curative': case 'aphrodisiac': case 'tightener':
+			case 'curative':
+			case 'aphrodisiac':
+			case 'tightener':
 				cost += (50 + (drugsCost * 2));
 				break;
 		}
@@ -831,7 +882,9 @@ window.getSlaveCost = function(s) {
 			case 'food':
 				cost += (foodCost);
 				break;
-			case 'curative': case 'aphrodisiac': case 'tightener':
+			case 'curative':
+			case 'aphrodisiac':
+			case 'tightener':
 				cost += (25 + (drugsCost * 2));
 				break;
 		}
@@ -842,17 +895,26 @@ window.getSlaveCost = function(s) {
 		case 'anti-aging cream':
 			cost += drugsCost * 10;
 			break;
-		case 'female hormone injections': case 'male hormone injections': case 'intensive breast injections':
-		case 'intensive butt injections': case 'intensive penis enhancement': case 'intensive testicle enhancement':
-		case 'intensive lip injections': case 'hyper breast injections': case 'hyper butt injections':
-		case 'hyper penis enhancement': case 'hyper testicle enhancement': case 'hyper lip injections':
+		case 'female hormone injections':
+		case 'male hormone injections':
+		case 'intensive breast injections':
+		case 'intensive butt injections':
+		case 'intensive penis enhancement':
+		case 'intensive testicle enhancement':
+		case 'intensive lip injections':
+		case 'hyper breast injections':
+		case 'hyper butt injections':
+		case 'hyper penis enhancement':
+		case 'hyper testicle enhancement':
+		case 'hyper lip injections':
 		case 'growth stimulants':
 			cost += drugsCost * 5;
 			break;
 		case 'sag-B-gone':
 			cost += Math.trunc(drugsCost * 0.1);
 			break;
-		case 'no drugs': case 'none':
+		case 'no drugs':
+		case 'none':
 			break;
 		default:
 			cost += drugsCost * 2;
@@ -877,7 +939,7 @@ window.getSlaveCost = function(s) {
 	// Promotion costs
 	if (State.variables.studio === 1) {
 		if (s.pornFameSpending > 0) {
-			cost += (s.pornFameSpending/State.variables.PCSlutContacts);
+			cost += (s.pornFameSpending / State.variables.PCSlutContacts);
 		}
 	}
 
@@ -890,7 +952,7 @@ window.getSlaveCost = function(s) {
 // Supply and Demand for slaves (linear, simple)
 // PC buying slaves reduces supply, selling slaves reduces demand.
 
-window.menialSlaveCost = function(q) {
+window.menialSlaveCost = function (q) {
 	if (!q) {
 		q = 0;
 	}
@@ -901,9 +963,11 @@ window.menialSlaveCost = function(q) {
 	return (Math.trunc(baseCost + demand / 400 - supply / 400 + q / 400) + random);
 };
 
-window.NPCSexSupply = function(LC) {
+window.NPCSexSupply = function (LC) {
 	const V = State.variables;
-	let NPCSexSupply = {lowerClass: V.NPCSexSupply.lowerClass};
+	let NPCSexSupply = {
+		lowerClass: V.NPCSexSupply.lowerClass
+	};
 
 	// Lower class calculations
 	LC += V.sexSubsidiesLC / 10 - V.sexSupplyBarriersLC / 20;
@@ -919,9 +983,16 @@ window.NPCSexSupply = function(LC) {
 };
 
 // The function for calculating and storing a slave's sexual interaction with citizens/'the outside'
-window.slaveJobValues = function() {
+window.slaveJobValues = function () {
 	const V = State.variables;
-	let slaveJobValues = {arcade: 0, club: 0, clubSP: 0}, clubSpots = 0, toTheClubTotal = 0, DJRepBonus = 0;
+	let slaveJobValues = {
+			arcade: 0,
+			club: 0,
+			clubSP: 0
+		},
+		clubSpots = 0,
+		toTheClubTotal = 0,
+		DJRepBonus = 0;
 	V.slavesGettingHelp = 0;
 
 	// This section is for specific slaves or non-unique slaves adding their values to the whole
@@ -985,7 +1056,7 @@ window.slaveJobValues = function() {
 			// $His toned body helps $him lead $his fellow club girls by letting $him dance all night.
 		}
 		if (V.DJ.intelligence + V.DJ.intelligenceImplant > 15) {
-			DJRepBonus += 0.05 * Math.floor((V.DJ.intelligence + V.DJ.intelligenceImplant)/32);
+			DJRepBonus += 0.05 * Math.floor((V.DJ.intelligence + V.DJ.intelligenceImplant) / 32);
 			// $He's smart enough to make an actual contribution to the music, greatly enhancing the entire experience.
 		}
 		if (V.DJ.face > 95) {
@@ -1038,7 +1109,8 @@ window.slaveJobValues = function() {
 	});
 
 	function SJVClub(s) {
-		let toTheClub = 0, beautyMultiplier = 1;
+		let toTheClub = 0,
+			beautyMultiplier = 1;
 		s.minorInjury = 0;
 
 		// The beauty multiplier
@@ -1150,7 +1222,7 @@ window.slaveJobValues = function() {
 				s.minorInjury = 1;
 			} else if (!canDoVaginal(s)) {
 				if (canDoAnal(s)) {
-					if (jsRandom(1, 100) > 40+(10*(s.skill.anal + s.skill.oral))) {
+					if (jsRandom(1, 100) > 40 + (10 * (s.skill.anal + s.skill.oral))) {
 						s.health -= 5;
 						s.minorInjury = 1;
 					}
@@ -1159,7 +1231,7 @@ window.slaveJobValues = function() {
 					s.minorInjury = 1;
 				}
 			} else if (s.skill.anal + s.skill.oral + s.skill.vaginal < 300) {
-				if (jsRandom(1, 100) > 10+((s.skill.anal + s.skill.oral + s.skill.vaginal)/10)) {
+				if (jsRandom(1, 100) > 10 + ((s.skill.anal + s.skill.oral + s.skill.vaginal) / 10)) {
 					s.minorInjury = 1;
 				}
 			}
@@ -1245,7 +1317,7 @@ window.slaveJobValues = function() {
 
 // Corporation Value
 
-window.corpValue = function() {
+window.corpValue = function () {
 	const V = State.variables;
 	if (V.corpIncorporated === 0) {
 		return 0;
@@ -1296,7 +1368,7 @@ window.corpValue = function() {
 // Corporation Share Price
 // A positive q means adding shares to the market, negative means removing them
 
-window.corpSharePrice = function(q = 0) {
+window.corpSharePrice = function (q = 0) {
 	const V = State.variables;
 	if (V.corpIncorporated === 0) {
 		return 0;
@@ -1308,7 +1380,7 @@ window.corpSharePrice = function(q = 0) {
 // The amount of additional slaves you can fit in a division
 // Can we condense this?
 
-window.corpDivBreakSlavesRoom = function() {
+window.corpDivBreakSlavesRoom = function () {
 	const V = State.variables;
 	if (V.corpDivBreak === 1 && V.corpDivBreakDev > V.corpDivBreakSlaves) {
 		return V.corpDivBreakDev - V.corpDivBreakSlaves;
@@ -1316,7 +1388,7 @@ window.corpDivBreakSlavesRoom = function() {
 	return 0;
 };
 
-window.corpDivSurgerySlavesRoom = function() {
+window.corpDivSurgerySlavesRoom = function () {
 	const V = State.variables;
 	if (V.corpDivSurgery === 1 && V.corpDivSurgeryDev > V.corpDivSurgerySlaves) {
 		return V.corpDivSurgeryDev - V.corpDivSurgerySlaves;
@@ -1324,7 +1396,7 @@ window.corpDivSurgerySlavesRoom = function() {
 	return 0;
 };
 
-window.corpDivTrainSlavesRoom = function() {
+window.corpDivTrainSlavesRoom = function () {
 	const V = State.variables;
 	if (V.corpDivTrain === 1 && V.corpDivTrainDev > V.corpDivTrainSlaves) {
 		return V.corpDivTrainDev - V.corpDivTrainSlaves;
@@ -1332,7 +1404,7 @@ window.corpDivTrainSlavesRoom = function() {
 	return 0;
 };
 
-window.corpDivArcadeSlavesRoom = function() {
+window.corpDivArcadeSlavesRoom = function () {
 	const V = State.variables;
 	if (V.corpDivArcade === 1 && V.corpDivArcadeDev > V.corpDivArcadeSlaves) {
 		return V.corpDivArcadeDev - V.corpDivArcadeSlaves;
@@ -1340,7 +1412,7 @@ window.corpDivArcadeSlavesRoom = function() {
 	return 0;
 };
 
-window.corpDivMenialSlavesRoom = function() {
+window.corpDivMenialSlavesRoom = function () {
 	const V = State.variables;
 	if (V.corpDivMenial === 1 && V.corpDivMenialDev > V.corpDivMenialSlaves) {
 		return V.corpDivMenialDev - V.corpDivMenialSlaves;
@@ -1348,7 +1420,7 @@ window.corpDivMenialSlavesRoom = function() {
 	return 0;
 };
 
-window.corpDivDairySlavesRoom = function() {
+window.corpDivDairySlavesRoom = function () {
 	const V = State.variables;
 	if (V.corpDivDairy === 1 && V.corpDivDairyDev > V.corpDivDairySlaves) {
 		return V.corpDivDairyDev - V.corpDivDairySlaves;
@@ -1356,7 +1428,7 @@ window.corpDivDairySlavesRoom = function() {
 	return 0;
 };
 
-window.corpDivWhoreSlavesRoom = function() {
+window.corpDivWhoreSlavesRoom = function () {
 	const V = State.variables;
 	if (V.corpDivWhore === 1 && V.corpDivWhoreDev > V.corpDivWhoreSlaves) {
 		return V.corpDivWhoreDev - V.corpDivWhoreSlaves;
@@ -1366,7 +1438,7 @@ window.corpDivWhoreSlavesRoom = function() {
 
 // Corporation race blacklisting/whitelisting
 // race is the lowercase string representing the race, 'blacklist' is either 1 or 0. 1 means we are blacklisting and 0 means we are whitelisting said race
-window.corpBlacklistRace = function(race, blacklist) {
+window.corpBlacklistRace = function (race, blacklist) {
 	let raceArray = State.variables.corpSpecRaces;
 	if (raceArray.length > 0 && blacklist === 1) {
 		raceArray.delete(race);
@@ -1378,12 +1450,18 @@ window.corpBlacklistRace = function(race, blacklist) {
 	return raceArray;
 };
 
-window.getSlaveStatisticData = function(s, facility) {
+window.getSlaveStatisticData = function (s, facility) {
 	if (!s || !facility) {
 		// Base data, even without facility
 		return {
-			ID: s.ID, slaveName: s.slaveName, customLabel: s.custom.label,
-			income: 0, adsIncome: 0, rep: 0, food: 0, cost: getSlaveCost(s),
+			ID: s.ID,
+			slaveName: s.slaveName,
+			customLabel: s.custom.label,
+			income: 0,
+			adsIncome: 0,
+			rep: 0,
+			food: 0,
+			cost: getSlaveCost(s),
 			customers: 0 /* brothel, club, ... */
 		};
 	}
@@ -1397,15 +1475,21 @@ window.getSlaveStatisticData = function(s, facility) {
 	}
 
 	const data = {
-		ID: s.ID, slaveName: s.slaveName, customLabel: s.custom.label,
-		income: 0, adsIncome: 0, rep: 0, food: 0, cost: getSlaveCost(s),
+		ID: s.ID,
+		slaveName: s.slaveName,
+		customLabel: s.custom.label,
+		income: 0,
+		adsIncome: 0,
+		rep: 0,
+		food: 0,
+		cost: getSlaveCost(s),
 		customers: 0 /* brothel, club, ... */
 	};
 	facility.income.set(s.ID, data);
 	return data;
 };
 
-window.initFacilityStatistics = function(facility) {
+window.initFacilityStatistics = function (facility) {
 	facility = facility || {};
 	facility.adsIncome = 0;
 	facility.maintenance = 0;
@@ -1442,7 +1526,7 @@ A full list of categories (slaveMod, slaveTransfer, event) are in the widget "se
 The third category, the "slave slot" is completely optional. Sometimes you just want to spend money by yourself.
 
 */
-window.cashX = function(cost, what, who) {
+window.cashX = function (cost, what, who) {
 	const V = State.variables;
 
 	if (!Number.isFinite(cost)) {
@@ -1493,7 +1577,7 @@ window.cashX = function(cost, what, who) {
 	return cost;
 };
 
-window.repX = function(rep, what, who) {
+window.repX = function (rep, what, who) {
 	const V = State.variables;
 
 	if (!Number.isFinite(rep)) {
@@ -1518,7 +1602,7 @@ window.repX = function(rep, what, who) {
 			/* we don't want to curve startup or cheating.*/
 			V.lastWeeksRepIncome[what] += rep;
 		} else if (typeof V.lastWeeksRepIncome[what] !== 'undefined') {
-			rep = Math.round(Math.pow(1000 * rep + Math.pow(V.rep, 2), 0.5) - V.rep)* (V.corpEasy + 1);
+			rep = Math.round(Math.pow(1000 * rep + Math.pow(V.rep, 2), 0.5) - V.rep) * (V.corpEasy + 1);
 			V.lastWeeksRepIncome[what] += rep;
 		} else {
 			V.lastWeeksRepErrors += `Unknown place "${what}" gained you ${rep}<br>`;
@@ -1546,21 +1630,23 @@ window.repX = function(rep, what, who) {
 
 	// Check if total rep is over cap, and use "overflow" category to expense it down if needed.
 	if (V.rep > 20000) {
-		V.lastWeeksRepExpenses.overflow += (20000 - V.rep); V.rep = 20000;
+		V.lastWeeksRepExpenses.overflow += (20000 - V.rep);
+		V.rep = 20000;
 	}
 
 	// Rep should never be lower than 0.  Record this rounding purely to keep the books balanced.
 	else if (V.rep < 0) {
-		V.lastWeeksRepIncome.overflow += (0 - V.rep); V.rep = 0;
+		V.lastWeeksRepIncome.overflow += (0 - V.rep);
+		V.rep = 0;
 	}
 
 	return rep;
 };
 
-window.forceNeg = function(x) {
+window.forceNeg = function (x) {
 	return -Math.abs(x);
 };
 
-Number.prototype.toFixedHTML = function() {
+Number.prototype.toFixedHTML = function () {
 	return num(Number.prototype.toFixed.apply(this, arguments)).replace(/\.0+$/, '<span style="opacity: 0.3">$&</span>');
 };
diff --git a/src/js/generateGenetics.js b/src/js/generateGenetics.js
index 1ae16e7eca844c2236cffef864879ace96bdd4a9..e17c6be6f44358592227bc7df43bcac54db71c19 100644
--- a/src/js/generateGenetics.js
+++ b/src/js/generateGenetics.js
@@ -1,6 +1,6 @@
 // Generates a child's genetics based off mother and father and returns it as an object to be attached to an ovum
 
-window.generateGenetics = (function() {
+window.generateGenetics = (function () {
 	"use strict";
 	let genes;
 	let mother;
@@ -11,9 +11,35 @@ window.generateGenetics = (function() {
 
 	function generateGenetics(actor1, actor2, x) {
 		V = State.variables;
-		genes = {gender: "XX", name: "blank", surname: 0, mother: 0, motherName: "none", father: 0, fatherName: "none", nationality: "Stateless", race: "white", intelligence: 0, face: 0, faceShape: "cute", eyeColor: "brown", hColor: "black", skin: "white", markings: "none", behavioralFlaw: "none", sexualFlaw: "none", pubicHStyle: "bushy", underArmHStyle: "bushy", clone: 0, cloneID: 0, geneticQuirks: 0};
+		genes = {
+			gender: "XX",
+			name: "blank",
+			surname: 0,
+			mother: 0,
+			motherName: "none",
+			father: 0,
+			fatherName: "none",
+			nationality: "Stateless",
+			race: "white",
+			intelligence: 0,
+			face: 0,
+			faceShape: "cute",
+			eyeColor: "brown",
+			hColor: "black",
+			skin: "white",
+			markings: "none",
+			behavioralFlaw: "none",
+			sexualFlaw: "none",
+			pubicHStyle: "bushy",
+			underArmHStyle: "bushy",
+			clone: 0,
+			cloneID: 0,
+			geneticQuirks: 0
+		};
 		if (actor1.ID > 0) {
-			mother = V.genePool.find(function(s) { return s.ID === actor1.ID; });
+			mother = V.genePool.find(function (s) {
+				return s.ID === actor1.ID;
+			});
 			if (mother === undefined) {
 				mother = actor1;
 			}
@@ -26,7 +52,9 @@ window.generateGenetics = (function() {
 			mother = V.PC;
 		}
 		if (actor2 > 0) {
-			father = V.genePool.find(function(s) { return s.ID === actor2; });
+			father = V.genePool.find(function (s) {
+				return s.ID === actor2;
+			});
 			activeFather = V.slaves[V.slaveIndices[actor2]];
 			if (father === undefined) {
 				father = V.slaves[V.slaveIndices[actor2]];
@@ -34,13 +62,17 @@ window.generateGenetics = (function() {
 			}
 			if (father === undefined) {
 				if (V.incubator > 0) {
-					father = V.tanks.find(function(s) { return s.ID === actor2; });
+					father = V.tanks.find(function (s) {
+						return s.ID === actor2;
+					});
 					activeFather = 0; // activeFather = father?
 				}
 			}
 			if (father === undefined) {
 				if (V.nursery > 0) {
-					father = V.cribs.find(function(s) { return s.ID === actor2; });
+					father = V.cribs.find(function (s) {
+						return s.ID === actor2;
+					});
 					activeFather = 0; // activeFather = father?
 				}
 			}
@@ -90,7 +122,7 @@ window.generateGenetics = (function() {
 		if (mother.geneticQuirks.girlsOnly === 2) {
 			gender = "XX";
 		} else if (V.seeDicksAffectsPregnancy === 1) {
-			gender = Math.floor(Math.random()*100) < V.seeDicks ? "XY" : "XX";
+			gender = Math.floor(Math.random() * 100) < V.seeDicks ? "XY" : "XX";
 		} else if (V.adamPrinciple === 1) {
 			if (father !== 0) {
 				if (father.genes === "XX" && mother.genes === "XX") {
@@ -124,10 +156,14 @@ window.generateGenetics = (function() {
 		let motherName;
 		if (activeMother.ID === -1) {
 			motherName = activeMother.name;
-			if (activeMother.surname !== 0 && activeMother.surname !== "") { motherName += ` ${activeMother.surname}`; }
+			if (activeMother.surname !== 0 && activeMother.surname !== "") {
+				motherName += ` ${activeMother.surname}`;
+			}
 		} else {
 			motherName = activeMother.slaveName;
-			if (activeMother.slaveSurname !== 0 && activeMother.slaveSurname !== "") { motherName += ` ${activeMother.slaveSurname}`; }
+			if (activeMother.slaveSurname !== 0 && activeMother.slaveSurname !== "") {
+				motherName += ` ${activeMother.slaveSurname}`;
+			}
 		}
 		return motherName;
 	}
@@ -143,10 +179,14 @@ window.generateGenetics = (function() {
 		if (father !== 0) {
 			if (father.ID === -1) {
 				fatherName = activeFather.name;
-				if (activeFather.surname !== 0 && activeFather.surname !== "") { fatherName += ` ${activeFather.surname}`; }
+				if (activeFather.surname !== 0 && activeFather.surname !== "") {
+					fatherName += ` ${activeFather.surname}`;
+				}
 			} else {
 				fatherName = activeFather.slaveName;
-				if (activeFather.slaveSurname !== 0 && activeFather.slaveSurname !== "") { fatherName += ` ${activeFather.slaveSurname}`; }
+				if (activeFather.slaveSurname !== 0 && activeFather.slaveSurname !== "") {
+					fatherName += ` ${activeFather.slaveSurname}`;
+				}
 			}
 		} else {
 			switch (actor2) {
@@ -338,7 +378,7 @@ window.generateGenetics = (function() {
 			case "implant":
 				eyeColor = jsEither(["blue", "brown", "dark blue", "dark green", "green", "hazel", "light blue", "light green"]);
 				break;
-			
+
 		}
 		return eyeColor;
 	}
@@ -379,7 +419,7 @@ window.generateGenetics = (function() {
 			case "implant":
 				hEyeColor = jsEither(["blue", "green", "brown", "hazel", "light blue", "light green", "dark green", "dark blue"]);
 				break;
-			
+
 		}
 		return jsEither(eyeColorArray);
 	}
@@ -522,7 +562,9 @@ window.generateGenetics = (function() {
 		} else {
 			fetish = jsEither(["none", "none", "none", "none", "none", mother.fetish, mother.fetish]);
 		}
-		if (fetish === "mindbroken") { fetish = "none"; }
+		if (fetish === "mindbroken") {
+			fetish = "none";
+		}
 		return fetish;
 	}
 
@@ -650,7 +692,24 @@ window.generateGenetics = (function() {
 
 	// genetic quirks
 	function setGeneticQuirks(father, mother, sex) {
-		let quirks = {macromastia: 0, gigantomastia: 0, fertility: 0, hyperFertility: 0, superfetation: 0, gigantism: 0, dwarfism: 0, pFace: 0, uFace: 0, albinism: 0, heterochromia: 0, rearLipedema: 0, wellHung: 0, wGain: 0, wLoss: 0, androgyny: 0};
+		let quirks = {
+			macromastia: 0,
+			gigantomastia: 0,
+			fertility: 0,
+			hyperFertility: 0,
+			superfetation: 0,
+			gigantism: 0,
+			dwarfism: 0,
+			pFace: 0,
+			uFace: 0,
+			albinism: 0,
+			heterochromia: 0,
+			rearLipedema: 0,
+			wellHung: 0,
+			wGain: 0,
+			wLoss: 0,
+			androgyny: 0
+		};
 		let chance = 0;
 
 		// fertility
@@ -1129,7 +1188,11 @@ window.generateChild = function (mother, ova, destination) {
 		child.fetish = genes.fetish;
 		child.geneticQuirks = clone(genes.geneticQuirks);
 		if (child.geneticQuirks.albinism === 2) {
-			child.albinismOverride = {skin: genes.skin, eyeColor: genes.eyeColor, hColor: genes.hColor};
+			child.albinismOverride = {
+				skin: genes.skin,
+				eyeColor: genes.eyeColor,
+				hColor: genes.hColor
+			};
 			child.hColor = "white";
 			child.pubicHColor = child.hColor;
 			child.underArmHColor = child.hColor;
@@ -1413,8 +1476,12 @@ window.generateChild = function (mother, ova, destination) {
 		child.birthWeek = 0;
 		child.energy = 0;
 		child.anus = 0;
-		if (child.vagina > 0) { child.vagina = 0; }
-		if (child.fetish !== "none") { child.fetishStrength = 20; }
+		if (child.vagina > 0) {
+			child.vagina = 0;
+		}
+		if (child.fetish !== "none") {
+			child.fetishStrength = 20;
+		}
 		if (child.dick > 0) {
 			child.foreskin = 1;
 			child.balls = 1;
diff --git a/src/js/pregJS.js b/src/js/pregJS.js
index c3734525e098d714220d9946b10466a1508c773a..c14397d2ff6b8061483e0ded851a430d6c65b09f 100644
--- a/src/js/pregJS.js
+++ b/src/js/pregJS.js
@@ -1,13 +1,13 @@
 /* Major props to the anons who worked together to forge the Super Pregnancy Project. Let your legacy go unforgotten.*/
-window.getPregBellySize = function(s) {
+window.getPregBellySize = function (s) {
 	let targetLen;
 	let gestastionWeek = s.preg;
 	let fetuses = s.pregType;
 	let phi = 1.618;
 
-	if(gestastionWeek <= 32) {
+	if (gestastionWeek <= 32) {
 		targetLen = ((0.00006396 * Math.pow(gestastionWeek, 4)) - (0.005501 * Math.pow(gestastionWeek, 3)) + (0.161 * Math.pow(gestastionWeek, 2)) - (0.76 * gestastionWeek) + 0.208);
-	} else if(gestastionWeek <= 106) {
+	} else if (gestastionWeek <= 106) {
 		targetLen = ((-0.0000004675 * Math.pow(gestastionWeek, 4)) + (0.0001905 * Math.pow(gestastionWeek, 3)) - (0.029 * Math.pow(gestastionWeek, 2)) + (2.132 * gestastionWeek) - 16.575);
 	} else {
 		targetLen = ((-0.00003266 * Math.pow(gestastionWeek, 2)) + (0.076 * gestastionWeek) + 43.843);
@@ -21,41 +21,41 @@ window.getPregBellySize = function(s) {
  * @param {App.Entity.SlaveState} slave
  * @returns {string}
  */
-window.bellyAdjective = function(slave) {
+window.bellyAdjective = function (slave) {
 	let r = ``;
 	slave = slave || State.variables.activeSlave;
-	if(slave.belly >= 1500) {
-		if(slave.belly >= 1000000) {
-			if(slave.preg > slave.pregData.normalBirth/4) {
+	if (slave.belly >= 1500) {
+		if (slave.belly >= 1000000) {
+			if (slave.preg > slave.pregData.normalBirth / 4) {
 				r = `unfathomably distended, brimming with life`;
 			} else {
 				r = `unfathomable`;
 			}
-		} else if(slave.belly >= 750000) {
-			if(slave.preg > slave.pregData.normalBirth/4) {
+		} else if (slave.belly >= 750000) {
+			if (slave.preg > slave.pregData.normalBirth / 4) {
 				r = `monolithic bulging`;
 			} else {
 				r = `monolithic`;
 			}
-		} else if(slave.belly >= 600000) {
-			if(slave.preg > slave.pregData.normalBirth/4) {
+		} else if (slave.belly >= 600000) {
+			if (slave.preg > slave.pregData.normalBirth / 4) {
 				r = `titanic bulging`;
 			} else {
 				r = `titanic`;
 			}
-		} else if(slave.belly >= 450000) {
-			if(slave.preg > slave.pregData.normalBirth/4) {
+		} else if (slave.belly >= 450000) {
+			if (slave.preg > slave.pregData.normalBirth / 4) {
 				r = `gigantic bulgy`;
 			} else {
 				r = `gigantic`;
 			}
-		} else if(slave.belly >= 300000) {
+		} else if (slave.belly >= 300000) {
 			r = `massive`;
-		} else if(slave.belly >= 100000) {
+		} else if (slave.belly >= 100000) {
 			r = `giant`;
-		} else if(slave.belly >= 15000) {
+		} else if (slave.belly >= 15000) {
 			r = `huge`;
-		} else if(slave.belly >= 10000) {
+		} else if (slave.belly >= 10000) {
 			r = `big`;
 		} else {
 			r = `swollen`;
@@ -65,7 +65,7 @@ window.bellyAdjective = function(slave) {
 };
 
 /* calculates and returns expected ovum count during conception*/
-window.setPregType = function(actor) {
+window.setPregType = function (actor) {
 	/* IMHO rework is possible. Can be more interesting to play, if this code will take in account more body conditions - age, fat, food, hormone levels, etc. */
 
 	let ovum = jsRandom(actor.pregData.normalOvaMin, actor.pregData.normalOvaMax); // for default human profile it's always 1.
@@ -82,301 +82,301 @@ window.setPregType = function(actor) {
 
 	*/
 
-	if(actor.broodmother < 1) { // Broodmothers should be not processed here. Necessary now.
-		if(typeof actor.readyOva === "number" && actor.readyOva !== 0) {
+	if (actor.broodmother < 1) { // Broodmothers should be not processed here. Necessary now.
+		if (typeof actor.readyOva === "number" && actor.readyOva !== 0) {
 			ovum = actor.readyOva; // just single override; for delayed impregnation cases
-		} else if(actor.ID === -1) {
-			if(actor.geneticQuirks.fertility === 2 && actor.geneticQuirks.hyperFertility === 2) { // Do not mix with sperm
-				if(actor.fertDrugs === 1) {
+		} else if (actor.ID === -1) {
+			if (actor.geneticQuirks.fertility === 2 && actor.geneticQuirks.hyperFertility === 2) { // Do not mix with sperm
+				if (actor.fertDrugs === 1) {
 					ovum += jsEither([2, 3, 3, 3, 3, 4, 4, 5]);
 				} else {
 					ovum += jsEither([1, 1, 2, 2, 3, 3, 4]);
 				}
-				if(actor.forcedFertDrugs > 0) {
+				if (actor.forcedFertDrugs > 0) {
 					ovum += jsEither([3, 3, 4, 4, 5]);
 				}
-			} else if(actor.geneticQuirks.hyperFertility === 2) { // Predisposed to multiples
-				if(actor.fertDrugs === 1) {
+			} else if (actor.geneticQuirks.hyperFertility === 2) { // Predisposed to multiples
+				if (actor.fertDrugs === 1) {
 					ovum += jsEither([1, 2, 2, 2, 2, 3, 3, 4]);
 				} else {
 					ovum += jsEither([0, 1, 1, 1, 1, 1, 2, 3]);
 				}
-				if(actor.forcedFertDrugs > 0) {
+				if (actor.forcedFertDrugs > 0) {
 					ovum += jsEither([2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4]);
 				}
-			} else if(actor.geneticQuirks.fertility === 2) { // Predisposed to twins
-				if(actor.fertDrugs === 1) {
+			} else if (actor.geneticQuirks.fertility === 2) { // Predisposed to twins
+				if (actor.fertDrugs === 1) {
 					ovum += jsEither([1, 1, 2, 2, 2, 2, 3, 3]);
 				} else {
 					ovum += jsEither([0, 0, 0, 1, 1, 1, 1, 1, 1, 2]);
 				}
-				if(actor.forcedFertDrugs > 0) {
+				if (actor.forcedFertDrugs > 0) {
 					ovum += jsEither([1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4]);
 				}
 			} else {
-				if(actor.fertDrugs === 1) {
+				if (actor.fertDrugs === 1) {
 					ovum += jsEither([0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3]);
 				} else {
 					ovum += jsEither([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]);
 				}
-				if(actor.forcedFertDrugs > 0) {
+				if (actor.forcedFertDrugs > 0) {
 					ovum += jsEither([0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4]);
 				}
 			}
 			ovum = Math.clamp(ovum, 0, 8);
-		} else if(actor.pregType === 0) {
-			if(actor.eggType === "horse" || actor.eggType === "cow") {
-				if(actor.geneticQuirks.fertility === 2 && actor.geneticQuirks.hyperFertility === 2) { // Do not mix with sperm
+		} else if (actor.pregType === 0) {
+			if (actor.eggType === "horse" || actor.eggType === "cow") {
+				if (actor.geneticQuirks.fertility === 2 && actor.geneticQuirks.hyperFertility === 2) { // Do not mix with sperm
 					ovum += jsEither([0, 0, 0, 0, 0, 0, 1]);
 					fertilityStack += .8;
-				} else if(actor.geneticQuirks.hyperFertility === 2) { // Predisposed to multiples
+				} else if (actor.geneticQuirks.hyperFertility === 2) { // Predisposed to multiples
 					fertilityStack += .4;
-				} else if(actor.geneticQuirks.fertility === 2) { // Predisposed to twins
+				} else if (actor.geneticQuirks.fertility === 2) { // Predisposed to twins
 					fertilityStack += .2;
 				}
-				if(actor.ovaImplant === "fertility") {
+				if (actor.ovaImplant === "fertility") {
 					fertilityStack += .3;
 				}
-				if(actor.hormones === 2) {
+				if (actor.hormones === 2) {
 					fertilityStack += .2;
 				}
-				if(actor.hormoneBalance >= 200) {
+				if (actor.hormoneBalance >= 200) {
 					fertilityStack += .3;
 				}
-				if(actor.diet === "fertility") {
+				if (actor.diet === "fertility") {
 					fertilityStack += .3;
 				}
-				if(State.variables.masterSuitePregnancyFertilitySupplements === 1 && ((actor.assignment === "serve in the master suite" || actor.assignment === "be your Concubine"))) {
+				if (State.variables.masterSuitePregnancyFertilitySupplements === 1 && ((actor.assignment === "serve in the master suite" || actor.assignment === "be your Concubine"))) {
 					fertilityStack += .5;
 				}
-				if(State.variables.reproductionFormula === 1 && (State.variables.week-actor.weekAcquired > 0)) {
+				if (State.variables.reproductionFormula === 1 && (State.variables.week - actor.weekAcquired > 0)) {
 					fertilityStack += .2;
 				}
-				if(actor.drugs === "super fertility drugs") {
+				if (actor.drugs === "super fertility drugs") {
 					fertilityStack += 1.6;
-				} else if(actor.drugs === "fertility drugs") {
+				} else if (actor.drugs === "fertility drugs") {
 					fertilityStack += .6;
 				}
 				fertilityStack = Math.floor(fertilityStack);
-				if(State.variables.seeHyperPreg === 1) {
-					if(actor.drugs === "super fertility drugs") {
-						ovum += jsRandom(0, fertilityStack*2);
+				if (State.variables.seeHyperPreg === 1) {
+					if (actor.drugs === "super fertility drugs") {
+						ovum += jsRandom(0, fertilityStack * 2);
 					} else {
 						ovum += jsRandom(0, fertilityStack);
 					}
-					if(actor.ovaImplant === "sympathy") {
+					if (actor.ovaImplant === "sympathy") {
 						ovum *= 2;
 					}
 				} else {
 					ovum += jsRandom(0, fertilityStack);
-					if(actor.ovaImplant === "sympathy") {
+					if (actor.ovaImplant === "sympathy") {
 						ovum *= 2;
-						if(ovum > 4) {
+						if (ovum > 4) {
 							ovum = 4;
 						}
-					} else if(ovum > 3) {
+					} else if (ovum > 3) {
 						ovum = 3;
 					}
 				}
-			} else if(actor.eggType === "dog") {
-				if(actor.geneticQuirks.fertility === 2 && actor.geneticQuirks.hyperFertility === 2) { // Do not mix with sperm
+			} else if (actor.eggType === "dog") {
+				if (actor.geneticQuirks.fertility === 2 && actor.geneticQuirks.hyperFertility === 2) { // Do not mix with sperm
 					ovum += jsEither([1, 2, 2, 3]);
 					fertilityStack++;
 					fertilityStack++;
 					fertilityStack++;
-				} else if(actor.geneticQuirks.hyperFertility === 2) { // Predisposed to multiples
+				} else if (actor.geneticQuirks.hyperFertility === 2) { // Predisposed to multiples
 					ovum += jsEither([0, 1, 1, 2]);
 					fertilityStack++;
 					fertilityStack++;
-				} else if(actor.geneticQuirks.fertility === 2) { // Predisposed to twins
+				} else if (actor.geneticQuirks.fertility === 2) { // Predisposed to twins
 					ovum += jsEither([0, 0, 0, 0, 1]);
 					fertilityStack++;
 				}
-				if(actor.ovaImplant === "fertility") {
+				if (actor.ovaImplant === "fertility") {
 					ovum += jsEither([0, 0, 0, 0, 1]);
 					fertilityStack++;
 				}
-				if(actor.hormones === 2) {
+				if (actor.hormones === 2) {
 					ovum += jsEither([0, 0, 0, 1, 1, 1, 1, 2]);
 					fertilityStack++;
 				}
-				if(actor.hormoneBalance >= 200) {
+				if (actor.hormoneBalance >= 200) {
 					ovum += jsEither([0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2]);
 					fertilityStack++;
 				}
-				if(actor.diet === "fertility") {
+				if (actor.diet === "fertility") {
 					ovum += jsEither([0, 0, 0, 0, 0, 0, 0, 0, 1]);
 					fertilityStack++;
 				}
-				if(State.variables.masterSuitePregnancyFertilitySupplements === 1 && ((actor.assignment === "serve in the master suite" || actor.assignment === "be your Concubine"))) {
+				if (State.variables.masterSuitePregnancyFertilitySupplements === 1 && ((actor.assignment === "serve in the master suite" || actor.assignment === "be your Concubine"))) {
 					ovum += jsEither([0, 0, 0, 1, 1, 2, 2, 2, 3, 3]);
 					fertilityStack++;
 					fertilityStack++;
 				}
-				if(State.variables.reproductionFormula === 1 && (State.variables.week-actor.weekAcquired > 0)) {
+				if (State.variables.reproductionFormula === 1 && (State.variables.week - actor.weekAcquired > 0)) {
 					fertilityStack++;
 				}
-				if(actor.drugs === "super fertility drugs") {
+				if (actor.drugs === "super fertility drugs") {
 					ovum += jsEither([1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5]);
 					fertilityStack++;
 					fertilityStack++;
 					fertilityStack++;
 					fertilityStack++;
 					fertilityStack++;
-				} else if(actor.drugs === "fertility drugs") {
+				} else if (actor.drugs === "fertility drugs") {
 					ovum += jsEither([0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3]);
 					fertilityStack++;
 				}
-				if(State.variables.seeHyperPreg === 1) {
-					if(actor.drugs === "super fertility drugs") {
-						ovum += jsRandom(0, fertilityStack*2);
+				if (State.variables.seeHyperPreg === 1) {
+					if (actor.drugs === "super fertility drugs") {
+						ovum += jsRandom(0, fertilityStack * 2);
 					} else {
 						ovum += jsRandom(0, fertilityStack);
 					}
-					if(actor.ovaImplant === "sympathy") {
+					if (actor.ovaImplant === "sympathy") {
 						ovum *= 2;
 					}
 				} else {
 					ovum += jsRandom(0, fertilityStack);
-					if(actor.ovaImplant === "sympathy") {
+					if (actor.ovaImplant === "sympathy") {
 						ovum *= 2;
-						if(ovum > 8) {
+						if (ovum > 8) {
 							ovum = jsEither([6, 8]);
 						}
-					} else if(ovum > 8) {
+					} else if (ovum > 8) {
 						ovum = jsRandom(6, 8);
 					}
 				}
-			} else if(actor.eggType === "pig") {
-				if(actor.geneticQuirks.fertility === 2 && actor.geneticQuirks.hyperFertility === 2) { // Do not mix with sperm
+			} else if (actor.eggType === "pig") {
+				if (actor.geneticQuirks.fertility === 2 && actor.geneticQuirks.hyperFertility === 2) { // Do not mix with sperm
 					ovum += jsRandom(4, 8);
 					fertilityStack += 16;
-				} else if(actor.geneticQuirks.hyperFertility === 2) { // Predisposed to multiples
+				} else if (actor.geneticQuirks.hyperFertility === 2) { // Predisposed to multiples
 					ovum += jsRandom(2, 6);
 					fertilityStack += 10;
-				} else if(actor.geneticQuirks.fertility === 2) { // Predisposed to twins
+				} else if (actor.geneticQuirks.fertility === 2) { // Predisposed to twins
 					ovum += jsRandom(2, 4);
 					fertilityStack += 6;
 				}
-				if(actor.ovaImplant === "fertility") {
+				if (actor.ovaImplant === "fertility") {
 					ovum += jsRandom(4, 12);
 					fertilityStack += 6;
 				}
-				if(actor.hormones === 2) {
+				if (actor.hormones === 2) {
 					ovum += jsRandom(0, 4);
 					fertilityStack += 3;
 				}
-				if(actor.hormoneBalance >= 200) {
+				if (actor.hormoneBalance >= 200) {
 					ovum += jsRandom(0, 4);
 					fertilityStack += 3;
 				}
-				if(actor.diet === "fertility") {
+				if (actor.diet === "fertility") {
 					ovum += jsRandom(4, 10);
 					fertilityStack += 6;
 				}
-				if(State.variables.masterSuitePregnancyFertilitySupplements === 1 && ((actor.assignment === "serve in the master suite" || actor.assignment === "be your Concubine"))) {
+				if (State.variables.masterSuitePregnancyFertilitySupplements === 1 && ((actor.assignment === "serve in the master suite" || actor.assignment === "be your Concubine"))) {
 					ovum += jsRandom(8, 16);
 					fertilityStack += 10;
 				}
-				if(State.variables.reproductionFormula === 1 && (State.variables.week-actor.weekAcquired > 0)) {
+				if (State.variables.reproductionFormula === 1 && (State.variables.week - actor.weekAcquired > 0)) {
 					fertilityStack += 2;
 				}
-				if(actor.drugs === "super fertility drugs") {
+				if (actor.drugs === "super fertility drugs") {
 					ovum += jsRandom(10, 40);
 					fertilityStack += 32;
-				} else if(actor.drugs === "fertility drugs") {
+				} else if (actor.drugs === "fertility drugs") {
 					ovum += jsRandom(10, 20);
 					fertilityStack += 16;
 				}
-				if(State.variables.seeHyperPreg === 1) {
-					if(actor.drugs === "super fertility drugs") {
-						ovum += jsRandom(fertilityStack/2, fertilityStack*2);
+				if (State.variables.seeHyperPreg === 1) {
+					if (actor.drugs === "super fertility drugs") {
+						ovum += jsRandom(fertilityStack / 2, fertilityStack * 2);
 					} else {
-						ovum += jsRandom(fertilityStack/4, fertilityStack);
+						ovum += jsRandom(fertilityStack / 4, fertilityStack);
 					}
-					if(actor.ovaImplant === "sympathy") {
+					if (actor.ovaImplant === "sympathy") {
 						ovum *= 2;
 					}
 				} else {
 					ovum += jsRandom(0, fertilityStack);
-					if(actor.ovaImplant === "sympathy") {
+					if (actor.ovaImplant === "sympathy") {
 						ovum *= 2;
-						if(ovum > 76) {
+						if (ovum > 76) {
 							ovum = jsEither([70, 72, 74, 76]);
 						}
-					} else if(ovum > 75) {
+					} else if (ovum > 75) {
 						ovum = jsRandom(60, 75);
 					}
 				}
 			} else {
-				if(actor.geneticQuirks.fertility === 2 && actor.geneticQuirks.hyperFertility === 2) { // Do not mix with sperm
+				if (actor.geneticQuirks.fertility === 2 && actor.geneticQuirks.hyperFertility === 2) { // Do not mix with sperm
 					ovum += jsEither([1, 2, 2, 3]);
 					fertilityStack++;
 					fertilityStack++;
 					fertilityStack++;
 					fertilityStack++;
-				} else if(actor.geneticQuirks.hyperFertility === 2) { // Predisposed to multiples
+				} else if (actor.geneticQuirks.hyperFertility === 2) { // Predisposed to multiples
 					ovum += jsEither([0, 1, 1, 2]);
 					fertilityStack++;
 					fertilityStack++;
-				} else if(actor.geneticQuirks.fertility === 2) { // Predisposed to twins
+				} else if (actor.geneticQuirks.fertility === 2) { // Predisposed to twins
 					ovum += jsEither([0, 0, 0, 0, 1]);
 					fertilityStack++;
 				} else {
 					ovum += jsEither([0, 0, 0, 0, 0, 0, 0, 0, 0, 1]); // base chance for twins
 				}
-				if(actor.ovaImplant === "fertility") {
+				if (actor.ovaImplant === "fertility") {
 					ovum += jsEither([0, 0, 0, 0, 0, 0, 0, 0, 0, 1]);
 					fertilityStack++;
 				}
-				if(actor.hormones === 2) {
+				if (actor.hormones === 2) {
 					ovum += jsEither([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2]);
 					fertilityStack++;
 				}
-				if(actor.hormoneBalance >= 200) {
+				if (actor.hormoneBalance >= 200) {
 					ovum += jsEither([0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2]);
 					fertilityStack++;
 				}
-				if(actor.diet === "fertility") {
+				if (actor.diet === "fertility") {
 					ovum += jsEither([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]);
 					fertilityStack++;
 				}
-				if(State.variables.masterSuitePregnancyFertilitySupplements === 1 && ((actor.assignment === "serve in the master suite" || actor.assignment === "be your Concubine"))) {
+				if (State.variables.masterSuitePregnancyFertilitySupplements === 1 && ((actor.assignment === "serve in the master suite" || actor.assignment === "be your Concubine"))) {
 					ovum += jsEither([0, 0, 0, 1, 1, 2, 2, 2, 3, 3]);
 					fertilityStack++;
 					fertilityStack++;
 				}
-				if(State.variables.reproductionFormula === 1 && (State.variables.week-actor.weekAcquired > 0)) {
+				if (State.variables.reproductionFormula === 1 && (State.variables.week - actor.weekAcquired > 0)) {
 					fertilityStack++;
 				}
-				if(actor.drugs === "super fertility drugs") {
+				if (actor.drugs === "super fertility drugs") {
 					ovum += jsEither([1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5]);
 					fertilityStack++;
 					fertilityStack++;
 					fertilityStack++;
 					fertilityStack++;
 					fertilityStack++;
-				} else if(actor.drugs === "fertility drugs") {
+				} else if (actor.drugs === "fertility drugs") {
 					ovum += jsEither([0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3]);
 					fertilityStack++;
 				}
-				if(State.variables.seeHyperPreg === 1) {
-					if(actor.drugs === "super fertility drugs") {
-						ovum += jsRandom(0, fertilityStack*2);
+				if (State.variables.seeHyperPreg === 1) {
+					if (actor.drugs === "super fertility drugs") {
+						ovum += jsRandom(0, fertilityStack * 2);
 					} else {
 						ovum += jsRandom(0, fertilityStack);
 					}
-					if(actor.ovaImplant === "sympathy") {
+					if (actor.ovaImplant === "sympathy") {
 						ovum *= 2;
 					}
 				} else {
 					ovum += jsRandom(0, fertilityStack);
-					if(actor.ovaImplant === "sympathy") {
+					if (actor.ovaImplant === "sympathy") {
 						ovum *= 2;
-						if(ovum > 12) {
+						if (ovum > 12) {
 							ovum = jsEither([10, 12]);
 						}
-					} else if(ovum > 12) {
+					} else if (ovum > 12) {
 						ovum = jsRandom(6, 12);
 					}
 				}
@@ -397,7 +397,7 @@ window.setPregType = function(actor) {
  fatherID is the ID of her sire or 0 if undefined.
  displayOverride is an override if defined - fatherID must be defined in this case.
 */
-window.knockMeUp = function(target, chance, hole, fatherID, displayOverride) {
+window.knockMeUp = function (target, chance, hole, fatherID, displayOverride) {
 	const V = State.variables;
 	let pronouns;
 	let He;
@@ -407,7 +407,7 @@ window.knockMeUp = function(target, chance, hole, fatherID, displayOverride) {
 		He = capFirstChar(pronouns.pronoun);
 	}
 	if (V.seePreg !== 0) {
-		if (jsRandom(0, 99) < (chance + (V.reproductionFormula*((target.pregSource <= 0) ? ((target.ID === -1) ? 0 : 10) : 20)))) {
+		if (jsRandom(0, 99) < (chance + (V.reproductionFormula * ((target.pregSource <= 0) ? ((target.ID === -1) ? 0 : 10) : 20)))) {
 			if (target.mpreg === hole) {
 
 				if (target.pregWeek <= 0) {
@@ -423,8 +423,7 @@ window.knockMeUp = function(target, chance, hole, fatherID, displayOverride) {
 
 				if (V.menstruation === 1) {
 					//
-				}
-				else if (!displayOverride) {
+				} else if (!displayOverride) {
 					target.pregKnown = 1;
 					if (target.ID === -1) {
 						/* r += "<span class=lime>You have gotten pregnant.</span>"; */
@@ -450,8 +449,7 @@ window.knockMeUp = function(target, chance, hole, fatherID, displayOverride) {
 
 				if (V.menstruation === 1) {
 					//
-				}
-				else if (!displayOverride) {
+				} else if (!displayOverride) {
 					target.pregKnown = 1;
 					if (target.ID === -1) {
 						/* r += "<span class=lime>You have gotten pregnant.</span>"; */
@@ -481,36 +479,40 @@ window.knockMeUp = function(target, chance, hole, fatherID, displayOverride) {
 	return r;
 };
 
-window.getIncubatorReserved = function(/* slaves*/) {
+window.getIncubatorReserved = function ( /* slaves*/ ) {
 
 	return FetusGlobalReserveCount("incubator");
 };
 
-window.getNurseryReserved = function (/* slaves*/) {
+window.getNurseryReserved = function ( /* slaves*/ ) {
 
 	return FetusGlobalReserveCount("nursery");
 };
 
-window.findFather = function(fatherID) {
+window.findFather = function (fatherID) {
 	let father;
 	let V = State.variables;
 
 	father = V.slaves[V.slaveIndices[fatherID]];
 	if (father === undefined) {
 		if (V.incubator > 0) {
-			father = V.tanks.find(function(s) { return s.ID === fatherID; });
+			father = V.tanks.find(function (s) {
+				return s.ID === fatherID;
+			});
 		}
 	}
 	if (father === undefined) {
 		if (V.nursery > 0) {
-			father = V.cribs.find(function(s) { return s.ID === fatherID; });
+			father = V.cribs.find(function (s) {
+				return s.ID === fatherID;
+			});
 		}
 	}
 
 	return father;
 };
 
-window.adjustFatherProperty = function(actor, property, newValue) {
+window.adjustFatherProperty = function (actor, property, newValue) {
 	let father = findFather(actor.ID);
 	if (father)
 		father[property] = newValue;
@@ -546,6 +548,6 @@ window.adjustFatherProperty = function(actor, property, newValue) {
  * @param {App.Entity.SlaveState} slave
  * @returns {number}
  */
-window.getBaseBoobs = function(slave) {
-	return slave.boobs-slave.boobsImplant-slave.boobsMilk-slave.boobsWombVolume;
+window.getBaseBoobs = function (slave) {
+	return slave.boobs - slave.boobsImplant - slave.boobsMilk - slave.boobsWombVolume;
 };
diff --git a/src/js/rulesAssistant.js b/src/js/rulesAssistant.js
index 6afe22b99c25010cb051197a950f57645788914e..0ac63fe6bba129bb217fc5b07300a86fdb33f3f9 100644
--- a/src/js/rulesAssistant.js
+++ b/src/js/rulesAssistant.js
@@ -2,7 +2,7 @@
  * @param {App.Entity.SlaveState} slave
  * @param {Object[]} rules
  * @returns {boolean}
-*/
+ */
 window.hasSurgeryRule = function (slave, rules) {
 	return rules.some(
 		rule => ruleApplied(slave, rule) && rule.set.autoSurgery > 0);
@@ -13,8 +13,8 @@ window.hasSurgeryRule = function (slave, rules) {
  * @param {Object[]} rules
  * @param {string} what
  * @returns {boolean}
-*/
-window.hasRuleFor = function(slave, rules, what) {
+ */
+window.hasRuleFor = function (slave, rules, what) {
 	return rules.some(
 		rule => ruleApplied(slave, rule) && rule[what] !== "no default setting");
 };
@@ -23,9 +23,9 @@ window.hasRuleFor = function(slave, rules, what) {
  * @param {App.Entity.SlaveState} slave
  * @param {Object[]} rules
  * @returns {boolean}
-*/
-window.hasHColorRule = function(slave, rules) {
-	return hasRulefor (slave, rules, "hColor");
+ */
+window.hasHColorRule = function (slave, rules) {
+	return hasRulefor(slave, rules, "hColor");
 };
 
 /**
@@ -33,8 +33,8 @@ window.hasHColorRule = function(slave, rules) {
  * @param {Object[]} rules
  * @returns {boolean}
  * */
-window.hasHStyleRule = function(slave, rules) {
-	return hasRulefor (slave, rules, "hStyle");
+window.hasHStyleRule = function (slave, rules) {
+	return hasRulefor(slave, rules, "hStyle");
 };
 
 /**
@@ -42,8 +42,8 @@ window.hasHStyleRule = function(slave, rules) {
  * @param {Object[]} rules
  * @returns {boolean}
  * */
-window.hasEyeColorRule = function(slave, rules) {
-	return hasRulefor (slave, rules, "eyeColor");
+window.hasEyeColorRule = function (slave, rules) {
+	return hasRulefor(slave, rules, "eyeColor");
 };
 
 /**
@@ -51,8 +51,8 @@ window.hasEyeColorRule = function(slave, rules) {
  * @param {App.Entity.SlaveState} slave
  * @param {Object[]} rules
  * @returns {boolean}
-*/
-window.lastPregRule = function(slave, rules) {
+ */
+window.lastPregRule = function (slave, rules) {
 	return rules.some(rule =>
 		ruleApplied(slave, rule) && rule.set.preg === -1);
 };
@@ -84,8 +84,8 @@ window.mergeRules = function mergeRules(rules) {
  * @param {App.Entity.SlaveState} slave
  * @param {Object} rule
  * @returns {boolean}
-*/
-window.ruleApplied = function(slave, rule) {
+ */
+window.ruleApplied = function (slave, rule) {
 	return slave.currentRules.includes(rule.ID);
 };
 
@@ -94,7 +94,7 @@ window.ruleApplied = function(slave, rule) {
  * @param {App.Entity.SlaveState} slave
  * @param {Object} rule
  * @returns {string}
-*/
+ */
 window.RAFacilityRemove = function RAFacilityRemove(slave, rule) {
 	const V = State.variables;
 	let r = "";
@@ -131,7 +131,7 @@ window.RAFacilityRemove = function RAFacilityRemove(slave, rule) {
 		case "work as farmhand":
 			if (slave.assignment === rule.setAssignment) {
 				r += `<br>${slave.slaveName} has been removed from ${V.farmyardName} and has been assigned to ${rule.removalAssignment}.`;
-				assignJob(slave. rule.removalAssignment);
+				assignJob(slave.rule.removalAssignment);
 			}
 			break;
 
diff --git a/src/js/rulesAutosurgery.js b/src/js/rulesAutosurgery.js
index 34b7736c125996b2072c674228742826505cb2ba..11bf0bac6b9b3134528b220fba210d2e2e4f1af5 100644
--- a/src/js/rulesAutosurgery.js
+++ b/src/js/rulesAutosurgery.js
@@ -1,11 +1,11 @@
 /* eslint-disable camelcase */
-window.rulesAutosurgery = (function() {
+window.rulesAutosurgery = (function () {
 	"use strict";
 	let V;
 	let r;
 	return rulesAutoSurgery;
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @returns {string}
 	 */
@@ -23,7 +23,7 @@ window.rulesAutosurgery = (function() {
 		return r;
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {Object[]} ruleset
 	 * @returns {Object}
@@ -40,7 +40,7 @@ window.rulesAutosurgery = (function() {
 		return surgery;
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @returns {Object}
 	 */
@@ -115,8 +115,8 @@ window.rulesAutosurgery = (function() {
 				thisSurgery = autoSurgerySelector(
 					slave,
 					V.defaultRules
-						.filter(x => ruleApplied(slave, x) && x.set.autoSurgery === 1)
-						.map(x => x.set));
+					.filter(x => ruleApplied(slave, x) && x.set.autoSurgery === 1)
+					.map(x => x.set));
 				if ((thisSurgery.surgery_hips !== "no default setting") && (thisSurgery.surgery_butt !== "no default setting")) {
 					if (slave.hips < -1) {
 						if (thisSurgery.surgery_butt > 2) {
@@ -131,7 +131,7 @@ window.rulesAutosurgery = (function() {
 							thisSurgery.surgery_butt = 8;
 						}
 					} else if (slave.hips > 1) {
-					// true
+						// true
 					} else {
 						if (thisSurgery.surgery_butt > 6) {
 							thisSurgery.surgery_butt = 6;
@@ -143,7 +143,7 @@ window.rulesAutosurgery = (function() {
 		return thisSurgery;
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {Object} thisSurgery
 	 * @param {string[]} surgeries
@@ -383,7 +383,7 @@ window.rulesAutosurgery = (function() {
 				surgeries.push("undo vasectomy");
 				V.surgeryType = "vasectomy undo";
 				if (V.PC.medicine >= 100) {
-					slave.health -=5;
+					slave.health -= 5;
 				} else {
 					slave.health -= 10;
 				}
@@ -395,15 +395,15 @@ window.rulesAutosurgery = (function() {
 			if (slave.faceImplant <= 15 && slave.face <= 95 && thisSurgery.surgery_cosmetic > 0) {
 				surgeries.push("a nicer face");
 				if (slave.faceShape === "masculine") slave.faceShape = "androgynous";
-				slave.faceImplant += 25-5*Math.trunc(V.PC.medicine/50)-5*V.surgeryUpgrade;
-				slave.face = Math.clamp(slave.face+20, -100, 100);
+				slave.faceImplant += 25 - 5 * Math.trunc(V.PC.medicine / 50) - 5 * V.surgeryUpgrade;
+				slave.face = Math.clamp(slave.face + 20, -100, 100);
 				cashX(forceNeg(V.surgeryCost), "slaveSurgery", slave);
 				if (V.PC.medicine >= 100) slave.health -= 5;
 				else slave.health -= 10;
 			} else if (slave.faceImplant <= 15 && slave.ageImplant !== 1 && slave.visualAge >= 25 && thisSurgery.surgery_cosmetic > 0) {
 				surgeries.push("an age lift");
 				slave.ageImplant = 1;
-				slave.faceImplant += 25-5*Math.trunc(V.PC.medicine/50)-5*V.surgeryUpgrade;
+				slave.faceImplant += 25 - 5 * Math.trunc(V.PC.medicine / 50) - 5 * V.surgeryUpgrade;
 				if (slave.visualAge > 80) slave.visualAge -= 40;
 				else if (slave.visualAge >= 70) slave.visualAge -= 30;
 				else if (slave.visualAge > 50) slave.visualAge -= 20;
@@ -472,8 +472,8 @@ window.rulesAutosurgery = (function() {
 			} else if (slave.faceImplant <= 45 && slave.face <= 95 && thisSurgery.surgery_cosmetic === 2) {
 				surgeries.push("a nicer face");
 				if (slave.faceShape === "masculine") slave.faceShape = "androgynous";
-				slave.faceImplant += 25-5*Math.trunc(V.PC.medicine/50)-5*V.surgeryUpgrade;
-				slave.face = Math.clamp(slave.face+20, -100, 100);
+				slave.faceImplant += 25 - 5 * Math.trunc(V.PC.medicine / 50) - 5 * V.surgeryUpgrade;
+				slave.face = Math.clamp(slave.face + 20, -100, 100);
 				cashX(forceNeg(V.surgeryCost), "slaveSurgery", slave);
 				if (V.PC.medicine >= 100) slave.health -= 5;
 				else slave.health -= 10;
@@ -491,7 +491,7 @@ window.rulesAutosurgery = (function() {
 				} else {
 					slave.visualAge -= 5;
 				}
-				slave.faceImplant += 25-5*Math.trunc(V.PC.medicine/50)-5*V.surgeryUpgrade;
+				slave.faceImplant += 25 - 5 * Math.trunc(V.PC.medicine / 50) - 5 * V.surgeryUpgrade;
 				cashX(forceNeg(V.surgeryCost), "slaveSurgery", slave);
 				if (V.PC.medicine >= 100) slave.health -= 5;
 				else slave.health -= 10;
@@ -520,7 +520,7 @@ window.rulesAutosurgery = (function() {
 				else slave.health -= 10;
 			} else if (slave.waist >= -95 && V.seeExtreme === 1 && thisSurgery.surgery_cosmetic === 2) {
 				surgeries.push("a narrower waist");
-				slave.waist = Math.clamp(slave.waist-20, -100, 100);
+				slave.waist = Math.clamp(slave.waist - 20, -100, 100);
 				cashX(forceNeg(V.surgeryCost), "slaveSurgery", slave);
 				if (V.PC.medicine >= 100) slave.health -= 5;
 				else slave.health -= 10;
@@ -589,9 +589,9 @@ window.rulesAutosurgery = (function() {
 		r += `${V.assistantName === "your personal assistant" ? "Your personal assistant" : V.assistantName}, ordered to apply surgery, gives ${slave.slaveName} <span class="lime">${surgeriesDisplay}.</span>`;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function bellyIn(slave) {
 		// less hacky version of calling surgery degradation silently
 		if (slave.devotion > 50) {
diff --git a/src/js/slaveCostJS.js b/src/js/slaveCostJS.js
index 014bdec28a83e935f9a57ccc8c5a87bf6bb9666f..4c2041f25ecf71df4a16edcdcad8fc7a35283ae8 100644
--- a/src/js/slaveCostJS.js
+++ b/src/js/slaveCostJS.js
@@ -1,11 +1,11 @@
 /* eslint-disable no-undef */
-window.Beauty = (function() {
+window.Beauty = (function () {
 	"use strict";
 	let V;
 	let arcology;
 	let beauty;
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @returns {number}
 	 */
@@ -69,69 +69,69 @@ window.Beauty = (function() {
 		}
 
 		calcMultipliersBeauty(slave);
-		beauty = Math.max(1, Math.trunc(0.5*beauty));
+		beauty = Math.max(1, Math.trunc(0.5 * beauty));
 
 		return beauty;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcInitBeauty(slave) {
-		beauty -= slave.waist/20;
-		beauty -= slave.muscles/30;
-		beauty += slave.lips/10;
+		beauty -= slave.waist / 20;
+		beauty -= slave.muscles / 30;
+		beauty += slave.lips / 10;
 		beauty += slave.clit;
-		beauty += (slave.height-160)/10;
-		beauty += 2*slave.hips;
+		beauty += (slave.height - 160) / 10;
+		beauty += 2 * slave.hips;
 		if (slave.anus > 3) {
-			beauty -= 10 + (slave.anus*2); /* -20 */
+			beauty -= 10 + (slave.anus * 2); /* -20 */
 		}
 		if (slave.vagina > 3) {
-			beauty -= 10 + (slave.vagina*2); /* -20 */
+			beauty -= 10 + (slave.vagina * 2); /* -20 */
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcFaceBeauty(slave) {
-		beauty += slave.face/5;
+		beauty += slave.face / 5;
 		switch (slave.faceShape) {
 			case "masculine":
 				if (arcology.FSGenderRadicalist !== "unset") {
-					beauty -= (2 - (arcology.FSGenderRadicalist/25))*(slave.face/30);
+					beauty -= (2 - (arcology.FSGenderRadicalist / 25)) * (slave.face / 30);
 				} else if (arcology.FSGenderFundamentalist !== "unset") {
-					beauty -= (2 + (arcology.FSGenderFundamentalist/25))*(slave.face/30);
+					beauty -= (2 + (arcology.FSGenderFundamentalist / 25)) * (slave.face / 30);
 				} else {
-					beauty -= 2*(slave.face/30);
+					beauty -= 2 * (slave.face / 30);
 				}
 				break;
 			case "androgynous":
 				if (arcology.FSGenderRadicalist !== "unset") {
-					beauty += 2 - ((1 - (arcology.FSGenderRadicalist/25))*(slave.face/30));
+					beauty += 2 - ((1 - (arcology.FSGenderRadicalist / 25)) * (slave.face / 30));
 				} else if (arcology.FSGenderFundamentalist !== "unset") {
-					beauty += 2 - ((1 + (arcology.FSGenderFundamentalist/25))*(slave.face/30));
+					beauty += 2 - ((1 + (arcology.FSGenderFundamentalist / 25)) * (slave.face / 30));
 				} else {
-					beauty += 2 - (slave.face/30);
+					beauty += 2 - (slave.face / 30);
 				}
 				break;
 			case "exotic":
-				beauty += 2*(slave.face/30);
+				beauty += 2 * (slave.face / 30);
 				break;
 			case "sensual":
-				beauty += 2 + (slave.face/30);
+				beauty += 2 + (slave.face / 30);
 				break;
 			case "cute":
-				beauty += 8/3;
+				beauty += 8 / 3;
 				break;
-			
+
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcTeethBeauty(slave) {
 		switch (slave.teeth) {
 			case "crooked":
@@ -156,15 +156,17 @@ window.Beauty = (function() {
 			case "mixed":
 				beauty -= 1;
 				break;
-			
+
 		}
 	}
 
-	function calcModBeauty(/* slave
-*/) {
+	function calcModBeauty(
+		/* slave
+		 */
+	) {
 		if (arcology.FSTransformationFetishist > 20 || arcology.FSDegradationist > 20) {
 			if (V.modScore > 15 || (V.piercingScore > 8 && V.tatScore > 5)) {
-				beauty += 8 + (V.modScore*0.25);
+				beauty += 8 + (V.modScore * 0.25);
 			} else if (V.modScore > 7) {
 				beauty += V.modScore - 7;
 			}
@@ -180,14 +182,14 @@ window.Beauty = (function() {
 			} else if (V.modScore > 15 || (V.piercingScore > 8 && V.tatScore > 5)) {
 				beauty += 11;
 			} else {
-				beauty += 7 + (0.5*(V.modScore - 7));
+				beauty += 7 + (0.5 * (V.modScore - 7));
 			}
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcCosmeticsBeauty(slave) {
 		if (slave.brand !== 0) {
 			if (V.rep > 10000) {
@@ -232,92 +234,93 @@ window.Beauty = (function() {
 					}
 				}
 				break;
-			
+
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcFSNotFuckdollBeauty(slave) {
 		if (arcology.FSSupremacist !== "unset") {
 			if (slave.race === arcology.FSSupremacistRace) {
-				beauty += (arcology.FSSupremacist/3) + (arcology.FSSupremacistLawME*10);
+				beauty += (arcology.FSSupremacist / 3) + (arcology.FSSupremacistLawME * 10);
 			}
 		}
 		if (arcology.FSSubjugationist !== "unset") {
 			if (slave.race === arcology.FSSubjugationistRace) {
-				beauty -= (arcology.FSSubjugationist/2) - (arcology.FSSubjugationistLawME*10);
+				beauty -= (arcology.FSSubjugationist / 2) - (arcology.FSSubjugationistLawME * 10);
 			}
 		}
 		if (arcology.FSDegradationist !== "unset") {
-			beauty -= (arcology.FSDegradationist/10)*((slave.intelligence + slave.intelligenceImplant)/20);
+			beauty -= (arcology.FSDegradationist / 10) * ((slave.intelligence + slave.intelligenceImplant) / 20);
 		}
 		if (arcology.FSGenderFundamentalistLawBimbo === 1) {
-			beauty -= (slave.intelligence + slave.intelligenceImplant)/2;
+			beauty -= (slave.intelligence + slave.intelligenceImplant) / 2;
 		}
 		if (arcology.FSYouthPreferentialist !== "unset") {
-			beauty += (30 - slave.visualAge)/(30 - V.minimumSlaveAge)*((arcology.FSYouthPreferentialist/2) + (arcology.FSYouthPreferentialistLaw*10)); /* max 60 */
+			beauty += (30 - slave.visualAge) / (30 - V.minimumSlaveAge) * ((arcology.FSYouthPreferentialist / 2) + (arcology.FSYouthPreferentialistLaw * 10)); /* max 60 */
 		} else if (arcology.FSMaturityPreferentialist !== "unset") {
 			if (V.retirementAge > 30) {
-				beauty += (30 - slave.visualAge)/(30 - V.retirementAge)*((arcology.FSMaturityPreferentialist/2) + (arcology.FSMaturityPreferentialistLaw*10)); /* max 60, problems if retirementAge is 30 or under */
+				beauty += (30 - slave.visualAge) / (30 - V.retirementAge) * ((arcology.FSMaturityPreferentialist / 2) + (arcology.FSMaturityPreferentialistLaw * 10)); /* max 60, problems if retirementAge is 30 or under */
 			}
 		}
-		if (arcology.FSBodyPurist > 20) { /* bonus for virgin slaves */
+		if (arcology.FSBodyPurist > 20) {
+			/* bonus for virgin slaves */
 			if (slave.vagina === 0 && slave.counter.vaginal === 0) {
-				beauty += 30*(arcology.FSBodyPurist/100);
+				beauty += 30 * (arcology.FSBodyPurist / 100);
 			}
 			if (slave.anus === 0 && slave.counter.anal === 0) {
-				beauty += 30*(arcology.FSBodyPurist/100);
+				beauty += 30 * (arcology.FSBodyPurist / 100);
 			}
 		}
 		if (arcology.FSEdoRevivalist !== "unset") {
 			if (slave.nationality === "Japanese" || slave.nationality === "Edo Revivalist") {
-				beauty += arcology.FSEdoRevivalist/2;
+				beauty += arcology.FSEdoRevivalist / 2;
 			} else if (slave.race === "asian") {
-				beauty += arcology.FSEdoRevivalist/5;
+				beauty += arcology.FSEdoRevivalist / 5;
 			} else {
-				beauty -= arcology.FSEdoRevivalist/4;
+				beauty -= arcology.FSEdoRevivalist / 4;
 			}
 			if (V.language === "Japanese" && canTalk(slave)) {
 				if (slave.accent > 1) {
-					beauty -= arcology.FSEdoRevivalist/2;
+					beauty -= arcology.FSEdoRevivalist / 2;
 				} else if (slave.accent > 0) {
-					beauty -= arcology.FSEdoRevivalist/5;
+					beauty -= arcology.FSEdoRevivalist / 5;
 				} else {
-					beauty += arcology.FSEdoRevivalist/10;
+					beauty += arcology.FSEdoRevivalist / 10;
 				}
 			}
 		} else if (arcology.FSChineseRevivalist !== "unset") {
 			if (slave.nationality === "Chinese" || slave.nationality === "Ancient Chinese Revivalist") {
-				beauty += arcology.FSChineseRevivalist/2;
+				beauty += arcology.FSChineseRevivalist / 2;
 			} else if (slave.race === "asian") {
-				beauty += arcology.FSChineseRevivalist/5;
+				beauty += arcology.FSChineseRevivalist / 5;
 			} else {
-				beauty -= arcology.FSChineseRevivalist/4;
+				beauty -= arcology.FSChineseRevivalist / 4;
 			}
 			if (V.language === "Chinese" && canTalk(slave)) {
 				if (slave.accent > 1) {
-					beauty -= arcology.FSChineseRevivalist/2;
+					beauty -= arcology.FSChineseRevivalist / 2;
 				} else if (slave.accent > 0) {
-					beauty -= arcology.FSChineseRevivalist/5;
+					beauty -= arcology.FSChineseRevivalist / 5;
 				} else {
-					beauty += arcology.FSChineseRevivalist/10;
+					beauty += arcology.FSChineseRevivalist / 10;
 				}
 			}
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcMiscNotFuckdollBeauty(slave) {
-		beauty += Math.min(slave.health, 100)/5;
+		beauty += Math.min(slave.health, 100) / 5;
 		beauty += slave.voice;
-		beauty += (slave.intelligence + slave.intelligenceImplant)/10;
-		beauty += slave.skill.entertainment/10;
-		beauty += slave.skill.whoring/10;
-		beauty -= 3*slave.visualAge;
+		beauty += (slave.intelligence + slave.intelligenceImplant) / 10;
+		beauty += slave.skill.entertainment / 10;
+		beauty += slave.skill.whoring / 10;
+		beauty -= 3 * slave.visualAge;
 		if (setup.entertainmentCareers.includes(slave.career)) {
 			beauty += 20;
 		} else if (V.week - slave.weekAcquired >= 20 && slave.skill.entertainment >= 100) {
@@ -330,17 +333,17 @@ window.Beauty = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcDickBeauty(slave) {
 		if (arcology.FSAssetExpansionist > 20 && arcology.FSGenderFundamentalist === "unset") {
 			if (slave.dick >= 20) {
-				beauty += 17 + (slave.dick*(arcology.FSAssetExpansionist/500)); /* 23 */
+				beauty += 17 + (slave.dick * (arcology.FSAssetExpansionist / 500)); /* 23 */
 			} else if (slave.dick >= 10) {
-				beauty += 10 + (slave.dick*(arcology.FSAssetExpansionist/300)); /* 16.3 */
+				beauty += 10 + (slave.dick * (arcology.FSAssetExpansionist / 300)); /* 16.3 */
 			} else if (slave.dick > 6) {
-				beauty += slave.dick*(1 + (arcology.FSAssetExpansionist/100)); /* 10 */
+				beauty += slave.dick * (1 + (arcology.FSAssetExpansionist / 100)); /* 10 */
 			}
 		} else if (arcology.FSGenderFundamentalist !== "unset") {
 			if (slave.dick > 0) {
@@ -348,45 +351,45 @@ window.Beauty = (function() {
 			}
 		} else if (arcology.FSGenderRadicalist !== "unset") {
 			if (slave.dick > 20) {
-				beauty += 20 + (slave.dick*(arcology.FSGenderRadicalist/400)); /* 27.5 */
+				beauty += 20 + (slave.dick * (arcology.FSGenderRadicalist / 400)); /* 27.5 */
 			} else if (slave.dick >= 10) {
-				beauty += 10 + (slave.dick*(arcology.FSGenderRadicalist/200)); /* 20 */
+				beauty += 10 + (slave.dick * (arcology.FSGenderRadicalist / 200)); /* 20 */
 			} else if (slave.dick > 0) {
-				beauty += slave.dick*(1 + (arcology.FSGenderRadicalist/100)); /* 10 */
+				beauty += slave.dick * (1 + (arcology.FSGenderRadicalist / 100)); /* 10 */
 			}
 		} else {
-			beauty -= 2*slave.dick;
+			beauty -= 2 * slave.dick;
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcBallsBeauty(slave) {
 		if (arcology.FSAssetExpansionist > 20 && arcology.FSGenderFundamentalist === "unset") {
 			if (slave.balls > 100) {
-				beauty += 41 + (slave.balls*(arcology.FSAssetExpansionist/500)); /* 66 */
+				beauty += 41 + (slave.balls * (arcology.FSAssetExpansionist / 500)); /* 66 */
 			} else if (slave.balls > 80) {
-				beauty += 16 + (slave.balls*(arcology.FSAssetExpansionist/400)); /* 41 */
+				beauty += 16 + (slave.balls * (arcology.FSAssetExpansionist / 400)); /* 41 */
 			} else if (slave.balls > 60) {
-				beauty += 6 + (slave.balls*(arcology.FSAssetExpansionist/800)); /* 16 */
+				beauty += 6 + (slave.balls * (arcology.FSAssetExpansionist / 800)); /* 16 */
 			} else if (slave.balls > 10) {
-				beauty += slave.balls*((arcology.FSAssetExpansionist/1000)); /* 6 */
+				beauty += slave.balls * ((arcology.FSAssetExpansionist / 1000)); /* 6 */
 			}
 		} else if (arcology.FSGenderFundamentalist !== "unset") {
 			if (slave.scrotum > 0) {
-				beauty -= slave.balls*(1 + (arcology.FSGenderFundamentalist/200));
+				beauty -= slave.balls * (1 + (arcology.FSGenderFundamentalist / 200));
 			}
 		} else if (arcology.FSGenderRadicalist !== "unset") {
 			if (slave.scrotum > 0) {
 				if (slave.balls > 100) {
-					beauty += 40 + (slave.balls*(arcology.FSGenderRadicalist/2000)); /* 46.25 */
+					beauty += 40 + (slave.balls * (arcology.FSGenderRadicalist / 2000)); /* 46.25 */
 				} else if (slave.balls > 60) {
-					beauty += 30 + (slave.balls*(arcology.FSGenderRadicalist/1000)); /* 40 */
+					beauty += 30 + (slave.balls * (arcology.FSGenderRadicalist / 1000)); /* 40 */
 				} else if (slave.balls > 10) {
-					beauty += 15 + (slave.balls*(arcology.FSGenderRadicalist/400)); /* 30 */
+					beauty += 15 + (slave.balls * (arcology.FSGenderRadicalist / 400)); /* 30 */
 				} else {
-					beauty += slave.balls*(1 + (arcology.FSGenderRadicalist/200)); /* 15 */
+					beauty += slave.balls * (1 + (arcology.FSGenderRadicalist / 200)); /* 15 */
 				}
 			}
 		} else {
@@ -394,72 +397,75 @@ window.Beauty = (function() {
 				beauty -= slave.balls;
 			}
 		}
-		if (arcology.FSRestart !== "unset") { /* Eugenics does not like slaves having working balls */
+		if (arcology.FSRestart !== "unset") {
+			/* Eugenics does not like slaves having working balls */
 			if (slave.ballType === "human") {
-				beauty -= slave.balls*(1 + (arcology.FSRestart/100));
+				beauty -= slave.balls * (1 + (arcology.FSRestart / 100));
 			}
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcButtBeauty(slave) {
 		if (slave.butt <= 10) {
-			beauty += 1.5*slave.butt; /* max 15 */
+			beauty += 1.5 * slave.butt; /* max 15 */
 		} else {
-			beauty += 15 + (slave.butt/4); /* max 20 */
+			beauty += 15 + (slave.butt / 4); /* max 20 */
 		}
 		if ((arcology.FSTransformationFetishist > 20 && arcology.FSSlimnessEnthusiast === "unset") || arcology.FSAssetExpansionist > 20) {
 			if (slave.butt <= 2) {
-				beauty += 2*(slave.butt - 1); /* 2 */
+				beauty += 2 * (slave.butt - 1); /* 2 */
 			} else if (slave.butt <= 4) {
-				beauty += 2 + 1.5*(slave.butt - 2); /* 5 */
+				beauty += 2 + 1.5 * (slave.butt - 2); /* 5 */
 			} else if (slave.butt <= 10) {
-				beauty += 5 + 1*(slave.butt - 4); /* 11 */
+				beauty += 5 + 1 * (slave.butt - 4); /* 11 */
 			} else {
-				beauty += 7 + 0.5*(slave.butt - 5); /* 14.5 */
+				beauty += 7 + 0.5 * (slave.butt - 5); /* 14.5 */
 			} /* maybe buff butts? */
 		} else if (arcology.FSSlimnessEnthusiast > 20) {
 			if (slave.butt <= 3) {
-				beauty += 12 + 3*(slave.butt - 1); /* 18 buff if asses get buffed */
+				beauty += 12 + 3 * (slave.butt - 1); /* 18 buff if asses get buffed */
 			} else if (slave.butt <= 5) {
 				beauty += 9;
 			} else {
-				beauty -= 10 + 3*slave.butt; /* -70 */
+				beauty -= 10 + 3 * slave.butt; /* -70 */
 			}
 		} else {
 			if (slave.butt <= 2) {
-				beauty += 2*(slave.butt-1); /* 2 */
+				beauty += 2 * (slave.butt - 1); /* 2 */
 			} else if (slave.butt <= 4) {
-				beauty += 2 + (1.5*(slave.butt - 2)); /* 5 */
+				beauty += 2 + (1.5 * (slave.butt - 2)); /* 5 */
 			} else if (slave.butt <= 8) {
-				beauty += 2 + (1.5*(slave.butt - 2)); /* 11 */
+				beauty += 2 + (1.5 * (slave.butt - 2)); /* 11 */
 			} else {
 				beauty += 9;
 			}
 		}
-		if (arcology.FSTransformationFetishist > 20) { /* the cost of using AE's values */
+		if (arcology.FSTransformationFetishist > 20) {
+			/* the cost of using AE's values */
 			if (arcology.FSSlimnessEnthusiast !== "unset") {
 				if (slave.butt >= 3) {
-					if (slave.buttImplant/slave.butt < 0.25) {
-						beauty -= 2*(slave.butt - 1) + 10;
+					if (slave.buttImplant / slave.butt < 0.25) {
+						beauty -= 2 * (slave.butt - 1) + 10;
 					}
 				}
 			} else {
 				if (slave.butt >= 6) {
-					if (slave.buttImplant/slave.butt < 0.50) {
-						beauty -= (1.5*slave.butt) + 6; /* will get nasty at huge sizes */
+					if (slave.buttImplant / slave.butt < 0.50) {
+						beauty -= (1.5 * slave.butt) + 6; /* will get nasty at huge sizes */
 					}
 				}
 			}
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
-	function calcHipsBeauty(slave) { /* butts in general may need buffs */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
+	function calcHipsBeauty(slave) {
+		/* butts in general may need buffs */
 		switch (slave.hips) {
 			case -2:
 				if (slave.butt > 2) {
@@ -523,43 +529,43 @@ window.Beauty = (function() {
 					beauty += 1;
 				}
 				break;
-			
+
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcBoobsBeauty(slave) {
 		if ((arcology.FSTransformationFetishist > 20 && arcology.FSSlimnessEnthusiast === "unset") || arcology.FSAssetExpansionist > 20) {
 			if (slave.boobs <= 750) {
-				beauty += -4 + 0.01*(slave.boobs); /* 3.5 */
+				beauty += -4 + 0.01 * (slave.boobs); /* 3.5 */
 			} else if (slave.boobs <= 2050) {
-				beauty += 3.5 + 0.0175*(slave.boobs - 750); /* 26.25 */
+				beauty += 3.5 + 0.0175 * (slave.boobs - 750); /* 26.25 */
 			} else if (slave.boobs <= 3000) {
-				beauty += 26.25 + 0.025*(slave.boobs - 2050); /* 50 */
+				beauty += 26.25 + 0.025 * (slave.boobs - 2050); /* 50 */
 			} else if (slave.boobs <= 25000) {
-				beauty += 50 + 0.005*(slave.boobs - 3000); /* 160 - this might need to be lowered. Maybe drop the 50? Otherwise break it down more. */
+				beauty += 50 + 0.005 * (slave.boobs - 3000); /* 160 - this might need to be lowered. Maybe drop the 50? Otherwise break it down more. */
 			} else {
-				beauty += 160 + 0.001*(slave.boobs - 25000); /* 185 */
+				beauty += 160 + 0.001 * (slave.boobs - 25000); /* 185 */
 			}
 		} else if (arcology.FSSlimnessEnthusiast > 20) {
 			if (slave.boobs <= 500) {
-				beauty += 0.08*(slave.boobs); /* 40 - buff me to be in line with higher end asset exp */
+				beauty += 0.08 * (slave.boobs); /* 40 - buff me to be in line with higher end asset exp */
 			} else if (slave.boobs <= 1000) {
 				beauty += 10;
 			} else if (slave.boobs <= 3000) {
 				beauty += 5;
 			} else {
-				beauty -= 5 + 0.005*(slave.boobs - 3000); /* -110 */
+				beauty -= 5 + 0.005 * (slave.boobs - 3000); /* -110 */
 			}
 		} else {
 			if (slave.boobs <= 1200) {
-				beauty += 0.02*(slave.boobs - 200); /* 20 */
+				beauty += 0.02 * (slave.boobs - 200); /* 20 */
 			} else if (slave.boobs <= 2400) {
-				beauty += 20 + (0.01*(slave.boobs - 1200)); /* 32 */
+				beauty += 20 + (0.01 * (slave.boobs - 1200)); /* 32 */
 			} else if (slave.boobs <= 3600) {
-				beauty += 32 + (0.005*(slave.boobs - 2400)); /* 38 */
+				beauty += 32 + (0.005 * (slave.boobs - 2400)); /* 38 */
 			} else if (slave.boobs <= 10000) {
 				beauty += 38;
 			} else if (slave.boobs <= 25000) {
@@ -568,44 +574,45 @@ window.Beauty = (function() {
 				beauty += 20;
 			}
 		}
-		if (arcology.FSTransformationFetishist > 20) { /* the cost of using AE's values */
+		if (arcology.FSTransformationFetishist > 20) {
+			/* the cost of using AE's values */
 			if (arcology.FSSlimnessEnthusiast !== "unset") {
 				if (slave.boobs >= 400) {
 					if (slave.boobs >= 10000) {
-						if (slave.boobsImplant/slave.boobs < 0.75) {
-							beauty -= (0.05*slave.boobs) + 10;
+						if (slave.boobsImplant / slave.boobs < 0.75) {
+							beauty -= (0.05 * slave.boobs) + 10;
 						}
 					} else if (slave.boobs >= 2000) {
-						if (slave.boobsImplant/slave.boobs < 0.50) {
-							beauty -= (0.05*slave.boobs) + 10;
+						if (slave.boobsImplant / slave.boobs < 0.50) {
+							beauty -= (0.05 * slave.boobs) + 10;
 						}
 					} else if (slave.boobs >= 1000) {
-						if (slave.boobsImplant/slave.boobs < 0.25) {
-							beauty -= (0.05*slave.boobs) + 10;
+						if (slave.boobsImplant / slave.boobs < 0.25) {
+							beauty -= (0.05 * slave.boobs) + 10;
 						}
 					} else {
-						if (slave.boobsImplant/slave.boobs < 0.10) {
-							beauty -= (0.05*slave.boobs) + 10;
+						if (slave.boobsImplant / slave.boobs < 0.10) {
+							beauty -= (0.05 * slave.boobs) + 10;
 						}
 					}
 				}
 			} else {
 				if (slave.boobs >= 600) {
 					if (slave.boobs >= 10000) {
-						if (slave.boobsImplant/slave.boobs < 0.75) {
-							beauty -= 30 + (0.005*slave.boobs); /* will get nasty at huge sizes */
+						if (slave.boobsImplant / slave.boobs < 0.75) {
+							beauty -= 30 + (0.005 * slave.boobs); /* will get nasty at huge sizes */
 						}
 					} else if (slave.boobs >= 2000) {
-						if (slave.boobsImplant/slave.boobs < 0.50) {
-							beauty -= 30 + (0.005*slave.boobs); /* will get nasty at huge sizes */
+						if (slave.boobsImplant / slave.boobs < 0.50) {
+							beauty -= 30 + (0.005 * slave.boobs); /* will get nasty at huge sizes */
 						}
 					} else if (slave.boobs >= 1000) {
-						if (slave.boobsImplant/slave.boobs < 0.25) {
-							beauty -= 30 + (0.005*slave.boobs); /* will get nasty at huge sizes */
+						if (slave.boobsImplant / slave.boobs < 0.25) {
+							beauty -= 30 + (0.005 * slave.boobs); /* will get nasty at huge sizes */
 						}
 					} else {
-						if (slave.boobsImplant/slave.boobs < 0.10) {
-							beauty -= 30 + (0.005*slave.boobs); /* will get nasty at huge sizes */
+						if (slave.boobsImplant / slave.boobs < 0.10) {
+							beauty -= 30 + (0.005 * slave.boobs); /* will get nasty at huge sizes */
 						}
 					}
 				}
@@ -632,103 +639,103 @@ window.Beauty = (function() {
 			beauty -= 2;
 		} else if (slave.nipples === "fuckable") {
 			if (arcology.FSTransformationFetishist !== "unset") {
-				beauty += arcology.FSTransformationFetishist/10;
+				beauty += arcology.FSTransformationFetishist / 10;
 			}
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcWeightBeauty(slave) {
 		if (arcology.FSHedonisticDecadence > 20) {
 			if (slave.weight < -95) {
-				beauty += -70 + (slave.weight/10); /* -80 */
+				beauty += -70 + (slave.weight / 10); /* -80 */
 			} else if (slave.weight < -30) {
-				beauty += -30 + (slave.weight/3); /* -61 */
+				beauty += -30 + (slave.weight / 3); /* -61 */
 			} else if (slave.weight < -10) {
 				beauty += (slave.weight); /* -30 */
 			} else if (slave.weight <= 10) {
 				/* no effect */
 			} else if (slave.weight <= 30) {
-				beauty += (slave.weight/2); /* 15 */
+				beauty += (slave.weight / 2); /* 15 */
 			} else if (slave.weight <= 95) {
-				beauty += 15 + (slave.weight/7); /* 28.5 */
+				beauty += 15 + (slave.weight / 7); /* 28.5 */
 			} else if (slave.weight <= 130) {
-				beauty += 28 + (slave.weight/10); /* 41 */
+				beauty += 28 + (slave.weight / 10); /* 41 */
 			} else if (slave.weight <= 160) {
-				beauty += 42 + (slave.weight/20); /* 50 */
+				beauty += 42 + (slave.weight / 20); /* 50 */
 			} else if (slave.weight <= 190) {
-				beauty += 50 - (slave.weight/25); /* 42.5 */
+				beauty += 50 - (slave.weight / 25); /* 42.5 */
 			} else {
-				beauty += 40 - (slave.weight/20); /* 30 */
+				beauty += 40 - (slave.weight / 20); /* 30 */
 			}
 		} else {
 			if (slave.weight > 130) {
-				beauty -= Math.abs(slave.weight)/5;
+				beauty -= Math.abs(slave.weight) / 5;
 			} else if (slave.hips === 3) {
 				if (slave.weight < -10) {
-					beauty -= Math.abs(slave.weight)/10;
+					beauty -= Math.abs(slave.weight) / 10;
 				}
 			} else if (slave.hips === 2) {
 				if (slave.weight > 95) {
-					beauty -= Math.abs(slave.weight)/15;
+					beauty -= Math.abs(slave.weight) / 15;
 				} else if (slave.weight < -30) {
-					beauty -= Math.abs(slave.weight)/10;
+					beauty -= Math.abs(slave.weight) / 10;
 				}
 			} else if (slave.hips === -2) {
 				if (slave.weight < -95 || slave.weight > 30) {
-					beauty -= Math.abs(slave.weight)/10;
+					beauty -= Math.abs(slave.weight) / 10;
 				}
 			} else {
 				if (Math.abs(slave.weight) > 30) {
-					beauty -= Math.abs(slave.weight)/10;
+					beauty -= Math.abs(slave.weight) / 10;
 				}
 			}
 		}
 		if (arcology.FSPhysicalIdealist !== "unset") {
 			if (arcology.FSPhysicalIdealistStrongFat === 1) {
 				if (slave.weight > 10 && slave.weight <= 130) {
-					beauty += slave.weight*(arcology.FSPhysicalIdealist/200); /* 65 */
+					beauty += slave.weight * (arcology.FSPhysicalIdealist / 200); /* 65 */
 				} else {
-					beauty -= Math.abs(slave.weight)/2;
+					beauty -= Math.abs(slave.weight) / 2;
 				}
 			}
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcMusclesBeauty(slave) {
 		if (arcology.FSPhysicalIdealist !== "unset") {
 			if (arcology.FSPhysicalIdealistLaw === 1) {
 				if (Math.abs(slave.weight) <= 30 && slave.health >= 20 && slave.muscles >= 20 && slave.muscles <= 50) {
-					beauty += (slave.muscles + (Math.min(slave.health, 300)/5))*(arcology.FSPhysicalIdealist/100);
+					beauty += (slave.muscles + (Math.min(slave.health, 300) / 5)) * (arcology.FSPhysicalIdealist / 100);
 				} else {
 					beauty -= 30;
 				}
 			} else {
 				if (slave.muscles > 30 || slave.muscles <= -5) {
-					beauty += slave.muscles*(arcology.FSPhysicalIdealist/120); /* +-83 */
+					beauty += slave.muscles * (arcology.FSPhysicalIdealist / 120); /* +-83 */
 				}
 			}
 		} else if (arcology.FSHedonisticDecadence !== "unset") {
 			if (slave.muscles < -10) {
-				beauty += Math.abs(slave.muscles)*(arcology.FSHedonisticDecadence/160); /* 62.5 */
+				beauty += Math.abs(slave.muscles) * (arcology.FSHedonisticDecadence / 160); /* 62.5 */
 			} else if (slave.muscles > 5) {
 				if (arcology.FSHedonisticDecadenceStrongFat === 1) {
-					beauty += slave.muscles*(arcology.FSHedonisticDecadence/200); /* 50 */
+					beauty += slave.muscles * (arcology.FSHedonisticDecadence / 200); /* 50 */
 				} else {
-					beauty -= slave.muscles*(arcology.FSHedonisticDecadence/200); /* -50 */
+					beauty -= slave.muscles * (arcology.FSHedonisticDecadence / 200); /* -50 */
 				}
 			}
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcBodyHairBeauty(slave) {
 		if (slave.physicalAge < 11) {
 			beauty += 4;
@@ -747,7 +754,7 @@ window.Beauty = (function() {
 						beauty -= 2;
 					}
 					break;
-				
+
 			}
 			switch (slave.pubicHStyle) {
 				case "hairless":
@@ -776,170 +783,174 @@ window.Beauty = (function() {
 						beauty -= 6;
 					}
 					break;
-				
+
 			}
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcImplantBeauty(slave) {
 		if (arcology.FSTransformationFetishist !== "unset") {
 			if (Math.abs(slave.shouldersImplant) > 1) {
-				beauty += (arcology.FSTransformationFetishist/20) + Math.abs(slave.shouldersImplant);
+				beauty += (arcology.FSTransformationFetishist / 20) + Math.abs(slave.shouldersImplant);
 			}
 			if (Math.abs(slave.hipsImplant) > 1) {
-				beauty += (arcology.FSTransformationFetishist/20) + Math.abs(slave.hipsImplant);
+				beauty += (arcology.FSTransformationFetishist / 20) + Math.abs(slave.hipsImplant);
 			}
 			if (slave.race !== slave.origRace) {
-				beauty += arcology.FSTransformationFetishist/20;
+				beauty += arcology.FSTransformationFetishist / 20;
 			}
 			if (slave.faceImplant > 95 && slave.face > 40) {
-				beauty += arcology.FSTransformationFetishist/4;
+				beauty += arcology.FSTransformationFetishist / 4;
 			}
 		} else if (arcology.FSBodyPurist !== "unset") {
 			if (slave.faceImplant > 5) {
-				beauty -= (arcology.FSBodyPurist/100)*(slave.faceImplant/10);
+				beauty -= (arcology.FSBodyPurist / 100) * (slave.faceImplant / 10);
 			}
 			if (slave.race !== slave.origRace) {
-				beauty -= arcology.FSBodyPurist/5;
+				beauty -= arcology.FSBodyPurist / 5;
 			}
 		} else {
 			if (slave.faceImplant > 30) {
-				beauty -= (slave.faceImplant - 30)/10;
+				beauty -= (slave.faceImplant - 30) / 10;
 			}
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcRepopulationPregBeauty(slave) {
-		if (slave.preg > slave.pregData.normalBirth/1.33) { /* limited huge boost for full term */
+		if (slave.preg > slave.pregData.normalBirth / 1.33) {
+			/* limited huge boost for full term */
 			if (slave.broodmother > 0) {
-				beauty += 0.4*(slave.broodmother*arcology.FSRepopulationFocus); /* 40-80 limited due to constant presence. Also good breeders, but subpar mothers */
+				beauty += 0.4 * (slave.broodmother * arcology.FSRepopulationFocus); /* 40-80 limited due to constant presence. Also good breeders, but subpar mothers */
 			} else if (slave.bellyPreg >= 600000) {
-				beauty += 1.5*arcology.FSRepopulationFocus; /* 150 */
+				beauty += 1.5 * arcology.FSRepopulationFocus; /* 150 */
 			} else if (slave.bellyPreg >= 300000) {
 				beauty += arcology.FSRepopulationFocus; /* 100 */
 			} else if (slave.bellyPreg >= 120000) {
-				beauty += 0.9*arcology.FSRepopulationFocus; /* 90 */
+				beauty += 0.9 * arcology.FSRepopulationFocus; /* 90 */
 			} else {
-				beauty += 0.8*arcology.FSRepopulationFocus; /* 80 */
+				beauty += 0.8 * arcology.FSRepopulationFocus; /* 80 */
 			}
-		} else if (slave.preg > slave.pregData.normalBirth/2) {
+		} else if (slave.preg > slave.pregData.normalBirth / 2) {
 			if (slave.pregType >= 20) {
-				beauty += 10*(arcology.FSRepopulationFocus/40); /* 25 */
+				beauty += 10 * (arcology.FSRepopulationFocus / 40); /* 25 */
 			} else if (slave.pregType >= 10) {
-				beauty += 9*(arcology.FSRepopulationFocus/40); /* 22.5 */
+				beauty += 9 * (arcology.FSRepopulationFocus / 40); /* 22.5 */
 			} else {
-				beauty += 8*(arcology.FSRepopulationFocus/40); /* 20 */
+				beauty += 8 * (arcology.FSRepopulationFocus / 40); /* 20 */
 			}
-		} else if (slave.preg > slave.pregData.normalBirth/4) {
+		} else if (slave.preg > slave.pregData.normalBirth / 4) {
 			if (slave.pregType >= 20) {
-				beauty += arcology.FSRepopulationFocus/5; /* 20 */
+				beauty += arcology.FSRepopulationFocus / 5; /* 20 */
 			} else if (slave.pregType >= 10) {
-				beauty += arcology.FSRepopulationFocus/6.25; /* 16 */
+				beauty += arcology.FSRepopulationFocus / 6.25; /* 16 */
 			} else {
-				beauty += arcology.FSRepopulationFocus/10; /* 10 */
+				beauty += arcology.FSRepopulationFocus / 10; /* 10 */
 			}
 		} else if (slave.pregWeek < 0) {
-			beauty += arcology.FSRepopulationFocus/10; /* 10 */
+			beauty += arcology.FSRepopulationFocus / 10; /* 10 */
 		} else if (slave.preg > 0 && slave.collar === "preg biometrics") {
-			beauty += arcology.FSRepopulationFocus/12; /* 8.33 */
+			beauty += arcology.FSRepopulationFocus / 12; /* 8.33 */
 		} else {
-			beauty -= arcology.FSRepopulationFocus/2.5; /* -40 */
+			beauty -= arcology.FSRepopulationFocus / 2.5; /* -40 */
 		}
 		if (slave.counter.births > 50) {
-			beauty += arcology.FSRepopulationFocus/1.5; /* 66.6 */
+			beauty += arcology.FSRepopulationFocus / 1.5; /* 66.6 */
 		} else {
-			beauty += slave.counter.births*(arcology.FSRepopulationFocus/75);
+			beauty += slave.counter.births * (arcology.FSRepopulationFocus / 75);
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcTrendyPregBeauty(slave) {
-		if (slave.preg > slave.pregData.normalBirth/1.33) { /* limited huge boost for full term */
+		if (slave.preg > slave.pregData.normalBirth / 1.33) {
+			/* limited huge boost for full term */
 			beauty += 20;
 		} else if (slave.bellyPreg >= 1500) {
 			beauty += 10;
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcRestartPregBeauty(slave) {
 		if (slave.breedingMark === 1 && V.propOutcome === 1) {
-			if (slave.preg > slave.pregData.normalBirth/8 && slave.pregSource === -1) {
+			if (slave.preg > slave.pregData.normalBirth / 8 && slave.pregSource === -1) {
 				beauty += arcology.FSRestart; /* 100 */
 			}
 		} else {
-			if (slave.preg > slave.pregData.normalBirth/1.33) {
+			if (slave.preg > slave.pregData.normalBirth / 1.33) {
 				if (slave.bellyPreg >= 600000) {
-					beauty -= 2.5*arcology.FSRestart; /* -250 */
+					beauty -= 2.5 * arcology.FSRestart; /* -250 */
 				} else if (slave.bellyPreg >= 300000) {
-					beauty -= 1.25*arcology.FSRestart; /* -125 */
+					beauty -= 1.25 * arcology.FSRestart; /* -125 */
 				} else if (slave.bellyPreg >= 120000) {
 					beauty -= arcology.FSRestart; /* -100 */
 				} else {
-					beauty -= 0.75*arcology.FSRestart; /* -75 */
+					beauty -= 0.75 * arcology.FSRestart; /* -75 */
 				}
-			} else if (slave.preg > slave.pregData.normalBirth/2) {
+			} else if (slave.preg > slave.pregData.normalBirth / 2) {
 				if (slave.pregType >= 20) {
-					beauty -= arcology.FSRestart/1.5; /* -66.6 */
+					beauty -= arcology.FSRestart / 1.5; /* -66.6 */
 				} else if (slave.pregType >= 10) {
-					beauty -= arcology.FSRestart/2; /* -50 */
+					beauty -= arcology.FSRestart / 2; /* -50 */
 				} else {
-					beauty -= arcology.FSRestart/3; /* -33.3 */
+					beauty -= arcology.FSRestart / 3; /* -33.3 */
 				}
-			} else if (slave.preg > slave.pregData.normalBirth/4) {
+			} else if (slave.preg > slave.pregData.normalBirth / 4) {
 				if (slave.pregType >= 20) {
-					beauty -= 3*(arcology.FSRestart/8); /* -37.5 */
+					beauty -= 3 * (arcology.FSRestart / 8); /* -37.5 */
 				} else if (slave.pregType >= 10) {
-					beauty -= arcology.FSRestart/4; /* -25 */
+					beauty -= arcology.FSRestart / 4; /* -25 */
 				} else {
-					beauty -= arcology.FSRestart/8; /* -12.5 */
+					beauty -= arcology.FSRestart / 8; /* -12.5 */
 				}
 			} else if (slave.preg === -2) {
-				beauty += arcology.FSRestart/7; /* 14.2 */
+				beauty += arcology.FSRestart / 7; /* 14.2 */
 			} else if (slave.preg < 1) {
-				beauty += arcology.FSRestart/5; /* 20 */
+				beauty += arcology.FSRestart / 5; /* 20 */
 			}
 			if (slave.counter.births > 50) {
 				beauty -= arcology.FSRestart; /* -100 */
 			} else {
-				beauty -= slave.counter.births*(arcology.FSRestart/50);
+				beauty -= slave.counter.births * (arcology.FSRestart / 50);
 			}
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcTrendyMilfBeauty(slave) {
 		if (slave.counter.births > 50) {
 			beauty += 6;
 		} else {
-			beauty += Math.ceil(slave.counter.births/10);
+			beauty += Math.ceil(slave.counter.births / 10);
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcFutaLawBeauty(slave) {
 		switch (arcology.FSGenderRadicalistLawFuta) {
 			case 1:
-				if (slave.dick > 0 && slave.vagina > -1) { /* herms */
+				if (slave.dick > 0 && slave.vagina > -1) {
+					/* herms */
 					calcFutaLawTrueFutaBeauty(slave);
 				}
 				break;
 			case 2:
-				if (canAchieveErection(slave) && slave.balls > 0 && slave.scrotum > 0) { /* erection! */
+				if (canAchieveErection(slave) && slave.balls > 0 && slave.scrotum > 0) {
+					/* erection! */
 					calcFutaLawBigDickBeauty(slave);
 				}
 				break;
@@ -953,13 +964,13 @@ window.Beauty = (function() {
 					}
 				}
 				break;
-			
+
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcFutaLawTrueFutaBeauty(slave) {
 		if (slave.dick <= 10) {
 			beauty += slave.dick;
@@ -970,9 +981,9 @@ window.Beauty = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcFutaLawBigDickBeauty(slave) {
 		beauty += slave.dick;
 		if (slave.balls > 120) {
@@ -994,20 +1005,20 @@ window.Beauty = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcFutaLawBigBootyBeauty(slave) {
 		if (slave.hips >= 1) {
-			beauty += 4*(slave.hips - 1); /* 8 */
+			beauty += 4 * (slave.hips - 1); /* 8 */
 			if (arcology.FSSlimnessEnthusiast !== "unset") {
-				beauty += 4*(slave.hips - 1); /* 8 */ /* offsets the malus for big butts */
+				beauty += 4 * (slave.hips - 1); /* 8 */ /* offsets the malus for big butts */
 			}
 		}
 		if (slave.skill.anal > 60 && slave.anus >= 2) {
-			beauty += 2*(slave.anus-2); /* 6 */
+			beauty += 2 * (slave.anus - 2); /* 6 */
 			if (arcology.FSSlimnessEnthusiast !== "unset") {
-				beauty += 2*(slave.anus-2); /* 6 */ /* offsets the malus for big butts */
+				beauty += 2 * (slave.anus - 2); /* 6 */ /* offsets the malus for big butts */
 			}
 		}
 		if (slave.butt >= 5) {
@@ -1015,11 +1026,12 @@ window.Beauty = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcFutaLawFemboyBeauty(slave) {
-		if (arcology.FSSlimnessEnthusiast === "unset") { /* balance with slimness */
+		if (arcology.FSSlimnessEnthusiast === "unset") {
+			/* balance with slimness */
 			beauty += 20;
 			if (slave.boobs < 300) {
 				beauty += 12;
@@ -1035,8 +1047,9 @@ window.Beauty = (function() {
 		if (slave.balls <= 2) {
 			beauty += 8;
 		}
-		if (slave.faceShape === "cute" && slave.face > 0) { /* uggos need not apply, maybe a small boost for other faceShapes */
-			beauty += ((arcology.FSGenderRadicalist/25)*(slave.face/30)) - 2; /* gives a slightly better boost than androgynous does with gendrad boost, 15.3 */
+		if (slave.faceShape === "cute" && slave.face > 0) {
+			/* uggos need not apply, maybe a small boost for other faceShapes */
+			beauty += ((arcology.FSGenderRadicalist / 25) * (slave.face / 30)) - 2; /* gives a slightly better boost than androgynous does with gendrad boost, 15.3 */
 		}
 		if (slave.nipples === "tiny") {
 			beauty += 5;
@@ -1047,28 +1060,28 @@ window.Beauty = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcBodyProportionBeauty(slave) {
 		if (arcology.FSGenderFundamentalist !== "unset") {
 			if (slave.shoulders > slave.hips) {
-				if (slave.boobs <= 2000*(slave.shoulders - slave.hips)) {
-					beauty -= (slave.shoulders - slave.hips)*(1 + (arcology.FSGenderFundamentalist/200));
+				if (slave.boobs <= 2000 * (slave.shoulders - slave.hips)) {
+					beauty -= (slave.shoulders - slave.hips) * (1 + (arcology.FSGenderFundamentalist / 200));
 				}
 			}
 		} else if (arcology.FSGenderRadicalist === "unset") {
 			if (slave.shoulders > slave.hips) {
-				if (slave.boobs <= 2000*(slave.shoulders - slave.hips)) {
+				if (slave.boobs <= 2000 * (slave.shoulders - slave.hips)) {
 					beauty -= slave.shoulders - slave.hips;
 				}
 			}
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcVoiceBeauty(slave) {
 		if (canTalk(slave)) {
 			if (slave.accent >= 3) {
@@ -1081,9 +1094,9 @@ window.Beauty = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcLimbsBeauty(slave) {
 		switch (slave.amp) {
 			case 1:
@@ -1094,13 +1107,13 @@ window.Beauty = (function() {
 			case -4:
 				beauty -= 2;
 				break;
-			
+
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcPubertyBeauty(slave) {
 		if (slave.pubertyXX === 1) {
 			beauty += 5;
@@ -1113,14 +1126,14 @@ window.Beauty = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcFSMiscBeauty(slave) {
 		if (arcology.FSTransformationFetishist > 20) {
 			if (slave.lips > 70) {
-				if (slave.lipsImplant/slave.lips < 0.5) {
-					beauty -= ((slave.lips/10) + (arcology.FSTransformationFetishist/20));
+				if (slave.lipsImplant / slave.lips < 0.5) {
+					beauty -= ((slave.lips / 10) + (arcology.FSTransformationFetishist / 20));
 				}
 			}
 			if (slave.hips === 3) {
@@ -1142,14 +1155,14 @@ window.Beauty = (function() {
 		}
 		if (arcology.FSHedonisticDecadenceLaw2 === 1) {
 			if (slave.boobs >= 2000 && slave.butt >= 5 && slave.weight > 95) {
-				beauty += 5 + (arcology.FSHedonisticDecadence/20); /* 10 */
+				beauty += 5 + (arcology.FSHedonisticDecadence / 20); /* 10 */
 			} else {
-				beauty -= 15 + (arcology.FSHedonisticDecadence/20); /* -20 */
+				beauty -= 15 + (arcology.FSHedonisticDecadence / 20); /* -20 */
 			}
 		}
 		if (arcology.FSChattelReligionistCreed === 1) {
 			if (V.nicaeaAssignment === slave.assignment) {
-				beauty += 2*V.nicaeaPower;
+				beauty += 2 * V.nicaeaPower;
 			}
 		}
 		if (arcology.FSChattelReligionist > 40 && arcology.FSBodyPurist === "unset") {
@@ -1166,40 +1179,44 @@ window.Beauty = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcPurityBeauty(slave) {
 		if (isPure(slave)) {
 			V.pure = V.pure++ || 1;
 			if (arcology.FSBodyPurist !== "unset") {
-				beauty += arcology.FSBodyPurist/5;
+				beauty += arcology.FSBodyPurist / 5;
 			}
 			if (arcology.FSTransformationFetishist === "unset") {
 				beauty += 2;
 			}
 		} else if (arcology.FSTransformationFetishist !== "unset") {
-			beauty += arcology.FSTransformationFetishist/40;
+			beauty += arcology.FSTransformationFetishist / 40;
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcPhysiqueBeauty(slave) {
 		let physiquePass = 0;
 
 		if (slave.boobs < 500 && slave.butt < 3) {
 			if (slave.muscles <= 30 && arcology.FSPhysicalIdealist === "unset" && slave.weight <= 10 && arcology.FSHedonisticDecadence === "unset") {
 				physiquePass = 1;
-			} else if (arcology.FSPhysicalIdealist !== "unset") { /* no muscle malus for muscle loving societies */
-				if (arcology.FSPhysicalIdealistStrongFat === 1 && slave.weight <= 30) { /* reduced weight malus for fat loving societies */
+			} else if (arcology.FSPhysicalIdealist !== "unset") {
+				/* no muscle malus for muscle loving societies */
+				if (arcology.FSPhysicalIdealistStrongFat === 1 && slave.weight <= 30) {
+					/* reduced weight malus for fat loving societies */
 					physiquePass = 1;
 				} else if (slave.weight <= 10) {
 					physiquePass = 1;
 				}
-			} else if (arcology.FSHedonisticDecadence !== "unset" && slave.weight <= 30) { /* reduced weight malus for fat loving societies */
-				if (arcology.FSHedonisticDecadenceStrongFat === 1) { /* no muscle malus for muscle loving societies */
+			} else if (arcology.FSHedonisticDecadence !== "unset" && slave.weight <= 30) {
+				/* reduced weight malus for fat loving societies */
+				if (arcology.FSHedonisticDecadenceStrongFat === 1) {
+					/* no muscle malus for muscle loving societies */
 					physiquePass = 1;
 				} else if (slave.muscles <= 30) {
 					physiquePass = 1;
@@ -1209,9 +1226,9 @@ window.Beauty = (function() {
 		if (physiquePass === 1) {
 			beauty += 40;
 			if (arcology.FSSlimnessEnthusiast > 20) {
-				beauty += arcology.FSSlimnessEnthusiast/20;
+				beauty += arcology.FSSlimnessEnthusiast / 20;
 				if (canTalk(slave) && slave.voice === 3) {
-					beauty += arcology.FSSlimnessEnthusiast/40;
+					beauty += arcology.FSSlimnessEnthusiast / 40;
 				}
 			}
 		} else if (isStacked(slave)) {
@@ -1219,35 +1236,37 @@ window.Beauty = (function() {
 				beauty += 1;
 			}
 			if (arcology.FSAssetExpansionist > 20) {
-				beauty += arcology.FSAssetExpansionist/20;
+				beauty += arcology.FSAssetExpansionist / 20;
 				if (canTalk(slave) && slave.voice === 3) {
-					beauty += arcology.FSAssetExpansionist/40;
+					beauty += arcology.FSAssetExpansionist / 40;
 				}
 			}
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcSlimBeauty(slave) {
 		if (slimPass(slave) === 1) {
-			beauty += 40 + (arcology.FSSlimnessEnthusiast/20); /* 45 */
+			beauty += 40 + (arcology.FSSlimnessEnthusiast / 20); /* 45 */
 		} else {
-			beauty -= arcology.FSSlimnessEnthusiast/20;
+			beauty -= arcology.FSSlimnessEnthusiast / 20;
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcGenderLawBeauty(slave) {
 		V.genderLawPass = 1;
 
-		if (arcology.FSPhysicalIdealist === "unset" && arcology.FSHedonisticDecadenceStrongFat === 0 && slave.muscles > 30) { /* muscle check */
+		if (arcology.FSPhysicalIdealist === "unset" && arcology.FSHedonisticDecadenceStrongFat === 0 && slave.muscles > 30) {
+			/* muscle check */
 			V.genderLawPass = 0;
 		}
-		if (arcology.FSHedonisticDecadence !== "unset" || arcology.FSPhysicalIdealistStrongFat === 1) { /* weight check */
+		if (arcology.FSHedonisticDecadence !== "unset" || arcology.FSPhysicalIdealistStrongFat === 1) {
+			/* weight check */
 			if (slave.weight > 130 || slave.weight <= -30) {
 				V.genderLawPass = 0;
 			}
@@ -1268,17 +1287,17 @@ window.Beauty = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcMultipliersBeauty(slave) {
 		calcBellyBeauty(slave);
 		if (slave.geneticQuirks.albinism === 2) {
-			beauty += 0.1*beauty;
+			beauty += 0.1 * beauty;
 		}
 		if (slave.breedingMark === 1) {
 			if (V.propOutcome === 1) {
-				beauty = 2*beauty;
+				beauty = 2 * beauty;
 			} else {
 				beauty += 2;
 			}
@@ -1291,9 +1310,9 @@ window.Beauty = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcBellyBeauty(slave) {
 		if (slave.bellySag > 0) {
 			if (slave.belly < 100) {
@@ -1304,90 +1323,92 @@ window.Beauty = (function() {
 		}
 		if (slave.bellyPreg >= 500 && arcology.FSRepopulationFocus === "unset" && arcology.FSRestart === "unset") {
 			if (arcology.FSRepopulationFocusPregPolicy === 1) {
-				beauty = 0.9*beauty;
+				beauty = 0.9 * beauty;
 			} else if (arcology.FSGenderRadicalist !== "unset") {
 				if (slave.mpreg === 1) {
-					beauty = 0.9*beauty;
+					beauty = 0.9 * beauty;
 				} else {
-					beauty = 0.7*beauty;
+					beauty = 0.7 * beauty;
 				}
 			} else if (arcology.FSGenderFundamentalist === "unset") {
-				beauty = 0.8*beauty;
+				beauty = 0.8 * beauty;
 			} else {
-				beauty = 0.7*beauty;
+				beauty = 0.7 * beauty;
 			}
 		}
 		if (slave.bellyImplant >= 1500) {
 			if (arcology.FSTransformationFetishist > 20) {
-				beauty += Math.min(Math.trunc(slave.bellyImplant/1000), 50); /* 50 */
+				beauty += Math.min(Math.trunc(slave.bellyImplant / 1000), 50); /* 50 */
 			} else if (arcology.FSRepopulationFocus > 60) {
 				if ((slave.ovaries === 0 && slave.mpreg === 0) || slave.preg < -1) {
 					beauty += 20;
 				}
 			} else {
-				if (slave.bellyImplant >= 750000) { /* multipliers */
-					beauty = 0.2*beauty;
+				if (slave.bellyImplant >= 750000) {
+					/* multipliers */
+					beauty = 0.2 * beauty;
 				} else if (slave.bellyImplant >= 450000) {
-					beauty = 0.5*beauty;
+					beauty = 0.5 * beauty;
 				} else if (slave.bellyImplant >= 300000) {
-					beauty = 0.7*beauty;
+					beauty = 0.7 * beauty;
 				} else if (slave.bellyImplant >= 100000) {
-					beauty = 0.8*beauty;
+					beauty = 0.8 * beauty;
 				} else if (slave.bellyImplant >= 50000) {
-					beauty = 0.85*beauty;
+					beauty = 0.85 * beauty;
 				} else {
-					beauty = 0.9*beauty;
+					beauty = 0.9 * beauty;
 				}
 			}
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcAgeBeauty(slave) {
 		if (slave.physicalAge === V.minimumSlaveAge) {
 			beauty += 1;
 			if (slave.physicalAge === V.fertilityAge && canGetPregnant(slave) && (arcology.FSRepopulationFocus !== "unset" || arcology.FSGenderFundamentalist !== "unset") && arcology.FSRestart === "unset") {
 				if (slave.birthWeek === 0) {
-					beauty += 1.6*beauty;
+					beauty += 1.6 * beauty;
 				} else if (slave.birthWeek < 4) {
-					beauty += 0.2*beauty;
+					beauty += 0.2 * beauty;
 				}
 			} else {
 				if (slave.birthWeek === 0) {
-					beauty += 0.8*beauty;
+					beauty += 0.8 * beauty;
 				} else if (slave.birthWeek < 4) {
-					beauty += 0.1*beauty;
+					beauty += 0.1 * beauty;
 				}
 			}
 		} else if (slave.physicalAge === V.fertilityAge && canGetPregnant(slave) && (arcology.FSRepopulationFocus !== "unset" || arcology.FSGenderFundamentalist !== "unset") && arcology.FSRestart === "unset") {
 			beauty += 1;
 			if (slave.birthWeek === 0) {
-				beauty += 0.8*beauty;
+				beauty += 0.8 * beauty;
 			} else if (slave.birthWeek < 4) {
-				beauty += 0.1*beauty;
+				beauty += 0.1 * beauty;
 			}
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
-	function calcPrestigeBeauty(slave) { /* multipliers */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
+	function calcPrestigeBeauty(slave) {
+		/* multipliers */
 		if (slave.prestige >= 3) {
-			beauty += 2*beauty;
+			beauty += 2 * beauty;
 		} else if (slave.prestige === 2) {
-			beauty += 0.5*beauty;
+			beauty += 0.5 * beauty;
 		} else if (slave.prestige === 1) {
-			beauty += 0.25*beauty;
+			beauty += 0.25 * beauty;
 		}
 		if (slave.pornPrestige === 3) {
 			beauty += beauty;
 		} else if (slave.pornPrestige === 2) {
-			beauty += 0.5*beauty;
+			beauty += 0.5 * beauty;
 		} else if (slave.pornPrestige === 1) {
-			beauty += 0.1*beauty;
+			beauty += 0.1 * beauty;
 		}
 	}
 
@@ -1399,7 +1420,7 @@ window.Beauty = (function() {
 // it has been wrapped in a closure so as not to pollute the global namespace
 // and so that nested functions are only evaluated once
 
-window.FResult = (function() {
+window.FResult = (function () {
 	"use strict";
 	// we can't initialize our global variables on load, because SugarCube.State isn't initialized
 	// instead, declare them and initialize on run time
@@ -1407,7 +1428,7 @@ window.FResult = (function() {
 	let V;
 	let result;
 	let incestBonus;
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @returns {number}
 	 */
@@ -1419,13 +1440,13 @@ window.FResult = (function() {
 		if (!slave.fuckdoll) {
 			calcNotFuckdoll(slave);
 		} else {
-			result += slave.fuckdoll/10;
+			result += slave.fuckdoll / 10;
 		}
 
 		result += Math.max(0, slave.aphrodisiacs) * 2;
 
 		if (slave.inflationType === "aphrodisiac") {
-			result += slave.inflation*4;
+			result += slave.inflation * 4;
 		}
 
 		if (slave.lactation > 0) {
@@ -1440,13 +1461,13 @@ window.FResult = (function() {
 			calcAge(slave);
 		}
 		if (slave.fetish === "mindbroken") {
-			result = Math.trunc(result*0.4);
+			result = Math.trunc(result * 0.4);
 		} else {
-			result = Math.trunc(result*0.7);
+			result = Math.trunc(result * 0.7);
 		}
 
 		if (slave.pregWeek < 0) {
-			result -= Math.trunc(result*slave.pregWeek/10);
+			result -= Math.trunc(result * slave.pregWeek / 10);
 		} // reduced the most just after birth
 
 		calcAmputation(slave);
@@ -1464,11 +1485,11 @@ window.FResult = (function() {
 		return result;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcUseWeights(slave) {
-		result = (3 - slave.anus)+(slave.muscles/30);
+		result = (3 - slave.anus) + (slave.muscles / 30);
 		if (slave.muscles < -95) {
 			result -= 5;
 		} else if (slave.muscles < -30) {
@@ -1478,39 +1499,39 @@ window.FResult = (function() {
 		const uses = V.oralUseWeight + V.vaginalUseWeight + V.analUseWeight;
 		if (uses <= 0) return;
 
-		result += (6+slave.tonguePiercing) * (V.oralUseWeight/uses) * (slave.skill.oral/30);
+		result += (6 + slave.tonguePiercing) * (V.oralUseWeight / uses) * (slave.skill.oral / 30);
 		if (slave.sexualFlaw === "cum addict") {
-			result += (V.oralUseWeight/uses) * (slave.skill.oral/30);
+			result += (V.oralUseWeight / uses) * (slave.skill.oral / 30);
 		}
 		if (canDoVaginal(slave)) {
-			result += 6 * (V.vaginalUseWeight/uses) * (slave.skill.vaginal/30);
+			result += 6 * (V.vaginalUseWeight / uses) * (slave.skill.vaginal / 30);
 			result += (3 - slave.vagina);
 			result += slave.vaginaLube;
 		}
 		if (canDoAnal(slave)) {
-			result += 6 * (V.analUseWeight/uses) * (slave.skill.anal/30);
+			result += 6 * (V.analUseWeight / uses) * (slave.skill.anal / 30);
 			if (slave.sexualFlaw === "anal addict") {
-				result += (V.analUseWeight/uses) * (slave.skill.anal/30);
+				result += (V.analUseWeight / uses) * (slave.skill.anal / 30);
 			}
 			if (slave.inflationType === "aphrodisiac") {
-				result += (V.analUseWeight/uses) * (slave.inflation * 3);
+				result += (V.analUseWeight / uses) * (slave.inflation * 3);
 			}
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcFuckableTits(slave) {
 		result += 2;
 		if (slave.fetish === "boobs") {
-			result += Math.trunc(slave.fetishStrength/20);
+			result += Math.trunc(slave.fetishStrength / 20);
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcWorksWithRelatives(slave) {
 		V.slaves.forEach(islave => {
 			if (isParentP(slave, islave) && sameAssignmentP(slave, islave)) {
@@ -1524,9 +1545,9 @@ window.FResult = (function() {
 		});
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcWorksWithRelativesVanilla(slave) {
 		const fre = getSlave(slave.relationTarget);
 		if (fre !== undefined && sameAssignmentP(slave, fre)) {
@@ -1535,9 +1556,9 @@ window.FResult = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcWorksWithRelationship(slave) {
 		const fre = V.slaves.findIndex(s => {
 			return haveRelationshipP(slave, s) && sameAssignmentP(slave, s);
@@ -1545,17 +1566,17 @@ window.FResult = (function() {
 		if (fre !== -1) result += 1;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcWorksWithRival(slave) {
 		const en = getSlave(slave.rivalryTarget);
 		if (en !== undefined && sameAssignmentP(slave, en)) result -= 1;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcHInjectionsDiet(slave) {
 		if (slave.drugs === "male hormone injections" || slave.drugs === "female hormone injections") {
 			result -= 10;
@@ -1571,9 +1592,9 @@ window.FResult = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcPreg(slave) {
 		if (V.arcologies[0].FSRepopulationFocus > 20) {
 			if (slave.belly >= 1500) result += 2;
@@ -1596,31 +1617,31 @@ window.FResult = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcRace(slave) {
 		if (V.arcologies[0].FSSupremacist !== "unset" && supremeRaceP(slave)) {
-			result -= (V.arcologies[0].FSSupremacist/5) + (V.arcologies[0].FSSupremacistLawME*10);
+			result -= (V.arcologies[0].FSSupremacist / 5) + (V.arcologies[0].FSSupremacistLawME * 10);
 		}
 		if (V.arcologies[0].FSSubjugationist !== "unset" && inferiorRaceP(slave)) {
-			result += (V.arcologies[0].FSSubjugationist/10) + (V.arcologies[0].FSSubjugationistLawME);
+			result += (V.arcologies[0].FSSubjugationist / 10) + (V.arcologies[0].FSSubjugationistLawME);
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcSexAttributes(slave) {
 		if (slave.clitPiercing > 2) result += 1;
 		if (slave.tail === "sex") result += 1;
 		if (slave.fetishKnown === 1 && slave.fetishStrength > 60 && slave.fetish !== "none") {
-			result += slave.fetishStrength/5;
+			result += slave.fetishStrength / 5;
 		}
 
 		if (slave.attrKnown === 1) {
-			result += Math.trunc(slave.attrXX/20);
-			result += Math.trunc(slave.attrXY/20);
+			result += Math.trunc(slave.attrXX / 20);
+			result += Math.trunc(slave.attrXY / 20);
 			if (slave.energy > 95) result += 3;
 			else if (slave.energy > 80) result += 2;
 			else if (slave.energy > 60) result += 1;
@@ -1633,9 +1654,9 @@ window.FResult = (function() {
 		if (slave.behavioralQuirk !== "none") result += 2;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcCareer(slave) {
 		if (setup.whoreCareers.includes(slave.career)) {
 			result += 1;
@@ -1644,9 +1665,9 @@ window.FResult = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcSight(slave) {
 		if (!canSee(slave)) result -= 3;
 		else if (slave.eyes <= -1) {
@@ -1660,9 +1681,9 @@ window.FResult = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcHearing(slave) {
 		if (!canHear(slave)) result -= 2;
 		else if (slave.hears <= -1) {
@@ -1674,9 +1695,9 @@ window.FResult = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcEgyptianBonus(slave) {
 		if (V.racialVarieties === undefined) V.racialVarieties = [];
 		if (!V.racialVarieties.includes(slave.race)) {
@@ -1684,36 +1705,36 @@ window.FResult = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcYouthBonus(slave) {
 		if (slave.visualAge < 30) {
 			if (slave.actualAge > 30) {
 				result += 5;
 			} // experienced for her apparent age
 			if (slave.physicalAge > 30) {
-				result -= slave.physicalAge/2;
+				result -= slave.physicalAge / 2;
 			} // too old :(
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcMatureBonus(slave) {
 		if (slave.visualAge >= 30 && slave.actualAge >= 30 && slave.physicalAge < slave.visualAge) {
 			result += Math.min((slave.physicalAge - slave.visualAge) * 2, 20);
 		} // looks and acts mature, but has a body that just won't quit
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcNotFuckdoll(slave) {
 		if (V.familyTesting === 1 && totalRelatives(slave) > 0) {
 			calcWorksWithRelatives(slave);
-		} else if (!V.familyTesting && slave.relation !==0) {
+		} else if (!V.familyTesting && slave.relation !== 0) {
 			calcWorksWithRelativesVanilla(slave);
 		}
 		if (slave.relationship > 0) calcWorksWithRelationship(slave);
@@ -1735,31 +1756,31 @@ window.FResult = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcAge(slave) {
 		if ((V.arcologies[0].FSRepopulationFocus !== "unset" || V.arcologies[0].FSGenderFundamentalist !== "unset") && slave.physicalAge === V.minimumSlaveAge && slave.physicalAge === V.fertilityAge && canGetPregnant(slave)) {
 			result += 1;
 			if (slave.birthWeek === 0) result += result;
-			else if (slave.birthWeek < 4) result += 0.2*result;
+			else if (slave.birthWeek < 4) result += 0.2 * result;
 		} else if (slave.physicalAge === V.minimumSlaveAge) {
 			result += 1;
-			if (slave.birthWeek === 0 ) result += 0.5*result;
-			else if (slave.birthWeek < 4) result += 0.1*result;
+			if (slave.birthWeek === 0) result += 0.5 * result;
+			else if (slave.birthWeek < 4) result += 0.1 * result;
 		} else if (slave.physicalAge === V.fertilityAge && canGetPregnant(slave) && (V.arcologies[0].FSRepopulationFocus !== "unset" || V.arcologies[0].FSGenderFundamentalist !== "unset")) {
 			result += 1;
 			if (slave.birthWeek === 0) {
-				result += 0.5*result;
+				result += 0.5 * result;
 			} else if (slave.birthWeek < 4) {
-				result += 0.1*result;
+				result += 0.1 * result;
 			}
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcAmputation(slave) {
 		switch (slave.amp) {
 			case 0:
@@ -1774,9 +1795,9 @@ window.FResult = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcHedonismWeight(slave) {
 		if (slave.weight < 10) {
 			result -= 2;
@@ -1787,11 +1808,14 @@ window.FResult = (function() {
 	return FResult;
 })();
 
-window.slaveCost = (function() {
+window.slaveCost = (function () {
 	"use strict";
-	let V; let arcology; let multiplier; let cost;
+	let V;
+	let arcology;
+	let multiplier;
+	let cost;
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {number} isStartingSlave
 	 * @returns {number} Any number here means the slave
@@ -1801,7 +1825,7 @@ window.slaveCost = (function() {
 		V = State.variables;
 		arcology = V.arcologies[0];
 		multiplier = V.slaveCostFactor;
-		cost = Beauty(slave)*FResult(slave);
+		cost = Beauty(slave) * FResult(slave);
 
 		calcGenitalsCost(slave);
 		calcDevotionTrustCost(slave);
@@ -1825,9 +1849,9 @@ window.slaveCost = (function() {
 		return cost;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcGenitalsCost(slave) {
 		if (slave.vagina === 0) {
 			multiplier += 0.1;
@@ -1859,34 +1883,34 @@ window.slaveCost = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcDevotionTrustCost(slave) {
 		if (V.specialSlavesPriceOverride === 1) {
 			if (slave.devotion > 50) {
-				multiplier += slave.devotion/200;
+				multiplier += slave.devotion / 200;
 			}
 			if (slave.trust > 50) {
-				multiplier += slave.trust/200;
+				multiplier += slave.trust / 200;
 			}
 		} else {
-			multiplier += slave.devotion/200;
+			multiplier += slave.devotion / 200;
 			if (slave.devotion < -20) {
 				if (slave.trust > 0) {
-					multiplier -= slave.trust/200;
+					multiplier -= slave.trust / 200;
 				}
 			} else {
 				if (slave.trust > 0) {
-					multiplier += slave.trust/200;
+					multiplier += slave.trust / 200;
 				}
 			}
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcPreferencesCost(slave) {
 		if (slave.behavioralFlaw !== "none") {
 			multiplier -= 0.1;
@@ -1906,7 +1930,7 @@ window.slaveCost = (function() {
 			if (slave.fetish === "mindbroken") {
 				multiplier -= 0.3;
 			} else if (slave.fetish !== "none") {
-				multiplier += slave.fetishStrength/1000;
+				multiplier += slave.fetishStrength / 1000;
 			}
 		} else {
 			multiplier -= 0.1;
@@ -1918,9 +1942,9 @@ window.slaveCost = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcPregCost(slave) {
 		if (slave.mpreg === 1) {
 			multiplier += 0.2;
@@ -1932,7 +1956,7 @@ window.slaveCost = (function() {
 				multiplier += 1;
 			} else if (slave.bellyPreg >= 120000) {
 				multiplier += 0.5;
-			} else if (slave.preg > slave.pregData.normalBirth/4) {
+			} else if (slave.preg > slave.pregData.normalBirth / 4) {
 				multiplier += 0.1;
 			}
 		} else if (arcology.FSRestartSMR === 1) {
@@ -1942,7 +1966,7 @@ window.slaveCost = (function() {
 				multiplier -= 2.5;
 			} else if (slave.bellyPreg >= 30000) {
 				multiplier -= 1.5;
-			} else if (slave.preg > slave.pregData.normalBirth/4) {
+			} else if (slave.preg > slave.pregData.normalBirth / 4) {
 				multiplier -= 1.0;
 			}
 		} else {
@@ -1958,12 +1982,12 @@ window.slaveCost = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcPrestigeCost(slave) {
 		if (slave.prestige > 0) {
-			multiplier += 0.7*slave.prestige;
+			multiplier += 0.7 * slave.prestige;
 		}
 		if (slave.pornPrestige === 3) {
 			multiplier += 1.5;
@@ -1974,9 +1998,9 @@ window.slaveCost = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcFSCost(slave) {
 		if (arcology.FSSupremacistLawME !== 0) {
 			if (slave.race !== arcology.FSSupremacistRace) {
@@ -2031,9 +2055,9 @@ window.slaveCost = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcAgeCost(slave) {
 		if (slave.physicalAge === V.minimumSlaveAge && slave.physicalAge === V.fertilityAge && canGetPregnant(slave) && (arcology.FSRepopulationFocus !== "unset" || arcology.FSGenderFundamentalist !== "unset")) {
 			if (slave.birthWeek === 0) {
@@ -2056,9 +2080,9 @@ window.slaveCost = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcCareersCost(slave) {
 		if (slave.career !== 0) {
 			if (slave.career === "a slave") {
@@ -2099,7 +2123,7 @@ window.slaveCost = (function() {
 				multiplier += 0.05;
 			}
 		}
-		if (V.week-slave.weekAcquired >= 20 && slave.skill.entertainment >= 100) {
+		if (V.week - slave.weekAcquired >= 20 && slave.skill.entertainment >= 100) {
 			if (!setup.entertainmentCareers.includes(slave.career)) {
 				multiplier += 0.05;
 			}
@@ -2156,13 +2180,14 @@ window.slaveCost = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcMiscCost(slave) {
-		const totalInt = Math.clamp(slave.intelligence + slave.intelligenceImplant, -130, 130); /* make absolutely certain we do not use +-131 in the next line
-*/
-		multiplier += Math.floor((Math.asin(totalInt/131))*50)/50;
+		const totalInt = Math.clamp(slave.intelligence + slave.intelligenceImplant, -130, 130);
+		/* make absolutely certain we do not use +-131 in the next line
+		 */
+		multiplier += Math.floor((Math.asin(totalInt / 131)) * 50) / 50;
 		if (slave.pubertyXY === 0 && slave.physicalAge >= V.potencyAge && slave.genes === "XY" && arcology.FSGenderRadicalist === "unset") {
 			multiplier += 0.5;
 		}
@@ -2184,71 +2209,73 @@ window.slaveCost = (function() {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcIndentureCost(slave) {
 		if (slave.indenture > -1) {
-			multiplier -= 0.1*slave.indentureRestrictions;
-			multiplier -= (260-slave.indenture)/260;
+			multiplier -= 0.1 * slave.indentureRestrictions;
+			multiplier -= (260 - slave.indenture) / 260;
 		} else if (V.seeAge === 1) {
-			if (slave.actualAge >= (V.retirementAge-5) && V.PhysicalRetirementAgePolicy !== 1) {
-				multiplier *= (V.retirementAge-slave.actualAge)/5;
+			if (slave.actualAge >= (V.retirementAge - 5) && V.PhysicalRetirementAgePolicy !== 1) {
+				multiplier *= (V.retirementAge - slave.actualAge) / 5;
 			}
-			if (slave.physicalAge >= (V.retirementAge-5) && V.PhysicalRetirementAgePolicy === 1) {
-				multiplier *= (V.retirementAge-slave.actualAge)/5;
+			if (slave.physicalAge >= (V.retirementAge - 5) && V.PhysicalRetirementAgePolicy === 1) {
+				multiplier *= (V.retirementAge - slave.actualAge) / 5;
 			}
 		}
 	}
 
-	function calcCost(/* slave
-*/) {
-		cost *= multiplier*50;
+	function calcCost(
+		/* slave
+		 */
+	) {
+		cost *= multiplier * 50;
 		cost = Number(cost) || 0;
 		if (cost < V.minimumSlaveCost) {
 			cost = V.minimumSlaveCost;
 		} else if (cost <= 100000) {
 			/* do nothing */
 		} else if (cost <= 200000) {
-			cost -= (cost-100000)*0.1;
+			cost -= (cost - 100000) * 0.1;
 		} else if (cost <= 300000) {
-			cost -= 10000 + ((cost-200000)*0.2);
+			cost -= 10000 + ((cost - 200000) * 0.2);
 		} else if (cost <= 400000) {
-			cost -= 30000 + ((cost-300000)*0.3);
+			cost -= 30000 + ((cost - 300000) * 0.3);
 		} else if (cost <= 500000) {
-			cost -= 60000 + ((cost-400000)*0.4);
+			cost -= 60000 + ((cost - 400000) * 0.4);
 		} else {
-			cost -= 100000 + ((cost-500000)*0.5);
+			cost -= 100000 + ((cost - 500000) * 0.5);
 		}
 		if (cost < 1000) {
 			cost = 1000;
 		}
-		cost = 500*Math.trunc(cost/500);
+		cost = 500 * Math.trunc(cost / 500);
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function calcStartingSlaveCost(slave) {
 		let startingSlaveMultiplier = 0;
 
 		if (slave.devotion > 20) {
-			startingSlaveMultiplier += (0.000117*(slave.devotion-20)*(slave.devotion-20))+(0.003167*(slave.devotion-20));
+			startingSlaveMultiplier += (0.000117 * (slave.devotion - 20) * (slave.devotion - 20)) + (0.003167 * (slave.devotion - 20));
 		}
 		if (slave.skill.whoring) {
-			startingSlaveMultiplier += 0.00001*slave.skill.whore*slave.skill.whore;
+			startingSlaveMultiplier += 0.00001 * slave.skill.whore * slave.skill.whore;
 		}
 		if (slave.skill.entertainment) {
-			startingSlaveMultiplier += 0.00001*slave.skill.entertainment*slave.skill.entertainment;
+			startingSlaveMultiplier += 0.00001 * slave.skill.entertainment * slave.skill.entertainment;
 		}
 		if (slave.skill.vaginal) {
-			startingSlaveMultiplier += 0.00001*slave.skill.vaginal*slave.skill.vaginal;
+			startingSlaveMultiplier += 0.00001 * slave.skill.vaginal * slave.skill.vaginal;
 		}
 		if (slave.skill.anal) {
-			startingSlaveMultiplier += 0.00001*slave.skill.anal*slave.skill.anal;
+			startingSlaveMultiplier += 0.00001 * slave.skill.anal * slave.skill.anal;
 		}
 		if (slave.skill.oral) {
-			startingSlaveMultiplier += 0.00001*slave.skill.oral*slave.skill.oral;
+			startingSlaveMultiplier += 0.00001 * slave.skill.oral * slave.skill.oral;
 		}
 		if (slave.skill.combat) {
 			startingSlaveMultiplier += 0.1;
@@ -2258,14 +2285,14 @@ window.slaveCost = (function() {
 		}
 		if (startingSlaveMultiplier) {
 			if (slave.actualAge > 25) {
-				startingSlaveMultiplier -= startingSlaveMultiplier*(slave.actualAge-25)*0.05;
+				startingSlaveMultiplier -= startingSlaveMultiplier * (slave.actualAge - 25) * 0.05;
 			}
 		}
 		startingSlaveMultiplier = Math.clamp(startingSlaveMultiplier, 0, 10);
-		cost += cost*startingSlaveMultiplier;
-		cost = 500*Math.trunc(cost/500);
+		cost += cost * startingSlaveMultiplier;
+		cost = 500 * Math.trunc(cost / 500);
 		if (V.PC.career === "slaver") {
-			cost = cost/2;
+			cost = cost / 2;
 		}
 	}
 
diff --git a/src/js/slaveGenerationJS.js b/src/js/slaveGenerationJS.js
index b586e52feadb9c4f9bee955764c8ec1f41d99e62..a36f74df1c2ff658096f684e5836f653e6babb4b 100644
--- a/src/js/slaveGenerationJS.js
+++ b/src/js/slaveGenerationJS.js
@@ -28,7 +28,7 @@ window.generateName = function generateName(nationality, race, male, filter) {
 	const lookup = (male ? setup.malenamePoolSelector : setup.namePoolSelector);
 	const result = jsEither(
 		(lookup[`${nationality }.${ race}`] || lookup[nationality] ||
-		(male ? setup.whiteAmericanMaleNames : setup.whiteAmericanSlaveNames)).filter(filter));
+			(male ? setup.whiteAmericanMaleNames : setup.whiteAmericanSlaveNames)).filter(filter));
 	/* fallback for males without specific male name sets: return female name */
 	if (male && !result) {
 		return generateName(nationality, race, false);
@@ -40,8 +40,8 @@ window.generateSurname = function generateSurname(nationality, race, male, filte
 	filter = filter || _.stubTrue; /* default: allow all */
 	const result = jsEither(
 		(setup.surnamePoolSelector[`${nationality }.${ race}`] ||
-		setup.surnamePoolSelector[nationality] ||
-		setup.whiteAmericanSlaveSurnames).filter(filter));
+			setup.surnamePoolSelector[nationality] ||
+			setup.whiteAmericanSlaveSurnames).filter(filter));
 	if (male) {
 		/* see if we have male equivalent of that surname, and return that if so */
 		const maleLookup = setup.maleSurnamePoolSelector[`${nationality }.${ race}`] || setup.maleSurnamePoolSelector[nationality];
@@ -76,15 +76,20 @@ window.nationalityToName = function nationalityToName(slave) {
 	slave.slaveSurname = slave.birthSurname;
 	if (V.useFSNames === 1) {
 		if (V.arcologies[0].FSChattelReligionist > 20) {
-			slave.slaveName = jsEither(setup.chattelReligionistSlaveNames); slave.slaveSurname = 0;
+			slave.slaveName = jsEither(setup.chattelReligionistSlaveNames);
+			slave.slaveSurname = 0;
 		} else if (V.arcologies[0].FSRomanRevivalist > 20) {
-			slave.slaveName = jsEither(setup.romanSlaveNames); slave.slaveSurname = jsEither(setup.romanSlaveSurnames);
+			slave.slaveName = jsEither(setup.romanSlaveNames);
+			slave.slaveSurname = jsEither(setup.romanSlaveSurnames);
 		} else if (V.arcologies[0].FSAztecRevivalist > 20) {
-			slave.slaveName = jsEither(setup.aztecSlaveNames); slave.slaveSurname = 0;
+			slave.slaveName = jsEither(setup.aztecSlaveNames);
+			slave.slaveSurname = 0;
 		} else if (V.arcologies[0].FSEgyptianRevivalist > 20) {
-			slave.slaveName = jsEither(setup.ancientEgyptianSlaveNames); slave.slaveSurname = 0;
+			slave.slaveName = jsEither(setup.ancientEgyptianSlaveNames);
+			slave.slaveSurname = 0;
 		} else if (V.arcologies[0].FSEdoRevivalist > 20) {
-			slave.slaveName = jsEither(setup.edoSlaveNames); slave.slaveSurname = jsEither(setup.edoSlaveSurnames);
+			slave.slaveName = jsEither(setup.edoSlaveNames);
+			slave.slaveSurname = jsEither(setup.edoSlaveSurnames);
 		} else if (V.arcologies[0].FSDegradationist !== "unset") {
 			DegradingName(slave);
 		}
@@ -1306,7 +1311,10 @@ window.checkForGingering = function checkForGingering() {
 	const His = capFirstChar(his);
 
 	/* reset in case gingered slaves were viewed but not purchased (no newSlaveIntro) */
-	V.gingering = 0; V.gingeringDetected = 0; V.gingeringDetection = 0; V.toSearch = V.activeSlave.origin;
+	V.gingering = 0;
+	V.gingeringDetected = 0;
+	V.gingeringDetection = 0;
+	V.toSearch = V.activeSlave.origin;
 	if (V.applyLaw === 1 && V.HonestySMR === 1) {
 		/* SMR prohibits gingering and is enforced for this slave - do nothing */
 	} else if (V.activeSlave.indenture > 0) {
@@ -1346,7 +1354,8 @@ window.checkForGingering = function checkForGingering() {
 	}
 	if (V.gingering !== 0) {
 		if (V.PC.slaving >= 100) {
-			V.gingeringDetected = 1; V.gingeringDetection = "slaver";
+			V.gingeringDetected = 1;
+			V.gingeringDetection = "slaver";
 			switch (V.gingering) {
 				case "antidepressant":
 					r += `${He} is acting dazed and unfocused. ${He}'s obviously been given antidepressants to make ${him} appear less fearful, and will be considerably less trusting than ${he} seems.`;
@@ -1373,9 +1382,11 @@ window.checkForGingering = function checkForGingering() {
 		} else {
 			/* not slaver */
 			if (V.PC.warfare >= 100 && jsRandom(1, 2) === 1) {
-				V.gingeringDetected = 1; V.gingeringDetection = "mercenary";
+				V.gingeringDetected = 1;
+				V.gingeringDetection = "mercenary";
 			} else if (V.PC.rumor === "force" && jsRandom(1, 2) === 1) {
-				V.gingeringDetected = 1; V.gingeringDetection = "force";
+				V.gingeringDetected = 1;
+				V.gingeringDetection = "force";
 			} else if (jsRandom(1, 3) === 1) {
 				V.gingeringDetected = 1;
 			}
@@ -1422,11 +1433,13 @@ window.removeGingering = function removeGingering() {
 	const V = State.variables;
 	if (V.gingering !== 0 && V.beforeGingering !== 0 && V.activeSlave !== 0 && V.beforeGingering.ID === V.activeSlave.ID) {
 		/* extra checks to ensure gingering state is not left over from a different slave that was inspected but not purchased */
-		V.activeSlave = V.beforeGingering; V.beforeGingering = 0;
+		V.activeSlave = V.beforeGingering;
+		V.beforeGingering = 0;
 	} else {
 		/* clear left over state from a different slave without modifying activeSlave
-*/
-		V.gingering = 0; V.beforeGingering = 0;
+		 */
+		V.gingering = 0;
+		V.beforeGingering = 0;
 	}
 };
 
@@ -1498,7 +1511,7 @@ window.generatePronouns = function generatePronouns(slave) {
 	}
 };
 
-window.generatePuberty = function(slave) {
+window.generatePuberty = function (slave) {
 	if ((slave.ovaries === 1 || slave.mpreg === 1) && slave.physicalAge >= slave.pubertyAgeXX) {
 		slave.pubertyXX = 1;
 	} else {
diff --git a/src/js/slaveStatsChecker.js b/src/js/slaveStatsChecker.js
index 848ec9b4fd61a1b19266d09b795df5fb6686e526..ee37f04a7ff1d75624593d15ff22491cb1d2becd 100644
--- a/src/js/slaveStatsChecker.js
+++ b/src/js/slaveStatsChecker.js
@@ -1,5 +1,5 @@
 /* eslint-disable no-undef */
-window.SlaveStatsChecker = (function() {
+window.SlaveStatsChecker = (function () {
 	return {
 		checkForLisp: hasLisp,
 		modScore: modScore,
@@ -16,10 +16,10 @@ window.SlaveStatsChecker = (function() {
 	}
 
 	/* call as SlaveStatsChecker.modScore() */
-/**
- * @param {App.Entity.SlaveState} slave
- * @returns {number} // I think
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * @returns {number} // I think
+	 */
 	function modScore(slave) {
 		const V = State.variables;
 		V.piercingScore = piercingScore(slave);
@@ -28,64 +28,64 @@ window.SlaveStatsChecker = (function() {
 	}
 
 	/* call as SlaveStatsChecker.piercingScore() */
-/**
- * @param {App.Entity.SlaveState} slave
- * @returns {number}
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * @returns {number}
+	 */
 	function piercingScore(slave) {
 		let score = 0;
 
 		if (slave.earPiercing > 0) {
-			score += slave.earPiercing*0.75 - 0.5;
+			score += slave.earPiercing * 0.75 - 0.5;
 		}
 		if (slave.nosePiercing > 0) {
-			score += slave.nosePiercing*0.75 - 0.5;
+			score += slave.nosePiercing * 0.75 - 0.5;
 		}
 		if (slave.eyebrowPiercing > 0) {
-			score += slave.eyebrowPiercing*0.75 - 0.5;
+			score += slave.eyebrowPiercing * 0.75 - 0.5;
 		}
 		if (slave.navelPiercing > 0) {
-			score += slave.navelPiercing*0.75 - 0.5;
+			score += slave.navelPiercing * 0.75 - 0.5;
 		}
 		if (slave.corsetPiercing > 0) {
-			score += slave.corsetPiercing*0.75 + 0.5;
+			score += slave.corsetPiercing * 0.75 + 0.5;
 		}
 		if (slave.nipplesPiercing > 0) {
-			score += slave.nipplesPiercing*0.75 - 0.25;
+			score += slave.nipplesPiercing * 0.75 - 0.25;
 		}
 		if (slave.areolaePiercing > 0) {
-			score += slave.areolaePiercing*0.75 + 0.5;
+			score += slave.areolaePiercing * 0.75 + 0.5;
 		}
 		if (slave.lipsPiercing > 0) {
-			score += slave.lipsPiercing*0.75 - 0.25;
+			score += slave.lipsPiercing * 0.75 - 0.25;
 		}
-		if (slave.tonguePiercing > 0 ) {
-			score += slave.tonguePiercing*0.75 - 0.25;
+		if (slave.tonguePiercing > 0) {
+			score += slave.tonguePiercing * 0.75 - 0.25;
 		}
 		if (slave.clitPiercing === 3) /* smart piercing */ {
 			score += 1.25;
 		} else if (slave.clitPiercing > 0) {
-			score += slave.clitPiercing*0.75 - 0.25;
+			score += slave.clitPiercing * 0.75 - 0.25;
 		}
 
 		if (slave.vaginaPiercing > 0) {
-			score += slave.vaginaPiercing*0.75 - 0.25;
+			score += slave.vaginaPiercing * 0.75 - 0.25;
 		}
 		if (slave.dickPiercing > 0) {
-			score += slave.dickPiercing*0.75 - 0.25;
+			score += slave.dickPiercing * 0.75 - 0.25;
 		}
 		if (slave.anusPiercing > 0) {
-			score += slave.anusPiercing*0.75 - 0.25;
+			score += slave.anusPiercing * 0.75 - 0.25;
 		}
 
 		return score;
 	}
 
 	/* call as SlaveStatsChecker.tatScore() */
-/**
- * @param {App.Entity.SlaveState} slave
- * @returns {number}
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * @returns {number}
+	 */
 	function tatScore(slave) {
 		let score = 0;
 
@@ -120,13 +120,13 @@ window.SlaveStatsChecker = (function() {
 			score += 1;
 		}
 		if (slave.bellyTat !== 0) {
-			if ((slave.preg > slave.pregData.normalBirth/1.33 && slave.pregType >= 20) || slave.belly >= 300000) {
+			if ((slave.preg > slave.pregData.normalBirth / 1.33 && slave.pregType >= 20) || slave.belly >= 300000) {
 				score += 0.75;
-			} else if ((slave.preg > slave.pregData.normalBirth/2 && slave.pregType >= 20) || (slave.preg > slave.pregData.normalBirth/1.33 && slave.pregType >= 10) || slave.belly >= 150000) {
+			} else if ((slave.preg > slave.pregData.normalBirth / 2 && slave.pregType >= 20) || (slave.preg > slave.pregData.normalBirth / 1.33 && slave.pregType >= 10) || slave.belly >= 150000) {
 				score += 1;
 			} else if (slave.belly >= 10000 || slave.bellyImplant >= 8000) {
 				score += 1;
-			} else if ((slave.preg >= slave.pregData.normalBirth/4 && slave.pregType >= 20) || (slave.preg > slave.pregData.normalBirth/4 && slave.pregType >= 10) || slave.belly >= 5000) {
+			} else if ((slave.preg >= slave.pregData.normalBirth / 4 && slave.pregType >= 20) || (slave.preg > slave.pregData.normalBirth / 4 && slave.pregType >= 10) || slave.belly >= 5000) {
 				score += 0.5;
 			} else if (slave.belly >= 1500) {
 				score += 0.25;
@@ -211,7 +211,7 @@ window.slimPass = function (slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.isStacked = function(slave) {
+window.isStacked = function (slave) {
 	return (slave.butt > 4) && (slave.boobs > 800);
 };
 
@@ -219,10 +219,10 @@ window.isStacked = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.isModded = function(slave) {
+window.isModded = function (slave) {
 	const tatScore = SlaveStatsChecker.tatScore(slave);
 	const piercingScore = SlaveStatsChecker.piercingScore(slave);
-	const modScore = piercingScore+tatScore;
+	const modScore = piercingScore + tatScore;
 
 	return ((modScore > 15) || (piercingScore > 8 && tatScore > 5));
 };
@@ -231,7 +231,7 @@ window.isModded = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.isUnmodded = function(slave) {
+window.isUnmodded = function (slave) {
 	return (!isModded(slave) && (slave.corsetPiercing === 0) && (SlaveStatsChecker.piercingScore(slave) < 3) && (SlaveStatsChecker.tatScore(slave) < 2));
 };
 
@@ -239,7 +239,7 @@ window.isUnmodded = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.isXY = function(slave) {
+window.isXY = function (slave) {
 	return (slave.dick > 0);
 };
 
@@ -247,7 +247,7 @@ window.isXY = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.isYoung = function(slave) {
+window.isYoung = function (slave) {
 	return (slave.visualAge < 30);
 };
 
@@ -255,7 +255,7 @@ window.isYoung = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.isPreg = function(slave) {
+window.isPreg = function (slave) {
 	return ((slave.bellyPreg >= 5000) || (slave.bellyImplant >= 5000));
 };
 
@@ -263,7 +263,7 @@ window.isPreg = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.isNotPreg = function(slave) {
+window.isNotPreg = function (slave) {
 	return (!isPreg(slave) && (slave.belly < 100) && (slave.weight < 30) && !setup.fakeBellies.includes(slave.bellyAccessory));
 };
 
@@ -271,7 +271,7 @@ window.isNotPreg = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.isPure = function(slave) {
+window.isPure = function (slave) {
 	return ((slave.boobsImplant === 0) && (slave.buttImplant === 0) && (slave.waist >= -95) && (slave.lipsImplant === 0) && (slave.faceImplant < 30) && (slave.bellyImplant === -1) && (Math.abs(slave.shouldersImplant) < 2) && (Math.abs(slave.hipsImplant) < 2));
 };
 
@@ -279,7 +279,7 @@ window.isPure = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.isSurgicallyImproved = function(slave) {
+window.isSurgicallyImproved = function (slave) {
 	return ((slave.boobsImplant > 0) && (slave.buttImplant > 0) && (slave.waist < -10) && (slave.lipsImplant > 0));
 };
 
@@ -287,7 +287,7 @@ window.isSurgicallyImproved = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.isFullyPotent = function(slave) {
+window.isFullyPotent = function (slave) {
 	if (!slave) {
 		return null;
 	} else if (slave.dick > 0 && slave.balls > 0 && slave.ballType !== "sterile" && slave.hormoneBalance < 100 && slave.drugs !== "hormone blockers") {
@@ -300,16 +300,19 @@ window.isFullyPotent = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.canGetPregnant = function(slave) {
+window.canGetPregnant = function (slave) {
 	if (!slave) {
 		return null;
-	} else if (slave.preg === -1) { /* contraceptives check */
+	} else if (slave.preg === -1) {
+		/* contraceptives check */
 		return false;
-	} else if (!isFertile(slave)) { /* check other fertility factors */
+	} else if (!isFertile(slave)) {
+		/* check other fertility factors */
 		return false;
 	} else if ((slave.ovaries === 1) && (canDoVaginal(slave))) {
 		return true;
-	} else if ((slave.mpreg === 1) && (canDoAnal(slave))) { /* pregmod */
+	} else if ((slave.mpreg === 1) && (canDoAnal(slave))) {
+		/* pregmod */
 		return true;
 	}
 	return false;
@@ -319,20 +322,25 @@ window.canGetPregnant = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.isFertile = function(slave) {
+window.isFertile = function (slave) {
 	if (!slave) {
 		return null;
 	}
 
-	if (slave.womb.length > 0 && slave.geneticQuirks.superfetation < 2) { /* currently pregnant without superfetation */
+	if (slave.womb.length > 0 && slave.geneticQuirks.superfetation < 2) {
+		/* currently pregnant without superfetation */
 		return false;
-	} else if (slave.broodmother > 0) { /* currently broodmother */
+	} else if (slave.broodmother > 0) {
+		/* currently broodmother */
 		return false;
-	} else if (slave.preg < -1) { /* sterile */
+	} else if (slave.preg < -1) {
+		/* sterile */
 		return false;
-	} else if (slave.pregWeek < 0) { /* postpartum */
+	} else if (slave.pregWeek < 0) {
+		/* postpartum */
 		return false;
-	} else if (slave.pubertyXX === 0) { /* pregmod start */
+	} else if (slave.pubertyXX === 0) {
+		/* pregmod start */
 		return false;
 	} else if (slave.ovaryAge >= 47) {
 		return false;
@@ -362,7 +370,7 @@ window.isFertile = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.canAchieveErection = function(slave) {
+window.canAchieveErection = function (slave) {
 	if (!slave) {
 		return null;
 	} else if (slave.dick < 7 && slave.dick > 0 && slave.drugs !== "hormone blockers" && (slave.balls > 0 ? slave.hormoneBalance < 100 : slave.hormoneBalance <= -100) && slave.ballType !== "sterile") {
@@ -375,7 +383,7 @@ window.canAchieveErection = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.canPenetrate = function(slave) {
+window.canPenetrate = function (slave) {
 	if (!slave) {
 		return null;
 	} else if (!canAchieveErection(slave)) {
@@ -392,7 +400,7 @@ window.canPenetrate = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.canSee = function(slave) {
+window.canSee = function (slave) {
 	if (!slave) {
 		return null;
 	}
@@ -403,7 +411,7 @@ window.canSee = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.canHear = function(slave) {
+window.canHear = function (slave) {
 	if (!slave) {
 		return null;
 	}
@@ -414,7 +422,7 @@ window.canHear = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.canSmell = function(slave) {
+window.canSmell = function (slave) {
 	if (!slave) {
 		return null;
 	}
@@ -425,7 +433,7 @@ window.canSmell = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.canTaste = function(slave) {
+window.canTaste = function (slave) {
 	if (!slave) {
 		return null;
 	}
@@ -436,7 +444,7 @@ window.canTaste = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.canWalk = function(slave) {
+window.canWalk = function (slave) {
 	if (!slave) {
 		return null;
 	} else if (slave.amp === 1) {
@@ -469,7 +477,7 @@ window.canWalk = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.canTalk = function(slave) {
+window.canTalk = function (slave) {
 	if (!slave) {
 		return null;
 	} else if (slave.accent > 2) {
@@ -494,7 +502,7 @@ window.canTalk = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.canDoAnal = function(slave) {
+window.canDoAnal = function (slave) {
 	if (!slave) {
 		return null;
 	} else if (slave.chastityAnus === 1) {
@@ -507,7 +515,7 @@ window.canDoAnal = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.canDoVaginal = function(slave) {
+window.canDoVaginal = function (slave) {
 	if (!slave) {
 		return null;
 	} else if (slave.vagina < 0) {
@@ -522,16 +530,16 @@ window.canDoVaginal = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.tooFatSlave = function(slave) {
+window.tooFatSlave = function (slave) {
 	if (!slave) {
 		return null;
-	} else if (slave.weight > 190+(slave.muscles/5) && slave.physicalAge >= 18) {
+	} else if (slave.weight > 190 + (slave.muscles / 5) && slave.physicalAge >= 18) {
 		return true;
-	} else if (slave.weight > 130+(slave.muscles/20) && slave.physicalAge <= 3) {
+	} else if (slave.weight > 130 + (slave.muscles / 20) && slave.physicalAge <= 3) {
 		return true;
-	} else if (slave.weight > 160+(slave.muscles/15) && slave.physicalAge <= 12) {
+	} else if (slave.weight > 160 + (slave.muscles / 15) && slave.physicalAge <= 12) {
 		return true;
-	} else if (slave.weight > 185+(slave.muscles/10) && slave.physicalAge < 18) {
+	} else if (slave.weight > 185 + (slave.muscles / 10) && slave.physicalAge < 18) {
 		return true;
 	}
 	return false;
@@ -541,16 +549,16 @@ window.tooFatSlave = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.tooBigBreasts = function(slave) {
+window.tooBigBreasts = function (slave) {
 	if (!slave) {
 		return null;
-	} else if (slave.boobs > 30000+(slave.muscles*100) && slave.physicalAge >= 18) {
+	} else if (slave.boobs > 30000 + (slave.muscles * 100) && slave.physicalAge >= 18) {
 		return true;
-	} else if (slave.boobs > 5000+(slave.muscles*10) && slave.physicalAge <= 3) {
+	} else if (slave.boobs > 5000 + (slave.muscles * 10) && slave.physicalAge <= 3) {
 		return true;
-	} else if (slave.boobs > 10000+(slave.muscles*20) && slave.physicalAge <= 12) {
+	} else if (slave.boobs > 10000 + (slave.muscles * 20) && slave.physicalAge <= 12) {
 		return true;
-	} else if (slave.boobs > 20000+(slave.muscles*50) && slave.physicalAge < 18) {
+	} else if (slave.boobs > 20000 + (slave.muscles * 50) && slave.physicalAge < 18) {
 		return true;
 	}
 	return false;
@@ -560,16 +568,16 @@ window.tooBigBreasts = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.tooBigBelly = function(slave) {
+window.tooBigBelly = function (slave) {
 	if (!slave) {
 		return null;
-	} else if (slave.belly >= 450000+(slave.muscles*2000) && slave.physicalAge >= 18) {
+	} else if (slave.belly >= 450000 + (slave.muscles * 2000) && slave.physicalAge >= 18) {
 		return true;
-	} else if (slave.belly >= 350000+(slave.muscles*1000) && slave.physicalAge >= 13) {
+	} else if (slave.belly >= 350000 + (slave.muscles * 1000) && slave.physicalAge >= 13) {
 		return true;
-	} else if (slave.belly >= 30000+(slave.muscles*500) && slave.physicalAge <= 3) {
+	} else if (slave.belly >= 30000 + (slave.muscles * 500) && slave.physicalAge <= 3) {
 		return true;
-	} else if (slave.belly >= 150000+(slave.muscles*800) && slave.physicalAge <= 12) {
+	} else if (slave.belly >= 150000 + (slave.muscles * 800) && slave.physicalAge <= 12) {
 		return true;
 	}
 	return false;
@@ -579,14 +587,14 @@ window.tooBigBelly = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.tooBigBalls = function(slave) {
+window.tooBigBalls = function (slave) {
 	if (!slave) {
 		return null;
-	} else if (slave.balls >= 30+(slave.muscles*.3) && slave.physicalAge <= 3) {
+	} else if (slave.balls >= 30 + (slave.muscles * .3) && slave.physicalAge <= 3) {
 		return true;
-	} else if (slave.balls >= 60+(slave.muscles*.5) && slave.physicalAge <= 12) {
+	} else if (slave.balls >= 60 + (slave.muscles * .5) && slave.physicalAge <= 12) {
 		return true;
-	} else if (slave.balls >= 90+(slave.muscles*.7)) {
+	} else if (slave.balls >= 90 + (slave.muscles * .7)) {
 		return true;
 	}
 	return false;
@@ -596,14 +604,14 @@ window.tooBigBalls = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.tooBigDick = function(slave) {
+window.tooBigDick = function (slave) {
 	if (!slave) {
 		return null;
-	} else if (slave.dick >= 20+(slave.muscles*.1) && slave.physicalAge <= 3 && slave.dick !== 0) {
+	} else if (slave.dick >= 20 + (slave.muscles * .1) && slave.physicalAge <= 3 && slave.dick !== 0) {
 		return true;
-	} else if (slave.dick >= 45+(slave.muscles*.3) && slave.physicalAge <= 12) {
+	} else if (slave.dick >= 45 + (slave.muscles * .3) && slave.physicalAge <= 12) {
 		return true;
-	} else if (slave.dick >= 68+(slave.muscles*.4)) {
+	} else if (slave.dick >= 68 + (slave.muscles * .4)) {
 		return true;
 	}
 	return false;
@@ -613,7 +621,7 @@ window.tooBigDick = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.tooBigButt = function(slave) {
+window.tooBigButt = function (slave) {
 	if (!slave) {
 		return null;
 	} else if (slave.butt > 10 && slave.physicalAge <= 3) {
@@ -628,8 +636,10 @@ window.tooBigButt = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.isVegetable = function(slave) {
+window.isVegetable = function (slave) {
 	slave = slave || State.variables.activeSlave;
-	if (!slave) { return false; }
+	if (!slave) {
+		return false;
+	}
 	return (slave.fetish === "mindbroken");
 };
diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js
index bc6d578d4fffbb77985935fb592d19b3198837dd..b9c5db589108979ceee673a6a796fe3ac53549b4 100644
--- a/src/js/slaveSummaryWidgets.js
+++ b/src/js/slaveSummaryWidgets.js
@@ -331,9 +331,9 @@ window.SlaveSummaryUncached = (function () {
 		return r;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_devotion(slave) {
 		if (slave.fetish === "mindbroken") {
 			r += `<span class="red">MB</span>`;
@@ -385,9 +385,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_devotion(slave) {
 		if (slave.fetish === "mindbroken") {
 			r += `<span class="red">Mindbroken.</span>`;
@@ -439,9 +439,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_rules(slave) {
 		switch (slave.livingRules) {
 			case "luxurious":
@@ -534,9 +534,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_rules(slave) {
 		r += `Living standard: ${slave.livingRules}. `;
 		if (canTalk(slave)) {
@@ -548,9 +548,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `Release rules: ${slave.releaseRules}. `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_weight(slave) {
 		if (slave.weight < -95) {
 			r += `<strong><span class="red">W---${V.summaryStats? `[${slave.weight}]` : ''}</span></strong>`;
@@ -600,9 +600,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_weight(slave) {
 		if (slave.weight < -95) {
 			r += `<span class="red">Emaciated${V.summaryStats ? `[${slave.weight}]`: ''}.</span>`;
@@ -652,9 +652,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_diet(slave) {
 		r += `<span class="teal">`;
 		switch (slave.diet) {
@@ -688,7 +688,7 @@ window.SlaveSummaryUncached = (function () {
 			case "fertility":
 				r += `<strong>Di:F+</strong>`;
 				break;
-			
+
 		}
 		r += `</span> `;
 		r += `<span class="cyan">`;
@@ -706,9 +706,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `</span> `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_diet(slave) {
 		r += `<span class="teal">`;
 		switch (slave.diet) {
@@ -742,7 +742,7 @@ window.SlaveSummaryUncached = (function () {
 			case "fertility":
 				r += `Fertility.`;
 				break;
-			
+
 		}
 		r += `</span> `;
 		if (slave.dietCum === 2) {
@@ -759,9 +759,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_health(slave) {
 		if (slave.health < -20) {
 			r += `<strong><span class="red">H${V.summaryStats? `[${slave.health}]` : ''}</span></strong>`;
@@ -773,9 +773,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_health(slave) {
 		if (slave.health < -90) {
 			r += `<span class="red">On the edge of death${V.summaryStats? `[${slave.health}]` : ''}.</span>`;
@@ -795,9 +795,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_drugs(slave) {
 		r += `<span class="tan">`;
 		switch (slave.drugs) {
@@ -900,7 +900,7 @@ window.SlaveSummaryUncached = (function () {
 			case "growth stimulants":
 				r += `<strong>Dr:groStim</strong>`;
 				break;
-			
+
 		}
 		r += `</span> `;
 		r += `<span class="lightgreen">`;
@@ -980,9 +980,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `</span> `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_drugs(slave) {
 		if ((slave.drugs !== "no drugs") && (slave.drugs !== "none")) {
 			r += `<span class="tan">On ${slave.drugs}.</span> `;
@@ -1090,9 +1090,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `</span> `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_race(slave) {
 		switch (slave.race) {
 			case "white":
@@ -1138,9 +1138,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_race(slave) {
 		switch (slave.race) {
 			case "white":
@@ -1186,9 +1186,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_nationality(slave) {
 		r += `<span class="tan">`;
 		switch (slave.nationality) {
@@ -1863,9 +1863,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `</span> `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_nationality(slave) {
 		r += `<span class="tan">`;
 		switch (slave.nationality) {
@@ -1901,9 +1901,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `</span> `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_skin(slave) {
 		r += `<span class="pink">`;
 		switch (slave.skin) {
@@ -1964,9 +1964,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `</span> `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_genitals(slave) {
 		if (slave.dick > 0) {
 			r += `<span class="pink">`;
@@ -2025,9 +2025,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `</span> `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_genitals(slave) {
 		if (slave.dick > 0) {
 			r += `<span class="pink">`;
@@ -2086,9 +2086,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `</span> `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_age(slave) {
 		r += `<span class="pink">`;
 		if (V.showAgeDetail === 1) {
@@ -2115,9 +2115,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_face(slave) {
 		if (slave.face < -95) {
 			r += `<span class="red">Face---${V.summaryStats? `[${slave.face}]` : ''}</span>`;
@@ -2137,9 +2137,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_eyes(slave) {
 		if (slave.eyes === -2) {
 			r += `<span class="red">Blind</span>`;
@@ -2149,9 +2149,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_ears(slave) {
 		if (slave.hears === -2) {
 			r += `<span class="red">Deaf</span>`;
@@ -2161,9 +2161,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_lips(slave) {
 		if (slave.lips > 95) {
 			r += `Facepussy`;
@@ -2181,9 +2181,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_teeth(slave) {
 		if (slave.teeth === "crooked") {
 			r += `<span class="yellow">Cr Teeth</span>`;
@@ -2205,9 +2205,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_muscles(slave) {
 		if (slave.muscles > 95) {
 			r += `Musc++${V.summaryStats? `[${slave.muscles}]`: ''}`;
@@ -2235,9 +2235,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_limbs(slave) {
 		if (slave.amp !== 0) {
 			if (slave.amp === -1) {
@@ -2264,9 +2264,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `</span> `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_voice(slave) {
 		if (slave.voice === 0) {
 			r += `<span class="red">Mute</span>`;
@@ -2284,9 +2284,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_tits_ass(slave) {
 		r += `<span class="pink">`;
 		if ((slave.boobs >= 12000) && (slave.butt > 9)) {
@@ -2319,9 +2319,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `</span> `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_hips(slave) {
 		r += `<span class="red">`;
 		if (slave.hips < -1) {
@@ -2360,9 +2360,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `</span> `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_waist(slave) {
 		if (slave.waist > 95) {
 			r += `<span class="red">Wst---${V.summaryStats? `[${slave.waist}]` : ''}</span>`;
@@ -2382,9 +2382,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_implants(slave) {
 		r += `<span class="pink">`;
 		if ((slave.boobsImplant === 0) && (slave.buttImplant === 0) && (slave.waist >= -95) && (slave.lipsImplant === 0) && (slave.faceImplant <= 5) && (slave.bellyImplant === -1)) {
@@ -2395,9 +2395,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_lactation(slave) {
 		if (slave.lactation === 1) {
 			r += `Lact`;
@@ -2407,9 +2407,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_mods(slave) {
 		V.modScore = SlaveStatsChecker.modScore(slave);
 		if (slave.corsetPiercing === 0 && V.piercingScore < 3 && V.tatScore < 2) {
@@ -2427,9 +2427,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_age(slave) {
 		r += `<span class="pink">`;
 		if (V.showAgeDetail === 1) {
@@ -2480,9 +2480,9 @@ window.SlaveSummaryUncached = (function () {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_face(slave) {
 		if (slave.face < -95) {
 			r += `<span class="red">Very ugly${V.summaryStats? `[${slave.face}]`: ''}</span>`;
@@ -2502,9 +2502,9 @@ window.SlaveSummaryUncached = (function () {
 		r += ` ${slave.faceShape} face. `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_eyes(slave) {
 		if (slave.eyes <= -2) {
 			r += `<span class="red">Blind.</span>`;
@@ -2514,9 +2514,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_ears(slave) {
 		if (slave.hears <= -2) {
 			r += `<span class="red">Deaf.</span>`;
@@ -2526,9 +2526,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_lips(slave) {
 		if (slave.lips > 95) {
 			r += `Facepussy${V.summaryStats? `[${slave.lips}]`: ''}.`;
@@ -2546,9 +2546,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_teeth(slave) {
 		if (slave.teeth === "crooked") {
 			r += `<span class="yellow">Crooked teeth.</span>`;
@@ -2570,9 +2570,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_muscles(slave) {
 		if (slave.muscles > 95) {
 			r += `Hugely muscular${V.summaryStats? `[${slave.muscles}]` : ''}.`;
@@ -2600,9 +2600,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_limbs(slave) {
 		if (slave.amp !== 0) {
 			if (slave.amp === -1) {
@@ -2629,9 +2629,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `</span> `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_voice(slave) {
 		if (slave.voice === 0) {
 			r += `<span class="red">Mute.</span>`;
@@ -2649,9 +2649,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_tits_ass(slave) {
 		r += `<span class="pink">`;
 		if ((slave.boobs >= 12000) && (slave.butt > 9)) {
@@ -2684,9 +2684,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `</span> `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_hips(slave) {
 		r += `<span class="red">`;
 		if (slave.hips < -1) {
@@ -2725,9 +2725,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `</span> `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_waist(slave) {
 		if (slave.waist > 95) {
 			r += `<span class="red">Masculine waist${V.summaryStats? `[${slave.waist}]`: ''}.</span>`;
@@ -2747,9 +2747,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_implants(slave) {
 		r += `<span class="pink">`;
 		if ((slave.boobsImplant !== 0) || (slave.buttImplant !== 0) || (slave.lipsImplant !== 0) || (slave.bellyImplant !== -1)) {
@@ -2762,9 +2762,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_lactation(slave) {
 		if (slave.lactation === 1) {
 			r += `Lactating naturally.`;
@@ -2774,9 +2774,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_mods(slave) {
 		V.modScore = SlaveStatsChecker.modScore(slave);
 		if (slave.corsetPiercing === 0 && V.piercingScore < 3 && V.tatScore < 2) {
@@ -2791,9 +2791,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_intelligence(slave) {
 		const intelligence = slave.intelligence + slave.intelligenceImplant;
 		if (slave.fetish === "mindbroken") {
@@ -2852,9 +2852,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_sex_skills(slave) {
 		let _SSkills = slave.skill.anal + slave.skill.oral;
 		r += `<span class="aquamarine">`;
@@ -2911,9 +2911,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_prestige(slave) {
 		if (slave.prestige > 0) {
 			r += `<span class="green">`;
@@ -2927,10 +2927,10 @@ window.SlaveSummaryUncached = (function () {
 			r += `</span> `;
 		}
 	}
-
-/**
- * @param {App.Entity.SlaveState} slave
- */
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_porn_prestige(slave) {
 		if (slave.pornPrestige > 0) {
 			r += `<span class="green">`;
@@ -2945,9 +2945,9 @@ window.SlaveSummaryUncached = (function () {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_intelligence(slave) {
 		const intelligence = slave.intelligence + slave.intelligenceImplant;
 		if (slave.fetish === "mindbroken") {
@@ -3006,9 +3006,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_sex_skills(slave) {
 		let _SSkills = (slave.skill.anal + slave.skill.oral);
 		r += `<span class="aquamarine">`;
@@ -3051,9 +3051,9 @@ window.SlaveSummaryUncached = (function () {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_prestige(slave) {
 		if (slave.prestige > 0) {
 			r += `<span class="green">`;
@@ -3068,9 +3068,9 @@ window.SlaveSummaryUncached = (function () {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_porn_prestige(slave) {
 		if (slave.pornPrestige > 0) {
 			r += `<span class="green">`;
@@ -3085,9 +3085,9 @@ window.SlaveSummaryUncached = (function () {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_fetish(slave) {
 		r += `<span class="lightcoral">`;
 		switch (slave.fetish) {
@@ -3182,9 +3182,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `</span> `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_attraction(slave) {
 		if (slave.attrXY <= 5) {
 			r += `<span class="red">XY---${V.summaryStats? `[${slave.attrXY}]`: ''}</span>`;
@@ -3242,9 +3242,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_smart_fetish(slave) {
 		if (slave.fetishKnown === 1) {
 			if (slave.clitSetting === "off") {
@@ -3320,15 +3320,15 @@ window.SlaveSummaryUncached = (function () {
 				case "none":
 					r += `SP:none`;
 					break;
-				
+
 			}
 		}
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_smart_attraction(slave) {
 		if (slave.attrKnown === 1) {
 			if (slave.clitSetting === "women") {
@@ -3370,9 +3370,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_behavior_flaw(slave) {
 		r += `<span class="red">`;
 		switch (slave.behavioralFlaw) {
@@ -3410,9 +3410,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `</span> `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_sex_flaw(slave) {
 		switch (slave.sexualFlaw) {
 			case "hates oral":
@@ -3476,9 +3476,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_behavior_quirk(slave) {
 		r += `<span class="green">`;
 		switch (slave.behavioralQuirk) {
@@ -3516,9 +3516,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_sex_quirk(slave) {
 		switch (slave.sexualQuirk) {
 			case "gagfuck queen":
@@ -3555,9 +3555,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `</span> `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_fetish(slave) {
 		r += `<span class="lightcoral">`;
 		switch (slave.fetish) {
@@ -3649,9 +3649,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `</span> `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_attraction(slave) {
 		if (slave.attrXY <= 5) {
 			r += `<span class="red">Disgusted by men${V.summaryStats? `[${slave.attrXY}]` : ''},</span> `;
@@ -3707,9 +3707,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_smart_fetish(slave) {
 		if (slave.fetishKnown === 1) {
 			if (slave.clitSetting === "off") {
@@ -3782,15 +3782,15 @@ window.SlaveSummaryUncached = (function () {
 				case "none":
 					r += `SP: none.`;
 					break;
-				
+
 			}
 		}
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_smart_attraction(slave) {
 		if (slave.attrKnown === 1) {
 			if ((slave.attrXX < 100) && (slave.clitSetting === "women")) {
@@ -3808,9 +3808,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_behavior_flaw(slave) {
 		r += `<span class="red">`;
 		switch (slave.behavioralFlaw) {
@@ -3848,9 +3848,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `</span> `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_sex_flaw(slave) {
 		switch (slave.sexualFlaw) {
 			case "hates oral":
@@ -3914,9 +3914,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_behavior_quirk(slave) {
 		r += `<span class="green">`;
 		switch (slave.behavioralQuirk) {
@@ -3954,9 +3954,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_sex_quirk(slave) {
 		switch (slave.sexualQuirk) {
 			case "gagfuck queen":
@@ -3993,9 +3993,9 @@ window.SlaveSummaryUncached = (function () {
 		r += `</span> `;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_extended_family(slave) {
 		let handled = 0;
 		if (slave.mother > 0) {
@@ -4113,9 +4113,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_legacy_family(slave) {
 		if (slave.relation !== 0) {
 			const _ssj = V.slaves.findIndex(function (s) {
@@ -4147,18 +4147,18 @@ window.SlaveSummaryUncached = (function () {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_clone(slave) {
 		if (slave.clone !== 0) {
 			r += ` Clone`;
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function short_rival(slave) {
 		if (slave.rivalry !== 0) {
 			r += `&nbsp;&nbsp;&nbsp;&nbsp;`;
@@ -4179,9 +4179,9 @@ window.SlaveSummaryUncached = (function () {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_extended_family(slave) {
 		let handled = 0;
 		if (slave.mother > 0) {
@@ -4312,9 +4312,9 @@ window.SlaveSummaryUncached = (function () {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_legacy_family(slave) {
 		if (slave.relation !== 0) {
 			const _ssj = V.slaves.findIndex(function (s) {
@@ -4354,18 +4354,18 @@ window.SlaveSummaryUncached = (function () {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_clone(slave) {
 		if (slave.clone !== 0) {
 			r += ` <span class="skyblue">Clone of ${slave.clone}.</span>`;
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_rival(slave) {
 		if (slave.rivalry !== 0) {
 			r += `&nbsp;&nbsp;&nbsp;&nbsp;`;
@@ -4385,9 +4385,9 @@ window.SlaveSummaryUncached = (function () {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_clothes(slave) {
 		switch (slave.clothes) {
 			case "attractive lingerie":
@@ -4715,9 +4715,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_collar(slave) {
 		switch (slave.collar) {
 			case "uncomfortable leather":
@@ -4783,14 +4783,14 @@ window.SlaveSummaryUncached = (function () {
 			case "porcelain mask":
 				r += `Porcelain mask.`;
 				break
-			
+
 		}
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_belly(slave) {
 		switch (slave.bellyAccessory) {
 			case "shapewear":
@@ -4814,14 +4814,14 @@ window.SlaveSummaryUncached = (function () {
 			case "an extreme corset":
 				r += `Extreme corsetage.`;
 				break;
-			
+
 		}
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_legs(slave) {
 		if (slave.legAccessory === "short stockings") {
 			r += `Short stockings.`;
@@ -4831,9 +4831,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_shoes(slave) {
 		if (slave.shoes === "heels") {
 			r += `Heels.`;
@@ -4851,9 +4851,9 @@ window.SlaveSummaryUncached = (function () {
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_chastity(slave) {
 		if (slave.chastityAnus === 1 && slave.chastityPenis === 1 && slave.chastityVagina === 1) {
 			r += `Full chastity.`;
@@ -4870,9 +4870,9 @@ window.SlaveSummaryUncached = (function () {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_vaginal_acc(slave) {
 		if (slave.vaginalAttachment !== "vibrator") {
 			switch (slave.vaginalAccessory) {
@@ -4900,7 +4900,7 @@ window.SlaveSummaryUncached = (function () {
 				case "long, huge dildo":
 					r += `Long and wide vaginal dildo.`;
 					break;
-				
+
 			}
 		}
 		r += " ";
@@ -4909,15 +4909,15 @@ window.SlaveSummaryUncached = (function () {
 				case "vibrator":
 					r += `Vibrating dildo.`;
 					break;
-				
+
 			}
 			r += " ";
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_dick_acc(slave) {
 		switch (slave.dickAccessory) {
 			case "sock":
@@ -4929,14 +4929,14 @@ window.SlaveSummaryUncached = (function () {
 			case "smart bullet vibrator":
 				r += `Smart frenulum bullet vibrator.`;
 				break;
-			
+
 		}
 		r += " ";
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function long_buttplug(slave) {
 		switch (slave.buttplug) {
 			case "plug":
@@ -4957,7 +4957,7 @@ window.SlaveSummaryUncached = (function () {
 			case "long, huge plug":
 				r += `Enormous buttplug.`;
 				break;
-			
+
 		}
 		r += " ";
 		switch (slave.buttplugAttachment) {
@@ -4970,13 +4970,13 @@ window.SlaveSummaryUncached = (function () {
 			case "fox tail":
 				r += `Attached fox tail. `;
 				break;
-			
+
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function rules_assistant(slave) {
 		if (slave.useRulesAssistant === 0) {
 			r += `<span class="lightgreen">RA-Exempt</span> `;
@@ -4985,9 +4985,9 @@ window.SlaveSummaryUncached = (function () {
 		}
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
 	function origins(slave) {
 		r += `<br>`;
 		if (V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1) {
@@ -5097,13 +5097,13 @@ App.UI.slaveSummaryList = function (passageName) {
 	const V = State.variables;
 
 	const _indexed = 0;
-/**
- * @type {App.Entity.SlaveState[]} */
+	/**
+	 * @type {App.Entity.SlaveState[]} */
 	const slaves = V.slaves;
 
 	V.assignTo = passageName; // would be passed to the "Assign" passage
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} s
 	 * @returns {boolean}
 	 */
@@ -5112,7 +5112,7 @@ App.UI.slaveSummaryList = function (passageName) {
 			(!App.UI.PassageSlaveFilers.hasOwnProperty(passageName) || App.UI.PassageSlaveFilers[passageName](s));
 	}
 
-/**
+	/**
 	 * A simple macro which allows to create wrapping html elements with dynamic IDs.
 	 *
 	 * idea blatantly robbed from the spanMacroJS.tw but expanded to a more generic case, allowing <div>,
@@ -5746,7 +5746,7 @@ App.UI.slaveSummaryList = function (passageName) {
 				res.push(dividerAndImage(_Slave));
 				res.push(`[[${_slaveName}|Slave Interact][$activeSlave = $slaves[${_ssi}]]]`);
 				break;
-			
+
 		}
 
 		SlaveStatClamp(_Slave);
@@ -5771,8 +5771,8 @@ App.UI.slaveSummaryList = function (passageName) {
 		}
 		res.push('. ');
 
-	/**
- * @type {string[]} */
+		/**
+		 * @type {string[]} */
 		const assignments = [];
 		if ((V.displayAssignments === 1) && (passageName === "Main") && (_Slave.ID !== V.HeadGirl.ID) && (_Slave.ID !== V.Recruiter.ID) && (_Slave.ID !== V.Bodyguard.ID)) {
 			if (_Slave.assignment !== "rest") {
@@ -5851,8 +5851,8 @@ App.UI.slaveSummaryList = function (passageName) {
 				V.returnTo = passageName;
 
 				res.push('<br>Transfer to: ');
-			/**
- * @type {string[]} */
+				/**
+				 * @type {string[]} */
 				const transfers = [];
 				if (_Slave.assignment !== "rest" && _Slave.assignment !== "please you" && _Slave.assignment !== "take classes" && _Slave.assignment !== "be a servant" && _Slave.assignment !== "whore" && _Slave.assignment !== "serve the public" && _Slave.assignment !== "get milked" && _Slave.assignment !== "stay confined") {
 					transfers.push(`<<link "Penthouse" "Main">><<= removeJob($slaves[${_ssi}], $slaves[${_ssi}].assignment)>><</link>>`);
@@ -6215,7 +6215,7 @@ App.UI.slaveSummaryList = function (passageName) {
 				res.push(`<br>${ V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1}` ? '&nbsp;&nbsp;&nbsp;&nbsp;' : '');
 				res.push(`[[Make her the main course|Dinner Party Execution][$activeSlave = $slaves[${_ssi}]]]`);
 				break;
-			
+
 		}
 	}
 	return res.join("");
diff --git a/src/js/utilJS.js b/src/js/utilJS.js
index 6dce7b69eed70334f9d30de5414d12a0180646a8..ca6a9cb5c74b85ae748df4241d481cf829c564c3 100644
--- a/src/js/utilJS.js
+++ b/src/js/utilJS.js
@@ -54,7 +54,7 @@
  *
  * There's also limitHeight which you're not using. It's basically limitMult in different units.
  */
-window.Height = (function() {
+window.Height = (function () {
 	"use strict";
 
 	// Global configuration (for different game modes/options/types)
@@ -66,9 +66,14 @@ window.Height = (function() {
 	let maxHeight = 999;
 
 	// Configuration method for the above values
-	const _config = function(conf) {
+	const _config = function (conf) {
 		if (_.isUndefined(conf)) {
-			return {limitMult: [minMult, maxMult], limitHeight: [minHeight, maxHeight], skew: skew, spread: spread};
+			return {
+				limitMult: [minMult, maxMult],
+				limitHeight: [minHeight, maxHeight],
+				skew: skew,
+				spread: spread
+			};
 		}
 		if (_.isFinite(conf.skew)) {
 			skew = Math.clamp(conf.skew, -1000, 1000);
@@ -86,72 +91,462 @@ window.Height = (function() {
 			minHeight = Math.min(conf.limitHeight[0], conf.limitHeight[1]);
 			maxHeight = Math.max(conf.limitHeight[0], conf.limitHeight[1]);
 		}
-		return {limitMult: [minMult, maxMult], limitHeight: [minHeight, maxHeight], skew: skew, spread: spread};
+		return {
+			limitMult: [minMult, maxMult],
+			limitHeight: [minHeight, maxHeight],
+			skew: skew,
+			spread: spread
+		};
 	};
 
 	/* if you can find an average for an undefined, add it in! */
 	const xxMeanHeight = {
-		"Afghan": 155.08, "Albanian": 161.77, "Algerian": 159.09, "American.asian": 158.4, "American.black": 163.6, "American.latina": 158.9, "American.white": 165, "American": 163.54,
-		"Andorran": 162.90, "Angolan": 157.31, "Antiguan": 160.65, "Argentinian": 159.18, "Armenian": 158.09, "Aruban": 158, "Australian": 165.86, "Austrian": 164.62, "Azerbaijani": 158.25,
-		"Bahamian": 160.68, "Bahraini": 156.69, "Bangladeshi": 150.79, "Barbadian": 165.28, "Belarusian": 166.35, "Belgian": 165.49, "Belizean": 156.88, "Beninese": 156.16, "Bermudian": 160.69,
-		"Bhutanese": 153.63, "Bissau-Guinean": 158.24, "Bolivian": 153.89, "Bosnian": 165.85, "Brazilian": 160.86, "British": 164.40, "Bruneian": 153.98, "Bulgarian": 164.80,
-		"Burkinabé": 160.19, "Burmese": 154.37, "Burundian": 154.02, "Cambodian": 152.91, "Cameroonian": 158.82, "Canadian": 163.91, "Cape Verdean": 161.65, "Catalan": 163.4,
-		"Central African": 158.04, "Chadian": 160.17, "Chilean": 159.36, "Chinese": 159.71, "Colombian": 156.85, "Comorian": 155.58, "Congolese": 157.57, "a Cook Islander": 163.19, "Costa Rican": 156.37,
-		"Croatian": 165.63, "Cuban": 157.98, "Curaçaoan": 158, "Cypriot": 162.27, "Czech": 168.46, "Danish": 167.21, "Djiboutian": 156.11, "Dominican": 159.03, "Dominiquais": 164.34, "Dutch": 168.72, "East Timorese": 151.15,
-		"Ecuadorian": 154.23, "Egyptian": 157.33, "Emirati": 158.68, "Equatoguinean": 157.33, "Eritrean": 156.39, "Estonian": 168.67, "Ethiopian": 155.71, "Fijian": 161.69, "Filipina": 149.60,
-		"Finnish": 165.90, "French Guianan": 157, "French Polynesian": 164.52, "French": 164.88, "Gabonese": 158.84, "Gambian": 160.93, "Georgian": 162.98, "German": 165.86, "Ghanan": 157.91,
-		"Greek": 164.87, "Greenlandic": 161.55, "Grenadian": 164.51, "Guamanian": 153.7, "Guatemalan": 149.39, "Guinean": 157.80, "Guyanese": 157.92, "Haitian": 158.72, "Honduran": 153.84, "Hungarian": 163.66,
-		"I-Kiribati": 157.00, "Icelandic": 165.95, "Indian": 152.59, "Indonesian": 152.80, "Iranian": 159.67, "Iraqi": 158.67, "Irish": 165.11, "Israeli": 161.80, "Italian": 164.61, "Ivorian": 158.07,
-		"Jamaican": 163.12, "Japanese": 158.31, "Jordanian": 158.83, "Kazakh": 158.58, "Kenyan": 158.16, "Kittitian": 159.20, "Korean": 160.65, "Kosovan": 165.7, "Kurdish": 165, "Kuwaiti": 159.43,
-		"Kyrgyz": 159.35, "Laotian": 151.28, "Latvian": 169.80, "Lebanese": 162.43, "Liberian": 157.3, "Libyan": 162.08, "a Liechtensteiner": 164.3, "Lithuanian": 166.61, "Luxembourgian": 164.43,
-		"Macedonian": 159.75, "Malagasy": 151.18, "Malawian": 154.40, "Malaysian": 156.30, "Maldivian": 155.02, "Malian": 160.47, "Maltese": 160.85, "Marshallese": 151.31, "Mauritanian": 157.72,
-		"Mauritian": 157.24, "Mexican": 156.85, "Micronesian": 156.09, "Moldovan": 163.24, "Monégasque": 164.61, "Mongolian": 158.22, "Montenegrin": 164.86, "Moroccan": 157.82, "Mosotho": 155.71,
-		"Motswana": 161.38, "Mozambican": 153.96, "Namibian": 158.78, "Nauruan": 153.98, "Nepalese": 150.86, "New Caledonian": 158.0, "a New Zealander": 164.94, "Ni-Vanuatu": 158.17, "Nicaraguan": 154.39, "Nigerian": 156.32,
-		"Nigerien": 158.25, "Niuean": 164.80, "Norwegian": 165.56, "Omani": 157.19, "Pakistani": 153.84, "Palauan": 156.22, "Palestinian": 158.75, "Panamanian": 155.47, "Papua New Guinean": 154.87,
-		"Paraguayan": 159.86, "Peruvian": 152.93, "Polish": 164.59, "Portuguese": 163.04, "Puerto Rican": 159.20, "Qatari": 159.38, "Romanian": 162.73, "Russian": 165.27, "Rwandan": 154.79, "Sahrawi": 157.82,
-		"Saint Lucian": 162.31, "Salvadoran": 154.55, "Sammarinese": 164.61, "Samoan": 161.97, "São Toméan": 158.91, "Saudi": 155.88, "Scottish": 163, "Senegalese": 162.52, "Serbian": 167.69,
-		"Seychellois": 162.08, "Sierra Leonean": 156.60, "Singaporean": 160.32, "Slovak": 167.47, "Slovene": 166.05, "a Solomon Islander": 154.42, "Somali": 156.06, "South African": 158.03,
-		"South Sudanese": 169.0, "Spanish": 163.40, "Sri Lankan": 154.56, "Sudanese": 156.04, "Surinamese": 160.66, "Swazi": 158.64, "Swedish": 165.70, "Swiss": 163.45, "Syrian": 158.65, "Taiwanese": 161.45,
-		"Tajik": 157.33, "Tanzanian": 156.6, "Thai": 157.87, "Tibetan": 158.75, "Togolese": 158.30, "Tongan": 165.52, "Trinidadian": 160.64, "Tunisian": 160.35, "Turkish": 160.50, "Turkmen": 161.73,
-		"Tuvaluan": 158.10, "Ugandan": 156.72, "Ukrainian": 166.34, "Uruguayan": 162.13, "Uzbek": 157.82, "Vatican": 162.5, "Venezuelan": 157.44, "Vietnamese": 153.59, "Vincentian": 160.70, "Yemeni": 153.97,
-		"Zairian": 155.25, "Zambian": 155.82, "Zimbabwean": 158.22,
+		"Afghan": 155.08,
+		"Albanian": 161.77,
+		"Algerian": 159.09,
+		"American.asian": 158.4,
+		"American.black": 163.6,
+		"American.latina": 158.9,
+		"American.white": 165,
+		"American": 163.54,
+		"Andorran": 162.90,
+		"Angolan": 157.31,
+		"Antiguan": 160.65,
+		"Argentinian": 159.18,
+		"Armenian": 158.09,
+		"Aruban": 158,
+		"Australian": 165.86,
+		"Austrian": 164.62,
+		"Azerbaijani": 158.25,
+		"Bahamian": 160.68,
+		"Bahraini": 156.69,
+		"Bangladeshi": 150.79,
+		"Barbadian": 165.28,
+		"Belarusian": 166.35,
+		"Belgian": 165.49,
+		"Belizean": 156.88,
+		"Beninese": 156.16,
+		"Bermudian": 160.69,
+		"Bhutanese": 153.63,
+		"Bissau-Guinean": 158.24,
+		"Bolivian": 153.89,
+		"Bosnian": 165.85,
+		"Brazilian": 160.86,
+		"British": 164.40,
+		"Bruneian": 153.98,
+		"Bulgarian": 164.80,
+		"Burkinabé": 160.19,
+		"Burmese": 154.37,
+		"Burundian": 154.02,
+		"Cambodian": 152.91,
+		"Cameroonian": 158.82,
+		"Canadian": 163.91,
+		"Cape Verdean": 161.65,
+		"Catalan": 163.4,
+		"Central African": 158.04,
+		"Chadian": 160.17,
+		"Chilean": 159.36,
+		"Chinese": 159.71,
+		"Colombian": 156.85,
+		"Comorian": 155.58,
+		"Congolese": 157.57,
+		"a Cook Islander": 163.19,
+		"Costa Rican": 156.37,
+		"Croatian": 165.63,
+		"Cuban": 157.98,
+		"Curaçaoan": 158,
+		"Cypriot": 162.27,
+		"Czech": 168.46,
+		"Danish": 167.21,
+		"Djiboutian": 156.11,
+		"Dominican": 159.03,
+		"Dominiquais": 164.34,
+		"Dutch": 168.72,
+		"East Timorese": 151.15,
+		"Ecuadorian": 154.23,
+		"Egyptian": 157.33,
+		"Emirati": 158.68,
+		"Equatoguinean": 157.33,
+		"Eritrean": 156.39,
+		"Estonian": 168.67,
+		"Ethiopian": 155.71,
+		"Fijian": 161.69,
+		"Filipina": 149.60,
+		"Finnish": 165.90,
+		"French Guianan": 157,
+		"French Polynesian": 164.52,
+		"French": 164.88,
+		"Gabonese": 158.84,
+		"Gambian": 160.93,
+		"Georgian": 162.98,
+		"German": 165.86,
+		"Ghanan": 157.91,
+		"Greek": 164.87,
+		"Greenlandic": 161.55,
+		"Grenadian": 164.51,
+		"Guamanian": 153.7,
+		"Guatemalan": 149.39,
+		"Guinean": 157.80,
+		"Guyanese": 157.92,
+		"Haitian": 158.72,
+		"Honduran": 153.84,
+		"Hungarian": 163.66,
+		"I-Kiribati": 157.00,
+		"Icelandic": 165.95,
+		"Indian": 152.59,
+		"Indonesian": 152.80,
+		"Iranian": 159.67,
+		"Iraqi": 158.67,
+		"Irish": 165.11,
+		"Israeli": 161.80,
+		"Italian": 164.61,
+		"Ivorian": 158.07,
+		"Jamaican": 163.12,
+		"Japanese": 158.31,
+		"Jordanian": 158.83,
+		"Kazakh": 158.58,
+		"Kenyan": 158.16,
+		"Kittitian": 159.20,
+		"Korean": 160.65,
+		"Kosovan": 165.7,
+		"Kurdish": 165,
+		"Kuwaiti": 159.43,
+		"Kyrgyz": 159.35,
+		"Laotian": 151.28,
+		"Latvian": 169.80,
+		"Lebanese": 162.43,
+		"Liberian": 157.3,
+		"Libyan": 162.08,
+		"a Liechtensteiner": 164.3,
+		"Lithuanian": 166.61,
+		"Luxembourgian": 164.43,
+		"Macedonian": 159.75,
+		"Malagasy": 151.18,
+		"Malawian": 154.40,
+		"Malaysian": 156.30,
+		"Maldivian": 155.02,
+		"Malian": 160.47,
+		"Maltese": 160.85,
+		"Marshallese": 151.31,
+		"Mauritanian": 157.72,
+		"Mauritian": 157.24,
+		"Mexican": 156.85,
+		"Micronesian": 156.09,
+		"Moldovan": 163.24,
+		"Monégasque": 164.61,
+		"Mongolian": 158.22,
+		"Montenegrin": 164.86,
+		"Moroccan": 157.82,
+		"Mosotho": 155.71,
+		"Motswana": 161.38,
+		"Mozambican": 153.96,
+		"Namibian": 158.78,
+		"Nauruan": 153.98,
+		"Nepalese": 150.86,
+		"New Caledonian": 158.0,
+		"a New Zealander": 164.94,
+		"Ni-Vanuatu": 158.17,
+		"Nicaraguan": 154.39,
+		"Nigerian": 156.32,
+		"Nigerien": 158.25,
+		"Niuean": 164.80,
+		"Norwegian": 165.56,
+		"Omani": 157.19,
+		"Pakistani": 153.84,
+		"Palauan": 156.22,
+		"Palestinian": 158.75,
+		"Panamanian": 155.47,
+		"Papua New Guinean": 154.87,
+		"Paraguayan": 159.86,
+		"Peruvian": 152.93,
+		"Polish": 164.59,
+		"Portuguese": 163.04,
+		"Puerto Rican": 159.20,
+		"Qatari": 159.38,
+		"Romanian": 162.73,
+		"Russian": 165.27,
+		"Rwandan": 154.79,
+		"Sahrawi": 157.82,
+		"Saint Lucian": 162.31,
+		"Salvadoran": 154.55,
+		"Sammarinese": 164.61,
+		"Samoan": 161.97,
+		"São Toméan": 158.91,
+		"Saudi": 155.88,
+		"Scottish": 163,
+		"Senegalese": 162.52,
+		"Serbian": 167.69,
+		"Seychellois": 162.08,
+		"Sierra Leonean": 156.60,
+		"Singaporean": 160.32,
+		"Slovak": 167.47,
+		"Slovene": 166.05,
+		"a Solomon Islander": 154.42,
+		"Somali": 156.06,
+		"South African": 158.03,
+		"South Sudanese": 169.0,
+		"Spanish": 163.40,
+		"Sri Lankan": 154.56,
+		"Sudanese": 156.04,
+		"Surinamese": 160.66,
+		"Swazi": 158.64,
+		"Swedish": 165.70,
+		"Swiss": 163.45,
+		"Syrian": 158.65,
+		"Taiwanese": 161.45,
+		"Tajik": 157.33,
+		"Tanzanian": 156.6,
+		"Thai": 157.87,
+		"Tibetan": 158.75,
+		"Togolese": 158.30,
+		"Tongan": 165.52,
+		"Trinidadian": 160.64,
+		"Tunisian": 160.35,
+		"Turkish": 160.50,
+		"Turkmen": 161.73,
+		"Tuvaluan": 158.10,
+		"Ugandan": 156.72,
+		"Ukrainian": 166.34,
+		"Uruguayan": 162.13,
+		"Uzbek": 157.82,
+		"Vatican": 162.5,
+		"Venezuelan": 157.44,
+		"Vietnamese": 153.59,
+		"Vincentian": 160.70,
+		"Yemeni": 153.97,
+		"Zairian": 155.25,
+		"Zambian": 155.82,
+		"Zimbabwean": 158.22,
 		"": 159.65, // default
 	};
 	const xyMeanHeight = {
-		"Afghan": 165.26, "Albanian": 173.39, "Algerian": 170.07, "American.asian": 172.5, "American.black": 177.4, "American.latina": 172.5, "American.white": 178.2, "American": 177.13,
-		"Andorran": 176.06, "Angolan": 167.31, "Antiguan": 164.8, "Argentinian": 174.62, "Armenian": 172.00, "Aruban": 165.1, "Australian": 179.20, "Austrian": 177.41, "Azerbaijani": 169.75,
-		"Bahamian": 172.75, "Bahraini": 167.74, "Bangladeshi": 163.81, "Barbadian": 175.92, "Belarusian": 178.44, "Belgian": 181.70, "Belizean": 168.73, "Beninese": 167.06, "Bermudian": 172.69,
-		"Bhutanese": 165.31, "Bissau-Guinean": 167.90, "Bolivian": 166.85, "Bosnian": 180.87, "Brazilian": 173.55, "British": 177.49, "Bruneian": 165.01, "Bulgarian": 178.24, "Burkinabé": 169.33,
-		"Burmese": 164.67, "Burundian": 166.64, "Cambodian": 163.33, "Cameroonian": 167.82, "Canadian": 178.09, "Cape Verdean": 173.22, "Catalan": 175.8, "Central African": 166.67,
-		"Chadian": 170.44, "Chilean": 171.81, "Chinese": 171.83, "Colombian": 169.50, "Comorian": 166.19, "Congolese": 167.45, "a Cook Islander": 174.77, "Costa Rican": 168.93, "Croatian": 180.78,
-		"Cuban": 172.00, "Curaçaoan": 165.1, "Cypriot": 174.99, "Czech": 180.10, "Danish": 181.39, "Djiboutian": 166.57, "Dominican": 172.75, "Dominiquais": 176.31, "Dutch": 182.54, "East Timorese": 159.79, "Ecuadorian": 167.08,
-		"Egyptian": 166.68, "Emirati": 170.46, "Equatoguinean": 167.36, "Eritrean": 168.36, "Estonian": 181.59, "Ethiopian": 166.23, "Fijian": 173.90, "Filipina": 163.23, "Finnish": 179.59,
-		"French Guianan": 168, "French Polynesian": 177.41, "French": 179.74, "Gabonese": 167.94, "Gambian": 165.40, "Georgian": 174.34, "German": 179.88, "Ghanan": 168.85, "Greek": 177.32, "Greenlandic": 174.87,
-		"Grenadian": 176.97, "Guamanian": 169.8, "Guatemalan": 163.41, "Guinean": 167.54, "Guyanese": 170.21, "Haitian": 172.64, "Honduran": 166.39, "Hungarian": 177.26, "I-Kiribati": 169.20, "Icelandic": 180.49,
-		"Indian": 164.95, "Indonesian": 163.55, "Iranian": 170.3, "Iraqi": 170.43, "Irish": 178.93, "Israeli": 176.86, "Italian": 177.77, "Ivorian": 166.53, "Jamaican": 174.53, "Japanese": 170.82, "Jordanian": 171.03,
-		"Kazakh": 171.14, "Kenyan": 169.64, "Kittitian": 169.62, "Korean": 173.46, "Kosovan": 179.5, "Kurdish": 175, "Kuwaiti": 172.07, "Kyrgyz": 171.24, "Laotian": 160.52, "Latvian": 181.42, "Lebanese": 174.39,
-		"Liberian": 163.66, "Libyan": 173.53, "a Liechtensteiner": 175.4, "Lithuanian": 179.03, "Luxembourgian": 177.86, "Macedonian": 178.33, "Malagasy": 161.55, "Malawian": 166, "Malaysian": 167.89,
-		"Maldivian": 167.68, "Malian": 171.3, "Maltese": 173.32, "Marshallese": 162.81, "Mauritanian": 163.28, "Mauritian": 170.50, "Mexican": 169.01, "Micronesian": 168.51, "Moldovan": 175.49,
-		"Monégasque": 177.77, "Mongolian": 169.07, "Montenegrin": 178.28, "Moroccan": 170.40, "Mosotho": 165.59, "Motswana": 171.63, "Mozambican": 164.80, "Namibian": 166.96, "Nauruan": 167.83,
-		"Nepalese": 162.32, "New Caledonian": 171.0, "a New Zealander": 177.74, "Ni-Vanuatu": 168.09, "Nicaraguan": 166.71, "Nigerian": 165.91, "Nigerien": 167.68, "Niuean": 175.83, "Norwegian": 179.75, "Omani": 169.16, "Pakistani": 166.95,
-		"Palauan": 167.69, "Palestinian": 172.09, "Panamanian": 168.49, "Papua New Guinean": 163.57, "Paraguayan": 172.83, "Peruvian": 165.23, "Polish": 177.33, "Portuguese": 172.93, "Puerto Rican": 172.08, "Qatari": 170.48,
-		"Romanian": 174.74, "Russian": 176.46, "Rwandan": 162.68, "Sahrawi": 170.40, "Saint Lucian": 171.95, "Salvadoran": 169.77, "Sammarinese": 177.77, "Samoan": 174.38, "São Toméan": 167.38,
-		"Saudi": 167.67, "Scottish": 177.6, "Senegalese": 173.14, "Serbian": 180.57, "Seychellois": 174.21, "Sierra Leonean": 164.41, "Singaporean": 172.57, "Slovak": 179.50, "Slovene": 179.80,
-		"a Solomon Islander": 164.14, "Somali": 166.60, "South African": 166.68, "South Sudanese": 175.9, "Spanish": 176.59, "Sri Lankan": 165.69, "Sudanese": 166.63, "Surinamese": 172.72, "Swazi": 168.13,
-		"Swedish": 179.74, "Swiss": 178.42, "Syrian": 170.43, "Taiwanese": 174.52, "Tajik": 171.26, "Tanzanian": 164.80, "Thai": 169.16, "Tibetan": 168.91, "Togolese": 168.33, "Tongan": 176.76,
-		"Trinidadian": 173.74, "Tunisian": 173.95, "Turkish": 174.21, "Turkmen": 171.97, "Tuvaluan": 169.64, "Ugandan": 165.62, "Ukrainian": 178.46, "Uruguayan": 173.43, "Uzbek": 169.38, "Vatican": 176.5,
-		"Venezuelan": 171.59, "Vietnamese": 164.45, "Vincentian": 172.78, "Yemeni": 159.89, "Zairian": 166.80, "Zambian": 166.52, "Zimbabwean": 168.59,
+		"Afghan": 165.26,
+		"Albanian": 173.39,
+		"Algerian": 170.07,
+		"American.asian": 172.5,
+		"American.black": 177.4,
+		"American.latina": 172.5,
+		"American.white": 178.2,
+		"American": 177.13,
+		"Andorran": 176.06,
+		"Angolan": 167.31,
+		"Antiguan": 164.8,
+		"Argentinian": 174.62,
+		"Armenian": 172.00,
+		"Aruban": 165.1,
+		"Australian": 179.20,
+		"Austrian": 177.41,
+		"Azerbaijani": 169.75,
+		"Bahamian": 172.75,
+		"Bahraini": 167.74,
+		"Bangladeshi": 163.81,
+		"Barbadian": 175.92,
+		"Belarusian": 178.44,
+		"Belgian": 181.70,
+		"Belizean": 168.73,
+		"Beninese": 167.06,
+		"Bermudian": 172.69,
+		"Bhutanese": 165.31,
+		"Bissau-Guinean": 167.90,
+		"Bolivian": 166.85,
+		"Bosnian": 180.87,
+		"Brazilian": 173.55,
+		"British": 177.49,
+		"Bruneian": 165.01,
+		"Bulgarian": 178.24,
+		"Burkinabé": 169.33,
+		"Burmese": 164.67,
+		"Burundian": 166.64,
+		"Cambodian": 163.33,
+		"Cameroonian": 167.82,
+		"Canadian": 178.09,
+		"Cape Verdean": 173.22,
+		"Catalan": 175.8,
+		"Central African": 166.67,
+		"Chadian": 170.44,
+		"Chilean": 171.81,
+		"Chinese": 171.83,
+		"Colombian": 169.50,
+		"Comorian": 166.19,
+		"Congolese": 167.45,
+		"a Cook Islander": 174.77,
+		"Costa Rican": 168.93,
+		"Croatian": 180.78,
+		"Cuban": 172.00,
+		"Curaçaoan": 165.1,
+		"Cypriot": 174.99,
+		"Czech": 180.10,
+		"Danish": 181.39,
+		"Djiboutian": 166.57,
+		"Dominican": 172.75,
+		"Dominiquais": 176.31,
+		"Dutch": 182.54,
+		"East Timorese": 159.79,
+		"Ecuadorian": 167.08,
+		"Egyptian": 166.68,
+		"Emirati": 170.46,
+		"Equatoguinean": 167.36,
+		"Eritrean": 168.36,
+		"Estonian": 181.59,
+		"Ethiopian": 166.23,
+		"Fijian": 173.90,
+		"Filipina": 163.23,
+		"Finnish": 179.59,
+		"French Guianan": 168,
+		"French Polynesian": 177.41,
+		"French": 179.74,
+		"Gabonese": 167.94,
+		"Gambian": 165.40,
+		"Georgian": 174.34,
+		"German": 179.88,
+		"Ghanan": 168.85,
+		"Greek": 177.32,
+		"Greenlandic": 174.87,
+		"Grenadian": 176.97,
+		"Guamanian": 169.8,
+		"Guatemalan": 163.41,
+		"Guinean": 167.54,
+		"Guyanese": 170.21,
+		"Haitian": 172.64,
+		"Honduran": 166.39,
+		"Hungarian": 177.26,
+		"I-Kiribati": 169.20,
+		"Icelandic": 180.49,
+		"Indian": 164.95,
+		"Indonesian": 163.55,
+		"Iranian": 170.3,
+		"Iraqi": 170.43,
+		"Irish": 178.93,
+		"Israeli": 176.86,
+		"Italian": 177.77,
+		"Ivorian": 166.53,
+		"Jamaican": 174.53,
+		"Japanese": 170.82,
+		"Jordanian": 171.03,
+		"Kazakh": 171.14,
+		"Kenyan": 169.64,
+		"Kittitian": 169.62,
+		"Korean": 173.46,
+		"Kosovan": 179.5,
+		"Kurdish": 175,
+		"Kuwaiti": 172.07,
+		"Kyrgyz": 171.24,
+		"Laotian": 160.52,
+		"Latvian": 181.42,
+		"Lebanese": 174.39,
+		"Liberian": 163.66,
+		"Libyan": 173.53,
+		"a Liechtensteiner": 175.4,
+		"Lithuanian": 179.03,
+		"Luxembourgian": 177.86,
+		"Macedonian": 178.33,
+		"Malagasy": 161.55,
+		"Malawian": 166,
+		"Malaysian": 167.89,
+		"Maldivian": 167.68,
+		"Malian": 171.3,
+		"Maltese": 173.32,
+		"Marshallese": 162.81,
+		"Mauritanian": 163.28,
+		"Mauritian": 170.50,
+		"Mexican": 169.01,
+		"Micronesian": 168.51,
+		"Moldovan": 175.49,
+		"Monégasque": 177.77,
+		"Mongolian": 169.07,
+		"Montenegrin": 178.28,
+		"Moroccan": 170.40,
+		"Mosotho": 165.59,
+		"Motswana": 171.63,
+		"Mozambican": 164.80,
+		"Namibian": 166.96,
+		"Nauruan": 167.83,
+		"Nepalese": 162.32,
+		"New Caledonian": 171.0,
+		"a New Zealander": 177.74,
+		"Ni-Vanuatu": 168.09,
+		"Nicaraguan": 166.71,
+		"Nigerian": 165.91,
+		"Nigerien": 167.68,
+		"Niuean": 175.83,
+		"Norwegian": 179.75,
+		"Omani": 169.16,
+		"Pakistani": 166.95,
+		"Palauan": 167.69,
+		"Palestinian": 172.09,
+		"Panamanian": 168.49,
+		"Papua New Guinean": 163.57,
+		"Paraguayan": 172.83,
+		"Peruvian": 165.23,
+		"Polish": 177.33,
+		"Portuguese": 172.93,
+		"Puerto Rican": 172.08,
+		"Qatari": 170.48,
+		"Romanian": 174.74,
+		"Russian": 176.46,
+		"Rwandan": 162.68,
+		"Sahrawi": 170.40,
+		"Saint Lucian": 171.95,
+		"Salvadoran": 169.77,
+		"Sammarinese": 177.77,
+		"Samoan": 174.38,
+		"São Toméan": 167.38,
+		"Saudi": 167.67,
+		"Scottish": 177.6,
+		"Senegalese": 173.14,
+		"Serbian": 180.57,
+		"Seychellois": 174.21,
+		"Sierra Leonean": 164.41,
+		"Singaporean": 172.57,
+		"Slovak": 179.50,
+		"Slovene": 179.80,
+		"a Solomon Islander": 164.14,
+		"Somali": 166.60,
+		"South African": 166.68,
+		"South Sudanese": 175.9,
+		"Spanish": 176.59,
+		"Sri Lankan": 165.69,
+		"Sudanese": 166.63,
+		"Surinamese": 172.72,
+		"Swazi": 168.13,
+		"Swedish": 179.74,
+		"Swiss": 178.42,
+		"Syrian": 170.43,
+		"Taiwanese": 174.52,
+		"Tajik": 171.26,
+		"Tanzanian": 164.80,
+		"Thai": 169.16,
+		"Tibetan": 168.91,
+		"Togolese": 168.33,
+		"Tongan": 176.76,
+		"Trinidadian": 173.74,
+		"Tunisian": 173.95,
+		"Turkish": 174.21,
+		"Turkmen": 171.97,
+		"Tuvaluan": 169.64,
+		"Ugandan": 165.62,
+		"Ukrainian": 178.46,
+		"Uruguayan": 173.43,
+		"Uzbek": 169.38,
+		"Vatican": 176.5,
+		"Venezuelan": 171.59,
+		"Vietnamese": 164.45,
+		"Vincentian": 172.78,
+		"Yemeni": 159.89,
+		"Zairian": 166.80,
+		"Zambian": 166.52,
+		"Zimbabwean": 168.59,
 		"": 171.42, // defaults
 	};
 
 	// Helper method - table lookup for nationality/race combinations
-	const nationalityMeanHeight = function(table, nationality, race, def) {
+	const nationalityMeanHeight = function (table, nationality, race, def) {
 		return table[`${nationality }.${ race}`] || table[nationality] || table[`.${ race}`] || table[""] || def;
 	};
 
 	// Helper method: Generate a skewed normal random variable with the skew s
 	// Reference: http://azzalini.stat.unipd.it/SN/faq-r.html
-	const skewedGaussian = function(s) {
+	const skewedGaussian = function (s) {
 		let randoms = gaussianPair();
 		if (s === 0) {
 			// Don't bother, return an unskewed normal distribution
@@ -163,7 +558,7 @@ window.Height = (function() {
 	};
 
 	// Height multiplier generator; skewed gaussian according to global parameters
-	const multGenerator = function() {
+	const multGenerator = function () {
 		let result = skewedGaussian(skew);
 		while (result < minMult || result > maxMult) {
 			result = skewedGaussian(skew);
@@ -172,7 +567,7 @@ window.Height = (function() {
 	};
 
 	// Helper method: Generate a height based on the mean one and limited according to config.
-	const heightGenerator = function(mean) {
+	const heightGenerator = function (mean) {
 		let result = mean * (1 + multGenerator() * spread);
 		while (result < minHeight || result > maxHeight) {
 			result = mean * (1 + multGenerator() * spread);
@@ -181,11 +576,13 @@ window.Height = (function() {
 	};
 
 	// Helper method - apply age and genes to the adult height
-	const applyAge = function(height, age, genes) {
+	const applyAge = function (height, age, genes) {
 		if (!_.isFinite(age) || age < 2 || age >= 20) {
 			return height;
 		}
-		let minHeight = 0; let midHeight = 0; let midAge = 15;
+		let minHeight = 0;
+		let midHeight = 0;
+		let midAge = 15;
 		switch (genes) {
 			case "XX": // female
 			case "XXX": // Triple X syndrome female
@@ -200,7 +597,8 @@ window.Height = (function() {
 				midHeight = height * 170 / 178;
 				midAge = 15;
 				break;
-			case "X0": case "X": // Turner syndrome female
+			case "X0":
+			case "X": // Turner syndrome female
 				minHeight = 85 * 0.93;
 				midHeight = height * 157 / 164;
 				midAge = 13;
@@ -220,7 +618,7 @@ window.Height = (function() {
 		}
 	};
 
-	const _meanHeight = function(nationality, race, genes, age) {
+	const _meanHeight = function (nationality, race, genes, age) {
 		if (_.isObject(nationality)) {
 			// We got called with a single slave as the argument
 			return _meanHeight(nationality.nationality, nationality.race, nationality.genes, nationality.physicalAge + nationality.birthWeek / 52.0);
@@ -233,8 +631,9 @@ window.Height = (function() {
 			case "XY": // male
 				result = nationalityMeanHeight(xyMeanHeight, nationality, race);
 				break;
-			// special cases. Extra SHOX genes on X and Y chromosomes make for larger people
-			case "X0": case "X": // Turner syndrome female
+				// special cases. Extra SHOX genes on X and Y chromosomes make for larger people
+			case "X0":
+			case "X": // Turner syndrome female
 				result = nationalityMeanHeight(xxMeanHeight, nationality, race) * 0.93;
 				break;
 			case "XXX": // Triple X syndrome female
@@ -246,7 +645,10 @@ window.Height = (function() {
 			case "XYY": // XYY syndrome male
 				result = nationalityMeanHeight(xyMeanHeight, nationality, race) * 1.04;
 				break;
-			case "Y": case "Y0": case "YY": case "YYY":
+			case "Y":
+			case "Y0":
+			case "YY":
+			case "YYY":
 				console.log(`Height.mean(): non-viable genes ${ genes}`);
 				break;
 			default:
@@ -257,7 +659,7 @@ window.Height = (function() {
 		return applyAge(result, age, genes);
 	};
 
-	const _randomHeight = function(nationality, race, genes, age) {
+	const _randomHeight = function (nationality, race, genes, age) {
 		const mean = _meanHeight(nationality, race, genes, age);
 		// If we got called with a slave object and options, temporarily modify
 		// our configuration.
@@ -271,7 +673,7 @@ window.Height = (function() {
 		return heightGenerator(mean);
 	};
 
-	const _forAge = function(height, age, genes) {
+	const _forAge = function (height, age, genes) {
 		if (_.isObject(age)) {
 			// We got called with a slave as a second argument
 			return applyAge(height, age.physicalAge + age.birthWeek / 52.0, age.genes);
@@ -319,7 +721,7 @@ window.Height = (function() {
  *
  *  This was modeled using the Height generator above. For some more information, see the comments for that.
  */
-window.Intelligence = (function() {
+window.Intelligence = (function () {
 	"use strict";
 
 	// Global configuration (for different game modes/options/types)
@@ -332,9 +734,15 @@ window.Intelligence = (function() {
 	let maxIntelligence = 100;
 
 	// Configuration method for the above values
-	const _config = function(conf) {
+	const _config = function (conf) {
 		if (_.isUndefined(conf)) {
-			return {mean: mean, limitMult: [minMult, maxMult], limitIntelligence: [minIntelligence, maxIntelligence], skew: skew, spread: spread};
+			return {
+				mean: mean,
+				limitMult: [minMult, maxMult],
+				limitIntelligence: [minIntelligence, maxIntelligence],
+				skew: skew,
+				spread: spread
+			};
 		}
 		if (_.isFinite(conf.mean)) {
 			mean = Math.clamp(conf.mean, -100, 100);
@@ -355,12 +763,17 @@ window.Intelligence = (function() {
 			minIntelligence = Math.clamp(Math.min(conf.limitIntelligence[0], conf.limitIntelligence[1]), -101, 100);
 			maxIntelligence = Math.clamp(Math.max(conf.limitIntelligence[0], conf.limitIntelligence[1]), -101, 100);
 		}
-		return {limitMult: [minMult, maxMult], limitIntelligence: [minIntelligence, maxIntelligence], skew: skew, spread: spread};
+		return {
+			limitMult: [minMult, maxMult],
+			limitIntelligence: [minIntelligence, maxIntelligence],
+			skew: skew,
+			spread: spread
+		};
 	};
 
 	// Helper method: Generate a skewed normal random variable with the skew s
 	// Reference: http://azzalini.stat.unipd.it/SN/faq-r.html
-	const skewedGaussian = function(s) {
+	const skewedGaussian = function (s) {
 		let randoms = gaussianPair();
 		if (s === 0) {
 			// Don't bother, return an unskewed normal distribution
@@ -372,7 +785,7 @@ window.Intelligence = (function() {
 	};
 
 	// Intelligence multiplier generator; skewed gaussian according to global parameters
-	const multGenerator = function() {
+	const multGenerator = function () {
 		let result = skewedGaussian(skew);
 		while (result < minMult || result > maxMult) {
 			result = skewedGaussian(skew);
@@ -381,7 +794,7 @@ window.Intelligence = (function() {
 	};
 
 	// Helper method: Transform the values from multGenerator to have the appropriate mean and standard deviation.
-	const intelligenceGenerator = function() {
+	const intelligenceGenerator = function () {
 		let result = multGenerator() * spread + mean;
 		while (result < minIntelligence || result > maxIntelligence) {
 			result = multGenerator() * spread + mean;
@@ -389,7 +802,7 @@ window.Intelligence = (function() {
 		return Math.ceil(result);
 	};
 
-	const _randomIntelligence = function(settings) {
+	const _randomIntelligence = function (settings) {
 		if (settings) {
 			const currentConfig = _config();
 			_config(settings);
@@ -407,7 +820,7 @@ window.Intelligence = (function() {
 })();
 
 // Helper method - generate two independent Gaussian numbers using Box-Muller transform
-window.gaussianPair = function() {
+window.gaussianPair = function () {
 	let r = Math.sqrt(-2.0 * Math.log(1 - Math.random()));
 	let sigma = 2.0 * Math.PI * (1 - Math.random());
 	return [r * Math.cos(sigma), r * Math.sin(sigma)];
@@ -446,23 +859,23 @@ As a categorizer
 <<print $cats.muscleCat.cat(_Slave.muscles)>>
 */
 
-window.Categorizer = function() {
+window.Categorizer = function () {
 	this.cats = Array.prototype.slice.call(arguments)
-		.filter(function(e, i, a) {
+		.filter(function (e, i, a) {
 			return e instanceof Array && e.length === 2 && typeof e[0] === "number" && !isNaN(e[0]) &&
-				a.findIndex(function(val) {
+				a.findIndex(function (val) {
 					return e[0] === val[0];
 				}) === i; /* uniqueness test */
 		})
-		.sort(function(a, b) {
+		.sort(function (a, b) {
 			return b[0] - a[0]; /* reverse sort */
 		});
 };
 
-window.Categorizer.prototype.cat = function(val, def) {
+window.Categorizer.prototype.cat = function (val, def) {
 	let result = def;
 	if (typeof val === "number" && !isNaN(val)) {
-		let foundCat = this.cats.find(function(e) {
+		let foundCat = this.cats.find(function (e) {
 			return val >= e[0];
 		});
 		if (foundCat) {
@@ -477,7 +890,7 @@ window.Categorizer.prototype.cat = function(val, def) {
 	return result;
 };
 
-window.num = function(x) {
+window.num = function (x) {
 	const V = State.variables;
 	const max = V.showNumbersMax;
 
@@ -596,7 +1009,7 @@ window.num = function(x) {
 	}
 };
 
-window.cashFormat = function(s) {
+window.cashFormat = function (s) {
 	if (!s) {
 		s = 0;
 	} else {
@@ -609,7 +1022,7 @@ window.cashFormat = function(s) {
 	}
 };
 
-window.repFormat = function(s) {
+window.repFormat = function (s) {
 	const V = State.variables;
 	/* if (!s) { s = 0; }*/
 	if (V.cheatMode === 1 || V.debugMode === 1) {
@@ -622,7 +1035,7 @@ window.repFormat = function(s) {
 		}
 	} else {
 		/* In order to calculate just how much any one category matters so we can show a "fuzzy" symbolic value to the player, we need to know how "busy" reputation was this week. To calculate this, I ADD income to expenses. Why? 100 - 100 and 10000 - 10000 BOTH are 0, but a +50 event matters a lot more in the first case than the second. I exclude overflow from the calculation because it's not a "real" expense for our purposes, and divide by half just to make percentages a bit easier. */
-		let weight = s/(((V.lastWeeksRepIncome.Total - V.lastWeeksRepExpenses.Total) + V.lastWeeksRepExpenses.overflow)/2);
+		let weight = s / (((V.lastWeeksRepIncome.Total - V.lastWeeksRepExpenses.Total) + V.lastWeeksRepExpenses.overflow) / 2);
 		if (weight > 0.60) {
 			return "<span class=green>+++++ rep</span>";
 		} else if (weight > 0.45) {
@@ -666,7 +1079,7 @@ window.massFormat = function (s) {
 	}
 };
 
-window.budgetLine = function(category, title) {
+window.budgetLine = function (category, title) {
 	let income;
 	let expenses;
 	let profits;
@@ -717,15 +1130,15 @@ window.budgetLine = function(category, title) {
 	}
 };
 
-window.isFloat = function(n) {
+window.isFloat = function (n) {
 	return Number.isFinite(n) && Math.floor(n) !== n;
 };
 
-window.jsRandom = function(min, max) {
-	return Math.floor(Math.random()*(max-min+1)+min);
+window.jsRandom = function (min, max) {
+	return Math.floor(Math.random() * (max - min + 1) + min);
 };
 
-window.jsRandomMany = function(arr, count) {
+window.jsRandomMany = function (arr, count) {
 	let result = [];
 	let _tmp = arr.slice();
 	for (let i = 0; i < count; i++) {
@@ -736,7 +1149,7 @@ window.jsRandomMany = function(arr, count) {
 };
 
 // This function wants an array - which explains why it works like array.random(). Give it one or you'll face a NaN
-window.jsEither = function(choices) {
+window.jsEither = function (choices) {
 	let index = Math.floor(Math.random() * choices.length);
 	return choices[index];
 };
@@ -756,7 +1169,7 @@ if(typeof Categorizer === 'function') {
 jQuery(document).trigger("categorizer.ready");
 
 window.hashChoice = function hashChoice(obj) {
-	let randint = Math.floor(Math.random()*hashSum(obj));
+	let randint = Math.floor(Math.random() * hashSum(obj));
 	let ret;
 	Object.keys(obj).some((key) => {
 		if (randint < obj[key]) {
@@ -812,10 +1225,10 @@ window.between = function between(a, low, high) {
 // generate a random, almost unique ID that is compliant (possibly) with RFC 4122
 window.generateNewID = function generateNewID() {
 	let date = Date.now(); // high-precision timer
-	let uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
-		let r = (date + Math.random()*16)%16 | 0;
-		date = Math.floor(date/16);
-		return (c ==="x" ? r : (r & 0x3 | 0x8)).toString(16);
+	let uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
+		let r = (date + Math.random() * 16) % 16 | 0;
+		date = Math.floor(date / 16);
+		return (c === "x" ? r : (r & 0x3 | 0x8)).toString(16);
 	});
 	return uuid;
 };
@@ -838,7 +1251,7 @@ window.html5passage = function html5passage(passageFunction) {
 };
 
 // If you want to include a SugarCube passage in a JS function use this. The result must be printed using the <<print>> macro. passageTitle must be a string.
-window.jsInclude = function(passageTitle) {
+window.jsInclude = function (passageTitle) {
 	if (Story.has(passageTitle)) {
 		return Story.get(passageTitle).processText();
 	} else {
@@ -854,7 +1267,7 @@ window.capFirstChar = function capFirstChar(string) {
  * @param {App.Entity.SlaveState} slave
  * @returns {string}
  */
-window.getSlaveDevotionClass = function(slave) {
+window.getSlaveDevotionClass = function (slave) {
 	if ((!slave) || (!State)) {
 		return undefined;
 	}
@@ -882,7 +1295,7 @@ window.getSlaveDevotionClass = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {string}
  */
-window.getSlaveTrustClass = function(slave) {
+window.getSlaveTrustClass = function (slave) {
 	if ((!slave) || (!State)) {
 		return undefined;
 	}
@@ -912,8 +1325,8 @@ window.getSlaveTrustClass = function(slave) {
 };
 
 // takes an integer e.g. $activeSlave.hLength, returns a string in the format 10 inches
-window.cmToInchString = function(s) {
-	let inches = Math.round(s/2.54);
+window.cmToInchString = function (s) {
+	let inches = Math.round(s / 2.54);
 	if (inches === 0) {
 		if (s === 0) {
 			inches += " inches";
@@ -929,43 +1342,43 @@ window.cmToInchString = function(s) {
 };
 
 // takes an integer e.g. $activeSlave.height, returns a string in the format 6'5"
-window.cmToFootInchString = function(s) {
-	if (Math.round(s/2.54) < 12) {
+window.cmToFootInchString = function (s) {
+	if (Math.round(s / 2.54) < 12) {
 		return cmToInchString(s);
 	}
 	return `${Math.trunc(Math.round(s/2.54)/12) }'${ Math.round(s/2.54)%12 }"`;
 };
 
 // takes a dick value e.g. $activeSlave.dick, returns a string in the format 6 inches
-window.dickToInchString = function(s) {
+window.dickToInchString = function (s) {
 	return cmToInchString(dickToCM(s));
 };
 
 // takes a dick value e.g. $activeSlave.dick, returns an int of the dick length in cm
-window.dickToCM = function(s) {
+window.dickToCM = function (s) {
 	if (s < 9) {
-		return s*5;
+		return s * 5;
 	} else if (s === 9) {
 		return 50;
 	}
-	return s*6;
+	return s * 6;
 };
 
 // takes a ball value e.g. $activeSlave.balls, returns a string in the format 3 inches
-window.ballsToInchString = function(s) {
+window.ballsToInchString = function (s) {
 	return cmToInchString(ballsToCM(s));
 };
 
 // takes a ball value e.g. $activeSlave.balls, returns an int of the ball size in cm
-window.ballsToCM = function(s) {
+window.ballsToCM = function (s) {
 	if (s < 2) {
 		return 0;
 	}
-	return (s<10?(s-1)*2:s*2);
+	return (s < 10 ? (s - 1) * 2 : s * 2);
 };
 
 // takes a dick value e.g. $activeSlave.dick, returns a string in the format of either `20cm (8 inches)`, `8 inches`, or `20cm`
-window.dickToEitherUnit = function(s) {
+window.dickToEitherUnit = function (s) {
 	if (State.variables.showInches === 1) {
 		return `${dickToCM(s) }cm (${ dickToInchString(s) })`;
 	}
@@ -976,7 +1389,7 @@ window.dickToEitherUnit = function(s) {
 };
 
 // takes a ball value e.g. $activeSlave.balls, returns a string in the format of either `20cm (8 inches)`, `8 inches`, or `20cm`
-window.ballsToEitherUnit = function(s) {
+window.ballsToEitherUnit = function (s) {
 	if (State.variables.showInches === 1) {
 		return `${ballsToCM(s) }cm (${ ballsToInchString(s) })`;
 	}
@@ -987,7 +1400,7 @@ window.ballsToEitherUnit = function(s) {
 };
 
 // takes an int in centimeters e.g. $activeSlave.height, returns a string in the format of either `200cm (6'7")`, `6'7"`, or `200cm`
-window.heightToEitherUnit = function(s) {
+window.heightToEitherUnit = function (s) {
 	if (State.variables.showInches === 1) {
 		return `${s }cm (${ cmToFootInchString(s) })`;
 	}
@@ -998,7 +1411,7 @@ window.heightToEitherUnit = function(s) {
 };
 
 // takes an int in centimeters e.g. $activeSlave.hLength, returns a string in the format of either `30cm (12 inches)`, `12 inches`, or `30cm`
-window.lengthToEitherUnit = function(s) {
+window.lengthToEitherUnit = function (s) {
 	if (State.variables.showInches === 1) {
 		return `${s }cm (${ cmToInchString(s) })`;
 	}
@@ -1046,7 +1459,7 @@ window.induceLactation = function induceLactation(slave) {
 	return r;
 };
 
-window.ResearchLabStockPile = function() {
+window.ResearchLabStockPile = function () {
 	const V = State.variables;
 	return `__Stockpile__
 	Prosthetics interfaces: ${num(V.stockpile.basicPLimbInterface + V.stockpile.advPLimbInterface)}
@@ -1069,7 +1482,7 @@ window.ResearchLabStockPile = function() {
  * @param {App.Entity.SlaveState} slave
  * @returns {string}
  */
-window.originPronounReplace = function(slave) {
+window.originPronounReplace = function (slave) {
 	let r = slave.origin;
 	switch (r) {
 		case "She was the result of unprotected sex with a client. Her mother tracked you down years after her birth to force her upon you.":
@@ -1146,7 +1559,7 @@ window.originPronounReplace = function(slave) {
 	}
 };
 
-window.HackingSkillMultiplier = function() {
+window.HackingSkillMultiplier = function () {
 	const V = State.variables;
 	if (V.PC.hacking <= -100) {
 		return 1.5;
@@ -1175,7 +1588,7 @@ window.HackingSkillMultiplier = function() {
 	}
 };
 
-window.opentab = function(evt, tabName) {
+window.opentab = function (evt, tabName) {
 	const V = State.variables;
 	/* var passage = passage().trim().replace(/ /g,"+");*/
 	const tabcontent = document.getElementsByClassName("tabcontent");
@@ -1207,7 +1620,7 @@ window.opentab = function(evt, tabName) {
  * // equal to [[Go to town|Town]]
  * App.UI.passageLink("Go to town", "Town")
  */
-App.UI.passageLink = function(linkText, passage, setter, elementType) {
+App.UI.passageLink = function (linkText, passage, setter, elementType) {
 	if (!elementType) elementType = "a";
 
 	let res = `<${elementType} data-passage="${passage}"`;
@@ -1218,7 +1631,7 @@ App.UI.passageLink = function(linkText, passage, setter, elementType) {
 	return res;
 };
 
-window.SkillIncrease = (function() {
+window.SkillIncrease = (function () {
 	return {
 		Oral: OralSkillIncrease,
 		Vaginal: VaginalSkillIncrease,
@@ -1228,7 +1641,7 @@ window.SkillIncrease = (function() {
 	};
 
 	/* call as SkillIncrease.Oral() */
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {number} skillIncrease	// I think
 	 * @returns {string}
@@ -1261,7 +1674,7 @@ window.SkillIncrease = (function() {
 	}
 
 	/* call as SkillIncrease.Vaginal() */
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {number} skillIncrease	// I think
 	 * @returns {number}
@@ -1293,7 +1706,7 @@ window.SkillIncrease = (function() {
 	}
 
 	/* call as SkillIncrease.Anal() */
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {number} skillIncrease	// I think
 	 * @returns {string}
@@ -1301,7 +1714,7 @@ window.SkillIncrease = (function() {
 	function AnalSkillIncrease(slave, skillIncrease) {
 		const He = capFirstChar(slave.pronoun);
 		const his = slave.possessivePronoun;
-		let r ="";
+		let r = "";
 		skillIncrease = skillIncrease || State.variables.skillIncrease || 1;
 
 		if (slave.skill.anal <= 10) {
@@ -1326,7 +1739,7 @@ window.SkillIncrease = (function() {
 	}
 
 	/* call as SkillIncrease.Whore() */
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {number} skillIncrease	// I think
 	 * @returns {string}
@@ -1334,7 +1747,7 @@ window.SkillIncrease = (function() {
 	function WhoreSkillIncrease(slave, skillIncrease) {
 		const He = capFirstChar(slave.pronoun);
 		const his = slave.possessivePronoun;
-		let r ="";
+		let r = "";
 		skillIncrease = skillIncrease || State.variables.skillIncrease || 1;
 
 		if (slave.skill.whoring <= 10) {
@@ -1359,14 +1772,14 @@ window.SkillIncrease = (function() {
 	}
 
 	/* call as SkillIncrease.Entertain() */
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {number} skillIncrease	// I think
 	 * @returns {string}
 	 */
 	function EntertainSkillIncrease(slave, skillIncrease) {
 		const He = capFirstChar(slave.pronoun);
-		let r ="";
+		let r = "";
 		skillIncrease = skillIncrease || State.variables.skillIncrease || 1;
 
 		if (slave.skill.entertainment <= 10) {
@@ -1391,7 +1804,7 @@ window.SkillIncrease = (function() {
 	}
 })();
 
-window.upgradeMultiplierArcology = function() {
+window.upgradeMultiplierArcology = function () {
 	const V = State.variables;
 	if (V.PC.career === "engineer" || (V.arcologies[0].FSRestartDecoration >= 100 && V.eugenicsFullControl === 0)) {
 		return 0.6;
@@ -1422,7 +1835,7 @@ window.upgradeMultiplierArcology = function() {
 	}
 };
 
-window.upgradeMultiplierMedicine = function() {
+window.upgradeMultiplierMedicine = function () {
 	const V = State.variables;
 	if (V.PC.career === "medicine" || (V.arcologies[0].FSRestartDecoration >= 100 && V.eugenicsFullControl === 0)) {
 		return 0.6;
@@ -1453,7 +1866,7 @@ window.upgradeMultiplierMedicine = function() {
 	}
 };
 
-window.upgradeMultiplierTrade = function() {
+window.upgradeMultiplierTrade = function () {
 	const V = State.variables;
 	if (V.PC.trading <= -100) {
 		return 1.5;
@@ -1482,19 +1895,21 @@ window.upgradeMultiplierTrade = function() {
 	}
 };
 
-window.jsNdef = function(input) {
-	if (typeof input === "undefined") return true; else return false;
+window.jsNdef = function (input) {
+	if (typeof input === "undefined") return true;
+	else return false;
 };
 
-window.jsDef = function(input) {
-	if (typeof input !== "undefined") return true; else return false;
+window.jsDef = function (input) {
+	if (typeof input !== "undefined") return true;
+	else return false;
 };
 
 /* Return a career at random that would be suitable for the given slave.
 
 	Currently only considers their age
  */
-window.randomCareer = function(slave) {
+window.randomCareer = function (slave) {
 	if (slave.actualAge < 16) {
 		return setup.veryYoungCareers.random();
 	} else if (slave.actualAge <= 24) {
@@ -1506,7 +1921,7 @@ window.randomCareer = function(slave) {
 	}
 };
 
-window.resyncSlaveToAge = function(slave) {
+window.resyncSlaveToAge = function (slave) {
 	slave.height = Height.random(slave);
 	slave.pubertyXX = slave.actualAge < slave.pubertyAgeXX ? 0 : 1;
 	slave.pubertyXY = slave.actualAge < slave.pubertyAgeXY ? 0 : 1;
@@ -1547,8 +1962,9 @@ window.resyncSlaveToAge = function(slave) {
 	slave.career = randomCareer(slave);
 };
 
-window.IncreasePCSkills = function(input, increase = 1) {
-	const player = State.variables.PC, oldSkill = player[input];
+window.IncreasePCSkills = function (input, increase = 1) {
+	const player = State.variables.PC,
+		oldSkill = player[input];
 	player[input] += increase;
 	if (oldSkill <= 10) {
 		if (player[input] >= 10) {
@@ -1569,7 +1985,7 @@ window.IncreasePCSkills = function(input, increase = 1) {
 	}
 };
 
-window.randomRaceSkin = function(raceName) {
+window.randomRaceSkin = function (raceName) {
 	let skin;
 	switch (raceName) {
 		case "asian":
@@ -1602,7 +2018,7 @@ window.randomRaceSkin = function(raceName) {
 	return skin;
 };
 
-window.randomRaceEye = function(raceName) {
+window.randomRaceEye = function (raceName) {
 	let eye;
 	switch (raceName) {
 		case "asian":
@@ -1631,7 +2047,7 @@ window.randomRaceEye = function(raceName) {
 	return eye;
 };
 
-window.randomRaceHair = function(raceName) {
+window.randomRaceHair = function (raceName) {
 	let hair;
 	switch (raceName) {
 		case "asian":
@@ -1658,7 +2074,7 @@ window.randomRaceHair = function(raceName) {
 	return hair;
 };
 
-window.skinToneLevel = function(skinTone) {
+window.skinToneLevel = function (skinTone) {
 	if (!setup.naturalSkins.includes(skinTone)) {
 		return undefined;
 	}
@@ -1692,7 +2108,7 @@ window.skinToneLevel = function(skinTone) {
 	return skinToMelanin[skinTone];
 };
 
-window.changeSkinTone = function(skin, value) {
+window.changeSkinTone = function (skin, value) {
 	if (!setup.naturalSkins.includes(skin)) {
 		return skin;
 	}
diff --git a/src/js/vignettes.js b/src/js/vignettes.js
index 6f8de776b568fed3a46ac26511fd8b19beab43aa..62a07b544f884f82732d22c3da48fbb5f1ac8265 100644
--- a/src/js/vignettes.js
+++ b/src/js/vignettes.js
@@ -314,7 +314,7 @@ window.GetVignette = function GetVignette(slave) {
 						effect: -1,
 					});
 					break;
-				
+
 			}
 		}
 		switch (slave.behavioralFlaw) {
@@ -386,7 +386,7 @@ window.GetVignette = function GetVignette(slave) {
 					effect: -1,
 				});
 				break;
-			
+
 		}
 		switch (slave.sexualFlaw) {
 			case "hates oral":
@@ -511,7 +511,7 @@ window.GetVignette = function GetVignette(slave) {
 					effect: 3,
 				});
 				break;
-			
+
 		}
 		switch (slave.behavioralQuirk) {
 			case "confident":
@@ -597,7 +597,7 @@ window.GetVignette = function GetVignette(slave) {
 					effect: 1,
 				});
 				break;
-			
+
 		}
 		switch (slave.sexualQuirk) {
 			case "gagfuck queen":
@@ -664,7 +664,7 @@ window.GetVignette = function GetVignette(slave) {
 					effect: 1,
 				});
 				break;
-			
+
 		}
 
 		if (slave.counter.pitKills > 0) {
@@ -957,7 +957,7 @@ window.GetVignette = function GetVignette(slave) {
 					type: "rep",
 					effect: -1,
 				});
-				if (slave.behavioralQuirk === "cutting" && slave.intelligence+slave.intelligenceImplant > 50) {
+				if (slave.behavioralQuirk === "cutting" && slave.intelligence + slave.intelligenceImplant > 50) {
 					vignettes.push({
 						text: `${he} helped a customer discover a new fetish by making cutting remarks when their cock was too small for ${his} big cunt,`,
 						type: "rep",
@@ -1215,7 +1215,7 @@ window.GetVignette = function GetVignette(slave) {
 				effect: 1,
 			});
 		}
-		if (slave.intelligence+slave.intelligenceImplant < -50) {
+		if (slave.intelligence + slave.intelligenceImplant < -50) {
 			vignettes.push({
 				text: `a customer managed to trick ${him} into fucking him without payment,`,
 				type: "cash",
@@ -1295,7 +1295,7 @@ window.GetVignette = function GetVignette(slave) {
 				effect: -1,
 			});
 		}
-		if (slave.relationship <= -2 && slave.intelligence+slave.intelligenceImplant <= 15) {
+		if (slave.relationship <= -2 && slave.intelligence + slave.intelligenceImplant <= 15) {
 			vignettes.push({
 				text: `${he} accidentally mentions how much ${he} loves you during intercourse with a customer who doesn't like to share,`,
 				type: "rep",
@@ -1389,7 +1389,7 @@ window.GetVignette = function GetVignette(slave) {
 					effect: 1,
 				});
 			}
-			if (slave.preg > slave.pregData.normalBirth/4 && slave.pregKnown > 1 && slave.bellyPreg >= 5000) {
+			if (slave.preg > slave.pregData.normalBirth / 4 && slave.pregKnown > 1 && slave.bellyPreg >= 5000) {
 				vignettes.push({
 					text: `a customer loved ${his} pregnant belly so much that he came back for repeat business,`,
 					type: "cash",
@@ -1406,7 +1406,7 @@ window.GetVignette = function GetVignette(slave) {
 			}
 		}
 		if (V.arcologies[0].FSPaternalist !== "unset") {
-			if (slave.intelligence+slave.intelligenceImplant > 50) {
+			if (slave.intelligence + slave.intelligenceImplant > 50) {
 				vignettes.push({
 					text: `${he} got repeat business from a customer who likes to chat with intelligent prostitutes while fucking,`,
 					type: "cash",
@@ -1617,7 +1617,7 @@ window.GetVignette = function GetVignette(slave) {
 			}
 		}
 		if (V.arcologies[0].FSAztecRevivalist !== "unset") {
-			if (slave.devotion > 75 && slave.intelligence+slave.intelligenceImplant > 50) {
+			if (slave.devotion > 75 && slave.intelligence + slave.intelligenceImplant > 50) {
 				vignettes.push({
 					text: `${he} indulged a citizen by following a fertility ritual completely,`,
 					type: "rep",
@@ -1633,7 +1633,7 @@ window.GetVignette = function GetVignette(slave) {
 			});
 		}
 		if (V.arcologies[0].FSEdoRevivalist !== "unset") {
-			if (slave.face > 40 && slave.intelligence+slave.intelligenceImplant > 50) {
+			if (slave.face > 40 && slave.intelligence + slave.intelligenceImplant > 50) {
 				vignettes.push({
 					text: `${he} got repeat business from a customer who wished to do nothing more than converse with a beautiful and intelligent ${boy},`,
 					type: "cash",
@@ -2010,7 +2010,7 @@ window.GetVignette = function GetVignette(slave) {
 						effect: -1,
 					});
 					break;
-				
+
 			}
 		}
 		switch (slave.behavioralFlaw) {
@@ -2082,7 +2082,7 @@ window.GetVignette = function GetVignette(slave) {
 					effect: -1,
 				});
 				break;
-			
+
 		}
 		switch (slave.sexualFlaw) {
 			case "hates oral":
@@ -2207,7 +2207,7 @@ window.GetVignette = function GetVignette(slave) {
 					effect: 3,
 				});
 				break;
-			
+
 		}
 		switch (slave.behavioralQuirk) {
 			case "confident":
@@ -2293,7 +2293,7 @@ window.GetVignette = function GetVignette(slave) {
 					effect: 1,
 				});
 				break;
-			
+
 		}
 		switch (slave.sexualQuirk) {
 			case "gagfuck queen":
@@ -2360,7 +2360,7 @@ window.GetVignette = function GetVignette(slave) {
 					effect: 1,
 				});
 				break;
-			
+
 		}
 
 		if (slave.counter.pitKills > 0) {
@@ -2653,7 +2653,7 @@ window.GetVignette = function GetVignette(slave) {
 					type: "rep",
 					effect: -1,
 				});
-				if (slave.behavioralQuirk === "cutting" && slave.intelligence+slave.intelligenceImplant > 50) {
+				if (slave.behavioralQuirk === "cutting" && slave.intelligence + slave.intelligenceImplant > 50) {
 					vignettes.push({
 						text: `${he} helped a citizen discover a new fetish by making cutting remarks when their cock was too small for ${his} big cunt,`,
 						type: "rep",
@@ -2904,7 +2904,7 @@ window.GetVignette = function GetVignette(slave) {
 				effect: 1,
 			});
 		}
-		if (slave.intelligence+slave.intelligenceImplant < -50) {
+		if (slave.intelligence + slave.intelligenceImplant < -50) {
 			vignettes.push({
 				text: `a low-class citizen who had no business fucking ${him} managed to trick ${him} into fucking him anyway,`,
 				type: "rep",
@@ -2984,7 +2984,7 @@ window.GetVignette = function GetVignette(slave) {
 				effect: -1,
 			});
 		}
-		if (slave.relationship <= -2 && slave.intelligence+slave.intelligenceImplant <= 15) {
+		if (slave.relationship <= -2 && slave.intelligence + slave.intelligenceImplant <= 15) {
 			vignettes.push({
 				text: `${he} accidentally mentions how much ${he} loves you during intercourse with a citizen who doesn't like to share,`,
 				type: "rep",
@@ -3078,7 +3078,7 @@ window.GetVignette = function GetVignette(slave) {
 					effect: 1,
 				});
 			}
-			if (slave.preg > slave.pregData.normalBirth/4 && slave.pregKnown > 1 && slave.bellyPreg >= 5000) {
+			if (slave.preg > slave.pregData.normalBirth / 4 && slave.pregKnown > 1 && slave.bellyPreg >= 5000) {
 				vignettes.push({
 					text: `a citizen loved ${his} pregnant belly so much that he came back for repeat service,`,
 					type: "rep",
@@ -3095,7 +3095,7 @@ window.GetVignette = function GetVignette(slave) {
 			}
 		}
 		if (V.arcologies[0].FSPaternalist !== "unset") {
-			if (slave.intelligence+slave.intelligenceImplant > 50) {
+			if (slave.intelligence + slave.intelligenceImplant > 50) {
 				vignettes.push({
 					text: `${he} gratified a citizen who likes to chat with intelligent prostitutes as they fuck ${him},`,
 					type: "rep",
@@ -3306,7 +3306,7 @@ window.GetVignette = function GetVignette(slave) {
 			}
 		}
 		if (V.arcologies[0].FSAztecRevivalist !== "unset") {
-			if (slave.devotion > 75 && slave.intelligence+slave.intelligenceImplant > 50) {
+			if (slave.devotion > 75 && slave.intelligence + slave.intelligenceImplant > 50) {
 				vignettes.push({
 					text: `${he} indulged a citizen by following a fertility ritual completely,`,
 					type: "rep",
@@ -3322,7 +3322,7 @@ window.GetVignette = function GetVignette(slave) {
 			});
 		}
 		if (V.arcologies[0].FSEdoRevivalist !== "unset") {
-			if (slave.face > 40 && slave.intelligence+slave.intelligenceImplant > 50) {
+			if (slave.face > 40 && slave.intelligence + slave.intelligenceImplant > 50) {
 				vignettes.push({
 					text: `${he} gratified a citizen who wished to do nothing more than converse with a beautiful and intelligent ${boy},`,
 					type: "rep",
@@ -3429,7 +3429,7 @@ window.GetVignette = function GetVignette(slave) {
 						effect: 1,
 					});
 					break;
-				
+
 			}
 		}
 		switch (slave.behavioralFlaw) {
@@ -3447,7 +3447,7 @@ window.GetVignette = function GetVignette(slave) {
 					effect: 1,
 				});
 				break;
-			
+
 		}
 		if (slave.fetish === "mindbroken") {
 			vignettes.push({
@@ -3468,13 +3468,13 @@ window.GetVignette = function GetVignette(slave) {
 				effect: 1,
 			});
 		}
-		if (slave.intelligence+slave.intelligenceImplant > 50) {
+		if (slave.intelligence + slave.intelligenceImplant > 50) {
 			vignettes.push({
 				text: `${he} devised a highly efficient way to get ${his} entire week's worth of work done in only three days. As a reward, ${he} was given — you guessed it — more work,`,
 				type: "cash",
 				effect: 1,
 			});
-		} else if (slave.intelligence+slave.intelligenceImplant < -50) {
+		} else if (slave.intelligence + slave.intelligenceImplant < -50) {
 			vignettes.push({
 				text: `after being told all ${he} needed was some 'elbow grease', ${he} wasted an obscene amount of time searching for it,`,
 				type: "cash",
@@ -3657,7 +3657,7 @@ window.GetVignette = function GetVignette(slave) {
 					effect: 0,
 				});
 				break;
-			
+
 		}
 		switch (slave.behavioralQuirk) {
 			case "fitness":
@@ -3695,7 +3695,7 @@ window.GetVignette = function GetVignette(slave) {
 			});
 		}
 		if (slave.devotion > 50) {
-			if (slave.intelligence+slave.intelligenceImplant > 50) {
+			if (slave.intelligence + slave.intelligenceImplant > 50) {
 				vignettes.push({
 					text: `${he} spent some of ${his} downtime figuring out a new way for you to make money,`,
 					type: "cash",
@@ -3713,7 +3713,7 @@ window.GetVignette = function GetVignette(slave) {
 			}
 		}
 		if (slave.devotion < -50) {
-			if (slave.intelligence+slave.intelligenceImplant > 50) {
+			if (slave.intelligence + slave.intelligenceImplant > 50) {
 				vignettes.push({
 					text: `${he} spent some of ${his} downtime figuring out a way to sabotage your profits,`,
 					type: "cash",
@@ -3792,7 +3792,7 @@ window.GetVignette = function GetVignette(slave) {
 				effect: 0,
 			});
 		}
-		if (slave.intelligence+slave.intelligenceImplant > 50) {
+		if (slave.intelligence + slave.intelligenceImplant > 50) {
 			vignettes.push({
 				text: `${he} immersed ${himself} in classics of literature at an arcology library, giving ${him} uncomfortable ideas about society,`,
 				type: "devotion",
diff --git a/src/js/walkPastJS.js b/src/js/walkPastJS.js
index 0330156915915b74c4fa6315f54b381dd9f52b48..a5d389ec66e7e42607d3acf7714e31e5fb234dfd 100644
--- a/src/js/walkPastJS.js
+++ b/src/js/walkPastJS.js
@@ -2,13 +2,19 @@
 /* eslint-disable no-undef */
 /* temporary container until the entire thing is complete. No point in not deploying the working functions, you know? */
 
-window.primeSlave = function(activeSlave, seed) {
+window.primeSlave = function (activeSlave, seed) {
 
 	/* will be moved up once this becomes a single, contained function. */
 	const V = State.variables;
 	const pronouns = getPronouns(activeSlave);
-	const he = pronouns.pronoun, him = pronouns.object, his = pronouns.possessive, hers = pronouns.possessivePronoun, himself = pronouns.objectReflexive, boy = pronouns.noun;
-	const He = capFirstChar(he), His = capFirstChar(his);
+	const he = pronouns.pronoun,
+		him = pronouns.object,
+		his = pronouns.possessive,
+		hers = pronouns.possessivePronoun,
+		himself = pronouns.objectReflexive,
+		boy = pronouns.noun;
+	const He = capFirstChar(he),
+		His = capFirstChar(his);
 	let _target = "";
 	let t = "";
 	let race = (V.seeRace ? activeSlave.race : "");
@@ -23,16 +29,23 @@ window.primeSlave = function(activeSlave, seed) {
 	return t;
 };
 
-window.rivalSlave = function(activeSlave, seed) {
+window.rivalSlave = function (activeSlave, seed) {
 	const V = State.variables;
 	const pronouns = getPronouns(activeSlave);
-	const he = pronouns.pronoun, him = pronouns.object, his = pronouns.possessive, hers = pronouns.possessivePronoun, himself = pronouns.objectReflexive, boy = pronouns.noun;
-	const He = capFirstChar(he), His = capFirstChar(his);
+	const he = pronouns.pronoun,
+		him = pronouns.object,
+		his = pronouns.possessive,
+		hers = pronouns.possessivePronoun,
+		himself = pronouns.objectReflexive,
+		boy = pronouns.noun;
+	const He = capFirstChar(he),
+		His = capFirstChar(his);
 	let _partnerSlave = getSlave(activeSlave.rivalryTarget);
 	let t = "";
 	let _target = "";
 
-	if (_partnerSlave !== undefined) { /* potential problem point */
+	if (_partnerSlave !== undefined) {
+		/* potential problem point */
 		// let race2 = (V.seeRace ? _partnerSlave.race : "");
 
 		t += " Meanwhile, ";
@@ -43,7 +56,7 @@ window.rivalSlave = function(activeSlave, seed) {
 		} else {
 			t += `${_partnerSlave.slaveName}, whom ${he} dislikes, `;
 		}
-		t += walkPasts(_partnerSlave, 100-seed);
+		t += walkPasts(_partnerSlave, 100 - seed);
 
 		_partnerSlave = null;
 		V.target = "FRival"; /* potentially removed later */
@@ -52,129 +65,150 @@ window.rivalSlave = function(activeSlave, seed) {
 	return t;
 };
 
-window.loverSlave = function(activeSlave) {
+window.loverSlave = function (activeSlave) {
 
-		/* will be moved up once this becomes a single, contained function. */
-		let _target = "";
-		let t = "";
-		let V = State.variables;
-		let race;
-		if (V.seeRace === 1) { race = activeSlave.race; } else { race = ""; }
-		let name = activeSlave.slaveName;
-		const pronouns = getPronouns(activeSlave);
-		const he = pronouns.pronoun, him = pronouns.object, his = pronouns.possessive, hers = pronouns.possessivePronoun, himself = pronouns.objectReflexive, boy = pronouns.noun;
-		const He = capFirstChar(he), His = capFirstChar(his);
+	/* will be moved up once this becomes a single, contained function. */
+	let _target = "";
+	let t = "";
+	let V = State.variables;
+	let race;
+	if (V.seeRace === 1) {
+		race = activeSlave.race;
+	} else {
+		race = "";
+	}
+	let name = activeSlave.slaveName;
+	const pronouns = getPronouns(activeSlave);
+	const he = pronouns.pronoun,
+		him = pronouns.object,
+		his = pronouns.possessive,
+		hers = pronouns.possessivePronoun,
+		himself = pronouns.objectReflexive,
+		boy = pronouns.noun;
+	const He = capFirstChar(he),
+		His = capFirstChar(his);
 
-		let _partnerSlave = getSlave(activeSlave.relationshipTarget);
-		let _fuckSeed = jsRandom(1, 100);
-		let _seed = jsRandom(1, 100);
-		let _fuckSpot;
+	let _partnerSlave = getSlave(activeSlave.relationshipTarget);
+	let _fuckSeed = jsRandom(1, 100);
+	let _seed = jsRandom(1, 100);
+	let _fuckSpot;
 
-		if (_partnerSlave !== undefined) {
+	if (_partnerSlave !== undefined) {
 
-			let pronouns2 = getPronouns(_partnerSlave);
-			let he2 = pronouns2.pronoun, him2 = pronouns2.object, his2 = pronouns2.possessive, hers2 = pronouns2.possessivePronoun, himself2 = pronouns2.objectReflexive, boy2 = pronouns2.noun;
-			let He2 = capFirstChar(he2), His2 = capFirstChar(his2);
-			let race2;
-			if (V.seeRace === 1) { race2 = _partnerSlave.race; } else { race2 = ""; }
-			let partnerName = _partnerSlave.slaveName;
-			let activeSlaveRel;
-			if (activeSlave.relationship <= 3) {
-				activeSlaveRel = "friend with benefits";
-			} else if (activeSlave.relationship <= 4) {
-				activeSlaveRel = "lover";
-			} else {
-				activeSlaveRel = "slave wife";
+		let pronouns2 = getPronouns(_partnerSlave);
+		let he2 = pronouns2.pronoun,
+			him2 = pronouns2.object,
+			his2 = pronouns2.possessive,
+			hers2 = pronouns2.possessivePronoun,
+			himself2 = pronouns2.objectReflexive,
+			boy2 = pronouns2.noun;
+		let He2 = capFirstChar(he2),
+			His2 = capFirstChar(his2);
+		let race2;
+		if (V.seeRace === 1) {
+			race2 = _partnerSlave.race;
+		} else {
+			race2 = "";
+		}
+		let partnerName = _partnerSlave.slaveName;
+		let activeSlaveRel;
+		if (activeSlave.relationship <= 3) {
+			activeSlaveRel = "friend with benefits";
+		} else if (activeSlave.relationship <= 4) {
+			activeSlaveRel = "lover";
+		} else {
+			activeSlaveRel = "slave wife";
+		}
+
+		t += `${name} and ${partnerName} are `;
+		if (!isSlaveAvailable(_partnerSlave)) {
+			if (_partnerSlave.assignment === "work in the dairy" && V.DairyRestraintsSetting >= 2) {
+				t += `trying their best to maintain their relationship with ${partnerName} being part of ${V.dairyName}.`;
+			} else if (_partnerSlave.assignment === "be your agent") {
+				t += `catching up with each other over a video call. Running an arcology in your stead comes with its perks.`;
+			} else if (_partnerSlave.assignment === "be confined in the arcade") {
+				t += `trying their best to maintain their relationship with ${partnerName} being nothing more than a hole in ${V.arcadeName}.`;
 			}
+		} else if (_seed >= 66) {
+			/* SEXY TIMES */
 
-			t += `${name} and ${partnerName} are `;
-			if (!isSlaveAvailable(_partnerSlave)) {
-				if (_partnerSlave.assignment === "work in the dairy" && V.DairyRestraintsSetting >= 2) {
-					t += `trying their best to maintain their relationship with ${partnerName} being part of ${V.dairyName}.`;
-				} else if (_partnerSlave.assignment === "be your agent") {
-					t += `catching up with each other over a video call. Running an arcology in your stead comes with its perks.`;
-				} else if (_partnerSlave.assignment === "be confined in the arcade") {
-					t += `trying their best to maintain their relationship with ${partnerName} being nothing more than a hole in ${V.arcadeName}.`;
-				}
-			} else if (_seed >= 66) { /* SEXY TIMES */
+			if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
+				_fuckSpot = `in ${partnerName}'s suite`;
+			} else if (activeSlave.livingRules === "luxurious") {
+				_fuckSpot = `in the nice little room they share`;
+			} else {
+				_fuckSpot = `out in the open in the slave dormitory`;
+			}
 
-				if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
-					_fuckSpot = `in ${partnerName}'s suite`;
-				} else if (activeSlave.livingRules === "luxurious") {
-					_fuckSpot = `in the nice little room they share`;
+			if ((activeSlave.fetish === "dom" || activeSlave.fetish === "sadist") && canPenetrate(activeSlave) && (_partnerSlave.fetish === "dom" || _partnerSlave.fetish === "sadist") && canPenetrate(_partnerSlave)) {
+				t += `double penetrating another slave. They're face to face over their sub's shoulders, `;
+				if (canSee(activeSlave) && canSee(_partnerSlave)) {
+					t += `looking into each other's eyes `;
 				} else {
-					_fuckSpot = `out in the open in the slave dormitory`;
+					t += `locking lips `;
 				}
-
-				if ((activeSlave.fetish === "dom" || activeSlave.fetish === "sadist") && canPenetrate(activeSlave) && (_partnerSlave.fetish === "dom" || _partnerSlave.fetish === "sadist") && canPenetrate(_partnerSlave)) {
-					t += `double penetrating another slave. They're face to face over their sub's shoulders, `;
-					if (canSee(activeSlave) && canSee(_partnerSlave)) {
-						t += `looking into each other's eyes `;
-					} else {
-						t += `locking lips `;
-					}
-					t += `with every appearance of enjoyment and love, since for them rubbing dicks inside another slave's pussy is what constitutes healthy sexual activity. ${partnerName} is on the bottom, and holds their victim atop ${him2} with ${partnerName}'s cock already hilted in her cunt so ${name} can force ${himself} inside as well. They enjoy the overstimulated girl's struggles.`;
-				} else if (activeSlave.energy > 95) {
-					t += `having loud sex ${_fuckSpot}. ${name} is such a sexual addict that ${he} wants it all the time, and ${partnerName} does ${his2} best to help ${his} ${activeSlaveRel} get off. `;
-					if (canPenetrate(activeSlave) && _fuckSeed > 50) {
-						if (canDoVaginal(_partnerSlave)) {
-							if (_partnerSlave.vagina === 0 && _partnerSlave.amp !== 1) {
-								t += `${name} has ${his} cock between ${partnerName}'s legs and is enjoying an enthusiastic thigh job.`;
-							} else if (_partnerSlave.vagina === 0) {
-								t += `${name} has ${his} cock between ${partnerName}'s labia and is enthusiastically teasing ${his} virgin lover.`;
-							} else if (_fuckSeed > 90 && _partnerSlave.amp !== 1) {
-								t += `${name} has ${partnerName} on ${his2} knees and is enthusiastically fucking ${his2} pussy doggy style.`;
-							} else if (_fuckSeed > 80 && activeSlave.amp !== 1) {
-								t += `${name} has ${partnerName} pushed against the wall is is fucking ${his2} pussy from behind.`;
-							} else if (_fuckSeed > 70) {
-								t += `${partnerName} has ${name} on ${his2} back and is enthusiastically bouncing on ${his2} dick.`;
-							} else if (_fuckSeed > 60) {
-								t += `${name} has ${partnerName} on ${his2} back and is enthusiastically fucking ${his2} pussy in the missionary position.`;
-							} else {
-								t += `${name} is enthusiastically fucking ${partnerName}'s pussy.`;
-							}
-						} else if (canDoAnal(_partnerSlave)) {
-							if (_partnerSlave.anus === 0) {
-								t += `${name} has ${his} cock sandwiched between ${partnerName}'s buttcheeks and is enthusiastically hotdogging ${his2} rear.`;
-							} else if (_fuckSeed > 90 && _partnerSlave.amp !== 1) {
-								t += `${name} has ${partnerName} on ${his2} knees and is enthusiastically fucking ${his2} ass doggy style.`;
-							} else if (_fuckSeed > 80 && activeSlave.amp !== 1) {
-								t += `${name} has ${partnerName} pushed against the wall is is fucking ${his2} ass from behind.`;
-							} else if (_fuckSeed > 70) {
-								t += `${partnerName} has ${name} on ${his} back and is enthusiastically bouncing on ${his} dick.`;
-							} else if (_fuckSeed > 60) {
-								t += `${name} has ${partnerName} on ${his2} stomach and is enthusiastically fucking ${his2} ass.`;
-							} else {
-								t += `${name} is enthusiastically fucking ${partnerName}'s ass.`;
-							}
-						} else if (_partnerSlave.boobs > 800) {
-							t += `${name} has ${partnerName} on ${his2} back and is enthusiastically fucking ${his2} tits.`;
+				t += `with every appearance of enjoyment and love, since for them rubbing dicks inside another slave's pussy is what constitutes healthy sexual activity. ${partnerName} is on the bottom, and holds their victim atop ${him2} with ${partnerName}'s cock already hilted in her cunt so ${name} can force ${himself} inside as well. They enjoy the overstimulated girl's struggles.`;
+			} else if (activeSlave.energy > 95) {
+				t += `having loud sex ${_fuckSpot}. ${name} is such a sexual addict that ${he} wants it all the time, and ${partnerName} does ${his2} best to help ${his} ${activeSlaveRel} get off. `;
+				if (canPenetrate(activeSlave) && _fuckSeed > 50) {
+					if (canDoVaginal(_partnerSlave)) {
+						if (_partnerSlave.vagina === 0 && _partnerSlave.amp !== 1) {
+							t += `${name} has ${his} cock between ${partnerName}'s legs and is enjoying an enthusiastic thigh job.`;
+						} else if (_partnerSlave.vagina === 0) {
+							t += `${name} has ${his} cock between ${partnerName}'s labia and is enthusiastically teasing ${his} virgin lover.`;
+						} else if (_fuckSeed > 90 && _partnerSlave.amp !== 1) {
+							t += `${name} has ${partnerName} on ${his2} knees and is enthusiastically fucking ${his2} pussy doggy style.`;
+						} else if (_fuckSeed > 80 && activeSlave.amp !== 1) {
+							t += `${name} has ${partnerName} pushed against the wall is is fucking ${his2} pussy from behind.`;
+						} else if (_fuckSeed > 70) {
+							t += `${partnerName} has ${name} on ${his2} back and is enthusiastically bouncing on ${his2} dick.`;
+						} else if (_fuckSeed > 60) {
+							t += `${name} has ${partnerName} on ${his2} back and is enthusiastically fucking ${his2} pussy in the missionary position.`;
 						} else {
-							t += `${name} has ${partnerName}'s face to ${his} crotch and is enthusiastically pounding ${his2} throat.`;
+							t += `${name} is enthusiastically fucking ${partnerName}'s pussy.`;
 						}
-					} else if (activeSlave.dick > 0 && _fuckSeed > 50) {
-						t += `${partnerName} has ${his2} lips wrapped around ${name}'s dick and is enthusiastically giving ${him} a blowjob.`;
-					} else if (canDoVaginal(activeSlave) && _fuckSeed > 30) {
-						if (canPenetrate(_partnerSlave) && activeSlave.vagina > 0) {
-							t += `${partnerName} is enthusiastically fucking ${name}'s pussy.`;
-						} else if (canDoVaginal(_partnerSlave)) {
-							t += `They're scissoring enthusiastically and playing with each other's breasts.`;
+					} else if (canDoAnal(_partnerSlave)) {
+						if (_partnerSlave.anus === 0) {
+							t += `${name} has ${his} cock sandwiched between ${partnerName}'s buttcheeks and is enthusiastically hotdogging ${his2} rear.`;
+						} else if (_fuckSeed > 90 && _partnerSlave.amp !== 1) {
+							t += `${name} has ${partnerName} on ${his2} knees and is enthusiastically fucking ${his2} ass doggy style.`;
+						} else if (_fuckSeed > 80 && activeSlave.amp !== 1) {
+							t += `${name} has ${partnerName} pushed against the wall is is fucking ${his2} ass from behind.`;
+						} else if (_fuckSeed > 70) {
+							t += `${partnerName} has ${name} on ${his} back and is enthusiastically bouncing on ${his} dick.`;
+						} else if (_fuckSeed > 60) {
+							t += `${name} has ${partnerName} on ${his2} stomach and is enthusiastically fucking ${his2} ass.`;
 						} else {
-							t += `${partnerName} is enthusiastically eating out ${name}'s pussy.`;
-						}
-					} else if (canDoAnal(activeSlave) && activeSlave.anus > 0 && _fuckSeed > 10) {
-						if (canPenetrate(_partnerSlave)) {
-							t += `${partnerName} is enthusiastically fucking ${name}'s ass.`;
-						} else if (_partnerSlave.amp !== 1) {
-							t += `${partnerName} is enthusiastically fisting ${name}'s ass.`;
-						} else {
-							t += `${partnerName} is enthusiastically pounding ${name}'s ass with a dildo.`;
+							t += `${name} is enthusiastically fucking ${partnerName}'s ass.`;
 						}
+					} else if (_partnerSlave.boobs > 800) {
+						t += `${name} has ${partnerName} on ${his2} back and is enthusiastically fucking ${his2} tits.`;
+					} else {
+						t += `${name} has ${partnerName}'s face to ${his} crotch and is enthusiastically pounding ${his2} throat.`;
+					}
+				} else if (activeSlave.dick > 0 && _fuckSeed > 50) {
+					t += `${partnerName} has ${his2} lips wrapped around ${name}'s dick and is enthusiastically giving ${him} a blowjob.`;
+				} else if (canDoVaginal(activeSlave) && _fuckSeed > 30) {
+					if (canPenetrate(_partnerSlave) && activeSlave.vagina > 0) {
+						t += `${partnerName} is enthusiastically fucking ${name}'s pussy.`;
+					} else if (canDoVaginal(_partnerSlave)) {
+						t += `They're scissoring enthusiastically and playing with each other's breasts.`;
+					} else {
+						t += `${partnerName} is enthusiastically eating out ${name}'s pussy.`;
+					}
+				} else if (canDoAnal(activeSlave) && activeSlave.anus > 0 && _fuckSeed > 10) {
+					if (canPenetrate(_partnerSlave)) {
+						t += `${partnerName} is enthusiastically fucking ${name}'s ass.`;
+					} else if (_partnerSlave.amp !== 1) {
+						t += `${partnerName} is enthusiastically fisting ${name}'s ass.`;
 					} else {
-						t += `${partnerName} is enthusiastically using ${his2} tongue to bring ${name} to orgasm.`;
+						t += `${partnerName} is enthusiastically pounding ${name}'s ass with a dildo.`;
 					}
-				} else if (activeSlave.fetishStrength > 60 && activeSlave.fetishKnown === 1 && activeSlave.fetish !== "none") {
-					switch (activeSlave.fetish) {
+				} else {
+					t += `${partnerName} is enthusiastically using ${his2} tongue to bring ${name} to orgasm.`;
+				}
+			} else if (activeSlave.fetishStrength > 60 && activeSlave.fetishKnown === 1 && activeSlave.fetish !== "none") {
+				switch (activeSlave.fetish) {
 					case "boobs":
 						if (_fuckSeed > 60 && (activeSlave.lactation > 0 || _partnerSlave.lactation > 0)) {
 							t += `snuggling rather sexually ${_fuckSpot}. `;
@@ -336,9 +370,9 @@ window.loverSlave = function(activeSlave) {
 							} else {
 								t += `is sating ${his} oral fixation for the moment by eagerly polishing ${his} ${activeSlaveRel}'s pearl.`;
 							}
-						} else if ( _partnerSlave.balls > 0) {
+						} else if (_partnerSlave.balls > 0) {
 							t += `${name} is eagerly lapping up ${his} ${activeSlaveRel}'s most recent load of cum.`;
-						} else if ( activeSlave.balls > 0) {
+						} else if (activeSlave.balls > 0) {
 							t += `${name} is locking lips with ${his} ${activeSlaveRel} after ${he2} just finished licking up all ${his} cum to share it with ${him}.`;
 						} else {
 							t += `They have locked lips and are enthusiastically making out.`;
@@ -844,152 +878,153 @@ window.loverSlave = function(activeSlave) {
 					default:
 						t += `having intimate sex ${_fuckSpot}.`;
 						break;
-					}
-				} else if (!activeSlave.need || activeSlave.energy < 20) {
-					t += `just spooning in bed. Since ${name} `;
-					if (activeSlave.energy < 20) {
-						t += `in sexually frigid, `;
-					} else {
-						t += `gets fucked at work, `;
-					}
-					t += `${partnerName} understands that what ${he} really wants from ${him2} is emotional intimacy. They're cuddling quietly, offering each other silent comfort and companionship.`;
-				} else if (canPenetrate(activeSlave) && (_partnerSlave.vagina > 0) && canDoVaginal(_partnerSlave) && _partnerSlave.amp !== 1 && (activeSlave.belly + _partnerSlave.belly < 10000)) {
-					if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
-						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
-						t += `in bed `;
-					} else {
-						t += `on ${name}'s bedroll `;
-					}
-					t += `${_fuckSpot}, making love in the missionary position. ${partnerName} has ${his2} legs wrapped around ${name}'s waist and ${his2} arms hugging ${him} around the chest, and is `;
-					if (canSee(_partnerSlave)) {
-						t += `looking deep into ${his} eyes `;
-					} else {
-						t += `gazing longingly into ${his} face `;
-					}
-					t += `as ${he2} enjoys the wonderful feeling of ${his2} ${activeSlaveRel}'s cock in ${his2} womanhood.`;
-				} else if (activeSlave.clit > 2 && canDoVaginal(activeSlave) && _partnerSlave.vagina > 0 && canDoVaginal(_partnerSlave) && _partnerSlave.amp !== 1 && (activeSlave.belly + _partnerSlave.belly < 10000)) {
-					if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
-						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
-						t += `in bed `;
-					} else {
-						t += `on ${name}'s bedroll `;
-					}
-					t += `${_fuckSpot}, making love in the missionary position. ${partnerName} has ${his2} legs wrapped around ${name}'s waist and ${his2} arms hugging ${him} around the chest, and is `;
-					if (canSee(_partnerSlave)) {
-						t += `looking deep into ${his} eyes `;
-					} else {
-						t += `gazing longingly into ${his} face `;
-					}
-					t += `as ${he2} enjoys the wonderful feeling of ${his2} ${activeSlaveRel}'s huge clit in ${his2} womanhood.`;
-				} else if (activeSlave.dick > 1 && canPenetrate(activeSlave) && canDoAnal(_partnerSlave) && _partnerSlave.anus > 0 && activeSlave.amp !== 1 && activeSlave.belly < 10000) {
-					if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
-						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
-						t += `in bed `;
-					} else {
-						t += `on ${name}'s bedroll `;
-					}
-					t += `${_fuckSpot}, having gentle anal sex while spooning. ${name} is enjoying ${partnerName}'s ass, and is doing ${his} best to ensure ${his} ${activeSlaveRel} enjoys being buttfucked. ${He}'s nibbling ${his} ${activeSlaveRel}'s `;
-					if (_partnerSlave.earShape !== "none") {
-						t +=`ears and `;
-					}
-					t += `neck, cupping a breast with one hand, and lightly stimulating ${him2} with the other.`;
-				} else if (activeSlave.clit > 2 && canDoAnal(_partnerSlave) && _partnerSlave.anus > 0 && _partnerSlave.amp !== 1 && activeSlave.amp !== 1) {
-					if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
-						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
-						t += `in bed `;
-					} else {
-						t += `on ${name}'s bedroll `;
-					}
-					t += `${_fuckSpot}, managing to have clitoral-anal sex. ${partnerName} is face-down with ${his2} ass up, spreading ${his2} buttocks as wide as possible, giving ${his2} ${activeSlaveRel} the opportunity to squat over ${him2} and penetrate it with ${his} huge, erect clit. ${name} can't thrust much, but the shocking lewdness of the act is enough for both of them.`;
-				} else if (canPenetrate(activeSlave) && _partnerSlave.amp !== 1 && activeSlave.amp !== 1 && activeSlave.belly < 10000) {
-					if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
-						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
-						t += `in bed `;
-					} else {
-						t += `on ${name}'s bedroll `;
-					}
-					t += `${_fuckSpot}, spooning while ${name} gently rubs ${his} cock between ${partnerName}'s thighs, pressed tightly together. Since ${partnerName} is a virgin, this is the closest they can come to penetrative intercourse, but ${name} is enjoying ${partnerName}'s body anyway, and is doing ${his} best to ensure ${his} ${activeSlaveRel} enjoys ${himself2}. ${He}'s nibbling ${his} ${activeSlaveRel}'s `;
-					if (_partnerSlave.earShape !== "none") {
-						t +=`ears and `;
-					}
-					t += `neck, cupping a breast with one hand, and lightly stimulating ${him2} with the other.`;
-				} else if (activeSlave.clit > 2 && canDoVaginal(activeSlave) && _partnerSlave.amp !== 1 && activeSlave.amp !== 1) {
-					if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
-						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
-						t += `in bed `;
-					} else {
-						t += `on ${name}'s bedroll `;
-					}
-					t += `${_fuckSpot}, with ${partnerName} down on ${his2} knees in front of ${name}. From behind ${partnerName} it looks like ${he2}'s giving ${his2} ${activeSlaveRel} a conventional, if enthusiastic, blowjob. Only on closer inspection does it become clear how unusual the oral is: ${name} has such a huge clit that ${his} ${activeSlaveRel} can suck ${him} off just like it were a penis.`;
-				} else if (_partnerSlave.vagina > 0 && canDoVaginal(_partnerSlave) && _partnerSlave.amp !== 1 && (activeSlave.belly + _partnerSlave.belly < 10000)) {
-					if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
-						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
-						t += `in bed `;
-					} else {
-						t += `on ${name}'s bedroll `;
-					}
-					t += `${_fuckSpot}, making love in the missionary position. ${partnerName} has ${his2} legs wrapped around ${name}'s waist and ${his2} arms hugging ${him} around the chest, and is `;
-					if (canSee(_partnerSlave)) {
-						t += `looking deep into ${his} eyes `;
-					} else {
-						t += `gazing longingly into ${his} face `;
-					}
-					t += `as ${he2} enjoys the feeling of ${his2} ${activeSlaveRel} fucking ${him2} with a strap-on.`;
-				} else if (_partnerSlave.anus > 0 && canDoAnal(_partnerSlave) && activeSlave.amp !== 1 && activeSlave.belly < 10000) {
-					if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
-						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
-						t += `in bed `;
-					} else {
-						t += `on ${name}'s bedroll `;
-					}
-					t += `${_fuckSpot}, having gentle anal sex while spooning. ${name} is enjoying penetrating ${partnerName}'s ass with a strap-on, and is doing ${his} best to ensure ${his} ${activeSlaveRel} enjoys being buttfucked. ${He}'s nibbling ${his} ${activeSlaveRel}'s `;
-					if (_partnerSlave.earShape !== "none") {
-						t +=`ears and `;
-					}
-					t += `neck, cupping a breast with one hand, and lightly stimulating ${him} with the other.`;
-				} else if (_partnerSlave.amp !== 1 && activeSlave.amp !== 1) {
-					if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
-						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
-						t += `in bed `;
-					} else {
-						t += `on ${name}'s bedroll `;
-					}
-					t += `${_fuckSpot}, enjoying some mutual masturbation.`;
-				} else if (_partnerSlave.amp === 1) {
-					t += `just cuddling `;
-					if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
-						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
-						t += `in bed `;
-					} else {
-						t += `on ${name}'s bedroll `;
-					}
-					t += `${_fuckSpot}. ${name} is using ${partnerName}'s limbless torso as a pillow, which ${partnerName} seems to be enjoying, by ${his2} contented expression.`;
+				}
+			} else if (!activeSlave.need || activeSlave.energy < 20) {
+				t += `just spooning in bed. Since ${name} `;
+				if (activeSlave.energy < 20) {
+					t += `in sexually frigid, `;
 				} else {
-					t += `just cuddling `;
-					if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
-						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
-						t += `in bed `;
-					} else {
-						t += `on ${name}'s bedroll `;
-					}
-					t += `${_fuckSpot}. They're lying quietly, offering each other silent comfort and companionship.`;
+					t += `gets fucked at work, `;
+				}
+				t += `${partnerName} understands that what ${he} really wants from ${him2} is emotional intimacy. They're cuddling quietly, offering each other silent comfort and companionship.`;
+			} else if (canPenetrate(activeSlave) && (_partnerSlave.vagina > 0) && canDoVaginal(_partnerSlave) && _partnerSlave.amp !== 1 && (activeSlave.belly + _partnerSlave.belly < 10000)) {
+				if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
+					t += `in bed `;
+				} else if (activeSlave.livingRules === "luxurious") {
+					t += `in bed `;
+				} else {
+					t += `on ${name}'s bedroll `;
+				}
+				t += `${_fuckSpot}, making love in the missionary position. ${partnerName} has ${his2} legs wrapped around ${name}'s waist and ${his2} arms hugging ${him} around the chest, and is `;
+				if (canSee(_partnerSlave)) {
+					t += `looking deep into ${his} eyes `;
+				} else {
+					t += `gazing longingly into ${his} face `;
+				}
+				t += `as ${he2} enjoys the wonderful feeling of ${his2} ${activeSlaveRel}'s cock in ${his2} womanhood.`;
+			} else if (activeSlave.clit > 2 && canDoVaginal(activeSlave) && _partnerSlave.vagina > 0 && canDoVaginal(_partnerSlave) && _partnerSlave.amp !== 1 && (activeSlave.belly + _partnerSlave.belly < 10000)) {
+				if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
+					t += `in bed `;
+				} else if (activeSlave.livingRules === "luxurious") {
+					t += `in bed `;
+				} else {
+					t += `on ${name}'s bedroll `;
+				}
+				t += `${_fuckSpot}, making love in the missionary position. ${partnerName} has ${his2} legs wrapped around ${name}'s waist and ${his2} arms hugging ${him} around the chest, and is `;
+				if (canSee(_partnerSlave)) {
+					t += `looking deep into ${his} eyes `;
+				} else {
+					t += `gazing longingly into ${his} face `;
+				}
+				t += `as ${he2} enjoys the wonderful feeling of ${his2} ${activeSlaveRel}'s huge clit in ${his2} womanhood.`;
+			} else if (activeSlave.dick > 1 && canPenetrate(activeSlave) && canDoAnal(_partnerSlave) && _partnerSlave.anus > 0 && activeSlave.amp !== 1 && activeSlave.belly < 10000) {
+				if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
+					t += `in bed `;
+				} else if (activeSlave.livingRules === "luxurious") {
+					t += `in bed `;
+				} else {
+					t += `on ${name}'s bedroll `;
+				}
+				t += `${_fuckSpot}, having gentle anal sex while spooning. ${name} is enjoying ${partnerName}'s ass, and is doing ${his} best to ensure ${his} ${activeSlaveRel} enjoys being buttfucked. ${He}'s nibbling ${his} ${activeSlaveRel}'s `;
+				if (_partnerSlave.earShape !== "none") {
+					t += `ears and `;
+				}
+				t += `neck, cupping a breast with one hand, and lightly stimulating ${him2} with the other.`;
+			} else if (activeSlave.clit > 2 && canDoAnal(_partnerSlave) && _partnerSlave.anus > 0 && _partnerSlave.amp !== 1 && activeSlave.amp !== 1) {
+				if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
+					t += `in bed `;
+				} else if (activeSlave.livingRules === "luxurious") {
+					t += `in bed `;
+				} else {
+					t += `on ${name}'s bedroll `;
+				}
+				t += `${_fuckSpot}, managing to have clitoral-anal sex. ${partnerName} is face-down with ${his2} ass up, spreading ${his2} buttocks as wide as possible, giving ${his2} ${activeSlaveRel} the opportunity to squat over ${him2} and penetrate it with ${his} huge, erect clit. ${name} can't thrust much, but the shocking lewdness of the act is enough for both of them.`;
+			} else if (canPenetrate(activeSlave) && _partnerSlave.amp !== 1 && activeSlave.amp !== 1 && activeSlave.belly < 10000) {
+				if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
+					t += `in bed `;
+				} else if (activeSlave.livingRules === "luxurious") {
+					t += `in bed `;
+				} else {
+					t += `on ${name}'s bedroll `;
+				}
+				t += `${_fuckSpot}, spooning while ${name} gently rubs ${his} cock between ${partnerName}'s thighs, pressed tightly together. Since ${partnerName} is a virgin, this is the closest they can come to penetrative intercourse, but ${name} is enjoying ${partnerName}'s body anyway, and is doing ${his} best to ensure ${his} ${activeSlaveRel} enjoys ${himself2}. ${He}'s nibbling ${his} ${activeSlaveRel}'s `;
+				if (_partnerSlave.earShape !== "none") {
+					t += `ears and `;
+				}
+				t += `neck, cupping a breast with one hand, and lightly stimulating ${him2} with the other.`;
+			} else if (activeSlave.clit > 2 && canDoVaginal(activeSlave) && _partnerSlave.amp !== 1 && activeSlave.amp !== 1) {
+				if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
+					t += `in bed `;
+				} else if (activeSlave.livingRules === "luxurious") {
+					t += `in bed `;
+				} else {
+					t += `on ${name}'s bedroll `;
+				}
+				t += `${_fuckSpot}, with ${partnerName} down on ${his2} knees in front of ${name}. From behind ${partnerName} it looks like ${he2}'s giving ${his2} ${activeSlaveRel} a conventional, if enthusiastic, blowjob. Only on closer inspection does it become clear how unusual the oral is: ${name} has such a huge clit that ${his} ${activeSlaveRel} can suck ${him} off just like it were a penis.`;
+			} else if (_partnerSlave.vagina > 0 && canDoVaginal(_partnerSlave) && _partnerSlave.amp !== 1 && (activeSlave.belly + _partnerSlave.belly < 10000)) {
+				if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
+					t += `in bed `;
+				} else if (activeSlave.livingRules === "luxurious") {
+					t += `in bed `;
+				} else {
+					t += `on ${name}'s bedroll `;
+				}
+				t += `${_fuckSpot}, making love in the missionary position. ${partnerName} has ${his2} legs wrapped around ${name}'s waist and ${his2} arms hugging ${him} around the chest, and is `;
+				if (canSee(_partnerSlave)) {
+					t += `looking deep into ${his} eyes `;
+				} else {
+					t += `gazing longingly into ${his} face `;
+				}
+				t += `as ${he2} enjoys the feeling of ${his2} ${activeSlaveRel} fucking ${him2} with a strap-on.`;
+			} else if (_partnerSlave.anus > 0 && canDoAnal(_partnerSlave) && activeSlave.amp !== 1 && activeSlave.belly < 10000) {
+				if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
+					t += `in bed `;
+				} else if (activeSlave.livingRules === "luxurious") {
+					t += `in bed `;
+				} else {
+					t += `on ${name}'s bedroll `;
+				}
+				t += `${_fuckSpot}, having gentle anal sex while spooning. ${name} is enjoying penetrating ${partnerName}'s ass with a strap-on, and is doing ${his} best to ensure ${his} ${activeSlaveRel} enjoys being buttfucked. ${He}'s nibbling ${his} ${activeSlaveRel}'s `;
+				if (_partnerSlave.earShape !== "none") {
+					t += `ears and `;
+				}
+				t += `neck, cupping a breast with one hand, and lightly stimulating ${him} with the other.`;
+			} else if (_partnerSlave.amp !== 1 && activeSlave.amp !== 1) {
+				if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
+					t += `in bed `;
+				} else if (activeSlave.livingRules === "luxurious") {
+					t += `in bed `;
+				} else {
+					t += `on ${name}'s bedroll `;
+				}
+				t += `${_fuckSpot}, enjoying some mutual masturbation.`;
+			} else if (_partnerSlave.amp === 1) {
+				t += `just cuddling `;
+				if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
+					t += `in bed `;
+				} else if (activeSlave.livingRules === "luxurious") {
+					t += `in bed `;
+				} else {
+					t += `on ${name}'s bedroll `;
+				}
+				t += `${_fuckSpot}. ${name} is using ${partnerName}'s limbless torso as a pillow, which ${partnerName} seems to be enjoying, by ${his2} contented expression.`;
+			} else {
+				t += `just cuddling `;
+				if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
+					t += `in bed `;
+				} else if (activeSlave.livingRules === "luxurious") {
+					t += `in bed `;
+				} else {
+					t += `on ${name}'s bedroll `;
 				}
-			} else if (_seed >= 33) { /* CUDDLE TIME */
-				if (activeSlave.energy > 95 && _fuckSeed > 70) {
-					t += `lying in bed together. ${partnerName} has somehow managed to exhaust ${his2} ${activeSlaveRel}, and the sexually sated nympho is curled up with ${his} head on ${partnerName}'s chest, snoring lightly. ${partnerName} is smiling fondly at ${him}.`;
-				} else if (activeSlave.fetish !== "none" && _fuckSeed > 50) {
-					switch (activeSlave.fetish) {
+				t += `${_fuckSpot}. They're lying quietly, offering each other silent comfort and companionship.`;
+			}
+		} else if (_seed >= 33) {
+			/* CUDDLE TIME */
+			if (activeSlave.energy > 95 && _fuckSeed > 70) {
+				t += `lying in bed together. ${partnerName} has somehow managed to exhaust ${his2} ${activeSlaveRel}, and the sexually sated nympho is curled up with ${his} head on ${partnerName}'s chest, snoring lightly. ${partnerName} is smiling fondly at ${him}.`;
+			} else if (activeSlave.fetish !== "none" && _fuckSeed > 50) {
+				switch (activeSlave.fetish) {
 					case "boobs":
 						t += `sleeping in bed together. ${name} is using ${partnerName}'s `;
 						if (_partnerSlave.boobs > 10000) {
@@ -1077,24 +1112,25 @@ window.loverSlave = function(activeSlave) {
 							t += `${name} is being spooned by ${his} ${activeSlaveRel}, smiling peacefully at being held.`;
 						}
 						break;
-					
-					}
-				} else if (_partnerSlave.dick > 6 && activeSlave.amp !== 1 && _fuckSeed > 30) {
-					t += `sleeping in bed together. ${name} is cuddled up close to ${partnerName}, and is cradling ${his} ${activeSlaveRel}'s enormous, soft cock with one hand.`;
-				} else if (activeSlave.height > _partnerSlave.height + 10) {
-					t += `sleeping in bed together, with the taller ${name} curled around ${his} little ${activeSlaveRel}.`;
-				} else if (_partnerSlave.height > activeSlave.height + 10) {
-					t += `sleeping in bed together, with the shorter ${name} curled under ${his} ${activeSlaveRel}.`;
-				} else if (activeSlave.amp === 1) {
-					t += `sleeping in bed together; ${partnerName} is using ${his2} limbless ${activeSlaveRel} as a pillow.`;
-				} else if (_partnerSlave.amp !== 1) {
-					t += `resting in bed together, holding hands in their sleep.`;
-				} else {
-					t += `sleeping quietly in bed together.`;
+
 				}
-			} else { /* TOGETHER TIME */
-				if (_fuckSeed > 75 && activeSlave.behavioralQuirk !== "none") {
-					switch (activeSlave.behavioralQuirk) {
+			} else if (_partnerSlave.dick > 6 && activeSlave.amp !== 1 && _fuckSeed > 30) {
+				t += `sleeping in bed together. ${name} is cuddled up close to ${partnerName}, and is cradling ${his} ${activeSlaveRel}'s enormous, soft cock with one hand.`;
+			} else if (activeSlave.height > _partnerSlave.height + 10) {
+				t += `sleeping in bed together, with the taller ${name} curled around ${his} little ${activeSlaveRel}.`;
+			} else if (_partnerSlave.height > activeSlave.height + 10) {
+				t += `sleeping in bed together, with the shorter ${name} curled under ${his} ${activeSlaveRel}.`;
+			} else if (activeSlave.amp === 1) {
+				t += `sleeping in bed together; ${partnerName} is using ${his2} limbless ${activeSlaveRel} as a pillow.`;
+			} else if (_partnerSlave.amp !== 1) {
+				t += `resting in bed together, holding hands in their sleep.`;
+			} else {
+				t += `sleeping quietly in bed together.`;
+			}
+		} else {
+			/* TOGETHER TIME */
+			if (_fuckSeed > 75 && activeSlave.behavioralQuirk !== "none") {
+				switch (activeSlave.behavioralQuirk) {
 					case "confident":
 						t += `finishing up a meal together. ${name} `;
 						if (canTalk(activeSlave) && canHear(_partnerSlave)) {
@@ -1181,68 +1217,74 @@ window.loverSlave = function(activeSlave) {
 							}
 						}
 						break;
-					
-					}
-				} else if (_fuckSeed > 50) {
-					if ((activeSlave.actualAge >= _partnerSlave.actualAge + 10) && canTalk(_partnerSlave) && canHear(activeSlave)) {
-						t += `tidying up their room together. ${partnerName} is chattering about ${his2} day, while ${name} listens quietly, smiling fondly at ${his} ${activeSlaveRel}'s prattle.`;
-					} else if ((_partnerSlave.actualAge >= activeSlave.actualAge + 10) && canTalk(activeSlave) && canHear(_partnerSlave)) {
-						t += `tidying up their room together. ${name} is chattering about ${his} day, while ${partnerName} listens quietly, smiling fondly at ${his2} ${activeSlaveRel}'s prattle.`;
-					} else if (activeSlave.amp !== 1 && !canTalk(activeSlave) && canSee(_partnerSlave)) {
-						t += `getting ready for bed. ${name} is using gestures to tell ${his} ${activeSlaveRel} about ${his} day; ${partnerName} is very patient and does ${his2} best to follow.`;
-					} else if (canTalk(activeSlave) && canTalk(_partnerSlave) && canHear(activeSlave) && canHear(_partnerSlave)) {
-						t += `tidying up their room together. ${name} and ${partnerName} are chattering away over inconsequential things.`;
-					} else if (canSee(activeSlave) && canSee(_partnerSlave) && activeSlave.amp !== 1 && _partnerSlave.amp !== 1) {
-						t += `getting ready for bed. ${name} and ${partnerName} are rapidly gesturing to each other about their days.`;
+
+				}
+			} else if (_fuckSeed > 50) {
+				if ((activeSlave.actualAge >= _partnerSlave.actualAge + 10) && canTalk(_partnerSlave) && canHear(activeSlave)) {
+					t += `tidying up their room together. ${partnerName} is chattering about ${his2} day, while ${name} listens quietly, smiling fondly at ${his} ${activeSlaveRel}'s prattle.`;
+				} else if ((_partnerSlave.actualAge >= activeSlave.actualAge + 10) && canTalk(activeSlave) && canHear(_partnerSlave)) {
+					t += `tidying up their room together. ${name} is chattering about ${his} day, while ${partnerName} listens quietly, smiling fondly at ${his2} ${activeSlaveRel}'s prattle.`;
+				} else if (activeSlave.amp !== 1 && !canTalk(activeSlave) && canSee(_partnerSlave)) {
+					t += `getting ready for bed. ${name} is using gestures to tell ${his} ${activeSlaveRel} about ${his} day; ${partnerName} is very patient and does ${his2} best to follow.`;
+				} else if (canTalk(activeSlave) && canTalk(_partnerSlave) && canHear(activeSlave) && canHear(_partnerSlave)) {
+					t += `tidying up their room together. ${name} and ${partnerName} are chattering away over inconsequential things.`;
+				} else if (canSee(activeSlave) && canSee(_partnerSlave) && activeSlave.amp !== 1 && _partnerSlave.amp !== 1) {
+					t += `getting ready for bed. ${name} and ${partnerName} are rapidly gesturing to each other about their days.`;
+				} else {
+					t += `getting ready for bed. ${name} and ${his} ${activeSlaveRel}, ${partnerName}, are leaning against one another, just enjoying each other's warmth.`;
+				}
+			} else if (_fuckSeed > 25) {
+				t += `using some of their free time to `;
+				if (!canWalk(activeSlave) && canWalk(_partnerSlave)) {
+					if (canSee(activeSlave) && canSee(_partnerSlave)) {
+						t += `watch the weather; ${partnerName} helped ${his2} ${activeSlaveRel} to a window so ${he} could look out with ${him2}.`;
 					} else {
-						t += `getting ready for bed. ${name} and ${his} ${activeSlaveRel}, ${partnerName}, are leaning against one another, just enjoying each other's warmth.`;
+						t += `get some fresh air; ${partnerName} helped ${his2} ${activeSlaveRel} to a balcony so ${he} could enjoy the breeze with ${him2}.`;
 					}
-				} else if (_fuckSeed > 25) {
-					t += `using some of their free time to `;
-					if (!canWalk(activeSlave) && canWalk(_partnerSlave)) {
-						if (canSee(activeSlave) && canSee(_partnerSlave)) {
-							t += `watch the weather; ${partnerName} helped ${his2} ${activeSlaveRel} to a window so ${he} could look out with ${him2}.`;
-						} else {
-							t += `get some fresh air; ${partnerName} helped ${his2} ${activeSlaveRel} to a balcony so ${he} could enjoy the breeze with ${him2}.`;
-						}
-					} else if (!canWalk(_partnerSlave) && canWalk(activeSlave)) {
-						if (canSee(activeSlave) && canSee(_partnerSlave)) {
-							t += `watch the weather; ${name} helped ${his} ${activeSlaveRel} to a window so ${he2} could look out with ${him}.`;
-						} else {
-							t += `get some fresh air; ${name} helped ${his} ${activeSlaveRel} to a balcony so ${he2} could enjoy the breeze with ${him}.`;
-						}
+				} else if (!canWalk(_partnerSlave) && canWalk(activeSlave)) {
+					if (canSee(activeSlave) && canSee(_partnerSlave)) {
+						t += `watch the weather; ${name} helped ${his} ${activeSlaveRel} to a window so ${he2} could look out with ${him}.`;
 					} else {
-						t += `rest on one of the penthouse balconies and enjoy the weather.`;
+						t += `get some fresh air; ${name} helped ${his} ${activeSlaveRel} to a balcony so ${he2} could enjoy the breeze with ${him}.`;
 					}
 				} else {
-					if (V.cockFeeder === 1) {
-						t += `taking in a meal together; they've chosen dispensers next to each other and are slurping away.`;
-					} else if (V.suppository === 1) {
-						t += `taking their drugs together; they've chosen fuckmachines next to each other and are `;
-						if (canTalk(activeSlave) && canTalk(_partnerSlave) && canHear(activeSlave) && canHear(_partnerSlave)) {
-							t += `chatting quietly as they're sodomized.`;
-						} else {
-							t += `enjoying their mutual sodomy.`;
-						}
+					t += `rest on one of the penthouse balconies and enjoy the weather.`;
+				}
+			} else {
+				if (V.cockFeeder === 1) {
+					t += `taking in a meal together; they've chosen dispensers next to each other and are slurping away.`;
+				} else if (V.suppository === 1) {
+					t += `taking their drugs together; they've chosen fuckmachines next to each other and are `;
+					if (canTalk(activeSlave) && canTalk(_partnerSlave) && canHear(activeSlave) && canHear(_partnerSlave)) {
+						t += `chatting quietly as they're sodomized.`;
 					} else {
-						t += `eating a quiet meal together.`;
+						t += `enjoying their mutual sodomy.`;
 					}
+				} else {
+					t += `eating a quiet meal together.`;
 				}
 			}
-			/* CLOSE SEXY/CUDDLE/TOGETHER TIME */
-
-			V.target = "FRelation";
-		} else {
-			t += ` Lover not found!`;
 		}
-		return t;
+		/* CLOSE SEXY/CUDDLE/TOGETHER TIME */
+
+		V.target = "FRelation";
+	} else {
+		t += ` Lover not found!`;
+	}
+	return t;
 };
 
-window.relatedSlave = function(activeSlave) {
+window.relatedSlave = function (activeSlave) {
 	const V = State.variables;
 	const pronouns = getPronouns(activeSlave);
-	const he = pronouns.pronoun, him = pronouns.object, his = pronouns.possessive, hers = pronouns.possessivePronoun, himself = pronouns.objectReflexive, boy = pronouns.noun;
-	const He = capFirstChar(he), His = capFirstChar(his);
+	const he = pronouns.pronoun,
+		him = pronouns.object,
+		his = pronouns.possessive,
+		hers = pronouns.possessivePronoun,
+		himself = pronouns.objectReflexive,
+		boy = pronouns.noun;
+	const He = capFirstChar(he),
+		His = capFirstChar(his);
 	let t = "";
 	let activeSlaveRel;
 	let partnerSlave;
@@ -1260,7 +1302,8 @@ window.relatedSlave = function(activeSlave) {
 		partnerSlave = getSlave(activeSlave.relationshipTarget);
 	}
 
-	if (partnerSlave !== undefined) { /* potential problem point */
+	if (partnerSlave !== undefined) {
+		/* potential problem point */
 
 		t += ` ${His} `;
 		if (V.partner === "relation") {
@@ -1283,35 +1326,84 @@ window.relatedSlave = function(activeSlave) {
 	return t;
 };
 
-window.walkPasts = function(slave, _seed) {
+window.walkPasts = function (slave, _seed) {
 
 	/* will be moved up once this becomes a single, contained function. */
 	const V = State.variables;
 	const pronouns = getPronouns(slave);
-	const he = pronouns.pronoun, him = pronouns.object, his = pronouns.possessive, hers = pronouns.possessivePronoun, himself = pronouns.objectReflexive, boy = pronouns.noun;
-	const He = capFirstChar(he), His = capFirstChar(his);
+	const he = pronouns.pronoun,
+		him = pronouns.object,
+		his = pronouns.possessive,
+		hers = pronouns.possessivePronoun,
+		himself = pronouns.objectReflexive,
+		boy = pronouns.noun;
+	const He = capFirstChar(he),
+		His = capFirstChar(his);
 	let _target = "";
 	let t = "";
 	let race = (V.seeRace ? slave.race : "");
 
 	switch (slave.assignment) {
-	case "be your agent":
-		t += `is shaping society in ${his} assigned arcology.`;
-		break;
-	case "live with your agent":
-		t += `is helping ${his} lover shape society in ${his} assigned arcology.`;
-		break;
-	case "work in the dairy":
-		if (V.dairyRestraintsSetting > 1) {
-			t += `is strapped to a milking machine in ${V.dairyName}, `;
-			if (slave.ovaries === 1 && V.dairyPregSetting > 0 && jsRandom(1, 2) === 2) {
-				if (isFertile(slave)) {
-					t += `and is wincing in pain as the machine forces another load of cum into ${his} womb. As you watch, ${his} ${race} stomach steadily swells with baby batter.`;
-				} else {
-					t += `giving you a good view of ${his} ${race} body and heavy belly on the feeds.`;
-				}
-			} else if (slave.lactation > 0) {
-				if (slave.balls > 0 && jsRandom(1, 2) === 1) {
+		case "be your agent":
+			t += `is shaping society in ${his} assigned arcology.`;
+			break;
+		case "live with your agent":
+			t += `is helping ${his} lover shape society in ${his} assigned arcology.`;
+			break;
+		case "work in the dairy":
+			if (V.dairyRestraintsSetting > 1) {
+				t += `is strapped to a milking machine in ${V.dairyName}, `;
+				if (slave.ovaries === 1 && V.dairyPregSetting > 0 && jsRandom(1, 2) === 2) {
+					if (isFertile(slave)) {
+						t += `and is wincing in pain as the machine forces another load of cum into ${his} womb. As you watch, ${his} ${race} stomach steadily swells with baby batter.`;
+					} else {
+						t += `giving you a good view of ${his} ${race} body and heavy belly on the feeds.`;
+					}
+				} else if (slave.lactation > 0) {
+					if (slave.balls > 0 && jsRandom(1, 2) === 1) {
+						if (slave.dick > 0) {
+							if (_seed > 50) {
+								t += `and is having ${his} cock sucked dry. As you watch, `;
+								if (slave.scrotum) {
+									t += `${his} balls tighten `;
+								} else {
+									t += `${he} begins to thrust harder `;
+								}
+								if (V.dairyStimulatorsSetting > 0) {
+									t += `as the phallus up ${his} butt `;
+								} else {
+									t += `as the suction to ${his} dick `;
+								}
+								t += `forces ${him} closer to yet another ejaculation.`;
+							} else {
+								t += `and is wincing in pain as the machine sucks ${his} sore cock, but you have a good view of ${his} ${race} body on the feeds.`;
+							}
+						} else {
+							if (_seed > 50) {
+								t += `and is having ${his} balls sucked dry. As you watch, `;
+								if (slave.scrotum) {
+									t += `${his} scrotum tightens `;
+								} else {
+									t += `${he} begins to thrust harder `;
+								}
+								if (V.dairyStimulatorsSetting) {
+									t += `as the phallus up ${his} butt `;
+								} else {
+									t += `as the suction against ${his} crotch `;
+								}
+								t += `forces ${him} closer to yet another leaking ejaculation.`;
+							} else {
+								t += `and is wincing in pain as the machine sucks ${his} empty balls, but you have a good view of ${his} ${race} body on the feeds.`;
+							}
+						}
+					} else {
+						if (_seed > 50) {
+							t += `and is having ${his} tits drained, but you have a good view of ${his} ${race} body on the feeds.`;
+						} else {
+							t += `and is recovering after having ${his} tits sucked dry, but you have a good view of ${his} ${race} body on the feeds.`;
+						}
+					}
+				} else if (slave.balls > 0) {
 					if (slave.dick > 0) {
 						if (_seed > 50) {
 							t += `and is having ${his} cock sucked dry. As you watch, `;
@@ -1348,55 +1440,55 @@ window.walkPasts = function(slave, _seed) {
 						}
 					}
 				} else {
-					if (_seed > 50) {
-						t += `and is having ${his} tits drained, but you have a good view of ${his} ${race} body on the feeds.`;
-					} else {
-						t += `and is recovering after having ${his} tits sucked dry, but you have a good view of ${his} ${race} body on the feeds.`;
-					}
+					t += `and is massaging ${his} sore, milkless tits, but you have a good view of ${his} ${race} body on the feeds.`;
 				}
-			} else if (slave.balls > 0) {
-				if (slave.dick > 0) {
-					if (_seed > 50) {
-						t += `and is having ${his} cock sucked dry. As you watch, `;
-						if (slave.scrotum) {
-							t += `${his} balls tighten `;
-						} else {
-							t += `${he} begins to thrust harder `;
-						}
-						if (V.dairyStimulatorsSetting > 0) {
-							t += `as the phallus up ${his} butt `;
+			} else {
+				t += `is working in ${V.dairyName}, `;
+				if (slave.lactation > 0) {
+					if (slave.balls > 0 && jsRandom(1, 2) === 1) {
+						if (slave.dick > 0) {
+							if (_seed > 50) {
+								t += `and is having ${his} cock milked. As you watch, `;
+								if (slave.scrotum) {
+									t += `${his} balls tighten `;
+								} else {
+									t += `${he} begins to thrust harder `;
+								}
+								if (V.dairyStimulatorsSetting > 0) {
+									t += `as the phallus up ${his} butt `;
+								} else {
+									t += `as the suction to ${his} dick `;
+								}
+								t += `brings ${him} closer to a copious ejaculation.`;
+							} else {
+								t += `and is massaging ${his} sore swollen cock, but you have a good view of ${his} ${race} body on the feeds.`;
+							}
 						} else {
-							t += `as the suction to ${his} dick `;
+							if (_seed > 50) {
+								t += `and is having ${his} balls drained. As you watch, `;
+								if (slave.scrotum) {
+									t += `${his} scrotum tightens `;
+								} else {
+									t += `${he} begins to thrust harder `;
+								}
+								if (V.dairyStimulatorsSetting) {
+									t += `as the phallus up ${his} butt `;
+								} else {
+									t += `as the suction against ${his} crotch `;
+								}
+								t += `brings ${him} closer to a copious squirting.`;
+							} else {
+								t += `and is massaging ${his} aching balls, but you have a good view of ${his} ${race} body on the feeds.`;
+							}
 						}
-						t += `forces ${him} closer to yet another ejaculation.`;
 					} else {
-						t += `and is wincing in pain as the machine sucks ${his} sore cock, but you have a good view of ${his} ${race} body on the feeds.`;
-					}
-				} else {
-					if (_seed > 50) {
-						t += `and is having ${his} balls sucked dry. As you watch, `;
-						if (slave.scrotum) {
-							t += `${his} scrotum tightens `;
-						} else {
-							t += `${he} begins to thrust harder `;
-						}
-						if (V.dairyStimulatorsSetting) {
-							t += `as the phallus up ${his} butt `;
+						if (_seed > 50) {
+							t += `and is having ${his} tits milked, but you have a good view of ${his} ${race} body on the feeds.`;
 						} else {
-							t += `as the suction against ${his} crotch `;
+							t += `and is massaging ${his} sore tits, but you have a good view of ${his} ${race} body on the feeds.`;
 						}
-						t += `forces ${him} closer to yet another leaking ejaculation.`;
-					} else {
-						t += `and is wincing in pain as the machine sucks ${his} empty balls, but you have a good view of ${his} ${race} body on the feeds.`;
 					}
-				}
-			} else {
-				t += `and is massaging ${his} sore, milkless tits, but you have a good view of ${his} ${race} body on the feeds.`;
-			}
-		} else {
-			t += `is working in ${V.dairyName}, `;
-			if (slave.lactation > 0) {
-				if (slave.balls > 0 && jsRandom(1, 2) === 1) {
+				} else if (slave.balls > 0) {
 					if (slave.dick > 0) {
 						if (_seed > 50) {
 							t += `and is having ${his} cock milked. As you watch, `;
@@ -1405,7 +1497,7 @@ window.walkPasts = function(slave, _seed) {
 							} else {
 								t += `${he} begins to thrust harder `;
 							}
-							if (V.dairyStimulatorsSetting > 0) {
+							if (V.dairyStimulatorsSetting) {
 								t += `as the phallus up ${his} butt `;
 							} else {
 								t += `as the suction to ${his} dick `;
@@ -1433,451 +1525,415 @@ window.walkPasts = function(slave, _seed) {
 						}
 					}
 				} else {
-					if (_seed > 50) {
-						t += `and is having ${his} tits milked, but you have a good view of ${his} ${race} body on the feeds.`;
+					t += `and is massaging ${his} sore, milkless tits, but you have a good view of ${his} ${race} body on the feeds.`;
+				}
+			}
+			break;
+		case "work in the brothel":
+			t += `is working in ${V.brothelName}, and is `;
+			if (Beauty(slave) > 100 && jsRandom(1, 2) === 1) {
+				if (_seed > 80) {
+					if (canDoAnal(slave) || canDoVaginal(slave)) {
+						t += `riding one customer's dick while ${he} gives another a blowjob.`;
 					} else {
-						t += `and is massaging ${his} sore tits, but you have a good view of ${his} ${race} body on the feeds.`;
+						t += `deep throating a pair of customer's dicks.`;
 					}
-				}
-			} else if (slave.balls > 0) {
-				if (slave.dick > 0) {
-					if (_seed > 50) {
-						t += `and is having ${his} cock milked. As you watch, `;
-						if (slave.scrotum) {
-							t += `${his} balls tighten `;
-						} else {
-							t += `${he} begins to thrust harder `;
-						}
-						if (V.dairyStimulatorsSetting) {
-							t += `as the phallus up ${his} butt `;
-						} else {
-							t += `as the suction to ${his} dick `;
-						}
-						t += `brings ${him} closer to a copious ejaculation.`;
+				} else if (_seed > 60 && slave.amp !== 1) {
+					t += `sucking one customer's cock while giving another a handjob.`;
+				} else if (_seed > 40) {
+					t += `eating out one customer's cunt while another `;
+					if (canDoAnal(slave) || canDoVaginal(slave)) {
+						t += `uses a strap-on on ${him}.`;
+					} else {
+						t += `teases ${his} butt.`;
+					}
+				} else if (_seed > 20) {
+					if (canDoAnal(slave) || canDoVaginal(slave)) {
+						t += `getting pounded by `;
 					} else {
-						t += `and is massaging ${his} sore swollen cock, but you have a good view of ${his} ${race} body on the feeds.`;
+						t += `amusing `;
 					}
+					t += `two women wearing strap-ons.`;
 				} else {
-					if (_seed > 50) {
-						t += `and is having ${his} balls drained. As you watch, `;
-						if (slave.scrotum) {
-							t += `${his} scrotum tightens `;
-						} else {
-							t += `${he} begins to thrust harder `;
-						}
-						if (V.dairyStimulatorsSetting) {
-							t += `as the phallus up ${his} butt `;
-						} else {
-							t += `as the suction against ${his} crotch `;
-						}
-						t += `brings ${him} closer to a copious squirting.`;
+					if (canDoAnal(slave) || canDoVaginal(slave)) {
+						t += `being double penetrated by `;
 					} else {
-						t += `and is massaging ${his} aching balls, but you have a good view of ${his} ${race} body on the feeds.`;
+						t += `using ${his} body to please `;
 					}
+					t += `a pair of customers.`;
 				}
-			} else {
-				t += `and is massaging ${his} sore, milkless tits, but you have a good view of ${his} ${race} body on the feeds.`;
-			}
-		}
-		break;
-	case "work in the brothel":
-		t += `is working in ${V.brothelName}, and is `;
-		if (Beauty(slave) > 100 && jsRandom(1, 2) === 1) {
-			if (_seed > 80) {
+			} else if (_seed > 80) {
 				if (canDoAnal(slave) || canDoVaginal(slave)) {
-					t += `riding one customer's dick while ${he} gives another a blowjob.`;
+					t += `pleasing `;
 				} else {
-					t += `deep throating a pair of customer's dicks.`;
+					t += `riding `;
 				}
-			} else if (_seed > 60 && slave.amp !== 1) {
-				t += `sucking one customer's cock while giving another a handjob.`;
+				t += `a customer's dick.`;
+			} else if (_seed > 60) {
+				t += `sucking a customer's cock.`;
 			} else if (_seed > 40) {
-				t += `eating out one customer's cunt while another `;
-				if (canDoAnal(slave) || canDoVaginal(slave)) {
-					t += `uses a strap-on on ${him}.`;
+				t += `pleasuring a customer's cunt.`;
+			} else if (_seed > 20) {
+				t += `getting pounded by a woman wearing a strap-on.`;
+			} else {
+				t += `being held down and `;
+				if (canDoAnal(slave)) {
+					t += `buttfucked `;
 				} else {
-					t += `teases ${his} butt.`;
+					t += `raped `;
 				}
-			} else if (_seed > 20) {
-				if (canDoAnal(slave) || canDoVaginal(slave)) {
-					t += `getting pounded by `;
+				t += `by a customer.`;
+			}
+			t += ` You have a voyeuristic view of ${his} ${race} body on the feeds.`;
+			break;
+		case "serve in the club":
+			t += `is working in ${V.clubName}, `;
+			if (_seed > 50) {
+				t += `displaying ${his} ${race} body, keeping citizens company, and flirting with anyone who shows interest.`;
+			} else {
+				t += `or rather just off it, having taken a prominent citizen back to a discreet room so he can use ${his} ${race} body.`;
+			}
+			break;
+		case "work as a servant":
+			if (_seed > 50) {
+				t += `was scrubbing the penthouse floor, until another slave requested oral service.`;
+			} else {
+				t += `is scrubbing the penthouse floor.`;
+			}
+			break;
+		case "serve in the master suite":
+			if (slave.fuckdoll > 0) {
+				t += `waiting for use in ${V.masterSuiteName}, next to a display case full of other sex toys.`;
+			} else if (V.masterSuiteUpgradeLuxury === 1) {
+				if (_seed > 50) {
+					t += `is sitting on the big bed in ${V.masterSuiteName}, awaiting your return.`;
 				} else {
-					t += `amusing `;
+					t += `is beautifying ${himself} in ${V.masterSuiteName} so ${he}'ll be pretty when you return.`;
+				}
+			} else if (V.masterSuiteUpgradeLuxury === 2) {
+				t += `is in ${V.masterSuiteName}'s fuckpit, `;
+				if (_seed > 80) {
+					t += `with a pair of ${his} fellow fucktoys industriously sucking on ${his} nipples.`;
+				} else if (_seed > 60) {
+					if ((slave.anus > 0 && canDoAnal(slave)) || (slave.vagina > 0 && canDoVaginal(slave))) {
+						t += `taking double penetration from `;
+					} else {
+						t += `being spitroasted by `;
+					}
+					t += `a pair of ${his} fellow fucktoys.`;
+				} else if (_seed > 40) {
+					if (canPenetrate(slave)) {
+						t += `with ${his} dick inside `;
+					} else if (slave.dick > 0 && slave.chastityPenis !== 1) {
+						t += `getting ${his} soft dick sucked by `;
+					} else if (canDoVaginal(slave) || canDoAnal(slave)) {
+						t += `getting eaten out by `;
+					} else {
+						t += `making out with `;
+					}
+					t += `a fellow fucktoy.`;
+				} else if (_seed > 20) {
+					if (slave.vagina > 0 && canDoVaginal(slave)) {
+						t += `getting pounded `;
+					} else if (slave.anus > 0 && canDoAnal(slave)) {
+						t += `getting ${his} ass pounded `;
+					} else if (canDoVaginal(slave) || canDoAnal(slave)) {
+						t += `getting eaten out `;
+					} else {
+						t += `getting deepthroated `;
+					}
+					t += `by a fellow fucktoy.`;
+				} else {
+					t += `performing oral sex on a fellow fucktoy.`;
 				}
-				t += `two women wearing strap-ons.`;
 			} else {
-				if (canDoAnal(slave) || canDoVaginal(slave)) {
-					t += `being double penetrated by `;
+				if (slave.energy > 95) {
+					t += `is having enthusiastic sex with your other pets while waiting for you to ravish ${him}.`;
 				} else {
-					t += `using ${his} body to please `;
+					t += `is having idle sex with several of your other toys while they await your pleasure.`;
+					if (slave.fetishKnown === 1) {
+						switch (slave.fetish) {
+							case "buttslut":
+								if (canDoAnal(slave) && slave.anus > 0) {
+									t += `${He}'s happily taking a strap-on up ${his} asspussy.`;
+								} else {
+									t += `${He}'s happily got another slave between ${his} buttcheeks.`;
+								}
+								break;
+							case "cumslut":
+								t += `${He}'s happily performing oral on another slave.`;
+								break;
+							case "dom":
+								t += `${He}'s pinning another slave down while ${he} fucks her.`;
+								break;
+							case "submissive":
+								t += `${He}'s letting another slave have her way with ${him}.`;
+								break;
+							case "sadist":
+								if (slave.amp !== 1) {
+									t += `${He}'s spanking another slave with one hand and fingering her with the other.`;
+								} else {
+									t += `${He}'s painfully teasing another slave's nipple with ${his} teeth.`;
+								}
+								break;
+							case "masochist":
+								t += `Another slave is spanking ${him} while molesting everything she can.`;
+								break;
+							case "boobs":
+								t += `${He} has a slave sucking on each of ${his} nipples`;
+								if (slave.amp !== 1) {
+									t += ` while ${he} gives each a handjob.`;
+								} else {
+									t += `.`;
+								}
+								break;
+							case "pregnancy":
+								if (slave.belly >= 5000) {
+									t += `${He}'s sighing contentedly as ${his} rounded belly is sensually rubbed.`;
+								} else if (canPenetrate(slave)) {
+									t += `${He}'s happily roleplaying impregnating the slave ${he}'s fucking.`;
+								} else if ((slave.anus > 0 && canDoAnal(slave)) || (slave.vagina > 0 && canDoVaginal(slave))) {
+									t += `${He}'s happily roleplaying conceiving a child as ${he} gets fucked.`;
+								} else {
+									t += `${He}'s happily roleplaying being hugely pregnant.`;
+								}
+								break;
+
+						}
+					}
 				}
-				t += `a pair of customers.`;
 			}
-		} else if (_seed > 80) {
-			if (canDoAnal(slave) || canDoVaginal(slave)) {
-				t += `pleasing `;
+			break;
+			/*
+			case "guard you":
+				t += `is standing discreetly behind your left shoulder, watching for threats.`;
+				break
+			 */
+		case "stay confined":
+			t += `is confined, but you have a fine view of ${his} ${race} body on the feed from ${his} cell.`;
+			break;
+		case "be confined in the cellblock":
+			t += `is confined in ${V.cellblockName}, but you have a fine view of ${his} ${race} body on the feed from ${his} cell.`;
+			break;
+		case "be confined in the arcade":
+		case "work a glory hole":
+			t += `is confined in `;
+			if (slave.assignment === "be confined in the arcade") {
+				t += `${V.arcadeName}; `;
 			} else {
-				t += `riding `;
+				t += `a glory hole; `;
 			}
-			t += `a customer's dick.`;
-		} else if (_seed > 60) {
-			t += `sucking a customer's cock.`;
-		} else if (_seed > 40) {
-			t += `pleasuring a customer's cunt.`;
-		} else if (_seed > 20) {
-			t += `getting pounded by a woman wearing a strap-on.`;
-		} else {
-			t += `being held down and `;
-			if (canDoAnal(slave)) {
-				t += `buttfucked `;
+			if (_seed > 80 && (canDoAnal(slave) || canDoVaginal(slave))) {
+				t += `${his} ass is held out at cock height, and a customer is using ${his} fuckhole.`;
+			} else if (_seed > 60) {
+				t += `${his} mouth is held open at cock height, and a customer is fucking ${his} throat.`;
+			} else if (_seed > 40) {
+				t += `a woman is abusing ${him} with a couple of dildos.`;
+			} else if (_seed > 20 && canDoAnal(slave)) {
+				t += `a customer is harshly using ${his} defenseless anus.`;
 			} else {
-				t += `raped `;
+				t += `a customer is cruelly spanking ${his} helpless butt.`;
 			}
-			t += `by a customer.`;
-		}
-		t += ` You have a voyeuristic view of ${his} ${race} body on the feeds.`;
-		break;
-	case "serve in the club":
-		t += `is working in ${V.clubName}, `;
-		if (_seed > 50) {
-			t += `displaying ${his} ${race} body, keeping citizens company, and flirting with anyone who shows interest.`;
-		} else {
-			t += `or rather just off it, having taken a prominent citizen back to a discreet room so he can use ${his} ${race} body.`;
-		}
-		break;
-	case "work as a servant":
-		if (_seed > 50) {
-			t += `was scrubbing the penthouse floor, until another slave requested oral service.`;
-		} else {
-			t += `is scrubbing the penthouse floor.`;
-		}
-		break;
-	case "serve in the master suite":
-		if (slave.fuckdoll > 0) {
-			t += `waiting for use in ${V.masterSuiteName}, next to a display case full of other sex toys.`;
-		} else if (V.masterSuiteUpgradeLuxury === 1) {
+			break;
+		case "be the Madam":
+			t += `is managing ${V.brothelName}: ${he} is making sure all the customers are satisfied and all the whores are working hard.`;
+			break;
+		case "be your Concubine":
+			if (jsRandom(1, 2) === 1) {
+				t += `is looking after ${himself}; ${he} spends many hours every day on ${his} beauty regimen.`;
+			} else {
+				t += `is checking over the appearance of your harem, making sure everyone looks perfect.`;
+			}
+			break;
+		case "be the Wardeness":
+			t += `is looking after the cells: ${he} is `;
 			if (_seed > 50) {
-				t += `is sitting on the big bed in ${V.masterSuiteName}, awaiting your return.`;
+				t += `forcing a resistant slave to orally service ${him}.`;
 			} else {
-				t += `is beautifying ${himself} in ${V.masterSuiteName} so ${he}'ll be pretty when you return.`;
+				t += `beating a rebellious slave across the buttocks.`;
 			}
-		} else if (V.masterSuiteUpgradeLuxury === 2) {
-			t += `is in ${V.masterSuiteName}'s fuckpit, `;
-			if (_seed > 80) {
-				t += `with a pair of ${his} fellow fucktoys industriously sucking on ${his} nipples.`;
-			} else if (_seed > 60) {
-				if ((slave.anus > 0 && canDoAnal(slave)) || (slave.vagina > 0 && canDoVaginal(slave))) {
-					t += `taking double penetration from `;
-				} else {
-					t += `being spitroasted by `;
-				}
-				t += `a pair of ${his} fellow fucktoys.`;
-			} else if (_seed > 40) {
-				if (canPenetrate(slave)) {
-					t += `with ${his} dick inside `;
-				} else if (slave.dick > 0 && slave.chastityPenis !== 1) {
-					t += `getting ${his} soft dick sucked by `;
-				} else if (canDoVaginal(slave) || canDoAnal(slave)) {
-					t += `getting eaten out by `;
-				} else {
-					t += `making out with `;
-				}
-				t += `a fellow fucktoy.`;
-			} else if (_seed > 20) {
-				if (slave.vagina > 0 && canDoVaginal(slave)) {
-					t += `getting pounded `;
-				} else if (slave.anus > 0 && canDoAnal(slave)) {
-					t += `getting ${his} ass pounded `;
-				} else if (canDoVaginal(slave) || canDoAnal(slave)) {
-					t += `getting eaten out `;
+			break;
+		case "live with your Head Girl":
+			if (V.HeadGirl !== 0) {
+				t += `is getting the Head Girl's suite cleaned up while ${V.HeadGirl.slaveName} is out working.`;
+			} else {
+				t += `is making sure the Head Girl's suite is in order for your next Head Girl.`;
+			}
+			break;
+		case "be the Stewardess":
+			t += `is managing the house servants in ${V.servantsQuartersName}: ${he} overseeing the laboring house slaves and punishing any that step out of line.`;
+			break;
+		case "be the Schoolteacher":
+			t += `is teaching classes in ${V.schoolroomName}: ${he} is leading the slave students in rote recitation.`;
+			break;
+		case "be the Attendant":
+			t += `is seeing to girls in ${V.spaName}: ${he} is gently soaping an exhausted slave.`;
+			break;
+		case "be the DJ":
+			if (_seed > 50) {
+				t += `is right where ${he} belongs, in the DJ booth in ${V.clubName} ${he} leads. ${He}'s bouncing in time with the beat to show off ${his} `;
+				if (slave.boobs > 300) {
+					t += `tits.`;
 				} else {
-					t += `getting deepthroated `;
+					t += `goods.`;
 				}
-				t += `by a fellow fucktoy.`;
 			} else {
-				t += `performing oral sex on a fellow fucktoy.`;
+				t += `is taking the lead on ${V.clubName}'s floor: ${he} greets new arrivals, flirts with them prettily, and subtly guides them towards choice sluts.`;
 			}
-		} else {
-			if (slave.energy > 95) {
-				t += `is having enthusiastic sex with your other pets while waiting for you to ravish ${him}.`;
+			break;
+		case "be the Milkmaid":
+			t += `is working in ${V.dairyName}, looking after your stock.`;
+			break;
+		default:
+			/* WALKPASTS START HERE */
+			if (slave.heels === 1 && !["flats", "none"].includes(slave.shoes)) {
+				t += `walks past your desk with the tiny swaying steps ${he} must take in order to walk on ${his} surgically altered legs. ${He} is on ${his} way to `;
+			} else if (["heels", "pumps"].includes(slave.shoes)) {
+				t += `walks past your desk with the swaying steps ${he} must take in ${his} high heels. ${He} is on ${his} way to `;
+			} else if (slave.shoes === "boots") {
+				t += `walks past your desk with the confident gait encouraged by ${his} high heeled boots. ${He} is on ${his} way to `;
+			} else if (slave.shoes === "extreme heels") {
+				t += `walks past your desk with the tiny swaying steps ${he} must take in ${his} ridiculous heels. ${He} is on ${his} way to `;
+			} else if (slave.heels === 1) {
+				t += `crawls past your desk on all fours, since ${he} has not been allowed the heels ${he} needs to walk upright. ${He} is on ${his} way to `;
+			} else if (slave.amp === 1) {
+				t += `is carried past your desk by one of your other slaves. ${He} is on ${his} way to `;
+			} else if (!canWalk(slave)) {
+				t += `is helped past your desk by one of your other slaves. ${He} is on ${his} way to `;
 			} else {
-				t += `is having idle sex with several of your other toys while they await your pleasure.`;
-				if (slave.fetishKnown === 1) {
-					switch (slave.fetish) {
-					case "buttslut":
-						if (canDoAnal(slave) && slave.anus > 0) {
-							t += `${He}'s happily taking a strap-on up ${his} asspussy.`;
+				t += `walks past your desk on ${his} way to `;
+			}
+			if (slave.inflation > 0 && jsRandom(1, 100) > 70) {
+				if (slave.inflationMethod === 1) {
+					t += `gorge ${himself} with ${slave.inflationType}; `;
+				} else if (slave.inflationMethod === 2) {
+					t += `fill ${his} rear with `;
+					switch (slave.inflationType) {
+						case "water":
+						case "milk":
+						case "cum":
+						case "food":
+							t += `${slave.inflationType}; `;
+							break;
+						default:
+							t += `${slave.inflationType}s; `;
+							break;
+					}
+				} else if (slave.inflationMethod === 3) {
+					if (slave.inflationType === "milk") {
+						t += `suckle from ${his} assigned nipple until ${he} is sufficiently filled with milk; `;
+					} else {
+						t += `suck ${his} assigned dick until ${he} is sufficiently filled with cum; `;
+					}
+				}
+			} else {
+				switch (slave.assignment) {
+					case "rest":
+						if (_seed > 50) {
+							t += `bed; `;
 						} else {
-							t += `${He}'s happily got another slave between ${his} buttcheeks.`;
+							t += `eat; `;
 						}
 						break;
-					case "cumslut":
-						t += `${He}'s happily performing oral on another slave.`;
-						break;
-					case "dom":
-						t += `${He}'s pinning another slave down while ${he} fucks her.`;
-						break;
-					case "submissive":
-						t += `${He}'s letting another slave have her way with ${him}.`;
-						break;
-					case "sadist":
-						if (slave.amp !== 1) {
-							t += `${He}'s spanking another slave with one hand and fingering her with the other.`;
+					case "get milked":
+						if (_seed > 50) {
+							if (slave.lactation) {
+								t += `milk ${his} overfull ${race} tits; `;
+							} else {
+								t += `empty ${his} aching balls; `;
+							}
 						} else {
-							t += `${He}'s painfully teasing another slave's nipple with ${his} teeth.`;
+							if (slave.lactation) {
+								t += `drain ${his} milky ${race} udders; `;
+							} else {
+								t += `relieve ${his} heavy balls; `;
+							}
 						}
 						break;
-					case "masochist":
-						t += `Another slave is spanking ${him} while molesting everything she can.`;
+					case "whore":
+						if (_seed > 50) {
+							t += `sell ${his} ${race} body; `;
+						} else {
+							t += `ply ${his} trade as a whore; `;
+						}
 						break;
-					case "boobs":
-						t += `${He} has a slave sucking on each of ${his} nipples`;
-						if (slave.amp !== 1) {
-							t += ` while ${he} gives each a handjob.`;
+					case "serve the public":
+						if (_seed > 50) {
+							t += `serve the public; `;
 						} else {
-							t += `.`;
+							t += `be a public slut; `;
 						}
 						break;
-					case "pregnancy":
-						if (slave.belly >= 5000) {
-							t += `${He}'s sighing contentedly as ${his} rounded belly is sensually rubbed.`;
-						} else if (canPenetrate(slave)) {
-							t += `${He}'s happily roleplaying impregnating the slave ${he}'s fucking.`;
-						} else if ((slave.anus > 0 && canDoAnal(slave)) || (slave.vagina > 0 && canDoVaginal(slave))) {
-							t += `${He}'s happily roleplaying conceiving a child as ${he} gets fucked.`;
+					case "rest in the spa":
+						t += `relax in ${V.spaName}; `;
+						break;
+					case "please you":
+						t += `wait next to you and wait for you to fuck ${him}; `;
+						break;
+					case "be a subordinate slave":
+						t += `service your other slaves; `;
+						break;
+					case "be a servant":
+						t += `clean up after your other slaves; `;
+						break;
+					case "learn in the schoolroom":
+						t += `attend classes `;
+						if (V.Schoolteacher === 0) {
+							t += `in ${V.schoolroomName}; `;
 						} else {
-							t += `${He}'s happily roleplaying being hugely pregnant.`;
+							t += `under ${V.Schoolteacher.slaveName}, perhaps literally; `;
 						}
 						break;
-					
-					}
-				}
-			}
-		}
-		break;
-	/*
-	case "guard you":
-		t += `is standing discreetly behind your left shoulder, watching for threats.`;
-		break
-	 */
-	case "stay confined":
-		t += `is confined, but you have a fine view of ${his} ${race} body on the feed from ${his} cell.`;
-		break;
-	case "be confined in the cellblock":
-		t += `is confined in ${V.cellblockName}, but you have a fine view of ${his} ${race} body on the feed from ${his} cell.`;
-		break;
-	case "be confined in the arcade":
-	case "work a glory hole":
-		t += `is confined in `;
-		if (slave.assignment === "be confined in the arcade") {
-			t += `${V.arcadeName}; `;
-		} else {
-			t += `a glory hole; `;
-		}
-		if (_seed > 80 && (canDoAnal(slave) || canDoVaginal(slave))) {
-			t += `${his} ass is held out at cock height, and a customer is using ${his} fuckhole.`;
-		} else if (_seed > 60) {
-			t += `${his} mouth is held open at cock height, and a customer is fucking ${his} throat.`;
-		} else if (_seed > 40) {
-			t += `a woman is abusing ${him} with a couple of dildos.`;
-		} else if (_seed > 20 && canDoAnal(slave)) {
-			t += `a customer is harshly using ${his} defenseless anus.`;
-		} else {
-			t += `a customer is cruelly spanking ${his} helpless butt.`;
-		}
-		break;
-	case "be the Madam":
-		t += `is managing ${V.brothelName}: ${he} is making sure all the customers are satisfied and all the whores are working hard.`;
-		break;
-	case "be your Concubine":
-		if (jsRandom(1, 2) === 1) {
-			t += `is looking after ${himself}; ${he} spends many hours every day on ${his} beauty regimen.`;
-		} else {
-			t += `is checking over the appearance of your harem, making sure everyone looks perfect.`;
-		}
-		break;
-	case "be the Wardeness":
-		t += `is looking after the cells: ${he} is `;
-		if (_seed > 50) {
-			t += `forcing a resistant slave to orally service ${him}.`;
-		} else {
-			t += `beating a rebellious slave across the buttocks.`;
-		}
-		break;
-	case "live with your Head Girl":
-		if (V.HeadGirl !== 0) {
-			t += `is getting the Head Girl's suite cleaned up while ${V.HeadGirl.slaveName} is out working.`;
-		} else {
-			t += `is making sure the Head Girl's suite is in order for your next Head Girl.`;
-		}
-		break;
-	case "be the Stewardess":
-		t += `is managing the house servants in ${V.servantsQuartersName}: ${he} overseeing the laboring house slaves and punishing any that step out of line.`;
-		break;
-	case "be the Schoolteacher":
-		t += `is teaching classes in ${V.schoolroomName}: ${he} is leading the slave students in rote recitation.`;
-		break;
-	case "be the Attendant":
-		t += `is seeing to girls in ${V.spaName}: ${he} is gently soaping an exhausted slave.`;
-		break;
-	case "be the DJ":
-		if (_seed > 50) {
-			t += `is right where ${he} belongs, in the DJ booth in ${V.clubName} ${he} leads. ${He}'s bouncing in time with the beat to show off ${his} `;
-			if (slave.boobs > 300) {
-				t += `tits.`;
-			} else {
-				t += `goods.`;
-			}
-		} else {
-			t += `is taking the lead on ${V.clubName}'s floor: ${he} greets new arrivals, flirts with them prettily, and subtly guides them towards choice sluts.`;
-		}
-		break;
-	case "be the Milkmaid":
-		t += `is working in ${V.dairyName}, looking after your stock.`;
-		break;
-	default: /* WALKPASTS START HERE */
-		if (slave.heels === 1 && !["flats", "none"].includes(slave.shoes)) {
-			t += `walks past your desk with the tiny swaying steps ${he} must take in order to walk on ${his} surgically altered legs. ${He} is on ${his} way to `;
-		} else if (["heels", "pumps"].includes(slave.shoes)) {
-			t += `walks past your desk with the swaying steps ${he} must take in ${his} high heels. ${He} is on ${his} way to `;
-		} else if (slave.shoes === "boots") {
-			t += `walks past your desk with the confident gait encouraged by ${his} high heeled boots. ${He} is on ${his} way to `;
-		} else if (slave.shoes === "extreme heels") {
-			t += `walks past your desk with the tiny swaying steps ${he} must take in ${his} ridiculous heels. ${He} is on ${his} way to `;
-		} else if (slave.heels === 1) {
-			t += `crawls past your desk on all fours, since ${he} has not been allowed the heels ${he} needs to walk upright. ${He} is on ${his} way to `;
-		} else if (slave.amp === 1) {
-			t += `is carried past your desk by one of your other slaves. ${He} is on ${his} way to `;
-		} else if (!canWalk(slave)) {
-			t += `is helped past your desk by one of your other slaves. ${He} is on ${his} way to `;
-		} else {
-			t += `walks past your desk on ${his} way to `;
-		}
-		if (slave.inflation > 0 && jsRandom(1, 100) > 70) {
-			if (slave.inflationMethod === 1) {
-				t += `gorge ${himself} with ${slave.inflationType}; `;
-			} else if (slave.inflationMethod === 2) {
-				t += `fill ${his} rear with `;
-				switch (slave.inflationType) {
-				case "water":
-				case "milk":
-				case "cum":
-				case "food":
-					t += `${slave.inflationType}; `;
-					break;
-				default:
-					t += `${slave.inflationType}s; `;
-					break;
-				}
-			} else if (slave.inflationMethod === 3) {
-				if (slave.inflationType === "milk") {
-					t += `suckle from ${his} assigned nipple until ${he} is sufficiently filled with milk; `;
-				} else {
-					t += `suck ${his} assigned dick until ${he} is sufficiently filled with cum; `;
+					case "be the Attendant":
+						t += `look after the slaves in ${V.spaName}; `;
+						break;
+					case "take classes":
+						t += `attend classes with ${V.assistantName}; `;
+						break;
+					case "be your Head Girl":
+						t += `oversee your other slaves; `;
+						break;
+					case "recruit girls":
+						t += `use ${his} connections to recruit slaves; `;
+						break;
+					default:
+						t += `${slave.assignment}; `;
+						break;
 				}
+			} /* end inflation blurb */
+			if (slave.fetish === "mindbroken") {
+				t += `${he} does not even glance at you as ${he} goes mindlessly to ${his} next task.`;
+			} else if (slave.devotion < -50) {
+				t += `${he} directs a look of pure hatred at where you sit as ${he} passes.`;
+			} else if (slave.devotion < -20) {
+				t += `${he} cannot keep the loathing from ${his} face as ${he} passes.`;
+			} else if (slave.devotion <= 20) {
+				t += `${he} passes quickly, obviously hoping to avoid you.`;
+			} else if (slave.devotion <= 50) {
+				t += `${he} rushes by, hurrying to ${his} next task.`;
+			} else {
+				t += `as ${he} passes ${he} gives you a look of adoration.`;
 			}
-		} else {
-			switch (slave.assignment) {
-			case "rest":
-				if (_seed > 50) {
-					t += `bed; `;
-				} else {
-					t += `eat; `;
-				}
-				break;
-			case "get milked":
-				if (_seed > 50) {
-					if (slave.lactation) {
-						t += `milk ${his} overfull ${race} tits; `;
-					} else {
-						t += `empty ${his} aching balls; `;
-					}
-				} else {
-					if (slave.lactation) {
-						t += `drain ${his} milky ${race} udders; `;
-					} else {
-						t += `relieve ${his} heavy balls; `;
-					}
-				}
-				break;
-			case "whore":
-				if (_seed > 50) {
-					t += `sell ${his} ${race} body; `;
-				} else {
-					t += `ply ${his} trade as a whore; `;
-				}
-				break;
-			case "serve the public":
-				if (_seed > 50) {
-					t += `serve the public; `;
-				} else {
-					t += `be a public slut; `;
-				}
-				break;
-			case "rest in the spa":
-				t += `relax in ${V.spaName}; `;
-				break;
-			case "please you":
-				t += `wait next to you and wait for you to fuck ${him}; `;
-				break;
-			case "be a subordinate slave":
-				t += `service your other slaves; `;
-				break;
-			case "be a servant":
-				t += `clean up after your other slaves; `;
-				break;
-			case "learn in the schoolroom":
-				t += `attend classes `;
-				if (V.Schoolteacher === 0) {
-					t += `in ${V.schoolroomName}; `;
-				} else {
-					t += `under ${V.Schoolteacher.slaveName}, perhaps literally; `;
-				}
-				break;
-			case "be the Attendant":
-				t += `look after the slaves in ${V.spaName}; `;
-				break;
-			case "take classes":
-				t += `attend classes with ${V.assistantName}; `;
-				break;
-			case "be your Head Girl":
-				t += `oversee your other slaves; `;
-				break;
-			case "recruit girls":
-				t += `use ${his} connections to recruit slaves; `;
-				break;
-			default:
-				t += `${slave.assignment}; `;
-				break;
-			}
-		} /* end inflation blurb */
-		if (slave.fetish === "mindbroken") {
-			t += `${he} does not even glance at you as ${he} goes mindlessly to ${his} next task.`;
-		} else if (slave.devotion < -50) {
-			t += `${he} directs a look of pure hatred at where you sit as ${he} passes.`;
-		} else if (slave.devotion < -20) {
-			t += `${he} cannot keep the loathing from ${his} face as ${he} passes.`;
-		} else if (slave.devotion <= 20) {
-			t += `${he} passes quickly, obviously hoping to avoid you.`;
-		} else if (slave.devotion <= 50) {
-			t += `${he} rushes by, hurrying to ${his} next task.`;
-		} else {
-			t += `as ${he} passes ${he} gives you a look of adoration.`;
-		}
-		break;
+			break;
 	}
 	return t;
 };
 
-window.boobWatch = function(slave) {
+window.boobWatch = function (slave) {
 
 	/* will be moved up once this becomes a single, contained function. */
 	let t = "";
 	let V = State.variables;
 
 	let pronouns = getPronouns(slave);
-	let he = pronouns.pronoun, him = pronouns.object, his = pronouns.possessive, hers = pronouns.possessivePronoun, himself = pronouns.objectReflexive, boy = pronouns.noun;
-	let He = capFirstChar(he), His = capFirstChar(his);
+	let he = pronouns.pronoun,
+		him = pronouns.object,
+		his = pronouns.possessive,
+		hers = pronouns.possessivePronoun,
+		himself = pronouns.objectReflexive,
+		boy = pronouns.noun;
+	let He = capFirstChar(he),
+		His = capFirstChar(his);
 
 	let breasts = (slave.boobs < 300) ? `flat chest` : `breasts`;
 
@@ -2177,7 +2233,7 @@ window.boobWatch = function(slave) {
 			}
 			break;
 
-		// needs improvement
+			// needs improvement
 		case "a klan robe":
 			t += `${His} robe covers ${his} ${breasts} totally.`;
 			break;
@@ -2259,7 +2315,7 @@ window.boobWatch = function(slave) {
 		case "a biyelgee costume":
 			t += `${His} costume could be removed with barely any effort.`;
 			break;
-		// ends needs work block
+			// ends needs work block
 
 		case "no clothing":
 			if (slave.chastityAnus === 1 || slave.chastityVagina === 1 || slave.chastityPenis === 1) {
@@ -2287,15 +2343,21 @@ window.boobWatch = function(slave) {
 	return t;
 };
 
-window.buttWatch = function(slave) {
+window.buttWatch = function (slave) {
 
 	/* will be moved up once this becomes a single, contained function. */
 	let t = "";
 	let V = State.variables;
 
 	let pronouns = getPronouns(slave);
-	let he = pronouns.pronoun, him = pronouns.object, his = pronouns.possessive, hers = pronouns.possessivePronoun, himself = pronouns.objectReflexive, boy = pronouns.noun;
-	let He = capFirstChar(he), His = capFirstChar(his);
+	let he = pronouns.pronoun,
+		him = pronouns.object,
+		his = pronouns.possessive,
+		hers = pronouns.possessivePronoun,
+		himself = pronouns.objectReflexive,
+		boy = pronouns.noun;
+	let He = capFirstChar(he),
+		His = capFirstChar(his);
 
 	V.target = "FButt";
 
@@ -2306,14 +2368,14 @@ window.buttWatch = function(slave) {
 			break;
 		case "uncomfortable straps":
 			t += `A strap passes between ${his} `;
-			if (slave.amp !== 1 ) {
+			if (slave.amp !== 1) {
 				t += `legs, giving ${his} gait an awkward sway.`;
 			} else {
 				t += `leg stumps, pressing against ${his} genitals.`;
 			}
 			break;
 		case "shibari ropes":
-			if (slave.amp !== 1 ) {
+			if (slave.amp !== 1) {
 				t += `Ropes bind ${his} legs, giving ${his} gait an awkward sway.`;
 			} else {
 				t += `A rope passes between ${his} leg stumps, pressing against ${his} genitals.`;
@@ -2624,15 +2686,21 @@ window.buttWatch = function(slave) {
 	return t;
 };
 
-window.anusWatch = function(slave) {
+window.anusWatch = function (slave) {
 
 	/* will be moved up once this becomes a single, contained function. */
 	let t = "";
 	let V = State.variables;
 
 	let pronouns = getPronouns(slave);
-	let he = pronouns.pronoun, him = pronouns.object, his = pronouns.possessive, hers = pronouns.possessivePronoun, himself = pronouns.objectReflexive, boy = pronouns.noun;
-	let He = capFirstChar(he), His = capFirstChar(his);
+	let he = pronouns.pronoun,
+		him = pronouns.object,
+		his = pronouns.possessive,
+		hers = pronouns.possessivePronoun,
+		himself = pronouns.objectReflexive,
+		boy = pronouns.noun;
+	let He = capFirstChar(he),
+		His = capFirstChar(his);
 
 	V.target = "FAnus";
 
@@ -2933,15 +3001,21 @@ window.anusWatch = function(slave) {
 };
 
 
-window.lipWatch = function(slave) {
+window.lipWatch = function (slave) {
 
 	/* will be moved up once this becomes a single, contained function. */
 	let t = "";
 	let V = State.variables;
 
 	let pronouns = getPronouns(slave);
-	let he = pronouns.pronoun, him = pronouns.object, his = pronouns.possessive, hers = pronouns.possessivePronoun, himself = pronouns.objectReflexive, boy = pronouns.noun;
-	let He = capFirstChar(he), His = capFirstChar(his);
+	let he = pronouns.pronoun,
+		him = pronouns.object,
+		his = pronouns.possessive,
+		hers = pronouns.possessivePronoun,
+		himself = pronouns.objectReflexive,
+		boy = pronouns.noun;
+	let He = capFirstChar(he),
+		His = capFirstChar(his);
 
 	t += `<<faceDescription>>`;
 	t += `<<mouthDescription>>`;
diff --git a/src/js/wombJS.js b/src/js/wombJS.js
index ec546cd916ebf59f6fb4d94f7cdbc1bcc6691ad7..1e20abcee9991cb3e9c72cbfff34c39166a0dd53 100644
--- a/src/js/wombJS.js
+++ b/src/js/wombJS.js
@@ -25,7 +25,7 @@ $slave.bellyPreg = WombGetWolume($slave) - return double, with current womb volu
 */
 
 // Init womb system.
-window.WombInit = function(actor) {
+window.WombInit = function (actor) {
 	let i;
 
 	if (!Array.isArray(actor.womb)) {
@@ -44,9 +44,8 @@ window.WombInit = function(actor) {
 		actor.readyOva = 0;
 	}
 
-	if ( actor.pregData === undefined)
-	{
-		actor.pregData = clone( setup.pregData.human );
+	if (actor.pregData === undefined) {
+		actor.pregData = clone(setup.pregData.human);
 		// Setup should be through deep copy, so in future, if we like, these values can be changed individually. Gameplay expansion possibilities. But for dev time to simplify debugging:
 		// actor.pregData = setup.pregData.human;  // any changes in setup pregData template will be applied immediately to all. But can't be made separate changes.
 	}
@@ -62,10 +61,11 @@ window.WombInit = function(actor) {
 		WombImpregnate(actor, actor.pregType, actor.pregSource, actor.preg);
 	} else if (actor.womb.length === 0 && actor.pregType > 0 && actor.broodmother > 0 && actor.broodmotherOnHold < 1) {
 		// sorry but for already present broodmothers it's impossible to calculate fully, approximation used.
-		let pw = actor.preg, bCount, bLeft;
+		let pw = actor.preg,
+			bCount, bLeft;
 		if (pw > actor.pregData.normalBirth) pw = actor.pregData.normalBirth; // to avoid disaster.
-		bCount = Math.floor(actor.pregType/pw);
-		bLeft = actor.pregType - (bCount*pw);
+		bCount = Math.floor(actor.pregType / pw);
+		bLeft = actor.pregType - (bCount * pw);
 		if (pw > actor.pregType) {
 			pw = actor.pregType; // low children count broodmothers not supported here. It's emergency/backward compatibility code, and they not in game anyway. So minimum is 1 fetus in week.
 			actor.preg = pw; // fixing initial pregnancy week.
@@ -80,7 +80,7 @@ window.WombInit = function(actor) {
 	}
 };
 
-window.WombImpregnate = function(actor, fCount, fatherID, age, surrogate) {
+window.WombImpregnate = function (actor, fCount, fatherID, age, surrogate) {
 	let i;
 	let tf;
 	for (i = 0; i < fCount; i++) {
@@ -94,13 +94,13 @@ window.WombImpregnate = function(actor, fCount, fatherID, age, surrogate) {
 		tf.splitted = 0; // marker for already splitted fetus.
 		if (surrogate) {
 			tf.motherID = surrogate.ID; // Initial biological mother ID setup.
-			if(actor.eggType === "human") {
-				tf.genetics = generateGenetics(surrogate, fatherID, i+1); // Stored genetic information.
+			if (actor.eggType === "human") {
+				tf.genetics = generateGenetics(surrogate, fatherID, i + 1); // Stored genetic information.
 			}
 		} else {
 			tf.motherID = actor.ID; // Initial biological mother ID setup.
-			if(actor.eggType === "human") {
-				tf.genetics = generateGenetics(actor, fatherID, i+1); // Stored genetic information.
+			if (actor.eggType === "human") {
+				tf.genetics = generateGenetics(actor, fatherID, i + 1); // Stored genetic information.
 			}
 		}
 		tf.ID = generateNewID();
@@ -125,7 +125,7 @@ window.WombSurrogate = function (actor, fCount, mother, fatherID, age) {
 	WombImpregnate(actor, fCount, fatherID, age, mother);
 };
 
-window.WombImpregnateClone = function(actor, fCount, mother, motherOriginal, age) {
+window.WombImpregnateClone = function (actor, fCount, mother, motherOriginal, age) {
 	let i;
 	let tf;
 	for (i = 0; i < fCount; i++) {
@@ -138,7 +138,7 @@ window.WombImpregnateClone = function(actor, fCount, mother, motherOriginal, age
 		tf.identical = 0; // Initial, to create property. Updated with actual data during fetalSplit call.
 		tf.splitted = 0; // marker for already splitted fetus.
 		tf.motherID = mother.ID; // Initial biological mother ID setup.
-		tf.genetics = generateGenetics(mother, mother.ID, i+1); // Stored genetic information.
+		tf.genetics = generateGenetics(mother, mother.ID, i + 1); // Stored genetic information.
 		tf.ID = generateNewID();
 
 		// Welcome to having to set up common relatives for the slave and her clone
@@ -207,7 +207,7 @@ window.WombProgress = function (actor, ageToAdd, realAgeToAdd = ageToAdd) {
 window.WombBirth = function (actor, readyAge) {
 	try {
 		WombSort(actor); // For normal processing fetuses that more old should be first. Now - they are.
-		} catch(err){
+	} catch (err) {
 		WombInit(actor);
 		alert("WombBirth warning - " + actor.slaveName + " " + err);
 	}
@@ -216,7 +216,7 @@ window.WombBirth = function (actor, readyAge) {
 	let ready = WombBirthReady(actor, readyAge);
 	let i;
 
-	for ( i = 0; i < ready; i++) { // here can't be used "for .. in .." syntax.
+	for (i = 0; i < ready; i++) { // here can't be used "for .. in .." syntax.
 		birthed.push(actor.womb.shift());
 	}
 
@@ -227,7 +227,7 @@ window.WombFlush = function (actor) {
 	actor.womb = [];
 };
 
-window.WombBirthReady = function(actor, readyAge) {
+window.WombBirthReady = function (actor, readyAge) {
 	let readyCnt = 0;
 	try {
 		readyCnt += actor.womb.filter(ft => ft.age >= readyAge).length;
@@ -240,7 +240,7 @@ window.WombBirthReady = function(actor, readyAge) {
 	return readyCnt;
 };
 
-window.WombGetVolume = function(actor) { // most legacy code from pregJS.tw with minor adaptation.
+window.WombGetVolume = function (actor) { // most legacy code from pregJS.tw with minor adaptation.
 
 
 	if (actor.pregData.sizeType === 0)
@@ -342,8 +342,7 @@ window.WombGetVolume = function(actor) { // most legacy code from pregJS.tw with
 	}
 
 
-	function getVolByWeight(actor)
-	{
+	function getVolByWeight(actor) {
 		let targetData;
 		let wombSize = 0;
 
@@ -362,8 +361,7 @@ window.WombGetVolume = function(actor) { // most legacy code from pregJS.tw with
 	}
 
 
-	function getVolByRaw(actor)
-	{
+	function getVolByRaw(actor) {
 		let targetData;
 		let wombSize = 0;
 
@@ -506,12 +504,11 @@ window.WombSort = function (actor) {
 };
 
 // now function work with chance. Literary we give it "one from X" as chance.
-window.fetalSplit = function(actor, chance) {
+window.fetalSplit = function (actor, chance) {
 	let nft;
 
-	actor.womb.forEach(function(s){
-		if ((jsRandom(1, chance) >= chance) && s.splitted !== 1)
-		{
+	actor.womb.forEach(function (s) {
+		if ((jsRandom(1, chance) >= chance) && s.splitted !== 1) {
 			nft = {};
 			nft.age = s.age;
 			nft.fatherID = s.fatherID;
@@ -536,15 +533,13 @@ window.fetalSplit = function(actor, chance) {
 };
 
 // safe alternative to .womb.length.
-window.WombFetusCount = function(actor)
-{
+window.WombFetusCount = function (actor) {
 	WombInit(actor);
 	return actor.womb.length;
 };
 
 // give reference to fetus object, but not remove fetus, use for manipulation in the womb.
-window.WombGetFetus = function(actor, fetusNum)
-{
+window.WombGetFetus = function (actor, fetusNum) {
 	WombInit(actor);
 	if (actor.womb.length >= fetusNum)
 		return actor.womb[fetusNum];
@@ -553,8 +548,7 @@ window.WombGetFetus = function(actor, fetusNum)
 };
 
 // give reference to fetus object, and remove it form the womb.
-window.WombRemoveFetus = function(actor, fetusNum)
-{
+window.WombRemoveFetus = function (actor, fetusNum) {
 	WombInit(actor);
 	if (actor.womb.length >= fetusNum) {
 		let ft = actor.womb[fetusNum];
@@ -567,8 +561,7 @@ window.WombRemoveFetus = function(actor, fetusNum)
 };
 
 /* to add fetus object in the womb. Be warned - you can add one single fetus to many wombs, or even add it many times to one womb. It will not show error, but behavior becomes strange, as fetus object will be the same - it's reference, not full copies. If this is not desired - use clone() on fetus before adding.*/
-window.WombAddFetus = function(actor, fetus)
-{
+window.WombAddFetus = function (actor, fetus) {
 	WombInit(actor);
 	actor.womb.push(fetus);
 	WombSort(actor);
@@ -606,11 +599,10 @@ window.MissingParentIDCorrection = function (actor) {
 	State.variables.missingParentID--;
 };
 
-window.WombCleanYYFetuses = function(actor)
-{
+window.WombCleanYYFetuses = function (actor) {
 	let reserved = [];
 
-	let i = actor.womb.length-1;
+	let i = actor.womb.length - 1;
 	let ft;
 
 	while (i >= 0) {
@@ -628,15 +620,14 @@ window.WombCleanYYFetuses = function(actor)
 	return reserved;
 };
 
-window.FetusGlobalReserveCount = function(reserveType)
-{
+window.FetusGlobalReserveCount = function (reserveType) {
 	let cnt = 0;
 	let SV = State.variables;
 
 	if (typeof reserveType !== 'string')
 		return 0;
 
-	SV.slaves.forEach(function(slave) {
+	SV.slaves.forEach(function (slave) {
 		slave.womb.forEach(function (ft) {
 			if (ft.reserve === reserveType)
 				cnt++;
@@ -651,13 +642,11 @@ window.FetusGlobalReserveCount = function(reserveType)
 	return cnt;
 };
 
-window.WombSetGenericReserve = function(actor, type, count)
-{
+window.WombSetGenericReserve = function (actor, type, count) {
 	// console.log ("actor: " + actor + "  type: " + type + "  typeof: " + typeof type + "  count: " + count);
-	actor.womb.forEach(function(ft){
+	actor.womb.forEach(function (ft) {
 		// console.log ("  type: " + ft.reserve + "  typeof: " + typeof ft.reserve);
-		if ((ft.reserve === "" || ft.reserve === type) && count > 0)
-		{
+		if ((ft.reserve === "" || ft.reserve === type) && count > 0) {
 			// console.log ("!trigger");
 			ft.reserve = type;
 			count--;
@@ -671,8 +660,7 @@ window.WombAddToGenericReserve = function (actor, type, count) {
 
 };
 
-window.WombChangeReserveType = function(actor, oldType, newType)
-{
+window.WombChangeReserveType = function (actor, oldType, newType) {
 	let count = 0;
 
 	actor.womb.forEach(function (ft) {
@@ -711,8 +699,7 @@ window.WombReserveCount = function (actor, type) {
 	return cnt;
 };
 
-window.WombGetReservedFetuses = function(actor, type)
-{
+window.WombGetReservedFetuses = function (actor, type) {
 	let reserved = [];
 
 	actor.womb.forEach(function (ft) {
@@ -726,11 +713,10 @@ window.WombGetReservedFetuses = function(actor, type)
 	return reserved;
 };
 
-window.WombRemoveReservedFetuses = function(actor, type)
-{
+window.WombRemoveReservedFetuses = function (actor, type) {
 	let reserved = [];
 
-	let i = actor.womb.length-1;
+	let i = actor.womb.length - 1;
 	let ft;
 
 	while (i >= 0) {
@@ -777,22 +763,21 @@ window.WombGetLittersData = function (actor) {
 	let countLitter = [];
 	let litterData = [];
 	let tmp;
-	
+
 	// in first place we need to know how many litters here (Assuming that unique litter is have similar .realAge). Also we will know their ages.
-	actor.womb.forEach(function(ft)
-	{
+	actor.womb.forEach(function (ft) {
 		if (!unicLiters.includes(Math.ceil(ft.realAge)))
 			unicLiters.push(Math.ceil(ft.realAge));
 
 	});
-	
+
 	// now we should find and store separate litters data (count of fetuses):
-	unicLiters.forEach(function(litter, i)	// TODO: i is defined but not used
-	{
-		tmp = actor.womb.filter(ft => Math.ceil(ft.realAge) === litter);
-		countLitter.push(tmp.length);
-		litterData.push(tmp);
-	});
+	unicLiters.forEach(function (litter)
+		{
+			tmp = actor.womb.filter(ft => Math.ceil(ft.realAge) === litter);
+			countLitter.push(tmp.length);
+			litterData.push(tmp);
+		});
 
 	data.litters = unicLiters;
 	data.countLitter = countLitter;
@@ -801,11 +786,10 @@ window.WombGetLittersData = function (actor) {
 	return data;
 };
 
-window.BCReserveInit = function()
-{
+window.BCReserveInit = function () {
 	let SV = State.variables;
 
-	SV.slaves.forEach(function(slave) {
+	SV.slaves.forEach(function (slave) {
 		slave.womb.forEach(function (ft) {
 			if (typeof ft.reserve !== 'string')
 				ft.reserve = "";
@@ -824,7 +808,7 @@ window.BCReserveInit = function()
 		if (typeof ft.motherID !== 'number')
 			ft.motherID = SV.PC.ID;
 		if (typeof ft.realAge !== 'number') // setting missing chronological age
-				ft.realAge = ft.age;
+			ft.realAge = ft.age;
 	});
 
 };