diff --git a/src/events/RESS/escapee.js b/src/events/RESS/escapee.js new file mode 100644 index 0000000000000000000000000000000000000000..5e7ec27c9f295a48745d778dcaae07c5303c3e3e --- /dev/null +++ b/src/events/RESS/escapee.js @@ -0,0 +1,175 @@ +App.Events.RESSEscapee = class RESSEscapee extends App.Events.BaseEvent { + eventPrerequisites() { + return []; + } + + actorPrerequisites() { + return [ + [ // single event slave + s => s.fetish !== "mindbroken", + canWalk, + s => s.devotion < -50, + s => s.trust >= -50, + s => s.assignment !== Job.CONFINEMENT + ] + ]; + } + + execute(node) { + /** @type {Array<App.Entity.SlaveState>} */ + let [eventSlave] = this.actors.map(a => getSlave(a)); + const { + He, he, his, him + } = getPronouns(eventSlave); + + V.nextLink = "Next Week"; + + App.Events.drawEventArt(node, eventSlave); + + let t = []; + + t.push("An escape attempt occurs and is stopped almost before you are informed of it."); + t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave)); + t.push(`made a rash attempt to leave the penthouse, but ${V.assistant.name} monitors everyone constantly and was able to enclose ${him} before ${he} got very far.`); + if (V.assistant.personality === 0) { + t.push("It reports impersonally that the would-be escapee is locked in the entryway awaiting your judgment."); + } else { + t.push(`${He} reports suggestively that the would-be escapee is locked in the entryway awaiting your pleasure.`); + } + App.Events.addParagraph(node, t); + t = []; + + if (V.arcologyUpgrade.drones === 1) { + t.push(`Your advanced security systems are able to stop ${him} promptly, and there is no indication to the public that any escape attempt was made.`); + } else { + t.push(`Your basic security systems are only able to stop ${him} by briefly locking down your penthouse, exciting <span class="red">some adverse public comment.</span>`); + repX(-100, "event", eventSlave); + } + App.Events.addParagraph(node, t); + t = []; + + if (eventSlave.indentureRestrictions > 0) { + t.push(`This behavior has violated ${his} indenture contract, allowing you to apply more severe punishments that might otherwise breach it.`); + App.Events.addParagraph(node, t); + t = []; + } + + App.Events.addResponses(node, [ + new App.Events.Result("Do nothing", nothing), + new App.Events.Result("Just confine the would-be escapee to prevent future attempts", confine), + new App.Events.Result("Flog the would-be escapee", flog), + ...(V.seeExtreme === 1 ? [ + (hasAnyNaturalLegs(eventSlave) && eventSlave.heels === 0 + ? new App.Events.Result("Clip the would-be escapee's tendons", clip) + : new App.Events.Result() + ), + (hasAnyNaturalLimbs(eventSlave) + ? new App.Events.Result("Amputate the would-be escapee's limbs", amputate) + : new App.Events.Result() + ), + (canSee(eventSlave) + ? new App.Events.Result("Blind the would-be escapee", blind) + : new App.Events.Result() + ), + (canTalk(eventSlave) + ? new App.Events.Result("Mute the would-be escapee", mute) + : new App.Events.Result() + ) + ] : [] + ) + ]); + + function nothing() { + t = []; + + t.push(`Considering how easily this attempt was thwarted, you don't see much of a point in wasting your valuable time on punishing ${eventSlave.slaveName} in the hopes that ${he}'ll learn ${his} lesson. You send ${him} back to ${his} assigned duties, warning ${him} that you may not be so lenient in the future. ${eventSlave.slaveName} proclaims ${his} obedience, but, privately, it's clear that ${he} views your decision as <span class="mediumorchid">an act of weakness</span> rather than kindness. In addition, every single one of your other slaves not already obedient to you is <span class="orangered">encouraged in their trust that you won't hurt them</span> by this minuscule punishment of an escape attempt.`); + + eventSlave.devotion -= 10; + eventSlave.trust += 2; + V.slaves.forEach(function(s) { if (s.devotion <= 20) { s.trust += 8; } }); + + return t; + } + + function confine() { + t= []; + + t.push(`You order ${eventSlave.slaveName} confined until further notice. ${eventSlave.slaveName} is <span class="hotpink">a little crushed</span> by ${his} failure to escape. However, every single one of your other slaves not already obedient to you is slightly <span class="orangered">encouraged in their trust that you won't hurt them</span> by this moderate punishment of an escape attempt.`); + + eventSlave.devotion += 4; + assignJob(eventSlave, "stay confined"); + V.slaves.forEach(function(s) { if (s.devotion <= 20) { s.trust += 4; } }); + + return t; + } + + function flog() { + t= []; + + t.push(`Lesser whippings are usually performed by binding a slave's hands and then securing them to the ceiling so that ${he} will dance titillatingly when struck. This is not such a beating. You tie ${eventSlave.slaveName} to a wall by ${his} wrists and ankles and flog ${him} with workmanlike thoroughness${eventSlave.pregKnown === 1 ? `, making sure to avoid accidentally ending ${his} pregnancy` : ""}. ${He} passes from angry struggles to agonized sobbing and finally to bloody, exhausted weeping before you untie ${his} now-limp form and apply first aid. ${eventSlave.slaveName}'s rebelliousness is <span class="gold">dulled by the experience,</span> and ${his} <span class="red">health is damaged.</span> Furthermore, every single one of your other slaves not already obedient to you is <span class="gold">frightened</span> by the example set.`); + + eventSlave.trust -= 5; + healthDamage(eventSlave, 40); + V.slaves.forEach(function(s) { if (s.devotion <= 20) { s.trust -= 5; } }); + + return t; + } + + function clip() { + t= []; + + t.push(`The simple thing to do would be to sedate ${eventSlave.slaveName} and haul ${him} to the remote surgery for ${his} punishment. That would deny ${him} the added weight of terror, however, and would stop your other slaves from learning by the sight of it. So, you restrain ${him}, pronounce judgment, and drag ${his} struggling, weeping form through the penthouse to the surgery. ${eventSlave.slaveName} is <span class="mediumorchid">saddened</span> and <span class="gold">frightened</span> by this punishment, and ${his} <span class="red">health is damaged</span> by the surgery. Every single one of your other slaves with any resistance left in them is <span class="gold">sensibly restrained</span> from trying such rash acts.`); + + eventSlave.devotion -= 5; + eventSlave.trust -= 5; + eventSlave.heels = 1; + surgeryDamage(eventSlave, 10); + V.slaves.forEach(function(s) { if (s.devotion <= 20) { s.trust -= 5; } }); + + return t; + } + + function amputate() { + t= []; + + t.push(`The simple thing to do would be to sedate ${eventSlave.slaveName} and haul ${him} to the remote surgery for ${his} punishment. That would deny ${him} the added weight of terror, however, and would stop your other slaves from learning by the sight of it. So, you restrain ${him}, pronounce judgment, and drag ${his} struggling, weeping form through the penthouse to the surgery. ${eventSlave.slaveName} is <span class="mediumorchid">filled with implacable hatred</span> by this terrible punishment, and ${his} <span class="red">health is damaged</span> by the major surgery. However, every single one of your other slaves not already obedient to you is <span class="gold">utterly terrified</span> by the example set.`); + + eventSlave.devotion -= 50; + eventSlave.trust -= 50; + eventSlave.diet = "healthy"; + removeLimbs(eventSlave, "all"); + surgeryDamage(eventSlave, 40); + V.slaves.forEach(function(s) { if (s.devotion <= 20) { s.trust -= 10; } }); + + return t; + } + + function blind() { + t= []; + + t.push(`The simple thing to do would be to sedate ${eventSlave.slaveName} and haul ${him} to the remote surgery for ${his} punishment. That would deny ${him} the added weight of terror, however, and would stop your other slaves from learning by the sight of it. So, you restrain ${him}, pronounce judgment, and drag ${his} struggling, weeping form through the penthouse to the surgery. You make sure to point out all the things ${he}'ll never get to see again. ${eventSlave.slaveName} is <span class="mediumorchid">filled with implacable hatred</span> by this terrible punishment, and ${his} <span class="red">health is slightly damaged</span> by the surgery. However, every single one of your other slaves not already obedient to you is <span class="gold">utterly terrified</span> by the example set.`); + + eventSlave.devotion -= 50; + eventSlave.trust -= 50; + eyeSurgery(eventSlave, "both", "blind"); + surgeryDamage(eventSlave, 20); + V.slaves.forEach(function(s) { if (s.devotion <= 20) { s.trust -= 10; } }); + + return t; + } + + function mute() { + t= []; + + t.push(`The simple thing to do would be to sedate ${eventSlave.slaveName} and haul ${him} to the remote surgery for ${his} punishment. That would deny ${him} the added weight of terror, however, and would stop your other slaves from learning by the sight of it. So, you restrain ${him}, pronounce judgment, and drag ${his} struggling, protesting form through the penthouse to the surgery. ${He} is allowed one last chance to verbally resist you, plead with you, and finally to beg with you, all in vain. ${eventSlave.slaveName} is <span class="mediumorchid">filled with hatred</span> and <span class="gold">terror</span> by this harsh punishment, and ${his} <span class="red">health is slightly damaged</span> by the surgery. However, every single one of your other slaves not already obedient to you is <span class="hotpink">terrified</span> by the example set.`); + + eventSlave.devotion -= 5; + eventSlave.trust -= 25; + eventSlave.voice = 0; + surgeryDamage(eventSlave, 10); + V.slaves.forEach(function(s) { if (s.devotion <= 20) { s.trust -= 5; } }); + + return t; + } + } +}; diff --git a/src/events/RESS/obedientBitchy.js b/src/events/RESS/obedientBitchy.js new file mode 100644 index 0000000000000000000000000000000000000000..6f609f04898ffbc7773431831d6e3fdb9f5c1174 --- /dev/null +++ b/src/events/RESS/obedientBitchy.js @@ -0,0 +1,135 @@ +App.Events.RESSObedientBitchy = class RESSObedientBitchy extends App.Events.BaseEvent { + eventPrerequisites() { + return []; + } + + actorPrerequisites() { + return [ + [ // single event slave + s => s.fetish !== "mindbroken", + canTalk, + canSee, + s => s.behavioralFlaw === "bitchy", + s => s.devotion > 20, + s => s.trust >= -20 + ] + ]; + } + + execute(node) { + /** @type {Array<App.Entity.SlaveState>} */ + let [eventSlave] = this.actors.map(a => getSlave(a)); + const { + He, he, His, his, him + } = getPronouns(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(`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 another slave. Anger flashes in the businesswoman's eyes.`); + + App.Events.addParagraph(node, t); + t = []; + + App.Events.addResponses(node, [ + new App.Events.Result("Beg her pardon and offer to loan the bitch to her", loan), + new App.Events.Result("Offer to spitroast the bitch between the two of you", spitroast, analVirginWarning()), + V.arcade > 0 + ? new App.Events.Result(`Sentence ${him} to a month in the arcade`, arcade) + : new App.Events.Result() + ]); + + function loan() { + t = []; + + t.push(`The businesswoman's anger turns to malicious anticipation as you call ${eventSlave.slaveName} over and inform ${him} that you and the businesswoman have decided ${eventSlave.slaveName} will be spending the night with her. Now that you look at your business partner, she has certain signs of a sadist. ${eventSlave.slaveName} notices too, and begins to cry ${eventSlave.bellyPreg >= 1500 ? `and shield ${his} pregnancy` : ""} as the businesswoman promises that there will be "no permanent damage." ${eventSlave.slaveName} is unceremoniously returned in the early hours of the morning. ${His} back and buttocks have been meticulously flogged right up to the very edge of damage, leaving angry marks across ${his} ${eventSlave.skin} skin. ${His} mouth lolls open, as though ${he}'s been doing little but give cunnilingus.`); + if (eventSlave.vagina !== -1) { + t.push(`${His} pussy,`); + } else if (eventSlave.dick === 0) { + t.push(`${His} shamefully featureless groin with its tiny little hole,`); + } else { + t.push(`${His} dick,`); + } + t.push(`anus, ${eventSlave.belly >= 10000 ? "popped navel," : ""} and even ${his} nipples show signs of torture. Whenever ${he} thinks of a sharp remark in the future, <span class="hotpink">${he}'ll remember the pain and keep ${his} mouth shut.</span>`); + + eventSlave.behavioralFlaw = "none"; + seX(eventSlave, "oral", "public", "penetrative", 5); + + return t; + } + + function spitroast() { + t = []; + + t.push(`The businesswoman grins slowly and reaches into ${his} purse as you inform ${eventSlave.slaveName} that you and the businesswoman will punish ${him} together. ${eventSlave.slaveName}'s eyes widen as the businesswoman fishes a massive strap-on out of ${his} bag. The surprise turns to fear as the businesswoman begins to slap it against ${eventSlave.slaveName}'s buttocks as you`); + if (!isAmputee(eventSlave)) { + if (eventSlave.belly >= 300000) { + t.push(`push ${him} onto ${his} ${belly} belly.`); + } else { + t.push(`pull ${him} down on ${hasAllLimbs(eventSlave) ? "all fours." : "the ground."}`); + } + } else { + t.push("arrange your bitchy little sex toy between you and your guest."); + } + t.push(`The businesswoman clearly wants ${his} ass, so you ${!canDoAnal(eventSlave.slaveName) ? `quickly unfasten ${his} anal chastity. You` : ""} ${PC.vagina !== -1 ? `ride ${eventSlave.slaveName}'s face` : `facefuck ${eventSlave.slaveName}`} roughly as ${eventSlave.slaveName} takes a painful anal raping from the huge dildo. The businesswoman winks at you companionably and extracts squeals from ${eventSlave.slaveName} that feel especially delicious ${PC.vagina !== -1 ? "against your cunt" : "along your dick"}.`); + if (hasAnyLegs(eventSlave)) { + t.push(`${eventSlave.slaveName} collapses ${eventSlave.belly >= 5000 ? `and rolls onto ${his} side` : ""} after a long punishment fuck;`); + } else { + t.push(`${eventSlave.slaveName} ends the day a sore toy;`); + } + t.push(`${his} <span class="hotpink">submission</span> to you and <span class="gold">fear of you</span> have both increased.`); + + if (eventSlave.anus === 0) { + t.push(`The businesswoman considered ${his} <span class="lime">anal cherry</span> a <span class="green">respectable offer.</span>`); + eventSlave.anus++; + repX(500, "event", eventSlave); + } + + eventSlave.devotion += 3; + eventSlave.trust -= 3; + seX(eventSlave, "anal", "public", "penetrative"); + seX(eventSlave, "oral", PC, "penetrative"); + return t; + } + + function arcade() { + t = []; + + t.push(`${eventSlave.slaveName} screams and begs when ${he} realizes what ${his} punishment for being stupid is to be, but you are obdurate.`); + if (eventSlave.muscles > 30) { + t.push(`${His} powerful form has to be sedated for immurement in the arcade.`); + } else if (eventSlave.weight >= 190) { + t.push(`${He} is so massively fat that immuring ${him} in the arcade is a struggle, even when ${he} isn't trying to.`); + } else if (eventSlave.belly >= 120000) { + t.push(`${He} is so enormously gravid that immuring ${him} in the arcade is a hassle, even though ${his} ${belly} middle limits ${his} ability to struggle.`); + } else if (eventSlave.weight >= -10) { + t.push(`${His} desperate struggles make immuring ${him} in the arcade difficult.`); + } else if (eventSlave.belly >= 1500) { + t.push(`${His} ${eventSlave.bellyPreg >= 3000 ? "pregnant" : `${belly}`} body makes it slightly difficult to fit ${him} properly into the restraints for immurement in the arcade.`); + } else if (eventSlave.muscles < -15) { + t.push(`${His} weak body makes immuring ${him} in the arcade pathetically easy.`); + } else { + t.push(`${His} thin form makes immuring ${him} in the arcade pathetically easy.`); + } + t.push(`After ${he}'s properly confined, the only sign of ${his} discomfiture is a slight movement of ${his} ${eventSlave.skin} butt as ${he} wriggles desperately against ${his} restraints.`); + + assignJob(eventSlave, "be confined in the arcade"); + eventSlave.sentence = 4; + return t; + } + + function analVirginWarning() { + if (eventSlave.anus === 0) { + return "This option will take anal virginity and ignore anal chastity"; + } + } + } +}; diff --git a/src/events/RESS/obedientIdiot.js b/src/events/RESS/obedientIdiot.js new file mode 100644 index 0000000000000000000000000000000000000000..53d51ff95da83fbb0271f1ae11c996c95bad78ce --- /dev/null +++ b/src/events/RESS/obedientIdiot.js @@ -0,0 +1,163 @@ +App.Events.RESSObedientIdiot = class RESSObedientIdiot extends App.Events.BaseEvent { + eventPrerequisites() { + return [ + () => V.cockFeeder === 0 + ]; + } + + actorPrerequisites() { + return [ + [ // single event slave + s => s.fetish !== "mindbroken", + hasAnyArms, + s => s.intelligence + s.intelligenceImplant < -50, + s => s.devotion <= 50, + 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 {HeA, heA} = getPronouns(assistant.pronouns().main).appendSuffix('A'); + const {S, s, 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, "no clothing"); + + let t = []; + + t.push(`${capFirstChar(V.assistant.name)} breaks in on your work at your desk.`); + t.push(App.UI.DOM.combineNodes(`"${assistant.personality === 0 ? properTitle() : "Sweetheart"}," ${heA} says, "`, App.UI.DOM.slaveDescriptionDialog(eventSlave))); + t.push("is having trouble figuring out the meal dispenser again."); + if (V.assistant.personality === 0) { + t.push(`The report is deadpan, but ${heA} brings up a visual feed.`); + } else { + t.push(`${HeA} brings up a visual feed. "Poor baby!" ${heA} exclaims.`); + } + App.Events.addParagraph(node, t); + t = []; + + t.push(`Slaves are supposed to place a cup under a spigot, which detects the cup's presence and dispenses the appropriate nutrition for the ${girl}. Unfortunately this concept seems a little tough for ${eventSlave.slaveName}. With no one around to ask for help, ${he} has resorted to trying to suck food out of the spigot with ${his} mouth. With no cup to be detected, ${he}'s not getting very far, and is getting bitterly frustrated.`); + App.Events.addParagraph(node, t); + t = []; + + App.Events.addResponses(node, [ + new App.Events.Result(`Give ${him} something more appropriate to suck on`, suck), + new App.Events.Result(`Reassure ${him} and get ${him} to slow down`, reassure), + new App.Events.Result(`Spank the stupid out of ${him}`, spank), + V.arcade > 0 + ? new App.Events.Result(`Sentence ${him} to a month in the arcade`, arcade) + : new App.Events.Result() + ]); + + function suck() { + t = []; + + t.push(`${capFirstChar(V.assistant.name)}, as usual, has to give the stupid slut considerable coaching to get ${him} to your office without getting lost. This is a near-miraculous imbecility, as the penthouse is expressly designed to make it nearly impossible to get anywhere from anywhere else without passing by the office door. ${He} understands orders to`); + if (PC.dick === 0) { + t.push(`perform cunnilingus, though, and gets down to it eagerly enough. When ${he} finishes the job, ${he} wipes ${his} mouth and then looks up at you doubtfully.`); + } else { + t.push(`suck a dick, though, and gets down to it eagerly enough. When ${he} finishes the job, ${he} busily swallows every drop of your ejaculate and then looks up at you doubtfully.`); + } + if (!canTalk(eventSlave)) { + t.push(`${He} slowly spells out a question with ${his} ${hasBothArms(eventSlave) ? "hands" : "hand"}, asking if ${he}'s a good slave.`); + } else { + t.push(`${He} mumbles a hesitant question: "${eventSlave.rudeTitle === 1 ? PoliteRudeTitle(eventSlave) : Master}, am I a good ${s}lave?"`); + } + t.push(`You tell ${him} that ${he} is, running a hand ${eventSlave.hStyle === "shaved bald" ? `across ${his} bald scalp` : `through ${his} hair`}. ${He} seems <span class="hotpink">reassured,</span> and thankful when you give ${him} a cup of ${his} proper rations from your own hand.`); + + eventSlave.devotion += 4; + seX(eventSlave, "oral", PC, "penetrative"); + return t; + } + + function reassure() { + t = []; + + t.push(`${He}'s so intent on trying to suck off the food dispenser that ${he} doesn't ${canHear(eventSlave) ? "hear" : "notice"} you enter the room. ${He} starts with surprise when you encircle ${his}`); + if (eventSlave.belly >= 1500) { + t.push(`${belly} ${eventSlave.bellyPreg >= 1500 ? "pregnant" : ""} belly`); + } else { + t.push("waist"); + } + t.push(`with your arms and ${canHear(eventSlave) ? `murmur reassuringly in ${his} ear` : `give ${him} a reassuring squeeze`}.`); + if (canTalk(eventSlave)) { + t.push(`${He} ${say}s sadly, "${S}orry ${eventSlave.rudeTitle === 1 ? PoliteRudeTitle(eventSlave) : Master}. I'm trying to be a good ${s}lave but it'${s} hard."`); + } else { + t.push(`${He} sadly gestures at the spigot and then flicks ${his} own head.`); + } + t.push(`You kindly tell ${him} that you know ${he}'s trying, and that that's what really matters.`); + if (canTalk(eventSlave)) { + t.push(`"Really, ${eventSlave.rudeTitle === 1 ? PoliteRudeTitle(eventSlave) : Master}?" ${he} asks hopefully.`); + } else { + if (hasBothArms(eventSlave)) { + t.push(`${His} hands awkwardly ask, "Really?"`); + } else { + t.push(`${His} hand awkwardly asks, "Really?"`); + } + } + t.push(`You whisper into ${his} ear that yes, ${he} will be all right as long as ${he} does ${his} best. ${He} wiggles ${his} butt against you a little and giggles`); + if (PC.dick !== 0) { + t.push(`at the responding stiffness ${he} feels between ${his} buttocks. ${He} shimmies down and takes you into ${his} mouth${PC.vagina !== 1 ? ` and does ${his} best to reach the top of your pussy with the tip of ${his} tongue` : ""},`); + } else { + t.push(`as you shove ${him} to ${his} knees. ${He} shimmies down and eats you out,`); + } + t.push(`${canSee(eventSlave) ? "looking you in the eyes the whole time and" : ""} <span class="hotpink">smiling</span> as much as ${he} can manage with ${PC.dick !== 0 ? `a dick in ${his} mouth` : `${his} tongue working your clit`}.`); + + eventSlave.devotion += 4; + seX(eventSlave, "oral", PC, "penetrative"); + return t; + } + + function spank() { + t = []; + + t.push(`${He}'s so intent on trying to suck off the food dispenser that ${he} doesn't ${canHear(eventSlave) ? "hear" : "notice"} you enter the room. ${He} starts with surprise when you seize ${him} and push ${him}`); + if (eventSlave.belly >= 300000) { + t.push(`over ${his} _belly belly, face-down into the counter.`); + } else { + t.push(`face-down across the counter.`); + } + t.push(`After making ${him} confirm that ${canHear(eventSlave) ? `${he} can hear you` : `${he}'s paying attention`}, you patiently repeat the very simple instructions for getting meals from the kitchen. Then, you tell ${him} to repeat them. ${He} manages the first step fine and has completely forgotten the second. The moment ${he} hesitates, ${he} has an instant to ${canHear(eventSlave) ? "hear" : "feel"} the rush of air trying to get out of the way of your speeding palm before it contacts the ${eventSlave.skin} skin of ${his} buttocks. ${He} writhes and cries and promises to try harder, but ${his} poor rear end is almost raw before ${he} gets it all right. ${He} leaves the kitchen snuffling sadly to ${him}self, but in the coming days ${he} really does seem to <span class="gold">do ${his} best</span> to avoid another beating.`); + + eventSlave.trust -= 5; + return t; + } + + function arcade() { + t = []; + + t.push(`${eventSlave.slaveName} screams and begs when ${he} realizes what ${his} punishment for being stupid is to be, but you are obdurate.`); + if (eventSlave.muscles > 30) { + t.push(`${His} powerful form has to be sedated for immurement in the arcade.`); + } else if (eventSlave.weight >= 190) { + t.push(`${He} is so massively fat that immuring ${him} in the arcade is a struggle, even when ${he} isn't trying to.`); + } else if (eventSlave.belly >= 120000) { + t.push(`${He} is so enormously gravid that immuring ${him} in the arcade is a hassle, even though ${his} ${belly} middle limits ${his} ability to struggle.`); + } else if (eventSlave.weight >= -10) { + t.push(`${His} desperate struggles make immuring ${him} in the arcade difficult.`); + } else if (eventSlave.belly >= 1500) { + t.push(`${His} ${eventSlave.bellyPreg >= 3000 ? "pregnant" : `${belly}`} body makes it slightly difficult to fit ${him} properly into the restraints for immurement in the arcade.`); + } else if (eventSlave.muscles < -15) { + t.push(`${His} weak body makes immuring ${him} in the arcade pathetically easy.`); + } else { + t.push(`${His} thin form makes immuring ${him} in the arcade pathetically easy.`); + } + t.push(`After ${he}'s properly confined, the only sign of ${his} discomfiture is a slight movement of ${his} ${eventSlave.skin} butt as ${he} wriggles desperately against ${his} restraints.`); + + assignJob(eventSlave, "be confined in the arcade"); + eventSlave.sentence = 4; + return t; + } + } +}; diff --git a/src/events/randomEvent.js b/src/events/randomEvent.js index 3e4f75771a7d4cc3e690ee15e9847d6eaf2290ed..ec625c1f7c052caf5e300615e2dd12a1e07c8bc7 100644 --- a/src/events/randomEvent.js +++ b/src/events/randomEvent.js @@ -12,10 +12,13 @@ App.Events.getIndividualEvents = function() { // example: new App.Events.TestEvent(), new App.Events.RESSAssFitting(), new App.Events.RESSCockFeederResistance(), + new App.Events.RESSEscapee(), new App.Events.RESSHotPC(), new App.Events.RESSLazyEvening(), new App.Events.RESSMoistPussy(), new App.Events.RESSMuscles(), + new App.Events.RESSObedientBitchy(), + new App.Events.RESSObedientIdiot(), 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 4afbb50184a4b6ee37caddcd9075e7cb510627d5..a7dfab27dd7ee87bd925aef1b17d5da4044da96c 100644 --- a/src/js/eventSelectionJS.js +++ b/src/js/eventSelectionJS.js @@ -1023,16 +1023,6 @@ globalThis.generateRandomEventPoolStandard = function(eventSlave) { } } - if (eventSlave.devotion < -50) { - if (eventSlave.trust >= -50) { - if (eventSlave.assignment !== Job.CONFINEMENT) { - if (eventSlave.heels !== 1) { - V.RESSevent.push("escapee"); - } - } - } - } - if (eventSlave.devotion <= 50) { if (eventSlave.trust >= -50) { if (eventSlave.behavioralFlaw === "gluttonous") { @@ -1314,28 +1304,8 @@ globalThis.generateRandomEventPoolStandard = function(eventSlave) { } } } - - if (eventSlave.behavioralFlaw === "bitchy") { - if (canSee(eventSlave)) { - if (eventSlave.devotion > 20) { - if (eventSlave.trust >= -20) { - V.RESSevent.push("obedient bitchy"); - } - } - } - } } /* closes mute exempt */ - if (V.cockFeeder === 0) { - if (eventSlave.intelligence + eventSlave.intelligenceImplant < -50) { - if (eventSlave.devotion <= 50) { - if (eventSlave.devotion >= -20 || eventSlave.trust < -20) { - V.RESSevent.push("obedient idiot"); - } - } - } - } - if (eventSlave.boobs > 25000) { if (eventSlave.belly < 100000) { V.RESSevent.push("tittymonster inspection"); @@ -2326,14 +2296,6 @@ globalThis.generateRandomEventPoolServant = function(eventSlave) { } } - if (eventSlave.devotion < -50) { - if (eventSlave.trust >= -50) { - if (eventSlave.heels !== 1) { - V.RESSevent.push("escapee"); - } - } - } - if (eventSlave.devotion <= 50) { if (eventSlave.trust >= -50) { if (eventSlave.behavioralFlaw === "gluttonous") { @@ -2504,28 +2466,8 @@ globalThis.generateRandomEventPoolServant = function(eventSlave) { } } } - - if (eventSlave.behavioralFlaw === "bitchy") { - if (canSee(eventSlave)) { - if (eventSlave.devotion > 20) { - if (eventSlave.trust >= -20) { - V.RESSevent.push("obedient bitchy"); - } - } - } - } } /* closes mute exempt */ - if (V.cockFeeder === 0) { - if (eventSlave.intelligence + eventSlave.intelligenceImplant < -50) { - if (eventSlave.devotion <= 50) { - if (eventSlave.devotion >= -20 || eventSlave.trust < -20) { - V.RESSevent.push("obedient idiot"); - } - } - } - } - if (V.assistant > 1) { if (eventSlave.fetishKnown === 1) { if (eventSlave.energy > 95) { diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw index 08136f0578b437d766014341087575a220b29d26..6c3f7cd67fca055ec7cebb59e0868d0c21004957 100644 --- a/src/uncategorized/RESS.tw +++ b/src/uncategorized/RESS.tw @@ -44,7 +44,7 @@ <<set _clothesTemp = $activeSlave.clothes>> <<switch $RESSevent>> /*Some events start with the slave naked (any event that starts with the daily inspection, for example). Here we switch their clothing just for the image to load, then switch it back quickly so the player's choice is not messed up.*/ -<<case "age implant" "ara ara" "back stretch" "bad dream" "bed snuggle" "bondage gear" "bonded love" "breast expansion blues" "confident tanning" "devoted educated slave" "devoted exhibition" "devoted lotion" "desperate null" "devoted nympho" "devoted shortstack" "devoted waist" "extreme aphrodisiacs" "fearful balls" "fucktoy tribbing" "gaped asshole" "happy dance" "heavy piercing" "huge naturals" "huge tits" "hugely pregnant" "ignorant horny" "im scared" "implant inspection" "kitchen molestation" "language lesson" "mindbroken morning" "modest clothes" "mods please" "obedient girlish" "obedient idiot" "old PC age difference" "orchiectomy please" "PA flirting" "penitent" "permitted masturbation" "plimb help" "rebellious arrogant" "resistant gelding" "resistant shower" "resting amp" "restricted profession" "restricted smart" "sexy succubus" "shaped areolae" "shift masturbation" "shift sleep" "shower slip" "slave clit on slave" "slave dick huge" "slave dick on slave" "sleeping ambivalent" "sore shoulders" "spa boobs" "subjugation blues" "tendon fall" "terrified inspection" "tittymonster inspection" "torpedo squeeze" "transition anxiety" "trusting HG" "unhappy virgin" "used whore" "vocal disobedience" "young PC age difference">> +<<case "age implant" "ara ara" "back stretch" "bad dream" "bed snuggle" "bondage gear" "bonded love" "breast expansion blues" "confident tanning" "devoted educated slave" "devoted exhibition" "devoted lotion" "desperate null" "devoted nympho" "devoted shortstack" "devoted waist" "extreme aphrodisiacs" "fearful balls" "fucktoy tribbing" "gaped asshole" "happy dance" "heavy piercing" "huge naturals" "huge tits" "hugely pregnant" "ignorant horny" "im scared" "implant inspection" "kitchen molestation" "language lesson" "mindbroken morning" "modest clothes" "mods please" "obedient girlish" "old PC age difference" "orchiectomy please" "PA flirting" "penitent" "permitted masturbation" "plimb help" "rebellious arrogant" "resistant gelding" "resistant shower" "resting amp" "restricted profession" "restricted smart" "sexy succubus" "shaped areolae" "shift masturbation" "shift sleep" "shower slip" "slave clit on slave" "slave dick huge" "slave dick on slave" "sleeping ambivalent" "sore shoulders" "spa boobs" "subjugation blues" "tendon fall" "terrified inspection" "tittymonster inspection" "torpedo squeeze" "transition anxiety" "trusting HG" "unhappy virgin" "used whore" "vocal disobedience" "young PC age difference">> <<set $activeSlave.clothes = "no clothing">> <<case "whore rebellious">> /* this scene states they are wearing "thick, durable latex with temperature regulation and anchor points for restraint" no matter what they are assigned to wear. */ @@ -935,16 +935,6 @@ Though $assistant.name constantly monitors all your slaves, you keep an eye on t You have a lot of work to do with <<= App.UI.slaveDescriptionDialog($activeSlave)>>. $He compounds the usual rebellious anger at being a slave with an apparently unshakeable conviction that $he is better than you. Oddly, $he seems to maintain the idea that enslaving other people is somehow inappropriate, and that having done so has lowered you morally. This morning, $he did not appear to start $his morning chores as previously ordered. $He sleeps on a bedroll: a brief investigation discloses that $he is still in it, and has pulled the blanket up over $his head. $He refuses to acknowledge your peremptory command to get up. -<<case "escapee">> - -An escape attempt occurs and is stopped almost before you are informed of it. <<= App.UI.slaveDescriptionDialog($activeSlave)>> made a rash attempt to leave the penthouse, but $assistant.name monitors everyone constantly and was able to enclose $him before $he got very far. <<if $assistant.personality == 0>>It reports impersonally that the would-be escapee is locked in the entryway awaiting your judgment.<<else>>$He reports suggestively that the would-be escapee is locked in the entryway awaiting your pleasure.<</if>> -<br><br> -<<if $arcologyUpgrade.drones == 1>>Your advanced security systems are able to stop $him promptly, and there is no indication to the public that any escape attempt was made.<<else>>Your basic security systems are only able to stop $him by briefly locking down your penthouse, exciting @@.red;some adverse public comment.@@<<run repX(forceNeg(100), "event", $activeSlave)>><</if>> -<<if $activeSlave.indentureRestrictions > 0>> - <br><br> - This behavior has violated $his indenture contract, allowing you to apply more severe punishments that might otherwise breach it. -<</if>> - <<case "not my name">> <<if SlaveStatsChecker.checkForLisp($activeSlave)>> @@ -1365,12 +1355,6 @@ The showers your slaves use are well vented and transparent walled so that you c <</if>> <</if>> -<<case "obedient idiot">> - -<<= capFirstChar($assistant.name)>> breaks in on your work at your desk. <<if $assistant.personality == 0>>"<<= properTitle()>>,"<<else>>"Sweetheart,"<</if>> $he says, "<<= App.UI.slaveDescriptionDialog($activeSlave)>> is having trouble figuring out the meal dispenser again." <<if $assistant.personality == 0>>The report is deadpan, but $he brings up a visual feed.<<else>>$He brings up a visual feed. "Poor baby!" $he exclaims.<</if>> -<br><br> -Slaves are supposed to place a cup under a spigot, which detects the cup's presence and dispenses the appropriate nutrition for the $girl. Unfortunately this concept seems a little tough for $activeSlave.slaveName. With no one around to ask for help, $he has resorted to trying to suck food out of the spigot with $his mouth. With no cup to be detected, $he's not getting very far, and is getting bitterly frustrated. - <<case "devoted old">> At the end of a long week, <<= App.UI.slaveDescriptionDialog($activeSlave)>> moves past your office toward bed. This is completely normal part of the arcology routine, but you notice as $he passes that $he's wearing a preoccupied, almost sad expression. You call $him over, and $he makes a visible effort to brighten up as $he comes before you and asks your pleasure. You ask $him what's the matter, and $his face falls. @@ -1404,10 +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 bitchy">> - -<<= App.UI.slaveDescriptionDialog($activeSlave)>> 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, $activeSlave.slaveName audibly commented on how old she looked to another slave. Anger flashes in the businesswoman's eyes. - <<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. @@ -7302,70 +7282,6 @@ brought in to you. This time <<= App.UI.slaveDescriptionDialog($activeSlave)>> h <</link>> <</if>> -<<case "escapee">> - -<<link "Do nothing">> - <<replace "#result">> - Considering how easily this attempt was thwarted, you don't see much of a point in wasting your valuable time on punishing $activeSlave.slaveName in the hopes that $he'll learn $his lesson. Your send $him back to $his assigned duties, warning $him that you may not be so lenient in the future. $activeSlave.slaveName proclaims $his obedience, but, privately, it's clear that $he views your decision as @@.mediumorchid;an act of weakness@@ rather than kindness. In addition, every single one of your other slaves not already obedient to you is @@.orangered;encouraged in their trust that you won't hurt them@@ by this minuscule punishment of an escape attempt. - <<set $activeSlave.devotion -= 10, $activeSlave.trust += 2>> - <<set $slaves.forEach(function(s) { if (s.devotion <= 20) { s.trust += 8; } })>> - <</replace>> -<</link>> -<br><<link "Just confine would-be escapee to prevent future attempts">> - <<replace "#result">> - You order $activeSlave.slaveName confined until further notice. $activeSlave.slaveName is @@.hotpink;a little crushed@@ by $his failure to escape. However, every single one of your other slaves not already obedient to you is slightly @@.orangered;encouraged in their trust that you won't hurt them@@ by this moderate punishment of an escape attempt. - <<set $activeSlave.devotion += 4>> - <<= assignJob($activeSlave, "stay confined")>> - <<set $slaves.forEach(function(s) { if (s.devotion <= 20) { s.trust += 4; } })>> - <</replace>> -<</link>> -<br><<link "Flog the would-be escapee">> - <<replace "#result">> - Lesser whippings are usually performed by binding a slave's hands and then securing them to the ceiling so that $he will dance titillatingly when struck. This is not such a beating. You tie $activeSlave.slaveName to a wall by $his wrists and ankles and flog $him with workmanlike thoroughness<<if $activeSlave.pregKnown == 1>>, making sure to avoid accidentally ending $his pregnancy<</if>>. $He passes from angry struggles to agonized sobbing and finally to bloody, exhausted weeping before you untie $his now-limp form and apply first aid. $activeSlave.slaveName's rebelliousness is @@.gold;dulled by the experience,@@ and $his @@.red;health is damaged.@@ Furthermore, every single one of your other slaves not already obedient to you is @@.gold;frightened@@ by the example set. - <<set $activeSlave.trust -= 5>> - <<run healthDamage($activeSlave, 40)>> - <<set $slaves.forEach(function(s) { if (s.devotion <= 20) { s.trust -= 5; } })>> - <</replace>> -<</link>> -<<if $seeExtreme == 1>> - <br><<link "Clip the would-be escapee's tendons">> - <<replace "#result">> - The simple thing to do would be to sedate $activeSlave.slaveName and haul $him to the remote surgery for $his punishment. That would deny $him the added weight of terror, however, and would stop your other slaves from learning by the sight of it. So, you restrain $him, pronounce judgment, and drag $his struggling, weeping form through the penthouse to the surgery. $activeSlave.slaveName is @@.mediumorchid;saddened@@ and @@.gold;frightened@@ by this punishment, and $his @@.red;health is damaged@@ by the surgery. Every single one of your other slaves with any resistance left in them is @@.gold;sensibly restrained@@ from trying such rash acts. - <<set $activeSlave.devotion -= 5, $activeSlave.trust -= 5, $activeSlave.heels = 1>> - <<run surgeryDamage($activeSlave, 10)>> - <<set $slaves.forEach(function(s) { if (s.devotion <= 20) { s.trust -= 5; } })>> - <</replace>> - <</link>> - <br><<link "Amputate the would-be escapee's limbs">> - <<replace "#result">> - The simple thing to do would be to sedate $activeSlave.slaveName and haul $him to the remote surgery for $his punishment. That would deny $him the added weight of terror, however, and would stop your other slaves from learning by the sight of it. So, you restrain $him, pronounce judgment, and drag $his struggling, weeping form through the penthouse to the surgery. $activeSlave.slaveName is @@.mediumorchid;filled with implacable hatred@@ by this terrible punishment, and $his @@.red;health is damaged@@ by the major surgery. However, every single one of your other slaves not already obedient to you is @@.gold;utterly terrified@@ by the example set. - <<set $activeSlave.devotion -= 50, $activeSlave.trust -= 50, $activeSlave.diet = "healthy">> - <<run removeLimbs($activeSlave, "all"), surgeryDamage($activeSlave, 40)>> - <<set $slaves.forEach(function(s) { if (s.devotion <= 20) { s.trust -= 10; } })>> - <</replace>> - <</link>> - <<if getBestVision($activeSlave) > 0>> - <br><<link "Blind the would-be escapee">> - <<replace "#result">> - The simple thing to do would be to sedate $activeSlave.slaveName and haul $him to the remote surgery for $his punishment. That would deny $him the added weight of terror, however, and would stop your other slaves from learning by the sight of it. So, you restrain $him, pronounce judgment, and drag $his struggling, weeping form through the penthouse to the surgery. You make sure to point out all the things $he'll never get to see again. $activeSlave.slaveName is @@.mediumorchid;filled with implacable hatred@@ by this terrible punishment, and $his @@.red;health is slightly damaged@@ by the surgery. However, every single one of your other slaves not already obedient to you is @@.gold;utterly terrified@@ by the example set. - <<set $activeSlave.devotion -= 50, $activeSlave.trust -= 50>> - <<run eyeSurgery($activeSlave, "both", "blind"), surgeryDamage($activeSlave, 20)>> - <<set $slaves.forEach(function(s) { if (s.devotion <= 20) { s.trust -= 10; } })>> - <</replace>> - <</link>> - <</if>> - <<if canTalk($activeSlave)>> - <br><<link "Mute the would-be escapee">> - <<replace "#result">> - The simple thing to do would be to sedate $activeSlave.slaveName and haul $him to the remote surgery for $his punishment. That would deny $him the added weight of terror, however, and would stop your other slaves from learning by the sight of it. So, you restrain $him, pronounce judgment, and drag $his struggling, protesting form through the penthouse to the surgery. $He is allowed one last chance to verbally resist you, plead with you, and finally to beg with you, all in vain. $activeSlave.slaveName is @@.mediumorchid;filled with hatred@@ and @@.gold;terror@@ by this harsh punishment, and $his @@.red;health is slightly damaged@@ by the surgery. However, every single one of your other slaves not already obedient to you is @@.hotpink;terrified@@ by the example set. - <<set $activeSlave.devotion -= 5, $activeSlave.trust -= 25, $activeSlave.voice = 0>> - <<run surgeryDamage($activeSlave, 10)>> - <<set $slaves.forEach(function(s) { if (s.devotion <= 20) { s.trust -= 5; } })>> - <</replace>> - <</link>> - <</if>> -<</if>> - <<case "not my name">> <<link "Extirpate this foolishness with pain">> @@ -8813,78 +8729,6 @@ brought in to you. This time <<= App.UI.slaveDescriptionDialog($activeSlave)>> h <</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 "obedient idiot">> - -<<link "Give $him something more appropriate to suck on">> - <<replace "#result">> - <<= capFirstChar($assistant.name)>>, as usual, has to give the stupid slut considerable coaching to get $him to your office without getting lost. This is a near-miraculous imbecility, as the penthouse is expressly designed to make it nearly impossible to get anywhere from anywhere else without passing by the office door. $He understands orders to <<if $PC.dick == 0>>perform cunnilingus<<else>>suck a dick<</if>>, though, and gets down to it eagerly enough. When $he finishes the job, <<if $PC.dick == 0>>wipes $his mouth<<else>>$he busily swallows every drop of your ejaculate<</if>> and then looks up at you doubtfully. - <<if !canTalk($activeSlave)>> - $He slowly spells out a question with $his hand<<if hasBothArms($activeSlave)>>s<</if>>, asking if $he's a good slave. - <<else>> - $He mumbles a hesitant question: "<<if $activeSlave.rudeTitle == 1>><<= PoliteRudeTitle($activeSlave)>><<else>><<Master>><</if>>, am I a good <<s>>lave?" - <</if>> - You tell $him that $he is, running a hand <<if $activeSlave.hStyle == "shaved bald">>across $his bald scalp<<else>>through $his hair<</if>>. $He seems @@.hotpink;reassured,@@ and thankful when you give $him a cup of $his proper rations from your own hand. - <<set $activeSlave.devotion += 4>> - <<run seX($activeSlave, "oral", $PC, "penetrative")>> - <</replace>> -<</link>> -<br><<link "Reassure $him and get $him to slow down">> - <<replace "#result">> - $He's so intent on trying to suck off the food dispenser that $he doesn't <<if canHear($activeSlave)>>hear<<else>>notice<</if>> you enter the room. $He starts with surprise when you encircle $his<<if $activeSlave.belly >= 1500>> _belly<<if $activeSlave.bellyPreg >= 1500>> pregnant<</if>> belly<<else>> waist<</if>> with your arms and <<if canHear($activeSlave)>>murmur reassuringly in $his ear<<else>>give $him a reassuring squeeze<</if>>. - <<if !canTalk($activeSlave)>> - $He sadly gestures at the spigot and then flicks $his own head. - <<else>> - $He <<say>>s sadly, "<<S>>orry <<if $activeSlave.rudeTitle == 1>><<= PoliteRudeTitle($activeSlave)>><<else>><<Master>><</if>>. I'm trying to be a good <<s>>lave but it'<<s>> hard." - <</if>> - You kindly tell $him that you know $he's trying, and that that's what really matters. - <<if !canTalk($activeSlave)>> - $His hands awkwardly ask, "Really?" - <<else>> - "Really, <<if $activeSlave.rudeTitle == 1>><<= PoliteRudeTitle($activeSlave)>><<else>><<Master>><</if>>?" $he asks hopefully. - <</if>> - You whisper into $his ear that yes, $he will be all right as long as $he does $his best. $He wiggles $his butt against you a little and giggles <<if $PC.dick != 0>>at the responding stiffness $he feels between $his buttocks<<else>>as you shove $him to $his knees<</if>>. $He shimmies down and <<if $PC.dick != 0>>takes you into $his mouth<<if $PC.vagina != -1>> and does $his best to reach the top of your pussy with the tip of $his tongue<</if>><<else>>eats you out<</if>>, <<if canSee($activeSlave)>>looking you in the eyes the whole time and <</if>>@@.hotpink;smiling@@ as much as $he can manage with <<if $PC.dick != 0>>a dick in $his mouth<<else>>$his tongue working your clit<</if>>. - <<set $activeSlave.devotion += 4>> - <<run seX($activeSlave, "oral", $PC, "penetrative")>> - <</replace>> -<</link>> -<br><<link "Spank the stupid out of $him">> - <<replace "#result">> - $He's so intent on trying to suck off the food dispenser that $he doesn't <<if canHear($activeSlave)>>hear<<else>>notice<</if>> you enter the room. $He starts with surprise when you seize $him and push $him - <<if $activeSlave.belly >= 300000>> - over $his _belly belly, face-down into the counter. - <<else>> - face-down across the counter. - <</if>> - After making $him confirm that $he <<if canHear($activeSlave)>>can hear<<else>>acknowledges<</if>> you, you patiently repeat the very simple instructions for getting meals from the kitchen. Then, you tell $him to repeat them. $He manages the first step fine and has completely forgotten the second. The moment $he hesitates, $he has an instant to <<if canHear($activeSlave)>>hear<<else>>feel<</if>> the rush of air trying to get out of the way of your speeding palm before it contacts the $activeSlave.skin skin of $his buttocks. $He writhes and cries and promises to try harder, but $his poor rear end is almost raw before $he gets it all right. $He leaves the kitchen snuffling sadly to $himself, but in the coming days $he really does seem to @@.gold;do $his best@@ to avoid another beating. - <<set $activeSlave.trust -= 5>> - <</replace>> -<</link>> -<<if $arcade > 0>> - <br><<link "Sentence $him to a month in the arcade">> - <<replace "#result">> - $activeSlave.slaveName screams and begs when $he realizes what $his punishment for being stupid is to be, but you are obdurate. - <<if ($activeSlave.muscles > 30)>> - $His powerful form has to be sedated for immurement in the arcade. - <<elseif ($activeSlave.weight >= 190)>> - $He is so massively fat that immuring $him in the arcade is a struggle, even when $he isn't trying to. - <<elseif $activeSlave.belly >= 120000>> - $He is so enormously gravid that immuring $him in the arcade is a hassle, even though $his _belly middle limits $his ability to struggle. - <<elseif ($activeSlave.weight >= -10)>> - $His desperate struggles make immuring $him in the arcade difficult. - <<elseif $activeSlave.belly >= 1500>> - $His <<if $activeSlave.bellyPreg >= 3000>>pregnant<<else>>_belly<</if>> body makes it slightly difficult to fit $him properly into the restraints for immurement in the arcade. - <<elseif $activeSlave.muscles < -15>> - $His weak body makes immuring $him in the arcade pathetically easy. - <<else>> - $His thin form makes immuring $him in the arcade pathetically easy. - <</if>> - After $he's properly confined, the only sign of $his discomfiture is a slight movement of $his $activeSlave.skin butt as $he wriggles desperately against $his restraints. - <<= assignJob($activeSlave, "be confined in the arcade")>> - <<set $activeSlave.sentence = 4>> - <</replace>> - <</link>> -<</if>> - <<case "devoted old">> <<if canDoAnal($activeSlave) || canDoVaginal($activeSlave)>> @@ -9069,69 +8913,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 bitchy">> - -<<link "Beg her pardon and offer to loan the bitch to her">> - <<replace "#result">> - The businesswoman's anger turns to malicious anticipation as you call $activeSlave.slaveName over and inform $him that you and the businesswoman have decided $activeSlave.slaveName will be spending the night with her. Now that you look at your business partner, she has certain signs of a sadist. $activeSlave.slaveName notices too, and begins to cry<<if $activeSlave.bellyPreg >= 1500>> and shield $his pregnancy<</if>> as the businesswoman promises that there will be "no permanent damage." $activeSlave.slaveName is unceremoniously returned in the early hours of the morning. $His back and buttocks have been meticulously flogged right up to the very edge of damage, leaving angry marks across $his $activeSlave.skin skin. $His mouth lolls open, as though $he's been doing little but give cunnilingus. <<if $activeSlave.vagina != -1>>$His pussy,<<elseif $activeSlave.dick == 0>>$His shamefully featureless groin with its tiny little hole,<<else>>$His dick,<</if>> anus,<<if $activeSlave.belly >= 10000>> popped navel,<</if>> and even $his nipples show signs of torture. Whenever $he thinks of a sharp remark in the future, @@.hotpink;$he'll remember the pain and keep $his mouth shut.@@ - <<set $activeSlave.behavioralFlaw = "none">> - <<run seX($activeSlave, "oral", "public", "penetrative", 5)>> - <</replace>> -<</link>> -<br><<link "Offer to spitroast the bitch between the two of you">> - <<replace "#result">> - The businesswoman grins slowly and reaches into $his purse as you inform $activeSlave.slaveName that you and the businesswoman will punish $him together. $activeSlave.slaveName's eyes widen as the businesswoman fishes a massive strap-on out of $his bag. The surprise turns to fear as the businesswoman begins to slap it against $activeSlave.slaveName's buttocks as you - <<if !isAmputee($activeSlave)>> - <<if $activeSlave.belly >= 300000>> - push $him onto $his _belly belly. - <<else>> - pull $him down on <<if hasAllLimbs($activeSlave)>>all fours<<else>>the ground<</if>>. - <</if>> - <<else>> - arrange your bitchy little sex toy between you and your guest. - <</if>> - The businesswoman clearly wants $his ass, so you - <<if !canDoAnal($activeSlave)>> - quickly unfasten $his anal chastity. You - <</if>> - <<if $PC.vagina != -1>>ride $activeSlave.slaveName's face<<else>>facefuck $activeSlave.slaveName<</if>> roughly as $activeSlave.slaveName takes a painful anal raping from the huge dildo. - The businesswoman winks at you companionably and extracts squeals from $activeSlave.slaveName that feel especially delicious <<if $PC.vagina != -1>>against your cunt<<else>>along your dick<</if>>. $activeSlave.slaveName <<if hasAnyLegs($activeSlave)>>collapses<<if $activeSlave.belly >= 5000>> and rolls onto $his side<</if>> after a long punishment fuck<<else>>ends the day a sore toy<</if>>; $his @@.hotpink;submission@@ to you and @@.gold;fear of you@@ have both increased. - <<if $activeSlave.anus == 0>> - The businesswoman considered $his @@.lime;anal cherry@@ a @@.green;respectable offer.@@ - <<set $activeSlave.anus++>> - <<run repX(500, "event", $activeSlave)>> - <</if>> - <<set $activeSlave.devotion += 3, $activeSlave.trust -= 3>> - <<run seX($activeSlave, "anal", "public", "penetrative")>> - <<run seX($activeSlave, "oral", $PC, "penetrative")>> - <</replace>> -<</link>><<if ($activeSlave.anus == 0)>> //This option will take anal virginity and ignore anal chastity//<</if>> -<<if $arcade > 0>> - <br><<link "Sentence $him to a month in the arcade">> - <<replace "#result">> - $activeSlave.slaveName screams and begs when $he realizes what $his punishment for being stupid is to be, but you are obdurate. - <<if ($activeSlave.muscles > 30)>> - $His powerful form has to be sedated for immurement in the arcade. - <<elseif ($activeSlave.weight >= 190)>> - $He is so massively fat that immuring $him in the arcade is a struggle, even when $he isn't trying to. - <<elseif $activeSlave.belly >= 120000>> - $He is so enormously gravid that immuring $him in the arcade is a hassle, even though $his _belly middle limits $his ability to struggle. - <<elseif ($activeSlave.weight >= -10)>> - $His desperate struggles make immuring $him in the arcade difficult. - <<elseif $activeSlave.belly >= 1500>> - $His <<if $activeSlave.bellyPreg >= 3000>>pregnant<<else>>_belly<</if>> body makes it slightly difficult to fit $him properly into the restraints for immurement in the arcade. - <<elseif $activeSlave.muscles < -15>> - $His weak body makes immuring $him in the arcade pathetically easy. - <<else>> - $His thin form makes immuring $him in the arcade pathetically easy. - <</if>> - After $he's properly confined, the only sign of $his discomfiture is a slight movement of $his $activeSlave.skin butt as $he wriggles desperately against $his restraints. - <<= assignJob($activeSlave, "be confined in the arcade")>> - <<set $activeSlave.sentence = 4>> - <</replace>> - <</link>> -<</if>> - <<case "obedient shemale">> <<link "Let $him">>