From 07dfb64aecc09a27a0562b2aa0709badfdae464c Mon Sep 17 00:00:00 2001
From: Pregmodder <pregmodder@gmail.com>
Date: Thu, 5 Jul 2018 14:04:48 -0400
Subject: [PATCH] fixes and a lot of TFS stuff

---
 devNotes/VersionChangeLog-Premod+LoliMod.txt  | 13 +++
 devNotes/twine JS.txt                         | 88 +++++++++++++++++
 src/cheats/mod_EditArcologyCheat.tw           |  1 +
 src/gui/Encyclopedia/encyclopedia.tw          |  3 +
 src/init/storyInit.tw                         |  2 +-
 src/js/sexActsJS.tw                           | 88 +++++++++++++++++
 src/uncategorized/BackwardsCompatibility.tw   |  5 +-
 src/uncategorized/RESS.tw                     |  6 +-
 src/uncategorized/resEndowment.tw             | 19 ++++
 src/uncategorized/resFailure.tw               | 96 +++++++++++++------
 src/uncategorized/scheduledEvent.tw           |  3 +
 .../securityForceNamingColonel.tw             | 34 +++----
 src/uncategorized/tfsFarmUpgrade.tw           | 20 +++-
 src/uncategorized/theFutanariSisters.tw       | 40 ++++++--
 src/utility/slaveCreationWidgets.tw           | 73 +++++++++++---
 15 files changed, 415 insertions(+), 76 deletions(-)

diff --git a/devNotes/VersionChangeLog-Premod+LoliMod.txt b/devNotes/VersionChangeLog-Premod+LoliMod.txt
index 03a762ff7ca..0d47ce8bbe7 100644
--- a/devNotes/VersionChangeLog-Premod+LoliMod.txt
+++ b/devNotes/VersionChangeLog-Premod+LoliMod.txt
@@ -2,6 +2,19 @@
 
 0.10.7.1-0.4.x
 
+7/05/2018
+
+	18
+	-added anon's TFS path
+	-added a new choice to the TFS organ farm request event
+	-fixes
+
+7/04/2018
+
+	17
+	-fixes, grammer and typo corrections
+	-added anon's FCNN blurbs
+
 7/03/2018
 
 	16
diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt
index 117433181ad..e6b71eb7c3e 100644
--- a/devNotes/twine JS.txt	
+++ b/devNotes/twine JS.txt	
@@ -16196,6 +16196,94 @@ window.SimpleSlaveFucking = function SimpleSlaveFucking(slave, count) {
 	return;
 }
 
+/*
+ count is how many times to increment either the Vaginal, Anal, or Oral counts, depending on availability of slave.
+ If count is left undefined it will assume it to be 1.
+ Intended to be a simple "x got fucked y times by z and I don't want to keep coding it".
+*/
+window.SimpleSlaveSlaveFucking = function SimpleSlaveSlaveFucking(subslave, domslave, count) {
+	const V = State.variables;
+	const fuckTarget = jsRandom(1,100);
+	let fuckCount = 1;
+	let r = ``;
+	if (count) {
+		fuckCount = count;
+	}
+	for (var i = 0; i < fuckCount; i++) {
+		if (subslave.nipples === "fuckable" && V.PC.dick === 1 && fuckTarget > 80) {
+			if (passage() === "SA serve your other slaves") {
+				if (subslave.ID == V.slaves[i].ID) {
+					V.mammaryUse++;
+					V.penetrativeTotal++;
+					domslave.penetrativeCount++;
+				}
+				else {
+					V.mammaryTotal++;
+					V.penetrativeUse++;
+					subslave.mammaryCount++;
+				}
+			}
+			else {
+				V.mammaryTotal++;
+				V.penetrativeTotal++;
+				subslave.mammaryCount++;
+				domslave.penetrativeCount++;
+			}
+		}
+		else if (canDoVaginal(subslave) && subslave.vagina > 0 && canPenetrate(domslave) && fuckTarget > 33) {
+			if (passage() === "SA serve your other slaves") {
+				if (subslave.ID == V.slaves[i].ID) {
+					V.vaginalUse++;
+					V.penetrativeTotal++;
+					domslave.penetrativeCount++;
+				}
+				else {
+					V.penetrativeUse++;
+					V.vaginalTotal++;
+					subslave.vaginalCount++;
+				}
+			}
+			else {
+				V.vaginalTotal++;
+				subslave.vaginalCount++;
+				V.penetrativeTotal++;
+				domslave.penetrativeCount++;
+			}
+			if (canImpreg(subslave, domslave)) {
+				r += knockMeUp(subslave, 3, 0, domslave.ID, 1);
+			}
+		}
+		else if (canDoAnal(subslave) && subslave.anus > 0 && canPenetrate(domslave) && fuckTarget > 10) {
+			if (canImpreg(subslave, domslave)) {
+				r += knockMeUp(subslave, 3, 1, domslave.ID, 1);
+			}
+			if (passage() === "SA serve your other slaves") {
+				if (subslave.ID == V.slaves[i].ID) {
+					V.analUse++;
+					V.penetrativeTotal++;
+					domslave.penetrativeCount++;
+				}
+				else {
+					V.penetrativeUse++;
+					V.analTotal++;
+					subslave.analCount++;
+				}
+			}
+			else {
+				V.analTotal++;
+				subslave.analCount++;
+				V.penetrativeTotal++;
+				domslave.penetrativeCount++;
+			}
+		}
+		else {
+			V.oralTotal++;
+			subslave.oralCount++;
+		}
+	}
+	return r;
+}
+
 /*:: PenthouseNaming [script]*/
 
 window.MS = function() {
diff --git a/src/cheats/mod_EditArcologyCheat.tw b/src/cheats/mod_EditArcologyCheat.tw
index 3ea8d86dd87..59b8034133f 100644
--- a/src/cheats/mod_EditArcologyCheat.tw
+++ b/src/cheats/mod_EditArcologyCheat.tw
@@ -306,6 +306,7 @@ International slave variety is
 <<radiobutton "$TFS.schoolUpgrade" 0>> 0
 | <<radiobutton "$TFS.schoolUpgrade" 1>> 1
 | <<radiobutton "$TFS.schoolUpgrade" 2>> 2
+| <<radiobutton "$TFS.schoolUpgrade" 3>> 3
 
 <br>TFS Moved to Arcology: ''$TFS.schoolPresent'' |
 <<radiobutton "$TFS.schoolPresent" 0>> 0
diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw
index 758dbc5cf57..6faac89a060 100644
--- a/src/gui/Encyclopedia/encyclopedia.tw
+++ b/src/gui/Encyclopedia/encyclopedia.tw
@@ -2839,6 +2839,9 @@ LORE: INTERVIEWS
 		</dd>
 	</dl>
 
+<<case "Wetware CPUs">>
+	Slaves stripped of all unneeded parts, attached to a VR world, and honed to near perfection. Their minds are peerless, but their bodies are broken; if one is able to overcome such an obstacle, a valuable slave awaits.
+
 <<case "Security Expansion">>
 	<<include "encyclopediaSecExpMain">>
 
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index 5afea7f20ac..7738dff64fa 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -769,7 +769,7 @@ DairyRestraintsSetting($dairyRestraintsSetting)
 <<set $LDE = {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>>
 <<set $TGA = {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>>
 <<set $TCR = {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>>
-<<set $TFS = {farmUpgrade: 0, schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>>
+<<set $TFS = {farmUpgrade: 0, schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0, compromiseWeek: 0}>>
 <<set $futaAddiction = 0>>
 <<set $HA = {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>>
 
diff --git a/src/js/sexActsJS.tw b/src/js/sexActsJS.tw
index 93426acb541..860b2a8c6d1 100644
--- a/src/js/sexActsJS.tw
+++ b/src/js/sexActsJS.tw
@@ -439,3 +439,91 @@ window.SimpleSlaveFucking = function SimpleSlaveFucking(slave, count) {
 	}
 	return;
 }
+
+/*
+ count is how many times to increment either the Vaginal, Anal, or Oral counts, depending on availability of slave.
+ If count is left undefined it will assume it to be 1.
+ Intended to be a simple "x got fucked y times by z and I don't want to keep coding it".
+*/
+window.SimpleSlaveSlaveFucking = function SimpleSlaveSlaveFucking(subslave, domslave, count) {
+	const V = State.variables;
+	const fuckTarget = jsRandom(1,100);
+	let fuckCount = 1;
+	let r = ``;
+	if (count) {
+		fuckCount = count;
+	}
+	for (var i = 0; i < fuckCount; i++) {
+		if (subslave.nipples === "fuckable" && V.PC.dick === 1 && fuckTarget > 80) {
+			if (passage() === "SA serve your other slaves") {
+				if (subslave.ID == V.slaves[i].ID) {
+					V.mammaryUse++;
+					V.penetrativeTotal++;
+					domslave.penetrativeCount++;
+				}
+				else {
+					V.mammaryTotal++;
+					V.penetrativeUse++;
+					subslave.mammaryCount++;
+				}
+			}
+			else {
+				V.mammaryTotal++;
+				V.penetrativeTotal++;
+				subslave.mammaryCount++;
+				domslave.penetrativeCount++;
+			}
+		}
+		else if (canDoVaginal(subslave) && subslave.vagina > 0 && canPenetrate(domslave) && fuckTarget > 33) {
+			if (passage() === "SA serve your other slaves") {
+				if (subslave.ID == V.slaves[i].ID) {
+					V.vaginalUse++;
+					V.penetrativeTotal++;
+					domslave.penetrativeCount++;
+				}
+				else {
+					V.penetrativeUse++;
+					V.vaginalTotal++;
+					subslave.vaginalCount++;
+				}
+			}
+			else {
+				V.vaginalTotal++;
+				subslave.vaginalCount++;
+				V.penetrativeTotal++;
+				domslave.penetrativeCount++;
+			}
+			if (canImpreg(subslave, domslave)) {
+				r += knockMeUp(subslave, 3, 0, domslave.ID, 1);
+			}
+		}
+		else if (canDoAnal(subslave) && subslave.anus > 0 && canPenetrate(domslave) && fuckTarget > 10) {
+			if (canImpreg(subslave, domslave)) {
+				r += knockMeUp(subslave, 3, 1, domslave.ID, 1);
+			}
+			if (passage() === "SA serve your other slaves") {
+				if (subslave.ID == V.slaves[i].ID) {
+					V.analUse++;
+					V.penetrativeTotal++;
+					domslave.penetrativeCount++;
+				}
+				else {
+					V.penetrativeUse++;
+					V.analTotal++;
+					subslave.analCount++;
+				}
+			}
+			else {
+				V.analTotal++;
+				subslave.analCount++;
+				V.penetrativeTotal++;
+				domslave.penetrativeCount++;
+			}
+		}
+		else {
+			V.oralTotal++;
+			subslave.oralCount++;
+		}
+	}
+	return r;
+}
\ No newline at end of file
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index 2b9f041ecad..c1fbc6bc651 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -1954,7 +1954,10 @@ Setting missing global variables:
 	<<set $TCR = {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>>
 <</if>>
 <<if ndef $TFS>>
-	<<set $TFS = {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>>
+	<<set $TFS = {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0, compromiseWeek: 0, farmUpgrade: 0}>>
+<</if>>
+<<if ndef $TFS.compromiseWeek>>
+	<<set $TFS.compromiseWeek = 0>>
 <</if>>
 <<if ndef $HA>>
 	<<set $HA = {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>>
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index 0aec94238d0..c7eadd25497 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -61,9 +61,9 @@
 
 <<case "first period">>
 
-<<EventNameLink $activeSlave>> appears in the door of your office, uncertain if she should disturb you. She stumbles through the doorway, hands on her <<if $activeSlave.weight >= 95>>fat belly<<elseif $activeSlave.weight >= 30>>chubby belly<<else>>flat belly<</if>>, before stepping forward to stand in front of your desk. Her chest is rising and falling with panicked hyperventilation. The poor girl is terrified some reason.
+<<EventNameLink $activeSlave>> appears in the door of your office, uncertain if she should disturb you. She stumbles through the doorway, hands on her <<if $activeSlave.weight >= 95>>fat belly<<elseif $activeSlave.weight >= 30>>chubby belly<<else>>flat belly<</if>>, before stepping forward to stand in front of your desk. Her chest is rising and falling with panicked hyperventilation. The poor girl is terrified for some reason.
 <br><br>
-You press her for why she is acting this way.
+You press her on why she is acting this way.
 <<if !canTalk($activeSlave)>>
 	She uses gestures to point to her stomach, and explains that she is feeling an unusual pain.
 <<else>>
@@ -4207,7 +4207,7 @@ May I plea<<s>>e try out <<s>>omething <<s>>kimpier today?"
 	<</replace>>
 <</link>><<if ($activeSlave.vagina == 0)>> //This option will take virginity//<</if>>
 <</if>>
-<br><<link "Tell her she'll just be taking up the ass more">>
+<br><<link "Tell her she'll just be it taking up the ass more">>
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
 	In one swift motion, you pull out a chastity belt and lock it onto her. She gasps as she feels it hug close to her pussy. You explain that she has just become a woman, and thus, will be taking it up the ass until you decide it's time for her to become pregnant.
diff --git a/src/uncategorized/resEndowment.tw b/src/uncategorized/resEndowment.tw
index 4f6d09124bb..36613198d89 100644
--- a/src/uncategorized/resEndowment.tw
+++ b/src/uncategorized/resEndowment.tw
@@ -270,5 +270,24 @@
 			<<set $rep += 1000>>
 		<</replace>>
 	<</link>> //This will cost <<print cashFormat(10000)>>//
+	<<if $cash >= 250000>>
+	<br>
+	<<link "Propose a dynamic compromise that supports both visions">>
+		<<replace "#result">>
+			You reconnect the call you had with the first matron, splitting your desktop's display to accomodate both video call windows so that you can address both at once. Then you begin to suggest a compromise that should gratify both parties: 
+			<br><br>
+			With their not so feminine voices, conspicuous Adam's Apples, dry barren artificial pussies, and naturally masculine hormonal balances, it is more or less an open secret that futanari 'Sisters' are all biologically, well, men. It is considered poor taste to mention such a thing among polite company, however, as some men who own futas willfully try to ignore this fact or are otherwise are upset to be reminded of it. Your proposed remedy allows both sisters to have their way: With your extensive funding, those current Sisters who were biologically born male (all of them) will be endowed with bigger balls at the second matron's behest. Meanwhile, a new lineup of biologically female Futanari Sisters will be very rapidly inducted, transformed, cultured, trained, and readied for resale, under the expert leadership of the first matron. These new lady-futas will only have erect dicks to complement their natural fertile pussies, feminine hormones, and soft voices; nary a testicle in sight. Slaveowning society on the other hand will enjoy a wider variety of futanari slaves to choose from, opening up exciting new opportunities for owner to sate their personal preferences and perfect their harems. In 15 weeks, the absolute minimum time that all can be feasibly accomplished, everybody wins. Business will continue as usual in the Futanari Sisters until then, with no immediate change in merchandise.
+			<br><br>
+			"Well, you aren't the first one to think of that." the first matron reluctantly states. "You see, there's this outcast group of Sisters who would be perfect for this, it's just... We haven't seen eye to eye for a long time." The second chimes in: "You could talk her into it, she approves of your build far more than mine. Will probably take several months though, to move them all over and integrate all the new Sisters into our fold, and to enjoy the new pussies, of course." After a moment of consideration, the first agrees. You donate the funds to the Sisters with your compliments, ensuring that neither matron completely controls the vast sum. They both understand what what they have to do now, starting immediately.
+			<br><br>
+			Days later, the grateful institution begins a mass marketing campaign all accross the world's Free Cities, which includes adverts in FCNN, FCTV, and FC social media about the upcoming changes to their Sister inventory and their need for willing new blood and new specialists to help them bolster their ranks. You feature prominently in each and and every promotional item as their foremost contributor. Thanks to this @@.green;you will be a household name in the Free Cities for some time.@@ Such a public flex of your financial muscles has also made your relative power very clear to some in the New World, attracting important players who @@.green;will start to show an interest@@ in doing business with you and your Free City. 
+			<<set $TFS.schoolUpgrade = 3>>
+			<<set $cash -= 250000>>
+			<<set $rep += 2000>>
+			<<set $arcologies[0].prosperity += 1>>
+			<<set $TFS.compromiseWeek = $week>>
+		<</replace>>
+	<</link>> //This will cost <<print cashFormat(250000)>> and take 15 weeks//
+	<</if>>
 <</if>>
 </span>
diff --git a/src/uncategorized/resFailure.tw b/src/uncategorized/resFailure.tw
index fe139e58ff2..49d3637fd18 100644
--- a/src/uncategorized/resFailure.tw
+++ b/src/uncategorized/resFailure.tw
@@ -1,10 +1,6 @@
-:: RES Failure
+:: RES Failure [nobr]
 
-<<nobr>>
-
-<<set $nextButton = "Continue">>
-<<set $nextLink = "Scheduled Event">>
-<<set $returnTo = "Scheduled Event">>
+<<set $nextButton = "Continue", $nextLink = "Scheduled Event", $returnTo = "Scheduled Event">>
 
 <<if ($TSS.schoolPresent == 1) && ($TSS.schoolProsperity <= -10)>>
 	<<set $RESFailure = "TSS">>
@@ -25,7 +21,7 @@
 <</if>>
 
 <<set $rep -= 200>>
-<<set $AProsperityCap -= 2>>
+<<set $arcologies[0].prosperity -= 2>>
 <<set $slavesToAdd = 5>>
 <<if $RESFailure == "TSS">>
 	<<set $TSS.schoolPresent = 0>>
@@ -458,7 +454,11 @@
 	<<set $TFS.schoolAnnexed = 1>>
 	<<for $i = 0; $i < $slavesToAdd-1; $i++>>
 		<<set $seed = random(1,4)>>
-		<<include "Generate XY Slave">>
+		<<if $TFS.schoolUpgrade == 3 && $TFS.compromiseWeek+15 <= $week>>
+			<<include "Generate New Slave">>
+		<<else>>
+			<<include "Generate XY Slave">>
+		<</if>>
 		<<set $activeSlave.origin = "She was a Futanari Sister until you engineered her early enslavement.">>
 		<<set $activeSlave.career = "a Futanari Sister">>
 		<<set $activeSlave.faceShape = either("sensual", "exotic")>>
@@ -471,7 +471,14 @@
 			<<set $activeSlave.boobs = 100*random(12,20)>>
 			<<set $activeSlave.dick = random(2,3)>>
 			<<if $activeSlave.foreskin > 0>><<set $activeSlave.foreskin = $activeSlave.dick>><</if>>
-			<<if $TFS.schoolUpgrade == 1>>
+			<<if $TFS.schoolUpgrade == 3 && $TFS.compromiseWeek+15 <= $week>>
+				<<if $activeSlave.genes == "XY">>
+					<<set $activeSlave.balls = random(8,9), $activeSlave.scrotum = $activeSlave.balls>>
+				<<else>>
+					<<set $activeSlave.balls = 1>>
+					<<set $activeSlave.scrotum = 0>>
+				<</if>>
+			<<elseif $TFS.schoolUpgrade == 1>>
 				<<set $activeSlave.balls = 1>>
 				<<set $activeSlave.scrotum = 0>>
 			<<elseif $TFS.schoolUpgrade == 2>>
@@ -498,7 +505,14 @@
 			<<set $activeSlave.boobs = 100*random(20,32)>>
 			<<set $activeSlave.dick = random(3,4)>>
 			<<if $activeSlave.foreskin > 0>><<set $activeSlave.foreskin = $activeSlave.dick>><</if>>
-			<<if $TFS.schoolUpgrade == 1>>
+			<<if $TFS.schoolUpgrade == 3 && $TFS.compromiseWeek+15 <= $week>>
+				<<if $activeSlave.genes == "XY">>
+					<<set $activeSlave.balls = random(9,10), $activeSlave.scrotum = $activeSlave.balls>>
+				<<else>>
+					<<set $activeSlave.balls = 1>>
+					<<set $activeSlave.scrotum = 0>>
+				<</if>>
+			<<elseif $TFS.schoolUpgrade == 1>>
 				<<set $activeSlave.balls = 1>>
 				<<set $activeSlave.scrotum = 0>>
 			<<elseif $TFS.schoolUpgrade == 2>>
@@ -525,7 +539,14 @@
 			<<set $activeSlave.boobs = 100*random(32,42)>>
 			<<set $activeSlave.dick = random(4,5)>>
 			<<if $activeSlave.foreskin > 0>><<set $activeSlave.foreskin = $activeSlave.dick>><</if>>
-			<<if $TFS.schoolUpgrade == 1>>
+			<<if $TFS.schoolUpgrade == 3 && $TFS.compromiseWeek+15 <= $week>>
+				<<if $activeSlave.genes == "XY">>
+					<<set $activeSlave.balls = random(6,7), $activeSlave.scrotum = $activeSlave.balls>>
+				<<else>>
+					<<set $activeSlave.balls = 1>>
+					<<set $activeSlave.scrotum = 0>>
+				<</if>>
+			<<elseif $TFS.schoolUpgrade == 1>>
 				<<set $activeSlave.balls = 1>>
 				<<set $activeSlave.scrotum = 0>>
 			<<elseif $TFS.schoolUpgrade == 2>>
@@ -552,7 +573,14 @@
 			<<set $activeSlave.boobs = 100*random(44,60)>>
 			<<set $activeSlave.dick = random(5,6)>>
 			<<if $activeSlave.foreskin > 0>><<set $activeSlave.foreskin = $activeSlave.dick>><</if>>
-			<<if $TFS.schoolUpgrade == 1>>
+			<<if $TFS.schoolUpgrade == 3 && $TFS.compromiseWeek+15 <= $week>>
+				<<if $activeSlave.genes == "XY">>
+					<<set $activeSlave.balls = random(7,8), $activeSlave.scrotum = $activeSlave.balls>>
+				<<else>>
+					<<set $activeSlave.balls = 1>>
+					<<set $activeSlave.scrotum = 0>>
+				<</if>>
+			<<elseif $TFS.schoolUpgrade == 1>>
 				<<set $activeSlave.balls = 1>>
 				<<set $activeSlave.scrotum = 0>>
 			<<elseif $TFS.schoolUpgrade == 2>>
@@ -571,11 +599,17 @@
 			<<set $activeSlave.anus = 3>>
 			<<set $activeSlave.fetish = "dom">>
 		<</if>>
+		<<set $activeSlave.preg = -3>>
 		<<if $TFS.farmUpgrade != 0>>
 			<<set $activeSlave.ovaries = 1>>
-			<<if $TFS.farmUpgrade == 2>>
+			<<if $TFS.farmUpgrade >= 2>>
 				<<set $activeSlave.preg = random(1,41)>>
-				<<set $activeSlave.pregType = 1>>
+				<<if $TFS.farmUpgrade == 3>>
+					<<set $activeSlave.pregType = random(10,30)>>
+					<<set $activeSlave.pregAdaptation = 300>>
+				<<else>>
+					<<set $activeSlave.pregType = 1>>
+				<</if>>
 				<<set $activeSlave.pregKnown = 1>>
 				<<set $activeSlave.pregWeek = $activeSlave.preg>>
 				<<run SetBellySize($activeSlave)>>
@@ -593,8 +627,9 @@
 		<<set $activeSlave.health = random(60,80)>>
 		<<set $activeSlave.muscles = 20>>
 		<<set $activeSlave.waist = -15>>
-		<<set $activeSlave.shoulders = 1>>
-		<<set $activeSlave.preg = -2>>
+		<<if $activeSlave.genes == "XY">>
+			<<set $activeSlave.shoulders = 1>>
+		<</if>>
 		<<set $activeSlave.vaginalSkill = 100>>
 		<<set $activeSlave.oralSkill = 100>>
 		<<set $activeSlave.analSkill = 100>>
@@ -628,7 +663,9 @@
 	<<set $activeSlave.boobs = 100*random(44,60)>>
 	<<set $activeSlave.dick = random(5,6)>>
 	<<if $activeSlave.foreskin > 0>><<set $activeSlave.foreskin = $activeSlave.dick>><</if>>
-	<<if $TFS.schoolUpgrade == 1>>
+	<<if $TFS.schoolUpgrade == 3 && $TFS.compromiseWeek+15 <= $week>>
+		<<set $activeSlave.balls = 10, $activeSlave.scrotum = $activeSlave.balls>>
+	<<elseif $TFS.schoolUpgrade == 1>>
 		<<set $activeSlave.balls = 1>>
 		<<set $activeSlave.scrotum = 0>>
 	<<elseif $TFS.schoolUpgrade == 2>>
@@ -647,11 +684,17 @@
 	<<set $activeSlave.vagina = 3>>
 	<<set $activeSlave.anus = 3>>
 	<<set $activeSlave.fetish = "dom">>
+	<<set $activeSlave.preg = -3>>
 	<<if $TFS.farmUpgrade != 0>>
 		<<set $activeSlave.ovaries = 1>>
-		<<if $TFS.farmUpgrade == 2>>
+		<<if $TFS.farmUpgrade >= 2>>
 			<<set $activeSlave.preg = random(1,41)>>
-			<<set $activeSlave.pregType = 1>>
+			<<if $TFS.farmUpgrade == 3>>
+				<<set $activeSlave.pregType = random(20,40)>>
+				<<set $activeSlave.pregAdaptation = 500>>
+			<<else>>
+				<<set $activeSlave.pregType = 1>>
+			<</if>>
 			<<set $activeSlave.pregKnown = 1>>
 			<<set $activeSlave.pregWeek = $activeSlave.preg>>
 			<<run SetBellySize($activeSlave)>>
@@ -664,13 +707,12 @@
 	<<else>>
 		<<set $activeSlave.energy = $activeSlave.physicalAge+random(20,30)>>
 	<</if>>
-		<<set $activeSlave.devotion = random(25,30)>>
-		<<set $activeSlave.trust = random(10,15)>>
+	<<set $activeSlave.devotion = random(25,30)>>
+	<<set $activeSlave.trust = random(10,15)>>
 	<<set $activeSlave.health = random(60,80)>>
 	<<set $activeSlave.muscles = 20>>
 	<<set $activeSlave.waist = -15>>
 	<<set $activeSlave.shoulders = 1>>
-	<<set $activeSlave.preg = -2>>
 	<<set $activeSlave.vaginalSkill = 100>>
 	<<set $activeSlave.oralSkill = 100>>
 	<<set $activeSlave.analSkill = 100>>
@@ -715,14 +757,12 @@
 <br><br>
 The failure of a prominent organization within your arcology has @@.red;affected your reputation@@ and @@.red;your arcology's prosperity@@ slightly, but you've come out a long way ahead. You've acquired excellent slaves for a pitiful fraction of their fair price.
 
-<</nobr>>
+<br><br>
 
-<<nobr>>
 <span id="result">
 <<if $RESFailure == "TFS">>
 <<link "Rape her">>
 	<<replace "#result">>
-	<<nobr>>
 	<<for $i = 0; $i < $slaves.length; $i++>>
 	<<if ($slaves[$i].origin == "She was the leader of your arcology's Futanari Sisters until you engineered her community's failure and enslavement.")>>
 		<<set $activeSlave.devotion += 10>>
@@ -733,13 +773,12 @@ The failure of a prominent organization within your arcology has @@.red;affected
 	<</if>>
 	<</for>>
 	You <<if $PC.dick == 1>>whip out your dick<<else>>pull on a strap-on, the one you use for disobedient slaves,<</if>> and kneel down behind the sobbing futa matron. When she feels it touching her pussylips, she whispers "Thank you, <<Master>>," through her tears. She's very, very sexually experienced, so it's harder to make her feel it than it would be for a girl with tighter holes. But you're an expert. You calibrate your pounding to pull just barely too far out, so that she feels you ramming mercilessly into her with each stroke, and so that the slightest mistake from her sends <<if $PC.dick == 1>>your cock<<else>>the phallus<</if>> right up the other hole. Despite her anguish and the brutal fuck, or perhaps because of them, she slowly manages to get hard, and orgasms painfully when you do. She @@.hotpink;can't seem to stop thanking you,@@ but is quiet when you tell her to be.
-	<</nobr>><</replace>>
+	<</replace>>
 <</link>>
 <br>
 <</if>>
 <<link "Sell your prizes immediately">>
 	<<replace "#result">>
-	<<nobr>>
 	<<for $i = 0; $i < $slaves.length; $i++>>
 	<<set $activeSlave = $slaves[$i]>>
 	<<if $RESFailure == "TSS">>
@@ -801,7 +840,6 @@ The failure of a prominent organization within your arcology has @@.red;affected
 	<</if>>
 	<</for>>
 	Prizes sold.
-	<</nobr>><</replace>>
+	<</replace>>
 <</link>>
 </span>
-<</nobr>>
diff --git a/src/uncategorized/scheduledEvent.tw b/src/uncategorized/scheduledEvent.tw
index 4234a2d2d6d..1d5a7df8808 100644
--- a/src/uncategorized/scheduledEvent.tw
+++ b/src/uncategorized/scheduledEvent.tw
@@ -96,6 +96,9 @@
 <<elseif $week == 90>>
 	<<set $fcnn = ["FCNN service has been temporarily suspended. Please stand by."]>>
 <</if>>
+<<if $TFS.schoolUpgrade == 3 && $week < 90 && $TFS.compromiseWeek == $week-1>>
+	<<set $fcnn.push("...Ladies: Do you want dick so much that you want to HAVE a dick? If yes, join the Futanari Sisters today! Learn more at...")>>
+<</if>>
 
 <<if $secExp == 1>>
 	<<include "attackGenerator">>
diff --git a/src/uncategorized/securityForceNamingColonel.tw b/src/uncategorized/securityForceNamingColonel.tw
index cd722e92066..cc83926d2f6 100644
--- a/src/uncategorized/securityForceNamingColonel.tw
+++ b/src/uncategorized/securityForceNamingColonel.tw
@@ -30,65 +30,55 @@ You close the link to the communication system and read a message from your assi
 	The figure that enters is not what you were expecting, given your previous experiences with the mercenary groups that work with the arcology owners of the Free Cities. Most mercenaries you've worked with have been grizzled stout men, veterans of the Old World militaries that finally had too much and went private. This one's different, <<if $ColonelCore != "">> likely to be ''$ColonelCore'' <</if>>
 		<span id="result0">
 		<<if $ColonelCore == "">> you can guess from her face that at her core she is likely to be:
-		<<link "Kind,">>
-			<<replace "#result0">>
+		<<link "Kind">>
+			<<replace "#result0" "Security Force Naming-Colonel">>
 			she strikes you as a kind person.
 			<<set $ColonelCore = "kind">>
-			<<goto "Security Force Naming-Colonel">>
 			<</replace>>
-		<</link>><<link "mischievous,">>
+		<</link>> | <<link "Mischievous" "Security Force Naming-Colonel">>
 			<<replace "#result0">>
 			she strikes you as someone who enjoys playfully causing trouble.
 			<<set $ColonelCore = "mischievous">>
-			<<goto "Security Force Naming-Colonel">>
 			<</replace>>
-		<</link>><<link "cruel,">>
+		<</link>> | <<link "Cruel" "Security Force Naming-Colonel">>
 			<<replace "#result0">>
 			she strikes you as terribly cruel.
 			<<set $ColonelCore = "cruel">>
-			<<goto "Security Force Naming-Colonel">> 
 			<</replace>>
-		<</link>><<link "psychopathic,">>
+		<</link>> | <<link "Psychopathic" "Security Force Naming-Colonel">>
 			<<replace "#result0">>
 			she strikes you as a complete psychopath.
 			<<set $ColonelCore = "psychopathic">>
-			<<goto "Security Force Naming-Colonel">>
 			<</replace>>
-		<</link>><<link "sociopathic,">>
+		<</link>> | <<link "Sociopathic" "Security Force Naming-Colonel">>
 			<<replace "#result0">>
 			she strikes you as a complete sociopath.
 			<<set $ColonelCore = "sociopathic">>
-			<<goto "Security Force Naming-Colonel">>
 			<</replace>>
-		<</link>><<link "a warmonger,">>
+		<</link>> | <<link "A warmonger" "Security Force Naming-Colonel">>
 			<<replace "#result0">>
 			she strikes you as someone who just loves war.
 			<<set $ColonelCore = "warmonger">>
-			<<goto "Security Force Naming-Colonel">>
 			<</replace>>
-		<</link>><<link "jaded,">>
+		<</link>> | <<link "Jaded">>
 			she strikes you as someone who's seen too much to really care anymore.
 			<<replace "#result0">>
-			<<set $ColonelCore = "jaded">>
-			<<goto "Security Force Naming-Colonel">>
+			<<set $ColonelCore = "jaded" "Security Force Naming-Colonel">>
 			<</replace>>
-		<</link>><<link "shell shocked,">>
+		<</link>> | <<link "Shell shocked">>
 			<<replace "#result0">>
 			she strikes you as someone who's been through hell.
 			<<set $ColonelCore = "shell shocked">>
-			<<goto "Security Force Naming-Colonel">>
 			<</replace>>
-		<</link>><<link "brazen,">>
+		<</link>> | <<link "Brazen" "Security Force Naming-Colonel">>
 			<<replace "#result0">>
 			she strikes you as someone who doesn't know shame.
 			<<set $ColonelCore = "brazen">>
-			<<goto "Security Force Naming-Colonel">>
 			<</replace>>
-		<</link>><<link "collected.">>
+		<</link>> | <<link "Collected" "Security Force Naming-Colonel">>
 			<<replace "#result0">>
 			she seems calm and collected.
 			<<set $ColonelCore = "collected">>
-			<<goto "Security Force Naming-Colonel">>
 			<</replace>>
 		<</link>>
 		<</if>>
diff --git a/src/uncategorized/tfsFarmUpgrade.tw b/src/uncategorized/tfsFarmUpgrade.tw
index 86065aea86e..d12bae78add 100644
--- a/src/uncategorized/tfsFarmUpgrade.tw
+++ b/src/uncategorized/tfsFarmUpgrade.tw
@@ -9,7 +9,7 @@ You receive yet another personal call from an older Futanari Sister, one of the
 <<else>>
 	politely, "I would like to ask a favor of you on behalf of myself and my Sisters." She looks less confident than the older Sisters usually do, but steels herself and asks. "May we use your organ farm? We would like to really complete our transformations. We
 <</if>>
-can pay for the costs of using it, but we have no other way of accessing such advanced technology."
+<<if $TFS.schoolUpgrade == 3 && $TFS.compromiseWeek+15 <= $week>>have a rather cheap one to grow dicks for the girls and we<</if>> can pay for the costs of using it, but we have no other way of accessing such advanced technology."
 
 <br><br>
 
@@ -42,6 +42,24 @@ whether we will use contraception after we are transformed." She shudders sudden
 			<<set $failedElite += 275>>
 		<</replace>>
 	<</link>>
+	<<if $seeHyperPreg == 1>>
+		<br><<link "Permit them access, and encourage them to embrace hyperpregnancy.">>
+			<<replace "#result">>
+				You signify your assent, telling the Sister that the organ farm will accept seed tissue from any of them for the purpose of fabricating ovaries, so long as they are willing to bear as many children as they can handle. To your mild surprise, she responds with cutely inelegant crying. You add that you think the world needs many more Futanari Sisters, especially ones as cute and sexy as you're confident her countless daughters will be. At that, she breaks down completely, one of her hands going to rub her belly gently. It takes her a long time to manage to thank to properly, and she hurries to end the call before she can embarrass herself further.<<if $arcologies[0].FSRestartDecoration == 100>> The Societal Elite are @@.red;outraged@@ that you would not only allow such a breach of eugenics to occur, but encourage it to such an obscene degree.<</if>>
+				<<set $TFS.farmUpgrade = 3>>
+				<<set $failedElite += 1000>>
+			<</replace>>
+		<</link>>
+	<</if>>
+	/*
+	<br><<link "Decline, but grant them something more fitting">>
+		<<replace "#result">>
+			You signify your assent, telling the Sister that the organ farm will accept seed tissue from any of them for the purpose of fabricating testicular ovaries, which shou. To your mild surprise, she responds with cutely inelegant crying. You add that you think the world needs more Futanari Sisters, especially ones as cute and sexy as you're confident her many daughters will be. At that, she breaks down completely, one of her hands going to rub her balls gently. It takes her a long time to manage to thank to properly, and she hurries to end the call before she can embarrass herself further.<<if $arcologies[0].FSRestartDecoration == 100>> The Societal Elite are @@.red;outraged@@ that you would not only allow such a breach of eugenics to occur, but encourage it.<</if>>
+			<<set $TFS.farmUpgrade = 4>>
+			<<set $failedElite += 100>>
+		<</replace>>
+	<</link>>
+	*/
 <</if>>
 <br><<link "Decline">>
 	<<replace "#result">>
diff --git a/src/uncategorized/theFutanariSisters.tw b/src/uncategorized/theFutanariSisters.tw
index a725478be05..ab0d75b8f8a 100644
--- a/src/uncategorized/theFutanariSisters.tw
+++ b/src/uncategorized/theFutanariSisters.tw
@@ -13,13 +13,24 @@ You pay a visit to the Futanari Sisters. They occupy a suite remodeled for their
 <br><br>
 This is a large, circular room with a shallow depression in the floor, filled with pillows and naked, fucking futas. Every possible interaction between mouths, nipples, breasts, penises, vaginas, and anuses is taking place, with most participants managing several at once. They are all very, very pretty, and it's easier to distinguish the older ones by their bigger tits, asses and cocks than by their apparent age. The older futas tend to be on top, but this is by no means the rule, and they like to switch around often.
 <<if $TFS.farmUpgrade == 2>>
-<<if $TFS.farmUpgradeAsked < $week - 10>>
-	<br><br>
-	It's been long enough since you allowed them to use your organ farm to add ovaries to themselves and instructed them not to use contraceptives that most of them are visibly pregnant. This hasn't slowed their sexual congress at all, though. They've become much more focused on vaginal, and there's an obvious eagerness to cum inside Sisters who aren't obviously pregnant.
-<<else>>
-	<br><br>
-	It hasn't been long enough since you allowed them to use your organ farm to add ovaries to themselves for the effects to be obvious yet. Most of them are doubtless pregnant, however. There's been a subtle shift in their sexual behavior, too: they're much more likely to focus on vaginal sex than they were before, so much so that they often double penetrate each others' pussies. When there aren't any cunts available, they do their best to hold their orgasms until one opens up, so to speak.
-<</if>>
+	<<if $TFS.farmUpgradeAsked < $week - 10>>
+		<br><br>
+		It's been long enough since you allowed them to use your organ farm to add ovaries to themselves and instructed them not to use contraceptives that most of them are visibly pregnant. This hasn't slowed their sexual congress at all, though. They've become much more focused on vaginal, and there's an obvious eagerness to cum inside Sisters who aren't obviously pregnant.
+	<<else>>
+		<br><br>
+		It hasn't been long enough since you allowed them to use your organ farm to add ovaries to themselves for the effects to be obvious yet. Most of them are doubtless pregnant, however. There's been a subtle shift in their sexual behavior, too: they're much more likely to focus on vaginal sex than they were before, so much so that they often double penetrate each others' pussies. When there aren't any cunts available, they do their best to hold their orgasms until one opens up, so to speak.
+	<</if>>
+<<elseif $TFS.farmUpgrade == 3>>
+	<<if $TFS.farmUpgradeAsked < $week - 20>>
+		<br><br>
+		It's been long enough since you allowed them to use your organ farm to add ovaries to themselves and instructed them not to use contraceptives that most of them are extremely pregnant. This hasn't slowed their sexual congress at all, though they've had to get creative with their positioning. They've become much more focused on vaginal, and there's an obvious eagerness to cum inside Sisters who aren't obviously pregnant.
+	<<elseif $TFS.farmUpgradeAsked < $week - 10>>
+		<br><br>
+		It's been long enough since you allowed them to use your organ farm to add ovaries to themselves and instructed them not to use contraceptives that most of them are visibly pregnant. This hasn't slowed their sexual congress at all, though. They've become much more focused on vaginal, and there's an obvious eagerness to cum inside Sisters who aren't obviously pregnant.
+	<<else>>
+		<br><br>
+		It hasn't been long enough since you allowed them to use your organ farm to add ovaries to themselves for the effects to be obvious yet. Most of them are doubtless pregnant, however. There's been a subtle shift in their sexual behavior, too: they're much more likely to focus on vaginal sex than they were before, so much so that they often double penetrate each others' pussies. When there aren't any cunts available, they do their best to hold their orgasms until one opens up, so to speak.
+	<</if>>
 <</if>>
 <br><br>
 Visitors are not common: in fact, visitors are only as frequent as you feel like visiting. It takes a while before they notice you. When a dreamy-eyed young futa finally does, she reaches a lazy hand over to alert the eldest one present by tugging on one of her nipples and pointing in your direction. The elder looks over at you and gives you a friendly wave followed by a wait-one-moment gesture. She's curled up on her back with her cockhead in her own mouth, using both hands to give her own shaft a boob job while a younger futa is eats her ass and fingers her pussy. The futa matron orgasms promptly, sucking down her own cum. She gets up languidly, her plush body, softening forearm-sized dick, and enormous natural boobs making it a wonderful sight.
@@ -73,7 +84,20 @@ Visitors are not common: in fact, visitors are only as frequent as you feel like
 
 <<else>>
 
-//The Futanari Sisters use the same legalistic structures as other slave schools, but are actually very different. They're quite enigmatic, and inquiry into their cultlike methods is politely discouraged. All the Sisters own the institution together, and seem to share the goal of pursuing transformation of themselves to fit the classic futanari fetish - that is, to transform themselves into beautiful, curvaceous women with large dicks. All Sisters remain within the closed society for at least seven years. The Sisters fund themselves by selling members into slavery: interestingly, the more impressive a member is, the older she seems to be when sold; there may be a sort of selection mechanism by which the losers are sold immediately and the winners remain, leading the Sisters. This does not mean that ex-Sisters are unhappy with enslavement. On the contrary, it seems to be an expected stage of their lives, and not shameful. <<if $TFS.schoolUpgrade != 0>><br><br>Since you have supported the faction within the Sisters that favors <<if $TFS.schoolUpgrade == 1>>futas without balls, its members will now appear without visible testicles and increased submissiveness.<<else>>futa balls, its members will now appear with extremely large testicles and increased sex drives.<</if>> As a major <<if $PC.title == 0>>benefactrix<<else>>benefactor<</if>> of the institution, you also receive a discount on them.<</if>>//
+//The Futanari Sisters use the same legalistic structures as other slave schools, but are actually very different. They're quite enigmatic, and inquiry into their cultlike methods is politely discouraged. All the Sisters own the institution together, and seem to share the goal of pursuing transformation of themselves to fit the classic futanari fetish - that is, to transform themselves into beautiful, curvaceous women with large dicks. All Sisters remain within the closed society for at least seven years. The Sisters fund themselves by selling members into slavery: interestingly, the more impressive a member is, the older she seems to be when sold; there may be a sort of selection mechanism by which the losers are sold immediately and the winners remain, leading the Sisters. This does not mean that ex-Sisters are unhappy with enslavement. On the contrary, it seems to be an expected stage of their lives, and not shameful.
+<<if $TFS.schoolUpgrade != 0>>
+	<br><br>
+	Since you have supported the faction within the Sisters that favors
+	<<if $TFS.schoolUpgrade == 3>>
+		a mix of futas with and without balls; its female members will appear without balls, while its male members will appear with extremely large testicles.
+		<<if $TFS.compromiseWeek+15 > $week>>Or they will, in around (($TFS.compromiseWeek+15)-$week) weeks.<</if>>
+	<<elseif $TFS.schoolUpgrade == 1>>
+		futas without balls, its members will now appear without visible testicles and increased submissiveness.
+	<<else>>
+		futa balls, its members will now appear with extremely large testicles and increased sex drives.
+	<</if>>
+	As a major <<if $PC.title == 0>>benefactrix<<else>>benefactor<</if>> of the institution, you also receive a discount on them.
+<</if>>//
 
 The Sisters offer a member selected for sale into slavery for inspection via video call. The feed is of an exhausted futa, fast asleep. Whatever ceremonies the Sisters perform before releasing a member into slavery, they seem to have tired her out. There are indistinct but obviously sexual sounds audible in the background; it sounds like an orgy with a very large number of participants is going on nearby.
 
diff --git a/src/utility/slaveCreationWidgets.tw b/src/utility/slaveCreationWidgets.tw
index e2149e49376..1ad45982fda 100644
--- a/src/utility/slaveCreationWidgets.tw
+++ b/src/utility/slaveCreationWidgets.tw
@@ -3492,7 +3492,11 @@
 	<<set $activeSlaveOneTimeMinAge = 25>>
 	<<set $activeSlaveOneTimeMaxAge = 29>>
 	<<set $one_time_age_overrides_pedo_mode = 1>>
-	<<include "Generate XY Slave">>
+	<<if $TFS.schoolUpgrade == 3 && $TFS.compromiseWeek+15 <= $week>>
+		<<include "Generate New Slave">>
+	<<else>>
+		<<include "Generate XY Slave">>
+	<</if>>
 	<<set $activeSlave.origin = "You bought her from the enigmatic Futanari Sisters after they sold her into slavery.">>
 	<<set $activeSlave.career = "a Futanari Sister">>
 	<<set $activeSlave.faceShape = either("sensual", "exotic")>>
@@ -3501,7 +3505,15 @@
 		<<set $activeSlave.intelligence = -2>>
 		<<set $activeSlave.hips = 0>>
 		<<set $activeSlave.face = either(35,35,35,75,100)>>
-		<<if $TFS.schoolUpgrade == 1>>
+		<<if $TFS.schoolUpgrade == 3 && $TFS.compromiseWeek+15 <= $week>>
+			<<if $activeSlave.genes == "XY">>
+				<<set $activeSlave.balls = 6>>
+				<<set $activeSlave.scrotum = $activeSlave.balls>>
+			<<else>>
+				<<set $activeSlave.balls = 1>>
+				<<set $activeSlave.scrotum = 0>>
+			<</if>>
+		<<elseif $TFS.schoolUpgrade == 1>>
 			<<set $activeSlave.balls = 1>>
 			<<set $activeSlave.scrotum = 0>>
 		<<elseif $TFS.schoolUpgrade == 2>>
@@ -3525,7 +3537,15 @@
 		<<set $activeSlave.intelligence = -1>>
 		<<set $activeSlave.hips = 1>>
 		<<set $activeSlave.face = either(35,35,35,75,100)>>
-		<<if $TFS.schoolUpgrade == 1>>
+		<<if $TFS.schoolUpgrade == 3 && $TFS.compromiseWeek+15 <= $week>>
+			<<if $activeSlave.genes == "XY">>
+				<<set $activeSlave.balls = 7>>
+				<<set $activeSlave.scrotum = $activeSlave.balls>>
+			<<else>>
+				<<set $activeSlave.balls = 1>>
+				<<set $activeSlave.scrotum = 0>>
+			<</if>>
+		<<elseif $TFS.schoolUpgrade == 1>>
 			<<set $activeSlave.balls = 1>>
 			<<set $activeSlave.scrotum = 0>>
 		<<elseif $TFS.schoolUpgrade == 2>>
@@ -3545,7 +3565,15 @@
 		<<set $activeSlave.intelligence = 0>>
 		<<set $activeSlave.hips = 2>>
 		<<set $activeSlave.face = either(35,35,75,75,100)>>
-		<<if $TFS.schoolUpgrade == 1>>
+		<<if $TFS.schoolUpgrade == 3 && $TFS.compromiseWeek+15 <= $week>>
+			<<if $activeSlave.genes == "XY">>
+				<<set $activeSlave.balls = 8>>
+				<<set $activeSlave.scrotum = $activeSlave.balls>>
+			<<else>>
+				<<set $activeSlave.balls = 1>>
+				<<set $activeSlave.scrotum = 0>>
+			<</if>>
+		<<elseif $TFS.schoolUpgrade == 1>>
 			<<set $activeSlave.balls = 1>>
 			<<set $activeSlave.scrotum = 0>>
 		<<elseif $TFS.schoolUpgrade == 2>>
@@ -3569,7 +3597,15 @@
 		<<set $activeSlave.intelligence = 1>>
 		<<set $activeSlave.hips = 2>>
 		<<set $activeSlave.face = either(35,75,75,100,100)>>
-		<<if $TFS.schoolUpgrade == 1>>
+		<<if $TFS.schoolUpgrade == 3 && $TFS.compromiseWeek+15 <= $week>>
+			<<if $activeSlave.genes == "XY">>
+				<<set $activeSlave.balls = 9>>
+				<<set $activeSlave.scrotum = $activeSlave.balls>>
+			<<else>>
+				<<set $activeSlave.balls = 1>>
+				<<set $activeSlave.scrotum = 0>>
+			<</if>>
+		<<elseif $TFS.schoolUpgrade == 1>>
 			<<set $activeSlave.balls = 1>>
 			<<set $activeSlave.scrotum = 0>>
 		<<elseif $TFS.schoolUpgrade == 2>>
@@ -3593,7 +3629,15 @@
 		<<set $activeSlave.intelligence = 2>>
 		<<set $activeSlave.hips = 2>>
 		<<set $activeSlave.face = either(35,75,100,100,100)>>
-		<<if $TFS.schoolUpgrade == 1>>
+		<<if $TFS.schoolUpgrade == 3 && $TFS.compromiseWeek+15 <= $week>>
+			<<if $activeSlave.genes == "XY">>
+				<<set $activeSlave.balls = 10>>
+				<<set $activeSlave.scrotum = $activeSlave.balls>>
+			<<else>>
+				<<set $activeSlave.balls = 1>>
+				<<set $activeSlave.scrotum = 0>>
+			<</if>>
+		<<elseif $TFS.schoolUpgrade == 1>>
 			<<set $activeSlave.balls = 1>>
 			<<set $activeSlave.scrotum = 0>>
 		<<elseif $TFS.schoolUpgrade == 2>>
@@ -3619,19 +3663,24 @@
 	<<set $activeSlave.boobs = 50*((10*_sisterAge)+random(10,20))>>
 	<<set $activeSlave.dick = _sisterAge+random(1,2)>>
 	<<if $activeSlave.foreskin > 0>><<set $activeSlave.foreskin = $activeSlave.dick>><</if>>
-	<<set $activeSlave.preg = -2>>
+	<<set $activeSlave.preg = -3>>
 	<<if $TFS.farmUpgrade > 0>>
 		<<set $activeSlave.ovaries = 1>>
 		<<set $activeSlave.preg = -1>>
-		<<if $TFS.farmUpgrade == 2>>
+		<<if $TFS.farmUpgrade >= 2>>
 			<<if $week - $TFS.farmUpgradeAsked < 35>>
 				<<set $activeSlave.preg = random(1,($week - $TFS.farmUpgradeAsked))>>
 			<<else>>
 				<<set $activeSlave.preg = random(1,40)>>
 			<</if>>
+			<<if $TFS.farmUpgrade == 3>>
+				<<set $activeSlave.pregType = random(20,40)>>
+				<<set $activeSlave.pregAdaptation = 500>>
+			<<else>>
+				<<set $activeSlave.pregType = 1>>
+			<</if>>
+			<<set $activeSlave.pregWeek = $activeSlave.preg>>
 		<</if>>
-		<<set $activeSlave.pregType = 1>>
-		<<set $activeSlave.pregWeek = $activeSlave.preg>>
 	<</if>>
 	<<run SetBellySize($activeSlave)>>
 	<<set $activeSlave.intelligenceImplant = 1>>
@@ -3645,7 +3694,9 @@
 	<<set $activeSlave.trust = random(60,75)>>
 	<<set $activeSlave.health = random(60,80)>>
 	<<set $activeSlave.muscles = 20>>
-	<<set $activeSlave.shoulders = 1>>
+	<<if $activeSlave.genes == "XY">>
+		<<set $activeSlave.shoulders = 1>>
+	<</if>>
 	<<set $activeSlave.vaginalSkill = 100>>
 	<<set $activeSlave.oralSkill = 100>>
 	<<set $activeSlave.analSkill = 100>>
-- 
GitLab