diff --git a/src/events/RE/reHGReplacement.js b/src/events/RE/reHGReplacement.js index 4b6275bb7bb94411dce61e3e034e3e74b9bcf943..944d1fb88e388d75342c5450189c33ef6df9964f 100644 --- a/src/events/RE/reHGReplacement.js +++ b/src/events/RE/reHGReplacement.js @@ -11,16 +11,17 @@ App.Events.REHGReplacement = class REHGReplacement extends App.Events.BaseEvent (s) => s.rules.speech !== "restrictive", (s) => s.trust > 75, (s) => s.devotion > 50, - (s) => s.skill.oral > 30, + (s) => s.vagina > 0, (s) => s.intelligence + s.intelligenceImplant >= S.HeadGirl.intelligence + S.HeadGirl.intelligenceImplant, - (s) => s.skill.oral > S.HeadGirl.skill.oral, + (s) => s.skill.vaginal > S.HeadGirl.skill.vaginal, (s) => s.assignment !== Job.QUARTER, (s) => s.fetish !== "mindbroken", canSee, + canHear, canWalk, hasAnyArms, - hasAnyLegs, canTalk, + (s) => canDoVaginal(s) || (s.dick > 0 && s.chastityPenis === 0); ]]; } @@ -44,8 +45,9 @@ App.Events.REHGReplacement = class REHGReplacement extends App.Events.BaseEvent const {say, title:Master} = getEnunciation(slave); const { He2, - he2, him2, his2, wife2, + he2, him2, his2, himself2, wife2, } = getPronouns(S.HeadGirl).appendSuffix("2"); + const {say2} = getEnunciation(S.HeadGirl).appendSuffix("2"); r.push(`There's a constant traffic of slaves in and out of your office as your chattel comes in and out for instructions, inspections, and sex. Your Head Girl ${S.HeadGirl.slaveName} is one of the most frequent visitors, since although you trust ${him2}, ${he2}'s still a slave and has to check with you before acting on some matters.`); if (S.HeadGirl.relationship === -3) { @@ -63,7 +65,7 @@ App.Events.REHGReplacement = class REHGReplacement extends App.Events.BaseEvent r.push( `When ${S.HeadGirl.slaveName} leaves, ${he} clears ${his} throat nervously. ${He} gathers ${his} courage, and ${say}s,`, - `"${Master}, I think I would make a better Head Girl than ${him}."`, + Spoken(slave, `"${Master}, I think I would make a better Head Girl than ${him}."`), `${He} takes a deep breath and plunges on.`, Spoken(slave, `"I'm just as smart as ${he2} is. And, ${Master}, I'm sure you've noticed ${he2} isn't very good at teaching other girls vaginal skills.`) ); @@ -93,7 +95,7 @@ App.Events.REHGReplacement = class REHGReplacement extends App.Events.BaseEvent let r = []; r.push(`After giving the matter some consideration, you agree, instructing ${V.assistant.name} that ${slave.slaveName} is now the Head Girl. ${slave.slaveName} is <span class="devotion inc">overjoyed,</span> and bounces to ${his} feet, clearly very eager to begin. You caution ${him} that ${he} is not to undermine ${S.HeadGirl.slaveName} by letting anyone know why you decided to change Head Girls. ${He} nods obediently. As far as ${S.HeadGirl.slaveName} knows, it's just a standard change of Head Girls, and ${he2}'s too good a slave to let it affect ${him2} seriously.`); slave.devotion += 5; - assignJob(slave, Job.HEADGIRL); + assignJob(slave, Job.HEADGIRL); // should we be removing the old HG here? App.Events.addParagraph(frag, r); return frag; } @@ -102,11 +104,11 @@ App.Events.REHGReplacement = class REHGReplacement extends App.Events.BaseEvent const frag = new DocumentFragment(); let r = []; r.push( - `You pretend you didn't hear ${him}, and go about your business. ${He} quickly catches on, and shuts ${his} mouth, sitting stiffly on the couch and waiting for you to say something. After letting ${him} wait for a good long while, you steeple your fingers and look over them at ${him}. ${He} quails at your gaze, but does not look away from you. You tell ${him} that, for ${his} general information, you prefer to make decisions about what slaves do which job yourself, and are not interested in input from the slaves themselves on the matter. You continue to observe that if any slave were to offer input, ${he} might suggest to you that ${he} thought ${his} own judgment superior to yours. Then, you dismiss ${him}.`, + `You pretend you didn't hear ${him}, and go about your business. ${He} quickly catches on, and shuts ${his} mouth, sitting stiffly on the couch and waiting for you to say something. After letting ${him} wait for a good long while, you steeple your fingers and look over them at ${him}. <span class="trust dec">${He} quails at your gaze,</span> but does not look away from you. You tell ${him} that, for ${his} general information, you prefer to make decisions about what slaves do which job yourself, and are not interested in input from the slaves themselves on the matter. You continue to observe that if any slave were to offer input, ${he} might suggest to you that ${he} thought ${his} own judgment superior to yours. Then, you dismiss ${him}.`, Spoken(slave, `"Yes ${Master}, thank you, ${Master},"`), `${he} ${say}s, and flees.` ); - slave.trust += 4; + slave.trust -= 4; App.Events.addParagraph(frag, r); return frag; } @@ -114,47 +116,54 @@ App.Events.REHGReplacement = class REHGReplacement extends App.Events.BaseEvent function tattle() { const frag = new DocumentFragment(); let r = []; - Enunciate(S.HeadGirl); r.push(`You page ${S.HeadGirl.slaveName}, telling ${him2} to get back up to your office. ${slave.slaveName} hears you, of course, and stiffens with fear. ${He} knows ${he}'s in trouble, but ${he} doesn't yet know how much. You tell ${S.HeadGirl.slaveName} to have a seat next to ${slave.slaveName} on the couch, and instruct ${V.assistant.name} to replay the last five minutes of the feeds from your office on a wallscreen. ${slave.slaveName}'s`); if (slave.lips > 40) { r.push(`pillowlike`); } - r.push(`lower lip begins to tremble at this, and ${he} can barely manage to keep ${his} gaze on the fatal replay of ${his} attempt to convince you to replace ${S.HeadGirl.slaveName} with ${him}. ${S.HeadGirl.slaveName}, who is no fool, is not surprised by this, but the replay still angers ${him2}. As it rolls on, ${his2} hands begin to roam across ${slave.slaveName}, who winces at ${his2} touch. About halfway through, ${S.HeadGirl.slaveName} looks straight at you and cruelly pinches one of ${slave.slaveName}'s nipples. You respond to the nonverbal question with a silent nod, and ${S.HeadGirl.slaveName} smiles briefly at you. Then, ${he2} sticks ${his2} tongue in ${slave.slaveName}'s ear. The poor slave starts at the warm, wet intrusion, but knows better than to try to resist. ${He} closes ${his} eyes tight.`); + r.push(`lower lip begins to tremble at this, and ${he} can barely manage to keep ${his} gaze on the fatal replay of ${his} attempt to convince you to replace ${S.HeadGirl.slaveName} with ${him}. ${S.HeadGirl.slaveName}, who is no fool, is not surprised by this, but the replay still angers ${him2}. As it rolls on, ${his2} hand${hasBothArms(S.HeadGirl) ? "s" : ""} begin to roam across ${slave.slaveName}, who winces at ${his2} touch. About halfway through, ${S.HeadGirl.slaveName} looks straight at you and cruelly pinches one of ${slave.slaveName}'s nipples. You respond to the nonverbal question with a silent nod, and ${S.HeadGirl.slaveName} smiles briefly at you. Then, ${he2} sticks ${his2} tongue in ${slave.slaveName}'s ear. The poor slave starts at the warm, wet intrusion, but knows better than to try to resist. ${He} closes ${his} eyes tight.`); App.Events.addParagraph(frag, r); r = []; - r.push(`${S.HeadGirl.slaveName} hops off the couch, gets down in front of ${his2} victim, and shoves ${his} legs apart. ${slave.slaveName} scrunches up ${his} face, expecting something agonizing to happen to ${his}`); - if (slave.dick === 0) { + r.push(`${S.HeadGirl.slaveName} hops off the couch, gets down in front of ${his2} victim,`); + if (slave.belly >= 5000 || slave.weight > 95) { + r.push(`shoves ${his} legs apart, and buries ${himself2} beneath ${his} belly.`); + } else { + r.push(`and shoves ${his} legs apart.`); + } + r.push(`${slave.slaveName} scrunches up ${his} face, expecting something agonizing to happen to ${his}`); + if (canDoVaginal(slave)) { r.push(`pussy, but ${S.HeadGirl.slaveName} shocks ${him} by starting to hungrily eat ${him} out.`); } else { r.push(`cock, but ${S.HeadGirl.slaveName} shocks ${him} by giving ${him} a lush blowjob.`); } r.push(`${slave.slaveName} clearly expects a trap, but ${S.HeadGirl.slaveName}'s attentions slowly distract ${him}. When ${he}'s on the very verge of orgasm, your Head Girl suddenly stops and`); - if (slave.dick === 0) { + if (canDoVaginal(slave)) { r.push(`pinches the ${girl}'s pussylips,`); } else { r.push(`tugs the ${girl}'s cock downward by its head,`); } r.push( - `not painfully, but hard enough to communicate threat. ${slave.slaveName}, shocked out of ${his} pleasure, looks down at ${him2}. ${S.HeadGirl.slaveName} ${say}s menacingly,`, + `not painfully, but hard enough to communicate threat. ${slave.slaveName}, shocked out of ${his} pleasure, looks down at ${him2}. ${S.HeadGirl.slaveName} ${say2}s menacingly,`, Spoken(S.HeadGirl, `"Bitch, if you orgasm, I'm going to fucking destroy you."`), `Then ${he2} goes back to giving ${slave.slaveName} oral. ${slave.slaveName} begins to cry, realizing how comprehensively fucked ${he} is.` ); App.Events.addParagraph(frag, r); r = []; - r.push(`Eventually, ${he} climaxes. ${S.HeadGirl.slaveName} has a talented tongue.${S.HeadGirl.slaveName} does not begrudge the slave ${his} pleasure,`); - if (slave.dick === 0) { + r.push(`Eventually, ${he} climaxes. ${S.HeadGirl.slaveName} has a talented tongue. ${S.HeadGirl.slaveName} does not begrudge the slave ${his} pleasure,`); + if (canDoVaginal(slave)) { r.push(`tonguing ${his} clit all the way through ${his} orgasm.`); + seX(slave, "vaginal", S.HeadGirl, "oral"); } else { r.push(`industriously sucking ${his} cock until ${he2}'s swallowed every last drop of cum.`); + seX(slave, "penetrative", S.HeadGirl, "oral"); } r.push( `${He2} stands up and seizes ${slave.slaveName} by the ear, ${say}ing,`, Spoken(S.HeadGirl, `"And now, slut, you are fucked."`), `${slave.slaveName}'s weeping stopped during ${his} climax, but now ${he} starts to <span class="trust dec">sob with terror,</span> and ${he} cries harder as your Head Girl hauls ${him} out of your office by ${his} ear. ${S.HeadGirl.slaveName} <span class="trust inc">waves cheerfully</span> to you as ${he2} leaves with ${his2} victim.` ); - seX(slave, "oral", S.HeadGirl, "oral"); + SimpleSexAct.Slaves(slave, S.HeadGirl, 5); S.HeadGirl.trust += 4; slave.trust -= 4; App.Events.addParagraph(frag, r);