From 691187f375f76d1e121b9657c66efd00180d2482 Mon Sep 17 00:00:00 2001
From: Arkerthan <arkerthan@gmail.com>
Date: Mon, 29 Jul 2019 19:42:44 +0200
Subject: [PATCH] convert limb access to use limb functions

---
 src/npc/descriptions/boobs/boobs.js      | 75 +++++++++++++++++++-----
 src/npc/descriptions/fAnus.tw            | 38 +++++++++---
 src/npc/descriptions/fAssistedSex.tw     | 18 ++++--
 src/npc/descriptions/fBellyFuck.tw       |  4 +-
 src/npc/descriptions/fBoobs.tw           | 12 ++--
 src/npc/descriptions/fButt.tw            |  6 +-
 src/npc/descriptions/fFuckdollWidgets.tw | 32 +++++-----
 src/npc/descriptions/fLips.tw            | 20 +++----
 src/npc/descriptions/fPoolSex.tw         | 24 ++++----
 src/npc/descriptions/fVagina.tw          | 22 +++----
 10 files changed, 161 insertions(+), 90 deletions(-)

diff --git a/src/npc/descriptions/boobs/boobs.js b/src/npc/descriptions/boobs/boobs.js
index 6deaacde6c9..7f0519fa4f6 100644
--- a/src/npc/descriptions/boobs/boobs.js
+++ b/src/npc/descriptions/boobs/boobs.js
@@ -489,7 +489,14 @@ App.Desc.boobs = function() {
 				}
 				break;
 			case "a chattel habit":
-				r += `${slave.slaveName}'s chattel habit's scapular covers ${his} shoulders and arms, but is open in front, leaving ${his} `;
+				r += `${slave.slaveName}'s chattel habit's scapular covers ${his} shoulders`;
+				if (hasAnyArms(slave)) {
+					r += ` and arm`;
+					if (hasBothArms(slave)) {
+						r += `s`;
+					}
+				}
+				r += `, but is open in front, leaving ${his} `;
 				if (slave.boobs > 4000) {
 					r += `${noun} completely bare. It tucks into a golden belt, though this is buried under ${his} breasts.`;
 				} else if (slave.boobs > 300) {
@@ -1292,7 +1299,7 @@ App.Desc.boobs = function() {
 		}
 
 		function walkingAbility(slave) {
-			if (slave.amp === 1) {
+			if (!hasAnyLegs(slave)) {
 				return `${he} might not be able to walk, if ${he} still had legs.`;
 			} else if (slave.muscles >= 5) {
 				return `${his} ${musclesTone(slave)} back muscles get a workout just from supporting them. If they grow any larger, ${he} may not be able to walk.`;
@@ -1348,7 +1355,7 @@ App.Desc.boobs = function() {
 			if (V.showBoobCCs) {
 				r += `, ${num(slave.boobs)} CCs each,`;
 			}
-			if (slave.amp === 1) {
+			if (isAmputee(slave)) {
 				r += ` are so immense it is safer to leave ${him} resting atop them. ${His} udders each weigh more than twice the rest of ${his} body, since ${his} body consists of nothing but ${his} head, torso, and breasts.`;
 			} else {
 				r += ` are so gargantuan that they effectively immobilize ${him}. ${He}'s most comfortable lying down.`;
@@ -1385,17 +1392,37 @@ App.Desc.boobsExtra = function(slave, pronouns) {
 	 * @returns {string}
 	 */
 	function walkingRestrictions(dairyTest) {
+		let r = '';
 		if (slave.muscles > 95) {
-			return `However, ${he} is so powerfully built that ${he} can manage it with effort, using ${his} arms to support them.`;
+			r += `However, ${he} is so powerfully built that ${he} can manage it with effort, using ${his} `;
+			if (hasBothArms(slave)) {
+				r += `arms`;
+			} else if (hasAnyArms(slave)) {
+				r += `arm`;
+			} else {
+				r += `powerful back muscles`;
+			}
+			r += ` to support them.`;
 		} else if (slave.muscles > 30) {
-			return `${He} can barely manage to get to ${his} feet unaided, and usually walks with ${his} arms crossed under ${his} tits to help take their weight.`;
+			r += `${He} can barely manage to get to ${his} feet unaided, and usually walks `;
+			if (hasAnyArms(slave)) {
+				if (hasBothArms(slave)) {
+					r += `with ${his} arms crossed under ${his} tits`;
+				} else {
+					r += `with ${his} arm placed under ${his} tits`;
+				}
+				r += ` to help take their weight.`;
+			} else {
+				r += `greatly hunched over to help take the weight of ${his} tits.`;
+			}
 		} else if (slave.muscles > 5) {
-			return `${He} requires assistance to get to ${his} feet, and uses a stand to support them when ${he} must remain upright for more than a short time.`;
+			r += `${He} requires assistance to get to ${his} feet, and uses a stand to support them when ${he} must remain upright for more than a short time.`;
 		} else if ((slave.assignment === App.Data.Facilities.dairy.jobs.cow.assignment) && (V.dairyRestraintsSetting > 1) && (dairyTest(slave))) {
-			return `The straps that secure ${him} to the milking machine have become less necessary since ${his} breasts grew to the point where they pin ${him} to it.`;
+			r += `The straps that secure ${him} to the milking machine have become less necessary since ${his} breasts grew to the point where they pin ${him} to it.`;
 		} else {
-			return `${He} cannot get to ${his} feet unaided, and uses a wheeled stand to support ${his} boobs when ${he} must walk or remain upright.`;
+			r += `${He} cannot get to ${his} feet unaided, and uses a wheeled stand to support ${his} boobs when ${he} must walk or remain upright.`;
 		}
+		return r;
 	}
 
 	/**
@@ -1540,13 +1567,18 @@ App.Desc.nipples = function(slave, pronouns) {
 						r += `in proportion with ${his} breasts: they're stiffly erect and `;
 						if ((slave.dick > 0) && (slave.dick < 3)) {
 							r += `bigger than ${his} girlcock.`;
-						} else if ((slave.height < 160) && (slave.amp !== 1)) {
-							r += `almost as large as ${his} little fists.`;
+						} else if ((slave.height < 160) && hasAnyArms(slave)) {
+							r += `almost as large as ${his} little `;
+							if (hasBothArms(slave)) {
+								r += `fists.`;
+							} else {
+								r += `fist.`;
+							}
 						} else {
-							r += 'large enough to be jerked off.';
+							r += `large enough to be jerked off.`;
 						}
 					} else {
-						r += 'enormously erect.';
+						r += `enormously erect.`;
 					}
 					break;
 				case "fuckable":
@@ -1582,13 +1614,24 @@ App.Desc.nipples = function(slave, pronouns) {
 						r += `in proportion with ${his} breasts: they've grown `;
 						if ((slave.dick > 0) && (slave.dick < 3)) {
 							r += `bigger than ${his} little girlcock.`;
-						} else if ((slave.height < 160) && (slave.amp !== 1)) {
-							r += `almost as large as ${his} little fists.`;
+						} else if ((slave.height < 160) && hasAnyArms(slave)) {
+							r += `almost as large as ${his} little `;
+							if (hasBothArms(slave)) {
+								r += `fists.`;
+							} else {
+								r += `fist.`;
+							}
 						} else {
 							r += `large enough to be jerked off.`;
 						}
+					} else if (hasAnyArms(slave)) {
+						r += `the size of the last joint of ${his} thumb`;
+						if (hasBothArms(slave)) {
+							r += `s`;
+						}
+						r += ` when erect.`;
 					} else {
-						r += `the size of the last joint of ${his} thumbs when erect.`;
+						r += `of significant size.`;
 					}
 					break;
 				case "fuckable":
@@ -1703,7 +1746,7 @@ App.Desc.areola = function(slave, pronouns) {
 						r.push(`${His} motherly boobs point downward, though, leaving only the top of each ${slave.areolaeShape} visible.`);
 					}
 				}
-			} /* else {
+			} /*else {
 				r.push(this.areolaePiercing(slave, pronouns));
 			}*/
 		}
diff --git a/src/npc/descriptions/fAnus.tw b/src/npc/descriptions/fAnus.tw
index 55b80c64e19..7359c0ae715 100644
--- a/src/npc/descriptions/fAnus.tw
+++ b/src/npc/descriptions/fAnus.tw
@@ -35,7 +35,7 @@ You call $him over so you can
 	<<if !["flats", "flats with long stockings", "flats with short stockings", "none"].includes($activeSlave.shoes)>>
 		As $he went past your desk, $his high heels and surgically altered legs enforced a gait that presented $his butt enticingly.
 	<<else>>
-		As $he crawls along on all fours, $his anus is readily available.
+		As $he crawls along on <<if hasAllLimbs($activeSlave)>>all fours<<else>>the ground<</if>>, $his anus is readily available.
 	<</if>>
 <</if>>
 
@@ -62,12 +62,17 @@ You call $him over so you can
 		$He is clearly unhappy at the idea of taking a dick up $his butt. $He obeys orders anyway, and lies there wincing and moaning as you<<if ($PC.dick == 0)>> don a strap-on and<</if>> fuck $his ass. You gently ease into $his butthole and slowly accelerate your thrusting into $his ass. However $he still squeals in pain as you continue pounding. @@.lime;$His tight little ass has been broken in,@@ and $he @@.gold;fears further anal pain.@@
 		<<set $activeSlave.trust -= 5>>
 	<<else>>
-		$He is appalled at the idea of taking it up the ass<<if ($PC.dick == 0)>> and cries with fear as you don a strap-on<</if>>. $He does anyway though, sobbing into the cushions<<if $activeSlave.amp != 1>> while you hold $his arms behind $him<</if>>. You force yourself into $his butthole and continue thrusting your member into $his ass. $He sobs and cries with disgust while you pump into $his rear. The painful anal rape @@.mediumorchid;decreases $his devotion to you.@@ @@.lime;$His tight little ass has been broken in,@@ and $he is @@.gold;terrified of further anal pain.@@
+		$He is appalled at the idea of taking it up the ass<<if ($PC.dick == 0)>> and cries with fear as you don a strap-on<</if>>. $He does anyway though, sobbing into the cushions<<if hasAnyArms($activeSlave)>> while you hold $his arm<<if hasBothArms($activeSlave)>>s<</if>> behind $him<</if>>. You force yourself into $his butthole and continue thrusting your member into $his ass. $He sobs and cries with disgust while you pump into $his rear. The painful anal rape @@.mediumorchid;decreases $his devotion to you.@@ @@.lime;$His tight little ass has been broken in,@@ and $he is @@.gold;terrified of further anal pain.@@
 		<<set $activeSlave.devotion -= 10, $activeSlave.trust -= 10>>
 	<</if>>
 	<<set $activeSlave.anus++>>
 <<elseif $activeSlave.fetish == "mindbroken">>
-	<<if ($activeSlave.amp != 1)>>You instruct $him to present $his anus. $He dully kneels and spreads $his buttocks<<if ($PC.dick == 0)>>as you don a strap-on<</if>>. You spit on $his hole and ram <<if ($PC.dick == 0)>>it<<else>>your cock<</if>> up $his butt.<<else>>Talking to a broken mind is pointless, so you simply set $him on the couch, spread $his buttocks with one hand, spit on $his hole, and ram <<if ($PC.dick == 0)>>it<<else>>your cock<</if>> up $his <<if $seeRace == 1>>$activeSlave.race <</if>>butt.<</if>> $His butthole spasms as you assrape $him, <<if ($PC.dick == 0)>>an amusing sight<<else>>squeezing your dick nicely<</if>>.
+	<<if hasAnyArms($activeSlave)>>
+		You instruct $him to present $his anus. $He dully <<if hasBothLegs($activeSlave)>>kneels<<else>>bends over<</if>> and spreads $his buttocks<<if ($PC.dick == 0)>>as you don a strap-on<</if>>. You spit on $his hole and ram <<if ($PC.dick == 0)>>it<<else>>your cock<</if>> up $his butt.
+	<<else>>
+		Talking to a broken mind is pointless, so you simply set $him on the couch, spread $his buttocks with one hand, spit on $his hole, and ram <<if ($PC.dick == 0)>>it<<else>>your cock<</if>> up $his <<if $seeRace == 1>>$activeSlave.race <</if>>butt.
+	<</if>>
+	$His butthole spasms as you assrape $him, <<if ($PC.dick == 0)>>an amusing sight<<else>>squeezing your dick nicely<</if>>.
 	<<if ($activeSlave.dick != 0) && canAchieveErection($activeSlave)>>
 		<<if $activeSlave.chastityPenis == 1>>
 			Automatic responses give $him an erection, which $his chastity makes so uncomfortable that $he spasms. This cycle continues repeatedly, $his rectum squeezing unconsciously each time.
@@ -82,7 +87,12 @@ You call $him over so you can
 		$His cock is totally flaccid throughout.
 	<</if>>
 <<elseif $activeSlave.devotion < -20>>
-	<<if ($activeSlave.amp != 1)>>You instruct $him to present $his anus<<if ($PC.dick == 0)>> as you don a strap-on<</if>>. Horrified, $he tries to back away, but you catch $him and throw $him on the couch next to your desk. $He tries to shield $his asshole, but you pin $his hands behind $him with one hand, spit on $his hole, and ram your <<if ($PC.dick == 0)>>fake dick<<else>>cock<</if>> up $his butt with the other hand.<<else>>You tell $him it's time for an assfuck. $He's horrified, but as an amputee can do nothing about it. You spit on $his hole and ram your <<if ($PC.dick == 0)>>fake dick<<else>>cock<</if>> up $his <<if $seeRace == 1>>$activeSlave.race <</if>>butt.<</if>> $His butthole spasms as you assrape $him, <<if ($PC.dick == 0)>>an amusing sight<<else>>squeezing your dick nicely<</if>>.
+	<<if !isAmputee($activeSlave)>>
+		You instruct $him to present $his anus<<if ($PC.dick == 0)>> as you don a strap-on<</if>>. Horrified, $he tries to back away, but you catch $him and throw $him on the couch next to your desk. $He tries to <<if hasAnyArms($activeSlave)>>shield $his asshole<<else>>back away<</if>>, but you pin <<if hasAnyArms($activeSlave)>>$his hand<<if hasBothArms($activeSlave)>>s<</if>> behind $him with one hand<<else>>$him down<</if>>, spit on $his hole, and ram your <<if ($PC.dick == 0)>>fake dick<<else>>cock<</if>> up $his butt with the other hand.
+	<<else>>
+		You tell $him it's time for an assfuck. $He's horrified, but as an amputee can do nothing about it. You spit on $his hole and ram your <<if ($PC.dick == 0)>>fake dick<<else>>cock<</if>> up $his <<if $seeRace == 1>>$activeSlave.race <</if>>butt.
+	<</if>>
+	$His butthole spasms as you assrape $him, <<if ($PC.dick == 0)>>an amusing sight<<else>>squeezing your dick nicely<</if>>.
 	<<if ($activeSlave.dick != 0) && canAchieveErection($activeSlave)>>
 		<<if $activeSlave.prostate == 0>>
 			$He lacks a prostate, denying $him any real pleasure from this. $His dick stays flaccid as you rape $him.
@@ -97,9 +107,19 @@ You call $him over so you can
 		$His flaccid dick is ground into the back of the couch as you rape $him.
 	<</if>>
 <<elseif ($activeSlave.devotion <= 20) && ($activeSlave.vagina < 0)>>
-	<<if ($activeSlave.amp != 1)>>You instruct $him to present $his anus<<if ($PC.dick == 0)>> as you don a strap-on<</if>>. $He knows a sissy slave takes it up the butt, and lies on the couch next to your desk with $his legs in the air, spreading $his buttocks with $his hands.<<else>>You tell $him it's time for an assfuck. $He's hesitant, but as an amputee can do nothing about it.<</if>> You take your time and fuck $his <<if $seeRace == 1>>$activeSlave.race <</if>>butthole for a good long while<<if ($activeSlave.chastityPenis != 1)>><<if ($activeSlave.dick != 0)>> so $his limp dick flops around<<elseif ($activeSlave.balls != 0)>> as $his erect dick waves in the air<</if>><</if>>. This gives you enough time to stroke $him until $he gets aroused despite $his discomfort with anal. $He doesn't orgasm, but $he's getting accustomed to $his asshole as a sexual organ.
+	<<if !isAmputee(slave)>>
+		You instruct $him to present $his anus<<if ($PC.dick == 0)>> as you don a strap-on<</if>>. $He knows a sissy slave takes it up the butt, and lies on the couch next to your desk with $his <<if !hasAnyLegs($activeSlave)>>hips<<else>>leg<<if hasBothLegs($activeSlave)>>s<</if>><</if>> in the air, spreading $his buttocks <<if !hasAnyArms($activeSlave)>>as best $he can<<else>>with $his hand<<if hasBothArms($activeSlave)>>s<</if>><</if>>.
+	<<else>>
+		You tell $him it's time for an assfuck. $He's hesitant, but as an amputee can do nothing about it.
+	<</if>>
+	You take your time and fuck $his <<if $seeRace == 1>>$activeSlave.race <</if>>butthole for a good long while<<if ($activeSlave.chastityPenis != 1)>><<if ($activeSlave.dick != 0)>> so $his limp dick flops around<<elseif ($activeSlave.balls != 0)>> as $his erect dick waves in the air<</if>><</if>>. This gives you enough time to stroke $him until $he gets aroused despite $his discomfort with anal. $He doesn't orgasm, but $he's getting accustomed to $his asshole as a sexual organ.
 <<elseif $activeSlave.devotion < 10>>
-	<<if ($activeSlave.amp != 1)>>You instruct $him to present $his <<if $seeRace == 1>>$activeSlave.race <</if>>anus<<if ($PC.dick == 0)>> as you don a strap-on<</if>>. $He hesitates but eventually lies on the couch next to your desk with $his legs in the air, spreading $his buttocks with $his hands.<<else>>You tell $him it's time for an assfuck. $He's hesitant, but as an amputee can do nothing about it.<</if>> You take your time and fuck $his butthole for a good long while.
+	<<if !isAmputee($activeSlave)>>
+		You instruct $him to present $his <<if $seeRace == 1>>$activeSlave.race <</if>>anus<<if ($PC.dick == 0)>> as you don a strap-on<</if>>. $He hesitates but eventually lies on the couch next to your desk with $his <<if !hasAnyLegs($activeSlave)>>hips<<else>>leg<<if hasBothLegs($activeSlave)>>s<</if>><</if>> in the air, spreading $his buttocks <<if !hasAnyArms($activeSlave)>>as best $he can<<else>>with $his hand<<if hasBothArms($activeSlave)>>s<</if>><</if>>.
+	<<else>>
+		You tell $him it's time for an assfuck. $He's hesitant, but as an amputee can do nothing about it.
+	<</if>>
+	You take your time and fuck $his butthole for a good long while.
 	<<if ($activeSlave.anus == 1)>>
 		$His ass is so tight that $he winces with anal pain
 	<<elseif ($activeSlave.anus == 2)>>
@@ -118,13 +138,13 @@ You call $him over so you can
 	<</if>>
 	$He gets aroused despite $his discomfort with anal, though $he doesn't orgasm.
 <<else>>
-	<<if ($activeSlave.amp != 1)>>$He kneels on the couch<<else>>You lay $him on the couch<</if>> with $his <<if $seeRace == 1>>$activeSlave.race <</if>>butt facing you, back strongly arched to angle $his rectum for more comfortable anal coupling.
-	<<if $activeSlave.amp != 1 && $activeSlave.prostate > 1 && $activeSlave.dick > 3>>
+	<<if hasAnyLegs($activeSlave)>>$He kneels on the couch<<else>>You lay $him on the couch<</if>> with $his <<if $seeRace == 1>>$activeSlave.race <</if>>butt facing you, back strongly arched to angle $his rectum for more comfortable anal coupling.
+	<<if hasAnyArms($activeSlave) && $activeSlave.prostate > 1 && $activeSlave.dick > 3>>
 		<<if $PC.dick == 0>>While you don a strap-on, $he<<else>>$He<</if>> shoves $his slavering dick down and around towards $his ass and squeezes it, pushing a lot of $his precum out to lube $his own asshole.
 	<<else>>
 		<<if $PC.dick == 0>>You don a strap-on and let some saliva fall onto its head<<else>>You let some saliva fall onto your dickhead<</if>> before penetrating $him.
 	<</if>>
-	You take your time and fuck $his butthole for a good long while. <<if ($activeSlave.anus == 1)>>$His ass is so tight that $he has to concentrate on relaxing for you.<<elseif ($activeSlave.anus == 2)>>$His experienced ass feels great.<<else>>$His asspussy is so loose you can pound it as hard as you like.<</if>> $He rubs $his <<if ($activeSlave.amp == 1)>>body against you as much as $he can manage<<elseif canAchieveErection($activeSlave)>>hard-on<<elseif ($activeSlave.dick != 0)>>soft dick<<elseif ($activeSlave.chastityVagina) || ($activeSlave.clit == 0)>>nipples<<elseif ($activeSlave.clit > 2)>>huge, stiff clit<<else>>clit<</if>>, and brings $himself to orgasm before you. <<if ($PC.dick == 0)>>The sight of $him gasping and shaking $his way through an anal orgasm brings you to climax yourself, and you shove yourself against the strap-on harness with enough force to give the slave's sensitized hole a final brutal stretching.<<else>>$His orgasmic rectal spasms squeeze your cock and you blow your load inside $his ass.<</if>>
+	You take your time and fuck $his butthole for a good long while. <<if ($activeSlave.anus == 1)>>$His ass is so tight that $he has to concentrate on relaxing for you.<<elseif ($activeSlave.anus == 2)>>$His experienced ass feels great.<<else>>$His asspussy is so loose you can pound it as hard as you like.<</if>> $He rubs $his <<if !hasAnyArms($activeSlave)>>body against you as much as $he can manage<<elseif canAchieveErection($activeSlave)>>hard-on<<elseif ($activeSlave.dick != 0)>>soft dick<<elseif ($activeSlave.chastityVagina) || ($activeSlave.clit == 0)>>nipples<<elseif ($activeSlave.clit > 2)>>huge, stiff clit<<else>>clit<</if>>, and brings $himself to orgasm before you. <<if ($PC.dick == 0)>>The sight of $him gasping and shaking $his way through an anal orgasm brings you to climax yourself, and you shove yourself against the strap-on harness with enough force to give the slave's sensitized hole a final brutal stretching.<<else>>$His orgasmic rectal spasms squeeze your cock and you blow your load inside $his ass.<</if>>
 <</if>>
 
 <<if ($activeSlave.bellyPreg >= 1500)>>
diff --git a/src/npc/descriptions/fAssistedSex.tw b/src/npc/descriptions/fAssistedSex.tw
index bbb57886470..6dbe615f0d7 100644
--- a/src/npc/descriptions/fAssistedSex.tw
+++ b/src/npc/descriptions/fAssistedSex.tw
@@ -6,29 +6,37 @@
 You order $his servants forward so that $he can tease you with $his enormously swollen body.
 <<if $activeSlave.devotion > 95>>
 	Smirking, $he leans backwards,
-	<<if $activeSlave.amp < 1>>
+	<<if hasBothArms($activeSlave)>>
 		raising $his hands above $his head
+	<<elseif hasAnyArms($activeSlave)>>
+		raising $his hand above $his head
 	<<else>>
 		with two slender arms rising upward behind $him, making it look like $he has limbs once more
 	<</if>>
 	as a gaggle of $his trained menials slide underneath $his belly, lifting the monolithic organ off the ground and setting the tightly packed orb to wobbling.
 <<elseif ($activeSlave.trust < -20) && ($activeSlave.devotion > -10)>>
 	Smiling nervously, $he leans backwards,
-	<<if $activeSlave.amp < 1>>
+	<<if hasBothArms($activeSlave)>>
 		raising $his hands above $his head
+	<<elseif hasAnyArms($activeSlave)>>
+		raising $his hand above $his head
 	<<else>>
 		with two slender arms rising upward behind $him, making it look like $he has limbs once more
 	<</if>>
 	as a gaggle of $his trained menials slide underneath $his belly, lifting the monolithic organ off the ground and setting the tightly packed orb to wobbling.
 <<else>>
-	<<if $activeSlave.amp < 1>>
-		$he covers $his eyes with $his hands,
+	<<if hasBothArms($activeSlave)>>
+		$He covers $his <<if canSee($activeSlave)>>eyes<<else>>face<</if>> with $his hands,
+	<<elseif hasAnyArms($activeSlave)>>
+		$He tries to cover $his <<if canSee($activeSlave)>>eyes<<else>>face<</if>> with $his hand,
 	<<else>>
 		Two slender arms snake around from behind $him, almost making it look like $he has limbs once more. They cover $his quivering <<if canSee($activeSlave)>>eyes<<else>>expression<</if>>
 	<</if>>
 	as a gaggle of $his trained menials slide underneath $his belly, lifting the monolithic organ off the ground and setting the tightly packed orb to wobbling.
-	<<if $activeSlave.amp < 1>>
+	<<if hasBothArms($activeSlave)>>
 		Two more servants take hold of $his arms, forcing $him to lift them above $his head.
+	<<elseif hasAnyArms($activeSlave)>>
+		Another servant takes hold of $his arm, forcing $him to lift it above $his head.
 	<<else>>
 		The hands covering $his <<if canSee($activeSlave)>>eyes<<else>>head<</if>> draw away, revealing $his crying face, then lift above $his head in a deliberately provocative pose.
 	<</if>>
diff --git a/src/npc/descriptions/fBellyFuck.tw b/src/npc/descriptions/fBellyFuck.tw
index fd4c04afbcb..fa95e1a0564 100644
--- a/src/npc/descriptions/fBellyFuck.tw
+++ b/src/npc/descriptions/fBellyFuck.tw
@@ -16,7 +16,7 @@ You have $him brought to you so that you can fuck $his hyperpregnant body.
 		massive belly,
 	<</if>>
 	and won't be a particularly able lover because of this, but enjoying $his immobility is half the point.
-<<elseif $activeSlave.amp == 1>>
+<<elseif !hasAnyLegs($activeSlave)>>
 	$He has no limbs to stand on, so $he is left resting atop $his
 	<<if $activeSlave.bellyPreg >= 1000000>>
 		impossibly exploded baby bump.
@@ -64,7 +64,7 @@ Once $he is situated in the center of your office, you walk a circle around $him
 	trace a hand over the obliterated, stretched out expanse of slightly darker flesh where $his belly button used to be.
 <</if>>
 <<if $activeSlave.devotion > 95>>
-	$He purrs in response to your touch, leaning forward against $his belly and <<if $activeSlave.amp == 1>>wiggles<<else>>lifts $his toes off the ground as $he spreads $his legs<</if>> in preparation for you.
+	$He purrs in response to your touch, leaning forward against $his belly and <<if !hasAnyLegs($activeSlave)>>wiggles<<else>>lifts $his toes off the ground as $he <<if hasBothLegs($activeSlave)>>spreads $his legs<<else>>moves $his leg<</if>><</if>> in preparation for you.
 <<elseif ($activeSlave.trust < -20) && ($activeSlave.devotion > -10)>>
 	$He groans at your touch.
 <<else>>
diff --git a/src/npc/descriptions/fBoobs.tw b/src/npc/descriptions/fBoobs.tw
index 86856b6f224..bb56f45a614 100644
--- a/src/npc/descriptions/fBoobs.tw
+++ b/src/npc/descriptions/fBoobs.tw
@@ -48,7 +48,7 @@ tits.
 	<</if>>
 <</if>>
 
-<<if ($activeSlave.nipplesPiercing > 1) && ($activeSlave.amp == 1)>>
+<<if ($activeSlave.nipplesPiercing > 1) && !hasAnyLegs($activeSlave)>>
 	You carry $him over, playing with the chain between $his nipples.
 <<elseif ($activeSlave.nipplesPiercing > 1)>>
 	You pull $him over by the chain between $his nipples.
@@ -94,7 +94,7 @@ tits.
 			$His flat chest is completely covered by your pregnancy. Reach under yourself, you feel around until you find $his nipples. You tease $his flat chest until you're at you limit, thoroughly soaking $him, before dismounting and returning to your desk.
 		<</if>>
 	<</if>>
-<<elseif ($activeSlave.amp == 1)>>
+<<elseif isAmputee($activeSlave)>>
 	<<if $PC.dick == 1>>
 		$His limbless <<if $seeRace == 1>>$activeSlave.race <</if>>torso makes $him a unique appliance for mammary intercourse. You lay $him down on the ground on $his back, lube $his cleavage, and straddle $his torso. With your cock between $his breasts, you <<if ($activeSlave.boobs >= 650)>>squash $his tits together to form a nice lubricated channel,<<else>>hold your cock in place,<</if>> and ride back and forth on $him.<<if $PC.vagina == 1>> Your pussylips rub deliciously across $his sternum.<</if>> $He has some trouble breathing under the assault, but $he manages. And for the finale, $he's totally unable to avoid a perfect cumshot.
 	<<elseif $PC.boobs != 0>>
@@ -128,7 +128,7 @@ tits.
 		You set $his nearly helpless body on the floor and then scoot your hips under the massive weight of $his tits. The heft feels nice against you, and you worm a naughty hand under there to play with yourself in the warm cave formed by your pelvis and $his udders.
 	<</if>>
 <<elseif ($activeSlave.fetish == "boobs") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1) && ($PC.dick == 1)>>
-	$He comes over hurriedly, already presenting $his breasts. $He gives you a titjob with $his lubricated cleavage while you sit at your desk, playing with $his own nipples and moaning with pleasure.<<if $PC.vagina == 1>> $He does $his best to push $his sternum hard against you, giving your pussy some stimulation, too.<</if>> As you get close to orgasm, you push $his hands away and take over,
+	$He comes over hurriedly, already presenting $his breasts. $He gives you a titjob with $his lubricated cleavage while you sit at your desk, playing with $his own nipples and moaning with pleasure.<<if $PC.vagina == 1>> $He does $his best to push $his sternum hard against you, giving your pussy some stimulation, too.<</if>> As you get close to orgasm, you push $his hand<<if hasBothArms($activeSlave)>>s<</if>> away and take over,
 	<<if $activeSlave.nipples == "fuckable">>
 		running your fingers around the lip of $his $activeSlave.nipples nipples. When you finish, you drive them in, hard,
 	<<else>>
@@ -169,12 +169,12 @@ tits.
 		desk, and you've straddled $his face before $he can do anything more. You begin to grope $his breasts and pinch $his nipples to hardness as $he eats you out, your ministrations producing moans that feel quite nice against your clit. You maul $his boobs without mercy as you reach your climax, leaving $him to massage $his breasts gingerly as you get off $him.
 	<</if>>
 <<elseif ($activeSlave.lactation > 0)>>
-	Since $he's producing milk, $he gets an emotional high from breastfeeding, and $he sits on the edge of your desk for a while so you can use $him as a beverage dispenser while you work. Once $he's empty, $he gets down to <<if ($PC.dick == 0)>>eat you out. As $he buries $his face between your legs, $he gently rolls $his sore nipples around in $his fingers, quietly moaning and whining.<<else>>give you a titjob. As you titfuck $him, $he gently rolls $his sore nipples around in $his fingers, quietly moaning and whining. Your cum covers $his <<if $seeRace == 1>>$activeSlave.race <</if>>face in no time, and $he's left with a spectacular mess to clean. $He laps it all up.<</if>>
+	Since $he's producing milk, $he gets an emotional high from breastfeeding, and $he sits on the edge of your desk for a while so you can use $him as a beverage dispenser while you work. Once $he's empty, $he gets down to <<if ($PC.dick == 0)>>eat you out.<<if hasAnyArms($activeSlave)>> As $he buries $his face between your legs, $he gently rolls $his sore nipples around in $his fingers, quietly moaning and whining.<</if>><<else>>give you a titjob.<<if hasAnyArms($activeSlave)>> As you titfuck $him, $he gently rolls $his sore nipples around in $his fingers, quietly moaning and whining.<</if>> Your cum covers $his <<if $seeRace == 1>>$activeSlave.race <</if>>face in no time, and $he's left with a spectacular mess to clean. $He laps it all up.<</if>>
 <<else>>
 	<<if $PC.dick == 1>>
 		$He massages and toys with $his chest for your benefit, languidly rubbing lubricant over not only $his cleavage but $his entire chest, making sure every <<if $showInches == 2>>inch<<else>>centimeter<</if>> of $his $activeSlave.skin breasts are nice and shiny. $He gives you a titjob with $his lubricated cleavage while you sit at your desk<<if $PC.vagina == 1>>, doing $his best to run $his hard nipples between your pussylips whenever $he can<</if>>. Your cum covers $his <<if $seeRace == 1>>$activeSlave.race <</if>>face, and $he carefully licks it all off while continuing to play with $his erect nipples.
 	<<elseif $PC.boobs != 0>>
-		$He rubs lube over $his $activeSlave.skin breasts, flirting with you and sticking out $his chest, before lying down on the couch. You lie down atop $him with your breasts meshing with $hers and begin to slide up and down, titillating your nipples wonderfully. You find $his mouth quite willing to receive your insistent tongue, and while you make out, $he slips a hand down between your legs to give you a handjob, too.
+		$He rubs lube over $his $activeSlave.skin breasts, flirting with you and sticking out $his chest, before lying down on the couch. You lie down atop $him with your breasts meshing with $hers and begin to slide up and down, titillating your nipples wonderfully. You find $his mouth quite willing to receive your insistent tongue<<if hasAnyArms($activeSlave)>>, and while you make out, $he slips <<if hasBothArms($activeSlave)>>a<<else>>$his<</if>> hand down between your legs to give you a handjob, too<</if>>.
 	<<else>>
 		$He flirts with you and sticks out $his chest before lying down on the couch. You've straddled $his face before $he can do anything more, and $he begins to eat you out with enthusiasm. You begin to grope $his breasts and pinch $his nipples to hardness as $he gives you oral, your ministrations producing moans that feel quite nice against your clit. You maul $his boobs without mercy as you reach your climax, but $he loves it all.
 	<</if>>
@@ -199,7 +199,7 @@ tits.
 	<<= induceLactation($activeSlave)>>
 <</if>>
 
-<<if ($activeSlave.amp != 1)>>
+<<if hasAnyLegs($activeSlave)>>
 	<<switch $activeSlave.assignment>>
 	<<case "work in the dairy">>
 		$He goes off to carefully wash $his <<if $activeSlave.boobs > 1500>>acre of cleavage<<elseif $activeSlave.boobs > 500>>generous cleavage<<else>>chest<</if>> to keep production in $dairyName nice and sanitary.
diff --git a/src/npc/descriptions/fButt.tw b/src/npc/descriptions/fButt.tw
index 47d81b0fea8..a11c1f158c2 100644
--- a/src/npc/descriptions/fButt.tw
+++ b/src/npc/descriptions/fButt.tw
@@ -93,13 +93,13 @@ You call $him over so you can
 	<<elseif ($activeSlave.devotion >= -20)>>
 		$He is clearly unhappy at the idea of taking a dick up $his butt. $He obeys orders anyway, and lies there wincing and moaning as you<<if ($PC.dick == 0)>> don a strap-on and<</if>> fuck $his ass. @@.lime;$His tight little ass has been broken in,@@ and $he @@.gold;fears further anal pain.@@
 	<<else>>
-		$He is appalled at the idea of taking it up the ass<<if ($PC.dick == 0)>> and cries with fear as you don a strap-on<</if>>. $He does anyway though, sobbing into the cushions<<if $activeSlave.amp != 1>> while you hold $his arms behind $him<</if>>. You force yourself into $his butthole. $He sobs and cries with disgust while you continue thrusting into $his ass. The painful anal rape @@.mediumorchid;decreases $his devotion to you.@@ @@.lime;$His tight little ass has been broken in,@@ and $he is @@.gold;terrified of further anal pain.@@
+		$He is appalled at the idea of taking it up the ass<<if ($PC.dick == 0)>> and cries with fear as you don a strap-on<</if>>. $He does anyway though, sobbing into the cushions<<if hasAnyArms($activeSlave)>> while you hold $his arm<<if hasBothArms($activeSlave)>>s<</if>> behind $him<</if>>. You force yourself into $his butthole. $He sobs and cries with disgust while you continue thrusting into $his ass. The painful anal rape @@.mediumorchid;decreases $his devotion to you.@@ @@.lime;$His tight little ass has been broken in,@@ and $he is @@.gold;terrified of further anal pain.@@
 		<<set $activeSlave.devotion -= 5>>
 	<</if>>
 	<<set $activeSlave.anus++>>
 	<<= VCheck.Anal()>>
 <<elseif $activeSlave.devotion < -20>>
-	<<if ($PC.dick == 0)>>You don a cruelly large strap-on, and you do it so $he can <<if canSee($activeSlave)>>see<<elseif canHear($activeSlave)>>hear<<else>>notice<</if>> it. <</if>>$He tries to refuse you, so you throw $him across the back of the couch next to your desk with $his <<if $seeRace == 1>>$activeSlave.race <</if>>ass in the air. You finger $his anus <<if ($activeSlave.vagina != -1)>>while fucking $his pussy<<elseif ($activeSlave.amp != 1)>>while frotting $his thighs<</if>> for a bit and then switch to $his now-ready anus. $He sobs as you penetrate $his rectum.
+	<<if ($PC.dick == 0)>>You don a cruelly large strap-on, and you do it so $he can <<if canSee($activeSlave)>>see<<elseif canHear($activeSlave)>>hear<<else>>notice<</if>> it. <</if>>$He tries to refuse you, so you throw $him across the back of the couch next to your desk with $his <<if $seeRace == 1>>$activeSlave.race <</if>>ass in the air. You finger $his anus<<if ($activeSlave.vagina != -1)>> while fucking $his pussy<<elseif hasBothLegs($activeSlave)>> while frotting $his thighs<</if>> for a bit and then switch to $his now-ready anus. $He sobs as you penetrate $his rectum.
 	<<if ($activeSlave.dick != 0) && canAchieveErection($activeSlave)>>
 		<<if $activeSlave.prostate == 0>>
 			$He lacks a prostate, denying $him any real pleasure. $His dick stays flaccid as you rape $him.
@@ -127,7 +127,7 @@ You call $him over so you can
 	<</if>>
 	<<= VCheck.Both()>>
 <<else>>
-	<<if ($activeSlave.amp != 1)>>$He kneels on the floor<<else>>You lay $him on the floor<</if>> so you can take $him at will<<if ($PC.dick == 0)>>, and don a strap-on<</if>>. You finger $his <<if $seeRace == 1>>$activeSlave.race <</if>>ass while
+	<<if hasAnyLegs($activeSlave)>>$He kneels on the floor<<else>>You lay $him on the floor<</if>> so you can take $him at will<<if ($PC.dick == 0)>>, and don a strap-on<</if>>. You finger $his <<if $seeRace == 1>>$activeSlave.race <</if>>ass while
 	<<if canDoVaginal($activeSlave)>>
 		fucking $his pussy
 	<<else>>
diff --git a/src/npc/descriptions/fFuckdollWidgets.tw b/src/npc/descriptions/fFuckdollWidgets.tw
index 79c857dafef..4e667c48a8b 100644
--- a/src/npc/descriptions/fFuckdollWidgets.tw
+++ b/src/npc/descriptions/fFuckdollWidgets.tw
@@ -6,11 +6,11 @@
 <<run clearSummaryCache($activeSlave)>>
 You decide to use the Fuckdoll's <<if $activeSlave.lips > 95>>facepussy<<else>>face hole<</if>>.
 <<if $activeSlave.fuckdoll <= 10>>
-	Since $he is not well adapted to life as a living sex toy yet, $he won't respond to position commands. So, you simply <<if $activeSlave.amp == 0>>shove $him into a kneeling position<<else>>set $him on the couch<</if>> and straddle $his face.
+	Since $he is not well adapted to life as a living sex toy yet, $he won't respond to position commands. So, you simply <<if hasBothLegs($activeSlave)>>shove $him into a kneeling position<<else>>set $him on the couch<</if>> and straddle $his face.
 <<elseif $activeSlave.fuckdoll <= 80>>
-	$He can follow intermediate commands, so you order $him into a position for use of $his face hole. $He obediently <<if $activeSlave.amp == 0>>gets to $his knees<<else>>cranes $his neck up<</if>> and sticks $his tongue out as far as it will go, wiggling it invitingly. You straddle $his face.
+	$He can follow intermediate commands, so you order $him into a position for use of $his face hole. $He obediently <<if hasBothLegs($activeSlave)>>gets to $his knees<<else>>cranes $his neck up<</if>> and sticks $his tongue out as far as it will go, wiggling it invitingly. You straddle $his face.
 <<else>>
-	$He can follow advanced commands, so you order $him into a position for use of $his face hole. $He instantly <<if $activeSlave.amp == 0>><<if $PC.dick == 1>>bends at the waist and turns $his head upward, placing $his throat horizontally and at waist height.<<else>>gets to $his knees and turns $his head upward at just the right angle for a pussy to ride $his face hole.<</if>><<else>>cranes $his neck up and sticks $his tongue out as far as it will go, wiggling it invitingly.<</if>> You straddle $his face.
+	$He can follow advanced commands, so you order $him into a position for use of $his face hole. $He instantly <<if hasAnyLegs($activeSlave)>><<if $PC.dick == 1>>bends at the waist and turns $his head upward, placing $his throat horizontally and at waist height.<<else>>gets to $his knees and turns $his head upward at just the right angle for a pussy to ride $his face hole.<</if>><<else>>cranes $his neck up and sticks $his tongue out as far as it will go, wiggling it invitingly.<</if>> You straddle $his face.
 <</if>>
 <<if $activeSlave.fuckdoll <= 20>>
 	$He's not fully used to being surprised with face rape, so $he struggles, and $his difficulty breathing <<if $PC.dick == 1>>makes $his throat spasm around your dickhead<<else>>feels lovely on your cunt<</if>>.
@@ -24,7 +24,7 @@ You decide to use the Fuckdoll's <<if $activeSlave.lips > 95>>facepussy<<else>>f
 <<else>>
 	$He's so perfectly tuned that $he begins to orgasm from nothing more than oral stimulation, and $he continues to shiver with repeated orgasms as $he sucks.
 <</if>>
-You climax, <<if $PC.dick == 1>>blowing your load down $his throat<<else>>giving $him a good amount of femcum to swallow<</if>>, and return $him to <<if $activeSlave.amp == 0>>a standing position<<else>>where $he was resting<</if>>.
+You climax, <<if $PC.dick == 1>>blowing your load down $his throat<<else>>giving $him a good amount of femcum to swallow<</if>>, and return $him to <<if hasAnyLegs($activeSlave)>>a standing position<<else>>where $he was resting<</if>>.
 <<if $PC.dick == 1>>
 	<<if $activeSlave.lips > 95>>$He gives sloppy blowjobs, $his lips being too big for much control, and strings of your cum beribbon $his suit. The Fuckdoll will be cleaned by another slave.
 	<<else>>$He swallows repeatedly as $he returns to $his resting posture.
@@ -43,11 +43,11 @@ You climax, <<if $PC.dick == 1>>blowing your load down $his throat<<else>>giving
 <<run clearSummaryCache($activeSlave)>>
 You decide to use the Fuckdoll's <<if $activeSlave.vagina > 3>>cavernous<<elseif $activeSlave.vagina == 3>>soft<<elseif $activeSlave.vagina == 2>>inviting<<elseif $activeSlave.vagina == 1>>tight<</if>> front hole.
 <<if $activeSlave.fuckdoll <= 10>>
-	Since $he is not well adapted to life as a living sex toy yet, $he won't respond to position commands. So, you simply <<if $activeSlave.amp == 0>>push $him down to lie on the couch<<else>>set $him on your desk<</if>> and shove <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>> inside $his vagina.
+	Since $he is not well adapted to life as a living sex toy yet, $he won't respond to position commands. So, you simply <<if hasAnyLegs($activeSlave)>>push $him down to lie on the couch<<else>>set $him on your desk<</if>> and shove <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>> inside $his vagina.
 <<elseif $activeSlave.fuckdoll <= 70>>
-	$He can follow intermediate commands, so you order $him into a position for use of $his front hole. $He obediently <<if $activeSlave.amp == 0>>gets down on all fours and <</if>>cocks $his hips, offering $his cunt until you insert <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>> into $his wet channel.
+	$He can follow intermediate commands, so you order $him into a position for use of $his front hole. $He obediently <<if hasAllLimbs($activeSlave)>>gets down on all fours and <<elseif hasAnyLegs($activeSlave)>>bends over and <</if>>cocks $his hips, offering $his cunt until you insert <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>> into $his wet channel.
 <<else>>
-	$He can follow advanced commands, so you bring $him over to your chair <<if $activeSlave.amp == 0>>and order $him to squat down onto your <<if $PC.dick == 1>>cock<<else>>strap-on<</if>> and ride.<<else>>and impale $him on <<if $PC.dick == 1>>your cock<<else>>your strap-on<</if>>, ordering $him to do $his feeble best to bounce.<</if>>
+	$He can follow advanced commands, so you bring $him over to your chair <<if hasAnyLegs($activeSlave)>>and order $him to squat down onto your <<if $PC.dick == 1>>cock<<else>>strap-on<</if>> and ride.<<else>>and impale $him on <<if $PC.dick == 1>>your cock<<else>>your strap-on<</if>>, ordering $him to do $his feeble best to bounce.<</if>>
 <</if>>
 <<if $activeSlave.fuckdoll <= 20>>
 	$He's not fully used to being raped without warning, so $he struggles, $his muscles spasming delightfully.
@@ -66,7 +66,7 @@ You decide to use the Fuckdoll's <<if $activeSlave.vagina > 3>>cavernous<<elseif
 <<else>>
 	$He moans, <<if $activeSlave.lips > 95>>and the lips of $his facepussy quiver<<else>>struggling to force the sound past $his mouth insert<</if>>.
 <</if>>
-You climax<<if $PC.dick == 1>>, your cum shooting forward to splash against $his womb,<</if>> and return $him to <<if $activeSlave.amp == 0>>a standing position<<else>>where $he was resting<</if>>.
+You climax<<if $PC.dick == 1>>, your cum shooting forward to splash against $his womb,<</if>> and return $him to <<if hasAnyLegs($activeSlave)>>a standing position<<else>>where $he was resting<</if>>.
 <<if $PC.dick == 1>>
 	<<if $activeSlave.vagina > 2>>Your cum flows out of $his gaping front hole and down the material of $his suit.
 	<<elseif $activeSlave.vagina == 2>>Your cum drips out of $his well-fucked front hole and down the material of $his suit.
@@ -106,11 +106,11 @@ You climax<<if $PC.dick == 1>>, your cum shooting forward to splash against $his
 
 You decide to use the Fuckdoll's fertile womb to grow a child.
 <<if $activeSlave.fuckdoll <= 10>>
-	Since $he is not well adapted to life as a living sex toy yet, $he won't respond to position commands. So, you simply <<if $activeSlave.amp == 0>>push $him down to lie on the couch<<else>>set $him on your desk<</if>> and shove <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>> inside $his <<if $activeSlave.mpreg == 1>>asshole<<else>>vagina<</if>>.
+	Since $he is not well adapted to life as a living sex toy yet, $he won't respond to position commands. So, you simply <<if hasAnyLegs($activeSlave)>>push $him down to lie on the couch<<else>>set $him on your desk<</if>> and shove <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>> inside $his <<if $activeSlave.mpreg == 1>>asshole<<else>>vagina<</if>>.
 <<elseif $activeSlave.fuckdoll <= 70>>
-	$He can follow intermediate commands, so you order $him into a position for use of $his <<if $activeSlave.mpreg == 1>>rear<<else>>front<</if>> hole. $He obediently <<if $activeSlave.amp == 0>>gets down on all fours and <</if>>cocks $his hips, offering $his <<if $activeSlave.mpreg == 1>>asspussy<<else>>cunt<</if>> until you insert your cock into $his <<if $activeSlave.mpreg == 1>>winking<<else>>wet<</if>> channel.
+	$He can follow intermediate commands, so you order $him into a position for use of $his <<if $activeSlave.mpreg == 1>>rear<<else>>front<</if>> hole. $He obediently <<if hasAllLimbs($activeSlave)>>gets down on all fours and <</if>>cocks $his hips, offering $his <<if $activeSlave.mpreg == 1>>asspussy<<else>>cunt<</if>> until you insert your cock into $his <<if $activeSlave.mpreg == 1>>winking<<else>>wet<</if>> channel.
 <<else>>
-	$He can follow advanced commands, so you bring $him over to your chair <<if $activeSlave.amp == 0>>and order $him to squat down onto your cock and ride.<<else>>and impale $him on your cock, ordering $him to do $his feeble best to bounce.<</if>>
+	$He can follow advanced commands, so you bring $him over to your chair <<if hasAnyLegs($activeSlave)>>and order $him to squat down onto your cock and ride.<<else>>and impale $him on your cock, ordering $him to do $his feeble best to bounce.<</if>>
 <</if>>
 <<if $activeSlave.fuckdoll <= 20>>
 	$He's not fully used to being raped without warning, so $he struggles, $his muscles spasming delightfully.
@@ -129,7 +129,7 @@ You decide to use the Fuckdoll's fertile womb to grow a child.
 <<else>>
 	$He moans, <<if $activeSlave.lips > 95>>and the lips of $his facepussy quiver<<else>>struggling to force the sound past $his mouth insert<</if>>.
 <</if>>
-You climax, your cum shooting forward to splash against $his womb, and return $he to <<if $activeSlave.amp == 0>>a standing position<<else>>where $he was resting<</if>> to allow your seed to find $his mark.
+You climax, your cum shooting forward to splash against $his womb, and return $he to <<if hasAnyLegs($activeSlave)>>a standing position<<else>>where $he was resting<</if>> to allow your seed to find $his mark.
 <<if $activeSlave.mpreg == 1>>
 	<<if $activeSlave.anus > 2>>Your cum flows out of $his gaping rear hole and down the material of $his suit.
 	<<elseif $activeSlave.anus == 2>>Your cum drips out of $his well-fucked rear hole and down the material of $his suit.
@@ -186,11 +186,11 @@ You repeat this ritual throughout the week, ensuring that $he will be an @@.lime
 <<run clearSummaryCache($activeSlave)>>
 You decide to use the Fuckdoll's <<if $activeSlave.anus > 3>>gaping<<elseif $activeSlave.anus == 3>>loose<<elseif $activeSlave.anus == 2>>relaxed<<elseif $activeSlave.anus == 1>>tight<</if>> rear hole.
 <<if $activeSlave.fuckdoll <= 10>>
-	Since $he is not well adapted to life as a living sex toy yet, $he won't respond to position commands. So, you simply <<if $activeSlave.amp == 0>>walk over to $him<<else>>flip $him over<</if>> and ram <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>> up $his rear hole.
+	Since $he is not well adapted to life as a living sex toy yet, $he won't respond to position commands. So, you simply <<if hasAnyLegs($activeSlave)>>walk over to $him<<else>>flip $him over<</if>> and ram <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>> up $his rear hole.
 <<elseif $activeSlave.fuckdoll <= 80>>
-	$He can follow intermediate commands, so you order $him to present $his rear hole. $He obediently <<if $activeSlave.amp == 0>>bends over, arches $his back, and<<else>>flips over and<</if>> winks $his anus until you insert <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>>.
+	$He can follow intermediate commands, so you order $him to present $his rear hole. $He obediently <<if hasAnyLegs($activeSlave)>>bends over, arches $his back, and<<else>>flips over and<</if>> winks $his anus until you insert <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>>.
 <<else>>
-	$He can follow advanced commands, so you bring $him over to your chair <<if $activeSlave.amp == 0>>and order $him to squat down onto your <<if $PC.dick == 1>>cock<<else>>strap-on<</if>> and slide $his anus up and down <<if $PC.dick == 1>>your<<else>>the<</if>> shaft.<<else>>and impale $him on <<if $PC.dick == 1>>your cock<<else>>your strap-on<</if>>, ordering $him to do $his feeble best to bounce.<</if>>
+	$He can follow advanced commands, so you bring $him over to your chair <<if hasAnyLegs($activeSlave)>>and order $him to squat down onto your <<if $PC.dick == 1>>cock<<else>>strap-on<</if>> and slide $his anus up and down <<if $PC.dick == 1>>your<<else>>the<</if>> shaft.<<else>>and impale $him on <<if $PC.dick == 1>>your cock<<else>>your strap-on<</if>>, ordering $him to do $his feeble best to bounce.<</if>>
 <</if>>
 <<if $activeSlave.fuckdoll <= 20>>
 	$He's not fully used to having things suddenly forced up $his ass, so $he struggles, and $his sphincter spasms deliciously.
@@ -209,7 +209,7 @@ You decide to use the Fuckdoll's <<if $activeSlave.anus > 3>>gaping<<elseif $act
 <<else>>
 	$He moans, <<if $activeSlave.lips > 95>>and the lips of $his facepussy quiver<<else>>struggling to force the sound past $his mouth insert<</if>>.
 <</if>>
-You climax<<if $PC.dick == 1>>, filling $his rectum with your cum,<</if>> and return $him to <<if $activeSlave.amp == 0>>a standing position<<else>>where $he was resting<</if>>.
+You climax<<if $PC.dick == 1>>, filling $his rectum with your cum,<</if>> and return $him to <<if hasAnyLegs($activeSlave)>>a standing position<<else>>where $he was resting<</if>>.
 <<if $PC.dick == 1>>
 	<<if $activeSlave.anus > 2>>Your cum flows out of $his gaped rear hole and down the material of $his suit.
 	<<elseif $activeSlave.anus == 2>>Your cum drips out of $his loosened rear hole and down the material of $his suit.
diff --git a/src/npc/descriptions/fLips.tw b/src/npc/descriptions/fLips.tw
index 4cc6cba7f0e..475c6082959 100644
--- a/src/npc/descriptions/fLips.tw
+++ b/src/npc/descriptions/fLips.tw
@@ -28,21 +28,21 @@ You tell $activeSlave.slaveName to
 
 <<switch $activeSlave.collar>>
 <<case "dildo gag">>
-	<<if ($activeSlave.amp != 1)>>
+	<<if hasAnyArms($activeSlave)>>
 		$He removes the dildo from $his throat, leaving the ring gag in place.
 	<<else>>
 		As an amputee, $he requires your assistance to get the dildo out of $his throat.
 	<</if>>
 	Able to breathe through $his mouth for the first time in a while, $he gasps gratefully, knowing the respite will be brief.
 <<case "massive dildo gag">>
-	<<if ($activeSlave.amp != 1)>>
+	<<if hasAnyArms($activeSlave)>>
 		$He struggles to remove the dildo from $his throat, leaving $his mouth agape.
 	<<else>>
 		As an amputee, $he requires your assistance to get the dildo out of $his throat.
 	<</if>>
 	Able to breathe through $his mouth for the first time in a while, $he gasps gratefully, knowing the respite will be brief.
 <<case "ball gag" "bit gag">>
-	<<if ($activeSlave.amp != 1)>>
+	<<if hasAnyArms($activeSlave)>>
 		$He unfastens $his gag and pulls it from $his mouth.
 	<<else>>
 		As an amputee, $he requires your assistance to get the gag unfastened.
@@ -72,7 +72,7 @@ You tell $activeSlave.slaveName to
 	<</if>>
 <</if>>
 
-<<if ($activeSlave.amp == 1)>>
+<<if isAmputee($activeSlave)>>
 	You set $his limbless torso on the
 	<<if ($PC.dick != 0)>>
 		edge of your desk with $him on $his back. $His head dangles off the edge of the desk, leaving $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth at the perfect angle for use. As an amputee $he has absolutely no control over the depth or quickness of oral sex, so you are careful not to hurt $him. Even so, you take $him to the edge of gagging, enjoying the sight of $his $activeSlave.skin throat bulging. Eventually you shoot your load directly down $his gullet.
@@ -116,18 +116,18 @@ You tell $activeSlave.slaveName to
 <<elseif ($activeSlave.fetish == "cumslut") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1) && ($activeSlave.dick != 0) && ($PC.dick != 0)>>
 	$He comes over eagerly, with hunger <<if canSee($activeSlave)>>in $his eyes<<else>>on $his face<</if>>. $He gets to $his knees, hurriedly takes you into $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth, and gives the blowjob $his all. As a cumslut $he's almost desperate to get your cum into $his mouth and <<if ($activeSlave.chastityPenis == 1)>>(since $his cock is off limits) frantically rubs $his nipples and asspussy<<elseif canAchieveErection($activeSlave)>>jacks $himself off<<else>>rubs $his sadly limp member<</if>> in anticipation.<<if $PC.vagina == 1>> You have more than one variety of deliciousness for $him, and $he's careful not to neglect your wet cunt.<</if>> When you finish, $he sits back with an ecstatic look on $his face and lets your cum rest in $his mouth as $he climaxes into $his $activeSlave.skin hand. $He pours $his own cum from $his hand into $his mouth so it can mingle with yours.
 <<elseif ($activeSlave.fetish == "cumslut") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1) && ($PC.dick != 0)>>
-	$He comes over eagerly, with hunger <<if canSee($activeSlave)>>in $his eyes<<else>>on $his face<</if>>. $He gets to $his knees, hurriedly takes you into $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth, and gives the blowjob $his all. As a cumslut $he's almost desperate to get your cum into $his mouth and rubs $himself in anticipation.<<if $PC.vagina == 1>> You have more than one variety of deliciousness for $him, and $he's careful not to neglect your wet cunt.<</if>> When you finish, $he sits back with an ecstatic look on $his face and lets your cum rest in $his mouth as $he climaxes.
+	$He comes over eagerly, with hunger <<if canSee($activeSlave)>>in $his eyes<<else>>on $his face<</if>>. $He gets to <<if hasAnyLegs($activeSlave)>>$his knee<<if hasBothLegs($activeSlave)>>s<</if>><<else>>the ground<</if>>, hurriedly takes you into $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth, and gives the blowjob $his all. As a cumslut $he's almost desperate to get your cum into $his mouth and rubs $himself in anticipation.<<if $PC.vagina == 1>> You have more than one variety of deliciousness for $him, and $he's careful not to neglect your wet cunt.<</if>> When you finish, $he sits back with an ecstatic look on $his face and lets your cum rest in $his mouth as $he climaxes.
 <<elseif $activeSlave.devotion < -20>>
 	$He tries to back away, so you
 	<<if ($PC.dick != 0)>>
 		<<if $activeSlave.collar == "dildo gag">>
-			grab $him; $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth is already held invitingly open by $his gag, and $he's prevented from biting. You push $him down to $his knees with $his head against the couch next to your desk so you can give $him a good hard throat fuck. When you cum down $his $activeSlave.skin throat $he retches through $his tears.
+			grab $him; $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth is already held invitingly open by $his gag, and $he's prevented from biting. You push $him down to <<if hasAnyLegs($activeSlave)>>$his knee<<if hasBothLegs($activeSlave)>>s<</if>><<else>>the ground<</if>> with $his head against the couch next to your desk so you can give $him a good hard throat fuck. When you cum down $his $activeSlave.skin throat $he retches through $his tears.
 			<<if $PC.vagina == 1>>$He has a mere moment to get $his breath back before you press your pussy against $his unwilling mouth.<</if>>
 		<<elseif $activeSlave.collar == "massive dildo gag">>
-			grab $him; $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth is left agape, unable to close after being forced so widely open for so long, so $he is unlikely to bite. You push $him down to $his knees with $his head against the couch next to your desk so you can give $him a good hard throat fuck. When you cum down $his $activeSlave.skin throat $he retches through $his tears.
+			grab $him; $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth is left agape, unable to close after being forced so widely open for so long, so $he is unlikely to bite. You push $him down to <<if hasAnyLegs($activeSlave)>>$his knee<<if hasBothLegs($activeSlave)>>s<</if>><<else>>the ground<</if>> with $his head against the couch next to your desk so you can give $him a good hard throat fuck. When you cum down $his $activeSlave.skin throat $he retches through $his tears.
 			<<if $PC.vagina == 1>>$He has a mere moment to get $his breath back before you press your pussy against $his unwilling mouth.<</if>>
 		<<else>>
-			grab $him and force a ring gag into $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth. Once you have the straps secured behind $his head, $he's prevented from biting. You push $him down to $his knees with $his head against the couch next to your desk so you can give $him a good hard throat fuck. When you cum down $his $activeSlave.skin throat $he retches through $his tears.
+			grab $him and force a ring gag into $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth. Once you have the straps secured behind $his head, $he's prevented from biting. You push $him down to <<if hasAnyLegs($activeSlave)>>$his knee<<if hasBothLegs($activeSlave)>>s<</if>><<else>>the ground<</if>> with $his head against the couch next to your desk so you can give $him a good hard throat fuck. When you cum down $his $activeSlave.skin throat $he retches through $his tears.
 			<<if $PC.vagina == 1>>$He has a mere moment to get $his breath back before you press your pussy against $his unwilling mouth.<</if>>
 		<</if>>
 	<<else>>
@@ -138,14 +138,14 @@ You tell $activeSlave.slaveName to
 	<<if ($PC.dick != 0)>>
 		give you a blowjob. Deciding that $he isn't showing the necessary enthusiasm, you hold $his head and fuck $his <<if $seeRace == 1>>$activeSlave.race <</if>>face instead<<if $PC.vagina == 1>>, occasionally jerking your dick free to shove your pussy against $his face instead<</if>>. $He does $his best to follow your motions but still splutters and gags. You pull free to cum across $his $activeSlave.skin face and hair.
 	<<else>>
-		eat you out. Deciding that $he isn't showing the necessary enthusiasm, you hold $his head and grind your pussy against $his <<if $seeRace == 1>>$activeSlave.race <</if>>face instead. $He does $his best to follow your motions but still splutters and gasps for air. You climax quickly and haul $him to $his feet, kissing the bewildered $girl full on the mouth. You can taste yourself on $his lips.
+		eat you out. Deciding that $he isn't showing the necessary enthusiasm, you hold $his head and grind your pussy against $his <<if $seeRace == 1>>$activeSlave.race <</if>>face instead. $He does $his best to follow your motions but still splutters and gasps for air. You climax quickly and haul $him <<if hasBothLegs($activeSlave)>>to $his feet<<else>>upright<</if>>, kissing the bewildered $girl full on the mouth. You can taste yourself on $his lips.
 	<</if>>
 <<else>>
 	$He licks $his lips <<if canSee($activeSlave)>>and looks you in the eyes <</if>>as $he gets to $his knees. $He
 	<<if ($PC.dick != 0)>>
 		gives you a long, deep blowjob. $He massages your balls<<if $PC.vagina == 1>> and pussy<</if>> with one hand and $his breasts with the other, giving you a show. $He sucks your head until you climax, letting your cock pop free of $his mouth to shoot pearly cum all across $his $activeSlave.skin face.
 	<<else>>
-		eats you out like $he's starving, moaning into your pussy to show off $his arousal and add to your pleasure. $He massages your perineum with one hand and $his breasts with the other, giving you a show. $He slowly concentrates more and more attention on your clit until you climax convulsively. You pull $him to $his feet, kissing the compliant $girl full on the mouth. You can taste yourself on $his lips.
+		eats you out like $he's starving, moaning into your pussy to show off $his arousal and add to your pleasure. $He massages your perineum with one hand and $his breasts with the other, giving you a show. $He slowly concentrates more and more attention on your clit until you climax convulsively. You pull $him <<if hasBothLegs($activeSlave)>>to $his feet<<else>>upright<</if>>, kissing the compliant $girl full on the mouth. You can taste yourself on $his lips.
 	<</if>>
 <</if>>
 
diff --git a/src/npc/descriptions/fPoolSex.tw b/src/npc/descriptions/fPoolSex.tw
index 1b8bf3d9332..edbb4b5515d 100644
--- a/src/npc/descriptions/fPoolSex.tw
+++ b/src/npc/descriptions/fPoolSex.tw
@@ -5,8 +5,8 @@
 
 You order $him to meet you in the spa for some quality time in the penthouse's rejuvenating gelatin pool. When you get there, $he's already in $his bathing attire, reclined at the side of the pool farthest from you with $his massive $activeSlave.skin stomach hanging over the edge and half sunk in the thick, steaming ooze, flushed and sweaty.
 <<if $activeSlave.devotion > 95>>
-	<<if $activeSlave.amp < 1>>
-		$He's resting $his head on one arm, but $he gives you a little wave with the other before setting it to rubbing the flank of one
+	<<if !isAmputee($activeSlave)>>
+		$He's resting $his head on one arm, but $he gives you a little wave <<if missingArms != 0>>anyway<<else>>with the other<</if>> before setting it to rubbing the flank of one
 		<<if $activeSlave.boobs >= 20000>>
 			massively overgrown tit
 		<<elseif Math.floor($activeSlave.boobsImplant/$activeSlave.boobs) >= .60>>
@@ -23,14 +23,14 @@ You order $him to meet you in the spa for some quality time in the penthouse's r
 	<<if canSee($activeSlave)>>watches<<else>>waits patiently as<</if>> you strip down and change into your swimming outfit. When it's clear that you're ready to join $him, $he motions at the pool's holographic console and coos in delight as its mobility assistance devices kick in, rolling $him into the curative gel. You sink yourself into the pool, taking a moment to bask in the feeling of the warm, curative laced goo as it relaxes your muscles<<if $PC.preg > 30>> and soothes your stretched skin<</if>>, then wade toward your waiting slave.
 	<br><br>
 	$He smiles and beckons you toward $him, rubbing circles in the exploded sides of $his colossal belly, then gasps as you take a handful of the ooze and shove it right in $his face. $He sputters indignantly and then
-	<<if $activeSlave.amp < 1>>
+	<<if hasAnyArms($activeSlave)>>
 		scoops up a handful $himself, flinging it at you. The two of you spend several minutes goo fighting before, eventually, you decide that your
 	<<else>>
 		wobbles back and forth, ineffectually trying to fight back as you cover $him in thick wads of gel, over and over. After several minutes of this, you decide that your
 	<</if>>
 	<<if $PC.dick == 1>>
 		solid, quivering erection is in need of $his tender care. <<if canSee($activeSlave)>>Seeing<<else>>Sensing<</if>> the change in your demeanor, $he rolls back to recline at the pool's edge and, once you've joined $him,
-		<<if $activeSlave.amp < 1>>
+		<<if hasAnyArms($activeSlave)>>
 			reaches down to masturbate your ooze lubricated dick.
 		<<else>>
 			rolls forward and reaches down to tease your cockhead with $his mouth<<if $activeSlave.boobs > 600>> and tits<</if>>.
@@ -51,7 +51,7 @@ You order $him to meet you in the spa for some quality time in the penthouse's r
 		<<if canDoVaginal($activeSlave)>><<= VCheck.Vaginal()>><<else>><<= VCheck.Anal()>><</if>>
 	<<else>>
 		ooze stimulated quim is in need of $his tender care. Seeing the change in your demeanor, $he rolls back to recline at the pool's edge and, once you've joined $him,
-		<<if $activeSlave.amp < 1>>
+		<<if hasAnyArms($activeSlave)>>
 			reaches down to masturbate your pussy, squeezing and rubbing your clit.
 		<<else>>
 			rolls sideways and rubs your vulva as best $he can.
@@ -64,7 +64,7 @@ You order $him to meet you in the spa for some quality time in the penthouse's r
 		<</if>>
 	<</if>>
 <<elseif ($activeSlave.trust < -20) && ($activeSlave.devotion > -10)>>
-	<<if $activeSlave.amp < 1>>
+	<<if hasAnyArms($activeSlave)>>
 		$He's resting $his head on one arm, but $he nods at you in acknowledgment as
 	<<else>>
 		$He's resting on a small pile of pillows, enjoying the sensations against the flanks of $his colossal belly. $He nods as you enter, not stopping $his rubbing, and <<if canSee($activeSlave)>>watches<<else>>waits patiently as<</if>>
@@ -72,14 +72,14 @@ You order $him to meet you in the spa for some quality time in the penthouse's r
 	you strip down and change into your swimming outfit. When it's clear that you're ready to join $him, $he motions at the pool's holographic console and its mobility assistance devices kick in, rolling $him into the curative gel. You sink yourself into the pool, taking a moment to bask in the feeling of the warm, curative laced goo as it relaxes your muscles<<if $PC.preg > 30>> and soothes your stretched skin<</if>>, then wade toward your waiting slave.
 	<br><br>
 	$He smiles politely, rubbing circles in the exploded sides of $his colossal belly, then gasps as you take a handful of the ooze and shove it right in $his face. $He sputters indignantly and then
-	<<if $activeSlave.amp < 1>>
+	<<if hasAnyArms($activeSlave)>>
 		scoops up a handful $himself, flinging it at you. The two of you spend several minutes goo fighting before, eventually, you decide that your
 	<<else>>
 		wobbles back and forth, ineffectually trying to fight back as you cover $him in thick wads of gel, over and over. After several minutes of this, you decide that your
 	<</if>>
 	<<if $PC.dick == 1>>
 		solid, quivering erection is in need of $his tender care. <<if canSee($activeSlave)>>Seeing<<else>>Sensing<</if>> the change in your demeanor, $he rolls back to recline at the pool's edge and, once you've joined $him,
-		<<if $activeSlave.amp < 1>>
+		<<if hasAnyArms($activeSlave)>>
 			reaches down to masturbate your ooze lubricated dick.
 		<<else>>
 			rolls forward and reaches down to tease your cockhead with $his mouth<<if $activeSlave.boobs > 600>> and tits<</if>>.
@@ -100,7 +100,7 @@ You order $him to meet you in the spa for some quality time in the penthouse's r
 		<<if canDoVaginal($activeSlave)>><<= VCheck.Vaginal()>><<else>><<= VCheck.Anal()>><</if>>
 	<<else>>
 		ooze stimulated quim is in need of $his tender care. Seeing the change in your demeanor, $he rolls back to recline at the pool's edge and, once you've joined $him,
-		<<if $activeSlave.amp < 1>>
+		<<if hasAnyArms($activeSlave)>>
 			reaches down to masturbate your pussy, squeezing and rubbing your clit.
 		<<else>>
 			rolls sideways and rubs your vulva as best $he can.
@@ -113,7 +113,7 @@ You order $him to meet you in the spa for some quality time in the penthouse's r
 		<</if>>
 	<</if>>
 <<else>>
-	<<if $activeSlave.amp < 1>>
+	<<if hasAnyArms($activeSlave)>>
 		$He's resting $his head on one arm, but $he starts as you enter, watching tensely as
 	<<else>>
 		$He's resting on a small pile of pillows, savoring the sensations against the flanks of $his colossal belly and
@@ -133,7 +133,7 @@ You order $him to meet you in the spa for some quality time in the penthouse's r
 	$He smiles politely, rubbing circles in the exploded sides of $his colossal belly, then cries out in surprise as you take a handful of the ooze and shove it right in $his face. $He sputters, blushing, and wobbles back and forth, clearly trying not to react as you cover $him in thick wads of gel, over and over. After several minutes of this, you decide that your
 	<<if $PC.dick == 1>>
 		solid, quivering erection is in need of $his tender care. You force $him back into a reclining position at the pool's edge and order $him to
-		<<if $activeSlave.amp < 1>>
+		<<if hasAnyArms($activeSlave)>>
 			masturbate your ooze lubricated dick.
 		<<else>>
 			tease your cockhead with $his mouth.
@@ -154,7 +154,7 @@ You order $him to meet you in the spa for some quality time in the penthouse's r
 		<<if canDoVaginal($activeSlave)>><<= VCheck.Vaginal()>><<else>><<= VCheck.Anal()>><</if>>
 	<<else>>
 		ooze stimulated quim is in need of $his tender care. You force $him back to recline at the pool's edge and, once you've joined $him,
-		<<if $activeSlave.amp < 1>>
+		<<if hasAnyArms($activeSlave)>>
 			set $him to masturbating your pussy, squeezing and rubbing your clit.
 		<<else>>
 			set $him to rubbing your vulva with $his belly button.
diff --git a/src/npc/descriptions/fVagina.tw b/src/npc/descriptions/fVagina.tw
index 6b8187b1f9a..7cc4016bd14 100644
--- a/src/npc/descriptions/fVagina.tw
+++ b/src/npc/descriptions/fVagina.tw
@@ -125,7 +125,7 @@ You call $him over so you can
 			A position that will be awkward with the combined size of your rounded middles.
 		<</if>>
 	<<elseif (_fPosition <= 60)>>
-		doggy-style. You tell $him to get on the couch beside your desk on $his hands and knees.
+		doggy-style. You tell $him to get on the couch beside your desk on $his <<if hasAnyArms($activeSlave)>>hand<<if hasBothArms($activeSlave)>>s<</if>> and <</if>>knees.
 		<<if $activeSlave.bellyPreg >= 600000>>
 			As $he struggles to fit on the couch, you tell $him to just lean over $his immense pregnancy instead.
 		<<elseif $activeSlave.belly >= 600000>>
@@ -179,7 +179,7 @@ You call $him over so you can
 	<<set $activeSlave.vagina++>>
 <<elseif ($activeSlave.fetish == "mindbroken")>>
 	Since $his mind is gone, $he's yours to use as a human sex doll. You throw $him over the couch and amuse yourself with $him for a while; $his body retains its instinctual responses, at least. You finish inside $him and leave your toy for one of your other slaves to clean and maintain.
-<<elseif ($activeSlave.amp == 1)>>
+<<elseif isAmputee($activeSlave)>>
 	Since $he's a quadruple amputee, $he's yours to use as a human sex toy. You set $him
 	<<if ($PC.dick != 0)>>
 		<<if $activeSlave.belly >= 300000>>
@@ -270,7 +270,7 @@ You call $him over so you can
 		<<elseif $activeSlave.belly >= 300000>>
 			$He does $his best to not suffocate you with $his massive belly or knock you out with it as you thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> into $him. You get a face full of implant with each downward motion;
 		<<else>>
-			$He puts $his hands on your chest and leans forward as you continue to thrust <<if _fSpeed > 75>>hard<<elseif _fSpeed > 50>>vigorously<<elseif _fSpeed > 25>>steadily<<else>>tenderly<</if>> upwards;
+			$He <<if hasAnyArms($activeSlave)>>puts $his hand<<if hasBothArms($activeSlave)>>s<</if>> on your chest and <</if>>leans forward as you continue to thrust <<if _fSpeed > 75>>hard<<elseif _fSpeed > 50>>vigorously<<elseif _fSpeed > 25>>steadily<<else>>tenderly<</if>> upwards;
 		<</if>>
 	<<elseif (_fPosition <= 60)>> /* doggy-style */
 		<<if $activeSlave.bellyPreg >= 300000>>
@@ -282,11 +282,11 @@ You call $him over so you can
 		<</if>>
 	<<elseif (_fPosition <= 80)>> /* reverse cowgirl */
 		<<if $activeSlave.bellyPreg >= 300000>>
-			You may have to spread your legs extra wide to accommodate $his impressive baby bump, but the angle and pressure it puts on you feels amazing. $He puts $his hands on your chest and starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards, in return you caress $his distended sides;
+			You may have to spread your legs extra wide to accommodate $his impressive baby bump, but the angle and pressure it puts on you feels amazing. $He <<if hasAnyArms($activeSlave)>>puts $his hand<<if hasBothArms($activeSlave)>>s<</if>> on your chest and <</if>>starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards, in return you caress $his distended sides;
 		<<elseif $activeSlave.belly >= 300000>>
-			You may have to spread your legs extra wide to accommodate $his impressive belly, but the angle and pressure it puts on you feels amazing. $He puts $his hands on your chest and starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards, in return you caress $his distended sides;
+			You may have to spread your legs extra wide to accommodate $his impressive belly, but the angle and pressure it puts on you feels amazing. $He <<if hasAnyArms($activeSlave)>>puts $his hand<<if hasBothArms($activeSlave)>>s<</if>> on your chest and <</if>>starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards, in return you caress $his distended sides;
 		<<else>>
-			$He puts $his hands on your chest and starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards;
+			$He <<if hasAnyArms($activeSlave)>>puts $his hand<<if hasBothArms($activeSlave)>>s<</if>> on your chest and <</if>>starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards;
 		<</if>>
 	<<else>> /* wheelbarrow */
 		<<if $activeSlave.belly >= 600000>>
@@ -342,7 +342,7 @@ You call $him over so you can
 	<</if>>
 <<elseif $activeSlave.devotion <= 20>>
 	<<if ($PC.dick != 0)>>
-		$He obeys, lying on the couch next to your desk with $his legs spread. You kneel on the ground and enter $him, a hand on each of $his legs to give you a good grip. <<if _fSpeed > 75>>The pounding is hard and fast<<elseif _fSpeed > 50>>You pound $him firmly and vigorously<<elseif _fSpeed > 25>>You fuck $him steadily and controlled<<else>>You fuck $him slowly and tenderly<</if>>, and $he gasps and <<if _fSpeed > 50>>whines<<else>>moans<</if>>. You reach a hand down to maul $his breasts.
+		$He obeys, lying on the couch next to your desk<<if hasAnyLegs($activeSlave)>> with $his leg<<if hasBothLegs($activeSlave)>>s spread<<else>> moved aside<</if>><</if>>. You kneel on the ground and enter $him<<if hasAnyLegs($activeSlave)>>, a hand on <<if hasBothLegs($activeSlave)>>each of $his legs<<else>>$his leg<</if>> to give you a good grip<</if>>. <<if _fSpeed > 75>>The pounding is hard and fast<<elseif _fSpeed > 50>>You pound $him firmly and vigorously<<elseif _fSpeed > 25>>You fuck $him steadily and controlled<<else>>You fuck $him slowly and tenderly<</if>>, and $he gasps and <<if _fSpeed > 50>>whines<<else>>moans<</if>>. You reach a hand down to maul $his breasts.
 		<<if ($activeSlave.dick != 0) && canAchieveErection($activeSlave)>>
 			<<if ($activeSlave.chastityPenis == 1)>>
 				$He enjoys $himself, even though $his dick chastity keeps $him soft by making the beginnings of erection very uncomfortable.
@@ -420,7 +420,7 @@ You call $him over so you can
 			<<elseif $activeSlave.belly >= 300000>>
 				$He does $his best to not suffocate you with $his massive belly or knock you out with it as you thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> into $him. You get a face full of implant with each downward motion;
 			<<else>>
-				$He puts $his hands on your chest and leans forward as you continue to thrust <<if _fSpeed > 75>>hard<<elseif _fSpeed > 50>>vigorously<<elseif _fSpeed > 25>>steadily<<else>>tenderly<</if>> upwards;
+				$He <<if hasAnyArms($activeSlave)>>puts $his hand<<if hasBothArms($activeSlave)>>s<</if>> on your chest and <</if>>leans forward as you continue to thrust <<if _fSpeed > 75>>hard<<elseif _fSpeed > 50>>vigorously<<elseif _fSpeed > 25>>steadily<<else>>tenderly<</if>> upwards;
 			<</if>>
 		<<elseif (_fPosition <= 60)>> /* doggy-style */
 			<<if $activeSlave.bellyPreg >= 300000>>
@@ -432,11 +432,11 @@ You call $him over so you can
 			<</if>>
 		<<elseif (_fPosition <= 80)>> /* reverse cowgirl */
 			<<if $activeSlave.bellyPreg >= 300000>>
-				You may have to spread your legs extra wide to accommodate $his impressive baby bump, but the angle and pressure it puts on you feels amazing. $He puts $his hands on your chest and starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards, in return you caress $his distended sides;
+				You may have to spread your legs extra wide to accommodate $his impressive baby bump, but the angle and pressure it puts on you feels amazing. $He <<if hasAnyArms($activeSlave)>>puts $his hand<<if hasBothArms($activeSlave)>>s<</if>> on your chest and <</if>>starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards, in return you caress $his distended sides;
 			<<elseif $activeSlave.belly >= 300000>>
-				You may have to spread your legs extra wide to accommodate $his impressive belly, but the angle and pressure it puts on you feels amazing. $He puts $his hands on your chest and starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards, in return you caress $his distended sides;
+				You may have to spread your legs extra wide to accommodate $his impressive belly, but the angle and pressure it puts on you feels amazing. $He <<if hasAnyArms($activeSlave)>>puts $his hand<<if hasBothArms($activeSlave)>>s<</if>> on your chest and <</if>>starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards, in return you caress $his distended sides;
 			<<else>>
-				$He puts $his hands on your chest and starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards;
+				$He <<if hasAnyArms($activeSlave)>>puts $his hand<<if hasBothArms($activeSlave)>>s<</if>> on your chest and <</if>>starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards;
 			<</if>>
 		<<else>> /* wheelbarrow */
 			<<if $activeSlave.belly >= 600000>>
-- 
GitLab