diff --git a/src/events/RE/reMilfTourist.js b/src/events/RE/reMilfTourist.js new file mode 100644 index 0000000000000000000000000000000000000000..e82ad0d1f477413e2a6c9631b6d8f1920d94a1f6 --- /dev/null +++ b/src/events/RE/reMilfTourist.js @@ -0,0 +1,260 @@ +App.Events.REMilfTourist = class REMilfTourist extends App.Events.BaseEvent { + eventPrerequisites() { + return [ + () => V.arcologies[0].prosperity >= 100 + ]; + } + + actorPrerequisites() { + return [[ + (s) => s.devotion > 20, + (s) => [Job.PUBLIC, Job.CLUB].includes(s.assignment), + canTalk, + canWalk, + ]]; + } + + get weight() { + return V.rep > random(1, 30000) ? 1 : 0; + } + + execute(node) { + const r = []; + + V.nextButton = "Continue"; + V.nextLink = "RIE Eligibility Check"; + + const milfSlave = getSlave(this.actors[0]); + + const tourist = GenerateNewSlave("XX", { + minAge: 36, maxAge: 42, ageOverridesPedoMode: 1, race: "nonslave", disableDisability: 1 + }); + tourist.origin = "$He came to your arcology as a tourist and found $himself enslaved."; + tourist.devotion = random(-70, -55); + tourist.trust = random(-45, -25); + setHealth(tourist, jsRandom(10, 20), undefined, undefined, undefined, 5); + tourist.vagina++; + tourist.hips = 2; + tourist.butt = random(4, 6); + tourist.boobs = 100 * random(10, 18); + tourist.weight = random(60, 140); + tourist.behavioralQuirk = "none"; + tourist.sexualQuirk = "none"; + tourist.canRecruit = 0; + tourist.clothes = "nice business attire"; + + App.Events.drawEventArt(node, [milfSlave, tourist]); + + const { + He, + he, him, his, himself + } = getPronouns(milfSlave); + const {title: Master} = getEnunciation(milfSlave); + + const { + He2, + he2, him2, his2, himself2 + } = getPronouns(tourist).appendSuffix("2"); + + const { + HeA, + heA, hisA, himselfA + } = getPronouns(assistant.pronouns().main).appendSuffix("A"); + + if (V.assistant.personality === 1) { + r.push(`${capFirstChar(V.assistant.name)}'s`); + if (V.assistant.appearance === "normal") { + r.push(`symbol`); + } else { + r.push(`${V.assistant.appearance} avatar`); + } + r.push(`appears on your desk in the middle of the day. "Something unusual for you, ${properTitle()}," ${heA} says. "${milfSlave.slaveName} is out doing public service. A tourist from the old world accosted ${him}. ${milfSlave.slaveName} thought ${he2} was a rich citizen who wanted to fuck ${him}, but it turns out ${he2} just wanted a tour guide. It was a reasonable mistake; ${he2} seems wealthy. ${He} has been showing ${him2} around for the last half hour. Now ${he2}'s asked ${him} if ${he2} can meet you." ${HeA} displays a video feed showing ${milfSlave.slaveName} standing with the tourist in question out on the main plaza. ${He2}'s just into middle age, and extremely plush, wearing Capri pants over ${his2} motherly hips and a cashmere sweater that understates ${his2} generous bust. ${He2}'s blushing as ${he2} asks your slave a discreet question about public sex in the arcology, brought on by the sight of a couple of citizens spitroasting a slave. Your personal assistant's avatar`); + switch (V.assistant.appearance) { + case "monstergirl": + r.push(`bares ${hisA} fangs and makes pinching gestures at nipple height.`); + break; + case "shemale": + r.push(`gives a wolf whistle and makes exaggerated gestures over ${hisA} own boobs.`); + break; + case "amazon": + r.push(`brandishes a club suggestively.`); + break; + case "businesswoman": + r.push(`looks the tourist up and down over the tops of ${hisA} glasses.`); + break; + case "schoolgirl": + r.push(`stares openly at the tourist's ass.`); + break; + case "fairy": + case "pregnant fairy": + r.push(`zips around the tourist, giving ${him2} a good look-over.`); + break; + case "hypergoddess": + case "goddess": + r.push(`eyes ${his2} fertile hips.`); + break; + case "loli": + case "preggololi": + r.push(`stares longingly at ${his2} huge tits.`); + break; + case "angel": + r.push(`blushes at the sight of ${his2} obvious curves.`); + break; + case "cherub": + r.push(`makes exaggerated movements over ${hisA} own tits.`); + break; + case "incubus": + r.push(`is sporting an absolutely enormous erection. ${HeA} seems to be enjoying the show.`); + break; + case "succubus": + r.push(`turns to face you; ${hisA} breasts huge armfuls, butt jiggling non-stop and a pair of hips to rival any cow. "My curves are better."`); + break; + case "imp": + r.push(`makes pinching gestures at nipple height then turns and slaps ${hisA} own ass.`); + break; + case "witch": + r.push(`blushes at the sight of those lovely curves.`); + break; + case "ERROR_1606_APPEARANCE_FILE_CORRUPT": + r.push(`swells ${himselfA} to resemble ${his2} figure before twisting ${hisA} arm into a cock and ramming it straight up ${hisA} cunt.`); + break; + default: + r.push(`reforms into an exaggerated female form before going back to ${hisA} normal symbol shape.`); + } + } else { + r.push(`${capFirstChar(V.assistant.name)}`); + r.push(`gets your attention the middle of the day. "A minor matter for you, ${properTitle()}," ${heA} says. "${milfSlave.slaveName} is currently performing public service. A tourist from the old world accosted ${him}. ${milfSlave.slaveName} thought ${he2} was a rich citizen who wanted to have sex with ${him}, but it seems ${he2} just wanted a tour guide. It was a reasonable mistake; the tourist appears wealthy. ${He} has been acting as ${his2} guide for the last half hour. The tourist has asked ${him} if ${he2} can meet you." ${HeA} displays a video feed showing ${milfSlave.slaveName} standing with the tourist in question out on the main plaza. ${He2}'s just into middle age, and extremely plush, wearing Capri pants over ${his2} motherly hips and a cashmere sweater that understates ${his2} generous bust. ${He2}'s blushing as ${he2} asks your slave a discreet question about public sex in the arcology, brought on by the sight of a couple of citizens spitroasting a slave.`); + } + + App.Events.addParagraph(node, r); + + const choices = []; + choices.push(new App.Events.Result(`Decline politely`, decline)); + choices.push(new App.Events.Result(`Share some Free Cities life with ${him2}`, share)); + choices.push(new App.Events.Result(`Encourage ${him2} to enjoy the slave with your compliments`, compliments)); + if (V.cash > 20000) { + choices.push(new App.Events.Result(`Enslave ${him2}`, enslave, `This will require an unprofitable ${cashFormat(20000)}, since ${he2} is wealthy and obfuscating ${his2} fate will require considerable spending`)); + } else { + choices.push(new App.Events.Result(null, null, `You cannot afford the ${cashFormat(20000)} enslaving ${him2} would require, since ${he2} is wealthy and obfuscating ${his2} fate would necessitate considerable spending`)); + } + + App.Events.addResponses(node, choices); + + function decline() { + const frag = new DocumentFragment(); + let r = []; + r.push( + `You have ${V.assistant.name} instruct ${milfSlave.slaveName} to pass on your regrets, and add a message for ${milfSlave.slaveName} expressing confidence in ${him} to represent you and the arcology perfectly well without you. ${He}'s <span class="trust inc">affirmed</span> by your trust in ${him}.`, + Spoken(milfSlave, `"${Master},"`), + `${he} reports the next time you see ${him},`, + Spoken(milfSlave, `"that tourist was really nice. Also, I got ${him2} to have sex with me, after all. ${He2} was all hesitant and blushy about doing it in public, but ${he2} got better after the first time I ate ${him2} out."`), + `${He} looks pleased with ${himself}.`, + Spoken(milfSlave, `"I bet ${he2} <span class="reputation inc">tells all ${his2} friends</span> back home how much fun it is here."`) + ); + repX(500, "event"); + milfSlave.trust += 4; + seX(milfSlave, "oral", "public", "penetrative"); + App.Events.addParagraph(frag, r); + return frag; + } + + function share() { + const frag = new DocumentFragment(); + let r = []; + r.push( + `You have ${milfSlave.slaveName} bring the tourist up to meet you. ${He2}'s full of questions about what it's like to be an arcology owner, and you finally tell ${him2} that you can give ${him2} a pretty good idea. Eagerly, ${he2} asks you how, and you point at ${milfSlave.slaveName}, telling the tourist ${he2} ought to bend the slave over the couch if ${he2} wants to know what it's really like to be an oversexed oligarch.`, + notLesbian(), + Spoken(milfSlave, `fuck me. It'll be fun!"`), + `The tourist turns to stare at ${him2}, and ${he2} offers just the right kind of plaintive expression.`, + Spoken(tourist, `"O-okay,"`), + `the tourist says in a tiny voice, and ${milfSlave.slaveName} giggles, hugging ${him2} from behind. ${He} cups one of the tourist's breasts, and snakes ${his} other hand down the front of ${his2} pants.`, + Spoken(tourist, `"Here!?"`), + `the tourist gasps, staring straight at you and blushing even harder. You tell ${him2} that that's how you do things in the Free Cities: enjoying a slave is nothing to be ashamed of. ${He2} looks doubtful, but ${he2} doesn't try to escape from ${milfSlave.slaveName}'s roving ${(hasBothArms(milfSlave)) ? "hands" : "hand"}, either. Your presence continues to bother ${him2} until ${milfSlave.slaveName} distracts ${him2} by getting ${him2} to cuddle on the couch and make out, providing enough of a distraction that ${he2} gets over ${his2} inhibitions and orgasms rather immodestly.` + ); + App.Events.addParagraph(frag, r); + r = []; + r.push(`You offer ${him2} some liquid courage as ${he2} recovers, but ${he2}'s rapidly getting over ${his2} hesitation. As the alcohol suffuses ${him2}, ${he2} starts stealing glances at ${milfSlave.slaveName}, who for ${his} part is being as seductive as humanly possible. Finally, the tourist mouths 'fuck it' silently, reaches over, and openly gropes the slave's ass. ${milfSlave.slaveName} giggles and shifts lewdly, ensuring that the tourist's hand makes a thorough tour of everything the slave has. The tourist tentatively sinks a couple of fingers into ${him}, and the slave shamelessly slides ${himself} onto the invading digits, begging to be fucked. You make a party of it, with the various slaves who come and go over the course of the evening treated to the sight of ${him} getting fucked by the tourist. ${He2} drunkenly promises you to <span class="reputation inc">tell all ${his2} friends</span> how awesome your arcology is at one point, though ${he2} has to take ${his2} mouth off one of ${milfSlave.slaveName}'s nipples to do so.`); + milfSlave.trust += 4; + seX(milfSlave, "oral", "public", "penetrative", 3); + seX(milfSlave, "anal", "public", "penetrative", 3); + repX(500, "event"); + V.trinkets.push("a thank-you note from a MILF tourist whom you made feel welcome in the arcology"); + + App.Events.addParagraph(frag, r); + return frag; + } + + function compliments() { + const frag = new DocumentFragment(); + let r = []; + r.push( + `You have ${milfSlave.slaveName} bring the tourist up to meet you, and exchange some minor pleasantries. You tell ${him2} that if ${he2} really wants to experience Free Cities life, though, ${he2} really should enjoy ${milfSlave.slaveName}, pointing at the slave hovering behind ${him2}. ${He2} blushes furiously, but before ${he2} can stammer a refusal, the slave whispers something into ${his2} ear.`, + notLesbian(), + Spoken(milfSlave, `give me a try."`), + `The tourist turns to stare at ${him}, and ${he2} offers just the right kind of plaintive expression.`, + Spoken(tourist, `"O-okay,"`), + `the tourist says in a tiny voice, and ${milfSlave.slaveName} giggles, hugging ${him2} from behind. ${He} takes the tourist's hand, and they leave your office together.` + ); + App.Events.addParagraph(frag, r); + r = []; + + r.push( + Spoken(milfSlave, `"${Master},"`), + `${he} reports the next time you see ${him},`, + Spoken(milfSlave, `"that tourist was really nice. Also, I got ${him2} to have sex with me, after all. ${He2} was going to take me back to ${his2} hotel but I got ${him2} to do me on the way. ${He2} was all hesitant and blushy about doing it in public, but ${he2} got better after the first time I ate ${him2} out."`), + `${He} looks pleased with ${himself}.`, + Spoken(milfSlave, `"I bet ${he2} <span class="reputation inc">tells all ${his2} friends</span> back home how much fun it is here."`) + ); + milfSlave.trust += 4; + seX(milfSlave, "oral", "public", "penetrative"); + repX(500, "event"); + V.trinkets.push("a thank-you note from a MILF tourist whom you made feel welcome in the arcology"); + + App.Events.addParagraph(frag, r); + return frag; + } + + function enslave() { + const frag = new DocumentFragment(); + let r = []; + + tourist.clothes = "no clothing"; + App.Art.refreshSlaveArt(tourist, 3, "art-frame"); + r.push( + `When your new slave comes to, ${his2} weight is hanging from ${his2} wrists, bound over ${his2} head. ${He2}'s not exactly thin, making the position uncomfortable for ${his2} arms, so ${he2} groggily stands, finding ${himself2} in a pool of light in the middle of a cell. ${He2}'s nursing a tremendous hangover, and though ${he2} does not realize it, ${he2}'s drugged. You're present, though not visible, witnessing ${his2} first conscious moment of slavery from your desk. Realization is slow. ${He2}'s no innocent, so ${he2} recognizes the sensations of waking up the morning after a night of drinking interspersed with vigorous vaginal, oral, and anal intercourse, but ${he2} does not remember the specifics. After a few minutes, ${he2} understands that no one is coming, and speaks up hesitantly:`, + Spoken(tourist, `"Is anyone there?"`), + `Getting no immediate answer, ${he2} slumps against ${his2} wrist restraints again, and begins to cry to ${himself2}.`, + Spoken(tourist, `"W-why would a-anyone do this."`) + ); + cashX(-20000, "event", tourist); + r.push(App.UI.newSlaveIntro(tourist)); + App.Events.addParagraph(frag, r); + return frag; + } + + function notLesbian() { + const r = []; + r.push( + Spoken(tourist, `"I'm, um, not really a lesbian,"`), // tourist.behavioralFlaw = "fucking LIAR"; + `the tourist responds hesitantly.` + ); + if (milfSlave.dick > 0) { + r.push( + Spoken(milfSlave, `"You don't have to be,"`), + `${he} purrs.`, + Spoken(milfSlave, `"I have a cock."`), + `${He} slides in, just close enough to prove it.`, + Spoken(milfSlave, `"Please,`) + ); + } else { + r.push( + Spoken(milfSlave, `"Having sex with slaves does not make you a lesbian,"`), + `${he} purrs.`, + Spoken(milfSlave, `"It's different here. Please,`) + ); + } + return r.join(" "); + } + } +}; + diff --git a/src/events/RE/reRebels.js b/src/events/RE/reRebels.js new file mode 100644 index 0000000000000000000000000000000000000000..1307aff535b1e64dd87f27e9809b09546a3eda05 --- /dev/null +++ b/src/events/RE/reRebels.js @@ -0,0 +1,202 @@ +App.Events.RERebels = class RERebels extends App.Events.BaseEvent { + actorPrerequisites() { + const jobs = [Job.ARCADE]; + if (V.dairyRestraintsSetting >= 2) { + jobs.push(Job.DAIRY); + } + const req = [ + (s) => !jobs.includes(s.assignment), + (s) => s.devotion < -20, + canWalk, + ]; + return [req, req]; + } + + execute(node) { + const r = []; + + V.nextButton = "Continue"; + V.nextLink = "RIE Eligibility Check"; + + const thingOne = getSlave(this.actors[0]); + const thingTwo = getSlave(this.actors[1]); + + const { + He, + he, his, him + } = getPronouns(thingOne); + + const { + He2, + he2, his2, him2, + } = getPronouns(thingTwo).appendSuffix("2"); + + App.Events.drawEventArt(node, [thingOne, thingTwo], "no clothing"); + + + r.push( + `You have a rebel problem.`, + App.UI.DOM.slaveDescriptionDialog(thingOne), + `and`, + App.UI.DOM.slaveDescriptionDialog(thingTwo), + `are both unbroken, and they seem to draw strength from each other. They're discreet about it, but the arcology's always-vigilant systems occasionally catch them nodding to one another after one of them is punished, or giving each other quiet words of encouragement when they think no one is listening. This is extremely dangerous and should be addressed promptly.` + ); + + App.Events.addParagraph(node, r); + + const choices = []; + choices.push(new App.Events.Result(`Set them against each other, in public`, publicly)); + choices.push(new App.Events.Result(`Set them against each other, in private`, privately)); + if (V.seeExtreme === 1 && thingTwo.vagina > 0 && thingOne.vagina > 0) { + choices.push(new App.Events.Result(`Let them compete against each other to decide who lives`, deathMatch)); + } + if (V.arcade > 0) { + choices.push(new App.Events.Result(`Sentence them to a month in the arcade`, arcade)); + } + + App.Events.addResponses(node, choices); + + function publicly() { + const frag = new DocumentFragment(); + let r = []; + r.push(`You haul your little rebel bitches out in public, one by one, bound, with bags over their heads. They find themselves chained in a low position so their mouths are publicly available. Then, you whisper to each of them that whichever slut sucks off the most passersby gets to rest tomorrow — and whichever sucks least gets a beating. It doesn't take long before <span class="devotion inc">they forget their friendship</span> and try to outdo each other, and their desperate efforts <span class="reputation inc"> are certainly appreciated by the citizens getting free blowjobs.</span> It's childishly easy to declare the contest over when they happen to be tied, and announce that no one will be punished or rewarded. They hate you less and each other more.`); + for (const thing of [thingOne, thingTwo]) { + thing.devotion += 4; + seX(thing, "oral", "public", "penetrative", 6); + repX(250, "event", thing); + } + + App.Events.addParagraph(frag, r); + return frag; + } + + function privately() { + const frag = new DocumentFragment(); + let r = []; + r.push(`Back in the old world, the saying went that turnabout was fair play. In the Free Cities, turnabout is often a cast-iron bitch. Whenever you have an idle moment, all week, you set them against one another in some degrading or painful contest. They are made to spank each other, with the slave who hits lightest getting a spanking from you. They are made to compete to see who can suck other slaves off quickest, with the loser forced to orally service the winner. So on, and so on; by the end of the week <span class="trust dec">they forget their friendship</span> and try to outdo each other to avoid punishment.`); + for (const thing of [thingOne, thingTwo]) { + thing.trust -= 5; + seX(thing, "oral", "public", "penetrative", 6); + repX(250, "event", thing); + } + App.Events.addParagraph(frag, r); + return frag; + } + + function deathMatch() { + const frag = new DocumentFragment(); + let r = []; + r.push(`You haul your bound little rebel bitches into one of the deepest, most out of the way rooms of your penthouse with bags over their heads. When you pull them off, they are met with`); + if (canSee(thingTwo) && canSee(thingOne)) { + r.push(`the sight of`); + } + r.push(`a gallows, complete with a pair of nooses. You haul them, one at a time up onto a stool and loop the rope around their necks. They scream and beg the whole time for you to reconsider, before turning on each other to try and avoid their fate. It won't be that easy for them. You hold up a pair of spoons and explain the rules of the game. They'll hold them in their pussies, and whoever loses their grip and drops it first, dies.`); + App.Events.addParagraph(frag, r); + r = []; + if (thingOne.vagina > 3) { + r.push(`You start with ${thingOne.slaveName} and no sooner than you turn to ${thingTwo.slaveName} do you hear the telltale clatter of the spoon hitting the floor. With a simple kick, the unfortunately loose ${thingOne.slaveName} is left struggling in the air. ${thingTwo.slaveName}`); + if (canSee(thingTwo)) { + r.push(`watches`); + } else if (canHear(thingTwo)) { + r.push(`listens`); + } else { + r.push(`stares blankly`); + } + r.push(`in horror as the life drains from ${his2} former accomplice. <span class="trust dec">${He2} promises to never cross you again.</span>`); + thingTwo.trust -= 20; + removeSlave(thingOne); + } else if (thingTwo.vagina > 3) { + r.push(`You start with ${thingOne.slaveName} before moving to ${thingTwo.slaveName} as ${he} holds ${his} life between ${his} netherlips. Setting the spoon inside ${thingTwo.slaveName}, you prepare to kick the stools out from under them; but the telltale clatter of the spoon hitting the floor saves you the trouble. With a simple kick, the unfortunately loose ${thingTwo.slaveName} is left struggling in the air. ${thingOne.slaveName}`); + if (canSee(thingOne)) { + r.push(`watches`); + } else if (canHear(thingOne)) { + r.push(`listens`); + } else { + r.push(`stares blankly`); + } + r.push(`in horror as the life drains from ${his} former accomplice. <span class="trust dec">${He} promises to never cross you again.</span>`); + thingOne.trust -= 20; + removeSlave(thingTwo); + } else if (random(1, 100) === 69) { + r.push(`You start with ${thingOne.slaveName} before moving to ${thingTwo.slaveName} as ${he} holds ${his} life between ${his} netherlips. Once both spoons are inserted, you sit back and watch them squirm at the cold metal in their most sensitive recesses. They are both desperate to survive and clamp down as hard as they can, but it can't go on forever as the sounds of a spoon clattering to the floor fills the room. Both slaves freeze as they realize the other has lost their grip on the silverware, uncertain of what comes next. You answer the question by knocking the stools out from under them, allowing them both to hang. They came into this together and they are going out together.`); + removeSlave(thingOne); + removeSlave(thingTwo); + } else if (thingOne.vagina === thingTwo.vagina && random(1, 100) > 50) { + r.push(`You start with ${thingOne.slaveName} before moving to ${thingTwo.slaveName} as ${he} holds ${his} life between ${his} netherlips. Once both spoons are inserted, you sit back and watch them squirm at the cold metal in their most sensitive recesses. They are both`); + if (thingOne.vagina === 1) { + r.push(`quite tight, so it's no surprise when they put up a good show.`); + } else { + r.push(`not the tightest slaves, so it's a surprise they manage to hold on as long as they do.`); + } + r.push(`But it can't go on forever as the sound of the spoon clattering to the floor fills the room.`); + if (random(1, 100) <= 50) { + r.push(kickBucket(thingTwo, thingOne)); + } else { + r.push(kickBucket(thingOne, thingTwo)); + } + } else if (thingTwo.vagina > thingOne.vagina && random(1, 100) > 50) { + r.push(`You start with ${thingOne.slaveName} before moving to ${thingTwo.slaveName} as ${he} holds ${his} life between ${his} netherlips. Once both spoons are inserted, you sit back and watch them squirm at the cold metal in their most sensitive recesses. ${thingOne.slaveName} is the clear favorite in this game, but the looser ${thingTwo.slaveName} refuses to give in, using ${his2} experience to clamp down as hard as ${he2} can. But it can't go on forever as the sound of the spoon clattering to the floor fills the room.`); + if (random(1, 100) <= 90) { + r.push(kickBucket(thingTwo, thingOne)); + } else { + r.push(kickBucket(thingOne, thingTwo)); + if (thingTwo.vagina >= 3) { + r.push(`You can't say you expected this outcome, but it was amusing all the same to discover the blown out whore has some talent.`); + } else { + r.push(`You're glad no bets were riding on this.`); + } + } + } else { + r.push(`You start with ${thingOne.slaveName} before moving to ${thingTwo.slaveName} as ${he} holds ${his} life between ${his} netherlips. Once both spoons are inserted, you sit back and watch them squirm at the cold metal in their most sensitive recesses. In a show of underhandedness, ${thingTwo.slaveName} kicks ${thingOne.slaveName}, knocking ${him} off balance and sending ${him} hanging. ${thingTwo.slaveName}`); + if (canSee(thingTwo)) { + r.push(`watches`); + } else if (canHear(thingTwo)) { + r.push(`listens`); + } else { + r.push(`stares blankly`); + } + r.push(`as the life drains from ${his2} accomplice, <span class="trust dec">horrified at what ${he2} just did.</span> The ordeal <span class="red">leaves ${him2} behaving strangely.</span>`); + thingTwo.trust = -100; + thingTwo.behavioralFlaw = "odd"; + removeSlave(thingOne); + } + + App.Events.addParagraph(frag, r); + return frag; + + /** + * @param {App.Entity.SlaveState} dead + * @param {App.Entity.SlaveState} survivor + * @returns {DocumentFragment} + */ + function kickBucket(dead, survivor) { + const {him} = getPronouns(dead); + const {his2, him2} = getPronouns(survivor).appendSuffix("2"); + const frag = new DocumentFragment(); + let r = []; + r.push(`You kick the stool out from under ${dead.slaveName} and let ${him} hang. ${survivor.slaveName}`); + if (canSee(survivor)) { + r.push(`watches`); + } else if (canHear(survivor)) { + r.push(`listens`); + } else { + r.push(`stares blankly`); + } + r.push(`in horror as the life drains from ${his2} former accomplice, <span class="trust dec">terrified that you'd so callously toy with their lives.</span> The ordeal <span class="red">leaves ${him2} behaving strangely.</span>`); + App.Events.addParagraph(frag, r); + survivor.trust -= -20; + survivor.behavioralFlaw = "odd"; + removeSlave(dead); + return frag; + } + } + + function arcade() { + for (const thing of [thingOne, thingTwo]) { + assignJob(thing, "be confined in the arcade"); + thing.sentence = 4; + } + return `They scream and beg when they realize what their punishment is to be, but you are obdurate. Each tries to inform on the other to avoid such a fate, but to no avail. After they're properly confined, the only sign of their discomfiture is a slight movement of their butts as they wriggle desperately against their restraints.`; + } + } +}; diff --git a/src/events/randomEvent.js b/src/events/randomEvent.js index afe21e804d6c8fd7173289b5cab0fa7879c11114..c351b5ec1a05f8c402f3ad61b9bc17cb8f8b2b45 100644 --- a/src/events/randomEvent.js +++ b/src/events/randomEvent.js @@ -95,7 +95,8 @@ App.Events.getIndividualEvents = function() { new App.Events.rePregInventorShowOff(), new App.Events.rePregInventorFCTV(), - new App.Events.REStandardPunishment() + new App.Events.REStandardPunishment(), + new App.Events.RERebels(), ]; }; @@ -141,6 +142,7 @@ App.Events.getNonindividualEvents = function() { new App.Events.RESEndowment(), new App.Events.RESMove(), new App.Events.REBoomerang(), + new App.Events.REMilfTourist(), // recFS new App.Events.recFSArabianRevivalist(), diff --git a/src/uncategorized/randomNonindividualEvent.tw b/src/uncategorized/randomNonindividualEvent.tw index 10837dcba856a8b809a8ed61e80b10b1d4f658ee..480a30c93a0aa633bf209cb3e1395ba568a8c340 100644 --- a/src/uncategorized/randomNonindividualEvent.tw +++ b/src/uncategorized/randomNonindividualEvent.tw @@ -142,19 +142,6 @@ /* Multislave Events */ <<set _L = App.Utils.countFacilityWorkers(["brothel", "clinic", "club", "dairy", "cellblock", "spa", "schoolroom", "servantsQuarters"])>> - <<if $dairyRestraintsSetting >= 2>> - <<set $rebelSlaves = $slaves.filter(function(s) { return s.devotion < -20 && s.assignment != "be confined in the arcade" && canWalk(s) && s.assignment != "work in the dairy"; })>> - <<else>> - <<set $rebelSlaves = $slaves.filter(function(s) { return s.devotion < -20 && s.assignment != "be confined in the arcade" && canWalk(s); })>> - <</if>> - <<if $rebelSlaves.length > 1>> - <<set $rebelSlaves = $rebelSlaves.shuffle()>> - <<set $rebelSlaves.length = 2>> - <<set $rebelSlaves[0] = $rebelSlaves[0].ID>> - <<set $rebelSlaves[1] = $rebelSlaves[1].ID>> - <<set $events.push("RE rebels")>> - <</if>> - <<if _L.brothel > 3>> <<set $events.push("RE busy brothel")>> <</if>> @@ -375,15 +362,6 @@ <</if>> <</if>> - <<if ($arcologies[0].prosperity >= 100 && ($rep > random(1,30000)) || _oneIfDebug)>> - <<set _milfSlaves = $slaves.filter(function(s) { return s.devotion > 20 && canTalk(s) && canWalk(s) && (s.assignment == "serve the public" || s.assignment == "serve in the club"); })>> - <<if _milfSlaves.length > 0>> - <<set $events.push("RE milf tourist")>> - <<set $milfSlaveID = _milfSlaves.random()>> - <<set $milfSlaveID = $milfSlaveID.ID>> - <</if>> - <</if>> - <<if $SF.Toggle && $SF.Active >= 1>> <<set $events.push("Trick Shot Night")>> <</if>> diff --git a/src/uncategorized/reMilfTourist.tw b/src/uncategorized/reMilfTourist.tw deleted file mode 100644 index 029b474fa5eb58f32707b4d776c9b853fac5c66e..0000000000000000000000000000000000000000 --- a/src/uncategorized/reMilfTourist.tw +++ /dev/null @@ -1,170 +0,0 @@ -:: RE milf tourist [nobr] - -<<set $nextButton = "Continue", $nextLink = "RIE Eligibility Check", $returnTo = "RIE Eligibility Check">> - -<<set _milfed = $slaveIndices[$milfSlaveID]>> -<<set _milfSlave = $slaves[_milfed]>> -<<run Enunciate(_milfSlave)>> - -<<set _slave = GenerateNewSlave("XX", {minAge: 36, maxAge: 42, ageOverridesPedoMode: 1, race: "nonslave", disableDisability: 1})>> -<<set _slave.origin = "$He came to your arcology as a tourist and found $himself enslaved.">> -<<set _slave.devotion = random(-70,-55)>> -<<set _slave.trust = random(-45,-25)>> -<<run setHealth(_slave, jsRandom(10, 20), undefined, undefined, undefined, 5)>> -<<set _slave.vagina++>> -<<set _slave.hips = 2>> -<<set _slave.butt = random(4,6)>> -<<set _slave.boobs = 100*random(10,18)>> -<<set _slave.weight = random(60,140)>> -<<set _slave.behavioralQuirk = "none">> -<<set _slave.sexualQuirk = "none">> -<<set _slave.canRecruit = 0>> -<<set _slave.clothes = "nice business attire">> - -<span id="art-frame"> - /* 000-250-006 */ - <<if $seeImages == 1>> - <div class="imageColumn"> - <div class="imageRef medImg"> - <<SlaveArt _slave 2 0>> - </div> - <div class="imageRef medImg"> - <<SlaveArt _milfSlave 2 0>> - </div> - </div> - <</if>> - /* 000-250-006 */ -</span> - -<<setLocalPronouns _milfSlave>> -<<setLocalPronouns _slave 2>> -<<setAssistantPronouns>> - -<<if $assistant.personality == 1>> - <<= capFirstChar($assistant.name)>>'s - <<if $assistant.appearance == "normal">> - symbol - <<else>> - $assistant.appearance avatar - <</if>> - appears on your desk in the middle of the day. "Something unusual for you, <<= properTitle()>>," _heA says. "_milfSlave.slaveName is out doing public service. A tourist from the old world accosted $him. _milfSlave.slaveName thought _he2 was a rich citizen who wanted to fuck $him, but it turns out _he2 just wanted a tour guide. It was a reasonable mistake; _he2 seems wealthy. $He has been showing _him2 around for the last half hour. Now _he2's asked $him if _he2 can meet you." _HeA displays a video feed showing _milfSlave.slaveName standing with the tourist in question out on the main plaza. _He2's just into middle age, and extremely plush, wearing Capri pants over _his2 motherly hips and a cashmere sweater that understates _his2 generous bust. _He2's blushing as _he2 asks your slave a discreet question about public sex in the arcology, brought on by the sight of a couple of citizens spitroasting a slave. Your personal assistant's avatar - <<switch $assistant.appearance>> - <<case "monstergirl">> - bares _hisA fangs and makes pinching gestures at nipple height. - <<case "shemale">> - gives a wolf whistle and makes exaggerated gestures over _hisA own boobs. - <<case "amazon">> - brandishes a club suggestively. - <<case "businesswoman">> - looks the tourist up and down over the tops of _hisA glasses. - <<case "schoolgirl">> - stares openly at the tourist's ass. - <<case "fairy" "pregnant fairy">> - zips around the tourist, giving _him2 a good look-over. - <<case "hypergoddess" "goddess">> - eyes _his2 fertile hips. - <<case "loli" "preggololi">> - stares longingly at _his2 huge tits. - <<case "angel">> - blushes at the sight of _his2 obvious curves. - <<case "cherub">> - makes exaggerated movements over _hisA own tits. - <<case "incubus">> - is sporting an absolutely enormous erection. _HeA seems to be enjoying the show. - <<case "succubus">> - turns to face you; _hisA breasts huge armfuls, butt jiggling non-stop and a pair of hips to rival any cow. "My curves are better." - <<case "imp">> - makes pinching gestures at nipple height then turns and slaps _hisA own ass. - <<case "witch">> - blushes at the sight of those lovely curves. - <<case "ERROR_1606_APPEARANCE_FILE_CORRUPT">> - swells _himselfA to resemble _his2 figure before twisting _hisA arm into a cock and ramming it straight up _hisA cunt. - <<default>> - reforms into an exaggerated female form before going back to _hisA normal symbol shape. - <</switch>> -<<else>> - <<= capFirstChar($assistant.name)>> gets your attention the middle of the day. "A minor matter for you, <<= properTitle()>>," _heA says. "_milfSlave.slaveName is currently performing public service. A tourist from the old world accosted $him. _milfSlave.slaveName thought _he2 was a rich citizen who wanted to have sex with $him, but it seems _he2 just wanted a tour guide. It was a reasonable mistake; the tourist appears wealthy. $He has been acting as _his2 guide for the last half hour. The tourist has asked $him if _he2 can meet you." _HeA displays a video feed showing _milfSlave.slaveName standing with the tourist in question out on the main plaza. _He2's just into middle age, and extremely plush, wearing Capri pants over _his2 motherly hips and a cashmere sweater that understates _his2 generous bust. _He2's blushing as _he2 asks your slave a discreet question about public sex in the arcology, brought on by the sight of a couple of citizens spitroasting a slave. -<</if>> - -<br><br> - -<span id="result"> -<<link "Decline politely">> - <<replace "#result">> - <<setSpokenLocalPronouns _milfSlave _slave>> - You have $assistant.name instruct _milfSlave.slaveName to pass on your regrets, and add a message for _milfSlave.slaveName expressing confidence in $him to represent you and the arcology perfectly well without you. $He's @@.mediumaquamarine;affirmed@@ by your trust in $him. "<<Master>>," $he reports the next time you see $him, "that touri<<s>>t wa<<s>> really nice. Al<<s>>o, I got _him2 to have <<s>>e<<x>> with me, after all. <<He 2>> wa<<s>> all he<<s>>itant and blu<<sh>>y about doing it in public, but <<he 2>> got better after the fir<<s>>t time I ate _him2 out." $He looks pleased with $himself. "I bet <<he 2>> @@.green;tell<<s>> all <<his 2>> friend<<s>>@@ back home how much fun it i<<s>> here." - <<run repX(500, "event")>> - <<set $slaves[_milfed].trust += 4, $slaves[_milfed].counter.oral++>> - <<set $oralTotal++>> - <</replace>> -<</link>> -<br><<link "Share some Free Cities life with _him2">> - <<replace "#result">> - <<run Enunciate(_slave)>> - You have _milfSlave.slaveName bring the tourist up to meet you. _He2's full of questions about what it's like to be an arcology owner, and you finally tell _him2 that you can give _him2 a pretty good idea. Eagerly, _he2 asks you how, and you point at _milfSlave.slaveName, telling the tourist _he2 ought to bend the slave over the couch if _he2 wants to know what it's really like to be an oversexed oligarch. "I'm, um, not really a le<<s>>bian," the tourist responds hesitantly. - <<run Enunciate(_milfSlave)>> - <<if _milfSlave.dick > 0>> - "You don't have to be," $he purrs. "I have a cock." $He slides in, just close enough to prove it. "Plea<<s>>e, - <<else>> - "Having <<s>>e<<x>> with <<s>>lave<<s>> doe<<s>> not make you a le<<s>>bian," $he purrs. "It'<<s>> different here. Plea<<s>>e, - <</if>> - fuck me. It'll be fun!" The tourist turns to stare at _him2, and _he2 offers just the right kind of plaintive expression. "O-okay," the tourist says in a tiny voice, and _milfSlave.slaveName giggles, hugging _him2 from behind. $He cups one of the tourist's breasts, and snakes $his other hand down the front of _his2 pants. "Here!?" the tourist gasps, staring straight at you and blushing even harder. You tell _him2 that that's how you do things in the Free Cities: enjoying a slave is nothing to be ashamed of. _He2 looks doubtful, but _he2 doesn't try to escape from _milfSlave.slaveName's roving hand<<if hasBothArms(_milfSlave)>>s<</if>>, either. Your presence continues to bother _him2 until _milfSlave.slaveName distracts _him2 by getting _him2 to cuddle on the couch and make out, providing enough of a distraction that _he2 gets over _his2 inhibitions and orgasms rather immodestly. - <br><br> - You offer _him2 some liquid courage as _he2 recovers, but _he2's rapidly getting over _his2 hesitation. As the alcohol suffuses _him2, _he2 starts stealing glances at _milfSlave.slaveName, who for $his part is being as seductive as humanly possible. Finally, the tourist mouths 'fuck it' silently, reaches over, and openly gropes the slave's ass. _milfSlave.slaveName giggles and shifts lewdly, ensuring that the tourist's hand makes a thorough tour of everything the slave has. The tourist tentatively sinks a couple of fingers into $him, and the slave shamelessly slides $himself onto the invading digits, begging to be fucked. You make a party of it, with the various slaves who come and go over the course of the evening treated to the sight of $him getting fucked by the tourist. _He2 drunkenly promises you to @@.green;tell all _his2 friends@@ how awesome your arcology is at one point, though _he2 has to take _his2 mouth off one of _milfSlave.slaveName's nipples to do so. - <<set $slaves[_milfed].trust += 4, $slaves[_milfed].counter.oral += 3, $slaves[_milfed].counter.anal += 3>> - <<set $oralTotal += 3, $analTotal += 3>> - <<run repX(500, "event")>> - <<set $desc = "a thank-you note from a MILF tourist whom you made feel welcome in the arcology">> - <<set $trinkets.push($desc)>> - <</replace>> -<</link>> -<br><<link "Encourage _him2 to enjoy the slave with your compliments">> - <<replace "#result">> - <<run Enunciate(_slave)>> - You have _milfSlave.slaveName bring the tourist up to meet you, and exchange some minor pleasantries. You tell _him2 that if _he2 really wants to experience Free Cities life, though, _he2 really should enjoy _milfSlave.slaveName, pointing at the slave hovering behind _him2. _He2 blushes furiously, but before _he2 can stammer a refusal, the slave whispers something into _his2 ear. "I'm, um, not really a le<<s>>bian," the tourist responds hesitantly. - <<run Enunciate(_milfSlave)>> - <<if _milfSlave.dick > 0>> - "You don't have to be," $he purrs. "I have a cock." $He slides in, just close enough to prove it. "Plea<<s>>e, - <<else>> - "Having <<s>>e<<x>> with <<s>>lave<<s>> doe<<s>> not make you a le<<s>>bian," $he purrs. "It'<<s>> different here. Plea<<s>>e, - <</if>> - give me a try." The tourist turns to stare at $him, and _he2 offers just the right kind of plaintive expression. "O-okay," the tourist says in a tiny voice, and _milfSlave.slaveName giggles, hugging _him2 from behind. $He takes the tourist's hand, and they leave your office together. - <br><br> - <<setSpokenLocalPronouns _milfSlave _slave>> - "<<Master>>," $he reports the next time you see $him, "that touri<<s>>t was really nice. Al<<s>>o, I got _him2 to have <<s>>e<<x>> with me, after all. <<He 2>> wa<<s>> going to take me back to <<his 2>> hotel but I got _him2 to do me on the way. <<He 2>> wa<<s>> all he<<s>>itant and blu<<sh>>y about doing it in public, but <<he 2>> got better after the fir<<s>>t time I ate _him2 out." $He looks pleased with $himself. "I bet <<he 2>> @@.green;tell<<s>> all <<his 2>> friend<<s>>@@ back home how much fun it i<<s>> here." - <<set $slaves[_milfed].trust += 4, $slaves[_milfed].counter.oral++>> - <<set $oralTotal++>> - <<run repX(500, "event")>> - <<set $desc = "a thank-you note from a MILF tourist whom you made feel welcome in the arcology">> - <<set $trinkets.push($desc)>> - <</replace>> -<</link>> -<<if $cash > 20000>> - <br><<link "Enslave _him2">> - <<set _slave.clothes = "no clothing">> - <<replace "#art-frame">> - /* 000-250-006 */ - <<if $seeImages == 1>> - <div class="imageColumn"> - <div class="imageRef medImg"> - <<SlaveArt _slave 2 0>> - </div> - <div class="imageRef medImg"> - <<SlaveArt _milfSlave 2 0>> - </div> - </div> - <</if>> - /* 000-250-006 */ - <</replace>> - <<replace "#result">> - <<run Enunciate(_slave)>> - When your new slave comes to, _his2 weight is hanging from _his2 wrists, bound over _his2 head. _He2's not exactly thin, making the position uncomfortable for _his2 arms, so _he2 groggily stands, finding _himself2 in a pool of light in the middle of a cell. _He2's nursing a tremendous hangover, and though _he2 does not realize it, _he2's drugged. You're present, though not visible, witnessing _his2 first conscious moment of slavery from your desk. Realization is slow. _He2's no innocent, so _he2 recognizes the sensations of waking up the morning after a night of drinking interspersed with vigorous vaginal, oral, and anal intercourse, but _he2 does not remember the specifics. After a few minutes, _he2 understands that no one is coming, and speaks up hesitantly: "I<<s>> anyone there?" Getting no immediate answer, _he2 slumps against _his2 wrist restraints again, and begins to cry to _himself2. "W-why would a-anyone do thi<<s>>." - <br> - <<run cashX(-20000, "event", _slave)>> - <<includeDOM App.UI.newSlaveIntro(_slave)>> - <</replace>> - <</link>> //This will require an unprofitable <<print cashFormat(20000)>>, since _he2 is wealthy and obfuscating _his2 fate will require considerable spending// -<<else>> - //You cannot afford the <<print cashFormat(20000)>> enslaving _him2 would require, since _he2 is wealthy and obfuscating _his2 fate would necessitate considerable spending// -<</if>> -</span> diff --git a/src/uncategorized/reRebels.tw b/src/uncategorized/reRebels.tw deleted file mode 100644 index 4145ee85b3c66e5532bdda1794f261e8b37cd869..0000000000000000000000000000000000000000 --- a/src/uncategorized/reRebels.tw +++ /dev/null @@ -1,115 +0,0 @@ -:: RE rebels [nobr] - -<<set $nextButton = "Continue">> -<<set $nextLink = "RIE Eligibility Check">> - -<<set _i = $slaveIndices[$rebelSlaves[0]]>> -<<set _j = $slaveIndices[$rebelSlaves[1]]>> -<<setLocalPronouns $slaves[_i]>> -<<setLocalPronouns $slaves[_j] 2>> - -<<set _clothesTemp = $slaves[_i].clothes, $slaves[_i].clothes = "no clothing">> -<<set _clothesTemp2 = $slaves[_j].clothes, $slaves[_j].clothes = "no clothing">> -<span id="art-frame"> -/* 000-250-006 */ -<<if $seeImages == 1>> - <div class="imageColumn"> - <div class="imageRef medImg"> - <<SlaveArt $slaves[_i] 2 0>> - </div> - <div class="imageRef medImg"> - <<SlaveArt $slaves[_j] 2 0>> - </div> - </div> -<</if>> -/* 000-250-006 */ -</span> -<<set $slaves[_i].clothes = _clothesTemp>> -<<set $slaves[_j].clothes = _clothesTemp2>> - -You have a rebel problem. <<= App.UI.slaveDescriptionDialog($slaves[_i])>> and <<= App.UI.slaveDescriptionDialog($slaves[_j])>> are both unbroken, and they seem to draw strength from each other. They're discreet about it, but the arcology's always-vigilant systems occasionally catch them nodding to one another after one of them is punished, or giving each other quiet words of encouragement when they think no one is listening. This is extremely dangerous and should be addressed promptly. - -<br><br> - -<span id="result"> -<<link "Set them against each other, in public">> - <<replace "#result">> - You haul your little rebel bitches out in public, one by one, bound, with bags over their heads. They find themselves chained in a low position so their mouths are publicly available. Then, you whisper to each of them that whichever slut sucks off the most passersby gets to rest tomorrow — and whichever sucks least gets a beating. It doesn't take long before @@.hotpink;they forget their friendship@@ and try to outdo each other, and their desperate efforts @@.green; are certainly appreciated by the citizens getting free blowjobs.@@ It's childishly easy to declare the contest over when they happen to be tied, and announce that no one will be punished or rewarded. They hate you less and each other more. - <<set $slaves[_i].devotion += 4>> - <<set $slaves[_j].devotion += 4>> - <<set $slaves[_j].counter.oral += 6>> - <<set $slaves[_i].counter.oral += 6>> - <<set $oralTotal += 12>> - <<run repX(250, "event", $slaves[_i])>> - <<run repX(250, "event", $slaves[_j])>> - <</replace>> -<</link>> -<br><<link "Set them against each other, in private">> - <<replace "#result">> - Back in the old world, the saying went that turnabout was fair play. In the Free Cities, turnabout is often a cast-iron bitch. Whenever you have an idle moment, all week, you set them against one another in some degrading or painful contest. They are made to spank each other, with the slave who hits lightest getting a spanking from you. They are made to compete to see who can suck other slaves off quickest, with the loser forced to orally service the winner. So on, and so on; by the end of the week @@.gold;they forget their friendship@@ and try to outdo each other to avoid punishment. - <<set $slaves[_i].trust -= 5>> - <<set $slaves[_j].trust -= 5>> - <<set $slaves[_j].counter.oral += 6>> - <<set $slaves[_i].counter.oral += 6>> - <<set $oralTotal += 12>> - <</replace>> -<</link>> -<<if $seeExtreme == 1 && $slaves[_j].vagina > 0 && $slaves[_i].vagina > 0>> - <br><<link "Let them compete against each other to decide who lives">> - <<replace "#result">> - You haul your bound little rebel bitches into one of the deepest, most out of the way rooms of your penthouse with bags over their heads. When you pull them off, they are met with <<if canSee($slaves[_j]) && canSee($slaves[_i])>>the sight of <</if>>a gallows, complete with a pair of nooses. You haul them, one at a time up onto a stool and loop the rope around their necks. They scream and beg the whole time for you to reconsider, before turning on each other to try and avoid their fate. It won't be that easy for them. You hold up a pair of spoons and explain the rules of the game. They'll hold them in their pussies, and whoever loses their grip and drops it first, dies. - <br><br> - <<if $slaves[_i].vagina > 3>> - You start with $slaves[_i].slaveName and no sooner than you turn to $slaves[_j].slaveName do you hear the telltale clatter of the spoon hitting the floor. With a simple kick, the unfortunately loose $slaves[_i].slaveName is left struggling in the air. $slaves[_j].slaveName <<if canSee($slaves[_j])>>watches<<elseif canHear($slaves[_j])>>listens<<else>>stares blankly<</if>> in horror as the life drains from _his2 former accomplice. @@.gold;_He2 promises to never cross you again.@@ - <<set $slaves[_j].trust -= 20>> - <<run removeSlave($slaves[_i])>> - <<elseif $slaves[_j].vagina > 3>> - You start with $slaves[_i].slaveName before moving to $slaves[_j].slaveName as $he holds $his life between $his netherlips. Setting the spoon inside $slaves[_j].slaveName, you prepare to kick the stools out from under them; but the telltale clatter of the spoon hitting the floor saves you the trouble. With a simple kick, the unfortunately loose $slaves[_j].slaveName is left struggling in the air. $slaves[_i].slaveName <<if canSee($slaves[_i])>>watches<<elseif canHear($slaves[_i])>>listens<<else>>stares blankly<</if>> in horror as the life drains from $his former accomplice. @@.gold;$He promises to never cross you again.@@ - <<set $slaves[_i].trust -= 20>> - <<run removeSlave($slaves[_j])>> - <<elseif random(1,100) == 69>> - You start with $slaves[_i].slaveName before moving to $slaves[_j].slaveName as $he holds $his life between $his netherlips. Once both spoons are inserted, you sit back and watch them squirm at the cold metal in their most sensitive recesses. They are both desperate to survive and clamp down as hard as they can, but it can't go on forever as the sounds of a spoon clattering to the floor fills the room. Both slaves freeze as they realize the other has lost their grip on the silverware, uncertain of what comes next. You answer the question by knocking the stools out from under them, allowing them both to hang. They came into this together and they are going out together. - <<run removeSlave($slaves[_i])>> - <<run removeSlave($slaves[_j])>> - <<elseif $slaves[_i].vagina == $slaves[_j].vagina && random(1,100) > 50>> - You start with $slaves[_i].slaveName before moving to $slaves[_j].slaveName as $he holds $his life between $his netherlips. Once both spoons are inserted, you sit back and watch them squirm at the cold metal in their most sensitive recesses. They are both <<if $slaves[_i].vagina == 1>>quite tight, so it's no surprise when they put up a good show.<<else>>not the tightest slaves, so it's a surprise they manage to hold on as long as they do<</if>>. But it can't go on forever as the sound of the spoon clattering to the floor fills the room. - <<if random(1,100) <= 50>> - You kick the stool out from under $slaves[_j].slaveName and let _him2 hang. $slaves[_i].slaveName <<if canSee($slaves[_i])>>watches<<elseif canHear($slaves[_i])>>listens<<else>>stares blankly<</if>> in horror as the life drains from $his former accomplice, @@.gold;terrified that you'd so callously toy with their lives.@@ The ordeal @@.red;leaves $him behaving strangely.@@ - <<set $slaves[_i].trust -= -20, $slaves[_i].behavioralFlaw = "odd">> - <<run removeSlave($slaves[_j])>> - <<else>> - You kick the stool out from under $slaves[_i].slaveName and let $him hang. $slaves[_j].slaveName <<if canSee($slaves[_j])>>watches<<elseif canHear($slaves[_j])>>listens<<else>>stares blankly<</if>> in horror as the life drains from _his2 former accomplice, @@.gold;terrified that you'd so callously toy with their lives.@@ The ordeal @@.red;leaves _him2 behaving strangely.@@ - <<set $slaves[_j].trust -= -20, $slaves[_j].behavioralFlaw = "odd">> - <<run removeSlave($slaves[_i])>> - <</if>> - <<elseif $slaves[_j].vagina > $slaves[_i].vagina && random(1,100) > 50>> - You start with $slaves[_i].slaveName before moving to $slaves[_j].slaveName as $he holds $his life between $his netherlips. Once both spoons are inserted, you sit back and watch them squirm at the cold metal in their most sensitive recesses. $slaves[_i].slaveName is the clear favorite in this game, but the looser $slaves[_j].slaveName refuses to give in, using _his2 experience to clamp down as hard as _he2 can. But it can't go on forever as the sound of the spoon clattering to the floor fills the room. - <<if random(1,100) <= 90>> - You kick the stool out from under $slaves[_j].slaveName and let _him2 hang. $slaves[_i].slaveName <<if canSee($slaves[_i])>>watches<<elseif canHear($slaves[_i])>>listens<<else>>stares blankly<</if>> in horror as the life drains from $his former accomplice, @@.gold;terrified that you'd so callously toy with their lives.@@ The ordeal @@.red;leaves $him behaving strangely.@@ - <<set $slaves[_i].trust -= -20, $slaves[_i].behavioralFlaw = "odd">> - <<run removeSlave($slaves[_j])>> - <<else>> - You kick the stool out from under $slaves[_i].slaveName and let $him hang. $slaves[_j].slaveName <<if canSee($slaves[_j])>>watches<<elseif canHear($slaves[_j])>>listens<<else>>stares blankly<</if>> in horror as the life drains from _his2 former accomplice, @@.gold;terrified that you'd so callously toy with their lives.@@ The ordeal @@.red;leaves _him2 behaving strangely.@@ <<if $slaves[_j].vagina >= 3>>You can't say you expected this outcome, but it was amusing all the same to discover the blown out whore has some talent<<else>>You're glad no bets were riding on this<</if>>. - <<set $slaves[_j].trust -= -20, $slaves[_j].behavioralFlaw = "odd">> - <<run removeSlave($slaves[_i])>> - <</if>> - <<else>> - You start with $slaves[_i].slaveName before moving to $slaves[_j].slaveName as $he holds $his life between $his netherlips. Once both spoons are inserted, you sit back and watch them squirm at the cold metal in their most sensitive recesses. In a show of underhandedness, $slaves[_j].slaveName kicks $slaves[_i].slaveName, knocking $him off balance and sending $him hanging. $slaves[_j].slaveName <<if canSee($slaves[_j])>>watches<<elseif canHear($slaves[_j])>>listens<<else>>stares blankly<</if>> as the life drains from _his2 accomplice, @@.gold;horrified at what _he2 just did.@@ The ordeal @@.red;leaves _him2 behaving strangely.@@ - <<set $slaves[_j].trust = -100, $slaves[_j].behavioralFlaw = "odd">> - <<run removeSlave($slaves[_i])>> - <</if>> - <</replace>> - <</link>> -<</if>> -<<if $arcade > 0>> - <br><<link "Sentence them to a month in the arcade">> - <<replace "#result">> - They scream and beg when they realize what their punishment is to be, but you are obdurate. Each tries to inform on the other to avoid such a fate, but to no avail. After they're properly confined, the only sign of their discomfiture is a slight movement of their butts as they wriggle desperately against their restraints. - <<= assignJob($slaves[_j], "be confined in the arcade")>> - <<set $slaves[_j].sentence = 4>> - <<= assignJob($slaves[_i], "be confined in the arcade")>> - <<set $slaves[_i].sentence = 4>> - <</replace>> - <</link>> -<</if>> -</span>