From cc5dc508e06f6a0845b755bd3930aafec3d07145 Mon Sep 17 00:00:00 2001
From: lowercasedonkey <lowercasedonkey@gmail.com>
Date: Mon, 9 Mar 2020 00:24:35 -0400
Subject: [PATCH] dewidgetize fuckdoll scenes

---
 src/interaction/main/walkPast.js              |   6 +-
 src/npc/interaction/FFuckdollAnal.tw          |  55 ++++
 src/npc/interaction/FFuckdollImpreg.tw        |  91 +++++++
 src/npc/interaction/FFuckdollOral.tw          |  36 +++
 src/npc/interaction/FFuckdollVaginal.tw       |  55 ++++
 .../interaction/widgets/fFuckdollWidgets.tw   | 248 ------------------
 6 files changed, 240 insertions(+), 251 deletions(-)
 create mode 100644 src/npc/interaction/FFuckdollAnal.tw
 create mode 100644 src/npc/interaction/FFuckdollImpreg.tw
 create mode 100644 src/npc/interaction/FFuckdollOral.tw
 create mode 100644 src/npc/interaction/FFuckdollVaginal.tw
 delete mode 100644 src/npc/interaction/widgets/fFuckdollWidgets.tw

diff --git a/src/interaction/main/walkPast.js b/src/interaction/main/walkPast.js
index 6388d242fa1..517c347277b 100644
--- a/src/interaction/main/walkPast.js
+++ b/src/interaction/main/walkPast.js
@@ -204,14 +204,14 @@ window.walkPast = (function() {
 		} else {
 			switch (V.target) {
 				case "FVagina":
-					output += ` <span id="walkpast"><<link "Fuck ${him}">><<replace "#walk">><<FFuckdollVaginal>><</replace>><</link>></span>`;
+					output += ` <span id="walkpast"><<link "Fuck ${him}">><<replace "#walk">><<include "FFuckdollVaginal">><</replace>><</link>></span>`;
 					break;
 				case "FButt":
 				case "FAnus":
-					output += ` <span id="walkpast"><<link "Fuck ${him}">><<replace "#walk">><<FFuckdollAnal>><</replace>><</link>></span>`;
+					output += ` <span id="walkpast"><<link "Fuck ${him}">><<replace "#walk">><<include "FFuckdollAnal">><</replace>><</link>></span>`;
 					break;
 				default:
-					output += ` <span id="walkpast"><<link "Fuck ${him}">><<replace "#walk">><<FFuckdollOral>><</replace>><</link>></span>`;
+					output += ` <span id="walkpast"><<link "Fuck ${him}">><<replace "#walk">><<include "FFuckdollOral">><</replace>><</link>></span>`;
 			}
 		}
 		return output;
diff --git a/src/npc/interaction/FFuckdollAnal.tw b/src/npc/interaction/FFuckdollAnal.tw
new file mode 100644
index 00000000000..994ab290ae4
--- /dev/null
+++ b/src/npc/interaction/FFuckdollAnal.tw
@@ -0,0 +1,55 @@
+:: FFuckdollAnal [nobr]
+
+<<set $AS = $activeSlave.ID>>
+<<setLocalPronouns $activeSlave>>
+
+<<set getSlave($AS).counter.anal++, $analTotal++>>
+You decide to use the Fuckdoll's <<if getSlave($AS).anus > 3>>gaping<<elseif getSlave($AS).anus == 3>>loose<<elseif getSlave($AS).anus == 2>>relaxed<<elseif getSlave($AS).anus == 1>>tight<</if>> rear hole.
+<<if getSlave($AS).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 hasAnyLegs(getSlave($AS))>>walk over to $him<<else>>flip $him over<</if>> and ram <<if $PC.dick != 0>>your cock<<else>>a strap-on<</if>> up $his rear hole.
+<<elseif getSlave($AS).fuckdoll <= 80>>
+    $He can follow intermediate commands, so you order $him to present $his rear hole. $He obediently <<if hasAnyLegs(getSlave($AS))>>bends over, arches $his back, and<<else>>flips over and<</if>> winks $his anus until you insert <<if $PC.dick != 0>>your cock<<else>>a strap-on<</if>>.
+<<else>>
+    $He can follow advanced commands, so you bring $him over to your chair <<if hasAnyLegs(getSlave($AS))>>and order $him to squat down onto your <<if $PC.dick != 0>>cock<<else>>strap-on<</if>> and slide $his anus up and down <<if $PC.dick != 0>>your<<else>>the<</if>> shaft.<<else>>and impale $him on <<if $PC.dick != 0>>your cock<<else>>your strap-on<</if>>, ordering $him to do $his feeble best to bounce.<</if>>
+<</if>>
+<<if getSlave($AS).fuckdoll <= 20>>
+    $He's not fully used to having things suddenly forced up $his ass, so $he struggles, and $his sphincter spasms deliciously.
+<<elseif getSlave($AS).fuckdoll <= 40>>
+    Aware that $he is supposed to relax and accept anal rape, $he does $his best to accommodate the sodomy.
+<<else>>
+    You command $him to milk your <<if $PC.dick != 0>>cock<<else>>strap-on<</if>> with $his asshole, and $he obediently tightens $his sphincter against the invading phallus rhythmically.
+<</if>>
+<<if getSlave($AS).fuckdoll <= 60>>
+    <<if getSlave($AS).energy > 60>>Denied any other outlet for $his powerful sex drive, $he orgasms.<</if>>
+<<else>>
+    Tuned to enjoy any use by total denial of all other stimulation, $he orgasms repeatedly as you fuck $his anus.
+<</if>>
+<<if getSlave($AS).voice == 0>>
+    Though $he is mute, $his breath hisses loudly <<if getSlave($AS).lips > 95>>past the lips of $his facepussy<<else>>through $his mouth insert<</if>>.
+<<else>>
+    $He moans, <<if getSlave($AS).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 != 0>>, filling $his rectum with your cum,<</if>> and return $him to <<if hasAnyLegs(getSlave($AS))>>a standing position<<else>>where $he was resting<</if>>.
+<<if $PC.dick != 0>>
+    <<if getSlave($AS).anus > 2>>Your cum flows out of $his gaped rear hole and down the material of $his suit.
+    <<elseif getSlave($AS).anus == 2>>Your cum drips out of $his loosened rear hole and down the material of $his suit.
+    <<else>>$His tight rear hole retains every drop of your cum.
+    <</if>>
+    <<if canImpreg(getSlave($AS), $PC)>>
+        <<= knockMeUp(getSlave($AS), 5, 0, -1)>>
+    <</if>>
+    The Fuckdoll will be cleaned by another slave.
+<</if>>
+<<if getSlave($AS).anus == 0>>
+    <<if getSlave($AS).fetish != "mindbroken">>
+        As you return to your business, $he shakes slightly in place, and a few low moans come out of $his face hole. This is probably a reaction to losing $his anal virginity.
+    <<else>>
+        $He gives no external indication that $he's aware that $he's just lost $his anal virginity.
+    <</if>>
+    In any case, <span class="virginity loss">$his rear hole has been broken in.</span>
+    <<set getSlave($AS).anus = 1>>
+<</if>>
+
+<<if passage() != "Slave Interact">>
+    <<set $slaves[$slaveIndices[getSlave($AS).ID]] = getSlave($AS)>>
+<</if>>
diff --git a/src/npc/interaction/FFuckdollImpreg.tw b/src/npc/interaction/FFuckdollImpreg.tw
new file mode 100644
index 00000000000..708b564b4f3
--- /dev/null
+++ b/src/npc/interaction/FFuckdollImpreg.tw
@@ -0,0 +1,91 @@
+:: FFuckdollImpreg [nobr]
+
+<<set $AS = $activeSlave.ID>>
+<<setLocalPronouns $activeSlave>>
+<<set _bonus = random(6,20)>>
+
+<<if getSlave($AS).mpreg == 1>>
+    <<set getSlave($AS).counter.anal += _bonus+1, $analTotal += _bonus+1>>
+<<else>>
+    <<set getSlave($AS).counter.vaginal += _bonus+1, $vaginalTotal += _bonus+1>>
+<</if>>
+
+You decide to use the Fuckdoll's fertile womb to grow a child.
+<<if getSlave($AS).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 hasAnyLegs(getSlave($AS))>>push $him down to lie on the couch<<else>>set $him on your desk<</if>> and shove <<if $PC.dick != 0>>your cock<<else>>a strap-on<</if>> inside $his <<if getSlave($AS).mpreg == 1>>asshole<<else>>vagina<</if>>.
+<<elseif getSlave($AS).fuckdoll <= 70>>
+    $He can follow intermediate commands, so you order $him into a position for use of $his <<if getSlave($AS).mpreg == 1>>rear<<else>>front<</if>> hole. $He obediently <<if hasAllLimbs(getSlave($AS))>>gets down on all fours and <</if>>cocks $his hips, offering $his <<if getSlave($AS).mpreg == 1>>asspussy<<else>>cunt<</if>> until you insert your
+    <<if $PC.dick > 0>>
+        cock
+    <<else>>
+        strap-on
+    <</if>>
+    into $his <<if getSlave($AS).mpreg == 1>>winking<<else>>wet<</if>> channel.
+<<else>>
+    $He can follow advanced commands, so you bring $him over to your chair <<if hasAnyLegs(getSlave($AS))>>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 getSlave($AS).fuckdoll <= 20>>
+    $He's not fully used to being raped without warning, so $he struggles, $his muscles spasming delightfully.
+<<elseif getSlave($AS).fuckdoll <= 40>>
+    Aware that $he is supposed to relax and accept rape, $he does $his best to let you take $him without resistance.
+<<else>>
+    You command $him to milk your cock with $his <<if getSlave($AS).mpreg == 1>>anal<<else>>vaginal<</if>> walls, and $he obediently starts to flex $his well-developed <<if getSlave($AS).mpreg == 1>>cunt<<else>>anal<</if>> muscles, squeezing you from base to tip.
+<</if>>
+<<if getSlave($AS).fuckdoll <= 60>>
+    <<if getSlave($AS).energy > 40>>Denied any other outlet for $his healthy sex drive, $he orgasms.<</if>>
+<<else>>
+    $He orgasmed for the first time as you entered $him, and $he continues to do so as you fuck $him. $He's perfectly tuned.
+<</if>>
+<<if getSlave($AS).voice == 0>>
+    Though $he is mute, $his breath hisses loudly <<if getSlave($AS).lips > 95>>past the lips of $his facepussy<<else>>through $his mouth insert<</if>>.
+<<else>>
+    $He moans, <<if getSlave($AS).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 hasAnyLegs(getSlave($AS))>>a standing position<<else>>where $he was resting<</if>> to allow your seed to find $his mark.
+<<if getSlave($AS).mpreg == 1>>
+    <<if getSlave($AS).anus > 2>>Your cum flows out of $his gaping rear hole and down the material of $his suit.
+    <<elseif getSlave($AS).anus == 2>>Your cum drips out of $his well-fucked rear hole and down the material of $his suit.
+    <<else>>$His tight rear hole retains almost every drop of your cum. A few escape and run down the material of $his suit.
+    <</if>>
+    The Fuckdoll will be cleaned by another slave.
+    <<if getSlave($AS).anus == 0>>
+        <<if getSlave($AS).fetish != "mindbroken">>
+            As you return to your business, $he shakes slightly in place, and a few low moans come out of $his face hole. This is probably a reaction to losing $his anal virginity.
+        <<else>>
+            $He gives no external indication that $he's aware that $he's just lost $his virginity.
+        <</if>>
+        In any case, <span class="virginity loss">$his rear hole has been broken in.</span>
+        <<set getSlave($AS).anus = 1>>
+    <</if>>
+<<else>>
+    <<if getSlave($AS).vagina >= 10>>Your cum steadily flows from its prolapsed front hole and down the material of $his suit.
+    <<elseif getSlave($AS).vagina > 2>>Your cum flows out of $his gaping front hole and down the material of $his suit.
+    <<elseif getSlave($AS).vagina == 2>>Your cum drips out of $his well-fucked front hole and down the material of $his suit.
+    <<else>>$His tight front hole retains almost every drop of your cum. A few escape and run down the material of $his suit.
+    <</if>>
+    The Fuckdoll will be cleaned by another slave.
+    <<if getSlave($AS).vagina == 0>>
+        <<if getSlave($AS).fetish != "mindbroken">>
+            As you return to your business, $he shakes slightly in place, and a few low moans come out of $his face hole. This is probably a reaction to losing $his virginity.
+        <<else>>
+            $He gives no external indication that $he's aware that $he's just lost $his virginity.
+        <</if>>
+        In any case, <span class="virginity loss">$his front hole has been broken in.</span>
+        <<set getSlave($AS).vagina = 1>>
+    <</if>>
+<</if>>
+
+You repeat this ritual throughout the week, ensuring that $he will be an @@.pregnant;incubator for your child.@@
+
+<<= knockMeUp(getSlave($AS), 100, 2, -1, 1)>>
+
+<<if $arcologies[0].FSRestart != "unset" && $eugenicsFullControl != 1>>
+    <<if getSlave($AS).breedingMark != 1 || $propOutcome == 0>>
+        Rumors spread about you knocking up your playthings; the Societal Elite are @@.elites.loss; very displeased@@ by these rumors.
+        <<set $failedElite += 5>>
+    <</if>>
+<</if>>
+
+<<if passage() != "Slave Interact">>
+    <<set $slaves[$slaveIndices[getSlave($AS).ID]] = getSlave($AS)>>
+<</if>>
diff --git a/src/npc/interaction/FFuckdollOral.tw b/src/npc/interaction/FFuckdollOral.tw
new file mode 100644
index 00000000000..f9947dffa02
--- /dev/null
+++ b/src/npc/interaction/FFuckdollOral.tw
@@ -0,0 +1,36 @@
+:: FFuckdollOral [nobr]
+
+<<set $AS = $activeSlave.ID>>
+<<setLocalPronouns $activeSlave>>
+
+<<set getSlave($AS).counter.oral++, $oralTotal++>>
+You decide to use the Fuckdoll's <<if getSlave($AS).lips > 95>>facepussy<<else>>face hole<</if>>.
+<<if getSlave($AS).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 hasBothLegs(getSlave($AS))>>shove $him into a kneeling position<<else>>set $him on the couch<</if>> and straddle $his face.
+<<elseif getSlave($AS).fuckdoll <= 80>>
+    $He can follow intermediate commands, so you order $him into a position for use of $his face hole. $He obediently <<if hasBothLegs(getSlave($AS))>>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 hasAnyLegs(getSlave($AS))>><<if $PC.dick != 0>>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 getSlave($AS).fuckdoll <= 20>>
+    $He's not fully used to being surprised with face rape, so $he struggles, and $his difficulty breathing <<if $PC.dick != 0>>makes $his throat spasm around your dickhead<<else>>feels lovely on your cunt<</if>>.
+<<elseif getSlave($AS).fuckdoll <= 50>>
+    Aware that $he is supposed to relax and let you rape $his face, $he does $his best to let you <<if $PC.dick != 0>>fuck $his throat<<else>>ride $his face<</if>>.
+<<else>>
+    You command $him to <<if $PC.dick != 0>>milk your dick, and $he begins to suck with almost frightening force<<else>>pleasure your cunt, and $he begins to eat you out with almost frightening hunger<</if>>.
+<</if>>
+<<if getSlave($AS).fuckdoll <= 60>>
+    <<if getSlave($AS).energy > 80>>Denied any other outlet for $his extreme sex drive, $he orgasms from nothing more than oral stimulation.<</if>>
+<<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 != 0>>blowing your load down $his throat<<else>>giving $him a good amount of femcum to swallow<</if>>, and return $him to <<if hasAnyLegs(getSlave($AS))>>a standing position<<else>>where $he was resting<</if>>.
+<<if $PC.dick != 0>>
+    <<if getSlave($AS).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.
+    <</if>>
+<</if>>
+
+<<if passage() != "Slave Interact">>
+    <<set $slaves[$slaveIndices[getSlave($AS).ID]] = getSlave($AS)>>
+<</if>>
diff --git a/src/npc/interaction/FFuckdollVaginal.tw b/src/npc/interaction/FFuckdollVaginal.tw
new file mode 100644
index 00000000000..e777d62585b
--- /dev/null
+++ b/src/npc/interaction/FFuckdollVaginal.tw
@@ -0,0 +1,55 @@
+:: FFuckdollVaginal [nobr]
+
+<<set $AS = $activeSlave.ID>>
+<<setLocalPronouns $activeSlave>>
+
+<<set getSlave($AS).counter.vaginal++, $vaginalTotal++>>
+You decide to use the Fuckdoll's <<if getSlave($AS).vagina > 3>>cavernous<<elseif getSlave($AS).vagina == 3>>soft<<elseif getSlave($AS).vagina == 2>>inviting<<elseif getSlave($AS).vagina == 1>>tight<</if>> front hole.
+<<if getSlave($AS).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 hasAnyLegs(getSlave($AS))>>push $him down to lie on the couch<<else>>set $him on your desk<</if>> and shove <<if $PC.dick != 0>>your cock<<else>>a strap-on<</if>> inside $his vagina.
+<<elseif getSlave($AS).fuckdoll <= 70>>
+    $He can follow intermediate commands, so you order $him into a position for use of $his front hole. $He obediently <<if hasAllLimbs(getSlave($AS))>>gets down on all fours and <<elseif hasAnyLegs(getSlave($AS))>>bends over and <</if>>cocks $his hips, offering $his cunt until you insert <<if $PC.dick != 0>>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 hasAnyLegs(getSlave($AS))>>and order $him to squat down onto your <<if $PC.dick != 0>>cock<<else>>strap-on<</if>> and ride.<<else>>and impale $him on <<if $PC.dick != 0>>your cock<<else>>your strap-on<</if>>, ordering $him to do $his feeble best to bounce.<</if>>
+<</if>>
+<<if getSlave($AS).fuckdoll <= 20>>
+    $He's not fully used to being raped without warning, so $he struggles, $his muscles spasming delightfully.
+<<elseif getSlave($AS).fuckdoll <= 40>>
+    Aware that $he is supposed to relax and accept rape, $he does $his best to let you take $him without resistance.
+<<else>>
+    You command $him to milk your <<if $PC.dick != 0>>cock<<else>>strap-on<</if>> with $his vaginal walls, and $he obediently starts to flex $his well-developed cunt muscles, squeezing <<if $PC.dick != 0>>you<<else>>your strap-on<</if>> from base to tip.
+<</if>>
+<<if getSlave($AS).fuckdoll <= 60>>
+    <<if getSlave($AS).energy > 40>>Denied any other outlet for $his healthy sex drive, $he orgasms.<</if>>
+<<else>>
+    $He orgasmed for the first time as you entered $him, and $he continues to do so as you fuck $him. $He's perfectly tuned.
+<</if>>
+<<if getSlave($AS).voice == 0>>
+    Though $he is mute, $his breath hisses loudly <<if getSlave($AS).lips > 95>>past the lips of $his facepussy<<else>>through $his mouth insert<</if>>.
+<<else>>
+    $He moans, <<if getSlave($AS).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 != 0>>, your cum shooting forward to splash against $his womb,<</if>> and return $him to <<if hasAnyLegs(getSlave($AS))>>a standing position<<else>>where $he was resting<</if>>.
+<<if $PC.dick != 0>>
+    <<if getSlave($AS).vagina > 2>>Your cum flows out of $his gaping front hole and down the material of $his suit.
+    <<elseif getSlave($AS).vagina == 2>>Your cum drips out of $his well-fucked front hole and down the material of $his suit.
+    <<else>>$His tight front hole retains almost every drop of your cum. A few escape and run down the material of $his suit.
+    <</if>>
+    <<if canImpreg(getSlave($AS), $PC)>>
+        <<= knockMeUp(getSlave($AS), 5, 1, -1)>>
+    <</if>>
+    The Fuckdoll will be cleaned by another slave.
+<</if>>
+<<if getSlave($AS).vagina == 0>>
+    <<if getSlave($AS).fetish != "mindbroken">>
+        As you return to your business, $he shakes slightly in place, and a few low moans come out of $his face hole. This is probably a reaction to losing $his virginity.
+    <<else>>
+        $He gives no external indication that $he's aware that $he's just lost $his virginity.
+    <</if>>
+    In any case, @@.lime;$his front hole has been broken in.@@
+    <<set getSlave($AS).vagina = 1>>
+<</if>>
+
+<<if passage() != "Slave Interact">>
+    <<set $slaves[$slaveIndices[getSlave($AS).ID]] = getSlave($AS)>>
+<</if>>
diff --git a/src/npc/interaction/widgets/fFuckdollWidgets.tw b/src/npc/interaction/widgets/fFuckdollWidgets.tw
deleted file mode 100644
index 1a6129d5ca8..00000000000
--- a/src/npc/interaction/widgets/fFuckdollWidgets.tw
+++ /dev/null
@@ -1,248 +0,0 @@
-:: FFuckdoll [nobr widget]
-
-<<widget "FFuckdollOral">>
-	<<set $AS = $activeSlave.ID>>
-	<<setLocalPronouns $activeSlave>>
-
-	<<set getSlave($AS).counter.oral++, $oralTotal++>>
-	You decide to use the Fuckdoll's <<if getSlave($AS).lips > 95>>facepussy<<else>>face hole<</if>>.
-	<<if getSlave($AS).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 hasBothLegs(getSlave($AS))>>shove $him into a kneeling position<<else>>set $him on the couch<</if>> and straddle $his face.
-	<<elseif getSlave($AS).fuckdoll <= 80>>
-		$He can follow intermediate commands, so you order $him into a position for use of $his face hole. $He obediently <<if hasBothLegs(getSlave($AS))>>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 hasAnyLegs(getSlave($AS))>><<if $PC.dick != 0>>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 getSlave($AS).fuckdoll <= 20>>
-		$He's not fully used to being surprised with face rape, so $he struggles, and $his difficulty breathing <<if $PC.dick != 0>>makes $his throat spasm around your dickhead<<else>>feels lovely on your cunt<</if>>.
-	<<elseif getSlave($AS).fuckdoll <= 50>>
-		Aware that $he is supposed to relax and let you rape $his face, $he does $his best to let you <<if $PC.dick != 0>>fuck $his throat<<else>>ride $his face<</if>>.
-	<<else>>
-		You command $him to <<if $PC.dick != 0>>milk your dick, and $he begins to suck with almost frightening force<<else>>pleasure your cunt, and $he begins to eat you out with almost frightening hunger<</if>>.
-	<</if>>
-	<<if getSlave($AS).fuckdoll <= 60>>
-		<<if getSlave($AS).energy > 80>>Denied any other outlet for $his extreme sex drive, $he orgasms from nothing more than oral stimulation.<</if>>
-	<<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 != 0>>blowing your load down $his throat<<else>>giving $him a good amount of femcum to swallow<</if>>, and return $him to <<if hasAnyLegs(getSlave($AS))>>a standing position<<else>>where $he was resting<</if>>.
-	<<if $PC.dick != 0>>
-		<<if getSlave($AS).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.
-		<</if>>
-	<</if>>
-
-	<<if passage() != "Slave Interact">>
-		<<set $slaves[$slaveIndices[getSlave($AS).ID]] = getSlave($AS)>>
-	<</if>>
-
-<</widget>>
-
-<<widget "FFuckdollVaginal">>
-	<<set $AS = $activeSlave.ID>>
-	<<setLocalPronouns $activeSlave>>
-
-	<<set getSlave($AS).counter.vaginal++, $vaginalTotal++>>
-	You decide to use the Fuckdoll's <<if getSlave($AS).vagina > 3>>cavernous<<elseif getSlave($AS).vagina == 3>>soft<<elseif getSlave($AS).vagina == 2>>inviting<<elseif getSlave($AS).vagina == 1>>tight<</if>> front hole.
-	<<if getSlave($AS).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 hasAnyLegs(getSlave($AS))>>push $him down to lie on the couch<<else>>set $him on your desk<</if>> and shove <<if $PC.dick != 0>>your cock<<else>>a strap-on<</if>> inside $his vagina.
-	<<elseif getSlave($AS).fuckdoll <= 70>>
-		$He can follow intermediate commands, so you order $him into a position for use of $his front hole. $He obediently <<if hasAllLimbs(getSlave($AS))>>gets down on all fours and <<elseif hasAnyLegs(getSlave($AS))>>bends over and <</if>>cocks $his hips, offering $his cunt until you insert <<if $PC.dick != 0>>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 hasAnyLegs(getSlave($AS))>>and order $him to squat down onto your <<if $PC.dick != 0>>cock<<else>>strap-on<</if>> and ride.<<else>>and impale $him on <<if $PC.dick != 0>>your cock<<else>>your strap-on<</if>>, ordering $him to do $his feeble best to bounce.<</if>>
-	<</if>>
-	<<if getSlave($AS).fuckdoll <= 20>>
-		$He's not fully used to being raped without warning, so $he struggles, $his muscles spasming delightfully.
-	<<elseif getSlave($AS).fuckdoll <= 40>>
-		Aware that $he is supposed to relax and accept rape, $he does $his best to let you take $him without resistance.
-	<<else>>
-		You command $him to milk your <<if $PC.dick != 0>>cock<<else>>strap-on<</if>> with $his vaginal walls, and $he obediently starts to flex $his well-developed cunt muscles, squeezing <<if $PC.dick != 0>>you<<else>>your strap-on<</if>> from base to tip.
-	<</if>>
-	<<if getSlave($AS).fuckdoll <= 60>>
-		<<if getSlave($AS).energy > 40>>Denied any other outlet for $his healthy sex drive, $he orgasms.<</if>>
-	<<else>>
-		$He orgasmed for the first time as you entered $him, and $he continues to do so as you fuck $him. $He's perfectly tuned.
-	<</if>>
-	<<if getSlave($AS).voice == 0>>
-		Though $he is mute, $his breath hisses loudly <<if getSlave($AS).lips > 95>>past the lips of $his facepussy<<else>>through $his mouth insert<</if>>.
-	<<else>>
-		$He moans, <<if getSlave($AS).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 != 0>>, your cum shooting forward to splash against $his womb,<</if>> and return $him to <<if hasAnyLegs(getSlave($AS))>>a standing position<<else>>where $he was resting<</if>>.
-	<<if $PC.dick != 0>>
-		<<if getSlave($AS).vagina > 2>>Your cum flows out of $his gaping front hole and down the material of $his suit.
-		<<elseif getSlave($AS).vagina == 2>>Your cum drips out of $his well-fucked front hole and down the material of $his suit.
-		<<else>>$His tight front hole retains almost every drop of your cum. A few escape and run down the material of $his suit.
-		<</if>>
-		<<if canImpreg(getSlave($AS), $PC)>>
-			<<= knockMeUp(getSlave($AS), 5, 1, -1)>>
-		<</if>>
-		The Fuckdoll will be cleaned by another slave.
-	<</if>>
-	<<if getSlave($AS).vagina == 0>>
-		<<if getSlave($AS).fetish != "mindbroken">>
-			As you return to your business, $he shakes slightly in place, and a few low moans come out of $his face hole. This is probably a reaction to losing $his virginity.
-		<<else>>
-			$He gives no external indication that $he's aware that $he's just lost $his virginity.
-		<</if>>
-		In any case, @@.lime;$his front hole has been broken in.@@
-		<<set getSlave($AS).vagina = 1>>
-	<</if>>
-
-	<<if passage() != "Slave Interact">>
-		<<set $slaves[$slaveIndices[getSlave($AS).ID]] = getSlave($AS)>>
-	<</if>>
-
-<</widget>>
-
-<<widget "FFuckdollImpreg">>
-
-	<<set $AS = $activeSlave.ID>>
-	<<setLocalPronouns $activeSlave>>
-	<<set _bonus = random(6,20)>>
-
-	<<if getSlave($AS).mpreg == 1>>
-		<<set getSlave($AS).counter.anal += _bonus+1, $analTotal += _bonus+1>>
-	<<else>>
-		<<set getSlave($AS).counter.vaginal += _bonus+1, $vaginalTotal += _bonus+1>>
-	<</if>>
-
-	You decide to use the Fuckdoll's fertile womb to grow a child.
-	<<if getSlave($AS).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 hasAnyLegs(getSlave($AS))>>push $him down to lie on the couch<<else>>set $him on your desk<</if>> and shove <<if $PC.dick != 0>>your cock<<else>>a strap-on<</if>> inside $his <<if getSlave($AS).mpreg == 1>>asshole<<else>>vagina<</if>>.
-	<<elseif getSlave($AS).fuckdoll <= 70>>
-		$He can follow intermediate commands, so you order $him into a position for use of $his <<if getSlave($AS).mpreg == 1>>rear<<else>>front<</if>> hole. $He obediently <<if hasAllLimbs(getSlave($AS))>>gets down on all fours and <</if>>cocks $his hips, offering $his <<if getSlave($AS).mpreg == 1>>asspussy<<else>>cunt<</if>> until you insert your
-		<<if $PC.dick > 0>>
-			cock
-		<<else>>
-			strap-on
-		<</if>>
-		into $his <<if getSlave($AS).mpreg == 1>>winking<<else>>wet<</if>> channel.
-	<<else>>
-		$He can follow advanced commands, so you bring $him over to your chair <<if hasAnyLegs(getSlave($AS))>>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 getSlave($AS).fuckdoll <= 20>>
-		$He's not fully used to being raped without warning, so $he struggles, $his muscles spasming delightfully.
-	<<elseif getSlave($AS).fuckdoll <= 40>>
-		Aware that $he is supposed to relax and accept rape, $he does $his best to let you take $him without resistance.
-	<<else>>
-		You command $him to milk your cock with $his <<if getSlave($AS).mpreg == 1>>anal<<else>>vaginal<</if>> walls, and $he obediently starts to flex $his well-developed <<if getSlave($AS).mpreg == 1>>cunt<<else>>anal<</if>> muscles, squeezing you from base to tip.
-	<</if>>
-	<<if getSlave($AS).fuckdoll <= 60>>
-		<<if getSlave($AS).energy > 40>>Denied any other outlet for $his healthy sex drive, $he orgasms.<</if>>
-	<<else>>
-		$He orgasmed for the first time as you entered $him, and $he continues to do so as you fuck $him. $He's perfectly tuned.
-	<</if>>
-	<<if getSlave($AS).voice == 0>>
-		Though $he is mute, $his breath hisses loudly <<if getSlave($AS).lips > 95>>past the lips of $his facepussy<<else>>through $his mouth insert<</if>>.
-	<<else>>
-		$He moans, <<if getSlave($AS).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 hasAnyLegs(getSlave($AS))>>a standing position<<else>>where $he was resting<</if>> to allow your seed to find $his mark.
-	<<if getSlave($AS).mpreg == 1>>
-		<<if getSlave($AS).anus > 2>>Your cum flows out of $his gaping rear hole and down the material of $his suit.
-		<<elseif getSlave($AS).anus == 2>>Your cum drips out of $his well-fucked rear hole and down the material of $his suit.
-		<<else>>$His tight rear hole retains almost every drop of your cum. A few escape and run down the material of $his suit.
-		<</if>>
-		The Fuckdoll will be cleaned by another slave.
-		<<if getSlave($AS).anus == 0>>
-			<<if getSlave($AS).fetish != "mindbroken">>
-				As you return to your business, $he shakes slightly in place, and a few low moans come out of $his face hole. This is probably a reaction to losing $his anal virginity.
-			<<else>>
-				$He gives no external indication that $he's aware that $he's just lost $his virginity.
-			<</if>>
-			In any case, <span class="virginity loss">$his rear hole has been broken in.</span>
-			<<set getSlave($AS).anus = 1>>
-		<</if>>
-	<<else>>
-		<<if getSlave($AS).vagina >= 10>>Your cum steadily flows from its prolapsed front hole and down the material of $his suit.
-		<<elseif getSlave($AS).vagina > 2>>Your cum flows out of $his gaping front hole and down the material of $his suit.
-		<<elseif getSlave($AS).vagina == 2>>Your cum drips out of $his well-fucked front hole and down the material of $his suit.
-		<<else>>$His tight front hole retains almost every drop of your cum. A few escape and run down the material of $his suit.
-		<</if>>
-		The Fuckdoll will be cleaned by another slave.
-		<<if getSlave($AS).vagina == 0>>
-			<<if getSlave($AS).fetish != "mindbroken">>
-				As you return to your business, $he shakes slightly in place, and a few low moans come out of $his face hole. This is probably a reaction to losing $his virginity.
-			<<else>>
-				$He gives no external indication that $he's aware that $he's just lost $his virginity.
-			<</if>>
-			In any case, <span class="virginity loss">$his front hole has been broken in.</span>
-			<<set getSlave($AS).vagina = 1>>
-		<</if>>
-	<</if>>
-
-	You repeat this ritual throughout the week, ensuring that $he will be an @@.pregnant;incubator for your child.@@
-
-	<<= knockMeUp(getSlave($AS), 100, 2, -1, 1)>>
-
-	<<if $arcologies[0].FSRestart != "unset" && $eugenicsFullControl != 1>>
-		<<if getSlave($AS).breedingMark != 1 || $propOutcome == 0>>
-			Rumors spread about you knocking up your playthings; the Societal Elite are @@.elites.loss; very displeased@@ by these rumors.
-			<<set $failedElite += 5>>
-		<</if>>
-	<</if>>
-
-	<<if passage() != "Slave Interact">>
-		<<set $slaves[$slaveIndices[getSlave($AS).ID]] = getSlave($AS)>>
-	<</if>>
-
-<</widget>>
-
-<<widget "FFuckdollAnal">>
-
-	<<set $AS = $activeSlave.ID>>
-	<<setLocalPronouns $activeSlave>>
-
-	<<set getSlave($AS).counter.anal++, $analTotal++>>
-	You decide to use the Fuckdoll's <<if getSlave($AS).anus > 3>>gaping<<elseif getSlave($AS).anus == 3>>loose<<elseif getSlave($AS).anus == 2>>relaxed<<elseif getSlave($AS).anus == 1>>tight<</if>> rear hole.
-	<<if getSlave($AS).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 hasAnyLegs(getSlave($AS))>>walk over to $him<<else>>flip $him over<</if>> and ram <<if $PC.dick != 0>>your cock<<else>>a strap-on<</if>> up $his rear hole.
-	<<elseif getSlave($AS).fuckdoll <= 80>>
-		$He can follow intermediate commands, so you order $him to present $his rear hole. $He obediently <<if hasAnyLegs(getSlave($AS))>>bends over, arches $his back, and<<else>>flips over and<</if>> winks $his anus until you insert <<if $PC.dick != 0>>your cock<<else>>a strap-on<</if>>.
-	<<else>>
-		$He can follow advanced commands, so you bring $him over to your chair <<if hasAnyLegs(getSlave($AS))>>and order $him to squat down onto your <<if $PC.dick != 0>>cock<<else>>strap-on<</if>> and slide $his anus up and down <<if $PC.dick != 0>>your<<else>>the<</if>> shaft.<<else>>and impale $him on <<if $PC.dick != 0>>your cock<<else>>your strap-on<</if>>, ordering $him to do $his feeble best to bounce.<</if>>
-	<</if>>
-	<<if getSlave($AS).fuckdoll <= 20>>
-		$He's not fully used to having things suddenly forced up $his ass, so $he struggles, and $his sphincter spasms deliciously.
-	<<elseif getSlave($AS).fuckdoll <= 40>>
-		Aware that $he is supposed to relax and accept anal rape, $he does $his best to accommodate the sodomy.
-	<<else>>
-		You command $him to milk your <<if $PC.dick != 0>>cock<<else>>strap-on<</if>> with $his asshole, and $he obediently tightens $his sphincter against the invading phallus rhythmically.
-	<</if>>
-	<<if getSlave($AS).fuckdoll <= 60>>
-		<<if getSlave($AS).energy > 60>>Denied any other outlet for $his powerful sex drive, $he orgasms.<</if>>
-	<<else>>
-		Tuned to enjoy any use by total denial of all other stimulation, $he orgasms repeatedly as you fuck $his anus.
-	<</if>>
-	<<if getSlave($AS).voice == 0>>
-		Though $he is mute, $his breath hisses loudly <<if getSlave($AS).lips > 95>>past the lips of $his facepussy<<else>>through $his mouth insert<</if>>.
-	<<else>>
-		$He moans, <<if getSlave($AS).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 != 0>>, filling $his rectum with your cum,<</if>> and return $him to <<if hasAnyLegs(getSlave($AS))>>a standing position<<else>>where $he was resting<</if>>.
-	<<if $PC.dick != 0>>
-		<<if getSlave($AS).anus > 2>>Your cum flows out of $his gaped rear hole and down the material of $his suit.
-		<<elseif getSlave($AS).anus == 2>>Your cum drips out of $his loosened rear hole and down the material of $his suit.
-		<<else>>$His tight rear hole retains every drop of your cum.
-		<</if>>
-		<<if canImpreg(getSlave($AS), $PC)>>
-			<<= knockMeUp(getSlave($AS), 5, 0, -1)>>
-		<</if>>
-		The Fuckdoll will be cleaned by another slave.
-	<</if>>
-	<<if getSlave($AS).anus == 0>>
-		<<if getSlave($AS).fetish != "mindbroken">>
-			As you return to your business, $he shakes slightly in place, and a few low moans come out of $his face hole. This is probably a reaction to losing $his anal virginity.
-		<<else>>
-			$He gives no external indication that $he's aware that $he's just lost $his anal virginity.
-		<</if>>
-		In any case, <span class="virginity loss">$his rear hole has been broken in.</span>
-		<<set getSlave($AS).anus = 1>>
-	<</if>>
-
-	<<if passage() != "Slave Interact">>
-		<<set $slaves[$slaveIndices[getSlave($AS).ID]] = getSlave($AS)>>
-	<</if>>
-
-<</widget>>
-- 
GitLab