diff --git a/devNotes/legacy files/walkPast.txt b/devNotes/legacy files/walkPast.txt index 2ed9627191f56779c216d03eeb219946307471fe..86815322cb783f7639119d665bc121098b7b60fd 100644 --- a/devNotes/legacy files/walkPast.txt +++ b/devNotes/legacy files/walkPast.txt @@ -3539,7 +3539,7 @@ <</switch>> <<set _target = "FAnus">> <<elseif (_seed > 0)>> - <<faceDescription>> + <<= App.Desc.face($activeSlave)>> <<mouthDescription>> <<switch $activeSlave.collar>> <<case "a Fuckdoll suit">> diff --git a/src/interaction/main/walkPast.js b/src/interaction/main/walkPast.js index 526a02da6d47a6b50d4e658be551a0e1acad1d78..635b1fcc947c9aa6e341094ae717daf55309d1ef 100644 --- a/src/interaction/main/walkPast.js +++ b/src/interaction/main/walkPast.js @@ -9139,8 +9139,8 @@ globalThis.walkPast = (function() { He, His } = getPronouns(slave); - t += `<<faceDescription>>`; - t += `<<mouthDescription>>`; + t += App.Desc.face(slave); + t += ` <<mouthDescription>>`; switch (slave.collar) { case "uncomfortable leather": t += `${His} uncomfortable leather collar makes ${him} swallow and lick ${his} lips periodically, making it look like ${he}'s offering oral even though ${he}'s just trying to relieve the discomfort.`; diff --git a/src/npc/descriptions/face.js b/src/npc/descriptions/face.js new file mode 100644 index 0000000000000000000000000000000000000000..74b8fbcb24c4e57d972caaaa1f1abe7bdf8502de --- /dev/null +++ b/src/npc/descriptions/face.js @@ -0,0 +1,201 @@ +App.Desc.face = function(slave) { + const r = []; + const { + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + + r.push(`${His}<span class="pink">face is`); + + switch (slave.faceShape) { + case "masculine": + if (slave.face < -95) { + r.push(`so ugly and masculine that ${his} designation as a slave girl is a mockery.`); + } else if (slave.face < -40) { + r.push(`ugly and masculine, making ${him} a poor slave girl by appearance.`); + } else if (slave.face < -10) { + r.push(`unattractively masculine.`); + } else if ((slave.face <= 10)) { + r.push(`masculine, but not entirely unappealing.`); + } else if ((slave.face <= 40)) { + r.push(`attractively masculine.`); + } else if ((slave.face <= 95)) { + r.push(`quite handsome in a masculine way.`); + } else { + r.push(`the height of masculine handsomeness.`); + } + break; + case "androgynous": + if (slave.face < -95) { + r.push(`disturbingly androgynous and terribly ugly.`); + } else if (slave.face < -40) { + r.push(`ugly and androgynous; ${he} has neither masculine nor feminine appeal.`); + } else if (slave.face < -10) { + r.push(`strangely androgynous, and rather unattractive.`); + } else if ((slave.face <= 10)) { + r.push(`strangely androgynous.`); + } else if ((slave.face <= 40)) { + r.push(`androgynous, and attractive enough that this ambiguity is interesting.`); + } else if ((slave.face <= 95)) { + r.push(`gorgeously androgynous in a complex way that captures the eye.`); + } else { + r.push(`so gorgeously androgynous that ${he} tends to induce sexual confusion.`); + } + break; + case "cute": + if (slave.face < -95) { + r.push(`very ugly, yet somehow cute; ${he}'s so unattractive that ${he} inspires pity.`); + } else if (slave.face < -40) { + r.push(`ugly, but cute, with a pitiable appeal.`); + } else if (slave.face < -10) { + r.push(`not attractive, but is appealingly cute.`); + } else if ((slave.face <= 10)) { + r.push(`merely average, but is appealingly cute.`); + } else if ((slave.face <= 40)) { + r.push(`both attractive and appealingly cute.`); + } else if ((slave.face <= 95)) { + r.push(`beautiful, yet somehow also approachably cute.`); + } else { + r.push(`an impossibly perfect combination of beauty and girl-next-door cuteness.`); + } + break; + case "sensual": + if (slave.face < -95) { + r.push(`very ugly, yet naturally slutty, promising a decent fuck despite its appearance.`); + } else if (slave.face < -40) { + r.push(`ugly, but also slutty, promising a good fuck despite its appearance.`); + } else if (slave.face < -10) { + r.push(`not attractive, but it has a certain sensual appeal.`); + } else if ((slave.face <= 10)) { + r.push(`merely average, but undeniably sensual.`); + } else if ((slave.face <= 40)) { + r.push(`both attractive and naturally sultry.`); + } else if ((slave.face <= 95)) { + r.push(`both beautiful and sultry, bringing sex to mind naturally.`); + } else { + r.push(`very beautiful in a consummately sexual way.`); + } + break; + case "exotic": + if (slave.face < -95) { + r.push(`very ugly and unusual, a real tragedy in flesh.`); + } else if (slave.face < -40) { + r.push(`ugly and unusual, a real misfortune.`); + } else if (slave.face < -10) { + r.push(`unattractive, and distinctive in its unattractiveness.`); + } else if ((slave.face <= 10)) { + r.push(`quite average, but not uninteresting.`); + } else if ((slave.face <= 40)) { + r.push(`attractive in an exotic and interesting way.`); + } else if ((slave.face <= 95)) { + r.push(`exotic and beautiful, capable of catching the eye and keeping its gaze.`); + } else { + r.push(`very beautiful and exotic, almost to the point of alien fascination.`); + } + break; + default: + if (slave.face < -95) { + r.push(`very ugly.`); + } else if (slave.face < -40) { + r.push(`quite ugly.`); + } else if (slave.face < -10) { + r.push(`unattractive.`); + } else if ((slave.face <= 10)) { + r.push(`average and conventionally feminine.`); + } else if ((slave.face <= 40)) { + r.push(`conventionally attractive.`); + } else if ((slave.face <= 95)) { + r.push(`conventionally beautiful.`); + } else { + r.push(`the height of conventional feminine beauty.`); + } + } + r.push(`</span>`); + if (slave.weight > 190) { + r.push(`${His} face is quite fat with ample excess chins.`); + } else if (slave.weight > 160) { + r.push(`${His} face is round and plump with a trio of extra chins.`); + } else if (slave.weight > 130) { + r.push(`${His} face is chubby with an obvious second chin.`); + } else if (slave.weight > 97) { + r.push(`${His} face is soft with barely a second chin.`); + } + if (slave.fuckdoll > 0) { + r.push(`However,`); + if (slave.face < -1) { + r.push(`it's hard to see this past the suit, since its face is padded to make ${him} seem less ugly.`); + } else if (slave.face < 1) { + r.push(`it's hard to see this past the suit, since its face is shaped to make ${him} seem prettier.`); + } else { + r.push(`the suit obscures all but the shape of ${him} pretty face.`); + } + } else { + if (slave.markings === "beauty mark") { + if (slave.face < -95) { + r.push(`It bears a severely disfiguring, discolored mark.`); + } else if (slave.face < -40) { + r.push(`It bears a couple of unsightly moles.`); + } else if (slave.face < -10) { + r.push(`It bears an ugly mole.`); + } else if ((slave.face <= 10)) { + r.push(`${He} has a distinctive beauty mark.`); + } else if ((slave.face <= 40)) { + r.push(`${He} has a nice beauty mark.`); + } else if ((slave.face <= 95)) { + r.push(`${He} has a beauty mark that adds to ${his} distinctiveness.`); + } else { + r.push(`${He} has a beauty mark that makes ${him} really memorable.`); + } + } + } + if (slave.faceImplant > 5) { + r.push(`${He}'s`); + if (slave.faceImplant > 95) { + r.push(`had so much cosmetic surgery that ${his} face is located at the bottom of the uncanny valley `); + if (slave.face < -10) { + r.push(`in addition to its ugliness.`); + } else if (slave.face <= 10) { + r.push(`the only thing really distinctive about it.`); + } else { + r.push(`its attractiveness notwithstanding.`); + } + } else if (slave.faceImplant > 60) { + r.push(`obviously gotten a lot of facial cosmetic surgery.`); + } else if (slave.faceImplant > 30) { + r.push(`noticeably received facial cosmetic surgery.`); + } else { + r.push(`had some facial cosmetic surgery, though it's subtle.`); + if (V.PC.skill.medicine >= 100) { + r.push(`Someone without your knowledge might miss it entirely.`); + } + } + if (V.arcologies[0].FSBodyPurist !== "unset") { + if (slave.faceImplant > 30) { + r.push(`This is considered extremely tragic by a society that values bodily purity.`); + } else { + r.push(`Since society values bodily purity, even this subtlety affects ${his} attractiveness when it's noticed.`); + } + } else if (V.arcologies[0].FSTransformationFetishist !== "unset") { + if (slave.faceImplant > 30) { + r.push(`Your transformationist society doesn't think this `); + if (slave.face >= -10) { + r.push(`reduces ${his} attractiveness.`); + } else { + r.push(`makes ${him} uglier.`); + } + } + } else { + if (slave.faceImplant > 30) { + r.push(`The effect is enough to reduce ${his} attractiveness.`); + } + } + } + if (slave.smells === -1) { + r.push(`${He} has no sense of smell, but this isn't immediately obvious just by looking at ${his} nose.`); + } + + if (V.showBodyMods === 1) { + if (slave.fuckdoll === 0) { + r.push(App.Desc.makeup(slave)); + } + } return r.join(" "); +}; diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw index 38dc7038d52e341a445b87f5e26ec3af8a5a542e..51233c1e9a446c653c07e44ff1be62b7861f7da8 100644 --- a/src/uncategorized/longSlaveDescription.tw +++ b/src/uncategorized/longSlaveDescription.tw @@ -1909,7 +1909,7 @@ $He is <</if>> <<hornDescription>> -<<faceDescription>> +<<= App.Desc.face($activeSlave)>> <<mouthDescription>> <<if ($showClothing == 1) && ($saleDescription == 0)>> diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw index d9316270c9b24f99b0932f3cee4ae5f6b772dbd1..70b0c913b30420b43e619579764eaa1fd7c8b287 100644 --- a/src/utility/descriptionWidgetsFlesh.tw +++ b/src/utility/descriptionWidgetsFlesh.tw @@ -1,184 +1,5 @@ :: flesh description widgets [widget nobr] -<<widget "faceDescription">> - -$His -@@.pink;face is -<<switch $activeSlave.faceShape>> -<<case "masculine">> - <<if $activeSlave.face < -95>> - so ugly and masculine that $his designation as a slave girl is a mockery. - <<elseif $activeSlave.face < -40>> - ugly and masculine, making $him a poor slave girl by appearance. - <<elseif $activeSlave.face < -10>> - unattractively masculine. - <<elseif ($activeSlave.face <= 10)>> - masculine, but not entirely unappealing. - <<elseif ($activeSlave.face <= 40)>> - attractively masculine. - <<elseif ($activeSlave.face <= 95)>> - quite handsome in a masculine way. - <<else>> - the height of masculine handsomeness. - <</if>> -<<case "androgynous">> - <<if $activeSlave.face < -95>> - disturbingly androgynous and terribly ugly. - <<elseif $activeSlave.face < -40>> - ugly and androgynous; $he has neither masculine nor feminine appeal. - <<elseif $activeSlave.face < -10>> - strangely androgynous, and rather unattractive. - <<elseif ($activeSlave.face <= 10)>> - strangely androgynous. - <<elseif ($activeSlave.face <= 40)>> - androgynous, and attractive enough that this ambiguity is interesting. - <<elseif ($activeSlave.face <= 95)>> - gorgeously androgynous in a complex way that captures the eye. - <<else>> - so gorgeously androgynous that $he tends to induce sexual confusion. - <</if>> -<<case "cute">> - <<if $activeSlave.face < -95>> - very ugly, yet somehow cute; $he's so unattractive that $he inspires pity. - <<elseif $activeSlave.face < -40>> - ugly, but cute, with a pitiable appeal. - <<elseif $activeSlave.face < -10>> - not attractive, but is appealingly cute. - <<elseif ($activeSlave.face <= 10)>> - merely average, but is appealingly cute. - <<elseif ($activeSlave.face <= 40)>> - both attractive and appealingly cute. - <<elseif ($activeSlave.face <= 95)>> - beautiful, yet somehow also approachably cute. - <<else>> - an impossibly perfect combination of beauty and girl-next-door cuteness. - <</if>> -<<case "sensual">> - <<if $activeSlave.face < -95>> - very ugly, yet naturally slutty, promising a decent fuck despite its appearance. - <<elseif $activeSlave.face < -40>> - ugly, but also slutty, promising a good fuck despite its appearance. - <<elseif $activeSlave.face < -10>> - not attractive, but it has a certain sensual appeal. - <<elseif ($activeSlave.face <= 10)>> - merely average, but undeniably sensual. - <<elseif ($activeSlave.face <= 40)>> - both attractive and naturally sultry. - <<elseif ($activeSlave.face <= 95)>> - both beautiful and sultry, bringing sex to mind naturally. - <<else>> - very beautiful in a consummately sexual way. - <</if>> -<<case "exotic">> - <<if $activeSlave.face < -95>> - very ugly and unusual, a real tragedy in flesh. - <<elseif $activeSlave.face < -40>> - ugly and unusual, a real misfortune. - <<elseif $activeSlave.face < -10>> - unattractive, and distinctive in its unattractiveness. - <<elseif ($activeSlave.face <= 10)>> - quite average, but not uninteresting. - <<elseif ($activeSlave.face <= 40)>> - attractive in an exotic and interesting way. - <<elseif ($activeSlave.face <= 95)>> - exotic and beautiful, capable of catching the eye and keeping its gaze. - <<else>> - very beautiful and exotic, almost to the point of alien fascination. - <</if>> -<<default>> - <<if $activeSlave.face < -95>> - very ugly. - <<elseif $activeSlave.face < -40>> - quite ugly. - <<elseif $activeSlave.face < -10>> - unattractive. - <<elseif ($activeSlave.face <= 10)>> - average and conventionally feminine. - <<elseif ($activeSlave.face <= 40)>> - conventionally attractive. - <<elseif ($activeSlave.face <= 95)>> - conventionally beautiful. - <<else>> - the height of conventional feminine beauty. - <</if>> -<</switch>>@@ -<<if $activeSlave.weight > 190>> - $His face is quite fat with ample excess chins. -<<elseif $activeSlave.weight > 160>> - $His face is round and plump with a trio of extra chins. -<<elseif $activeSlave.weight > 130>> - $His face is chubby with an obvious second chin. -<<elseif $activeSlave.weight > 97>> - $His face is soft with barely a second chin. -<</if>> -<<if $activeSlave.fuckdoll > 0>> - However, - <<if $activeSlave.face < -1>> - it's hard to see this past the suit, since its face is padded to make $him seem less ugly. - <<elseif $activeSlave.face < 1>> - it's hard to see this past the suit, since its face is shaped to make $him seem prettier. - <<else>> - the suit obscures all but the shape of $him pretty face. - <</if>> -<<else>> - <<if $activeSlave.markings == "beauty mark">> - <<if $activeSlave.face < -95>> - It bears a severely disfiguring, discolored mark. - <<elseif $activeSlave.face < -40>> - It bears a couple of unsightly moles. - <<elseif $activeSlave.face < -10>> - It bears an ugly mole. - <<elseif ($activeSlave.face <= 10)>> - $He has a distinctive beauty mark. - <<elseif ($activeSlave.face <= 40)>> - $He has a nice beauty mark. - <<elseif ($activeSlave.face <= 95)>> - $He has a beauty mark that adds to $his distinctiveness. - <<else>> - $He has a beauty mark that makes $him really memorable. - <</if>> - <</if>> -<</if>> -<<if $activeSlave.faceImplant > 5>> - $He's - <<if $activeSlave.faceImplant > 95>> - had so much cosmetic surgery that $his face is located at the bottom of the uncanny valley <<if $activeSlave.face < -10>>in addition to its ugliness<<elseif $activeSlave.face <= 10>>the only thing really distinctive about it<<else>>its attractiveness notwithstanding<</if>>. - <<elseif $activeSlave.faceImplant > 60>> - obviously gotten a lot of facial cosmetic surgery. - <<elseif $activeSlave.faceImplant > 30>> - noticeably received facial cosmetic surgery. - <<else>> - had some facial cosmetic surgery, though it's subtle. - <<if $PC.skill.medicine >= 100>>Someone without your knowledge might miss it entirely.<</if>> - <</if>> - <<if $arcologies[0].FSBodyPurist != "unset">> - <<if $activeSlave.faceImplant > 30>> - This is considered extremely tragic by a society that values bodily purity. - <<else>> - Since society values bodily purity, even this subtlety affects $his attractiveness when it's noticed. - <</if>> - <<elseif $arcologies[0].FSTransformationFetishist != "unset">> - <<if $activeSlave.faceImplant > 30>> - Your transformationist society doesn't think this <<if $activeSlave.face >= -10>>reduces $his attractiveness<<else>>makes $him uglier<</if>>. - <</if>> - <<else>> - <<if $activeSlave.faceImplant > 30>> - The effect is enough to reduce $his attractiveness. - <</if>> - <</if>> -<</if>> -<<if $activeSlave.smells == -1>> - $He has no sense of smell, but this isn't immediately obvious just by looking at $his nose. -<</if>> - -<<if $showBodyMods == 1>> - <<if $activeSlave.fuckdoll == 0>> - <<= App.Desc.makeup($activeSlave)>> - <</if>> -<</if>> - -<</widget>> - <<widget "hornDescription">> <<if $activeSlave.horn == "curved succubus horns">> $He has