diff --git a/src/events/RESS/cockfeederResistance.js b/src/events/RESS/cockfeederResistance.js index f09461c11002ce1d4518e05250188592c4b09a55..59a113480161df8bbedef7ff3ed652b7ccb66aeb 100644 --- a/src/events/RESS/cockfeederResistance.js +++ b/src/events/RESS/cockfeederResistance.js @@ -22,10 +22,10 @@ App.Events.RESSCockFeederResistance = class RESSCockFeederResistance extends App /** @type {Array<App.Entity.SlaveState>} */ let [eventSlave] = this.actors.map(a => getSlave(a)); const { - He, he, His, his, him + He, he, His, his, him, himself } = getPronouns(eventSlave); const {hisA} = getPronouns(assistant.pronouns().main).appendSuffix('A'); - const {s, ss, title: Master} = getEnunciation(eventSlave); + const {title: Master} = getEnunciation(eventSlave); const desc = SlaveTitle(eventSlave); /** @type {App.Entity.PlayerState} */ @@ -46,7 +46,7 @@ App.Events.RESSCockFeederResistance = class RESSCockFeederResistance extends App t.push(`${He} turns to you as you enter, and ${canSee(eventSlave) ? "seeing" : "realizing"} that it's you, ${he}`); if (canTalk(eventSlave)) { - t.push(`mumbles unhappily, "Plea${s}e, ${Master}, plea${s}e, can I ju${s}t eat normally for one day? Thi${s} i${s}, um, kind of gro${ss}."`); + t.push(`mumbles unhappily, "${Spoken(eventSlave, `Please, ${Master}, please, can I just eat normally for one day? This is, um, kind of gross.`)}"`); } else { t.push(`uses hesitant gestures to beg you to let ${him} eat normally today. ${His} hand${hasBothArms(eventSlave) ? "s become" : " becomes"} vehement when it comes to the phallus in ${his} face, which ${he} apparently finds disgusting.`); } @@ -106,7 +106,7 @@ App.Events.RESSCockFeederResistance = class RESSCockFeederResistance extends App function penetrate() { t = []; - t.push(`You step forward and caress the slave's throat, telling ${him} to suck like a good little ${desc}. You make no threat, but give ${him} the order in a ${canHear(eventSlave) ? "voice of brass" : "commanding manner"}. ${He} knows what you can do to ${him}, and scrabbles forward to obey, <span class="gold">terribly frightened.</span> ${His} fear is justified. You announce that ${he}'s avoided serious punishment, but ${he} still needs correction for ${his} hesitation and insolence. ${He} can't beg or even moan, since ${he}'s being facefucked by the feeder dildo by now, but ${his} ${App.Desc.eyesColor(eventSlave)} widen in terror. ${He} ${canSee(eventSlave) ? `can't watch you, since ${he} can't turn ${his} head,` : "can't see what you are doing,"} so ${he} has almost no time to prepare when you haul ${his} head most of the way off the feeder and shove ${PC.dick !== 0 ? "your own phallus" : "a strap-on"} into ${his} mouth, too. ${He} gags instantly, almost vomiting, but forces ${him}self to relax as you begin to thrust into ${his} throat, alternately with the feeder. The liquid food provides plenty of lubrication, and a lot of liquid for ${him} to gag on, and before long ${he}'s a degraded, humiliating mess. ${He} often clamps ${his} eyes shut as ${he} desperately concentrates on breathing, squeezing the tears out to run down ${his} ${eventSlave.skin} cheeks.`); + t.push(`You step forward and caress the slave's throat, telling ${him} to suck like a good little ${desc}. You make no threat, but give ${him} the order in a ${canHear(eventSlave) ? "voice of brass" : "commanding manner"}. ${He} knows what you can do to ${him}, and scrabbles forward to obey, <span class="gold">terribly frightened.</span> ${His} fear is justified. You announce that ${he}'s avoided serious punishment, but ${he} still needs correction for ${his} hesitation and insolence. ${He} can't beg or even moan, since ${he}'s being facefucked by the feeder dildo by now, but ${his} ${App.Desc.eyesColor(eventSlave)} widen in terror. ${He} ${canSee(eventSlave) ? `can't watch you, since ${he} can't turn ${his} head,` : "can't see what you are doing,"} so ${he} has almost no time to prepare when you haul ${his} head most of the way off the feeder and shove ${PC.dick !== 0 ? "your own phallus" : "a strap-on"} into ${his} mouth, too. ${He} gags instantly, almost vomiting, but forces ${himself} to relax as you begin to thrust into ${his} throat, alternately with the feeder. The liquid food provides plenty of lubrication, and a lot of liquid for ${him} to gag on, and before long ${he}'s a degraded, humiliating mess. ${He} often clamps ${his} eyes shut as ${he} desperately concentrates on breathing, squeezing the tears out to run down ${his} ${eventSlave.skin} cheeks.`); if (V.suppository !== 0 && eventSlave.drugs !== "none") { t.push(`You leave the poor slave to take ${his} drugs up the ass, since the kitchen administers those by phallus, too. Fortunately for ${him}, ${he} doesn't object to that.`); } @@ -127,7 +127,7 @@ App.Events.RESSCockFeederResistance = class RESSCockFeederResistance extends App } else { t.push("homely"); } - t.push(`face. After a few minutes of gagging oral, you start to approach your climax. Your thorough facefucking leaves ${him} unable to beg or even moan, but ${his} eyes widen in terror when ${he} realizes you're about to cum. You don't give ${him} any time to prepare, instead hilting yourself immediately, and letting ${his} throat's desperate attempts to swallow bring you over the edge. You begin your long release of pent-up jizz, spraying deciliter after deciliter of cum down ${his} throat and into ${his} stomach. By the time you've finished, you can tell ${he}'s struggling for air and in pain from the massive quantity of thick fluid in ${his} stomach. You give ${him} a helpful hint before releasing ${him}: "If you take it all the way in your throat, you don't even have to ${canTaste(eventSlave) ? "taste" : "feel"} what it's feeding you." You pull out of ${his} mouth and let ${him} go. ${He} gasps for air and almost immediately vomits some of your cum all over ${him}self, turning ${him} into a degraded, humiliated mess. ${He} lays on the floor and desperately concentrates on breathing, squeezing the tears out of ${his} eyes to run down ${his} ${eventSlave.skin} cheeks.`); + t.push(`face. After a few minutes of gagging oral, you start to approach your climax. Your thorough facefucking leaves ${him} unable to beg or even moan, but ${his} eyes widen in terror when ${he} realizes you're about to cum. You don't give ${him} any time to prepare, instead hilting yourself immediately, and letting ${his} throat's desperate attempts to swallow bring you over the edge. You begin your long release of pent-up jizz, spraying deciliter after deciliter of cum down ${his} throat and into ${his} stomach. By the time you've finished, you can tell ${he}'s struggling for air and in pain from the massive quantity of thick fluid in ${his} stomach. You give ${him} a helpful hint before releasing ${him}: "If you take it all the way in your throat, you don't even have to ${canTaste(eventSlave) ? "taste" : "feel"} what it's feeding you." You pull out of ${his} mouth and let ${him} go. ${He} gasps for air and almost immediately vomits some of your cum all over ${himself}, turning ${him} into a degraded, humiliated mess. ${He} lays on the floor and desperately concentrates on breathing, squeezing the tears out of ${his} eyes to run down ${his} ${eventSlave.skin} cheeks.`); if (V.suppository !== 0 && eventSlave.drugs !== "none") { t.push(`You leave the poor slave to take ${his} drugs up the ass, since the kitchen administers those by phallus, too. Fortunately for ${him}, ${he} doesn't object to that.`); } diff --git a/src/events/RESS/devotedAnalVirgin.js b/src/events/RESS/devotedAnalVirgin.js new file mode 100644 index 0000000000000000000000000000000000000000..64c9569e149d0696cb8a9391d96c2d00a4df746b --- /dev/null +++ b/src/events/RESS/devotedAnalVirgin.js @@ -0,0 +1,160 @@ +App.Events.RESSDevotedAnalVirgin = class RESSDevotedAnalVirgin extends App.Events.BaseEvent { + eventPrerequisites() { + return []; + } + + actorPrerequisites() { + return [ + [ // single event slave + s => s.fetish !== "mindbroken", + hasAnyArms, + canWalk, + s => s.anus === 0, + s => s.trust > 20, + s => s.devotion > 50, + s => s.rules.speech !== "restrictive" + ] + ]; + } + + execute(node) { + /** @type {Array<App.Entity.SlaveState>} */ + let [eventSlave] = this.actors.map(a => getSlave(a)); + const { + He, he, his, him, himself + } = getPronouns(eventSlave); + const {say, title: Master} = getEnunciation(eventSlave); + const belly = bellyAdjective(eventSlave); + + /** @type {App.Entity.PlayerState} */ + let PC = V.PC; + + V.nextLink = "Next Week"; + + App.Events.drawEventArt(node, eventSlave); + + let t = []; + + + + t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave)); + t.push(`comes into your office and politely waits until you indicate ${he} can have your attention.`); + if (canTalk(eventSlave)) { + t.push(`${He} ${say}s, "${capFirstChar(Master)}, I`); + if (canSee(eventSlave)) { + t.push(Spoken(eventSlave, "see so many of the other slaves getting buttfucked. I think it's hot seeing")); + } else if (canHear(eventSlave)) { + t.push(Spoken(eventSlave, "hear so many of the other slaves getting buttfucked. I think it's hot hearing")); + } else { + t.push(Spoken(eventSlave, "am surrounded by so many of the other slaves getting buttfucked. I think it's hot that you have")); + } + t.push(Spoken(eventSlave, `them take it up the ass, and I feel almost incomplete since I don't take cock in every hole. Please take my butt virginity, ${Master}."`)); + } else { + t.push(`${He} points to ${his} butt and comically pantomimes having anal sex, and then uses gestures to ask if ${he} can serve you anally.`); + } + if (eventSlave.belly >= 10000) { + t.push(`${He} carefully turns and spreads ${his} legs, allowing ${his} ${belly} ${eventSlave.bellyPreg >= 3000 ? "pregnant" : ""} belly space as ${he} bends over, to wiggle ${his} posterior indicatively.`); + } else { + t.push(`${He} turns around and wiggles ${his} posterior indicatively.`); + } + App.Events.addParagraph(node, t); + t = []; + + App.Events.addResponses(node, [ + new App.Events.Result(`No, reassure ${him} that ${he} doesn't need to be an anal slut`, reassure), + new App.Events.Result(`Make sure ${his} first anal sex is enjoyable`, enjoy), + new App.Events.Result(`Make sure ${his} first buttfuck puts ${him} in ${his} place`, rape) + ]); + + function reassure() { + t = []; + + t.push(`You kindly explain that you've decided to save ${his} ass — for now. ${He} starts to express understanding and apologize for bothering you, but finds ${himself} swept off ${his}`); + if (!hasAnyLegs(eventSlave)) { + t.push("stumps"); + } else if (!hasBothLegs(eventSlave)) { + t.push("foot"); + } else { + t.push("feet"); + } + t.push(`and ${eventSlave.bellyPreg >= 5000 ? "gently" : ""} deposited on the couch. ${He} gasps with surprise when ${he} finds ${himself} being teased, fondled, and massaged rather than outright used. In no time at all ${he}'s pressing ${his} whole`); + if (eventSlave.belly >= 5000) { + t.push(`${eventSlave.bellyPreg >= 3000 ? "gravid" : "rounded"}`); + } + t.push(`body against you and shivering with delight.`); + if (eventSlave.vagina > 0 && canDoVaginal(eventSlave)) { + t.push(`$His shivers reach a crescendo when you ${PC.dick === 0 ? "scissor yourself against" : "enter"} ${his} warm, wet pussy, which convulsively flexes against your ${PC.dick === 0 ? "clit" : "rock hard dick"}.`); + } else { + if (PC.dick === 0) { + t.push(`You ride ${his} face,`); + } else { + t.push(`You push your dick ${PC.vagina !== -1 ? "and as much of the upper part of your pussy as you can manage" : ""} between ${his} thighs for some frottage,`); + } + t.push(`lavishing attention on ${his} nipples to ensure that ${he} has fun, too.`); + } + t.push(`${He} leaves your office feeling <span class="hotpink">very close to ${his} ${WrittenMaster()} indeed,</span> and seems to have forgotten ${his} unfucked butthole, for now.`); + + eventSlave.devotion += 4; + if (eventSlave.vagina > 0 && canDoVaginal(eventSlave)) { + VCheck.Vaginal(1, eventSlave); + } + return t; + } + + + + function enjoy() { + t = []; + + t.push(`You bring ${him} over to the couch, ${!canDoAnal(eventSlave) ? `unfasten ${his} chastity,` : ""} set ${him} on your lap, and teasingly play with ${his}`); + if (eventSlave.belly >= 5000) { + t.push(`${eventSlave.bellyPreg >= 3000 ? "gravid" : "rounded"}`); + } + t.push(`body for a long time. Every so often you move your hands over ${his} unfucked butthole, making ${him} shiver and press ${himself} against you, but you only make it the center of attention once the poor over-aroused slave`); + if (canTalk(eventSlave)) { + t.push(`begs, "I can't take it any more, ${Master}! Plea${s}e fuck my a${ss}!"`); + } else { + t.push("begins to use piteous gestures to beg you abjectly for anal."); + } + + t.push(`In reward, you sink a lightly lubricated finger up to the first knuckle in ${his} delightfully tight asshole. ${He}'s already on the edge of orgasm, and it takes a long, long time for you to work first a finger, then two, and then your ${PC.dick === 0 ? "strap-on" : "cock"} up ${his} ass without sending ${him} over. When you finally let ${him} orgasm, ${PC.dick === 0 ? `${his} unabashed enjoyment` : `the strength of ${his} spasming sphincter`} send you over as well. ${He}'s left in a haze of <span class="hotpink">sexual satisfaction</span> that radiates outward from ${his} <span class="lime">newly stretched asshole,</span> and ${he} <span class="mediumaquamarine">trusts you</span> a lot more, now.`); + if ((eventSlave.fetishKnown !== 1 || eventSlave.fetish !== "buttslut") && fetishChangeChance(eventSlave) > jsRandom(1,100)) { + t.push(`Before the end of the week ${he}'s back, begging for <span class="lightcoral">another dick up the ass.</span>`); + + eventSlave.fetishKnown = 1; + eventSlave.fetishStrength = 65; + eventSlave.fetish = "buttslut"; + } + + eventSlave.devotion += 3; + eventSlave.trust += 3; + eventSlave.anus = 1; + seX(eventSlave, "anal", PC, "penetrative"); + if (PC.dick !== 0 && eventSlave.eggType === "human" && canGetPregnant(eventSlave)) { + knockMeUp(eventSlave, 15, 1, -1); + } + return t; + } + + function rape() { + t = []; + + t.push(`You throw ${him} onto the couch face-down, ${eventSlave.belly >= 5000 ? `${his} rear pushed into the air by ${his} rounded belly` : ""} catching a glimpse of ${his} doubtful face as ${he} goes; ${he}'s already started to wonder whether this was a mistake. In a few moments ${he} knows it for sure as ${he} feels ${!canDoAnal(eventSlave) ? `${his} anal chastity ripped off and` : ""} the burning sensation of a lubricated ${PC.dick === 0 ? "strap-on" : "dickhead"} forcing ${his} virgin sphincter wide. Whatever noises ${he} might be making are pretty inaudible, since you have ${his} sobbing face shoved deep between the leather cushions. ${He} tries not to struggle and relax for ${his} beloved master, but ${his} body rebels against the pain and ${he} starts to wriggle spastically, trying to burrow into the couch to get away from the pounding. When you finish, the poor slave is left lying on the couch with a ${PC.dick !== 0 ? `thin dribble of ejaculate escaping from ${his}` : ""} <span class="lime">newly fucked butthole,</span> a stream of drying tears running down each side of ${his} face, ${eventSlave.dick > 0 ? `a single drop of precum at the tip of ${his} totally flaccid dick,` : ""} and a new understanding of <span class="gold">${his} place in life.</span>`); + if ((eventSlave.fetishKnown !== 1 || eventSlave.fetish !== "submissive") && fetishChangeChance(eventSlave) > jsRandom(1,100)) { + t.push(`Before the end of the week it's clear that ${he}'s taken the anal rape to heart, and now sees ${his} body as something <span class="lightcoral">for others to use and abuse.</span>`); + + eventSlave.fetishKnown = 1; + eventSlave.fetishStrength = 65; + eventSlave.fetish = "submissive"; + } + + eventSlave.trust -= 5; + eventSlave.anus = 1; + seX(eventSlave, "anal", PC, "penetrative"); + if (PC.dick !== 0 && eventSlave.eggType === "human" && canGetPregnant(eventSlave)) { + knockMeUp(eventSlave, 15, 1, -1); + } + return t; + } + } +}; diff --git a/src/events/RESS/devotedVirgin.js b/src/events/RESS/devotedVirgin.js new file mode 100644 index 0000000000000000000000000000000000000000..0cbbaa40943c64bc9fb91f6603d61b1c90bc944f --- /dev/null +++ b/src/events/RESS/devotedVirgin.js @@ -0,0 +1,136 @@ +App.Events.RESSDevotedVirgin = class RESSDevotedVirgin extends App.Events.BaseEvent { + eventPrerequisites() { + return []; + } + + actorPrerequisites() { + return [ + [ // single event slave + s => s.fetish !== "mindbroken", + hasAnyArms, + canWalk, + s => s.vagina === 0, + s => s.trust > 20, + s => s.devotion > 50, + s => s.rules.speech !== "restrictive" + ] + ]; + } + + execute(node) { + /** @type {Array<App.Entity.SlaveState>} */ + let [eventSlave] = this.actors.map(a => getSlave(a)); + const { + He, he, his, him, himself + } = getPronouns(eventSlave); + const {S, s, ss, say, title: Master} = getEnunciation(eventSlave); + + /** @type {App.Entity.PlayerState} */ + let PC = V.PC; + + V.nextLink = "Next Week"; + + App.Events.drawEventArt(node, eventSlave); + + let t = []; + + t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave)); + t.push(`comes into your office and politely waits until you indicate ${he} can have your attention.`); + if (canTalk(eventSlave)) { + t.push(`${He} ${say}s, "${capFirstChar(Master)}, ${Spoken(eventSlave, "I want to know what it's like to have a cock in my virgin pussy.")}`); + if (canSee(eventSlave)) { + t.push(Spoken(eventSlave, "Seeing so many of the other slaves getting fucked makes it look like so much fun.")); + } else if (canHear(eventSlave)) { + t.push(Spoken(eventSlave, "Hearing so many of the other slaves getting fucked makes it sound like so much fun.")); + } else { + t.push(Spoken(eventSlave, "Learning about so many of the other slaves getting fucked makes it seem like so much fun.")); + } + t.push(Spoken(eventSlave, `"I'm so turned on by it. I can't be a proper sex slave without using my pussy. Please take my virginity, ${Master}."`)); + } else { + t.push(`${He} points to ${his} pussy and comically pantomimes having sex, and then uses gestures to ask if ${he} can serve you with ${his} pussy.`); + } + t.push(`${He} spreads ${his} legs ${eventSlave.belly >= 10000 ? `carefully and cocks ${his} hips` : `and cocks ${his} hips suggestively`} at you.`); + App.Events.addParagraph(node, t); + t = []; + + App.Events.addResponses(node, [ + new App.Events.Result(`No, reassure ${him} that ${he} doesn't need to be a slut`, reassure), + new App.Events.Result(`Make sure ${his} first time is enjoyable`, enjoy), + new App.Events.Result(`Make sure ${his} first fuck puts ${him} in ${his} place`, rape) + ]); + + function reassure() { + t = []; + + t.push(`You kindly explain that you've decided to save ${his} virginity — for now. ${He} looks slightly down-hearted and tries to smile nonetheless, but finds ${himself} swept off ${his}`); + if (!hasAnyLegs(eventSlave)) { + t.push("stumps"); + } else if (!hasBothLegs(eventSlave)) { + t.push("foot"); + } else { + t.push("feet"); + } + t.push(`and ${eventSlave.bellyPreg >= 5000 ? "gently" : ""} deposited on the couch. ${He} gasps with surprise when ${he} finds ${himself} being teased, fondled, and massaged rather than outright used. In no time at all ${he}'s pressing ${his} whole`); + if (eventSlave.belly >= 5000) { + t.push(`${eventSlave.bellyPreg >= 3000 ? "gravid" : "rounded"}`); + } + t.push(`body against you and shivering with delight. ${He} shudders, almost uncontrollably, when you grind your ${PC.dick === 0 ? "clitoris" : "dick"} against ${his} moistened, wet pussy between ${his} thighs, taking extra care not to penetrate the willing slave. ${He} leaves your office feeling <span class="hotpink">very close to ${his} ${WrittenMaster()} indeed,</span> and seems to have forgotten ${his} unfucked vagina, for now.`); + + eventSlave.devotion += 4; + return t; + } + + function enjoy() { + t = []; + + t.push(`You bring ${him} over to the couch, ${!canDoVaginal(eventSlave) ? `unfasten ${his} chastity,` : ""} set ${him} on your lap, and teasingly play with ${his}`); + if (eventSlave.belly >= 5000) { + t.push(`${eventSlave.bellyPreg >= 3000 ? "gravid" : "rounded"}`); + } + t.push(`body for a long time. Every so often you move your hands over ${his} pussylips, making ${him} shiver and press ${himself} against you, but you only make it the center of attention once the poor over-aroused slave`); + if (canTalk(eventSlave)) { + t.push(`begs, "I can't take it any more, ${Master}! Fuck me, plea${s}e. Plea${s}e!"`); + } else { + t.push(`begins to reach for your ${PC.dick === 0 ? "strap-on" : "cock"} to pull it towards ${himself}.`); + } + t.push(`Finally, you lubricate your hand. Then you slowly and gently push a finger into ${his} invitingly tight virgin pussy. ${He}'s already on the edge of orgasm, and you patiently inch your ${PC.dick === 0 ? "strap-on" : "cock"} into ${his} pussy without making ${him} climax. You then start pumping and ${he} starts to moan and breathing more and more heavily. You continue pumping until ${he} finally starts to orgasm, ${PC.dick === 0 ? `${his} climactic shudders` : `the walls of ${his} tightening vagina`} send you over as well. ${He}'s left in a haze of <span class="hotpink">sexual satisfaction</span> that radiates outward from ${his} <span class="lime">newly initiated pussy,</span> and ${he} <span class="mediumaquamarine">trusts you</span> a lot more, now.`); + if ((eventSlave.fetishKnown !== 1 || eventSlave.fetish !== "pregnancy") && fetishChangeChance(eventSlave) > jsRandom(1,100)) { + t.push(`${He}'s back again before the week is over, eager for <span class="lightcoral">another dick in ${his} fuckhole.</span>`); + + eventSlave.fetishKnown = 1; + eventSlave.fetishStrength = 65; + eventSlave.fetish = "pregnancy"; + } + + eventSlave.devotion += 3; + eventSlave.trust += 3; + eventSlave.vagina = 1; + seX(eventSlave, "vaginal", PC, "penetrative"); + if (PC.dick !== 0 && eventSlave.eggType === "human" && canGetPregnant(eventSlave)) { + knockMeUp(eventSlave, 15, 0, -1); + } + return t; + } + + function rape() { + t = []; + + t.push(`You throw ${him} onto the couch beside your desk; ${he} fails to stop ${himself} from losing balance with ${his} flailing ${isAmputee(eventSlave) ? "stumps" : "limbs"}. ${He} looks around doubtfully; ${he}'s already started to wonder whether this was a mistake. In a few moments ${he} knows it for sure as ${he} feels ${!canDoVaginal(eventSlave) ? `${his} vaginal chastity ripped off and` : ""} the burning sensation of a lubricated ${PC.dick === 0 ? "strap-on" : "dickhead"} forcing ${his} virgin pussy wide. You have ${his} face shoved deep between the leather cushions and you ignore the muffled sounds coming from ${him}. ${He} limply tries to relax for ${his} beloved master, but the painful sensation coming from ${his} crotch causes ${him} to start to writhe uncontrollably. ${He} pushes against the couch, trying to endure the pounding. When you finish, the poor slave is left lying on the couch with a ${PC.dick !== 0 ? `thin dribble of ejaculate escaping from ${his}` : ""} <span class="lime">newly fucked vagina,</span> a stream of drying tears running down each side of ${his} face, ${eventSlave.dick > 0 ? `a single drop of precum at the tip of ${his} totally flaccid dick,` : ""} and a new understanding of <span class="gold">${his} place in life.</span>`); + if ((eventSlave.fetishKnown !== 1 || eventSlave.fetish !== "submissive") && fetishChangeChance(eventSlave) > jsRandom(1,100)) { + t.push(`Before the end of the week it's clear that ${he}'s taken the rape to heart, and now sees ${his} body as something <span class="lightcoral">for others to use and abuse.</span>`); + + eventSlave.fetishKnown = 1; + eventSlave.fetishStrength = 65; + eventSlave.fetish = "submissive"; + } + + eventSlave.trust -= 5; + eventSlave.vagina = 1; + seX(eventSlave, "vaginal", PC, "penetrative"); + if (PC.dick !== 0 && eventSlave.eggType === "human" && canGetPregnant(eventSlave)) { + knockMeUp(eventSlave, 15, 0, -1); + } + return t; + } + } +}; diff --git a/src/events/RESS/obedientAddict.js b/src/events/RESS/obedientAddict.js new file mode 100644 index 0000000000000000000000000000000000000000..0a5eb25c99975aa4031dcbded5fd48f746ac2ec0 --- /dev/null +++ b/src/events/RESS/obedientAddict.js @@ -0,0 +1,121 @@ +App.Events.RESSObedientAddict = class RESSObedientAddict extends App.Events.BaseEvent { + eventPrerequisites() { + return [ + () => V.suppository === 0 + ]; + } + + actorPrerequisites() { + return [ + [ // single event slave + s => s.fetish !== "mindbroken", + hasAnyArms, + hasAnyLegs, + s => s.aphrodisiacs > 0 || s.inflationType === "aphrodisiac", + s => s.addict > 20, + s => s.devotion > 20 || s.trust < -20 + ] + ]; + } + + execute(node) { + /** @type {Array<App.Entity.SlaveState>} */ + let [eventSlave] = this.actors.map(a => getSlave(a)); + const { + He, he, His, his, him, girl + } = getPronouns(eventSlave); + const {S, title: Master} = getEnunciation(eventSlave); + + /** @type {App.Entity.PlayerState} */ + let PC = V.PC; + + V.nextLink = "Next Week"; + + App.Events.drawEventArt(node, eventSlave); + + let t = []; + + t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave)); + t.push(`takes ${his} aphrodisiacs in pill form, with ${his} food. They're dispensed alongside ${his} nutrition in the kitchen. You happen to be passing by when ${he}'s being issued ${his} drugs, and you see ${him} ${canSee(eventSlave) ? "staring" : "gazing"} thoughtfully at the insignificant-looking little pill, just holding it in ${his} hand and considering it for a long time. When ${he} realizes you're watching, ${he} turns to you and you realize ${his} eyes are moist.`); + if (canTalk(eventSlave)) { + t.push(`${He} ${SlaveStatsChecker.checkForLisp(eventSlave) ? "lisps through huge, quivering lips" : "mutters"}, "${Master}, ${Spoken(eventSlave, "I hate this shit. I come and come and come but it's just physical. I haven't felt close to anyone ever since I've been on these fucking aphrodisiacs.")}" ${He} shrugs bitterly. "${S}till crave them though."`); + } else { + t.push(`${He} uses trembling gestures to pour out dissatisfaction with life as an aphrodisiac addict. ${He} is emotionally unsatisfied with the mechanical orgasms ${he} gets on the drugs, but craves them intensely.`); + } + App.Events.addParagraph(node, t); + t = []; + + App.Events.addResponses(node, [ + new App.Events.Result(`Make an example by forcing ${him} to take a massive dose`, forceful), + canDoVaginal(eventSlave) || canDoAnal(eventSlave) + ? new App.Events.Result(`Have caring sex with ${him} before ${he} takes the aphrodisiacs`, caring, virginityCheck()) + : new App.Events.Result() + ]); + + function forceful() { + t = []; + + if (hasAnyEyes(eventSlave)) { + t.push(`You take ${him} by the shoulders, look into ${his} ${hasBothEyes(eventSlave) ? "eyes" : "eye"},`); + } else { + t.push(`You take ${him} by the shoulders`); + } + t.push(`and tell ${him} you'll fix things so ${he} doesn't mind so much. ${He} looks hopeful, even when you tell ${him} to take ${his} pill. ${He} does, and you hand ${him} another. And another. ${He}'s crying with dread by the fourth pill, knowing that this is ${his} punishment for complaining. ${His} pupils dilate, ${he} begins to breathe hard, and ${his} ${eventSlave.skin} skin flushes badly. ${He} tries to beg you to fuck ${him} but can't seem to find the words. ${He} begins to masturbate compulsively, so hard that ${he} collapses to the kitchen floor with ${his} first spastic orgasm.`); + if (eventSlave.chastityPenis === 1) { + t.push(`${His} cock is painfully compressed by ${his} chastity cage, but it does nothing to stop ${his} frantic efforts to come.`); + } else if (canAchieveErection(eventSlave)) { + if (eventSlave.dick > 9) { + t.push(`${His} inhuman cock is as engorged as physically possible given its size, threatens to knock ${him} unconscious from the sheer amount of blood diverted into it, and doesn't shrink at all when cum weakly splurts from its tip.`); + } else if (eventSlave.dick > 6) { + t.push(`${His} monstrous cock is agonizingly erect, threatens to knock ${him} unconscious from the sheer amount of blood is takes ${him} to get hard, and doesn't soften at all when ${he} spatters ${his} own chest with cum.`); + } else if (eventSlave.dick > 4) { + t.push(`${His} huge cock is agonizingly erect and doesn't soften at all when ${he} spatters ${his} own chest with cum.`); + } else if (eventSlave.dick > 3) { + t.push(`${His} big cock is agonizingly erect and doesn't soften at all when ${he} spatters ${his} own chest with cum.`); + } else if (eventSlave.dick > 1) { + t.push(`${His} cock is agonizingly erect and doesn't soften at all when ${he} spatters ${his} own chest with cum.`); + } else if (eventSlave.dick > 0) { + t.push(`${His} pathetic dick is agonizingly erect and doesn't soften at all when ${he} weakly dribbles cum.`); + } + } else if (canDoVaginal(eventSlave)) { + t.push(`${His} pussy is dripping with moisture and ${his} ragingly stiff clit doesn't soften at all when ${he} comes.`); + } else if (canDoAnal(eventSlave)) { + t.push(`${His} hungry asshole spasms with orgasm, but ${he} doesn't even pause ${his} anal masturbation.`); + } else { + t.push(`${His} whole body spasms with orgasm, but ${he} doesn't even pause ${his} efforts to draw out an orgasm by any means possible.`); + } + t.push(`For the hour or so it takes ${him} to pass out, slaves using the kitchen have to step over ${his} prostrate, orgasming body, lying in a pool of ${his} own drool, tears, sweat, and fluids. The next time you see ${him} in the kitchen, ${he} takes ${his} medicine like a <span class="gold">good ${girl}.</span> All your aphrodisiac addicts recognize the symptoms and the punishment, and <span class="gold">avoid even thinking</span> about resisting the system.`); + + V.slaves.forEach(function(s) { if (s.aphrodisiacs > 0 || s.inflationType === "aphrodisiac") { s.trust -= 5; } }); + return t; + } + + function caring() { + t = []; + + t.push(`You back ${him} up against the wall of the kitchen, kissing ${him}, touching ${his} body with care, and quietly shushing ${his} attempts to ask questions. You deftly extract the pill form ${his} hand and put it on the counter for later. With time and skill you bring ${him} to a fine state of arousal, not to mention <span class="hotpink">emotional need;</span> ${he} begins to kiss you back with almost frantic enthusiasm. When ${he}'s clearly ready, you lay ${him} across the kitchen table and ${PC.dick === 0 ? `work your groin up between ${his} legs` : `enter ${him}`}, drawing out a lusty moan. As the sex continues, however, ${he} begins to look doubtful, then distracted, and then to twitch occasionally. Finally ${he} bursts into tears.`); + if (canTalk(eventSlave)) { + t.push(`"I — I — fucking need my fix to come, ${Master}," ${he} sobs.`); + } else { + t.push(`${He} indicates through ${his} weeping that ${he} can't climax without the drugs.`); + } + t.push(`You pass ${him} the pill, and ${he} continues to weep inconsolably, apologizing all the while, until the drug takes away ${his} ability to care about anything but getting fucked. When you finish and extract ${PC.dick === 0 ? `yourself from between ${his} legs` : `your cock from ${his} well-used hole`}, though, you think you can detect a deep sadness in ${his} eyes that it cannot reach.`); + + eventSlave.devotion += 4; + if (canDoVaginal(eventSlave)) { + VCheck.Vaginal(1, eventSlave); + } else { + VCheck.Anal(1, eventSlave); + } + return t; + } + + function virginityCheck() { + if (canDoVaginal(eventSlave) && eventSlave.vagina === 0) { + return `This option will take ${his} virginity`; + } else if (!canDoVaginal(eventSlave) && eventSlave.anus === 0) { + return `This option will take ${his} anal virginity`; + } + } + } +}; diff --git a/src/events/RESS/obedientBitchy.js b/src/events/RESS/obedientBitchy.js index 5b683338edf75e22a5a7114937762a69bcb4f09d..0160fea00722763a3cf6946f1456587863eb6e55 100644 --- a/src/events/RESS/obedientBitchy.js +++ b/src/events/RESS/obedientBitchy.js @@ -34,11 +34,11 @@ App.Events.RESSObedientBitchy = class RESSObedientBitchy extends App.Events.Base let t = []; t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave)); - t.push(`is a decent slave, pretty well broken to your will and generally obedient. However, ${he} retains a cutting tongue. Though ${he}'s learned to ${his} considerable cost not to direct ${his} cheek at you, ${he} still insults your other slaves, and worse, will be sarcastic to members of the public ${he} encounters. You've worked on it, but it remains unsolved. Today, however, ${he} crossed the line. You were doing business in your office with a respected female slave drug wholesaler. The woman is in her late forties, and though she's something of a plastic surgery addict she has permitted her hair to go a becoming steel grey. Passing your office, ${eventSlave.slaveName} audibly commented on how old she looked to `); + t.push(`is a decent slave, pretty well broken to your will and generally obedient. However, ${he} retains a cutting tongue. Though ${he}'s learned to ${his} considerable cost not to direct ${his} cheek at you, ${he} still insults your other slaves, and worse, will be sarcastic to members of the public ${he} encounters. You've worked on it, but it remains unsolved. Today, however, ${he} crossed the line. You were doing business in your office with a respected female slave drug wholesaler. The woman is in her late forties, and though she's something of a plastic surgery addict she has permitted her hair to go a becoming steel grey. Passing your office, ${eventSlave.slaveName} audibly commented on how old she looked to`); if (canStand(eventSlave)) { t.push(`another slave.`); } else { - t.push(`${his} aide.`); + t.push(`${her} aide.`); } t.push(`Anger flashes in the businesswoman's eyes.`); diff --git a/src/events/RESS/obedientShemale.js b/src/events/RESS/obedientShemale.js new file mode 100644 index 0000000000000000000000000000000000000000..1b9c0c3855495cab2672f0d7bee10d866dbdd1ce --- /dev/null +++ b/src/events/RESS/obedientShemale.js @@ -0,0 +1,113 @@ +App.Events.RESSObedientShemale = class RESSObedientShemale extends App.Events.BaseEvent { + eventPrerequisites() { + return []; + } + + actorPrerequisites() { + return [ + [ // single event slave + s => s.fetish !== "mindbroken", + hasAnyArms, + hasAnyLegs, + canTalk, + canDoAnal, + s => s.devotion <= 50, + s => s.devotion > 20 || s.trust < -20, + s => s.vagina < 0, + s => s.dick > 0, + s => s.anus > 0, + s => s.skill.anal <= 30 + ] + ]; + } + + execute(node) { + /** @type {Array<App.Entity.SlaveState>} */ + let [eventSlave] = this.actors.map(a => getSlave(a)); + const { + He, he, His, his, him, himself, girl + } = getPronouns(eventSlave); + const {title: Master} = getEnunciation(eventSlave); + const anusDesc = ["tight", "loose", "gaping"][Math.ceil(Math.clamp(eventSlave.anus, 1, 3)) - 1]; + + /** @type {App.Entity.PlayerState} */ + let PC = V.PC; + + V.nextLink = "Next Week"; + + App.Events.drawEventArt(node, eventSlave); + + let t = []; + + t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave)); + t.push(`has been doing ${his} best to be a good slave ${girl} recently. Since ${he} doesn't have a pussy, that means ${he}'s been doing ${his} best to take it up the ass like a good slave. ${He} isn't all that used to it yet, but ${he} tries. ${He}'s trying right now, bent over the arm of the couch in your office with your ${PC.dick === 0 ? "vibrating strap-on" : "cock"} pumping in and out of ${him}. ${He} looks like ${he} wants to ask something, so you tell ${him} to spit it out.`); + if (canTalk(eventSlave)) { + if (eventSlave.lips > 70) { + t.push(`${He} begs meekly through ${his} massive dick-sucking lips,`); + } else if (eventSlave.lipsPiercing + eventSlave.tonguePiercing > 2) { + t.push(`${He} begs meekly through ${his} mouthful of piercings,`); + } else { + t.push(`${He} begs meekly,`); + } + t.push(`"${Spoken(eventSlave, `${Master}, may I please, please touch myself?`)}"`); + } else { + t.push(`${He} uses gestures to ask if ${he} can masturbate while you sodomize ${him}.`); + } + App.Events.addParagraph(node, t); + t = []; + + App.Events.addResponses(node, [ + new App.Events.Result(`Let ${him}`, permit), + new App.Events.Result(`Train ${him} to be a skilled anal bottom`, bottom), + (eventSlave.fetish !== "buttslut" || eventSlave.fetishKnown !== 1) && eventSlave.prostate > 0 + ? new App.Events.Result(`Train ${him} to orgasm anally`, orgasm) + : new App.Events.Result() + ]); + + function permit() { + t = []; + + t.push(`${He} moans with gratitude and relief. ${He} masturbates furiously as you continue to use ${his} butt. ${He} was clearly near the edge anyway, and`); + if (eventSlave.balls > 0) { + t.push("spatters the couch with cum"); + } else if (eventSlave.prostate > 0) { + t.push("spatters the couch with ejaculate"); + } else { + t.push("shakes with release"); + } + t.push(`after just a few strokes of your ${PC.dick === 0 ? "strap-on" : "cock"} up ${his} butt. ${His} ${anusDesc} ass spasms and tightens with ${his} climax${PC.dick !== 0 ? ", a wonderful sensation" : ""}. You aren't finished with ${him}, but ${he} rubs ${himself} languidly and enjoys the hard anal reaming more than ${he} ever has previously. ${His} devotion to you <span class="hotpink">has increased.</span>`); + + eventSlave.devotion += 4; + VCheck.Anal(1, eventSlave); + return t; + } + + function bottom() { + t = []; + + t.push(`${He} obeys your orders to keep ${his} ${hasBothArms(eventSlave) ? "hands" : "hand"} off ${his} dick, but can't hide ${his} disappointment and frustration. You keep a close watch on ${him}, and buttfuck ${him} every chance you get, teaching ${him} the finer points of taking a ${PC.dick === 0 ? "strap-on" : "dick"} up the butt. You focus entirely on your pleasure, teaching ${him} how to use ${his} ${anusDesc} anal ring to extract orgasms from cocks. This experience was hard for ${him} but has increased ${his} anal skill.`); + + SkillIncrease.Anal(eventSlave, 10); + VCheck.Anal(9, eventSlave); + return t; + } + + function orgasm() { + t = []; + + t.push(`${He} obeys your orders to keep ${his} ${hasBothArms(eventSlave) ? "hands" : "hand"} off ${his} dick, but can't hide ${his} disappointment and frustration. You keep a close watch on ${him}, and fuck ${his} ${anusDesc} anus every chance you get, keeping ${him} desperately aroused and desperately sodomized. After some days of this, ${he} finally reaches a point of desperate arousal that permits ${him} to orgasm to prostate stimulation alone.`); + if (fetishChangeChance(eventSlave) > jsRandom(1,100)) { + t.push(`Before ${he} realizes what's happening, <span class="lightcoral">${he}'s getting aroused at the thought of anal sex.</span>`); + + eventSlave.fetishStrength = 10; + eventSlave.fetish = "buttslut"; + eventSlave.fetishKnown = 1; + } else { + t.push(`Despite being used as an anal slut for a whole week, ${he} was not significantly affected.`); + } + + VCheck.Anal(9, eventSlave); + return t; + } + } +}; diff --git a/src/events/RESS/suppositoryResistance.js b/src/events/RESS/suppositoryResistance.js index e30e952568ecdb264be35982ccb4c852c3ac1f68..f5c1f684775182ddec3526ec84669e1afa385a84 100644 --- a/src/events/RESS/suppositoryResistance.js +++ b/src/events/RESS/suppositoryResistance.js @@ -23,7 +23,7 @@ App.Events.RESSSuppositoryResistance = class RESSSuppositoryResistance extends A /** @type {Array<App.Entity.SlaveState>} */ let [eventSlave] = this.actors.map(a => getSlave(a)); const { - He, he, His, his, him + He, he, His, his, him, himself } = getPronouns(eventSlave); const {hisA} = getPronouns(assistant.pronouns().main).appendSuffix('A'); const {s, sh, ss, title: Master} = getEnunciation(eventSlave); @@ -74,7 +74,7 @@ App.Events.RESSSuppositoryResistance = class RESSSuppositoryResistance extends A t.push(`You put as much quiet authority into your ${canHear(eventSlave) ? "voice" : "words"} as you can, and explain to ${him} that ${he} is required to take ${his} drugs up ${his} ass. You do not explain any of the actual reasons why you require slaves to submit to daily machine anal, but couch your quiet explanation in terms of ${his} life as a slave. You tell ${him} that taking a solid buttfuck from a machine first thing in the morning is something you've ordered ${him} to do. ${He} needs to do it. If ${he} does, ${he}'ll be treated well; if ${he} does not, that will oblige you to punish ${him}. You tell ${him} that you would like ${him} to be a good slave, and that it would be disappointing if you had to punish ${him}. You put just a hint of steel into the last sentence, and ${he} stiffens a little at it. Hesitantly, ${he}`); if (eventSlave.belly >= 300000) { - t.push(`shifts onto ${his} ${belly} belly, uses ${his} ${hasBothArms(eventSlave) ? "hands" : "hand"} to brace ${him}self against the impending pounding, and scoots towards the phallus.`); + t.push(`shifts onto ${his} ${belly} belly, uses ${his} ${hasBothArms(eventSlave) ? "hands" : "hand"} to brace ${himself} against the impending pounding, and scoots towards the phallus.`); } else { t.push(`gets to ${his} ${hasBothLegs(eventSlave) ? "knees" : "knee"}, using ${his} ${hasBothArms(eventSlave) ? "hands" : "hand"} to spread ${his} cheeks for the phallus.`); } @@ -101,7 +101,7 @@ App.Events.RESSSuppositoryResistance = class RESSSuppositoryResistance extends A t.push(`You give the kitchen an order by voice command. ${canHear(eventSlave) ? "It's technical" : `${He} can't hear it`}, so ${he} doesn't understand it, but the meaning becomes clear soon enough. The phallus aiming meaningfully at the place where ${he}'s supposed to kneel and offer up ${his} butthole is withdrawn, and ${he}'s halfway through a shocked thank you when it's replaced by another, noticeably larger. You tell ${him} in deceptively mild tones that you'll keep increasing the size of ${his} phallus until ${he} decides to get down and take it like a good little ${desc}, or you run out of size options and are forced to strap ${him} down and apply two at once. At that point, ${his} ass might be able to take it; then again, it might not. ${He} begins to cry, but is so <span class="gold">frightened</span> by the threat that ${he} doesn't let ${his} tears distract ${him} from a delectable scramble to`); if (eventSlave.belly >= 300000) { - t.push(`throw ${him}self onto ${his} ${belly} belly and`); + t.push(`throw ${himself} onto ${his} ${belly} belly and`); } else { t.push(`get down on ${his} ${hasBothLegs(eventSlave) ? "knees" : "knee"} and`); } diff --git a/src/events/randomEvent.js b/src/events/randomEvent.js index 806ebe78d68cbfd95056f9a53a616f7d11e73674..b1d276309168b312abd7c404fae2dc921e737a71 100644 --- a/src/events/randomEvent.js +++ b/src/events/randomEvent.js @@ -12,13 +12,17 @@ App.Events.getIndividualEvents = function() { // example: new App.Events.TestEvent(), new App.Events.RESSAssFitting(), new App.Events.RESSCockFeederResistance(), + new App.Events.RESSDevotedAnalVirgin(), + new App.Events.RESSDevotedVirgin(), new App.Events.RESSEscapee(), new App.Events.RESSHotPC(), new App.Events.RESSLazyEvening(), new App.Events.RESSMoistPussy(), new App.Events.RESSMuscles(), + new App.Events.RESSObedientAddict(), new App.Events.RESSObedientBitchy(), new App.Events.RESSObedientIdiot(), + new App.Events.RESSObedientShemale(), new App.Events.RESSRetchingCum(), new App.Events.RESSSuppositoryResistance(), new App.Events.RESSWaistlineWoes(), diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js index 9a8328b169839cc7ae2aede11980cf7af60786bc..9c92ac163066d304aa23660ca36e038da72aa431 100644 --- a/src/js/eventSelectionJS.js +++ b/src/js/eventSelectionJS.js @@ -477,20 +477,6 @@ globalThis.generateRandomEventPoolStandard = function(eventSlave) { } } - if (eventSlave.devotion > 20 || eventSlave.trust < -20) { - if (eventSlave.devotion <= 50) { - if (eventSlave.vagina < 0) { - if (canDoAnal(eventSlave)) { - if (eventSlave.anus > 0) { - if (eventSlave.skill.anal <= 30) { - V.RESSevent.push("obedient shemale"); - } - } - } - } - } - } - if (eventSlave.devotion > 50) { if (eventSlave.trust > 20) { if (eventSlave.physicalAge > 37) { @@ -1003,14 +989,6 @@ globalThis.generateRandomEventPoolStandard = function(eventSlave) { } } - if (eventSlave.devotion > 20 || eventSlave.trust < -20) { - if (eventSlave.addict > 20) { - if (eventSlave.aphrodisiacs > 0 || eventSlave.inflationType === "aphrodisiac") { - V.RESSevent.push("obedient addict"); - } - } - } - if (eventSlave.devotion <= 50) { if (eventSlave.trust >= -50) { if (eventSlave.behavioralFlaw === "gluttonous") { @@ -1334,28 +1312,6 @@ globalThis.generateRandomEventPoolStandard = function(eventSlave) { } } - if (canWalk(eventSlave) && hasAnyArms(eventSlave)) { - if (eventSlave.vagina === 0) { - if (eventSlave.devotion > 50) { - if (eventSlave.trust > 20) { - if (eventSlave.rules.speech !== "restrictive") { - V.RESSevent.push("devoted virgin"); - } - } - } - } - - if (eventSlave.anus === 0) { - if (eventSlave.devotion > 50) { - if (eventSlave.trust > 20) { - if (eventSlave.rules.speech !== "restrictive") { - V.RESSevent.push("devoted anal virgin"); - } - } - } - } - } - if (V.seeExtreme === 1) { if (eventSlave.balls > 1) { if (eventSlave.scrotum > 0) { @@ -1912,20 +1868,6 @@ globalThis.generateRandomEventPoolServant = function(eventSlave) { } } - if (eventSlave.devotion > 20 || eventSlave.trust < -20) { - if (eventSlave.devotion <= 50) { - if (eventSlave.vagina < 0) { - if (canDoAnal(eventSlave)) { - if (eventSlave.anus > 0) { - if (eventSlave.skill.anal <= 30) { - V.RESSevent.push("obedient shemale"); - } - } - } - } - } - } - if (eventSlave.devotion > 50) { if (eventSlave.trust > 20) { if (eventSlave.physicalAge > 37) { @@ -2276,14 +2218,6 @@ globalThis.generateRandomEventPoolServant = function(eventSlave) { } } - if (eventSlave.devotion > 20 || eventSlave.trust < -20) { - if (eventSlave.addict > 20) { - if (eventSlave.aphrodisiacs > 0 || eventSlave.inflationType === "aphrodisiac") { - V.RESSevent.push("obedient addict"); - } - } - } - if (eventSlave.devotion <= 50) { if (eventSlave.trust >= -50) { if (eventSlave.behavioralFlaw === "gluttonous") { @@ -2483,28 +2417,6 @@ globalThis.generateRandomEventPoolServant = function(eventSlave) { } } - if (canWalk(eventSlave) && hasAnyArms(eventSlave)) { - if (eventSlave.vagina === 0) { - if (eventSlave.devotion > 50) { - if (eventSlave.trust > 20) { - if (eventSlave.rules.speech !== "restrictive") { - V.RESSevent.push("devoted virgin"); - } - } - } - } - - if (eventSlave.anus === 0) { - if (eventSlave.devotion > 50) { - if (eventSlave.trust > 20) { - if (eventSlave.rules.speech !== "restrictive") { - V.RESSevent.push("devoted anal virgin"); - } - } - } - } - } - if (eventSlave.devotion <= 50) { V.RESSevent.push("scrubbing"); } diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw index 6c3f7cd67fca055ec7cebb59e0868d0c21004957..b15495baf37df82f3242314bb5376d83f6fcb84f 100644 --- a/src/uncategorized/RESS.tw +++ b/src/uncategorized/RESS.tw @@ -1388,31 +1388,6 @@ During a routine inspection, <<= App.UI.slaveDescriptionDialog($activeSlave)>> r Can I get fucked in the pu<<ss>>y, to <<s>>pread it out a little?" <</if>> -<<case "obedient shemale">> - -<<= App.UI.slaveDescriptionDialog($activeSlave)>> has been doing $his best to be a good slave $girl recently. Since $he doesn't have a pussy, that means $he's been doing $his best to take it up the ass like a good slave. $He isn't all that used to it yet, but $he tries. $He's trying right now, bent over the arm of the couch in your office with your <<if $PC.dick == 0>>vibrating strap-on<<else>>cock<</if>> pumping in and out of $him. $He looks like $he wants to ask something, so you tell $him to spit it out. -<<if !canTalk($activeSlave)>> - $He uses gestures to ask if $he can masturbate while you sodomize $him. -<<else>> - <<if ($activeSlave.lips > 70)>> - $He begs meekly through $his massive dick-sucking lips, - <<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>> - $He begs meekly through $his mouthful of piercings, - <<else>> - $He begs meekly, - <</if>> - "<<Master>>, may I plea<<s>>e, plea<<s>>e touch my<<s>>elf?" -<</if>> - -<<case "obedient addict">> - -<<= App.UI.slaveDescriptionDialog($activeSlave)>> takes $his aphrodisiacs in pill form, with $his food. They're dispensed alongside $his nutrition in the kitchen. You happen to be passing by when $he's being issued $his drugs, and you see $him <<if canSee($activeSlave)>>staring<<else>>gazing<</if>> thoughtfully at the insignificant-looking little pill, just holding it in $his hand and considering it for a long time. When $he realizes you're watching, $he turns to you and you realize $his eyes are moist. -<<if !canTalk($activeSlave)>> - $He uses trembling gestures to pour out dissatisfaction with life as an aphrodisiac addict. $He is emotionally unsatisfied with the mechanical orgasms $he gets on the drugs, but craves them intensely. -<<else>> - $He <<if SlaveStatsChecker.checkForLisp($activeSlave)>>lisps through huge, quivering lips,<<else>>mutters,<</if>> "<<Master>>, I hate thi<<s>> <<sh>>it. I come and come and come but it'<<s>> ju<<s>>t phy<<s>>ical. I haven't felt clo<<s>>e to anyone ever <<s>>in<<c>>e I've been on the<<s>>e fucking aphrodi<<s>>iac<<s>>." $He shrugs bitterly. "<<S>>till crave them though." -<</if>> - <<case "impregnation please">> <<set _faceUp = 1>> @@ -1516,26 +1491,6 @@ There is a horrible crash from the shower. You rush in to see <<= App.UI.slaveDe <</if>> "Help me, <<Master>>!" -<<case "devoted virgin">> - -<<= App.UI.slaveDescriptionDialog($activeSlave)>> comes into your office and politely waits until you indicate $he can have your attention. -<<if !canTalk($activeSlave)>> - $He points to $his pussy and comically pantomimes having sex, and then uses gestures to ask if $he can serve you with $his pussy. -<<else>> - $He <<say>>s, "<<= capFirstChar($enunciate.title)>>, I want to know what it'<<s>> like to have a cock in my virgin pu<<ss>>y. <<if canSee($activeSlave)>><<S>>eeing<<elseif canHear($activeSlave)>>Hearing<<else>>Learning about<</if>> <<s>>o many of the other <<s>>lave<<s>> getting fucked make<<s>> it <<if canSee($activeSlave)>>look<<elseif canHear($activeSlave)>><<s>>ound<<else>><<s>>eem<</if>> like <<s>>o much fun. I'm <<s>>o turned on by it. I can't be a proper <<s>>e<<x>> <<s>>lave without u<<s>>ing my pu<<ss>>y. Plea<<s>>e take my virginity, <<Master>>." -<</if>> -$He spreads $his legs <<if $activeSlave.belly >= 10000>>carefully and cocks $his hips<<else>>and cocks $his hips suggestively<</if>> at you. - -<<case "devoted anal virgin">> - -<<= App.UI.slaveDescriptionDialog($activeSlave)>> comes into your office and politely waits until you indicate $he can have your attention. -<<if !canTalk($activeSlave)>> - $He comically pantomimes anal sex, and then uses gestures to ask if $he can serve you anally. -<<else>> - $He <<say>>s, "<<= capFirstChar($enunciate.title)>>, I <<if canSee($activeSlave)>><<s>>ee<<elseif canHear($activeSlave)>>hear<<else>>am <<s>>urrounded by<</if>> <<s>>o many of the other <<s>>lave<<s>> getting buttfucked. I think it'<<s>> hot <<if canSee($activeSlave)>><<s>>eeing<<elseif canHear($activeSlave)>>hearing<<else>>that you have<</if>> them take it up the a<<ss>>, and I feel almo<<s>>t incomplete <<s>>in<<c>>e I don't take cock in every hole. Plea<<s>>e take my butt virginity, <<Master>>." -<</if>> -$He<<if $activeSlave.belly >= 10000>> carefully turns and spreads $his legs, allowing $his _belly <<if $activeSlave.bellyPreg >= 3000>>pregnant <</if>> belly space as $he bends over, to wiggle<<else>> turns around and wiggles<</if>> $his posterior indicatively. - <<case "surgery addict">> Going about your day, you see <<= App.UI.slaveDescriptionDialog($activeSlave)>> sitting <<if (hasAnyLegs($activeSlave))>><<if (hasBothLegs($activeSlave))>>cross-legged <</if>>in<<else>>propped against the doorway of<</if>> the remote surgery room, <<if canSee($activeSlave)>>staring intently at<<else>>gazing longingly towards<</if>> the equipment. $He's not breaking any rules, but this behavior is so strange you investigate. $He asks @@ -8913,100 +8868,6 @@ brought in to you. This time <<= App.UI.slaveDescriptionDialog($activeSlave)>> h <</replace>> <</link>><<if ($activeSlave.chastityVagina)>> //This option will remove $his chastity belt//<</if>> -<<case "obedient shemale">> - -<<link "Let $him">> - <<replace "#result">> - $He moans with gratitude and relief. $He masturbates furiously as you continue to use $his butt. $He was clearly near the edge anyway, and - <<if ($activeSlave.balls > 0)>> - spatters the couch with cum - <<elseif $activeSlave.prostate > 0>> - spatters the couch with ejaculate - <<else>> - shakes with release - <</if>> - after just a few strokes of your <<if $PC.dick == 0>>strap-on<<else>>dick<</if>> up $his butt. $His <<if ($activeSlave.anus > 2)>>gaping<<elseif ($activeSlave.anus > 1)>>loose<<else>>tight<</if>> ass spasms and tightens with $his climax<<if $PC.dick != 0>>, a wonderful sensation<</if>>. You aren't finished with $him, but $he rubs $himself languidly and enjoys the hard anal reaming more than $he ever has previously. $His devotion to you @@.hotpink;has increased.@@ - <<set $activeSlave.devotion += 4>> - <<= VCheck.Anal()>> - <</replace>> -<</link>> -<br><<link "Train $him to be a skilled anal bottom">> - <<replace "#result">> - $He obeys your orders to keep $his hand<<if hasBothArms($activeSlave)>>s<</if>> off $his dick, but can't hide $his disappointment and frustration. You keep a close watch on $him, and buttfuck $him every chance you get, teaching $him the finer points of taking a <<if $PC.dick == 0>>strap-on<<else>>dick<</if>> up the butt. You focus entirely on your pleasure, teaching $him how to use $his <<if ($activeSlave.anus > 2)>>gaping<<elseif ($activeSlave.anus > 1)>>loose<<else>>tight<</if>> anal ring to extract orgasms from cocks. This experience was hard for $him but has increased $his anal skill. - <<= SkillIncrease.Anal($activeSlave, 10)>> - <<= VCheck.Anal(9)>> - <</replace>> -<</link>> -<<if (($activeSlave.fetish != "buttslut") || ($activeSlave.fetishKnown != 1)) && $activeSlave.prostate > 0>> - <br><<link "Train $him to orgasm anally">> - <<replace "#result">> - $He obeys your orders to keep $his hand<<if hasBothArms($activeSlave)>>s<</if>> off $his dick, but can't hide $his disappointment and frustration. You keep a close watch on $him, and fuck $his <<if ($activeSlave.anus > 2)>>gaping<<elseif ($activeSlave.anus > 1)>>loose<<else>>tight<</if>> anus every chance you get, keeping $him desperately aroused and desperately sodomized. After some days of this, $he finally reaches a point of desperate arousal that permits $him to orgasm to prostate stimulation alone. - <<= VCheck.Anal(9)>> - <<if random(1,100) > 50>> - <<set $activeSlave.fetishStrength = 10, $activeSlave.fetish = "buttslut", $activeSlave.fetishKnown = 1>> - Before $he realizes what's happening, @@.lightcoral;$he's getting aroused at the thought of anal sex.@@ - <<else>> - Despite being used as an anal slut for a whole week, $he was not significantly affected. - <</if>> - <</replace>> - <</link>> -<</if>> - -<<case "obedient addict">> - -<<link "Make an example by forcing $him to take a massive dose">> - <<replace "#result">> - You take $him by the shoulders<<if hasAnyEyes($activeSlave)>>, - look into $his eye<<if hasBothEyes($activeSlave)>>s<</if>>, - <</if>> - and tell $him you'll fix things so $he doesn't mind so much. $He looks hopeful, even when you tell $him to take $his pill. $He does, and you hand $him another. And another. $He's crying with dread by the fourth pill, knowing that this is $his punishment for complaining. $His pupils dilate, $he begins to breathe hard, and $his $activeSlave.skin skin flushes badly. $He tries to beg you to fuck $him but can't seem to find the words. $He begins to masturbate compulsively, so hard that $he collapses to the kitchen floor with $his first spastic orgasm. - <<if ($activeSlave.chastityPenis == 1)>> - $His cock is painfully compressed by $his chastity cage, but it does nothing to stop $his frantic efforts to come. - <<elseif canAchieveErection($activeSlave)>> - <<if $activeSlave.dick > 9>> - $His inhuman cock is as engorged as physically possible given its size, threatens to knock $him unconscious from the sheer amount of blood diverted into it, and doesn't shrink at all when cum weakly splurts from its tip. - <<elseif $activeSlave.dick > 6>> - $His monstrous cock is agonizingly erect, threatens to knock $him unconscious from the sheer amount of blood is takes $him to get hard, and doesn't soften at all when $he spatters $his own chest with cum. - <<elseif $activeSlave.dick > 4>> - $His huge cock is agonizingly erect and doesn't soften at all when $he spatters $his own chest with cum. - <<elseif $activeSlave.dick > 3>> - $His big cock is agonizingly erect and doesn't soften at all when $he spatters $his own chest with cum. - <<elseif $activeSlave.dick > 1>> - $His cock is agonizingly erect and doesn't soften at all when $he spatters $his own chest with cum. - <<elseif $activeSlave.dick > 0>> - $His pathetic dick is agonizingly erect and doesn't soften at all when $he weakly dribbles cum. - <</if>> - <<elseif canDoVaginal($activeSlave)>> - $His pussy is dripping with moisture and $his ragingly stiff clit doesn't soften at all when $he comes. - <<elseif canDoAnal($activeSlave)>> - $His hungry asshole spasms with orgasm, but $he doesn't even pause $his anal masturbation. - <<else>> - $His whole body spasms with orgasm, but $he doesn't even pause $his efforts to draw out an orgasm by any means possible. - <</if>> - For the hour or so it takes $him to pass out, slaves using the kitchen have to step over $his prostrate, orgasming body, lying in a pool of $his own drool, tears, sweat, and fluids. The next time you see $him in the kitchen, $he takes $his medicine like a @@.gold;good $girl.@@ All your aphrodisiac addicts recognize the symptoms and the punishment, and @@.gold;avoid even thinking@@ about resisting the system. - <<set $slaves.forEach(function(s) { if (s.aphrodisiacs > 0 || s.inflationType == "aphrodisiac") { s.trust -= 5; } })>> - <</replace>> -<</link>> -<<if canDoVaginal($activeSlave) || canDoAnal($activeSlave)>> - <br><<link "Have caring sex with $him before $he takes the aphrodisiacs">> - <<replace "#result">> - You back $him up against the wall of the kitchen, kissing $him, touching $his body with care, and quietly shushing $his attempts to ask questions. You deftly extract the pill form $his hand and put it on the counter for later. With time and skill you bring $him to a fine state of arousal, not to mention @@.hotpink;emotional need;@@ $he begins to kiss you back with almost frantic enthusiasm. When $he's clearly ready, you lay $him across the kitchen table and <<if $PC.dick == 0>>work your groin up between $his legs<<else>>enter $him<</if>>, drawing out a lusty moan. As the sex continues, however, $he begins to look doubtful, then distracted, and then to twitch occasionally. Finally $he bursts into tears. - <<if !canTalk($activeSlave)>> - $He indicates through $his weeping that $he can't climax without the drugs. - <<else>> - "I — I — fucking need my fix to come, <<Master>>," $he sobs. - <</if>> - You pass $him the pill, and $he continues to weep inconsolably, apologizing all the while, until the drug takes away $his ability to care about anything but getting fucked. When you finish and extract <<if $PC.dick == 0>>yourself from between $his legs<<else>>your cock from $his well-used hole<</if>>, though, you think you can detect a deep sadness in $his eyes that it cannot reach. - <<set $activeSlave.devotion += 4>> - <<if canDoVaginal($activeSlave)>> - <<= VCheck.Vaginal()>> - <<else>> - <<= VCheck.Anal()>> - <</if>> - <</replace>> - <</link>><<if canDoVaginal($activeSlave) && ($activeSlave.vagina == 0)>> //This option will take $his virginity//<<elseif !canDoVaginal($activeSlave) && ($activeSlave.anus == 0)>> //This option will take $his anal virginity//<</if>> -<</if>> - <<case "impregnation please">> <<link "Put a slave in $him">> @@ -9368,101 +9229,6 @@ brought in to you. This time <<= App.UI.slaveDescriptionDialog($activeSlave)>> h <</replace>> <</link>> -<<case "devoted virgin">> - -<<link "No, reassure $him that $he doesn't need to be a slut">> - <<replace "#result">> - You kindly explain that you've decided to save $his virginity — for now. $He looks slightly down-hearted and tries to smile nonetheless, but finds $himself swept off $his <<if !hasAnyLegs($activeSlave)>>stumps<<elseif !hasBothLegs($activeSlave)>>foot<<else>>feet<</if>> and<<if $activeSlave.bellyPreg >= 5000>> gently<</if>> deposited on the couch. $He gasps with surprise when $he finds $himself being teased, fondled, and massaged rather than outright used. In no time at all $he's pressing $his whole<<if $activeSlave.belly >= 5000>> <<if $activeSlave.bellyPreg >= 3000>>gravid<<else>>rounded<</if>><</if>> body against you and shivering with delight. $He shudders, almost uncontrollably, when you grind your <<if $PC.dick == 0>>clitoris<<else>>dick<</if>> against $his moistened, wet pussy between $his thighs, taking extra care not to penetrate the willing slave. $He leaves your office feeling @@.hotpink;very close to $his <<= WrittenMaster()>> indeed,@@ and seems to have forgotten $his unfucked vagina, for now. - <<set $activeSlave.devotion += 4>> - <</replace>> -<</link>> -<br><<link "Make sure $his first time is enjoyable">> - <<replace "#result">> - You bring $him over to the couch<<if !canDoVaginal($activeSlave)>>, unfasten $his chastity<</if>>, set $him on your lap, and teasingly play with $his<<if $activeSlave.belly >= 5000>> <<if $activeSlave.bellyPreg >= 3000>>gravid<<else>>rounded<</if>><</if>> body for a long time. Every so often you move your hands over $his pussylips, making $him shiver and press $himself against you, but you only make it the center of attention once the poor over-aroused slave - <<if !canTalk($activeSlave)>> - begins to reach for your <<if $PC.dick == 0>>strap-on<<else>>cock<</if>> to pull it towards $himself. - <<else>> - begs, "I can't take it any more, <<Master>>! Fuck me, plea<<s>>e. Plea<<s>>e!" - <</if>> - Finally, you lubricate your hand. Then you slowly and gently push a finger into $his invitingly tight virgin pussy. $He's already on the edge of orgasm, and you patiently inch your <<if $PC.dick == 0>>strap-on<<else>>cock<</if>> into $his pussy without making $him climax. You then start pumping and $he starts to moan and breathing more and more heavily. You continue pumping until $he finally starts to orgasm, <<if $PC.dick == 0>>$his climactic shudders<<else>>the walls of $his tightening vagina<</if>> send you over as well. $He's left in a haze of @@.hotpink;sexual satisfaction@@ that radiates outward from $his @@.lime;newly initiated pussy,@@ and $he @@.mediumaquamarine;trusts you@@ a lot more, now. - <<if ($activeSlave.fetishKnown != 1) || ($activeSlave.fetish != "pregnancy")>> - $He's back again before the week is over, eager for @@.lightcoral;another dick in $his fuckhole.@@ - <<set $activeSlave.fetishKnown = 1, $activeSlave.fetishStrength = 65, $activeSlave.fetish = "pregnancy">> - <</if>> - <<set $activeSlave.devotion += 3, $activeSlave.trust += 3, $activeSlave.vagina = 1>> - <<run seX($activeSlave, "vaginal", $PC, "penetrative")>> - <<if $PC.dick != 0 && $activeSlave.eggType == "human" && canGetPregnant($activeSlave)>> - <<= knockMeUp($activeSlave, 15, 0, -1)>> - <</if>> - <</replace>> -<</link>> -<br><<link "Make sure $his first fuck puts $him in $his place">> - <<replace "#result">> - You throw $him onto the couch beside your desk; $he fails to stop $himself from losing balance with $his flailing <<if isAmputee($activeSlave)>>stumps<<else>>limbs<</if>>. $He looks around doubtfully; $he's already started to wonder whether this was a mistake. In a few moments $he knows it for sure as $he feels<<if !canDoVaginal($activeSlave)>> $his vaginal chastity ripped off and<</if>> the burning sensation of a lubricated <<if $PC.dick == 0>>strap-on<<else>>dickhead<</if>> forcing $his virgin pussy wide. You have $his face shoved deep between the leather cushions and you ignore the muffled sounds coming from $him. $He limply tries to relax for $his beloved master, but the painful sensation coming from $his crotch causes $him to start to writhe uncontrollably. $He pushes against the couch, trying to endure the pounding. When you finish, the poor slave is left lying on the couch with <<if $PC.dick == 0>>a<<else>>a thin dribble of ejaculate escaping from $his<</if>> @@.lime;newly fucked vagina,@@ a stream of drying tears running down each side of $his face,<<if $activeSlave.dick > 0>> a single drop of precum at the tip of $his totally flaccid dick,<</if>> and a new understanding of @@.gold;$his place in life.@@ - <<if ($activeSlave.fetishKnown != 1) || ($activeSlave.fetish != "submissive")>> - Before the end of the week it's clear that $he's taken the rape to heart, and now sees $his body as something @@.lightcoral;for others to use and abuse.@@ - <<set $activeSlave.fetishKnown = 1, $activeSlave.fetishStrength = 65, $activeSlave.fetish = "submissive">> - <</if>> - <<set $activeSlave.trust -= 5, $activeSlave.vagina = 1>> - <<run seX($activeSlave, "vaginal", $PC, "penetrative")>> - <<if $PC.dick != 0 && $activeSlave.eggType == "human" && isFertile($activeSlave) && $activeSlave.preg == 0>> - <<= knockMeUp($activeSlave, 25, 0, -1)>> - <</if>> - <</replace>> -<</link>> - -<<case "devoted anal virgin">> - -<<link "No, reassure $him that $he doesn't need to be an anal slut">> - <<replace "#result">> - You kindly explain that you've decided to save $his ass — for now. $He starts to express understanding and apologize for bothering you, but finds $himself swept off $his <<if !hasBothLegs($activeSlave)>>stumps<<elseif !hasAnyLegs($activeSlave)>>foot<<else>>feet<</if>> and<<if $activeSlave.bellyPreg >= 5000>> gently<</if>> deposited on the couch. $He gasps with surprise when $he finds $himself being teased, fondled, and massaged rather than outright used. In no time at all $he's pressing $his whole<<if $activeSlave.belly >= 5000>> <<if $activeSlave.bellyPreg >= 3000>>gravid<<else>>rounded<</if>><</if>> body against you and shivering with delight. - <<if $activeSlave.vagina > 0 && canDoVaginal($activeSlave)>> - $His shivers reach a crescendo when you <<if $PC.dick == 0>>scissor yourself against<<else>>enter<</if>> $his warm, wet pussy, which convulsively flexes against your <<if $PC.dick == 0>>clit<<else>>rock hard dick<</if>>. - <<else>> - <<if $PC.dick == 0>>You ride $his face,<<else>>You push your dick<<if $PC.vagina != -1>> and as much of the upper part of your pussy as you can manage<</if>> between $his thighs for some frottage,<</if>> lavishing attention on $his nipples to ensure that $he has fun, too. - <</if>> - $He leaves your office feeling @@.hotpink;very close to $his <<= WrittenMaster()>> indeed,@@ and seems to have forgotten $his unfucked butthole for now. - <<set $activeSlave.devotion += 4>> - <<if $activeSlave.vagina > 0 && canDoVaginal($activeSlave)>> - <<= VCheck.Vaginal()>> - <</if>> - <</replace>> -<</link>> -<br><<link "Make sure $his first anal sex is enjoyable">> - <<replace "#result">> - You bring $him over to the couch<<if !canDoAnal($activeSlave)>>, unfasten $his anal chastity<</if>>, set $him on your lap, and teasingly play with $his<<if $activeSlave.belly >= 5000>> <<if $activeSlave.bellyPreg >= 3000>>gravid<<else>>rounded<</if>><</if>> body for a long time. Every so often you graze a finger over $his unfucked butthole, making $him shiver and press $himself against you, but you only make it the center of attention once the poor over-aroused slave - <<if !canTalk($activeSlave)>> - begins to use piteous gestures to beg you abjectly for anal. - <<else>> - begs, "I can't take it any more, <<Master>>! Plea<<s>>e fuck my a<<ss>>!" - <</if>> - In reward, you sink a lightly lubricated finger up to the first knuckle in $his delightfully tight asshole. $He's already on the edge of orgasm, and it takes a long, long time for you to work first a finger, then two, and then your <<if $PC.dick == 0>>strap-on<<else>>cock<</if>> up $his ass without sending $him over. When you finally let $him orgasm <<if $PC.dick == 0>>$his unabashed enjoyment<<else>>the strength of $his spasming sphincter<</if>> sends you over as well. $He's left in a haze of @@.hotpink;sexual satisfaction@@ that radiates outward from $his @@.lime;newly stretched asshole,@@ and $he @@.mediumaquamarine;trusts you@@ a lot more, now. - <<if ($activeSlave.fetishKnown != 1) || ($activeSlave.fetish != "buttslut")>> - Before the end of the week $he's back, begging for @@.lightcoral;another dick up the ass.@@ - <<set $activeSlave.fetishKnown = 1, $activeSlave.fetishStrength = 65, $activeSlave.fetish = "buttslut">> - <</if>> - <<set $activeSlave.devotion += 3, $activeSlave.trust += 3, $activeSlave.anus = 1>> - <<run seX($activeSlave, "anal", $PC, "penetrative")>> - <<if $PC.dick != 0 && $activeSlave.eggType == "human" && isFertile($activeSlave) && $activeSlave.preg == 0>> - <<= knockMeUp($activeSlave, 15, 1, -1)>> - <</if>> - <</replace>> -<</link>> -<br><<link "Make sure $his first buttfuck puts $him in $his place">> - <<replace "#result">> - You throw $him onto the couch face-down<<if $activeSlave.belly >= 5000>>, $his rear pushed into the air by $his rounded belly<</if>>, catching a glimpse of $his doubtful face as $he goes; $he's already started to wonder whether this was a mistake. In a few moments $he knows it for sure as $he feels<<if !canDoAnal($activeSlave)>> $his anal chastity ripped off and<</if>> the burning sensation of a lubricated <<if $PC.dick == 0>>strap-on<<else>>dickhead<</if>> forcing $his virgin sphincter wide. Whatever noises $he might be making are pretty inaudible, since you have $his sobbing face shoved deep between the leather cushions. $He tries not to struggle and relax for $his beloved master, but $his body rebels against the pain and $he starts to wriggle spastically, trying to burrow into the couch to get away from the pounding. When you finish, the poor slave is left lying on the couch with <<if $PC.dick == 0>>a<<else>>a thin dribble of ejaculate escaping from $his<</if>> @@.lime;newly fucked butthole,@@ a stream of drying tears running down each side of $his face,<<if $activeSlave.dick > 0>> a single drop of precum at the tip of $his totally flaccid dick,<</if>> and a new understanding of @@.gold;$his place in life.@@ - <<if ($activeSlave.fetishKnown != 1) || ($activeSlave.fetish != "submissive")>> - Before the end of the week it's clear that $he's taken the anal rape to heart, and now sees $his body as something @@.lightcoral;for others to use and abuse.@@ - <<set $activeSlave.fetishKnown = 1, $activeSlave.fetishStrength = 65, $activeSlave.fetish = "submissive">> - <</if>> - <<set $activeSlave.trust -= 5, $activeSlave.anus = 1>> - <<run seX($activeSlave, "anal", $PC, "penetrative")>> - <<if $PC.dick != 0 && $activeSlave.eggType == "human" && isFertile($activeSlave) && $activeSlave.preg == 0>> - <<= knockMeUp($activeSlave, 25, 1, -1)>> - <</if>> - <</replace>> -<</link>> - <<case "surgery addict">> <<link "$He asked for it; give $him the works">>