diff --git a/src/js/temp.js b/src/js/temp.js deleted file mode 100644 index b45ceed56fd7336a7e74e3153d7e44d32c05935d..0000000000000000000000000000000000000000 --- a/src/js/temp.js +++ /dev/null @@ -1,3099 +0,0 @@ -/* 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; -};