diff --git a/src/facilities/surgery/remoteSurgery.js b/src/facilities/surgery/remoteSurgery.js index 55797694aa5aaace4d934702833de1406e2039bb..6a4616a33c77b4db4ea4c6a03653904fbca19887 100644 --- a/src/facilities/surgery/remoteSurgery.js +++ b/src/facilities/surgery/remoteSurgery.js @@ -3,7 +3,6 @@ App.UI.SlaveInteract.remoteSurgery = function(slave) { const el = new DocumentFragment(); const r = []; const {His} = getPronouns(slave); - App.Utils.setLocalPronouns(slave); updateHealth(slave); V.surgeryType = 0; diff --git a/src/interaction/siWork.js b/src/interaction/siWork.js index e6b263d41447b4364cfae3c053fbd0388275d9d5..101032026ba72c6cbbf3fcdc32a6032105060037 100644 --- a/src/interaction/siWork.js +++ b/src/interaction/siWork.js @@ -375,7 +375,7 @@ App.UI.SlaveInteract.work = function(slave, refresh) { sexOptions.push({text: `Fuck ${his} nipples`, scene: `FNippleFuck`}); } if (slave.lactation > 0 && slave.boobs >= 2000 && slave.belly < 60000 && hasAnyArms(slave)) { - sexOptions.push({text: `Drink ${his} milk`, scene: `fSuckle`}); + sexOptions.push({text: `Drink ${his} milk`, scene: () => App.Interact.fSuckle(slave)}); } if (canDoAnal(slave)) { @@ -406,7 +406,7 @@ App.UI.SlaveInteract.work = function(slave, refresh) { } if (hasAnyLegs(slave) && V.PC.dick > 0) { - sexOptions.push({text: `Get a footjob`, scene: `fFeet`}); + sexOptions.push({text: `Get a footjob`, scene: () => App.Interact.fFeet(slave)}); } if (canGetPregnant(slave) && (slave.geneticQuirks.superfetation !== 2 || V.geneticMappingUpgrade !== 0) && (slave.fuckdoll === 0) && V.seePreg !== 0) { @@ -419,7 +419,7 @@ App.UI.SlaveInteract.work = function(slave, refresh) { if (canImpreg(slave, slave)) { sexOptions.push({text: `Use ${his} own seed to impregnate ${him}`, scene: `FSlaveSelfImpreg`}); } - sexOptions.push({text: `Use another slave to impregnate ${him}`, scene: `FSlaveImpreg`}); + sexOptions.push({text: `Use another slave to impregnate ${him}`, scene: () => App.Interact.fSlaveImpreg(slave)}); } if (slave.assignment !== Job.DAIRY && slave.assignment !== Job.ARCADE && slave.assignment !== Job.CELLBLOCK) { if (V.dairyPiping === 1) { @@ -586,7 +586,7 @@ App.UI.SlaveInteract.work = function(slave, refresh) { } /* if (availRelatives.father) { - sexOptions.push({text: `Fuck ${him} with ${his} father`, scene: `fRelation`, update: {partner: "father"}}); + sexOptions.push({text: `Fuck ${him} with ${his} father`, scene: () => App.Interact.fRelation(slave), update: {partner: "father"}}); } else if (availRelatives.fatherName !== null) { sexOptions.push({text: `${His} father, ${availRelatives.motherName}, is unavailable`}); } @@ -620,7 +620,7 @@ App.UI.SlaveInteract.work = function(slave, refresh) { } /* if (availRelatives.daughters > 1) { - sexOptions.push({text: `Fuck ${him} with ${his} daughters`, scene: `fRelation`, update: {partner: "daughter"}}); + sexOptions.push({text: `Fuck ${him} with ${his} daughters`, scene: () => App.Interact.fRelation(slave), update: {partner: "daughter"}}); } */ } @@ -654,7 +654,7 @@ App.UI.SlaveInteract.work = function(slave, refresh) { } /* if (availRelatives.sisters > 1) { - sexOptions.push({text: `Fuck ${him} with ${his} sisters`, scene: `fRelation`, update: {partner: "sisters}}); + sexOptions.push({text: `Fuck ${him} with ${his} sisters`, scene: () => App.Interact.fRelation(slave), update: {partner: "sisters}}); } */ } diff --git a/src/npc/generate/newChildIntro.js b/src/npc/generate/newChildIntro.js index 68fcc696d0ded699fc7aaf1bcf8793e283f6497f..9619dc509f6252ec9386c8594de6cdcfe7e2c9d6 100644 --- a/src/npc/generate/newChildIntro.js +++ b/src/npc/generate/newChildIntro.js @@ -14,8 +14,6 @@ App.UI.newChildIntro = function(slave) { const tempMom = getSlave(slave.mother); const tempDad = getSlave(slave.father); - App.Utils.setLocalPronouns(slave); - r = []; r.push(`You completed the legalities before heading to ${V.incubator.name}, knowing the tank will release ${him} on your approach, and instruct ${V.assistant.name} to notify the new ${girl}'s parents to meet you in your office. As the tank exhumes the disoriented ${girl},`); diff --git a/src/npc/interaction/fDick.js b/src/npc/interaction/fDick.js index edbadd7f3061655c3c89191e418c2b52298a87ba..987b2df37034a70f320bf55a7de03c0bc3dca9ac 100644 --- a/src/npc/interaction/fDick.js +++ b/src/npc/interaction/fDick.js @@ -14,7 +14,6 @@ App.Interact.fDick = function(slave) { /* TODO: .pregMood and more amp variants */ - App.Utils.setLocalPronouns(slave); addPartner(slave, -1); const _belly = bellyAdjective(slave); diff --git a/src/npc/interaction/fRival.js b/src/npc/interaction/fRival.js index 3a52ed618141e3fb67f42daef634358b70d5ea3d..b0776e7e26517f180796f748814293d7095bb9e0 100644 --- a/src/npc/interaction/fRival.js +++ b/src/npc/interaction/fRival.js @@ -17,7 +17,6 @@ App.Interact.fRival = function(slave) { He2, he2, his2, him2 } = getPronouns(rival).appendSuffix("2"); - App.Utils.setLocalPronouns(slave); addPartner(slave, -1); addPartner(slave, slave.rivalryTarget); diff --git a/src/npc/interaction/fSlaveImpregConsummate.tw b/src/npc/interaction/fSlaveImpregConsummate.tw deleted file mode 100644 index 4297525bfa1c21ca6f0c4ee3f940981c762a606a..0000000000000000000000000000000000000000 --- a/src/npc/interaction/fSlaveImpregConsummate.tw +++ /dev/null @@ -1,395 +0,0 @@ -:: FSlaveImpreg Consummate [nobr no-history] - -The first necessary step is to prepare the donatrix. -<<run App.Utils.setLocalPronouns(getSlave($AS))>> -<<run addPartner(getSlave($AS), $impregnatrix)>> -<<set _belly = bellyAdjective(getSlave($AS))>> -<<set _superfetation = (getSlave($AS).geneticQuirks.superfetation == 2 && getSlave($AS).pregKnown == 1) ? 1 : 0>> -<<set _penCountBonus = random(6,20), _analCountBonus = _penCountBonus, _vagCountBonus = _penCountBonus>> -<<set $impregnatrix.counter.penetrative += _penCountBonus+1, $penetrativeTotal += _penCountBonus+1>> -<<setLocalPronouns $impregnatrix 2>> -<<setPlayerPronouns>> - -<<if ($impregnatrix.fetish == "pregnancy") && ($impregnatrix.fetishKnown == 1) && ($impregnatrix.fetishStrength > 60) && ($impregnatrix.devotion >= -20)>> - This is very easy, since $impregnatrix.slaveName has an impregnation fetish. - <<if $impregnatrix.pregKnown == 1>> - _He2's pregnant, and as far as _he2's concerned, everyone should be pregnant. $He's @@.hotpink;happy to spread the love.@@ - <<elseif isFertile($impregnatrix)>> - _He2'd love to get pregnant _himself2, but as far as _he2's concerned, putting a baby in someone else is the @@.hotpink;next best thing.@@ - <<else>> - _He2's been deeply unhappy that there's no prospect of _him2 ever being able to carry a child, and this is the @@.hotpink;next best thing@@ for _him2. - <</if>> - <<set $impregnatrix.devotion += 4>> - <<if ($impregnatrix.preg == -3)>>_His2 member remains limp despite the prospect of getting another slave pregnant, but a direct injection of vasodilators quickly fixes that for this special occasion. - <<else>>_His2 member springs instantly to attention at the prospect of getting another slave pregnant. - <</if>> - -<<elseif ($impregnatrix.attrXX > 65) && ($impregnatrix.attrKnown == 1) && ($impregnatrix.devotion >= -20)>> - Since $impregnatrix.slaveName likes sticking _his2 cock in girls, _he2 doesn't take much convincing. - <<if ($impregnatrix.preg == -3)>>_His2 member remains limp despite the prospect of <<if getSlave($AS).mpreg == 1>>ass<<else>>pussy<</if>>, but a direct injection of vasodilators quickly fixes that for this special occasion. - <<else>>_His2 member springs instantly to attention at the prospect of pussy. - <</if>> - -<<elseif ($impregnatrix.devotion > 50)>> - Since $impregnatrix.slaveName is devoted to you, _he2'll eagerly fuck anything you tell _him2 to fuck. - <<if ($impregnatrix.preg == -3)>>_He2 accepts a direct injection of vasodilators to counteract the hormones keeping _him2 soft, - <<else>>_He2 quickly gets _himself2 hard, - <</if>> - only a certain confusion in _his2 look betraying that _he2 realizes how special an occasion this is. - -<<elseif ($impregnatrix.devotion > 20)>> - Since $impregnatrix.slaveName is obedient, _he2'll fuck anything you tell _him2 to fuck. - <<if ($impregnatrix.preg == -3)>>_He2 accepts a direct injection of vasodilators to counteract the hormones keeping _him2 soft, - <<else>>_He2 hurriedly gets _himself2 hard, - <</if>> - only a slight hesitation betraying _his2 realization that this is a special occasion. - -<<elseif ($impregnatrix.devotion >= -20)>> - Since $impregnatrix.slaveName does not resist your will, _he2 should comply reasonably well. - <<if ($impregnatrix.preg == -3)>>_He2 accepts a direct injection of vasodilators to counteract the hormones keeping _him2 soft, - <<else>>_He2 has to work to get _himself2 hard despite _his2 doubts, - <</if>> - fear and disgust showing on _his2 face as _he2 absorbs the perversion of the natural order of things _he2's about to experience. - -<<else>> - Since $impregnatrix.slaveName is unlikely to comply willingly, you simply restrain _him2 and administer a massive dose of vasodilators, directly where they will do the most good. $impregnatrix.slaveName writhes with the pain of the injection, which is compounded as _he2 springs agonizingly erect. - -<</if>> - -<br><br> - -Next, you see to <<= getSlave($AS).slaveName>>. - -<<if getSlave($AS).mpreg == 1>> - <<set getSlave($AS).counter.anal += _analCountBonus+1>> - <<set $analTotal += _analCountBonus+1>> -<<else>> - <<set getSlave($AS).counter.vaginal += _vagCountBonus+1>> - <<set $vaginalTotal += _vagCountBonus+1>> -<</if>> - -<<if (getSlave($AS).fetish == "pregnancy") && (getSlave($AS).fetishStrength > 60) && (getSlave($AS).fetishKnown == 1) && ((getSlave($AS).vagina == 0) || ((getSlave($AS).anus == 0) && (getSlave($AS).mpreg == 1)))>> - $He cries with joy and presents $his virgin <<if getSlave($AS).mpreg == 1>>ass<<else>>pussy<</if>> to $impregnatrix.slaveName for <<if _superfetation == 1>>repeat <</if>>fertilization. @@.hotpink;$He is grateful@@ for this fulfillment of $his fondest wish and naturally @@.lime;will break in $his <<if getSlave($AS).mpreg == 1>>ass<<else>>pussy<</if>>.@@ - <<if getSlave($AS).mpreg == 1>> - <<set getSlave($AS).anus = 1>> - <<else>> - <<set getSlave($AS).vagina = 1>> - <</if>> - <<set getSlave($AS).devotion += 10>> - -<<elseif (getSlave($AS).fetish == "pregnancy") && (getSlave($AS).fetishStrength > 60) && (getSlave($AS).fetishKnown == 1) && (getSlave($AS).fetishStrength > 60)>> - $He cries with joy and presents $his fertile <<if getSlave($AS).mpreg == 1>>ass<<else>>pussy<</if>> to $impregnatrix.slaveName for <<if _superfetation == 1>>further <</if>>breeding. @@.hotpink;$He is grateful@@ for this fulfillment of $his fondest wish. - <<set getSlave($AS).devotion += 4>> - -<<elseif (getSlave($AS).devotion > 20) && ((getSlave($AS).vagina == 0) || ((getSlave($AS).anus == 0) && (getSlave($AS).mpreg == 1)))>> - $He accepts your orders without comment and presents $his virgin <<if getSlave($AS).mpreg == 1>>ass<<else>>pussy<</if>> to $impregnatrix.slaveName for fertilization. $He gasps in shock when $he feels _his2 hot seed. @@.hotpink;$He is broken to slavery@@ by this application of $his body, which naturally @@.lime;will break in $his <<if getSlave($AS).mpreg == 1>>ass<<else>>pussy<</if>>.@@ - <<if getSlave($AS).mpreg == 1>> - <<set getSlave($AS).anus = 1>> - <<else>> - <<set getSlave($AS).vagina = 1>> - <</if>> - <<set getSlave($AS).devotion += 10>> - -<<elseif (getSlave($AS).devotion >= -20) && ((getSlave($AS).vagina == 0) || ((getSlave($AS).anus == 0) && (getSlave($AS).mpreg == 1)))>> - $He is clearly unhappy at the idea of losing $his pearl of great price to $impregnatrix.slaveName; this probably isn't what $he imagined $his first real sex would be like. Worse, $he knows $he's fertile and realizes - <<if _superfetation == 1>> - $his existing pregnancy is of little concern to the new life likely to take root in $him. - <<else>> - $he'll likely get pregnant. - <</if>> - Nevertheless, @@.hotpink;$he is broken to slavery@@ by this application of $his body, which naturally @@.lime;will break in $his <<if getSlave($AS).mpreg == 1>>ass<<else>>pussy<</if>>.@@ - <<if getSlave($AS).mpreg == 1>> - <<set getSlave($AS).anus = 1>> - <<else>> - <<set getSlave($AS).vagina = 1>> - <</if>> - <<set getSlave($AS).devotion += 4>> - -<<elseif ((getSlave($AS).vagina == 0) || ((getSlave($AS).anus == 0) && (getSlave($AS).mpreg == 1)))>> - As you anticipated, $he refuses to give $impregnatrix.slaveName $his virginity. You restrain $him despite $his @@.mediumorchid;horrified tears@@ and @@.gold;frightened begging.@@ Naturally, this cruel tableau @@.lime;will break in $his <<if getSlave($AS).mpreg == 1>>ass<<else>>pussy<</if>>.@@ - <<set getSlave($AS).devotion -= 5, getSlave($AS).trust -= 5>> - <<if getSlave($AS).mpreg == 1>> - <<set getSlave($AS).anus = 1>> - <<else>> - <<set getSlave($AS).vagina = 1>> - <</if>> - -<<elseif isAmputee(getSlave($AS))>> - You set $his limbless torso up for $impregnatrix.slaveName. -<<elseif tooBigBelly(getSlave($AS))>> - You set $him up for $impregnatrix.slaveName, face-down so $he may rest helplessly against $his _belly belly. -<<elseif tooBigBreasts(getSlave($AS))>> - You set $him up for $impregnatrix.slaveName, face-<<if getSlave($AS).belly >= 60000>>up<<else>>down<</if>> so the weight of $his tits pins $him helplessly in place. -<<elseif tooBigButt(getSlave($AS))>> - You set $him up for $impregnatrix.slaveName, face-down so the weight of $his giant ass pins $him helplessly in place and gives $impregnatrix.slaveName a lovely cushion to thrust against. -<<elseif tooBigDick(getSlave($AS))>> - You set $him up for $impregnatrix.slaveName, face-up so $he is pinned under the weight of $his giant cock. -<<elseif tooBigBalls(getSlave($AS))>> - You set $him up for $impregnatrix.slaveName, face-<<if getSlave($AS).belly >= 60000>>up<<else>>down<</if>> so the weight of $his giant balls anchor $him helplessly in place. -<<elseif (getSlave($AS).fetish == "submissive") && (getSlave($AS).fetishStrength > 60) && (getSlave($AS).fetishStrength > 60) && (getSlave($AS).fetishKnown == 1)>> - $He is accustomed to submit to you, but as a natural submissive $he doesn't have much trouble submitting to $impregnatrix.slaveName's seed instead. -<<elseif getSlave($AS).devotion < -20>> - $He tries to refuse, so you restrain $him despite $his resistance to the idea of being made a breeder. -<<elseif getSlave($AS).devotion <= 20>> - $He obeys your orders reluctantly, arranging $himself for <<if getSlave($AS).mpreg == 1>>anal<<else>>vaginal<</if>> sex despite $his obvious hesitation to be made a breeder. -<<elseif getSlave($AS).devotion < 10>> - $He obeys your orders, arranging $himself for <<if getSlave($AS).mpreg == 1>>anal<<else>>vaginal<</if>> sex despite $his slight hesitation at the idea of being made a breeder. -<<else>> - $He happily obeys your orders, getting ready to serve $his <<= getWrittenTitle(getSlave($AS))>> by making _himP another slave. -<</if>> - -<<= knockMeUp(getSlave($AS), 100, 2, $impregnatrix.ID, 1)>> - -<br><br> - -<<if (getSlave($AS).devotion < -20) && ($impregnatrix.devotion < -20)>> - Since you have two restrained slaves, it's up to you to do all the work. You put <<= getSlave($AS).slaveName>> on the couch with $his <<if getSlave($AS).mpreg == 1>>ass<<else>>pussy<</if>> available, and then maneuver $impregnatrix.slaveName's dick into place. The two slaves make no further moves until you deal $impregnatrix.slaveName a terrific swat across the ass and promise to give _him2 more of the same until _he2 gets going. After watching them mechanically go at it for a while, you stop $impregnatrix.slaveName, insert an electrostimulator up _his2 rectum, and administer a shock to _his2 <<if $impregnatrix.prostate != 0>>prostate<<else>>internals<</if>> that forces _him2 to empty _his2 nuts into <<= getSlave($AS).slaveName>>. Both slaves @@.mediumorchid;resent@@ what you made them do and @@.gold;fear you@@ as a result. - <<set getSlave($AS).devotion -= 5, getSlave($AS).trust -= 5>> - <<set $impregnatrix.devotion -= 5, $impregnatrix.trust -= 5>> - <<set $impregnatrix.counter.anal += 1, $analTotal += 1>> - <<if ($impregnatrix.anus == 0)>> - $impregnatrix.slaveName would have been reluctant to @@.lime;lose _his2 anal virginity@@ in any case, but being assraped by a metal probe that shocked _him2 into orgasm so that _he2 would impregnate another slave is @@.mediumorchid;a special level@@ of violation for _him2. - <<set $impregnatrix.devotion -= 5, $impregnatrix.anus = 1>> - <</if>> - -<<elseif ($impregnatrix.devotion < -20)>> - Since your semen donatrix is restrained, you order <<= getSlave($AS).slaveName>> to present $himself on the couch, and then maneuver $impregnatrix.slaveName's dick into place. <<= getSlave($AS).slaveName>> does $his best to hump $himself against the unwilling cock until you deal $impregnatrix.slaveName a terrific swat across the ass and promise to give _him2 more of the same until _he2 gets going. After watching _him2 mechanically fuck for a while, you stop _him2, push an electrostimulator up _his2 butt, and administer a shock to _his2 <<if $impregnatrix.prostate != 0>>prostate<<else>>internals<</if>> that forces _him2 to empty _his2 nuts into <<= getSlave($AS).slaveName>>. $He @@.mediumorchid;resents@@ what you made _him2 do and @@.gold;fears you@@ as a result. Though <<= getSlave($AS).slaveName>> accepts the situation, $he looks into $impregnatrix.slaveName's eyes with obvious apology. - <<set $impregnatrix.devotion -= 5, $impregnatrix.trust -= 5>> - <<set $impregnatrix.counter.anal += 1, $analTotal += 1>> - <<if ($impregnatrix.anus == 0)>> - $impregnatrix.slaveName would have been reluctant to @@.lime;lose _his2 anal virginity@@ in any case, but being assraped by a metal probe that shocked _him2 into orgasm so that _he2 would impregnate another slave is @@.mediumorchid;a special level@@ of violation for _him2. - <<set $impregnatrix.devotion -= 5, $impregnatrix.anus = 1>> - <</if>> - -<<elseif ($impregnatrix.fetish == "pregnancy") && ($impregnatrix.fetishStrength > 60) && ($impregnatrix.devotion > 20) && (getSlave($AS).devotion < -20)>> - You arrange <<= getSlave($AS).slaveName>> on the couch with $his fertile pussy defenseless and available, and then tell the randy $impregnatrix.slaveName that it's all _hers2. The slave life has so affected $impregnatrix.slaveName that _he2 is quite eager to rape another slave pregnant<<if _superfetation == 1>>, even more so since $he is already with child<</if>> to fulfill _his2 desire to reproduce. _He2 finishes with indecent speed and looks almost disappointed until you tell _him2 to take _his2 time and be thorough. By the end of the day <<= getSlave($AS).slaveName>>'s <<if getSlave($AS).mpreg == 1>>ass<<else>>cunt<</if>> is dripping cum, to $his @@.gold;horror@@ and @@.mediumorchid;resentment,@@ while $impregnatrix.slaveName is lying next to $him on the couch in a state of obvious @@.hotpink;satiation and bliss.@@ $impregnatrix.slaveName kisses <<= getSlave($AS).slaveName>>'s _belly stomach and expresses the hope that $he'll produce a good new slave. - <<set getSlave($AS).devotion -= 5, getSlave($AS).trust -= 5>> - <<set $impregnatrix.devotion += 4>> - -<<elseif ($impregnatrix.energy > 95) && ($impregnatrix.devotion > 20) && (getSlave($AS).devotion < -20)>> - You arrange <<= getSlave($AS).slaveName>> on the couch with $his fertile <<if getSlave($AS).mpreg == 1>>ass<<else>>pussy<</if>> defenseless and available, and then tell the randy $impregnatrix.slaveName that it's all _hers2. The slave life has so affected $impregnatrix.slaveName that _he2 is quite eager to rape another slave pregnant<<if _superfetation == 1>>, especially since $he is already with child<</if>>, just for the perverted novelty of the act. _He2 blows _his2 load with indecent speed and looks crushed until you tell _him2 to take _his2 time and be thorough. By the end of the day <<= getSlave($AS).slaveName>>'s <<if getSlave($AS).mpreg == 1>>anus<<else>>cunt<</if>> is dripping cum, to $his @@.gold;horror@@ and @@.mediumorchid;resentment,@@ while $impregnatrix.slaveName is lying next to $him on the couch in a state of obvious @@.hotpink;satiation and bliss.@@ $impregnatrix.slaveName kisses <<= getSlave($AS).slaveName>>'s _belly stomach and expresses the hope that you'll let _him2 do this again <<if _superfetation == 1>>soon<<else>>sometime<</if>>. - <<set getSlave($AS).devotion -= 5, getSlave($AS).trust -= 5>> - <<set $impregnatrix.devotion += 4>> - -<<elseif (getSlave($AS).devotion <= 20) || ($impregnatrix.devotion <= 20)>> - You order <<= getSlave($AS).slaveName>> onto the couch and tell $impregnatrix.slaveName to get on with it. They fuck mechanically, gazing with roiling emotions into each others' eyes. They do seem to come to some sort of a nonverbal understanding on the necessity of getting it done, and there is no real unhappiness in either of them when they finish and disentangle themselves, with $impregnatrix.slaveName's rapidly softening dick slipping easily out of <<= getSlave($AS).slaveName>>'s cum-filled <<if getSlave($AS).mpreg == 1>>ass<<else>>pussy<</if>>. - -<<elseif (getSlave($AS).devotion <= 50) || ($impregnatrix.devotion <= 50)>> - You order <<= getSlave($AS).slaveName>> and $impregnatrix.slaveName to get on with it. They fuck mechanically at first, gazing with roiling emotions into each others' eyes. Eventually, they begin to enjoy the extreme intimacy of the act, finding between themselves a hint of a life before slavery, when men and women had sex within the bonds of marriage for the purpose of procreation<<if _superfetation == 1>>, even though one of them is already heavy with child<</if>>. They finish and resume life as slaves, the light of this intimacy diminishing, softening with $impregnatrix.slaveName's dick and dripping away with the contents of <<= getSlave($AS).slaveName>>'s cum-filled <<if getSlave($AS).mpreg == 1>>ass<<else>>pussy<</if>>. - -<<elseif getSlave($AS).mpreg == 1>> - The parents-to-be need little encouragement. They embrace happily and turn eagerly to the business of anal sex in <<if getSlave($AS).belly+$impregnatrix.belly >= 5000>>an awkward<<else>>the<</if>> cowgirl position. They take their time, humping slowly and gazing into each others' eyes. After a little while, though, <<= getSlave($AS).slaveName>> looks over to where you're sitting, the invitation clear in $his eyes. As soon as you stand to come over, <<= getSlave($AS).slaveName>> turns around on $impregnatrix.slaveName's cock and opens wide for you. You and $impregnatrix.slaveName enjoy the <<if _superfetation == 1>>gravid $girl<<else>>mother-to-be<</if>> gently until $he climaxes, $his eager oral reaching a fever pitch, bringing you to your own climax. - <<if $PC.dick != 0>> - <<if canDoVaginal($impregnatrix)>> - Pulling out, you flip them again so that $impregnatrix.slaveName is on top and switch to _his2 pussy instead, stimulating _his2 <<if $impregnatrix.prostate != 0>>prostate<<else>>internals<</if>> with a good fucking until _he2 blows _his2 load into <<= getSlave($AS).slaveName>>'s fertile <<if getSlave($AS).mpreg == 1>>ass<<else>>cunt<</if>>. The two of them collapse into an exhausted, @@.hotpink;happy@@ pile of slave flesh with three loads inside them. - <<if ($impregnatrix.vagina == 0)>> - $impregnatrix.slaveName will certainly remember this @@.hotpink;very special@@ day for many reasons, including it being _his2 @@.lime;first time@@ as _he2 inseminated <<= getSlave($AS).slaveName>>. - <<set $impregnatrix.devotion += 4, $impregnatrix.vagina = 1>> - <</if>> - <<if canImpreg($impregnatrix, $PC)>> - <<= knockMeUp($impregnatrix, 10, 0, -1, 1)>> - <</if>> - <<set $impregnatrix.counter.vaginal += _penCountBonus, $vaginalTotal += _penCountBonus>> - <<elseif canDoAnal($impregnatrix)>> - Pulling out, you flip them again so that $impregnatrix.slaveName is on top and switch to _his2 ass instead, stimulating _his2 <<if $impregnatrix.prostate != 0>>prostate<<else>>internals<</if>> with a good assfuck until _he2 blows _his2 load into <<= getSlave($AS).slaveName>>'s fertile <<if getSlave($AS).mpreg == 1>>ass<<else>>cunt<</if>>. The two of them collapse into an exhausted, @@.hotpink;happy@@ pile of slave flesh with three loads inside them. - <<if ($impregnatrix.anus == 0)>> - $impregnatrix.slaveName will certainly remember this @@.hotpink;very special@@ day for many reasons, including taking _his2 @@.lime;first buttfuck@@ as _he2 inseminated <<= getSlave($AS).slaveName>>. - <<set $impregnatrix.devotion += 4, $impregnatrix.anus = 1>> - <</if>> - <<if canImpreg($impregnatrix, $PC)>> - <<= knockMeUp($impregnatrix, 10, 1, -1, 1)>> - <</if>> - <<set $impregnatrix.counter.anal += _penCountBonus, $analTotal += _penCountBonus>> - <<else>> - The two of them collapse into an exhausted, @@.hotpink;happy@@ pile of slave flesh. - <</if>> - <<else>> - <<if canDoVaginal($impregnatrix)>> - Pulling back, you flip them again so that $impregnatrix.slaveName is on top and don a strap-on. You begin stimulating _his2 <<if $impregnatrix.prostate != 0>>prostate<<else>>internals<</if>> with a good fucking until _he2 blows _his2 load into <<= getSlave($AS).slaveName>>'s fertile <<if getSlave($AS).mpreg == 1>>ass<<else>>cunt<</if>>. The two of them collapse into an exhausted, @@.hotpink;happy@@ pile of slave flesh. - <<if ($impregnatrix.vagina == 0)>> - $impregnatrix.slaveName will certainly remember this @@.hotpink;very special@@ day for many reasons, including it being _his2 @@.lime;first time@@ as _he2 inseminated <<= getSlave($AS).slaveName>>. - <<set $impregnatrix.devotion += 4, $impregnatrix.vagina = 1>> - <</if>> - <<set $impregnatrix.counter.vaginal += _penCountBonus, $vaginalTotal += _penCountBonus>> - <<elseif canDoAnal($impregnatrix)>> - Pulling back, you flip them again so that $impregnatrix.slaveName is on top and don a strap-on. You begin stimulating _his2 <<if $impregnatrix.prostate != 0>>prostate<<else>>internals<</if>> with a good assfuck until _he2 blows _his2 load into <<= getSlave($AS).slaveName>>'s fertile <<if getSlave($AS).mpreg == 1>>ass<<else>>cunt<</if>>. The two of them collapse into an exhausted, @@.hotpink;happy@@ pile of slave flesh. - <<set $impregnatrix.counter.anal += _penCountBonus, $analTotal += _penCountBonus>> - <<if ($impregnatrix.anus == 0)>> - $impregnatrix.slaveName will certainly remember this @@.hotpink;very special@@ day for many reasons, including taking _his2 @@.lime;first buttfuck@@ as _he2 inseminated <<= getSlave($AS).slaveName>>. - <<set $impregnatrix.devotion += 4, $impregnatrix.anus = 1>> - <</if>> - <<else>> - The two of them collapse into an exhausted, @@.hotpink;happy@@ pile of slave flesh. - <</if>> - <</if>> - <<set $impregnatrix.counter.oral += _penCountBonus, $oralTotal += _penCountBonus>> - <<set getSlave($AS).devotion += 4>> - <<set $impregnatrix.devotion += 4>> - -<<else>> - <<set _didImpregnatrix = 0>> - The parents-to-be need little encouragement. They embrace happily and turn eagerly to the business of vanilla sex in <<if getSlave($AS).belly+$impregnatrix.belly >= 5000>>an awkward<<else>>the<</if>> missionary position. They take their time, humping slowly and gazing into each others' eyes. After a little while, though, <<= getSlave($AS).slaveName>> looks over $impregnatrix.slaveName's shoulder to where you're sitting, the invitation clear in $his eyes. As soon as you stand to come over, they roll over without being ordered to - <<if canDoAnal(getSlave($AS))>> - present <<= getSlave($AS).slaveName>>'s butthole. - <<set getSlave($AS).counter.anal += _penCountBonus, $analTotal += _penCountBonus>> - <<else>> - invite you into <<= getSlave($AS).slaveName>>'s crowded pussy. - <<set getSlave($AS).counter.vaginal += _penCountBonus, $vaginalTotal += _penCountBonus>> - <</if>> - You and $impregnatrix.slaveName double penetrate the <<if _superfetation == 1>>gravid $girl<<else>>mother-to-be<</if>> gently until $he climaxes, clenching you to orgasm in turn with $his spasms. Pulling out, you offer <<if $PC.dick != 0>>yourself<<else>>your strap-on<</if>> to <<= getSlave($AS).slaveName>>'s gasping mouth so $he can <<if $PC.dick != 0>>suck you hard again<<else>>lube the phallus with some saliva<</if>> as $he continues riding cock. Once <<if $PC.dick != 0>>stiff<<else>>the strap-on is nice and wet<</if>>, you flip them again so that $impregnatrix.slaveName is back on top and switch to _his2 - <<if canDoVaginal($impregnatrix)>> - feminine slit instead, stimulating _his2 <<if $impregnatrix.prostate != 0>>prostate<<else>>internals<</if>> with a hard fucking - <<set _didImpregnatrix = 1>> - <<elseif canDoAnal($impregnatrix)>> - ass instead, stimulating _his2 <<if $impregnatrix.prostate != 0>>prostate<<else>>internals<</if>> with a good assfuck - <<set _didImpregnatrix = 2>> - <<else>> - mouth instead, giving _him2 a good facefuck - <<set $impregnatrix.counter.oral += _penCountBonus, $oralTotal += _penCountBonus>> - <</if>> - until _he2 blows _his2 load into <<= getSlave($AS).slaveName>>'s fertile cunt. The two of them collapse into an exhausted, @@.hotpink;happy@@ pile of slave flesh with three loads inside them. - <<set getSlave($AS).devotion += 4>> - <<set $impregnatrix.devotion += 4>> - <<if _didImpregnatrix == 1>> - <<if ($impregnatrix.vagina == 0)>> - $impregnatrix.slaveName will certainly remember this @@.hotpink;very special@@ day for many reasons, including losing _his2 @@.lime;virginity@@ as _he2 inseminated <<= getSlave($AS).slaveName>>. - <<set $impregnatrix.devotion += 4, $impregnatrix.vagina = 1>> - <</if>> - <<set $impregnatrix.counter.vaginal += _penCountBonus, $vaginalTotal += _penCountBonus>> - <<if canImpreg($impregnatrix, $PC)>> - <<= knockMeUp($impregnatrix, 10, 0, -1, 1)>> - <</if>> - <<elseif _didImpregnatrix == 2>> - <<if ($impregnatrix.anus == 0)>> - $impregnatrix.slaveName will certainly remember this @@.hotpink;very special@@ day for many reasons, including taking _his2 @@.lime;first buttfuck@@ as _he2 inseminated <<= getSlave($AS).slaveName>>. - <<set $impregnatrix.devotion += 4, $impregnatrix.anus = 1>> - <</if>> - <<set $impregnatrix.counter.anal += _penCountBonus, $analTotal += _penCountBonus>> - <<if canImpreg($impregnatrix, $PC)>> - <<= knockMeUp($impregnatrix, 10, 1, -1, 1)>> - <</if>> - <</if>> - <<if (getSlave($AS).anus == 0) && canDoAnal(getSlave($AS))>> - <<= getSlave($AS).slaveName>> has been used as a slave in a truly thorough way today: $he has @@.hotpink;accepted@@ both $his @@.lime;first anal@@ and insemination by $impregnatrix.slaveName. - <<set getSlave($AS).devotion += 4, getSlave($AS).anus = 1>> - <</if>> - -<</if>> - -Throughout the week, you keep <<= getSlave($AS).slaveName>>'s <<if getSlave($AS).mpreg == 1>>ass<<else>>pussy<</if>> intimate with $impregnatrix.slaveName's cock. In the end, you are certain <<= getSlave($AS).slaveName>> -<<if _superfetation == 1>> - has @@.lime;added $impregnatrix.slaveName's child@@ to $his pregnancy. -<<else>> - is @@.lime;carrying $impregnatrix.slaveName's child.@@ -<</if>> - - -<<if $arcologies[0].FSRestart != "unset" && $eugenicsFullControl != 1>> - Rumors spread about you breeding your slaves; the Societal Elite are @@.red;displeased@@ by these rumors. - <<set $failedElite += 1>> -<</if>> -<<if $arcologies[0].FSGenderRadicalist != "unset" && getSlave($AS).mpreg == 1>> - Society @@.green;approves@@ of your breeding your slave's ass; this advances the ideal all a slave needs is their rear. - <<run repX($FSSingleSlaveRep*($arcologies[0].FSGenderRadicalist/$FSLockinLevel), "futureSocieties", getSlave($AS))>> - <<set $arcologies[0].FSGenderRadicalist += 0.05*$FSSingleSlaveRep>> -<<elseif $arcologies[0].FSGenderFundamentalist != "unset" && getSlave($AS).mpreg == 1>> - 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>> -<<elseif $arcologies[0].FSGenderFundamentalist != "unset">> - Society @@.green;approves@@ of your breeding your slaves; this advances the ideal of a durable, self propagating race of slaves. - <<run repX($FSSingleSlaveRep*($arcologies[0].FSGenderFundamentalist/$FSLockinLevel), "futureSocieties", getSlave($AS))>> - <<set $arcologies[0].FSGenderFundamentalist += 0.05*$FSSingleSlaveRep>> -<</if>> - -<br><br> - -You prepare the necessary file on their possible offspring. Upon birth, it will be remanded to a slave orphanage to be raised to the age of $minimumSlaveAge and then sold, but its likely appearance and traits are already worth noting. - -<<= getSlave($AS).slaveName>> and $impregnatrix.slaveName are likely to produce - -<<if ($seeRace == 1)>> - - <<if (getSlave($AS).race == "white") && ($impregnatrix.race == "white")>> - a pure white, - <<elseif (getSlave($AS).race == "asian") && ($impregnatrix.race == "asian")>> - a pure Asian, - <<elseif (getSlave($AS).race == "latina") && ($impregnatrix.race == "latina")>> - a pure latina, - <<elseif (getSlave($AS).race == "black") && ($impregnatrix.race == "black")>> - a pure black, - <<elseif (getSlave($AS).race == "middle eastern") && ($impregnatrix.race == "middle eastern")>> - a pure Middle Eastern, - <<elseif (getSlave($AS).race == "malay") && ($impregnatrix.race == "malay")>> - a pure malay, - <<elseif (getSlave($AS).race == "white") && ($impregnatrix.race == "black")>> - a mulatto, - <<elseif (getSlave($AS).race == "black") && ($impregnatrix.race == "white")>> - a mulatto, - <<elseif (getSlave($AS).race == "white") && ($impregnatrix.race == "latina")>> - a mestizo, - <<elseif (getSlave($AS).race == "latina") && ($impregnatrix.race == "white")>> - a mestizo, - <<elseif (getSlave($AS).race == "asian") && ($impregnatrix.race == "black")>> - an Afro-Asian, - <<elseif (getSlave($AS).race == "black") && ($impregnatrix.race == "asian")>> - an Afro-Asian, - <<elseif (getSlave($AS).race == "middle eastern") && ($impregnatrix.race == "black")>> - an Afro-Arab, - <<elseif (getSlave($AS).race == "black") && ($impregnatrix.race == "middle eastern")>> - an Afro-Arab, - <<elseif (getSlave($AS).race == "indo-aryan") && ($impregnatrix.race == "black")>> - an Afro-Indian, - <<elseif (getSlave($AS).race == "black") && ($impregnatrix.race == "indo-aryan")>> - an Afro-Indian, - <<elseif (getSlave($AS).race == "amerindian") && ($impregnatrix.race == "white")>> - a mestizo, - <<elseif (getSlave($AS).race == "white") && ($impregnatrix.race == "amerindian")>> - a mestizo, - <<elseif (getSlave($AS).race == "catgirl" || $impregnatrix.race == "catgirl")>> - a catgirl, - <<elseif (getSlave($AS).race == $impregnatrix.race) && (getSlave($AS).race != "mixed race") && ($impregnatrix.race != "mixed race")>> - an ethnically pure, - <<elseif (getSlave($AS).race != $impregnatrix.race) && (getSlave($AS).race != "mixed race") && ($impregnatrix.race != "mixed race")>> - a biracial, - <<else>> - mixed ethnicity, - <</if>> - -<</if>> - -<<if ((getSlave($AS).intelligence+$impregnatrix.intelligence)/2 > 95)>> - brilliant, -<<elseif ((getSlave($AS).intelligence+$impregnatrix.intelligence)/2 > 15)>> - smart, -<<elseif ((getSlave($AS).intelligence+$impregnatrix.intelligence)/2 < -95)>> - cretinous, -<<elseif ((getSlave($AS).intelligence+$impregnatrix.intelligence)/2 < -15)>> - stupid, -<</if>> - -<<if ((getSlave($AS).height+$impregnatrix.height) > 185)>> - tall, -<<elseif ((getSlave($AS).height+$impregnatrix.height) < 160)>> - short, -<<else>> - middle height, -<</if>> - -<<if ((getSlave($AS).boobs+$impregnatrix.boobs-getSlave($AS).boobsImplant-$impregnatrix.boobsImplant-$impregnatrix.boobsMilk) > 1500)>> - big-titted -<<elseif ((getSlave($AS).boobs+$impregnatrix.boobs-getSlave($AS).boobsImplant-$impregnatrix.boobsImplant-$impregnatrix.boobsMilk) < 700)>> - flat-chested -<<else>> - moderately-breasted -<</if>> - -<<if ((getSlave($AS).butt+$impregnatrix.butt-getSlave($AS).buttImplant-$impregnatrix.buttImplant) > 9)>> - slave with a huge ass. -<<elseif ((getSlave($AS).butt+$impregnatrix.butt-getSlave($AS).buttImplant-$impregnatrix.buttImplant) < 5)>> - slave with a flat ass. -<<else>> - slave with a decent ass. -<</if>> - -<<set $slaves[$slaveIndices[$impregnatrix.ID]] = $impregnatrix>> /* save changes */ diff --git a/src/npc/interaction/passage/fSlaveImpreg.js b/src/npc/interaction/passage/fSlaveImpreg.js new file mode 100644 index 0000000000000000000000000000000000000000..fa0e0402192d8e3d7c0914fd4dfdbc8eb63c8440 --- /dev/null +++ b/src/npc/interaction/passage/fSlaveImpreg.js @@ -0,0 +1,550 @@ +/** + * + * @returns {HTMLElement} + */ +App.Interact.fSlaveImpreg = function(slave) { + const node = document.createElement("div"); + + App.UI.DOM.appendNewElement("p", node, `${slave.slaveName} is fertile; now you must select a slave with both a penis and potent testicles.`, "scene-intro"); + + App.UI.DOM.appendNewElement("h3", node, `Select an eligible slave to serve as the semen donatrix`); + + const eligibles = V.slaves.filter((s) => (s.ID !== V.AS) && canImpreg(slave, s) && canPenetrate(s)); + const kinship = ibc.kinship_one_many(slave, eligibles); + for (const impregnatrix of eligibles) { + const div = App.UI.DOM.appendNewElement("div", node); + div.append( + App.UI.DOM.link( + SlaveFullName(impregnatrix), + () => { + jQuery(node).empty().append(consummate(impregnatrix)); + } + ) + ); + if (impregnatrix.custom.label) { + App.UI.DOM.appendNewElement("span", div, ` ${impregnatrix.custom.label}`, "yellow"); + } + if (totalRelatives(slave) > 0) { + const relTerm = relativeTerm(slave, impregnatrix); + if (relTerm !== null) { + App.UI.DOM.appendNewElement("span", div, ` ${capFirstChar(relTerm)}`, "lightgreen"); + } + } + if (V.inbreeding && kinship[impregnatrix.ID] > 0) { + const thisKinship = kinship[impregnatrix.ID]; + let adj = ""; + if (thisKinship >= 0.5) { + adj = `Extreme`; + } else if (thisKinship >= 0.25) { + adj = `Major`; + } else if (thisKinship >= 0.125) { + adj = `Some`; + } else if (thisKinship >= 0.0625) { + adj = `Minor`; + } else { + adj = `Slight`; + } + App.UI.DOM.appendNewElement("span", div, ` (${adj} inbreeding, CoI of ${thisKinship})`); + } + } + if (eligibles.length === 0) { + App.UI.DOM.appendNewElement("div", node, `You have no slaves capable of inseminating others.`, "note"); + } + return node; + + /** + * + * @param {App.Entity.SlaveState} impregnatrix + * @returns {DocumentFragment} + */ + function consummate(impregnatrix) { + const node = new DocumentFragment(); + let r = []; + V.nextLink = "Slave Interact"; + V.nextButton = "Back"; + + const { + He, + he, his, him, himself, girl + } = getPronouns(slave); + + const { + He2, His2, + he2, his2, him2, himself2, hers2 + } = getPronouns(impregnatrix).appendSuffix("2"); + + const { + himP + } = getPronouns(V.PC).appendSuffix("P"); + + r.push(`The first necessary step is to prepare the donatrix.`); + addPartner(slave, impregnatrix); + const belly = bellyAdjective(slave); + const superfetation = (slave.geneticQuirks.superfetation === 2 && slave.pregKnown === 1) ? 1 : 0; + const penCountBonus = random(6, 20); + const analCountBonus = penCountBonus; + const vagCountBonus = penCountBonus; + impregnatrix.counter.penetrative += penCountBonus + 1; + V.penetrativeTotal += penCountBonus + 1; + + const assPussy = (slave.mpreg === 1) ? `ass` : `pussy`; + const assCunt = (slave.mpreg === 1) ? `ass` : `cunt`; + const prostate = (impregnatrix.prostate !== 0) ? `prostate` : `internals`; + + if (impregnatrix.fetish === "pregnancy" && impregnatrix.fetishKnown === 1 && impregnatrix.fetishStrength > 60 && impregnatrix.devotion >= -20) { + r.push(`This is very easy, since ${impregnatrix.slaveName} has an impregnation fetish.`); + if (impregnatrix.pregKnown === 1) { + r.push(`${He2}'s pregnant, and as far as ${he2}'s concerned, everyone should be pregnant. ${He}'s <span class="hotpink">happy to spread the love.</span>`); + } else if (isFertile(impregnatrix)) { + r.push(`${He2}'d love to get pregnant ${himself2}, but as far as ${he2}'s concerned, putting a baby in someone else is the <span class="hotpink">next best thing.</span>`); + } else { + r.push(`${He2}'s been deeply unhappy that there's no prospect of ${him2} ever being able to carry a child, and this is the <span class="hotpink">next best thing</span> for ${him2}.`); + } + impregnatrix.devotion += 4; + if (impregnatrix.preg === -3) { + r.push(`${His2} member remains limp despite the prospect of getting another slave pregnant, but a direct injection of vasodilators quickly fixes that for this special occasion.`); + } else { + r.push(`${His2} member springs instantly to attention at the prospect of getting another slave pregnant.`); + } + } else if (impregnatrix.attrXX > 65 && impregnatrix.attrKnown === 1 && impregnatrix.devotion >= -20) { + r.push(`Since ${impregnatrix.slaveName} likes sticking ${his2} cock in girls, ${he2} doesn't take much convincing.`); + if (impregnatrix.preg === -3) { + r.push(`${His2} member remains limp despite the prospect of ${assPussy}, but a direct injection of vasodilators quickly fixes that for this special occasion.`); + } else { + r.push(`${His2} member springs instantly to attention at the prospect of pussy.`); + } + } else if (impregnatrix.devotion > 50) { + r.push(`Since ${impregnatrix.slaveName} is devoted to you, ${he2}'ll eagerly fuck anything you tell ${him2} to fuck.`); + if (impregnatrix.preg === -3) { + r.push(`${He2} accepts a direct injection of vasodilators to counteract the hormones keeping ${him2} soft,`); + } else { + r.push(`${He2} quickly gets ${himself2} hard,`); + } + r.push(`only a certain confusion in ${his2} look betraying that ${he2} realizes how special an occasion this is.`); + } else if (impregnatrix.devotion > 20) { + r.push(`Since ${impregnatrix.slaveName} is obedient, ${he2}'ll fuck anything you tell ${him2} to fuck.`); + if (impregnatrix.preg === -3) { + r.push(`${He2} accepts a direct injection of vasodilators to counteract the hormones keeping ${him2} soft,`); + } else { + r.push(`${He2} hurriedly gets ${himself2} hard,`); + } + r.push(`only a slight hesitation betraying ${his2} realization that this is a special occasion.`); + } else if (impregnatrix.devotion >= -20) { + r.push(`Since ${impregnatrix.slaveName} does not resist your will, ${he2} should comply reasonably well.`); + if (impregnatrix.preg === -3) { + r.push(`${He2} accepts a direct injection of vasodilators to counteract the hormones keeping ${him2} soft,`); + } else { + r.push(`${He2} has to work to get ${himself2} hard despite ${his2} doubts,`); + } + r.push(`fear and disgust showing on ${his2} face as ${he2} absorbs the perversion of the natural order of things ${he2}'s about to experience.`); + } else { + r.push(`Since ${impregnatrix.slaveName} is unlikely to comply willingly, you simply restrain ${him2} and administer a massive dose of vasodilators, directly where they will do the most good. ${impregnatrix.slaveName} writhes with the pain of the injection, which is compounded as ${he2} springs agonizingly erect.`); + } + + App.Events.addParagraph(node, r); + r = []; + + r.push(`Next, you see to ${slave.slaveName}.`); + + if (slave.mpreg === 1) { + slave.counter.anal += analCountBonus + 1; + V.analTotal += analCountBonus + 1; + } else { + slave.counter.vaginal += vagCountBonus + 1; + V.vaginalTotal += vagCountBonus + 1; + } + + if ((slave.fetish === "pregnancy" && slave.fetishStrength > 60 && slave.fetishKnown === 1 && slave.vagina === 0) || (slave.anus === 0 && slave.mpreg === 1)) { + r.push(`${He} cries with joy and presents ${his} virgin ${assPussy} to ${impregnatrix.slaveName} for`); + if (superfetation === 1) { + r.push(`repeat`); + } + r.push(`fertilization. <span class="hotpink">${He} is grateful</span> for this fulfillment of ${his} fondest wish and naturally <span class="lime">will break in ${his} ${assPussy}.</span>`); + if (slave.mpreg === 1) { + slave.anus = 1; + } else { + slave.vagina = 1; + } + slave.devotion += 10; + } else if (slave.fetish === "pregnancy" && slave.fetishStrength > 60 && slave.fetishKnown === 1 && slave.fetishStrength > 60) { + r.push(`${He} cries with joy and presents ${his} fertile ${assPussy} to ${impregnatrix.slaveName} for`); + if (superfetation === 1) { + r.push(`further`); + } + r.push(`breeding. <span class="hotpink">${He} is grateful</span> for this fulfillment of ${his} fondest wish.`); + slave.devotion += 4; + } else if (slave.devotion > 20 && (slave.vagina === 0 || (slave.anus === 0 && slave.mpreg === 1))) { + r.push(`${He} accepts your orders without comment and presents ${his} virgin ${assPussy} to ${impregnatrix.slaveName} for fertilization. ${He} gasps in shock when ${he} feels ${his2} hot seed. <span class="hotpink">${He} is broken to slavery</span> by this application of ${his} body, which naturally <span class="lime">will break in ${his} ${assPussy}.</span>`); + if (slave.mpreg === 1) { + slave.anus = 1; + } else { + slave.vagina = 1; + } + slave.devotion += 10; + } else if (slave.devotion >= -20 && (slave.vagina === 0 || (slave.anus === 0 && slave.mpreg === 1))) { + r.push(`${He} is clearly unhappy at the idea of losing ${his} pearl of great price to ${impregnatrix.slaveName}; this probably isn't what ${he} imagined ${his} first real sex would be like. Worse, ${he} knows ${he}'s fertile and realizes`); + if (superfetation === 1) { + r.push(`${his} existing pregnancy is of little concern to the new life likely to take root in ${him}.`); + } else { + r.push(`${he}'ll likely get pregnant.`); + } + r.push(`Nevertheless, <span class="hotpink">${he} is broken to slavery</span> by this application of ${his} body, which naturally <span class="lime">will break in ${his} ${assPussy}.</span>`); + if (slave.mpreg === 1) { + slave.anus = 1; + } else { + slave.vagina = 1; + } + slave.devotion += 4; + } else if (slave.vagina === 0 || (slave.anus === 0 && slave.mpreg === 1)) { + r.push(`As you anticipated, ${he} refuses to give ${impregnatrix.slaveName} ${his} virginity. You restrain ${him} despite ${his} <span class="mediumorchid">horrified tears</span> and <span class="gold">frightened begging.</span> Naturally, this cruel tableau <span class="lime">will break in ${his} ${assPussy}.</span>`); + slave.devotion -= 5; + slave.trust -= 5; + if (slave.mpreg === 1) { + slave.anus = 1; + } else { + slave.vagina = 1; + } + } else if (isAmputee(slave)) { + r.push(`You set ${his} limbless torso up for ${impregnatrix.slaveName}.`); + } else if (tooBigBelly(slave)) { + r.push(`You set ${him} up for ${impregnatrix.slaveName}, face-down so ${he} may rest helplessly against ${his} ${belly} belly.`); + } else if (tooBigBreasts(slave)) { + r.push(`You set ${him} up for ${impregnatrix.slaveName}, face-${(slave.belly >= 60000) ? `up` : `down`} so the weight of ${his} tits pins ${him} helplessly in place.`); + } else if (tooBigButt(slave)) { + r.push(`You set ${him} up for ${impregnatrix.slaveName}, face-down so the weight of ${his} giant ass pins ${him} helplessly in place and gives ${impregnatrix.slaveName} a lovely cushion to thrust against.`); + } else if (tooBigDick(slave)) { + r.push(`You set ${him} up for ${impregnatrix.slaveName}, face-up so ${he} is pinned under the weight of ${his} giant cock.`); + } else if (tooBigBalls(slave)) { + r.push(`You set ${him} up for ${impregnatrix.slaveName}, face-${(slave.belly >= 60000) ? `up` : `down`} so the weight of ${his} giant balls anchor ${him} helplessly in place.`); + } else if (slave.fetish === "submissive" && slave.fetishStrength > 60 && slave.fetishStrength > 60 && slave.fetishKnown === 1) { + r.push(`${He} is accustomed to submit to you, but as a natural submissive ${he} doesn't have much trouble submitting to ${impregnatrix.slaveName}'s seed instead.`); + } else if (slave.devotion < -20) { + r.push(`${He} tries to refuse, so you restrain ${him} despite ${his} resistance to the idea of being made a breeder.`); + } else if (slave.devotion <= 20) { + r.push(`${He} obeys your orders reluctantly, arranging ${himself} for ${(slave.mpreg === 1) ? `anal` : `vaginal`} sex despite ${his} obvious hesitation to be made a breeder.`); + } else if (slave.devotion < 10) { + r.push(`${He} obeys your orders, arranging ${himself} for ${(slave.mpreg === 1) ? `anal` : `vaginal`} sex despite ${his} slight hesitation at the idea of being made a breeder.`); + } else { + r.push(`${He} happily obeys your orders, getting ready to serve ${his} ${getWrittenTitle(slave)} by making ${himP} another slave.`); + } + + r.push(knockMeUp(slave, 100, 2, impregnatrix.ID, true)); + + App.Events.addParagraph(node, r); + r = []; + + if (slave.devotion < -20 && impregnatrix.devotion < -20) { + r.push(`Since you have two restrained slaves, it's up to you to do all the work. You put ${slave.slaveName} on the couch with ${his} ${assPussy} available, and then maneuver ${impregnatrix.slaveName}'s dick into place. The two slaves make no further moves until you deal ${impregnatrix.slaveName} a terrific swat across the ass and promise to give ${him2} more of the same until ${he2} gets going. After watching them mechanically go at it for a while, you stop ${impregnatrix.slaveName}, insert an electrostimulator up ${his2} rectum, and administer a shock to ${his2} ${prostate} that forces ${him2} to empty ${his2} nuts into ${slave.slaveName}. Both slaves <span class="mediumorchid">resent</span> what you made them do and <span class="gold">fear you</span> as a result.`); + slave.devotion -= 5; + slave.trust -= 5; + impregnatrix.devotion -= 5; + impregnatrix.trust -= 5; + impregnatrix.counter.anal += 1; + V.analTotal += 1; + if (impregnatrix.anus === 0) { + r.push(`${impregnatrix.slaveName} would have been reluctant to <span class="lime">lose ${his2} anal virginity</span> in any case, but being assraped by a metal probe that shocked ${him2} into orgasm so that ${he2} would impregnate another slave is <span class="mediumorchid">a special level</span> of violation for ${him2}.`); + impregnatrix.devotion -= 5; + impregnatrix.anus = 1; + } + } else if (impregnatrix.devotion < -20) { + r.push(`Since your semen donatrix is restrained, you order ${slave.slaveName} to present ${himself} on the couch, and then maneuver ${impregnatrix.slaveName}'s dick into place. ${slave.slaveName} does ${his} best to hump ${himself} against the unwilling cock until you deal ${impregnatrix.slaveName} a terrific swat across the ass and promise to give ${him2} more of the same until ${he2} gets going. After watching ${him2} mechanically fuck for a while, you stop ${him2}, push an electrostimulator up ${his2} butt, and administer a shock to ${his2} ${prostate} that forces ${him2} to empty ${his2} nuts into ${slave.slaveName}. ${He} <span class="mediumorchid">resents</span> what you made ${him2} do and <span class="gold">fears you</span> as a result. Though ${slave.slaveName} accepts the situation, ${he} looks into ${impregnatrix.slaveName}'s eyes with obvious apology.`); + impregnatrix.devotion -= 5; + impregnatrix.trust -= 5; + impregnatrix.counter.anal += 1; + V.analTotal += 1; + if (impregnatrix.anus === 0) { + r.push(`${impregnatrix.slaveName} would have been reluctant to <span class="lime">lose ${his2} anal virginity</span> in any case, but being assraped by a metal probe that shocked ${him2} into orgasm so that ${he2} would impregnate another slave is <span class="mediumorchid">a special level</span> of violation for ${him2}.`); + impregnatrix.devotion -= 5; + impregnatrix.anus = 1; + } + } else if (impregnatrix.fetish === "pregnancy" && impregnatrix.fetishStrength > 60 && impregnatrix.devotion > 20 && slave.devotion < -20) { + r.push(`You arrange ${slave.slaveName} on the couch with ${his} fertile pussy defenseless and available, and then tell the randy ${impregnatrix.slaveName} that it's all ${hers2}. The slave life has so affected ${impregnatrix.slaveName} that ${he2} is quite eager to rape another slave pregnant${(superfetation === 1) ? `, even more so since ${he} is already with child` : ``} to fulfill ${his2} desire to reproduce. ${He2} finishes with indecent speed and looks almost disappointed until you tell ${him2} to take ${his2} time and be thorough. By the end of the day ${slave.slaveName}'s ${assCunt} is dripping cum, to ${his} <span class="gold">horror</span> and <span class="mediumorchid">resentment,</span> while ${impregnatrix.slaveName} is lying next to ${him} on the couch in a state of obvious <span class="hotpink">satiation and bliss.</span> ${impregnatrix.slaveName} kisses ${slave.slaveName}'s ${belly} stomach and expresses the hope that ${he}'ll produce a good new slave.`); + + slave.devotion -= 5; + slave.trust -= 5; + impregnatrix.devotion += 4; + } else if (impregnatrix.energy > 95 && impregnatrix.devotion > 20 && slave.devotion < -20) { + r.push(`You arrange ${slave.slaveName} on the couch with ${his} fertile ${assPussy} defenseless and available, and then tell the randy ${impregnatrix.slaveName} that it's all ${hers2}. The slave life has so affected ${impregnatrix.slaveName} that ${he2} is quite eager to rape another slave pregnant${(superfetation === 1) ? `, especially since ${he} is already with child` : ``}, just for the perverted novelty of the act. ${He2} blows ${his2} load with indecent speed and looks crushed until you tell ${him2} to take ${his2} time and be thorough. By the end of the day ${slave.slaveName}'s ${(slave.mpreg === 1) ? `anus` : `cunt`} is dripping cum, to ${his} <span class="gold">horror</span> and <span class="mediumorchid">resentment,</span> while ${impregnatrix.slaveName} is lying next to ${him} on the couch in a state of obvious <span class="hotpink">satiation and bliss.</span> ${impregnatrix.slaveName} kisses ${slave.slaveName}'s ${belly} stomach and expresses the hope that you'll let ${him2} do this again ${(superfetation === 1) ? `soon` : `sometime`}.`); + slave.devotion -= 5; + slave.trust -= 5; + impregnatrix.devotion += 4; + } else if (slave.devotion <= 20 || impregnatrix.devotion <= 20) { + r.push(`You order ${slave.slaveName} onto the couch and tell ${impregnatrix.slaveName} to get on with it. They fuck mechanically, gazing with roiling emotions into each others' eyes. They do seem to come to some sort of a nonverbal understanding on the necessity of getting it done, and there is no real unhappiness in either of them when they finish and disentangle themselves, with ${impregnatrix.slaveName}'s rapidly softening dick slipping easily out of ${slave.slaveName}'s cum-filled ${assPussy}.`); + } else if (slave.devotion <= 50 || impregnatrix.devotion <= 50) { + r.push(`You order ${slave.slaveName} and ${impregnatrix.slaveName} to get on with it. They fuck mechanically at first, gazing with roiling emotions into each others' eyes. Eventually, they begin to enjoy the extreme intimacy of the act, finding between themselves a hint of a life before slavery, when men and women had sex within the bonds of marriage for the purpose of procreation${(superfetation === 1) ? `, even though one of them is already heavy with child` : ``}. They finish and resume life as slaves, the light of this intimacy diminishing, softening with ${impregnatrix.slaveName}'s dick and dripping away with the contents of ${slave.slaveName}'s cum-filled ${assPussy}.`); + } else if (slave.mpreg === 1) { + r.push(`The parents-to-be need little encouragement. They embrace happily and turn eagerly to the business of anal sex in`); + if (slave.belly + impregnatrix.belly >= 5000) { + r.push(`an awkward`); + } else { + r.push(`the`); + } + r.push(`cowgirl position. They take their time, humping slowly and gazing into each others' eyes. After a little while, though, ${slave.slaveName} looks over to where you're sitting, the invitation clear in ${his} eyes. As soon as you stand to come over, ${slave.slaveName} turns around on ${impregnatrix.slaveName}'s cock and opens wide for you. You and ${impregnatrix.slaveName} enjoy the`); + if (superfetation === 1) { + r.push(`gravid ${girl}`); + } else { + r.push(`mother-to-be`); + } + r.push(`gently until ${he} climaxes, ${his} eager oral reaching a fever pitch, bringing you to your own climax.`); + if (V.PC.dick !== 0) { + if (canDoVaginal(impregnatrix)) { + r.push(`Pulling out, you flip them again so that ${impregnatrix.slaveName} is on top and switch to ${his2} pussy instead, stimulating ${his2} ${prostate} with a good fucking until ${he2} blows ${his2} load into ${slave.slaveName}'s fertile ${assCunt}. The two of them collapse into an exhausted, <span class="hotpink">happy</span> pile of slave flesh with three loads inside them.`); + if (impregnatrix.vagina === 0) { + r.push(`${impregnatrix.slaveName} will certainly remember this <span class="hotpink">very special</span> day for many reasons, including it being ${his2} <span class="lime">first time</span> as ${he2} inseminated ${slave.slaveName}.`); + impregnatrix.devotion += 4; + impregnatrix.vagina = 1; + } + if (canImpreg(impregnatrix, V.PC)) { + r.push(knockMeUp(impregnatrix, 10, 0, -1, true)); + } + impregnatrix.counter.vaginal += penCountBonus; + V.vaginalTotal += penCountBonus; + } else if (canDoAnal(impregnatrix)) { + r.push(`Pulling out, you flip them again so that ${impregnatrix.slaveName} is on top and switch to ${his2} ass instead, stimulating ${his2} ${prostate} with a good assfuck until ${he2} blows ${his2} load into ${slave.slaveName}'s fertile ${assCunt}. The two of them collapse into an exhausted, <span class="hotpink">happy</span> pile of slave flesh with three loads inside them.`); + if (impregnatrix.anus === 0) { + r.push(`${impregnatrix.slaveName} will certainly remember this <span class="hotpink">very special</span> day for many reasons, including taking ${his2} <span class="lime">first buttfuck</span> as ${he2} inseminated ${slave.slaveName}.`); + impregnatrix.devotion += 4; + impregnatrix.anus = 1; + } + if (canImpreg(impregnatrix, V.PC)) { + r.push(knockMeUp(impregnatrix, 10, 1, -1, true)); + } + impregnatrix.counter.anal += penCountBonus; + V.analTotal += penCountBonus; + } else { + r.push(`The two of them collapse into an exhausted, <span class="hotpink">happy</span> pile of slave flesh.`); + } + } else { + if (canDoVaginal(impregnatrix)) { + r.push(`Pulling back, you flip them again so that ${impregnatrix.slaveName} is on top and don a strap-on. You begin stimulating ${his2} ${prostate} with a good fucking until ${he2} blows ${his2} load into ${slave.slaveName}'s fertile ${assCunt}. The two of them collapse into an exhausted, <span class="hotpink">happy</span> pile of slave flesh.`); + if (impregnatrix.vagina === 0) { + r.push(`${impregnatrix.slaveName} will certainly remember this <span class="hotpink">very special</span> day for many reasons, including it being ${his2} <span class="lime">first time</span> as ${he2} inseminated ${slave.slaveName}.`); + impregnatrix.devotion += 4; + impregnatrix.vagina = 1; + } + impregnatrix.counter.vaginal += penCountBonus; + V.vaginalTotal += penCountBonus; + } else if (canDoAnal(impregnatrix)) { + r.push(`Pulling back, you flip them again so that ${impregnatrix.slaveName} is on top and don a strap-on. You begin stimulating ${his2} ${prostate} with a good assfuck until ${he2} blows ${his2} load into ${slave.slaveName}'s fertile ${assCunt}. The two of them collapse into an exhausted, <span class="hotpink">happy</span> pile of slave flesh.`); + impregnatrix.counter.anal += penCountBonus; + V.analTotal += penCountBonus; + if (impregnatrix.anus === 0) { + r.push(`${impregnatrix.slaveName} will certainly remember this <span class="hotpink">very special</span> day for many reasons, including taking ${his2} <span class="lime">first buttfuck</span> as ${he2} inseminated ${slave.slaveName}.`); + impregnatrix.devotion += 4; + impregnatrix.anus = 1; + } + } else { + r.push(`The two of them collapse into an exhausted, <span class="hotpink">happy</span> pile of slave flesh.`); + } + } + impregnatrix.counter.oral += penCountBonus; + V.oralTotal += penCountBonus; + slave.devotion += 4; + impregnatrix.devotion += 4; + } else { + let didImpregnatrix = 0; + r.push(`The parents-to-be need little encouragement. They embrace happily and turn eagerly to the business of vanilla sex in`); + if (slave.belly + impregnatrix.belly >= 5000) { + r.push(`an awkward`); + } else { + r.push(`the`); + } + r.push(`missionary position. They take their time, humping slowly and gazing into each others' eyes. After a little while, though, ${slave.slaveName} looks over ${impregnatrix.slaveName}'s shoulder to where you're sitting, the invitation clear in ${his} eyes. As soon as you stand to come over, they roll over without being ordered to`); + if (canDoAnal(slave)) { + r.push(`present ${slave.slaveName}'s butthole.`); + + slave.counter.anal += penCountBonus; + V.analTotal += penCountBonus; + } else { + r.push(`invite you into ${slave.slaveName}'s crowded pussy.`); + + slave.counter.vaginal += penCountBonus; + V.vaginalTotal += penCountBonus; + } + r.push(`You and ${impregnatrix.slaveName} double penetrate the`); + if (superfetation === 1) { + r.push(`gravid ${girl}`); + } else { + r.push(`mother-to-be`); + } + r.push(`gently until ${he} climaxes, clenching you to orgasm in turn with ${his} spasms. Pulling out, you offer`); + if (V.PC.dick !== 0) { + r.push(`yourself`); + } else { + r.push(`your strap-on`); + } + r.push(`to ${slave.slaveName}'s gasping mouth so ${he} can`); + + if (V.PC.dick !== 0) { + r.push(`suck you hard again`); + } else { + r.push(`lube the phallus with some saliva`); + } + r.push(`as ${he} continues riding cock. Once`); + if (V.PC.dick !== 0) { + r.push(`stiff,`); + } else { + r.push(`the strap-on is nice and wet,`); + } + r.push(`you flip them again so that ${impregnatrix.slaveName} is back on top and switch to ${his2}`); + if (canDoVaginal(impregnatrix)) { + r.push(`feminine slit instead, stimulating ${his2} ${prostate} with a hard fucking`); + didImpregnatrix = 1; + } else if (canDoAnal(impregnatrix)) { + r.push(`ass instead, stimulating ${his2} ${prostate} with a good assfuck`); + didImpregnatrix = 2; + } else { + r.push(`mouth instead, giving ${him2} a good facefuck`); + impregnatrix.counter.oral += penCountBonus; + V.oralTotal += penCountBonus; + } + r.push(`until ${he2} blows ${his2} load into ${slave.slaveName}'s fertile cunt. The two of them collapse into an exhausted, <span class="hotpink">happy</span> pile of slave flesh with three loads inside them.`); + slave.devotion += 4; + impregnatrix.devotion += 4; + if (didImpregnatrix === 1) { + if (impregnatrix.vagina === 0) { + r.push(`${impregnatrix.slaveName} will certainly remember this <span class="hotpink">very special</span> day for many reasons, including losing ${his2} <span class="lime">virginity</span> as ${he2} inseminated ${slave.slaveName}.`); + impregnatrix.devotion += 4; + impregnatrix.vagina = 1; + } + impregnatrix.counter.vaginal += penCountBonus; + V.vaginalTotal += penCountBonus; + if (canImpreg(impregnatrix, V.PC)) { + r.push(knockMeUp(impregnatrix, 10, 0, -1, true)); + } + } else if (didImpregnatrix === 2) { + if (impregnatrix.anus === 0) { + r.push(`${impregnatrix.slaveName} will certainly remember this <span class="hotpink">very special</span> day for many reasons, including taking ${his2} <span class="lime">first buttfuck</span> as ${he2} inseminated ${slave.slaveName}.`); + impregnatrix.devotion += 4; + impregnatrix.anus = 1; + } + impregnatrix.counter.anal += penCountBonus; + V.analTotal += penCountBonus; + if (canImpreg(impregnatrix, V.PC)) { + r.push(knockMeUp(impregnatrix, 10, 1, -1, true)); + } + } + if (slave.anus === 0 && canDoAnal(slave)) { + r.push(`${slave.slaveName}`); + r.push(`has been used as a slave in a truly thorough way today: ${he} has <span class="hotpink">accepted</span> both ${his} <span class="lime">first anal</span> and insemination by ${impregnatrix.slaveName}.`); + slave.devotion += 4; + slave.anus = 1; + } + } + + r.push(`Throughout the week, you keep ${slave.slaveName}'s ${assPussy} intimate with ${impregnatrix.slaveName}'s cock. In the end, you are certain ${slave.slaveName}`); + if (superfetation === 1) { + r.push(`has <span class="lime">added ${impregnatrix.slaveName}'s child</span> to ${his} pregnancy.`); + } else { + r.push(`is <span class="lime">carrying ${impregnatrix.slaveName}'s child.</span>`); + } + + if (V.arcologies[0].FSRestart !== "unset" && V.eugenicsFullControl !== 1) { + r.push(`Rumors spread about you breeding your slaves; the Societal Elite are <span class="red">displeased</span> by these rumors.`); + V.failedElite += 1; + } + if (V.arcologies[0].FSGenderRadicalist !== "unset" && slave.mpreg === 1) { + r.push(`Society <span class="green">approves</span> of your breeding your slave's ass; this advances the ideal all a slave needs is their rear.`); + repX(V.FSSingleSlaveRep * (V.arcologies[0].FSGenderRadicalist / V.FSLockinLevel), "futureSocieties", slave); + V.arcologies[0].FSGenderRadicalist += 0.05 * V.FSSingleSlaveRep; + } else if (V.arcologies[0].FSGenderFundamentalist !== "unset" && slave.mpreg === 1) { + r.push(`Society <span class="red">is disgusted</span> by this degenerate form of reproduction.`); + repX(forceNeg(V.FSSingleSlaveRep * (V.arcologies[0].FSGenderFundamentalist / V.FSLockinLevel)), "futureSocieties", slave); + V.arcologies[0].FSGenderFundamentalist -= 0.05 * V.FSSingleSlaveRep; + } else if (V.arcologies[0].FSGenderFundamentalist !== "unset") { + r.push(`Society <span class="green">approves</span> of your breeding your slaves; this advances the ideal of a durable, self propagating race of slaves.`); + repX(V.FSSingleSlaveRep * (V.arcologies[0].FSGenderFundamentalist / V.FSLockinLevel), "futureSocieties", slave); + V.arcologies[0].FSGenderFundamentalist += 0.05 * V.FSSingleSlaveRep; + } + + App.Events.addParagraph(node, r); + r = []; + + r.push(`You prepare the necessary file on their possible offspring. Upon birth, it will be remanded to a slave orphanage to be raised to the age of ${V.minimumSlaveAge} and then sold, but its likely appearance and traits are already worth noting. ${slave.slaveName} and ${impregnatrix.slaveName} are likely to produce`); + + if (V.seeRace === 1) { + if (slave.race === "white" && impregnatrix.race === "white") { + r.push(`a pure white,`); + } else if (slave.race === "asian" && impregnatrix.race === "asian") { + r.push(`a pure Asian,`); + } else if (slave.race === "latina" && impregnatrix.race === "latina") { + r.push(`a pure latina,`); + } else if (slave.race === "black" && impregnatrix.race === "black") { + r.push(`a pure black,`); + } else if (slave.race === "middle eastern" && impregnatrix.race === "middle eastern") { + r.push(`a pure Middle Eastern,`); + } else if (slave.race === "malay" && impregnatrix.race === "malay") { + r.push(`a pure malay,`); + } else if (slave.race === "white" && impregnatrix.race === "black") { + r.push(`a mulatto,`); + } else if (slave.race === "black" && impregnatrix.race === "white") { + r.push(`a mulatto,`); + } else if (slave.race === "white" && impregnatrix.race === "latina") { + r.push(`a mestizo,`); + } else if (slave.race === "latina" && impregnatrix.race === "white") { + r.push(`a mestizo,`); + } else if (slave.race === "asian" && impregnatrix.race === "black") { + r.push(`an Afro-Asian,`); + } else if (slave.race === "black" && impregnatrix.race === "asian") { + r.push(`an Afro-Asian,`); + } else if (slave.race === "middle eastern" && impregnatrix.race === "black") { + r.push(`an Afro-Arab,`); + } else if (slave.race === "black" && impregnatrix.race === "middle eastern") { + r.push(`an Afro-Arab,`); + } else if (slave.race === "indo-aryan" && impregnatrix.race === "black") { + r.push(`an Afro-Indian,`); + } else if (slave.race === "black" && impregnatrix.race === "indo-aryan") { + r.push(`an Afro-Indian,`); + } else if (slave.race === "amerindian" && impregnatrix.race === "white") { + r.push(`a mestizo,`); + } else if (slave.race === "white" && impregnatrix.race === "amerindian") { + r.push(`a mestizo,`); + } else if (slave.race === "catgirl" || impregnatrix.race === "catgirl") { + r.push(`a catgirl,`); + } else if (slave.race === impregnatrix.race && slave.race !== "mixed race" && impregnatrix.race !== "mixed race") { + r.push(`an ethnically pure,`); + } else if (slave.race !== impregnatrix.race && slave.race !== "mixed race" && impregnatrix.race !== "mixed race") { + r.push(`a biracial,`); + } else { + r.push(`mixed ethnicity,`); + } + } + + if ((slave.intelligence + impregnatrix.intelligence) / 2 > 95) { + r.push(`brilliant,`); + } else if ((slave.intelligence + impregnatrix.intelligence) / 2 > 15) { + r.push(`smart,`); + } else if ((slave.intelligence + impregnatrix.intelligence) / 2 < -95) { + r.push(`cretinous,`); + } else if ((slave.intelligence + impregnatrix.intelligence) / 2 < -15) { + r.push(`stupid,`); + } + + if ((slave.height + impregnatrix.height) > 185) { + r.push(`tall,`); + } else if ((slave.height + impregnatrix.height) < 160) { + r.push(`short,`); + } else { + r.push(`middle height,`); + } + + if ((slave.boobs + impregnatrix.boobs - slave.boobsImplant - impregnatrix.boobsImplant - impregnatrix.boobsMilk) > 1500) { + r.push(`big-titted`); + } else if ((slave.boobs + impregnatrix.boobs - slave.boobsImplant - impregnatrix.boobsImplant - impregnatrix.boobsMilk) < 700) { + r.push(`flat-chested`); + } else { + r.push(`moderately-breasted`); + } + + if ((slave.butt + impregnatrix.butt - slave.buttImplant - impregnatrix.buttImplant) > 9) { + r.push(`slave with a huge ass.`); + } else if ((slave.butt + impregnatrix.butt - slave.buttImplant - impregnatrix.buttImplant) < 5) { + r.push(`slave with a flat ass.`); + } else { + r.push(`slave with a decent ass.`); + } + + App.Events.addParagraph(node, r); + return node; + } +}; diff --git a/src/npc/interaction/passage/fSlaveImpreg.tw b/src/npc/interaction/passage/fSlaveImpreg.tw deleted file mode 100644 index 873c0b8f0c5866070ee866fc3186abf24273d662..0000000000000000000000000000000000000000 --- a/src/npc/interaction/passage/fSlaveImpreg.tw +++ /dev/null @@ -1,47 +0,0 @@ -:: FSlaveImpreg [nobr] - -<<set $impregnatrix = 0>> -<<set $nextLink = "Slave Interact">> -<<set $nextButton = "Back">> - -<p class="scene-intro"> - <<= getSlave($AS).slaveName>> is fertile; now you must select a slave with both a penis and potent testicles. -</p> - -<h3>Select an eligible slave to serve as the semen donatrix</h3> - -<<set _eligibles = $slaves.filter((s) => (s.ID != $AS) && canImpreg(getSlave($AS), s) && canPenetrate(s))>> -<<set _kinship = ibc.kinship_one_many(getSlave($AS), _eligibles)>> -<<for _i = 0; _i < _eligibles.length; _i++>> - <<set _name = SlaveFullName(_eligibles[_i])>> - <div> - <<print "[[_name|FSlaveImpreg Consummate][$impregnatrix = _eligibles[" + _i + "]]]">> - <<if _eligibles[_i].custom.label>> - (@@.yellow;''<<print _eligibles[_i].custom.label>>''@@) - <</if>> - <<if totalRelatives(getSlave($AS)) > 0>> - <<set _relTerm = relativeTerm(getSlave($AS), _eligibles[_i])>> - <<if _relTerm != null>> - @@.lightgreen;<<= capFirstChar(_relTerm)>>@@ - <</if>> - <</if>> /* closes extended family mode */ - <<if $inbreeding && _kinship[_eligibles[_i].ID] > 0>> - <<set _thisKinship = _kinship[_eligibles[_i].ID]>> - <<if _thisKinship >= 0.5>> - (Extreme - <<elseif _thisKinship >= 0.25>> - (Major - <<elseif _thisKinship >= 0.125>> - (Some - <<elseif _thisKinship >= 0.0625>> - (Minor - <<else>> - (Slight - <</if>> - inbreeding, CoI of <<print _thisKinship>>) - <</if>> - </div> -<</for>> -<<if (_eligibles.length === 0)>> - //You have no slaves capable of inseminating others.// -<</if>>