diff --git a/src/events/RESS/obedientBitchy.js b/src/events/RESS/obedientBitchy.js index 6f609f04898ffbc7773431831d6e3fdb9f5c1174..1b2f87e24bd366fc1a625c1576e6dc7d12623fae 100644 --- a/src/events/RESS/obedientBitchy.js +++ b/src/events/RESS/obedientBitchy.js @@ -34,7 +34,13 @@ App.Events.RESSObedientBitchy = class RESSObedientBitchy extends App.Events.Base let t = []; t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave)); - t.push(`is a decent slave, pretty well broken to your will and generally obedient. However, ${he} retains a cutting tongue. Though ${he}'s learned to ${his} considerable cost not to direct ${his} cheek at you, ${he} still insults your other slaves, and worse, will be sarcastic to members of the public ${he} encounters. You've worked on it, but it remains unsolved. Today, however, ${he} crossed the line. You were doing business in your office with a respected female slave drug wholesaler. The woman is in her late forties, and though she's something of a plastic surgery addict she has permitted her hair to go a becoming steel grey. Passing your office, ${eventSlave.slaveName} audibly commented on how old she looked to another slave. Anger flashes in the businesswoman's eyes.`); + t.push(`is a decent slave, pretty well broken to your will and generally obedient. However, ${he} retains a cutting tongue. Though ${he}'s learned to ${his} considerable cost not to direct ${his} cheek at you, ${he} still insults your other slaves, and worse, will be sarcastic to members of the public ${he} encounters. You've worked on it, but it remains unsolved. Today, however, ${he} crossed the line. You were doing business in your office with a respected female slave drug wholesaler. The woman is in her late forties, and though she's something of a plastic surgery addict she has permitted her hair to go a becoming steel grey. Passing your office, ${eventSlave.slaveName} audibly commented on how old she looked to `); + if (canStand(eventSlave)) { + t.push(`another slave.`); + } else { + t.push(`${his} aid.`); + } + t.push(`Anger flashes in the businesswoman's eyes.`); App.Events.addParagraph(node, t); t = []; @@ -80,7 +86,7 @@ App.Events.RESSObedientBitchy = class RESSObedientBitchy extends App.Events.Base 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)) { + if (canMove(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;`); diff --git a/src/events/RESS/obedientIdiot.js b/src/events/RESS/obedientIdiot.js index 53d51ff95da83fbb0271f1ae11c996c95bad78ce..a6a24c1c93b7b0d690da70570f9bfd4a7e1a6bad 100644 --- a/src/events/RESS/obedientIdiot.js +++ b/src/events/RESS/obedientIdiot.js @@ -9,6 +9,7 @@ App.Events.RESSObedientIdiot = class RESSObedientIdiot extends App.Events.BaseEv return [ [ // single event slave s => s.fetish !== "mindbroken", + canMove, hasAnyArms, s => s.intelligence + s.intelligenceImplant < -50, s => s.devotion <= 50, @@ -21,10 +22,10 @@ App.Events.RESSObedientIdiot = class RESSObedientIdiot extends App.Events.BaseEv /** @type {Array<App.Entity.SlaveState>} */ let [eventSlave] = this.actors.map(a => getSlave(a)); const { - He, he, His, his, him, girl + He, he, His, his, him, himself, girl } = getPronouns(eventSlave); const {HeA, heA} = getPronouns(assistant.pronouns().main).appendSuffix('A'); - const {S, s, say, title: Master} = getEnunciation(eventSlave); + const {say, title: Master} = getEnunciation(eventSlave); const belly = bellyAdjective(eventSlave); /** @type {App.Entity.PlayerState} */ @@ -72,7 +73,8 @@ App.Events.RESSObedientIdiot = class RESSObedientIdiot extends App.Events.BaseEv 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(`${He} mumbles a hesitant question:`); + t.push(Spoken(eventSlave, `"${eventSlave.rudeTitle === 1 ? PoliteRudeTitle(eventSlave) : Master}, am I a good slave?"`)); } 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.`); @@ -92,13 +94,15 @@ App.Events.RESSObedientIdiot = class RESSObedientIdiot extends App.Events.BaseEv } 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."`); + t.push(`${He} ${say}s sadly,`); + t.push(Spoken(eventSlave, `"$Sorry ${eventSlave.rudeTitle === 1 ? PoliteRudeTitle(eventSlave) : Master}. I'm trying to be a good slave 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.`); + t.push(Spoken(eventSlave, `"Really, ${eventSlave.rudeTitle === 1 ? PoliteRudeTitle(eventSlave) : Master}?"`)); + t.push(`${he} asks hopefully.`); } else { if (hasBothArms(eventSlave)) { t.push(`${His} hands awkwardly ask, "Really?"`); @@ -124,11 +128,11 @@ App.Events.RESSObedientIdiot = class RESSObedientIdiot extends App.Events.BaseEv 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.`); + 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.`); + 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 ${himself}, 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;