From 4e22335a92e8845cbd55d38f1093c06f059b1cb5 Mon Sep 17 00:00:00 2001
From: klorpa <30924131+klorpa@users.noreply.github.com>
Date: Sun, 6 Oct 2019 13:48:01 -0500
Subject: [PATCH] LimbWork

---
 src/interaction/main/walkPast.js          | 9 ++++-----
 src/js/eventSelectionJS.js                | 4 ++--
 src/js/generateMarketSlave.js             | 2 +-
 src/js/vignettes.js                       | 4 ++--
 src/npc/fRelation.tw                      | 2 +-
 src/npc/fRival.tw                         | 6 +++---
 src/pregmod/beastFuck.tw                  | 2 +-
 src/uncategorized/bodyModification.tw     | 2 +-
 src/uncategorized/reShelterInspection.tw  | 2 +-
 src/uncategorized/reStandardPunishment.tw | 2 +-
 src/uncategorized/remoteSurgery.tw        | 2 +-
 src/uncategorized/saDiet.tw               | 2 +-
 src/uncategorized/slaveInteract.tw        | 2 +-
 13 files changed, 20 insertions(+), 21 deletions(-)

diff --git a/src/interaction/main/walkPast.js b/src/interaction/main/walkPast.js
index cbc238bb473..1e58313f340 100644
--- a/src/interaction/main/walkPast.js
+++ b/src/interaction/main/walkPast.js
@@ -322,9 +322,9 @@ window.walkPast = (function() {
 								t += `${name} has ${his} cock between ${partnerName}'s legs and is enjoying an enthusiastic thigh job.`;
 							} else if (partnerSlave.vagina === 0) {
 								t += `${name} has ${his} cock between ${partnerName}'s labia and is enthusiastically teasing ${his} virgin lover.`;
-							} else if (fuckSeed > 90 && hasAllLimbs(partnerSlave)) {
+							} else if (fuckSeed > 90 && hasBothLegs(partnerSlave)) {
 								t += `${name} has ${partnerName} on ${his2} knees and is enthusiastically fucking ${his2} pussy doggy style.`;
-							} else if (fuckSeed > 80 && hasBothLegs(activeSlave)) {
+							} else if (fuckSeed > 80 && hasAnyArms(activeSlave)) {
 								t += `${name} has ${partnerName} pushed against the wall and is fucking ${his2} pussy from behind.`;
 							} else if (fuckSeed > 70) {
 								t += `${partnerName} has ${name} on ${his} back and is enthusiastically bouncing on ${his} dick.`;
@@ -336,9 +336,9 @@ window.walkPast = (function() {
 						} else if (canDoAnal(partnerSlave)) {
 							if (partnerSlave.anus === 0) {
 								t += `${name} has ${his} cock sandwiched between ${partnerName}'s buttcheeks and is enthusiastically hotdogging ${his2} rear.`;
-							} else if (fuckSeed > 90 && hasAllLimbs(partnerSlave)) {
+							} else if (fuckSeed > 90 && hasBothLegs(partnerSlave)) {
 								t += `${name} has ${partnerName} on ${his2} knees and is enthusiastically fucking ${his2} ass doggy style.`;
-							} else if (fuckSeed > 80 && hasBothLegs(activeSlave)) {
+							} else if (fuckSeed > 80 && hasAnyArms(activeSlave)) {
 								t += `${name} has ${partnerName} pushed against the wall and is fucking ${his2} ass from behind.`;
 							} else if (fuckSeed > 70) {
 								t += `${partnerName} has ${name} on ${his} back and is enthusiastically bouncing on ${his} dick.`;
@@ -2675,7 +2675,6 @@ window.walkPast = (function() {
 					t += `behind.`;
 				}
 				break;
-
 			case "a hijab and abaya":
 			case "a niqab and abaya":
 				t += `${His} abaya totally conceals ${his} `;
diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js
index a0ed57b6376..fba0c0fcb05 100644
--- a/src/js/eventSelectionJS.js
+++ b/src/js/eventSelectionJS.js
@@ -1553,7 +1553,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 
 		if (eventSlave.aphrodisiacs > 1 || eventSlave.inflationType === "aphrodisiac") {
 			if (eventSlave.speechRules === "restrictive" && eventSlave.releaseRules !== "permissive") {
-				if (hasBothLegs(eventSlave)) {
+				if (hasAnyArms(eventSlave)) {
 					State.variables.RESSevent.push("extreme aphrodisiacs");
 				}
 			}
@@ -2752,7 +2752,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 
 		if (eventSlave.aphrodisiacs > 1 || eventSlave.inflationType === "aphrodisiac") {
 			if (eventSlave.speechRules === "restrictive" && eventSlave.releaseRules !== "permissive") {
-				if (hasBothLegs(eventSlave)) {
+				if (hasAnyArms(eventSlave)) {
 					State.variables.RESSevent.push("extreme aphrodisiacs");
 				}
 			}
diff --git a/src/js/generateMarketSlave.js b/src/js/generateMarketSlave.js
index 3f5e918f097..2cec348afab 100644
--- a/src/js/generateMarketSlave.js
+++ b/src/js/generateMarketSlave.js
@@ -734,7 +734,7 @@ window.generateMarketSlave = function(market = "kidnappers", numArcology = 1) {
 			}
 			if (V.arcologies[market].FSBodyPurist > 80) {
 				r += `They're quite pristine, free of any genomic damage or addictions regardless of any transformations they've had. `;
-				// clean out any changes those filthy impure degredationsts may have made
+				// clean out any changes those filthy impure degradationsts may have made
 				V.activeSlave.brand = {};
 				V.activeSlave.scar = {};
 				V.activeSlave.chem = 0;
diff --git a/src/js/vignettes.js b/src/js/vignettes.js
index b4d5e1a5b7e..9efc3a189ff 100644
--- a/src/js/vignettes.js
+++ b/src/js/vignettes.js
@@ -1665,7 +1665,7 @@ window.GetVignette = function GetVignette(slave) {
 			}
 		}
 		if (V.arcologies[0].FSPhysicalIdealist !== "unset") {
-			if (slave.muscles <= 95) {
+			if (slave.muscles <= 95 && hasAnyArms(slave)) {
 				vignettes.push({
 					text: `${he} lost a customer who could barely believe that ${he} wasn't capable of holding ${himself} in a handstand,`,
 					type: "cash",
@@ -3633,7 +3633,7 @@ window.GetVignette = function GetVignette(slave) {
 			}
 		}
 		if (V.arcologies[0].FSPhysicalIdealist !== "unset") {
-			if (slave.muscles <= 95) {
+			if (slave.muscles <= 95 && hasAnyArms(slave)) {
 				vignettes.push({
 					text: `${he} disappointed a citizen who could barely believe that ${he} wasn't capable of holding ${himself} in a handstand,`,
 					type: "rep",
diff --git a/src/npc/fRelation.tw b/src/npc/fRelation.tw
index 07d1583a000..06ae8946a5e 100644
--- a/src/npc/fRelation.tw
+++ b/src/npc/fRelation.tw
@@ -63,7 +63,7 @@ You call both $activeSlave.slaveName and $slaves[$partner].slaveName to your off
 	$activeSlave.slaveName is a lot more ready and willing for this than $slaves[$partner].slaveName, so<<if ($PC.dick == 0)>>while getting into a strap-on,<</if>> you sit $him on the couch and make $slaves[$partner].slaveName sit on $his lap, facing $him. In this position, $activeSlave.slaveName can reach around and spread $his _partnerRel's <<if $seeRace == 1>>$slaves[$partner].race <</if>>buttocks for _him2, controlling _him2 all the while in case _he2 has hesitations about this. $slaves[$partner].slaveName knows that _he2's trapped, and lets _his2 _activeSlaveRel hold _his2 ass wide so you can use _him2. They're face to face, and it's not hard to tell that $slaves[$partner].slaveName is glaring daggers at $activeSlave.slaveName. You reward $activeSlave.slaveName for $his obedience and punish $slaves[$partner].slaveName for _his2 resistance by forcing _him2 to suck $activeSlave.slaveName off while you finish using $slaves[$partner].slaveName.
 	<<set $activeSlave.counter.oral++, $slaves[$partner].counter.oral++, $oralTotal++>>
 	<<= VCheck.Partner()>>
-<<elseif canWalk($activeSlave) && canWalk($slaves[$partner]) && ($activeSlave.devotion > 50) && ($slaves[$partner].devotion > 20) && (_activeSlaveRel == "mother" || _activeSlaveRel == "father")>>
+<<elseif canWalk($activeSlave) && canWalk($slaves[$partner]) && ($activeSlave.devotion > 50) && ($slaves[$partner].devotion > 20) && (hasAnyArms($activeSlave)) && (_activeSlaveRel == "mother" || _activeSlaveRel == "father")>>
 	$activeSlave.slaveName gives you a little smile when $he <<if canHear($activeSlave)>>hears<<else>>learns<</if>> you wish to fuck $him and $his _daughter2 $slaves[$partner].slaveName<<if ($PC.dick == 0)>> and <<if canSee($activeSlave)>>sees<<else>>acknowledges<</if>> your strap-on<</if>>. On your direction, $activeSlave.slaveName sits on the couch. When $slaves[$partner].slaveName enters, _his2 _activeSlaveRel spreads $his arms and tells _him2 to sit on $his lap. $slaves[$partner].slaveName gets the idea and straddles $him so they're face to face. You take $slaves[$partner].slaveName from behind; _he2 gasps as _he2 feels _his2 _activeSlaveRel's hand<<if (hasBothArms(_activeSlaveRel))>>s<</if>> stimulate _him2 from the front. They make out shamelessly while you take your pleasure. When you finish, $activeSlave.slaveName lies down on the couch so $slaves[$partner].slaveName can ride $his <<if $seeRace == 1>>$activeSlave.race <</if>>face. As $he sucks the cum out of $his _daughter2's sopping fuckhole, $slaves[$partner].slaveName sucks you hard again. In the mood for something harder this time, you jam yourself into the older $activeSlave.slaveName. $slaves[$partner].slaveName gets off $activeSlave.slaveName's face so _he2 can offer _himself2 for fondling and groping while you pound $activeSlave.slaveName. After you're done, $slaves[$partner].slaveName returns _his2 _activeSlaveRel's affection and gives $him some gentle oral as the older slave lies there exhausted.
 	<<set $activeSlave.counter.oral += 2, $slaves[$partner].counter.oral += 2, $oralTotal += 2>>
 	<<= VCheck.Both()>>
diff --git a/src/npc/fRival.tw b/src/npc/fRival.tw
index 4e64115a9db..bd137878b15 100644
--- a/src/npc/fRival.tw
+++ b/src/npc/fRival.tw
@@ -17,10 +17,10 @@ $slaves[$partner].slaveName <<if canSee($slaves[$partner])>>sees<<else>>senses<<
 <<if ($slaves[$partner].anus == 0) && ($slaves[$partner].vagina < 0)>>
 	Since _he2's a sissy bitch and an anal virgin, you tell _him2 to bend over and <<if ($PC.dick == 0)>>give you head<<else>>suck your dick<</if>>. _He2 does, and once _he2's working away, you tell $activeSlave.slaveName to come over and start spanking. $slaves[$partner].slaveName begins to lift _his2 head as though to protest, so you shove _him2 back down onto your <<if ($PC.dick == 0)>>pussy<<else>>cock<</if>>, gagging and struggling. $activeSlave.slaveName administers a series of cruel slaps to the quivering <<if $seeRace == 1>>$slaves[$partner].race <</if>>buttocks in front of $him, making your victim yell delightfully into your <<if ($PC.dick == 0)>>womanhood<<else>>member<</if>>. After a short time $activeSlave.slaveName decides to be even crueler, and begins to 'miss' frequently, hitting $slaves[$partner].slaveName's limp dick instead of _his2 ass.
 	<<set $slaves[$partner].counter.oral++, $oralTotal++>>
-<<elseif ($slaves[$partner].anus == 0) && ($slaves[$partner].vagina == 0)>>
+<<elseif ($slaves[$partner].anus == 0) && ($slaves[$partner].vagina == 0) && (hasAnyArms($activeSlave))>>
 	Since _he2's a virgin, you tell _him2 to bend over and <<if ($PC.dick == 0)>>give you head<<else>>suck your dick<</if>>. _He2 does, and once _he2's working away, you tell $activeSlave.slaveName to come over and start spanking. $slaves[$partner].slaveName begins to lift _his2 head as though to protest, so you shove _him2 back down onto your <<if ($PC.dick == 0)>>pussy<<else>>cock<</if>>, gagging and struggling. $activeSlave.slaveName administers a series of cruel slaps to the quivering <<if $seeRace == 1>>$slaves[$partner].race <</if>>buttocks in front of $him, making your victim yell delightfully into your <<if ($PC.dick == 0)>>womanhood<<else>>member<</if>>. After a short time $activeSlave.slaveName decides to be even crueler, and begins to 'miss' frequently, hitting $slaves[$partner].slaveName's poor pussy instead of _his2 ass.
 	<<set $slaves[$partner].counter.oral++, $oralTotal++>>
-<<elseif ($slaves[$partner].anus == 0) && ($slaves[$partner].vagina > 0) && canPenetrate($activeSlave)>>
+<<elseif ($slaves[$partner].anus == 0) && ($slaves[$partner].vagina > 0) && canPenetrate($activeSlave) && (hasAnyArms($activeSlave))>>
 	You tell _him2 to bend over and <<if ($PC.dick == 0)>>give you head<<else>>suck your dick<</if>>. _He2 does, and once _he2's working away, you tell $activeSlave.slaveName to use the bitch. $slaves[$partner].slaveName begins to lift _his2 head as though to protest, so you shove _him2 back down onto your <<if ($PC.dick == 0)>>pussy<<else>>cock<</if>>, gagging and struggling. $activeSlave.slaveName lands a slap on the <<if $seeRace == 1>>$slaves[$partner].race <</if>>butt in front of $him as $he lines $his turgid dick up with $slaves[$partner].slaveName's pussy. $He sinks in with a sigh and begins to enjoy $himself, using slaps and pinches to ensure that of the two slaves, the fun is entirely on $his side.
 	<<set $slaves[$partner].counter.vaginal++, $slaves[$partner].counter.oral++, $activeSlave.counter.penetrative++, $vaginalTotal++, $oralTotal++, $penetrativeTotal++>>
 <<elseif ($slaves[$partner].anus == 0) && ($slaves[$partner].vagina > 0) && ($activeSlave.dick > 0)>>
@@ -44,7 +44,7 @@ $slaves[$partner].slaveName <<if canSee($slaves[$partner])>>sees<<else>>senses<<
 <<elseif ($slaves[$partner].anus > 0) && ($slaves[$partner].vagina > 0) && canPenetrate($activeSlave)>>
 	You <<if ($PC.dick == 0)>>step into a strap-on and tell _him2 to ride it<<else>>tell _him2 to ride your dick<</if>>, facing you. _He2 does, with some trepidation, which increases when you reach behind _him2 and spread _his2 buttocks as wide as they'll go. With _him2 pinned, you tell $activeSlave.slaveName to come over and join you. $activeSlave.slaveName comes over, stroking $himself hard. You squeeze $slaves[$partner].slaveName's buttocks together and then spread them again, forcing _his2 anus to wink invitingly. You stop $slaves[$partner].slaveName's abortive humping and hold _his2 hips in place while $activeSlave.slaveName gets $his cock up $his ass. Once $he's set, off the two of you go, with poor $slaves[$partner].slaveName gasping and grimacing as _he2 gets it rough in both holes.
 	<<set $slaves[$partner].counter.vaginal++, $slaves[$partner].counter.anal++, $activeSlave.counter.penetrative++, $vaginalTotal++, $analTotal++, $penetrativeTotal++>>
-<<elseif ($slaves[$partner].anus > 0) && ($slaves[$partner].vagina > 0) && ($activeSlave.dick > 0)>>
+<<elseif ($slaves[$partner].anus > 0) && ($slaves[$partner].vagina > 0) && ($activeSlave.dick > 0) && (hasAnyArms($activeSlave))>>
 	You <<if ($PC.dick == 0)>>step into a strap-on and tell _him2 to ride it<<else>>tell _him2 to ride your dick<</if>>, facing you. _He2 does, with some trepidation, which increases when you reach behind _him2 and spread _his2 buttocks as wide as they'll go. With _him2 pinned, you tell $activeSlave.slaveName to come over and join you. $activeSlave.slaveName comes over, stroking $himself hard, not certain what you mean, since $his cock is useless. To make it clear, you push two fingers into $slaves[$partner].slaveName's butt, finger fucking _his2 asshole until $activeSlave.slaveName takes over. Once $he's set, off the two of you go, with poor $slaves[$partner].slaveName gasping and grimacing as _he2 gets it rough in both holes. $activeSlave.slaveName uses as many fingers as $he can, always at least one more than $slaves[$partner].slaveName would like.
 	<<set $slaves[$partner].counter.vaginal++, $slaves[$partner].counter.anal++, $activeSlave.counter.penetrative++, $vaginalTotal++, $analTotal++, $penetrativeTotal++>>
 <<elseif ($slaves[$partner].anus > 0) && ($slaves[$partner].vagina > 0)>>
diff --git a/src/pregmod/beastFuck.tw b/src/pregmod/beastFuck.tw
index 72bc18fa73a..c52d85310c2 100644
--- a/src/pregmod/beastFuck.tw
+++ b/src/pregmod/beastFuck.tw
@@ -111,7 +111,7 @@
 	$activeSlave.slaveName nods $his head dumbly, $his eyes vacant<<if !canSee($activeSlave)>> as always<</if>>.
 <</if>>
 
-<<if canWalk($activeSlave)>>
+<<if hasAnyLegs($activeSlave)>>
 	<<if $activeSlave.devotion > -20>>
 		<<if ($activeSlave.devotion <= 20) && ($activeSlave.fetish != "mindbroken") && ($activeSlave.fetish != "masochistic") && ($activeSlave.fetish != "humiliation") && ($activeSlave.sexualQuirk != "perverted") && ($activeSlave.behavioralQuirk != "sinful")>>and only the threat of worse punishment prevents $him from <<if canWalk($activeSlave)>>running<<else>>trying to run<</if>> out of the room.<</if>> You have $him <<if ($activeSlave.clothes != "no clothing")>>take off $his clothing and <</if>>kneel down on the floor with $his ass in the air,
 	<<else>>
diff --git a/src/uncategorized/bodyModification.tw b/src/uncategorized/bodyModification.tw
index d89a4ceca3b..c7d75c617f5 100644
--- a/src/uncategorized/bodyModification.tw
+++ b/src/uncategorized/bodyModification.tw
@@ -65,7 +65,7 @@
 					Your goal wasn't to make the distinct shape of a brand, but rather to permanently mar the $activeSlave.skin skin of $his $scarTarget.local with an open flame.
 				<<case "surgical">>
 					<<if $PC.medicine >= 100>>
-						Your medical mastery is perfect, so creating such a scar was a deliberate act of degredation.
+						Your medical mastery is perfect, so creating such a scar was a deliberate act of degradation.
 					<<elseif $PC.medicine > 0>>
 						Your medical skills are progressing, and the sloppy scar reminds you of your earliest attempts.
 					<<else>>
diff --git a/src/uncategorized/reShelterInspection.tw b/src/uncategorized/reShelterInspection.tw
index 408020101f6..0ef82aa21a2 100644
--- a/src/uncategorized/reShelterInspection.tw
+++ b/src/uncategorized/reShelterInspection.tw
@@ -197,7 +197,7 @@ Not waiting to be greeted, the inspector looks up at the nearest camera and dema
 		You have _him2 ushered up to your office, and order _Inspectee.slaveName brought in.
 		<br><br>
 		/*
-		<<if _Inspectee.amp == 1 && _originSlave.amp != 1>>
+		<<if isAmputee(_Inspectee) && !isAmputee(_originSlave)>>
 			You may have lopped off the poor $girl's arms and legs, a fact not lost on the inspector. _He2 can barely conceal _his2 terror as _he2 makes lengthy notes on _his2 tablet before practically running out of the penthouse.
 			<<set $shelterAbuse += 10>>
 		<<elseif _Inspectee.fetish == "mindbroken">>
diff --git a/src/uncategorized/reStandardPunishment.tw b/src/uncategorized/reStandardPunishment.tw
index 6b6369be600..4fb09a4c350 100644
--- a/src/uncategorized/reStandardPunishment.tw
+++ b/src/uncategorized/reStandardPunishment.tw
@@ -345,7 +345,7 @@
 		<<set $activeSlave.counter.anal += 1>>
 		<<set $analTotal += 1>>
 	<<else>>
-		pull $him to $his knees, <<if $PC.dick == 1>>shoving your dick down $his throat<<else>>straddling $his face and grinding yourself against $his mouth<</if>>.
+		pull $him to $his knee<<if hasBothLegs($activeSlave)>>s<</if>>, <<if $PC.dick == 1>>shoving your dick down $his throat<<else>>straddling $his face and grinding yourself against $his mouth<</if>>.
 		<<set $activeSlave.counter.oral += 1>>
 		<<set $oralTotal += 1>>
 	<</if>>
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index 45194bfa044..525cdb4abe1 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -154,7 +154,7 @@ $His $activeSlave.faceShape face is
 			<</if>>
 			<<if ($activeSlave.eyes > -3)>>
 				| [[Remove eyes|Surgery Degradation][cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "remove eyes"]]
-				/* eyes are set in Surgery Degredation */
+				/* eyes are set in Surgery Degradation */
 				<<if ($activeSlave.eyes > -2)>>//This will greatly restrict $him//<</if>>
 			<</if>>
 			<<if isProstheticAvailable($activeSlave, "ocular")>>
diff --git a/src/uncategorized/saDiet.tw b/src/uncategorized/saDiet.tw
index 1df4786e9e5..dcd25ac9fbe 100644
--- a/src/uncategorized/saDiet.tw
+++ b/src/uncategorized/saDiet.tw
@@ -372,7 +372,7 @@
 	<</if>>
 <<case "muscle building">> /* Muscle Gain */
 	<<if isAmputee($slaves[$i])>>
-		$He is no longer capable of pumping iron. $His special diet @@.yellow;has ended.@@
+		$He is no longer capable of working out in any plausible way. $His special diet @@.yellow;has ended.@@
 		<<set $slaves[$i].diet = "healthy">>
 	<<else>>
 		<<if $slaves[$i].muscles > 90>>
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index 9eb619eb913..ced8a82b141 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -113,7 +113,7 @@
 	<<if $activeSlave.nipples == "fuckable" && $PC.dick > 0>>
 		| <<link "Fuck $his nipples">><<replace "#miniscene">><<include "FNippleFuck">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
 	<</if>>
-	<<if $activeSlave.lactation > 0 && $activeSlave.boobs >= 2000 && $activeSlave.belly < 60000 && hasBothArms($activeSlave)>>
+	<<if $activeSlave.lactation > 0 && $activeSlave.boobs >= 2000 && $activeSlave.belly < 60000 && hasAnyArms($activeSlave)>>
 		| <<link "Drink $his milk">><<replace "#miniscene">><<include "FSuckle">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
 	<</if>>
 	<span id="analgropeoption">
-- 
GitLab