From 18b5be76c3aeff612671080dea605465f0148206 Mon Sep 17 00:00:00 2001 From: kopareigns <kopareigns@gmail.com> Date: Sun, 2 Aug 2020 13:11:57 -0400 Subject: [PATCH] Slave on Slave Clit/Dick to JS --- src/events/RESS/slaveOnSlaveClit.js | 97 ++++++++++++++++++++ src/events/RESS/slaveOnSlaveDick.js | 131 ++++++++++++++++++++++++++++ src/events/randomEvent.js | 2 + src/js/eventSelectionJS.js | 18 ---- src/uncategorized/RESS.tw | 92 +------------------ 5 files changed, 231 insertions(+), 109 deletions(-) create mode 100644 src/events/RESS/slaveOnSlaveClit.js create mode 100644 src/events/RESS/slaveOnSlaveDick.js diff --git a/src/events/RESS/slaveOnSlaveClit.js b/src/events/RESS/slaveOnSlaveClit.js new file mode 100644 index 00000000000..d40908cca51 --- /dev/null +++ b/src/events/RESS/slaveOnSlaveClit.js @@ -0,0 +1,97 @@ +App.Events.RESSSlaveOnSlaveClit = class RESSSlaveOnSlaveClit extends App.Events.BaseEvent { + eventPrerequisites() { + return []; + } + + actorPrerequisites() { + return [ + [ // single event slave + s => s.fetish !== "mindbroken", + s => App.Utils.hasFamilySex(s) || s.rules.release.slaves === 1, + s => s.clit > 2 + ] + ]; + } + + execute(node) { + /** @type {Array<App.Entity.SlaveState>} */ + let [eventSlave] = this.actors.map(a => getSlave(a)); + const { + He, he, His, his, him + } = getPronouns(eventSlave); + const { + heU, hisU, himU, himselfU + } = getNonlocalPronouns(0).appendSuffix('U'); + + /** @type {App.Entity.PlayerState} */ + let PC = V.PC; + + V.nextLink = "Next Week"; + + App.Events.drawEventArt(node, eventSlave, "no clothing"); + + let t = []; + + t.push(`Through the glass walls of your office, you see `); + t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave)); + t.push(`fucking another slave. Odd, since ${he} doesn't have a penis: it seems the other slave likes ${him} enough to try to make clitoral penetration work. ${eventSlave.slaveName}'s ${V.seeRace === 1 ? eventSlave.race : ""} clit is certainly big enough to make it possible. Since you gave ${him} orders that permit ${him} to fuck your other slaves, ${he}'s been having as much sex with them as ${he} can. The other slave is enjoying ${himselfU} even though the clit in ${hisU} pussy is a little disappointing compared to a real cock.`); + App.Events.addParagraph(node, t); + t = []; + + App.Events.addResponses(node, [ + new App.Events.Result("The slave taking it has a free anus, so use that", bottom), + canDoAnal(eventSlave) + ? new App.Events.Result("The slave giving it has a free anus, so use that", topAnal, virginWarning("anal")) + : new App.Events.Result(), + canDoVaginal(eventSlave) + ? new App.Events.Result("The slave giving it has a free pussy, so use that", topVaginal, virginWarning("vaginal")) + : new App.Events.Result() + ]); + + function bottom() { + t = []; + + t.push(`Since the other slave is riding ${eventSlave.slaveName}'s huge clit, it's a trivial matter to ${PC.dick === 0 ? "don a strap-on," : ""} come up behind the fucking slaves, stop the other slave's riding for a moment, and insert yourself into ${hisU} anus. The other slave gasps as your ${PC.dick === 0 ? "strap-on" : "big dick"} complements the clit in ${hisU} pussy. The poor slave rides out the sexual storm as you and ${eventSlave.slaveName} fuck ${himU}. ${eventSlave.slaveName} flirts outrageously with you over the other slave's shoulder whenever ${he} can. <span class="mediumaquamarine">${He} has become more trusting of you.</span>`); + + eventSlave.trust += 4; + seX(eventSlave, "penetrative", "slaves", "anal"); + return t; + } + + function topAnal() { + t = []; + + t.push(`Since ${eventSlave.slaveName} is on top, it's a trivial matter to ${PC.dick === 0 ? "don a strap-on," : ""} come up behind the fucking slaves, stop ${his} thrusting for a moment, and insert yourself into ${his} anus.`); + if (eventSlave.fetish === "buttslut" && eventSlave.fetishKnown === 1) { + t.push(`${He} shivers with delight as ${he} feels ${his} anal ring stretch to accommodate your ${PC.dick === 0 ? "strap-on" : "dick"}.`); + eventSlave.devotion += 1; + } + t.push(VCheck.Anal(1, eventSlave)); + t.push(`Fucking a slave with ${eventSlave.prostate > 0 ? "prostate" : ""} stimulation from your ${PC.dick === 0 ? "phallus" : "cock"} in ${his} ass makes ${him} cum with indecent speed. You let ${him} slide down so ${he} can finish the other slave with ${his} mouth while you continue using ${his} anus. The other slave definitely enjoys ${eventSlave.slaveName}'s moaning into ${hisU} pussy as you use ${eventSlave.slaveName}'s ass. The hard buttfucking ${eventSlave.slaveName} is getting keeps ${his} clit hard all the way through. <span class="hotpink">${His} submission to you has increased.</span>`); + + eventSlave.devotion += 4; + seX(eventSlave, "penetrative", "slaves", "anal"); + return t; + } + + function topVaginal() { + t = []; + + t.push(`Since ${eventSlave.slaveName} is on top, it's a trivial matter to< ${PC.dick === 0 ? "don a strap-on," : ""} come up behind the fucking slaves, stop ${his} thrusting for a moment, and insert yourself into ${his} pussy. ${He} obediently stops fucking so you can maneuver into ${him}.`); + t.push(VCheck.Vaginal(1, eventSlave)); + t.push(`Having a ${PC.dick === 0 ? "strap-on" : "dick"} in ${his} pussy reduces ${his} ability to use ${his} engorged clit like a penis a little, so the slave beneath ${him} helps ${his} penetration as much as ${heU} can. It's not the most convenient of fucks, but that's to be expected when a ${properMaster()} and two slaves successfully have two separate instances of vaginal intercourse running at once. ${His} orgasm is general and intense. <span class="hotpink">${His} devotion to you has increased.</span>`); + + eventSlave.devotion += 4; + seX(eventSlave, "penetrative", "slaves", "vaginal"); + return t; + } + + function virginWarning(type) { + if (type === "anal" && eventSlave.anus === 0) { + return `This option will take ${his} anal virginity`; + } else if (type === "vaginal" && eventSlave.vagina === 0) { + return `This option will take ${his} vaginal virginity`; + } + } + } +}; diff --git a/src/events/RESS/slaveOnSlaveDick.js b/src/events/RESS/slaveOnSlaveDick.js new file mode 100644 index 00000000000..435260fe918 --- /dev/null +++ b/src/events/RESS/slaveOnSlaveDick.js @@ -0,0 +1,131 @@ +App.Events.RESSSlaveOnSlaveDick = class RESSSlaveOnSlaveDick extends App.Events.BaseEvent { + eventPrerequisites() { + return []; + } + + actorPrerequisites() { + return [ + [ // single event slave + s => s.fetish !== "mindbroken", + hasAnyArms, + hasAnyLegs, + canPenetrate, + s => App.Utils.hasFamilySex(s) || s.rules.release.slaves === 1 + ] + ]; + } + + execute(node) { + /** @type {Array<App.Entity.SlaveState>} */ + let [eventSlave] = this.actors.map(a => getSlave(a)); + const { + He, he, His, his, him + } = getPronouns(eventSlave); + const { + heU, hisU, himU, himselfU + } = getNonlocalPronouns(0).appendSuffix('U'); + + /** @type {App.Entity.PlayerState} */ + let PC = V.PC; + + V.nextLink = "Next Week"; + + App.Events.drawEventArt(node, eventSlave, "no clothing"); + + let t = []; + + t.push(`Through the glass walls of your office, you see`); + t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave)); + t.push(`fucking another slave with ${his}`); + if (eventSlave.dick <= 2) { + t.push(`small penis.`); + } else if (eventSlave.dick <= 4) { + t.push(`long cock.`); + } else if (eventSlave.dick > 4) { + t.push(`huge, horselike phallus.`); + } + t.push(`Since you gave ${him} orders that permit ${him} to fuck your other slaves, ${he}'s been fucking them whenever ${he} can. The other slave is`); + if (eventSlave.dick <= 2) { + t.push(`enjoying ${himselfU} even though the ${V.seeRace === 1 ? eventSlave.race : ""} dick in ${hisU} pussy is a little disappointing.`); + } else if (eventSlave.dick <= 4) { + t.push(`enjoying the sex.`); + } else { + t.push(`enjoying the big ${V.seeRace === 1 ? eventSlave.race : ""} dick, even if ${heU} does wince from time to time.`); + } + if (eventSlave.scrotum > 0) { + if (eventSlave.balls > 3) { + t.push(`As ${eventSlave.slaveName} pounds, ${his} big balls slap against ${his} partner.`); + } else if (eventSlave.balls > 1) { + t.push(`As ${eventSlave.slaveName} pounds, ${his} balls tighten, preparing to empty themselves.`); + } + } + App.Events.addParagraph(node, t); + t = []; + + App.Events.addResponses(node, [ + new App.Events.Result("Fuck the bottom", bottom), + canDoAnal(eventSlave) + ? new App.Events.Result("Fuck the top", topAnal, virginWarning("anal")) + : new App.Events.Result(), + canDoVaginal(eventSlave) + ? new App.Events.Result("The slave giving it has a free pussy, so use that", topVaginal, virginWarning("vaginal")) + : new App.Events.Result() + ]); + + function bottom() { + t = []; + + t.push(`Since the other slave is riding ${eventSlave.slaveName}'s ${V.seeRace === 1 ? eventSlave.race : ""} dick, it's a trivial matter to ${PC.dick === 0 ? "don a strap-on," : ""} come up behind the fucking slaves, stop the other slave's riding for a moment, and insert yourself into ${hisU} anus. The other slave`); + if (eventSlave.dick <= 2) { + t.push(`gasps as your ${PC.dick === 0 ? "strap-on complements the small dick" : "big dick complements the small one"} in ${his} pussy.`); + } else if (eventSlave.dick < 4) { + t.push(`shrieks as ${heU} feels ${hisU} holes stretched by ${PC.dick === 0 ? "a strap-on and a cock" : "two cocks"}.`); + } else { + t.push(`struggles and begs for mercy as ${hisU} holes are brutally stretched.`); + } + t.push(`The poor slave rides out the sexual storm as you and ${eventSlave.slaveName} fuck ${PC.vagina !== -1 ? `${himU}, your pussy sliding against the base of ${eventSlave.slaveName}'s thrusting shaft` : `${himU}`}. ${eventSlave.slaveName} flirts outrageously with you over the other slave's shoulder whenever ${he} can. <span class="mediumaquamarine">${He} has become more trusting of you.</span>`); + + eventSlave.trust += 4; + seX(eventSlave, "penetrative", "slaves", "anal"); + seX(PC, "penetrative", "slaves", "anal"); + return t; + } + + function topAnal() { + t = []; + + t.push(`Since ${eventSlave.slaveName} is on top, it's a trivial matter to ${PC.dick === 0 ? "don a strap-on," : ""} come up behind the fucking slaves, stop ${his} thrusting for a moment, and penetrate ${his} butthole.`); + if (eventSlave.fetish === "buttslut" && eventSlave.fetishKnown === 1) { + t.push(`${He} shivers with delight as ${he} feels ${his} anal ring stretch to accommodate your ${PC.dick === 0 ? "strap-on" : "dick"}.`); + eventSlave.devotion += 1; + } + t.push(VCheck.Anal(1, eventSlave)); + t.push(`Fucking a slave with ${eventSlave.prostate > 0 ? "prostate" : ""} stimulation from your ${PC.dick === 0 ? "phallus" : "dick"} in ${his} ${V.seeRace === 1 ? eventSlave.race : ""} ass makes ${him} cum with indecent speed. You let ${him} slide down so ${he} can finish the other slave with ${his} mouth while you continue using ${his} anus. The other slave definitely enjoys ${eventSlave.slaveName}'s moaning into ${hisU} pussy as you use ${eventSlave.slaveName}'s ass. The hard buttfucking ${eventSlave.slaveName} is getting keeps ${his} dick stiff all the way through. <span class="hotpink">${His} submission to you has increased.</span>`); + + eventSlave.devotion += 4; + seX(eventSlave, "penetrative", "slaves", "anal"); + seX(eventSlave, "anal", PC, "penetrative"); + return t; + } + + function topVaginal() { + t = []; + + t.push(`${eventSlave.slaveName}'s hermaphroditic genitalia is a little crammed together; it's busy down there. ${He} obediently stops fucking so you can maneuver into ${him}.`); + t.push(VCheck.Vaginal(1, eventSlave)); + t.push(`Having a ${PC.dick === 0 ? "strap-on" : "dick"} in ${his} pussy reduces ${his} erection a little, so the slave beneath ${him} helps ${his} penetration as much as ${heU} can. It's not the most convenient of fucks, but that's to be expected when a ${properMaster()} and two slaves successfully have two separate instances of vaginal intercourse running at once. ${PC.vagina !== -1 && PC.dick !== 0 ? "You add a third by grabbing a free hand and guiding it to your own pussy; its owner gets the idea and strokes it as best they can." : ""} ${eventSlave.slaveName}'s orgasm is general and intense. <span class="hotpink">${His} devotion to you has increased.</span>`); + + eventSlave.devotion += 4; + seX(eventSlave, "penetrative", "slaves", "vaginal"); + return t; + } + + function virginWarning(type) { + if (type === "anal" && eventSlave.anus === 0) { + return `This option will take ${his} anal virginity`; + } else if (type === "vaginal" && eventSlave.vagina === 0) { + return `This option will take ${his} vaginal virginity`; + } + } + } +}; diff --git a/src/events/randomEvent.js b/src/events/randomEvent.js index 544035d463d..a59a75b03ae 100644 --- a/src/events/randomEvent.js +++ b/src/events/randomEvent.js @@ -33,6 +33,8 @@ App.Events.getIndividualEvents = function() { new App.Events.RESSPassingDeclaration(), new App.Events.RESSRetchingCum(), new App.Events.RESSServeThePublicDevoted(), + new App.Events.RESSSlaveOnSlaveClit(), + new App.Events.RESSSlaveOnSlaveDick(), new App.Events.RESSSuppositoryResistance(), new App.Events.RESSTooThinForCumDiet(), new App.Events.RESSWaistlineWoes(), diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js index 5741b76c6c4..474e4e4c1e3 100644 --- a/src/js/eventSelectionJS.js +++ b/src/js/eventSelectionJS.js @@ -934,12 +934,6 @@ globalThis.generateRandomEventPoolStandard = function(eventSlave) { } } - if (App.Utils.hasFamilySex(eventSlave) || eventSlave.rules.release.slaves === 1) { - if (canPenetrate(eventSlave)) { - V.RESSevent.push("slave dick on slave"); - } - } - if (eventSlave.devotion >= -20) { if (eventSlave.lactation > 1) { if (canDoVaginal(eventSlave) || canDoAnal(eventSlave)) { @@ -1238,12 +1232,6 @@ globalThis.generateRandomEventPoolStandard = function(eventSlave) { } } - if (App.Utils.hasFamilySex(eventSlave) || eventSlave.rules.release.slaves === 1) { - if (eventSlave.clit > 2) { - V.RESSevent.push("slave clit on slave"); - } - } - if (eventSlave.rules.release.masturbation === 1) { if (eventSlave.dick > 4) { if (hasAnyArms(eventSlave)) { @@ -2055,12 +2043,6 @@ globalThis.generateRandomEventPoolServant = function(eventSlave) { } } - if (App.Utils.hasFamilySex(eventSlave) || eventSlave.rules.release.slaves === 1) { - if (canPenetrate(eventSlave)) { - V.RESSevent.push("slave dick on slave"); - } - } - if (eventSlave.devotion >= -20) { if (eventSlave.lactation > 1) { if (canDoVaginal(eventSlave) || canDoAnal(eventSlave)) { diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw index 52ef8aa7323..4340b937543 100644 --- a/src/uncategorized/RESS.tw +++ b/src/uncategorized/RESS.tw @@ -44,7 +44,7 @@ <<set _clothesTemp = $activeSlave.clothes>> <<switch $RESSevent>> /*Some events start with the slave naked (any event that starts with the daily inspection, for example). Here we switch their clothing just for the image to load, then switch it back quickly so the player's choice is not messed up.*/ -<<case "age implant" "ara ara" "back stretch" "bad dream" "bed snuggle" "bondage gear" "bonded love" "breast expansion blues" "confident tanning" "devoted exhibition" "devoted lotion" "desperate null" "devoted nympho" "devoted shortstack" "extreme aphrodisiacs" "fearful balls" "fucktoy tribbing" "gaped asshole" "happy dance" "heavy piercing" "huge naturals" "huge tits" "hugely pregnant" "ignorant horny" "implant inspection" "language lesson" "mindbroken morning" "modest clothes" "mods please" "old PC age difference" "orchiectomy please" "PA flirting" "penitent" "permitted masturbation" "plimb help" "rebellious arrogant" "resistant gelding" "resistant shower" "resting amp" "restricted profession" "restricted smart" "sexy succubus" "shaped areolae" "shift masturbation" "shift sleep" "shower slip" "slave clit on slave" "slave dick huge" "slave dick on slave" "sleeping ambivalent" "sore shoulders" "spa boobs" "subjugation blues" "tendon fall" "terrified inspection" "tittymonster inspection" "torpedo squeeze" "transition anxiety" "trusting HG" "unhappy virgin" "used whore" "vocal disobedience" "young PC age difference">> +<<case "age implant" "ara ara" "back stretch" "bad dream" "bed snuggle" "bondage gear" "bonded love" "breast expansion blues" "confident tanning" "devoted exhibition" "devoted lotion" "desperate null" "devoted nympho" "devoted shortstack" "extreme aphrodisiacs" "fearful balls" "fucktoy tribbing" "gaped asshole" "happy dance" "heavy piercing" "huge naturals" "huge tits" "hugely pregnant" "ignorant horny" "implant inspection" "language lesson" "mindbroken morning" "modest clothes" "mods please" "old PC age difference" "orchiectomy please" "PA flirting" "penitent" "permitted masturbation" "plimb help" "rebellious arrogant" "resistant gelding" "resistant shower" "resting amp" "restricted profession" "restricted smart" "sexy succubus" "shaped areolae" "shift masturbation" "shift sleep" "shower slip" "slave dick huge" "sleeping ambivalent" "sore shoulders" "spa boobs" "subjugation blues" "tendon fall" "terrified inspection" "tittymonster inspection" "torpedo squeeze" "transition anxiety" "trusting HG" "unhappy virgin" "used whore" "vocal disobedience" "young PC age difference">> <<set $activeSlave.clothes = "no clothing">> <<case "whore rebellious">> /* this scene states they are wearing "thick, durable latex with temperature regulation and anchor points for restraint" no matter what they are assigned to wear. */ @@ -2295,16 +2295,6 @@ As you inspect $him with your hands, $he <<= App.UI.slaveDescriptionDialog($activeSlave)>>'s daily routine includes frequent application of special skin care to $his $activeSlave.skin, hugely swollen belly to prevent $his pregnancy from ruining $his appearance with unsightly stretch marks. Several times a day, $he visits the bathroom to <<if (!hasAnyArms($activeSlave))>>have another slave<<else>>carefully<</if>> coat $his entire _belly stomach in the stuff. $He's so pregnant that it's hard to reach <<if $activeSlave.belly >= 150000>>most of its mass<<else>>the underside<</if>>. The chore keeps $him occupied and stationary for quite a while; there's no need to leave $him sexually idle while $he completes it. -<<case "slave dick on slave">> - -<<setNonlocalPronouns 0>> -Through the glass walls of your office, you see <<= App.UI.slaveDescriptionDialog($activeSlave)>> fucking another slave with $his <<if $activeSlave.dick <= 2>>small penis<<elseif $activeSlave.dick <= 4>>long cock<<elseif $activeSlave.dick > 4>>huge, horselike phallus<</if>>. Since you gave $him orders that permit $him to fuck your other slaves, $he's been fucking them whenever $he can. The other slave is <<if $activeSlave.dick <= 2>>enjoying _himselfU even though the <<if $seeRace == 1>>$activeSlave.race <</if>>dick in _hisU pussy is a little disappointing<<elseif $activeSlave.dick <= 4>>enjoying the sex<<else>>enjoying the big <<if $seeRace == 1>>$activeSlave.race <</if>>dick, even if _heU does wince from time to time<</if>>. <<if $activeSlave.scrotum > 0>><<if $activeSlave.balls > 3>>As $activeSlave.slaveName pounds, $his big balls slap against $his partner.<<elseif $activeSlave.balls > 1>>As $activeSlave.slaveName pounds, $his balls tighten, preparing to empty themselves.<</if>><</if>> - -<<case "slave clit on slave">> - -<<setNonlocalPronouns 0>> -Through the glass walls of your office, you see <<= App.UI.slaveDescriptionDialog($activeSlave)>> fucking another slave. Odd, since $he doesn't have a penis: it seems the other slave likes $him enough to try to make clitoral penetration work. $activeSlave.slaveName's <<if $seeRace == 1>>$activeSlave.race <</if>>clit is certainly big enough to make it possible. Since you gave $him orders that permit $him to fuck your other slaves, $he's been having as much sex with them as $he can. The other slave is enjoying _himselfU even though the clit in _hisU pussy is a little disappointing compared to a real cock. - <<case "PA servant">> As you begin your day one morning, you hear the quiet @@ -12297,86 +12287,6 @@ brought in to you. This time <<= App.UI.slaveDescriptionDialog($activeSlave)>> h <</link>><<if canDoVaginal($activeSlave) && ($activeSlave.vagina == 0) && $activeSlave.mpreg == 0>>//This option will take $his virginity//<<elseif !canDoVaginal($activeSlave) && ($activeSlave.anus == 0)>> //This option will take $his anal virginity//<</if>> <</if>> -<<case "slave dick on slave">> - -<<link "Fuck the bottom">> - <<replace "#result">> - Since the other slave is riding $activeSlave.slaveName's <<if $seeRace == 1>>$activeSlave.race <</if>>dick, it's a trivial matter to<<if $PC.dick == 0>> don a strap-on,<</if>> come up behind the fucking slaves, stop the other slave's riding for a moment, and insert yourself into _hisU anus. The other slave - <<if $activeSlave.dick <= 2>> - gasps as your <<if $PC.dick == 0>>strap-on complements the small dick<<else>>big dick complements the small one<</if>> in $his pussy. - <<elseif $activeSlave.dick < 4>> - shrieks as _heU feels _hisU holes stretched by <<if $PC.dick == 0>>a strap-on and a cock<<else>>two cocks<</if>>. - <<else>> - struggles and begs for mercy as _hisU holes are brutally stretched. - <</if>> - The poor slave rides out the sexual storm as you and $activeSlave.slaveName fuck _himU<<if $PC.vagina != -1>>, your pussy sliding against the base of $activeSlave.slaveName's thrusting shaft<</if>>. $activeSlave.slaveName flirts outrageously with you over the other slave's shoulder whenever $he can. @@.mediumaquamarine;$He has become more trusting of you.@@ - <<set $activeSlave.trust += 4>> - <<run seX($activeSlave, "penetrative", "slaves", "anal")>> - <<run seX($PC, "penetrative", "slaves", "anal")>> - <</replace>> -<</link>> -<<if canDoAnal($activeSlave)>> - <br><<link "Fuck the top">> - <<replace "#result">> - Since $activeSlave.slaveName is on top, it's a trivial matter to<<if $PC.dick == 0>> don a strap-on,<</if>> come up behind the fucking slaves, stop $his thrusting for a moment, and penetrate $his butthole. - <<if ($activeSlave.fetish == "buttslut") && ($activeSlave.fetishKnown) == 1>> - $He shivers with delight as $he feels $his anal ring stretch to accommodate your <<if $PC.dick == 0>>strap-on<<else>>dick<</if>>. <<set $activeSlave.devotion += 1>> - <</if>> - <<= VCheck.Anal()>> - Fucking a slave with <<if $activeSlave.prostate > 0>>prostate <</if>>stimulation from your <<if $PC.dick == 0>>phallus<<else>>cock<</if>> in $his <<if $seeRace == 1>>$activeSlave.race <</if>>ass makes $him cum with indecent speed. You let $him slide down so $he can finish the other slave with $his mouth while you continue using $his anus. The other slave definitely enjoys $activeSlave.slaveName's moaning into _hisU pussy as you use $activeSlave.slaveName's ass. The hard buttfucking $activeSlave.slaveName is getting keeps $his dick stiff all the way through. @@.hotpink;$His submission to you has increased.@@ - <<set $activeSlave.devotion += 4>> - <<run seX($activeSlave, "penetrative", "slaves", "anal")>> - <<run seX($activeSlave, "anal", $PC, "penetrative")>> - <</replace>> - <</link>><<if ($activeSlave.anus == 0)>> //This option will take $his virginity//<</if>> -<</if>> -<<if canDoVaginal($activeSlave)>> - <br><<link "The slave giving it has a free pussy, so use that">> - <<replace "#result">> - $activeSlave.slaveName's hermaphroditic genitalia is a little crammed together; it's busy down there. $He obediently stops fucking so you can maneuver into $him. - <<= VCheck.Vaginal()>> - Having a <<if $PC.dick == 0>>strap-on<<else>>dick<</if>> in $his pussy reduces $his erection a little, so the slave beneath $him helps $his penetration as much as _heU can. It's not the most convenient of fucks, but that's to be expected when a <<= properMaster()>> and two slaves successfully have two separate instances of vaginal intercourse running at once.<<if $PC.vagina != -1>><<if $PC.dick != 0>> You add a third by grabbing a free hand and guiding it to your own pussy; its owner gets the idea and strokes it as best they can.<</if>><</if>> $activeSlave.slaveName's orgasm is general and intense. @@.hotpink;$His devotion to you has increased.@@ - <<set $activeSlave.devotion += 4>> - <<run seX($activeSlave, "penetrative", "slaves", "vaginal")>> - <</replace>> - <</link>><<if ($activeSlave.vagina == 0)>> //This option will take $his virginity//<</if>> -<</if>> - -<<case "slave clit on slave">> - -<<link "The slave taking it has a free anus, so use that">> - <<replace "#result">> - Since the other slave is riding $activeSlave.slaveName's huge clit, it's a trivial matter to<<if $PC.dick == 0>> don a strap-on,<</if>> come up behind the fucking slaves, stop the other slave's riding for a moment, and insert yourself into _hisU anus. The other slave gasps as your <<if $PC.dick == 0>>strap-on complements the clit<<else>>big dick complements the clit<</if>> in _hisU pussy. The poor slave rides out the sexual storm as you and $activeSlave.slaveName fuck _himU. $activeSlave.slaveName flirts outrageously with you over the other slave's shoulder whenever $he can. @@.mediumaquamarine;$He has become more trusting of you.@@ - <<set $activeSlave.trust += 4>> - <<run seX($activeSlave, "penetrative", "slaves", "anal")>> - <</replace>> -<</link>> -<<if canDoAnal($activeSlave)>> - <br><<link "The slave giving it has a free anus, so use that">> - <<replace "#result">> - Since $activeSlave.slaveName is on top, it's a trivial matter to<<if $PC.dick == 0>> don a strap-on,<</if>> come up behind the fucking slaves, stop $his thrusting for a moment, and insert yourself into $his anus. - <<= VCheck.Anal()>> - <<if ($activeSlave.fetish == "buttslut") && ($activeSlave.fetishKnown == 1)>> - $He shivers with delight as $he feels $his anal ring stretch to accommodate your <<if $PC.dick == 0>>strap-on<<else>>dick<</if>>. <<set $activeSlave.devotion += 1>> - <</if>> - Fucking a slave with stimulation from your <<if $PC.dick == 0>>phallus<<else>>cock<</if>> in $his ass makes $him cum with indecent speed. You let $him slide down so $he can finish the other slave with $his mouth while you continue using $his anus. The other slave definitely enjoys $activeSlave.slaveName's moaning into _hisU pussy as you use $activeSlave.slaveName's ass. The hard buttfucking $activeSlave.slaveName is getting keeps $his clit hard all the way through. @@.hotpink;$His submission to you has increased.@@ - <<set $activeSlave.devotion += 4>> - <<run seX($activeSlave, "penetrative", "slaves", "anal")>> - <</replace>> - <</link>><<if ($activeSlave.anus == 0)>> //This option will take $his anal virginity//<</if>> -<</if>> -<<if canDoVaginal($activeSlave)>> - <br><<link "The slave giving it has a free pussy, so use that">> - <<replace "#result">> - Since $activeSlave.slaveName is on top, it's a trivial matter to<<if $PC.dick == 0>> don a strap-on,<</if>> come up behind the fucking slaves, stop $his thrusting for a moment, and insert yourself into $his pussy. $He obediently stops fucking so you can maneuver into $him. - <<= VCheck.Vaginal()>> - Having a <<if $PC.dick == 0>>strap-on<<else>>dick<</if>> in $his pussy reduces $his ability to use $his engorged clit like a penis a little, so the slave beneath $him helps $his penetration as much as _heU can. It's not the most convenient of fucks, but that's to be expected when a <<= properMaster()>> and two slaves successfully have two separate instances of vaginal intercourse running at once. $His orgasm is general and intense. @@.hotpink;$His devotion to you has increased.@@ - <<set $activeSlave.devotion += 4>> - <<run seX($activeSlave, "penetrative", "slaves", "vaginal")>> - <</replace>> - <</link>><<if ($activeSlave.vagina == 0)>> //This option will take $his virginity//<</if>> -<</if>> - <<case "PA servant">> <<link "Share the slave with your PA">> -- GitLab