:: FSlaveSelfImpreg [nobr no-history]

<<set $AS = $activeSlave.ID>>
<<setLocalPronouns $activeSlave>>

<<set _pfh = (getSlave($AS).fetish == "pregnancy" && getSlave($AS).fetishStrength > 50)>>
<<set _pfk = (_pfh && getSlave($AS).fetishKnown == 1) || getSlave($AS).sexualFlaw == "breeder">>
<<set _coop = true, _enjoy = true>>
<<set _superfetation = (getSlave($AS).geneticQuirks.superfetation == 2 && getSlave($AS).pregKnown == 1) ? 1 : 0>>

<<if (getSlave($AS).fetish == "mindbroken")>>
<<else>>
	<<if (getSlave($AS).devotion <= 20)>>
		<<if (getSlave($AS).devotion < -20)>>
			<<= getSlave($AS).slaveName>> despises you, and tends to resent everything you do on principle,
		<<elseif (getSlave($AS).devotion <= 20)>>
			<<= getSlave($AS).slaveName>> dislikes you,
		<</if>>
		<<if (getSlave($AS).sexualFlaw == "breeder" || (_pfh && getSlave($AS).fetishStrength > 90))>>
			but the idea of simultaneously impregnating and being impregnated is @@.hotpink;so tempting@@ that $he's @@.mediumaquamarine;grateful@@ to you despite $himself.
			<<set getSlave($AS).devotion += 2, getSlave($AS).trust += 1>>
		<<elseif (_pfk)>>
			but $his obvious predilection for being pregnant significantly lessens the @@.mediumorchid;indignity@@ of the situation.
			<<set _coop = false>>
			<<set getSlave($AS).devotion -= 2>>
		<<elseif (_pfh)>>
			but, despite the @@.mediumorchid;indignity@@ of the situation, $his resistance seems strangely muted. It's fairly obvious that something about the idea of being impregnated is @@.hotpink;strangely appealing@@ to $him.
			<<set _coop = false>>
			<<set getSlave($AS).devotion -= 4>>
		<<else>>
			<<if (isAmputee(getSlave($AS)))>>
				and this @@.gold;uniquely degrading@@ violation of $his person only reinforces $his @@.mediumorchid;hatred@@ towards you. The fact that $he is @@.gold;utterly immobile@@ makes a terrifying situation @@.mediumorchid;even worse.@@
				<<set getSlave($AS).devotion -= 1, getSlave($AS).trust -= 1>>
			<<else>>
				and this @@.gold;uniquely degrading@@ violation of $his person only reinforces $his @@.mediumorchid;hatred@@ towards you. $He resists so violently that you must @@.red;physically coerce $him@@ into cooperating with the procedure.
			<</if>>
			<<set _coop = false, _enjoy = false>>
			<<set getSlave($AS).devotion -= 5, getSlave($AS).trust -= 6>>
		<</if>>
	<<elseif (_pfk)>>
		<<= getSlave($AS).slaveName>> @@.hotpink;genuinely enjoys@@ impregnation and pregnancy, so $he is @@.mediumaquamarine;grateful@@ that you're giving $him a chance to become so intimately acquainted with both aspects of $his fetish at the same time.
		<<set getSlave($AS).devotion += 4, getSlave($AS).trust += 2>>
		<<if (getSlave($AS).devotion > 50 && $arcologies[0].FSRepopulationFocus > 10)>>
			$He also feels @@.hotpink;proud@@ that $he can be a @@.mediumaquamarine;self-sustaining@@ source of offspring to support your vision of the future.
			<<set getSlave($AS).devotion += 1, getSlave($AS).trust += 1>>
		<</if>>
	<<else>>
		<<if (_pfh)>>
			Even though you aren't aware of any special fondness for pregnancy, <<= getSlave($AS).slaveName>> seems @@.hotpink;oddly eager@@ to cooperate with you. It quickly becomes obvious that $he is @@.lightcoral;fascinated with pregnancy@@ and you've @@.mediumaquamarine;helped $him discover this@@ about $himself.
			<<set getSlave($AS).devotion += 1, getSlave($AS).trust += 1, getSlave($AS).fetishKnown = 1>>
		<<elseif (getSlave($AS).behavioralQuirk == "perverted")>>
			Despite having no particular interest in pregnancy, the @@.hotpink;sheer perversity@@ of impregnating $himself is palpably arousing to <<= getSlave($AS).slaveName>>.
			<<set getSlave($AS).trust += 1>>
		<<elseif (getSlave($AS).energy > 90)>>
			Despite having no particular interest in pregnancy, <<= getSlave($AS).slaveName>>'s overwhelming sex drive causes $him to be aroused at the prospect of any sex, even if it happens to be with $himself.
		<<elseif (getSlave($AS).devotion > 50)>>
			Despite having no particular interest in pregnancy, <<= getSlave($AS).slaveName>> is eager to @@.hotpink;submit to your vision@@ of $him.
			<<set getSlave($AS).trust += 1>>
			<<if (getSlave($AS).devotion > 50 && $arcologies[0].FSRepopulationFocus > 10)>>
				$He also feels @@.hotpink;proud@@ that $he can be a @@.mediumaquamarine;self-sustaining@@ source of offspring to support your vision of the future.
				<<set getSlave($AS).devotion += 1, getSlave($AS).trust += 1>>
			<</if>>
			<<set _enjoy = false>>
		<<else>>
			<<= getSlave($AS).slaveName>> cooperates without any protest. $He may not particularly enjoy pregnancy or impregnation, but $he's too well-broken to resist or speak against you.
			<<set _enjoy = false>>
		<</if>>
	<</if>>
<</if>>

<<if (getSlave($AS).fetish == "mindbroken")>>
	<<= getSlave($AS).slaveName>> is dully cooperative as you ensure $he is positioned conveniently on a bench to give you access to both aspects of $his genitalia. A quick dose of vasodilators ensures that $he is ready to perform, even if $he is unable to fully comprehend what is about to happen. Once $he is fully erect, your personal assistant uses a mechanical toy to efficiently stimulate $him to climax, while you hold a small container in place to collect $his emission. Moments later, you've loaded <<= getSlave($AS).slaveName>>'s seed into a syringe and dispensed the contents deep within $his <<if getSlave($AS).mpreg == 1>>ass<<else>>vagina<</if>>.
<<elseif (isAmputee(getSlave($AS)))>>
	<<if (_coop && _enjoy)>>
		Although <<= getSlave($AS).slaveName>> is unable to do much to help, $his expression is visibly excited as you place $him on a bench, and produce a sample container and syringe.
	<<elseif (_enjoy)>>
		A maelstrom of emotions fill <<= getSlave($AS).slaveName>>'s face as you carry $him to a bench, and produce a sample cup and syringe.
		<<if (getSlave($AS).dick > 6)>>
			You can't tell if $he's relieved or disappointed when $his excessive size interferes, as usual, with $his erection, but an injection of vasodilators quickly makes the question moot.
		<</if>>
		At your instruction, your personal assistant descends with a selection of toys to ensure quick ejaculation. Pleasure, lust, terror, and loathing play across <<= getSlave($AS).slaveName>>'s face as $his arousal mounts and $his hips begin to buck. By the time $he begins to ejaculate, pleasure and lust have won out and $he throws $his head back in abandon as $his emission fills the cup in your hands. <<if !canSee(getSlave($AS))>>Although $he cannot see what you are doing, $his expression is rapt, almost dreamlike,<<else>>$He watches with rapt fascination<</if>> as you load the syringe with $his sperm, slide it into $his <<if getSlave($AS).mpreg == 1>>ass<<else>>vagina<</if>>, and shoot the contents home, deep against $his waiting cervix.
	<<elseif (_coop)>>
		<<= getSlave($AS).slaveName>> is calm and docile as you place $him on a bench, and produce a sample container and syringe. With no other option, $he throws back $his head and enjoys the stimulation as your personal assistant, at your instruction, begins stimulating $him to orgasm. When $he ejaculates, you carefully catch every drop in the sample cup, load the syringe, and inject the contents directly against $his cervix.
	<<else>>
		Although <<= getSlave($AS).slaveName>> frantically squirms in a futile attempt to resist as you place $him on a bench, and produce a sample cup and syringe. Without limbs to aid $his escape, $he can only <<if !canSee(getSlave($AS))>>blindly wait<<else>>watch<</if>> in helpless horror as the vasodilators you inject bring $his manhood to complete erectness and your personal assistant, at your instruction, begins stimulating $him. $He sobs in helpless despair as $his rigid shaft begins to throb, filling the cup with a terribly potent load of $his seed; $he frantically shakes $his head, face streaked with tears, as you dip the syringe into the cup, withdraw the plunger, insert it into $his exposed <<if getSlave($AS).mpreg == 1>>ass<<else>>vagina<</if>>, and shoot the contents directly against the opening to $his womb.
	<</if>>
<<elseif (_coop)>>
	<<if (_enjoy)>>
		<<if (getSlave($AS).dick > 6 && getSlave($AS).balls <= 4)>>
			Although $he is aroused by the idea of impregnating $himself, <<= getSlave($AS).slaveName>>'s cock is simply too large to easily become erect. A quick injection of vasodilators later, and $he's ready to go. Because $he's so eager, you simply stand back and let the magic happen.
			<<if (getSlave($AS).vagina == 0 && getSlave($AS).mpreg != 1) || (getSlave($AS).anus == 0 && getSlave($AS).mpreg == 1)>>
				As ways to lose one's virginity go, this is one hell of a way to do it. Without needing any instruction, <<= getSlave($AS).slaveName>> grasps $his massive shaft <<if hasBothArms(getSlave($AS))>>in both hands<<elseif !hasAnyArms(getSlave($AS))>>as best $he can with the stumps of $his arms<<else>>with $his hand<</if>> and feeds it around so the head is <<if getSlave($AS).mpreg == 1>>kissing $his anus<<else>>nestled between $his own labia<</if>>. $He shows only the tiniest hesitation before easing $his cock inside $his own body, @@.lime;<<if getSlave($AS).mpreg == 1>>through $his virgin backdoor<<else>>past $his maidenhead<</if>>,@@ until you can tell the head is nestled snugly against $his own cervix.
				<<if getSlave($AS).mpreg == 1>>
					<<set getSlave($AS).anus = 1>>
				<<else>>
					<<set getSlave($AS).vagina = 1>>
				<</if>>
			<<else>>
				Without needing any instruction, <<= getSlave($AS).slaveName>> grasps $his massive shaft <<if hasBothArms(getSlave($AS))>>in both hands<<elseif !hasAnyArms(getSlave($AS))>>as best $he can with the stumps of $his arms<<else>>with $his hand<</if>> and feeds it around so the head is <<if getSlave($AS).mpreg == 1>>kissing $his anus<<else>>nestled between $his own labia<</if>>. $He works it up and down for a second, relishing the sensation, and then plunges $his cock into $his own body until you can tell the tip is wedged against $his own cervix.
			<</if>>
			Without another partner to rut against, <<= getSlave($AS).slaveName>> has to rely on <<if hasBothArms(getSlave($AS))>>$his own hands<<else>>the floor tiles<<if hasAnyArms(getSlave($AS))>> and $his hand<</if>><</if>>, bucking $his hips up against them to drive the impressively curved shaft into $his own body with increasing desperation until $his whole body shudders; $his cock throbs as $his <<if getSlave($AS).mpreg == 1>>ass<<else>>vagina<</if>> eagerly drinks up $his own seed.
		<<else>>
			<<if (getSlave($AS).trust < -20)>>
				Although $he is aroused by the idea of impregnating $himself, <<= getSlave($AS).slaveName>> is too terrified to achieve an erection without assistance. It takes an injection of vasodilators to overcome $his nerves and restore $his manhood to proper functioning.
			<<else>>
				Merely thinking about what you're about to do has <<= getSlave($AS).slaveName>> fully erect, with a small bead of precum running down $his shaft and blending with the <<if getSlave($AS).mpreg == 1>>lubricant dripping from between $his cheeks<<else>>feminine wetness dripping from <<if hasBothLegs(getSlave($AS))>>between $his legs<<else>>$his crotch<</if>><</if>>.
			<</if>>
			<!-- todo: if slave has lover/wife, let them "do the honors" -->
			<<if (getSlave($AS).balls > 4)>>
				Since $his balls are too large to permit any other options, you produce a special toy for <<= getSlave($AS).slaveName>> — an onahole attached by a flexible tube to a dildo, with an embedded micro-pump to ensure any fluid in the onahole makes its way out of the dildo.
			<<else>>
				Since $he's not large enough to simply fuck $himself, you produce a special toy for <<= getSlave($AS).slaveName>> — an onahole attached by a flexible tube to a dildo, with an embedded micro-pump to ensure any fluid in the onahole makes its way out of the dildo.
			<</if>>
			<<if (getSlave($AS).vagina == 0 && getSlave($AS).mpreg != 1) || (getSlave($AS).anus == 0 && getSlave($AS).mpreg == 1)>>
				As ways to lose one's virginity go, this is one hell of a way to do it. <<= getSlave($AS).slaveName>> trembles with excitement as $he brings the synthetic shaft <<if hasBothLegs(getSlave($AS))>>between $his legs<<else>>to $his groin<</if>> and slowly works it @@.lime;into $his virgin <<if getSlave($AS).mpreg == 1>>anus<<else>>pussy<</if>>.@@
				<<if getSlave($AS).mpreg == 1>>
					<<set getSlave($AS).anus = 1>>
				<<else>>
					<<set getSlave($AS).vagina = 1>>
				<</if>>
			<<else>>
				<<= getSlave($AS).slaveName>> eagerly rams the synthetic shaft as deeply into $his <<if getSlave($AS).mpreg == 1>>ass<<else>>pussy<</if>> as it will go, obviously fantasizing that $he's driving $his own dick into $his <<if getSlave($AS).mpreg == 1>>winking anus<<else>>dripping pussy<</if>>.
			<</if>>
			You help $him keep the dildo in place while $he works the onahole onto $his cock and begins stroking up and down. The stimulation of being filled and having $his dick stroked doesn't give $him much time to enjoy what $he's doing before $his hips buck wildly and you see semen traveling from the pump, along the clear plastic tube, and into the base of the dildo embedded deeply in <<= getSlave($AS).slaveName>>'s throbbing <<if getSlave($AS).mpreg == 1>>asshole<<else>>vagina<</if>>.
		<</if>>
	<<else>>
		<<if (getSlave($AS).devotion > 50)>>
			<<if (getSlave($AS).dick > 6)>>
				No matter how hard $he tries, <<= getSlave($AS).slaveName>>'s dick is simply too large for $him to achieve erection on $his own. You're about to inject $him with a vasodilator to remedy the problem, when $he tries to take the syringe from your hand. Normally such impudence would be a grave violation, but it's obvious that $his actions are only motivated by loyalty — $he wants to fix this problem $himself so $he can feel like $he isn't failing you because of a physical inadequacy that is, admittedly, not $his fault. You relinquish the syringe and watch as $he injects $himself with the drugs necessary to achieve a full erection.
			<<else>>
				Despite a complete lack of sexual interest in the procedure, <<= getSlave($AS).slaveName>> is able to quickly bring $himself to full erectness without any help.
			<</if>>
		<<else>>
			<<if (getSlave($AS).dick > 6)>>
				<<= getSlave($AS).slaveName>> doesn't try all that hard to achieve erection, but it's obvious that the sheer size of $his cock would make it impossible anyway. $He silently cooperates as you inject $him with vasodilators to forcibly make $him erect.
			<<else>>
				Despite a complete lack of sexual interest in the procedure, <<= getSlave($AS).slaveName>> is able to eventually bring $himself to full erectness without any help.
			<</if>>
		<</if>>
		<!-- todo: if slave has lover/wife, let them "do the honors" -->
		You produce a sample container and syringe; <<= getSlave($AS).slaveName>> gets the idea and immediately begins jacking off. When $he ejaculates, $he carefully holds the cup <<if hasBothArms(getSlave($AS))>>with one hand<<else>>in front of $him<</if>> to catch every drop of $his virile seed. A moment later $he dips the syringe into the container and withdraws the plunger.
		<<if (getSlave($AS).devotion > 50)>>
			$He blushes a bit, hands you the syringe, and lies back on the bench, <<if hasBothLegs(getSlave($AS))>>spreading $his legs invitingly<<else>>presenting $himself<</if>>. You insert the syringe carefully into $his <<if getSlave($AS).mpreg == 1>>ass<<else>>vagina<</if>> as far as it will go, and spray $his sperm directly against $his waiting cervix.
		<<else>>
			You take the syringe from $him and gesture for $him to lie back; once $he's in position, you insert the syringe carefully into $his <<if getSlave($AS).mpreg == 1>>ass<<else>>vagina<</if>> and spray $his sperm directly against $his waiting cervix.
		<</if>>
	<</if>>
<<else>>
	<<if (_enjoy)>>
		Although <<= getSlave($AS).slaveName>> is anything but eager to cooperate, you don't have to drag $him. It's obvious that $his resistance is conflicting with the raw desire to fill $himself with $his own seed.
		<<if (getSlave($AS).dick > 6 && getSlave($AS).balls <= 4)>>
			While the size of $his cock makes it necessary for you to inject $him with vasodilators for $him to become properly erect, $his resistance is minimal.
			<<if getSlave($AS).vagina == 0>>
				You instruct $him to fuck $himself; by this point, $he's too far gone to object, even though obeying will rob $him of $his virginity. $His <<if hasBothArms(getSlave($AS))>>hands shake<<else>>lip quivers<</if>> with roiling emotions as $he lines $his cock up with $his own opening and gingerly works it into $his @@.lime;virgin <<if getSlave($AS).mpreg == 1>>anus<<else>>pussy<</if>>.@@
				<<if getSlave($AS).mpreg == 1>>
					<<set getSlave($AS).anus = 1>>
				<<else>>
					<<set getSlave($AS).vagina = 1>>
				<</if>>
			<<else>>
				You instruct $him to fuck $himself; by this point, $he's too far gone to object. $His <<if hasBothArms(getSlave($AS))>>hands shake<<else>>lip quivers<</if>> as $he lines $his cock up with $his own opening; $he lets out a sound halfway between a sob and a moan as $he penetrates $himself.
			<</if>>
			Without another partner to thrust against, <<= getSlave($AS).slaveName>> has to use $his remarkable shaft like a dildo, sliding it in and out of $his increasingly dripping sex. The potent mix of shame and arousal drives $him to orgasm quickly, and only a couple of minutes pass before you see $his shaft throbbing as $he fucks a baby into $his own belly.
		<<else>>
			<<if (getSlave($AS).dick > 6)>>
				<<= getSlave($AS).slaveName>>'s balls are too large to make any other options possible, but $he is still too large to achieve erection easily. You can't tell if $he is disappointed, or relieved, by this fact, but a quick injection of vasodilators makes the question moot either way.
			<<else>>
				$His cock is rigidly erect almost immediately, a fact which brings a confusing mixture of shame and arousal to $his face.
			<</if>>
			You produce a sample container and syringe; <<= getSlave($AS).slaveName>> gets the idea and reluctantly begins jacking off. When $he ejaculates, $he carefully holds the cup with one hand to catch every drop of $his seed. A moment later $he dips the syringe into the container and withdraws the plunger. $He hesitates, likely because the release has restored some of $his self control to $him, but before $he can do anything to escape, you press $him down with one hand and feed the syringe into $his <<if getSlave($AS).mpreg == 1>>anus<<else>>pussy<</if>>, depressing the plunger as soon as it's deeply inside $him.
			<!-- possible todo: allow Head Girl to do this part?-->
		<</if>>
	<<else>>
		The repulsion <<= getSlave($AS).slaveName>> feels toward both you and what you're about to force $him to do make $his cooperation entirely out of the question. You are forced to restrain $him with straps, kicking and sobbing; the sobbing only gets louder when $he feels the prick of a needle shooting vasodilators into $his crotch. Moments later, despite $his best efforts, $he is painfully erect and ready for you to proceed. Since $he's guaranteed to make this as difficult as possible, you opt for the simplest solution: you take a condom and apply it to $his penis; once $he's sheathed, you instruct your personal assistant, using toys, to forcibly stimulate $him until $he ejaculates and remove the condom. Loading the contents into a syringe and injecting them into $his <<if getSlave($AS).mpreg == 1>>ass<<else>>vagina<</if>> is a simple matter, because of the straps, and moments later $he sobs in despair as $his sperm begins racing into $his waiting womb.
	<</if>>
<</if>>

<<set _actCount = random(2,8)+1>>
<<set getSlave($AS).counter.penetrative += _actCount, $penetrativeTotal += _actCount>>
<<if getSlave($AS).mpreg == 1>>
	<<set getSlave($AS).counter.anal += _actCount, $analTotal += _actCount>>
<<else>>
	<<set getSlave($AS).counter.vaginal += _actCount, $vaginalTotal += _actCount>>
<</if>>

You repeat this ritual throughout the week, ensuring that <<= getSlave($AS).slaveName>>
<<if _superfetation == 1>>
	has @@.lime;added another child@@ to $his pregnancy.
<<else>>
	is @@.lime;carrying $his own child.@@
<</if>>

<<= knockMeUp(getSlave($AS), 100, 2, getSlave($AS).ID, 1)>>

<<if $arcologies[0].FSRestart != "unset">>
	<<if (getSlave($AS).breedingMark != 1 || $propOutcome == 0) && $eugenicsFullControl != 1>>
		Rumors spread about you having your slaves breed; the Societal Elite are @@.red; very displeased@@ by these rumors.
		<<set $failedElite += 5>>
	<</if>>
<</if>>

<<if ($arcologies[0].FSRepopulationFocus != "unset" && ($arcologies[0].FSGenderFundamentalist == "unset" || $arcologies[0].FSRepopulationFocus >= $arcologies[0].FSGenderFundamentalist))>>
	<!-- seems logical that repop would trump anything else if it's equal-or-more advanced than fundamentalism.-->
	<<if $arcologies[0].FSGenderFundamentalist != "unset">>
		<<set _delt = $arcologies[0].FSRepopulationFocus - $arcologies[0].FSGenderFundamentalist>>
	<<else>>
		<<set _delt = $arcologies[0].FSRepopulationFocus>>
	<</if>>
	<<if _delt > 0>>
		Society is @@.green;pleased@@ by the addition of a new slave, no matter the means by which it was produced.
		<<run repX($FSSingleSlaveRep*($arcologies[0].FSRepopulationFocus/$FSLockinLevel), "futureSocieties", getSlave($AS))>>
	<<else>>
		The traditional elements of your society disapprove of this degenerate form of reproduction, but their complaints are countered by those who believe producing more slaves by any means necessary.
	<</if>>
<<elseif $arcologies[0].FSGenderFundamentalist != "unset">>
	Society @@.red;is disgusted@@ by this degenerate form of reproduction.
	<<run repX(forceNeg($FSSingleSlaveRep*($arcologies[0].FSGenderFundamentalist/$FSLockinLevel)), "futureSocieties", getSlave($AS))>>
	<<set $arcologies[0].FSGenderFundamentalist -= 0.05*$FSSingleSlaveRep>>
<</if>>

src/npc/interaction/fSlaveSelfImpreg.tw