diff --git a/src/endWeek/saServant.js b/src/endWeek/saServant.js index f160bd7092da128f112f2cfd31a46a05aa7cfd82..5b13a5642fc18f95b36025845633b90a9c556885 100644 --- a/src/endWeek/saServant.js +++ b/src/endWeek/saServant.js @@ -1,24 +1,16 @@ -/** - * @param {App.Entity.SlaveState} slave - * @returns {string} Description of week-end as servant - */ -window.saServant = function saServant(slave) { - "use strict"; +window.saServant = /** @param {App.Entity.SlaveState} slave */ function saServant(slave) { const V = State.variables; - let t = ``; - /* eslint-disable */ - let pronouns = getPronouns(slave); - let he = pronouns.pronoun; - let him = pronouns.object; - let his = pronouns.possessive; - let hers = pronouns.possessivePronoun; - let himself = pronouns.objectReflexive; - let boy = pronouns.noun; - let He = capFirstChar(he); - let His = capFirstChar(his); - /* eslint-enable */ + const pronouns = getPronouns(slave); + const he = pronouns.pronoun; + const him = pronouns.object; + const his = pronouns.possessive; + const hers = pronouns.possessivePronoun; + const himself = pronouns.objectReflexive; + const boy = pronouns.noun; + const He = capFirstChar(he); + const His = capFirstChar(his); - t += `works as a servant. ${He} performs the lowest jobs in your penthouse, cleaning up after your other slaves, bathing them, helping them dress, and giving them sexual relief.`; + let t = `works as a servant. ${He} performs the lowest jobs in your penthouse, cleaning up after your other slaves, bathing them, helping them dress, and giving them sexual relief.`; if (V.servantsQuarters > 0) { if ((V.universalRulesFacilityWork === 1 && slave.assignment === "be a servant" && V.servantsQuartersSpots > 0) || (slave.assignment === "work as a servant")) { diff --git a/src/js/descriptionWidgets.js b/src/js/descriptionWidgets.js index 8e72dfa15c555bbc542287cdafb998c66d694804..9d2b99df523e050bca92d334dbb8dffdabc18ddb 100644 --- a/src/js/descriptionWidgets.js +++ b/src/js/descriptionWidgets.js @@ -1,649 +1,45 @@ /** * @param {App.Entity.SlaveState} slave - * @returns {string} The slave's age and health - */ -App.Desc.ageAndHealth = function (slave) { - "use strict"; - const V = State.variables; - let r = ``; - let woman; - /* eslint-disable */ - let pronouns = getPronouns(slave); - let he = pronouns.pronoun; - let him = pronouns.object; - let his = pronouns.possessive; - let hers = pronouns.possessivePronoun; - let himself = pronouns.objectReflexive; - let boy = pronouns.noun; - let He = capFirstChar(he); - let His = capFirstChar(his); - /* eslint-enable */ - let age; - - boy === "girl" ? (woman = "woman") : (woman = "man"); - - if (!slave.fuckdoll) { - if (slave.health < -90) { - r += `${He} is nearly unresponsive. ${He}'s obviously <span class=red>dangerously sick,</span>`; - } else if (slave.health < -50) { - r += `${He} seems <span class=red>very sick,</span>`; - } else if (slave.health < -20) { - r += `${He} seems <span class=red>ill,</span>`; - } else if (slave.health <= 20) { - r += `${He} seems reasonably <span class=yellow>healthy,</span>`; - } else if (slave.health <= 50) { - r += `${He} shines with <span class=green>good health,</span>`; - } else { - r += `${He} almost gleams; ${he}'s in the absolute <span class=green>best of health,</span>`; - } - age = slave.actualAge + 1; - r += ` and ${he}'s `; - if (slave.birthWeek >= 52 && V.seeAge) { - r += `going to turn ${age} this week, `; - } else if (slave.actualAge < 3) { - r += `an infant, only `; - if (V.showAgeDetail) { - if (!slave.actualAge) { - r += `${0 + $week - slave.weekAcquired} weeks`; - } else if (slave.actualAge) { - r += `${num(slave.actualAge)} year`; - } else { - r += `${num(slave.actualAge)} years`; - } - r += ` old`; - if (V.seeAge !== 0) { - r += `; `; - if (slave.birthWeek === 51) { - r += `${his} birthday is next week`; - } else { - r += `${his} birthday is in ${52 - slave.birthWeek} weeks.`; - } - } - } else { - if (!slave.actualAge) { - r += `${0 + $week - slave.weekAcquired} weeks`; - } else if (slave.actualAge) { - r += `${num(slave.actualAge)} year`; - } else { - r += `${num(slave.actualAge)} years`; - } - r += ` old.`; - } - } else if (slave.actualAge < 5) { - r += `a toddler, `; - if (V.showAgeDetail) { - r += `${num(slave.actualAge)} years old`; - if (V.seeAge !== 0) { - r += `; `; - if (slave.birthWeek === 51) { - r += `${his} birthday is next week`; - } else { - r += `${his} birthday is in ${52 - slave.birthWeek} weeks.`; - } - } - } else { - r += `only ${num(slave.actualAge)} years old.`; - } - } else if (slave.actualAge < 13) { - r += `a little $girl, `; - if (V.showAgeDetail) { - r += `${num(slave.actualAge)} years old`; - if (V.seeAge !== 0) { - r += `; `; - if (slave.birthWeek === 51) { - r += `${his} birthday is next week`; - } else { - r += `${his} birthday is in ${52 - slave.birthWeek} weeks.`; - } - } - } else { - r += `only ${num(slave.actualAge)} years old.`; - } - } else if (slave.actualAge < 16) { - r += `almost a child, `; - if (V.showAgeDetail) { - r += `${num(slave.actualAge)} years old`; - if (V.seeAge !== 0) { - r += `; `; - if (slave.birthWeek === 51) { - r += `${his} birthday is next week`; - } else { - r += `${his} birthday is in ${52 - slave.birthWeek} weeks.`; - } - } - } else { - r += `less than 17 years old.`; - } - } else if (slave.actualAge < 17) { - r += `young and fresh at ${num(slave.actualAge)}`; - if (V.showAgeDetail && V.seeAge !== 0) { - if (slave.birthWeek === 51) { - r += `${his} birthday is next week`; - } else { - r += `${his} birthday is in ${52 - slave.birthWeek} weeks.`; - } - } - } else if (slave.actualAge < 18) { - r += `young, fresh, and nearly 18`; - if (V.showAgeDetail && V.seeAge !== 0) { - if (slave.birthWeek === 51) { - r += `${his} birthday is next week`; - if (V.seeAge) { - r += `and people are already beginning to eye ${him}`; - } - } - } - r += `. `; - } else if (slave.actualAge < 19) { - if (!slave.birthWeek && V.seeAge) { - r += `just turned ${num( - slave.actualAge - )} this week, which many citizens find especially appealing.`; - } else if (slave.birthWeek < 4 && V.seeAge) { - r += `only turned ${num(slave.actualAge)} this month.`; - } else { - r += `${num(slave.actualAge)} years old`; - if (V.showAgeDetail && V.seeAge !== 0) { - if (slave.birthWeek === 51) { - r += `${his} birthday is next week`; - } else { - r += `${his} birthday is in ${52 - slave.birthWeek} weeks.`; - } - } - } - } else if (slave.actualAge < 20) { - r += `in ${his} final year as a teenager at age 19 `; - if (V.showAgeDetail && V.seeAge !== 0) { - if (slave.birthWeek === 51) { - r += `${his} birthday is next week`; - } else { - r += `${his} birthday is in ${52 - slave.birthWeek} weeks.`; - } - } - } else if (slave.actualAge < 26) { - r += `a young ${woman}, `; - if (V.showAgeDetail) { - r += `${num(slave.actualAge)} years old`; - if (V.seeAge !== 0) { - r += `; `; - if (slave.birthWeek === 51) { - r += `${his} birthday is next week`; - } else { - r += `${his} birthday is in ${52 - slave.birthWeek} weeks.`; - } - } - } else { - r += `in ${his} early twenties.`; - } - } else if (slave.actualAge < 30) { - r += `a younger ${woman}, `; - if (V.showAgeDetail) { - r += `${num(slave.actualAge)} years old`; - if (V.seeAge !== 0) { - r += `; `; - if (slave.birthWeek === 51) { - r += `${his} birthday is next week`; - } else { - r += `${his} birthday is in ${52 - slave.birthWeek} weeks.`; - } - } - } else { - r += `in ${his} late twenties.`; - } - } else if (slave.actualAge < 36) { - if (V.showAgeDetail) { - r += `${num(slave.actualAge)} years old`; - if (V.seeAge !== 0) { - r += `; `; - if (slave.birthWeek === 51) { - r += `${his} birthday is next week`; - } else { - r += `${his} birthday is in ${52 - slave.birthWeek} weeks.`; - } - } - } else { - r += `in ${his} early thirties.`; - } - } else if (slave.actualAge < 40) { - r += `middle-aged for a slave, `; - if (V.showAgeDetail) { - r += `at ${num(slave.actualAge)} years old`; - if (V.seeAge !== 0) { - r += `; `; - if (slave.birthWeek === 51) { - r += `${his} birthday is next week`; - } else { - r += `${his} birthday is in ${52 - slave.birthWeek} weeks.`; - } - } - } else { - r += `in ${his} late thirties.`; - } - } else { - r += `old for a slave, `; - if (V.showAgeDetail) { - r += `at ${num(slave.actualAge)} years old`; - if (V.seeAge !== 0) { - r += `; `; - if (slave.birthWeek === 51) { - r += `${his} birthday is next week`; - } else { - r += `${his} birthday is in ${52 - slave.birthWeek} weeks.`; - } - } - } else { - if (slave.actualAge < 50) { - r += `in ${his} forties.`; - } else if (slave.actualAge < 60) { - r += `in ${his} fifties. `; - } else if (slave.actualAge < 70) { - r += `extremely old for a slave, in ${his} 60s.`; - } else if (slave.actualAge < 80) { - r += `extremely old for a slave, in ${his} ${num(70)}s.`; - } else if (slave.actualAge < 90) { - r += `extremely old for a slave, in ${his} r += ${num(80)}s.`; - } else if (slave.actualAge < 100) { - r += `extremely old for a slave, in ${his} r += ${num(90)}s.`; - } else if (slave.actualAge >= 100) { - r += `ancient by any measure, over a century old.`; - } - } - if (slave.actualAge !== slave.physicalAge) { - r += `However, ${he} has the body of a ${num( - slave.physicalAge - )}-year-old;`; - if (slave.physicalAge < 18 && slave.actualAge >= 18) { - r += `a stark contrast given ${his} maturity.`; - } else if (slave.physicalAge < 18 && slave.actualAge < 18) { - r += `a noticeable difference thanks to ${his} immaturity.`; - } else if ( - slave.physicalAge <= slave.actualAge - 20 || - slave.physicalAge >= slave.actualAge + 20 - ) { - r += `a shocking difference from ${his} actual age.`; - } else if ( - slave.physicalAge <= slave.actualAge - 10 || - slave.physicalAge >= slave.actualAge + 10 - ) { - r += `a noticeable difference from ${his} actual age.`; - } else if ( - slave.physicalAge <= slave.actualAge - 5 || - slave.physicalAge >= slave.actualAge + 5 - ) { - r += `a barely noticeable difference from ${his} actual age.`; - } else { - r += `though it is hard to tell the difference from ${his} actual age.`; - } - } - /* - ** This section replaces the age/therapy texts, giving more details for the NCS condition. - */ - if (slave.geneMods.NCS) { - if (slave.vagina < 0 && slave.dick <= 0) { - bodyNCS = "childlike"; - } else if (slave.vagina < 0 && slave.dick > 0) { - bodyNCS = "shota"; - } else if (slave.vagina > 0 && slave.dick <= 0) { - bodyNCS = "loli"; - } else { - bodyNCS = "loli/shota"; - } - r += `${He} appears to be slave.visualAge years old`; - if (slave.visualAge <= 8) { - r += `and ${he} has induced <span class=orange>NCS</span> and will always have a ${bodyNCS} body, no matter how long ${he} lives.`; - } else if (slave.visualAge < 13) { - r += `and ${he} has induced <span class=orange>NCS</span> and will have a ${bodyNCS} body for the rest of ${his} life.`; - } else if (slave.visualAge < 20) { - r += `and ${he} still has a teen body for now, but with ${his} <span class=orange>NCS,</span> ${he} will eventually regress in age to look like a little $girl again.`; - } else { - r += `and ${he} still has the body of an adult, but ${his} <span class=orange>NCS</span> has`; - if (slave.physicalAge - slave.visualAge <= 5) { - r += `not really begun to youthen ${his} appearance yet.`; - } else if (slave.physicalAge - slave.visualAge <= 10) { - r += `clearly been at work on ${him}, making ${him} appear younger.`; - } else if (slave.physicalAge - slave.visualAge <= 20) { - r += `obviously helped take more than a decade off of ${his} age.`; - } else { - r += `intensely youthened ${him}.`; - } - } - } else if (slave.physicalAge !== slave.visualAge) { - if ( - slave.visualAge <= slave.physicalAge - 20 || - slave.visualAge >= slave.physicalAge + 20 - ) { - r += `${He} has undergone radical age therapy that makes ${him} look`; - } else if ( - slave.visualAge <= slave.physicalAge - 10 || - slave.visualAge >= slave.physicalAge + 10 - ) { - r += `${He} has undergone drastic age therapy that makes ${him} look`; - } else if ( - slave.visualAge <= slave.physicalAge - 5 || - slave.visualAge >= slave.physicalAge + 5 - ) { - r += `${He} has undergone noticeable age therapy that makes ${him} look`; - } else { - r += `For various reasons, ${he} looks`; - } - if (slave.physicalAge > slave.visualAge) { - if (slave.physicalAge < slave.visualAge + 5) { - r += `a slightly younger ${slave.visualAge}.`; - } else if (slave.visualAge < 20) { - r += `like ${he}'s barely an adult.`; - } else if (slave.visualAge < 25) { - r += `barely into ${his} early twenties.`; - } else if (slave.visualAge < 30) { - r += `like ${he}'s still in ${his} twenties.`; - } else if (slave.visualAge < 35) { - r += `barely thirty.`; - } else if (slave.visualAge < 40) { - r += `still in ${his} thirties.`; - } else if (slave.visualAge < 45) { - r += `barely forty.`; - } else if (slave.visualAge < 50) { - r += `still in ${his} forties.`; - } else if (slave.visualAge < 55) { - r += `barely fifty.`; - } else if (slave.visualAge < 60) { - r += `still in ${his} fifties.`; - } else if (slave.visualAge < 65) { - r += `barely sixty.`; - } else if (slave.visualAge < 70) { - r += `still in ${his} sixties.`; - } else if (slave.visualAge < 75) { - r += `barely seventy.`; - } else if (slave.visualAge < 80) { - r += `still in ${his} seventies.`; - } else { - r += `a younger ${slave.visualAge}.`; - } - } else { - if (slave.physicalAge > slave.visualAge - 5) { - r += `a slightly older ${slave.visualAge}.`; - } else if (slave.visualAge < 20) { - r += `like a fresh adult.`; - } else if (slave.visualAge < 25) { - r += `just over twenty.`; - } else if (slave.visualAge < 30) { - r += `nearly thirty.`; - } else if (slave.visualAge < 35) { - r += `just over thirty.`; - } else if (slave.visualAge < 40) { - r += `nearly forty.`; - } else if (slave.visualAge < 45) { - r += `just over forty.`; - } else if (slave.visualAge < 50) { - r += `nearly fifty.`; - } else if (slave.visualAge < 55) { - r += `just over fifty.`; - } else if (slave.visualAge < 60) { - r += `nearly sixty.`; - } else if (slave.visualAge < 65) { - r += `just over sixty.`; - } else if (slave.visualAge < 70) { - r += `nearly seventy.`; - } else if (slave.visualAge < 75) { - r += `just over seventy.`; - } else if (slave.visualAge < 80) { - r += `nearly eighty.`; - } else { - r += `an ancient ${slave.visualAge}.`; - } - } - } - } - } else { - r += `The Fuckdoll gives no external indication of ${his} health or age, but upon query ${his} systems reports that ${he} is `; - if (slave.health < -90) { - r += `<span class=red>dangerously sick</span>`; - } else if (slave.health < -50) { - r += `<span class=red>very sick</span>`; - } else if (slave.health < -20) { - r += `<span class=red>ill</span>`; - } else if (slave.health <= 20) { - r += `<span class=yellow>healthy</span>`; - } else if (slave.health <= 50) { - r += `<span class=green>very health</span>`; - } else { - r += `<span class=green>extremely healthy</span>`; - } - r += ` and ${slave.physicalAge} years old.`; - } - return r; -}; - -/** - * @param {App.Entity.SlaveState} slave - * @returns {string} The slave's amputation, if present - */ -App.Desc.amputee = function (slave) { - "use strict"; - let r = ``; - /* eslint-disable */ - let pronouns = getPronouns(slave); - let he = pronouns.pronoun; - let him = pronouns.object; - let his = pronouns.possessive; - let hers = pronouns.possessivePronoun; - let himself = pronouns.objectReflexive; - let boy = pronouns.noun; - let He = capFirstChar(he); - let His = capFirstChar(his); - /* eslint-enable */ - - if (slave.amp) { - if (slave.amp === -1) { - r += `${ - slave.slaveName - } is a <span class=pink>quadruple amputee,</span> but ${he}'s equipped with a set of modern prosthetic limbs that allow ${him} a fairly normal life.`; - } else if (slave.amp === -2) { - r += `${ - slave.slaveName - } is a <span class=pink>quadruple amputee,</span> but ${he}'s equipped with P-Limbs customized for sex. ${His} fingertips vibrate, ${his} finger joints are masked to prevent pinching, and ${his} hands can dispense lube.`; - } else if (slave.amp === -3) { - r += `${ - slave.slaveName - } is a <span class=pink>quadruple amputee,</span> but ${he}'s equipped with P-Limbs customized to look natural. They are covered in a material that closely mimics living ${ - slave.skin - } skin, and their servos are noise dampened.`; - } else if (slave.amp === -4) { - r += `${ - slave.slaveName - } is a <span class=pink>quadruple amputee,</span> but ${he}'s equipped with P-Limbs customized for combat. They're hardened, strengthened, and more responsive, and they conceal taser knuckles and extensible forearm blades.`; - } else if (slave.amp === -5) { - r += `${ - slave.slaveName - } is a <span class=pink>quadruple amputee,</span> but ${he}'s equipped with advanced cybernetic P-Limbs. The ultimate fusion of combat effectiveness and instruments of pleasure, they're capable of performing multiple functions. They can enhance sex through ${his} vibrating hands and increase ${his} combat skills with hardened, yet flexible artificial muscles. They have an advanced artificial skin that can send electrical impulses that can cause stimulation or extreme pain.`; - } else if (slave.amp > 0) { - r += `${ - slave.slaveName - } is a <span class=pink>quadruple amputee,</span> making ${him} a convenient torso-only sex toy.`; - } else { - r += `The most obvious thing about ${ - slave.slaveName - } is that ${he} is a <span class=pink>quadruple amputee:</span> ${he} has neither arms nor legs.`; - } - } - return r; -}; - -/** - * @param {App.Entity.SlaveState} slave - * @returns {string} The slave's brand - */ -App.Desc.brand = function (slave) { - "use strict"; - let r = ``; - let bellyAccessory; - /* eslint-disable */ - let pronouns = getPronouns(slave); - let he = pronouns.pronoun; - let him = pronouns.object; - let his = pronouns.possessive; - let hers = pronouns.possessivePronoun; - let himself = pronouns.objectReflexive; - let boy = pronouns.noun; - let He = capFirstChar(he); - let His = capFirstChar(his); - /* eslint-enable */ - - if (slave.brand) { - bellyAccessory = slave.bellyAccessory; - if ( - setup.fakeBellies.includes(bellyAccessory) && - slave.brandLocation === "belly" - ) { - r += `${His} fake belly has ${slave.brand} branded on it.`; - } else { - r += `${He} has ${slave.brand} branded into the flesh of ${his} ${ - slave.brandLocation - }.`; - } - } - return r; -}; - -/** - * @param {App.Entity.SlaveState} slave - * @return {string} The slave's eyes - */ -App.Desc.eyes = function (slave) { - "use strict"; - const V = State.variables; - let r = ``; - /* eslint-disable */ - let pronouns = getPronouns(slave); - let he = pronouns.pronoun; - let him = pronouns.object; - let his = pronouns.possessive; - let hers = pronouns.possessivePronoun; - let himself = pronouns.objectReflexive; - let boy = pronouns.noun; - let He = capFirstChar(he); - let His = capFirstChar(his); - /* eslint-enable */ - - if (slave.eyes === -2) { - const HC = hasVisibleHeterochromia(slave) ? 1 : 0; - if (slave.eyeColor !== "empty") { - r += `${His} eyes are dull`; - if (V.saleDescription && V.PC.medicine >= 50 || V.PC.slaving >= 50) { - r += `, unfocused`; - if (HC) { - r += `, heterochromatic,`; - } - r += ` and clearly nonfunctional`; - } else { - if (HC) { - r += `, heterochromatic,`; - } - r += ` and unfocused`; - } - r += `, `; - } else { - r += `${His} gaze is empty. `; - } - if (slave.intelligence > 95) { - r += `but ${his} facial expressions reveal ${he} is incisive, quick, cunning; `; - if (slave.intelligence + slave.intelligenceImplant >= 130) { - r += `with ${his} education, ${he} is so far <span class=deepskyblue>beyond brilliant</span> that ${he} is nearly peerless. `; - } else if (slave.intelligenceImplant >= 15) { - r += `${he} is both <span class=deepskyblue>brilliant</span> and `; - if (slave.intelligenceImplant >= 30) { - r += `well `; - } - r += `educated. `; - } else { - r += `${he} is so <span class=deepskyblue>brilliant</span> that ${his} `; - if (slave.intelligenceImplant > 0) { - r += `meager`; - } else { - r += `lack of`; - } - r += ` education is unimportant. `; - } - } else if (slave.intelligence > 50) { - if (slave.intelligence + slave.intelligenceImplant > 95) { - r += `but ${his} facial expressions reveal ${he} is incisive, quick, cunning; with ${his} education, ${he} can be considered <span class=deepskyblue>brilliant.</span>`; - } else if (slave.intelligenceImplant >= 15) { - r += `but ${his} face is alive with intelligence; ${he} is both <span class=deepskyblue>highly intelligent</span> and `; - if (slave.intelligenceImplant >= 30) { - r += `well `; - } - r += `educated. `; - } else { - r += `but ${his} face is alive with intelligence; ${he} is so <span class=deepskyblue>highly intelligent</span> that ${his} `; - if (slave.intelligenceImplant > 0) { - r += `meager`; - } else { - r += `lack of`; - } - r += ` education is unimportant. `; - } - } else if (slave.intelligence > 15) { - if (slave.intelligence + slave.intelligenceImplant > 50) { - r += `but ${his} face is alive with intelligence; with ${his} education, ${he} can be considered <span class=deepskyblue>highly intelligent.</span>`; - } else if (slave.intelligenceImplant >= 15) { - r += `but ${his} facial expressions reveal ${his} cleverness; ${he} is of <span class=deepskyblue>above average intelligence</span> and`; - if (slave.intelligenceImplant >= 30) { - r += `well `; - } - r += `educated. `; - } else { - r += `but ${his} facial expressions reveal ${his} cleverness; ${he} is of <span class=deepskyblue>above average intelligence</span> despite being undereducated. `; - } - } else if (slave.intelligence >= -15) { - if (slave.intelligence + slave.intelligenceImplant > 15) { - r += `but ${his} facial expressions reveal ${his} cleverness; with ${his} education, ${he} can be considered of <span class=deepskyblue>above average intelligence.</span>`; - } else if (slave.intelligenceImplant >= 15) { - r += `but ${his} facial expressions reveal ${his} alertness; ${he} is of average intelligence due to being `; - if (slave.intelligenceImplant >= 30) { - r += `well `; - } - r += `educated. `; - } else { - r += `but ${his} facial expressions reveal ${his} alertness; ${he} is of average intelligence and is undereducated. `; - } - } else if (slave.intelligence >= -50) { - if (slave.intelligence + slave.intelligenceImplant >= -15) { - r += `but ${his} facial expressions reveal ${his} alertness; with ${his} education, ${he} can be considered of average intelligence. `; - } else if (slave.intelligenceImplant >= 15) { - r += `but ${his} facial expressions reveal ${he} is rather dim; ${he} is of <span class=orangered>below average intelligence</span> despite having been `; - if (slave.intelligenceImplant >= 30) { - r += `thoroughly `; + * @return {string} The slave's eyes + */ +App.Desc.eyes = function (slave) { + "use strict"; + const V = State.variables; + let r = ``; + /* eslint-disable */ + let pronouns = getPronouns(slave); + let he = pronouns.pronoun; + let him = pronouns.object; + let his = pronouns.possessive; + let hers = pronouns.possessivePronoun; + let himself = pronouns.objectReflexive; + let boy = pronouns.noun; + let He = capFirstChar(he); + let His = capFirstChar(his); + /* eslint-enable */ + + if (slave.eyes === -2) { + const HC = hasVisibleHeterochromia(slave) ? 1 : 0; + if (slave.eyeColor !== "empty") { + r += `${His} eyes are dull`; + if (V.saleDescription && V.PC.medicine >= 50 || V.PC.slaving >= 50) { + r += `, unfocused`; + if (HC) { + r += `, heterochromatic,`; } - r += `educated. `; + r += ` and clearly nonfunctional`; } else { - r += `but ${his} facial expressions reveal ${he} is rather dim; ${he} is of <span class=orangered>below average intelligence</span> and is poorly educated. `; - } - } else if (slave.intelligence >= -95) { - if (slave.intelligence + slave.intelligenceImplant >= -50) { - r += `but ${his} facial expressions reveal ${he} is rather dim; even with ${his} education, ${he} can only be considered of <span class=orangered>below average intelligence.</span>`; - } else if (slave.intelligenceImplant >= 15) { - r += `but ${his} facial expressions reveal ${he} is as dull as ${his} eyes; ${he} is <span class=orangered>quite stupid</span> despite having `; - if (slave.intelligenceImplant >= 30) { - r += `an advanced`; - } else { - r += `some`; + if (HC) { + r += `, heterochromatic,`; } - r += ` education. `; - } else { - r += `but ${his} facial expressions reveal ${he} is as dull as ${his} eyes; ${he} is <span class=orangered>quite stupid</span> and ignorant. `; + r += ` and unfocused`; } + r += `, `; } else { - r += `though you doubt it would be much different if ${he} could see; `; - if (slave.intelligence + slave.intelligenceImplant >= -95) { - r += `even with ${his} education, ${he} is still <span class=orangered>really stupid.</span>`; - } else if (slave.intelligenceImplant > 0) { - r += `${he} is <span class=orangered>a moron,</span> yet somehow still remembers the basics of an education. `; - } else { - r += `${he} is <span class=orangered>a moron,</span> and ignorant to boot. `; - } + r += `${His} gaze is empty. `; } - } else { if (slave.intelligence > 95) { - r += `${His} ${slave.eyeColor}-eyed gaze is incisive, quick, cunning; `; + r += `but ${his} facial expressions reveal ${he} is incisive, quick, cunning; `; if (slave.intelligence + slave.intelligenceImplant >= 130) { r += `with ${his} education, ${he} is so far <span class=deepskyblue>beyond brilliant</span> that ${he} is nearly peerless. `; } else if (slave.intelligenceImplant >= 15) { @@ -663,15 +59,15 @@ App.Desc.eyes = function (slave) { } } else if (slave.intelligence > 50) { if (slave.intelligence + slave.intelligenceImplant > 95) { - r += `${His} ${slave.eyeColor}-eyed gaze is incisive, quick, cunning; with ${his} education, ${he} can be considered <span class=deepskyblue>brilliant.</span>`; + r += `but ${his} facial expressions reveal ${he} is incisive, quick, cunning; with ${his} education, ${he} can be considered <span class=deepskyblue>brilliant.</span>`; } else if (slave.intelligenceImplant >= 15) { - r += `${His} ${slave.eyeColor} eyes are alive with intelligence; ${he} is both <span class=deepskyblue>highly intelligent</span> and `; + r += `but ${his} face is alive with intelligence; ${he} is both <span class=deepskyblue>highly intelligent</span> and `; if (slave.intelligenceImplant >= 30) { r += `well `; } r += `educated. `; } else { - r += `${His} ${slave.eyeColor} eyes are alive with intelligence; ${he} is so <span class=deepskyblue>highly intelligent</span> that ${his} `; + r += `but ${his} face is alive with intelligence; ${he} is so <span class=deepskyblue>highly intelligent</span> that ${his} `; if (slave.intelligenceImplant > 0) { r += `meager`; } else { @@ -680,693 +76,196 @@ App.Desc.eyes = function (slave) { r += ` education is unimportant. `; } } else if (slave.intelligence > 15) { - r += `${His} ${slave.eyeColor} eyes are `; if (slave.intelligence + slave.intelligenceImplant > 50) { - r += `alive with intelligence; with ${his} education, ${he} can be considered <span class=deepskyblue>highly intelligent.</span>`; + r += `but ${his} face is alive with intelligence; with ${his} education, ${he} can be considered <span class=deepskyblue>highly intelligent.</span>`; } else if (slave.intelligenceImplant >= 15) { - r += `clever; ${he} is of <span class=deepskyblue>above average intelligence</span> and `; + r += `but ${his} facial expressions reveal ${his} cleverness; ${he} is of <span class=deepskyblue>above average intelligence</span> and`; if (slave.intelligenceImplant >= 30) { r += `well `; } r += `educated. `; } else { - r += `clever; ${he} is of <span class=deepskyblue>above average intelligence</span> despite being undereducated. `; + r += `but ${his} facial expressions reveal ${his} cleverness; ${he} is of <span class=deepskyblue>above average intelligence</span> despite being undereducated. `; } } else if (slave.intelligence >= -15) { - r += `${His} ${slave.eyeColor} eyes are `; if (slave.intelligence + slave.intelligenceImplant > 15) { - r += `clever; with ${his} education, ${he} can be considered of <span class=deepskyblue>above average intelligence.</span>`; + r += `but ${his} facial expressions reveal ${his} cleverness; with ${his} education, ${he} can be considered of <span class=deepskyblue>above average intelligence.</span>`; } else if (slave.intelligenceImplant >= 15) { - r += `alert; ${he} is of average intelligence due to being`; + r += `but ${his} facial expressions reveal ${his} alertness; ${he} is of average intelligence due to being `; if (slave.intelligenceImplant >= 30) { r += `well `; } r += `educated. `; } else { - r += `alert; ${he} is of average intelligence and is undereducated. `; + r += `but ${his} facial expressions reveal ${his} alertness; ${he} is of average intelligence and is undereducated. `; } } else if (slave.intelligence >= -50) { - r += `${His} ${slave.eyeColor} eyes are `; if (slave.intelligence + slave.intelligenceImplant >= -15) { - r += `alert; with ${his} education, ${he} can be considered of average intelligence. `; + r += `but ${his} facial expressions reveal ${his} alertness; with ${his} education, ${he} can be considered of average intelligence. `; } else if (slave.intelligenceImplant >= 15) { - r += `dim; ${he} is of <span class=orangered>below average intelligence</span> despite having been `; + r += `but ${his} facial expressions reveal ${he} is rather dim; ${he} is of <span class=orangered>below average intelligence</span> despite having been `; if (slave.intelligenceImplant >= 30) { r += `thoroughly `; } r += `educated. `; } else { - r += `dim; ${he} is of <span class=orangered>below average intelligence</span> and is poorly educated. `; + r += `but ${his} facial expressions reveal ${he} is rather dim; ${he} is of <span class=orangered>below average intelligence</span> and is poorly educated. `; } } else if (slave.intelligence >= -95) { - r += `${His} ${slave.eyeColor} eyes are `; if (slave.intelligence + slave.intelligenceImplant >= -50) { - r += `dim; even with ${his} education, ${he} can only be considered of <span class=orangered>below average intelligence.</span>`; + r += `but ${his} facial expressions reveal ${he} is rather dim; even with ${his} education, ${he} can only be considered of <span class=orangered>below average intelligence.</span>`; } else if (slave.intelligenceImplant >= 15) { - r += `dull; ${he} is <span class=orangered>quite stupid</span> despite having `; + r += `but ${his} facial expressions reveal ${he} is as dull as ${his} eyes; ${he} is <span class=orangered>quite stupid</span> despite having `; if (slave.intelligenceImplant >= 30) { - r += `an advanced`; - } else { - r += `some`; - } - r += ` education. `; - } else { - r += `dull; ${he} is <span class=orangered>quite stupid</span> and ignorant. `; - } - } else { - r += `${His} ${slave.eyeColor}-eyed gaze betrays near-total insensibility; `; - if (slave.intelligence + slave.intelligenceImplant >= -95) { - r += `even with ${his} education, ${he} is still <span class=orangered>really stupid.</span>`; - } else if (slave.intelligenceImplant > 0) { - r += `${he} is <span class=orangered>a moron,</span> yet somehow still remembers the basics of an education. `; - } else { - r += `${he} is <span class=orangered>a moron,</span> and ignorant to boot. `; - } - } - } - return r; -} - -/** - * @param {App.Entity.SlaveState} slave - * @returns {string} The slave's eye color - */ -App.Desc.eyeColor = function (slave) { - "use strict"; - let r; - - if (hasVisibleHeterochromia(slave)) { - r = `heterochromatic ${slave.eyeColor} and ${ - slave.geneticQuirks.heterochromatia - }`; - } else { - r = `${slave.eyeColor}`; - } - return r; -}; - -/** - * @param {App.Entity.SlaveState} slave - * @returns {string} The slave's waist - */ -App.Desc.waist = function (slave) { - "use strict"; - const V = State.variables; - let r = ``; - let belly; - let woman; - /* eslint-disable */ - let pronouns = getPronouns(slave); - let he = pronouns.pronoun; - let him = pronouns.object; - let his = pronouns.possessive; - let hers = pronouns.possessivePronoun; - let himself = pronouns.objectReflexive; - let boy = pronouns.noun; - let He = capFirstChar(he); - let His = capFirstChar(his); - /* eslint-enable */ - - boy === "girl" ? (woman = "woman") : (woman = "man"); - if (slave.belly >= 1500) { - belly = bellyAdjective(slave); - } - - r += `${He} has `; - if (slave.waist > 95) { - r += `a badly <span class=red>masculine waist</span> that ruins ${his} figure`; - if (slave.weight > 30) { - r += ` and greatly exaggerates how fat ${he} is.`; - } else if (slave.weight < -30) { - r += ` despite how thin ${he} is.`; - } else { - r += `. `; - } - if (slave.belly >= 1500) { - if (slave.belly >= 750000) { - r += `${His} ${belly} belly grotesquely bulges around ${his} thick waist.`; - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is horribly distended by ${his} bursting womb in a last ditch effort to find more room for ${his} children, leaving ${his} original waistline barely visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } - } - } else if (slave.belly < 300000) { - r += `${His} ${belly} belly is hidden by ${his} thick waist.`; - } else if (slave.belly < 450000) { - r += `${His} ${belly} belly can be seen around ${his} thick waist.`; - } else if (slave.belly < 600000) { - r += `${His} ${belly} belly can clearly be seen around ${his} thick waist.`; - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is swollen wider than usual by ${his} crowded womb in its search for more room, leaving ${his} original waistline only visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } - } - } else if (slave.belly < 750000) { - r += `${His} ${belly} belly lewdly bulges around ${his} thick waist.`; - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is greatly distended by ${his} overfilled womb in its desperate search for more room, leaving ${his} original waistline only visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } - } - } - } - } else if (slave.waist > 40) { - r += `a broad, <span class=red>ugly waist</span> that makes ${him} look mannish`; - if (slave.weight > 30) { - r += ` and exaggerates how fat ${he} is.`; - } else if (slave.weight < -30) { - r += ` despite how thin ${he} is.`; - } else { - r += `. `; - } - if (slave.belly >= 1500) { - if (slave.belly >= 750000) { - r += `${His} ${belly} belly grotesquely bulges around ${his} chunky waist.`; - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is horribly distended by ${his} bursting womb in a last ditch effort to find more room for ${his} children, leaving ${his} original waistline barely visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } - } - } else if (slave.belly < 150000) { - r += `${His} ${belly} belly is hidden by ${his} chunky waist.`; - } else if (slave.belly < 450000) { - r += `${His} ${belly} belly can be seen around ${his} chunky waist.`; - } else if (slave.belly < 600000) { - r += `${His} ${belly} belly can clearly be seen around ${his} chunky waist.`; - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is swollen wider than usual by ${his} crowded womb in its search for more room, leaving ${his} original waistline only visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } - } - } else if (slave.belly < 750000) { - r += `${His} ${belly} belly lewdly bulges around ${his} chunky waist.`; - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is greatly distended by ${his} overfilled womb in its desperate search for more room, leaving ${his} original waistline only visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } - } - } - } - } else if (slave.waist > 10) { - r += `an <span class=red>unattractive waist</span> that conceals ${his} `; - if (slave.visualAge > 25) { - r += `girlish`; - } else { - r += `womanly`; - } - r += ` figure`; - if (slave.weight > 30) { - r += ` and accentuates how fat ${he} is.`; - } else if (slave.weight < -30) { - r += ` despite how thin ${he} is.`; - } else { - r += `. `; - } - if (slave.belly >= 1500) { - if (slave.belly >= 750000) { - r += `${His} ${belly} belly grotesquely bulges around ${his} waist.`; - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is horribly distended by ${his} bursting womb in a last ditch effort to find more room for ${his} children, leaving ${his} original waistline barely visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } - } - } else if (slave.belly < 10000) { - r += `From behind, ${his} figure hides ${his} ${belly} belly.`; - } else if (slave.belly < 200000) { - r += `From behind, ${his} figure barely hides ${his} ${belly} belly.`; - } else if (slave.belly < 300000) { - r += `${His} ${belly} belly can be seen around ${his} waist.`; - } else if (slave.belly < 450000) { - r += `${His} ${belly} belly can clearly be seen around ${his} waist.`; - } else if (slave.belly < 600000) { - r += `${His} ${belly} belly can clearly be seen around ${his} waist.`; - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is swollen wider than usual by ${his} crowded womb in its search for more room, leaving ${his} original waistline only visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } - } - } else if (slave.belly < 750000) { - r += `${His} ${belly} belly lewdly bulges around ${his} waist.`; - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is greatly distended by ${his} overfilled womb in its desperate search for more room, leaving ${his} original waistline only visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } - } - } - } - } else if (slave.waist > -10) { - r += `an average waist for a `; - if (slave.visualAge > 25) { - r += `${boy}`; - } else { - r += `${woman}`; - } - if (slave.weight > 30) { - r += `, though it looks broader since ${he}'s fat.`; - } else if (slave.weight < -30) { - r += `, though it looks narrower since ${he}'s thin.`; - } else { - r += `. `; - } - if (slave.belly >= 1500) { - if (slave.belly >= 750000) { - r += `${His} ${belly} belly grotesquely bulges around ${his} waist.`; - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is horribly distended by ${his} bursting womb in a last ditch effort to find more room for ${his} children, leaving ${his} original waistline barely visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } - } - } else if (slave.belly < 10000) { - r += `From behind, ${his} figure hides ${his} ${belly} belly.`; - } else if (slave.belly < 200000) { - r += `From behind, ${his} figure barely hides ${his} ${belly} belly.`; - } else if (slave.belly < 300000) { - r += `${His} ${belly} belly can be seen around ${his} waist.`; - } else if (slave.belly < 450000) { - r += `${His} ${belly} belly can clearly be seen around ${his} waist.`; - } else if (slave.belly < 600000) { - r += `${His} ${belly} belly can clearly be seen around ${his} waist.`; - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is swollen wider than usual by ${his} crowded womb in its search for more room, leaving ${his} original waistline only visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } - } - } else if (slave.belly < 750000) { - r += `${His} ${belly} belly lewdly bulges around ${his} waist.`; - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is greatly distended by ${his} overfilled womb in its desperate search for more room, leaving ${his} original waistline only visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } - } - } - } - } else if (slave.waist > -40) { - r += `a nice <span class=pink>feminine waist</span> that gives ${him} a `; - if (slave.visualAge > 25) { - r += `girlish`; - } else { - r += `womanly`; - } - r += ` figure`; - if (slave.weight > 30) { - r += ` despite ${his} extra weight.`; - } else if (slave.weight < -30) { - r += ` and accentuates how thin ${he} is.`; - } else { - r += `. `; - } - if (slave.belly >= 1500) { - if (slave.belly >= 750000) { - r += `${His} ${belly} belly grotesquely bulges around ${his} waist.`; - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is horribly distended by ${his} bursting womb in a last ditch effort to find more room for ${his} children, leaving ${his} original waistline barely visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } - } - } else if (slave.belly < 10000) { - r += `From behind, ${his} figure hides ${his} ${belly} belly.`; - } else if (slave.belly < 100000) { - r += `From behind, ${his} figure barely hides ${his} ${belly} belly.`; - } else if (slave.belly < 300000) { - r += `${His} ${belly} belly can be seen around ${his} waist.`; - } else if (slave.belly < 450000) { - r += `${His} ${belly} belly can clearly be seen around ${his} waist.`; - } else if (slave.belly < 600000) { - r += `${His} ${belly} belly can clearly be seen around ${his} waist.`; - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is swollen wider than usual by ${his} crowded womb in its search for more room, leaving ${his} original waistline only visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } - } - } else if (slave.belly < 750000) { - r += `${His} ${belly} belly lewdly bulges around ${his} waist.`; - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is greatly distended by ${his} overfilled womb in its desperate search for more room, leaving ${his} original waistline only visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } - } - } - } - } else if (slave.waist > -95) { - r += `a hot <span class=pink>wasp waist</span> that gives ${him} an hourglass figure`; - if (slave.weight > 30) { - r += `despite ${his} extra weight.`; - } else if (slave.weight < -30) { - r += `further accentuated by how thin ${he} is.`; - } else { - r += `. `; - } - if (slave.belly >= 1500) { - if (slave.belly >= 750000) { - r += `${His} ${belly} belly grotesquely bulges around ${his} narrow waist and continues `; - if (slave.belly >= 1000000) { - r += `quite the distance`; - } else { - r += `over half a `; - if (V.showInches === 2) { - r += `yard`; - } else { - r += `meter`; - } - r += ` farther to either side.`; - } - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is horribly distended by ${his} bursting womb in a last ditch effort to find more room for ${his} children, leaving ${his} original waistline barely visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } - } - } else if (slave.belly < 5000) { - r += `From behind, ${his} narrow figure hides ${his} ${belly} belly.`; - } else if (slave.belly < 80000) { - r += `From behind, ${his} narrow figure barely hides ${his} ${belly} belly.`; - } else if (slave.belly < 100000) { - r += `${His} ${belly} belly can be seen around ${his} narrow waist.`; - } else if (slave.belly < 450000) { - r += `${His} ${belly} belly lewdly extends past ${his} narrow waist.`; - } else if (slave.belly < 600000) { - r += `${His} ${belly} belly lewdly distends far to either side of ${his} narrow waist.`; - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is swollen wider than usual by ${his} crowded womb in its search for more room, leaving ${his} original waistline only visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } - } - } else if (slave.belly < 750000) { - r += `${His} ${belly} belly lewdly bulges to either side of ${his} narrow waist and continues for nearly half a `; - if (V.showInches === 2) { - r += `yard`; - } else { - r += `meter`; - } - r += `in both directions.`; - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is greatly distended by ${his} overfilled womb in its desperate search for more room, leaving ${his} original waistline barely visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } + r += `an advanced`; + } else { + r += `some`; } + r += ` education. `; + } else { + r += `but ${his} facial expressions reveal ${he} is as dull as ${his} eyes; ${he} is <span class=orangered>quite stupid</span> and ignorant. `; } - } - } else { - r += `an <span class=pink>absurdly narrow waist</span> that gives ${him} a cartoonishly hourglass figure`; - if (slave.weight > 30) { - r += `made even more ludicrous by ${his} extra weight.`; - } else if (slave.weight < -30) { - r += `made even more ludicrous by how thin ${he} is.`; } else { - r += `. `; + r += `though you doubt it would be much different if ${he} could see; `; + if (slave.intelligence + slave.intelligenceImplant >= -95) { + r += `even with ${his} education, ${he} is still <span class=orangered>really stupid.</span>`; + } else if (slave.intelligenceImplant > 0) { + r += `${he} is <span class=orangered>a moron,</span> yet somehow still remembers the basics of an education. `; + } else { + r += `${he} is <span class=orangered>a moron,</span> and ignorant to boot. `; + } } - if (slave.belly >= 1500) { - if (slave.belly >= 750000) { - r += `${His} ${belly} belly grotesquely bulges around ${his} narrow waist and continues `; - if (slave.belly >= 1000000) { - r += `quite the distance`; - } else { - r += `over half a `; - if (V.showInches === 2) { - r += `yard`; - } else { - r += `meter`; - } - r += ` farther to either side.`; + } else { + if (slave.intelligence > 95) { + r += `${His} ${slave.eyeColor}-eyed gaze is incisive, quick, cunning; `; + if (slave.intelligence + slave.intelligenceImplant >= 130) { + r += `with ${his} education, ${he} is so far <span class=deepskyblue>beyond brilliant</span> that ${he} is nearly peerless. `; + } else if (slave.intelligenceImplant >= 15) { + r += `${he} is both <span class=deepskyblue>brilliant</span> and `; + if (slave.intelligenceImplant >= 30) { + r += `well `; } - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is horribly distended by ${his} bursting womb in a last ditch effort to find more room for ${his} children, leaving ${his} original waistline barely visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } + r += `educated. `; + } else { + r += `${he} is so <span class=deepskyblue>brilliant</span> that ${his} `; + if (slave.intelligenceImplant > 0) { + r += `meager`; + } else { + r += `lack of`; } - } else if (slave.belly < 2000) { - r += `From behind, ${his} narrow figure hides ${his} ${belly} belly.`; - } else if (slave.belly < 5000) { - r += `From behind, ${his} narrow figure barely hides ${his} ${belly} belly.`; - } else if (slave.belly < 8000) { - r += `${His} ${belly} belly can be seen around ${his} narrow waist.`; - } else if (slave.belly < 15000) { - r += `${His} ${belly} belly lewdly extends past ${his} narrow waist.`; - } else if (slave.belly < 45000) { - r += `${His} ${belly} belly lewdly distends far to either side of ${his} narrow waist.`; - } else if (slave.belly < 600000) { - r += `${His} ${belly} belly lewdly distends far to either side of ${his} narrow waist.`; - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is swollen wider than usual by ${his} crowded womb in its search for more room, leaving ${his} original waistline only visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } + r += ` education is unimportant. `; + } + } else if (slave.intelligence > 50) { + if (slave.intelligence + slave.intelligenceImplant > 95) { + r += `${His} ${slave.eyeColor}-eyed gaze is incisive, quick, cunning; with ${his} education, ${he} can be considered <span class=deepskyblue>brilliant.</span>`; + } else if (slave.intelligenceImplant >= 15) { + r += `${His} ${slave.eyeColor} eyes are alive with intelligence; ${he} is both <span class=deepskyblue>highly intelligent</span> and `; + if (slave.intelligenceImplant >= 30) { + r += `well `; } - } else if (slave.belly < 750000) { - r += `${His} ${belly} belly lewdly bulges to either side of ${his} narrow waist and continues for nearly half a `; - if (V.showInches === 2) { - r += `yard`; + r += `educated. `; + } else { + r += `${His} ${slave.eyeColor} eyes are alive with intelligence; ${he} is so <span class=deepskyblue>highly intelligent</span> that ${his} `; + if (slave.intelligenceImplant > 0) { + r += `meager`; } else { - r += `meter`; + r += `lack of`; } - r += ` in both directions.`; - if (slave.preg > 3) { - if (slave.belly > slave.pregAdaptation * 1000) { - r += `${His} waist is greatly distended by ${his} overfilled womb in its desperate search for more room, leaving ${his} original waistline barely visible from behind.`; - } else { - r += `However, ${his} body is so adapted to pregnancy that ${his} womb rests forward enough to preserve the shape of ${his} waistline.`; - } + r += ` education is unimportant. `; + } + } else if (slave.intelligence > 15) { + r += `${His} ${slave.eyeColor} eyes are `; + if (slave.intelligence + slave.intelligenceImplant > 50) { + r += `alive with intelligence; with ${his} education, ${he} can be considered <span class=deepskyblue>highly intelligent.</span>`; + } else if (slave.intelligenceImplant >= 15) { + r += `clever; ${he} is of <span class=deepskyblue>above average intelligence</span> and `; + if (slave.intelligenceImplant >= 30) { + r += `well `; } + r += `educated. `; + } else { + r += `clever; ${he} is of <span class=deepskyblue>above average intelligence</span> despite being undereducated. `; } - } - } - return r; -}; - -/* OPEN PIERCINGS */ - -/** - * @param {App.Entity.SlaveState} slave - * @returns {string} The slave's anus piercing, if present - */ -App.Desc.anusPiercing = function (slave) { - "use strict"; - let r = ``; - /* eslint-disable */ - let pronouns = getPronouns(slave); - let he = pronouns.pronoun; - let him = pronouns.object; - let his = pronouns.possessive; - let hers = pronouns.possessivePronoun; - let himself = pronouns.objectReflexive; - let boy = pronouns.noun; - let He = capFirstChar(he); - let His = capFirstChar(his); - /* eslint-enable */ - - if (slave.vagina > -1) { - if (slave.anusPiercing === 1) { - r += `${He} has a simple piercing between ${his} pussy and ${his} asshole`; - if (slave.fuckdoll > 0) { - r += ` which helps keep the strip of material `; - if (slave.vagina > -1) { - r += `between ${his} holes`; - } else { - r += `below ${his} rear hole`; + } else if (slave.intelligence >= -15) { + r += `${His} ${slave.eyeColor} eyes are `; + if (slave.intelligence + slave.intelligenceImplant > 15) { + r += `clever; with ${his} education, ${he} can be considered of <span class=deepskyblue>above average intelligence.</span>`; + } else if (slave.intelligenceImplant >= 15) { + r += `alert; ${he} is of average intelligence due to being`; + if (slave.intelligenceImplant >= 30) { + r += `well `; } - r += ` in place`; + r += `educated. `; + } else { + r += `alert; ${he} is of average intelligence and is undereducated. `; } - r += `.`; - } else if (slave.anusPiercing === 2) { - r += `${He} has a big ring between ${his} pussy and ${his} asshole`; - if (slave.fuckdoll > 0) { - r += `, which helps keep the strip of material `; - if (slave.vagina > -1) { - r += `between ${his} holes`; - } else { - r += `below ${his} rear hole`; + } else if (slave.intelligence >= -50) { + r += `${His} ${slave.eyeColor} eyes are `; + if (slave.intelligence + slave.intelligenceImplant >= -15) { + r += `alert; with ${his} education, ${he} can be considered of average intelligence. `; + } else if (slave.intelligenceImplant >= 15) { + r += `dim; ${he} is of <span class=orangered>below average intelligence</span> despite having been `; + if (slave.intelligenceImplant >= 30) { + r += `thoroughly `; } - r += ` in place`; + r += `educated. `; + } else { + r += `dim; ${he} is of <span class=orangered>below average intelligence</span> and is poorly educated. `; } - r += ` and studs in all around ${his} anus.`; - } - } else { - if (slave.anusPiercing === 1) { - r += `${He} has a simple perianal piercing between the base of ${his} dick and ${his} girly butthole`; - if (slave.fuckdoll > 0) { - r += ` which helps keep the strip of material `; - if (slave.vagina > -1) { - r += `between ${his} holes`; + } else if (slave.intelligence >= -95) { + r += `${His} ${slave.eyeColor} eyes are `; + if (slave.intelligence + slave.intelligenceImplant >= -50) { + r += `dim; even with ${his} education, ${he} can only be considered of <span class=orangered>below average intelligence.</span>`; + } else if (slave.intelligenceImplant >= 15) { + r += `dull; ${he} is <span class=orangered>quite stupid</span> despite having `; + if (slave.intelligenceImplant >= 30) { + r += `an advanced`; } else { - r += `below ${his} rear hole`; + r += `some`; } - r += ` in place`; - } - r += `.`; - } else if (slave.anusPiercing === 2) { - r += `${He} has a big ring between the base of ${his} dick and ${his} girly butthole, which has studs all around it.`; - } - } - return r; -}; - -/** - * @param {App.Entity.SlaveState} slave - * @returns {string} The slave's clit piercing, if present - */ -App.Desc.clitPiercing = function (slave) { - "use strict"; - let r = ``; - /* eslint-disable */ - let pronouns = getPronouns(slave); - let he = pronouns.pronoun; - let him = pronouns.object; - let his = pronouns.possessive; - let hers = pronouns.possessivePronoun; - let himself = pronouns.objectReflexive; - let boy = pronouns.noun; - let He = capFirstChar(he); - let His = capFirstChar(his); - /* eslint-enable */ - - if (slave.clitPiercing === 1 && slave.vagina !== -1) { - r += `${He} has a simple clitoral stud.`; - } else if (slave.clitPiercing === 2 && slave.vagina !== -1) { - r += `${He} has a big ring in ${his} clit.`; - if (slave.clothes === "slutty jewelry") { - r += `Since ${he}'s wearing slutty bangles ${he} has a short length of light chain dangling from ${his} clit ring; it constantly stimulates ${his} pussylips.`; - } - } else if (slave.clitPiercing === 3 && slave.vagina !== -1 && !slave.dick) { - r += `${He} has a smart piercing in ${his} clit.`; - } else if (slave.clitPiercing === 1) { - r += `${He} has a simple dickhead stud.`; - } else if (slave.clitPiercing === 2) { - r += `${He} has a big ring in ${his} dickhead.`; - if (slave.clothes === "slutty jewelry") { - r += `Since ${he}'s wearing slutty bangles ${he} has a short length of light chain dangling from ${his} dickhead piercing; as ${he} moves it tugs lightly at ${his} cock.`; - } - } else if (slave.clitPiercing === 3) { - r += `${He} has a smart frenulum piercing.`; - } - if (slave.fuckdoll > 0) { - r += `It anchors the suit's material.<</if>>`; - } - return r; -}; - -/** - * @param {App.Entity.SlaveState} slave - * @returns {string} The slave's dick piercing, if present - */ -App.Desc.dickPiercing = function (slave) { - "use strict"; - let r = ``; - /* eslint-disable */ - let pronouns = getPronouns(slave); - let he = pronouns.pronoun; - let him = pronouns.object; - let his = pronouns.possessive; - let hers = pronouns.possessivePronoun; - let himself = pronouns.objectReflexive; - let boy = pronouns.noun; - let He = capFirstChar(he); - let His = capFirstChar(his); - /* eslint-enable */ - - if (slave.dick !== 0) { - if (slave.dickPiercing === 1) { - r += `${He} has a row of studs down ${his} shaft.`; - } else if (slave.dickPiercing === 2) { - r += `${He} has a row of heavy rings down ${his} shaft.`; - } - if (slave.scrotum !== 0) { - if (slave.dickPiercing === 1) { - r += `${He} has a couple of studs in ${his} ballsack.`; - } else if (slave.dickPiercing === 2) { - r += `${He} has a row of rings down the center of ${his} ballsack, all the way from the base of ${his} shaft to ${his} perineum.`; + r += ` education. `; + } else { + r += `dull; ${he} is <span class=orangered>quite stupid</span> and ignorant. `; } } else { - if (slave.dickPiercing === 1) { - r += `${He} has a couple of studs beneath the base of ${his} dick.`; - } else if (slave.dickPiercing === 2) { - r += `${He} has a row of rings all the way from the base of ${his} shaft to ${his} perineum.`; + r += `${His} ${slave.eyeColor}-eyed gaze betrays near-total insensibility; `; + if (slave.intelligence + slave.intelligenceImplant >= -95) { + r += `even with ${his} education, ${he} is still <span class=orangered>really stupid.</span>`; + } else if (slave.intelligenceImplant > 0) { + r += `${he} is <span class=orangered>a moron,</span> yet somehow still remembers the basics of an education. `; + } else { + r += `${he} is <span class=orangered>a moron,</span> and ignorant to boot. `; } } } - if (slave.fuckdoll > 0) { - if (slave.dickPiercing > 0) { - r += `Every one of them runs through the suit's material, securing it to the Fuckdoll's member.`; - } - } return r; -}; +} /** * @param {App.Entity.SlaveState} slave - * @returns {string} The slave's lip piercing, if present + * @returns {string} Slave's eye color */ -App.Desc.lipsPiercing = function (slave) { +App.Desc.eyeColor = function (slave) { "use strict"; - let r = ``; - /* eslint-disable */ - let pronouns = getPronouns(slave); - let he = pronouns.pronoun; - let him = pronouns.object; - let his = pronouns.possessive; - let hers = pronouns.possessivePronoun; - let himself = pronouns.objectReflexive; - let boy = pronouns.noun; - let He = capFirstChar(he); - let His = capFirstChar(his); - /* eslint-enable */ + let r; - if (slave.lipsPiercing === 1) { - r += `${He} has a simple lip piercing.`; - } else if (slave.lipsPiercing === 2) { - r += `${His} lips are heavily pierced.`; + if (hasVisibleHeterochromia(slave)) { + r = `heterochromatic ${slave.eyeColor} and ${slave.geneticQuirks.heterochromatia}`; + } else { + r = `${slave.eyeColor}`; } return r; -}; +} /** * @param {App.Entity.SlaveState} slave - * @returns {string} The slave's tongue piercing, if present - */ -/** - * @param {App.Entity.SlaveState} slave - * @returns {string} The slave's lip piercing, if present + * @returns {string} The slave's age and health */ -App.Desc.tonguePiercing = function (slave) { +App.Desc.ageAndHealth = function (slave) { "use strict"; + const V = State.variables; let r = ``; + let woman; /* eslint-disable */ let pronouns = getPronouns(slave); let he = pronouns.pronoun; @@ -1751,11 +650,12 @@ App.Desc.tonguePiercing = function (slave) { return r; } -/** - * @param {App.Entity.SlaveState} slave - * @returns {string} Slave's brand - */ -App.Desc.brand = function (slave) { +App.Desc.brand = + /** + * @param {App.Entity.SlaveState} slave + * @returns {string} Slave's brand + */ + function (slave) { "use strict"; let r = ``; let bellyAccessory; @@ -1782,50 +682,52 @@ App.Desc.brand = function (slave) { return r; } -/** - * @param {App.Entity.SlaveState} slave - * @returns {string} Description of slave's amputation, if present - */ -App.Desc.amputee = function (slave) { - "use strict"; - let r = ``; - /* eslint-disable */ - let pronouns = getPronouns(slave); - let he = pronouns.pronoun; - let him = pronouns.object; - let his = pronouns.possessive; - let hers = pronouns.possessivePronoun; - let himself = pronouns.objectReflexive; - let boy = pronouns.noun; - let He = capFirstChar(he); - let His = capFirstChar(his); - /* eslint-enable */ +App.Desc.amputee = + /** + * @param {App.Entity.SlaveState} slave + * @returns {string} Description of slave's amputation, if present + */ + function (slave) { + "use strict"; + let r = ``; + /* eslint-disable */ + let pronouns = getPronouns(slave); + let he = pronouns.pronoun; + let him = pronouns.object; + let his = pronouns.possessive; + let hers = pronouns.possessivePronoun; + let himself = pronouns.objectReflexive; + let boy = pronouns.noun; + let He = capFirstChar(he); + let His = capFirstChar(his); + /* eslint-enable */ - if (slave.amp) { - if (slave.amp === -1) { - r += `${slave.slaveName} is a <span class=pink>quadruple amputee,</span> but ${he}'s equipped with a set of modern prosthetic limbs that allow ${him} a fairly normal life. `; - } else if (slave.amp === -2) { - r += `${slave.slaveName} is a <span class=pink>quadruple amputee,</span> but ${he}'s equipped with P-Limbs customized for sex. ${His} fingertips vibrate, ${his} finger joints are masked to prevent pinching, and ${his} hands can dispense lube. `; - } else if (slave.amp === -3) { - r += `${slave.slaveName} is a <span class=pink>quadruple amputee,</span> but ${he}'s equipped with P-Limbs customized to look natural. They are covered in a material that closely mimics living ${slave.skin} skin, and their servos are noise dampened. `; - } else if (slave.amp === -4) { - r += `${slave.slaveName} is a <span class=pink>quadruple amputee,</span> but ${he}'s equipped with P-Limbs customized for combat. They're hardened, strengthened, and more responsive, and they conceal taser knuckles and extensible forearm blades. `; - } else if (slave.amp === -5) { - r += `${slave.slaveName} is a <span class=pink>quadruple amputee,</span> but ${he}'s equipped with advanced cybernetic P-Limbs. The ultimate fusion of combat effectiveness and instruments of pleasure, they're capable of performing multiple functions. They can enhance sex through ${his} vibrating hands and increase ${his} combat skills with hardened, yet flexible artificial muscles. They have an advanced artificial skin that can send electrical impulses that can cause stimulation or extreme pain. `; - } else if (slave.amp > 0) { - r += `${slave.slaveName} is a <span class=pink>quadruple amputee,</span> making ${him} a convenient torso-only sex toy. `; - } else { - r += `The most obvious thing about ${slave.slaveName} is that ${he} is a <span class=pink>quadruple amputee:</span> ${he} has neither arms nor legs. `; + if (slave.amp) { + if (slave.amp === -1) { + r += `${slave.slaveName} is a <span class=pink>quadruple amputee,</span> but ${he}'s equipped with a set of modern prosthetic limbs that allow ${him} a fairly normal life. `; + } else if (slave.amp === -2) { + r += `${slave.slaveName} is a <span class=pink>quadruple amputee,</span> but ${he}'s equipped with P-Limbs customized for sex. ${His} fingertips vibrate, ${his} finger joints are masked to prevent pinching, and ${his} hands can dispense lube. `; + } else if (slave.amp === -3) { + r += `${slave.slaveName} is a <span class=pink>quadruple amputee,</span> but ${he}'s equipped with P-Limbs customized to look natural. They are covered in a material that closely mimics living ${slave.skin} skin, and their servos are noise dampened. `; + } else if (slave.amp === -4) { + r += `${slave.slaveName} is a <span class=pink>quadruple amputee,</span> but ${he}'s equipped with P-Limbs customized for combat. They're hardened, strengthened, and more responsive, and they conceal taser knuckles and extensible forearm blades. `; + } else if (slave.amp === -5) { + r += `${slave.slaveName} is a <span class=pink>quadruple amputee,</span> but ${he}'s equipped with advanced cybernetic P-Limbs. The ultimate fusion of combat effectiveness and instruments of pleasure, they're capable of performing multiple functions. They can enhance sex through ${his} vibrating hands and increase ${his} combat skills with hardened, yet flexible artificial muscles. They have an advanced artificial skin that can send electrical impulses that can cause stimulation or extreme pain. `; + } else if (slave.amp > 0) { + r += `${slave.slaveName} is a <span class=pink>quadruple amputee,</span> making ${him} a convenient torso-only sex toy. `; + } else { + r += `The most obvious thing about ${slave.slaveName} is that ${he} is a <span class=pink>quadruple amputee:</span> ${he} has neither arms nor legs. `; + } } + return r; } - return r; -} -/** - * @param {App.Entity.SlaveState} slave - * @returns {string} Description of slave's waist - */ -App.Desc.waist = function (slave) { +App.Desc.waist = + /** + * @param {App.Entity.SlaveState} slave + * @returns {string} Description of slave's waist + */ + function (slave) { "use strict"; const V = State.variables; let r = ``; diff --git a/src/js/extendedFamilyModeJS.js b/src/js/extendedFamilyModeJS.js index 03089b10800d5d36fa7892a68bc42510d44924f1..de9c109f11b68c44985aa4eb36c1357a5a19b92c 100644 --- a/src/js/extendedFamilyModeJS.js +++ b/src/js/extendedFamilyModeJS.js @@ -1,3 +1,4 @@ +/* eslint-disable no-undef */ /* see documentation for details /devNotes/Extended Family Mode Explained.txt */ window.isMotherP = function isMotherP(daughter, mother) { @@ -28,12 +29,7 @@ window.sameMom = function (slave1, slave2) { } }; -/** - * @param {App.Entity.SlaveState} niece - * @param {App.Entity.SlaveState} aunt - * @returns {boolean} - */ -window.isAunt = function(niece, aunt) { +window.isAunt = /** @param {App.Entity.SlaveState} niece, @param {App.Entity.SlaveState} aunt */ function (niece, aunt) { if (!State.variables.showDistantRelatives) { return false; } @@ -42,8 +38,8 @@ window.isAunt = function(niece, aunt) { return false; } - let mother; - let father; + var mother; + var father; if ((mother = getSlave(niece.mother)) && (mother.ID !== aunt.ID) && !sameTParent(mother, aunt) && sameMom(mother, aunt) && sameDad(mother, aunt)) { return true; @@ -91,26 +87,26 @@ window.areTwins = function (slave1, slave2) { window.areSisters = function (slave1, slave2) { if (slave1.ID === slave2.ID) { - return 0; // you are not your own sister + return 0; //you are not your own sister } else if (((slave1.father === 0) || (slave1.father === -2)) && ((slave1.mother === 0) || (slave1.mother === -2))) { - return 0; // not related + return 0; //not related } else { if (!sameDad(slave1, slave2) && sameMom(slave1, slave2)) { - return 3; // half sisters + return 3; //half sisters } else if (sameDad(slave1, slave2) && !sameMom(slave1, slave2)) { - return 3; // half sisters + return 3; //half sisters } else if (sameTParent(slave1, slave2) === 3) { - return 3; // half sisters + return 3; //half sisters } else if (sameTParent(slave1, slave2) === 2) { - return 2; // sisters + return 2; //sisters } else if (sameDad(slave1, slave2) && sameMom(slave1, slave2)) { if (slave1.actualAge === slave2.actualAge && slave1.birthWeek === slave2.birthWeek) { - return 1; // twins + return 1; //twins } else { - return 2; // sisters + return 2; //sisters } } else { - return 0; // not related + return 0; //not related } } }; @@ -121,7 +117,7 @@ window.areSisters = function(c1, c2) { if(c1.ID === c2.ID) { return 0; } - let sib = 4; + var sib = 4; if(sameMom(c1, c2)) { sib -= 1; } @@ -138,12 +134,7 @@ window.areSisters = function(c1, c2) { } } */ -/** - * @param {App.Entity.SlaveState} slave1 - * @param {App.Entity.SlaveState} slave2 - * @returns {boolean} - */ -window.areCousins = function (slave1, slave2) { +window.areCousins = /** @param {App.Entity.SlaveState} slave1, @param {App.Entity.SlaveState} slave2 */ function (slave1, slave2) { if (!State.variables.showDistantRelatives) { return false; } @@ -152,10 +143,10 @@ window.areCousins = function (slave1, slave2) { return false; } - let slave1Mom; - let slave1Dad; - let slave2Mom; - let slave2Dad; + var slave1Mom; + var slave1Dad; + var slave2Mom; + var slave2Dad; if ((slave1Mom = getSlave(slave1.mother)) && (slave2Mom = getSlave(slave2.mother)) && !sameTParent(slave1Mom, slave2Mom) && sameMom(slave1Mom, slave2Mom) && sameDad(slave1Mom, slave2Mom)) { return true; @@ -170,21 +161,13 @@ window.areCousins = function (slave1, slave2) { return false; }; -/** - * @param {App.Entity.SlaveState} slave1 - * @param {App.Entity.SlaveState} slave2 - * @returns {boolean} - */ -window.areRelated = function (slave1, slave2) { +window.areRelated = /** @param {App.Entity.SlaveState} slave1, @param {App.Entity.SlaveState} slave2 */ + function (slave1, slave2) { return (slave1.father === slave2.ID || slave1.mother === slave2.ID || slave2.father === slave1.ID || slave2.mother === slave1.ID || areSisters(slave1, slave2) > 0); }; -/** - * @param {App.Entity.SlaveState} slave - * @returns {number} - */ -window.totalRelatives = function(slave) { - let relatives = 0; +window.totalRelatives = /** @param {App.Entity.SlaveState} slave */ function (slave) { + var relatives = 0; if (slave.mother > 0) { relatives += 1; } @@ -204,7 +187,6 @@ window.totalRelatives = function(slave) { * @param {App.Entity.SlaveState} slave1 * @param {App.Entity.SlaveState} slave2 * @param {App.Entity.SlaveState[]} slaves - * @returns {object} */ window.mutualChildren = function (slave1, slave2, slaves) { return slaves.filter(function (s) { @@ -212,11 +194,7 @@ window.mutualChildren = function (slave1, slave2, slaves) { }).length; }; -/** - * @param {App.Entity.SlaveState} slave - * @returns {boolean} - */ -window.isSlaveAvailable = function(slave) { +window.isSlaveAvailable = /** @param {App.Entity.SlaveState} slave */ function (slave) { if (!slave) { return null; } else if (slave.assignment === "be your agent") { @@ -240,21 +218,16 @@ window.randomRelatedSlave = function(slave, filterFunction) { } */ -/** - * @param {App.Entity.SlaveState} slave - * @param {function} filterFunction - * @returns {object} - */ -window.randomRelatedSlave = function (slave, filterFunction) { +window.randomRelatedSlave = /** @param {App.Entity.SlaveState} slave */ function (slave, filterFunction) { if (!slave || !SugarCube) { return undefined; } if (typeof filterFunction !== 'function') { - filterFunction = function ( /* s, index, array*/ ) { + filterFunction = function ( /*s, index, array*/ ) { return true; }; } - let arr = State.variables.slaves.filter(filterFunction); + var arr = State.variables.slaves.filter(filterFunction); arr.shuffle(); return arr.find(function (s) { return areSisters(slave, s) || @@ -265,98 +238,62 @@ window.randomRelatedSlave = function (slave, filterFunction) { }); }; -/** - * @param {App.Entity.SlaveState} slave - * @returns {object} -*/ -window.randomRelatedAvailableSlave = function(slave) { +window.randomRelatedAvailableSlave = /** @param {App.Entity.SlaveState} slave */ function (slave) { return randomRelatedSlave(slave, function (s) { return isSlaveAvailable(s); }); }; -/** - * @param {App.Entity.SlaveState} slave - * @returns {object} -*/ -window.randomSister = function(slave) { +window.randomSister = /** @param {App.Entity.SlaveState} slave */ function (slave) { return randomRelatedSlave(slave, function (s) { return areSisters(slave, s); }); }; -/** - * @param {App.Entity.SlaveState} slave - * @returns {object} -*/ -window.randomTwinSister = function(slave) { +window.randomTwinSister = /** @param {App.Entity.SlaveState} slave */ function (slave) { return randomRelatedSlave(slave, function (s) { return areSisters(slave, s) === 1; }); }; -/** - * @param {App.Entity.SlaveState} slave - * @returns {object} -*/ -window.randomAvailableSister = function(slave) { +window.randomAvailableSister = /** @param {App.Entity.SlaveState} slave */ function (slave) { return randomRelatedSlave(slave, function (s) { return isSlaveAvailable(s) && areSisters(slave, s); }); }; -/** - * @param {App.Entity.SlaveState} slave - * @returns {object} -*/ -window.randomAvailableTwinSister = function(slave) { +window.randomAvailableTwinSister = /** @param {App.Entity.SlaveState} slave */ function (slave) { return randomRelatedSlave(slave, function (s) { return isSlaveAvailable(s) && areSisters(slave, s) === 1; }); }; -/** - * @param {App.Entity.SlaveState} slave - * @returns {object} -*/ -window.randomDaughter = function(slave) { +window.randomDaughter = /** @param {App.Entity.SlaveState} slave */ function (slave) { return randomRelatedSlave(slave, function (s) { return s.mother === slave.ID || s.father === slave.ID; }); }; -/** - * @param {App.Entity.SlaveState} slave - * @returns {object} -*/ -window.randomAvailableDaughter = function(slave) { +window.randomAvailableDaughter = /** @param {App.Entity.SlaveState} slave */ function (slave) { return randomRelatedSlave(slave, function (s) { return isSlaveAvailable(s) && (s.mother === slave.ID || s.father === slave.ID); }); }; -/** - * @param {App.Entity.SlaveState} slave - * @returns {object} -*/ -window.randomParent = function(slave) { +window.randomParent = /** @param {App.Entity.SlaveState} slave */ function (slave) { return randomRelatedSlave(slave, function (s) { return s.ID === slave.mother || s.ID === slave.father; }); }; -/** - * @param {App.Entity.SlaveState} slave - * @returns {object} -*/ -window.randomAvailableParent = function(slave) { +window.randomAvailableParent = /** @param {App.Entity.SlaveState} slave */ function (slave) { return randomRelatedSlave(slave, function (s) { return isSlaveAvailable(s) && (s.ID === slave.mother || s.ID === slave.father); }); }; window.totalPlayerRelatives = function (pc) { - let relatives = 0; + var relatives = 0; if (pc.mother > 0) { relatives += 1; } @@ -372,15 +309,10 @@ window.totalPlayerRelatives = function (pc) { return relatives; }; -/** - * @param {App.Entity.SlaveState} slave1 - * @param {App.Entity.SlaveState} slave2 - * @returns {string} - */ -window.relativeTerm = +window.relativeTerm = /** @param {App.Entity.SlaveState} slave1 @param {App.Entity.SlaveState} slave2 */ function (slave1, slave2) { if (slave2.mother === slave1.ID || slave2.father === slave1.ID) { - if (slave2.genes === "XY" && State.variables.diversePronouns) { + if (slave2.genes === "XY" && State.variables.diversePronouns == 1) { return "son"; } else { return "daughter"; @@ -390,31 +322,31 @@ window.relativeTerm = } else if (slave1.father === slave2.ID) { return "father"; } else if (areSisters(slave2, slave1) === 1) { - if (slave2.genes === "XY" && State.variables.diversePronouns) { + if (slave2.genes === "XY" && State.variables.diversePronouns == 1) { return "twin brother"; } else { return "twin sister"; } } else if (areSisters(slave2, slave1) === 2) { - if (slave2.genes === "XY" && State.variables.diversePronouns) { + if (slave2.genes === "XY" && State.variables.diversePronouns == 1) { return "brother"; } else { return "sister"; } } else if (areSisters(slave2, slave1) === 3) { - if (slave2.genes === "XY" && State.variables.diversePronouns) { + if (slave2.genes === "XY" && State.variables.diversePronouns == 1) { return "half-brother"; } else { return "half-sister"; } } else if (isAunt(slave1, slave2)) { - if (slave2.genes === "XY" && State.variables.diversePronouns) { + if (slave2.genes === "XY" && State.variables.diversePronouns == 1) { return "nephew"; } else { return "niece"; } } else if (isAunt(slave2, slave1)) { - if (slave2.genes === "XY" && State.variables.diversePronouns) { + if (slave2.genes === "XY" && State.variables.diversePronouns == 1) { return "uncle"; } else { return "aunt"; @@ -425,83 +357,3 @@ window.relativeTerm = return "some unknown blood connection"; } }; - -App.ExtendedFamily.family = function(slave) { - "use strict"; - const V = State.variables; - const PC = V.PC; - let r = ``; - let pName; - let children; - /* eslint-disable */ - let pronouns = getPronouns(slave); - let he = pronouns.pronoun; - let him = pronouns.object; - let his = pronouns.possessive; - let hers = pronouns.possessivePronoun; - let himself = pronouns.objectReflexive; - let boy = pronouns.noun; - let He = capFirstChar(he); - let His = capFirstChar(his); - /* eslint-enable */ - - if (slave.ID === PC.mother && slave.ID === PC.father) { - r += `$He @@.lightgreen;is both your mother and father;@@ $he impregnated $himself with you.`; - } else if (slave.ID === PC.mother) { - r += `$He @@.lightgreen;is your mother.@@`; - } else if (slave.ID === PC.father) { - r += `$He @@.lightgreen;is your father.@@`; - } - - if (slave.father === PC.ID && slave.mother === PC.ID) { - r += `$He's @@.lightgreen;your child;@@ you knocked yourself up and gave birth to $him.`; - } else if (slave.father === slave.mother && (slave.father > 0 || (slave.father in V.missingTable && V.showMissingSlaves))) { - if (slave.father > 0) { - pName = V.slaves[V.slaveIndices[slave.father]].ID; - } else { - pName = `your former slave ${V.missingTable[slave.father].slaveName}`; - } - r += `$He was @@.lightgreen;both fathered and mothers by ${pName}.@@`; - } - - if (slave.father === PC.ID && slave.mother !== PC.ID) { - r += `He's @@.lightgreen;your child;@@ you knocked $his mother up.`; - } else if (slave.father > 0 || (slave.father in V.missingTable && V.showMissingSlaves) && slave.father !== slave.mother) { - if (slave.father > 0) { - pName = V.slaves[V.slaveIndices[slave.father]].slaveName; - } else { - pName = `your former slave ${V.missingTable[slave.father].slaveName}`; - } - r += `$He was @@.lightgreen;fathered by ${pName}'s@@ virile dick.`; - } - - if (slave.father !== PC.ID && slave.mother === PC.ID) { - r += `$He's @@.lightgreen;your child;@@ you gave birth to $him.`; - } else if (slave.mother > 0 || (slave.mother in V.missingTable && V.showMissingSlaves) && slave.father !== slave.mother) { - if (slave.mother > 0) { - pName = V.slaves[V.slaveIndices[slave.mother]].slaveName; - } else { - pName = `your former slave ${V.missingTable[slave.mother].slaveName}`; - } - r += `$He was @@.lightgreen;born from ${pName}'s@@ fertile womb.`; - } - - children = V.slaves.filter(function(s) { - return slave.ID === s.father; - }); - if (children.length > 2) { - r += `$He @@.lightgreen;fathered `; - for (let efw = 0; efw < children.length; efw++) { - if (efw < children.length-1) { - r += `${children[efw].slaveName}, `; - } else { - r += `and ${children[efw].slaveName}.@@`; - } - } - } else if (children.length > 1) { - r += `$He @@.lightgreen;fathered a pair of your slaves: ${children[0].slaveName} and ${children[1].slaveName}.`; - } else if (children.length > 0) { - r += `$He @@.lightgreen;fathered a single slave of your: ${children[0].slaveName}.@@`; - } - return r; -} diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw index d67b8a937e10c50af5d85acdd5156d6094550301..a133ffb39e1f0a4582c60455c1077eae88a4a823 100644 --- a/src/utility/descriptionWidgetsFlesh.tw +++ b/src/utility/descriptionWidgetsFlesh.tw @@ -1269,7 +1269,7 @@ $His <<if $showBodyMods == 1>> <<if $activeSlave.fuckdoll == 0>> <<if ($activeSlave.brand != 0) && ["breasts", "left breast", "right breast"].includes($activeSlave.brandLocation)>> - <<brand($activeSlave)>> + <<= App.Desc.brand($activeSlave)>> <</if>> <</if>> <</if>> @@ -5003,7 +5003,7 @@ $He's got a <<if $showBodyMods == 1>> <<if ($activeSlave.brand != 0)>> <<if ($activeSlave.brandLocation == "pubic mound")>> - <<brand($activeSlave)>> + <<= App.Desc.brand($activeSlave)>> <</if>> <</if>> <</if>>