diff --git a/src/npc/descriptions/style/upperFace.js b/src/npc/descriptions/style/upperFace.js new file mode 100644 index 0000000000000000000000000000000000000000..5acb21a4e530e11c5cab7abda877d459dc9b79af --- /dev/null +++ b/src/npc/descriptions/style/upperFace.js @@ -0,0 +1,241 @@ +/** + * @param {App.Entity.SlaveState} slave + * @returns {string} + */ +App.Desc.upperFace = function(slave) { + const r = []; + const { + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + if (slave.fuckdoll === 0) { + switch (slave.clothes) { + case "restrictive latex": + r.push(`The upper half of ${his} face is covered by the hood of ${his} latex suit: though`); + if (canSee(slave)) { + r.push(`${he} can see through eye-holes, these can easily be closed to blind ${him}.`); + } else { + r.push(`there are eye-holes, they are currently closed due to their lack of use.`); + } + break; + case "harem gauze": + r.push(`${His} harem outfit includes the traditional veil for ${his} face.`); + break; + case "a burkini": + r.push(`Above ${his} shoulders, ${his} burkini leaves only ${his} face bare.`); + break; + case "a hijab and blouse": + r.push(`Above the shoulders of ${his} blouse, ${his} hijab leaves only ${his} face bare.`); + break; + case "a hijab and abaya": + r.push(`Above the shoulders of ${his} abaya, ${his} hijab leaves only ${his} face bare.`); + break; + case "a niqab and abaya": + r.push(`Above the shoulders of ${his} abaya, ${his} niqab leaves only the area around ${his} eyes bare.`); + break; + case "a klan robe": + case "a slutty klan robe": + r.push(`Above the shoulders of ${his} robe, ${his} hood leaves only the area around ${his} eyes bare.`); + break; + case "a burqa": + r.push(`${His} burqa near totally covers ${his} face, aside from what can be seen behind the fabric mesh that covers ${his} eyes.`); + break; + case "a chattel habit": + r.push(`A golden circlet crowns ${his} white cowl, securing ${his} habit to ${his} head.`); + break; + case "a succubus outfit": + r.push(`${He} has a pair of false horns sprouting from just behind ${his} hairline and sweeping backward, which are anchored to a wire headband hidden by ${his} hair.`); + break; + case "a bunny outfit": + r.push(`A pair of bunny ears sprout from a headband atop ${his} head.`); + break; + } + if (hasAnyCyberneticEyes(slave)) { + r.push(`${He} has artificial`); + if (hasBothCyberneticEyes(slave)) { + r.push(`eyes.`); + } else { + r.push(`an eye.`); + } + } + if (slave.eyewear === "corrective glasses" || slave.eyewear === "blurring glasses" || slave.eyewear === "glasses") { + r.push(`${He}'s wearing a pair of`); + switch (slave.clothes) { + case "chains": + case "shibari ropes": + case "uncomfortable straps": + case "a chattel habit": + case "overalls": + case "Western clothing": + r.push(`sturdy glasses,`); + break; + case "restrictive latex": + r.push(`glasses over the hood,`); + break; + case "a ball gown": + case "a slave gown": + case "conservative clothing": + case "cutoffs and a t-shirt": + case "a halter top dress": + case "a maternity dress": + case "a courtesan dress": + r.push(`nice frameless glasses,`); + break; + case "body oil": + r.push(`big retro glasses,`); + break; + case "slutty business attire": + r.push(`horn-rimmed glasses to accent ${his} business attire,`); + break; + case "a schoolgirl outfit": + r.push(`horn-rimmed glasses to improve ${his} schoolgirl look,`); + break; + case "nice business attire": + r.push(`wire-frame glasses to accent ${his} business attire,`); + break; + case "attractive lingerie": + case "attractive lingerie for a pregnant woman": + case "an apron": + case "a hijab and blouse": + r.push(`feminine glasses,`); + break; + case "kitty lingerie": + r.push(`cat-eye glasses,`); + break; + case "a succubus outfit": + r.push(`severe steel-frame glasses,`); + break; + case "harem gauze": + case "slutty jewelry": + r.push(`glasses with golden wire frames,`); + break; + case "a burqa": + case "a niqab and abaya": + case "a penitent nuns habit": + case "a klan robe": + case "a slutty klan robe": + r.push(`cheap glasses,`); + break; + case "a gothic lolita dress": + r.push(`Victorian-styled glasses,`); + break; + case "a hanbok": + r.push(`folding spectacle glasses,`); + break; + case "a police uniform": + r.push(`aviator sunglasses,`); + break; + case "a Santa dress": + r.push(`antique reading glasses,`); + break; + case "a bunny outfit": + case "a monokini": + r.push(`girly retro glasses,`); + break; + case "a hijab and abaya": + case "a huipil": + case "a kimono": + case "a long qipao": + case "a nice maid outfit": + case "a slutty qipao": + case "a slutty maid outfit": + r.push(`an old fashioned pair of horn rimmed glasses,`); + break; + case "a fallen nuns habit": + case "a cheerleader outfit": + case "a slutty nurse outfit": + r.push(`a daring pair of horn rimmed glasses,`); + break; + case "clubslut netting": + case "a string bikini": + case "striped panties": + case "a bimbo outfit": + r.push(`a pair of girly pastel glasses,`); + break; + case "a scalemail bikini": + r.push(`a pair of ancient-looking glasses,`); + break; + case "a burkini": + case "a one-piece swimsuit": + r.push(`swim goggles,`); + break; + default: + r.push(`simple wire-frame glasses,`); + } + if (getBestVision(slave) === 0) { + r.push(`which, since ${he} is <span class="red">blind,</span> are just for show. ${He} moves carefully as to not bump into things.`); + } else { + if (slave.eyewear === "blurring glasses") { + if (anyVisionEquals(slave, 2)) { + r.push(`which are designed to blur ${his} vision, making ${him} clumsy.`); + } else { + r.push(`which do nothing to help ${his} <span class="yellow">nearsightedness</span> and consequent clumsiness.`); + } + } else if (slave.eyewear === "corrective glasses") { + if (anyVisionEquals(slave, 1)) { + r.push(`which correct ${his} vision.`); + } else { + r.push(`which are just for show.`); + } + } else { + r.push(`which are just for show.`); + } + } + } else { + if (!canSee(slave)) { + r.push(`${He} is <span class="red">blind,</span> and moves very carefully as a result.`); + } else if (!canSeePerfectly(slave)) { + if (slave.eyewear === "blurring contacts") { + r.push(`${He}'s wearing contacts designed to blur ${his} vision, making ${him} clumsy.`); + } else { + r.push(`${He}'s <span class="yellow">nearsighted,</span> and a bit clumsy as a result.`); + } + } else { + if (slave.eyewear === "corrective contacts") { + r.push(`${He}'s wearing contact lenses to correct ${his} <span class="yellow">nearsightedness.</span>`); + } + } + } + // CLOSES EYEWEAR + if (slave.earwear === "hearing aids" || slave.earwear === "muffling ear plugs" || slave.earwear === "deafening ear plugs") { + r.push(`In ${his} ears, ${he} wears`); + if (slave.earwear === "hearing aids") { + r.push(`a pair of hearing aids,`); + if (slave.hears > -1) { + r.push(`which do little to correct ${his} already adequate hearing.`); + } else if (slave.hears === -1) { + r.push(`which are used to correct ${his} <span class="yellow">hearing impairment.</span>`); + } else if (slave.hears < -1) { + r.push(`which, due to ${his} <span class="red">deafness,</span> are useless.`); + } + } else if (slave.earwear === "muffling ear plugs") { + r.push(`a pair of small foam ear plugs,`); + if (slave.hears > -1) { + r.push(`which noticeably <span class="yellow">muffle ${his} hearing.</span>`); + } else if (slave.hears === -1) { + r.push(`which are pointless, as ${he} is already <span class="yellow">hard of hearing.</span>`); + } else if (slave.hears < -1) { + r.push(`which are pointless, as ${he} is totally <span class="red">deaf.</span>`); + } + } else if (slave.earwear === "deafening ear plugs") { + r.push(`a pair of large silicone ear plugs,`); + if (slave.hears > -1) { + r.push(`which <span class="red">nullify ${his} sense of hearing.</span>`); + } else if (slave.hears === -1) { + r.push(`which impair ${his} hearing to the point of <span class="red">deafness.</span>`); + } else if (slave.hears < -1) { + r.push(`which are pointless, as ${he} is already <span class="red">deaf.</span>`); + } + } + } else { + if (slave.hears === -1) { + r.push(`${He}'s <span class="yellow">hard of hearing,</span> and a bit nervous as a result.`); + } else if (slave.hears < -1) { + r.push(`${He} is <span class="red">deaf,</span> and overly paranoid as a result.`); + } + } + } else { + r.push(`${His} face is featurelessly obscured by the Fuckdoll suit from the top of ${his} head down to ${his} face hole.`); + } + + return r.join(" "); +}; diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw index 8bbf589512a7bde5c84045c66827d6f6ba363a62..822d42e674e25d36ccce1126c6c289c60dfdef3b 100644 --- a/src/uncategorized/longSlaveDescription.tw +++ b/src/uncategorized/longSlaveDescription.tw @@ -1838,7 +1838,7 @@ $He is <<= App.Desc.ears($activeSlave)>> - <<upperFaceDescription>> + <<= App.Desc.upperFace($activeSlave)>> <<= App.Desc.hair($activeSlave)>> diff --git a/src/utility/descriptionWidgetsStyle.tw b/src/utility/descriptionWidgetsStyle.tw index 2a2c9a9ffc7a8b69d9413d216420bd95be97b2bb..5cedd98137fdaf4d1281a6eda16e3df4e74ecfb0 100644 --- a/src/utility/descriptionWidgetsStyle.tw +++ b/src/utility/descriptionWidgetsStyle.tw @@ -1,160 +1,5 @@ :: clothing description widgets [widget nobr] -<<widget "upperFaceDescription">> - <<if $activeSlave.fuckdoll == 0>> - <<switch $activeSlave.clothes>> - <<case "restrictive latex">> - The upper half of $his face is covered by the hood of $his latex suit: though <<if canSee($activeSlave)>>$he can see through eye-holes, these can easily be closed to blind $him<<else>>there are eye-holes, they are currently closed due to their lack of use<</if>>. - <<case "harem gauze">> - $His harem outfit includes the traditional veil for $his face. - <<case "a burkini">> - Above $his shoulders, $his burkini leaves only $his face bare. - <<case "a hijab and blouse">> - Above the shoulders of $his blouse, $his hijab leaves only $his face bare. - <<case "a hijab and abaya">> - Above the shoulders of $his abaya, $his hijab leaves only $his face bare. - <<case "a niqab and abaya">> - Above the shoulders of $his abaya, $his niqab leaves only the area around $his eyes bare. - <<case "a klan robe" "a slutty klan robe">> - Above the shoulders of $his robe, $his hood leaves only the area around $his eyes bare. - <<case "a burqa">> - $His burqa near totally covers $his face, aside from what can be seen behind the fabric mesh that covers $his eyes. - <<case "a chattel habit">> - A golden circlet crowns $his white cowl, securing $his habit to $his head. - <<case "a succubus outfit">> - $He has a pair of false horns sprouting from just behind $his hairline and sweeping backward, which are anchored to a wire headband hidden by $his hair. - <<case "a bunny outfit">> - A pair of bunny ears sprout from a headband atop $his head. - <</switch>> - <<if hasAnyCyberneticEyes($activeSlave)>> - $He has artificial <<if hasBothCyberneticEyes($activeSlave)>>eyes<<else>>an eye<</if>>. - <</if>> - <<if ($activeSlave.eyewear == "corrective glasses") || ($activeSlave.eyewear == "blurring glasses") || ($activeSlave.eyewear == "glasses")>> - $He's wearing a pair of - <<switch $activeSlave.clothes>> - <<case "chains" "shibari ropes" "uncomfortable straps" "a chattel habit" "overalls" "Western clothing">> - sturdy glasses, - <<case "restrictive latex">> - glasses over the hood, - <<case "a ball gown" "a slave gown" "conservative clothing" "cutoffs and a t-shirt" "a halter top dress" "a maternity dress" "a courtesan dress">> - nice frameless glasses, - <<case "body oil">> - big retro glasses, - <<case "slutty business attire">> - horn-rimmed glasses to accent $his business attire, - <<case "a schoolgirl outfit">> - horn-rimmed glasses to improve $his schoolgirl look, - <<case "nice business attire">> - wire-frame glasses to accent $his business attire, - <<case "attractive lingerie" "attractive lingerie for a pregnant woman" "an apron" "a hijab and blouse">> - feminine glasses, - <<case "kitty lingerie">> - cat-eye glasses, - <<case "a succubus outfit">> - severe steel-frame glasses, - <<case "harem gauze" "slutty jewelry">> - glasses with golden wire frames, - <<case "a burqa" "a niqab and abaya" "a penitent nuns habit" "a klan robe" "a slutty klan robe">> - cheap glasses, - <<case "a gothic lolita dress">> - Victorian-styled glasses, - <<case "a hanbok">> - folding spectacle glasses, - <<case "a police uniform">> - aviator sunglasses, - <<case "a Santa dress">> - antique reading glasses, - <<case "a bunny outfit" "a monokini">> - girly retro glasses, - <<case "a hijab and abaya" "a huipil" "a kimono" "a long qipao" "a nice maid outfit" "a slutty qipao" "a slutty maid outfit">> - an old fashioned pair of horn rimmed glasses, - <<case "a fallen nuns habit" "a cheerleader outfit" "a slutty nurse outfit">> - a daring pair of horn rimmed glasses, - <<case "clubslut netting" "a string bikini" "striped panties" "a bimbo outfit">> - a pair of girly pastel glasses, - <<case "a scalemail bikini">> - a pair of ancient-looking glasses, - <<case "a burkini" "a one-piece swimsuit">> - swim goggles, - <<default>> - simple wire-frame glasses, - <</switch>> - <<if getBestVision($activeSlave) === 0>> - which, since $he is @@.red;blind,@@ are just for show. $He moves carefully as to not bump into things. - <<else>> - <<if $activeSlave.eyewear == "blurring glasses">> - <<if anyVisionEquals($activeSlave, 2)>> - which are designed to blur $his vision, making $him clumsy. - <<else>> - which do nothing to help $his @@.yellow;nearsightedness@@ and consequent clumsiness. - <</if>> - <<elseif $activeSlave.eyewear == "corrective glasses">> - <<if anyVisionEquals($activeSlave, 1)>> - which correct $his vision. - <<else>> - which are just for show. - <</if>> - <<else>> - which are just for show. - <</if>> - <</if>> - <<else>> - <<if !canSee($activeSlave)>> - $He is @@.red;blind,@@ and moves very carefully as a result. - <<elseif !canSeePerfectly($activeSlave)>> - <<if $activeSlave.eyewear == "blurring contacts">> - $He's wearing contacts designed to blur $his vision, making $him clumsy. - <<else>> - $He's @@.yellow;nearsighted,@@ and a bit clumsy as a result. - <</if>> - <<else>> - <<if $activeSlave.eyewear == "corrective contacts">> - $He's wearing contact lenses to correct $his @@.yellow;nearsightedness.@@ - <</if>> - <</if>> - <</if>> /* CLOSES EYEWEAR */ - <<if ($activeSlave.earwear == "hearing aids") || ($activeSlave.earwear == "muffling ear plugs") || ($activeSlave.earwear == "deafening ear plugs")>> - In $his ears, $he wears - <<if $activeSlave.earwear == "hearing aids">> - a pair of hearing aids, - <<if $activeSlave.hears > -1>> - which do little to correct $his already adequate hearing. - <<elseif $activeSlave.hears == -1>> - which are used to correct $his @@.yellow;hearing impairment.@@ - <<elseif $activeSlave.hears < -1>> - which, due to $his @@.red;deafness,@@ are useless. - <</if>> - <<elseif $activeSlave.earwear == "muffling ear plugs">> - a pair of small foam ear plugs, - <<if $activeSlave.hears > -1>> - which noticeably @@.yellow;muffle $his hearing.@@ - <<elseif $activeSlave.hears == -1>> - which are pointless, as $he is already @@.yellow;hard of hearing.@@ - <<elseif $activeSlave.hears < -1>> - which are pointless, as $he is totally @@.red;deaf.@@ - <</if>> - <<elseif $activeSlave.earwear == "deafening ear plugs">> - a pair of large silicone ear plugs, - <<if $activeSlave.hears > -1>> - which @@.red;nullify $his sense of hearing.@@ - <<elseif $activeSlave.hears == -1>> - which impair $his hearing to the point of @@.red;deafness.@@ - <<elseif $activeSlave.hears < -1>> - which are pointless, as $he is already @@.red;deaf.@@ - <</if>> - <</if>> - <<else>> - <<if $activeSlave.hears == -1>> - $He's @@.yellow;hard of hearing,@@ and a bit nervous as a result. - <<elseif $activeSlave.hears < -1>> - $He is @@.red;deaf,@@ and overly paranoid as a result. - <</if>> - <</if>> - <<else>> - $His face is featurelessly obscured by the Fuckdoll suit from the top of $his head down to $his face hole. - <</if>> -<</widget>> - <<widget "collarDescription">> <<switch $activeSlave.collar>> <<case "uncomfortable leather">>