diff --git a/src/Mods/Catmod/events/CMRESS/annoyingcat.js b/src/Mods/Catmod/events/CMRESS/annoyingcat.js index 1071bc486ab833503ace5fb30e0603b4d0038b68..73c9f2f4196652149dc61d9e6054d80462bc03e3 100644 --- a/src/Mods/Catmod/events/CMRESS/annoyingcat.js +++ b/src/Mods/Catmod/events/CMRESS/annoyingcat.js @@ -21,7 +21,7 @@ App.Events.CMRESSAnnoyingCat = class CMRESSAnnoyingCat extends App.Events.BaseEv const { He, he, his, him, girl } = getPronouns(eventSlave); - const {s, title} = getEnunciation(eventSlave); + const {title} = getEnunciation(eventSlave); /** @type {App.Entity.PlayerState} */ let PC = V.PC; @@ -40,7 +40,7 @@ App.Events.CMRESSAnnoyingCat = class CMRESSAnnoyingCat extends App.Events.BaseEv App.Events.addResponses(node, [ canDoAnal(eventSlave) - ? new App.Events.Result(`Roughly fuck ${his} ass to shut ${him} up`, annoyedfuck, analVirginWarning()) + ? new App.Events.Result(`Roughly fuck ${his} ass to shut ${him} up`, annoyedFuck, analVirginWarning()) : new App.Events.Result(), new App.Events.Result(`Tell ${him} to stop being such a nuisance`, stopit), new App.Events.Result(`Ignore ${him}`, ignore), @@ -52,7 +52,7 @@ App.Events.CMRESSAnnoyingCat = class CMRESSAnnoyingCat extends App.Events.BaseEv } } - function annoyedfuck() { + function annoyedFuck() { t = []; t.push(`As ${eventSlave.slaveName} meows at you, you order the irritating cat${girl} to turn around, drop ${his} bottoms, lift ${his} tail and spread ${his} cheeks. As though to make the command's intent even more obvious, you ${PC.dick !== 0 ? "pull your cock free from your pants" : "take a strapon and slide it up your legs"} as the furball look at you in surprise for a moment. Without a word of protest, the cat${girl} simply turns, pulls ${his} bottoms just under ${his} asscheeks, and lifts up ${his} tail to show you ${his}`); if (eventSlave.butt > 12) { @@ -85,7 +85,13 @@ App.Events.CMRESSAnnoyingCat = class CMRESSAnnoyingCat extends App.Events.BaseEv function stopit() { let t = []; - t.push(`You grab ${eventSlave.slaveName} by the hand and tell ${him} to stop being so goddamn annoying. ${He} cocks ${his} head at you, apparently genuinely confused, and then huffs out a loud exhale. ${canTalk(eventSlave) ? `"Uh, ${s}orry, ${title}, I wa${s}n't trying to be annoying or anything..." ${He} mewls,` : `${He} makes a second weird, apologetic sounding noise,`} then scurries off when you let ${him} go with ${his} <span class="trust dec">ears flat against ${his} head.</span>`); + t.push(`You grab ${eventSlave.slaveName} by the hand and tell ${him} to stop being so goddamn annoying. ${He} cocks ${his} head at you, apparently genuinely confused, and then huffs out a loud exhale.`); + if (canTalk(eventSlave)) { + t.push(Spoken(eventSlave, `"Uh, sorry, ${title}, I wasn't trying to be annoying or anything..." ${He} mewls,`)); + } else { + t.push(`${He} makes a second weird, apologetic sounding noise,`); + } + t.push(`then scurries off when you let ${him} go with ${his} <span class="trust dec">ears flat against ${his} head.</span>`); eventSlave.trust -= 3; return t; } diff --git a/src/Mods/Catmod/events/CMRESS/catPresent.js b/src/Mods/Catmod/events/CMRESS/catPresent.js index 77070bd7d514b619b8db01ca0cb3417defb526bf..b34b260f80960dd66f508dd6b3af47f43f4f7fd3 100644 --- a/src/Mods/Catmod/events/CMRESS/catPresent.js +++ b/src/Mods/Catmod/events/CMRESS/catPresent.js @@ -21,7 +21,7 @@ App.Events.CMRESSCatPresent = class CMRESSCatPresent extends App.Events.BaseEven const { He, he, his, him, himself, His, girl } = getPronouns(eventSlave); - const {s, title} = getEnunciation(eventSlave); + const {title} = getEnunciation(eventSlave); /** @type {App.Entity.PlayerState} */ let PC = V.PC; @@ -40,34 +40,83 @@ App.Events.CMRESSCatPresent = class CMRESSCatPresent extends App.Events.BaseEven t = []; if (catPresent === 0) { - t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, holding a bundle of credits in one of ${his} furry hands. ${He} proudly drops the small wad of cash on your desk, beaming up at you with a mouthful of feline fangs. ${canTalk(eventSlave) ? `"Look what I found, ${title}! Someone dropped all this, ${s}o now it's your${s}!"` : `${He} swishes ${his} tail from side to side, apparently waiting for you to take the mysterious money.`} There's maybe two hundred credits worth of small bills here. It looks more like ${he} lifted some poor guy's wallet than 'found' this on the ground.`); + t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, holding a bundle of credits in one of ${his} furry hands. ${He} proudly drops the small wad of cash on your desk, beaming up at you with a mouthful of feline fangs.`); + if (canTalk(eventSlave)) { + t.push(Spoken(eventSlave, `"Look what I found, ${title}! Someone dropped all this, so now it's yours!"`)); + } else { + t.push(`${He} swishes ${his} tail from side to side, apparently waiting for you to take the mysterious money.`); + } + t.push(`There's maybe two hundred credits worth of small bills here. It looks more like ${he} lifted some poor guy's wallet than 'found' this on the ground.`); presentType = "nice"; } else if (catPresent === 1) { - t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, holding a small, fluffy, brightly-colored toy in ${his} mouth. The cat${girl} confidently walks up to your desk as though about to discuss some important matter of business, then opens ${his} mouth to drop it right in front of you, slick with ${his} drool. ${canTalk(eventSlave) ? `"Thi${s} i${s} my favorite toy, ${title}! So I wanted it to be your favorite toy too!"` : `${He} stares at you playfully and wiggles ${his} butt from side to side behind ${him}.`} You stare blankly for a moment at the fully-grown, ostensibly intelligent cat${girl} asking you to play with a drooled-on cat toy.`); + t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, holding a small, fluffy, brightly-colored toy in ${his} mouth. The cat${girl} confidently walks up to your desk as though about to discuss some important matter of business, then opens ${his} mouth to drop it right in front of you, slick with ${his} drool.`); + if (canTalk(eventSlave)) { + t.push(Spoken(eventSlave, `"This is my favorite toy, ${title}! So I wanted it to be your favorite toy too!"`)); + } else { + t.push(`${He} stares at you playfully and wiggles ${his} butt from side to side behind ${him}.`); + } + t.push(`You stare blankly for a moment at the fully-grown, ostensibly intelligent cat${girl} asking you to play with a drooled-on cat toy.`); presentType = "junk"; } else if (catPresent === 2) { - t.push(`As you sit working at your desk, ${eventSlave.slaveName} practically bursts in, the ${eventSlave.skin} fur around ${his} mouth streaked red with blood and carrying what looks like a dead rat in ${his} mouth. ${He} walks right up to your desk and opens ${his} mouth to show off equally bloodstained fangs, dropping the dead rodent onto your desk with a wet plop of blood and saliva, where it proceeds to bleed out in the middle of the desk. ${canTalk(eventSlave) ? `"Look, ${title}! I ${s}aw this gros${s} rat running around the garden ${s}o I killed it. Are you proud of me?"` : `${He} looks enormously proud of ${himself} for killing a rodent that's smaller than ${his} fist and dropping the mutilated body in front of you.`}`); + t.push(`As you sit working at your desk, ${eventSlave.slaveName} practically bursts in, the ${eventSlave.skin} fur around ${his} mouth streaked red with blood and carrying what looks like a dead rat in ${his} mouth. ${He} walks right up to your desk and opens ${his} mouth to show off equally bloodstained fangs, dropping the dead rodent onto your desk with a wet plop of blood and saliva, where it proceeds to bleed out in the middle of the desk.`); + if (canTalk(eventSlave)) { + t.push(Spoken(eventSlave, `"Look, ${title}! I saw this gross rat running around the garden so I killed it. Are you proud of me?"`)); + } else { + t.push(`${He} looks enormously proud of ${himself} for killing a rodent that's smaller than ${his} fist and dropping the mutilated body in front of you.`); + } presentType = "dead"; } else if (catPresent === 3) { t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, carrying something indistinguishable in ${his} mouth. As ${he} walks over to your desk, ${he} opens ${his} mouth and drops it out with a wet plop in front of you, at which point you realize that ${he} has just dropped a dead rat on your desk which is now creating a red puddle around itself. ${eventSlave.slaveName} just smiles ear-to-ear at you with what seems like genuine pride and a mouth full of sharp fangs, which you now realize are streaked with blood.`); presentType = "dead"; } else if (catPresent === 4) { - t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, carrying something indistinguishable in ${his} mouth. As ${he} walks over to your desk, ${he} opens ${his} mouth and drops it out with a wet plop in front of you, at which point you realize that ${he} has just dropped a dead rat on your desk - or at least, you assume that the furry thing bleeding out is dead, until it twitches its leg, scampers up, and leaps off your desk, attempting to scurry out of the room. ${eventSlave.slaveName}'s stilted eyes go wide and ${his} tail perks up, and before you can even issue an order ${he}'s leaped atop the fleeing, injured rat, pinning the tiny thing down and sinking ${his} sharp fangs into it without a moment of hesitation. ${He} shakes his head violently from side to side, apparently trying to snap the vermin's spine, then stands up, walks back to you, opens ${his} mouth and drops the disgusting, bleeding, mutilated rat corpse on your desk. Again. ${canTalk(eventSlave) ? `"Did you ${s}ee me kill it, ${title}!? I did good, right?"` : `${He} smiles ear to ear at you, waiting for you to take the 'present'.`}`); + t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, carrying something indistinguishable in ${his} mouth. As ${he} walks over to your desk, ${he} opens ${his} mouth and drops it out with a wet plop in front of you, at which point you realize that ${he} has just dropped a dead rat on your desk - or at least, you assume that the furry thing bleeding out is dead, until it twitches its leg, scampers up, and leaps off your desk, attempting to scurry out of the room. ${eventSlave.slaveName}'s stilted eyes go wide and ${his} tail perks up, and before you can even issue an order ${he}'s leaped atop the fleeing, injured rat, pinning the tiny thing down and sinking ${his} sharp fangs into it without a moment of hesitation. ${He} shakes his head violently from side to side, apparently trying to snap the vermin's spine, then stands up, walks back to you, opens ${his} mouth and drops the disgusting, bleeding, mutilated rat corpse on your desk. Again.`); + if (canTalk(eventSlave)) { + t.push(Spoken(eventSlave, `"Did you see me kill it, ${title}!? I did good, right?"`)); + } else { + t.push(`${He} smiles ear to ear at you, waiting for you to take the 'present'.`); + } presentType = "dead"; } else if (catPresent === 5) { - t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, carrying something indistinguishable in ${his} mouth. As ${he} walks over to your desk, ${he} opens ${his} mouth and drops it out with a wet plop in front of you, at which point you realize that ${he} has just dropped a bundle of small bills which ${he} was, for some inexplicable reason, carrying around in ${his} mouth. They are drenched with ${his} saliva and completely ruined. You look at the pile of ruined currency and ask ${him} why ${he} didn't just carry it to you in ${his} hands. ${canTalk(eventSlave) ? `${eventSlave.slaveName} blinks twice. "Oh - um, yeah, I gues${s} I probably ${s}hould have done that, ${title}. Um- ${s}orry."` : `${He} looks down at the pile of ruined money, looks back up at you, and then blinks sheepishly.`}`); + t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, carrying something indistinguishable in ${his} mouth. As ${he} walks over to your desk, ${he} opens ${his} mouth and drops it out with a wet plop in front of you, at which point you realize that ${he} has just dropped a bundle of small bills which ${he} was, for some inexplicable reason, carrying around in ${his} mouth. They are drenched with ${his} saliva and completely ruined. You look at the pile of ruined currency and ask ${him} why ${he} didn't just carry it to you in ${his} hands.`); + if (canTalk(eventSlave)) { + t.push( + `${eventSlave.slaveName} blinks twice.`, + Spoken(eventSlave, `"Oh - um, yeah, I guess I probably should have done that, ${title}. Um- sorry."`)); + } else { + t.push(`${He} looks down at the pile of ruined money, looks back up at you, and then blinks sheepishly.`); + } presentType = "junk"; } else if (catPresent === 6) { - t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, holding something bright in one hand. ${He} walks right up to the desk and drops a small ball of brightly colored string in front of you, beaming wide enough to show of ${his} pearly white fangs. ${canTalk(eventSlave) ? `"Look at thi${s}, ${title}! You can bat it around and ${s}tuff! I brought it to you becau${s}e I thought you'd have fun playing with it!"` : `${He} stares at you playfully and wiggles ${his} butt from side to side behind ${him}.`}`); + t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, holding something bright in one hand. ${He} walks right up to the desk and drops a small ball of brightly colored string in front of you, beaming wide enough to show of ${his} pearly white fangs.`); + if (canTalk(eventSlave)) { + t.push(Spoken(eventSlave, `"Look at this, ${title}! You can bat it around and stuff! I brought it to you because I thought you'd have fun playing with it!"`)); + } else { + t.push(`${He} stares at you playfully and wiggles ${his} butt from side to side behind ${him}.`); + } presentType = "junk"; } else if (catPresent === 7) { - t.push(`As you sit working at your desk, ${eventSlave.slaveName} practically bursts in, the ${eventSlave.skin} fur around ${his} mouth streaked red with blood and carrying an entire dead rabbit in ${his} mouth, the dead thing almost as big as ${his} entire head and hanging limply from between ${his} fangs. ${He} nearly sprints over to your desk, looking excited beyond belief as ${he} spits the large rabbit out in front of you, where the corpse splats against your desk in a splash of saliva and blood that flicks some liquid against your face. ${He}'s nearly quivering with excitement and pride. ${canTalk(eventSlave) ? `"Look! Look! I killed a rabbit, ${title}!! A whole rabbit! I saw it out${s}ide and cha${s}ed it down ${s}o you could hang it up on your wall! Did I do good, ${title}?"` : `${He} looks absolutely overjoyed with ${himself} for having killed something bigger than a rat for once.`}`); + t.push(`As you sit working at your desk, ${eventSlave.slaveName} practically bursts in, the ${eventSlave.skin} fur around ${his} mouth streaked red with blood and carrying an entire dead rabbit in ${his} mouth, the dead thing almost as big as ${his} entire head and hanging limply from between ${his} fangs. ${He} nearly sprints over to your desk, looking excited beyond belief as ${he} spits the large rabbit out in front of you, where the corpse splats against your desk in a splash of saliva and blood that flicks some liquid against your face. ${He}'s nearly quivering with excitement and pride.`); + if (canTalk(eventSlave)) { + t.push(Spoken(eventSlave, `"Look! Look! I killed a rabbit, ${title}!! A whole rabbit! I saw it outside and chased it down so you could hang it up on your wall! Did I do good, ${title}?"`)); + } else { + t.push(`${He} looks absolutely overjoyed with ${himself} for having killed something bigger than a rat for once.`); + } presentType = "dead"; } else if (catPresent === 8) { - t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, holding something bright in one hand. ${He} walks right up to the desk and drops a shiny, gorgeous ring in front of you, beaming wide enough to show of ${his} pearly white fangs. This looks like a valuable piece of jewelry, easily worth a few thousand credits at least. You ask ${him} where ${he} got this as you examine the expensive thing. ${canTalk(eventSlave) ? `"I found it, ${title}! That mean${s} it'${s} your${s} now."` : `However, given that ${he} is totally mute, ${he} just stares back at you while smiling. You don't think you're going to get any answers there.`}`); + t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, holding something bright in one hand. ${He} walks right up to the desk and drops a shiny, gorgeous ring in front of you, beaming wide enough to show of ${his} pearly white fangs. This looks like a valuable piece of jewelry, easily worth a few thousand credits at least. You ask ${him} where ${he} got this as you examine the expensive thing.`); + if (canTalk(eventSlave)) { + t.push(Spoken(eventSlave, `"I found it, ${title}! That means it's yours now."`)); + } else { + t.push(`However, given that ${he} is totally mute, ${he} just stares back at you while smiling. You don't think you're going to get any answers there.`); + } presentType = "nice"; } else { - t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, holding something bright in one hand. ${He} walks right up to the desk and drops a lump of shiny metal in front of you, beaming wide enough to show of ${his} pearly white fangs, which glint almost as brightly as the metal. ${canTalk(eventSlave) ? `"Look what I found, ${title}! You can put it on your wall or ${s}omething. I${s}n't it pretty?"` : `${He} stares at you playfully and wiggles ${his} butt from side to side behind ${him}.`}`); + t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, holding something bright in one hand. ${He} walks right up to the desk and drops a lump of shiny metal in front of you, beaming wide enough to show of ${his} pearly white fangs, which glint almost as brightly as the metal.`); + if (canTalk(eventSlave)) { + t.push(Spoken(eventSlave, `"Look what I found, ${title}! You can put it on your wall or something. Isn't it pretty?"`)); + } else { + t.push(`${He} stares at you playfully and wiggles ${his} butt from side to side behind ${him}.`); + } presentType = "junk"; } App.Events.addParagraph(node, t); @@ -121,7 +170,16 @@ App.Events.CMRESSCatPresent = class CMRESSCatPresent extends App.Events.BaseEven function yes() { let t = []; if (catPresent === 0) { - t.push(`You take the <span class="green">wad of cash</span> as ${eventSlave.slaveName} smiles at you, thanking ${him} for bringing it. It's a relatively insignificant amount of money for someone as wealthy as you, although probably a significant sum to whatever poor sod lost it, but ${eventSlave.slaveName} swishes ${his} tail from side to side enthusiastically as you put the cash in your pocket. ${canTalk(eventSlave) ? `"Of cour${s}e, ${title}!" ${He} meows out,` : `${He} makes a satisfied purring noise,`} then leaves <span class="devotion inc">with ${his} ears twitching happily.</span>`); + t.push(`You take the <span class="green">wad of cash</span> as ${eventSlave.slaveName} smiles at you, thanking ${him} for bringing it. It's a relatively insignificant amount of money for someone as wealthy as you, although probably a significant sum to whatever poor sod lost it, but ${eventSlave.slaveName} swishes ${his} tail from side to side enthusiastically as you put the cash in your pocket.`); + if (canTalk(eventSlave)) { + t.push( + Spoken(eventSlave, `"Of course, ${title}!"`), + `${He} meows out,` + ); + } else { + t.push(`${He} makes a satisfied purring noise,`); + } + t.push(`then leaves <span class="devotion inc">with ${his} ears twitching happily.</span>`); cashX(200, "event", eventSlave); eventSlave.devotion += 2; } else if (catPresent === 8) { @@ -129,10 +187,28 @@ App.Events.CMRESSCatPresent = class CMRESSCatPresent extends App.Events.BaseEven cashX(2500, "event", eventSlave); eventSlave.devotion += 2; } else if (presentType === "junk") { - t.push(`You pick up the piece of junk, examine it for a few moments, then smile back at ${eventSlave.slaveName} and thank ${him} for bringing you something that ${he} clearly personally treasures. ${eventSlave.slaveName}'s furry face lights up as you say that you like ${his} little present, even though it's totally useless to you, and ${his} tail starts to <span class="devotion inc">swish from side to side happily behind ${him}.</span> ${canTalk(eventSlave) ? `"I'm ${s}o glad you like it, ${title}. I knew you would! I'm happy that you're my ${title}." ${He} says,` : `${He} makes a satisfied purring noise,`} then leaves you to file the small trinket away in one of your drawers.`); + t.push(`You pick up the piece of junk, examine it for a few moments, then smile back at ${eventSlave.slaveName} and thank ${him} for bringing you something that ${he} clearly personally treasures. ${eventSlave.slaveName}'s furry face lights up as you say that you like ${his} little present, even though it's totally useless to you, and ${his} tail starts to <span class="devotion inc">swish from side to side happily behind ${him}.</span>`); + if (canTalk(eventSlave)) { + t.push( + Spoken(eventSlave, `"I'm so glad you like it, ${title}. I knew you would! I'm happy that you're my ${title}."`), + `${He} says,` + ); + } else { + t.push(`${He} makes a satisfied purring noise,`); + } + t.push(`then leaves you to file the small trinket away in one of your drawers.`); eventSlave.devotion += 4; } else { - t.push(`You wince slightly as you pick up the dead, bleeding animal, pulling it off your desk before it can leak onto anything important. Even though you own ${eventSlave.slaveName} and have absolute power over ${him}, the look of anticipation and excitement on ${his} face is too much to resist, and you say that you're very proud of ${him} for doing such good hunting work. ${eventSlave.slaveName} beams a full mouth of bloody fangs at you, obviously <span class="devotion inc">overjoyed</span> at your praise. ${canTalk(eventSlave) ? `"I killed it for you, ${title}! I promi${s}e I won't let any gros${s} vermin dirty up the penthouse." ${He} mrows,` : `${He} makes a satisfied purring noise,`} then leaves you to quietly throw the dead animal into the nearby trashcan and call for another slave to clean up the blood.`); + t.push(`You wince slightly as you pick up the dead, bleeding animal, pulling it off your desk before it can leak onto anything important. Even though you own ${eventSlave.slaveName} and have absolute power over ${him}, the look of anticipation and excitement on ${his} face is too much to resist, and you say that you're very proud of ${him} for doing such good hunting work. ${eventSlave.slaveName} beams a full mouth of bloody fangs at you, obviously <span class="devotion inc">overjoyed</span> at your praise.`); + if (canTalk(eventSlave)) { + t.push( + Spoken(eventSlave, `"I killed it for you, ${title}! I promise I won't let any gross vermin dirty up the penthouse."`), + `${He} mrows,` + ); + } else { + t.push(`${He} makes a satisfied purring noise,`); + } + t.push(`then leaves you to quietly throw the dead animal into the nearby trashcan and call for another slave to clean up the blood.`); eventSlave.devotion += 6; } return t; @@ -141,12 +217,39 @@ App.Events.CMRESSCatPresent = class CMRESSCatPresent extends App.Events.BaseEven function no() { let t = []; if (presentType === "nice") { - t.push(`You push the 'found' offering away, shaking your head. You tell ${him} that it's a very nice offering to bring this to you, but then briefly explain that taking other people's money without giving them a choice is wrong, and that someone out there probably needs this more than you do anyway. ${eventSlave.slaveName} ${canTalk(eventSlave) ? `cocks ${his} head slightly. "How come taking people'${s} money without a choice is wrong but you en${s}lave lots of people then, ${title}?" Not wanting to get into an ethical debate with an overgrown housecat, you tell ${him} that it just is and to leave so you can get back to work. ${eventSlave.slaveName} gives you a puzzled look and then heads out.` : `${He} just makes a confused noise from the back of ${his} throat, then nods at you and heads out.`}`); + t.push(`You push the 'found' offering away, shaking your head. You tell ${him} that it's a very nice offering to bring this to you, but then briefly explain that taking other people's money without giving them a choice is wrong, and that someone out there probably needs this more than you do anyway. ${eventSlave.slaveName}`); + if (canTalk(eventSlave)) { + t.push( + `cocks ${his} head slightly.`, + Spoken(eventSlave, `"How come taking people's money without a choice is wrong but you enslave lots of people then, ${title}?"`), + `Not wanting to get into an ethical debate with an overgrown housecat, you tell ${him} that it just is and to leave so you can get back to work. ${eventSlave.slaveName} gives you a puzzled look and then heads out.` + ); + } else { + t.push(`${He} just makes a confused noise from the back of ${his} throat, then nods at you and heads out.`); + } } else if (presentType === "junk") { - t.push(`You push the piece of junk into the trashcan to the side of your desk with one hand, ignoring the <span class="devotion dec">dismayed</span> look that spreads across ${his} furry face as you do. You sternly tell ${him} to stop bothering you with useless junk and that have more important things to do than look at ${his} stupid cat toys and shiny rocks. ${canTalk(eventSlave) ? `"I'm - I-I'm ${s}orry, ${title}, I ju${s}t thought you'd like it..." ${He} weakly meows. You tell ${him} that you don't.` : `${He} makes a single, sad whimpering sound, all ${he}'s capable of given ${his} muteness.`} ${His} eyes look a little watery as ${he} leaves.`); + t.push(`You push the piece of junk into the trashcan to the side of your desk with one hand, ignoring the <span class="devotion dec">dismayed</span> look that spreads across ${his} furry face as you do. You sternly tell ${him} to stop bothering you with useless junk and that have more important things to do than look at ${his} stupid cat toys and shiny rocks.`); + if (canTalk(eventSlave)) { + t.push( + Spoken(eventSlave, `"I'm - I-I'm sorry, ${title}, I just thought you'd like it..."`), + `${He} weakly meows. You tell ${him} that you don't.` + ); + } else { + t.push(`${He} makes a single, sad whimpering sound, all ${he}'s capable of given ${his} muteness.`); + } + t.push(`${His} eyes look a little watery as ${he} leaves.`); eventSlave.devotion -= 4; } else { - t.push(`You pick the disgusting dead animal up with one hand and drop the corpse into the trashcan next to your desk. Once it's off your workspace, you proceed to sternly tell ${eventSlave.slaveName} that what ${he} just did is disgusting, unsanitary, and incredibly infantile, and that ${he} could have ruined something important by dropping a filthy corpse in the area where you conduct multinational business deals. ${canTalk(eventSlave) ? `"S-${s}orry, ${title}... I wa${s} ju${s}t... really proud of it, I gues${s}... I killed it for you..." ${He} weakly meows.` : `${He} makes a single, sad whimpering sound, all ${he}'s capable of given ${his} muteness.`} You tell ${him} to clean up the mess ${he} made on your desk, glaring at the overexcitable cat${girl}. ${His} eyes look a <span class="devotion dec">little watery</span> as ${he} leans over the surface and gets to cleaning off the blood.`); + t.push(`You pick the disgusting dead animal up with one hand and drop the corpse into the trashcan next to your desk. Once it's off your workspace, you proceed to sternly tell ${eventSlave.slaveName} that what ${he} just did is disgusting, unsanitary, and incredibly infantile, and that ${he} could have ruined something important by dropping a filthy corpse in the area where you conduct multinational business deals.`); + if (canTalk(eventSlave)) { + t.push( + Spoken(eventSlave, `"S-sorry, ${title}... I was just... really proud of it, I guess... I killed it for you..."`), + `${He} weakly meows.` + ); + } else { + t.push(`${He} makes a single, sad whimpering sound, all ${he}'s capable of given ${his} muteness.`); + } + t.push(`You tell ${him} to clean up the mess ${he} made on your desk, glaring at the overexcitable cat${girl}. ${His} eyes look a <span class="devotion dec">little watery</span> as ${he} leans over the surface and gets to cleaning off the blood.`); eventSlave.devotion -= 6; } return t; @@ -154,14 +257,36 @@ App.Events.CMRESSCatPresent = class CMRESSCatPresent extends App.Events.BaseEven function rabbit() { let t = []; - t.push(`You take a good look at the dead rabbit on your desk. For once, this thing actually looks kind of good. It's got two small puncture wounds just beneath its neck, but the corpse is almost totally intact, and it's pretty fat, too. With rabbit becoming an increasingly rare delicacy these days as desperate poachers violate the nature restrictions of old world governments too impotent to enforce them, you make up your mind to cook and eat this rare hunted treat. Placing your hands on the desk, you look back up at ${eventSlave.slaveName}, tell ${him} ${he}'s done an excellent job, and that you're going to have ${his} kill roasted and eaten. ${eventSlave.slaveName} practically quivers up and down with excitement at the praise, visibly excited that you're going to actually do something useful with ${his} present - and at the prospect of a real meal. After listening to ${him} gush your praises for a few minutes, you send ${him} out to get back to work. Later in the evening, the two of you enjoy delicious roast rabbit together, cooked with golden-brown crispy skin and a tender inside that leaves traces of juice running down both of your cheeks. ${canTalk(eventSlave) ? `"You're the <span class="devotion inc">be${s}t,</span> ${title}." ${He} mrows,` : `${He} stares <span class="devotion inc">happily</span> for a long time into your eyes as you eat,`} bloody juice running down into the fur around ${his} mouth for the second time today.`); + t.push(`You take a good look at the dead rabbit on your desk. For once, this thing actually looks kind of good. It's got two small puncture wounds just beneath its neck, but the corpse is almost totally intact, and it's pretty fat, too. With rabbit becoming an increasingly rare delicacy these days as desperate poachers violate the nature restrictions of old world governments too impotent to enforce them, you make up your mind to cook and eat this rare hunted treat. Placing your hands on the desk, you look back up at ${eventSlave.slaveName}, tell ${him} ${he}'s done an excellent job, and that you're going to have ${his} kill roasted and eaten. ${eventSlave.slaveName} practically quivers up and down with excitement at the praise, visibly excited that you're going to actually do something useful with ${his} present - and at the prospect of a real meal. After listening to ${him} gush your praises for a few minutes, you send ${him} out to get back to work. Later in the evening, the two of you enjoy delicious roast rabbit together, cooked with golden-brown crispy skin and a tender inside that leaves traces of juice running down both of your cheeks.`); + if (canTalk(eventSlave)) { + t.push( + Spoken(eventSlave, `"You're the`), + App.UI.DOM.makeElement("span", Spoken(eventSlave, "best,"), ["devotion", "inc"]), + Spoken(eventSlave, `${title}."`), + `${He} mrows,` + ); + } else { + t.push(`${He} stares <span class="devotion inc">happily</span> for a long time into your eyes as you eat,`); + } + t.push(`bloody juice running down into the fur around ${his} mouth for the second time today.`); eventSlave.devotion += 8; return t; } function noMoreDeadShit() { let t = []; - t.push(`You slam your fist on the table loud enough that it makes ${eventSlave.slaveName} jump and ${his} tail to flick straight up in the air, the dead animal still bleeding out over your desk, and yell at the harebrained cat${girl} to stop dropping filthy fucking dead animals on your desk, and for that matter for all the rest of your idiotic catsluts to stop doing it too. ${eventSlave.slaveName} cowers in front of your desk as you yell at ${him}, all of ${his} pride and excitement at securing a kill on something immediately forgotten. ${canTalk(eventSlave) ? `"I - I d-didn't know you hated my hunting ${s}o much, ${title}," ${He} weakly meows. "I ju${s}t want to make you proud - u-uhm, I promi${s}e I'll ${s}top..." You tell ${him} that ${he} better, or you'll beat ${his} ass so red ${he} won't be walking for a month.` : `${He} makes a single, sad whimpering sound, all ${he}'s capable of given ${his} muteness. You tell ${him} that that better mean that ${he}'s going to stop, and ${he} weakly nods ${his} head up and down in confirmation.`} ${He} does ${his} best to hide ${his} <span class="devotion dec">watering eyes</span> as ${he} gets to cleaning off your desk, but they're pretty obvious.`); + t.push(`You slam your fist on the table loud enough that it makes ${eventSlave.slaveName} jump and ${his} tail to flick straight up in the air, the dead animal still bleeding out over your desk, and yell at the harebrained cat${girl} to stop dropping filthy fucking dead animals on your desk, and for that matter for all the rest of your idiotic catsluts to stop doing it too. ${eventSlave.slaveName} cowers in front of your desk as you yell at ${him}, all of ${his} pride and excitement at securing a kill on something immediately forgotten.`); + if (canTalk(eventSlave)) { + t.push( + Spoken(eventSlave, `"I - I d-didn't know you hated my hunting so much, ${title},"`), + `${He} weakly meows.`, + Spoken(eventSlave, `"I just want to make you proud - u-uhm, I promise I'll stop..."`), + `You tell ${him} that ${he} better, or you'll beat ${his} ass so red ${he} won't be walking for a month.` + ); + } else { + t.push(`${He} makes a single, sad whimpering sound, all ${he}'s capable of given ${his} muteness. You tell ${him} that that better mean that ${he}'s going to stop, and ${he} weakly nods ${his} head up and down in confirmation.`); + } + t.push(`${He} does ${his} best to hide ${his} <span class="devotion dec">watering eyes</span> as ${he} gets to cleaning off your desk, but they're pretty obvious.`); V.noDeadShit = 1; eventSlave.devotion -= 10; return t; @@ -169,7 +294,13 @@ App.Events.CMRESSCatPresent = class CMRESSCatPresent extends App.Events.BaseEven function moreDeadShit() { let t = []; - t.push(`You sigh as ${eventSlave.slaveName} drops a stupid present on your desk once more and wearily tell ${him} that ${he}'s allowed to hunt again. ${His} pointy ears immediately perk up, instantaneously forgetting whatever it was that ${he}'d offered up to you in tribute just a few seconds ago. ${canTalk(eventSlave) ? `"Really!? I - thank${s}, ${title}! I'm gonna find lot${s} of stuff to kill for you, I promi${s}e! I'll be the be${s}t hunter ever!"` : `${He} wiggles ${his} butt from side to side enthusiastically and makes the loudest purring sound ${his} damaged vocal chords are capable of.`} You sigh in exasperation as the excitable cat${girl} bounds out of the room <span class="devotion inc">enthusiastically,</span> mentally preparing yourself for whatever disgusting corpse ${he}'s liable to drop on your desk next to show off ${his} catlike adoration.`); + t.push(`You sigh as ${eventSlave.slaveName} drops a stupid present on your desk once more and wearily tell ${him} that ${he}'s allowed to hunt again. ${His} pointy ears immediately perk up, instantaneously forgetting whatever it was that ${he}'d offered up to you in tribute just a few seconds ago.`); + if (canTalk(eventSlave)) { + t.push(Spoken(eventSlave, `"Really!? I - thanks, ${title}! I'm gonna find lots of stuff to kill for you, I promise! I'll be the best hunter ever!"`)); + } else { + t.push(`${He} wiggles ${his} butt from side to side enthusiastically and makes the loudest purring sound ${his} damaged vocal chords are capable of.`); + } + t.push(`You sigh in exasperation as the excitable cat${girl} bounds out of the room <span class="devotion inc">enthusiastically,</span> mentally preparing yourself for whatever disgusting corpse ${he}'s liable to drop on your desk next to show off ${his} catlike adoration.`); V.noDeadShit = 0; eventSlave.devotion += 8; return t; diff --git a/src/Mods/Catmod/events/CMRESS/lazyCat.js b/src/Mods/Catmod/events/CMRESS/lazyCat.js index fdb91c2e3ce738f1ea679d1934d7bd4d6f0f7215..4fe94cf7424666f77cc80c36a1f80c85cd6ac611 100644 --- a/src/Mods/Catmod/events/CMRESS/lazyCat.js +++ b/src/Mods/Catmod/events/CMRESS/lazyCat.js @@ -20,7 +20,7 @@ App.Events.CMRESSLazyCat = class CMRESSLazyCat extends App.Events.BaseEvent { const { He, he, his, him, girl } = getPronouns(eventSlave); - const {s, title} = getEnunciation(eventSlave); + const {title} = getEnunciation(eventSlave); /** @type {App.Entity.PlayerState} */ let PC = V.PC; @@ -134,7 +134,19 @@ App.Events.CMRESSLazyCat = class CMRESSLazyCat extends App.Events.BaseEvent { } t.push(`and immediately delivering a powerful, open-handed slap to ${his} right asscheek. The forceful slap sears through the fur and makes ${his} tail jerk upwards as ${his} bubbly ass jiggles, ears flicking up in pain. Before ${he} can even yelp out in protest or react to the sharp, stinging pain, you land a second slap, then a third, loud smacking noises echoing across the room as you give the pinned cat a hard spanking. Over the next ten minutes, you absolutely blister the lazy cat${girl}'s furry ass, working into a rhythm of disciplined abuse that leaves the fluffy bitch sobbing and ${his} butt beaten so well you can see it glowing a painful, alluring cherry-red even through ${his} ${eventSlave.skin} fur. The second that you let go of the pinned cat and tell ${him} that ${he}'s free to leave, ${he} leaps off your knee,`); if (eventSlave.fetish === "masochist") { - t.push(`turns around with tears rolling freely down ${his} cheeks as though to show off how brightly red you've bruised ${his} cheeks, wiggles ${his} beaten bottom, and smiles. ${canTalk(eventSlave) ? `"<span class="devotion inc">T-thank${s} for kicking my as${s},</span> ${title}. I promise I'll, l-like, never nap at work again." It sounds less than authentic as the maso-kitty tugs up ${his} bottoms over ${his} red, furry butt with a wince,` : ` makes a <span class="devotion inc">heart symbol</span> with ${his} hands and presses it against ${his} burning ass so it looks red,`}`); + t.push(`turns around with tears rolling freely down ${his} cheeks as though to show off how brightly red you've bruised ${his} cheeks, wiggles ${his} beaten bottom, and smiles.`); + if (canTalk(eventSlave)) { + t.push( + App.UI.DOM.combineNodes( + `"`, + App.UI.DOM.makeElement("span", Spoken(eventSlave, `T-thanks for kicking my ass,`), ["devotion", "inc"]) + ), + Spoken(eventSlave, `${title}. I promise I'll, l-like, never nap at work again."`), + `It sounds less than authentic as the maso-kitty tugs up ${his} bottoms over ${his} red, furry butt with a wince,` + ); + } else { + t.push(` makes a <span class="devotion inc">heart symbol</span> with ${his} hands and presses it against ${his} burning ass so it looks red,`); + } eventSlave.devotion += 4; } t.push(`then scurries off to tend to ${his}<span class="trust dec">bruised and reddened asscheeks.</span>`); diff --git a/src/events/RESS/frighteningDick.js b/src/events/RESS/frighteningDick.js index bd3bcfed353d5197995e8f4d9ca3700f288d6858..82ce8ef51b0db669b4b6514f616d1b9d2cd56550 100644 --- a/src/events/RESS/frighteningDick.js +++ b/src/events/RESS/frighteningDick.js @@ -27,7 +27,7 @@ App.Events.RESSFrighteningDick = class RESSFrighteningDick extends App.Events.Ba const { He, he, His, his, him, himself } = getPronouns(eventSlave); - const {s, say, title: Master} = getEnunciation(eventSlave); + const {say, title: Master} = getEnunciation(eventSlave); const desc = SlaveTitle(eventSlave); const belly = bellyAdjective(eventSlave); @@ -58,7 +58,11 @@ App.Events.RESSFrighteningDick = class RESSFrighteningDick extends App.Events.Ba } else { t.push("cute butt"); } - t.push(`hitting the floor with an audible whack. The light cloth ${he} was using to polish with went flying, and flutters to the ground accusingly. After scrabbling back a short distance, looking up at you hesitantly, and visibly recollecting ${himself}, ${he} swallows twice and then ${say}s, "I'm ${s}orry, ${Master}," in a tone of voice with a great deal of effort applied to keep it even. A frantic, embarrassed search for ${his} cloth ensues. Finding it at last, ${he} returns to ${his} original, low position, and crouch-walks back to the place ${he} was polishing, doing ${his} absolute best to look diligent and industrious and not at all aware that your cock is pointing at ${him} like a gun barrel.`); + t.push( + `hitting the floor with an audible whack. The light cloth ${he} was using to polish with went flying, and flutters to the ground accusingly. After scrabbling back a short distance, looking up at you hesitantly, and visibly recollecting ${himself}, ${he} swallows twice and then ${say}s,`, + Spoken(eventSlave, `"I'm sorry, ${Master},"`), + `in a tone of voice with a great deal of effort applied to keep it even. A frantic, embarrassed search for ${his} cloth ensues. Finding it at last, ${he} returns to ${his} original, low position, and crouch-walks back to the place ${he} was polishing, doing ${his} absolute best to look diligent and industrious and not at all aware that your cock is pointing at ${him} like a gun barrel.` + ); App.Events.addParagraph(node, t); t = []; diff --git a/src/events/RESS/lazyEvening.js b/src/events/RESS/lazyEvening.js index 03b04077e176177bf99bf61f0a563234d3e92d17..28447068fcb9117c58cc90153c4ff57ca89fe65b 100644 --- a/src/events/RESS/lazyEvening.js +++ b/src/events/RESS/lazyEvening.js @@ -21,7 +21,7 @@ App.Events.RESSLazyEvening = class RESSLazyEvening extends App.Events.BaseEvent const { He, he, His, his, hers, him, himself, girl, woman } = getPronouns(eventSlave); - const {s, title} = getEnunciation(eventSlave); + const {title} = getEnunciation(eventSlave); V.nextLink = "Next Week"; @@ -62,9 +62,15 @@ App.Events.RESSLazyEvening = class RESSLazyEvening extends App.Events.BaseEvent if (!canTalk(eventSlave)) { t.push(`asks with a gesture that carries just the right mixture of submission and exaggerated casualness if you'd like to 'hang out.'`); } else if (SlaveStatsChecker.checkForLisp(eventSlave)) { - t.push(`lisps with exaggerated casualness, "Let'${s} hang out, ${title}?"`); + t.push( + `lisps with exaggerated casualness,`, + Spoken(eventSlave, `"Let's hang out, ${title}?"`) + ); } else { - t.push(`asks with exaggerated casualness, "Want to hang out, ${title}?"`); + t.push( + `asks with exaggerated casualness,`, + Spoken(eventSlave, `"Want to hang out, ${title}?"`) + ); } App.Events.addParagraph(node, t); diff --git a/src/js/utilsSlave.js b/src/js/utilsSlave.js index 4eb138abdf8df4f0f78de6f9e7ffdebad61c826f..05f7401ddcc8774b3d990b2d516ab41031648c08 100644 --- a/src/js/utilsSlave.js +++ b/src/js/utilsSlave.js @@ -2144,20 +2144,20 @@ globalThis.SlaveFullBirthName = function(slave) { */ globalThis.PoliteRudeTitle = function(slave) { const PC = V.PC; - const {s, ss, title} = getEnunciation(slave); + const {title} = getEnunciation(slave); let r = ""; if (slave.nationality === "Japanese") { if (slave.trust > 0) { r += `${PC.slaveName}${PC.title > 0 ? "kun" : "chan"}`; } else { - r += (PC.slaveSurname ? PC.slaveSurname : `${PC.slaveName}${s}an`); + r += Spoken(slave, PC.slaveSurname ? PC.slaveSurname : `${PC.slaveName}san`); } } else { if (slave.intelligence + slave.intelligenceImplant < -95) { r += title; } else if (slave.intelligence + slave.intelligenceImplant > 50) { - r += (PC.title > 0 ? `Ma${s}ter` : `Mi${s}tre${ss}`); + r += Spoken(slave, PC.title > 0 ? `Master` : `Mistress`); } else if (slave.trust > 0) { r += PC.slaveName; } else {