From 42c901495853f558678e237ba33533257b94bbd0 Mon Sep 17 00:00:00 2001 From: lowercasedonkey <lowercasedonkey@gmail.com> Date: Sat, 29 Aug 2020 01:06:34 -0400 Subject: [PATCH] punc fixes --- src/npc/generate/newSlaveIntro.js | 1030 ++++++++++++++--------------- 1 file changed, 482 insertions(+), 548 deletions(-) diff --git a/src/npc/generate/newSlaveIntro.js b/src/npc/generate/newSlaveIntro.js index 64fed0bcf30..e9c4bd089d1 100644 --- a/src/npc/generate/newSlaveIntro.js +++ b/src/npc/generate/newSlaveIntro.js @@ -8,7 +8,7 @@ App.UI.newSlaveIntro = function(slave) { const { His, He, his, him, he, girl, hers, himself } = getPronouns(slave); - // const {he: heP, his: hisP} = getPronouns(V.PC); + const {woman: womanP} = getPronouns(V.PC); const el = new DocumentFragment(); let r; @@ -92,7 +92,7 @@ App.UI.newSlaveIntro = function(slave) { r = []; p = document.createElement("p"); - p.append(`The legalities completed, `); + p.append(`The legalities completed,`); span = document.createElement("span"); span.classList.add('slave-name'); span.textContent = SlaveFullName(slave); @@ -126,7 +126,7 @@ App.UI.newSlaveIntro = function(slave) { } r.push(`you sullenly.`); } else if (slave.trust <= 50) { - r.push(`staring `); + r.push(`staring`); if (canSee(slave)) { r.push(`at the ground`); } else { @@ -136,13 +136,13 @@ App.UI.newSlaveIntro = function(slave) { } else if (slave.devotion <= 50) { r.push(`waiting meekly for orders.`); } else if (canSmell(slave) && slave.career === "a breeding bull" && canGetPregnant(V.PC)) { - r.push(`sniffing the air and `); + r.push(`sniffing the air and`); if (canSee(slave)) { r.push(`staring`); } else { r.push(`pointing ${his} nose`); } - r.push(` intently at your crotch.`); + r.push(`intently at your crotch.`); } else if (slave.origin === "$He submitted to enslavement to escape the hard life of an old world whore.") { r.push(`wondering what one of your working ${girl}s can expect.`); } else if ((slave.origin === "$He submitted to enslavement to get access to modern prenatal care.") || (slave.origin === "$He sold $himself into slavery out of fear that life on the streets was endangering $his pregnancy.")) { @@ -160,7 +160,7 @@ App.UI.newSlaveIntro = function(slave) { } if (V.gingering !== 0 && V.beforeGingering !== 0 && V.beforeGingering.ID === slave.ID) { - r.push(` /* extra checks to ensure gingering state is not left over from a different slave that was inspected but not purchased */`); + // extra checks to ensure gingering state is not left over from a different slave that was inspected but not purchased let seed = "sale"; if (V.gingeringDetected === 1) { if (V.gingeringDetection === "slaver") { @@ -177,45 +177,45 @@ App.UI.newSlaveIntro = function(slave) { if (V.gingering === "antidepressant") { r.push(`${His} intake toxicology reveals that ${he} was`); if (V.gingeringDetected === 1) { - r.push(` indeed`); + r.push(`indeed`); } - r.push(` given antidepressants to make ${him} seem less fearful for ${seed}. ${He} is much less trusting than ${he} appeared in the market.`); + r.push(`given antidepressants to make ${him} seem less fearful for ${seed}. ${He} is much less trusting than ${he} appeared in the market.`); } else if (V.gingering === "depressant") { r.push(`${His} intake toxicology reveals that ${he} was`); if (V.gingeringDetected === 1) { - r.push(` indeed`); + r.push(`indeed`); } - r.push(` given a depressant to make ${him} seem less hateful for ${seed}. ${He} is much less obedient than ${he} appeared in the market.`); + r.push(`given a depressant to make ${him} seem less hateful for ${seed}. ${He} is much less obedient than ${he} appeared in the market.`); } else if (V.gingering === "stimulant") { r.push(`${His} intake toxicology reveals that ${he} was`); if (V.gingeringDetected === 1) { - r.push(` indeed`); + r.push(`indeed`); } - r.push(` given a stimulant to make ${him} seem healthier for ${seed}. ${He} is much less vital than ${he} appeared in the market.`); + r.push(`given a stimulant to make ${him} seem healthier for ${seed}. ${He} is much less vital than ${he} appeared in the market.`); } else if (V.gingering === "vasoconstrictor") { r.push(`${His} intake toxicology reveals that ${he} was`); if (V.gingeringDetected === 1) { - r.push(` indeed`); + r.push(`indeed`); } - r.push(` given a vasoconstrictor to make ${his} cock seem more feminine for ${seed}. It's larger and more apt to become hard than it appeared in the market.`); + r.push(`given a vasoconstrictor to make ${his} cock seem more feminine for ${seed}. It's larger and more apt to become hard than it appeared in the market.`); } else if (V.gingering === "vasodilator") { r.push(`${His} intake toxicology reveals that ${he} was`); if (V.gingeringDetected === 1) { - r.push(` indeed`); + r.push(`indeed`); } - r.push(` given a vasodilator to give ${him} an excessive erection for ${seed}. ${His} dick is somewhat smaller than it appeared in the market, and ${he}'s not really hard all the time.`); + r.push(`given a vasodilator to give ${him} an excessive erection for ${seed}. ${His} dick is somewhat smaller than it appeared in the market, and ${he}'s not really hard all the time.`); } else if (V.gingering === "aphrodisiac") { r.push(`${His} intake toxicology reveals that ${he} was`); if (V.gingeringDetected === 1) { - r.push(` indeed`); + r.push(`indeed`); } - r.push(` given aphrodisiacs to make ${him} horny and attracted to everyone for ${seed}. ${His} true sex drive and sexuality remain to be discovered.`); + r.push(`given aphrodisiacs to make ${him} horny and attracted to everyone for ${seed}. ${His} true sex drive and sexuality remain to be discovered.`); } else { r.push(`A close inspection of ${his} anus reveals that ${he} was`); if (V.gingeringDetected === 1) { - r.push(` indeed`); + r.push(`indeed`); } - r.push(` doctored with an irritant to make ${him} present ${his} butt when shown for ${seed}. ${He} is not an actual anal sex enthusiast.`); + r.push(`doctored with an irritant to make ${him} present ${his} butt when shown for ${seed}. ${He} is not an actual anal sex enthusiast.`); } } @@ -228,20 +228,12 @@ App.UI.newSlaveIntro = function(slave) { slave.origRace = slave.race; } if (slave.race !== slave.origRace) { - r.push(`A blood test reveals that ${he} was originally ${slave.origRace}, not slave.race`); - if (V.PC.skill.medicine >= 50 || V.PC.skill.slaving >= 50) { - r.push(`, just as you suspected`); - } - r.push(`.`); + r.push(`A blood test reveals that ${he} was originally ${slave.origRace}, not slave.race ${(V.PC.skill.medicine >= 50 || V.PC.skill.slaving >= 50) ? `, just as you suspected`:``}.`); } } if (slave.skin !== slave.origSkin) { if (slave.skin !== "sun tanned" && slave.skin !== "spray tanned") { - r.push(`An epidermis scan reveals that ${his} skin was originally ${slave.origSkin}, not slave.skin`); - if (V.PC.skill.medicine >= 75 || V.PC.skill.slaving >= 75) { - r.push(`, just as you suspected`); - } - r.push(`.`); + r.push(`An epidermis scan reveals that ${his} skin was originally ${slave.origSkin}, not slave.skin${(V.PC.skill.medicine >= 75 || V.PC.skill.slaving >= 75)?`, just as you suspected`:``}.`); } } @@ -278,7 +270,7 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`Learning`); } - r.push(` that you're a fellow futanari, ${he}'s <span class="mediumaquamarine">relieved</span> that ${he}'s going to be your slave, not to mention <span class="hotpink">quite eager</span> to have sex with you.`); + r.push(`that you're a fellow futanari, ${he}'s <span class="mediumaquamarine">relieved</span> that ${he}'s going to be your slave, not to mention <span class="hotpink">quite eager</span> to have sex with you.`); slave.devotion += 5; slave.trust += 5; } @@ -315,14 +307,14 @@ App.UI.newSlaveIntro = function(slave) { if (slave.actualAge > 35) { if (V.PC.visualAge < 35) { if ((slave.behavioralFlaw !== "hates men" && V.PC.title === 1) || (slave.behavioralFlaw !== "hates women" && V.PC.title === 0)) { - r.push(`${He} tries to conceal ${his} surprise at your age, and keeps glancing at ${his} own naked body and then back at you, obviously wondering at such a <span class="hotpink">gorgeous young _womanP's</span> interest in an old slave like ${him}.`); + r.push(`${He} tries to conceal ${his} surprise at your age, and keeps glancing at ${his} own naked body and then back at you, obviously wondering at such a <span class="hotpink">gorgeous young ${womanP}'s</span> interest in an old slave like ${him}.`); slave.devotion += 4; } } } else if ((slave.actualAge < 25)) { if (V.PC.visualAge >= 50) { if ((slave.behavioralFlaw !== "hates men" && V.PC.title === 1) || (slave.behavioralFlaw !== "hates women" && V.PC.title === 0)) { - r.push(`${He} keeps stealing glances at your face, probably wrestling with ${his} feelings about your age. Eventually ${he} seems to relax and accept it, with a certain <span class="hotpink">obvious thrill</span> at ${his} own willingness towards an older `); + r.push(`${He} keeps stealing glances at your face, probably wrestling with ${his} feelings about your age. Eventually ${he} seems to relax and accept it, with a certain <span class="hotpink">obvious thrill</span> at ${his} own willingness towards an older`); if (V.PC.title === 1) { r.push(`man`); } else { @@ -340,7 +332,7 @@ App.UI.newSlaveIntro = function(slave) { if (V.PC.belly >= 1000) { if (slave.fetish === "pregnancy") { if (slave.fetishKnown === 0) { - r.push(`${He} keeps stealing glances at your `); + r.push(`${He} keeps stealing glances at your`); if (V.PC.belly >= 120000) { r.push(`massive`); } else if (V.PC.belly >= 60000) { @@ -350,14 +342,14 @@ App.UI.newSlaveIntro = function(slave) { } else if (V.PC.belly >= 5000) { r.push(`big`); } - r.push(` baby bump.`); + r.push(`baby bump.`); if (canAchieveErection(slave)) { - r.push(` ${His} dick rapidly hardening.`); + r.push(`${His} dick rapidly hardening.`); } - r.push(` You teasingly ask if ${he}'d like to feel it sometime, eliciting a delighted squeal from the ${girl}. <span class="green">${He}'s a pregnancy fetishist!</span>`); + r.push(`You teasingly ask if ${he}'d like to feel it sometime, eliciting a delighted squeal from the ${girl}. <span class="green">${He}'s a pregnancy fetishist!</span>`); slave.fetishKnown = 1; } else { - r.push(`${He} keeps stealing glances at your `); + r.push(`${He} keeps stealing glances at your`); if (V.PC.belly >= 120000) { r.push(`massive`); } else if (V.PC.belly >= 60000) { @@ -367,11 +359,11 @@ App.UI.newSlaveIntro = function(slave) { } else if (V.PC.belly >= 5000) { r.push(`big`); } - r.push(` baby bump.`); + r.push(`baby bump.`); if (canAchieveErection(slave)) { - r.push(` ${His} dick rapidly hardening.`); + r.push(`${His} dick rapidly hardening.`); } - r.push(` As you inspect ${him}, you take care to gently brush your pregnancy across ${him} as you move. ${He} is practically bursting with lust by the end and <span class="hotpink">eager to please you</span> so ${he} can be close to that belly.`); + r.push(`As you inspect ${him}, you take care to gently brush your pregnancy across ${him} as you move. ${He} is practically bursting with lust by the end and <span class="hotpink">eager to please you</span> so ${he} can be close to that belly.`); slave.devotion += 5; } } else { @@ -384,7 +376,7 @@ App.UI.newSlaveIntro = function(slave) { if (V.PC.belly >= 1500) { if (slave.fetish === "pregnancy") { if (slave.fetishKnown === 0) { - r.push(`${He} keeps stealing glances at your `); + r.push(`${He} keeps stealing glances at your`); if (V.PC.belly >= 120000) { r.push(`massive`); } else if (V.PC.belly >= 60000) { @@ -394,14 +386,14 @@ App.UI.newSlaveIntro = function(slave) { } else if (V.PC.belly >= 5000) { r.push(`big`); } - r.push(` baby bump.`); + r.push(`baby bump.`); if (canAchieveErection(slave)) { - r.push(` ${His} dick rapidly hardening.`); + r.push(`${His} dick rapidly hardening.`); } - r.push(` You teasingly ask if ${he}'d like to feel it sometime, eliciting a delighted squeal from the ${girl}. <span class="green">${He}'s an impregnation fetishist!</span>`); + r.push(`You teasingly ask if ${he}'d like to feel it sometime, eliciting a delighted squeal from the ${girl}. <span class="green">${He}'s an impregnation fetishist!</span>`); slave.fetishKnown = 1; } else { - r.push(`${He} keeps stealing glances at your `); + r.push(`${He} keeps stealing glances at your`); if (V.PC.belly >= 120000) { r.push(`massive`); } else if (V.PC.belly >= 60000) { @@ -411,11 +403,11 @@ App.UI.newSlaveIntro = function(slave) { } else if (V.PC.belly >= 5000) { r.push(`big`); } - r.push(` baby bump.`); + r.push(`baby bump.`); if (canAchieveErection(slave)) { - r.push(` ${His} dick rapidly hardening.`); + r.push(`${His} dick rapidly hardening.`); } - r.push(` As you inspect ${him}, you take care to gently brush your pregnancy across ${him} as you move. ${He} is practically bursting with lust by the end and <span class="hotpink">eager to please you</span> so ${he} can be close to that belly.`); + r.push(`As you inspect ${him}, you take care to gently brush your pregnancy across ${him} as you move. ${He} is practically bursting with lust by the end and <span class="hotpink">eager to please you</span> so ${he} can be close to that belly.`); slave.devotion += 5; } } else { @@ -430,22 +422,10 @@ App.UI.newSlaveIntro = function(slave) { if (V.PC.boobs >= 1400) { if (slave.fetish === "boobs") { if (slave.fetishKnown === 0) { - r.push(`${He} keeps stealing glances at your huge rack`); - if (canAchieveErection(slave)) { - r.push(`, ${his} dick rapidly hardening`); - } - r.push(`. You stretch`); - if (canSee(slave)) { - r.push(`, giving ${him} a fantastic view of your breasts,`); - } - r.push(` before circling around behind ${him} and cupping ${his} chest. Between your tits against ${his} back, and how teasingly big you are pretending ${his} breasts will be, ${he} can't contain ${himself}; ${he} cums from overstimulation, completely pinning ${him} <span class="green">as a breast fetishist!</span>`); + r.push(`${He} keeps stealing glances at your huge rack${canAchieveErection(slave)?`, ${his} dick rapidly hardening`:``}. You stretch ${(canSee(slave)) ? `, giving ${him} a fantastic view of your breasts,`: ``} before circling around behind ${him} and cupping ${his} chest. Between your tits against ${his} back, and how teasingly big you are pretending ${his} breasts will be, ${he} can't contain ${himself}; ${he} cums from overstimulation, completely pinning ${him} <span class="green">as a breast fetishist!</span>`); slave.fetishKnown = 1; } else { - r.push(`${He} keeps stealing glances at your huge rack`); - if (canAchieveErection(slave)) { - r.push(`, ${his} dick rapidly hardening`); - } - r.push(`. As you inspect ${him}, you take care to keep "accidentally" bumping ${him} with your tits, before "tripping" and landing with ${his} face buried in your chest. ${He} is practically bursting with lust by the end and <span class="hotpink">eager to please you</span> so ${he} can be close to those boobs.`); + r.push(`${He} keeps stealing glances at your huge rack${(canAchieveErection(slave)) ? `, ${his} dick rapidly hardening`:``}. As you inspect ${him}, you take care to keep "accidentally" bumping ${him} with your tits, before "tripping" and landing with ${his} face buried in your chest. ${He} is practically bursting with lust by the end and <span class="hotpink">eager to please you</span> so ${he} can be close to those boobs.`); slave.devotion += 5; } } @@ -485,13 +465,13 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`Having`); } - r.push(` you in your `); + r.push(`you in your`); if (V.PC.title === 0) { r.push(`maid's dress`); } else { r.push(`maid's outfit`); } - r.push(` <span class="mediumaquamarine">calms ${his} fears;</span> however, ${he} is unwilling to <span class="mediumorchid">listen to a servant.</span>`); + r.push(`<span class="mediumaquamarine">calms ${his} fears;</span> however, ${he} is unwilling to <span class="mediumorchid">listen to a servant.</span>`); slave.devotion -= 3; slave.trust += 10; } else if ((V.PC.career === "gang")) { @@ -792,7 +772,7 @@ App.UI.newSlaveIntro = function(slave) { } if (V.arcologies[0].FSPaternalistLaw === 1) { - r.push(`${He} `); + r.push(`${He}`); if (canSee(slave)) { r.push(`saw`); } else if (canHear(slave)) { @@ -800,7 +780,7 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`passed through`); } - r.push(` a good deal of your arcology and its society on ${his} way to your penthouse, and was amazed by all the happy, healthy slaves. ${He} <span class="mediumaquamarine">begins to trust</span> that ${he}'ll be one of them, and <span class="hotpink">anticipates meeting</span> the person who built this place.`); + r.push(`a good deal of your arcology and its society on ${his} way to your penthouse, and was amazed by all the happy, healthy slaves. ${He} <span class="mediumaquamarine">begins to trust</span> that ${he}'ll be one of them, and <span class="hotpink">anticipates meeting</span> the person who built this place.`); slave.trust += 4; slave.devotion += 4; } @@ -822,6 +802,11 @@ App.UI.newSlaveIntro = function(slave) { let p; let div; let linkArray = []; + const hands = hasBothArms(slave) ? "arms" : "arm"; + const wrists = hasBothArms(slave) ? "wrists" : "wrist"; + const knees = hasBothLegs(slave) ? "knees" : "knee"; + const ankles = hasBothLegs(slave) ? "ankles" : "ankle"; + const feet = hasBothLegs(slave) ? "feet" : "foot"; /** * @@ -842,13 +827,11 @@ App.UI.newSlaveIntro = function(slave) { return; } - const results = result(slave); - span.append( App.UI.DOM.link( linkName, () => { - jQuery("#introResult").empty().append(results); + jQuery("#introResult").empty().append(result(slave)); } ) ); @@ -890,18 +873,10 @@ App.UI.newSlaveIntro = function(slave) { case "$He submitted to enslavement to escape the hard life of an old world whore.": choice({ introText: `, and since ${he} wanted to leave the old world...`, - linkName: `Brand ${him} on the brandTarget to introduce ${him} to life as a slave whore`, + linkName: `Brand ${him} on the ${brandTarget} to introduce ${him} to life as a slave whore`, result: function(slave) { const r = []; - r.push(`You tell ${him} you'll be marking ${him} as one of your working ${girl}s. ${He} looks resigned as ${he} follows you to the body modification studio, and lets you strap ${him} down with ${his} brandTarget bare. ${He} understands what's coming. You've got ${him} positioned just right`); - if (canDoAnal(slave)) { - r.push(`, so your cock slides up ${his} experienced asshole easily`); - } - r.push(`. You bring the brand in close so ${he} can feel the radiated heat, which breaks through even ${his} jaded exterior and makes ${him} tighten with fear. When you're close, you apply the brand`); - if (canDoAnal(slave)) { - r.push(`, making the poor whore cinch ${his} sphincter down hard in agony, bringing you to climax`); - } - r.push(`. ${He} knows you know how to <span class="gold">apply pain,</span> now, and ${he} <span class="mediumorchid">learns to dislike you</span> even as ${his} <span class="red">wound</span> heals.`); + r.push(`You tell ${him} you'll be marking ${him} as one of your working ${girl}s. ${He} looks resigned as ${he} follows you to the body modification studio, and lets you strap ${him} down with ${his} ${brandTarget} bare. ${He} understands what's coming. You've got ${him} positioned just right${canDoAnal(slave) ? `, so your cock slides up ${his} experienced asshole easily`:``}. You bring the brand in close so ${he} can feel the radiated heat, which breaks through even ${his} jaded exterior and makes ${him} tighten with fear. When you're close, you apply the brand${canDoAnal(slave) ? `, making the poor whore cinch ${his} sphincter down hard in agony, bringing you to climax`:``}. ${He} knows you know how to <span class="gold">apply pain,</span> now, and ${he} <span class="mediumorchid">learns to dislike you</span> even as ${his} <span class="red">wound</span> heals.`); if (canDoAnal(slave)) { r.push(VCheck.Anal()); } @@ -942,15 +917,15 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Abort ${his} child`, result: function(slave) { const r = []; - r.push(`You loudly place an innocuous-looking drug injector on your desk, and ${him} think about it for a long moment. Then, you declare exactly what made that sound: abortifacients. After a moment of comprehension, ${his} mood instantly improves. ${He} pledges to <span class="hotpink">submit to you,</span> `); + r.push(`You loudly place an innocuous-looking drug injector on your desk, and ${him} think about it for a long moment. Then, you declare exactly what made that sound: abortifacients. After a moment of comprehension, ${his} mood instantly improves. ${He} pledges to <span class="hotpink">submit to you,</span>`); if (V.PC.dick !== 0 && V.PC.vagina !== -1) { - r.push(`suck your cock, take it in ${his} pussy, take it up ${his} ass, eat you out`); + r.push(`suck your cock, take it in ${his} pussy, take it up ${his} ass, eat you out,`); } else if (V.PC.dick !== 0) { - r.push(`suck your cock, take it in ${his} pussy, take it up ${his} ass`); + r.push(`suck your cock, take it in ${his} pussy, take it up ${his} ass,`); } else { - r.push(`eat you out, worship you with ${his} pussy, serve you with ${his} ass`); + r.push(`eat you out, worship you with ${his} pussy, serve you with ${his} ass,`); } - r.push(`, anything, as long as you <span class="mediumaquamarine">remove ${his} rape baby.</span> You observe that ${he}'ll do all of those things, regardless of what you decide to do about ${his} pregnancy, but for now, you'll ${him} terminate it; ${he} needs all the nutrients for ${himself} right now. ${He} thanks you through ${his} tears.`); + r.push(`anything, as long as you <span class="mediumaquamarine">remove ${his} rape baby.</span> You observe that ${he}'ll do all of those things, regardless of what you decide to do about ${his} pregnancy, but for now, you'll ${him} terminate it; ${he} needs all the nutrients for ${himself} right now. ${He} thanks you through ${his} tears.`); slave.devotion += 4; slave.trust += 3; TerminatePregnancy(slave); @@ -1020,13 +995,13 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Give ${him} ${his} surgery`, result: function(slave) { const r = []; - r.push(`When ${he} `); + r.push(`When ${he}`); if (canHear(slave)) { r.push(`hears`); } else { r.push(`learns`); } - r.push(` ${he}'ll be heading to surgery immediately, ${he} bursts into <span class="hotpink">tears of gratitude</span> and makes to run around your desk to hug you before checking ${himself}. ${He} clearly doesn't want to put a foot wrong and isn't sure it would be appropriate. You solve ${his} dilemma by meeting ${him} with an embrace. ${He} <span class="mediumaquamarine">cries into your chest</span> and promises to be your best ${slave}. The surgery does affect ${his} <span class="red">health</span> a little.`); + r.push(`${he}'ll be heading to surgery immediately, ${he} bursts into <span class="hotpink">tears of gratitude</span> and makes to run around your desk to hug you before checking ${himself}. ${He} clearly doesn't want to put a foot wrong and isn't sure it would be appropriate. You solve ${his} dilemma by meeting ${him} with an embrace. ${He} <span class="mediumaquamarine">cries into your chest</span> and promises to be your best ${slave}. The surgery does affect ${his} <span class="red">health</span> a little.`); slave.devotion += 15; surgeryDamage(slave, 10); slave.trust += 10; @@ -1056,13 +1031,13 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Disabuse ${him} of ${his} silly ideas`, result: function(slave) { const r = []; - r.push(`You rise from your desk and move in close. ${He} turns to face you but you roughly spin ${him} around. You haul ${him} up on tiptoe so you can use ${him} standing. As you get your `); + r.push(`You rise from your desk and move in close. ${He} turns to face you but you roughly spin ${him} around. You haul ${him} up on tiptoe so you can use ${him} standing. As you get your`); if (V.PC.dick !== 0) { r.push(`cock`); } else { r.push(`strap-on`); } - r.push(` lined up with ${his} sissy ass ${he} starts to struggle and protest, asking you to fuck in a more comfortable position. You tell ${him} to keep ${his} whore mouth shut, and administer an awful slap when ${he} tries to keep talking. ${His} stupid illusions about life as a sex slave <span class="mediumorchid">melt away</span> with the burning sensation of a dick forcing its way up ${his} ass at a harsh angle. ${He} wilts a little as you abuse ${his} butt, and afterward, ${he}'s in tears as ${he} stumbles to the bathroom to wash ${his} fuckhole. ${He}'s regained ${his} composure by the time ${he} gets out but <span class="gold">breaks down</span> when you tell ${him} to present ${his} asshole again.`); + r.push(`lined up with ${his} sissy ass ${he} starts to struggle and protest, asking you to fuck in a more comfortable position. You tell ${him} to keep ${his} whore mouth shut, and administer an awful slap when ${he} tries to keep talking. ${His} stupid illusions about life as a sex slave <span class="mediumorchid">melt away</span> with the burning sensation of a dick forcing its way up ${his} ass at a harsh angle. ${He} wilts a little as you abuse ${his} butt, and afterward, ${he}'s in tears as ${he} stumbles to the bathroom to wash ${his} fuckhole. ${He}'s regained ${his} composure by the time ${he} gets out but <span class="gold">breaks down</span> when you tell ${him} to present ${his} asshole again.`); r.push(VCheck.Anal()); slave.devotion -= 5; slave.trust -= 10; @@ -1074,19 +1049,19 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Cruelly castrate ${him}`, result: function(slave) { const r = []; - r.push(`You rise from your desk and move in close, wordlessly dominating ${him} without touch, tempting and overawing ${him} until ${he}'s desperate with desire, ${his} prick stiff as iron. ${He} follows you willingly into the autosurgery and even allows you to strap ${him} in, face-down, without comment. ${His} fuckhole welcomes your `); + r.push(`You rise from your desk and move in close, wordlessly dominating ${him} without touch, tempting and overawing ${him} until ${he}'s desperate with desire, ${his} prick stiff as iron. ${He} follows you willingly into the autosurgery and even allows you to strap ${him} in, face-down, without comment. ${His} fuckhole welcomes your`); if (V.PC.dick !== 0) { r.push(`cock`); } else { r.push(`strap-on`); } - r.push(` and ${he} gasps with pleasure. ${He} climaxes with indecent speed, dripping ${his} cum onto the surgery floor. You keep fucking ${him}, but lean forward to whisper to ${him} that that was ${his} last hard-on. ${He}'s completely confused and says nothing, but gradually realizes what the numb feeling around ${his} ballsack means. ${He} <span class="gold">screams with horror</span> and <span class="mediumorchid">sobs disconsolately</span> as the autosurgery disengages from ${his} clipped genitals and you disengage from ${his} `); + r.push(`and ${he} gasps with pleasure. ${He} climaxes with indecent speed, dripping ${his} cum onto the surgery floor. You keep fucking ${him}, but lean forward to whisper to ${him} that that was ${his} last hard-on. ${He}'s completely confused and says nothing, but gradually realizes what the numb feeling around ${his} ballsack means. ${He} <span class="gold">screams with horror</span> and <span class="mediumorchid">sobs disconsolately</span> as the autosurgery disengages from ${his} clipped genitals and you disengage from ${his}`); if (V.PC.dick !== 0) { r.push(`cum-filled`); } else { r.push(`wilting`); } - r.push(` butthole. ${He} gingerly stumbles back to your office with you and, without even being ordered to, arranges ${himself} on the couch with ${his} fuckhole ready. The gelding does affect ${his} <span class="red">health</span> somewhat.`); + r.push(`butthole. ${He} gingerly stumbles back to your office with you and, without even being ordered to, arranges ${himself} on the couch with ${his} fuckhole ready. The gelding does affect ${his} <span class="red">health</span> somewhat.`); r.push(VCheck.Anal()); slave.devotion -= 10; slave.trust -= -10; @@ -1114,19 +1089,19 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(VCheck.Anal()); } - r.push(`You tell ${him} that slaves working in your penthouse are all expected to please you, and ${he}'ll have to impress you. ${He} smiles and even giggles a little, standing to strip off ${his} clothes, taking ${his} time and showing off ${his} fresh body. ${He} gets lewder and lewder, displaying youthful libido basking in the gaze of ${his} crush. ${He} slowly becomes more and more desperate to entice you, so you ${him} keep going out of curiosity, to see how far ${he}'ll go. ${He} goes to the point of reclining on the couch with ${his} legs back, spreading ${himself} and masturbating, and when that fails to get you out of your chair, ${he} begins to wink ${his} `); + r.push(`You tell ${him} that slaves working in your penthouse are all expected to please you, and ${he}'ll have to impress you. ${He} smiles and even giggles a little, standing to strip off ${his} clothes, taking ${his} time and showing off ${his} fresh body. ${He} gets lewder and lewder, displaying youthful libido basking in the gaze of ${his} crush. ${He} slowly becomes more and more desperate to entice you, so you ${him} keep going out of curiosity, to see how far ${he}'ll go. ${He} goes to the point of reclining on the couch with ${his} legs back, spreading ${himself} and masturbating, and when that fails to get you out of your chair, ${he} begins to wink ${his}`); if (temp > 50) { r.push(`pussy`); } else { r.push(`anus`); } - r.push(` meaningfully. ${He}'s clearly got a good idea of what many men like, and you head over and take ${his} tight `); + r.push(`meaningfully. ${He}'s clearly got a good idea of what many men like, and you head over and take ${his} tight`); if (temp > 50) { - r.push(`pussy`); + r.push(`pussy.`); } else { - r.push(`asshole`); + r.push(`asshole.`); } - r.push(`. You do it gently, making sure ${he} enjoys ${himself}, and ${he} becomes <span class="mediumaquamarine">very hopeful</span> that ${he} was wrong to doubt you, and that ${he} really can <span class="hotpink">be close to</span> the object of ${his} infatuation. ${He} bounces up off the couch afterward to wiggle ${his} butt at you, and even blows you a kiss as you get back to work.`); + r.push(`You do it gently, making sure ${he} enjoys ${himself}, and ${he} becomes <span class="mediumaquamarine">very hopeful</span> that ${he} was wrong to doubt you, and that ${he} really can <span class="hotpink">be close to</span> the object of ${his} infatuation. ${He} bounces up off the couch afterward to wiggle ${his} butt at you, and even blows you a kiss as you get back to work.`); slave.devotion += 4; slave.trust += 4; @@ -1139,19 +1114,19 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Make sure ${he} knows ${he} made a mistake`, result: function(slave) { const r = []; - r.push(`You tell ${him} that slaves working in your penthouse are all expected to please you, and ${he} nods eagerly. ${He} strips, only starting to look doubtful again when you brusquely order ${him} to hurry up. You order ${him} to get down on the ground with ${his} face up, ${his} shoulders against the floor; ${he} does, and then you order ${him} to put ${his} legs over ${his} head. ${He} looks puzzled but does, flipping ${himself} flexibly up until ${he}'s doing a shoulder stand, bent double with ${his} crotch over ${his} face. You stand over ${him} and shove `); + r.push(`You tell ${him} that slaves working in your penthouse are all expected to please you, and ${he} nods eagerly. ${He} strips, only starting to look doubtful again when you brusquely order ${him} to hurry up. You order ${him} to get down on the ground with ${his} face up, ${his} shoulders against the floor; ${he} does, and then you order ${him} to put ${his} legs over ${his} head. ${He} looks puzzled but does, flipping ${himself} flexibly up until ${he}'s doing a shoulder stand, bent double with ${his} crotch over ${his} face. You stand over ${him} and shove`); if (V.PC.dick !== 0) { r.push(`your cock`); } else { r.push(`a strap-on`); } - r.push(` down and into ${his} asshole. This is an advanced anal position and `); + r.push(`down and into ${his} asshole. This is an advanced anal position and`); if (slave.anus > 0) { r.push(`although ${he}'s clearly no`); } else { r.push(`even for an`); } - r.push(` anal virgin it's well beyond ${him}. ${He} does ${his} best but tears begin to streak ${his} cheeks. After a while you tire of the position and flip ${him} over onto ${his} face to assrape ${him} doggy style. This allows you to whisper into ${his} ear that ${his} holes are your property now, to use, to abuse, or to sell. ${He} <span class="mediumorchid">sobs in despair</span> at the latter, knowing ${he}'s <span class="gold">thrown ${his} life away.</span>`); + r.push(`anal virgin it's well beyond ${him}. ${He} does ${his} best but tears begin to streak ${his} cheeks. After a while you tire of the position and flip ${him} over onto ${his} face to assrape ${him} doggy style. This allows you to whisper into ${his} ear that ${his} holes are your property now, to use, to abuse, or to sell. ${He} <span class="mediumorchid">sobs in despair</span> at the latter, knowing ${he}'s <span class="gold">thrown ${his} life away.</span>`); r.push(VCheck.Anal()); slave.devotion -= 5; slave.trust -= 10; @@ -1166,15 +1141,15 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Build a connection with ${him}`, result: function(slave) { const r = []; - r.push(`You ask conversationally what experience ${he} has with women. ${He} takes a while to understand your point, but once ${he} does, ${he} blushes and says, `); + r.push(`You ask conversationally what experience ${he} has with women. ${He} takes a while to understand your point, but once ${he} does, ${he} blushes and says,`); r.push(Spoken(slave, `"Uh, I messed around in school once or twice, but since then, I've never —"`)); - r.push(`and is then quiet, because you're making out with ${him}. ${He}'s surprised and stiffens for a moment but perceptibly thinks things through and realizes ${he}'s yours now, and then ${he} relaxes to let you have your way. You push ${his} boundaries pretty far, and before long you've got ${him} down `); + r.push(`and is then quiet, because you're making out with ${him}. ${He}'s surprised and stiffens for a moment but perceptibly thinks things through and realizes ${he}'s yours now, and then ${he} relaxes to let you have your way. You push ${his} boundaries pretty far, and before long you've got ${him} down`); if (hasBothLegs(slave)) { r.push(`on ${his} knees`); } else { r.push(`under your desk`); } - r.push(` eating you out. ${He}'s badly discomfited but does ${his} best; ${he}'s <span class="mediumaquamarine">hopeful</span> that ${he} can do this, and slave life won't be so bad.`); + r.push(`eating you out. ${He}'s badly discomfited but does ${his} best; ${he}'s <span class="mediumaquamarine">hopeful</span> that ${he} can do this, and slave life won't be so bad.`); slave.trust += 4; slave.counter.oral += 1; V.oralTotal += 1; @@ -1185,19 +1160,19 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Put ${him} in ${his} place`, result: function(slave) { const r = []; - r.push(`You stand up and tell ${him} to strip. ${He} hesitates, staring at you in dawning apprehension, until ${he} `); + r.push(`You stand up and tell ${him} to strip. ${He} hesitates, staring at you in dawning apprehension, until ${he}`); if (canSee(slave)) { r.push(`sees`); } else { r.push(`realizes`); } - r.push(` that you're stepping into a strap-on. ${He} unconsciously takes a step backward, but that's as far as ${he} gets before you cover the ground between you, grab ${him} by the throat, and push ${his} back until ${he} falls onto the couch. You drag the head of the fake phallus down over ${his} pussylips, and ${he} shivers, but you keep going, telling ${him} that you'll only be fucking ${him} there when ${he}'s good. When ${he}'s bad, you'll assfuck ${him}. `); + r.push(`that you're stepping into a strap-on. ${He} unconsciously takes a step backward, but that's as far as ${he} gets before you cover the ground between you, grab ${him} by the throat, and push ${his} back until ${he} falls onto the couch. You drag the head of the fake phallus down over ${his} pussylips, and ${he} shivers, but you keep going, telling ${him} that you'll only be fucking ${him} there when ${he}'s good. When ${he}'s bad, you'll assfuck ${him}.`); if (hasBothEyes(slave)) { - r.push(`${His} eyes fly open and ${he} `); + r.push(`${His} eyes fly open and ${he}`); } else { - r.push(` ${He} `); + r.push(`${He}`); } - r.push(` tries to struggle, but you give ${him} a warning slap and then push yourself home. ${He} starts to cry, more from hopelessness than anal pain, knowing that <span class="mediumorchid">you're a slaveowner like any other,</span> more likely to <span class="gold">abuse ${him}</span> than be sympathetic.`); + r.push(`tries to struggle, but you give ${him} a warning slap and then push yourself home. ${He} starts to cry, more from hopelessness than anal pain, knowing that <span class="mediumorchid">you're a slaveowner like any other,</span> more likely to <span class="gold">abuse ${him}</span> than be sympathetic.`); r.push(VCheck.Anal()); slave.devotion -= 5; slave.trust -= 5; @@ -1239,22 +1214,22 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Introduce ${him} to getting fucked`, result: function(slave) { const r = []; - r.push(`You stand up, your `); + r.push(`You stand up, your`); if (V.PC.dick !== 0) { r.push(`erection`); if (V.PC.vagina !== -1) { - r.push(` and the pussy beneath it`); + r.push(`and the pussy beneath it`); } } else { r.push(`strap-on`); } - r.push(` suddenly becoming visible to ${him}, and order ${him} in a conversational tone of voice to `); + r.push(`suddenly becoming visible to ${him}, and order ${him} in a conversational tone of voice to`); if (hasAnyLegs(slave)) { r.push(`kneel`); } else { r.push(`get`); } - r.push(` on the couch and spread ${his} buttocks. The true nature of ${his} new life crashes down on ${him} in a moment, and ${he} cannot decide whether to run, to rage, or to cry. You solve ${his} dilemma for ${him} by seizing ${him} and flinging ${him} toward the couch, administering practiced cracks of your palm to ${his} ass until ${he} complies. ${He} sobs as ${he} feels the burning sensation of ${his} <span class="lime">anal virginity being taken,</span> knowing that ${he} can now be <span class="gold">used at will</span> and is now subject to the whims of someone who has shown themselves <span class="mediumorchid">willing to rape ${his} anus.</span>`); + r.push(`on the couch and spread ${his} buttocks. The true nature of ${his} new life crashes down on ${him} in a moment, and ${he} cannot decide whether to run, to rage, or to cry. You solve ${his} dilemma for ${him} by seizing ${him} and flinging ${him} toward the couch, administering practiced cracks of your palm to ${his} ass until ${he} complies. ${He} sobs as ${he} feels the burning sensation of ${his} <span class="lime">anal virginity being taken,</span> knowing that ${he} can now be <span class="gold">used at will</span> and is now subject to the whims of someone who has shown themselves <span class="mediumorchid">willing to rape ${his} anus.</span>`); r.push(VCheck.Anal()); slave.devotion -= 5; slave.trust -= 5; @@ -1270,13 +1245,13 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Make sure ${he} enjoys ${his} first butt stuff`, result: function(slave) { const r = []; - r.push(`You make no direct answer to ${his} nervous question about ${his} virgin butt, though you do wonder how ${he} was so selfish as to be a Free Cities party ${girl} without giving up ${his} asshole nightly. Instead, you ask ${him} about ${himself}, ensuring that ${he} learns the proper way to answer questions from ${his} ${WrittenMaster(slave)}. ${He} answers readily, even when you turn the subject to ${his} sexual experiences, and ${he} starts to get visibly aroused. Before long, ${he} finds ${himself} sitting on your lap on the couch, making out with you while ${he} gives you a handjob. ${He} stiffens a little when you begin to play with ${his} butthole, but you take your time. Soon ${he}'s taking a finger, and then two, and before long, ${he}'s riding `); + r.push(`You make no direct answer to ${his} nervous question about ${his} virgin butt, though you do wonder how ${he} was so selfish as to be a Free Cities party ${girl} without giving up ${his} asshole nightly. Instead, you ask ${him} about ${himself}, ensuring that ${he} learns the proper way to answer questions from ${his} ${WrittenMaster(slave)}. ${He} answers readily, even when you turn the subject to ${his} sexual experiences, and ${he} starts to get visibly aroused. Before long, ${he} finds ${himself} sitting on your lap on the couch, making out with you while ${he} gives you a handjob. ${He} stiffens a little when you begin to play with ${his} butthole, but you take your time. Soon ${he}'s taking a finger, and then two, and before long, ${he}'s riding`); if (V.PC.dick !== 0) { - r.push(`your cock`); + r.push(`your cock.`); } else { - r.push(`a strap-on`); + r.push(`a strap-on.`); } - r.push(`. ${He} doesn't climax to ${his} <span class="lime">first buttsex,</span> but ${he} is learning to <span class="mediumaquamarine">trust</span> that you won't hurt ${him}.`); + r.push(`${He} doesn't climax to ${his} <span class="lime">first buttsex,</span> but ${he} is learning to <span class="mediumaquamarine">trust</span> that you won't hurt ${him}.`); r.push(VCheck.Anal()); slave.trust += 10; slave.anus = 1; @@ -1291,23 +1266,19 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Make sure ${he} enjoys ${his} first anal sex`, result: function(slave) { const r = []; - r.push(`You introduce ${him} to obedience and proper manners regarding ${his} ${WrittenMaster(slave)} before sending ${him} off for a physical. That night, ${he}'s returned to your room, and finds you doing business on a tablet in bed. ${He} looks doubtful, but obeys when you direct ${him} to get into bed`); - if (V.PC.dick === 0) { - r.push(`, even after ${he} realizes you're wearing a strap-on`); - } - r.push(`. You turn out the light and spoon ${him} from behind, kissing ${his} neck and ears, cupping ${his} swollen breasts, and running your hands across ${his} pregnant belly with its taut ${slave.skin} skin. ${He}'s awkward at first but ${his} body responds to the tenderness. Before long ${he}'s humping ${his} pussy back and forth against `); + r.push(`You introduce ${him} to obedience and proper manners regarding ${his} ${WrittenMaster(slave)} before sending ${him} off for a physical. That night, ${he}'s returned to your room, and finds you doing business on a tablet in bed. ${He} looks doubtful, but obeys when you direct ${him} to get into bed${(V.PC.dick === 0) ? `, even after ${he} realizes you're wearing a strap-on`: ``}. You turn out the light and spoon ${him} from behind, kissing ${his} neck and ears, cupping ${his} swollen breasts, and running your hands across ${his} pregnant belly with its taut ${slave.skin} skin. ${He}'s awkward at first but ${his} body responds to the tenderness. Before long ${he}'s humping ${his} pussy back and forth against`); if (V.PC.dick !== 0) { - r.push(`your cock`); + r.push(`your cock.`); } else { - r.push(`the strap-on`); + r.push(`the strap-on.`); } - r.push(`. You tell ${him} no, not there, and begin to gently work `); + r.push(`You tell ${him} no, not there, and begin to gently work`); if (V.PC.dick !== 0) { r.push(`your dickhead`); } else { r.push(`its tip`); } - r.push(` up ${his} tight but relaxed ass. ${He}'s unsure of ${himself}, but you keep ${him} nice and relaxed. ${He} doesn't climax to ${his} <span class="lime">first buttsex,</span> but ${he} is learning to <span class="mediumaquamarine">trust</span> that you won't hurt ${him}.`); + r.push(`up ${his} tight but relaxed ass. ${He}'s unsure of ${himself}, but you keep ${him} nice and relaxed. ${He} doesn't climax to ${his} <span class="lime">first buttsex,</span> but ${he} is learning to <span class="mediumaquamarine">trust</span> that you won't hurt ${him}.`); r.push(VCheck.Anal()); slave.trust += 10; slave.anus = 1; @@ -1322,7 +1293,7 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Clean up ${his} whorish appearance`, result: function(slave) { const r = []; - r.push(`${He}'s totally unsurprised when you send ${him} to the salon for a makeover. It takes several days of work before ${he}'s brought back in for another inspection; when ${he} arrives, you wordlessly point ${him} to a full length mirror. ${He} `); + r.push(`${He}'s totally unsurprised when you send ${him} to the salon for a makeover. It takes several days of work before ${he}'s brought back in for another inspection; when ${he} arrives, you wordlessly point ${him} to a full length mirror. ${He}`); if (canSee(slave)) { r.push(`sees ${himself}`); } else { @@ -1331,22 +1302,22 @@ App.UI.newSlaveIntro = function(slave) { if (hasBothArms(slave)) { r.push(`s`); } - r.push(` and finds ${himself}`); + r.push(`and finds ${himself}`); } else { r.push(`stoically waits while you vividly describe ${his} new appearance. One`); } } - r.push(` without tattoos, a hooker's haircut and piercings, a conventionally pretty ${girl} with subtle implants and a clean appearance. ${He} gasps `); + r.push(`without tattoos, a hooker's haircut and piercings, a conventionally pretty ${girl} with subtle implants and a clean appearance. ${He} gasps`); if (hasAnyArms(slave)) { - r.push(`and covers ${his} mouth with a hand`); + r.push(`and covers ${his} mouth with a hand,`); } else { - r.push(`but quickly closes ${his} mouth`); + r.push(`but quickly closes ${his} mouth,`); } - r.push(`, and then suddenly bursts into tears. "Thank you, ${Master}," ${he} sobs. "I never would have thought."`); + r.push(`and then suddenly bursts into tears. "Thank you, ${Master}," ${he} sobs. "I never would have thought."`); if (hasAnyArms(slave)) { - r.push(` ${He} reaches out to touch ${his} reflection. `); + r.push(`${He} reaches out to touch ${his} reflection.`); } else { - r.push(` ${He} pauses for just a moment. `); + r.push(`${He} pauses for just a moment.`); } if (canSee(slave)) { @@ -1354,7 +1325,7 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`"I feel`); } - r.push(` like a nice ${girl}." ${He} is <span class="hotpink">grateful to you</span> for `); + r.push(`like a nice ${girl}." ${He} is <span class="hotpink">grateful to you</span> for`); if (canSee(slave)) { r.push(`showing ${him}`); } else { @@ -1364,7 +1335,7 @@ App.UI.newSlaveIntro = function(slave) { r.push(`detailing`); } } - r.push(` this new side of ${himself}, and has <span class="mediumaquamarine">begun to trust</span> that being your slave will be less degrading than being a free prostitute.`); + r.push(`this new side of ${himself}, and has <span class="mediumaquamarine">begun to trust</span> that being your slave will be less degrading than being a free prostitute.`); slave.trust += 4; slave.devotion += 4; slave.boobs -= slave.boobsImplant; @@ -1396,7 +1367,7 @@ App.UI.newSlaveIntro = function(slave) { const r = []; r.push(`You send ${him} out to be cleaned up and inducted, but have ${him} brought back afterward. You point out a clothes box on the couch and tell ${him} to get dressed, since you're about to make a tour of the club, and ${he}'ll be accompanying you. ${He} obeys without comment, but gasps with shock to find that ${he}'s been given a string sling bikini. ${He} climbs into it hesitantly, and finds that not only does its string bottom ride up between ${his} pussylips, it does not cover ${his} nipples at all: the strings part to either side of the nipples to let them stick through, bare. This can only generously be called clothing. ${He} accepts this with an obvious internal sigh, however, and walks dutifully behind you, ${his} bare feet slapping along as ${his} big butt bounces and ${his} tits constantly fall out of ${his} strings.`); if (slave.behavioralFlaw !== "shamefast") { - r.push(`After a while, though, ${he} notices that ${he}'s getting a lot of very positive attention, and even starts to strut it a little. When you get back to the penthouse, you ask ${him} how ${he} felt. ${He} blushes. "Kinda hot, ${Master}" ${he} `); + r.push(`After a while, though, ${he} notices that ${he}'s getting a lot of very positive attention, and even starts to strut it a little. When you get back to the penthouse, you ask ${him} how ${he} felt. ${He} blushes. "Kinda hot, ${Master}" ${he}`); r.push(`says, embarrassed.`); r.push(Spoken(slave, `"I didn't think an older ${girl} like me would get so many stares."`)); @@ -1434,14 +1405,14 @@ App.UI.newSlaveIntro = function(slave) { }, result: function(slave) { const r = []; - const {He2, he2, his2, him2} = getNonlocalPronouns(V.seeDicks).appendSuffix('2'); + const {He2, he2, his2, him2, sister2} = getNonlocalPronouns(V.seeDicks).appendSuffix('2'); r.push(`Your new slave appears`); if (slave.devotion < -10) { r.push(`reluctant to assume ${his} new duties.`); } else { r.push(`unsure what ${his} new duties are.`); } - r.push(`You gesture towards ${slave.slaveName}. ${He2} is `); + r.push(`You gesture towards ${slave.slaveName}. ${He2} is`); if (slave.intelligence + slave.intelligenceImplant > 15) { r.push(`bright enough`); } else if (((slave.skill.vaginal + slave.skill.anal + slave.skill.oral) > 100)) { @@ -1449,7 +1420,7 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`obedient enough`); } - r.push(` to understand you mean a demonstration is in order. ${slave.slaveName} starts things off with a`); + r.push(`to understand you mean a demonstration is in order. ${slave.slaveName} starts things off with a`); if (slave.skill.entertainment >= 100) { r.push(`masterful`); } else if (slave.skill.entertainment > 10) { @@ -1457,21 +1428,23 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`passable`); } - r.push(` striptease, culminating in ${him2} `); + r.push(`striptease, culminating in ${him2}`); if (slave.anus > 0 && slave.fetish !== "cumslut") { r.push(`bending over`); } else { r.push(`kneeling`); } - r.push(` in front of you. ${He2} eagerly moans as you enter ${him2}, begging for your seed`); + r.push(`in front of you. ${He2} eagerly moans as you enter ${him2}, begging for your`); if (slave.energy > 95) { - r.push(` like the slut ${he2} is`); + r.push(`seed like the slut ${he2} is.`); } else if (slave.skill.whoring > 30) { - r.push(` like the whore ${he2} is`); + r.push(`seed like the whore ${he2} is.`); } else if ((slave.assignment === "serve in the master suite") || (slave.assignment === "please you")) { - r.push(` like the fucktoy ${he2} is`); + r.push(`seed like the fucktoy ${he2} is.`); + } else { + r.push(`seed.`); } - r.push(`. As you finish, ${he2} `); + r.push(`As you finish, ${he2}`); if (slave.fetish === "cumslut") { r.push(`opens ${his2} mouth and savors your gift, thanking you once ${he2}'s swallowed enough to be able to talk again.`); } else if ((slave.fetish === "buttslut") || (slave.fetish === "submissive")) { @@ -1479,7 +1452,7 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`thanks you.`); } - r.push(`Witnessing this display of servitude from ${his} big _sister2 <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`); + r.push(`Witnessing this display of servitude from ${his} big ${sister2} <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`); if (slave.anus > 0 && slave.fetish !== "cumslut") { slave.counter.anal += 1; V.analTotal += 1; @@ -1505,14 +1478,14 @@ App.UI.newSlaveIntro = function(slave) { }, result: function(slave) { const r = []; - const {He2, he2, his2, him2} = getNonlocalPronouns(V.seeDicks).appendSuffix('2'); - r.push(`Your new slave appears `); + const {He2, he2, his2, him2, sister2} = getNonlocalPronouns(V.seeDicks).appendSuffix('2'); + r.push(`Your new slave appears`); if (slave.devotion < -10) { r.push(`reluctant to assume ${his} new duties.`); } else { r.push(`unsure what ${his} new duties are.`); } - r.push(`You gesture towards ${slave.slaveName}. ${He2} is `); + r.push(`You gesture towards ${slave.slaveName}. ${He2} is`); if (slave.intelligence + slave.intelligenceImplant > 15) { r.push(`bright enough`); } else if (((slave.skill.vaginal + slave.skill.anal + slave.skill.oral) > 100)) { @@ -1520,7 +1493,7 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`obedient enough`); } - r.push(` to understand you mean a demonstration is in order. ${slave.slaveName} starts things off with a `); + r.push(`to understand you mean a demonstration is in order. ${slave.slaveName} starts things off with a`); if (slave.skill.entertainment >= 100) { r.push(`masterful`); } else if (slave.skill.entertainment > 10) { @@ -1528,21 +1501,23 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`passable`); } - r.push(` striptease, culminating in ${him2} `); + r.push(`striptease, culminating in ${him2}`); if (slave.anus > 0 && slave.fetish !== "cumslut") { r.push(`bending over`); } else { r.push(`kneeling`); } - r.push(` in front of you. ${He2} eagerly moans as you enter ${him2}, begging for your seed`); + r.push(`in front of you. ${He2} eagerly moans as you enter ${him2}, begging for your`); if (slave.energy > 95) { - r.push(` like the slut ${he2} is`); + r.push(`seed like the slut ${he2} is.`); } else if (slave.skill.whoring > 30) { - r.push(` like the whore ${he2} is`); + r.push(`seed like the whore ${he2} is.`); } else if ((slave.assignment === "serve in the master suite") || (slave.assignment === "please you")) { - r.push(` like the fucktoy ${he2} is`); + r.push(`seed like the fucktoy ${he2} is.`); + } else { + r.push(`seed.`); } - r.push(`. As you finish, ${he2} `); + r.push(`As you finish, ${he2}`); if (slave.fetish === "cumslut") { r.push(`opens ${his2} mouth and savors your gift, thanking you once ${he2}'s swallowed enough to be able to talk again.`); } else if ((slave.fetish === "buttslut") || (slave.fetish === "submissive")) { @@ -1550,7 +1525,7 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`thanks you.`); } - r.push(`Witnessing this display of servitude from ${his} little _sister2 <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`); + r.push(`Witnessing this display of servitude from ${his} little ${sister2} <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`); if (slave.anus > 0 && slave.fetish !== "cumslut") { slave.counter.anal += 1; V.analTotal += 1; @@ -1573,14 +1548,14 @@ App.UI.newSlaveIntro = function(slave) { }, result: function(slave) { const r = []; - const {He2, he2, his2, him2} = getNonlocalPronouns(V.seeDicks).appendSuffix('2'); - r.push(`Your new slave appears `); + const {He2, he2, his2, him2, sister2} = getNonlocalPronouns(V.seeDicks).appendSuffix('2'); + r.push(`Your new slave appears`); if (slave.devotion < -10) { r.push(`reluctant to assume ${his} new duties.`); } else { r.push(`unsure what ${his} new duties are.`); } - r.push(`You gesture towards ${slave.slaveName}. ${He2} is `); + r.push(`You gesture towards ${slave.slaveName}. ${He2} is`); if (slave.intelligence + slave.intelligenceImplant > 15) { r.push(`bright enough`); } else if ((slave.skill.vaginal + slave.skill.anal + slave.skill.oral) > 100) { @@ -1588,7 +1563,7 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`obedient enough`); } - r.push(` to understand you mean a demonstration is in order. ${slave.slaveName} starts things off with a `); + r.push(`to understand you mean a demonstration is in order. ${slave.slaveName} starts things off with a`); if (slave.skill.entertainment >= 100) { r.push(`masterful`); } else if (slave.skill.entertainment > 10) { @@ -1596,29 +1571,31 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`passable`); } - r.push(` striptease, culminating in ${him2} `); + r.push(`striptease, culminating in ${him2}`); if (slave.anus > 0 && slave.fetish !== "cumslut") { r.push(`bending over`); } else { r.push(`kneeling`); } - r.push(` in front of you. ${He2} eagerly moans as you enter ${him2}, begging for your seed`); + r.push(`in front of you. ${He2} eagerly moans as you enter ${him2}, begging for your`); if (slave.energy > 95) { - r.push(` like the slut ${he2} is`); + r.push(`seed like the slut ${he2} is.`); } else if (slave.skill.whoring > 30) { - r.push(` like the whore ${he2} is`); + r.push(`seed like the whore ${he2} is.`); } else if ((slave.assignment === "serve in the master suite") || (slave.assignment === "please you")) { - r.push(` like the fucktoy ${he2} is`); + r.push(`seed like the fucktoy ${he2} is.`); + } else { + r.push(`seed.`); } - r.push(`. As you finish, ${he2} `); + r.push(`As you finish, ${he2}`); if (slave.fetish === "cumslut") { r.push(`opens ${his2} mouth and savors your gift, thanking you once ${he2}'s swallowed enough to be able to talk again`); } else if ((slave.fetish === "buttslut") || (slave.fetish === "submissive")) { - r.push(`collapses on the floor with ${his2} ass high in the air, thanking you for painting ${his2} hole white`); + r.push(`collapses on the floor with ${his2} ass high in the air, thanking you for painting ${his2} hole white.`); } else { - r.push(`thanks you`); + r.push(`thanks you.`); } - r.push(`. Witnessing this display of servitude from ${his} twin _sister2 <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`); + r.push(`Witnessing this display of servitude from ${his} twin ${sister2} <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`); if (slave.anus > 0 && slave.fetish !== "cumslut") { slave.counter.anal += 1; V.analTotal += 1; @@ -1639,7 +1616,7 @@ App.UI.newSlaveIntro = function(slave) { result: function(slave) { const r = []; const {He2, he2, his2, him2} = getNonlocalPronouns(V.seeDicks).appendSuffix('2'); - r.push(`You gesture towards ${slave.slaveName}. ${He2} is `); + r.push(`You gesture towards ${slave.slaveName}. ${He2} is`); if (slave.intelligence + slave.intelligenceImplant > 15) { r.push(`bright enough`); } else if (((slave.skill.vaginal + slave.skill.anal + slave.skill.oral) > 100)) { @@ -1647,7 +1624,7 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`obedient enough`); } - r.push(` to understand you mean a demonstration is in order. ${slave.slaveName} starts things off with a `); + r.push(`to understand you mean a demonstration is in order. ${slave.slaveName} starts things off with a`); if (slave.skill.entertainment >= 100) { r.push(`masterful`); } else if (slave.skill.entertainment > 10) { @@ -1655,35 +1632,37 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`passable`); } - r.push(` striptease, culminating in ${him2} `); + r.push(`striptease, culminating in ${him2}`); if (slave.anus > 0 && slave.fetish !== "cumslut") { r.push(`bending over`); } else { r.push(`kneeling`); } - r.push(` in front of you. ${He2} eagerly moans as you enter ${him2}, begging for your seed`); + r.push(`in front of you. ${He2} eagerly moans as you enter ${him2}, begging for your`); if (slave.energy > 95) { - r.push(` like the slut ${he2} is`); + r.push(`seed like the slut ${he2} is.`); } else if (slave.skill.whoring > 30) { - r.push(` like the whore ${he2} is`); + r.push(`seed like the whore ${he2} is.`); } else if ((slave.assignment === "serve in the master suite") || (slave.assignment === "please you")) { - r.push(` like the fucktoy ${he2} is`); + r.push(`seed like the fucktoy ${he2} is.`); + } else { + r.push(`seed.`); } - r.push(`. As you finish, ${he2} `); + r.push(`As you finish, ${he2}`); if (slave.fetish === "cumslut") { r.push(`opens ${his2} mouth and savors your gift, thanking you once ${he2}'s swallowed enough to be able to talk again`); } else if ((slave.fetish === "buttslut") || (slave.fetish === "submissive")) { - r.push(`collapses on the floor with ${his2} ass high in the air, thanking you for painting ${his2} hole white`); + r.push(`collapses on the floor with ${his2} ass high in the air, thanking you for painting ${his2} hole white.`); } else { - r.push(`thanks you`); + r.push(`thanks you.`); } - r.push(`. Witnessing this display of servitude from ${his} `); + r.push(`Witnessing this display of servitude from ${his}`); if (slave.mother === slave.ID) { r.push(`mother`); } else { r.push(`father`); } - r.push(` <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`); + r.push(`<span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`); if (slave.anus > 0 && slave.fetish !== "cumslut") { slave.counter.anal += 1; V.analTotal += 1; @@ -1709,8 +1688,8 @@ App.UI.newSlaveIntro = function(slave) { }, result: function(slave) { const r = []; - const {He2, he2, his2, him2} = getNonlocalPronouns(V.seeDicks).appendSuffix('2'); - r.push(`You gesture towards ${slave.slaveName}. ${He2} is `); + const {He2, he2, his2, him2, daughter2} = getNonlocalPronouns(V.seeDicks).appendSuffix('2'); + r.push(`You gesture towards ${slave.slaveName}. ${He2} is`); if (slave.intelligence + slave.intelligenceImplant > 15) { r.push(`bright enough`); } else if (((slave.skill.vaginal + slave.skill.anal + slave.skill.oral) > 100)) { @@ -1718,7 +1697,7 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`obedient enough`); } - r.push(` to understand you mean a demonstration is in order. ${slave.slaveName} starts things off with a `); + r.push(`to understand you mean a demonstration is in order. ${slave.slaveName} starts things off with a`); if (slave.skill.entertainment >= 100) { r.push(`masterful`); } else if (slave.skill.entertainment > 10) { @@ -1726,29 +1705,31 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`passable`); } - r.push(` striptease, culminating in ${him2} `); + r.push(`striptease, culminating in ${him2}`); if (slave.anus > 0 && slave.fetish !== "cumslut") { r.push(`bending over`); } else { r.push(`kneeling`); } - r.push(` in front of you. ${He2} eagerly moans as you enter ${him2}, begging for your seed`); + r.push(`in front of you. ${He2} eagerly moans as you enter ${him2}, begging for your`); if (slave.energy > 95) { - r.push(` like the slut ${he2} is`); + r.push(`seed like the slut ${he2} is.`); } else if (slave.skill.whoring > 30) { - r.push(` like the whore ${he2} is`); + r.push(`seed like the whore ${he2} is.`); } else if ((slave.assignment === "serve in the master suite") || (slave.assignment === "please you")) { - r.push(` like the fucktoy ${he2} is`); + r.push(`seed like the fucktoy ${he2} is.`); + } else { + r.push(`seed.`); } - r.push(`. As you finish, ${he2} `); + r.push(`As you finish, ${he2}`); if (slave.fetish === "cumslut") { r.push(`opens ${his2} mouth and savors your gift, thanking you once ${he2}'s swallowed enough to be able to talk again`); } else if ((slave.fetish === "buttslut") || (slave.fetish === "submissive")) { - r.push(`collapses on the floor with ${his2} ass high in the air, thanking you for painting ${his2} hole white`); + r.push(`collapses on the floor with ${his2} ass high in the air, thanking you for painting ${his2} hole white.`); } else { - r.push(`thanks you`); + r.push(`thanks you.`); } - r.push(`. Witnessing this display of servitude from ${his} _daughter2 <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`); + r.push(`Witnessing this display of servitude from ${his} ${daughter2} <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`); if (slave.anus > 0 && slave.fetish !== "cumslut") { slave.counter.anal += 1; V.analTotal += 1; @@ -1770,23 +1751,11 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Show ${him} how a professional does it`, result: function(slave) { const r = []; - r.push(`Judging from ${his} earlier, amateur attempt, it's clear ${slave.slaveName} is unfamiliar with the subtle nuances of a high-quality rape. You decide to clear your schedule for the rest of the day and teach ${him} yourself`); + r.push(`Judging from ${his} earlier, amateur attempt, it's clear ${slave.slaveName} is unfamiliar with the subtle nuances of a high-quality rape. You decide to clear your schedule for the rest of the day and teach ${him} yourself${V.PC.dick === 0 ? `, with the help of your trusty strap-on, of course` : ``}. Once ${he}'s bent over across your desk and properly restrained, ${his} lesson begins with you thrusting your`); if (V.PC.dick === 0) { - r.push(`, with the help of your trusty strap-on, of course`); - } - r.push(`. Once ${he}'s bent over across your desk and properly restrained, ${his} lesson begins with you thrusting your `); - if (V.PC.dick === 0) { - r.push(`fake `); - } - r.push(`cock down ${his} throat as far as it will go. Over the course of the next several hours, you ensure that ${he} understands the fine points of nonconsensual oral`); - if (slave.vagina > -1) { - r.push(`, vaginal,`); + r.push(`fake`); } - r.push(` and anal intercourse as intimately as possible. When you're finally too tired to continue,you unshackle ${his} <span class="red">bruised and bloody body</span> and ask ${him} what ${he} learned. ${His} voice hoarse from the same brutal fucking that has gaped ${his} <span class="lime">asshole</span>`); - if (slave.vagina > -1) { - r.push(` and <span class="lime">pussy</span>`); - } - r.push(`, ${he} hesitantly replies that ${he} has <span class="hotpink">learned a great deal about true dominance,</span> before fainting on the spot from a mixture of total exhaustion and pure terror. You've taught your student well.`); + r.push(`cock down ${his} throat as far as it will go. Over the course of the next several hours, you ensure that ${he} understands the fine points of nonconsensual oral${slave.vagina > -1 ? `, vaginal,`: ``} and anal intercourse as intimately as possible. When you're finally too tired to continue,you unshackle ${his} <span class="red">bruised and bloody body</span> and ask ${him} what ${he} learned. ${His} voice hoarse from the same brutal fucking that has gaped ${his} <span class="lime">asshole</span> ${(slave.vagina > -1) ? `and <span class="lime">pussy</span>`: ``}, ${he} hesitantly replies that ${he} has <span class="hotpink">learned a great deal about true dominance,</span> before fainting on the spot from a mixture of total exhaustion and pure terror. You've taught your student well.`); slave.counter.oral += 15; V.oralTotal += 15; slave.anus = 2; @@ -1809,13 +1778,13 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Show ${him} that ${he} could have just asked`, result: function(slave) { const r = []; - r.push(`You tell ${slave.slaveName} that while ${his} previous attempt to fuck you was very flattering, ${he} should know that one can catch more flies with honey. Ordering the confused slave to lean back over and onto your desk, you proceed to gently `); + r.push(`You tell ${slave.slaveName} that while ${his} previous attempt to fuck you was very flattering, ${he} should know that one can catch more flies with honey. Ordering the confused slave to lean back over and onto your desk, you proceed to gently`); if (slave.dick > 0) { r.push(`stroke`); } else { r.push(`finger`); } - r.push(` ${him} until ${his} arousal overwhelms ${his} wariness of you. Once ${he}'s finally relaxed, you climb on top of ${him}, and gently ease`); + r.push(`${him} until ${his} arousal overwhelms ${his} wariness of you. Once ${he}'s finally relaxed, you climb on top of ${him}, and gently ease`); if (V.PC.vagina > 0 && canPenetrate(slave)) { r.push(`your pussy onto ${his} cock. ${He} shudders and moan softly as you slide yourself up and down ${his} shaft with steadily increasing speed. You keep your eyes locked on ${hers} all the while, as ${his} expression shifts from bewilderment to acceptance to ecstasy, as ${he} soon shoots ${his} seed up into you. Afterwards, you slip ${his} softening cock out of you, climb off of ${him}, and leave the exhausted and overwhelmed slave${girl} on your desk as you attend to business elsewhere. You think ${he}'s <span class="orangered">going to like it here.</span>`); slave.counter.penetrative++; @@ -1824,25 +1793,25 @@ App.UI.newSlaveIntro = function(slave) { knockMeUp(V.PC, 100, 0, slave.ID, 1); } } else { - r.push(`yourself into ${his} `); + r.push(`yourself into ${his}`); if (slave.vagina > -1) { - r.push(`pussy`); + r.push(`pussy.`); } else { - r.push(`asshole`); + r.push(`asshole.`); } - r.push(`. ${He} shudders and moans softly as you piston your `); + r.push(`${He} shudders and moans softly as you piston your`); if (V.PC.dick > 0) { r.push(`dick`); } else { r.push(`strap-on`); } - r.push(` in and out of ${his} hole with steadily increasing intensity. You keep your eyes locked on ${hers} all the while, as ${his} expression shifts from bewilderment to acceptance to ecstasy, as you soon shoot your seed down into ${him}. Afterwards, you slip your `); + r.push(`in and out of ${his} hole with steadily increasing intensity. You keep your eyes locked on ${hers} all the while, as ${his} expression shifts from bewilderment to acceptance to ecstasy, as you soon shoot your seed down into ${him}. Afterwards, you slip your`); if (V.PC.dick > 0) { r.push(`softening`); } else { r.push(`plastic`); } - r.push(` cock out of ${him}, climb off of ${him}, and leave the exhausted and overwhelmed slave${girl} on your desk as you attend to business elsewhere. You think ${he}'s <span class="orangered">going to like it here.</span>`); + r.push(`cock out of ${him}, climb off of ${him}, and leave the exhausted and overwhelmed slave${girl} on your desk as you attend to business elsewhere. You think ${he}'s <span class="orangered">going to like it here.</span>`); if (slave.vagina > -1) { VCheck.Vaginal(); slave.counter.vaginal++; @@ -1891,13 +1860,13 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Shave ${his} hair`, result: function(slave) { const r = []; - r.push(`You seize ${him} by the hair and drag ${him} to the auto salon. ${He} struggles and thrashes around but soon scrambles to keep up with you to relieve the pain in ${his} scalp as ${he}'s dragged. You strap ${him} in and set the auto salon to shave. ${He} `); + r.push(`You seize ${him} by the hair and drag ${him} to the auto salon. ${He} struggles and thrashes around but soon scrambles to keep up with you to relieve the pain in ${his} scalp as ${he}'s dragged. You strap ${him} in and set the auto salon to shave. ${He}`); if (canSee(slave)) { r.push(`looks around frantically`); } else { r.push(`trembles with fear`); } - r.push(` as the manipulators with their buzzing shears descend menacingly. As they run quickly back and forth across ${his} head, ${he} begins to sob, obviously <span class="gold">fearing</span> that ${his} new master is <span class="mediumorchid">one to enjoy degradation and abuse.</span> ${He} has a strong indication that obedience is ${his} only hope.`); + r.push(`as the manipulators with their buzzing shears descend menacingly. As they run quickly back and forth across ${his} head, ${he} begins to sob, obviously <span class="gold">fearing</span> that ${his} new master is <span class="mediumorchid">one to enjoy degradation and abuse.</span> ${He} has a strong indication that obedience is ${his} only hope.`); slave.devotion -= 5; slave.hStyle = "shaved"; slave.hLength = 0; @@ -1914,13 +1883,13 @@ App.UI.newSlaveIntro = function(slave) { result: function(slave) { const r = []; slave.stampTat = either("advertisements", "degradation", "rude words"); - r.push(`You `); + r.push(`You`); if (slave.devotion > 20) { r.push(`bring ${him} down to the studio, lay the compliant`); } else { r.push(`drag ${him} down to the studio, strap the reluctant`); } - r.push(` slave in the chair face-down, and select a sufficiently lewd pattern to decorate ${his} lower back. When the automated tattooing is done, a topical application of analgesics leaves ${him} with nothing more than a slight ache there.`); + r.push(`slave in the chair face-down, and select a sufficiently lewd pattern to decorate ${his} lower back. When the automated tattooing is done, a topical application of analgesics leaves ${him} with nothing more than a slight ache there.`); if (canSee(slave)) { r.push(`When allowed to stand, ${he} immediately turns ${his} back to one of the studio's full length mirrors and cranes around to read the writing just over ${his} butt. It's difficult, since, of course, it's reversed, and ${he} mouths the words letter by letter.`); if (slave.stampTat === "advertisements") { @@ -1968,9 +1937,9 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Brand ${him} on the ${brandTarget}`, result: function(slave) { const r = []; - r.push(`You drag ${him} to the body modification studio and strap ${him} down with ${his} brandTarget clear and defenseless. ${He} doesn't understand what's coming for a while, even as disinfectant is applied to ${his} brandTarget. ${He} can't see the approaching brand, `); + r.push(`You drag ${him} to the body modification studio and strap ${him} down with ${his} ${brandTarget} clear and defenseless. ${He} doesn't understand what's coming for a while, even as disinfectant is applied to ${his} ${brandTarget}. ${He} can't see the approaching brand,`); if (!canSee(slave)) { - r.push(`of course, `); + r.push(`of course,`); } r.push(`but eventually ${he} feels the radiated heat on ${his} skin and manages to get one inarticulate, wordless noise of terror out before the dreadful sizzling noise and the sweet smell of burning flesh. If ${he} didn't know ${he} was a slave before, <span class="mediumorchid">${he} does now,</span> and ${he}'s got the <span class="gold">agonizing</span> <span class="red">injury</span> to prove it.`); if (V.arcologies[0].FSSubjugationistRace === slave.race && V.arcologies[0].FSSubjugationist > 0) { @@ -2019,9 +1988,6 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Whip ${him} until ${he} scars`, result: function(slave) { const r = []; - const hands = hasBothArms(slave) ? "arms" : "arm"; - const knees = hasBothLegs(slave) ? "knees" : "knee"; - const feet = hasBothLegs(slave) ? "feet" : "foot"; App.Medicine.Modification.addScourged(slave); cashX(forceNeg(V.modCost), "slaveMod", slave); // Let's just bill once, for the whip and disinfectant. r.push(`You drag ${him} to the`); @@ -2053,11 +2019,11 @@ App.UI.newSlaveIntro = function(slave) { } r.push(`${He} frantically`); if (!isAmputee(slave)) { - r.push(`wrenches ${his} `); + r.push(`wrenches ${his}`); if (hasAnyArms(slave)) { r.push(hands); if (hasAnyLegs(slave)) { - r.push(` and `); + r.push(`and`); } } if (hasAnyLegs(slave)) { @@ -2091,7 +2057,7 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Scar ${him} on the ${scarTarget}`, result: function(slave) { const r = []; - r.push(`You drag ${him} to the body modification studio and strap ${him} down with ${his} scarTarget clear and defenseless. ${He} doesn't understand what's coming for a while, even as disinfectant is applied to ${his} scarTarget. You have a wide selection of tools to create scars, the trick is to keep the wound from healing correctly afterwards. Of course, ${he} has no way of knowing that the pain you are inflicting as you cut into ${his} flesh will leave such a permanent mark, but the basic message is clear: if ${he} didn't know ${he} was a slave before, <span class="mediumorchid">${he} does now,</span> and ${he}'s got the <span class="gold">agonizing</span> <span class="red">injury</span> to prove it.`); + r.push(`You drag ${him} to the body modification studio and strap ${him} down with ${his} ${scarTarget} clear and defenseless. ${He} doesn't understand what's coming for a while, even as disinfectant is applied to ${his} ${scarTarget}. You have a wide selection of tools to create scars, the trick is to keep the wound from healing correctly afterwards. Of course, ${he} has no way of knowing that the pain you are inflicting as you cut into ${his} flesh will leave such a permanent mark, but the basic message is clear: if ${he} didn't know ${he} was a slave before, <span class="mediumorchid">${he} does now,</span> and ${he}'s got the <span class="gold">agonizing</span> <span class="red">injury</span> to prove it.`); if (V.arcologies[0].FSSubjugationistRace === slave.race && V.arcologies[0].FSSubjugationist > 0) { r.push(`Society <span class="green">approves</span> of your purchase and scarring of an inferior ${slave.race} person; this advances the idea that slave.race people ought to be enslaved.`); FutureSocieties.Change("Subjugationist", 2); @@ -2127,32 +2093,32 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Threaten ${his} pregnancy`, result(slave) { const r = []; - r.push(`You place an innocuous-looking drug injector on your desk, and ${him} `); + r.push(`You place an innocuous-looking drug injector on your desk, and ${him}`); if (!canSee(slave)) { - r.push(`blindly `); + r.push(`blindly`); } - r.push(`stare at it for a long moment. Then, you roll the cylinder slowly across the smooth surface, rotating it until its label comes into `); + r.push(`stare at it for a long moment. Then, you roll the cylinder slowly across the smooth surface, rotating it until its label comes into`); if (canSee(slave)) { r.push(`${his}`); } else { r.push(`your`); } - r.push(` view. It depicts the silhouette of a pregnant woman, with a red "X" over it. Abortifacients. After an `); + r.push(`view. It depicts the silhouette of a pregnant woman, with a red "X" over it. Abortifacients. After an`); if (!canSee(slave)) { r.push(`short period`); } else { r.push(`instant`); } - r.push(` of horrified comprehension, ${he} flings ${himself} at your feet, crying, begging, promising. ${He} pledges to <span class="hotpink">submit to you,</span> `); + r.push(`of horrified comprehension, ${he} flings ${himself} at your feet, crying, begging, promising. ${He} pledges to <span class="hotpink">submit to you,</span>`); if (V.PC.dick !== 0) { if (V.PC.vagina !== -1) { - r.push(`eat you out, `); + r.push(`eat you out,`); } - r.push(`suck your cock, take it in ${his} pussy, take it up ${his} ass`); + r.push(`suck your cock, take it in ${his} pussy, take it up ${his} ass,`); } else { - r.push(`eat you out, worship you with ${his} pussy, serve you with ${his} ass`); + r.push(`eat you out, worship you with ${his} pussy, serve you with ${his} ass,`); } - r.push(`, anything, as long as <span class="gold">you don't hurt ${his} baby.</span> You observe that ${he}'ll do all of those things, regardless of what you decide to do about ${his} pregnancy, but for now, you'll keep ${him} as a pregnant slut. ${He} thanks you through ${his} tears.`); + r.push(`anything, as long as <span class="gold">you don't hurt ${his} baby.</span> You observe that ${he}'ll do all of those things, regardless of what you decide to do about ${his} pregnancy, but for now, you'll keep ${him} as a pregnant slut. ${He} thanks you through ${his} tears.`); slave.devotion += 10; slave.trust -= 10; return r.join(" "); @@ -2168,9 +2134,9 @@ App.UI.newSlaveIntro = function(slave) { const r = []; r.push(`You drag ${him} to the remote surgery and strap ${him} face-up with ${his}`); if (slave.bellyPreg >= 1500) { - r.push(` pregnant`); + r.push(`pregnant`); } - r.push(` stomach bare. ${He} doesn't understand what's coming for a while, even as ${his} belly is carefully cleaned and disinfected. ${He} begins to panic at the `); + r.push(`stomach bare. ${He} doesn't understand what's coming for a while, even as ${his} belly is carefully cleaned and disinfected. ${He} begins to panic at the`); if (canSee(slave)) { r.push(`sight`); } else if (canHear(slave)) { @@ -2178,21 +2144,21 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`touch`); } - r.push(` of the approaching surgical manipulators, cringing as they cut into ${his}`); + r.push(`of the approaching surgical manipulators, cringing as they cut into ${his}`); if (slave.bellyPreg >= 1500) { - r.push(` rounded`); + r.push(`rounded`); } - r.push(` abdomen. ${He} squeals in horror as ${his}`); + r.push(`abdomen. ${He} squeals in horror as ${his}`); if (slave.preg > slave.pregData.normalBirth / 1.33) { - r.push(` swollen womb, still moving with life,`); + r.push(`swollen womb, still moving with life,`); } else if (slave.bellyPreg >= 1500) { - r.push(` pregnant womb`); + r.push(`pregnant womb`); } else { - r.push(` womb`); + r.push(`womb`); } - r.push(` and ovaries are extracted`); + r.push(`and ovaries are extracted`); if (canSee(slave)) { - r.push(` before ${his} eyes`); + r.push(`before ${his} eyes`); } r.push(`.`); if (slave.fetish === "pregnancy" && slave.pregKnown === 1) { @@ -2212,9 +2178,9 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`${He} will never`); if (slave.counter.birthsTotal > 0) { - r.push(` again`); + r.push(`again`); } - r.push(` bear children, and will <span class="mediumorchid">remember ${his} status</span> with every fucking ${he} receives. Your absolute power over ${his} body is rightfully <span class="gold">terrifying.</span>`); + r.push(`bear children, and will <span class="mediumorchid">remember ${his} status</span> with every fucking ${he} receives. Your absolute power over ${his} body is rightfully <span class="gold">terrifying.</span>`); slave.trust -= 20; slave.devotion -= 50; } @@ -2249,7 +2215,7 @@ App.UI.newSlaveIntro = function(slave) { if (hasBothLegs(slave)) { r.push(`s`); } - r.push(` spread.`); + r.push(`spread.`); } else { r.push(`testicles exposed.`); } @@ -2269,9 +2235,9 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`hypertrophied balls`); } - r.push(`are carefully cleaned and disinfected. ${He} can't see the approaching surgical manipulators, `); + r.push(`are carefully cleaned and disinfected. ${He} can't see the approaching surgical manipulators,`); if (!canSee(slave)) { - r.push(`of course, `); + r.push(`of course,`); } r.push(`but eventually ${he} feels a small tugging on the sides of ${his} scrotum even through the local anesthetic.`); } else { @@ -2368,9 +2334,9 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Clip ${his} Achilles tendons`, result(slave) { const r = []; - r.push(`You drag ${him} to the remote surgery and strap ${him} face-down with ${his} legs bare. ${He} doesn't understand what's coming for a while, even as ${his} lower legs are carefully cleaned and disinfected. ${He} can't see the approaching surgical manipulators, `); + r.push(`You drag ${him} to the remote surgery and strap ${him} face-down with ${his} legs bare. ${He} doesn't understand what's coming for a while, even as ${his} lower legs are carefully cleaned and disinfected. ${He} can't see the approaching surgical manipulators,`); if (!canSee(slave)) { - r.push(`of course, `); + r.push(`of course,`); } r.push(`but eventually ${he} feels a tugging at ${his} lower legs even through the local anesthetic. ${He} gets one squeal of protest out before the surgery begins to apply healing agents. ${He} now requires special heels to walk, and will <span class="mediumorchid">remember ${his} status</span> with every <span class="red">painful</span> step ${he} takes. ${He}'s barefoot, crawling, and <span class="gold">frightened</span> for now, until you decide to give ${him} heels — if you ever do.`); slave.heels = 1; @@ -2388,31 +2354,31 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Implant ${him} with slow release lactation drugs`, result(slave) { const r = []; - r.push(`You `); + r.push(`You`); if (slave.devotion > 20) { - r.push(` guide the compliant ${desc} `); + r.push(`guide the compliant ${desc}`); } else { r.push(`have the ${desc} restrained and brought`); } - r.push(` to the remote surgery. The procedure is quick and <span class="red">minimally invasive</span>`); + r.push(`to the remote surgery. The procedure is quick and <span class="red">minimally invasive.</span>`); surgeryDamage(slave, 10); - r.push(`. Once the process is complete and the anesthesia subsides ${he} begins to feel a rising pressure within ${his} `); + r.push(`Once the process is complete and the anesthesia subsides ${he} begins to feel a rising pressure within ${his}`); if (slave.boobs > 2000) { - r.push(`gigantic udders`); + r.push(`gigantic udders.`); } else if (slave.boobs > 900) { - r.push(`plentiful bosom`); + r.push(`plentiful bosom.`); } else if (slave.boobs > 400) { - r.push(`healthy breasts`); + r.push(`healthy breasts.`); } else { - r.push(`small breasts`); + r.push(`small breasts.`); } - r.push(`. You then `); + r.push(`You then`); if (slave.devotion > 20) { r.push(`instruct ${him} to rest`); } else { r.push(`have ${him} restrained`); } - r.push(` beside your desk until further notice. After a few hours ${his} increasing discomfort becomes obvious, and white droplets begin to appear across ${his} nipples and areola.`); + r.push(`beside your desk until further notice. After a few hours ${his} increasing discomfort becomes obvious, and white droplets begin to appear across ${his} nipples and areola.`); if (slave.devotion > 20) { if (slave.fetish === "boobs") { if (slave.fetishKnown === 0) { @@ -2462,13 +2428,13 @@ App.UI.newSlaveIntro = function(slave) { r.push(`You kneel behind ${him} and begin to gently massage ${his} swollen breasts. A steady stream of milk begins to erupt from each nipple. With a sharp intake of breath ${he} begins to squirm, and ${his} breast fetish soon has ${him} moaning and writhing as ${he} fights an intense orgasm with tears of shame rolling down ${his} flushed cheeks.`); } } - r.push(`As you summon `); + r.push(`As you summon`); if (V.HeadGirlID !== 0) { r.push(`your Head Girl`); } else { r.push(`another slave`); } - r.push(` to escort the ${girl} to ${his} first assignment, ${he} slumps dejectedly in ${his} restraints. ${He} is torn between the knowledge that ${he} is little more than livestock to you, and the disturbing realization that <span class="hotpink">${he} might enjoy ${his} new life as a human cow.</span>`); + r.push(`to escort the ${girl} to ${his} first assignment, ${he} slumps dejectedly in ${his} restraints. ${He} is torn between the knowledge that ${he} is little more than livestock to you, and the disturbing realization that <span class="hotpink">${he} might enjoy ${his} new life as a human cow.</span>`); slave.devotion += 4; } else { if (V.servantMilkers === 1) { @@ -2476,13 +2442,13 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`You kneel behind ${him} and begin to gently massage ${his} swollen breasts. A steady stream of milk begins to erupt from each nipple as a look of confusion washes over ${his} features. ${He} then closes ${his} eyes tight and does ${his} best to ignore what's happening in a futile attempt to deny ${his} new reality, but you continue ${his} milking until ${he} is drained.`); } - r.push(`As you summon `); + r.push(`As you summon`); if (V.HeadGirlID !== 0) { r.push(`your Head Girl`); } else { r.push(`another slave`); } - r.push(` to escort the ${girl} to ${his} first assignment ${he} glares at you with disgust. ${His} resentment at the new burden you've saddled ${him} with is evident, and the regular milkings ${he}'ll require will serve to remind ${him} of the <span class="gold">disturbing fact that ${he} is little more than livestock to you.</span>`); + r.push(`to escort the ${girl} to ${his} first assignment ${he} glares at you with disgust. ${His} resentment at the new burden you've saddled ${him} with is evident, and the regular milkings ${he}'ll require will serve to remind ${him} of the <span class="gold">disturbing fact that ${he} is little more than livestock to you.</span>`); slave.devotion -= 4; } } @@ -2502,7 +2468,7 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Teach ${him} how to use ${his} throat`, result(slave) { const r = []; - r.push(` TODO: write this `); + r.push(`TODO: write this`); return r.join(" ") }, @@ -2513,37 +2479,37 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Inseminate ${him}`, result(slave) { const r = []; - r.push(`You `); + r.push(`You`); if (slave.devotion > 20 || slave.trust < -20) { r.push(`lay the obedient ${desc} across your desk`); } else { r.push(`force the resistant ${desc} to lie atop your desk`); } - r.push(` and gently `); + r.push(`and gently`); if (V.PC.dick !== 0) { r.push(`slide your hard cock`); } else { r.push(`push a special strap-on`); } - r.push(` `); + r.push(``); if (slave.vagina >= 0) { - r.push(`inside ${his} womanhood`); + r.push(`inside ${his} womanhood.`); } else { - r.push(`up ${his} butt`); + r.push(`up ${his} butt.`); } - r.push(`. You take ${him} with care, enjoying ${his} body `); + r.push(`You take ${him} with care, enjoying ${his} body`); if (slave.devotion > 20 || slave.trust < -20) { r.push(`and doing your best to give ${him} pleasure, too`); } else { r.push(`without hurting ${him}`); } - r.push(`. `); + r.push(`.`); if (V.PC.dick !== 0) { r.push(`You empty your balls inside ${him}, thrusting in as far as you can go`); } else { r.push(`The strap-on contains a reservoir of faux ejaculate, and you give it to ${him}`); } - r.push(` as you climax. When ${he} feels the hot liquid jet into ${him},`); + r.push(`as you climax. When ${he} feels the hot liquid jet into ${him},`); if (slave.devotion > 20) { if (slave.fetish === "pregnancy") { if (slave.fetishKnown === 0) { @@ -2552,22 +2518,22 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`${he} climaxes, ${his} impregnation fetish displayed cutely on ${his} face.`); } - r.push(`As you ${him} go, ${he} feels `); + r.push(`As you ${him} go, ${he} feels`); if (V.PC.dick !== 0) { r.push(`your`); } else { r.push(`the fake`); } - r.push(` cum dripping out of ${him}, and ${he} <span class="hotpink">feels like your property.</span>`); + r.push(`cum dripping out of ${him}, and ${he} <span class="hotpink">feels like your property.</span>`); slave.devotion += 5; } else { - r.push(`${he} gasps and does ${his} best to relax, accepting the flow. `); + r.push(`${he} gasps and does ${his} best to relax, accepting the flow.`); if (slave.fetishKnown === 0) { r.push(`It seems ${he}`); } else { r.push(`${He}`); } - r.push(` isn't an impregnation fetishist, but ${he} is <span class="hotpink">willing to submit</span> to have ${his} body used as your receptacle.`); + r.push(`isn't an impregnation fetishist, but ${he} is <span class="hotpink">willing to submit</span> to have ${his} body used as your receptacle.`); slave.devotion += 4; } } else { @@ -2578,22 +2544,22 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`${he} climaxes, ${his} impregnation fetish forcing ${him} to feel pleasure ${his} mind would prefer to reject.`); } - r.push(`As you ${him} go, ${he} cries openly, `); + r.push(`As you ${him} go, ${he} cries openly,`); if (V.PC.dick !== 0) { r.push(`your`); } else { r.push(`the fake`); } - r.push(` cum dripping out of ${him}, and ${he} <span class="hotpink">feels like your property.</span>`); + r.push(`cum dripping out of ${him}, and ${he} <span class="hotpink">feels like your property.</span>`); slave.devotion += 4; } else { - r.push(`${he} groans and struggles a little, disgusted to be filled by your fluids so immediately. `); + r.push(`${he} groans and struggles a little, disgusted to be filled by your fluids so immediately.`); if (slave.fetishKnown === 0) { r.push(`It seems ${he}`); } else { r.push(`${He}`); } - r.push(` isn't an impregnation fetishist, and is <span class="gold">afraid</span> that ${he}'ll be treated as nothing more than your receptacle.`); + r.push(`isn't an impregnation fetishist, and is <span class="gold">afraid</span> that ${he}'ll be treated as nothing more than your receptacle.`); slave.trust -= 4; } } @@ -2603,7 +2569,7 @@ App.UI.newSlaveIntro = function(slave) { }); } - lineBreak(); + if (V.seePreg !== 0) { if (isFertile(slave) && slave.womb.length === 0 && V.PC.dick !== 0 && slave.eggType === "human") { choice({ @@ -2611,25 +2577,25 @@ App.UI.newSlaveIntro = function(slave) { result(slave) { const el = new DocumentFragment(); let r = []; - r.push(`You perform a careful medical examination to verify fertility, and then `); + r.push(`You perform a careful medical examination to verify fertility, and then`); if (slave.devotion > 20 || slave.trust < -20) { r.push(`lay the obedient ${desc} across your desk`); } else { r.push(`restrain the resistant ${desc} in your office with ${his} ass in the air`); } - r.push(` and gently slide your hard cock `); + r.push(`and gently slide your hard cock`); if (slave.mpreg === 1) { - r.push(`up ${his} butt`); + r.push(`up ${his} butt.`); } else { - r.push(`inside ${his} womanhood`); + r.push(`inside ${his} womanhood.`); } - r.push(`. You take ${him} with care, enjoying ${his} body `); + r.push(`You take ${him} with care, enjoying ${his} body`); if (slave.devotion > 20 || slave.trust < -20) { - r.push(`and doing your best to give ${him} pleasure, too`); + r.push(`and doing your best to give ${him} pleasure, too.`); } else { - r.push(`without hurting ${him}`); + r.push(`without hurting ${him}.`); } - r.push(`. You empty your balls inside ${him}, thrusting in as far as you can go as you climax. When ${he} feels the hot liquid jet into ${him},`); + r.push(`You empty your balls inside ${him}, thrusting in as far as you can go as you climax. When ${he} feels the hot liquid jet into ${him},`); if (slave.devotion > 20) { if (slave.fetish === "pregnancy") { if (slave.fetishKnown === 0) { @@ -2641,13 +2607,13 @@ App.UI.newSlaveIntro = function(slave) { r.push(`As you ${him} go, ${he} feels your cum dripping out of ${him}, and ${he} <span class="hotpink">feels like your property.</span>`); slave.devotion += 5; } else { - r.push(`${he} gasps and does ${his} best to relax, accepting the flow. `); + r.push(`${he} gasps and does ${his} best to relax, accepting the flow.`); if (slave.fetishKnown === 0) { r.push(`It seems ${he}`); } else { r.push(`${He}`); } - r.push(` isn't an impregnation fetishist, but ${he} is <span class="hotpink">willing to submit</span> to have ${his} body used as your receptacle.`); + r.push(`isn't an impregnation fetishist, but ${he} is <span class="hotpink">willing to submit</span> to have ${his} body used as your receptacle.`); slave.devotion += 4; } } else { @@ -2661,26 +2627,26 @@ App.UI.newSlaveIntro = function(slave) { r.push(`As you ${him} go, ${he} cries openly, your cum dripping out of ${him}, and ${he} <span class="hotpink">feels like your property.</span>`); slave.devotion += 4; } else { - r.push(`${he} groans and struggles a little, disgusted to be filled by your fluids so immediately. `); + r.push(`${he} groans and struggles a little, disgusted to be filled by your fluids so immediately.`); if (slave.fetishKnown === 0) { r.push(`It seems ${he}`); } else { r.push(`${He}`); } - r.push(` isn't an impregnation fetishist, and is <span class="gold">afraid</span> that ${he}'ll be treated as nothing more than your receptacle.`); + r.push(`isn't an impregnation fetishist, and is <span class="gold">afraid</span> that ${he}'ll be treated as nothing more than your receptacle.`); slave.trust -= 4; } } App.UI.DOM.appendNewElement("p", el, r.join(" ")); r = []; - r.push(`Whenever you feel able, you drain your balls into ${his} `); + r.push(`Whenever you feel able, you drain your balls into ${his}`); if (slave.mpreg === 1) { - r.push(`ass`); + r.push(`ass,`); } else { - r.push(`cunt`); + r.push(`cunt,`); } - r.push(`, only releasing ${him} for other duties when scans verify a fertilized ovum.`); + r.push(`only releasing ${him} for other duties when scans verify a fertilized ovum.`); if (slave.intelligence + slave.intelligenceImplant < -50) { r.push(`${He} didn't properly understand the scans, so ${he} just thought it was bound, forced sex; ${he} won't realize what happened for some weeks at least.`); } else if (slave.fetish === "pregnancy") { @@ -2726,14 +2692,14 @@ App.UI.newSlaveIntro = function(slave) { if (isAmputee(slave)) { r.push(`You secure ${his} struggling, screeching body to the couch next to your desk with ${his} vagina exposed.`); } else { - r.push(`You cuff ${his} `); + r.push(`You cuff ${his}`); if (hasAnyArms(slave)) { r.push(`wrist`); if (hasBothArms(slave)) { r.push(`s`); } if (hasAnyLegs(slave)) { - r.push(` and `); + r.push(`and`); } } if (hasAnyLegs(slave)) { @@ -2742,7 +2708,7 @@ App.UI.newSlaveIntro = function(slave) { r.push(`s`); } } - r.push(` and secure ${his} struggling, screeching body to the couch next to your desk with ${his} legs spread.`); + r.push(`and secure ${his} struggling, screeching body to the couch next to your desk with ${his} legs spread.`); } r.push(`${He} wriggles and protests as you take ${his} virginity. ${He}'s certainly entered your service in a way that colors ${his} impression of you <span class="mediumorchid">with hatred</span> and <span class="gold">fear.</span> <span class="lime">${His} tight little pussy has been broken in.</span>`); slave.devotion -= 5; @@ -2750,14 +2716,14 @@ App.UI.newSlaveIntro = function(slave) { if (isAmputee(slave)) { r.push(`You secure ${his} unresisting body to the couch next to your desk with ${his} vagina exposed.`); } else { - r.push(`You cuff ${his} `); + r.push(`You cuff ${his}`); if (hasAnyArms(slave)) { r.push(`wrist`); if (hasBothArms(slave)) { r.push(`s`); } if (hasAnyLegs(slave)) { - r.push(` and `); + r.push(`and`); } } if (hasAnyLegs(slave)) { @@ -2766,7 +2732,7 @@ App.UI.newSlaveIntro = function(slave) { r.push(`s`); } } - r.push(` and secure ${his} unresisting body to the couch next to your desk with ${his} legs spread.`); + r.push(`and secure ${his} unresisting body to the couch next to your desk with ${his} legs spread.`); } r.push(`${He} writhes and moans as you enter ${his} virgin pussy. You might not have even had to restrain ${him} for this, but being tied up and deflowered sends ${him} a message. ${He}'s certainly entered your service in a way that colors ${his} impression of you <span class="hotpink">with pain</span> and <span class="gold">fear.</span> <span class="lime">${His} tight little pussy has been broken in.</span>`); slave.devotion += 5; @@ -2787,14 +2753,14 @@ App.UI.newSlaveIntro = function(slave) { if (isAmputee(slave)) { r.push(`You secure ${his} struggling, screeching body to the couch next to your desk with ${his} butt sticking out.`); } else { - r.push(`You cuff ${his} `); + r.push(`You cuff ${his}`); if (hasAnyArms(slave)) { r.push(`wrist`); if (hasBothArms(slave)) { r.push(`s`); } if (hasAnyLegs(slave)) { - r.push(` and `); + r.push(`and`); } } if (hasAnyLegs(slave)) { @@ -2803,21 +2769,21 @@ App.UI.newSlaveIntro = function(slave) { r.push(`s`); } } - r.push(` and secure ${his} struggling, screeching body to the couch next to your desk so that ${he}'s straddling the back of the couch with ${his} butt sticking out.`); + r.push(`and secure ${his} struggling, screeching body to the couch next to your desk so that ${he}'s straddling the back of the couch with ${his} butt sticking out.`); } - r.push(`${He} wriggles and protests until ${he} feels the lubricated head of `); + r.push(`${He} wriggles and protests until ${he} feels the lubricated head of`); if (V.PC.dick !== 0) { r.push(`your dick`); } else { r.push(`a strap-on`); } - r.push(` pushing against ${his} virgin butthole, at which point ${he} desperately tries to break free. ${He} fails, but ${he} never stops writhing and begging you to take `); + r.push(`pushing against ${his} virgin butthole, at which point ${he} desperately tries to break free. ${He} fails, but ${he} never stops writhing and begging you to take`); if (V.PC.dick !== 0) { r.push(`your cock`); } else { r.push(`the phallus`); } - r.push(` out of ${his} asshole. ${He}'s certainly entered your service in a way that colors ${his} impression of you <span class="mediumorchid">with hatred</span> and <span class="gold">fear.</span> <span class="lime">${His} tight little ass has been broken in.</span>`); + r.push(`out of ${his} asshole. ${He}'s certainly entered your service in a way that colors ${his} impression of you <span class="mediumorchid">with hatred</span> and <span class="gold">fear.</span> <span class="lime">${His} tight little ass has been broken in.</span>`); slave.devotion -= 5; slave.trust -= 10; slave.anus = 1; @@ -2834,14 +2800,14 @@ App.UI.newSlaveIntro = function(slave) { if (isAmputee(slave)) { r.push(`You secure ${his} unresisting body to the couch next to your desk with ${his} butt sticking out.`); } else { - r.push(`You cuff ${his} `); + r.push(`You cuff ${his}`); if (hasAnyArms(slave)) { r.push(`wrist`); if (hasBothArms(slave)) { r.push(`s`); } if (hasAnyLegs(slave)) { - r.push(` and `); + r.push(`and`); } } if (hasAnyLegs(slave)) { @@ -2850,15 +2816,15 @@ App.UI.newSlaveIntro = function(slave) { r.push(`s`); } } - r.push(` and secure ${his} unresisting body to the couch next to your desk so that ${he}'s straddling the back of the couch with ${his} butt sticking out.`); + r.push(`and secure ${his} unresisting body to the couch next to your desk so that ${he}'s straddling the back of the couch with ${his} butt sticking out.`); } - r.push(`${He} lies obediently still until ${he} feels the lubricated head of your cock pushing against ${his} virgin butthole, at which point ${he} starts in surprise. When the pain of the buttfuck gets to be too much ${he} begs you to use ${his} `); + r.push(`${He} lies obediently still until ${he} feels the lubricated head of your cock pushing against ${his} virgin butthole, at which point ${he} starts in surprise. When the pain of the buttfuck gets to be too much ${he} begs you to use ${his}`); if (slave.dick === 0) { r.push(`pussy`); } else { r.push(`mouth`); } - r.push(` instead. ${He} gasps and cries as you slowly push your cock all the way up ${his} tight little butt, and in no time you fill ${his} rectum with cum. ${He}'s certainly entered your service in a way that colors ${his} impression of you <span class="mediumorchid">with pain</span> and <span class="gold">fear.</span> <span class="lime">${His} tight little ass has been broken in.</span>`); + r.push(`instead. ${He} gasps and cries as you slowly push your cock all the way up ${his} tight little butt, and in no time you fill ${his} rectum with cum. ${He}'s certainly entered your service in a way that colors ${his} impression of you <span class="mediumorchid">with pain</span> and <span class="gold">fear.</span> <span class="lime">${His} tight little ass has been broken in.</span>`); slave.devotion -= 5; slave.trust -= 10; slave.anus = 1; @@ -2880,7 +2846,7 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`bring the resistant slave`); } - r.push(` out into the public areas below your penthouse, shove the nude ${desc} over a convenient handrail, and stick `); + r.push(`out into the public areas below your penthouse, shove the nude ${desc} over a convenient handrail, and stick`); if (V.PC.dick !== 0) { r.push(`your dick`); } else { @@ -2912,22 +2878,22 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`As a humiliation fetishist, ${he} gets off on the stares, blushing cutely as ${he} takes a fuck in public.`); } - r.push(`${He} follows you back inside your penthouse, leaking `); + r.push(`${He} follows you back inside your penthouse, leaking`); if (V.PC.dick !== 0) { - r.push(`your cum`); + r.push(`your cum,`); } else { - r.push(`lube`); + r.push(`lube,`); } - r.push(`, <span class="hotpink">feeling like a slut.</span>`); + r.push(`<span class="hotpink">feeling like a slut.</span>`); slave.devotion += 5; } else { - r.push(`${He} takes the fuck obediently, and does ${his} very best to ignore the stares. `); + r.push(`${He} takes the fuck obediently, and does ${his} very best to ignore the stares.`); if (slave.fetishKnown === 0) { r.push(`It seems ${he}`); } else { r.push(`${He}`); } - r.push(` isn't a humiliation fetishist, but ${he} is <span class="hotpink">willing to submit</span> to being used as a sex slave in public.`); + r.push(`isn't a humiliation fetishist, but ${he} is <span class="hotpink">willing to submit</span> to being used as a sex slave in public.`); slave.devotion += 4; } } else { @@ -2938,22 +2904,22 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`As a humiliation fetishist, ${he} can't stop ${himself} from getting off on being fucked in public.`); } - r.push(`As you pull ${him} back towards your penthouse, ${he} leaks `); + r.push(`As you pull ${him} back towards your penthouse, ${he} leaks`); if (V.PC.dick !== 0) { r.push(`your cum`); } else { r.push(`lube`); } - r.push(` and <span class="hotpink">feels like a slut.</span>`); + r.push(`and <span class="hotpink">feels like a slut.</span>`); slave.devotion += 4; } else { - r.push(`${He} takes the fuck unwillingly, crying and doing ${his} best to ignore the stares. `); + r.push(`${He} takes the fuck unwillingly, crying and doing ${his} best to ignore the stares.`); if (slave.fetishKnown === 0) { r.push(`It seems ${he}`); } else { r.push(`${He}`); } - r.push(` isn't a humiliation fetishist, and is <span class="gold">rapidly learning what it means</span> to be your sex ${slave}`); + r.push(`isn't a humiliation fetishist, and is <span class="gold">rapidly learning what it means</span> to be your sex ${slave}`); slave.trust -= 4; } } @@ -2970,12 +2936,12 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Give ${him} a chance to impress`, result(slave) { const r = []; - let _num = jsRandom(1, 100); + const num = jsRandom(1, 100); r.push(`${He} seems reasonably obedient, so you give ${him} a chance to impress.You remain seated and offer ${him} your`); if (V.PC.dick !== 0) { r.push(`half - erect cock`); if (V.PC.vagina !== -1) { - r.push(` and ready pussy`); + r.push(`and ready pussy`); } } else { r.push(`pussy, wet with arousal at the prospect of breaking in a new slut`); @@ -2986,21 +2952,21 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`into position`); } - r.push(`.${He} works hard and is clearly doing ${his} absolute best to please, so you ${him} finish you with ${his} mouth. `); + r.push(`.${He} works hard and is clearly doing ${his} absolute best to please, so you ${him} finish you with ${his} mouth.`); if (V.PC.dick !== 0) { - if (_num > 20) { - r.push(`${He} `); + if (num > 20) { + r.push(`${He}`); if (!canSee(slave)) { r.push(`looks up at`); } else { r.push(`angles ${his} head towards`); } - r.push(` you as ${he} swallows`); - } else if (_num > 40) { + r.push(`you as ${he} swallows`); + } else if (num > 40) { r.push(`${He} even swallows your cum without being told`); - } else if (_num > 60) { + } else if (num > 60) { r.push(`${He} smiles sloppily as your seed slowly dribbles from ${his} mouth and down ${his} chin`); - } else if (_num > 80) { + } else if (num > 80) { r.push(`${He} struggles to contain your seed and makes a mess all over ${his} face as a result`); } else { r.push(`${He} struggles to contain your seed with ${his} mouth and it splatters over the floor as a result`); @@ -3008,13 +2974,13 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`${He} worked ${his} tongue hard and did ${his} best`); } - r.push(`.You spend the rest of the day with ${him} `); + r.push(`.You spend the rest of the day with ${him}`); if (hasAnyLegs(slave)) { r.push(`kneeling`); } else { r.push(`resting`); } - r.push(` on a cushion next to your chair.${He} learns obedience, but also learns that you are < span class="mediumaquamarine" > fair</span > and < span class="hotpink" > reasonable.</span > `); + r.push(`on a cushion next to your chair.${He} learns obedience, but also learns that you are < span class="mediumaquamarine" > fair</span > and < span class="hotpink" > reasonable.</span >`); slave.devotion += 4; slave.trust += 4; slave.counter.oral += 1; @@ -3031,23 +2997,19 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Make sure ${he} knows pregnant ${V.women} can still enjoy sex`, result(slave) { const r = []; - r.push(`You introduce ${him} to obedience and proper manners regarding ${his} ${WrittenMaster(slave)} before sending ${him} off for a physical.That night, ${he} 's returned to your room, and finds you doing business on a tablet in bed. ${He} looks doubtful, but obeys when you direct ${him} to get into bed`); - if (V.PC.dick === 0) { - r.push(`, even after ${he} realizes you're wearing a strap-on`); - } - r.push(`. You turn out the light and spoon ${him} from behind, kissing ${his} neck and ears, cupping ${his} swollen breasts, and running your hands across ${his} pregnant belly with its taut ${slave.skin} skin. ${He}'s awkward at first but ${his} body responds to the tenderness. Before long ${he}'s humping ${his} pussy back and forth against `); + r.push(`You introduce ${him} to obedience and proper manners regarding ${his} ${WrittenMaster(slave)} before sending ${him} off for a physical.That night, ${he} 's returned to your room, and finds you doing business on a tablet in bed. ${He} looks doubtful, but obeys when you direct ${him} to get into bed${V.PC.dick === 0 ? `, even after ${he} realizes you're wearing a strap-on`: ``}. You turn out the light and spoon ${him} from behind, kissing ${his} neck and ears, cupping ${his} swollen breasts, and running your hands across ${his} pregnant belly with its taut ${slave.skin} skin. ${He}'s awkward at first but ${his} body responds to the tenderness. Before long ${he}'s humping ${his} pussy back and forth against`); if (V.PC.dick !== 0) { - r.push(`your cock`); + r.push(`your cock.`); } else { - r.push(`the strap-on`); + r.push(`the strap-on.`); } - r.push(`. You begin to gently work `); + r.push(`You begin to gently work`); if (V.PC.dick !== 0) { r.push(`your dickhead`); } else { r.push(`its tip`); } - r.push(` up ${his} used pussy. ${He}'s unsure of ${himself}, but you keep ${him} nice and relaxed. After several minutes of gentle loving, ${he}'s nothing but a satisfied puddle in your arms. ${He} believes that ${he} can <span class="mediumaquamarine">trust</span> you won't harm ${him} or ${his} child`); + r.push(`up ${his} used pussy. ${He}'s unsure of ${himself}, but you keep ${him} nice and relaxed. After several minutes of gentle loving, ${he}'s nothing but a satisfied puddle in your arms. ${He} believes that ${he} can <span class="mediumaquamarine">trust</span> you won't harm ${him} or ${his} child`); if (slave.pregType > 1) { r.push(`ren`); } @@ -3068,21 +3030,21 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Tease ${his} nipples`, result(slave) { const r = []; - r.push(`You `); + r.push(`You`); if (slave.devotion > 20 || slave.trust < -20) { r.push(`instruct the obedient ${desc}`); } else { r.push(`force the reluctant ${desc}`); } - r.push(`to lie atop your desk in front of you and go back to business.After a few minutes, you extend an idle hand and begin to fondle ${his} `); + r.push(`to lie atop your desk in front of you and go back to business.After a few minutes, you extend an idle hand and begin to fondle ${his}`); if (slave.boobs > 2000) { - r.push(`massive tits`); + r.push(`massive tits,`); } else if (slave.boobs > 400) { - r.push(`healthy breasts`); + r.push(`healthy breasts,`); } else { - r.push(`cute little boobs`); + r.push(`cute little boobs,`); } - r.push(`, continuing your work with your other hand.You quickly focus your fiddling on ${his} ${slave.nipples} nipples, the stimulation`); + r.push(`continuing your work with your other hand.You quickly focus your fiddling on ${his} ${slave.nipples} nipples, the stimulation`); if (slave.nipples === "fuckable") { if (slave.devotion > 20) { r.push(`quickly engorging them around your fingers`); @@ -3139,21 +3101,23 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Dominate ${his} penis and demonstrate ${his} place`, result(slave) { const r = []; - r.push(`As you inspect ${him}, you take note of ${his} fully functional `); + r.push(`As you inspect ${him}, you take note of ${his} fully`); if (slave.dick === 1) { - r.push(`tiny dick`); + r.push(`functional tiny dick.`); } else if (slave.dick === 2) { - r.push(`cute dick`); + r.push(`functional cute dick.`); } else if (slave.dick === 3) { - r.push(`dick`); + r.push(`functional dick.`); } else if (slave.dick === 4) { - r.push(`big dick`); + r.push(`functional big dick.`); } else if (slave.dick === 5) { - r.push(`impressive dick`); + r.push(`functional impressive dick.`); } else if (slave.dick === 6) { - r.push(`huge dick`); + r.push(`functional huge dick.`); + } else { + r.push(`functional.`); // Old SC code only went to 6. I'm adding this to fix the period, but this needs writing assuming we can go beyond 6. } - r.push(`. You roughly push ${him} up against a wall and begin fondling ${his} penis, grinning at the look of panic growing on ${his} face.`); + r.push(`You roughly push ${him} up against a wall and begin fondling ${his} penis, grinning at the look of panic growing on ${his} face.`); if (slave.dick === 1) { r.push(`You scoff at ${him} as ${his} micropenis barely fills your palm.`); } else if (slave.dick === 2) { @@ -3167,13 +3131,9 @@ App.UI.newSlaveIntro = function(slave) { } else if (slave.dick === 6) { r.push(`You grin sadistically at ${him} as ${his} massive dick fills both of your hands.`); } - r.push(`As ${he} begins to moan with lust, you grip down tightly and force ${him} to the floor. You straddle ${him} and lower your dripping pussy onto ${his} face`); - if (V.PC.dick !== 0) { - r.push(`, your erect cock coming to rest on ${his} forehead`); - } - r.push(`. You continue stroking your toy's rod as ${he} eagerly begins eating you out. As ${his} cock begins to throb, anticipating ${his} upcoming orgasm, you quickly bind the base of ${his} penis, denying ${his} release. You grind your cunt into ${his} face, telling ${him} that YOU are the one who'll be orgasming here, not ${him}. Only once you have initiated the new slave by soaking ${his} face in your cum do you release ${his} dick and lean back to avoid the coming blast. A few strokes later and your hand is coated in ${his} cum. You turn around and order the exhausted ${girl} to clean ${his} cum off your hand`); + r.push(`As ${he} begins to moan with lust, you grip down tightly and force ${him} to the floor. You straddle ${him} and lower your dripping pussy onto ${his} face${V.PC.dick !== 0 ? `, your erect cock coming to rest on ${his} forehead`: ``}. You continue stroking your toy's rod as ${he} eagerly begins eating you out. As ${his} cock begins to throb, anticipating ${his} upcoming orgasm, you quickly bind the base of ${his} penis, denying ${his} release. You grind your cunt into ${his} face, telling ${him} that YOU are the one who'll be orgasming here, not ${him}. Only once you have initiated the new slave by soaking ${his} face in your cum do you release ${his} dick and lean back to avoid the coming blast. A few strokes later and your hand is coated in ${his} cum. You turn around and order the exhausted ${girl} to clean ${his} cum off your hand`); if (V.PC.dick !== 0) { - r.push(` and to finish off ${his} twitching dick`); + r.push(`and to finish off ${his} twitching dick`); } r.push(`${he} <span class="hotpink">complies meekly,</span> knowing you are the < span class="gold" > dominant force</span > in ${his} life now.`); slave.devotion += 5; @@ -3189,7 +3149,7 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Make ${him} worship your pregnancy`, result(slave) { const r = []; - r.push(`You aggressively approach ${slave.slaveName}, forcing your pregnancy directly into ${his} `); + r.push(`You aggressively approach ${slave.slaveName}, forcing your pregnancy directly into ${his}`); if (slave.height > 175) { r.push(`stomach`); } else if (slave.height < 155) { @@ -3197,17 +3157,13 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`chest`); } - r.push(` until ${he} has no choice but to be pushed to the ground. Standing over ${him}, staring ${him} down as ${he} peeks around your firm globe of a middle, you order ${him} to worship your pregnancy.`); + r.push(`until ${he} has no choice but to be pushed to the ground. Standing over ${him}, staring ${him} down as ${he} peeks around your firm globe of a middle, you order ${him} to worship your pregnancy.`); if (slave.fetish === "pregnancy") { - r.push(`${He} complies eagerly. ${He} begins with sucking your popped navel before running ${his} tongue across the taut, smooth surface of your pregnancy. Once ${he} has finished with your belly, ${he} lowers ${himself} under it to begin work on your needy pussy. Before long, ${his} overzealous efforts have you quaking in pleasure, rousing your child`); - if (V.PC.pregType > 1) { - r.push(`ren`); - } - r.push(`. Once ${he} finishes you off, ${he} returns to rubbing your belly, soothing your rowdy child`); + r.push(`${He} complies eagerly. ${He} begins with sucking your popped navel before running ${his} tongue across the taut, smooth surface of your pregnancy. Once ${he} has finished with your belly, ${he} lowers ${himself} under it to begin work on your needy pussy. Before long, ${his} overzealous efforts have you quaking in pleasure, rousing your ${(V.PC.pregType === 1) ?`child`:`children`}. Once ${he} finishes you off, ${he} returns to rubbing your belly, soothing your rowdy child`); if (V.PC.pregType > 1) { r.push(`ren`); } - r.push(` and <span class="hotpink">solidifying ${his} place</span> beneath you.`); + r.push(`and <span class="hotpink">solidifying ${his} place</span> beneath you.`); slave.devotion += 15; } else { r.push(`${He} shifts ${his} gaze between your middle and your face, not sure what to do. Losing patience, you toss a tube of cream at ${him}. ${He} shakily massages it onto your stretched skin, missing spots, much to your pleasure. With reason, you force ${him} onto ${his} back, turn around, and plant your needy cunt directly onto ${his} face. Struggling to breath under your weight, ${he} begins eating you out in desperation. After coaxing ${him} to massage your belly as ${he} does, you quickly climax across ${his} face and gently lift yourself off the coughing ${girl}. ${He} now <span class="hotpink">understands ${his} place in life</span> and is <span class="gold">terrified</span> about what ${he} will have to do if ${he} wants to survive.`); @@ -3225,7 +3181,7 @@ App.UI.newSlaveIntro = function(slave) { linkName: `${He} has a dick and you need it`, result(slave) { const r = []; - r.push(`You aggressively approach ${slave.slaveName}, forcing your pregnancy directly into ${his} `); + r.push(`You aggressively approach ${slave.slaveName}, forcing your pregnancy directly into ${his}`); if (slave.height > 175) { r.push(`stomach`); } else if (slave.height < 155) { @@ -3233,24 +3189,24 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`chest`); } - r.push(` until ${he} has no choice but to be pushed to the ground. You quickly straddle ${his} face, forcing your oozing cunt over ${his} mouth as you eagerly stroke ${his} cock to full length.`); + r.push(`until ${he} has no choice but to be pushed to the ground. You quickly straddle ${his} face, forcing your oozing cunt over ${his} mouth as you eagerly stroke ${his} cock to full length.`); if (slave.fetish === "pregnancy") { - r.push(`${He} groans with disappointment as your pregnant pussy leaves ${his} reach, though ${his} displeasure is short lived as you greedily take ${his} entire dick into your aching snatch. You ride ${him} mercilessly, frequently smacking ${him} with your heavy belly. ${He} loves every minute of it, especially when ${he} feels your body tense up as ${he} lets loose ${his} load deep into you. Where most slaves would be begging for mercy, ${he} <span class="hotpink">eagerly complies</span> as you adjust yourself and begin round two. You don't know what came over you, but when you wake up, you find ${he}'s resting peacefully under your gravid mass. `); + r.push(`${He} groans with disappointment as your pregnant pussy leaves ${his} reach, though ${his} displeasure is short lived as you greedily take ${his} entire dick into your aching snatch. You ride ${him} mercilessly, frequently smacking ${him} with your heavy belly. ${He} loves every minute of it, especially when ${he} feels your body tense up as ${he} lets loose ${his} load deep into you. Where most slaves would be begging for mercy, ${he} <span class="hotpink">eagerly complies</span> as you adjust yourself and begin round two. You don't know what came over you, but when you wake up, you find ${he}'s resting peacefully under your gravid mass.`); if (slave.fetishKnown === 0) { - r.push(`It seems ${he} likes <span class="green">being a pregnant _womanP's plaything.</span>`); + r.push(`It seems ${he} likes <span class="green">being a pregnant ${womanP}'s plaything.</span>`); slave.fetishKnown = 1; } else { r.push(`You knew ${he} had a pregnancy fetish and the look on ${his} face confirms it.`); } - r.push(` A kick from within startles you from your thoughts; it would appear your child`); + r.push(`A kick from within startles you from your thoughts; it would appear your child`); if (V.PC.pregType > 1) { r.push(`ren`); } - r.push(` agree`); + r.push(`agree`); if (V.PC.pregType === 1) { r.push(`s`); } - r.push(` that you'll have to have another ride sometime.`); + r.push(`that you'll have to have another ride sometime.`); slave.devotion += 15; } else { r.push(`${He} coughs as your pregnant pussy vacates ${his} face, though ${his} relief is short lived as you greedily slam yourself down onto ${his} waiting dick. You ride ${him} mercilessly, frequently smacking ${him} with your heavy belly. ${He} hates every minute of it, choosing to alternate between begging you to stop and just openly weeping. You cum hard as you watch the look on ${his} face as ${he} unwillingly cums deep inside you. ${He} cries out in protest as you continue raping ${him}, but you don't care. All that matters is your satisfaction. This continues until you pass out from orgasmic exhaustion with ${him} still inside you. You are eventually awoken by ${his} desperate struggle to escape from beneath your gravid mass; ${he} quickly regrets ${his} choices as you remount ${him} for one last go. ${He} now <span class="hotpink">better understands ${his} place as a toy</span> and is <span class="gold">terrified</span> of your insatiable lust.`); @@ -3273,23 +3229,23 @@ App.UI.newSlaveIntro = function(slave) { const r = []; r.push(`You calmly approach ${slave.slaveName}, pulling ${him} into a soothing embrace against your`); if (V.PC.boobs >= 1400) { - r.push(`enormous`); + r.push(`enormous,`); if (V.PC.boobsImplant > 0) { - r.push(`, fake`); + r.push(`fake,`); } - r.push(`, milk laden breasts.`); + r.push(`milk laden breasts.`); } else if (V.PC.boobs >= 1200) { - r.push(`huge`); + r.push(`huge, `); if (V.PC.boobsImplant > 0) { - r.push(`, fake`); + r.push(`fake, `); } - r.push(`, milk laden breasts.`); + r.push(`milk laden breasts.`); } else if (V.PC.boobs >= 1000) { - r.push(`large`); + r.push(`large,`); if (V.PC.boobsImplant > 0) { - r.push(`, fake`); + r.push(`fake,`); } - r.push(`, milk laden breasts.`); + r.push(`milk laden breasts.`); } else if (V.PC.boobs >= 800) { r.push(`big, milk laden breasts.`); } else if (V.PC.boobs >= 650) { @@ -3303,61 +3259,57 @@ App.UI.newSlaveIntro = function(slave) { } r.push(`${He} tries to squirm away from the moist spot growing under ${his} cheek, but you reveal your nipple and carefully direct ${his} mouth over it.`); if (slave.fetish === "pregnancy") { - r.push(`Slowly ${he} begins to suckle from your swollen breast. You gently brush ${his} head as you try to hold back your pleasure — a wasted effort, as a hand sneaks its way to your `); + r.push(`Slowly ${he} begins to suckle from your swollen breast. You gently brush ${his} head as you try to hold back your pleasure — a wasted effort, as a hand sneaks its way to your`); if (V.PC.dick !== 0) { - r.push(`growing erection and enthusiastically begins pumping away`); + r.push(`growing erection and enthusiastically begins pumping away.`); } else { - r.push(`wet pussy and enthusiastically begins rubbing your clit`); + r.push(`wet pussy and enthusiastically begins rubbing your clit.`); } - r.push(`. You clutch your pervy ${girl} closer to you as ${he} caresses your pregnancy with one hand and gets you off with the other. Before long you find yourself bucking your hips with lust, a queue for you to release ${him} from your nipple so ${he} may slide down your gravid dome of a belly to finish you off. Happy to serve ${his} pregnant ${WrittenMaster(slave)}, ${he} returns to your chest, happy to relieve you of the pressure building in your neglected breast. `); + r.push(`You clutch your pervy ${girl} closer to you as ${he} caresses your pregnancy with one hand and gets you off with the other. Before long you find yourself bucking your hips with lust, a queue for you to release ${him} from your nipple so ${he} may slide down your gravid dome of a belly to finish you off. Happy to serve ${his} pregnant ${WrittenMaster(slave)}, ${he} returns to your chest, happy to relieve you of the pressure building in your neglected breast.`); if (slave.fetishKnown === 0) { - r.push(`Judging by that show, <span class="green">${he} savors getting to be with a pregnant _womanP.</span>`); + r.push(`Judging by that show, <span class="green">${he} savors getting to be with a pregnant ${womanP}.</span>`); slave.fetishKnown = 1; } else { - r.push(`You knew ${he} had a pregnancy fetish and ${his} eagerness to serve a pregnant _womanP proves that.`); + r.push(`You knew ${he} had a pregnancy fetish and ${his} eagerness to serve a pregnant ${womanP} proves that.`); } - r.push(` A kick from within startles you from your thoughts; as you reach to soothe your child`); - if (V.PC.pregType > 1) { - r.push(`ren`); - } - r.push(`, you find your new slave <span class="mediumaquamarine">already doting on them.</span> ${He}'s already starting to <span class="hotpink">show understanding of ${his} place.</span>`); + r.push(`A kick from within startles you from your thoughts; as you reach to soothe your ${V.PC.pregType === 1 ? `child` : `children`}, you find your new slave <span class="mediumaquamarine">already doting on them.</span> ${He}'s already starting to <span class="hotpink">show understanding of ${his} place.</span>`); slave.devotion += 15; slave.trust += 15; } else if (slave.fetish === "boobs") { - r.push(`Eagerly ${he} begins to suckle from your swollen breast. You gently brush ${his} head as you try to hold back your pleasure — a wasted effort, as a hand sneaks its way to your neglected breast. ${He} massages it, careful not to encourage your lactation too much, as ${he} greedily sucks you dry. ${He} wastes no time in swapping to your other nipple, shifting ${his} ministrations to the one the just left. By the time your reserves are tapped out, both you and ${he} are quite content. You permit ${him} to rest against your chest for a little before you send ${him} on ${his} way. `); + r.push(`Eagerly ${he} begins to suckle from your swollen breast. You gently brush ${his} head as you try to hold back your pleasure — a wasted effort, as a hand sneaks its way to your neglected breast. ${He} massages it, careful not to encourage your lactation too much, as ${he} greedily sucks you dry. ${He} wastes no time in swapping to your other nipple, shifting ${his} ministrations to the one the just left. By the time your reserves are tapped out, both you and ${he} are quite content. You permit ${him} to rest against your chest for a little before you send ${him} on ${his} way.`); if (slave.fetishKnown === 0) { r.push(`Judging by ${his} enthusiasm, <span class="green">${he} savors getting ${his} mouth close to a pair of boobs.</span>`); slave.fetishKnown = 1; } else { - r.push(`You knew ${he} had a breast fetishist and ${his} eagerness to lighten a lactating _womanP proves that.`); + r.push(`You knew ${he} had a breast fetishist and ${his} eagerness to lighten a lactating ${womanP} proves that.`); } - r.push(` A kick from within startles you from your thoughts; you pat your gravid middle, reassuring your child`); + r.push(`A kick from within startles you from your thoughts; you pat your gravid middle, reassuring your child`); if (V.PC.pregType > 1) { r.push(`ren`); } - r.push(` that you'll make sure to save some milk for them. ${He}'s already starting to <span class="hotpink">show understanding of ${his} place</span> and even <span class="mediumaquamarine">beginning to build trust</span> with you.`); + r.push(`that you'll make sure to save some milk for them. ${He}'s already starting to <span class="hotpink">show understanding of ${his} place</span> and even <span class="mediumaquamarine">beginning to build trust</span> with you.`); slave.devotion += 15; slave.trust += 15; } else { - r.push(`Reluctantly ${he} begins to suckle from your swollen breast. You gently brush ${his} head as you try to hold back your pleasure, but it is too much. As ${he} drinks deeper, you begin moaning with relief. At first ${he} tenses at `); + r.push(`Reluctantly ${he} begins to suckle from your swollen breast. You gently brush ${his} head as you try to hold back your pleasure, but it is too much. As ${he} drinks deeper, you begin moaning with relief. At first ${he} tenses at`); if (canHear(slave)) { - r.push(`the sound`); + r.push(`the sound,`); } else { - r.push(`your body's shuddering`); + r.push(`your body's shuddering,`); } - r.push(`, fearing punishment, but soon realizes you have no intent on <span class="mediumaquamarine">harming ${him}.</span> ${He} allows you to dote over ${him} as if ${he} were `); + r.push(`fearing punishment, but soon realizes you have no intent on <span class="mediumaquamarine">harming ${him}.</span> ${He} allows you to dote over ${him} as if ${he} were`); if (slave.father === -1 || slave.mother === -1) { r.push(`a`); } else { r.push(`your`); } - r.push(` child, carefully moving to your other breast once the first runs dry. As ${he} drinks, ${he} begins to massage your taut middle, ${his} touch soft and gentle. When you both finish, you push ${him} `); + r.push(`child, carefully moving to your other breast once the first runs dry. As ${he} drinks, ${he} begins to massage your taut middle, ${his} touch soft and gentle. When you both finish, you push ${him}`); if (hasBothLegs(slave)) { r.push(`to ${his} feet`); } else { r.push(`into an upright position`); } - r.push(` and send ${him} on ${his} way. <span class="hotpink">${He} stays and offers a hand to help you to your feet.</span> You are surprised by this display; it might be obedience, but ${he} also may view you in your gravid state as someone weak. As ${he} helps you back to your desk, ${he} shoulders all of your weight. It would appear ${he} is putting you first, for now.`); + r.push(`and send ${him} on ${his} way. <span class="hotpink">${He} stays and offers a hand to help you to your feet.</span> You are surprised by this display; it might be obedience, but ${he} also may view you in your gravid state as someone weak. As ${he} helps you back to your desk, ${he} shoulders all of your weight. It would appear ${he} is putting you first, for now.`); slave.devotion += 5; slave.trust += 5; } @@ -3378,22 +3330,22 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Let your ample bust dominate ${his} pathetic one`, result(slave) { const r = []; - r.push(`You quickly strip off your shirt and draw close to ${slave.slaveName}. You grab ${him} as ${he} attempts to back away and pull ${his} tits directly into your own. Both sets of `); + r.push(`You quickly strip off your shirt and draw close to ${slave.slaveName}. You grab ${him} as ${he} attempts to back away and pull ${his} tits directly into your own. Both sets of`); if (canSee(slave)) { - r.push(`eyes lock onto their pair of breasts`); + r.push(`eyes lock onto their pair of breasts,`); } else { - r.push(`tits push out against each other`); + r.push(`tits push out against each other,`); } - r.push(`, or they would have, had yours not utterly eclipsed their rival. Scoffing, you release the confused ${girl} and walk away; leaving ${him} cupping ${his} own breasts and feeling uncertain about ${himself}. ${He} gets caught up in how small they really are, and how much <span class="hotpink">lesser</span> than ${his} ${WrittenMaster(slave)} ${he} is.`); + r.push(`or they would have, had yours not utterly eclipsed their rival. Scoffing, you release the confused ${girl} and walk away; leaving ${him} cupping ${his} own breasts and feeling uncertain about ${himself}. ${He} gets caught up in how small they really are, and how much <span class="hotpink">lesser</span> than ${his} ${WrittenMaster(slave)} ${he} is.`); if (slave.fetish === "boobs") { if (slave.fetishKnown === 0) { - r.push(`You did note one thing when your breasts touched: ${his} nipples `); + r.push(`You did note one thing when your breasts touched: ${his} nipples`); if (slave.nipples === "fuckable") { - r.push(`tightened around yours`); + r.push(`tightened around yours.`); } else { - r.push(`got very hard`); + r.push(`got very hard.`); } - r.push(`. <span class="green">Looks like ${he}'s a breast fetishist!</span>`); + r.push(`<span class="green">Looks like ${he}'s a breast fetishist!</span>`); slave.fetishKnown = 1; } } @@ -3485,13 +3437,13 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`takes a bite. ${He} gasps in surprise at the taste before greedily shoving the entire thing into ${his} mouth and reaching for another.`); } - r.push(`In minutes, ${he}'s managed to devour every last cookie on the plate. Before ${he} can even pout that they're all gone, you place another pair of plates `); + r.push(`In minutes, ${he}'s managed to devour every last cookie on the plate. Before ${he} can even pout that they're all gone, you place another pair of plates`); if (canSmell(slave)) { - r.push(`under ${his} nose`); + r.push(`under ${his} nose.`); } else { - r.push(`in front of ${him}`); + r.push(`in front of ${him}.`); } - r.push(`. ${He} promptly rushes for them,`); + r.push(`${He} promptly rushes for them,`); if (slave.behavioralFlaw === "gluttonous") { r.push(`paying no mind to ${his} bloated belly bumping into your desk, and resumes stuffing ${himself}.`); } else if (slave.behavioralFlaw === "anorexic") { @@ -3559,13 +3511,13 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Spank ${him}`, result(slave) { const r = []; - r.push(`You `); + r.push(`You`); if (slave.devotion > 20 || slave.trust < -20) { r.push(`lay the obedient ${desc} across your knees`); } else { r.push(`force the resistant ${desc} to lie across your knees`); } - r.push(` and run a voluptuary hand across ${his} `); + r.push(`and run a voluptuary hand across ${his}`); if (slave.butt > 6) { r.push(`jiggling`); } else if (slave.butt > 3) { @@ -3575,13 +3527,13 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`skinny`); } - r.push(` buttocks, enjoying the way ${he} tenses up reflexively at the extreme vulnerability of ${his} position. ${He} feels the change in your posture as you bring your hand back, and `); + r.push(`buttocks, enjoying the way ${he} tenses up reflexively at the extreme vulnerability of ${his} position. ${He} feels the change in your posture as you bring your hand back, and`); if (slave.devotion > 20 || slave.trust < -20) { r.push(`can't stop ${himself} from wriggling`); } else { r.push(`struggles desperately`); } - r.push(` for just a moment before your palm smacks against ${his} ass.`); + r.push(`for just a moment before your palm smacks against ${his} ass.`); if (slave.devotion > 20) { if (slave.fetish === "masochist") { if (slave.fetishKnown === 0) { @@ -3627,9 +3579,9 @@ App.UI.newSlaveIntro = function(slave) { if (hasBothArms(slave)) { r.push(`s`); } - r.push(` and tie the cuffs to a hook in the ceiling so ${he}'s forced up on tiptoe. Reflecting that sometimes the old ways are best, you take a whip to ${him}. It's soft leather and you have some skill, so ${his} skin isn't broken, but you lash ${his} buttocks and every stroke draws a scream. After a while, the pain grows dull for ${him} and ${he} slumps in ${his} bindings, moaning. You switch to ${his} nipples, bringing ${him} back to howling life as ${he} dances on tiptoe and tries to dodge. `); + r.push(`and tie the cuffs to a hook in the ceiling so ${he}'s forced up on tiptoe. Reflecting that sometimes the old ways are best, you take a whip to ${him}. It's soft leather and you have some skill, so ${his} skin isn't broken, but you lash ${his} buttocks and every stroke draws a scream. After a while, the pain grows dull for ${him} and ${he} slumps in ${his} bindings, moaning. You switch to ${his} nipples, bringing ${him} back to howling life as ${he} dances on tiptoe and tries to dodge.`); if (slave.dick !== 0) { - r.push(`You finish by taking the whip to ${his} penis, leaving ${him} sobbing and begging. `); + r.push(`You finish by taking the whip to ${his} penis, leaving ${him} sobbing and begging.`); } r.push(`If ${he} was wondering what kind of master ${his} new master is, now ${he} <span class="gold">knows.</span> ${He} will remember <span class="mediumorchid">what you can do to ${him}.</span>`); slave.devotion -= 5; @@ -3647,14 +3599,14 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Use a machine on ${his} holes`, result(slave) { const r = []; - r.push(`${He}'s not a virgin anywhere, so you'll have to go more extreme to provide a properly introductory level of sexual torture equivalent to defloration. You tie your new slave down on `); + r.push(`${He}'s not a virgin anywhere, so you'll have to go more extreme to provide a properly introductory level of sexual torture equivalent to defloration. You tie your new slave down on`); if (hasAnyArms(slave)) { r.push(`hand`); if (hasBothArms(slave)) { r.push(`s`); } if (hasAnyLegs(slave)) { - r.push(` and `); + r.push(`and`); } } if (hasAnyLegs(slave)) { @@ -3663,19 +3615,19 @@ App.UI.newSlaveIntro = function(slave) { r.push(`s`); } } - r.push(` and bring a fuckmachine up from storage. It fits over ${him} as ${he} whimpers down there on `); + r.push(`and bring a fuckmachine up from storage. It fits over ${him} as ${he} whimpers down there on`); if (hasAllLimbs(slave)) { - r.push(`all fours`); + r.push(`all fours,`); } else { - r.push(`the floor`); + r.push(`the floor,`); } - r.push(`, and you adjust the pistons so that the tip of a dildo rests inside each of ${his} holes. You add lube when necessary, `); + r.push(`and you adjust the pistons so that the tip of a dildo rests inside each of ${his} holes. You add lube when necessary,`); if (V.assistant.personality === 0) { r.push(`but the rest of the day is monotonous machine rape for ${him}.`); } else { r.push(`but for ${him} the rest of the day is machine rape controlled by your sultry-voiced personal assistant program. Your assistant is an exquisite sexual torturer, ensuring that the experience is never damaging and always overwhelming. ${He} keeps up a steady stream of degrading verbal abuse while ${he} works.`); } - r.push(` Any resistance to you is <span class="mediumorchid">worn down</span> and replaced with a germ of <span class="gold">fear.</span> <span class="lime">The slave's holes are nicely stretched.</span>`); + r.push(`Any resistance to you is <span class="mediumorchid">worn down</span> and replaced with a germ of <span class="gold">fear.</span> <span class="lime">The slave's holes are nicely stretched.</span>`); slave.devotion -= 5; slave.trust -= 10; slave.counter.vaginal += 1; @@ -3694,14 +3646,14 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Use a machine on ${his} asshole`, result(slave) { const r = []; - r.push(`${He}'s not an anal virgin, so you'll have to go more extreme to provide an introductory level of sexual torture equivalent to defloration. You tie your new slave down on `); + r.push(`${He}'s not an anal virgin, so you'll have to go more extreme to provide an introductory level of sexual torture equivalent to defloration. You tie your new slave down on`); if (hasAnyArms(slave)) { r.push(`hand`); if (hasBothArms(slave)) { r.push(`s`); } if (hasAnyLegs(slave)) { - r.push(` and `); + r.push(`and`); } } if (hasAnyLegs(slave)) { @@ -3710,19 +3662,20 @@ App.UI.newSlaveIntro = function(slave) { r.push(`s`); } } - r.push(` and bring a fuckmachine up from storage. It fits over ${him} as ${he} whimpers down there on `); + r.push(`and bring a fuckmachine up from storage. It fits over ${him} as ${he} whimpers down there on`); if (hasAllLimbs(slave)) { - r.push(`all fours`); + r.push(`all fours,`); } else { - r.push(`the floor`); + r.push(`the floor,`); } - r.push(`, and you adjust the pistons so that the tip of a dildo rests inside ${his} asshole. You add lube when necessary, `); + r.push(`and you adjust the pistons so that the tip of a dildo rests inside ${his} asshole. You add lube when necessary,`); if (V.assistant.personality === 0) { r.push(`but the rest of the day is monotonous machine rape for ${him}.`); } else { r.push(`but for ${him} the rest of the day is machine rape controlled by your sultry-voiced personal assistant program. Your assistant is an exquisite sexual torturer, ensuring that the experience is never damaging and always overwhelming. ${He} keeps up a steady stream of degrading verbal abuse while ${he} works.`); } - r.push(` Any resistance to you is <span class="mediumorchid">worn down</span> and replaced with a germ of <span class="gold">fear.</span> <span class="lime">The slave's asshole is nicely stretched.</span> /*Written and coded by Boney M*/`); + r.push(`Any resistance to you is <span class="mediumorchid">worn down</span> and replaced with a germ of <span class="gold">fear.</span> <span class="lime">The slave's asshole is nicely stretched.</span>`); + // Written and coded by Boney M slave.devotion -= 5; slave.trust -= 10; slave.counter.anal += 1; @@ -3741,23 +3694,18 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Make ${him} an office ornament for the day`, result(slave) { const r = []; - r.push(`You cuff ${his} `); + r.push(`You cuff ${his}`); if (hasAnyArms(slave)) { - r.push(`wrist`); - if (hasBothArms(slave)) { - r.push(`s`); - } + r.push(wrists); if (hasAnyLegs(slave)) { - r.push(` and `); + r.push(`and`); } } if (hasAnyLegs(slave)) { - r.push(`ankle`); - if (hasBothLegs(slave)) { - r.push(`s`); - } + r.push(`${ankles}, bend`); + } else { + r.push(r.pop() + `, bend`); } - r.push(`, bend`); if (getLimbCount(slave) === 4) { r.push(`all four limbs`); } else if (getLimbCount(slave) === 3) { @@ -3767,23 +3715,19 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`${his} limb`); } - r.push(`behind ${him}, secure them together, and hoist ${him} up to the ceiling on a rope. ${He} hangs up there like a sex slave chandelier`); - if (slave.boobs >= 650) { - r.push(`, breasts swaying in a lovely way whenever ${he} struggles`); - } - r.push(`. Periodically you ${him} down to stretch ${his} aching `); + r.push(`behind ${him}, secure them together, and hoist ${him} up to the ceiling on a rope. ${He} hangs up there like a sex slave chandelier${(slave.boobs >= 650) ? `, breasts swaying in a lovely way whenever ${he} struggles` : ``}. Periodically you ${him} down to stretch ${his} aching`); if ((!hasAnyArms(slave) && !hasBothLegs(slave)) || (!hasBothArms(slave) && !hasAnyLegs(slave))) { - r.push(`limb`); + r.push(`limb,`); } else { - r.push(`limbs`); + r.push(`limbs,`); } - r.push(`, but whenever you put your decoration back up you add some clips with little bells on them: first the nose, then the nipples, and finally the `); + r.push(`but whenever you put your decoration back up you add some clips with little bells on them: first the nose, then the nipples, and finally the`); if (slave.dick !== 0) { - r.push(`dickhead`); + r.push(`dickhead.`); } else { - r.push(`pussylips`); + r.push(`pussylips.`); } - r.push(`. By the end of the day your work is accompanied by the sweet sounds of ringing bells and <span class="gold">agonized pleas</span> for mercy in ${his} `); + r.push(`By the end of the day your work is accompanied by the sweet sounds of ringing bells and <span class="gold">agonized pleas</span> for mercy in ${his}`); if (slave.voice === 3) { r.push(`high, girlish`); } else if (slave.voice === 2) { @@ -3791,7 +3735,7 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`deep`); } - r.push(` voice. ${He} will remember <span class="mediumorchid">what you can do to ${him}.</span>`); + r.push(`voice. ${He} will remember <span class="mediumorchid">what you can do to ${him}.</span>`); slave.devotion -= 5; slave.trust -= 10; return r.join(" "); @@ -3805,12 +3749,7 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Fill ${him} with cum`, result(slave) { const r = []; - r.push(`You securely restrain your new slave`); - if (V.dairyRestraintsSetting > 1) { - r.push(` in a milking stall`); - } - r.push(`. A quick finger check of ${his} holes allows you to choose wisely from a selection of hollow phalluses, which push into your helpless new slave's`); - r.push(`mouth,`); + r.push(`You securely restrain your new slave${(V.dairyRestraintsSetting > 1)?`in a milking stall`:``}. A quick finger check of ${his} holes allows you to choose wisely from a selection of hollow phalluses, which push into your helpless new slave's mouth,`); slave.counter.oral += 1; V.oralTotal += 1; if (slave.vagina > 0) { @@ -3841,7 +3780,7 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`${His} eyes swell`); } - r.push(` with shock, but ${he} does not flinch or make a sound. When ${he} seems full enough, you shut off the valve, deciding to leave ${him} plugged for now. ${He} waddles off <span class="hotpink">without apparent resentment</span> of this treatment.`); + r.push(`with shock, but ${he} does not flinch or make a sound. When ${he} seems full enough, you shut off the valve, deciding to leave ${him} plugged for now. ${He} waddles off <span class="hotpink">without apparent resentment</span> of this treatment.`); slave.devotion += 4; } } else { @@ -3852,7 +3791,7 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`${His} eyes swell`); } - r.push(` with profound horror at the realization of what is happening, and begin to leak tears as ${he} realizes that having ${his} body swell with semen is getting ${him} horny. <span class="green">${He}'s a cum fetishist!</span>`); + r.push(`with profound horror at the realization of what is happening, and begin to leak tears as ${he} realizes that having ${his} body swell with semen is getting ${him} horny. <span class="green">${He}'s a cum fetishist!</span>`); slave.fetishKnown = 1; } else { r.push(`${He} groans with guilty pleasure, feeling ${his} muscles ache and ${his} torso swell. ${He} does not orgasm from ${his} "meal," but feels much more pleasure than ${he}'s willing to admit.`); @@ -3888,13 +3827,13 @@ App.UI.newSlaveIntro = function(slave) { slave.counter.anal += 1; V.analTotal += 1; } else { - r.push(`pick it up and facefuck ${himself}. <span class="mediumorchid">Reluctantly,</span> ${he} reaches down shakily, seats ${himself}, and slowly swallows the uncomfortably big phallus. ${He} has to start over several times as ${his} gag reflex kicks in, but ${he} finally manages to hilt it. Harder, you command. Eyes rolling fearfully, ${he} withdraws it a few `); + r.push(`pick it up and facefuck ${himself}. <span class="mediumorchid">Reluctantly,</span> ${he} reaches down shakily, seats ${himself}, and slowly swallows the uncomfortably big phallus. ${He} has to start over several times as ${his} gag reflex kicks in, but ${he} finally manages to hilt it. Harder, you command. Eyes rolling fearfully, ${he} withdraws it a few`); if (V.showInches === 2) { r.push(`inches`); } else { r.push(`centimeters`); } - r.push(` and shoves it down ${his} throat again. Harder, you repeat, giving ${him} another shock. <span class="gold">${He} begins to weep and gag,</span> but obeys, sawing the big fake cock in and out, really molesting ${himself}.`); + r.push(`and shoves it down ${his} throat again. Harder, you repeat, giving ${him} another shock. <span class="gold">${He} begins to weep and gag,</span> but obeys, sawing the big fake cock in and out, really molesting ${himself}.`); slave.counter.oral += 1; V.oralTotal += 1; } @@ -3912,13 +3851,14 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Threaten ${him} with the Industrial Dairy`, result(slave) { const r = []; - r.push(`You tell ${him} that it's in ${his} interests to be a good ${girl}. ${He} does not react immediately, perhaps wondering if you think such a trite statement will have a real impact, but then you `); + const {hisU} = getNonlocalPronouns(V.seeDicks).appendSuffix('U'); + r.push(`You tell ${him} that it's in ${his} interests to be a good ${girl}. ${He} does not react immediately, perhaps wondering if you think such a trite statement will have a real impact, but then you`); if (canSee(slave)) { r.push(`point at`); } else { r.push(`direct ${him} towards`); } - r.push(` a wallscreen behind ${him}. ${He} turns, and beholds a live feed from the Industrial Dairy.`); + r.push(`a wallscreen behind ${him}. ${He} turns, and beholds a live feed from the Industrial Dairy.`); if (canSee(slave)) { r.push(`${He} gazes spellbound at the interleaved row of bodies intertwined with machines in embraces far more intimate than any lover could hope to match. The gently heaving masses of breastflesh hold ${his} fascinated and horrified attention until one of the machines fortuitously chooses this moment to cycle its occupant's anal hydration regimen.`); } else if (canHear(slave)) { @@ -3926,7 +3866,7 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`Such a broadcast would normally be pointless for a senseless slave like ${slave.slaveName}, but you've taken precautions to accommodate such slaves. The wallscreen is connected to the heating, air conditioning, and sprinkler systems in order to accurately replicate the aura of an industrial slave dairy, so ${he} is fully immersed in the scene when one of the machines fortuitously chooses this moment to cycle its occupant's anal hydration regimen.`); } - r.push(`It withdraws its horse-sized phallus from the slave's anus, leaving _hisU gape pulsing gently as it awaits the resumption of the endless assrape. ${slave.slaveName} lets out a huge sob and turns to you, <span class="gold">fear suffusing ${him}</span> as ${he} promises to <span class="hotpink">be a good ${girl}.</span>`); + r.push(`It withdraws its horse-sized phallus from the slave's anus, leaving ${hisU} gape pulsing gently as it awaits the resumption of the endless assrape. ${slave.slaveName} lets out a huge sob and turns to you, <span class="gold">fear suffusing ${him}</span> as ${he} promises to <span class="hotpink">be a good ${girl}.</span>`); slave.devotion += 10; slave.trust -= 10; return r.join(" "); @@ -3949,19 +3889,19 @@ App.UI.newSlaveIntro = function(slave) { V.analTotal += 10; assignJob(slave, "dairy"); - r.push(`You order `); + r.push(`You order`); if (V.HeadGirlID === 0) { r.push(`another slave`); } else { r.push(S.HeadGirl.slaveName); } - r.push(` to get ${slave.slaveName} set up in ${V.dairyName}. The new slave does not know what V.dairyName is, not really, and ${he} doesn't know what being set up there means, either. If ${he} knew that you are able to send ${him} there so blithely only because it is equipped with a special preparatory raper that will seize ${him}, `); + r.push(`to get ${slave.slaveName} set up in ${V.dairyName}. The new slave does not know what V.dairyName is, not really, and ${he} doesn't know what being set up there means, either. If ${he} knew that you are able to send ${him} there so blithely only because it is equipped with a special preparatory raper that will seize ${him},`); if (slave.vagina > -1) { - r.push(`mercilessly fuck ${his} pussy and ass until both are gaped`); + r.push(`mercilessly fuck ${his} pussy and ass until both are gaped,`); } else { - r.push(`ream ${his} anus until it's cavernously gaped`); + r.push(`ream ${his} anus until it's cavernously gaped,`); } - r.push(`, and then consign ${him} to constant fucking by gargantuan machine phalli, ${he} might resist. But ${he} doesn't, so ${he} does not.`); + r.push(`and then consign ${him} to constant fucking by gargantuan machine phalli, ${he} might resist. But ${he} doesn't, so ${he} does not.`); return r.join(" "); }, @@ -3984,39 +3924,35 @@ App.UI.newSlaveIntro = function(slave) { V.analTotal += 10; assignJob(slave, "dairy"); - r.push(`Making use of `); + r.push(`Making use of`); if (slave.trust < -20 || slave.devotion > 20) { - r.push(`${his} obedience`); + r.push(`${his} obedience,`); } else { - r.push(`the compliance systems`); + r.push(`the compliance systems,`); } - r.push(`, you restrain ${him} on one of the chairs in your office in an approximation of the position ${he}'ll occupy in ${V.dairyName}. Then you put a mask on ${him}, like the ones the machines there feature, and turn it on, watching the slave squirm against ${his} restraints under the sudden bombardment of garish hardcore porn. Finally, you add a dildo gag, both to mimic the dildo that will feed ${him}, and to keep your office reasonably quiet. Then, for the rest of the day, you use ${his} vulnerable `); + r.push(`you restrain ${him} on one of the chairs in your office in an approximation of the position ${he}'ll occupy in ${V.dairyName}. Then you put a mask on ${him}, like the ones the machines there feature, and turn it on, watching the slave squirm against ${his} restraints under the sudden bombardment of garish hardcore porn. Finally, you add a dildo gag, both to mimic the dildo that will feed ${him}, and to keep your office reasonably quiet. Then, for the rest of the day, you use ${his} vulnerable`); if (slave.vagina > -1) { r.push(`holes`); } else { r.push(`asshole`); } - r.push(` as an outlet for your sexual energy. You are not gentle; in fact, the point of the whole exercise is to gape ${him}. By the evening ${he}'s been fucked so hard that ${he}'s stopped jerking against the chair when you pound `); + r.push(`as an outlet for your sexual energy. You are not gentle; in fact, the point of the whole exercise is to gape ${him}. By the evening ${he}'s been fucked so hard that ${he}'s stopped jerking against the chair when you pound`); if (V.PC.dick !== 0) { r.push(`your huge cock`); } else { r.push(`a huge strap-on`); } - r.push(` in and out of ${him}, so you're obliged to get creative, sliding fingers in alongside `); + r.push(`in and out of ${him}, so you're obliged to get creative, sliding fingers in alongside`); if (V.PC.dick !== 0) { r.push(`yourself`); } else { r.push(`it`); } - r.push(` to really blow ${him} out. Once that gets too easy, you start adding dildos for double `); + r.push(`to really blow ${him} out. Once that gets too easy, you start adding dildos for double`); if (slave.vagina > -1) { - r.push(`and triple `); + r.push(`and triple`); } - r.push(`penetration. By nighttime ${he}'s properly prepared to take ${V.dairyName}'s giant phalli, and you're bored, so you consign ${him} to ${his} fate. ${He} might have some opinion on how ${he}'s spent ${his} day, but it's unlikely ${he}'ll remember it by tomorrow, what with the forearm-sized dildos sliding in and out of ${his} throat`); - if (slave.vagina > -1) { - r.push(`, cunt,`); - } - r.push(` and asshole.`); + r.push(`penetration. By nighttime ${he}'s properly prepared to take ${V.dairyName}'s giant phalli, and you're bored, so you consign ${him} to ${his} fate. ${He} might have some opinion on how ${he}'s spent ${his} day, but it's unlikely ${he}'ll remember it by tomorrow, what with the forearm-sized dildos sliding in and out of ${his} throat${(slave.vagina > -1) ? `, cunt,`: ``} and asshole.`); return r.join(" "); }, @@ -4033,19 +3969,19 @@ App.UI.newSlaveIntro = function(slave) { result(slave) { const el = new DocumentFragment(); let r = []; - r.push(`You securely restrain your new slave; for both ${his} own safety and so ${he} can't object to ${his} meal. You reassure ${him} `); + r.push(`You securely restrain your new slave; for both ${his} own safety and so ${he} can't object to ${his} meal. You reassure ${him}`); if (hasAnyEyes(slave)) { - r.push(` and order ${him} to close ${his} eyes `); + r.push(`and order ${him} to close ${his} eyes`); } - r.push(` and open wide for a treat. `); + r.push(`and open wide for a treat.`); if (canSee(slave)) { - r.push(`Since ${his} eyes are contentedly closed`); + r.push(`Since ${his} eyes are contentedly closed,`); } else { - r.push(`Blind as ${he} is`); + r.push(`Blind as ${he} is,`); } - r.push(`, ${he} doesn't see you reach for one of the phallus-tipped feeding tubes located throughout your penthouse. Before ${he} knows what's happening, you've forced the cocktube firmly into ${his} gaping maw and anchored it to ${his} head, causing ${his} entire body to tense up `); + r.push(`${he} doesn't see you reach for one of the phallus-tipped feeding tubes located throughout your penthouse. Before ${he} knows what's happening, you've forced the cocktube firmly into ${his} gaping maw and anchored it to ${his} head, causing ${his} entire body to tense up`); if (slave.devotion <= 20) { - r.push(`in panic `); + r.push(`in panic`); } r.push(`once more.`); @@ -4068,13 +4004,13 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`${His} eyes swell`); } - r.push(` with horror, but ${he} does not flinch or make a sound. ${His} belly also swells, from a few months of apparent pregnancy, to 'spent too much time at the buffet', till it finally stops wobbling, grows taut and forces ${his} belly button into an outie. Satisfied, you shut off the valve, deciding to leave ${him} to consider ${his} cum filled middle. Time passes. ${His} `); + r.push(`with horror, but ${he} does not flinch or make a sound. ${His} belly also swells, from a few months of apparent pregnancy, to 'spent too much time at the buffet', till it finally stops wobbling, grows taut and forces ${his} belly button into an outie. Satisfied, you shut off the valve, deciding to leave ${him} to consider ${his} cum filled middle. Time passes. ${His}`); if (canSee(slave)) { - r.push(`eyes are glazed over`); + r.push(`eyes are glazed over,`); } else { - r.push(`blind face is distant`); + r.push(`blind face is distant,`); } - r.push(`, but ${he} tolerates you slowly stroking ${his} stomach <span class="hotpink">without apparent resentment.</span> You'll make sure to keep ${him} like this for the time being.`); + r.push(`but ${he} tolerates you slowly stroking ${his} stomach <span class="hotpink">without apparent resentment.</span> You'll make sure to keep ${him} like this for the time being.`); slave.devotion += 4; } } else { @@ -4085,7 +4021,7 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`${His} eyes swell`); } - r.push(` with profound horror at the realization of what is filling ${him} with a constant irresistible pressure, and ${he} begins to leak tears as ${he} realizes that ${his} rapidly swelling body is getting ${him} horny. <span class="green">${He}'s a cum fetishist!</span>`); + r.push(`with profound horror at the realization of what is filling ${him} with a constant irresistible pressure, and ${he} begins to leak tears as ${he} realizes that ${his} rapidly swelling body is getting ${him} horny. <span class="green">${He}'s a cum fetishist!</span>`); slave.fetishKnown = 1; } else { r.push(`${His} belly steadily swells from a few months of apparent pregnancy, to "spent too much time at the buffet", till it finally stops wobbling, grows taut and forces ${his} belly button into an outie. Your cow groans not only with the weight and quickly mounting pressure, but with guilt as well. ${He} does not orgasm from ${his} gluttonous "meal," but feels much more pleasure than ${he}'s willing to admit.`); @@ -4093,13 +4029,13 @@ App.UI.newSlaveIntro = function(slave) { r.push(`Time passes, marked only by the slowing growth of ${his} waistline and the gurgling deep within ${him}. However, ${he} <span class="hotpink">submits</span> to an uncomfortable groping of ${his} fluid distended stomach, which is pleasingly taut from ${his} massive cum meal. You decide to make it abundantly clear that if a single drop of cum leaves ${his} gullet, ${he}'s getting the hose again, impressing on ${him} still more that ${his} fate is out of ${his} control.`); slave.devotion += 4; } else { - r.push(`${He} gasps in horror, and starts to struggle frantically against ${his} bonds, `); + r.push(`${He} gasps in horror, and starts to struggle frantically against ${his} bonds,`); if (slave.voice !== 0) { r.push(`struggling to scream in panic.`); } else { r.push(`${his} whole body begging to scream.`); } - r.push(` However, as the fluid reaches ${him}, ${he} seems to despair and resigns ${himself} to ${his} fate. As ${his} belly swells, you find yourself comparing ${him} first to a binge eater, then some of the chubbier citizens you've seen, a large pregnancy, and finally a water balloon ready to burst. You stop the flow, and rest a hand on ${his} heaving stomach. ${His} <span class="gold">terrified</span> breathing and distant expression are clearly due to the pain, not lust, but it's also now quite clear to ${him} who is in charge here. You have little intent on letting ${his} stomach empty and will be setting aside enough cum to keep ${him} bloated into submission.`); + r.push(`However, as the fluid reaches ${him}, ${he} seems to despair and resigns ${himself} to ${his} fate. As ${his} belly swells, you find yourself comparing ${him} first to a binge eater, then some of the chubbier citizens you've seen, a large pregnancy, and finally a water balloon ready to burst. You stop the flow, and rest a hand on ${his} heaving stomach. ${His} <span class="gold">terrified</span> breathing and distant expression are clearly due to the pain, not lust, but it's also now quite clear to ${him} who is in charge here. You have little intent on letting ${his} stomach empty and will be setting aside enough cum to keep ${him} bloated into submission.`); slave.trust -= 4; } } @@ -4113,25 +4049,26 @@ App.UI.newSlaveIntro = function(slave) { }); } + lineBreak(); if (((V.milkPipeline > 88 && V.milkPipeline !== 0) || V.arcologies[0].FSPastoralistLaw === 1) && slave.preg < 1 && slave.inflation === 0 && slave.bellyImplant <= 0) { choice({ linkName: `Give ${him} all the milk ${he} can drink`, result(slave) { const el = new DocumentFragment(); let r = []; - r.push(`You securely restrain your new slave; for both ${his} own safety and so ${he} can't object to ${his} meal. You reassure ${him} `); + r.push(`You securely restrain your new slave; for both ${his} own safety and so ${he} can't object to ${his} meal. You reassure ${him}`); if (hasAnyEyes(slave)) { - r.push(` and order ${him} to close ${his} eyes `); + r.push(`and order ${him} to close ${his} eyes`); } - r.push(` and open wide for a treat. `); + r.push(`and open wide for a treat.`); if (canSee(slave)) { - r.push(`Since ${his} eyes are contentedly closed`); + r.push(`Since ${his} eyes are contentedly closed,`); } else { - r.push(`Blind as ${he} is`); + r.push(`Blind as ${he} is,`); } - r.push(`, ${he} doesn't see you reach for one of the phallus-tipped feeding tubes located throughout your penthouse. Before ${he} knows what's happening, you've forced the cocktube firmly into ${his} gaping maw and anchored it to ${his} head, causing ${his} entire body to tense up `); + r.push(`${he} doesn't see you reach for one of the phallus-tipped feeding tubes located throughout your penthouse. Before ${he} knows what's happening, you've forced the cocktube firmly into ${his} gaping maw and anchored it to ${his} head, causing ${his} entire body to tense up`); if (slave.devotion <= 20) { - r.push(`in panic `); + r.push(`in panic`); } r.push(`once more.`); App.UI.DOM.appendNewElement("p", el, r.join(" ")); @@ -4144,22 +4081,22 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`${His} eyes swell`); } - r.push(` with horror, but ${he} does not flinch or make a sound. ${His} belly also swells, from a few months of apparent pregnancy, to "spent too much time at the buffet", till it finally stops wobbling, grows taut and forces ${his} belly button into an outie. Satisfied, you shut off the valve, deciding to leave ${him} to consider ${his} milk filled middle. Time passes. ${His}`); + r.push(`with horror, but ${he} does not flinch or make a sound. ${His} belly also swells, from a few months of apparent pregnancy, to "spent too much time at the buffet", till it finally stops wobbling, grows taut and forces ${his} belly button into an outie. Satisfied, you shut off the valve, deciding to leave ${him} to consider ${his} milk filled middle. Time passes. ${His}`); if (canSee(slave)) { - r.push(` eyes are glazed over`); + r.push(`eyes are glazed over,`); } else { - r.push(` blind face is distant`); + r.push(`blind face is distant,`); } - r.push(`, but ${he} tolerates you slowly stroking ${his} stomach <span class="hotpink">without apparent resentment.</span> You'll make sure to keep ${him} like this for the time being.`); + r.push(`but ${he} tolerates you slowly stroking ${his} stomach <span class="hotpink">without apparent resentment.</span> You'll make sure to keep ${him} like this for the time being.`); slave.devotion += 5; } else { - r.push(`${He} gasps in horror, and starts to struggle frantically against ${his} bonds, `); + r.push(`${He} gasps in horror, and starts to struggle frantically against ${his} bonds,`); if (slave.voice !== 0) { r.push(`struggling to scream in panic.`); } else { r.push(`${his} whole body begging to scream.`); } - r.push(` However, as the fluid reaches ${him}, ${he} seems to despair and resigns ${himself} to ${his} fate. As ${his} belly swells, you find yourself comparing ${him} first to a binge eater, then some of the chubbier citizens you've seen, a large pregnancy, and finally a water balloon ready to burst. You stop the flow, and rest a hand on ${his} heaving stomach. ${His} <span class="gold">terrified</span> breathing and distant expression are clearly due to the pain, not lust, but it's also now quite clear to ${him} who is in charge here. You have little intent on letting ${his} stomach empty and will be setting aside enough milk to keep ${him} bloated into submission.`); + r.push(`However, as the fluid reaches ${him}, ${he} seems to despair and resigns ${himself} to ${his} fate. As ${his} belly swells, you find yourself comparing ${him} first to a binge eater, then some of the chubbier citizens you've seen, a large pregnancy, and finally a water balloon ready to burst. You stop the flow, and rest a hand on ${his} heaving stomach. ${His} <span class="gold">terrified</span> breathing and distant expression are clearly due to the pain, not lust, but it's also now quite clear to ${him} who is in charge here. You have little intent on letting ${his} stomach empty and will be setting aside enough milk to keep ${him} bloated into submission.`); slave.trust -= 3; } slave.inflation = 3; @@ -4180,13 +4117,14 @@ App.UI.newSlaveIntro = function(slave) { linkName: `Threaten ${him} with the Arcade`, result(slave) { const r = []; - r.push(`You tell ${him} that it's in ${his} best interests to be a good ${girl}. ${He} does not react immediately, perhaps wondering if you think such a trite statement will have a real impact, but then you `); + const {girlU, himU} = getNonlocalPronouns(V.seeDicks).appendSuffix('U'); + r.push(`You tell ${him} that it's in ${his} best interests to be a good ${girl}. ${He} does not react immediately, perhaps wondering if you think such a trite statement will have a real impact, but then you`); if (canSee(slave)) { r.push(`point at`); } else { r.push(`direct ${him} towards`); } - r.push(` a wallscreen behind ${him}. ${He} turns, and beholds a live feed from ${V.arcadeName}.`); + r.push(`a wallscreen behind ${him}. ${He} turns, and beholds a live feed from ${V.arcadeName}.`); if (canSee(slave)) { r.push(`${He} gazes at the row of butts sticking out of the wall at dick height, not quite realizing what ${he}'s seeing. Then ${he} notices that there are citizens pumping away in front of two of the butts, and ${he} understands.`); } else if (canHear(slave)) { @@ -4194,27 +4132,27 @@ App.UI.newSlaveIntro = function(slave) { } else { r.push(`Such a broadcast would normally be pointless for a senseless slave like ${slave.slaveName}, but you've taken precautions to accommodate such slaves. The wallscreen is connected to the heating, air conditioning, and sprinkler systems in order to accurately replicate the feeling of standing in front of a row of restrained public sex slaves, so the meaning of the scene in front of ${him} is not lost.`); } - r.push(`As ${he} `); + r.push(`As ${he}`); if (canSee(slave)) { - r.push(`watches`); + r.push(`watches,`); } else if (canHear(slave)) { - r.push(`listens`); + r.push(`listens,`); } else { - r.push(`stands there`); + r.push(`stands there,`); } - r.push(`, terrified, first one citizen and then the other finishes and steps away. The first arcade inmate's `); + r.push(`terrified, first one citizen and then the other finishes and steps away. The first arcade inmate's`); if (V.seeDicks !== 100) { r.push(`pussy`); } else { r.push(`butt`); } - r.push(` is left looking sore until ${V.arcadeName}'s systems cover _himU for a quick cleaning, and the second inmate's asshole `); + r.push(`is left looking sore until ${V.arcadeName}'s systems cover ${himU} for a quick cleaning, and the second inmate's asshole`); if (V.seeDicks !== 0) { - r.push(`has obviously seen severe use, since the poor _girlU doesn't have a pussy to spread the load`); + r.push(`has obviously seen severe use, since the poor ${girlU} doesn't have a pussy to spread the load.`); } else { - r.push(`is loose enough that the machines have to clean up the cum it drools onto the floor`); + r.push(`is loose enough that the machines have to clean up the cum it drools onto the floor.`); } - r.push(`. ${slave.slaveName} lets out a huge sob and turns to you, <span class="gold">fear suffusing ${him}</span> as ${he} promises to <span class="hotpink">be a good ${girl}.</span>`); + r.push(`${slave.slaveName} lets out a huge sob and turns to you, <span class="gold">fear suffusing ${him}</span> as ${he} promises to <span class="hotpink">be a good ${girl}.</span>`); slave.devotion += 10; slave.trust -= 10; return r.join(" "); @@ -4229,25 +4167,21 @@ App.UI.newSlaveIntro = function(slave) { const r = []; slave.assignment = "be confined in the arcade"; slave.choosesOwnAssignment = 0; - r.push(`You order `); + r.push(`You order`); if (V.HeadGirlID === 0) { r.push(`another slave`); } else { r.push(S.HeadGirl.slaveName); } - r.push(` to get ${slave.slaveName} set up in ${V.arcadeName}. The new slave does not know what V.arcadeName is, not really, and ${he} doesn't know what being set up there means, either. ${He}'ll be confined inside a small space, not too different from the indignities ${he}'s suffered already. It's only when the restraints lock into place that ${he}'ll understand ${his} doom. ${His} mouth will be forced open and presented at one wall of V.arcadeName, and ${his} ass will protrude from its other side, ${his} holes available for public relief at both ends. ${He}'ll probably refuse to believe the truth, until the first cockhead enters ${his} mouth`); - if (slave.vagina > -1) { - r.push(`, parts ${his} pussylips,`); - } - r.push(` or presses against ${his} poor anus.`); + r.push(`to get ${slave.slaveName} set up in ${V.arcadeName}. The new slave does not know what V.arcadeName is, not really, and ${he} doesn't know what being set up there means, either. ${He}'ll be confined inside a small space, not too different from the indignities ${he}'s suffered already. It's only when the restraints lock into place that ${he}'ll understand ${his} doom. ${His} mouth will be forced open and presented at one wall of V.arcadeName, and ${his} ass will protrude from its other side, ${his} holes available for public relief at both ends. ${He}'ll probably refuse to believe the truth, until the first cockhead enters ${his} mouth${(slave.vagina > -1) ? `, parts ${his} pussylips,`: ``} or presses against ${his} poor anus.`); if (V.arcade <= App.Entity.facilities.arcade.employeesIDs().size) { - r.push(`Mere `); + r.push(`Mere`); if (V.showInches === 2) { r.push(`yards`); } else { r.push(`meters`); } - r.push(` away, preparations to convert the least appealing Arcade slave into a Fuckdoll begin. As ${slave.slaveName} is broken in by ${his} first customers, ${he}'s blissfully unaware that ${he}'s ${V.arcade} new slaves away from the same fate.`); + r.push(`away, preparations to convert the least appealing Arcade slave into a Fuckdoll begin. As ${slave.slaveName} is broken in by ${his} first customers, ${he}'s blissfully unaware that ${he}'s ${V.arcade} new slaves away from the same fate.`); } return r.join(" "); -- GitLab