From aba05f575b091ea68b6a486285d8c346d8bbfc12 Mon Sep 17 00:00:00 2001 From: DCoded <dcoded@live.com> Date: Fri, 26 Apr 2019 16:42:02 -0400 Subject: [PATCH] Fixed errors in walkPast --- .eslintrc.json | 3 +- src/js/rulesAssistantOptions.js | 2 +- src/js/temp.js | 3099 +++++++++++++++++++++++++++++++ src/js/walkPastJS.js | 79 +- 4 files changed, 3141 insertions(+), 42 deletions(-) create mode 100644 src/js/temp.js diff --git a/.eslintrc.json b/.eslintrc.json index 2200a90298c..72b581a6b21 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -40,7 +40,8 @@ "comma-style": "error", "object-curly-newline": ["warn", { - "minProperties": 4 + "minProperties": 4, + "consistent": true } ], "object-curly-spacing": "error", diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js index 64ff79ac9da..07a7c2ed7b9 100644 --- a/src/js/rulesAssistantOptions.js +++ b/src/js/rulesAssistantOptions.js @@ -2261,7 +2261,7 @@ window.rulesAssistantOptions = (function() { "orange", "amber", "red" - ].forEach(i => items.push(new OptionsItem(i, item => {this.value = item.label;this.parent.setValue(); + ].forEach(i => items.push(new OptionsItem(i, item => {this.value = item.label; this.parent.setValue(); }))); super(items); } diff --git a/src/js/temp.js b/src/js/temp.js new file mode 100644 index 00000000000..b45ceed56fd --- /dev/null +++ b/src/js/temp.js @@ -0,0 +1,3099 @@ +/* eslint-disable no-unused-vars */ +/* temporary container until the entire thing is complete. No point in not deploying the working functions, you know? */ + +window.primeSlave = function(activeSlave, seed) { + + /* will be moved up once this becomes a single, contained function. */ + const V = State.variables; + const pronouns = getPronouns(activeSlave); + const he = pronouns.pronoun, + him = pronouns.object, + his = pronouns.possessive, + hers = pronouns.possessivePronoun, + himself = pronouns.objectReflexive, + boy = pronouns.noun; + const He = capFirstChar(he), + His = capFirstChar(his); + let _target = ""; + let t = ""; + let race = (V.seeRace ? activeSlave.race : ""); + + if (V.partner !== "relationship" || activeSlave.relationship === 1 || activeSlave.relationship === 2 || activeSlave.releaseRules === "restrictive") { + t += `${activeSlave.slaveName} `; + t += walkPasts(activeSlave, seed); + /* WALKPASTS END */ + } + /* TIME TOGETHER EXCEPTION ENDS */ + + return t; +}; + +window.rivalSlave = function(activeSlave, seed) { + const V = State.variables; + const pronouns = getPronouns(activeSlave); + const he = pronouns.pronoun, + him = pronouns.object, + his = pronouns.possessive, + hers = pronouns.possessivePronoun, + himself = pronouns.objectReflexive, + boy = pronouns.noun; + const He = capFirstChar(he), + His = capFirstChar(his); + let _partnerSlave = getSlave(activeSlave.rivalryTarget); + let t = ""; + let _target = ""; + + if (_partnerSlave !== undefined) { + /* potential problem point */ + // let race2 = (V.seeRace ? _partnerSlave.race : ""); + + t += " Meanwhile, "; + if (activeSlave.rivalry >= 3) { + t += `${_partnerSlave.slaveName}, whom ${he} hates, `; + } else if (activeSlave.rivalry >= 2) { + t += `${his} rival ${_partnerSlave.slaveName} `; + } else { + t += `${_partnerSlave.slaveName}, whom ${he} dislikes, `; + } + t += walkPasts(_partnerSlave, 100 - seed); + + _partnerSlave = null; + V.target = "FRival"; /* potentially removed later */ + } + + return t; +}; + +window.loverSlave = function(activeSlave) { + + /* will be moved up once this becomes a single, contained function. */ + let _target = ""; + let t = ""; + let V = State.variables; + let race; + if (V.seeRace === 1) { + race = activeSlave.race; + } else { + race = ""; + } + let name = activeSlave.slaveName; + const pronouns = getPronouns(activeSlave); + const he = pronouns.pronoun, + him = pronouns.object, + his = pronouns.possessive, + hers = pronouns.possessivePronoun, + himself = pronouns.objectReflexive, + boy = pronouns.noun; + const He = capFirstChar(he), + His = capFirstChar(his); + + let _partnerSlave = getSlave(activeSlave.relationshipTarget); + let _fuckSeed = jsRandom(1, 100); + let _seed = jsRandom(1, 100); + let _fuckSpot; + + if (_partnerSlave !== undefined) { + + let pronouns2 = getPronouns(_partnerSlave); + let he2 = pronouns2.pronoun, + him2 = pronouns2.object, + his2 = pronouns2.possessive, + hers2 = pronouns2.possessivePronoun, + himself2 = pronouns2.objectReflexive, + boy2 = pronouns2.noun; + let He2 = capFirstChar(he2), + His2 = capFirstChar(his2); + let race2; + if (V.seeRace === 1) { + race2 = _partnerSlave.race; + } else { + race2 = ""; + } + let partnerName = _partnerSlave.slaveName; + let activeSlaveRel; + if (activeSlave.relationship <= 3) { + activeSlaveRel = "friend with benefits"; + } else if (activeSlave.relationship <= 4) { + activeSlaveRel = "lover"; + } else { + activeSlaveRel = "slave wife"; + } + + t += `${name} and ${partnerName} are `; + if (!isSlaveAvailable(_partnerSlave)) { + if (_partnerSlave.assignment === "work in the dairy" && V.DairyRestraintsSetting >= 2) { + t += `trying their best to maintain their relationship with ${partnerName} being part of ${V.dairyName}.`; + } else if (_partnerSlave.assignment === "be your agent") { + t += `catching up with each other over a video call. Running an arcology in your stead comes with its perks.`; + } else if (_partnerSlave.assignment === "be confined in the arcade") { + t += `trying their best to maintain their relationship with ${partnerName} being nothing more than a hole in ${V.arcadeName}.`; + } + } else if (_seed >= 66) { + /* SEXY TIMES */ + + if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) { + _fuckSpot = `in ${partnerName}'s suite`; + } else if (activeSlave.livingRules === "luxurious") { + _fuckSpot = `in the nice little room they share`; + } else { + _fuckSpot = `out in the open in the slave dormitory`; + } + + if ((activeSlave.fetish === "dom" || activeSlave.fetish === "sadist") && canPenetrate(activeSlave) && (_partnerSlave.fetish === "dom" || _partnerSlave.fetish === "sadist") && canPenetrate(_partnerSlave)) { + t += `double penetrating another slave. They're face to face over their sub's shoulders, `; + if (canSee(activeSlave) && canSee(_partnerSlave)) { + t += `looking into each other's eyes `; + } else { + t += `locking lips `; + } + t += `with every appearance of enjoyment and love, since for them rubbing dicks inside another slave's pussy is what constitutes healthy sexual activity. ${partnerName} is on the bottom, and holds their victim atop ${him2} with ${partnerName}'s cock already hilted in her cunt so ${name} can force ${himself} inside as well. They enjoy the overstimulated girl's struggles.`; + } else if (activeSlave.energy > 95) { + t += `having loud sex ${_fuckSpot}. ${name} is such a sexual addict that ${he} wants it all the time, and ${partnerName} does ${his2} best to help ${his} ${activeSlaveRel} get off. `; + if (canPenetrate(activeSlave) && _fuckSeed > 50) { + if (canDoVaginal(_partnerSlave)) { + if (_partnerSlave.vagina === 0 && _partnerSlave.amp !== 1) { + t += `${name} has ${his} cock between ${partnerName}'s legs and is enjoying an enthusiastic thigh job.`; + } else if (_partnerSlave.vagina === 0) { + t += `${name} has ${his} cock between ${partnerName}'s labia and is enthusiastically teasing ${his} virgin lover.`; + } else if (_fuckSeed > 90 && _partnerSlave.amp !== 1) { + t += `${name} has ${partnerName} on ${his2} knees and is enthusiastically fucking ${his2} pussy doggy style.`; + } else if (_fuckSeed > 80 && activeSlave.amp !== 1) { + t += `${name} has ${partnerName} pushed against the wall is is fucking ${his2} pussy from behind.`; + } else if (_fuckSeed > 70) { + t += `${partnerName} has ${name} on ${his2} back and is enthusiastically bouncing on ${his2} dick.`; + } else if (_fuckSeed > 60) { + t += `${name} has ${partnerName} on ${his2} back and is enthusiastically fucking ${his2} pussy in the missionary position.`; + } else { + t += `${name} is enthusiastically fucking ${partnerName}'s pussy.`; + } + } else if (canDoAnal(_partnerSlave)) { + if (_partnerSlave.anus === 0) { + t += `${name} has ${his} cock sandwiched between ${partnerName}'s buttcheeks and is enthusiastically hotdogging ${his2} rear.`; + } else if (_fuckSeed > 90 && _partnerSlave.amp !== 1) { + t += `${name} has ${partnerName} on ${his2} knees and is enthusiastically fucking ${his2} ass doggy style.`; + } else if (_fuckSeed > 80 && activeSlave.amp !== 1) { + t += `${name} has ${partnerName} pushed against the wall is is fucking ${his2} ass from behind.`; + } else if (_fuckSeed > 70) { + t += `${partnerName} has ${name} on ${his} back and is enthusiastically bouncing on ${his} dick.`; + } else if (_fuckSeed > 60) { + t += `${name} has ${partnerName} on ${his2} stomach and is enthusiastically fucking ${his2} ass.`; + } else { + t += `${name} is enthusiastically fucking ${partnerName}'s ass.`; + } + } else if (_partnerSlave.boobs > 800) { + t += `${name} has ${partnerName} on ${his2} back and is enthusiastically fucking ${his2} tits.`; + } else { + t += `${name} has ${partnerName}'s face to ${his} crotch and is enthusiastically pounding ${his2} throat.`; + } + } else if (activeSlave.dick > 0 && _fuckSeed > 50) { + t += `${partnerName} has ${his2} lips wrapped around ${name}'s dick and is enthusiastically giving ${him} a blowjob.`; + } else if (canDoVaginal(activeSlave) && _fuckSeed > 30) { + if (canPenetrate(_partnerSlave) && activeSlave.vagina > 0) { + t += `${partnerName} is enthusiastically fucking ${name}'s pussy.`; + } else if (canDoVaginal(_partnerSlave)) { + t += `They're scissoring enthusiastically and playing with each other's breasts.`; + } else { + t += `${partnerName} is enthusiastically eating out ${name}'s pussy.`; + } + } else if (canDoAnal(activeSlave) && activeSlave.anus > 0 && _fuckSeed > 10) { + if (canPenetrate(_partnerSlave)) { + t += `${partnerName} is enthusiastically fucking ${name}'s ass.`; + } else if (_partnerSlave.amp !== 1) { + t += `${partnerName} is enthusiastically fisting ${name}'s ass.`; + } else { + t += `${partnerName} is enthusiastically pounding ${name}'s ass with a dildo.`; + } + } else { + t += `${partnerName} is enthusiastically using ${his2} tongue to bring ${name} to orgasm.`; + } + } else if (activeSlave.fetishStrength > 60 && activeSlave.fetishKnown === 1 && activeSlave.fetish !== "none") { + switch (activeSlave.fetish) { + case "boobs": + if (_fuckSeed > 60 && (activeSlave.lactation > 0 || _partnerSlave.lactation > 0)) { + t += `snuggling rather sexually ${_fuckSpot}. `; + if (_fuckSeed > 80 && _partnerSlave.lactation > 0) { + t += `${name} loves how milky ${partnerName}'s tits are and has ${his} lips wrapped around a nipple. `; + if (_partnerSlave.amp !== 1) { + t += `${partnerName} is left to moan lustfully and tweak ${his2} free nipple until ${his2} ${activeSlaveRel} has drank ${his} fill.`; + } else { + t += `${partnerName} is left to moan lustfully and squirm with desire until ${his2} ${activeSlaveRel} has drank ${his} fill and moves to ${his2} other nipple.`; + } + } else { + t += `${name} loves having ${his} breasts suckled and has ${partnerName}'s lips wrapped around a nipple. `; + if (activeSlave.amp !== 1) { + t += `${partnerName} is held close until ${his2} ${activeSlaveRel} has been completely emptied.`; + } else { + t += `${partnerName} knows that ${his2} ${activeSlaveRel} can't milk ${himself} and appreciates the act.`; + } + } + } else if (_fuckSeed > 30 && ((canPenetrate(activeSlave) && _partnerSlave.nipples === "fuckable") || (canPenetrate(_partnerSlave) && activeSlave.nipples === "fuckable"))) { + t += `having loud sex ${_fuckSpot}. ${name} loves `; + if (_fuckSeed > 45 && (canPenetrate(activeSlave) && _partnerSlave.nipples === "fuckable")) { + t += `taking advantage of ${partnerName}'s fuckable tits. The motion running through ${partnerName}'s breasts as ${he} humps is hypnotic.`; + } else { + t += `how well ${partnerName}'s cock feels in ${his} fuckable tits. The motion running through ${name}'s breasts as ${his} ${activeSlaveRel} fucks ${him} is hypnotic.`; + } + } else { + t += `snuggling rather sexually ${_fuckSpot}. ${name} loves having `; + if (activeSlave.boobs >= _partnerSlave.boobs) { + t += `${his} breasts touched and massaged, so ${partnerName} looks after ${his2} ${activeSlaveRel}'s tits. `; + if (_partnerSlave.amp === 1) { + t += `Since ${partnerName} is an amputee, ${name} has ${him2} propped on ${his} belly so ${he} can easily suckle and nuzzle.`; + } else { + t += `They're spooning in bed with ${partnerName} forming the large spoon so ${he2} can reach around and play with ${name}'s boobs.`; + } + } else { + t += `a nice pair of breasts to enjoy, so ${he} focuses ${his} attention on ${partnerName}'s larger bosom. `; + if (activeSlave.amp === 1) { + t += `Since ${name} is an amputee, ${partnerName} has ${him} propped on ${his2} belly so ${he} can make ${himself} comfortable in ${his2} bust.`; + } else if (_partnerSlave.amp !== 1) { + t += `They're spooning in bed with ${partnerName} forming the large spoon so ${he2} can reach around and play with ${name}'s boobs.`; + } else { + t += `Since they are both limbless, they've helped each other into a position where each can easily suckle and nuzzle the other's boobs.`; + } + } + } + break; + case "buttslut": + t += `having loud buttsex ${_fuckSpot}. ${name} is such an anal addict that ${he} wants it all the time, and ${partnerName} does ${his2} best to keep ${his2} ${activeSlaveRel} satisfied. `; + if (activeSlave.anus > 0 && canDoAnal(activeSlave)) { + t += `${name} is `; + if (activeSlave.amp !== 1) { + t += `down on ${his} knees in front of ${partnerName}, taking `; + } else { + t += `ass up in front of ${partnerName}, taking `; + } + if (canPenetrate(_partnerSlave)) { + t += `${his2} cock up the butt. `; + if (activeSlave.anus > 1) { + if (_partnerSlave.dick > 4) { + t += `${name} is clearly enjoying getting buttfucked by a cock big enough to make ${him} feel tight again.`; + } else if (_partnerSlave.dick > 2) { + t += `${name}'s loose ass takes ${partnerName}'s cock easily.`; + } else { + t += `${name} can barely tell ${partnerName}'s little dick is even there, but it's the thought that counts.`; + } + } else { + if (_partnerSlave.dick > 4) { + t += `${name} is panting and writhing with the pain of taking ${his} ${activeSlaveRel}'s massive dick. ${partnerName} is doing ${his2} best to be gentle.`; + } else if (_partnerSlave.dick > 2) { + t += `${name} is writhing with the mixed pain and pleasure of having ${his} tight ass stretched by ${his} ${activeSlaveRel}'s nice cock.`; + } else { + t += `${name}'s tight anus and ${partnerName}'s little dick work well together; ${name} can take it easily, and ${partnerName} gets to fuck a hole that's tight, even for ${him2}.`; + } + } + } else if (_partnerSlave.dick > 1) { + if (_partnerSlave.amp === 1) { + t += `a rimjob, since ${his} ${activeSlaveRel} is armless and `; + } else { + t += `a finger fuck, since ${his} ${activeSlaveRel} is `; + } + if (_partnerSlave.dick > 6) { + t += `too big to fit.`; + } else { + t += `impotent.`; + } + if (_partnerSlave.amp !== 1) { + if (activeSlave.anus > 2) { + t += ` Or rather, a fist fuck, since that's what it takes to satisfy ${his2} ${activeSlaveRel}'s gaping hole.`; + } else if (activeSlave.anus > 1) { + t += ` ${partnerName} is using three fingers to stretch ${his2} ${activeSlaveRel}'s asshole.`; + } else { + t += ` ${partnerName} is using two fingers to gently fuck ${his2} ${activeSlaveRel}'s tight anus.`; + } + } + } else if (_partnerSlave.clit > 3) { + t += `${his2} clit up the butt. `; + if (activeSlave.anus > 1) { + t += `${name} can barely tell ${partnerName}'s unorthodox phallus is in there, but it's the thought that counts.`; + } else { + t += `${name}'s tight anus and ${partnerName}'s clitdick work well together; ${name} can take it easily, and ${partnerName} gets to fuck a hole that hugs ${his2} sensitive rod tight.`; + } + } else { + t += `a strap-on up the butt, doggy style. ${partnerName} is using a `; + if (activeSlave.anus > 2) { + t += `massive fake phallus to satisfy ${his} ${activeSlaveRel}'s gaping hole.`; + } else if (activeSlave.anus > 1) { + t += `decent-sized fake phallus to stretch ${his} ${activeSlaveRel}'s asshole.`; + } else { + t += `small fake phallus to gently fuck ${his} ${activeSlaveRel}'s tight anus.`; + } + } + } else if (canDoAnal(activeSlave)) { + t += `Since ${name} is an anal virgin, ${partnerName} is rimming ${his2} ${activeSlaveRel}, who is clearly enjoying ${himself}.`; + } else { + t += `Since ${name}'s butthole is off-limits, ${partnerName} is simply toying with the overstimulated ${boy}'s rear.`; + } + break; + case "cumslut": + t += `sharing oral pleasure ${_fuckSpot}. ${name} is such an oral addict that ${he} wants it all the time, and ${partnerName} certainly doesn't mind all the loving oral attention. `; + if (((activeSlave.chastityPenis !== 1 && activeSlave.dick > 0) || canDoVaginal(activeSlave)) && ((_partnerSlave.chastityPenis !== 1 && _partnerSlave.dick > 0) || canDoVaginal(_partnerSlave))) { + t += `They're lying down to 69 comfortably, `; + if (_partnerSlave.chastityPenis !== 1 && _partnerSlave.dick > 0) { + if (canPenetrate(_partnerSlave)) { + t += `with ${name} hungrily sucking ${his} ${activeSlaveRel}'s turgid cock.`; + } else if (_partnerSlave.dick > 7 && activeSlave.amp !== 1) { + t += `with ${name} hungrily sucking ${his} ${activeSlaveRel}'s fat cock. ${He} is milking the oversized beast as best ${he} can in an effort to draw out a nice, big load of ${his2} cum.`; + } else if (_partnerSlave.anus > 0 && canDoAnal(_partnerSlave) && _partnerSlave.prostate > 0 && activeSlave.amp !== 1) { + t += `with ${name} hungrily sucking ${his} ${activeSlaveRel}'s limp cock. ${He} has a finger up poor impotent ${partnerName}'s butt to stimulate ${his2} prostate so ${he2} can cum for ${him}.`; + } else if (_partnerSlave.scrotum > 0 && activeSlave.amp !== 1) { + t += `with ${name} hungrily sucking ${his} ${activeSlaveRel}'s limp cock. ${He} is massaging ${his2} balls so ${he2} can cum for ${him}.`; + } else if (activeSlave.amp !== 1) { + t += `with ${name} hungrily sucking ${his} ${activeSlaveRel}'s limp cock. ${He} has a finger massaging poor impotent ${partnerName}'s perineum in the hope of stimulating ${him2} so ${he2} can cum for ${him}.`; + } else { + t += `with ${name} hungrily sucking ${his} ${activeSlaveRel}'s limp cock in the hopes ${he} can coax something out.`; + } + } else if (_partnerSlave.balls > 0) { + t += `with ${name} hungrily sucking the little hole on ${his} ${activeSlaveRel}'s crotch that ${he2} squirts cum from.`; + } else { + t += `and ${name} is sating ${his} oral fixation for the moment by eagerly polishing ${his} ${activeSlaveRel}'s pearl.`; + } + } else if ((_partnerSlave.chastityPenis !== 1 && _partnerSlave.dick > 0) || canDoVaginal(_partnerSlave)) { + t += `${name} has ${his} face to ${partnerName}'s crotch and is `; + if (_partnerSlave.chastityPenis !== 1 && _partnerSlave.dick > 0) { + if (canPenetrate(_partnerSlave)) { + t += `hungrily sucking ${his} ${activeSlaveRel}'s turgid cock.`; + } else if (_partnerSlave.dick > 7 && activeSlave.amp !== 1) { + t += `hungrily sucking ${his} ${activeSlaveRel}'s fat cock. ${He} is milking the oversized beast as best ${he} can in an effort to draw out a nice, big load of ${his2} cum.`; + } else if (_partnerSlave.anus > 0 && canDoAnal(_partnerSlave) && _partnerSlave.prostate > 0 && activeSlave.amp !== 1) { + t += `hungrily sucking ${his} ${activeSlaveRel}'s limp cock. ${He} has a finger up poor impotent ${partnerName}'s butt to stimulate ${his2} prostate so ${he2} can cum for ${him}.`; + } else if (_partnerSlave.scrotum > 0 && activeSlave.amp !== 1) { + t += `hungrily sucking ${his} ${activeSlaveRel}'s limp cock. ${He} is massaging ${his2} balls so ${he2} can cum for ${him}.`; + } else if (activeSlave.amp !== 1) { + t += `hungrily sucking ${his} ${activeSlaveRel}'s limp cock. ${He} has a finger massaging poor impotent ${partnerName}'s perineum in the hope of stimulating ${him2} so ${he2} can cum for ${him}.`; + } else { + t += `hungrily sucking ${his} ${activeSlaveRel}'s limp cock in the hopes ${he} can coax something out.`; + } + } else if (_partnerSlave.balls > 0) { + t += `hungrily sucking the little hole on ${his} ${activeSlaveRel}'s crotch that ${he2} squirts cum from.`; + } else { + t += `is sating ${his} oral fixation for the moment by eagerly polishing ${his} ${activeSlaveRel}'s pearl.`; + } + } else if (_partnerSlave.balls > 0) { + t += `${name} is eagerly lapping up ${his} ${activeSlaveRel}'s most recent load of cum.`; + } else if (activeSlave.balls > 0) { + t += `${name} is locking lips with ${his} ${activeSlaveRel} after ${he2} just finished licking up all ${his} cum to share it with ${him}.`; + } else { + t += `They have locked lips and are enthusiastically making out.`; + } + break; + case "submissive": + t += `wrestling ${_fuckSpot}. ${name} is such a submissive that ${he} wants to be forced to sexual gratify ${partnerName} all the time, so ${he2} does ${his2} best to give ${his2} ${activeSlaveRel} the constant domination ${he} loves. `; + if (canPenetrate(_partnerSlave) && _fuckSeed > 50) { + if (canDoVaginal(activeSlave)) { + if (activeSlave.vagina === 0) { + t += `${partnerName} is rubbing the length of ${his2} erection along ${name}'s virgin pussy and forcing ${him} to reveal just how bad ${he} wants it.`; + } else if (_fuckSeed > 90 && activeSlave.amp !== 1) { + t += `${partnerName} has ${name} on ${his} knees and is forcibly fucking ${his} pussy doggy style while raining loving insults down on ${his2} bitch of a ${activeSlaveRel}.`; + } else if (_fuckSeed > 80 && activeSlave.amp !== 1 && _partnerSlave.amp !== 1) { + t += `${partnerName} has ${name} pushed against the wall and is fucking ${his} pussy from behind while raining loving insults down on ${his2} bitch of a ${activeSlaveRel}.`; + } else if (_fuckSeed > 70) { + t += `${partnerName} is on ${his2} back and forcing ${name} to ride ${his2} dick while raining loving insults down on ${his2} bitch of a ${activeSlaveRel}.`; + } else if (_fuckSeed > 60 && activeSlave.belly < 500) { + t += `${partnerName} has ${name} on ${his} back and trapped in a mating press, right where a bitch of a ${activeSlaveRel} belongs.`; + } else { + t += `${partnerName} is forcing ${himself2} into ${name}'s pussy while raining loving insults down on ${his2} bitch of a ${activeSlaveRel}.`; + } + } else if (canDoAnal(activeSlave)) { + if (activeSlave.anus === 0) { + t += `${partnerName} is circling the tip of ${his2} erection around ${name}'s virgin butthole and forcing ${him} to reveal just how bad ${he} wants it.`; + } else if (_fuckSeed > 90 && activeSlave.amp !== 1) { + t += `${partnerName} has ${name} on ${his} knees and is forcibly fucking ${his} ass doggy style while raining loving insults down on ${his2} bitch of a ${activeSlaveRel}.`; + } else if (_fuckSeed > 80 && activeSlave.amp !== 1 && _partnerSlave.amp !== 1) { + t += `${partnerName} has ${name} pushed against the wall and is fucking ${his} ass from behind while raining loving insults down on ${his2} bitch of a ${activeSlaveRel}.`; + } else if (_fuckSeed > 70) { + t += `${partnerName} is on ${his2} back and forcing ${name} to ride ${his2} dick anally while raining loving insults down on ${his2} bitch of a ${activeSlaveRel}.`; + } else if (_fuckSeed > 60) { + t += `${partnerName} has ${name} pushed face first into the ground has ${him} trapped beneath ${his2} weight while ${he2} fucks ${his2} ass.`; + } else { + t += `${partnerName} is forcing ${himself2} into ${name}'s ass while raining loving insults down on ${his2} bitch of a ${activeSlaveRel}.`; + } + } else if (activeSlave.boobs > 800) { + t += `${partnerName} has ${name} on ${his} back and is forcibly fucking ${his} tits.`; + } else { + t += `${partnerName} has ${name}'s face to ${his2} crotch and is forcibly pounding ${his} throat.`; + } + } else if (_partnerSlave.dick > 0 && _fuckSeed > 50) { + t += `${name} has ${his} lips wrapped around ${partnerName}'s dick and is taking a deepthroating from ${him2}.`; + } else if (canDoVaginal(_partnerSlave) && _fuckSeed > 30) { + if (canPenetrate(activeSlave)) { + if (_partnerSlave.vagina === 0 && _partnerSlave.amp !== 1) { + t += `${partnerName} has a foot on ${name}'s turgid cock and is slowly and methodically keeping ${him} just short of release while ${he} begs for ${him2} to continue.`; + } else if (_partnerSlave.vagina === 0) { + t += `${partnerName} is rubbing ${his2} virgin pussy along the length of ${name}'s erection and is forcing ${him} to reveal just how badly ${he} wants to stick it in ${him2}. Of course, that's not going to happen and ${name} knows it.`; + } else if (_fuckSeed > 45 && activeSlave.amp !== 1) { + t += `${partnerName} is forcing ${name} to hold ${him2} aloft as ${he2} gets fucked by ${his2} bitch of a ${activeSlaveRel}.`; + } else if (_fuckSeed > 40 && activeSlave.amp !== 1 && _partnerSlave.amp !== 1) { + t += `${partnerName} has ${name} pinned against the wall and is taking ${his} dick in ${his2} pussy by force.`; + } else if (_fuckSeed > 35) { + t += `${partnerName} has ${name} on ${his} back and is riding ${his} dick while raining loving insults down on ${his2} bitch of a ${activeSlaveRel}.`; + } else { + t += `${partnerName} has ${name} on ${his} back and is forcibly taking ${his} dick in reverse missionary while raining loving insults down on ${his2} bitch of a ${activeSlaveRel}.`; + } + } else if (canDoVaginal(activeSlave)) { + t += `${partnerName} is scissoring ${name} while raining loving insults down on ${his2} bitch of a ${activeSlaveRel}.`; + } else { + t += `${partnerName} is eating out ${name}'s pussy while ${he2} rains loving insults down on ${his2} bitch of a ${activeSlaveRel}.`; + } + } else if (canDoAnal(_partnerSlave) && _fuckSeed > 10) { + if (canPenetrate(activeSlave)) { + if (_partnerSlave.anus === 0 && _partnerSlave.amp !== 1) { + t += `${partnerName} has a foot on ${name}'s turgid cock and is slowly and methodically keeping ${him} just short of release while ${he} begs for ${him2} to continue.`; + } else if (_partnerSlave.vagina === 0) { + t += `${partnerName} is rubbing ${his2} virgin butthole around the tip of ${name}'s erection and is forcing ${him} to reveal just how badly ${he} wants to stick it in ${him2}. Of course, that's not going to happen and ${name} knows it.`; + } else if (_fuckSeed > 20 && activeSlave.amp !== 1) { + t += `${partnerName} is forcing ${name} to hold ${him2} aloft as ${he2} gets anally fucked by ${his2} bitch of a ${activeSlaveRel}.`; + } else if (_fuckSeed > 10 && activeSlave.amp !== 1 && _partnerSlave.amp !== 1) { + t += `${partnerName} has ${name} pinned against the wall behind ${him2} and is anally taking ${his} dick by force.`; + } else { + t += `${partnerName} has ${name} on ${his} back and is anally riding ${his} dick while raining loving insults down on ${his2} bitch of a ${activeSlaveRel}.`; + } + } else if (_partnerSlave.amp !== 1) { + t += `${partnerName} is fisting ${name}'s ass while raining loving insults down on ${his2} bitch of a ${activeSlaveRel}.`; + } else { + t += `${partnerName} is pounding ${name}'s ass with a dildo while raining loving insults down on ${his2} bitch of a ${activeSlaveRel}.`; + } + } else { + t += `${partnerName} is forcing ${name} to use ${his} tongue to bring ${him2} to orgasm.`; + } + break; + case "dom": + t += `wrestling ${_fuckSpot}. ${name} is so dominant with other slaves that ${he} prefers to take what ${he} wants, and ${partnerName} does ${his2} best to give ${his2} ${activeSlaveRel} the fight ${he} loves. `; + if (canPenetrate(activeSlave) && _fuckSeed > 50) { + if (canDoVaginal(_partnerSlave)) { + if (_partnerSlave.vagina === 0) { + t += `${name} has ${partnerName} pinned to the ground with ${his} dick lined up with {his2} virgin pussy. ${partnerName} is struggling and pleading with ${him} not to take it like this.`; + } else if (_fuckSeed > 90 && activeSlave.amp !== 1) { + t += `${name} has ${partnerName} on ${his} knees and is forcibly fucking ${his2} pussy doggy style while {he2} struggles to get away.`; + } else if (_fuckSeed > 80 && activeSlave.amp !== 1 && _partnerSlave.amp !== 1) { + t += `${name} has ${partnerName} pushed against the wall is is fucking ${his} pussy from behind while {he2} struggles to get away.`; + } else if (_fuckSeed > 70 && activeSlave.amp !== 1) { + t += `${name} is on ${his} back and forcing ${partnerName} to ride ${his} dick while keeping a firm hold on ${his2} hips.`; + } else if (_fuckSeed > 60 && _partnerSlave.belly < 500) { + t += `${name} has ${partnerName} on ${his2} back and trapped in a mating press. ${partnerName} is struggling and begging ${him} not to get ${him2} pregnant.`; + } else { + t += `${name} is forcing ${himself} into ${partnerName}'s pussy while {he2} struggles to get away.`; + } + } else if (canDoAnal(_partnerSlave)) { + if (_partnerSlave.anus === 0) { + t += `${name} is circling the tip of ${his} erection around ${partnerName}'s virgin butthole. ${partnerName} is struggling and pleading with ${him} not to take it like this.`; + } else if (_fuckSeed > 90 && activeSlave.amp !== 1) { + t += `${name} has ${partnerName} on ${his2} knees and is forcibly fucking ${his2} ass doggy style while {he2} struggles to get away.`; + } else if (_fuckSeed > 80 && activeSlave.amp !== 1 && _partnerSlave.amp !== 1) { + t += `${name} has ${partnerName} pushed against the wall and is fucking ${his2} ass from behind while {he2} struggles to get away.`; + } else if (_fuckSeed > 70 && activeSlave.amp !== 1) { + t += `${name} is on ${his} back and forcing ${partnerName} to ride ${his} dick anally while keeping a firm hold on ${his2} hips.`; + } else if (_fuckSeed > 60) { + t += `${name} has ${partnerName} pushed face first into the ground has ${him2} trapped beneath ${his} weight while ${he} fucks ${his2} ass.`; + } else { + t += `${name} is forcing ${himself} into ${partnerName}'s ass while {he2} struggles to get away.`; + } + } else if (_partnerSlave.boobs > 800) { + t += `${name} has ${partnerName} on ${his2} back and is forcibly fucking ${his2} tits.`; + } else { + t += `${name} has ${partnerName}'s face to ${his} crotch and is forcibly pounding ${his2} throat.`; + } + } else if (activeSlave.dick > 0 && _fuckSeed > 50) { + t += `${name} is deepthroating ${partnerName} as ${he2} struggles to breath.`; + } else if (canDoVaginal(activeSlave) && _fuckSeed > 30) { + if (canPenetrate(_partnerSlave) && activeSlave.vagina !== 0) { + if (_fuckSeed > 45 && _partnerSlave.amp !== 1) { + t += `${name} is forcing ${partnerName} to hold ${him} aloft as ${he} enjoys a good vaginal pounding from an unwilling partner.`; + } else if (_fuckSeed > 40 && activeSlave.amp !== 1 && _partnerSlave.amp !== 1) { + t += `${name} has ${partnerName} pinned against the wall and is taking ${his2} dick in ${his} pussy by force.`; + } else if (_fuckSeed > 35) { + t += `${name} has ${partnerName} on ${his2} back and is riding ${his2} dick while ${he2} tries to buck ${him} off.`; + } else { + t += `${name} has ${partnerName} on ${his2} back and is forcibly taking ${his} dick in reverse missionary while ${he2} struggles to not cum in ${his2} rapist.`; + } + } else if (canDoVaginal(activeSlave) && activeSlave.vagina !== 0) { + t += `${name} is scissoring the struggling ${partnerName}.`; + } else { + t += `${name} is straddling ${partnerName}'s face and forcing ${him2} to eat ${him} out.`; + } + } else if (canDoAnal(activeSlave) && canPenetrate(_partnerSlave) && _fuckSeed > 10 && activeSlave.anus !== 0) { + if (_fuckSeed > 20 && activeSlave.amp !== 1) { + t += `${name} is forcing ${partnerName} to hold ${him} aloft as ${he} enjoys a good anal pounding from an unwilling partner.`; + } else if (_fuckSeed > 10 && activeSlave.amp !== 1 && _partnerSlave.amp !== 1) { + t += `${name} has ${partnerName} pinned against the wall and is taking ${his2} dick in ${his} ass by force.`; + } else { + t += `${name} has ${partnerName} on ${his2} back and is anally riding ${his2} dick while ${he2} tries to buck ${him} off.`; + } + } else { + t += `${name} is on top of ${partnerName} getting oral, though it's more of a rough facefuck as ${name} forces `; + if (canPenetrate(activeSlave)) { + t += `${his} cock `; + } else if (activeSlave.clit > 3) { + t += `${his} clit `; + } else { + t += `a strap-on `; + } + t += `down ${partnerName}'s throat.`; + } + break; + case "sadist": + t += `playing pain games ${_fuckSpot}. ${name} loves hurting other slaves, even ${his} friends, and ${partnerName} submits to ${his} agonizing ministrations as often as ${name} can cajole or force ${him2} into it. `; + if (activeSlave.amp !== 1) { + t += `${name} has ${partnerName} over ${his} knee and is methodically tanning ${his2}'s ${race2} ass.`; + } else { + t += `${name} has ${partnerName} on the ground and is methodically striking ${his2}'s ${race2} ass with a switch held by mouth. Even without limbs, ${name} finds a way.`; + } + break; + case "masochist": + t += `playing pain games ${_fuckSpot}. ${name} loves being hurt, so ${partnerName} frequently indulges ${him} with spanking, slapping, pinching, and more exotic forms of abuse. `; + if (activeSlave.amp !== 1) { + t += `${partnerName} has ${name} over ${his2} knee and is methodically tanning ${his} ${race} ass.`; + } else { + t += `${partnerName} has ${name} on the ground and is methodically striking ${his} ${race} ass with a switch held by mouth. Having a limbless ${activeSlaveRel} won't deter ${name} from getting worked over the way ${he} craves.`; + } + break; + case "humiliation": + t += `having open and visible sex `; + if (activeSlave.livingRules === "luxurious") { + t += `in the doorway of the nice little room they share.`; + } else if (activeSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) { + t += `in ${name}'s suite.`; + } else { + t += `out in the hallway near the slave dormitory.`; + } + t += ` ${name} pretends to hate fucking where other slaves can see ${him}, but ${partnerName} knows ${his2} ${activeSlaveRel} gets off on the mild humiliation. ${partnerName} `; + if (((canDoVaginal(activeSlave) && activeSlave.vagina > 0) || (canDoAnal(activeSlave) && activeSlave.anus > 0)) && _fuckSeed > 50) { + t += `has ${his2} back propped up against a door frame and ${name} in ${his2} lap, so ${he} can blush at any passing slave as ${he} shyly rides ${partnerName}'s `; + if (_partnerSlave.dick > 0 && canPenetrate(_partnerSlave)) { + t += `cock `; + } else { + t += `strap-on `; + } + if (activeSlave.vagina > 0 && canDoVaginal(activeSlave) && (_fuckSeed > 60 || !canDoAnal(activeSlave) || activeSlave.anus === 0)) { + t += `in ${his} pussy.`; + } else { + t += `up ${his} ass.`; + } + } else if (activeSlave.dick === 1 && _partnerSlave.amp !== 1 && _fuckSeed > 40) { + t += `jacking off ${name}'s pathetically tiny cock out in the open so ${he} can blush and shiver as passing slaves see how embarrassingly small ${he} is.`; + } else if (activeSlave.dick === 1 && _partnerSlave.amp !== 1 && _fuckSeed > 20) { + t += `having ${name} give ${him2} oral out in the open so ${he} can blush and shiver as passing slaves see what a slut ${he} is.`; + } else { + t += `is giving ${name} oral out in the open so ${he} can blush and shiver as passing slaves see ${his} climax.`; + } + break; + case "pregnancy": + t += `having intimate sex ${_fuckSpot}. ${name}'s `; + if (activeSlave.belly >= 5000) { + t += `middle is heavily rounded, `; + } else if (activeSlave.belly >= 1500) { + t += `middle is quite swollen, `; + } else { + t += `urge to breed is raging, `; + } + t += ` and ${partnerName} does ${his2} best to keep ${his2} ${activeSlaveRel} satisfied. `; + if (canPenetrate(activeSlave) && _fuckSeed > 70) { + if (canDoVaginal(_partnerSlave) && _partnerSlave.vagina > 0 && _fuckSeed > 90) { + if (_partnerSlave.belly >= 5000) { + t += `${partnerName} is `; + if (_partnerSlave.bellyPreg >= 1500) { + t += `heavily pregnant `; + } else { + t += `hugely gravid `; + } + t += `${himself2} `; + if (activeSlave.belly >= 5000) { + if (activeSlave.amp !== 1 && _partnerSlave.amp !== 1) { + t += `so ${name} has ${him2} on all fours as ${he} fucks ${him2} from behind while resting ${his} belly on ${his} love's back.`; + } else { + t += `so ${he2} is intertwined as best ${he2} can with ${name} as their combined bellies push into each other.`; + } + } else { + t += `so ${he2} has ${name} on ${his} back so that ${he2} can ride ${him} while `; + if (activeSlave.amp !== 1) { + t += `letting ${him} fondle ${his2} bouncing belly.`; + } else { + t += `giving ${him} a face full of belly.`; + } + } + } else if (_partnerSlave.belly === 0) { + t += `${partnerName} is pinned on ${his2} back by ${name}`; + if (activeSlave.belly >= 5000) { + t += `'s belly as ${he} tries ${his} hardest to plant a child in ${him2}.`; + } else { + t += ` in a mating press as ${he} tries ${his} hardest to plant a child in ${him2}.`; + } + } else { + if (activeSlave.belly >= 5000) { + t += `${partnerName} has ${name} on ${his} back so that ${he2} can ride ${him} while lavishing attention on ${his} beloved stomach.`; + } else { + t += `${name} has ${partnerName} on ${his2} back so that ${he} can fuck ${him2} while lavishing attention on ${his2} bulging stomach.`; + } + } + } else if (canDoAnal(_partnerSlave) && _partnerSlave.anus > 0 && _fuckSeed > 80) { + if (_partnerSlave.belly >= 5000) { + t += `${partnerName} is `; + if (_partnerSlave.bellyPreg >= 1500) { + t += `heavily pregnant `; + } else { + t += `hugely gravid `; + } + t += `${himself2} `; + if (activeSlave.belly >= 5000) { + if (activeSlave.amp !== 1 && _partnerSlave.amp !== 1) { + t += `so ${name} has ${him2} on all fours as ${he} fucks ${his2} ass while resting ${his} belly on ${his2} back.`; + } else { + t += `so ${he2} is intertwined as best as ${he2} can for anal sex with ${name} as ${his} belly pushes into ${his2} back.`; + } + } else { + t += `so ${he2} has ${name} on ${his} back so that ${he2} can anally ride ${him} while `; + if (activeSlave.amp !== 1) { + t += `letting ${him} fondle ${his2} bouncing belly.`; + } else { + t += `giving ${him} a face full of belly.`; + } + } + } else if (_partnerSlave.belly === 0) { + if (activeSlave.belly >= 5000) { + t += `${partnerName} has ${name} on ${his} back so that ${he2} can anally ride ${him} while teasing ${his} belly with ${his2} rear.`; + } else { + t += `${partnerName} is pinned on ${his2} stomach by ${name} as ${he} tries ${his} hardest to impregnate an anus.`; + } + } else { + if (activeSlave.belly >= 5000) { + t += `${partnerName} has ${name} on ${his} back so that ${he2} can ride ${him} anally while teasing ${his} prized stomach.`; + } else { + t += `${name} has ${partnerName} on ${his2} back so that ${he} can fuck ${him2} anally while teasing ${his2} bulging stomach.`; + } + } + } else if (_partnerSlave.boobs >= 2000 && _partnerSlave.belly >= 10000 && _fuckSeed > 75) { + t += `${name} is savoring the sensation of ${his} cock between ${partnerName}'s breasts and belly.`; + } else { + if (activeSlave.belly >= 5000) { + t += `${name} is squirming under the sensations of ${partnerName}'s lips around ${his} dick and {his2} head against ${his} underbelly.`; + } else { + t += `${partnerName} is vigorously trying to calm ${name}'s libido by sucking load after load out of ${him}.`; + } + } + } else if (canDoVaginal(activeSlave) && _fuckSeed > 30) { + if (canPenetrate(_partnerSlave) && activeSlave.vagina > 0 && activeSlave.preg === 0 && activeSlave.ovaries === 1) { // impreg + if (_partnerSlave.belly >= 5000) { + t += `${partnerName} is `; + if (_partnerSlave.bellyPreg >= 1500) { + t += `heavily pregnant `; + } else { + t += `hugely gravid `; + } + t += `${himself2}, but ${name} can't complain about the swollen dome pushing against ${him} as ${he2} fervently tries to sate ${his} lust by putting a baby in ${him}.`; + } else { + t += `${partnerName} has ${name} pinned on ${his} back in a mating press as ${he2} fervently tries to sate ${his} lust by putting a baby in ${him}.`; + } + } else { + if (_fuckSeed > 50) { // vanilla + if (canPenetrate(_partnerSlave) && activeSlave.vagina !== 0) { + if (_partnerSlave.belly >= 5000) { + t += `${partnerName} is `; + if (_partnerSlave.bellyPreg >= 1500) { + t += `heavily pregnant `; + } else { + t += `hugely gravid `; + } + t += `${himself2} `; + if (activeSlave.belly >= 5000) { + t += `so ${he2} has ${name} on ${his} side so that ${he2} can fuck ${his} pussy as best ${he2} can with their mutual bellies in the way.`; + } else { + t += `so ${he2} has ${name} on ${his} back so that ${he2} can fuck ${his} pussy as best ${he2} can with ${his2} belly in the way.`; + } + } else if (activeSlave.belly >= 5000) { + t += `${name} is bouncing heavily on ${partnerName}'s erect dick as ${he2} struggles to support ${his} gravid figure.`; + } else { + t += `${partnerName} has ${name} pinned on ${his} back in a mating press as ${he2} dutifully blows another load deep in ${his} aching pussy.`; + } + } else if (_partnerSlave.dick > 0 && activeSlave.belly < 500) { + t += `${partnerName} is bringing ${his2} limp dick to orgasm and making sure each and every drop is ending up in ${name}'s pussy.`; + } else { + if (_partnerSlave.belly >= 5000) { + t += `${partnerName} is `; + if (_partnerSlave.bellyPreg >= 1500) { + t += `heavily pregnant `; + } else { + t += `hugely gravid `; + } + t += `${himself2} `; + if (activeSlave.belly >= 5000) { + t += `so ${he2} is stomach to stomach with ${name} and making out.`; + } else { + t += `so ${he2} is face to face with ${name} and making out.`; + } + } else if (activeSlave.belly >= 5000) { + t += `${partnerName} is teasing ${his2} lover's huge belly.`; + } else { + t += `${name} and ${partnerName} are both pretending to be hugely pregnant and cuddling each other.`; + } + } + } else if (canDoVaginal(_partnerSlave) && _fuckSeed > 40) { // scissor + if (_partnerSlave.belly >= 5000) { + t += `${partnerName} is `; + if (_partnerSlave.bellyPreg >= 1500) { + t += `heavily pregnant `; + } else { + t += `hugely gravid `; + } + t += `${himself2} `; + if (activeSlave.belly >= 5000) { + t += `so ${he2} and ${name} are trying their hardest to trib with their ever expanding bodies in the way.`; + } else { + t += `so ${name} is savoring the feeling of ${his2} navel tracing ${his} slit.`; + } + } else { + t += `${name} and ${partnerName} `; + if (activeSlave.vagina > 0 && _partnerSlave.vagina > 0) { + t += `are locked together and sharing a double-ended dildo.`; + } else { + t += `are enthusiastically tribbing.`; + } + } + } else { // oral + if (_partnerSlave.belly >= 5000) { + t += `${partnerName} is `; + if (_partnerSlave.bellyPreg >= 1500) { + t += `heavily pregnant `; + } else { + t += `hugely gravid `; + } + t += `${himself2} `; + if (activeSlave.belly >= 5000) { + if (activeSlave.dick > 0 && _fuckSeed > 25) { + t += `so ${he2} has to try ${his2} hardest to suck ${name}'s dick with ${his2} belly hindering ${his2} movements; something ${name} enjoys tremendously, second only to the feeling of ${his2} head brushing against ${his} underbelly.`; + } else { + t += `so ${he2} has to try ${his2} hardest to orally service ${name} with ${his2} belly in the way; something ${name} enjoys tremendously, second only to the feeling of ${his2} head brushing against ${his} underbelly.`; + } + } else { + if (activeSlave.dick > 0 && _fuckSeed > 25) { + t += `so ${he2} has to try ${his2} hardest to suck ${name}'s dick with ${his2} belly hindering ${his2} movements; something ${name} enjoys tremendously.`; + } else { + t += `so ${he2} has to try ${his2} hardest to orally service ${name} with ${his2} belly in the way; something ${name} enjoys tremendously.`; + } + } + } else if (activeSlave.belly >= 5000) { + if (activeSlave.dick > 0 && _fuckSeed > 25) { + t += `${partnerName} has ${name} pinned under ${his} own gravidity so ${he2} may leisurely suck ${his} dick while teasing ${him} by brushing against ${his} sensitive underbelly.`; + } else { + t += `${partnerName} has ${name} pinned under ${his} own gravidity so ${he2} may leisurely eat ${him} out while teasing ${him} by brushing against ${his} sensitive underbelly.`; + } + } else { + if (activeSlave.dick > 0 && _fuckSeed > 25) { + t += `${partnerName} is vigorously trying to calm ${name}'s libido by sucking load after load out of ${him}.`; + } else { + t += `${name} is squirming under the sensations of ${partnerName}'s tongue as ${he2} vigorously tries to calm ${his} libido.`; + } + } + } + } + } else if (canDoAnal(activeSlave) && canPenetrate(_partnerSlave) && _fuckSeed > 10) { + if (activeSlave.anus > 0 && activeSlave.preg === 0 && activeSlave.mpreg === 1) { // impreg + if (_partnerSlave.belly >= 5000) { + t += `${partnerName} is `; + if (_partnerSlave.bellyPreg >= 1500) { + t += `heavily pregnant `; + } else { + t += `hugely gravid `; + } + t += `${himself2}, but ${name} can't complain about the swollen dome pushing against ${his} back as ${he2} fervently tries to sate ${his} lust by putting a baby in ${him}.`; + } else { + t += `${partnerName} has ${name} pinned on ${his} stomach as ${he2} fervently tries to sate ${his} lust by putting a baby in ${him}.`; + } + } else if (activeSlave.anus === 0) { + if (_partnerSlave.belly >= 5000) { + t += `${partnerName} is `; + if (_partnerSlave.bellyPreg >= 1500) { + t += `heavily pregnant `; + } else { + t += `hugely gravid `; + } + t += `${himself2} `; + if (activeSlave.belly >= 5000) { + t += `so ${he2} is stomach to stomach with ${name} and making out.`; + } else { + t += `so ${he2} is face to face with ${name} and making out.`; + } + } else if (activeSlave.belly >= 5000) { + t += `${partnerName} is teasing ${his2} lover's huge belly.`; + } else { + t += `${name} and ${partnerName} are both pretending to be hugely pregnant and cuddling each other.`; + } + } else { + if (_partnerSlave.belly >= 5000) { + t += `${partnerName} is `; + if (_partnerSlave.bellyPreg >= 1500) { + t += `heavily pregnant `; + } else { + t += `hugely gravid `; + } + t += `${himself2} `; + if (activeSlave.belly >= 5000) { + t += `so ${he2} has ${name} on ${his} side so that ${he2} can fuck ${his} ass as best ${he2} can with their mutual bellies in the way.`; + } else { + t += `so ${he2} has ${name} on ${his} front so that ${he2} can fuck ${his} ass as best ${he2} can with ${his2} belly in the way.`; + } + } else if (activeSlave.belly >= 5000) { + t += `${name} is bouncing heavily on ${partnerName}'s erect dick as ${he2} struggles to anally satisfy ${his2} gravid partner.`; + } else { + t += `${partnerName} has ${name} pinned on ${his} front as ${he2} dutifully plows ${his} needy anus in an attempt to sate ${his} bottomless lust.`; + } + } + } else { // oral + if (_partnerSlave.belly >= 5000) { + t += `${partnerName} is `; + if (_partnerSlave.bellyPreg >= 1500) { + t += `heavily pregnant `; + } else { + t += `hugely gravid `; + } + t += `${himself2} `; + if (activeSlave.belly >= 5000) { + if (activeSlave.dick > 0 && _fuckSeed > 5) { + t += `so ${he2} has to try ${his2} hardest to suck ${name}'s dick with ${his2} belly hindering ${his2} movements; something ${name} enjoys tremendously, second only to the feeling of ${his2} head brushing against ${his} underbelly.`; + } else { + t += `so ${he2} has to try ${his2} hardest to orally service ${name} with ${his2} belly in the way; something ${name} enjoys tremendously, second only to the feeling of ${his2} head brushing against ${his} underbelly.`; + } + } else { + if (activeSlave.dick > 0 && _fuckSeed > 5) { + t += `so ${he2} has to try ${his2} hardest to suck ${name}'s dick with ${his2} belly hindering ${his2} movements; something ${name} enjoys tremendously.`; + } else { + t += `so ${he2} has to try ${his2} hardest to orally service ${name} with ${his2} belly in the way; something ${name} enjoys tremendously.`; + } + } + } else if (activeSlave.belly >= 5000) { + if (activeSlave.dick > 0 && _fuckSeed > 5) { + t += `${partnerName} has ${name} pinned under ${his} own gravidity so ${he2} may leisurely suck ${his} dick while teasing ${him} by brushing against ${his} sensitive underbelly.`; + } else { + t += `${partnerName} has ${name} pinned under ${his} own gravidity so ${he2} may leisurely eat ${him} out while teasing ${him} by brushing against ${his} sensitive underbelly.`; + } + } else { + if (activeSlave.dick > 0 && _fuckSeed > 5) { + t += `${partnerName} is vigorously trying to calm ${name}'s libido by sucking load after load out of ${him}.`; + } else { + t += `${name} is squirming under the sensations of ${partnerName}'s tongue as ${he2} vigorously tries to calm ${his} libido.`; + } + } + } + break; + default: + t += `having intimate sex ${_fuckSpot}.`; + break; + } + } else if (!activeSlave.need || activeSlave.energy < 20) { + t += `just spooning in bed. Since ${name} `; + if (activeSlave.energy < 20) { + t += `in sexually frigid, `; + } else { + t += `gets fucked at work, `; + } + t += `${partnerName} understands that what ${he} really wants from ${him2} is emotional intimacy. They're cuddling quietly, offering each other silent comfort and companionship.`; + } else if (canPenetrate(activeSlave) && (_partnerSlave.vagina > 0) && canDoVaginal(_partnerSlave) && _partnerSlave.amp !== 1 && (activeSlave.belly + _partnerSlave.belly < 10000)) { + if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) { + t += `in bed `; + } else if (activeSlave.livingRules === "luxurious") { + t += `in bed `; + } else { + t += `on ${name}'s bedroll `; + } + t += `${_fuckSpot}, making love in the missionary position. ${partnerName} has ${his2} legs wrapped around ${name}'s waist and ${his2} arms hugging ${him} around the chest, and is `; + if (canSee(_partnerSlave)) { + t += `looking deep into ${his} eyes `; + } else { + t += `gazing longingly into ${his} face `; + } + t += `as ${he2} enjoys the wonderful feeling of ${his2} ${activeSlaveRel}'s cock in ${his2} womanhood.`; + } else if (activeSlave.clit > 2 && canDoVaginal(activeSlave) && _partnerSlave.vagina > 0 && canDoVaginal(_partnerSlave) && _partnerSlave.amp !== 1 && (activeSlave.belly + _partnerSlave.belly < 10000)) { + if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) { + t += `in bed `; + } else if (activeSlave.livingRules === "luxurious") { + t += `in bed `; + } else { + t += `on ${name}'s bedroll `; + } + t += `${_fuckSpot}, making love in the missionary position. ${partnerName} has ${his2} legs wrapped around ${name}'s waist and ${his2} arms hugging ${him} around the chest, and is `; + if (canSee(_partnerSlave)) { + t += `looking deep into ${his} eyes `; + } else { + t += `gazing longingly into ${his} face `; + } + t += `as ${he2} enjoys the wonderful feeling of ${his2} ${activeSlaveRel}'s huge clit in ${his2} womanhood.`; + } else if (activeSlave.dick > 1 && canPenetrate(activeSlave) && canDoAnal(_partnerSlave) && _partnerSlave.anus > 0 && activeSlave.amp !== 1 && activeSlave.belly < 10000) { + if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) { + t += `in bed `; + } else if (activeSlave.livingRules === "luxurious") { + t += `in bed `; + } else { + t += `on ${name}'s bedroll `; + } + t += `${_fuckSpot}, having gentle anal sex while spooning. ${name} is enjoying ${partnerName}'s ass, and is doing ${his} best to ensure ${his} ${activeSlaveRel} enjoys being buttfucked. ${He}'s nibbling ${his} ${activeSlaveRel}'s `; + if (_partnerSlave.earShape !== "none") { + t += `ears and `; + } + t += `neck, cupping a breast with one hand, and lightly stimulating ${him2} with the other.`; + } else if (activeSlave.clit > 2 && canDoAnal(_partnerSlave) && _partnerSlave.anus > 0 && _partnerSlave.amp !== 1 && activeSlave.amp !== 1) { + if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) { + t += `in bed `; + } else if (activeSlave.livingRules === "luxurious") { + t += `in bed `; + } else { + t += `on ${name}'s bedroll `; + } + t += `${_fuckSpot}, managing to have clitoral-anal sex. ${partnerName} is face-down with ${his2} ass up, spreading ${his2} buttocks as wide as possible, giving ${his2} ${activeSlaveRel} the opportunity to squat over ${him2} and penetrate it with ${his} huge, erect clit. ${name} can't thrust much, but the shocking lewdness of the act is enough for both of them.`; + } else if (canPenetrate(activeSlave) && _partnerSlave.amp !== 1 && activeSlave.amp !== 1 && activeSlave.belly < 10000) { + if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) { + t += `in bed `; + } else if (activeSlave.livingRules === "luxurious") { + t += `in bed `; + } else { + t += `on ${name}'s bedroll `; + } + t += `${_fuckSpot}, spooning while ${name} gently rubs ${his} cock between ${partnerName}'s thighs, pressed tightly together. Since ${partnerName} is a virgin, this is the closest they can come to penetrative intercourse, but ${name} is enjoying ${partnerName}'s body anyway, and is doing ${his} best to ensure ${his} ${activeSlaveRel} enjoys ${himself2}. ${He}'s nibbling ${his} ${activeSlaveRel}'s `; + if (_partnerSlave.earShape !== "none") { + t += `ears and `; + } + t += `neck, cupping a breast with one hand, and lightly stimulating ${him2} with the other.`; + } else if (activeSlave.clit > 2 && canDoVaginal(activeSlave) && _partnerSlave.amp !== 1 && activeSlave.amp !== 1) { + if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) { + t += `in bed `; + } else if (activeSlave.livingRules === "luxurious") { + t += `in bed `; + } else { + t += `on ${name}'s bedroll `; + } + t += `${_fuckSpot}, with ${partnerName} down on ${his2} knees in front of ${name}. From behind ${partnerName} it looks like ${he2}'s giving ${his2} ${activeSlaveRel} a conventional, if enthusiastic, blowjob. Only on closer inspection does it become clear how unusual the oral is: ${name} has such a huge clit that ${his} ${activeSlaveRel} can suck ${him} off just like it were a penis.`; + } else if (_partnerSlave.vagina > 0 && canDoVaginal(_partnerSlave) && _partnerSlave.amp !== 1 && (activeSlave.belly + _partnerSlave.belly < 10000)) { + if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) { + t += `in bed `; + } else if (activeSlave.livingRules === "luxurious") { + t += `in bed `; + } else { + t += `on ${name}'s bedroll `; + } + t += `${_fuckSpot}, making love in the missionary position. ${partnerName} has ${his2} legs wrapped around ${name}'s waist and ${his2} arms hugging ${him} around the chest, and is `; + if (canSee(_partnerSlave)) { + t += `looking deep into ${his} eyes `; + } else { + t += `gazing longingly into ${his} face `; + } + t += `as ${he2} enjoys the feeling of ${his2} ${activeSlaveRel} fucking ${him2} with a strap-on.`; + } else if (_partnerSlave.anus > 0 && canDoAnal(_partnerSlave) && activeSlave.amp !== 1 && activeSlave.belly < 10000) { + if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) { + t += `in bed `; + } else if (activeSlave.livingRules === "luxurious") { + t += `in bed `; + } else { + t += `on ${name}'s bedroll `; + } + t += `${_fuckSpot}, having gentle anal sex while spooning. ${name} is enjoying penetrating ${partnerName}'s ass with a strap-on, and is doing ${his} best to ensure ${his} ${activeSlaveRel} enjoys being buttfucked. ${He}'s nibbling ${his} ${activeSlaveRel}'s `; + if (_partnerSlave.earShape !== "none") { + t += `ears and `; + } + t += `neck, cupping a breast with one hand, and lightly stimulating ${him} with the other.`; + } else if (_partnerSlave.amp !== 1 && activeSlave.amp !== 1) { + if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) { + t += `in bed `; + } else if (activeSlave.livingRules === "luxurious") { + t += `in bed `; + } else { + t += `on ${name}'s bedroll `; + } + t += `${_fuckSpot}, enjoying some mutual masturbation.`; + } else if (_partnerSlave.amp === 1) { + t += `just cuddling `; + if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) { + t += `in bed `; + } else if (activeSlave.livingRules === "luxurious") { + t += `in bed `; + } else { + t += `on ${name}'s bedroll `; + } + t += `${_fuckSpot}. ${name} is using ${partnerName}'s limbless torso as a pillow, which ${partnerName} seems to be enjoying, by ${his2} contented expression.`; + } else { + t += `just cuddling `; + if (_partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) { + t += `in bed `; + } else if (activeSlave.livingRules === "luxurious") { + t += `in bed `; + } else { + t += `on ${name}'s bedroll `; + } + t += `${_fuckSpot}. They're lying quietly, offering each other silent comfort and companionship.`; + } + } else if (_seed >= 33) { + /* CUDDLE TIME */ + if (activeSlave.energy > 95 && _fuckSeed > 70) { + t += `lying in bed together. ${partnerName} has somehow managed to exhaust ${his2} ${activeSlaveRel}, and the sexually sated nympho is curled up with ${his} head on ${partnerName}'s chest, snoring lightly. ${partnerName} is smiling fondly at ${him}.`; + } else if (activeSlave.fetish !== "none" && _fuckSeed > 50) { + switch (activeSlave.fetish) { + case "boobs": + t += `sleeping in bed together. ${name} is using ${partnerName}'s `; + if (_partnerSlave.boobs > 10000) { + t += `enormous breasts`; + } else if (_partnerSlave.boobs > 2000) { + t += `huge boobs`; + } else if (_partnerSlave.boobs > 300) { + t += `healthy tits`; + } else { + t += `flat chest`; + } + if (activeSlave.fetishKnown) { + t += `, which ${he} loves,`; + } + t += ` as a pillow.`; + break; + case "buttslut": + t += `sleeping in bed together. ${partnerName} is sleeping face-down so ${name} can use ${his2} `; + if (_partnerSlave.butt > 8) { + t += `massive rear`; + } else if (_partnerSlave.butt > 5) { + t += `huge posterior`; + } else if (_partnerSlave.butt > 2) { + t += `big butt`; + } else if (_partnerSlave.butt > 1) { + t += `trim behind`; + } else { + t += `skinny ass`; + } + if (activeSlave.fetishKnown) { + t += `, which ${he} loves,`; + } + t += ` as a pillow.`; + break; + case "cumslut": + t += `sleeping in bed together. ${name} is spooning ${his} ${activeSlaveRel}, ${his} head nestled alongside ${partnerName}'s, ${his} `; + if (activeSlave.lips > 95) { + t += `massive `; + } else if (activeSlave.lips > 70) { + t += `pillowlike `; + } else if (activeSlave.lips > 40) { + t += `plush `; + } else if (activeSlave.lips > 10) { + t += `pretty `; + } else { + t += `thin `; + } + t += `lips wet from kissing ${him2} to sleep.`; + break; + case "submissive": + case "masochist": + case "humiliation": + t += `sleeping in bed together. ${name} is being spooned by ${his} ${activeSlaveRel}, smiling peacefully at being held.`; + break; + case "dom": + case "sadist": + t += `sleeping in bed together. ${name} is spooning ${his} ${activeSlaveRel} possessively`; + if (activeSlave.amp !== 1) { + t += `, and even in ${his} sleep, has a proprietary hand on ${partnerName}'s `; + if (_partnerSlave.balls > 0) { + t += `balls`; + } else if (_partnerSlave.balls > 0) { + t += `soft cock`; + } else if (_partnerSlave.vagina > -1) { + t += `pussy`; + } else { + t += `body`; + } + } + t += `.`; + break; + case "pregnancy": + t += `sleeping in bed together. `; + if (activeSlave.belly >= 5000 && _partnerSlave.belly >= 5000) { + t += `They are pressed as close as they can be with their rounded middles in the way.`; + } else if (activeSlave.belly >= 5000) { + t += `${name} is spooning ${his} ${activeSlaveRel} possessively, ${his} rounded belly pushing into ${his2} back.`; + } else if (_partnerSlave.belly >= 5000) { + t += `${name} is spooning ${his} ${activeSlaveRel} possessively`; + if (activeSlave.amp !== 1) { + t += `, and even in ${his} sleep, has a proprietary hand on ${partnerName}'s belly`; + } + t += `.`; + } else { + t += `${name} is being spooned by ${his} ${activeSlaveRel}, smiling peacefully at being held.`; + } + break; + + } + } else if (_partnerSlave.dick > 6 && activeSlave.amp !== 1 && _fuckSeed > 30) { + t += `sleeping in bed together. ${name} is cuddled up close to ${partnerName}, and is cradling ${his} ${activeSlaveRel}'s enormous, soft cock with one hand.`; + } else if (activeSlave.height > _partnerSlave.height + 10) { + t += `sleeping in bed together, with the taller ${name} curled around ${his} little ${activeSlaveRel}.`; + } else if (_partnerSlave.height > activeSlave.height + 10) { + t += `sleeping in bed together, with the shorter ${name} curled under ${his} ${activeSlaveRel}.`; + } else if (activeSlave.amp === 1) { + t += `sleeping in bed together; ${partnerName} is using ${his2} limbless ${activeSlaveRel} as a pillow.`; + } else if (_partnerSlave.amp !== 1) { + t += `resting in bed together, holding hands in their sleep.`; + } else { + t += `sleeping quietly in bed together.`; + } + } else { + /* TOGETHER TIME */ + if (_fuckSeed > 75 && activeSlave.behavioralQuirk !== "none") { + switch (activeSlave.behavioralQuirk) { + case "confident": + t += `finishing up a meal together. ${name} `; + if (canTalk(activeSlave) && canHear(_partnerSlave)) { + t += `is concluding a story for ${his} ${activeSlaveRel}, ${his} clear confident voice ringing as ${he} relates a slight.`; + } else { + t += `is boasting to ${his} ${activeSlaveRel}, with ${partnerName} nodding in agreement.`; + } + break; + case "cutting": + t += `seeing to their chores together. ${name} `; + if (canTalk(activeSlave) && canHear(_partnerSlave)) { + t += `is making biting remarks about another one of your other slaves, with which ${his} ${activeSlaveRel} agrees tolerantly.`; + } else { + t += `is making ${his} thoughts about another one of your other slaves clear to ${his} ${activeSlaveRel}.`; + } + break; + case "funny": + if (canTalk(_partnerSlave) && canSee(_partnerSlave)) { + t += `seeing to their chores together. ${name} has just produced some unintentional slapstick humor, and ${his} ${activeSlaveRel} is giggling helplessly at ${his} antics.`; + } else { + t += `getting ready for bed. ${name} is making ${his} ${activeSlaveRel} giggle `; + if (canTalk(_partnerSlave)) { + t += `silently `; + } else { + t += `helplessly `; + } + t += `with ${his} antics.`; + } + break; + case "fitness": + t += `have just woken up. `; + if (activeSlave.amp !== 1) { + t += `${name} is doing ${his} morning crunches, and ${his} ${activeSlaveRel} is sleepily sitting on ${his} feet to help.`; + } else { + t += `${name} is doing ${his} morning exercises, and ${his} ${activeSlaveRel} is sleepily sitting nearby, providing moral support.`; + } + break; + case "insecure": + t += `have just woken up. ${name} is getting dressed when ${his} ${activeSlaveRel} `; + if ((canTalk(_partnerSlave) && canHear(activeSlave)) || (_partnerSlave.amp !== 1 && canSee(activeSlave))) { + t += `pays ${him} a compliment; ${name} blushes and gives ${partnerName} a kiss.`; + } else { + t += `demonstrates how much ${he2} adores ${his} body; ${name} blushes and gives ${partnerName} a kiss.`; + } + break; + case "sinful": + t += `have just woken up. ${name} appears to be praying, but to go by ${his} ${activeSlaveRel}'s `; + if (canTalk(activeSlave) && canHear(_partnerSlave)) { + t += `quiet mirth, ${he} seems to be substituting in some lewd words.`; + } else if (canSee(_partnerSlave)) { + t += `quiet mirth, ${he} seems to be adding in some lewd motions.`; + } else { + t += `blushing, ${he} seems to be substituting in the occasional lewd act.`; + } + break; + case "advocate": + if (canTalk(activeSlave)) { + t += `starting a meal together. A third, less well trained slave has asked ${name} an innocent question, and is getting enthusiastic slave dogma in return. ${His} ${activeSlaveRel} smiles tolerantly.`; + } else { + t += `have just woken up. ${name} is planning out how to better convince new slaves that they made the right choice. ${His} ${activeSlaveRel} just tolerantly goes about tidying up while giving the occasional idea.`; + } + break; + case "adores men": + if (canSee(activeSlave) && (canSee(_partnerSlave) || canHear(_partnerSlave))) { + t += `sharing a meal together. ${name} is making catcalls at passing boys, and ${his} ${activeSlaveRel} is nudging ${him} in the ribs every time {he2} catches it.`; + } else { + t += `getting ready for bed. ${name} is demonstrating just how much ${he} adores men to ${his} ${activeSlaveRel} while ${he2} nods `; + if (_partnerSlave.genes === "XX") { + t += `tolerantly.`; + } else { + t += `appreciatively.`; + } + } + break; + case "adores women": + if (canSee(activeSlave) && (canSee(_partnerSlave) || canHear(_partnerSlave))) { + t += `sharing a meal together. ${name} is making catcalls at passing girls, and ${his} ${activeSlaveRel} is nudging ${him} in the ribs every time {he2} catches it.`; + } else { + t += `getting ready for bed. ${name} is demonstrating just how much ${he} adores ladies to ${his} ${activeSlaveRel} while ${he2} nods `; + if (_partnerSlave.genes === "XY") { + t += `tolerantly.`; + } else { + t += `appreciatively.`; + } + } + break; + + } + } else if (_fuckSeed > 50) { + if ((activeSlave.actualAge >= _partnerSlave.actualAge + 10) && canTalk(_partnerSlave) && canHear(activeSlave)) { + t += `tidying up their room together. ${partnerName} is chattering about ${his2} day, while ${name} listens quietly, smiling fondly at ${his} ${activeSlaveRel}'s prattle.`; + } else if ((_partnerSlave.actualAge >= activeSlave.actualAge + 10) && canTalk(activeSlave) && canHear(_partnerSlave)) { + t += `tidying up their room together. ${name} is chattering about ${his} day, while ${partnerName} listens quietly, smiling fondly at ${his2} ${activeSlaveRel}'s prattle.`; + } else if (activeSlave.amp !== 1 && !canTalk(activeSlave) && canSee(_partnerSlave)) { + t += `getting ready for bed. ${name} is using gestures to tell ${his} ${activeSlaveRel} about ${his} day; ${partnerName} is very patient and does ${his2} best to follow.`; + } else if (canTalk(activeSlave) && canTalk(_partnerSlave) && canHear(activeSlave) && canHear(_partnerSlave)) { + t += `tidying up their room together. ${name} and ${partnerName} are chattering away over inconsequential things.`; + } else if (canSee(activeSlave) && canSee(_partnerSlave) && activeSlave.amp !== 1 && _partnerSlave.amp !== 1) { + t += `getting ready for bed. ${name} and ${partnerName} are rapidly gesturing to each other about their days.`; + } else { + t += `getting ready for bed. ${name} and ${his} ${activeSlaveRel}, ${partnerName}, are leaning against one another, just enjoying each other's warmth.`; + } + } else if (_fuckSeed > 25) { + t += `using some of their free time to `; + if (!canWalk(activeSlave) && canWalk(_partnerSlave)) { + if (canSee(activeSlave) && canSee(_partnerSlave)) { + t += `watch the weather; ${partnerName} helped ${his2} ${activeSlaveRel} to a window so ${he} could look out with ${him2}.`; + } else { + t += `get some fresh air; ${partnerName} helped ${his2} ${activeSlaveRel} to a balcony so ${he} could enjoy the breeze with ${him2}.`; + } + } else if (!canWalk(_partnerSlave) && canWalk(activeSlave)) { + if (canSee(activeSlave) && canSee(_partnerSlave)) { + t += `watch the weather; ${name} helped ${his} ${activeSlaveRel} to a window so ${he2} could look out with ${him}.`; + } else { + t += `get some fresh air; ${name} helped ${his} ${activeSlaveRel} to a balcony so ${he2} could enjoy the breeze with ${him}.`; + } + } else { + t += `rest on one of the penthouse balconies and enjoy the weather.`; + } + } else { + if (V.cockFeeder === 1) { + t += `taking in a meal together; they've chosen dispensers next to each other and are slurping away.`; + } else if (V.suppository === 1) { + t += `taking their drugs together; they've chosen fuckmachines next to each other and are `; + if (canTalk(activeSlave) && canTalk(_partnerSlave) && canHear(activeSlave) && canHear(_partnerSlave)) { + t += `chatting quietly as they're sodomized.`; + } else { + t += `enjoying their mutual sodomy.`; + } + } else { + t += `eating a quiet meal together.`; + } + } + } + /* CLOSE SEXY/CUDDLE/TOGETHER TIME */ + + V.target = "FRelation"; + } else { + t += ` Lover not found!`; + } + return t; +}; + +window.relatedSlave = function(activeSlave) { + const V = State.variables; + const pronouns = getPronouns(activeSlave); + const he = pronouns.pronoun, + him = pronouns.object, + his = pronouns.possessive, + hers = pronouns.possessivePronoun, + himself = pronouns.objectReflexive, + boy = pronouns.noun; + const He = capFirstChar(he), + His = capFirstChar(his); + let t = ""; + let activeSlaveRel; + let partnerSlave; + + let fuckseed = jsRandom(1, 100); + + if (V.partner === "relation") { + if (V.familyTesting === 1) { + partnerSlave = V.relation; + } else { + partnerSlave = getSlave(activeSlave.relationTarget); + } + } else { + activeSlaveRel = relationshipTerm(activeSlave); + partnerSlave = getSlave(activeSlave.relationshipTarget); + } + + if (partnerSlave !== undefined) { + /* potential problem point */ + + t += ` ${His} `; + if (V.partner === "relation") { + if (V.familyTesting === 1) { + t += `${V.relationType} `; + } else { + t += `${partnerSlave.relation} `; + } + } else { + t += `${activeSlaveRel} `; + } + t += `${partnerSlave.slaveName} `; + t += walkPasts(partnerSlave, fuckseed); + + V.target = "FRelation"; /* potentially removed later */ + } else { + t += ` Expected partner not found!`; + } + + return t; +}; + +window.walkPasts = function(slave, _seed) { + + /* will be moved up once this becomes a single, contained function. */ + const V = State.variables; + const pronouns = getPronouns(slave); + const he = pronouns.pronoun, + him = pronouns.object, + his = pronouns.possessive, + hers = pronouns.possessivePronoun, + himself = pronouns.objectReflexive, + boy = pronouns.noun; + const He = capFirstChar(he), + His = capFirstChar(his); + let _target = ""; + let t = ""; + let race = (V.seeRace ? slave.race : ""); + + switch (slave.assignment) { + case "be your agent": + t += `is shaping society in ${his} assigned arcology.`; + break; + case "live with your agent": + t += `is helping ${his} lover shape society in ${his} assigned arcology.`; + break; + case "work in the dairy": + if (V.dairyRestraintsSetting > 1) { + t += `is strapped to a milking machine in ${V.dairyName}, `; + if (slave.ovaries === 1 && V.dairyPregSetting > 0 && jsRandom(1, 2) === 2) { + if (isFertile(slave)) { + t += `and is wincing in pain as the machine forces another load of cum into ${his} womb. As you watch, ${his} ${race} stomach steadily swells with baby batter.`; + } else { + t += `giving you a good view of ${his} ${race} body and heavy belly on the feeds.`; + } + } else if (slave.lactation > 0) { + if (slave.balls > 0 && jsRandom(1, 2) === 1) { + if (slave.dick > 0) { + if (_seed > 50) { + t += `and is having ${his} cock sucked dry. As you watch, `; + if (slave.scrotum) { + t += `${his} balls tighten `; + } else { + t += `${he} begins to thrust harder `; + } + if (V.dairyStimulatorsSetting > 0) { + t += `as the phallus up ${his} butt `; + } else { + t += `as the suction to ${his} dick `; + } + t += `forces ${him} closer to yet another ejaculation.`; + } else { + t += `and is wincing in pain as the machine sucks ${his} sore cock, but you have a good view of ${his} ${race} body on the feeds.`; + } + } else { + if (_seed > 50) { + t += `and is having ${his} balls sucked dry. As you watch, `; + if (slave.scrotum) { + t += `${his} scrotum tightens `; + } else { + t += `${he} begins to thrust harder `; + } + if (V.dairyStimulatorsSetting) { + t += `as the phallus up ${his} butt `; + } else { + t += `as the suction against ${his} crotch `; + } + t += `forces ${him} closer to yet another leaking ejaculation.`; + } else { + t += `and is wincing in pain as the machine sucks ${his} empty balls, but you have a good view of ${his} ${race} body on the feeds.`; + } + } + } else { + if (_seed > 50) { + t += `and is having ${his} tits drained, but you have a good view of ${his} ${race} body on the feeds.`; + } else { + t += `and is recovering after having ${his} tits sucked dry, but you have a good view of ${his} ${race} body on the feeds.`; + } + } + } else if (slave.balls > 0) { + if (slave.dick > 0) { + if (_seed > 50) { + t += `and is having ${his} cock sucked dry. As you watch, `; + if (slave.scrotum) { + t += `${his} balls tighten `; + } else { + t += `${he} begins to thrust harder `; + } + if (V.dairyStimulatorsSetting > 0) { + t += `as the phallus up ${his} butt `; + } else { + t += `as the suction to ${his} dick `; + } + t += `forces ${him} closer to yet another ejaculation.`; + } else { + t += `and is wincing in pain as the machine sucks ${his} sore cock, but you have a good view of ${his} ${race} body on the feeds.`; + } + } else { + if (_seed > 50) { + t += `and is having ${his} balls sucked dry. As you watch, `; + if (slave.scrotum) { + t += `${his} scrotum tightens `; + } else { + t += `${he} begins to thrust harder `; + } + if (V.dairyStimulatorsSetting) { + t += `as the phallus up ${his} butt `; + } else { + t += `as the suction against ${his} crotch `; + } + t += `forces ${him} closer to yet another leaking ejaculation.`; + } else { + t += `and is wincing in pain as the machine sucks ${his} empty balls, but you have a good view of ${his} ${race} body on the feeds.`; + } + } + } else { + t += `and is massaging ${his} sore, milkless tits, but you have a good view of ${his} ${race} body on the feeds.`; + } + } else { + t += `is working in ${V.dairyName}, `; + if (slave.lactation > 0) { + if (slave.balls > 0 && jsRandom(1, 2) === 1) { + if (slave.dick > 0) { + if (_seed > 50) { + t += `and is having ${his} cock milked. As you watch, `; + if (slave.scrotum) { + t += `${his} balls tighten `; + } else { + t += `${he} begins to thrust harder `; + } + if (V.dairyStimulatorsSetting > 0) { + t += `as the phallus up ${his} butt `; + } else { + t += `as the suction to ${his} dick `; + } + t += `brings ${him} closer to a copious ejaculation.`; + } else { + t += `and is massaging ${his} sore swollen cock, but you have a good view of ${his} ${race} body on the feeds.`; + } + } else { + if (_seed > 50) { + t += `and is having ${his} balls drained. As you watch, `; + if (slave.scrotum) { + t += `${his} scrotum tightens `; + } else { + t += `${he} begins to thrust harder `; + } + if (V.dairyStimulatorsSetting) { + t += `as the phallus up ${his} butt `; + } else { + t += `as the suction against ${his} crotch `; + } + t += `brings ${him} closer to a copious squirting.`; + } else { + t += `and is massaging ${his} aching balls, but you have a good view of ${his} ${race} body on the feeds.`; + } + } + } else { + if (_seed > 50) { + t += `and is having ${his} tits milked, but you have a good view of ${his} ${race} body on the feeds.`; + } else { + t += `and is massaging ${his} sore tits, but you have a good view of ${his} ${race} body on the feeds.`; + } + } + } else if (slave.balls > 0) { + if (slave.dick > 0) { + if (_seed > 50) { + t += `and is having ${his} cock milked. As you watch, `; + if (slave.scrotum) { + t += `${his} balls tighten `; + } else { + t += `${he} begins to thrust harder `; + } + if (V.dairyStimulatorsSetting) { + t += `as the phallus up ${his} butt `; + } else { + t += `as the suction to ${his} dick `; + } + t += `brings ${him} closer to a copious ejaculation.`; + } else { + t += `and is massaging ${his} sore swollen cock, but you have a good view of ${his} ${race} body on the feeds.`; + } + } else { + if (_seed > 50) { + t += `and is having ${his} balls drained. As you watch, `; + if (slave.scrotum) { + t += `${his} scrotum tightens `; + } else { + t += `${he} begins to thrust harder `; + } + if (V.dairyStimulatorsSetting) { + t += `as the phallus up ${his} butt `; + } else { + t += `as the suction against ${his} crotch `; + } + t += `brings ${him} closer to a copious squirting.`; + } else { + t += `and is massaging ${his} aching balls, but you have a good view of ${his} ${race} body on the feeds.`; + } + } + } else { + t += `and is massaging ${his} sore, milkless tits, but you have a good view of ${his} ${race} body on the feeds.`; + } + } + break; + case "work in the brothel": + t += `is working in ${V.brothelName}, and is `; + if (Beauty(slave) > 100 && jsRandom(1, 2) === 1) { + if (_seed > 80) { + if (canDoAnal(slave) || canDoVaginal(slave)) { + t += `riding one customer's dick while ${he} gives another a blowjob.`; + } else { + t += `deep throating a pair of customer's dicks.`; + } + } else if (_seed > 60 && slave.amp !== 1) { + t += `sucking one customer's cock while giving another a handjob.`; + } else if (_seed > 40) { + t += `eating out one customer's cunt while another `; + if (canDoAnal(slave) || canDoVaginal(slave)) { + t += `uses a strap-on on ${him}.`; + } else { + t += `teases ${his} butt.`; + } + } else if (_seed > 20) { + if (canDoAnal(slave) || canDoVaginal(slave)) { + t += `getting pounded by `; + } else { + t += `amusing `; + } + t += `two women wearing strap-ons.`; + } else { + if (canDoAnal(slave) || canDoVaginal(slave)) { + t += `being double penetrated by `; + } else { + t += `using ${his} body to please `; + } + t += `a pair of customers.`; + } + } else if (_seed > 80) { + if (canDoAnal(slave) || canDoVaginal(slave)) { + t += `pleasing `; + } else { + t += `riding `; + } + t += `a customer's dick.`; + } else if (_seed > 60) { + t += `sucking a customer's cock.`; + } else if (_seed > 40) { + t += `pleasuring a customer's cunt.`; + } else if (_seed > 20) { + t += `getting pounded by a woman wearing a strap-on.`; + } else { + t += `being held down and `; + if (canDoAnal(slave)) { + t += `buttfucked `; + } else { + t += `raped `; + } + t += `by a customer.`; + } + t += ` You have a voyeuristic view of ${his} ${race} body on the feeds.`; + break; + case "serve in the club": + t += `is working in ${V.clubName}, `; + if (_seed > 50) { + t += `displaying ${his} ${race} body, keeping citizens company, and flirting with anyone who shows interest.`; + } else { + t += `or rather just off it, having taken a prominent citizen back to a discreet room so he can use ${his} ${race} body.`; + } + break; + case "work as a servant": + if (_seed > 50) { + t += `was scrubbing the penthouse floor, until another slave requested oral service.`; + } else { + t += `is scrubbing the penthouse floor.`; + } + break; + case "serve in the master suite": + if (slave.fuckdoll > 0) { + t += `waiting for use in ${V.masterSuiteName}, next to a display case full of other sex toys.`; + } else if (V.masterSuiteUpgradeLuxury === 1) { + if (_seed > 50) { + t += `is sitting on the big bed in ${V.masterSuiteName}, awaiting your return.`; + } else { + t += `is beautifying ${himself} in ${V.masterSuiteName} so ${he}'ll be pretty when you return.`; + } + } else if (V.masterSuiteUpgradeLuxury === 2) { + t += `is in ${V.masterSuiteName}'s fuckpit, `; + if (_seed > 80) { + t += `with a pair of ${his} fellow fucktoys industriously sucking on ${his} nipples.`; + } else if (_seed > 60) { + if ((slave.anus > 0 && canDoAnal(slave)) || (slave.vagina > 0 && canDoVaginal(slave))) { + t += `taking double penetration from `; + } else { + t += `being spitroasted by `; + } + t += `a pair of ${his} fellow fucktoys.`; + } else if (_seed > 40) { + if (canPenetrate(slave)) { + t += `with ${his} dick inside `; + } else if (slave.dick > 0 && slave.chastityPenis !== 1) { + t += `getting ${his} soft dick sucked by `; + } else if (canDoVaginal(slave) || canDoAnal(slave)) { + t += `getting eaten out by `; + } else { + t += `making out with `; + } + t += `a fellow fucktoy.`; + } else if (_seed > 20) { + if (slave.vagina > 0 && canDoVaginal(slave)) { + t += `getting pounded `; + } else if (slave.anus > 0 && canDoAnal(slave)) { + t += `getting ${his} ass pounded `; + } else if (canDoVaginal(slave) || canDoAnal(slave)) { + t += `getting eaten out `; + } else { + t += `getting deepthroated `; + } + t += `by a fellow fucktoy.`; + } else { + t += `performing oral sex on a fellow fucktoy.`; + } + } else { + if (slave.energy > 95) { + t += `is having enthusiastic sex with your other pets while waiting for you to ravish ${him}.`; + } else { + t += `is having idle sex with several of your other toys while they await your pleasure.`; + if (slave.fetishKnown === 1) { + switch (slave.fetish) { + case "buttslut": + if (canDoAnal(slave) && slave.anus > 0) { + t += `${He}'s happily taking a strap-on up ${his} asspussy.`; + } else { + t += `${He}'s happily got another slave between ${his} buttcheeks.`; + } + break; + case "cumslut": + t += `${He}'s happily performing oral on another slave.`; + break; + case "dom": + t += `${He}'s pinning another slave down while ${he} fucks her.`; + break; + case "submissive": + t += `${He}'s letting another slave have her way with ${him}.`; + break; + case "sadist": + if (slave.amp !== 1) { + t += `${He}'s spanking another slave with one hand and fingering her with the other.`; + } else { + t += `${He}'s painfully teasing another slave's nipple with ${his} teeth.`; + } + break; + case "masochist": + t += `Another slave is spanking ${him} while molesting everything she can.`; + break; + case "boobs": + t += `${He} has a slave sucking on each of ${his} nipples`; + if (slave.amp !== 1) { + t += ` while ${he} gives each a handjob.`; + } else { + t += `.`; + } + break; + case "pregnancy": + if (slave.belly >= 5000) { + t += `${He}'s sighing contentedly as ${his} rounded belly is sensually rubbed.`; + } else if (canPenetrate(slave)) { + t += `${He}'s happily roleplaying impregnating the slave ${he}'s fucking.`; + } else if ((slave.anus > 0 && canDoAnal(slave)) || (slave.vagina > 0 && canDoVaginal(slave))) { + t += `${He}'s happily roleplaying conceiving a child as ${he} gets fucked.`; + } else { + t += `${He}'s happily roleplaying being hugely pregnant.`; + } + break; + + } + } + } + } + break; + /* + case "guard you": + t += `is standing discreetly behind your left shoulder, watching for threats.`; + break + */ + case "stay confined": + t += `is confined, but you have a fine view of ${his} ${race} body on the feed from ${his} cell.`; + break; + case "be confined in the cellblock": + t += `is confined in ${V.cellblockName}, but you have a fine view of ${his} ${race} body on the feed from ${his} cell.`; + break; + case "be confined in the arcade": + case "work a glory hole": + t += `is confined in `; + if (slave.assignment === "be confined in the arcade") { + t += `${V.arcadeName}; `; + } else { + t += `a glory hole; `; + } + if (_seed > 80 && (canDoAnal(slave) || canDoVaginal(slave))) { + t += `${his} ass is held out at cock height, and a customer is using ${his} fuckhole.`; + } else if (_seed > 60) { + t += `${his} mouth is held open at cock height, and a customer is fucking ${his} throat.`; + } else if (_seed > 40) { + t += `a woman is abusing ${him} with a couple of dildos.`; + } else if (_seed > 20 && canDoAnal(slave)) { + t += `a customer is harshly using ${his} defenseless anus.`; + } else { + t += `a customer is cruelly spanking ${his} helpless butt.`; + } + break; + case "be the Madam": + t += `is managing ${V.brothelName}: ${he} is making sure all the customers are satisfied and all the whores are working hard.`; + break; + case "be your Concubine": + if (jsRandom(1, 2) === 1) { + t += `is looking after ${himself}; ${he} spends many hours every day on ${his} beauty regimen.`; + } else { + t += `is checking over the appearance of your harem, making sure everyone looks perfect.`; + } + break; + case "be the Wardeness": + t += `is looking after the cells: ${he} is `; + if (_seed > 50) { + t += `forcing a resistant slave to orally service ${him}.`; + } else { + t += `beating a rebellious slave across the buttocks.`; + } + break; + case "live with your Head Girl": + if (V.HeadGirl !== 0) { + t += `is getting the Head Girl's suite cleaned up while ${V.HeadGirl.slaveName} is out working.`; + } else { + t += `is making sure the Head Girl's suite is in order for your next Head Girl.`; + } + break; + case "be the Stewardess": + t += `is managing the house servants in ${V.servantsQuartersName}: ${he} overseeing the laboring house slaves and punishing any that step out of line.`; + break; + case "be the Schoolteacher": + t += `is teaching classes in ${V.schoolroomName}: ${he} is leading the slave students in rote recitation.`; + break; + case "be the Attendant": + t += `is seeing to girls in ${V.spaName}: ${he} is gently soaping an exhausted slave.`; + break; + case "be the DJ": + if (_seed > 50) { + t += `is right where ${he} belongs, in the DJ booth in ${V.clubName} ${he} leads. ${He}'s bouncing in time with the beat to show off ${his} `; + if (slave.boobs > 300) { + t += `tits.`; + } else { + t += `goods.`; + } + } else { + t += `is taking the lead on ${V.clubName}'s floor: ${he} greets new arrivals, flirts with them prettily, and subtly guides them towards choice sluts.`; + } + break; + case "be the Milkmaid": + t += `is working in ${V.dairyName}, looking after your stock.`; + break; + default: + /* WALKPASTS START HERE */ + if (slave.heels === 1 && !["flats", "none"].includes(slave.shoes)) { + t += `walks past your desk with the tiny swaying steps ${he} must take in order to walk on ${his} surgically altered legs. ${He} is on ${his} way to `; + } else if (["heels", "pumps"].includes(slave.shoes)) { + t += `walks past your desk with the swaying steps ${he} must take in ${his} high heels. ${He} is on ${his} way to `; + } else if (slave.shoes === "boots") { + t += `walks past your desk with the confident gait encouraged by ${his} high heeled boots. ${He} is on ${his} way to `; + } else if (slave.shoes === "extreme heels") { + t += `walks past your desk with the tiny swaying steps ${he} must take in ${his} ridiculous heels. ${He} is on ${his} way to `; + } else if (slave.heels === 1) { + t += `crawls past your desk on all fours, since ${he} has not been allowed the heels ${he} needs to walk upright. ${He} is on ${his} way to `; + } else if (slave.amp === 1) { + t += `is carried past your desk by one of your other slaves. ${He} is on ${his} way to `; + } else if (!canWalk(slave)) { + t += `is helped past your desk by one of your other slaves. ${He} is on ${his} way to `; + } else { + t += `walks past your desk on ${his} way to `; + } + if (slave.inflation > 0 && jsRandom(1, 100) > 70) { + if (slave.inflationMethod === 1) { + t += `gorge ${himself} with ${slave.inflationType}; `; + } else if (slave.inflationMethod === 2) { + t += `fill ${his} rear with `; + switch (slave.inflationType) { + case "water": + case "milk": + case "cum": + case "food": + t += `${slave.inflationType}; `; + break; + default: + t += `${slave.inflationType}s; `; + break; + } + } else if (slave.inflationMethod === 3) { + if (slave.inflationType === "milk") { + t += `suckle from ${his} assigned nipple until ${he} is sufficiently filled with milk; `; + } else { + t += `suck ${his} assigned dick until ${he} is sufficiently filled with cum; `; + } + } + } else { + switch (slave.assignment) { + case "rest": + if (_seed > 50) { + t += `bed; `; + } else { + t += `eat; `; + } + break; + case "get milked": + if (_seed > 50) { + if (slave.lactation) { + t += `milk ${his} overfull ${race} tits; `; + } else { + t += `empty ${his} aching balls; `; + } + } else { + if (slave.lactation) { + t += `drain ${his} milky ${race} udders; `; + } else { + t += `relieve ${his} heavy balls; `; + } + } + break; + case "whore": + if (_seed > 50) { + t += `sell ${his} ${race} body; `; + } else { + t += `ply ${his} trade as a whore; `; + } + break; + case "serve the public": + if (_seed > 50) { + t += `serve the public; `; + } else { + t += `be a public slut; `; + } + break; + case "rest in the spa": + t += `relax in ${V.spaName}; `; + break; + case "please you": + t += `wait next to you and wait for you to fuck ${him}; `; + break; + case "be a subordinate slave": + t += `service your other slaves; `; + break; + case "be a servant": + t += `clean up after your other slaves; `; + break; + case "learn in the schoolroom": + t += `attend classes `; + if (V.Schoolteacher === 0) { + t += `in ${V.schoolroomName}; `; + } else { + t += `under ${V.Schoolteacher.slaveName}, perhaps literally; `; + } + break; + case "be the Attendant": + t += `look after the slaves in ${V.spaName}; `; + break; + case "take classes": + t += `attend classes with ${V.assistantName}; `; + break; + case "be your Head Girl": + t += `oversee your other slaves; `; + break; + case "recruit girls": + t += `use ${his} connections to recruit slaves; `; + break; + default: + t += `${slave.assignment}; `; + break; + } + } /* end inflation blurb */ + if (slave.fetish === "mindbroken") { + t += `${he} does not even glance at you as ${he} goes mindlessly to ${his} next task.`; + } else if (slave.devotion < -50) { + t += `${he} directs a look of pure hatred at where you sit as ${he} passes.`; + } else if (slave.devotion < -20) { + t += `${he} cannot keep the loathing from ${his} face as ${he} passes.`; + } else if (slave.devotion <= 20) { + t += `${he} passes quickly, obviously hoping to avoid you.`; + } else if (slave.devotion <= 50) { + t += `${he} rushes by, hurrying to ${his} next task.`; + } else { + t += `as ${he} passes ${he} gives you a look of adoration.`; + } + break; + } + return t; +}; + +window.boobWatch = function(slave) { + + /* will be moved up once this becomes a single, contained function. */ + let t = ""; + let V = State.variables; + + let pronouns = getPronouns(slave); + let he = pronouns.pronoun, + him = pronouns.object, + his = pronouns.possessive, + hers = pronouns.possessivePronoun, + himself = pronouns.objectReflexive, + boy = pronouns.noun; + let He = capFirstChar(he), + His = capFirstChar(his); + + let breasts = (slave.boobs < 300) ? `flat chest` : `breasts`; + + t += `<<BoobsDescription>> `; + switch (slave.clothes) { + case "uncomfortable straps": + if (slave.boobs < 300) { + t += `The rings constantly rub against ${his} chest and force ${his} nipples to stick out.`; + } else { + t += `The strap over ${his} tits presses the soft flesh, and the ring around each nipple `; + if (slave.nipples === "fuckable") { + t += `forces them open.`; + } else { + t += `forces them to stick out.`; + } + } + break; + case "shibari ropes": + t += `The ropes binding ${his} chest `; + if (slave.boobs < 300) { + t += `shift slightly with every step, since ${he} lacks any breasts to hold them in place.`; + } else { + t += `dig into the soft flesh as ${he} moves.`; + } + break; + case "attractive lingerie for a pregnant women": + if (slave.boobs < 300) { + t += `The bulge of ${his} ${slave.nipples} nipples can be seen under the taut silk.`; + } else { + t += `${His} silken bra causes ${his} breasts to bulge around them.`; + } + break; + case "a maternity dress": + t += `${His} low cut dress `; + if (slave.boobs < 300) { + t += `was made with breasts in mind; every stop ${he} takes risks it sliding down and revealing ${his} ${slave.nipples} nipples.`; + } else { + t += `shows ample cleavage and is made to be easy to pull down.`; + } + break; + case "stretch pants and a crop-top": + if (slave.boobs < 300) { + t += `${His} flat chest makes the perfect canvas to read ${his} crop-top.`; + } else { + t += `${His} crop-top tightly clings to ${his} breasts and moves along with them. ${His} jiggling cleavage distracts from the writing on ${his} tits.`; + } + break; + case "restrictive latex": + if (slave.boobs < 300) { + t += `${His} lack of breasts draws your eyes straight to ${his} exposed nipples.`; + } else { + t += `${His} tits stick out through ${his} latex outfit.`; + } + break; + case "attractive lingerie": + t += `${His} pretty white lace bra has thoughtful cuts that tastefully let ${his} nipples stick through.`; + break; + case "kitty lingerie": + t += `${His} lingerie's cleavage window proudly displays ${his} `; + if (slave.boobs < 300) { + t += `flat chest.`; + } else { + t += `ample valley.`; + } + break; + case "a succubus outfit": + t += `${His} succubus outfit presents this sex demon's ${breasts}, inviting a damning fondle.`; + break; + case "a slutty maid outfit": + t += `${His} maid outfit covers ${his} ${breasts} with a thin white blouse designed to be easy to pull down.`; + break; + case "a nice maid outfit": + t += `${His} maid outfit covers ${his} ${breasts} demurely, offering the diverting task of pulling it off ${him}.`; + break; + case "a monokini": + t += `The straps of ${his} monokini cross in the center of ${his} chest, leaving the rest of ${his} ${breasts} naked.`; + break; + case "a cybersuit": + t += `${His} bodysuit is tight enough to show off `; + if (slave.boobs < 300) { + t += `just how flat ${he} is.`; + } else { + t += `every contour of ${his} chest.`; + } + break; + case "a string bikini": + t += `${His} string bikini covers only ${his} nipples, leaving the remainder of ${his} ${breasts} naked.`; + break; + case "a scalemail bikini": + t += `${His} scalemail bikini covers `; + if (slave.boobs < 300) { + t += `all of ${his} flat chest.`; + } else if (slave.boobs < 700) { + t += `${his} breasts entirely.`; + } else if (slave.boobs < 1500) { + t += `much of ${his} breasts, while still emphasizing them.`; + } else { + t += `the front of ${his} breasts.`; + } + break; + case "striped panties": + t += `${His} cute panties covers only ${his} crotch, leaving ${his} ${breasts} bare.`; + break; + case "clubslut netting": + t += `As ${he} moves, the weave of the netting over ${his} chest slips back and forth across ${his} nipples.`; + break; + case "a cheerleader outfit": + t += `As ${he} moves, `; + if (slave.boobs < 300) { + t += `the tight fabric rubs across ${his} obvious nipples.`; + } else { + t += `${his} chest threatens to fall out of ${his} cheerleader top.`; + } + break; + case "an apron": + t += `As ${he} moves, ${his} apron `; + if (slave.boobs < 300) { + t += `threatens to bounce off ${his} flat chest and expose ${his} nipples.`; + } else { + t += `provides excellent views of the sides of ${his} breasts.`; + } + break; + case "overalls": + t += `As ${he} moves, ${his} overalls `; + if (slave.boobs < 300) { + t += `threaten to slide off ${his} flat chest and expose ${his} nipples.`; + } else { + t += `provide excellent views of the sides of ${his} breasts.`; + } + break; + case "cutoffs and a t-shirt": + if (slave.boobs < 300) { + t += `${His} non-existent breasts are bare under ${his} t-shirt; not that you can really tell since they lack motion completely.`; + } else { + t += `${His} tits are bare under ${his} t-shirt, so movement gives delicious hints of their motion.`; + } + break; + case "spats and a tank top": + if (slave.boobs < 300) { + t += `${His} flat chest makes ${his} form-fitting tank top look as if it's clinging to a tube.`; + } else { + t += `${His} breasts bounce slightly under ${his} tank top as ${he} moves.`; + } + break; + case "a slutty outfit": + t += `For today's slutty outfit ${he}'s chosen a `; + if (jsRandom(1, 100) > 50) { + t += `handkerchief top that occasionally comes untied and `; + if (slave.boobs < 300) { + t += `reveals ${his} flat chest.`; + } else { + t += `spills ${his} breasts out naked.`; + } + } else { + t += `halter top cut so low that `; + if (slave.boobs < 300) { + t += `it occasionally slips down ${his} flat chest to reveal a nipple.`; + } else { + t += `${his} breasts occasionally pop out.`; + } + } + break; + case "a slave gown": + t += `${His} gorgeous dress has thoughtful cuts that tastefully bares ${his} ${(slave.boobs < 300) ? 'non-existent ' : ''}breasts.`; + break; + case "slutty business attire": + t += `${His} suit jacket and blouse are low enough to show off a lot of `; + if (slave.boobs < 300) { + t += `boob, or they would, had ${he} had any.`; + } else { + t += `boob.`; + } + break; + case "nice business attire": + t += `${His} suit jacket and blouse are businesslike, but they could be removed easily enough.`; + break; + case "a halter top dress": + t += `${His} beautiful halter top dress almost seems to be sculpted around ${his} body.`; + break; + case "a ball gown": + t += `${His} fabulous silken ball gown is tailored to accentuate the shape of ${his} ${breasts}.`; + break; + case "a slutty nurse outfit": + t += `${His} jacket presents ${his} ${(slave.boobs < 300) ? 'nipples' : 'breasts'} to be ogled.`; + break; + case "a schoolgirl outfit": + t += `${His} blouse lewdly displays ${his} `; + if (slave.boobs < 300) { + t += `${slave.nipples} nipples.`; + } else { + t += `breasts.`; + } + break; + case "a kimono": + t += `${His} kimono is clearly designed to accentuate ${his} ${breasts}.`; + break; + case "a hijab and abaya": + case "a niqab and abaya": + t += `${His} abaya covers ${his} ${breasts} totally.`; + break; + case "a thong": + case "a skimpy loincloth": + case "boyshorts": + case "cutoffs": + case "panties": + case "leather pants": + case "jeans": + case "sport shorts": + t += `Since ${he}'s wearing nothing but ${slave.clothing}, ${his} ${(slave.boobs < 300) ? 'non-existent ' : ''}breasts are delightfully naked.`; + break; + case "a hijab and blouse": + t += `${His} blouse and overshirt keep ${his} ${breasts} concealed.`; + break; + case "a huipil": + t += `${His} huipil `; + if (slave.boobs < 300) { + t += `daintily covers ${his} ${slave.nipples} nipples and flat chest.`; + } else { + t += `hugs the curves of ${his} breasts.`; + } + break; + case "battledress": + if (slave.boobs < 300) { + t += `As ${he} moves, you can occasionally spot ${his} lack of undergarments.`; + } else { + t += `${His} tank top and sports bra support rather than flatter ${his} breasts.`; + } + break; + case "a fallen nuns habit": + t += `${His} slutty nun outfit leaves ${his} ${(slave.boobs < 300) ? 'flat ' : ''}tits sinfully bare.`; + break; + case "a chattel habit": + t += `${His} chattel habit leaves ${his} ${(slave.boobs < 300) ? 'flat ' : ''}tits virtuously bare.`; + break; + case "a penitent nuns habit": + t += `${His} habit chafes ${his} nipples so harshly that it would probably be a relief to ${him} to have it stripped off ${him}.`; + break; + case "a comfortable bodysuit": + t += `${His} bodysuit is tight enough to show off `; + if (slave.boobs < 300) { + t += `just how flat ${he} is.`; + } else { + t += `every contour of ${his} chest.`; + } + break; + case "a latex catsuit": + t += `${His} latex catsuit is tight enough to show off `; + if (slave.boobs < 300) { + t += `just how flat ${he} is.`; + } else { + t += `every contour of ${his} chest.`; + } + break; + case "a military uniform": + case "a police uniform": + case "a schutzstaffel uniform": + case "a mounty outfit": + case "a red army uniform": + t += `${His} uniform tunic and shirt are formal, but they could be removed easily enough.`; + break; + case "battlearmor": + t += `${His} battlearmor will take some considerable effort to get out of.`; + break; + case "a nice nurse outfit": + t += `${His} nurse's outfit is functional, but they could be removed easily enough.`; + break; + case "a mini dress": + t += `${His} mini dress is tight enough to show off `; + if (slave.boobs < 300) { + t += `just how flat ${he} is.`; + } else { + t += `every contour of ${his} chest.`; + } + break; + case "a leotard": + if (slave.boobs < 300) { + t += `${His} leotard draws the eye straight to ${his} obvious nipples, since it lacks anything else to show off.`; + } else { + t += `${His} leotard is tight enough that it not only hugs ${his} breasts, but shows off ${his} nipples as well.`; + } + break; + case "a bunny outfit": + if (slave.boobs < 300) { + t += `With no breasts to speak of, ${his} strapless corset teddy manages to look rather slutty.`; + } else { + t += `${His} strapless corset teddy presents ${his} boobs while still managing to look a bit classy.`; + } + break; + case "harem gauze": + t += `${His} ${(slave.boobs < 300) ? 'non-existent ' : ''}breasts are clearly visible through the thin gauze that covers them.`; + break; + case "slutty jewelry": + if (slave.boobs < 300) { + t += `The light chain across ${his} non-existent breasts is the only thing on ${his} chest capable of moving separately from ${him}.`; + } else { + t += `The light chain under ${his} breasts accentuates their natural movement.`; + } + break; + + // needs improvement + case "a klan robe": + t += `${His} robe covers ${his} ${breasts} totally.`; + break; + case "a burqa": + t += `${His} burqa covers ${his} ${breasts} totally.`; + break; + case "a tube top and thong": + case "a tube top": + case "leather pants and a tube top": + t += `${His} tube top covers ${his} ${breasts} totally.`; + break; + case "a button-up shirt and panties": + case "a button-up shirt": + case "a t-shirt": + case "a t-shirt and thong": + case "an oversized t-shirt and boyshorts": + case "an oversized t-shirt": + case "a t-shirt and jeans": + case "sport shorts and a t-shirt": + case "a t-shirt and panties": + t += `${His} shirt covers ${his} ${breasts} totally.`; + break; + case "a bra": + case "a striped bra": + case "striped underwear": + case "a sports bra": + case "sport shorts and a sports bra": + t += `${His} bra covers ${his} ${breasts} totally.`; + break; + case "a tank-top": + case "a tank-top and panties": + t += `${His} tank-top covers ${his} ${breasts} totally.`; + break; + case "a sweater": + case "a sweater and panties": + case "a sweater and cutoffs": + t += `${His} sweater covers ${his} ${breasts} totally.`; + break; + case "a slutty klan robe": + t += `${His} robe partially covers ${his} ${breasts}.`; + break; + case "a nice pony outfit": + case "a slutty pony outfit": + t += `${His} pony outfit partially covers ${his} ${breasts}.`; + break; + case "leather pants and pasties": + case "panties and pasties": + t += `${His} pasties cover nothing more than ${his} nipples.`; + break; + case "a one-piece swimsuit": + t += `${His} swimsuit is tight enough to show off `; + if (slave.boobs < 300) { + t += `just how flat ${he} is.`; + } else { + t += `every contour of ${his} chest.`; + } + break; + case "a hanbok": + t += `${His} hanbok covers ${his} ${breasts} totally.`; + break; + case "a gothic lolita dress": + t += `${His} dress covers ${his} ${breasts} totally.`; + break; + case "a burkini": + t += `${His} burkini clings to the shape of ${his} ${breasts}.`; + break; + case "a slutty schutzstaffel uniform": + t += `${His} uniform tunic and shirt are formal, but they could be removed easily enough.`; + break; + case "a long qipao": + t += `${His} elegant qipao can be removed with minimal effort.`; + break; + case "a dirndl": + t += `${His} dirndl can be removed with minimal effort.`; + break; + case "lederhosen": + t += `${His} lederhosen might come off faster than it takes to put them on.`; + break; + case "a biyelgee costume": + t += `${His} costume could be removed with barely any effort.`; + break; + // ends needs work block + + case "no clothing": + if (slave.chastityAnus === 1 || slave.chastityVagina === 1 || slave.chastityPenis === 1) { + t += `Since ${he}'s wearing nothing but a chastity belt, ${his} ${(slave.boobs < 300) ? 'non-existent ' : ''}breasts are delightfully naked.`; + } else { + t += `${His} naked `; + if (slave.boobs < 300) { + t += `flat chest and exposed nipples`; + } else { + t += `breasts`; + } + t += ` catch your eye.`; + } + break; + default: // for outfits with exposed breasts that aren't worth having a unique description for + t += `${His} naked `; + if (slave.boobs < 300) { + t += `flat chest and exposed nipples`; + } else { + t += `breasts`; + } + t += ` catch your eye.`; + } + V.target = "FBoobs"; + return t; +}; + +window.buttWatch = function(slave) { + + /* will be moved up once this becomes a single, contained function. */ + let t = ""; + let V = State.variables; + + let pronouns = getPronouns(slave); + let he = pronouns.pronoun, + him = pronouns.object, + his = pronouns.possessive, + hers = pronouns.possessivePronoun, + himself = pronouns.objectReflexive, + boy = pronouns.noun; + let He = capFirstChar(he), + His = capFirstChar(his); + + V.target = "FButt"; + + t += `<<ButtDescription>> `; + switch (slave.clothes) { + case "a Fuckdoll suit": + t += `${His} suit is expressly designed to encourage use of ${his} rear hole.`; + break; + case "uncomfortable straps": + t += `A strap passes between ${his} `; + if (slave.amp !== 1) { + t += `legs, giving ${his} gait an awkward sway.`; + } else { + t += `leg stumps, pressing against ${his} genitals.`; + } + break; + case "shibari ropes": + if (slave.amp !== 1) { + t += `Ropes bind ${his} legs, giving ${his} gait an awkward sway.`; + } else { + t += `A rope passes between ${his} leg stumps, pressing against ${his} genitals.`; + } + break; + case "attractive lingerie for a pregnant woman": + t += `As ${he} moves, ${his} silken panties are very inviting.`; + break; + case "a maternity dress": + t += `${His} dress covers ${his} rear, but it will lift easily enough.`; + break; + case "stretch pants and a crop-top": + t += `${His} stretch pants tightly cling to ${his} rear as ${he} `; + if (slave.butt > 10) { + t += `moves. While the writing adorning it may catch your eye, the huge expanse of wobbling ass cleavage is far more distracting.`; + } else { + t += `moves; the writing on ${his} bottom gives you plenty of excuses to ogle it.`; + } + break; + case "restrictive latex": + t += `As some of the only islands in the sea of black latex, ${his} holes are eye-catching.`; + break; + case "a fallen nuns habit": + t += `${His} slutty nun outfit invites sin.`; + break; + case "a chattel habit": + t += `${His} chattel habit is designed for sex without being removed.`; + break; + case "a penitent nuns habit": + t += `${His} habit chafes ${him} so cruelly that it would probably be a relief to ${him} to have it pulled off, even if ${he}'s roughly fucked afterward.`; + break; + case "kitty lingerie": + t += `As ${he} moves, the strings of ${his} pretty kitty panties sway enticingly.`; + break; + case "attractive lingerie": + t += `As ${he} moves, ${his} lingerie delightfully hugs ${his} rear.`; + break; + case "a succubus outfit": + t += `${His} succubus outfit's tail holds ${his} skirt up high in back, inviting a damning fuck.`; + break; + case "a slutty maid outfit": + t += `${His} maid's skirt is cut extremely short, so that the slightest movement reveals a glimpse of ${his} ass.`; + break; + case "a nice maid outfit": + t += `${His} maid's skirt is cut conservatively, but will lift easily enough.`; + break; + case "a monokini": + t += `${His} monokini contours to the size and shape of ${his} bottom.`; + break; + case "an apron": + t += `${His} apron leaves ${his} buttocks totally exposed.`; + break; + case "overalls": + t += `${His} overalls fit snugly on ${his} bottom.`; + break; + case "a cybersuit": + t += `${His} bodysuit prominently displays the curves of ${his} butt.`; + break; + case "a string bikini": + t += `As ${he} moves, ${his} string lingerie leaves the entire line of ${his} hips naked and enticing.`; + break; + case "a scalemail bikini": + t += `As ${he} moves, ${his} scaly lingerie leaves almost the entire line of ${his} hips naked and enticing.`; + break; + case "striped panties": + case "a button-up shirt and panties": + case "a sweater and panties": + case "a tank-top and panties": + case "panties": + case "a t-shirt and panties": + case "panties and pasties": + case "striped underwear": + t += `${His} cute panties prominently display the curves of ${his} butt.`; + break; + case "boyshorts": + case "an oversized t-shirt and boyshorts": + t += `${His} boyshorts tightly cling to ${his} rear as ${he} `; + if (slave.butt > 5) { + t += `moves. It's filled out by so much ass you can't help but oggle.`; + } else { + t += `moves.`; + } + break; + case "clubslut netting": + t += `As ${he} moves, ${his} clubslut netting moves with ${him}, leaving nothing to the imagination.`; + break; + case "a cheerleader outfit": + t += `As ${he} moves, ${his} pleated cheerleader bounces up and down flirtatiously.`; + break; + case "cutoffs and a t-shirt": + t += `As ${he} moves, ${his} cutoffs hug ${his} butt.`; + break; + case "spats and a tank top": + t += `${His} spats show off every curve of ${his} ass.`; + break; + case "a slutty outfit": + t += `For today's slutty outfit ${he}'s chosen `; + if (jsRandom(1, 100) > 50 && slave.amp !== 1) { + t += `yoga pants so sheer that everything ${he}'s got is clearly visible.`; + } else { + t += `a miniskirt so brief that ${his} ass is hanging out the back, and a glimpse of ${his} goods is occasionally visible from the front.`; + } + break; + case "a slave gown": + if (slave.amp === 1) { + t += `${His} gorgeous dress is specially designed for ${his} limbless form, but without legs to support it, it can hardly conceal the outline of everything ${he} has.`; + } else { + t += `${His} gorgeous dress has a thoughtful cut that runs all the way from ${his} ankle to over ${his} hip, baring a leg all the way up.`; + } + break; + + case "a halter top dress": + t += `${His} beautiful halter top dress seems to be sculpted around ${his} bottom.`; + break; + case "a ball gown": + t += `${His} fabulous silken ball gown is tailored to fit ${him} and accentuates the shape of ${his} butt.`; + break; + case "a slutty nurse outfit": + t += `${His} tight skirt flatters ${his} ass.`; + break; + case "a schoolgirl outfit": + if (slave.anus === 0) { + t += `This schoolgirl clearly needs to lose ${his} anal virginity.`; + } else if (slave.vagina === 0) { + t += `This schoolgirl clearly takes it up the ass; that way, ${he} can remain a virgin, and be, like, totally pure and innocent.`; + } else { + t += `This schoolgirl clearly takes it up the ass.`; + } + break; + case "a kimono": + t += `${His} kimono demurely covers ${his} `; + if (slave.butt > 5) { + t += `behind, though it cannot conceal its massive shape.`; + } else { + t += `behind.`; + } + break; + + case "a hijab and abaya": + case "a niqab and abaya": + t += `${His} abaya totally conceals ${his} `; + if (slave.butt > 5) { + t += `behind, though it cannot conceal its large size.`; + } else { + t += `behind.`; + } + break; + case "a klan robe": + t += `${His} robe totally conceals ${his} `; + if (slave.butt > 5) { + t += `behind, though it cannot conceal its large size.`; + } else { + t += `behind.`; + } + break; + case "a burqa": + t += `${His} burqa totally conceals ${his} `; + if (slave.butt > 7) { + t += `behind, though it cannot conceal its absurd size.`; + } else { + t += `behind.`; + } + break; + case "a burkini": + if (slave.butt > 6) { + t += `${His} burkini finds itself accentuating the absurd size of ${his} behind.`; + } else { + t += `${His} burkini modestly covers ${his} behind.`; + } + break; + case "a hijab and blouse": + t += `${His} skirt modestly covers ${his} `; + if (slave.butt > 5) { + t += `behind, though it cannot conceal its large size.`; + } else { + t += `behind.`; + } + break; + case "cutoffs": + case "sport shorts and a t-shirt": + case "sport shorts": + case "a sweater and cutoffs": + case "sport shorts and a sports bra": + t += `${His} shorts hug the curves of ${his} hips and ass nicely.`; + break; + + case "a police uniform": + case "a t-shirt and jeans": + case "leather pants": + case "jeans": + case "leather pants and a tube top": + case "leather pants and pasties": + if (slave.butt > 1) { + t += `${His} pants are filled out with the curve of ${his} butt.`; + } else { + t += `${His} pants modestly cover ${his} butt.`; + } + break; + case "a nice pony outfit": + case "a slutty pony outfit": + t += `${His} leather outfit tightly hugs the curves of ${his} hips and ass.`; + break; + case "a skimpy loincloth": + t += `${His} loincloth only partially covers ${his} butt, giving frequent glimpses of the bare flesh beneath it.`; + break; + case "a gothic lolita dress": + t += `${His} dress can be lifted easily enough to get as ${his} rear.`; + break; + case "a hanbok": + t += `${His} hanbok can be lifted easily enough to get as ${his} `; + if (slave.butt > 7) { + t += `rear and its motion beneath the fabric certainly invites it.`; + } else { + t += `rear.`; + } + break; + case "a one-piece swimsuit": + t += `${His} swimsuit displays the delicious curves of ${his} butt and just begs you to run a hand across it.`; + break; + case "battledress": + t += `${His} fatigue trousers do not particularly flatter ${his} butt.`; + break; + case "nice business attire": + t += `${His} attractive skirt is nevertheless tight enough to show off ${his} derrière.`; + break; + case "slutty business attire": + t += `${His} skirt is so short it'll barely be necessary to lift it.`; + break; + case "a comfortable bodysuit": + t += `${His} bodysuit displays the curves of ${his} butt.`; + break; + case "a latex catsuit": + t += `${His} latex catsuit displays the curves of ${his} butt.`; + break; + case "a military uniform": + case "a red army uniform": + t += `${His} uniform skirt is nevertheless tight enough to show off ${his} derrière.`; + break; + case "a schutzstaffel uniform": + t += `${His} uniform trousers are nevertheless tight enough to show off ${his} derrière.`; + break; + case "a slutty schutzstaffel uniform": + t += `${His} uniform miniskirt is nevertheless tight enough to show off the enticing curves of ${his} butt.`; + break; + case "a long qipao": + t += `${His} elegant dress shows off all ${his} curves.`; + break; + case "battlearmor": + t += `${His} snug battlearmor is nevertheless tight enough to show off ${his} derrière.`; + break; + case "a mounty outfit": + t += `${His} uniform slacks are tight enough to show off ${his} derrière.`; + break; + case "a dirndl": + t += `${His} skirt shows off the soft curves ${his} derrière.`; + break; + case "lederhosen": + t += `${His} shorts tightly hug the crack of ${his} derrière.`; + break; + case "a biyelgee costume": + t += `${His} costume skirt's thin material shows off ${his} derrière.`; + break; + case "a nice nurse outfit": + t += `${His} nurse's trousers demurely cover ${his} behind.`; + break; + case "a mini dress": + t += `${His} mini dress displays the curves of ${his} butt.`; + break; + case "a leotard": + t += `${His} leotard leaves ${his} buttocks gloriously bare.`; + break; + case "a bunny outfit": + t += `${His} teddy covers ${his} rear, but in tight satin that flatters its curves.`; + break; + case "harem gauze": + t += `${His} hips are clearly visible through the thin gauze that covers it.`; + break; + case "a toga": + t += `${His} stellar behind is accented by the light material of ${his} toga.`; + break; + case "a huipil": + t += `${His} huipil is so short that ${his} butt is on display.`; + break; + case "slutty jewelry": + t += `${His} belt of light chain accentuates ${his} hips.`; + break; + case "a thong": + case "a tube top and thong": + case "a t-shirt and thong": + case "a slutty klan robe": + t += `${He}'s made an effort to keep ${his} thong out of ${his} crack, but it quickly slips back in with ${his} movements.`; + break; + case "an oversized t-shirt": + t += `${His} oversized t-shirt is covering ${his} rear, but it can be lifted easily enough.`; + break; + default: + // "a bra" "a button-up shirt" "a sweater" "a tank-top" "a tube top" "a striped bra" "a sports bra" "a t-shirt" + if (slave.chastityAnus && slave.chastityVagina) { + t += `${His} chastity protects ${his} holes from penetration.`; + V.target = "FondleButt"; + } else if (slave.chastityAnus) { + t += `${His} chastity belt protects ${his} rear from penetration.`; + V.target = "FondleButt"; + } else { + t += `You run your eye over ${his} naked hips.`; + } + } + return t; +}; + +window.anusWatch = function(slave) { + + /* will be moved up once this becomes a single, contained function. */ + let t = ""; + let V = State.variables; + + let pronouns = getPronouns(slave); + let he = pronouns.pronoun, + him = pronouns.object, + his = pronouns.possessive, + hers = pronouns.possessivePronoun, + himself = pronouns.objectReflexive, + boy = pronouns.noun; + let He = capFirstChar(he), + His = capFirstChar(his); + + V.target = "FAnus"; + + t += `<<AnusDescription>>`; + if (slave.chastityAnus === 0) { + t += ` `; + switch (slave.clothes) { + case "a Fuckdoll suit": + t += `${His} suit is expressly designed to encourage use of ${his} rear hole.`; + break; + case "uncomfortable straps": + t += `The ring over ${his} asshole beckons.`; + break; + case "shibari ropes": + t += `The rope between ${his} buttocks presses lewdly against ${his} anus as ${he} moves.`; + break; + case "restrictive latex": + t += `As one of the only islands in the sea of black latex, ${his} asshole is eye catching.`; + break; + case "a fallen nuns habit": + t += `${His} slutty nun outfit leaves ${his} butthole bare and available for anal sin.`; + break; + case "a chattel habit": + t += `${His} chattel habit covers ${his} anus with a strip of cloth, but it's designed to be lifted readily.`; + break; + case "a penitent nuns habit": + t += `${His} habit chafes ${his} rear end so cruelly that it would probably be a relief to ${him} to have it pulled up for a rough buttfuck.`; + break; + case "attractive lingerie": + if (slave.anus > 1 && slave.amp === 1) { + t += `${His} pretty g-string frequently fails to cover ${his} big butthole.`; + break; + } else if (slave.anus > 1) { + t += `As ${he} moves, ${his} pretty g-string frequently fails to cover ${his} big butthole.`; + break; + } else { + t += `As ${he} moves, ${his} pretty g-string draws your attention to ${his} ass.`; + } + break; + case "a succubus outfit": + t += `${His} succubus outfit's tail holds ${his} skirt up high in back, inviting a damning buttfuck.`; + break; + case "a nice maid outfit": + t += `${His} long maid's skirt will have to be gotten out of the way to permit access to ${his} ass.`; + break; + case "a slutty maid outfit": + t += `${His} short maid's skirt can be lifted to reveal ${his} bare buttocks.`; + break; + case "a slutty nurse outfit": + t += `${His} tight skirt flatters ${his} ass as ${he} moves.`; + break; + case "a schoolgirl outfit": + if (slave.anus === 0) { + t += `This schoolgirl clearly needs to lose ${his} anal virginity.`; + } else if (slave.vagina === 0) { + t += `This schoolgirl clearly takes it up the ass; that way, ${he} can remain a virgin, and be, like, totally pure and innocent.`; + } else { + t += `This schoolgirl clearly takes it up the ass.`; + } + break; + case "a kimono": + t += ` While ${his} kimono may demurely cover ${his} behind, you know ${his} asshole is bare under it.`; + break; + case "attractive lingerie for a pregnant woman": + t += `${His} silken panties are just begging to be torn off.`; + break; + case "a maternity dress": + t += `${His} dress could easily be slide up over ${his} butt to expose ${his} backdoor.`; + break; + case "stretch pants and a crop-top": + t += `${He} can easily be pantsed to reveal ${his} bare buttocks.`; + break; + case "a hijab and abaya": + case "a niqab and abaya": + t += `While ${his} abaya totally covers ${his} behind, it can be easily lifted to reveal ${his} asshole.`; + break; + case "a klan robe": + t += `While ${his} robe totally covers ${his} behind, it can be lifted to reveal ${his} asshole.`; + break; + case "a burqa": + t += `While ${his} burqa totally covers ${his} behind, it can be lifted to reveal ${his} asshole.`; + break; + case "an oversized t-shirt": + t += `${His} t-shirt may be oversized, but it does little to hide ${his} asshole.`; + break; + case "a tube top and thong": + case "a thong": + case "a t-shirt and thong": + if (slave.anus > 1 && slave.amp === 1) { + t += `${His} thong frequently fails to cover ${his} big butthole.`; + break; + } else if (slave.anus > 1) { + t += `As ${he} moves, ${his} thong frequently fails to cover ${his} big butthole.`; + break; + } else { + t += `As ${he} moves, ${his} thong draws your attention to ${his} ass.`; + } + break; + case "a bra": + case "a button-up shirt": + case "a sweater": + case "a tank-top": + case "a tube top": + case "a striped bra": + case "a slutty klan robe": + case "a sports bra": + case "a t-shirt": + t += `${His} outfit exposes ${his} bare butt and vulnerable asshole.`; + break; + case "an oversized t-shirt and boyshorts": + case "boyshorts": + t += `${His} boyshorts are tight enough to give hints of ${his} asshole.`; + break; + case "a button-up shirt and panties": + case "a sweater and panties": + case "a tank-top and panties": + case "panties": + case "a t-shirt and panties": + case "panties and pasties": + case "striped underwear": + t += `${His} tightly clinging panties can be pulled aside to reveal ${his} asshole.`; + break; + case "cutoffs": + case "sport shorts and a t-shirt": + case "sport shorts": + case "a sweater and cutoffs": + case "sport shorts and a sports bra": + t += `${His} shorts are practically begging to be pulled down to reveal ${his} naked butthole.`; + break; + case "a police uniform": + case "a t-shirt and jeans": + case "leather pants": + case "jeans": + case "leather pants and a tube top": + case "leather pants and pasties": + t += `${His} pants are practically begging to be pulled down to reveal ${his} naked butthole.`; + break; + case "a nice pony outfit": + case "a slutty pony outfit": + t += `${His} leather outfit is practically sculpted to fit ${his} ass, though would need to be undone to reach ${his} butthole.`; + break; + case "a skimpy loincloth": + t += `${His} loincloth gives hints of ${his} bare ass and asshole beneath it.`; + break; + case "a gothic lolita dress": + t += `${His} dress can be lifted easily to reveal ${his} asshole.`; + break; + case "a hanbok": + t += `${His} hanbok can be lifted easily to reveal ${his} asshole.`; + break; + case "a one-piece swimsuit": + t += `${His} swimsuit tightly clings to ${his} rear, but `; + if (slave.butt > 3) { + t += `${his} butt is too large to easily pull it aside and reach ${his} asshole.`; + } else { + t += `can be easily pulled aside to reveal ${his} asshole.`; + } + break; + case "a burkini": + t += `${His} burkini modestly covers ${his} rear.`; + break; + case "a hijab and blouse": + t += `${His} modest skirt can be easily lifted to reveal ${his} asshole.`; + break; + case "battledress": + t += `${His} fatigue trousers are not particularly flattering to ${his} butt but could be pulled down easily enough.`; + break; + case "a monokini": + t += `The bottom of ${his} monokini is practically sculpted to fit ${his} ass.`; + break; + case "a cybersuit": + t += `As ${his} buttocks work naturally with ${his} movement, ${his} tight bodysuit gives hints of ${his} asshole.`; + break; + case "a string bikini": + if (slave.anus > 1) { + t += `As ${he} moves, ${his} big butthole is clearly visible behind ${his} tiny g-string.`; + } else { + t += `As ${he} moves, ${his} tiny g-string draws your attention to ${his} ass.`; + } + break; + case "a scalemail bikini": + t += `${His} scalemail bottom draws attention to ${his} ass cheeks, while concealing ${his} rear hole.`; + break; + case "striped panties": + t += `${His} cute panties draw attention to ${his} ass cheeks, while concealing ${his} rear hole.`; + break; + case "clubslut netting": + t += `As ${he} moves, the hole in ${his} netting right over ${his} butthole looks inviting.`; + break; + case "a cheerleader outfit": + t += `As ${he} moves, ${his} short pleated cheerleader skirt shows off ${his} butt.`; + break; + case "cutoffs and a t-shirt": + t += `As ${he} moves, ${his} tight cutoffs flatter ${his} butt.`; + break; + case "spats and a tank top": + t += `${His} spats show off every curve of ${his} ass.`; + break; + case "a slutty outfit": + t += `For today's slutty outfit ${he}'s chosen `; + if (slave.butt > 5) { + t += `a leather skirt with zippers that permit ready access to ${his} butt.`; + } else { + t += `fishnets with a hole cut over ${his} asshole so ${he} can be sodomized without removing or damaging ${his} clothing.`; + } + break; + case "a slave gown": + t += `${His} gorgeous dress leaves little to the imagination; there's little doubt ${his} butt is bare beneath it.`; + break; + case "a halter top dress": + t += `${His} dress should slide up over ${his} butt to reveal ${his} backdoor.`; + break; + case "a ball gown": + t += `${His} ballgown and its petticoats could easily be flipped up to bare ${his} butt.`; + break; + case "slutty business attire": + t += `${His} short skirt will easily slide up to bare ${his} asshole.`; + break; + case "nice business attire": + t += `${His} conservative skirt can be slid up over ${his} hips to bare ${his} butthole.`; + break; + case "a comfortable bodysuit": + t += `${His} bodysuit demands attention for ${his} tightly clad backdoor.`; + break; + case "a latex catsuit": + t += `${His} latex catsuit's crotch zipper offers ready access to ${his} backdoor.`; + break; + case "a military uniform": + t += `${His} uniform skirt can be slid up over ${his} hips to bare ${his} butthole.`; + break; + case "a schutzstaffel uniform": + t += `${His} uniform's trousers can be easily slid down to expose ${his} butthole.`; + break; + case "a slutty schutzstaffel uniform": + t += `${His} uniform miniskirt can be easily slid up over ${his} hips to bare ${his} butthole.`; + break; + case "a red army uniform": + t += `${His} uniform skirt can be slid up over ${his} hips to bare ${his} butthole.`; + break; + case "a long qipao": + t += `${His} dress can be slid up over ${his} hips to bare ${his} butthole.`; + break; + case "battlearmor": + t += `${His} armor demands attention for ${his} tightly clad backdoor.`; + break; + case "a mounty outfit": + t += `${His} uniform slacks can be slipped off ${his} hips to bare ${his} butthole.`; + break; + case "a dirndl": + t += `${His} dress can be easily lifted to access ${his} bare ass.`; + break; + case "lederhosen": + t += `${His} tight shorts can be slipped off ${his} hips to bare ${his} butthole.`; + break; + case "a biyelgee costume": + t += `${His} costume can be easily lifted to access ${his} naked butt.`; + break; + case "a nice nurse outfit": + t += `${His} nurse's trousers can be easily slid down to expose ${his} butthole.`; + break; + case "a mini dress": + t += `${His} mini dress can be easily slid up to expose ${his} butthole.`; + break; + case "an apron": + t += `${His} apron leaves ${his} asshole completely exposed.`; + break; + case "overalls": + t += `${His} overalls totally cover ${his} asshole.`; + break; + case "a leotard": + t += `As ${his} buttocks work naturally with ${his} movement, ${his} tight leotard gives hints of ${his} asshole.`; + break; + case "a bunny outfit": + t += `${His} fluffy white cottontail draws attention to ${his} butt, inevitably bringing anal to mind.`; + break; + case "harem gauze": + t += `${His} ass is clearly visible through the thin gauze that covers it.`; + break; + case "a toga": + t += `${His} toga is so transparent it can't hide ${his} asscrack, which looks very seductive.`; + break; + case "a huipil": + t += `${His} huipil can be easily lifted to access ${his} naked butt.`; + break; + case "slutty jewelry": + t += `${His} belt of light chain threatens to dip into ${his} asscrack with each step.`; + break; + default: + if (slave.chastityVagina) { + t += `${His} chastity belt leaves ${his} ass available.`; + } else { + t += `You run your eye over ${his} naked ass.`; + } + } + } + + return t; +}; + + +window.lipWatch = function(slave) { + + /* will be moved up once this becomes a single, contained function. */ + let t = ""; + let V = State.variables; + + let pronouns = getPronouns(slave); + let he = pronouns.pronoun, + him = pronouns.object, + his = pronouns.possessive, + hers = pronouns.possessivePronoun, + himself = pronouns.objectReflexive, + boy = pronouns.noun; + let He = capFirstChar(he), + His = capFirstChar(his); + + t += `<<faceDescription>>`; + t += `<<mouthDescription>>`; + switch (slave.collar) { + case "a Fuckdoll suit": + t += `${His} suit is expressly designed to encourage use of ${his} face hole.`; + break; + case "uncomfortable leather": + t += `${His} uncomfortable leather collar makes ${him} swallow and lick ${his} lips periodically, making it look like ${he}'s offering oral even though ${he}'s just trying to relieve the discomfort.`; + break; + case "tight steel": + case "cruel retirement counter": + t += `${His} tight steel collar makes ${him} swallow and lick ${his} lips periodically, making it look like ${he}'s offering oral even though ${he}'s just trying to relieve the discomfort.`; + break; + case "preg biometrics": + t += `${His} collar reveals everything about ${his} womb, bringing eyes straight to ${his} belly before drawing them back to ${his} neck.`; + break; + case "dildo gag": + t += `${His} ring gag would make ${him} ready for oral service, as soon as the formidable dildo it secures down ${his} throat is removed.`; + break; + case "massive dildo gag": + t += `Your eyes are drawn to the distinct bulge in ${his} throat caused by the enormous dildo in it, though ${his} mouth would only be suitable for the largest of cocks right now.`; + break; + case "shock punishment": + t += `${His} shock collar rests threateningly at ${his} throat, ready to compel ${him} to do anything you wish.`; + break; + case "neck corset": + t += `${His} fitted neck corset keeps ${his} breaths shallow, and ${his} head posture rigidly upright.`; + break; + case "stylish leather": + t += `${His} stylish leather collar is at once a fashion statement, and a subtle indication of ${his} enslavement.`; + break; + case "satin choker": + t += `${His} elegant satin choker is at once a fashion statement, and a subtle indication of ${his} enslavement.`; + break; + case "silk ribbon": + t += `${His} delicate, fitted silken ribbon is at once a fashion statement, and a subtle indication of ${his} enslavement.`; + break; + case "heavy gold": + t += `${His} heavy gold collar draws attention to the sexual decadence of ${his} mouth.`; + break; + case "pretty jewelry": + case "nice retirement counter": + t += `${His} pretty necklace can hardly be called a collar, but it's just slavish enough to hint that the throat it rests on is available.`; + break; + case "bell collar": + t += `${His} little bell tinkles merrily whenever ${he} moves, dispelling any grace or gravity.`; + break; + case "leather with cowbell": + t += `${His} cowbell tinkles merrily whenever ${he} moves, instantly dispelling any grace or gravity.`; + break; + case "bowtie": + t += `${His} black bowtie contrasts with ${his} white collar, drawing the eye towards ${his} neck and face.`; + break; + case "ancient Egyptian": + t += `${His} wesekh glints richly as ${he} moves, sparkling with opulence and sensuality.`; + break; + case "ball gag": + t += `${His} ball gag uncomfortably holds ${his} jaw apart as it fills ${his} mouth.`; + break; + case "bit gag": + t += `${His} bit gag uncomfortably keeps ${him} from closing ${his} jaw; drool visibly pools along the corners of ${his} mouth, where the rod forces back ${his} cheeks.`; + break; + case "porcelain mask": + t += `${His} beautiful porcelain mask hides ${his} face and any unsightly facial features.`; + break; + default: + t += `${His} unadorned `; + if (V.PC.dick === 1) { + t += `throat is just waiting to be wrapped around a thick shaft.`; + } else { + t += `lips are just begging for a cunt to lavish attention on.`; + } + } + if (jsRandom(1, 3) === 1) { + V.target = "FKiss"; + } else { + V.target = "FLips"; + } + + return t; +}; diff --git a/src/js/walkPastJS.js b/src/js/walkPastJS.js index 595a0128011..c46ff5da765 100644 --- a/src/js/walkPastJS.js +++ b/src/js/walkPastJS.js @@ -1,5 +1,4 @@ /* eslint-disable no-unused-vars */ -/* eslint-disable no-undef */ /* temporary container until the entire thing is complete. No point in not deploying the working functions, you know? */ window.primeSlave = function(activeSlave, seed) { @@ -46,7 +45,7 @@ window.rivalSlave = function(activeSlave, seed) { t += walkPasts(_partnerSlave, 100-seed); _partnerSlave = null; - V.target = "FRival"; /*potentially removed later*/ + V.target = "FRival"; /* potentially removed later */ } return t; @@ -55,30 +54,30 @@ window.rivalSlave = function(activeSlave, seed) { window.loverSlave = function(activeSlave) { /* will be moved up once this becomes a single, contained function. */ - var _target = ""; - var t = ""; - var V = State.variables; - var race; + let _target = ""; + let t = ""; + let V = State.variables; + let race; if (V.seeRace === 1) { race = activeSlave.race; } else { race = ""; } - var name = activeSlave.slaveName; + let name = activeSlave.slaveName; const pronouns = getPronouns(activeSlave); const he = pronouns.pronoun, him = pronouns.object, his = pronouns.possessive, hers = pronouns.possessivePronoun, himself = pronouns.objectReflexive, boy = pronouns.noun; const He = capFirstChar(he), His = capFirstChar(his); - var _partnerSlave = getSlave(activeSlave.relationshipTarget); - var _fuckSeed = jsRandom(1,100); - var _seed = jsRandom(1,100); - var _fuckSpot; + let _partnerSlave = getSlave(activeSlave.relationshipTarget); + let _fuckSeed = jsRandom(1, 100); + let _seed = jsRandom(1, 100); + let _fuckSpot; if (_partnerSlave !== undefined) { - var pronouns2 = getPronouns(_partnerSlave); - var he2 = pronouns2.pronoun, him2 = pronouns2.object, his2 = pronouns2.possessive, hers2 = pronouns2.possessivePronoun, himself2 = pronouns2.objectReflexive, boy2 = pronouns2.noun; - var He2 = capFirstChar(he2), His2 = capFirstChar(his2); - var race2; + let pronouns2 = getPronouns(_partnerSlave); + let he2 = pronouns2.pronoun, him2 = pronouns2.object, his2 = pronouns2.possessive, hers2 = pronouns2.possessivePronoun, himself2 = pronouns2.objectReflexive, boy2 = pronouns2.noun; + let He2 = capFirstChar(he2), His2 = capFirstChar(his2); + let race2; if (V.seeRace === 1) { race2 = _partnerSlave.race; } else { race2 = ""; } - var partnerName = _partnerSlave.slaveName; - var activeSlaveRel; + let partnerName = _partnerSlave.slaveName; + let activeSlaveRel; if (activeSlave.relationship <= 3) { activeSlaveRel = "friend with benefits"; } else if (activeSlave.relationship <= 4) { @@ -638,7 +637,7 @@ window.loverSlave = function(activeSlave) { } } } else if (canDoVaginal(activeSlave) && _fuckSeed > 30) { - if (canPenetrate(_partnerSlave) && activeSlave.vagina > 0 && activeSlave.preg === 0 && activeSlave.ovaries === 1) { //impreg + if (canPenetrate(_partnerSlave) && activeSlave.vagina > 0 && activeSlave.preg === 0 && activeSlave.ovaries === 1) { // impreg if (_partnerSlave.belly >= 5000) { t += `${partnerName} is `; if (_partnerSlave.bellyPreg >= 1500) { @@ -651,7 +650,7 @@ window.loverSlave = function(activeSlave) { t += `${partnerName} has ${name} pinned on ${his} back in a mating press as ${he2} fervently tries to sate ${his} lust by putting a baby in ${him}.`; } } else { - if (_fuckSeed > 50) { //vanilla + if (_fuckSeed > 50) { // vanilla if (canPenetrate(_partnerSlave) && activeSlave.vagina !== 0) { if (_partnerSlave.belly >= 5000) { t += `${partnerName} is `; @@ -693,7 +692,7 @@ window.loverSlave = function(activeSlave) { t += `${name} and ${partnerName} are both pretending to be hugely pregnant and cuddling each other.`; } } - } else if (canDoVaginal(_partnerSlave) && _fuckSeed > 40) { //scissor + } else if (canDoVaginal(_partnerSlave) && _fuckSeed > 40) { // scissor if (_partnerSlave.belly >= 5000) { t += `${partnerName} is `; if (_partnerSlave.bellyPreg >= 1500) { @@ -715,7 +714,7 @@ window.loverSlave = function(activeSlave) { t += `are enthusiastically tribbing.`; } } - } else { //oral + } else { // oral if (_partnerSlave.belly >= 5000) { t += `${partnerName} is `; if (_partnerSlave.bellyPreg >= 1500) { @@ -753,7 +752,7 @@ window.loverSlave = function(activeSlave) { } } } else if (canDoAnal(activeSlave) && canPenetrate(_partnerSlave) && _fuckSeed > 10) { - if (activeSlave.anus > 0 && activeSlave.preg === 0 && activeSlave.mpreg === 1) { //impreg + if (activeSlave.anus > 0 && activeSlave.preg === 0 && activeSlave.mpreg === 1) { // impreg if (_partnerSlave.belly >= 5000) { t += `${partnerName} is `; if (_partnerSlave.bellyPreg >= 1500) { @@ -804,7 +803,7 @@ window.loverSlave = function(activeSlave) { t += `${partnerName} has ${name} pinned on ${his} front as ${he2} dutifully plows ${his} needy anus in an attempt to sate ${his} bottomless lust.`; } } - } else { //oral + } else { // oral if (_partnerSlave.belly >= 5000) { t += `${partnerName} is `; if (_partnerSlave.bellyPreg >= 1500) { @@ -1244,7 +1243,7 @@ window.relatedSlave = function(activeSlave) { let t = ""; let partnerSlave; - let fuckseed = jsRandom(1,100); + let fuckseed = jsRandom(1, 100); if (V.partner === "relation") { if (V.familyTesting === 1) { @@ -1253,7 +1252,7 @@ window.relatedSlave = function(activeSlave) { partnerSlave = getSlave(activeSlave.relationTarget); } } else { - var activeSlaveRel = relationshipTerm(activeSlave); + let activeSlaveRel = relationshipTerm(activeSlave); partnerSlave = getSlave(activeSlave.relationshipTarget); } @@ -1272,7 +1271,7 @@ window.relatedSlave = function(activeSlave) { t += `${partnerSlave.slaveName} `; t += walkPasts(partnerSlave, fuckseed); - V.target = "FRelation"; /*potentially removed later*/ + V.target = "FRelation"; /* potentially removed later */ } else { t += ` Expected partner not found!`; } @@ -1301,14 +1300,14 @@ window.walkPasts = function(slave, _seed) { case "work in the dairy": if (V.dairyRestraintsSetting > 1) { t += `is strapped to a milking machine in ${V.dairyName}, `; - if (slave.ovaries === 1 && V.dairyPregSetting > 0 && jsRandom(1,2) === 2) { + if (slave.ovaries === 1 && V.dairyPregSetting > 0 && jsRandom(1, 2) === 2) { if (isFertile(slave)) { t += `and is wincing in pain as the machine forces another load of cum into ${his} womb. As you watch, ${his} ${race} stomach steadily swells with baby batter.`; } else { t += `giving you a good view of ${his} ${race} body and heavy belly on the feeds.`; } } else if (slave.lactation > 0) { - if (slave.balls > 0 && jsRandom(1,2) === 1) { + if (slave.balls > 0 && jsRandom(1, 2) === 1) { if (slave.dick > 0) { if (_seed > 50) { t += `and is having ${his} cock sucked dry. As you watch, `; @@ -1393,7 +1392,7 @@ window.walkPasts = function(slave, _seed) { } else { t += `is working in ${V.dairyName}, `; if (slave.lactation > 0) { - if (slave.balls > 0 && jsRandom(1,2) === 1) { + if (slave.balls > 0 && jsRandom(1, 2) === 1) { if (slave.dick > 0) { if (_seed > 50) { t += `and is having ${his} cock milked. As you watch, `; @@ -1479,7 +1478,7 @@ window.walkPasts = function(slave, _seed) { break; case "work in the brothel": t += `is working in ${V.brothelName}, and is `; - if (Beauty(slave) > 100 && jsRandom(1,2) === 1) { + if (Beauty(slave) > 100 && jsRandom(1, 2) === 1) { if (_seed > 80) { if (canDoAnal(slave) || canDoVaginal(slave)) { t += `riding one customer's dick while ${he} gives another a blowjob.`; @@ -1685,7 +1684,7 @@ window.walkPasts = function(slave, _seed) { t += `is managing ${V.brothelName}: ${he} is making sure all the customers are satisfied and all the whores are working hard.`; break; case "be your Concubine": - if (jsRandom(1,2) === 1) { + if (jsRandom(1, 2) === 1) { t += `is looking after ${himself}; ${he} spends many hours every day on ${his} beauty regimen.`; } else { t += `is checking over the appearance of your harem, making sure everyone looks perfect.`; @@ -1748,7 +1747,7 @@ window.walkPasts = function(slave, _seed) { } else { t += `walks past your desk on ${his} way to `; } - if (slave.inflation > 0 && jsRandom(1,100) > 70) { + if (slave.inflation > 0 && jsRandom(1, 100) > 70) { if (slave.inflationMethod === 1) { t += `gorge ${himself} with ${slave.inflationType}; `; } else if (slave.inflationMethod === 2) { @@ -2019,7 +2018,7 @@ window.boobWatch = function(slave) { break; case "a slutty outfit": t += `For today's slutty outfit ${he}'s chosen a `; - if (jsRandom(1,100) > 50) { + if (jsRandom(1, 100) > 50) { t += `handkerchief top that occasionally comes untied and `; if (slave.boobs < 300) { t += `reveals ${his} flat chest.`; @@ -2172,7 +2171,7 @@ window.boobWatch = function(slave) { } break; - //needs improvement + // needs improvement case "a klan robe": t += `${His} robe covers ${his} ${breasts} totally.`; break; @@ -2406,7 +2405,7 @@ window.buttWatch = function(slave) { break; case "a slutty outfit": t += `For today's slutty outfit ${he}'s chosen `; - if (jsRandom(1,100) > 50 && slave.amp !== 1) { + if (jsRandom(1, 100) > 50 && slave.amp !== 1) { t += `yoga pants so sheer that everything ${he}'s got is clearly visible.`; } else { t += `a miniskirt so brief that ${his} ass is hanging out the back, and a glimpse of ${his} goods is occasionally visible from the front.`; @@ -2605,7 +2604,7 @@ window.buttWatch = function(slave) { t += `${His} oversized t-shirt is covering ${his} rear, but it can be lifted easily enough.`; break; default: - //"a bra" "a button-up shirt" "a sweater" "a tank-top" "a tube top" "a striped bra" "a sports bra" "a t-shirt" + // "a bra" "a button-up shirt" "a sweater" "a tank-top" "a tube top" "a striped bra" "a sports bra" "a t-shirt" if (slave.chastityAnus && slave.chastityVagina) { t += `${His} chastity protects ${his} holes from penetration.`; V.target = "FondleButt"; @@ -2632,7 +2631,7 @@ window.anusWatch = function(slave) { V.target = "FAnus"; t += `<<AnusDescription>>`; - if (slave.chastityAnus == 0) { + if (slave.chastityAnus === 0) { t += ` `; switch (slave.clothes) { case "a Fuckdoll suit": @@ -3005,17 +3004,17 @@ window.lipWatch = function(slave) { break; default: t += `${His} unadorned `; - if (V.PC.dick == 1) { + if (V.PC.dick === 1) { t += `throat is just waiting to be wrapped around a thick shaft.`; } else { t += `lips are just begging for a cunt to lavish attention on.`; } } - if (jsRandom(1,3) === 1) { + if (jsRandom(1, 3) === 1) { V.target = "FKiss"; } else { V.target = "FLips"; } return t; -}; \ No newline at end of file +}; -- GitLab