diff --git a/src/events/RESS/arcadeSadist.js b/src/events/RESS/arcadeSadist.js index 8a6e5530b1af5c992f572a7b8c93b8ec0ed31729..61f9962cc1e8fff23eb5cb7943008f0ab7f447e7 100644 --- a/src/events/RESS/arcadeSadist.js +++ b/src/events/RESS/arcadeSadist.js @@ -13,8 +13,9 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven s => s.fetishStrength > 20, s => s.fetishKnown === 1, hasAnyArms, - hasAnyLegs, + canMove, canTalk, + canHear, s => s.devotion > 50, s => s.trust >= -20, s => s.belly < 300000, @@ -56,7 +57,7 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven r = []; r.push(Spoken(eventSlave, `"Sorry, ${Master},"`), `he ${say}s apologetically,`); - if (eventSlave.belly >= 10000) { + if (eventSlave.belly >= 10000 || eventSlave.weight > 160) { r.push(`struggling`); } else { r.push(`scrambling`); @@ -65,10 +66,8 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven r.push(Spoken(eventSlave, `"I didn't notice you there."`)); if (canSee(eventSlave)) { r.push(`Seeing your questioning look,`); - } else if (canHear(eventSlave)) { - r.push(`Hearing your lack of response,`); } else { - r.push(`Sensing a request to continue,`); + r.push(`Hearing your lack of response,`); } r.push(`${he} explains ${himself} further.`); r.push(Spoken(eventSlave, `"I was just thinking about, um, my favorite place. I can almost get off just by thinking about it."`)); @@ -80,7 +79,6 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven } r.push(`${He}'s a confirmed sadist, so whatever ${his} favorite mental masturbation is probably quite strong.`); - App.Events.addParagraph(node, r); App.Events.addResponses(node, [ new App.Events.Result(`Ask ${him} about ${his} fantasy`, fantasy), @@ -96,7 +94,7 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven r.push(`You order ${him} to explain further.`); r.push(Spoken(eventSlave, `"${Master},"`), `${he} ${say}s carefully,`, Spoken(eventSlave, `"it's ${V.arcadeName}. There's a specific place there, and, well, I can't describe it. It's in the service area under ${V.arcadeName}. Can I show you what I mean?"`)); r.push(`Intrigued, you order ${him} to show you the place ${he}'s talking about, and lead ${him} to ${V.arcadeName} through the access hallway. ${He} points to the service tunnel under one of the rows of inmates, which allows trusted slaves to clean up and perform maintenance.`); - if (eventSlave.belly >= 100000) { + if (eventSlave.belly >= 100000 || eventSlave.weight > 160) { r.push(`Once you've managed to shove the massive slut`); } else if (eventSlave.belly >= 5000) { r.push(`Once you've helped the`); @@ -112,12 +110,10 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven r.push(`in there, ${he} stops and`); if (canSee(eventSlave)) { r.push(`watches`); - } else if (canHear(eventSlave)) { - r.push(`listens`); } else { - r.push(`waits`); + r.push(`listens`); } - if (V.PC.belly >= 100000) { + if (V.PC.belly >= 100000 || V.PC.weight > 130) { r.push(r.pop() + `as you struggle to join ${him} in the increasingly cramped space.`); } else if (V.PC.belly >= 5000) { r.push(r.pop() + `as you gently slip your motherly body in after ${him}.`); @@ -169,36 +165,48 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven } r.push(`${his} ${eventSlave.nipples} nipples to stop ${him} from getting off too soon, you`); if (V.PC.dick === 0) { - r.push(`hug ${him} to your chest and start playing with ${his} pussy, commanding ${him} to reach around and do the same for you.`); - seX(eventSlave, "oral", V.PC, "penetrative"); - } else if (canDoVaginal(eventSlave) && (eventSlave.vagina > 0)) { + r.push(`hug ${him} to your chest and start playing with ${his}`); + if (canDoVaginal(eventSlave)) { + r.push(`pussy,`); + seX(eventSlave, "vaginal", V.PC, "penetrative"); + } else if (eventSlave.dick > 0 && eventSlave.chstityPenis === 0) { + r.push(`dick,`); + } else { + r.push(`body,`); + } + r.push(`commanding ${him} to reach around and do the same for you.`); + seX(V.PC, "vaginal", eventSlave, "penetrative"); + } else if (canDoVaginal(eventSlave) && eventSlave.vagina > 0) { r.push(`pull ${him} up to the right height and slide your dick inside ${him}, keeping both of you on your feet so you can take ${him} standing.`); r.push(VCheck.Vaginal(eventSlave, 1)); - } else if (canDoAnal(eventSlave) && (eventSlave.anus > 0)) { + } else if (canDoAnal(eventSlave) && eventSlave.anus > 0) { r.push(`shove your cock roughly up ${his} asshole, letting ${him} struggle a little as ${he} finds the right angle to take standing anal here.`); r.push(VCheck.Anal(eventSlave, 1)); } else { r.push(`slide your stiff prick up between the virgin's thighs for some intercrural sex.`); } - if (eventSlave.belly >= 5000 || V.PC.belly >= 5000 || eventSlave.weight > 160 || eventSlave.boobs > 40000 || eventSlave.butt > 10) { + if (eventSlave.belly >= 5000 || V.PC.belly >= 5000 || V.PC.weight > 160 || V.PC.boobs > 40000 || V.PC.butt > 10 || eventSlave.weight > 160 || eventSlave.boobs > 40000 || eventSlave.butt > 10) { r.push(`As you fuck in the cramped corridor, ${his}`); } else { r.push(`As you fuck, ${his}`); } if (canSee(eventSlave)) { r.push(`gaze flicks up and down along the row`); - } else if (canHear(eventSlave)) { + } else { r.push(`ears perk up at the subtle sounds`); + } + r.push(`of suffering bodies. ${He} climaxes again and again, shuddering at each new subtle sign that another one of the slaves here is being degraded by yet another cock inserted into yet another of ${hisU} defenseless holes. By the time you're satisfied, ${he}'s so exhausted that ${his} legs are trembling uncontrollably as ${he} struggles to remain standing with you. You drop ${him}, leaving ${him} to find ${his} own way out of this place. You look back from the entrance, seeing that ${he}'s`); + if (canWalk(eventSlave)) { + r.push(`following you on shaky legs,`); } else { - r.push(`expression indicates that ${he}'s become lost in ${his} thoughts`); + r.push(`steadily pushing ${himself} along,`); } - r.push(`of suffering bodies. ${He} climaxes again and again, shuddering at each new subtle sign that another one of the slaves here is being degraded by yet another cock inserted into yet another of ${hisU} defenseless holes. By the time you're satisfied, ${he}'s so exhausted that ${his} legs are shuddering uncontrollably as ${he} struggles to remain standing with you. You drop ${him}, leaving ${him} to find ${his} own way out of this place. You look back from the entrance, seeing that ${he}'s following you on shaky legs,`); if (canSee(eventSlave)) { r.push(`staring at`); } else { r.push(`facing`); } - r.push(`you with a profound look of mixed <span class="mediumaquamarine">trust for your understanding of ${his} horrible sadism,</span> and deep unease that this is what truly gets ${him} off.`); + r.push(`you with a profound look of mixed <span class="trust inc">trust for your understanding of ${his} horrible sadism,</span> and deep unease that this is what truly gets ${him} off.`); eventSlave.trust += 5; return r; } @@ -239,9 +247,9 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven r.push(`${eventSlave.slaveName} jerks suddenly,`); if (canAchieveErection(eventSlave)) { r.push(`shooting ${his} cum onto the floor.`); - } else if (eventSlave.vagina < 0) { + } else if (eventSlave.dick > 0) { r.push(`dribbling a little.`); - } else if (eventSlave.vaginaLube > 0) { + } else if (eventSlave.vaginaLube > 0 || eventSlave.balls > 0) { r.push(`squirting onto the floor.`); } else { r.push(`orgasming.`); @@ -252,9 +260,9 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven } else { r.push(`faces`); } - r.push(`the mess ${he} made just by being in the presence of the arcology's <span class="hotpink">undisputed preeminent sadist;</span> ${he} shudders at the sheer gothic glory of it. ${He} has a new moment to think of when ${he} feels like <span class="lightsalmon">indulging ${his} own sadism.</span>`); + r.push(`the mess ${he} made just by being in the presence of the arcology's <span class="devotion inc">undisputed preeminent sadist;</span> ${he} shudders at the sheer gothic glory of it. ${He} has a new moment to think of when ${he} feels like <span class="fetish inc">indulging ${his} own sadism.</span>`); eventSlave.devotion += 5; - eventSlave.fetishStrength = Math.clamp(eventSlave.fetishStrength+10, 0, 100); + eventSlave.fetishStrength = Math.clamp(eventSlave.fetishStrength + 10, 0, 100); return r; } } @@ -265,7 +273,7 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven r.push(`You're not particularly interested in what ${he} dreams about when ${he} gets the chance, and you tell ${him} so. Whatever sadistic little fantasies ${he} keeps locked away to bring out when ${he}'s got a moment to satiate ${his} perversions is less interesting to you than the prospect of`); if (V.PC.dick === 0) { r.push(`${his} mouth on your cunt. So, you shove ${him} down to sit on the couch and straddle ${his} face, cutting off any further whimsies by pressing your wet pussy against ${his} lips. ${He} eats you out obediently, accepting`); - seX(eventSlave, "oral", V.PC, "penetrative"); + seX(eventSlave, "oral", V.PC, "vaginal"); } else if (canDoVaginal(eventSlave) && (eventSlave.vagina > 0)) { r.push(`giving it to ${him}. So, you shove ${him} down to sit on the couch, nudge ${his} legs apart, kneel between them, and pound ${his} pussy. You fuck ${him} so hard that ${he} doesn't have the attention for further whimsies, and ${he} accepts`); r.push(VCheck.Vaginal(eventSlave, 1)); @@ -282,7 +290,7 @@ App.Events.RESSArcadeSadist = class RESSArcadeSadist extends App.Events.BaseEven r.push(`${him} sucking your dick. So, you shove ${him} down to sit on the couch and give ${him} your cock to keep ${his} mouth occupied, cutting off any further whimsies. ${He} blows you obediently, accepting`); seX(eventSlave, "oral", V.PC, "penetrative"); } - r.push(`the implicit message that <span class="hotpink">${he}'s your slut</span> in the real world, whatever thoughts ${he} may find appealing in the privacy of ${his} own mind.`); + r.push(`the implicit message that <span class="devotion inc">${he}'s your slut</span> in the real world, whatever thoughts ${he} may find appealing in the privacy of ${his} own mind.`); eventSlave.devotion += 3; return r; }