diff --git a/src/events/ressLazyEvening.js b/src/events/RESS/lazyEvening.js similarity index 100% rename from src/events/ressLazyEvening.js rename to src/events/RESS/lazyEvening.js diff --git a/src/events/RESS/muscles.js b/src/events/RESS/muscles.js new file mode 100644 index 0000000000000000000000000000000000000000..cbe2e93b62d76a394f4479047fabedd52c5e2cc6 --- /dev/null +++ b/src/events/RESS/muscles.js @@ -0,0 +1,189 @@ +App.Events.RESSMuscles = class RESSMuscles extends App.Events.BaseEvent { + constructor(actors, params) { + super(actors, params); + } + + eventPrerequisites() { + return []; + } + + actorPrerequisites() { + return [ + [ // single event slave + s => s.fetish !== "mindbroken", + hasAnyArms, + hasAnyLegs, + s => s.muscles > 30, + s => s.weight <= 10 + ] + ]; + } + + execute(node) { + let [eventSlave] = this.actors.map(a => getSlave(a)); + const { + He, he, His, his, hers, him, himself, girl + } = getPronouns(eventSlave); + + V.nextLink = "Next Week"; + + App.Events.drawEventArt(node, eventSlave, "no clothing"); + + let t = []; + t.push(`Early one morning,`); + t.push(App.UI.DOM.slaveDescriptionDialog(eventSlave)); + if (!canWalk(eventSlave)) { + t.push(`crawls`); + } else if ((eventSlave.shoes === "heels") || (eventSlave.shoes === "pumps") || (eventSlave.shoes === "boots") || (eventSlave.shoes === "extreme heels")) { + t.push(`totters`); + } else if (eventSlave.belly >= 10000) { + t.push(`waddles`); + } else { + t.push(`walks`); + } + t.push(`past your door stark naked, with a towel thrown over ${his} shoulder. ${He}'s clearly moving from the gym to the showers after a hard workout; ${he}'s quite the iron pumper and gets up before anyone to protect ${his} gains. ${He} notices your gaze, so ${he} subtly flexes for your benefit. Cords of muscle ripple along ${his} massive thighs,`); + if (eventSlave.bellyPreg >= 15000) { + // no abs + } else if (eventSlave.bellyPreg >= 10000) { + t.push(`pregnancy ruined abs,`); + } else if (eventSlave.belly >= 10000) { + t.push(`hints of what were once abs across ${his} ${bellyAdjective(eventSlave)} taut middle,`); + } else if (eventSlave.belly >= 1500) { + t.push(`broadening abs,`); + } else { + t.push(`washboard abs,`); + } + t.push(`ripped biceps, and strapping lats.`); + if (eventSlave.dick > 2) { + t.push(`${His} massive cock completes the picture.`); + } + App.Events.addParagraph(node, t); + + App.Events.addResponses(node, [ + new App.Events.Result(`Reward ${him} for ${his} gains`, reward, fuckNote()), + new App.Events.Result(`Take advantage of ${his} gains with a powerfuck`, powerfuck, fuckNote()), + ((eventSlave.toyHole === "dick" || V.sexualOpeness === 1) && canPenetrate(eventSlave) && eventSlave.belly < 100000) + ? new App.Events.Result(`See if ${he} can put those gains to good use`, penetration, "This option will penetrate you") + : new App.Events.Result(), + new App.Events.Result(`Compliment ${his} gains and send ${him} on ${his} way`, compliment), + ]); + + function fuckNote() { + if (V.PC.dick > 0) { + if (canDoVaginal(eventSlave) && (eventSlave.vagina === 0)) { + return `This option will take ${his} virginity`; + } else if (!canDoVaginal(eventSlave) && canDoAnal(eventSlave) && (eventSlave.anus === 0)) { + return `This option will take ${his} anal virginity`; + } + } + return null; + } + + function reward() { + let t = []; + t.push(`You tell ${him} to spread ${his} towel on the floor and lie`); + if (eventSlave.belly >= 5000) { + t.push(`on ${his} side on it. You lie next to ${him} and`); + } else { + t.push(`face-down on it. You`); + } + t.push(`run your hands across ${his} sweaty ${V.seeRace === 1 ? eventSlave.race : ""} muscles before giving ${him} a thorough, skillful and very intense massage. ${He} moans and grunts as you work the lactic acid out of ${his} muscles, slowly reducing ${him} to a puddle of ripped sex slave. As you're rubbing ${him} down to finish the massage, ${he} meekly begs you to fuck ${him}.`); + if (!canDoVaginal(eventSlave) && !canDoAnal(eventSlave)) { + t.push(`You tell ${him} that's not an option and pull ${him} into a kiss instead. It's a strange sensation, this mass of muscle lying quietly still in your arms you, whimpering with delight as you gently make out with ${him}. Your wandering hands eventually tip ${him} over the edge; ${he} hugs you tight as ${he} shakes with orgasm. Once ${he} stops crushing you, you return to enjoying ${his} sweaty body.`); + } else { + t.push(`As ${he} lies still,`); + if (V.PC.dick === 0) { + t.push(`you lift one of ${his} legs and straddle yourself in to bring your groin against ${hers}. It's a strange sensation, this mass of muscle lying quietly still beneath you, whimpering with delight as you gently scissor yourself against ${him}. ${He} comes in no time at all. When ${he} does ${he} squeezes you between vicelike thighs, ${V.PC.vagina !== -1 ? "pressing your pussy deliciously and" : ""} bringing you to climax, too.`); + } else { + t.push(`you slowly push your cock into ${his}`); + if (canDoVaginal(eventSlave)) { + t.push(`pussy; ${he}'s so relaxed from the massage that it slides in easily.`); + VCheck.Vaginal(1, eventSlave); + t.push(`It's a strange sensation, this mass of muscle lying quietly still beneath you, whimpering with delight as you gently penetrate ${him}. ${He} comes in no time at all. When ${he} does you happen to be halfway inside ${him}; ${he} wraps ${his} legs around you and pulls you into ${his} depths. You explode into ${him} as ${he} holds you in place with ${his} vicelike thighs.`); + } else { + t.push(`ass; ${he}'s so relaxed from the massage that it slides in easily.`); + VCheck.Anal(1, eventSlave); + t.push(`It's a strange sensation, this mass of muscle lying quietly still beneath you, whimpering with delight as you gently take ${his} ass. ${He} comes in no time at all. When ${he} does you happen to be halfway inside ${him}; ${his} sphincter mercilessly squeezes your head while ${his} muscular buttocks clench your shaft between them. You explode into ${him}.`); + } + } + if (eventSlave.dick > 0) { + t.push(`As ${he} stands, ${his} now-softening penis drips cum.`); + } + } + t.push(`<span class="devotion inc">${His} love for you has increased.</span>`); + eventSlave.devotion += 4; + return t; + } + + function powerfuck() { + let t = []; + t.push(`It's time to see if ${he}'s got anything left in those sore ${V.seeRace === 1 ? eventSlave.race : ""} muscles. You push the towel off ${his} shoulder, take a lick of the delicious salty sweat along ${his} collarbone, and get to work. For the next hour, you put ${him} through a series of sexual positions that require ${him} to balance and support ${himself} in difficult positions. ${He} hangs from the ceiling, goes up on one tiptoe, and fucks in a handstand. ${He}'s as muscular inside as ${he} is outside.`); + if (V.PC.dick === 0) { + t.push(`You climax repeatedly, mixing your pussy juice with ${his} sweat all across ${his} body.`); + } else { + if (canDoVaginal(eventSlave)) { + VCheck.Vaginal(1, eventSlave); + t.push(`You come repeatedly, and before long cum is dripping out of ${his} pussy as you continue.`); + } else if (canDoAnal(eventSlave)) { + VCheck.Anal(1, eventSlave); + t.push(`You come repeatedly, and before long cum is dripping out of ${his} ass as you continue.`); + } else { + t.push(`You come repeatedly, leaving ropes of your cum all across ${his} sweaty body.`); + } + } + if (eventSlave.dick > 0) { + t.push(`From position to position, ${his} erection adds its own fluids to the mess on the floor.`); + } + t.push(`By the end, ${he}'s shaking from muscle fatigue and panting ${his} gratitude. <span class="trust inc">${His} confidence in ${his} place has increased.</span>`); + eventSlave.trust += 4; + return t; + } + + function penetration() { + let t = []; + t.push(`It's time to see if ${he}'s got anything left in those sore ${V.seeRace === 1 ? eventSlave.race : ""} muscles. You order ${him} to take you in a standing fuck${V.PC.belly >= 10000 ? ", a tall order given how pregnant you are" : ""}. Despite how exhausted ${he} is, ${he} manages to lift you and hilt ${himself} in your`); + if (V.PC.vagina !== -1) { + t.push("pussy."); + } else { + t.push("ass."); + } + t.push(`You feel ${his} quivering trying to hold you up, so you permit ${him} to take you against the wall; a welcome respite for the`); + if (eventSlave.belly >= 5000) { + if (eventSlave.bellyPreg >= 3000) { + if (eventSlave.belly >= 100000) { + t.push("massively"); + } else if (eventSlave.belly >= 10000) { + t.push("hugely"); + } + t.push("pregnant"); + } else if (eventSlave.bellyFluid >= 5000) { + t.push(`${eventSlave.inflationType} filled`); + } else { + t.push(`${bellyAdjective(eventSlave)} bellied`); + } + } + t.push("sweaty"); + if (eventSlave.physicalAge > 30) { + t.push(`MILF.`); + } else if (eventSlave.physicalAge > 17) { + t.push(`slave${girl}.`); + } else if (eventSlave.physicalAge > 12) { + t.push(`teenager.`); + } else { + t.push(`kid.`); + } + t.push(`${He} dominantly fucks you, ${his} muscles flexing powerfully with every thrust. You're no slouch when it comes to muscles yourself, so when you feel ${him} tense with orgasm you wrap your legs around ${him} and hilt ${him} deep inside you. This only encourages ${him} to fuck you harder, quickly bring you to climax as well. ${He} gently carries you to your couch, where ${he} slides in behind you for a little post-coitus spooning. You definitely appreciate ${his} gains after such a good fuck. <span class="trust inc">${His} confidence in ${his} place has increased,</span> as has ${his} <span class="devotion inc">love for you.</span>`); + eventSlave.trust += 4; + eventSlave.devotion += 4; + seX(eventSlave, "penetrative", V.PC, "vaginal"); + if (canImpreg(V.PC, eventSlave)) { + knockMeUp(V.PC, 50, 0, eventSlave.ID); + } + return t; + } + + function compliment() { + return [`${He} finishes posing with an impressive display of ${his} obliques. ${He} walks powerfully to the shower, ${his} ripped buttocks delineating each step. The shower is glass-walled. As ${he} washes, several of your other slaves are waking up and starting their days. They can't help but stare as ${eventSlave.slaveName} soaps ${himself}. ${eventSlave.slaveName} enjoys the attention.`]; + } + } +}; diff --git a/src/events/eventUtils.js b/src/events/eventUtils.js index a028ee204bf9e86365966926b318bb5f039c8c1b..9d3b23f75dc0fc0742faeecd824850d03febb0ef 100644 --- a/src/events/eventUtils.js +++ b/src/events/eventUtils.js @@ -117,14 +117,21 @@ App.Events.Result = class { App.UI.DOM.replace("#result", frag); } - /** build the response DOM (for use by addResponses) */ + /** build the response DOM (for use by addResponses) + * @param {HTMLElement} node + * @returns {boolean} - true if something was written, false if not + */ makeResponse(node) { + let wrote = false; if (this.text && this.handler) { node.appendChild(App.UI.DOM.link(this.text, () => this.handle())); + wrote = true; } if (this.note) { node.appendChild(App.UI.DOM.makeElement("span", this.note, "detail")); + wrote = true; } + return wrote; } }; @@ -136,8 +143,9 @@ App.Events.addResponses = function(node, results) { let resultSpan = document.createElement("span"); resultSpan.id = "result"; for (const result of results) { - result.makeResponse(resultSpan); - resultSpan.appendChild(document.createElement("br")); + if (result.makeResponse(resultSpan)) { + resultSpan.appendChild(document.createElement("br")); + } } node.appendChild(resultSpan); }; diff --git a/src/events/randomEvent.js b/src/events/randomEvent.js index c5d2fa1b8c3d1bbd15e3f4e7847a1a48de7a8a6d..4c77029de340a0d29e4f0e7079ec6dca13c8f7f7 100644 --- a/src/events/randomEvent.js +++ b/src/events/randomEvent.js @@ -123,6 +123,7 @@ App.Events.getIndividualEvents = function(slave) { // instantiate all possible random individual events here // example: new App.Events.TestEvent(), new App.Events.RESSLazyEvening(), + new App.Events.RESSMuscles(), ] .filter(e => (e.eventPrerequisites().every(p => p()) && e.castActors(slave))) .reduce((res, cur) => res.concat(Array(cur.weight).fill(cur)), []); diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js index da0d4d3a96dd89ce444440b0386e53f41963d81c..6c94744c810897e30b856f04398924df0e9e0845 100644 --- a/src/js/eventSelectionJS.js +++ b/src/js/eventSelectionJS.js @@ -1185,16 +1185,6 @@ window.generateRandomEventPoolStandard = function(eventSlave) { } } - if (eventSlave.muscles > 30) { - if (eventSlave.weight <= 10) { - if (eventSlave.anus !== 0 || State.variables.PC.dick === 0) { - if (eventSlave.vagina !== -1 || State.variables.PC.dick === 0) { - State.variables.RESSevent.push("muscles"); - } - } - } - } - if (eventSlave.devotion >= -20) { if (eventSlave.lactation > 1) { if (canDoVaginal(eventSlave) || canDoAnal(eventSlave)) { @@ -2549,16 +2539,6 @@ window.generateRandomEventPoolServant = function(eventSlave) { } } - if (eventSlave.muscles > 30) { - if (eventSlave.weight <= 10) { - if (eventSlave.anus !== 0 || State.variables.PC.dick === 0) { - if (eventSlave.vagina !== 0 || State.variables.PC.dick === 0) { - State.variables.RESSevent.push("muscles"); - } - } - } - } - if (eventSlave.devotion >= -20) { if (eventSlave.lactation > 1) { if (canDoVaginal(eventSlave) || canDoAnal(eventSlave)) { diff --git a/src/js/sexActsJS.js b/src/js/sexActsJS.js index 0e236b95861d2f72d81402f469450a567678a81f..4192a80597b1b89a9c63c0ddeb229aa90919da58 100644 --- a/src/js/sexActsJS.js +++ b/src/js/sexActsJS.js @@ -27,10 +27,10 @@ window.VCheck = (function() { /** call as VCheck.Anal() * @param {number} [times=1] is how many times to increment the anal counts. + * @param {App.Entity.SlaveState} [slave=V.activeSlave] * @returns {string} */ - function AnalVCheck(times = 1) { - const slave = V.activeSlave; + function AnalVCheck(times = 1, slave = V.activeSlave) { let r = ''; setScopedPronouns(slave); @@ -72,10 +72,10 @@ window.VCheck = (function() { /** call as VCheck.Vaginal() * @param {number} [times=1] is how many times to increment the vaginal counts. + * @param {App.Entity.SlaveState} [slave=V.activeSlave] * @returns {string} */ - function VaginalVCheck(times = 1) { - const slave = V.activeSlave; + function VaginalVCheck(times = 1, slave = V.activeSlave) { let r = ''; setScopedPronouns(slave); @@ -119,10 +119,10 @@ window.VCheck = (function() { /** call as VCheck.Both() * @param {number} [analTimes=1] how many times to increment the anal counts, if there is no vagina available. * @param {number} [bothTimes=1] how many times to increment both holes counts (usually it is half of analTimes). + * @param {App.Entity.SlaveState} [slave=V.activeSlave] * @returns {string} */ - function BothVCheck(analTimes = 1, bothTimes = 1) { - const slave = V.activeSlave; + function BothVCheck(analTimes = 1, bothTimes = 1, slave = V.activeSlave) { let r = ''; setScopedPronouns(slave); @@ -232,13 +232,14 @@ window.VCheck = (function() { /** call as VCheck.Simple() * @param {number} [times=1] how many times to increment either the Vaginal or the Anal counts, if there is no Vagina available. + * @param {App.Entity.SlaveState} [slave=V.activeSlave] * @returns {string} */ - function SimpleVCheck(times = 1) { - if (canDoVaginal(State.variables.activeSlave)) { - return VaginalVCheck(times); - } else if (canDoAnal(State.variables.activeSlave)) { - return AnalVCheck(times); + function SimpleVCheck(times = 1, slave = V.activeSlave) { + if (canDoVaginal(slave)) { + return VaginalVCheck(times, slave); + } else if (canDoAnal(slave)) { + return AnalVCheck(times, slave); } } diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw index 8e5d034b3a5ee32415c50287ad17ac2e1cc7005d..e0aa700b13ac30b523b2478b761919d50aa3313c 100644 --- a/src/uncategorized/RESS.tw +++ b/src/uncategorized/RESS.tw @@ -44,7 +44,7 @@ <<set _clothesTemp = $activeSlave.clothes>> <<switch $RESSevent>> /*Some events start with the slave naked (any event that starts with the daily inspection, for example). Here we switch their clothing just for the image to load, then switch it back quickly so the player's choice is not messed up.*/ -<<case "age implant" "ara ara" "ass fitting" "back stretch" "bad dream" "bed snuggle" "bondage gear" "bonded love" "breast expansion blues" "cockfeeder resistance" "confident tanning" "devoted educated slave" "devoted exhibition" "devoted lotion" "desperate null" "devoted nympho" "devoted shortstack" "devoted waist" "extreme aphrodisiacs" "fearful balls" "fucktoy tribbing" "gaped asshole" "happy dance" "heavy piercing" "huge naturals" "huge tits" "hugely pregnant" "ignorant horny" "im scared" "implant inspection" "kitchen molestation" "language lesson" "mindbroken morning" "modest clothes" "mods please" "moist pussy" "muscles" "obedient girlish" "obedient idiot" "old PC age difference" "orchiectomy please" "PA flirting" "penitent" "permitted masturbation" "plimb help" "rebellious arrogant" "resistant gelding" "resistant shower" "resting amp" "restricted profession" "restricted smart" "retching cum feeding" "sexy succubus" "shaped areolae" "shift masturbation" "shift sleep" "shower slip" "slave clit on slave" "slave dick huge" "slave dick on slave" "sleeping ambivalent" "sore shoulders" "spa boobs" "subjugation blues" "suppository resistance" "tendon fall" "terrified inspection" "tittymonster inspection" "torpedo squeeze" "transition anxiety" "trusting HG" "unhappy virgin" "used whore" "vocal disobedience" "young PC age difference">> +<<case "age implant" "ara ara" "ass fitting" "back stretch" "bad dream" "bed snuggle" "bondage gear" "bonded love" "breast expansion blues" "cockfeeder resistance" "confident tanning" "devoted educated slave" "devoted exhibition" "devoted lotion" "desperate null" "devoted nympho" "devoted shortstack" "devoted waist" "extreme aphrodisiacs" "fearful balls" "fucktoy tribbing" "gaped asshole" "happy dance" "heavy piercing" "huge naturals" "huge tits" "hugely pregnant" "ignorant horny" "im scared" "implant inspection" "kitchen molestation" "language lesson" "mindbroken morning" "modest clothes" "mods please" "moist pussy" "obedient girlish" "obedient idiot" "old PC age difference" "orchiectomy please" "PA flirting" "penitent" "permitted masturbation" "plimb help" "rebellious arrogant" "resistant gelding" "resistant shower" "resting amp" "restricted profession" "restricted smart" "retching cum feeding" "sexy succubus" "shaped areolae" "shift masturbation" "shift sleep" "shower slip" "slave clit on slave" "slave dick huge" "slave dick on slave" "sleeping ambivalent" "sore shoulders" "spa boobs" "subjugation blues" "suppository resistance" "tendon fall" "terrified inspection" "tittymonster inspection" "torpedo squeeze" "transition anxiety" "trusting HG" "unhappy virgin" "used whore" "vocal disobedience" "young PC age difference">> <<set $activeSlave.clothes = "no clothing">> <<case "whore rebellious">> /* this scene states they are wearing "thick, durable latex with temperature regulation and anchor points for restraint" no matter what they are assigned to wear. */ @@ -2463,31 +2463,6 @@ Lately, you've noticed that $he reacts to these <<if canSee($activeSlave)>>sight <<= App.UI.slaveDescriptionDialog($activeSlave)>> is a real work of surgical art. As $he showers, carefully soaping and then moisturizing every <<if $showInches == 2>>inch<<else>>centimeter<</if>> of $his $activeSlave.skin skin, you notice the undeniable eroticism created by the unnatural narrowness of $his middle<<if $activeSlave.belly >= 5000>>, especially given how much $his _belly <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>belly<</if>> extends past $his sides<</if>>. Though $his hands are by no means large, when $he washes $his sides, $his hands span almost the entire circumference of $his waist. <<if $activeSlave.dick > 0>>Though $he's not sexually aroused, $his cock is visible as $he bathes $himself; $his member and $his narrow waist work together to create a real mélange of gender traits.<<elseif ($activeSlave.boobs > 800) && ($activeSlave.butt > 4)>>$His massive bust and hips work together to create a spectacular hourglass effect; $he's a fantasy $woman made flesh.<<else>>The narrowness of $his waist accentuates $his feminine features.<</if>> -<<case "muscles">> - -Early one morning, <<= App.UI.slaveDescriptionDialog($activeSlave)>> -<<if !canWalk($activeSlave)>> - crawls -<<elseif ($activeSlave.shoes == "heels") || ($activeSlave.shoes == "pumps") || ($activeSlave.shoes == "boots") || ($activeSlave.shoes == "extreme heels")>> - totters -<<elseif $activeSlave.belly >= 10000>> - waddles -<<else>> - walks -<</if>> -past your door stark naked, with a towel thrown over $his shoulder. $He's clearly moving from the gym to the showers after a hard workout; $he's quite the iron pumper and gets up before anyone to protect $his gains. $He notices your gaze, so $he subtly flexes for your benefit. Cords of muscle ripple along $his massive thighs, -<<if $activeSlave.bellyPreg >= 15000>> -<<elseif $activeSlave.bellyPreg >= 10000>> - pregnancy ruined abs, -<<elseif $activeSlave.belly >= 10000>> - hints of what were once abs across $his _belly taut middle, -<<elseif $activeSlave.belly >= 1500>> - broadening abs, -<<else>> - washboard abs, -<</if>> -ripped biceps, and strapping lats. <<if $activeSlave.dick > 2>>$His massive cock completes the picture.<</if>> - <<case "obedient girlish">> <<= App.UI.slaveDescriptionDialog($activeSlave)>> is nice and @@ -13637,105 +13612,6 @@ brought in to you. This time <<= App.UI.slaveDescriptionDialog($activeSlave)>> h <</replace>> <</link>><<if ($activeSlave.anus == 0 && canDoAnal($activeSlave)) || ($activeSlave.vagina == 0 && canDoVaginal($activeSlave))>> //This option will take $his virginity//<</if>> -<<case "muscles">> - -<<link "Reward $him for $his gains">> - <<replace "#result">> - You tell $him to spread $his towel on the floor and lie - <<if $activeSlave.belly >= 5000>> - on $his side on it. You lie next to $him and - <<else>> - face-down on it. You - <</if>> - run your hands across $his sweaty <<if $seeRace == 1>>$activeSlave.race <</if>>muscles before giving $him a thorough, skillful and very intense massage. $He moans and grunts as you work the lactic acid out of $his muscles, slowly reducing $him to a puddle of ripped sex slave. As you're rubbing $him down to finish the massage, $he meekly begs you to fuck $him. - <<if !canDoVaginal($activeSlave) && !canDoAnal($activeSlave)>> - You tell $him that's not an option and pull $him into a kiss instead. It's a strange sensation, this mass of muscle lying quietly still in your arms you, whimpering with delight as you gently make out with $him. Your wandering hands eventually tip $him over the edge; $he hugs you tight as $he shakes with orgasm. Once $he stops crushing you, you return to enjoying $his sweaty body. - <<else>> - As $he lies still, - <<if $PC.dick == 0>> - you lift one of $his legs and straddle yourself in to bring your groin against $hers. It's a strange sensation, this mass of muscle lying quietly still beneath you, whimpering with delight as you gently scissor yourself against $him. $He comes in no time at all. When $he does $he squeezes you between vicelike thighs,<<if $PC.vagina != -1>> pressing your pussy deliciously and<</if>> bringing you to climax, too. - <<else>> - you slowly push your cock into $his - <<if canDoVaginal($activeSlave)>> - pussy; $he's so relaxed from the massage that it slides in easily. - <<= VCheck.Vaginal()>> - It's a strange sensation, this mass of muscle lying quietly still beneath you, whimpering with delight as you gently penetrate $him. $He comes in no time at all. When $he does you happen to be halfway inside $him; $he wraps $his legs around you and pulls you into $his depths. You explode into $him as $he holds you in place with $his vicelike thighs. - <<else>> - ass; $he's so relaxed from the massage that it slides in easily. - <<= VCheck.Anal()>> - It's a strange sensation, this mass of muscle lying quietly still beneath you, whimpering with delight as you gently take $his ass. $He comes in no time at all. When $he does you happen to be halfway inside $him; $his sphincter mercilessly squeezes your head while $his muscular buttocks clench your shaft between them. You explode into $him. - <</if>> - <</if>> - <<if $activeSlave.dick != 0>>As $he stands, $his now-softening penis drips cum. <</if>> - <</if>> - @@.hotpink;$His love for you has increased.@@ - <<set $activeSlave.devotion += 4>> - <</replace>> -<</link>><<if canDoVaginal($activeSlave) && ($activeSlave.vagina == 0)>>//This option will take $his virginity//<<elseif !canDoVaginal($activeSlave) && canDoAnal($activeSlave) && ($activeSlave.anus == 0)>> //This option will take $his anal virginity//<</if>> -<br><<link "Take advantage of $his gains with a powerfuck">> - <<replace "#result">> - It's time to see if $he's got anything left in those sore <<if $seeRace == 1>>$activeSlave.race <</if>>muscles. You push the towel off $his shoulder, take a lick of the delicious salty sweat along $his collarbone, and get to work. For the next hour, you put $him through a series of sexual positions that require $him to balance and support $himself in difficult positions. $He hangs from the ceiling, goes up on one tiptoe, and fucks in a handstand. $He's as muscular inside as $he is outside. - <<if $PC.dick == 0>> - You climax repeatedly, mixing your pussy juice with $his sweat all across $his body. - <<else>> - <<if canDoVaginal($activeSlave)>> - <<= VCheck.Vaginal()>> - You come repeatedly, and before long cum is dripping out of $his pussy as you continue. - <<elseif canDoAnal($activeSlave)>> - <<= VCheck.Anal()>> - You come repeatedly, and before long cum is dripping out of $his ass as you continue. - <<else>> - You come repeatedly, leaving ropes of your cum all across $his sweaty body. - <</if>> - <</if>> - <<if $activeSlave.dick != 0>>From position to position, $his erection adds its own fluids to the mess on the floor. <</if>>By the end, $he's shaking from muscle fatigue and panting $his gratitude. @@.mediumaquamarine;$His confidence in $his place has increased.@@ - <<set $activeSlave.trust += 4>> - <</replace>> -<</link>><<if canDoVaginal($activeSlave) && ($activeSlave.vagina == 0)>>//This option will take $his virginity//<<elseif !canDoVaginal($activeSlave) && canDoAnal($activeSlave) && ($activeSlave.anus == 0)>> //This option will take $his anal virginity//<</if>> -<<if ($activeSlave.toyHole == "dick" || $sexualOpeness == 1) && canPenetrate($activeSlave) && $activeSlave.belly < 100000>> - <br><<link "See if $he can put those gains to good use">> - <<replace "#result">> - It's time to see if $he's got anything left in those sore <<if $seeRace == 1>>$activeSlave.race <</if>>muscles. You order $him to take you in a standing fuck<<if $PC.belly >= 10000>>, a tall order given how pregnant you are<</if>>. Despite how exhausted $he is, $he manages to lift you and hilt $himself in your - <<if $PC.vagina != -1>> - pussy. - <<else>> - ass. - <</if>> - You feel $his quivering trying to hold you up, so you permit $him to take you against the wall; a welcome respite for the - <<if $activeSlave.belly >= 5000>> - <<if $activeSlave.bellyPreg >= 3000>> - <<if $activeSlave.belly >= 100000>>massively <<elseif $activeSlave.belly >= 10000>>hugely <</if>>pregnant - <<elseif $activeSlave.bellyFluid >= 5000>> - $activeSlave.inflationType filled - <<else>> - _belly bellied - <</if>> - <</if>> - sweaty - <<if $activeSlave.physicalAge > 30>> - MILF. - <<elseif $activeSlave.physicalAge > 17>> - slave<<= $girl>>. - <<elseif $activeSlave.physicalAge > 12>> - teenager. - <<else>> - kid. - <</if>> - $He dominantly fucks you, $his muscles flexing powerfully with every thrust. You're no slouch when it comes to muscles yourself, so when you feel $him tense with orgasm you wrap your legs around $him and hilt $him deep inside you. This only encourages $him to fuck you harder, quickly bring you to climax as well. $He gently carries you to your couch, where $he slides in behind you for a little post-coitus spooning. You definitely appreciate $his gains after such a good fuck. @@.mediumaquamarine;$His confidence in $his place has increased,@@ as has $his @@.hotpink;love for you.@@ - <<set $activeSlave.trust += 4, $activeSlave.devotion += 4>> - <<run seX($activeSlave, "penetrative", $PC, "vaginal")>> - <<if canImpreg($PC, $activeSlave)>> - <<= knockMeUp($PC, 50, 0, $activeSlave.ID)>> - <</if>> - <</replace>> - <</link>> //This option will penetrate you// -<</if>> -<br><<link "Compliment $his gains and send $him on $his way">> - <<replace "#result">> - $He finishes posing with an impressive display of $his obliques. $He walks powerfully to the shower, $his ripped buttocks delineating each step. The shower is glass-walled. As $he washes, several of your other slaves are waking up and starting their days. They can't help but stare as $activeSlave.slaveName soaps $himself. $activeSlave.slaveName enjoys the attention. - <</replace>> -<</link>> - <<case "obedient girlish">> <<link "Let $him get dressed and spend some quality time with $him">>