From 2c5cb59a6eef5eb74bd72044a98fafa034776bde Mon Sep 17 00:00:00 2001 From: Skriv <skrivelese@gmail.com> Date: Sat, 15 May 2021 22:23:20 +0000 Subject: [PATCH] RESS arcade sadist to js --- src/events/RESS/arcadeSadist.js | 290 ++++++++++++++++++++++++++++++++ src/events/randomEvent.js | 1 + src/js/eventSelectionJS.js | 13 -- src/uncategorized/RESS.tw | 93 ---------- 4 files changed, 291 insertions(+), 106 deletions(-) create mode 100644 src/events/RESS/arcadeSadist.js diff --git a/src/events/RESS/arcadeSadist.js b/src/events/RESS/arcadeSadist.js new file mode 100644 index 00000000000..8a6e5530b1a --- /dev/null +++ b/src/events/RESS/arcadeSadist.js @@ -0,0 +1,290 @@ +App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEvent { + eventPrerequisites() { + return [ + () => App.Entity.facilities.arcade.established, + () => App.Entity.facilities.arcade.hasEmployees, + ]; // always valid if sufficient actors can be cast successfully + } + + actorPrerequisites() { + return [ + [ // single event slave + s => s.fetish === "sadist", + s => s.fetishStrength > 20, + s => s.fetishKnown === 1, + hasAnyArms, + hasAnyLegs, + canTalk, + s => s.devotion > 50, + s => s.trust >= -20, + s => s.belly < 300000, + ] + ]; + } + + execute(node) { + /** @type {Array<App.Entity.SlaveState>} */ + let [eventSlave] = this.actors.map(a => getSlave(a)); + const { + He, he, his, him, himself, girl + } = getPronouns(eventSlave); + const {title: Master, say} = getEnunciation(eventSlave); + + V.nextLink = "Next Week"; + + let artDiv = document.createElement("div"); // named container so we can replace it later + App.Events.drawEventArt(artDiv, eventSlave); + node.appendChild(artDiv); + + let r = []; + r.push(`You happen to come across`); + r.push(contextualIntro(V.PC, eventSlave, "DOM")); + r.push(`during one of ${his} rest periods. ${He}'s lying on a couch in the slave areas,`); + if (canSee(eventSlave)) { + r.push(`staring at the ceiling above ${him}`); + } else { + r.push(`leaning back`); + } + r.push(`with a dreamy expression on ${his} face. ${He}'s`); + if (eventSlave.rules.release.masturbation === 1) { + r.push(`touching ${himself} idly.`); + } else { + r.push(`not allowed to touch ${himself}, but ${he}'s extremely aroused.`); + } + r.push(`Whatever's on ${his} mind, it's so absorbing that ${he} doesn't realize you're there until you're standing over ${him}.`); + App.Events.addParagraph(node, r); + r = []; + + r.push(Spoken(eventSlave, `"Sorry, ${Master},"`), `he ${say}s apologetically,`); + if (eventSlave.belly >= 10000) { + r.push(`struggling`); + } else { + r.push(`scrambling`); + } + r.push(`to ${his} feet.`); + r.push(Spoken(eventSlave, `"I didn't notice you there."`)); + if (canSee(eventSlave)) { + r.push(`Seeing your questioning look,`); + } else if (canHear(eventSlave)) { + r.push(`Hearing your lack of response,`); + } else { + r.push(`Sensing a request to continue,`); + } + r.push(`${he} explains ${himself} further.`); + r.push(Spoken(eventSlave, `"I was just thinking about, um, my favorite place. I can almost get off just by thinking about it."`)); + r.push(`There's a wild, perverted gleam`); + if (canSee(eventSlave)) { + r.push(`in ${his} ${App.Desc.eyesColor(eventSlave)}.`); + } else { + r.push(`on ${his} face.`); + } + r.push(`${He}'s a confirmed sadist, so whatever ${his} favorite mental masturbation is probably quite strong.`); + + + App.Events.addParagraph(node, r); + App.Events.addResponses(node, [ + new App.Events.Result(`Ask ${him} about ${his} fantasy`, fantasy), + new App.Events.Result(`Just fuck ${him}`, fuck), + ]); + + function fantasy() { + const frag = document.createDocumentFragment(); + r = []; + + const {hisU, heU} = getNonlocalPronouns(V.seeDicks).appendSuffix("U"); + + r.push(`You order ${him} to explain further.`); + r.push(Spoken(eventSlave, `"${Master},"`), `${he} ${say}s carefully,`, Spoken(eventSlave, `"it's ${V.arcadeName}. There's a specific place there, and, well, I can't describe it. It's in the service area under ${V.arcadeName}. Can I show you what I mean?"`)); + r.push(`Intrigued, you order ${him} to show you the place ${he}'s talking about, and lead ${him} to ${V.arcadeName} through the access hallway. ${He} points to the service tunnel under one of the rows of inmates, which allows trusted slaves to clean up and perform maintenance.`); + if (eventSlave.belly >= 100000) { + r.push(`Once you've managed to shove the massive slut`); + } else if (eventSlave.belly >= 5000) { + r.push(`Once you've helped the`); + if (eventSlave.bellyPreg >= 3000) { + r.push(`gravid`); + } else { + r.push(`bloated`); + } + r.push(`${girl} fit`); + } else { + r.push(`Once you've led ${him}`); + } + r.push(`in there, ${he} stops and`); + if (canSee(eventSlave)) { + r.push(`watches`); + } else if (canHear(eventSlave)) { + r.push(`listens`); + } else { + r.push(`waits`); + } + if (V.PC.belly >= 100000) { + r.push(r.pop() + `as you struggle to join ${him} in the increasingly cramped space.`); + } else if (V.PC.belly >= 5000) { + r.push(r.pop() + `as you gently slip your motherly body in after ${him}.`); + } else { + r.push(r.pop() + "."); + } + r.push(`Inside the industrial access corridor, above you both, is a row of bodies. The slaves' faces and hips are pressed against the apertures that present their holes to customers, but the rest of them is visible from here.`); + App.Events.addParagraph(frag, r); + r = []; + + r.push(`There is little noise; the slaves are closely restrained. Indeed, you have to look closely to see that they're being fucked at all. Here and there, though, there are signs. When someone fucks a slave's face, ${hisU} throat bulges, and ${heU} often gags and struggles a little within the restraints. When their`); + if (App.Entity.facilities.arcade.employees().some(s => s.vagina > 0)) { + r.push(`pussies`); + } else { + r.push(`assholes`); + } + r.push(`get fucked, there's also some involuntary struggling, and if the phallus being thrust into them is particularly large, a rhythmic bulging of their abdomens can be discerned.`); + if (V.arcadeUpgradeInjectors === 1) { + r.push(`The bodies frequently jerk as electrostimulation is applied to force them to tighten their holes.`); + } else if (V.arcadeUpgradeInjectors === 2) { + r.push(`The quiet hissing of the drug injectors adds a menacing undertone, and the bodies frequently jerk as electrostimulation is applied to force them to tighten their holes.`); + } + if (V.arcadeUpgradeCollectors === 1) { + r.push(`The pumping collectors attached to the slaves' breasts`); + if (App.Entity.facilities.arcade.employees().some(s => s.dick > 0)) { + r.push(`and cocks`); + } + r.push(`carry the white fluid away to be processed elsewhere.`); + } + r.push(`The overall effect is subtle, but powerful. There's a sense of total servitude, overlaid with a certain feeling, or perhaps even a scent, of mindless despair. There's no wonder ${eventSlave.slaveName} likes it; there's an infinite supply of uncomplicated human anguish here.`); + + App.Events.addParagraph(frag, r); + App.Events.addResponses(frag, [ // TODO: Why the fuck are you crawling around random access shafts? + (V.PC.belly < 5000 && eventSlave.belly < 5000) + ? new App.Events.Result(`Fuck ${him} here`, here) + : new App.Events.Result(null, null, `Fucking ${him} here would be interesting; unfortunately, there just isn't enough room for two mothers-to-be.`), + new App.Events.Result(`Teach ${him} about true sadism`, truShit), + ]); + return frag; + + function here() { + r = []; + + r.push(`You reach out for ${eventSlave.slaveName}, not taking your eyes off the mesmerizing sight above. ${He}'s enjoying the spectacle too, and is so aroused that your rough handling of ${his} breasts almost brings ${him} to an immediate orgasm.`); + if (eventSlave.nipples !== "fuckable") { + r.push(`Pinching`); + } else { + r.push(`Hooking`); + } + r.push(`${his} ${eventSlave.nipples} nipples to stop ${him} from getting off too soon, you`); + if (V.PC.dick === 0) { + r.push(`hug ${him} to your chest and start playing with ${his} pussy, commanding ${him} to reach around and do the same for you.`); + seX(eventSlave, "oral", V.PC, "penetrative"); + } else if (canDoVaginal(eventSlave) && (eventSlave.vagina > 0)) { + r.push(`pull ${him} up to the right height and slide your dick inside ${him}, keeping both of you on your feet so you can take ${him} standing.`); + r.push(VCheck.Vaginal(eventSlave, 1)); + } else if (canDoAnal(eventSlave) && (eventSlave.anus > 0)) { + r.push(`shove your cock roughly up ${his} asshole, letting ${him} struggle a little as ${he} finds the right angle to take standing anal here.`); + r.push(VCheck.Anal(eventSlave, 1)); + } else { + r.push(`slide your stiff prick up between the virgin's thighs for some intercrural sex.`); + } + if (eventSlave.belly >= 5000 || V.PC.belly >= 5000 || eventSlave.weight > 160 || eventSlave.boobs > 40000 || eventSlave.butt > 10) { + r.push(`As you fuck in the cramped corridor, ${his}`); + } else { + r.push(`As you fuck, ${his}`); + } + if (canSee(eventSlave)) { + r.push(`gaze flicks up and down along the row`); + } else if (canHear(eventSlave)) { + r.push(`ears perk up at the subtle sounds`); + } else { + r.push(`expression indicates that ${he}'s become lost in ${his} thoughts`); + } + r.push(`of suffering bodies. ${He} climaxes again and again, shuddering at each new subtle sign that another one of the slaves here is being degraded by yet another cock inserted into yet another of ${hisU} defenseless holes. By the time you're satisfied, ${he}'s so exhausted that ${his} legs are shuddering uncontrollably as ${he} struggles to remain standing with you. You drop ${him}, leaving ${him} to find ${his} own way out of this place. You look back from the entrance, seeing that ${he}'s following you on shaky legs,`); + if (canSee(eventSlave)) { + r.push(`staring at`); + } else { + r.push(`facing`); + } + r.push(`you with a profound look of mixed <span class="mediumaquamarine">trust for your understanding of ${his} horrible sadism,</span> and deep unease that this is what truly gets ${him} off.`); + eventSlave.trust += 5; + return r; + } + + function truShit() { + r = []; + const randomArcadeSlave = App.Entity.facilities.arcade.employees().random(); + const {he2, His2, his2} = getPronouns(randomArcadeSlave).appendSuffix("2"); + // replace slave art + $(artDiv).empty(); + App.Events.drawEventArt(artDiv, [eventSlave, randomArcadeSlave], [eventSlave.clothes, "no clothing"]); + + r.push(`${He} seems to be focusing on the purely physical aspects of the degradation here. The true meaning of this place is so much more, and you decide to share it with ${him}. You call ${his} name, tearing ${his} attention away from the spectacle mere`); + if (V.showInches === 2) { + r.push(`inches`); + } else { + r.push(`centimeters`); + } + r.push(`over your heads, and`); + if (canSee(eventSlave)) { + r.push(`point`); + } else { + r.push(`direct ${him}`); + } + r.push(`to a particular slave. You tell ${eventSlave.slaveName} that this particular Arcade inmate's name is ${SlaveFullName(randomArcadeSlave)}.`); + if (randomArcadeSlave.career !== 0) { + r.push(`You tell ${him} that ${he2} is ${randomArcadeSlave.actualAge} years old, that ${he2} is ${randomArcadeSlave.nationality}, and that ${he2} was once ${convertCareer(randomArcadeSlave)}.`); + } else { + r.push(`You tell ${him} that ${he2} is ${randomArcadeSlave.actualAge} years old and ${randomArcadeSlave.nationality}.`); + } + r.push(`You list more details of ${his2} life before ${he2} was placed here to be fucked endlessly. ${eventSlave.slaveName}'s eyes widen as you recite the details of the prior life of this piece of human sexual equipment and the sheer weight of the intellectual sadism smashes into ${him}. Then the slave above you both jerks a little.`); + if (eventSlave.dick === 0) { + r.push(`There's no visible sign ${his2} pussy's being fucked, so it must be`); + } else { + r.push(`${His2} cock hardens involuntarily, indicating that it's`); + } + r.push(`going into ${his2} ass. You resume, mentioning that ${he2}'s been buttfucked ${randomArcadeSlave.counter.anal} times.`); + r.push(`${eventSlave.slaveName} jerks suddenly,`); + if (canAchieveErection(eventSlave)) { + r.push(`shooting ${his} cum onto the floor.`); + } else if (eventSlave.vagina < 0) { + r.push(`dribbling a little.`); + } else if (eventSlave.vaginaLube > 0) { + r.push(`squirting onto the floor.`); + } else { + r.push(`orgasming.`); + } + r.push(`${He} came without being touched. ${He}`); + if (canSee(eventSlave)) { + r.push(`stares at`); + } else { + r.push(`faces`); + } + r.push(`the mess ${he} made just by being in the presence of the arcology's <span class="hotpink">undisputed preeminent sadist;</span> ${he} shudders at the sheer gothic glory of it. ${He} has a new moment to think of when ${he} feels like <span class="lightsalmon">indulging ${his} own sadism.</span>`); + eventSlave.devotion += 5; + eventSlave.fetishStrength = Math.clamp(eventSlave.fetishStrength+10, 0, 100); + return r; + } + } + + function fuck() { + r = []; + + r.push(`You're not particularly interested in what ${he} dreams about when ${he} gets the chance, and you tell ${him} so. Whatever sadistic little fantasies ${he} keeps locked away to bring out when ${he}'s got a moment to satiate ${his} perversions is less interesting to you than the prospect of`); + if (V.PC.dick === 0) { + r.push(`${his} mouth on your cunt. So, you shove ${him} down to sit on the couch and straddle ${his} face, cutting off any further whimsies by pressing your wet pussy against ${his} lips. ${He} eats you out obediently, accepting`); + seX(eventSlave, "oral", V.PC, "penetrative"); + } else if (canDoVaginal(eventSlave) && (eventSlave.vagina > 0)) { + r.push(`giving it to ${him}. So, you shove ${him} down to sit on the couch, nudge ${his} legs apart, kneel between them, and pound ${his} pussy. You fuck ${him} so hard that ${he} doesn't have the attention for further whimsies, and ${he} accepts`); + r.push(VCheck.Vaginal(eventSlave, 1)); + } else if (canDoAnal(eventSlave) && (eventSlave.anus > 0)) { + r.push(`fucking ${his} butt. So, you shove ${him} down to`); + if (hasAnyLegs(eventSlave)) { + r.push(`kneel`); + } else { + r.push(`get`); + } + r.push(`on the couch facing away from you, and ram your cock up ${his} asshole. You assfuck ${him} so hard that ${he} doesn't have the attention for further whimsies, and ${he} accepts`); + r.push(VCheck.Anal(eventSlave, 1)); + } else { + r.push(`${him} sucking your dick. So, you shove ${him} down to sit on the couch and give ${him} your cock to keep ${his} mouth occupied, cutting off any further whimsies. ${He} blows you obediently, accepting`); + seX(eventSlave, "oral", V.PC, "penetrative"); + } + r.push(`the implicit message that <span class="hotpink">${he}'s your slut</span> in the real world, whatever thoughts ${he} may find appealing in the privacy of ${his} own mind.`); + eventSlave.devotion += 3; + return r; + } + } +}; diff --git a/src/events/randomEvent.js b/src/events/randomEvent.js index 80542b0b170..2d2b385844c 100644 --- a/src/events/randomEvent.js +++ b/src/events/randomEvent.js @@ -10,6 +10,7 @@ App.Events.getIndividualEvents = function() { return [ // instantiate all possible random individual events here // example: new App.Events.TestEvent(), + new App.Events.RESSArcadeSadist(), new App.Events.RESSAssFitting(), new App.Events.RESSBondageGear(), new App.Events.RESSCockFeederResistance(), diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js index 3a68bd417b2..7e781f226ab 100644 --- a/src/js/eventSelectionJS.js +++ b/src/js/eventSelectionJS.js @@ -482,19 +482,6 @@ if(eventSlave.drugs === "breast injections") { } } } - if (eventSlave.fetish === "sadist") { - if (eventSlave.fetishStrength > 20) { - if (App.Entity.facilities.arcade.established && App.Entity.facilities.arcade.hasEmployees) { - if (eventSlave.trust >= -20) { - if (eventSlave.devotion > 50) { - if (eventSlave.belly < 300000) { - V.RESSevent.push("arcade sadist"); - } - } - } - } - } - } if (eventSlave.assignment !== Job.QUARTER) { if (eventSlave.dick === 0) { if (eventSlave.vagina === -1) { diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw index 07d1413fc8a..d49b178f6fc 100644 --- a/src/uncategorized/RESS.tw +++ b/src/uncategorized/RESS.tw @@ -3147,12 +3147,6 @@ I didn't mean to <<s>>ound con<<c>>eited, either. I gue<<ss>> I'm <<s>>till gett <<set $activeSlave.fetishKnown = 1>> <</if>> -<<case "arcade sadist">> - -You happen to come across <<= App.UI.slaveDescriptionDialog($activeSlave)>> during one of $his rest periods. $He's lying on a couch in the slave areas, <<if canSee($activeSlave)>>staring at the ceiling above $him<<else>>leaning back<</if>> with a dreamy expression on $his face. $He's <<if $activeSlave.rules.release.masturbation == 1>>touching $himself idly.<<else>>not allowed to touch $himself, but $he's extremely aroused.<</if>> Whatever's on $his mind, it's so absorbing that $he doesn't realize you're there until you're standing over $him. -<br><br> -"<<S>>orry, <<Master>>," $he <<say>>s apologetically, <<if $activeSlave.belly >= 10000>>struggling<<else>>scrambling<</if>> to $his feet. "I didn't noti<<c>>e you there." <<if canSee($activeSlave)>>Seeing your questioning look<<elseif canHear($activeSlave)>>Hearing your lack of response<<else>>Sensing a request to continue<</if>>, $he explains $himself further. "I was ju<<s>>t thinking about, um, my favorite pla<<c>>e. I can almo<<s>>t get off ju<<s>>t by thinking about it." There's a wild, perverted gleam <<if canSee($activeSlave)>>in $his <<= App.Desc.eyesColor($activeSlave)>><<else>>on $his face<</if>>. $He's a confirmed sadist, so whatever $his favorite mental masturbation is probably quite strong. - <<case "servant maid">> <<= App.UI.slaveDescriptionDialog($activeSlave)>> is scheduled to clean your office today, just one of $his many duties as a servant in your penthouse. $He pauses in the doorway of your office for a moment, only entering once it becomes clear that you're not going to be using $him immediately. @@ -15719,93 +15713,6 @@ $He cranes $his neck, glancing over $his shoulder to give you a pleading look. <</replace>> <</link>><<if canDoVaginal($activeSlave) && ($activeSlave.vagina == 0) && $PC.dick != 0>>//This option will take $his virginity//<<elseif !canDoVaginal($activeSlave) && ($activeSlave.anus == 0) && $PC.dick != 0>> //This option will take $his anal virginity//<</if>> -<<case "arcade sadist">> - -<<link "Ask $him about $his fantasy">> - <<setNonlocalPronouns $seeDicks>> - <<replace "#result">> - <<set _pussy = App.Entity.facilities.arcade.employees().some(s => s.vagina > 0)>> - <<set _balls = App.Entity.facilities.arcade.employees().some(s => s.balls > 0)>> - You order $him to explain further. "<<Master>>," $he <<say>>s carefully, "it'<<s>> $arcadeName. There'<<s>> a <<s>>pe<<c>>ific pla<<c>>e there, and, well, I can't de<<s>>cribe it. It'<<s>> in the <<s>>ervi<<c>>e area under $arcadeName. Can I <<sh>>ow you what I mean?" Intrigued, you order $him to show you the place $he's talking about, and lead $him to $arcadeName through the access hallway. $He points to the service tunnel under one of the rows of inmates, which allows trusted slaves to clean up and perform maintenance. - <<if $activeSlave.belly >= 100000>> - Once you've managed to shove the massive slut - <<elseif $activeSlave.belly >= 5000>> - Once you've helped the <<if $activeSlave.bellyPreg >= 3000>>gravid<<else>>bloated<</if>> $girl fit - <<else>> - Once you've led $him - <</if>> - in there, $he stops and <<if canSee($activeSlave)>>watches<<elseif canHear($activeSlave)>>listens<<else>>waits<</if>><<if $PC.belly >= 100000>> as you struggle to join $him in the increasingly cramped space<<elseif $PC.belly >= 5000>> as you gently slip your motherly body in after $him<</if>>. - Inside the industrial access corridor, above you both is a row of bodies. The slaves' faces and hips are pressed against the apertures that present their holes to customers, but the rest of them is visible from here. - <br><br> - There is little noise; the slaves are closely restrained. Indeed, you have to look closely to see that they're being fucked at all. Here and there, though, there are signs. When someone fucks a slave's face, _hisU throat bulges, and _heU often gags and struggles a little within the restraints. When their <<if _pussy>>pussies<<else>>assholes<</if>> get fucked, there's also some involuntary struggling, and if the phallus being thrust into them is particularly large, a rhythmic bulging of their abdomens can be discerned. - <<if $arcadeUpgradeInjectors == 1>> - The bodies frequently jerk as electrostimulation is applied to force them to tighten their holes. - <<elseif $arcadeUpgradeInjectors == 2>> - The quiet hissing of the drug injectors adds a menacing undertone, and the bodies frequently jerk as electrostimulation is applied to force them to tighten their holes. - <</if>> - <<if $arcadeUpgradeCollectors == 1>> - The pumping collectors attached to the slaves' breasts<<if _dick>> and cocks<</if>> carry the white fluid away to be processed elsewhere. - <</if>> - The overall effect is subtle, but powerful. There's a sense of total servitude, overlaid with a certain feeling, or perhaps even a scent, of mindless despair. There's no wonder $activeSlave.slaveName likes it; there's an infinite supply of uncomplicated human anguish here. - <br><br> - <span id="result2"> - <<if $PC.belly < 5000 && $activeSlave.belly < 5000>> - <<link "Fuck $him here">> - <<replace "#result2">> - You reach out for $activeSlave.slaveName, not taking your eyes off the mesmerizing sight above. $He's enjoying the spectacle too, and is so aroused that your rough handling of $his breasts almost brings $him to an immediate orgasm. <<if $activeSlave.nipples != "fuckable">>Pinching<<else>>Hooking<</if>> $his $activeSlave.nipples nipples to stop $him from getting off too soon, you - <<if $PC.dick == 0>> - hug $him to your chest and start playing with $his pussy, commanding $him to reach around and do the same for you. - <<run seX($activeSlave, "oral", $PC, "penetrative")>> - <<elseif canDoVaginal($activeSlave) && ($activeSlave.vagina > 0)>> - pull $him up to the right height and slide your dick inside $him, keeping both of you on your feet so you can take $him standing. - <<= VCheck.Vaginal($activeSlave, 1)>> - <<elseif canDoAnal($activeSlave) && ($activeSlave.anus > 0)>> - shove your cock roughly up $his asshole, letting $him struggle a little as $he finds the right angle to take standing anal here. - <<= VCheck.Anal($activeSlave, 1)>> - <<else>> - slide your stiff prick up between the virgin's thighs for some intercrural sex. - <</if>> - As you fuck<<if $activeSlave.belly >= 5000 || $PC.belly >= 5000 || $activeSlave.weight > 160 || $activeSlave.boobs > 40000 || $activeSlave.butt > 10>> in the cramped corridor<</if>>, $his <<if canSee($activeSlave)>>gaze flicks up and down along the row<<elseif canHear($activeSlave)>>ears perk up at the subtle sounds<<else>>expression indicates that $he's become lost in $his thoughts<</if>> of suffering bodies. $He climaxes again and again, shuddering at each new subtle sign that another one of the slaves here is being degraded by yet another cock inserted into yet another of _hisU defenseless holes. By the time you're satisfied, $he's so exhausted that $his legs are shuddering uncontrollably as $he struggles to remain standing with you. You drop $him, leaving $him to find $his own way out of this place. You look back from the entrance, seeing that $he's following you on shaky legs, <<if canSee($activeSlave)>>staring at<<else>>facing<</if>> you with a profound look of mixed @@.mediumaquamarine;trust for your understanding of $his horrible sadism,@@ and deep unease that this is what truly gets $him off. - <</replace>> - <<set $activeSlave.trust += 5>> - <</link>> - <<else>> - Fucking $him here would be interesting; unfortunately, there just isn't enough room for two mothers-to-be. - <</if>> - <br><<link "Teach $him about true sadism">> - <<set _ress = App.Entity.facilities.arcade.employees().random()>> - <<setLocalPronouns _ress 2>> - <<replace "#result2">> - $He seems to be focusing on the purely physical aspects of the degradation here. The true meaning of this place is so much more, and you decide to share it with $him. You call $his name, tearing $his attention away from the spectacle mere <<if $showInches == 2>>inches<<else>>centimeters<</if>> over your heads, and <<if canSee($activeSlave)>>point<<else>>direct $him<</if>> to a particular slave. You tell $activeSlave.slaveName that this particular Arcade inmate's name is - <<= SlaveFullName(_ress)>>. You tell $him that _he2 is _ress.actualAge years old, that _he2 is _ress.nationality, and that _he2 was once <<= convertCareer(_ress)>>. You list more details of _his2 life before _he2 was placed here to be fucked endlessly. $activeSlave.slaveName's eyes widen as you recite the details of the prior life of this piece of human sexual equipment and the sheer weight of the intellectual sadism smashes into $him. Then the slave above you both jerks a little. <<if $activeSlave.dick == 0>>There's no visible sign _his2 pussy's being fucked, so it must be<<else>>_His2 cock hardens involuntarily, indicating that it's<</if>> going into _his2 ass. You resume, mentioning that _he2's been buttfucked _ress.counter.anal times. - $activeSlave.slaveName jerks suddenly, <<if canAchieveErection($activeSlave)>>shooting $his cum onto the floor<<elseif $activeSlave.vagina < 0>>dribbling a little<<elseif $activeSlave.vaginaLube > 0>>squirting onto the floor<<else>>orgasming<</if>>. $He came without being touched. $He <<if canSee($activeSlave)>>stares at<<else>>faces<</if>> the mess $he made just by being in the presence of the arcology's @@.hotpink;undisputed preeminent sadist;@@ $he shudders at the sheer gothic glory of it. $He has a new moment to think of when $he feels like @@.lightsalmon;indulging $his own sadism.@@ - <</replace>> - <<set $activeSlave.devotion += 5, $activeSlave.fetishStrength = Math.clamp($activeSlave.fetishStrength+10, 0, 100)>> - <</link>> - </span> - <</replace>> -<</link>> -<br><<link "Just fuck $him">> - <<replace "#result">> - You're not particularly interested in what $he dreams about when $he gets the chance, and you tell $him so. Whatever sadistic little fantasies $he keeps locked away to bring out when $he's got a moment to satiate $his perversions is less interesting to you than the prospect of - <<if $PC.dick == 0>> - $his mouth on your cunt. So, you shove $him down to sit on the couch and straddle $his face, cutting off any further whimsies by pressing your wet pussy against $his lips. $He eats you out obediently, accepting - <<run seX($activeSlave, "oral", $PC, "penetrative")>> - <<elseif canDoVaginal($activeSlave) && ($activeSlave.vagina > 0)>> - giving it to $him. So, you shove $him down to sit on the couch, nudge $his legs apart, kneel between them, and pound $his pussy. You fuck $him so hard that $he doesn't have the attention for further whimsies, and $he accepts - <<= VCheck.Vaginal($activeSlave, 1)>> - <<elseif canDoAnal($activeSlave) && ($activeSlave.anus > 0)>> - fucking $his butt. So, you shove $him down to <<if hasAnyLegs($activeSlave)>>kneel<<else>>get<</if>> on the couch facing away from you, and ram your cock up $his asshole. You assfuck $him so hard that $he doesn't have the attention for further whimsies, and $he accepts - <<= VCheck.Anal($activeSlave, 1)>> - <<else>> - $him sucking your dick. So, you shove $him down to sit on the couch and give $him your cock to keep $his mouth occupied, cutting off any further whimsies. $He blows you obediently, accepting - <<run seX($activeSlave, "oral", $PC, "penetrative")>> - <</if>> - the implicit message that @@.hotpink;$he's your slut@@ in the real world, whatever thoughts $he may find appealing in the privacy of $his own mind. - <</replace>> - <<set $activeSlave.devotion += 3>> -<</link>> - <<case "servant maid">> <<link "Stop $him">> -- GitLab