From b60e0d20cfc373ac3a8dc22abcf9100bba49c83f Mon Sep 17 00:00:00 2001
From: lowercasedonkey <lowercasedonkey@gmail.com>
Date: Mon, 23 Nov 2020 20:10:59 -0500
Subject: [PATCH] cleanup

---
 src/npc/acquisition.js | 1675 ++++++++++++++++++++--------------------
 1 file changed, 844 insertions(+), 831 deletions(-)

diff --git a/src/npc/acquisition.js b/src/npc/acquisition.js
index 5ea8840290a..fc8798cc09d 100644
--- a/src/npc/acquisition.js
+++ b/src/npc/acquisition.js
@@ -2,197 +2,16 @@ App.StartingGirls.acquisition = function() {
 	const el = new DocumentFragment();
 
 	const valueOwed = (V.saveImported === 1) ? 5000 : 50000;
-	let r;
+	const r = [];
 
 	delete V.showSGNationalities;
 
 	if (V.freshPC === 1 || V.saveImported === 0) {
-		V.PC.birthName = V.PC.slaveName;
-		if (V.PC.slaveSurname) {
-			V.PC.birthSurname = V.PC.slaveSurname;
-		}
-		if (V.PC.title === 1) {
-			V.PC.muscles = 50;
-		} else {
-			V.PC.hLength = 15;
-			V.PC.waist = -20;
-			V.PC.voice = 2;
-			V.PC.shoulders = -1;
-			V.PC.hips = 1;
-			V.PC.muscles = 30;
-		}
-		if (V.PC.career === "escort") {
-			V.PC.anus = 1;
-			V.PC.clothes = "a slutty outfit";
-			V.PC.intelligenceImplant = 15;
-		} else if (V.PC.career === "servant") {
-			V.PC.geneticQuirks.fertility = 1;
-			V.PC.clothes = "a nice maid outfit";
-			V.PC.intelligenceImplant = 0;
-		}
-		if (V.PC.vagina === -1) {
-			V.PC.ovaries = 0;
-		} else if (V.PC.vagina > 0) {
-			V.PC.vaginaLube = 1;
-			V.PC.counter.birthsTotal = 0;
-			if (V.PC.career === "servant") {
-				if (V.PC.pregType !== 8) {
-					if (V.PC.actualAge >= 50) {
-						V.PC.counter.birthsTotal = 9;
-						V.PC.counter.birthMaster = 9;
-					} else if (V.PC.actualAge >= 35) {
-						V.PC.counter.birthsTotal = 6;
-						V.PC.counter.birthMaster = 6;
-					} else {
-						V.PC.counter.birthsTotal = 3;
-						V.PC.counter.birthMaster = 3;
-					}
-				} else {
-					// Master kept you pregged up
-					if (V.PC.actualAge >= 50) {
-						V.PC.counter.birthsTotal = 70;
-						V.PC.counter.birthMaster = 70;
-					} else if (V.PC.actualAge >= 35) {
-						V.PC.counter.birthsTotal = 40;
-						V.PC.counter.birthMaster = 40;
-					} else {
-						V.PC.counter.birthsTotal = 16;
-						V.PC.counter.birthMaster = 16;
-					}
-				}
-				V.PC.geneticQuirks.fertility = 2;
-				for (const slave of V.slaves) {
-					if (slave.mother === -1) {
-						V.PC.counter.birthsTotal += 1;
-						if (slave.father === -1) {
-							V.PC.counter.birthSelf += 1;
-						} else {
-							slave.father = -3;
-							V.PC.counter.birthMaster += 1;
-						}
-					}
-				}
-			} else if (V.PC.career === "escort") {
-				for (const slave of V.slaves) {
-					if (slave.mother === -1) {
-						V.PC.counter.birthsTotal += 1;
-						if (slave.father === -1) {
-							V.PC.counter.birthSelf += 1;
-						} else {
-							slave.father = -5;
-							V.PC.counter.birthClient += 1;
-						}
-					} else if (slave.father === -1) {
-						slave.mother = -5;
-					}
-				}
-			} else {
-				for (const slave of V.slaves) {
-					if (slave.mother === -1) {
-						V.PC.counter.birthsTotal += 1;
-						if (slave.father === -1) {
-							V.PC.counter.birthSelf += 1;
-						} else {
-							V.PC.counter.birthOther += 1;
-						}
-					}
-				}
-			}
-			if (V.PC.preg > 0) {
-				V.PC.pregWeek = V.PC.preg;
-				if (V.PC.pregType !== 8) {
-					V.PC.pregType = 1;
-				} else {
-					V.PC.geneticQuirks.hyperFertility = 2;
-				}
-				if (V.PC.career === "servant") {
-					V.PC.pregSource = -3;
-					if (V.PC.pregType !== 8) {
-						V.PC.pregType += either(0, 0, 1);
-					}
-				} else if (V.PC.career === "escort") {
-					V.PC.pregSource = -5;
-				}
-				V.PC.pregKnown = 1;
-				V.PC.belly = getPregBellySize(V.PC);
-				WombImpregnate(V.PC, V.PC.pregType, V.PC.pregSource, V.PC.preg);
-			}
-		}
-		if (V.PC.dick !== 0) {
-			V.PC.geneticQuirks.wellHung = 2;
-		} else {
-			V.PC.balls = 0;
-			V.PC.scrotum = 0;
-			V.PC.prostate = 0;
-		}
-		V.PC.ovaryAge = V.PC.physicalAge;
-	}
-
-	const pcMomFound = getSlave(V.PC.mother);
-	if (!pcMomFound && V.PC.mother > 0) {
-		const lostMom = V.PC.mother;
-		V.PC.mother = V.missingParentId;
-		for (const slave of V.slaves) {
-			if (slave.mother === lostMom) {
-				slave.mother = V.missingParentId;
-			}
-		}
-		V.missingParentId--;
-	}
-
-	const pcDadFound = getSlave(V.PC.father);
-	if (!pcDadFound && V.PC.father > 0) {
-		const lostDad = V.PC.father;
-		V.PC.father = V.missingParentId;
-		for (const slave of V.slaves) {
-			if (slave.father === lostDad) {
-				slave.father = V.missingParentId;
-			}
-		}
-		V.missingParentId--;
+		PCsetup();
 	}
 
-	for (const slave of V.slaves) {
-		const slaveMomFound = getSlave(slave.mother);
-		const slaveDadFound = getSlave(slave.father);
-		if (!pcMomFound && V.PC.mother > 0) {
-			lostMom = V.PC.mother;
-			V.PC.mother = V.missingParentID;
-			for (const slave of V.slaves) {
-				if (slave.mother === lostMom) {
-					slave.mother = V.missingParentID;
-				}
-			}
-			V.missingParentID--;
-		}
-		if (!pcDadFound && V.PC.father > 0) {
-			lostDad = V.PC.father;
-			V.PC.father = V.missingParentID;
-			for (const slave of V.slaves) {
-				if (slave.father === lostDad) {
-					slave.father = V.missingParentID;
-				}
-			}
-			V.missingParentID--;
-		}
-	}
-	const coeffSlaves = [];
-	const genePoolMap = {};
-	for (const slave of V.genePool) {
-		genePoolMap[slave.ID] = slave;
-	}
-	for (const slave of V.slaves) {
-		if (slave.newGamePlus === 0) {
-			slave.inbreedingCoeff = -1;
-			genePoolMap[slave.ID].inbreedingCoeff = -1;
-			coeffSlaves.push(slave);
-		}
-	}
-	const ibcoeffs = ibc.coeff_slaves(coeffSlaves);
-	for (const slave of coeffSlaves) {
-		slave.inbreedingCoeff = ibcoeffs[slave.ID];
-		genePoolMap[slave.ID].inbreedingCoeff = ibcoeffs[slave.ID];
-	}
+	parentSetup();
+	genepoolSetup();
 	if (V.plot === 1 && V.neighboringArcologies > 0) {
 		let bestProsperity = 0;
 		let bestProsperityIndex = 1;
@@ -213,7 +32,6 @@ App.StartingGirls.acquisition = function() {
 	App.UI.DOM.appendNewElement("p", el, `You arrive at your new arcology, ${V.arcologies[0].name}, and head straight to the penthouse to enter the access codes that will tell the ${V.arcologies[0].name} systems to recognize you as their owner. The penthouse office is ready to receive the codes, and they authenticate. A voice activates in your earpiece.`);
 	App.UI.DOM.appendNewElement("p", el, `Congratulations. I am a personal assistant program, and it is my pleasure to assist you, ${PlayerName()} the new owner of ${V.arcologies[0].name}. I will offer useful information whenever possible in italics. Your new arcology has some unusual equipment. The previous owner kept a small stable of sex slaves. The penthouse therefore has a body modification studio for tattooing, bleaching and piercing, and an auto salon for more prosaic things like hair care. It also has a remote surgery, a small surgical theater that can be operated remotely by a qualified surgeon if you can pay the fee. Finally, it has a slave nutrition system connected to the arcology's hydroponics bays. This system produces a tasty protein-rich drink that provides the physically active female body all its necessary nutrients while leaving the lower digestive tract extremely clean. It even causes a mild increase in sex drive.`, "note");
 
-	r = [];
 	r.push(`The previous owner seems to have left in something of a hurry.`);
 	let valueGiven = 0;
 	const heroSlaves = App.Utils.buildHeroArray().shuffle();
@@ -224,652 +42,10 @@ App.StartingGirls.acquisition = function() {
 		r.push(`Since it took some time for you to ensure that your existing stable of slaves were safely moved to ${V.arcologies[0].name}, the previous owner had the time to get most of their things away.`);
 	} else if ((V.targetArcology.fs !== "New") && (V.targetArcology.fs !== "Multiculturalist")) {
 		for (let j = 0; j < 5; j++) {
-			let slave;
 			if (valueOwed - valueGiven <= 5000) {
 				break;
 			}
-			switch (V.targetArcology.fs) {
-				case "Supremacist":
-					V.oneTimeDisableDisability = 1;
-					slave = GenerateNewSlave("XX", {race: V.arcologies[0].FSSupremacistRace});
-					slave.devotion = random(25, 45);
-					slave.trust = random(-25, -45);
-					setHealth(slave, jsRandom(0, 20), 0, 0, 0, 0);
-					slave.face = random(15, 100);
-					slave.skill.oral = random(15, 35);
-					slave.skill.anal = random(15, 35);
-					if (slave.vagina > -1) {
-						if (slave.vagina === 0) {
-							slave.vagina++;
-						}
-						slave.skill.vaginal = random(15, 35);
-					}
-					slave.skill.entertainment = random(15, 35);
-					slave.clothes = "uncomfortable straps";
-					slave.collar = "uncomfortable leather";
-					slave.shoes = "flats";
-					slave.assignment = "please you";
-					break;
-				case "Subjugationist":
-					V.oneTimeDisableDisability = 1;
-					slave = GenerateNewSlave("XX", {race: V.arcologies[0].FSSubjugationistRace});
-					slave.devotion = random(25, 45);
-					slave.trust = random(-25, -45);
-					setHealth(slave, jsRandom(0, 20), 0, 0, 0, 0);
-					slave.face = random(15, 100);
-					slave.skill.oral = random(15, 35);
-					slave.skill.anal = random(15, 35);
-					if (slave.vagina > -1) {
-						if (slave.vagina === 0) {
-							slave.vagina++;
-						}
-						slave.skill.vaginal = random(15, 35);
-					}
-					slave.skill.whoring = random(15, 35);
-					slave.clothes = "uncomfortable straps";
-					slave.collar = "uncomfortable leather";
-					slave.shoes = "flats";
-					slave.assignment = "whore";
-					break;
-				case "GenderRadicalist":
-					slave = GenerateNewSlave("XY", {disableDisability: 1, maxAge: 25});
-					slave.devotion = random(25, 45);
-					slave.trust = random(15, -15);
-					setHealth(slave, 100, 0, 0, 0, jsRandom(0, 20));
-					slave.face = random(0, 55);
-					slave.boobs += 100 * random(2, 4);
-					slave.butt += random(1, 2);
-					slave.attrXY = random(70, 90);
-					slave.attrXX = 0;
-					slave.skill.oral = random(35, 65);
-					slave.skill.anal = random(35, 65);
-					slave.skill.whoring = random(35, 65);
-					SoftenSexualFlaw(slave);
-					slave.clothes = "uncomfortable straps";
-					slave.collar = "stylish leather";
-					slave.shoes = "heels";
-					slave.assignment = "whore";
-					break;
-				case "GenderFundamentalist":
-					slave = GenerateNewSlave("XX", {minAge: V.fertilityAge, maxAge: 25, disableDisability: 1});
-					slave.devotion = random(25, 45);
-					slave.trust = random(-25, -45);
-					setHealth(slave, jsRandom(55, 65), 0, 0, 0, 0);
-					slave.face = random(15, 100);
-					slave.preg = random(1, 40);
-					slave.lactation = 1;
-					slave.lactationDuration = 2;
-					SetBellySize(slave);
-					if (slave.vagina > -1) {
-						if (slave.vagina === 0) {
-							slave.vagina++;
-						}
-						slave.skill.vaginal = random(15, 35);
-					}
-					slave.clothes = "a nice maid outfit";
-					slave.collar = "tight steel";
-					slave.shoes = "flats";
-					slave.assignment = "be a servant";
-					break;
-				case "Paternalist":
-					slave = GenerateNewSlave("XX", {disableDisability: 1});
-					slave.devotion = random(25, 45);
-					slave.trust = random(55, 65);
-					setHealth(slave, jsRandom(55, 65), 0, 0, 0, 0);
-					slave.face = random(15, 100);
-					slave.intelligence = random(0, 100);
-					slave.intelligenceImplant = 30;
-					slave.skill.entertainment = random(15, 35);
-					slave.clothes = "conservative clothing";
-					slave.collar = "none";
-					slave.shoes = "flats";
-					slave.assignment = "be a servant";
-					break;
-				case "Degradationist":
-					slave = GenerateNewSlave("XX");
-					slave.devotion = 25;
-					slave.trust = -25;
-					setHealth(slave, jsRandom(0, 15), 0, 0, 0, 0);
-					slave.fuckdoll = 100;
-					slave.career = "a Fuckdoll";
-					slave.fetish = "mindbroken";
-					slave.boobs += 100 * random(10, 20);
-					slave.butt += random(2, 3);
-					slave.lips = random(2, 4);
-					slave.weight = random(-15, 15);
-					slave.skill.oral = 0;
-					slave.skill.anal = 0;
-					slave.skill.vaginal = 0;
-					slave.skill.entertainment = 0;
-					slave.skill.whoring = 0;
-					slave.behavioralFlaw = "none";
-					slave.sexualFlaw = "none";
-					slave.clothes = "a Fuckdoll suit";
-					slave.assignment = "please you";
-					break;
-				case "AssetExpansionist":
-					slave = GenerateNewSlave("XX", {disableDisability: 1});
-					slave.devotion = random(25, 45);
-					slave.trust = random(-15, 15);
-					setHealth(slave, jsRandom(25, 45), 0, 0, 0, 0);
-					slave.chem = 50;
-					slave.face = random(15, 100);
-					slave.boobs += 100 * random(10, 20);
-					slave.butt += random(2, 3);
-					slave.lips += random(0, 1);
-					if (slave.balls > 0) {
-						slave.balls++;
-					}
-					if (slave.dick > 0) {
-						slave.dick++;
-					}
-					slave.weight = random(15, 90);
-					slave.skill.oral = random(15, 35);
-					slave.skill.anal = 0;
-					slave.anus = 0;
-					if (slave.vagina > -1) {
-						if (slave.vagina === 0) {
-							slave.vagina++;
-						}
-						slave.skill.vaginal = random(15, 35);
-					}
-					slave.skill.entertainment = random(15, 35);
-					slave.clothes = "slutty jewelry";
-					slave.collar = "pretty jewelry";
-					slave.shoes = "heels";
-					slave.assignment = "please you";
-					break;
-				case "SlimnessEnthusiast":
-					slave = GenerateNewSlave("XX", {disableDisability: 1});
-					slave.devotion = random(25, 45);
-					slave.trust = random(55, 65);
-					setHealth(slave, jsRandom(55, 65), 0, 0, 0, 0);
-					slave.face = random(15, 100);
-					slave.boobs = 100 * random(1, 4);
-					slave.butt = random(1, 2);
-					slave.weight = random(-25, -15);
-					slave.skill.oral = random(15, 35);
-					slave.skill.anal = 0;
-					slave.anus = 0;
-					if (slave.vagina > -1) {
-						if (slave.vagina === 0) {
-							slave.vagina++;
-						}
-						slave.skill.vaginal = random(15, 35);
-					}
-					slave.skill.entertainment = random(15, 35);
-					slave.clothes = "a leotard";
-					slave.collar = "pretty jewelry";
-					slave.shoes = "flats";
-					slave.assignment = "please you";
-					break;
-				case "TransformationFetishist":
-					slave = GenerateNewSlave("XX", {disableDisability: 1});
-					slave.devotion = random(25, 45);
-					slave.trust = random(-15, 15);
-					setHealth(slave, jsRandom(-15, 0), Math.max(normalRandInt(5, 3), 0), Math.max(normalRandInt(5, 3), 0), 0, 0);
-					slave.faceImplant = random(40, 70);
-					slave.face = Math.clamp(Math.trunc(slave.face + slave.faceImplant / 2), -100, 100);
-					slave.boobsImplant = 200 * random(4, 8);
-					slave.boobs += slave.boobsImplant;
-					slave.boobsImplantType = "normal";
-					slave.buttImplant = random(2, 4);
-					slave.butt += slave.buttImplant;
-					slave.buttImplantType = "normal";
-					slave.lipsImplant = random(1, 2);
-					slave.lips = Math.clamp(Math.trunc(slave.lipsImplant + 2), -3, 3);
-					slave.weight = random(-25, -15);
-					slave.skill.oral = random(15, 35);
-					slave.skill.anal = random(15, 35);
-					if (slave.vagina > -1) {
-						if (slave.vagina === 0) {
-							slave.vagina++;
-						}
-						slave.skill.vaginal = random(15, 35);
-					}
-					slave.clothes = "a string bikini";
-					slave.collar = "shock punishment";
-					slave.shoes = "extreme heels";
-					slave.assignment = "whore";
-					break;
-				case "BodyPurist":
-					slave = GenerateNewSlave("XX", {disableDisability: 1});
-					slave.devotion = random(55, 65);
-					slave.trust = random(25, 45);
-					setHealth(slave, 100, 0, 0, 0, jsRandom(0, 20));
-					slave.face = random(15, 100);
-					slave.weight = random(-5, 5);
-					slave.muscles = random(10, 25);
-					slave.skill.oral = random(15, 35);
-					slave.skill.anal = random(15, 35);
-					if (slave.vagina > -1) {
-						if (slave.vagina === 0) {
-							slave.vagina++;
-						}
-						slave.skill.vaginal = random(15, 35);
-					}
-					slave.clothes = "a nice maid outfit";
-					slave.collar = "pretty jewelry";
-					slave.shoes = "heels";
-					slave.assignment = "be a servant";
-					break;
-				case "MaturityPreferentialist":
-					slave = GenerateNewSlave("XX", {
-						minAge: 36, maxAge: 39, ageOverridesPedoMode: 1, disableDisability: 1
-					});
-					slave.devotion = random(55, 65);
-					slave.trust = random(-15, 15);
-					setHealth(slave, jsRandom(25, 45), 0, 0, 0, 0);
-					slave.face = random(15, 100);
-					slave.boobs += 100 * random(1, 4);
-					slave.butt += random(1, 2);
-					slave.weight = random(-5, 90);
-					slave.skill.oral = random(15, 35);
-					slave.skill.anal = random(15, 35);
-					if (slave.vagina > -1) {
-						if (slave.vagina === 0) {
-							slave.vagina++;
-						}
-						slave.skill.vaginal = random(15, 35);
-					}
-					SoftenBehavioralFlaw(slave);
-					slave.clothes = "a slutty maid outfit";
-					slave.collar = "pretty jewelry";
-					slave.shoes = "heels";
-					slave.assignment = "be a servant";
-					break;
-				case "YouthPreferentialist":
-					slave = GenerateNewSlave("XX", {maxAge: 19, disableDisability: 1});
-					slave.devotion = random(25, 45);
-					slave.trust = random(55, 65);
-					setHealth(slave, jsRandom(25, 45), 0, 0, 0, 0);
-					slave.face = random(15, 100);
-					slave.boobs = 100 * random(1, 4);
-					slave.butt = random(1, 3);
-					slave.weight = random(-25, 25);
-					slave.skill.oral = random(15, 35);
-					slave.skill.anal = 0;
-					slave.anus = 0;
-					if (slave.vagina > -1) {
-						slave.skill.vaginal = 0;
-						slave.vagina = 0;
-					}
-					slave.skill.entertainment = random(15, 35);
-					slave.clothes = "a schoolgirl outfit";
-					slave.collar = "pretty jewelry";
-					slave.shoes = "heels";
-					slave.assignment = "be a servant";
-					break;
-				case "Pastoralist":
-					slave = GenerateNewSlave("XX", {disableDisability: 1});
-					slave.devotion = random(25, 45);
-					slave.trust = random(-25, -45);
-					setHealth(slave, jsRandom(25, 45), 0, 0, 0, 0);
-					slave.boobs += 100 * random(10, 20);
-					if (slave.balls > 0) {
-						slave.balls++;
-					}
-					slave.lactation = 2;
-					slave.lactationDuration = 2;
-					slave.clothes = "Western clothing";
-					slave.collar = "leather with cowbell";
-					slave.shoes = "flats";
-					slave.assignment = "get milked";
-					break;
-				case "PhysicalIdealist":
-					slave = GenerateNewSlave("XX", {disableDisability: 1});
-					slave.devotion = random(25, 45);
-					slave.trust = random(25, 45);
-					setHealth(slave, 100, 0, 0, 0, jsRandom(10, 40));
-					slave.muscles = random(50, 100);
-					slave.skill.oral = random(15, 35);
-					slave.skill.anal = random(15, 35);
-					if (slave.vagina > -1) {
-						if (slave.vagina === 0) {
-							slave.vagina++;
-						}
-						slave.skill.vaginal = random(15, 35);
-					}
-					slave.skill.whoring = random(15, 35);
-					slave.clothes = "body oil";
-					slave.collar = "none";
-					slave.shoes = "none";
-					slave.assignment = "whore";
-					break;
-				case "ChattelReligionist":
-					slave = GenerateNewSlave("XX", {disableDisability: 1});
-					slave.devotion = random(55, 65);
-					slave.trust = random(55, 65);
-					setHealth(slave, jsRandom(0, 15), 0, 0, 0, 0);
-					if (slave.vagina === 0) {
-						slave.vagina++;
-					}
-					slave.skill.whoring = random(10, 20);
-					slave.behavioralFlaw = "none";
-					slave.behavioralQuirk = "sinful";
-					slave.clothes = "a chattel habit";
-					slave.collar = "heavy gold";
-					slave.shoes = "flats";
-					slave.assignment = "whore";
-					break;
-				case "RomanRevivalist":
-					slave = GenerateNewSlave("XX", {maxAge: 19, disableDisability: 1});
-					slave.devotion = 100;
-					slave.trust = random(55, 65);
-					setHealth(slave, 100, 0, 0, 0, jsRandom(10, 30));
-					slave.face = random(0, 55);
-					slave.muscles = random(25, 50);
-					slave.skill.combat = 1;
-					slave.behavioralFlaw = "none";
-					slave.behavioralQuirk = "fitness";
-					slave.behavioralFlaw = "none";
-					slave.clothes = "a toga";
-					slave.collar = "pretty jewelry";
-					slave.shoes = "flats";
-					slave.assignment = "guard you";
-					V.BodyguardID = slave.ID;
-					break;
-				case "NeoImperialist":
-					slave = GenerateNewSlave("XX", {
-						minAge: 16, maxAge: 28, race: "white", disableDisability: 1
-					});
-					slave.devotion = 100;
-					slave.trust = random(55, 65);
-					setHealth(slave, 100, 0, 0, 0, jsRandom(10, 30));
-					slave.face = random(20, 75);
-					slave.muscles = random(25, 60);
-					slave.skill.combat = 1;
-					slave.behavioralFlaw = "none";
-					slave.behavioralQuirk = "fitness";
-					slave.behavioralFlaw = "none";
-					slave.skill.entertainment = random(15, 35);
-					slave.clothes = "a tight Imperial bodysuit";
-					slave.shoes = "flats";
-					slave.assignment = "guard you";
-					V.BodyguardID = slave.ID;
-					break;
-				case "AztecRevivalist":
-					slave = GenerateNewSlave(null, {race: "latina", nationality: "Mexican", disableDisability: 1});
-					slave.accent = 0;
-					slave.devotion = 75;
-					slave.trust = 75;
-					setHealth(slave, jsRandom(-20, 20), 0, 0, 0, 0);
-					slave.muscles = random(50, 75);
-					slave.skill.combat = 1;
-					slave.behavioralFlaw = "malicious";
-					slave.behavioralQuirk = "none";
-					slave.clothes = "a huipil";
-					slave.collar = "pretty jewelry";
-					slave.shoes = "none";
-					slave.assignment = "be your Head Girl";
-					V.HeadGirlID = slave.ID;
-					break;
-				case "EgyptianRevivalist":
-					slave = GenerateNewSlave("XX", {disableDisability: 1});
-					slave.devotion = random(25, 45);
-					slave.trust = random(25, 45);
-					setHealth(slave, jsRandom(25, 45), 0, 0, 0, 0);
-					slave.face = random(15, 100);
-					slave.skill.oral = random(15, 35);
-					slave.skill.anal = random(15, 35);
-					if (slave.vagina > -1) {
-						if (slave.vagina === 0) {
-							slave.vagina++;
-						}
-						slave.skill.vaginal = random(15, 35);
-					}
-					slave.skill.entertainment = random(15, 35);
-					SoftenSexualFlaw(slave);
-					slave.clothes = "slutty jewelry";
-					slave.collar = "ancient Egyptian";
-					slave.shoes = "flats";
-					slave.assignment = "please you";
-					break;
-				case "EdoRevivalist":
-					slave = GenerateNewSlave(null, {race: "asian", nationality: "Japanese", disableDisability: 1});
-					slave.accent = 0;
-					slave.devotion = random(25, 45);
-					slave.trust = random(25, 45);
-					setHealth(slave, jsRandom(25, 45), 0, 0, 0, 0);
-					slave.face = random(15, 100);
-					slave.intelligence = random(0, 100);
-					slave.intelligenceImplant = 30;
-					slave.skill.entertainment = 100;
-					slave.clothes = "a kimono";
-					slave.collar = "satin choker";
-					slave.shoes = "heels";
-					slave.assignment = "serve the public";
-					break;
-				case "ArabianRevivalist":
-					slave = GenerateNewSlave("XX", {disableDisability: 1});
-					slave.devotion = random(25, 45);
-					slave.trust = random(-15, 15);
-					setHealth(slave, jsRandom(25, 45), 0, 0, 0, 0);
-					slave.face = random(15, 100);
-					slave.intelligence = random(-15, 80);
-					slave.intelligenceImplant = 0;
-					slave.clothes = "harem gauze";
-					slave.collar = "uncomfortable leather";
-					slave.shoes = "flats";
-					slave.assignment = "take classes";
-					break;
-				case "ChineseRevivalist":
-					slave = GenerateNewSlave(null, {
-						race: "asian", nationality: "Chinese", minAge: 36, maxAge: 38, ageOverridesPedoMode: 1, disableDisability: 1
-					});
-					slave.devotion = random(55, 65);
-					slave.trust = random(25, 45);
-					setHealth(slave, jsRandom(25, 45), 0, 0, 0, 0);
-					slave.face = random(0, 55);
-					slave.accent = 0;
-					slave.intelligence = 100;
-					slave.intelligenceImplant = 30;
-					slave.skill.oral = 100;
-					slave.skill.anal = 100;
-					if (slave.vagina > -1) {
-						if (slave.vagina === 0) {
-							slave.vagina++;
-						}
-						slave.skill.vaginal = 100;
-					}
-					slave.skill.entertainment = 100;
-					slave.skill.whoring = 100;
-					SoftenBehavioralFlaw(slave);
-					SoftenSexualFlaw(slave);
-					slave.clothes = "a slutty qipao";
-					slave.collar = "pretty jewelry";
-					slave.shoes = "heels";
-					slave.assignment = "be your Head Girl";
-					V.HeadGirlID = slave.ID;
-					break;
-				case "Eugenics":
-					slave = GenerateNewSlave("XX", {disableDisability: 1});
-					slave.devotion = -100;
-					slave.trust = -100;
-					setHealth(slave, jsRandom(80, 90), 0, 0, 0, 0);
-					slave.intelligence = 100;
-					slave.intelligenceImplant = 30;
-					slave.face = 100;
-					slave.faceShape = "sensual";
-					slave.skill.oral = random(35, 75);
-					slave.skill.anal = random(35, 75);
-					if (slave.vagina > -1) {
-						if (slave.vagina === 0) {
-							slave.vagina++;
-						}
-						slave.skill.vaginal = random(35, 75);
-					}
-					slave.skill.entertainment = random(15, 35);
-					slave.skill.whoring = 0;
-					SoftenSexualFlaw(slave);
-					slave.clothes = "a ball gown";
-					slave.shoes = "flats";
-					slave.assignment = "rest";
-					break;
-				case "Repopulationist":
-					slave = GenerateNewSlave("XX", {
-						minAge: V.fertilityAge + 3, maxAge: 25, ageOverridesPedoMode: 1, disableDisability: 1
-					});
-					slave.devotion = random(25, 45);
-					slave.trust = random(-25, -45);
-					setHealth(slave, jsRandom(55, 65), 0, 0, 0, 0);
-					slave.face = random(15, 100);
-					slave.preg = random(10, 40);
-					slave.pregType = random(3, 8);
-					slave.lactation = 1;
-					slave.lactationDuration = 2;
-					SetBellySize(slave);
-					slave.counter.birthsTotal = 5;
-					slave.bellySag = 20;
-					slave.bellySagPreg = 20;
-					if (slave.vagina > -1) {
-						slave.vagina = 4;
-						slave.skill.vaginal = random(15, 35);
-					}
-					slave.clothes = "a nice maid outfit";
-					slave.shoes = "flats";
-					slave.assignment = "please you";
-					break;
-				case "HedonisticDecadence":
-					slave = GenerateNewSlave("XX", {maxAge: 25, disableDisability: 1});
-					slave.devotion = random(25, 45);
-					slave.trust = random(-25, -45);
-					setHealth(slave, jsRandom(-20, 20), 0, 0, 0, 0);
-					slave.face = random(15, 40);
-					slave.boobs += 100 * random(3, 6);
-					slave.butt += random(2, 5);
-					slave.weight = random(100, 200);
-					slave.skill.oral = random(15, 35);
-					slave.skill.anal = random(15, 35);
-					slave.anus = 2;
-					if (slave.vagina > -1) {
-						slave.skill.vaginal = random(15, 35);
-						slave.vagina = 3;
-					}
-					slave.skill.entertainment = 0;
-					slave.energy = random(60, 80);
-					slave.behavioralFlaw = "gluttonous";
-					slave.clothes = "attractive lingerie";
-					slave.shoes = "flats";
-					slave.diet = "fattening";
-					slave.rules.living = "luxurious";
-					slave.assignment = "rest";
-					break;
-				case "IntellectualDependency":
-					slave = GenerateNewSlave("XX", {minAge: 14, maxAge: 18, disableDisability: 1});
-					setHealth(slave, jsRandom(55, 65), 0, 0, 0, 0);
-					slave.devotion = random(45, 65);
-					slave.trust = random(-15, 45);
-					slave.face = random(30, 100);
-					slave.energy = 100;
-					slave.weight = random(-25, -15);
-					slave.skill.oral = 0;
-					slave.skill.anal = 0;
-					slave.skill.vaginal = 0;
-					slave.skill.entertainment = 0;
-					slave.skill.whoring = 0;
-					slave.intelligence = -100;
-					slave.intelligenceImplant = 0;
-					if (slave.vagina === 0) {
-						slave.vagina++;
-					}
-					slave.anus++;
-					break;
-				case "SlaveProfessionalism":
-					slave = GenerateNewSlave("XX", {minAge: 18, maxAge: 25, disableDisability: 1});
-					slave.devotion = 100;
-					slave.trust = 20;
-					setHealth(slave, 80, 0, 0, 0, jsRandom(10, 30));
-					slave.face = random(30, 100);
-					slave.energy = 10;
-					slave.weight = random(-15, 5);
-					slave.skill.oral = 100;
-					slave.skill.anal = 100;
-					slave.skill.vaginal = 100;
-					slave.skill.entertainment = 100;
-					slave.skill.whoring = 100;
-					slave.intelligence = 100;
-					slave.intelligenceImplant = 30;
-					slave.accent = 0;
-					SoftenBehavioralFlaw(slave);
-					SoftenSexualFlaw(slave);
-					slave.clothes = "a nice maid outfit";
-					slave.collar = "pretty jewelry";
-					slave.assignment = "be your Head Girl";
-					V.HeadGirlID = slave.ID;
-					break;
-				case "PetiteAdmiration":
-					slave = GenerateNewSlave("XX", {minAge: 14, maxAge: 18, disableDisability: 1});
-					slave.devotion = random(55, 65);
-					slave.trust = random(-15, 15);
-					setHealth(slave, jsRandom(25, 45), 0, 0, 0, 0);
-					slave.face = random(15, 100);
-					if (slave.height >= 150) {
-						slave.height = Math.trunc(Height.random(slave, {limitMult: [-3, -1]}));
-						if (slave.height >= 150) {
-							slave.height = Math.trunc(Height.random(slave, {limitMult: [-4, -2]}));
-							if (slave.height >= 150) {
-								slave.height = random(90, 130);
-								slave.geneticQuirks.dwarfism = 2;
-							}
-						}
-					}
-					slave.skill.oral = random(35, 65);
-					slave.skill.anal = random(15, 35);
-					if (slave.vagina > -1) {
-						if (slave.vagina === 0) {
-							slave.vagina++;
-						}
-						slave.skill.vaginal = random(15, 35);
-					}
-					slave.clothes = "a succubus outfit";
-					slave.legAccessory = "long stockings";
-					slave.assignment = "please you";
-					break;
-				case "StatuesqueGlorification":
-					slave = GenerateNewSlave("XX", {
-						minAge: 18, maxAge: 30, ageOverridesPedoMode: 1, disableDisability: 1
-					});
-					slave.devotion = random(55, 65);
-					slave.trust = random(-15, 15);
-					setHealth(slave, jsRandom(25, 45), 0, 0, 0, 0);
-					slave.face = random(15, 100);
-					slave.weight = random(-5, 5);
-					slave.muscles = random(20, 40);
-					if (slave.height < 185) {
-						slave.height = Math.trunc(Height.random(slave, {limitMult: [1, 3]}));
-						if (slave.height < 185) {
-							slave.height = Math.trunc(Height.random(slave, {limitMult: [2, 4]}));
-							if (slave.height < 185) {
-								slave.height = random(200, 264);
-								slave.geneticQuirks.gigantism = 2;
-							}
-						}
-					}
-					slave.skill.oral = random(15, 35);
-					slave.skill.anal = random(15, 35);
-					if (slave.vagina > -1) {
-						if (slave.vagina === 0) {
-							slave.vagina++;
-						}
-						slave.skill.vaginal = random(15, 35);
-					}
-					slave.clothes = "slutty business attire";
-					slave.shoes = "heels";
-					slave.assignment = "please you";
-					break;
-				default:
-					r.push(`ERROR: bad arcology type`);
-			}
-			slave.origin = "You acquired $him along with the arcology.";
-			slave.career = "a slave";
-			let slaveCostValue = slaveCost(slave);
-			if (["AztecRevivalist", "ChineseRevivalist", "NeoImperialist", "Eugenics", "SlaveProfessionalism"].includes(V.targetArcology.fs)) {
-				valueGiven += slaveCostValue * 4;
-			} else {
-				valueGiven += slaveCostValue;
-			}
-			newSlave(slave);
+			generateFSslave(V.targetArcology.fs);
 		}
 		const {He, his, girl} = getPronouns(getSlave(random(V.slaves.length)));
 		switch (V.targetArcology.fs) {
@@ -1017,8 +193,7 @@ App.StartingGirls.acquisition = function() {
 							r.push(`happy to meet you.`);
 						}
 					}
-				} else if (slave.belly >= 5000) {
-					/* had to be placed after pregnancy or it would intercept*/
+				} else if (slave.belly >= 5000) { // had to be placed after pregnancy or it would intercept
 					r.push(`is currently in the dormitory massaging ${his} greatly distended belly.`);
 				} else if (slave.fetish === "buttslut") {
 					r.push(`is currently in the dormitory masturbating anally, and I believe ${he} will be happy to meet you.`);
@@ -1103,4 +278,842 @@ App.StartingGirls.acquisition = function() {
 		)
 	);
 	return el;
+
+	function PCsetup() {
+		V.PC.birthName = V.PC.slaveName;
+		if (V.PC.slaveSurname) {
+			V.PC.birthSurname = V.PC.slaveSurname;
+		}
+		if (V.PC.title === 1) {
+			V.PC.muscles = 50;
+		} else {
+			V.PC.hLength = 15;
+			V.PC.waist = -20;
+			V.PC.voice = 2;
+			V.PC.shoulders = -1;
+			V.PC.hips = 1;
+			V.PC.muscles = 30;
+		}
+		if (V.PC.career === "escort") {
+			V.PC.anus = 1;
+			V.PC.clothes = "a slutty outfit";
+			V.PC.intelligenceImplant = 15;
+		} else if (V.PC.career === "servant") {
+			V.PC.geneticQuirks.fertility = 1;
+			V.PC.clothes = "a nice maid outfit";
+			V.PC.intelligenceImplant = 0;
+		}
+		if (V.PC.vagina === -1) {
+			V.PC.ovaries = 0;
+		} else if (V.PC.vagina > 0) {
+			V.PC.vaginaLube = 1;
+			V.PC.counter.birthsTotal = 0;
+			if (V.PC.career === "servant") {
+				if (V.PC.pregType !== 8) {
+					if (V.PC.actualAge >= 50) {
+						V.PC.counter.birthsTotal = 9;
+						V.PC.counter.birthMaster = 9;
+					} else if (V.PC.actualAge >= 35) {
+						V.PC.counter.birthsTotal = 6;
+						V.PC.counter.birthMaster = 6;
+					} else {
+						V.PC.counter.birthsTotal = 3;
+						V.PC.counter.birthMaster = 3;
+					}
+				} else { // Master kept you pregged up
+					if (V.PC.actualAge >= 50) {
+						V.PC.counter.birthsTotal = 70;
+						V.PC.counter.birthMaster = 70;
+					} else if (V.PC.actualAge >= 35) {
+						V.PC.counter.birthsTotal = 40;
+						V.PC.counter.birthMaster = 40;
+					} else {
+						V.PC.counter.birthsTotal = 16;
+						V.PC.counter.birthMaster = 16;
+					}
+				}
+				V.PC.geneticQuirks.fertility = 2;
+				for (const slave of V.slaves) {
+					if (slave.mother === -1) {
+						V.PC.counter.birthsTotal += 1;
+						if (slave.father === -1) {
+							V.PC.counter.birthSelf += 1;
+						} else {
+							slave.father = -3;
+							V.PC.counter.birthMaster += 1;
+						}
+					}
+				}
+			} else if (V.PC.career === "escort") {
+				for (const slave of V.slaves) {
+					if (slave.mother === -1) {
+						V.PC.counter.birthsTotal += 1;
+						if (slave.father === -1) {
+							V.PC.counter.birthSelf += 1;
+						} else {
+							slave.father = -5;
+							V.PC.counter.birthClient += 1;
+						}
+					} else if (slave.father === -1) {
+						slave.mother = -5;
+					}
+				}
+			} else {
+				for (const slave of V.slaves) {
+					if (slave.mother === -1) {
+						V.PC.counter.birthsTotal += 1;
+						if (slave.father === -1) {
+							V.PC.counter.birthSelf += 1;
+						} else {
+							V.PC.counter.birthOther += 1;
+						}
+					}
+				}
+			}
+			if (V.PC.preg > 0) {
+				V.PC.pregWeek = V.PC.preg;
+				if (V.PC.pregType !== 8) {
+					V.PC.pregType = 1;
+				} else {
+					V.PC.geneticQuirks.hyperFertility = 2;
+				}
+				if (V.PC.career === "servant") {
+					V.PC.pregSource = -3;
+					if (V.PC.pregType !== 8) {
+						V.PC.pregType += either(0, 0, 1);
+					}
+				} else if (V.PC.career === "escort") {
+					V.PC.pregSource = -5;
+				}
+				V.PC.pregKnown = 1;
+				V.PC.belly = getPregBellySize(V.PC);
+				WombImpregnate(V.PC, V.PC.pregType, V.PC.pregSource, V.PC.preg);
+			}
+		}
+		if (V.PC.dick !== 0) {
+			V.PC.geneticQuirks.wellHung = 2;
+		} else {
+			V.PC.balls = 0;
+			V.PC.scrotum = 0;
+			V.PC.prostate = 0;
+		}
+		V.PC.ovaryAge = V.PC.physicalAge;
+	}
+
+	function parentSetup() {
+		const pcMomFound = getSlave(V.PC.mother);
+		if (!pcMomFound && V.PC.mother > 0) {
+			const lostMom = V.PC.mother;
+			V.PC.mother = V.missingParentId;
+			for (const slave of V.slaves) {
+				if (slave.mother === lostMom) {
+					slave.mother = V.missingParentId;
+				}
+			}
+			V.missingParentId--;
+		}
+
+		const pcDadFound = getSlave(V.PC.father);
+		if (!pcDadFound && V.PC.father > 0) {
+			const lostDad = V.PC.father;
+			V.PC.father = V.missingParentId;
+			for (const slave of V.slaves) {
+				if (slave.father === lostDad) {
+					slave.father = V.missingParentId;
+				}
+			}
+			V.missingParentId--;
+		}
+
+		for (const slave of V.slaves) {
+			const slaveMomFound = getSlave(slave.mother);
+			const slaveDadFound = getSlave(slave.father);
+			if (!pcMomFound && V.PC.mother > 0) {
+				lostMom = V.PC.mother;
+				V.PC.mother = V.missingParentID;
+				for (const slave of V.slaves) {
+					if (slave.mother === lostMom) {
+						slave.mother = V.missingParentID;
+					}
+				}
+				V.missingParentID--;
+			}
+			if (!pcDadFound && V.PC.father > 0) {
+				lostDad = V.PC.father;
+				V.PC.father = V.missingParentID;
+				for (const slave of V.slaves) {
+					if (slave.father === lostDad) {
+						slave.father = V.missingParentID;
+					}
+				}
+				V.missingParentID--;
+			}
+		}
+	}
+
+	function genepoolSetup() {
+		const coeffSlaves = [];
+		const genePoolMap = {};
+		for (const slave of V.genePool) {
+			genePoolMap[slave.ID] = slave;
+		}
+		for (const slave of V.slaves) {
+			if (slave.newGamePlus === 0) {
+				slave.inbreedingCoeff = -1;
+				genePoolMap[slave.ID].inbreedingCoeff = -1;
+				coeffSlaves.push(slave);
+			}
+		}
+		const ibcoeffs = ibc.coeff_slaves(coeffSlaves);
+		for (const slave of coeffSlaves) {
+			slave.inbreedingCoeff = ibcoeffs[slave.ID];
+			genePoolMap[slave.ID].inbreedingCoeff = ibcoeffs[slave.ID];
+		}
+	}
+
+	function generateFSslave(FS) {
+		let slave;
+		switch (FS) {
+			case "Supremacist":
+				V.oneTimeDisableDisability = 1;
+				slave = GenerateNewSlave("XX", {race: V.arcologies[0].FSSupremacistRace});
+				slave.devotion = random(25, 45);
+				slave.trust = random(-25, -45);
+				setHealth(slave, jsRandom(0, 20), 0, 0, 0, 0);
+				slave.face = random(15, 100);
+				slave.skill.oral = random(15, 35);
+				slave.skill.anal = random(15, 35);
+				if (slave.vagina > -1) {
+					if (slave.vagina === 0) {
+						slave.vagina++;
+					}
+					slave.skill.vaginal = random(15, 35);
+				}
+				slave.skill.entertainment = random(15, 35);
+				slave.clothes = "uncomfortable straps";
+				slave.collar = "uncomfortable leather";
+				slave.shoes = "flats";
+				slave.assignment = "please you";
+				break;
+			case "Subjugationist":
+				V.oneTimeDisableDisability = 1;
+				slave = GenerateNewSlave("XX", {race: V.arcologies[0].FSSubjugationistRace});
+				slave.devotion = random(25, 45);
+				slave.trust = random(-25, -45);
+				setHealth(slave, jsRandom(0, 20), 0, 0, 0, 0);
+				slave.face = random(15, 100);
+				slave.skill.oral = random(15, 35);
+				slave.skill.anal = random(15, 35);
+				if (slave.vagina > -1) {
+					if (slave.vagina === 0) {
+						slave.vagina++;
+					}
+					slave.skill.vaginal = random(15, 35);
+				}
+				slave.skill.whoring = random(15, 35);
+				slave.clothes = "uncomfortable straps";
+				slave.collar = "uncomfortable leather";
+				slave.shoes = "flats";
+				slave.assignment = "whore";
+				break;
+			case "GenderRadicalist":
+				slave = GenerateNewSlave("XY", {disableDisability: 1, maxAge: 25});
+				slave.devotion = random(25, 45);
+				slave.trust = random(15, -15);
+				setHealth(slave, 100, 0, 0, 0, jsRandom(0, 20));
+				slave.face = random(0, 55);
+				slave.boobs += 100 * random(2, 4);
+				slave.butt += random(1, 2);
+				slave.attrXY = random(70, 90);
+				slave.attrXX = 0;
+				slave.skill.oral = random(35, 65);
+				slave.skill.anal = random(35, 65);
+				slave.skill.whoring = random(35, 65);
+				SoftenSexualFlaw(slave);
+				slave.clothes = "uncomfortable straps";
+				slave.collar = "stylish leather";
+				slave.shoes = "heels";
+				slave.assignment = "whore";
+				break;
+			case "GenderFundamentalist":
+				slave = GenerateNewSlave("XX", {minAge: V.fertilityAge, maxAge: 25, disableDisability: 1});
+				slave.devotion = random(25, 45);
+				slave.trust = random(-25, -45);
+				setHealth(slave, jsRandom(55, 65), 0, 0, 0, 0);
+				slave.face = random(15, 100);
+				slave.preg = random(1, 40);
+				slave.lactation = 1;
+				slave.lactationDuration = 2;
+				SetBellySize(slave);
+				if (slave.vagina > -1) {
+					if (slave.vagina === 0) {
+						slave.vagina++;
+					}
+					slave.skill.vaginal = random(15, 35);
+				}
+				slave.clothes = "a nice maid outfit";
+				slave.collar = "tight steel";
+				slave.shoes = "flats";
+				slave.assignment = "be a servant";
+				break;
+			case "Paternalist":
+				slave = GenerateNewSlave("XX", {disableDisability: 1});
+				slave.devotion = random(25, 45);
+				slave.trust = random(55, 65);
+				setHealth(slave, jsRandom(55, 65), 0, 0, 0, 0);
+				slave.face = random(15, 100);
+				slave.intelligence = random(0, 100);
+				slave.intelligenceImplant = 30;
+				slave.skill.entertainment = random(15, 35);
+				slave.clothes = "conservative clothing";
+				slave.collar = "none";
+				slave.shoes = "flats";
+				slave.assignment = "be a servant";
+				break;
+			case "Degradationist":
+				slave = GenerateNewSlave("XX");
+				slave.devotion = 25;
+				slave.trust = -25;
+				setHealth(slave, jsRandom(0, 15), 0, 0, 0, 0);
+				slave.fuckdoll = 100;
+				slave.career = "a Fuckdoll";
+				slave.fetish = "mindbroken";
+				slave.boobs += 100 * random(10, 20);
+				slave.butt += random(2, 3);
+				slave.lips = random(2, 4);
+				slave.weight = random(-15, 15);
+				slave.skill.oral = 0;
+				slave.skill.anal = 0;
+				slave.skill.vaginal = 0;
+				slave.skill.entertainment = 0;
+				slave.skill.whoring = 0;
+				slave.behavioralFlaw = "none";
+				slave.sexualFlaw = "none";
+				slave.clothes = "a Fuckdoll suit";
+				slave.assignment = "please you";
+				break;
+			case "AssetExpansionist":
+				slave = GenerateNewSlave("XX", {disableDisability: 1});
+				slave.devotion = random(25, 45);
+				slave.trust = random(-15, 15);
+				setHealth(slave, jsRandom(25, 45), 0, 0, 0, 0);
+				slave.chem = 50;
+				slave.face = random(15, 100);
+				slave.boobs += 100 * random(10, 20);
+				slave.butt += random(2, 3);
+				slave.lips += random(0, 1);
+				if (slave.balls > 0) {
+					slave.balls++;
+				}
+				if (slave.dick > 0) {
+					slave.dick++;
+				}
+				slave.weight = random(15, 90);
+				slave.skill.oral = random(15, 35);
+				slave.skill.anal = 0;
+				slave.anus = 0;
+				if (slave.vagina > -1) {
+					if (slave.vagina === 0) {
+						slave.vagina++;
+					}
+					slave.skill.vaginal = random(15, 35);
+				}
+				slave.skill.entertainment = random(15, 35);
+				slave.clothes = "slutty jewelry";
+				slave.collar = "pretty jewelry";
+				slave.shoes = "heels";
+				slave.assignment = "please you";
+				break;
+			case "SlimnessEnthusiast":
+				slave = GenerateNewSlave("XX", {disableDisability: 1});
+				slave.devotion = random(25, 45);
+				slave.trust = random(55, 65);
+				setHealth(slave, jsRandom(55, 65), 0, 0, 0, 0);
+				slave.face = random(15, 100);
+				slave.boobs = 100 * random(1, 4);
+				slave.butt = random(1, 2);
+				slave.weight = random(-25, -15);
+				slave.skill.oral = random(15, 35);
+				slave.skill.anal = 0;
+				slave.anus = 0;
+				if (slave.vagina > -1) {
+					if (slave.vagina === 0) {
+						slave.vagina++;
+					}
+					slave.skill.vaginal = random(15, 35);
+				}
+				slave.skill.entertainment = random(15, 35);
+				slave.clothes = "a leotard";
+				slave.collar = "pretty jewelry";
+				slave.shoes = "flats";
+				slave.assignment = "please you";
+				break;
+			case "TransformationFetishist":
+				slave = GenerateNewSlave("XX", {disableDisability: 1});
+				slave.devotion = random(25, 45);
+				slave.trust = random(-15, 15);
+				setHealth(slave, jsRandom(-15, 0), Math.max(normalRandInt(5, 3), 0), Math.max(normalRandInt(5, 3), 0), 0, 0);
+				slave.faceImplant = random(40, 70);
+				slave.face = Math.clamp(Math.trunc(slave.face + slave.faceImplant / 2), -100, 100);
+				slave.boobsImplant = 200 * random(4, 8);
+				slave.boobs += slave.boobsImplant;
+				slave.boobsImplantType = "normal";
+				slave.buttImplant = random(2, 4);
+				slave.butt += slave.buttImplant;
+				slave.buttImplantType = "normal";
+				slave.lipsImplant = random(1, 2);
+				slave.lips = Math.clamp(Math.trunc(slave.lipsImplant + 2), -3, 3);
+				slave.weight = random(-25, -15);
+				slave.skill.oral = random(15, 35);
+				slave.skill.anal = random(15, 35);
+				if (slave.vagina > -1) {
+					if (slave.vagina === 0) {
+						slave.vagina++;
+					}
+					slave.skill.vaginal = random(15, 35);
+				}
+				slave.clothes = "a string bikini";
+				slave.collar = "shock punishment";
+				slave.shoes = "extreme heels";
+				slave.assignment = "whore";
+				break;
+			case "BodyPurist":
+				slave = GenerateNewSlave("XX", {disableDisability: 1});
+				slave.devotion = random(55, 65);
+				slave.trust = random(25, 45);
+				setHealth(slave, 100, 0, 0, 0, jsRandom(0, 20));
+				slave.face = random(15, 100);
+				slave.weight = random(-5, 5);
+				slave.muscles = random(10, 25);
+				slave.skill.oral = random(15, 35);
+				slave.skill.anal = random(15, 35);
+				if (slave.vagina > -1) {
+					if (slave.vagina === 0) {
+						slave.vagina++;
+					}
+					slave.skill.vaginal = random(15, 35);
+				}
+				slave.clothes = "a nice maid outfit";
+				slave.collar = "pretty jewelry";
+				slave.shoes = "heels";
+				slave.assignment = "be a servant";
+				break;
+			case "MaturityPreferentialist":
+				slave = GenerateNewSlave("XX", {
+					minAge: 36, maxAge: 39, ageOverridesPedoMode: 1, disableDisability: 1
+				});
+				slave.devotion = random(55, 65);
+				slave.trust = random(-15, 15);
+				setHealth(slave, jsRandom(25, 45), 0, 0, 0, 0);
+				slave.face = random(15, 100);
+				slave.boobs += 100 * random(1, 4);
+				slave.butt += random(1, 2);
+				slave.weight = random(-5, 90);
+				slave.skill.oral = random(15, 35);
+				slave.skill.anal = random(15, 35);
+				if (slave.vagina > -1) {
+					if (slave.vagina === 0) {
+						slave.vagina++;
+					}
+					slave.skill.vaginal = random(15, 35);
+				}
+				SoftenBehavioralFlaw(slave);
+				slave.clothes = "a slutty maid outfit";
+				slave.collar = "pretty jewelry";
+				slave.shoes = "heels";
+				slave.assignment = "be a servant";
+				break;
+			case "YouthPreferentialist":
+				slave = GenerateNewSlave("XX", {maxAge: 19, disableDisability: 1});
+				slave.devotion = random(25, 45);
+				slave.trust = random(55, 65);
+				setHealth(slave, jsRandom(25, 45), 0, 0, 0, 0);
+				slave.face = random(15, 100);
+				slave.boobs = 100 * random(1, 4);
+				slave.butt = random(1, 3);
+				slave.weight = random(-25, 25);
+				slave.skill.oral = random(15, 35);
+				slave.skill.anal = 0;
+				slave.anus = 0;
+				if (slave.vagina > -1) {
+					slave.skill.vaginal = 0;
+					slave.vagina = 0;
+				}
+				slave.skill.entertainment = random(15, 35);
+				slave.clothes = "a schoolgirl outfit";
+				slave.collar = "pretty jewelry";
+				slave.shoes = "heels";
+				slave.assignment = "be a servant";
+				break;
+			case "Pastoralist":
+				slave = GenerateNewSlave("XX", {disableDisability: 1});
+				slave.devotion = random(25, 45);
+				slave.trust = random(-25, -45);
+				setHealth(slave, jsRandom(25, 45), 0, 0, 0, 0);
+				slave.boobs += 100 * random(10, 20);
+				if (slave.balls > 0) {
+					slave.balls++;
+				}
+				slave.lactation = 2;
+				slave.lactationDuration = 2;
+				slave.clothes = "Western clothing";
+				slave.collar = "leather with cowbell";
+				slave.shoes = "flats";
+				slave.assignment = "get milked";
+				break;
+			case "PhysicalIdealist":
+				slave = GenerateNewSlave("XX", {disableDisability: 1});
+				slave.devotion = random(25, 45);
+				slave.trust = random(25, 45);
+				setHealth(slave, 100, 0, 0, 0, jsRandom(10, 40));
+				slave.muscles = random(50, 100);
+				slave.skill.oral = random(15, 35);
+				slave.skill.anal = random(15, 35);
+				if (slave.vagina > -1) {
+					if (slave.vagina === 0) {
+						slave.vagina++;
+					}
+					slave.skill.vaginal = random(15, 35);
+				}
+				slave.skill.whoring = random(15, 35);
+				slave.clothes = "body oil";
+				slave.collar = "none";
+				slave.shoes = "none";
+				slave.assignment = "whore";
+				break;
+			case "ChattelReligionist":
+				slave = GenerateNewSlave("XX", {disableDisability: 1});
+				slave.devotion = random(55, 65);
+				slave.trust = random(55, 65);
+				setHealth(slave, jsRandom(0, 15), 0, 0, 0, 0);
+				if (slave.vagina === 0) {
+					slave.vagina++;
+				}
+				slave.skill.whoring = random(10, 20);
+				slave.behavioralFlaw = "none";
+				slave.behavioralQuirk = "sinful";
+				slave.clothes = "a chattel habit";
+				slave.collar = "heavy gold";
+				slave.shoes = "flats";
+				slave.assignment = "whore";
+				break;
+			case "RomanRevivalist":
+				slave = GenerateNewSlave("XX", {maxAge: 19, disableDisability: 1});
+				slave.devotion = 100;
+				slave.trust = random(55, 65);
+				setHealth(slave, 100, 0, 0, 0, jsRandom(10, 30));
+				slave.face = random(0, 55);
+				slave.muscles = random(25, 50);
+				slave.skill.combat = 1;
+				slave.behavioralFlaw = "none";
+				slave.behavioralQuirk = "fitness";
+				slave.behavioralFlaw = "none";
+				slave.clothes = "a toga";
+				slave.collar = "pretty jewelry";
+				slave.shoes = "flats";
+				slave.assignment = "guard you";
+				V.BodyguardID = slave.ID;
+				break;
+			case "NeoImperialist":
+				slave = GenerateNewSlave("XX", {
+					minAge: 16, maxAge: 28, race: "white", disableDisability: 1
+				});
+				slave.devotion = 100;
+				slave.trust = random(55, 65);
+				setHealth(slave, 100, 0, 0, 0, jsRandom(10, 30));
+				slave.face = random(20, 75);
+				slave.muscles = random(25, 60);
+				slave.skill.combat = 1;
+				slave.behavioralFlaw = "none";
+				slave.behavioralQuirk = "fitness";
+				slave.behavioralFlaw = "none";
+				slave.skill.entertainment = random(15, 35);
+				slave.clothes = "a tight Imperial bodysuit";
+				slave.shoes = "flats";
+				slave.assignment = "guard you";
+				V.BodyguardID = slave.ID;
+				break;
+			case "AztecRevivalist":
+				slave = GenerateNewSlave(null, {race: "latina", nationality: "Mexican", disableDisability: 1});
+				slave.accent = 0;
+				slave.devotion = 75;
+				slave.trust = 75;
+				setHealth(slave, jsRandom(-20, 20), 0, 0, 0, 0);
+				slave.muscles = random(50, 75);
+				slave.skill.combat = 1;
+				slave.behavioralFlaw = "malicious";
+				slave.behavioralQuirk = "none";
+				slave.clothes = "a huipil";
+				slave.collar = "pretty jewelry";
+				slave.shoes = "none";
+				slave.assignment = "be your Head Girl";
+				V.HeadGirlID = slave.ID;
+				break;
+			case "EgyptianRevivalist":
+				slave = GenerateNewSlave("XX", {disableDisability: 1});
+				slave.devotion = random(25, 45);
+				slave.trust = random(25, 45);
+				setHealth(slave, jsRandom(25, 45), 0, 0, 0, 0);
+				slave.face = random(15, 100);
+				slave.skill.oral = random(15, 35);
+				slave.skill.anal = random(15, 35);
+				if (slave.vagina > -1) {
+					if (slave.vagina === 0) {
+						slave.vagina++;
+					}
+					slave.skill.vaginal = random(15, 35);
+				}
+				slave.skill.entertainment = random(15, 35);
+				SoftenSexualFlaw(slave);
+				slave.clothes = "slutty jewelry";
+				slave.collar = "ancient Egyptian";
+				slave.shoes = "flats";
+				slave.assignment = "please you";
+				break;
+			case "EdoRevivalist":
+				slave = GenerateNewSlave(null, {race: "asian", nationality: "Japanese", disableDisability: 1});
+				slave.accent = 0;
+				slave.devotion = random(25, 45);
+				slave.trust = random(25, 45);
+				setHealth(slave, jsRandom(25, 45), 0, 0, 0, 0);
+				slave.face = random(15, 100);
+				slave.intelligence = random(0, 100);
+				slave.intelligenceImplant = 30;
+				slave.skill.entertainment = 100;
+				slave.clothes = "a kimono";
+				slave.collar = "satin choker";
+				slave.shoes = "heels";
+				slave.assignment = "serve the public";
+				break;
+			case "ArabianRevivalist":
+				slave = GenerateNewSlave("XX", {disableDisability: 1});
+				slave.devotion = random(25, 45);
+				slave.trust = random(-15, 15);
+				setHealth(slave, jsRandom(25, 45), 0, 0, 0, 0);
+				slave.face = random(15, 100);
+				slave.intelligence = random(-15, 80);
+				slave.intelligenceImplant = 0;
+				slave.clothes = "harem gauze";
+				slave.collar = "uncomfortable leather";
+				slave.shoes = "flats";
+				slave.assignment = "take classes";
+				break;
+			case "ChineseRevivalist":
+				slave = GenerateNewSlave(null, {
+					race: "asian", nationality: "Chinese", minAge: 36, maxAge: 38, ageOverridesPedoMode: 1, disableDisability: 1
+				});
+				slave.devotion = random(55, 65);
+				slave.trust = random(25, 45);
+				setHealth(slave, jsRandom(25, 45), 0, 0, 0, 0);
+				slave.face = random(0, 55);
+				slave.accent = 0;
+				slave.intelligence = 100;
+				slave.intelligenceImplant = 30;
+				slave.skill.oral = 100;
+				slave.skill.anal = 100;
+				if (slave.vagina > -1) {
+					if (slave.vagina === 0) {
+						slave.vagina++;
+					}
+					slave.skill.vaginal = 100;
+				}
+				slave.skill.entertainment = 100;
+				slave.skill.whoring = 100;
+				SoftenBehavioralFlaw(slave);
+				SoftenSexualFlaw(slave);
+				slave.clothes = "a slutty qipao";
+				slave.collar = "pretty jewelry";
+				slave.shoes = "heels";
+				slave.assignment = "be your Head Girl";
+				V.HeadGirlID = slave.ID;
+				break;
+			case "Eugenics":
+				slave = GenerateNewSlave("XX", {disableDisability: 1});
+				slave.devotion = -100;
+				slave.trust = -100;
+				setHealth(slave, jsRandom(80, 90), 0, 0, 0, 0);
+				slave.intelligence = 100;
+				slave.intelligenceImplant = 30;
+				slave.face = 100;
+				slave.faceShape = "sensual";
+				slave.skill.oral = random(35, 75);
+				slave.skill.anal = random(35, 75);
+				if (slave.vagina > -1) {
+					if (slave.vagina === 0) {
+						slave.vagina++;
+					}
+					slave.skill.vaginal = random(35, 75);
+				}
+				slave.skill.entertainment = random(15, 35);
+				slave.skill.whoring = 0;
+				SoftenSexualFlaw(slave);
+				slave.clothes = "a ball gown";
+				slave.shoes = "flats";
+				slave.assignment = "rest";
+				break;
+			case "Repopulationist":
+				slave = GenerateNewSlave("XX", {
+					minAge: V.fertilityAge + 3, maxAge: 25, ageOverridesPedoMode: 1, disableDisability: 1
+				});
+				slave.devotion = random(25, 45);
+				slave.trust = random(-25, -45);
+				setHealth(slave, jsRandom(55, 65), 0, 0, 0, 0);
+				slave.face = random(15, 100);
+				slave.preg = random(10, 40);
+				slave.pregType = random(3, 8);
+				slave.lactation = 1;
+				slave.lactationDuration = 2;
+				SetBellySize(slave);
+				slave.counter.birthsTotal = 5;
+				slave.bellySag = 20;
+				slave.bellySagPreg = 20;
+				if (slave.vagina > -1) {
+					slave.vagina = 4;
+					slave.skill.vaginal = random(15, 35);
+				}
+				slave.clothes = "a nice maid outfit";
+				slave.shoes = "flats";
+				slave.assignment = "please you";
+				break;
+			case "HedonisticDecadence":
+				slave = GenerateNewSlave("XX", {maxAge: 25, disableDisability: 1});
+				slave.devotion = random(25, 45);
+				slave.trust = random(-25, -45);
+				setHealth(slave, jsRandom(-20, 20), 0, 0, 0, 0);
+				slave.face = random(15, 40);
+				slave.boobs += 100 * random(3, 6);
+				slave.butt += random(2, 5);
+				slave.weight = random(100, 200);
+				slave.skill.oral = random(15, 35);
+				slave.skill.anal = random(15, 35);
+				slave.anus = 2;
+				if (slave.vagina > -1) {
+					slave.skill.vaginal = random(15, 35);
+					slave.vagina = 3;
+				}
+				slave.skill.entertainment = 0;
+				slave.energy = random(60, 80);
+				slave.behavioralFlaw = "gluttonous";
+				slave.clothes = "attractive lingerie";
+				slave.shoes = "flats";
+				slave.diet = "fattening";
+				slave.rules.living = "luxurious";
+				slave.assignment = "rest";
+				break;
+			case "IntellectualDependency":
+				slave = GenerateNewSlave("XX", {minAge: 14, maxAge: 18, disableDisability: 1});
+				setHealth(slave, jsRandom(55, 65), 0, 0, 0, 0);
+				slave.devotion = random(45, 65);
+				slave.trust = random(-15, 45);
+				slave.face = random(30, 100);
+				slave.energy = 100;
+				slave.weight = random(-25, -15);
+				slave.skill.oral = 0;
+				slave.skill.anal = 0;
+				slave.skill.vaginal = 0;
+				slave.skill.entertainment = 0;
+				slave.skill.whoring = 0;
+				slave.intelligence = -100;
+				slave.intelligenceImplant = 0;
+				if (slave.vagina === 0) {
+					slave.vagina++;
+				}
+				slave.anus++;
+				break;
+			case "SlaveProfessionalism":
+				slave = GenerateNewSlave("XX", {minAge: 18, maxAge: 25, disableDisability: 1});
+				slave.devotion = 100;
+				slave.trust = 20;
+				setHealth(slave, 80, 0, 0, 0, jsRandom(10, 30));
+				slave.face = random(30, 100);
+				slave.energy = 10;
+				slave.weight = random(-15, 5);
+				slave.skill.oral = 100;
+				slave.skill.anal = 100;
+				slave.skill.vaginal = 100;
+				slave.skill.entertainment = 100;
+				slave.skill.whoring = 100;
+				slave.intelligence = 100;
+				slave.intelligenceImplant = 30;
+				slave.accent = 0;
+				SoftenBehavioralFlaw(slave);
+				SoftenSexualFlaw(slave);
+				slave.clothes = "a nice maid outfit";
+				slave.collar = "pretty jewelry";
+				slave.assignment = "be your Head Girl";
+				V.HeadGirlID = slave.ID;
+				break;
+			case "PetiteAdmiration":
+				slave = GenerateNewSlave("XX", {minAge: 14, maxAge: 18, disableDisability: 1});
+				slave.devotion = random(55, 65);
+				slave.trust = random(-15, 15);
+				setHealth(slave, jsRandom(25, 45), 0, 0, 0, 0);
+				slave.face = random(15, 100);
+				if (slave.height >= 150) {
+					slave.height = Math.trunc(Height.random(slave, {limitMult: [-3, -1]}));
+					if (slave.height >= 150) {
+						slave.height = Math.trunc(Height.random(slave, {limitMult: [-4, -2]}));
+						if (slave.height >= 150) {
+							slave.height = random(90, 130);
+							slave.geneticQuirks.dwarfism = 2;
+						}
+					}
+				}
+				slave.skill.oral = random(35, 65);
+				slave.skill.anal = random(15, 35);
+				if (slave.vagina > -1) {
+					if (slave.vagina === 0) {
+						slave.vagina++;
+					}
+					slave.skill.vaginal = random(15, 35);
+				}
+				slave.clothes = "a succubus outfit";
+				slave.legAccessory = "long stockings";
+				slave.assignment = "please you";
+				break;
+			case "StatuesqueGlorification":
+				slave = GenerateNewSlave("XX", {
+					minAge: 18, maxAge: 30, ageOverridesPedoMode: 1, disableDisability: 1
+				});
+				slave.devotion = random(55, 65);
+				slave.trust = random(-15, 15);
+				setHealth(slave, jsRandom(25, 45), 0, 0, 0, 0);
+				slave.face = random(15, 100);
+				slave.weight = random(-5, 5);
+				slave.muscles = random(20, 40);
+				if (slave.height < 185) {
+					slave.height = Math.trunc(Height.random(slave, {limitMult: [1, 3]}));
+					if (slave.height < 185) {
+						slave.height = Math.trunc(Height.random(slave, {limitMult: [2, 4]}));
+						if (slave.height < 185) {
+							slave.height = random(200, 264);
+							slave.geneticQuirks.gigantism = 2;
+						}
+					}
+				}
+				slave.skill.oral = random(15, 35);
+				slave.skill.anal = random(15, 35);
+				if (slave.vagina > -1) {
+					if (slave.vagina === 0) {
+						slave.vagina++;
+					}
+					slave.skill.vaginal = random(15, 35);
+				}
+				slave.clothes = "slutty business attire";
+				slave.shoes = "heels";
+				slave.assignment = "please you";
+				break;
+			default:
+				r.push(`ERROR: bad arcology type`);
+		}
+		slave.origin = "You acquired $him along with the arcology.";
+		slave.career = "a slave";
+		let slaveCostValue = slaveCost(slave);
+		if (["AztecRevivalist", "ChineseRevivalist", "NeoImperialist", "Eugenics", "SlaveProfessionalism"].includes(V.targetArcology.fs)) {
+			valueGiven += slaveCostValue * 4;
+		} else {
+			valueGiven += slaveCostValue;
+		}
+		newSlave(slave);
+	}
 };
-- 
GitLab