From 121bba755546250c0d6dc61f02a550b2da8dd415 Mon Sep 17 00:00:00 2001
From: Pregmodder <pregmodder@gmail.com>
Date: Wed, 31 Mar 2021 00:12:25 -0400
Subject: [PATCH] clean fondleVagina.tw and fix some datatypeCleanup.js
 oddities

---
 .../backwardsCompatibility/datatypeCleanup.js |   7 +-
 src/npc/interaction/fondleVagina.tw           | 389 ++++++++++++++----
 2 files changed, 313 insertions(+), 83 deletions(-)

diff --git a/src/data/backwardsCompatibility/datatypeCleanup.js b/src/data/backwardsCompatibility/datatypeCleanup.js
index 684b0d5a04f..b4d744f06d6 100644
--- a/src/data/backwardsCompatibility/datatypeCleanup.js
+++ b/src/data/backwardsCompatibility/datatypeCleanup.js
@@ -533,7 +533,7 @@ globalThis.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 			slave.minorInjury = 0;
 		}
 
-		slave.health.condition = Math.clamp(slave.health.condition, -100, 100) || 0;
+		slave.health.condition = Math.clamp(slave.health.condition, -100, 200) || 0;
 		slave.health.shortDamage = Math.max(+slave.health.shortDamage, 0) || 0;
 		slave.health.longDamage = Math.max(+slave.health.longDamage, 0) || 0;
 		slave.health.illness = Math.max(+slave.health.illness, 0) || 0;
@@ -937,7 +937,7 @@ globalThis.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		slave.dietMilk = Math.clamp(+slave.dietMilk, 0, 2) || 0;
 		slave.onDiet = Math.clamp(+slave.onDiet, 0, 1) || 0;
 		slave.hormones = Math.clamp(+slave.hormones, -2, 2) || 0;
-		slave.hormoneBalance = Math.clamp(+slave.hormoneBalance, -400, 400) || 0;
+		slave.hormoneBalance = Math.clamp(+slave.hormoneBalance, -500, 500) || 0;
 		if (typeof slave.drugs !== "string" || slave.drugs === "none") {
 			slave.drugs = "no drugs";
 		}
@@ -1383,13 +1383,14 @@ globalThis.PCDatatypeCleanup = function() {
 globalThis.EconomyDatatypeCleanup = function() {
 	V.arcologies[0].prosperity = Math.clamp(+V.arcologies[0].prosperity, 1, V.AProsperityCap) || 1;
 	V.AProsperityCap = Math.max(+V.AProsperityCap, 0) || 0;
-	V.economy = Math.max(+V.economy, 20) || 100;
 	if (V.economy === 0.5) {
 		V.economy = 200;
 	} else if (V.economy === 1) {
 		V.economy = 100;
 	} else if (V.economy === 1.5) {
 		V.economy = 67;
+	} else {
+		V.economy = Math.max(+V.economy, 20) || 100;
 	}
 	V.difficultySwitch = Math.clamp(+V.difficultySwitch, 0, 1) || 0;
 	if (V.baseDifficulty) {
diff --git a/src/npc/interaction/fondleVagina.tw b/src/npc/interaction/fondleVagina.tw
index d543aa858e8..3d541e2fa2a 100644
--- a/src/npc/interaction/fondleVagina.tw
+++ b/src/npc/interaction/fondleVagina.tw
@@ -31,6 +31,10 @@ You call $him over so you can fondle $his
 			$His huge clit is impossible to miss
 		<<elseif getSlave($AS).clit > 1>>
 			$His pseudophallus-sized clit is soft
+		<<elseif getSlave($AS).chastityPenis>>
+			$His useless penis is properly caged
+		<<elseif getSlave($AS).dick > 0>>
+			$His dick is soft
 		<<else>>
 			$His pretty little clit is barely visible
 		<</if>>
@@ -46,11 +50,17 @@ You call $him over so you can fondle $his
 		<</if>>
 	<<else>>
 		<<if getSlave($AS).clit == 1>>
-			$His big clit peeks out from under its hood.
+			$His big clit peeks out from under its hood
 		<<elseif getSlave($AS).clit == 2>>
-			$His huge clit is impossible to miss.
+			$His huge clit is impossible to miss
 		<<elseif getSlave($AS).clit > 1>>
-			$His pseudophallus-sized clit is soft.
+			$His pseudophallus-sized clit is soft
+		<<elseif getSlave($AS).chastityPenis>>
+			$His chastity cage is uncomfortably full
+		<<elseif canAchieveErection(getSlave($AS))>>
+			$His dick vies for attention
+		<<elseif getSlave($AS).dick > 0>>
+			$His soft dick dribbles excitedly
 		<<else>>
 			$His pretty little clit is ready for you,
 		<</if>>
@@ -67,15 +77,30 @@ You call $him over so you can fondle $his
 	<</if>>
 <</if>>
 
-<<if (getSlave($AS).vaginaPiercing > 1) && (getSlave($AS).vagina != -1)>>
+<<if (getSlave($AS).vaginaPiercing > 1) && (getSlave($AS).vagina != -1) && getSlave($AS).clitPiercing > 0>>
 	$His pierced lips and clit have $his nice and wet.
-<<elseif (getSlave($AS).vaginaPiercing == 1) && (getSlave($AS).vagina != -1)>>
-	$His pierced clit has $his nice and moist.
+<<elseif (getSlave($AS).clitPiercing > 0) && (getSlave($AS).vagina != -1)>>
+	$His pierced clit has $him nice and moist.
 <</if>>
 
 <<if (getSlave($AS).vagina == 0)>>
 	<<if (getSlave($AS).fetish == "mindbroken")>>
-		$He accepts your orders dumbly and presents $his virgin pussy to you, <<if canSee(getSlave($AS))>>watching your hands move towards $him<<else>>waiting<</if>> without any real interest. You gently trace along $his
+		$He accepts your orders dumbly and presents $his virgin pussy to you, <<if canSee(getSlave($AS))>>watching your hands move towards $him<<else>>waiting<</if>> without any real interest.
+		You
+		<<if getSlave($AS).balls >= 60>>
+			struggle to shove $his oversized nuts out of the way and
+		<<elseif getSlave($AS).balls >= 30>>
+			struggle to lift $his oversized nuts and
+		<<elseif getSlave($AS).balls >= 14>>
+			palm one of $his giant testicles and
+		<<elseif getSlave($AS).balls >= 9>>
+			cup $his huge balls and
+		<<elseif getSlave($AS).balls >= 5>>
+			lift $his big balls out of the way and
+		<<elseif getSlave($AS).scrotum > 0>>
+			reach under $his dangling scrotum and
+		<</if>>
+		gently trace along $his
 		<<if getSlave($AS).labia == 1>>
 			lovely petals
 		<<elseif getSlave($AS).labia == 2>>
@@ -90,12 +115,33 @@ You call $him over so you can fondle $his
 			large clit
 		<<elseif getSlave($AS).clit > 1>>
 			massive clit
+		<<elseif getSlave($AS).chastityPenis>>
+			$his cage
+		<<elseif canAchieveErection(getSlave($AS))>>
+			$his erection
+		<<elseif getSlave($AS).dick > 0>>
+			soft dick
 		<<else>>
 			pretty little clit
 		<</if>>
-		and rub it with your fingertips as your hand nears it but except for the pussy juices trickling down $his leg, $he does not respond. Since $he is mindbroken, $his responses to you are purely physiological and your actions have no affect on $him mentally.
+		and rub it with your fingertips as your hand nears it but outside of the pussy juices
+		<<if hasAnyLegs(getSlave($AS))>>
+			trickling down $his leg,
+		<<else>>
+			pooling beneath $him,
+		<</if>>
+		$he does not respond. Since $he is mindbroken, $his responses to you are purely physiological and your actions have no affect on $him mentally.
 	<<elseif (getSlave($AS).devotion > 50)>>
-		$He accepts your orders happily and presents $his virgin pussy to you, watching your hands with eagerness. $He gasps and quivers with pleasure as you gently trace along $his
+		$He accepts your orders happily and presents $his virgin pussy to you,
+		<<if getSlave($AS).scrotum > 0>>
+			shifting $his balls out of the way and
+		<</if>>
+		<<if canSee(getSlave($AS))>>
+			watching your hands with eagerness.
+		<<else>>
+			eagerly awaiting your touch.
+		<</if>>
+		$He gasps and quivers with pleasure as you gently trace along $his
 		<<if getSlave($AS).labia == 1>>
 			lovely petals
 		<<elseif getSlave($AS).labia == 2>>
@@ -105,28 +151,61 @@ You call $him over so you can fondle $his
 		<<else>>
 			cute labia
 		<</if>>
-		with your outstretched fingers, strumming up and down the edges of $his pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. <<if (getSlave($AS).fetish == "boobs")>> $He fondles $his breasts and plays with $his nipples at the same time.<</if>> You occasionally flick $his
+		with your outstretched fingers, strumming up and down the edges of $his pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements.
+		<<if hasAnyArms(getSlave($AS))>>
+			<<if (getSlave($AS).fetish == "boobs")>>
+				$He fondles $his breasts and plays with $his nipples at the same time.
+			<<elseif (getSlave($AS).fetish == "pregnancy") && getSlave($AS).belly >= 1500>>
+				$He strokes the curve of $his belly at the same time.
+			<</if>>
+		<</if>>
+		You occasionally
 		<<if getSlave($AS).clit == 1>>
-			large clit
+			flick $his large clit and rub it with your fingertips
 		<<elseif getSlave($AS).clit == 2>>
-			huge clit
+			flick $his huge clit and rub it with your fingertips
 		<<elseif getSlave($AS).clit > 1>>
-			massive clit
+			flick $his massive clit and rub it with your fingertips
+		<<elseif getSlave($AS).chastityPenis>>
+			caress $his chastity cage with your palm
+		<<elseif canAchieveErection(getSlave($AS))>>
+			flick $his erection and give it a stroke
+		<<elseif getSlave($AS).dick > 0>>
+			flick $his soft dick and rub it with your fingertips
 		<<else>>
-			pretty little clit
+			flick $his pretty little clit and rub it with your fingertips
+		<</if>>
+		as your hand nears it. As $he becomes more aroused, $he
+		<<if hasAnyArms(getSlave($AS))>>
+			grabs hold of your wrist lightly, moving $his hands along with the motion of your own.
+		<<else>>
+			begins to move $his body to the rhythm of your motions.
+		<</if>>
+		$His pussy juices
+		<<if hasAnyLegs(getSlave($AS))>>
+			run down $his leg
+		<<else>>
+			pool beneath $him
 		<</if>>
-		and rub it with your fingertips as your hand nears it. As $he becomes more aroused, $he grabs hold of your wrist lightly, moving $his hands along with the motion of your own. $His pussy juices run down $his leg as $he begins to moan audibly<<if (hasAnyLegs(getSlave($AS)))>>, gently clamping your hand between $his thighs<</if>> as you continue to move your hand along $his pussy. $He moans loudly as $he shudders in orgasmic joy.
+		as $he begins to moan audibly<<if (hasAnyLegs(getSlave($AS)))>>, gently clamping your hand between $his thighs<</if>> as you continue to move your hand along $his pussy. $He moans loudly as $he shudders in orgasmic joy.
 		<<if ((!hasAnyArms(getSlave($AS))) && !canTalk(getSlave($AS)))>>
 			$He does $his best to communicate love with $his <<= App.Desc.eyesColor(getSlave($AS))>>.
 		<<elseif !canTalk(getSlave($AS))>>
 			$He signs that $he loves you.
-		<<elseif SlaveStatsChecker.checkForLisp(getSlave($AS))>> "I love you,
-			<<Master>>," $he lisps rapturously.
-		<<else>> "I love you,
-			<<Master>>," $he says rapturously.
+		<<else>>
+			"I love you, <<Master>>," $he <<say>>s rapturously.
 		<</if>>
 	<<elseif (getSlave($AS).devotion > 20)>>
-		$He accepts your orders without comment and presents $his virgin pussy to you, watching your hands with some slight trepidation. $He gasps as you gently trace along $his
+		$He accepts your orders without comment and presents $his virgin pussy to you,
+		<<if getSlave($AS).scrotum > 0>>
+			shifting $his balls out of the way and
+		<</if>>
+		<<if canSee(getSlave($AS))>>
+			watching your hands with some slight trepidation.
+		<<else>>
+			nervously anticipating your touch.
+		<</if>>
+		$He gasps as you gently trace along $his
 		<<if getSlave($AS).labia == 1>>
 			lovely petals
 		<<elseif getSlave($AS).labia == 2>>
@@ -134,19 +213,46 @@ You call $him over so you can fondle $his
 		<<elseif getSlave($AS).labia > 1>>
 			huge labia
 		<</if>>
-		with your outstretched fingers, strumming up and down the edges of $his pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. You occasionally flick $his
+		with your outstretched fingers, strumming up and down the edges of $his pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. You occasionally
 		<<if getSlave($AS).clit == 1>>
-			large clit
+			flick $his large clit and rub it with your fingertips
 		<<elseif getSlave($AS).clit == 2>>
-			huge clit
+			flick $his huge clit and rub it with your fingertips
 		<<elseif getSlave($AS).clit > 1>>
-			massive clit
+			flick $his massive clit and rub it with your fingertips
+		<<elseif getSlave($AS).chastityPenis>>
+			caress $his chastity cage with your palm
+		<<elseif canAchieveErection(getSlave($AS))>>
+			flick $his erection and give it a stroke
+		<<elseif getSlave($AS).dick > 0>>
+			flick $his soft dick and rub it with your fingertips
 		<<else>>
-			pretty little clit
+			flick $his pretty little clit and rub it with your fingertips
+		<</if>>
+		as your hand nears it. $His pussy juices
+		<<if hasAnyLegs(getSlave($AS))>>
+			run down $his leg
+		<<else>>
+			pool beneath $him
+		<</if>>
+		as $he begins to moan audibly<<if (hasAnyArms(getSlave($AS)))>>, grasping your wrist with $his hand<<if (hasBothArms(getSlave($AS)))>>s<</if>> tightly<</if>><<if (hasAnyLegs(getSlave($AS)))>> and clamping $his thighs together<</if>> as you continue to move your hand along $his pussy. $He moans as $he shudders in an orgasm, almost embarrassed.
+		<<if canSee(getSlave($AS))>>
+			$He looks into your eyes expectantly.
+		<<else>>
+			$He pants expectantly, bracing for more.
 		<</if>>
-		and rub it with your fingertips as your hand nears it. $His pussy juices run down $his leg as $he begins to moan audibly<<if (hasAnyArms(getSlave($AS)))>>, grasping your wrist with $his hand<<if (hasBothArms(getSlave($AS)))>>s<</if>> tightly<</if>> and clamping $his thighs together as you continue to move your hand along $his pussy. $He moans as $he shudders in an orgasm, almost embarrassed. $He looks into your eyes expectantly.
 	<<elseif (getSlave($AS).devotion >= -20)>>
-		$He clearly dislikes the thought of getting fondled by you. $His lower lip quivers with trepidation as $he watches your hands move towards $him. $He has no choice but to obey if $he wants to avoid punishment. $He gasps and shakes as you gently trace along $his
+		$He clearly dislikes the thought of getting fondled by you. $His lower lip quivers with trepidation as $he
+		<<if canSee(getSlave($AS))>>
+			watches your hands move towards $him.
+		<<else>>
+			waits for your hand to touch $him.
+		<</if>>
+		$He has no choice but to
+		<<if getSlave($AS).scrotum > 0>>
+			shift $his balls out of the way and
+		<</if>>
+		obey if $he wants to avoid punishment. $He gasps and shakes as you gently trace along $his
 		<<if getSlave($AS).labia == 1>>
 			lovely petals
 		<<elseif getSlave($AS).labia == 2>>
@@ -156,17 +262,29 @@ You call $him over so you can fondle $his
 		<<else>>
 			cute labia
 		<</if>>
-		with your outstretched fingers, strumming up and down the edges of $his pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. You occasionally flick $his
+		with your outstretched fingers, strumming up and down the edges of $his pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. You occasionally
 		<<if getSlave($AS).clit == 1>>
-			erect clit
+			flick $his large clit and rub it with your fingertips
 		<<elseif getSlave($AS).clit == 2>>
-			huge clit
+			flick $his huge clit and rub it with your fingertips
 		<<elseif getSlave($AS).clit > 1>>
-			massive clit
+			flick $his massive clit and rub it with your fingertips
+		<<elseif getSlave($AS).chastityPenis>>
+			caress $his chastity cage with your palm
+		<<elseif canAchieveErection(getSlave($AS))>>
+			flick $his growing erection and give it a stroke
+		<<elseif getSlave($AS).dick > 0>>
+			flick $his soft dick and rub it with your fingertips
 		<<else>>
-			pretty little clit
+			flick $his pretty little clit and rub it with your fingertips
 		<</if>>
-		and rub it with your fingertips as your hand nears it. $His pussy juices run down $his leg as $he begins to moan audibly<<if (hasAnyArms(getSlave($AS)))>>, grasping your wrist with $his hand<<if (hasBothArms(getSlave($AS)))>>s<</if>> tightly<</if>> and clamping $his thighs together as you continue to move your hand along $his pussy. $He moans as $he shudders in an orgasm, clearly embarrassed to end up in this position as $he loses control.
+		as your hand nears it. $His pussy juices
+		<<if hasAnyLegs(getSlave($AS))>>
+			run down $his leg
+		<<else>>
+			pool beneath $him
+		<</if>>
+		as $he begins to moan audibly<<if (hasAnyArms(getSlave($AS)))>>, grasping your wrist with $his hand<<if (hasBothArms(getSlave($AS)))>>s<</if>> tightly<</if>><<if (hasBothLegs(getSlave($AS)))>> and clamping $his thighs together<</if>> as you continue to move your hand along $his pussy. $He moans as $he shudders in an orgasm, clearly embarrassed to end up in this position as $he loses control.
 	<<else>>
 		As you anticipated, $he refuses to let $himself be groped by you. $He is unable to resist you, also as you expected, when you mention some of the alternatives. $He gasps and shakes as you gently trace along $his
 		<<if getSlave($AS).labia == 1>>
@@ -178,22 +296,52 @@ You call $him over so you can fondle $his
 		<<else>>
 			cute labia
 		<</if>>
-		with your outstretched fingers, strumming up and down the edges of $his pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements.<<if (hasAnyArms(getSlave($AS)))>> $He grabs your wrist with $his hand<<if (hasBothArms(getSlave($AS)))>>s<</if>> in an effort to stop you but $he is unable to stop your hand from moving for long.<</if>> You occasionally flick $his
+		with your outstretched fingers, strumming up and down the edges of $his pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements.<<if (hasAnyArms(getSlave($AS)))>> $He grabs your wrist with $his hand<<if (hasBothArms(getSlave($AS)))>>s<</if>> in an effort to stop you but $he is unable to stop your hand from moving for long.<</if>> You occasionally
 		<<if getSlave($AS).clit == 1>>
-			erect clit
+			flick $his large clit and rub it with your fingertips
 		<<elseif getSlave($AS).clit == 2>>
-			huge clit
+			flick $his huge clit and rub it with your fingertips
 		<<elseif getSlave($AS).clit > 1>>
-			massive clit
+			flick $his massive clit and rub it with your fingertips
+		<<elseif getSlave($AS).chastityPenis>>
+			caress $his chastity cage with your palm
+		<<elseif canAchieveErection(getSlave($AS))>>
+			flick $his unwilling erection and give it a stroke
+		<<elseif getSlave($AS).dick > 0>>
+			flick $his soft dick and rub it with your fingertips
 		<<else>>
-			pretty little clit
+			flick $his pretty little clit and rub it with your fingertips
 		<</if>>
-		and rub it with your fingertips as your hand nears it. $He <<if (hasAnyArms(getSlave($AS)))>>tightly grasps your wrist and<</if>>clamps $his thighs together as you continue to move your hand along $his pussy. $He moans as $he shudders in an orgasm, gripping tighter and shamefully looking at you as you stop moving your hand.
+		as your hand nears it. $He
+		<<if (hasAnyArms(getSlave($AS)))>>
+			tightly grasps your wrist <<if (hasBothLegs(getSlave($AS)))>> and<</if>>
+		<</if>>
+		<<if (hasBothLegs(getSlave($AS)))>>
+			clamps $his thighs together
+		<</if>>
+		<<if !hasAnyArms(getSlave($AS)) && !hasBothLegs(getSlave($AS))>>
+			squirms uncomfortably a little
+		<</if>>
+		as you continue to move your hand along $his pussy. $He moans as $he shudders in an orgasm, gripping tighter and shamefully looking at you as you stop moving your hand.
 	<</if>>
 <<elseif (getSlave($AS).fetish == "mindbroken")>>
-	Like a doll, $he dumbly remains still, watching your hands move towards $him without any real interest.
+	Like a doll, $he dumbly remains still, <<if canSee(getSlave($AS))>>watching your hands move towards $him<<else>>waiting<</if>> without any real interest.
 	<<if (getSlave($AS).vagina != -1)>>
-		You gently trace along $his
+		You
+		<<if getSlave($AS).balls >= 60>>
+			struggle to shove $his oversized nuts out of the way and
+		<<elseif getSlave($AS).balls >= 30>>
+			struggle to lift $his oversized nuts and
+		<<elseif getSlave($AS).balls >= 14>>
+			palm one of $his giant testicles and
+		<<elseif getSlave($AS).balls >= 9>>
+			cup $his huge balls and
+		<<elseif getSlave($AS).balls >= 5>>
+			lift $his big balls out of the way and
+		<<elseif getSlave($AS).scrotum > 0>>
+			reach under $his dangling scrotum and
+		<</if>>
+		gently trace along $his
 		<<if getSlave($AS).labia == 1>>
 			lovely petals
 		<<elseif getSlave($AS).labia == 2>>
@@ -207,17 +355,48 @@ You call $him over so you can fondle $his
 		<<if getSlave($AS).clit == 1>>
 			erect clit
 		<<elseif getSlave($AS).clit == 2>>
-			huge clit
+			large clit
 		<<elseif getSlave($AS).clit > 1>>
 			massive clit
+		<<elseif getSlave($AS).chastityPenis>>
+			$his cage
+		<<elseif canAchieveErection(getSlave($AS))>>
+			$his erection
+		<<elseif getSlave($AS).dick > 0>>
+			soft dick
 		<<else>>
 			pretty little clit
 		<</if>>
-		and rub it with your fingertips as your hand nears it. Except for the pussy juices trickling down $his leg, $he does not respond.
+		and rub it with your fingertips as your hand nears it. Except for the pussy juices
+		<<if hasAnyLegs(getSlave($AS))>>
+			trickling down $his leg,
+		<<else>>
+			pooling beneath $him,
+		<</if>>
+		$he does not respond.
 	<</if>>
 	Since $he is mindbroken, $his responses to you are purely physiological and your actions have no affect on $him mentally. You leave your toy for one of your other slaves to clean and maintain.
 <<elseif isAmputee(getSlave($AS))>>
-	Since $he's a quadruple amputee, $he's yours to use as a human finger toy. While $he's lying there helpless, you move your hands towards $him.
+	Since $he's a quadruple amputee, $he's yours to use as a human finger toy. While $he's lying there helpless, you move your hands towards
+	<<if (getSlave($AS).vagina != -1)>>
+		<<if getSlave($AS).balls >= 60>>
+			$him and struggle to shove $his oversized nuts out of the way.
+		<<elseif getSlave($AS).balls >= 30>>
+			$him and strain to lift $his oversized nuts out of the way.
+		<<elseif getSlave($AS).balls >= 14>>
+			$him, palming one of $his giant testicles to make way.
+		<<elseif getSlave($AS).balls >= 9>>
+			$him, cupping $his huge balls to keep them out of the way.
+		<<elseif getSlave($AS).balls >= 5>>
+			$him, lifting $his big balls out of the way in the process.
+		<<elseif getSlave($AS).scrotum > 0>>
+			$him, slipping under $his dangling scrotum in the process.
+		<<else>>
+			$him.
+		<</if>>
+	<<else>>
+		$him.
+	<</if>>
 	<<if (getSlave($AS).vagina != -1)>>
 		You gently trace along $his
 		<<if getSlave($AS).labia == 1>>
@@ -229,21 +408,27 @@ You call $him over so you can fondle $his
 		<<else>>
 			cute labia
 		<</if>>
-		with your outstretched fingers, strumming up and down the edges of $his pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. You occasionally flick $his
+		with your outstretched fingers, strumming up and down the edges of $his pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. You occasionally
 		<<if getSlave($AS).clit == 1>>
-			erect clit
+			flick $his large clit and rub it with your fingertips
 		<<elseif getSlave($AS).clit == 2>>
-			huge clit
+			flick $his huge clit and rub it with your fingertips
 		<<elseif getSlave($AS).clit > 1>>
-			massive clit
+			flick $his massive clit and rub it with your fingertips
+		<<elseif getSlave($AS).chastityPenis>>
+			caress $his chastity cage with your palm
+		<<elseif canAchieveErection(getSlave($AS))>>
+			flick $his erection and give it a stroke
+		<<elseif getSlave($AS).dick > 0>>
+			flick $his soft dick and rub it with your fingertips
 		<<else>>
-			pretty little clit
+			flick $his pretty little clit and rub it with your fingertips
 		<</if>>
-		and rub it with your fingertips as your hand nears it.
+		as your hand nears it.
 	<</if>>
 	Soon $he shudders in an orgasm, <<if canSee(getSlave($AS))>>looking at you<<else>>facing<</if>> as you stop moving your hand. You leave your toy for one of your other slaves to clean and maintain.
 <<elseif (getSlave($AS).fetish == "submissive") && (getSlave($AS).fetishStrength > 60) && (getSlave($AS).fetishKnown == 1)>>
-	$He comes submissively over, smiling a little submissive smile, and points $his pussy towards you.
+	$He comes submissively over, smiling a little submissive smile, and points $his pussy towards you<<if getSlave($AS).scrotum > 0>>, shifting $his balls out of the way and<</if>>.
 	<<if (getSlave($AS).vagina != -1)>>
 		You gently trace along $his
 		<<if getSlave($AS).labia == 1>>
@@ -255,22 +440,28 @@ You call $him over so you can fondle $his
 		<<else>>
 			cute labia
 		<</if>>
-		with your outstretched fingers, strumming up and down the edges of $his pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. You occasionally flick $his
+		with your outstretched fingers, strumming up and down the edges of $his pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. You occasionally
 		<<if getSlave($AS).clit == 1>>
-			erect clit
+			flick $his large clit and rub it with your fingertips
 		<<elseif getSlave($AS).clit == 2>>
-			huge clit
+			flick $his huge clit and rub it with your fingertips
 		<<elseif getSlave($AS).clit > 1>>
-			massive clit
+			flick $his massive clit and rub it with your fingertips
+		<<elseif getSlave($AS).chastityPenis>>
+			caress $his chastity cage with your palm
+		<<elseif canAchieveErection(getSlave($AS))>>
+			flick $his erection and give it a stroke
+		<<elseif getSlave($AS).dick > 0>>
+			flick $his soft dick and rub it with your fingertips
 		<<else>>
-			pretty little clit
+			flick $his pretty little clit and rub it with your fingertips
 		<</if>>
-		and rub it with your fingertips as your hand nears it. $He begs you not to stop as $he <<if canSee(getSlave($AS))>>looks into your eyes<<else>>faces<</if>> expectantly as $he shudders in an orgasm.
+		as your hand nears it. $He begs you not to stop as $he <<if canSee(getSlave($AS))>>looks into your eyes<<else>>faces<</if>> expectantly as $he shudders in an orgasm.
 	<</if>>
 <<elseif getSlave($AS).devotion < -20>>
-	$He tries to refuse, so you push the disobedient slave down over your desk as you move your hands towards $him.
+	$He tries to refuse, so you push the disobedient slave down<<if canStand(getSlave($AS)))>> over your desk<</if>> as you move your hands towards $him.
 	<<if (getSlave($AS).vagina != -1)>>
-		You gently trace along $his
+		You gently<<if getSlave($AS).scrotum > 0>> shift $his balls out of the way and<</if>> trace along $his
 		<<if getSlave($AS).labia == 1>>
 			lovely petals
 		<<elseif getSlave($AS).labia == 2>>
@@ -280,23 +471,29 @@ You call $him over so you can fondle $his
 		<<else>>
 			cute labia
 		<</if>>
-		with your outstretched fingers, strumming up and down the edges of $his pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. $He <<if hasAnyArms(getSlave($AS))>>grabs your wrist<<else>>twists and turns<</if>> to try to stop you but $he is unable to. You occasionally flick $his
+		with your outstretched fingers, strumming up and down the edges of $his pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. $He <<if hasAnyArms(getSlave($AS))>>grabs your wrist<<else>>twists and turns<</if>> to try to stop you but $he is unable to. You occasionally
 		<<if getSlave($AS).clit == 1>>
-			large clit
+			flick $his large clit and rub it with your fingertips
 		<<elseif getSlave($AS).clit == 2>>
-			huge clit
+			flick $his huge clit and rub it with your fingertips
 		<<elseif getSlave($AS).clit > 1>>
-			massive clit
+			flick $his massive clit and rub it with your fingertips
+		<<elseif getSlave($AS).chastityPenis>>
+			caress $his chastity cage with your palm
+		<<elseif canAchieveErection(getSlave($AS))>>
+			flick $his unwilling erection and give it a stroke
+		<<elseif getSlave($AS).dick > 0>>
+			flick $his soft dick and rub it with your fingertips
 		<<else>>
-			pretty little clit
+			flick $his pretty little clit and rub it with your fingertips
 		<</if>>
-		and rub it with your fingertips as your hand nears it, despite $his resistant pulling against you. $He bites $his lip but $he cannot help but moan and $he shudders in an orgasm.
+		as your hand nears it, despite $his resistant pulling against you. $He bites $his lip but $he cannot help but moan and $he shudders in an orgasm.
 	<</if>>
 	$He <<if canSee(getSlave($AS))>>looks at you<<else>>faces<</if>> shamefully as you stop moving your hand.
 <<elseif getSlave($AS).devotion <= 20>>
-	$He obeys silently, standing in front of you as you move your hands towards $him.
+	$He obeys silently, <<if canStand(getSlave($AS)))>>standing<<else>>resting<</if>> in front of you as you move your hands towards $him.
 	<<if (getSlave($AS).vagina != -1)>>
-		You gently trace along $his
+		You gently<<if getSlave($AS).scrotum > 0>> shift $his balls out of the way and<</if>> trace along $his
 		<<if getSlave($AS).labia == 1>>
 			lovely petals
 		<<elseif getSlave($AS).labia == 2>>
@@ -306,21 +503,41 @@ You call $him over so you can fondle $his
 		<<else>>
 			cute labia
 		<</if>>
-		with your outstretched fingers, strumming up and down the edges of $his pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. You occasionally flick $his
+		with your outstretched fingers, strumming up and down the edges of $his pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. You occasionally
 		<<if getSlave($AS).clit == 1>>
-			erect clit
+			flick $his large clit and rub it with your fingertips
 		<<elseif getSlave($AS).clit == 2>>
-			huge clit
+			flick $his huge clit and rub it with your fingertips
 		<<elseif getSlave($AS).clit > 1>>
-			massive clit
+			flick $his massive clit and rub it with your fingertips
+		<<elseif getSlave($AS).chastityPenis>>
+			caress $his chastity cage with your palm
+		<<elseif canAchieveErection(getSlave($AS))>>
+			flick $his growing erection and give it a stroke
+		<<elseif getSlave($AS).dick > 0>>
+			flick $his soft dick and rub it with your fingertips
 		<<else>>
-			pretty little clit
+			flick $his pretty little clit and rub it with your fingertips
 		<</if>>
-		and rub it with your fingertips as your hand nears it. $He <<if canSee(getSlave($AS))>>looks into your eyes<<else>>faces you<</if>> furtively while<<if hasAnyArms(getSlave($AS))>> $he grabs your wrist with $his hand and<</if>> $he squeezes $his thighs together as $he moans and shudders in an orgasm.
+		as your hand nears it. $He <<if canSee(getSlave($AS))>>looks into your eyes<<else>>faces you<</if>> furtively while $he
+		<<if (hasAnyArms(getSlave($AS)))>>
+			grabs your wrist with $his hand<<if (hasBothLegs(getSlave($AS)))>> and<</if>>
+		<</if>>
+		<<if (hasBothLegs(getSlave($AS)))>>
+			squeezes $his thighs together
+		<</if>>
+		<<if !hasAnyArms(getSlave($AS)) && !hasBothLegs(getSlave($AS))>>
+			squirms a little
+		<</if>>
+		as $he moans and shudders in an orgasm.
 	<</if>>
 	$He dutifully <<if canSee(getSlave($AS))>>looks at you<<else>>faces<</if>> as you stop moving your hand.
 <<else>>
-	$He devotedly comes over and gives you an impassioned kiss. $He smiles and points $his pussy towards you.
+	$He devotedly
+	<<if canMove(getSlave($AS))>>
+		comes over and gives you an impassioned kiss. $He
+	<</if>>
+	smiles<<if getSlave($AS).scrotum > 0>>, shifts $his balls to the side,<</if>> and points $his pussy towards you.
 	<<if (getSlave($AS).vagina != -1)>>
 		You gently trace along $his
 		<<if getSlave($AS).labia == 1>>
@@ -332,17 +549,29 @@ You call $him over so you can fondle $his
 		<<else>>
 			cute labia
 		<</if>>
-		with your outstretched fingers, strumming up and down the edges of $his pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. You occasionally flick $his
+		with your outstretched fingers, strumming up and down the edges of $his pussylips, then softly rub your fingers along the inner walls with a tender touch, starting slow but gradually increasing the speed of your movements. You occasionally
 		<<if getSlave($AS).clit == 1>>
-			large clit
+			flick $his large clit and rub it with your fingertips
 		<<elseif getSlave($AS).clit == 2>>
-			huge clit
+			flick $his huge clit and rub it with your fingertips
 		<<elseif getSlave($AS).clit > 1>>
-			massive clit
+			flick $his massive clit and rub it with your fingertips
+		<<elseif getSlave($AS).chastityPenis>>
+			caress $his chastity cage with your palm
+		<<elseif canAchieveErection(getSlave($AS))>>
+			flick $his erection and give it a stroke
+		<<elseif getSlave($AS).dick > 0>>
+			flick $his soft dick and rub it with your fingertips
 		<<else>>
-			pretty little clit
+			flick $his pretty little clit and rub it with your fingertips
+		<</if>>
+		as your hand nears it. $He
+		<<if hasAnyLegs(getSlave($AS))>>
+			squeezes $his thigh<<if hasBothLegs(getSlave($AS))>>s<</if>>
+		<<else>>
+			pushes
 		<</if>>
-		and rub it with your fingertips as your hand nears it. $He squeezes $his thighs lightly against your hand as $he moans and shudders in orgasmic bliss.
+		lightly against your hand as $he moans and shudders in orgasmic bliss.
 	<</if>>
 	$He <<if canSee(getSlave($AS))>>looks at you<<else>>faces<</if>> passionately as you stop moving your hand.
 <</if>>
-- 
GitLab