diff --git a/src/events/RESS/review/inconvenientLabia.js b/src/events/RESS/review/inconvenientLabia.js new file mode 100644 index 0000000000000000000000000000000000000000..c659b94ed24a58165c48632449fe7c1a08f804a9 --- /dev/null +++ b/src/events/RESS/review/inconvenientLabia.js @@ -0,0 +1,185 @@ +App.Events.RESSInconvenientLabia = class RESSInconvenientLabia extends App.Events.BaseEvent { + eventPrerequisites() { + return []; // always valid if sufficient actors can be cast successfully + } + + actorPrerequisites() { + return [ + [ // single event slave + s => s.fetish !== "mindbroken", + hasAnyArms, + hasAnyLegs, + s => s.labia > 1, + s => s.vagina >= 0, + s => s.muscles > 5 || s.diet === "muscle building", + s => s.belly < 10000, + s => s.devotion > 20, + s => s.trust > 20, + ] + ]; + } + + execute(node) { + /** @type {Array<App.Entity.SlaveState>} */ + let [eventSlave] = this.actors.map(a => getSlave(a)); + const { + He, he, his, him, girl, hers + } = getPronouns(eventSlave); + const {title: Master} = getEnunciation(eventSlave); + + V.nextLink = "Next Week"; + + /* "pulling down the compression shorts $he was wearing" */ + if (isItemAccessible.entry("sport shorts", "clothes")) { + if (eventSlave.boobs >= 650) { + App.Events.drawEventArt(node, eventSlave, "sport shorts and a sports bra"); + } else { + App.Events.drawEventArt(node, eventSlave, "sport shorts"); + } + } else { + App.Events.drawEventArt(node, eventSlave, "spats and a tank top"); + } + + let r = []; + App.Events.addParagraph(node, [ + `You see`, + contextualIntro(V.PC, eventSlave, "DOM"), + `moving gingerly as ${he} heads out of the workout room, as though ${he}'s suffering some pain in ${his} groin. Since ${he}'s coming off a workout rather than any duty that would explain a sore pussy, you head over to ${him} to investigate. ${He} greets you properly, looking a little rueful.` + ]); + if (!canTalk(eventSlave)) { + r.push(`${He} gestures impatiently at ${his} pussy, pulling down the compression shorts ${he} was wearing to display ${his} generous labia. ${He} humorously pantomimes them moving about as ${he} exercises and indicates pain.`); + } else { + if (eventSlave.lips > 70) { + r.push(`${He} lisps through ${his} massive lips,`); + } else if (eventSlave.lipsPiercing+eventSlave.tonguePiercing > 2) { + r.push(`${He} lisps through ${his} huge piercings,`); + } + r.push( + Spoken(eventSlave, `"${Master}, my pussylips are really big. They make running on the treadmill really painful, even wearing my compression shorts"`), + `${he} explains.`, + Spoken(eventSlave, `"They just kind of get in the way."`) + ); + } + r.push(`${He} looks doubtful, as though ${he}'s wondering whether to make a request. Finally ${he} makes up ${his} mind to ask:`); + if (!canTalk(eventSlave)) { + r.push(`${he} waves towards the surgery, and gestures about the labiaplasty ${he} knows some slaves receive, asking you if ${he} can have ${hers} reduced.`); + } else { + r.push(Spoken(eventSlave, `"May I have labiaplasty, ${Master}? It would make working out so much easier on my poor pussy."`)); + } + + App.Events.addParagraph(node, r); + App.Events.addResponses(node, [ + new App.Events.Result(`Let ${him} have labiaplasty to resolve the issue`, labiaplasty), + canDoVaginal(eventSlave) + ? new App.Events.Result(`Let ${him} know ${he}'s got a wonderful vagina`, reassure, eventSlave.vagina === 0 ? `This option will take ${his} virginity` : null) + : new App.Events.Result() + ]); + + function labiaplasty() { + r = []; + r.push(`When you assent, ${he} cheers up immediately, looking remarkably happy for a ${girl} who's just learned ${his} vagina is about to have a surgical operation performed on it. Then again, having those huge pussylips constantly getting in ${his} way when ${he} runs must be extremely uncomfortable, so it's not shocking ${he} would consider a radical solution to ${his} problem. When ${he} exits the remote surgery, ${he} looks <span class="health.dec">sorer than ever,</span> of course, but ${he} <span class="devotion inc">smiles gratefully</span> at you the next time ${he}`); + if (canSee(eventSlave)) { + r.push(`sees`); + } else { + r.push(`meets`); + } + r.push(`you, and lets you know ${he}'s really looking forward to recovering enough for ${him} to take ${his} beloved ${getWrittenTitle(eventSlave)} into ${his} <span class="orange">newly streamlined cunt.</span>`); + eventSlave.devotion += 4; + eventSlave.labia = 0; + surgeryDamage(eventSlave, 10); + return r; + } + + function reassure() { + r = []; + r.push(`By way of an answer, you embrace ${him} and give ${him} a deep kiss on ${his}`); + if (eventSlave.lips > 70) { + r.push(`enormous`); + } else if (eventSlave.lips > 40) { + r.push(`pillowlike`); + } else if (eventSlave.lips > 20) { + r.push(`big`); + } else { + r.push(`pretty`); + } + r.push(`lips, spreading a blush across ${his} ${eventSlave.skin} cheeks. Your hands rove down ${his}`); + if (eventSlave.belly >= 1500) { + if (eventSlave.bellyPreg >= 1500) { + r.push(`pregnant`); + } else { + r.push(`swollen`); + } + } else if (eventSlave.weight > 190) { + r.push(`expansive`); + } else if (eventSlave.weight > 160) { + r.push(`ponderous`); + } else if (eventSlave.weight > 130) { + r.push(`big, soft`); + } else if (eventSlave.weight > 95) { + r.push(`plump`); + } else if (eventSlave.weight > 10) { + r.push(`plush`); + } else if (eventSlave.weight < -10) { + r.push(`thin`); + } else { + r.push(`nice`); + } + r.push(`body, coming to rest on ${his}`); + if (eventSlave.butt > 15) { + r.push(`immeasurable`); + } else if (eventSlave.butt > 10) { + r.push(`mind-blowing`); + } else if (eventSlave.butt > 7) { + r.push(`spectacular`); + } else if (eventSlave.butt > 5) { + r.push(`magnificent`); + } else if (eventSlave.butt > 3) { + r.push(`rounded`); + } else { + r.push(`tight`); + } + r.push(`butt. You hug ${him} up and into you, crushing ${his}`); + if (eventSlave.boobs > 2000) { + r.push(`titanic`); + } else if (eventSlave.boobs > 800) { + r.push(`big`); + } else { + r.push(`small`); + } + r.push(`breasts against`); + const bust = V.PC.boobsImplant !== 0 ? "balloons" : "bust"; + if (V.PC.boobs >= 1400) { + r.push(`your enormous ${bust}.`); + } else if (V.PC.boobs >= 1200) { + r.push(`your huge ${bust}.`); + } else if (V.PC.boobs >= 1000) { + r.push(`your big ${bust}.`); + } else if (V.PC.boobs >= 300) { + r.push(`yours.`); + } else if (V.PC.title === 0) { + r.push(`your flat ones.`); + } else { + r.push(`your manly chest.`); + } + r.push(`Before long being kissed and held by ${his} beloved ${getWrittenTitle(eventSlave)} has ${him} playing the slut in your arms, and ${he} backs against the wall before wrapping ${his} legs around your middle to bring ${his} pussy against your`); + const body = eventSlave.bellyPreg >= 3000 ? "gravid bulk" : "distended body"; + if (V.PC.dick === 0) { + r.push(`own.`); + if (eventSlave.belly >= 5000) { + r.push(`You move your hands under ${him} to better support ${his} ${body}.`); + } + r.push(`${He} moans in pain as you scissor against ${his} sore pussy,`); + } else { + r.push(`stiff prick.`); + if (eventSlave.preg > eventSlave.pregData.normalBirth/2) { + r.push(`You move your hands under ${him} to better support ${his} ${body}.`); + } + r.push(`${He} gasps in pain as you press past ${his} sore pussylips,`); + } + r.push(`but before long ${he}'s grinding against you with ${his} back propped against the wall, using the embrace of ${his} strong legs to provide the power for a vigorous fuck. When ${he} finally slides down the wall to stand again, a look of <span class="devotion inc">profound pleasure</span> on ${his} face, ${he} lets you know that ${he} understands your meaning and that ${he}'ll put up with sore petals, since ${his} ${getWrittenTitle(eventSlave)} prefers ${him} that way.`); + r.push(VCheck.Vaginal(eventSlave, 1)); + eventSlave.devotion += 4; + return r; + } + } +}; diff --git a/src/events/randomEvent.js b/src/events/randomEvent.js index ae0998fbfce22f1c2c330d172a0d2a47c28bec5a..57a3014cc0d044e74128c93ad480692471c909c6 100644 --- a/src/events/randomEvent.js +++ b/src/events/randomEvent.js @@ -35,6 +35,7 @@ App.Events.getIndividualEvents = function() { new App.Events.RESSHotPC(), new App.Events.RESSImpregnationPlease(), new App.Events.RESSImScared(), + new App.Events.RESSInconvenientLabia(), new App.Events.RESSInjectionsPlease(), new App.Events.RESSKitchenMolestation(), new App.Events.RESSLanguageLesson(), diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js index d8635e6204005d78427a77e64a50ca677b24e857..ff4745726574a9b88eb25b2dbe6b463627c7899e 100644 --- a/src/js/eventSelectionJS.js +++ b/src/js/eventSelectionJS.js @@ -562,18 +562,6 @@ if(eventSlave.drugs === "breast injections") { } } - if (eventSlave.labia > 1 && eventSlave.vagina >= 0) { - if (eventSlave.muscles > 5 || eventSlave.diet === "muscle building") { - if (eventSlave.belly < 10000) { - if (eventSlave.devotion > 20) { - if (eventSlave.trust > 20) { - V.RESSevent.push("inconvenient labia"); - } - } - } - } - } - if (eventSlave.devotion <= 50) { if (eventSlave.trust >= -50) { if (eventSlave.behavioralFlaw === "gluttonous") { diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw index ff8a58cf66e11705a82ac778cf7271e45c89fc67..192803118b87cc8d2ed1d7df72f4094d18b666bb 100644 --- a/src/uncategorized/RESS.tw +++ b/src/uncategorized/RESS.tw @@ -89,17 +89,6 @@ "used whore", "vocal disobedience"].includes($RESSevent)>> <<set $activeSlave.clothes = "no clothing">> -<<elseif $RESSevent == "inconvenient labia">> - /* "pulling down the compression shorts $he was wearing" */ - <<if isItemAccessible.entry("sport shorts", "clothes")>> - <<if $activeSlave.boobs >= 650>> - <<set $activeSlave.clothes = "sport shorts and a sports bra">> - <<else>> - <<set $activeSlave.clothes = "sport shorts">> - <</if>> - <<else>> - <<set $activeSlave.clothes = "spats and a tank top">> - <</if>> <</if>> <span id="art-frame"> @@ -1237,27 +1226,6 @@ Late one night, <<= App.UI.slaveDescriptionDialog($activeSlave)>> comes to see y <br><br> As the Free Cities grow and evolve, slave culture does too. It seems this is a new tradition among obedient sex slaves. $He obviously expects you to do the honors, and it seems the rest of your slaves are looking forward to it. -<<case "inconvenient labia">> - -You see <<= App.UI.slaveDescriptionDialog($activeSlave)>> moving gingerly as $he heads out of the workout room, as though $he's suffering some pain in $his groin. Since $he's coming off a workout rather than any duty that would explain a sore pussy, you head over to $him to investigate. $He greets you properly, looking a little rueful. -<br><br> -<<if !canTalk($activeSlave)>> - $He gestures impatiently at $his pussy, pulling down the compression shorts $he was wearing to display $his generous labia. $He humorously pantomimes them moving about as $he exercises and indicates pain. -<<else>> - <<if ($activeSlave.lips > 70)>> - $He lisps through $his massive lips, - <<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>> - $He lisps through $his huge piercings, - <</if>> - "<<Master>>, my pu<<ss>>ylip<<s>> are really big. They make running on the treadmill really painful, even wearing my compre<<ss>>ion <<sh>>ort<<s>>," $he explains. "They ju<<s>>t kind of get in the way." -<</if>> -$He looks doubtful, as though $he's wondering whether to make a request. Finally $he makes up $his mind to ask: -<<if !canTalk($activeSlave)>> - $he waves towards the surgery, and gestures about the labiaplasty $he knows some slaves receive, asking you if $he can have $hers reduced. -<<else>> - "May I have labiapla<<s>>ty, <<Master>>? It would make working out <<s>>o much ea<<s>>ier on my poor pu<<ss>>y." -<</if>> - <<case "restricted profession">> <<set _shoutitoutloud = $enunciate.title.toUpperCase()>> @@ -7470,91 +7438,6 @@ $He cranes $his neck, glancing over $his shoulder to give you a pleading look. <</replace>> <</link>> -<<case "inconvenient labia">> - -<<link "Let $him have labiaplasty to resolve the issue">> - <<replace "#result">> - When you assent, $he cheers up immediately, looking remarkably happy for a $girl who's just learned $his vagina is about to have a surgical operation performed on it. Then again, having those huge pussylips constantly getting in $his way when $he runs must be extremely uncomfortable, so it's not shocking $he would consider a radical solution to $his problem. When $he exits the remote surgery, $he looks @@.health.dec;sorer than ever,@@ of course, but $he @@.hotpink;smiles gratefully@@ at you the next time $he <<if canSee($activeSlave)>>sees<<else>>meets<</if>> you, and lets you know $he's really looking forward to recovering enough for $him to take $his beloved <<= getWrittenTitle($activeSlave)>> into $his @@.orange;newly streamlined cunt.@@ - <<set $activeSlave.devotion += 4, $activeSlave.labia = 0>> - <<run surgeryDamage($activeSlave, 10)>> - <</replace>> -<</link>> -<<if canDoVaginal($activeSlave)>> - <br><<link "Let $him know $he's got a wonderful vagina">> - <<replace "#result">> - By way of an answer, you embrace $him and give $him a deep kiss on $his - <<if $activeSlave.lips > 70>> - enormous - <<elseif $activeSlave.lips > 40>> - pillowlike - <<elseif $activeSlave.lips > 20>> - big - <<else>> - pretty - <</if>> - lips, spreading a blush across $his $activeSlave.skin cheeks. Your hands rove down $his - <<if $activeSlave.belly >= 1500>> - <<if $activeSlave.bellyPreg >= 1500>> - pregnant - <<else>> - swollen - <</if>> - <<elseif $activeSlave.weight > 190>> - expansive - <<elseif $activeSlave.weight > 160>> - ponderous - <<elseif $activeSlave.weight > 130>> - big, soft - <<elseif $activeSlave.weight > 95>> - plump - <<elseif $activeSlave.weight > 10>> - plush - <<elseif $activeSlave.weight < -10>> - thin - <<else>> - nice - <</if>> - body, coming to rest on $his - <<if $activeSlave.butt > 15>> - immeasurable - <<elseif $activeSlave.butt > 10>> - mind-blowing - <<elseif $activeSlave.butt > 7>> - spectacular - <<elseif $activeSlave.butt > 5>> - magnificent - <<elseif $activeSlave.butt > 3>> - rounded - <<else>> - tight - <</if>> - butt. You hug $him up and into you, crushing $his <<if $activeSlave.boobs > 2000>>titanic<<elseif $activeSlave.boobs > 800>>big<<else>>small<</if>> breasts against - <<if $PC.boobs >= 1400>> - your enormous <<if $PC.boobsImplant != 0>>balloons<<else>>bust<</if>>. - <<elseif $PC.boobs >= 1200>> - your huge <<if $PC.boobsImplant != 0>>balloons<<else>>bust<</if>>. - <<elseif $PC.boobs >= 1000>> - your big <<if $PC.boobsImplant != 0>>balloons<<else>>bust<</if>>. - <<elseif $PC.boobs >= 300>> - yours. - <<elseif $PC.title == 0>> - your flat ones. - <<else>> - your manly chest. - <</if>> - Before long being kissed and held by $his beloved <<= getWrittenTitle($activeSlave)>> has $him playing the slut in your arms, and $he backs against the wall before wrapping $his legs around your middle to bring $his pussy against your - <<if $PC.dick == 0>> - own.<<if $activeSlave.belly >= 5000>> You move your hands under $him to better support $his <<if $activeSlave.bellyPreg >= 3000>>gravid bulk<<else>>distended body<</if>>.<</if>> $He moans in pain as you scissor against $his sore pussy, - <<else>> - stiff prick.<<if $activeSlave.preg > $activeSlave.pregData.normalBirth/2>> You move your hands under $him to better support $his <<if $activeSlave.bellyPreg >= 3000>>gravid bulk<<else>>distended body<</if>>.<</if>> $He gasps in pain as you press past $his sore pussylips, - <</if>> - but before long $he's grinding against you with $his back propped against the wall, using the embrace of $his strong legs to provide the power for a vigorous fuck. When $he finally slides down the wall to stand again, a look of @@.hotpink;profound pleasure@@ on $his face, $he lets you know that $he understands your meaning and that $he'll put up with sore petals, since $his <<= getWrittenTitle($activeSlave)>> prefers $him that way. - <<= VCheck.Vaginal($activeSlave, 1)>> - <<set $activeSlave.devotion += 4>> - <</replace>> - <</link>><<if ($activeSlave.vagina == 0)>> //This option will take $his virginity//<</if>> -<</if>> - <<case "restricted profession">> <<link "Let $him speak briefly if $he's very quiet">>