From ae76a1cf0f2fca138c387692a8c661ffcb1fe6e0 Mon Sep 17 00:00:00 2001
From: dsoloha <38593903+dsoloha@users.noreply.github.com>
Date: Sat, 25 Jan 2020 21:11:47 -0500
Subject: [PATCH] Various bugfixes

---
 src/Mods/SpecialForce/SpecialForce.js    |   8 +-
 src/Mods/SpecialForce/TrickShotNight.tw  |   2 +-
 src/Mods/SpecialForce/WeeklyChoices.tw   |  10 +--
 src/SecExp/js/secExp.js                  | 108 +++++++++++------------
 src/facilities/farmyard/farmyard.tw      |  90 +++++++++----------
 src/facilities/nursery/nurseryWidgets.js |   4 +-
 src/uncategorized/RESS.tw                |   2 +-
 src/uncategorized/arcologyDescription.tw |   2 +-
 src/uncategorized/managePenthouse.tw     |   2 +-
 src/uncategorized/officeDescription.tw   |   2 +-
 src/uncategorized/ptWorkaround.tw        |   2 +-
 src/uncategorized/remoteSurgery.tw       |   3 +
 src/utility/descriptionWidgetsTattoos.tw |   4 +-
 13 files changed, 116 insertions(+), 123 deletions(-)

diff --git a/src/Mods/SpecialForce/SpecialForce.js b/src/Mods/SpecialForce/SpecialForce.js
index df2b83d8319..ea1a356df38 100644
--- a/src/Mods/SpecialForce/SpecialForce.js
+++ b/src/Mods/SpecialForce/SpecialForce.js
@@ -620,7 +620,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`)
 
 	if (input === 'Menu') {
 		if (V.SF.FS.Tension === -1) {
-			text += `<<link "Talk to The Colonel about Future Society integration.">> <<replace "#result0">> \n\n`;
+			text += `<<link "Talk to The Colonel about Future Society integration">> <<replace "#result0">> \n\n`;
 			text += `You bring up the topic of cultural development with the Colonel, and in doing so, you share your hopes that she might be willing to help you better acquaint the troops with your cultural mores. Her response was less than positive: `;
 			switch (V.SF.Colonel.Core) {
 				case "kind":
@@ -641,7 +641,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`)
 			}
 			text += ` [[Fine|Firebase][$SF.FS.Tension = 0]]\n <</replace>> <</link>>`;
 		} else if (V.SF.FS.Tension < 100) {
-			text += `<<link "Chat with the Troops.">> <<replace "#result0">> \n\n`;
+			text += `<<link "Chat with the Troops">> <<replace "#result0">> \n\n`;
 			text += `You walk past The Colonel and move towards the common area to meet with an exclusive group of her very influential officers that are currently relaxing at their favorite table. These men and women are known for their competence, popularity, and authority within in their respective divisions of the ${V.SF.Lower}, they are hard to replace, and they are always looking to earn more coin; they are the perfect weak link for trickling your Future Society influences down into the Firebase. As the officers make room at their table for you to sit and join them for discussion, you spot The Colonel staring at you from afar, and she does not look happy with you. As you are her employer, she cannot stop you from speaking with her soldiers or moving around as you please, but she can tell that you are up to no good:\nTension: ${V.SF.FS.Tension}%\n`;
 			validityTester();
 			for (let i = 0; i < FS_OPTIONS.length; i++) {
@@ -2582,9 +2582,9 @@ App.SF.AAR = function(endWeekCall = 1) {
 
 			r += `&nbsp;Deployment focus: `;
 			r += `<span id="focus"> <<if $SF.Target == "recruit">> <b>Recruiting and Training</b> <<elseif $SF.Target == "secure">> <b>Securing Trade Routes</b> <<else>> <b>Raiding and Slaving</b> <</if>></span>&nbsp;&nbsp;`;
-			r += `<br>&nbsp;&nbsp; <<link "Recruit and Train">> <<set $SF.Target = "recruit">> <<replace "#focus">> <b>Recruiting and Training</b> <</replace>> <</link>> <span class="detail">Increases the amount of FNG's at the cost of revenue.</span>`;
+			r += `<br>&nbsp;&nbsp; <<link "Recruit and Train">> <<set $SF.Target = "recruit">> <<replace "#focus">> <b>Recruiting and Training</b> <</replace>> <</link>> <span class="detail">Increases the amount of FNGs at the cost of revenue.</span>`;
 			r+= `<br>&nbsp;&nbsp; <<link "Secure Trade Routes">> <<set $SF.Target = "secure">> <<replace "#focus">> <b>Securing Trade Routes</b> <</replace>> <</link>> <span class="detail">Increases trade and reputation at the cost of revenue.</span>`;
-			r += `<br>&nbsp;&nbsp; <<link "Raiding and Slaving">> <<set $SF.Target = "raiding">> <<replace "#focus">> <b>Raiding and Slaving</b> <</replace>> <</link>> <span class="detail">Increases revenue at the cost of less FNG's and increased force depravity.</span>`;
+			r += `<br>&nbsp;&nbsp; <<link "Raiding and Slaving">> <<set $SF.Target = "raiding">> <<replace "#focus">> <b>Raiding and Slaving</b> <</replace>> <</link>> <span class="detail">Increases revenue at the cost of less FNGs and increased force depravity.</span>`;
 
 			r += `<br>&nbsp;Rules of Engagement: `;
 			r += `<span id="roe"> <<if $SF.ROE === "hold">> <b>Hold Fire</b> <<elseif $SF.ROE === "limited">> <b>Limited Fire</b> <<else>> <b>Free Fire</b> <</if>></span>&nbsp;&nbsp;`;
diff --git a/src/Mods/SpecialForce/TrickShotNight.tw b/src/Mods/SpecialForce/TrickShotNight.tw
index f2bcf83bd9e..57f3e521d2f 100644
--- a/src/Mods/SpecialForce/TrickShotNight.tw
+++ b/src/Mods/SpecialForce/TrickShotNight.tw
@@ -170,6 +170,6 @@ Despite your direct elevator, interaction with the majority of your security for
 
 			</span>
 		<</replace>>
-	<</link>> // It will cost @@.red;<<print cashFormat(50000)>>@@ to participate in the trick shot night.//
+	<</link>> // It will cost <<print cashFormat(50000)>> to participate in the trick shot night.//
 <</if>>
 </span>
diff --git a/src/Mods/SpecialForce/WeeklyChoices.tw b/src/Mods/SpecialForce/WeeklyChoices.tw
index cc8a75c3388..7ee5b32032e 100644
--- a/src/Mods/SpecialForce/WeeklyChoices.tw
+++ b/src/Mods/SpecialForce/WeeklyChoices.tw
@@ -62,7 +62,7 @@
 	<br>"If you need me for anything else, let me know."
 	<<= App.SF.fsIntegration()>>
 	<<if $SF.MercCon.History >= 1>> <br>
-		<<link "Merc meetup report.">>
+		<<link "Mercenary meetup report">>
 			<<replace "#result0">>
 			<br><br>While at the recent merc meetup, The Colonel made @@.yellowgreen;<<print cashFormat(Math.ceil($SF.MercCon.Income))>>@@ selling generic schematics to her friends, <<print num($SF.MercCon.Menials)>> menial slaves were won in a poker game, and <<print num($SF.MercCon.Mercs)>> mercenaries were persuaded to join $SF.Lower.
 			<br>Total earnings thus far: @@.yellowgreen;<<print cashFormat(Math.ceil($SF.MercCon.Revenue))>>@@ in income, <<print num($SF.MercCon.TotalMenials)>> menial slaves and <<print num($SF.MercCon.TotalMercs)>> mercenaries joined across $SF.MercCon.History meetups.
@@ -71,7 +71,7 @@
 	<</if>>
 
 	<<if $SF.Colonel.Status >= 25>>
-		<br><<link "Walk with the Colonel on the surface.">>
+		<br><<link "Walk with the Colonel on the surface">>
 			<<replace "#result0">>
 			<<set $SF.Colonel.Talk = 1, $SF.Colonel.Status += 2, $SF.FS.Tension -= _colonelTalkTensionRuction>>
 			<br><br>You ask the Colonel if she would like to stretch her legs up on the surface. It doesn't take much effort for her to agree.
@@ -146,7 +146,7 @@
 		<</link>>
 	<</if>>
 
-	<br><<link "Talk in $SF.Lower's HQ.">>
+	<br><<link "Talk in $SF.Lower's HQ">>
 		<<replace "#result0">>
 		<span id="result1">
 			<br><br>What do you want to do with the Colonel in the HQ?
@@ -199,7 +199,7 @@
 			<</link>>
 
 			<<if $SF.Colonel.Status >= 45>>
-				<br><<link "Have some fun.">>
+				<br><<link "Have some fun">>
 					<<replace "#result1">>
 					<span id="result4">
 						<<set $SF.Colonel.Fun = 1,$SF.Colonel.Talk = 1,$SF.Colonel.Status += 3, $SF.FS.Tension -= _colonelTalkTensionRuction>>
@@ -247,7 +247,7 @@
 							<</replace>>
 						<</link>>
 
-						<br><<link "On The Colonel's throne.">>
+						<br><<link "On The Colonel's throne">>
 							<<replace "#result4">>
 							<span id="result6">
 								<br>Which orifice do you wish to target?
diff --git a/src/SecExp/js/secExp.js b/src/SecExp/js/secExp.js
index 2bfd4ae9062..166bb6cff7c 100644
--- a/src/SecExp/js/secExp.js
+++ b/src/SecExp/js/secExp.js
@@ -786,16 +786,16 @@ App.SecExp.unit = (function() {
 			if (unitType !== "Bots") {
 				r += `\n<strong>${input.platoonName}</strong> `;
 			} else {
-				r += `\nThe drone unit is made up of ${input.troops} drones.`;
+				r += `\nThe drone unit is made up of ${input.troops} drones. `;
 			}
 			if (jsDef(input.active) || input.active > 0) {
 				if (unitType !== "Bots") {
 						if(input.battlesFought > 1) {
-							r += `has participated in ${input.battlesFought} battles and is ready to face the enemy once more at your command.`;
+							r += `has participated in ${input.battlesFought} battles and is ready to face the enemy once more at your command. `;
 						} else if (input.battlesFought === 1) {
-							r += `is ready to face the enemy once more at your command.`;
+							r += `is ready to face the enemy once more at your command. `;
 						} else {
-							r += `is ready to face the enemy in battle.`;
+							r += `is ready to face the enemy in battle. `;
 						}
 					r += `\nIt's ${input.troops} `;
 				}
@@ -803,143 +803,143 @@ App.SecExp.unit = (function() {
 				if(unitType !== "Bots") {
 					r += `men and women are `;
 					if(unitType === "Militia") {
-						r += `all proud citizens of your arcology, willing to put their lives on the line to protect their home.`;
+						r += `all proud citizens of your arcology, willing to put their lives on the line to protect their home. `;
 					} else if (unitType === "Slaves") {
-						r += `slaves in your possession, tasked with the protection of their owner and their arcology.`;
+						r += `slaves in your possession, tasked with the protection of their owner and their arcology. `;
 					} else if (unitType === "Mercs") {
-					r += `mercenaries contracted to defend the arcology against external threats.`;
+					r += `mercenaries contracted to defend the arcology against external threats. `;
 					}
 				} else {
-					r += ` All of which are assembled in an ordered line in front of you, absolutely silent and ready to receive their orders.`;
+					r += `All of which are assembled in an ordered line in front of you, absolutely silent and ready to receive their orders. `;
 				}
 
 				if(input.troops < input.maxTroops) {
-					r += `The unit is not at its full strength of ${input.maxTroops} operatives.`;
+					r += `The unit is not at its full strength of ${input.maxTroops} operatives. `;
 				}
 
 				if(unitType !== "Bots") {
 					if(input.equip === 0) {
-						r += ` They are issued with simple, yet effective equipment: firearms, a few explosives and standard uniforms, nothing more.`;
+						r += `They are issued with simple, yet effective equipment: firearms, a few explosives and standard uniforms, nothing more. `;
 					} else if (input.equip === 1) {
-						r += ` They are issued with good, modern equipment: firearms, explosives and a few specialized weapons like sniper rifles and machine guns. They also carry simple body armor.`;
+						r += `They are issued with good, modern equipment: firearms, explosives and a few specialized weapons like sniper rifles and machine guns. They also carry simple body armor. `;
 					} else if (input.equip === 2) {
-						r += ` They are issued with excellent, high tech equipment: modern firearms, explosives, specialized weaponry and modern body armor. They are also issued with modern instruments like night vision and portable radars.`;
+						r += `They are issued with excellent, high tech equipment: modern firearms, explosives, specialized weaponry and modern body armor. They are also issued with modern instruments like night vision and portable radars. `;
 					} else {
-						r += ` They are equipped with the best the modern world has to offer: modern firearms, explosives, specialized weaponry, experimental railguns, adaptive body armor and high tech recon equipment.`;
+						r += `They are equipped with the best the modern world has to offer: modern firearms, explosives, specialized weaponry, experimental railguns, adaptive body armor and high tech recon equipment. `;
 					}
 				} else {
 					if(input.equip === 0) {
-						r += ` They are equipped with light weaponry, mainly anti-riot nonlethal weapons. Not particularly effective in battle.`;
+						r += `They are equipped with light weaponry, mainly anti-riot nonlethal weapons. Not particularly effective in battle. `;
 					} else if (input.equip === 1) {
-						r += ` They are equipped with light firearms, not an overwhelming amount of firepower, but with their mobility good enough to be effective.`;
+						r += `They are equipped with light firearms, not an overwhelming amount of firepower, but with their mobility good enough to be effective. `;
 					} else if (input.equip === 2) {
-						r += ` They are equipped with powerful, modern firearms and simple armor mounted around their frames. They do not make for a pretty sight, but on the battlefield they are a dangerous weapon.`;
+						r += `They are equipped with powerful, modern firearms and simple armor mounted around their frames. They do not make for a pretty sight, but on the battlefield they are a dangerous weapon. `;
 					} else {
-						r += ` They are equipped with high energy railguns and adaptive armor. They are a formidable force on the battlefield, even for experienced soldiers.`;
+						r += `They are equipped with high energy railguns and adaptive armor. They are a formidable force on the battlefield, even for experienced soldiers. `;
 					}
 				}
 
 				if(unitType !== "Bots") {
 					if(input.training <= 33) {
-						r += ` They lack the experience to be considered professionals, but `;
+						r += `They lack the experience to be considered professionals, but `;
 					if (input === "Militia") {
-						r += ` their eagerness to defend the arcology makes up for it.`;
+						r += `their eagerness to defend the arcology makes up for it. `;
 						} else if (unitType === "Slaves") {
-							r += ` their eagerness to prove themselves makes up for it.`;
+							r += `their eagerness to prove themselves makes up for it. `;
 						} else if (unitType === "Mercs") {
-							r += ` they're trained more than enough to still be an effective unit.`;
+							r += `they're trained more than enough to still be an effective unit. `;
 						}
 					} else if (input.training <= 66) {
-						r += ` They have trained `;
+						r += `They have trained `;
 						if (input.battlesFought > 0) {
 							r += `and fought `;
 						}
-						r += `enough to be considered disciplined, professional soldiers, ready to face the battlefield.`;
+						r += `enough to be considered disciplined, professional soldiers, ready to face the battlefield. `;
 					} else {
-						r += `They are consummate veterans, with a wealth of experience and perfectly trained. On the battlefield they are a well oiled war machine capable of facing pretty much anything.`;
+						r += `They are consummate veterans, with a wealth of experience and perfectly trained. On the battlefield they are a well oiled war machine capable of facing pretty much anything. `;
 					}
 
 					if(input.loyalty < 10) {
-						r += ` The unit is extremely disloyal. Careful monitoring of their activities and relationships should be implemented.`;
+						r += `The unit is extremely disloyal. Careful monitoring of their activities and relationships should be implemented. `;
 					} else if (input.loyalty < 33) {
-						r += ` Their loyalty is low. Careful monitoring of their activities and relationships is advised.`;
+						r += `Their loyalty is low. Careful monitoring of their activities and relationships is advised. `;
 					} else if (input.loyalty < 66) {
-						r += ` Their loyalty is not as high as it can be, but they are not actively working against their arcology owner.`;
+						r += `Their loyalty is not as high as it can be, but they are not actively working against their arcology owner. `;
 					} else if (input.loyalty < 90) {
-						r += ` Their loyalty is high and strong. The likelihood of this unit betraying the arcology is low to non-existent.`;
+						r += `Their loyalty is high and strong. The likelihood of this unit betraying the arcology is low to non-existent. `;
 					} else {
-						r += ` The unit is fanatically loyal. They would prefer death over betrayal.`;
+						r += `The unit is fanatically loyal. They would prefer death over betrayal. `;
 					}
 
 					if (input.cyber > 0) {
-						r += ` The soldiers of the unit have been enhanced with numerous cyberaugmentations which greatly increase their raw power.`;
+						r += `The soldiers of the unit have been enhanced with numerous cyberaugmentations which greatly increase their raw power. `;
 					}
 					if (input.medics > 0) {
-						r += ` The unit has a dedicated squad of medics that will follow them in battle.`;
+						r += `The unit has a dedicated squad of medics that will follow them in battle. `;
 					}
 					if(V.SF.Toggle && V.SF.Active >= 1 && input.SF > 0) {
-						r += ` The unit has attached "advisors" from ${V.SF.Lower} that will help the squad remain tactically aware and active.`;
+						r += `The unit has attached "advisors" from ${V.SF.Lower} that will help the squad remain tactically aware and active. `;
 					}
 				}
 			} else {
 				r += `This unit has lost too many operatives`;
 				if (jsDef(input.battlesFought)) {
-					r += ` in the ${input.battlesFought} it fought`;
+					r += `in the ${input.battlesFought} it fought`;
 				}
-				r += ` and can no longer be considered a unit at all.`;
+				r += `and can no longer be considered a unit at all. `;
 			}
 		} else if (V.SecExp.settings.unitDescriptions > 0) {
 			if (unitType !== "Bots") {
-				r += `\n${input.platoonName}.`;
+				r += `\n${input.platoonName}. `;
 			} else {
-				r += `Drone squad.`;
+				r += `Drone squad. `;
 			}
-			r += ` Unit size: ${input.troops}. `;
+			r += `Unit size: ${input.troops}. `;
 			r += `Equipment quality: `;
 			if (input.equip === 0) {
-				r += `basic.`;
+				r += `basic. `;
 			} else if (input.equip === 1) {
-				r += `average.`;
+				r += `average. `;
 			} else if (input.equip === 2) {
-				r += `high.`;
+				r += `high. `;
 			} else {
-				r += `advanced.`;
+				r += `advanced. `;
 			}
 			if (jsDef(input.battlesFought)) {
-				r += ` Battles fought: ${input.battlesFought}. `;
+				r += `Battles fought: ${input.battlesFought}. `;
 			}
 			if (jsDef(input.training)) {
 				r += `\nTraining: `;
 				if (input.training <= 33) {
-					r += `low.`;
+					r += `low. `;
 				} else if(input.training <= 66) {
-					r += `medium.`;
+					r += `medium. `;
 				} else {
-					r += `high.`;
+					r += `high. `;
 				}
 			}
 			if (jsDef(input.loyalty)) {
-				r += ` Loyalty: `;
+				r += `Loyalty: `;
 				if(input.loyalty < 10) {
-						r += `extremely disloyal.`;
+						r += `extremely disloyal. `;
 					} else if (input.loyalty < 33) {
-						r += `low.`;
+						r += `low. `;
 					} else if (input.loyalty < 66) {
-						r += `medium.`;
+						r += `medium. `;
 					} else if (input.loyalty < 90) {
-						r += `high.`;
+						r += `high. `;
 					} else {
-						r += `fanatical.`;
+						r += `fanatical. `;
 					}
 			}
 			if (jsDef(input.cyber) && input.cyber > 0) {
-				r += `\nHave been cyberaugmentated.`;
+				r += `\nHave been cyberaugmentated. `;
 			}
 			if (jsDef(input.medics) && input.medics > 0) {
-				r += ` Has a medic squad attached.`;
+				r += `Has a medic squad attached. `;
 			}
 			if(V.SF.Toggle && V.SF.Active >= 1 && jsDef(input.SF) || input.SF > 0) {
-				r += ` ${App.SF.Caps()} "advisors" are attached.`;
+				r += `${App.SF.Caps()} "advisors" are attached. `;
 			}
 		}
 		return r;
diff --git a/src/facilities/farmyard/farmyard.tw b/src/facilities/farmyard/farmyard.tw
index 901459486d0..44ced838304 100644
--- a/src/facilities/farmyard/farmyard.tw
+++ b/src/facilities/farmyard/farmyard.tw
@@ -222,38 +222,38 @@ $farmyardNameCaps is an oasis of growth in the midst of the jungle of steel and
 <<else>>
 	The water pump in $farmyardName is a more efficient model, slightly improving the amount of crops $farmyardName produces.
 	<br>
-<</if>>
-<<if $farmyardUpgrade.fertilizer == 0>>
-	[[Use a higher-quality fertilizer|Farmyard][cashX(forceNeg(Math.trunc(2000*$upgradeMultiplierArcology)), "farmyard"), $farmyardUpgrade.fertilizer = 1]]
-	//Costs <<print cashFormat(Math.trunc(2000*$upgradeMultiplierArcology))>> and slightly increases upkeep costs and crop yield.//
-	<br>
-<<else>>
-	$farmyardNameCaps is using a higher-quality fertilizer, increasing the amount of crops it produces.
-	<br>
-<</if>>
-<<if $farmyardUpgrade.hydroponics == 0>>
-	[[Purchase a hydroponics system|Farmyard][cashX(forceNeg(Math.trunc(5000*$upgradeMultiplierArcology)), "farmyard"), $farmyardUpgrade.hydroponics = 1]]
-	//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>> and slightly decreases upkeep costs.//
-	<br>
-<<else>>
-	$farmyardNameCaps is outfitted with an advanced hydroponics system, slightly reducing the amount of water your crops consume and thus reducing upkeep.
-	<br>
-<</if>>
-<<if $farmyardUpgrade.machinery == 0>>
-	[[Upgrade the machinery to increase the yield of crops|Farmyard][cashX(forceNeg(Math.trunc(10000*$upgradeMultiplierArcology)), "farmyard"), $farmyardUpgrade.machinery = 1]]
-	//Costs <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology))>> and moderately decreases upkeep costs.//
-	<br>
-<<else>>
-	The machinery in $farmyardName has been upgraded, and is more efficient.
-	<br>
-<</if>>
-<<if $farmyardUpgrade.seeds == 0>>
-	[[Purchase genetically modified seeds|Farmyard][cashX(forceNeg(Math.trunc(20000*$upgradeMultiplierArcology)), "farmyard"),$farmyardUpgrade.seeds = 1]]
-	//Costs <<print cashFormat(Math.trunc(20000*$upgradeMultiplierArcology))>> and moderately increases crop yield.//
-	<br>
-<<else>>
-	$farmyardNameCaps is using genetically modified seeds, moderately increasing the amount of crops it produces.
-	<br>
+	<<if $farmyardUpgrade.fertilizer == 0>>
+		[[Use a higher-quality fertilizer|Farmyard][cashX(forceNeg(Math.trunc(2000*$upgradeMultiplierArcology)), "farmyard"), $farmyardUpgrade.fertilizer = 1]]
+		//Costs <<print cashFormat(Math.trunc(2000*$upgradeMultiplierArcology))>> and slightly increases upkeep costs and crop yield.//
+		<br>
+	<<else>>
+		$farmyardNameCaps is using a higher-quality fertilizer, increasing the amount of crops it produces.
+		<br>
+		<<if $farmyardUpgrade.hydroponics == 0>>
+			[[Purchase a hydroponics system|Farmyard][cashX(forceNeg(Math.trunc(5000*$upgradeMultiplierArcology)), "farmyard"), $farmyardUpgrade.hydroponics = 1]]
+			//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>> and slightly decreases upkeep costs.//
+			<br>
+		<<else>>
+			$farmyardNameCaps is outfitted with an advanced hydroponics system, slightly reducing the amount of water your crops consume and thus reducing upkeep.
+			<br>
+			<<if $farmyardUpgrade.machinery == 0>>
+				[[Upgrade the machinery to increase the yield of crops|Farmyard][cashX(forceNeg(Math.trunc(10000*$upgradeMultiplierArcology)), "farmyard"), $farmyardUpgrade.machinery = 1]]
+				//Costs <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology))>> and moderately decreases upkeep costs.//
+				<br>
+			<<else>>
+				The machinery in $farmyardName has been upgraded, and is more efficient.
+				<br>
+				<<if $farmyardUpgrade.seeds == 0>>
+					[[Purchase genetically modified seeds|Farmyard][cashX(forceNeg(Math.trunc(20000*$upgradeMultiplierArcology)), "farmyard"),$farmyardUpgrade.seeds = 1]]
+					//Costs <<print cashFormat(Math.trunc(20000*$upgradeMultiplierArcology))>> and moderately increases crop yield.//
+					<br>
+				<<else>>
+					$farmyardNameCaps is using genetically modified seeds, moderately increasing the amount of crops it produces.
+					<br>
+				<</if>>
+			<</if>>
+		<</if>>
+	<</if>>
 <</if>>
 <<if $rep > 18000>>
 	<<if $farmyardUpgrade.lab == 0>>
@@ -298,16 +298,11 @@ $farmyardNameCaps is an oasis of growth in the midst of the jungle of steel and
 			<<print $canines>>.
 		<<elseif _CL <= 3>>
 			a couple different
-			<<set $onlyDogs = 0>>
-			<<run $canines.forEach(function(c) {
-				if (c.species == "dog") {
-					V.onlyDogs = 1;
-				}
-			})>>
-			<<if $onlyDogs == 0>>
-				types of canines.
-			<<else>>
+			<<set $onlyDogs = $canines.every(c => c.species == "dog")>>
+			<<if $onlyDogs>>
 				breeds of dogs.
+			<<else>>
+				types of canines.
 			<</if>>
 		<<else>>
 			all kinds of canines.
@@ -378,16 +373,11 @@ $farmyardNameCaps is an oasis of growth in the midst of the jungle of steel and
 			<<print $felines>>.
 		<<elseif _FL <= 3>>
 			a couple different
-			<<set $onlyCats = 0>>
-			<<run $felines.forEach(function(c) {
-				if (c.species == "cat") {
-					V.onlyCats = 1;
-				}
-			})>>
-			<<if $onlyCats == 0>>
-				types of felines.
-			<<else>>
+			<<set $onlyCats = $felines.every(f => f.species == "cat")>>
+			<<if $onlyCats>>
 				breeds of cats.
+			<<else>>
+				types of felines.
 			<</if>>
 		<<else>>
 			all kinds of felines.
diff --git a/src/facilities/nursery/nurseryWidgets.js b/src/facilities/nursery/nurseryWidgets.js
index 135521ac624..d5056d7bb2f 100644
--- a/src/facilities/nursery/nurseryWidgets.js
+++ b/src/facilities/nursery/nurseryWidgets.js
@@ -11384,7 +11384,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 									r += `'Half Pussy & Half Cock' is tattooed on ${his} left arm, and 'All Whore' is tattooed on ${his} right. `;
 								}
 							} else if (child.boobs > 600) {
-								r += `'I didn't used to have boobs' is tattooed on ${his} left arm, and 'I didn't always take it up the ass' is tattooed on ${his} right. `;
+								r += `'I didn't use to have boobs' is tattooed on ${his} left arm, and 'I didn't always take it up the ass' is tattooed on ${his} right. `;
 							} else {
 								r += `'I promise to cum buckets' is tattooed on ${his} left arm, and 'If you fuck my butt' is tattooed on ${his} right. `;
 							}
@@ -11425,7 +11425,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 									r += `'Half Pussy & Half Cock' is tattooed on ${his} left arm, and 'All Loved' is tattooed on ${his} right. `;
 								}
 							} else if (child.boobs > 600) {
-								r += `'I didn't used to have boobs' is tattooed on ${his} left arm, and 'And now I do!' is tattooed on ${his} right. `;
+								r += `'I didn't use to have boobs' is tattooed on ${his} left arm, and 'And now I do!' is tattooed on ${his} right. `;
 							} else {
 								r += `'I promise to cum buckets' is tattooed on ${his} left arm, and 'If you treat me right' is tattooed on ${his} right. `;
 							}
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index 14ae234f85d..25656969d19 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -3207,7 +3207,7 @@ $he <<if canSee($activeSlave)>>looks up to find $himself gazing into your eyes<<
 
 <br><br>
 
-Opportunities for gallantry didn't used to fall into your lap like this, but with a harem of busy sex slaves living and working in close proximity, they're common. For $his part, $activeSlave.slaveName doesn't seem to mind acting out bad romantic comedy. $He shows no sign of getting back to $his own feet, and nuzzles $his $activeSlave.skin cheek against your
+Opportunities for gallantry didn't use to fall into your lap like this, but with a harem of busy sex slaves living and working in close proximity, they're common. For $his part, $activeSlave.slaveName doesn't seem to mind acting out bad romantic comedy. $He shows no sign of getting back to $his own feet, and nuzzles $his $activeSlave.skin cheek against your
 <<if $PC.belly >= 10000>>
 	taut middle,
 <<elseif $PC.boobs >= 300>>
diff --git a/src/uncategorized/arcologyDescription.tw b/src/uncategorized/arcologyDescription.tw
index 2ba9c7e6de3..ee83fd723f1 100644
--- a/src/uncategorized/arcologyDescription.tw
+++ b/src/uncategorized/arcologyDescription.tw
@@ -3,7 +3,7 @@
 &nbsp;&nbsp;&nbsp;&nbsp;
 __'' $arcologies[0].name''__, your arcology, is located in a Free City in <<if $terrain == "oceanic">>the middle of the ocean<<else>>$continent<</if>>. It is a huge structure whose<<if $arcologyUpgrade.apron == 1>> solar-paneled<</if>> skin gleams in the sunshine<<if $arcologyUpgrade.hydro == 1>>, while verdant exterior hydroponics bays lend it an air of growth<</if>>.
 <<if $weatherCladding == 1>>
-	Much of its beautiful exterior is now hidden behind dull panels of weather cladding<<if $arcologyUpgrade.spire == 1>>, though its highest point is capped by tall, elegant spire<</if>>.
+	Much of its beautiful exterior is now hidden behind dull panels of weather cladding<<if $arcologyUpgrade.spire == 1>>, though its highest point is capped by a tall, elegant spire<</if>>.
 <<elseif $weatherCladding == 2>>
 	The entirety of its once dull exterior has been retrofitted with breathtaking golden sheets in eye catching designs<<if $arcologyUpgrade.spire == 1>>, its highest point capped by a tall, magnificent spire<</if>>.
 <</if>>
diff --git a/src/uncategorized/managePenthouse.tw b/src/uncategorized/managePenthouse.tw
index f4b3bd5265f..90d5f98a307 100644
--- a/src/uncategorized/managePenthouse.tw
+++ b/src/uncategorized/managePenthouse.tw
@@ -383,7 +383,7 @@ __Penthouse Upgrades__
 	<<else>>
 		[[Clear out one of the floors and install equipment to construct prosthetics yourself|Manage Penthouse][cashX(forceNeg(Math.trunc(150000*$upgradeMultiplierArcology)), "capEx"), $researchLab.level = 1, $researchLab.maxSpace = 5, $PC.skill.engineering += 1]]
 		//Costs <<print cashFormat(Math.trunc(150000*$upgradeMultiplierArcology))>>//<br>
-		//Buying the equipment to construct prosthetics yourself is expensive but if you want to construct a lot prosthetics it will pay out in the long run.//
+		//Buying the equipment to construct prosthetics yourself is expensive but if you want to construct a lot of prosthetics it will pay out in the long run.//
 	<</if>>
 <</if>>
 
diff --git a/src/uncategorized/officeDescription.tw b/src/uncategorized/officeDescription.tw
index c2837819e59..557bcc2337f 100644
--- a/src/uncategorized/officeDescription.tw
+++ b/src/uncategorized/officeDescription.tw
@@ -192,7 +192,7 @@
 <<= printTrinkets()>>
 
 A small mirror resides on your desk, facing you.
-A $PC.visualAge year old<<if $PC.markings == "freckles">>, freckled<<elseif $PC.markings == "heavily freckled">>, densely freckled<</if>> $PC.faceShape face stares back at you.
+A <<if $PC.markings == "freckles">>, freckled<<elseif $PC.markings == "heavily freckled">>, densely freckled<</if>> $PC.faceShape $PC.visualAge year old face stares back at you.
 <<if ($playerAging != 0) && $PC.birthWeek == 51>>You'll be turning <<print $PC.actualAge+1>> next week.<</if>>
 <<PlayerBoobs>>
 <<PlayerBelly>>
diff --git a/src/uncategorized/ptWorkaround.tw b/src/uncategorized/ptWorkaround.tw
index 1265095261a..cf256ef7af1 100644
--- a/src/uncategorized/ptWorkaround.tw
+++ b/src/uncategorized/ptWorkaround.tw
@@ -858,7 +858,7 @@
 	<<else>>
 		$He just follows orders.
 	<</if>>
-	<br>&nbsp;&nbsp;&nbsp;&nbsp;Lastly, you place $him in a special room in your penthouse filled with live video equipment. They get to see $him groped, deepthroated, facial'd, teased, and tortured.
+	<br>&nbsp;&nbsp;&nbsp;&nbsp;Lastly, you place $him in a special room in your penthouse filled with live video equipment. They get to see $him groped, deepthroated, facialed, teased, and tortured.
 	<<if $activeSlave.fetish == "humiliation">>
 		The more viewers $he gets, the harder $he comes. $He's a slut for humiliation! Discovering this about $himself under your hands has @@.hotpink;increased $his devotion to you.@@
 		<<set $activeSlave.devotion += 4>>
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index adcb4657963..094f944661e 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -1092,6 +1092,9 @@
 					<<if $fertilityImplant == 1>>
 						[[Install fertility implants|Surgery Degradation][$activeSlave.ovaImplant = "fertility",cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), surgeryDamage($activeSlave,10),$surgeryType = "ovaImplant added"]]
 					<</if>>
+					<<if $fertilityImplant || $sympatheticOvaries>>
+						<br>
+					<</if>>
 					<<if $sympatheticOvaries == 1>>
 						[[Install sympathetic ovulation implants|Surgery Degradation][$activeSlave.ovaImplant = "sympathy",cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), surgeryDamage($activeSlave,10),$surgeryType = "ovaImplant added"]]
 					<</if>>
diff --git a/src/utility/descriptionWidgetsTattoos.tw b/src/utility/descriptionWidgetsTattoos.tw
index c90b5458b70..c772ab8cd8c 100644
--- a/src/utility/descriptionWidgetsTattoos.tw
+++ b/src/utility/descriptionWidgetsTattoos.tw
@@ -170,7 +170,7 @@
 						'Half Pussy & Half Cock' is tattooed on $his left arm, and 'All Whore' is tattooed on $his right.
 					<</if>>
 				<<elseif $activeSlave.boobs > 600>>
-					'I didn't used to have boobs' is tattooed on $his left arm, and 'I didn't always take it up the ass' is tattooed on $his right.
+					'I didn't use to have boobs' is tattooed on $his left arm, and 'I didn't always take it up the ass' is tattooed on $his right.
 				<<else>>
 					'I promise to cum buckets' is tattooed on $his left arm, and 'If you fuck my butt' is tattooed on $his right.
 				<</if>>
@@ -206,7 +206,7 @@
 						'Half Pussy & Half Cock' is tattooed on $his left arm, and 'All Loved' is tattooed on $his right.
 					<</if>>
 				<<elseif $activeSlave.boobs > 600>>
-					'I didn't used to have boobs' is tattooed on $his left arm, and 'And now I do!' is tattooed on $his right.
+					'I didn't use to have boobs' is tattooed on $his left arm, and 'And now I do!' is tattooed on $his right.
 				<<else>>
 					'I promise to cum buckets' is tattooed on $his left arm, and 'If you treat me right' is tattooed on $his right.
 				<</if>>
-- 
GitLab