diff --git a/src/npc/descriptions/style/hair.js b/src/npc/descriptions/style/hair.js new file mode 100644 index 0000000000000000000000000000000000000000..dbdb76115bca36a19c79b9bfead8231b3d045603 --- /dev/null +++ b/src/npc/descriptions/style/hair.js @@ -0,0 +1,200 @@ +App.Desc.clothing = function(slave) { + const r = []; + const { + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + const hairLength = slave.hLength / slave.height; + + r.push(`${His}`); + if (slave.fuckdoll === 0) { + switch (slave.hStyle) { + case "bald": + r.push(`hair no longer grows. If it did, it would be ${slave.origHColor}.`); + break; + case "shaved": + case "shaved bald": + r.push(`hair has been shaved.If ${his} hair were visible, it would be ${slave.hColor}.`); + break; + case "buzzcut": + r.push(`${slave.hColor} hair is in a short buzzcut.`); + break; + case "trimmed": + r.push(`${slave.hColor} hair is trimmed short.`); + break; + case "afro": + r.push(`${slave.hColor} hair is in a`); + if (slave.hLength > 100) { + r.push(`gigantic puffed - up afro and looks ridiculous.`); + } else if (slave.hLength > 30) { + r.push(`puffy afro.`); + } else { + r.push(`short afro.`); + } + break; + case "cornrows": + r.push(`${slave.hColor} hair is formed tightly into cornrows in a decorative pattern on ${his} head, dangling`); + if (slave.hLength >= 150) { + r.push(`down calf - length,`); + } else if (slave.hLength >= 100) { + r.push(`down ass - length,`); + } else if (slave.hLength >= 30) { + r.push(`down long,`); + } else if (slave.hLength >= 10) { + r.push(`down shoulder - length,`); + } else { + r.push(`down,`); + } + r.push(`with colorful beads interspersed in them.`); + break; + case "bun": + r.push(`${slave.hColor} hair is`); + if (slave.hLength >= 100) { + r.push(`packed tightly into a huge puffy`); + } else if (slave.hLength >= 30) { + r.push(`packed into a large`); + } else if (slave.hLength >= 10) { + r.push(`tied into a small`); + } else { + r.push(`tied into a`); + } + r.push(`bun.`); + break; + case "messy bun": + r.push(`${slave.hColor} hair is`); + if (slave.hLength >= 100) { + r.push(`packed tightly into a huge messy`); + } else if (slave.hLength >= 30) { + r.push(`packed into a large messy`); + } else if (slave.hLength >= 10) { + r.push(`tied into a small messy`); + } else { + r.push(`tied into a messy`); + } + r.push(`bun.`); + break; + case "braided": + case "curled": + case "dreadlocks": + case "luxurious": + case "neat": + case "permed": + case "ponytail": + case "strip": + case "tails": + case "up": + if (hairLength > 0.9) { + r.push(`floor - length,`); + } else if (hairLength > 0.8) { + r.push(`calf - length,`); + } else if (hairLength > 0.7) { + r.push(`knee - length,`); + } else if (hairLength >= 0.6) { + r.push(`thigh - length,`); + } else if (hairLength >= 0.4) { + r.push(`ass - length,`); + } else if (hairLength >= 0.2) { + r.push(`long,`); + } else if (hairLength >= 15) { + r.push(`shoulder - length,`); + } else { + r.push(`short,`); + } + r.push(`${slave.hColor} hair`); + r.push(App.Desc.hairClothing(slave)); + break; + default: + r.push(`${slave.hColor} hair is slave.hStyle.`); + } + r.push(`${His}`); + if (slave.eyebrowHStyle === "bald") { + r.push(`brows do not grow hair.${His} eyebrows would be ${slave.eyebrowHColor} in color if they did.`); + } else if (slave.eyebrowHStyle === "shaved") { + r.push(`eyebrows have`); + if (slave.hStyle === "shaved" || slave.hStyle === "shaved bald") { + r.push(`also`); + } + r.push(`been shaved off.If they were visible, they would be ${slave.eyebrowHColor} in color.`); + } else { + r.push(`${slave.eyebrowHColor} eyebrows`); + switch (slave.eyebrowHStyle) { + case "slanted inwards": + r.push(`slant inwards from the sides of ${his} forehead down to the center of ${his} head.`); + break; + case "slanted outwards": + r.push(`slant outwards from the center of ${his} head down to the sides of ${his} forehead.`); + break; + case "rounded": + r.push(`form perfect semicircles.`); + break; + case "natural": + r.push(`naturally contour to the shape of ${his} brow.`); + break; + case "curved": + r.push(`form small "S" - shaped curves above ${his} eyes.`); + break; + case "straight": + r.push(`are near perfectly straight, instead of curving.`); + break; + case "high-arched": + r.push(`form tall arches on ${his} forehead.`); + break; + case "elongated": + r.push(`are elongated to cover far more of ${his} brow than what would be considered average.`); + break; + case "shortened": + r.push(`are shortened to cover far less of ${his} brow than what would be considered average.`); + break; + default: + r.push(`are styled to be ${slave.eyebrowHStyle}.`); + } + r.push(`They're`); + switch (slave.eyebrowFullness) { + case "pencil-thin": + r.push(`incredibly and unnaturally light and thin.`); + break; + case "thin": + r.push(`considerably thinner than what would be considered average.`); + break; + case "threaded": + r.push(`styled to be thinner on the sides but otherwise normal.`); + break; + case "natural": + r.push(`kept to a natural level of fullness.`); + break; + case "tapered": + r.push(`styled to be thicker in the center but otherwise normal.`); + break; + case "thick": + r.push(`considerably thicker than what would be considered average.`); + break; + case "bushy": + r.push(`incredibly and unnaturally full and bushy.`); + break; + default: + r.push(`${slave.eyebrowFullness}.`); + } + } + } else { + if (slave.hLength > 20) { + r.push(`hair sticks out of the suit in two`); + if (slave.hLength > 100) { + r.push(`extremely long`); + } else if (slave.hLength > 40) { + r.push(`long`); + } else { + r.push(`short`); + } + r.push(`tails, which can be used as handles when using the Fuckdoll's`); + if (slave.vagina > -1) { + r.push(`lower holes.`); + } else { + r.push(`rear hole.`); + } + } else if (slave.hLength > 5) { + r.push(`short hair is tightly covered by the suit.`); + } else { + r.push(`scalp is tightly covered by the suit.`); + } + } + return r.join(" "); +}; diff --git a/src/npc/descriptions/style/hairClothing.js b/src/npc/descriptions/style/hairClothing.js new file mode 100644 index 0000000000000000000000000000000000000000..484236ad2277b61d3625a37300e1be3e3a19cf0e --- /dev/null +++ b/src/npc/descriptions/style/hairClothing.js @@ -0,0 +1,189 @@ +App.Desc.hairClothing = function(slave) { + const r = []; + const { + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + + r.push(`${His}`); + if (slave.fuckdoll === 0) { + switch (slave.hStyle) { + + case "bald": + r.push(`hair no longer grows. If it did, it would be ${slave.origHColor}.`); + + case "shaved": + case "shaved bald": + r.push(`hair has been shaved.If ${his} hair were visible, it would be ${slave.hColor}.`); + + case "buzzcut": + r.push(`${slave.hColor} hair is in a short buzzcut.`); + + case "trimmed": + r.push(`${slave.hColor} hair is trimmed short.`); + + case "afro": + r.push(`${slave.hColor} hair is in a`); + if (slave.hLength > 100) { + r.push(`gigantic puffed - up afro and looks ridiculous.`); + } else if (slave.hLength > 30) { + r.push(`puffy afro.`); + } else { + r.push(`short afro.`); + } + + case "cornrows": + r.push(`${slave.hColor} hair is formed tightly into cornrows in a decorative pattern on ${his} head, dangling`); + if (slave.hLength >= 150) { + r.push(`down calf - length, `); + } else if (slave.hLength >= 100) { + r.push(`down ass - length, `); + } else if (slave.hLength >= 30) { + r.push(`down long, `); + } else if (slave.hLength >= 10) { + r.push(`down shoulder - length, `); + } else { + r.push(`down, `); + } + r.push(`with colorful beads interspersed in them.`); + + case "bun": + r.push(`${slave.hColor} hair is`); + if (slave.hLength >= 100) { + r.push(`packed tightly into a huge puffy`); + } else if (slave.hLength >= 30) { + r.push(`packed into a large`); + } else if (slave.hLength >= 10) { + r.push(`tied into a small`); + } else { + r.push(`tied into a`); + } + r.push(`bun.`); + + case "messy bun": + r.push(`${slave.hColor} hair is`); + if (slave.hLength >= 100) { + r.push(`packed tightly into a huge messy`); + } else if (slave.hLength >= 30) { + r.push(`packed into a large messy`); + } else if (slave.hLength >= 10) { + r.push(`tied into a small messy`); + } else { + r.push(`tied into a messy`); + } + r.push(`bun.`); + + case "braided": + case "curled": + case "dreadlocks": + case "luxurious": + case "neat": + case "permed": + case "ponytail": + case "strip": + case "tails": + case "up": + let _hairLength = slave.hLength / slave.height; + if (_hairLength > 0.9) { + r.push(`floor - length, `); + } else if (_hairLength > 0.8) { + r.push(`calf - length, `); + } else if (_hairLength > 0.7) { + r.push(`knee - length, `); + } else if (_hairLength >= 0.6) { + r.push(`thigh - length, `); + } else if (_hairLength >= 0.4) { + r.push(`ass - length, `); + } else if (_hairLength >= 0.2) { + r.push(`long, `); + } else if (_hairLength >= 15) { + r.push(`shoulder - length, `); + } else { + r.push(`short, `); + } + r.push(`${slave.hColor} hair`); + << HairClothingDescription >> + + default: + r.push(`${slave.hColor} hair is slave.hStyle.`); + + } + r.push(`${His} `); + if (slave.eyebrowHStyle === "bald") { + r.push(`brows do not grow hair.${His} eyebrows would be ${slave.eyebrowHColor} in color if they did.`); + } else if (slave.eyebrowHStyle === "shaved") { + r.push(`eyebrows have`); + if (slave.hStyle === "shaved" || slave.hStyle === "shaved bald") { + r.push(`also`); + } + r.push(`been shaved off.If they were visible, they would be ${slave.eyebrowHColor} in color.`); + } else { + r.push(`${slave.eyebrowHColor} eyebrows`); + switch (slave.eyebrowHStyle) { + case "slanted inwards": + r.push(`slant inwards from the sides of ${his} forehead down to the center of ${his} head.`); + case "slanted outwards": + r.push(`slant outwards from the center of ${his} head down to the sides of ${his} forehead.`); + case "rounded": + r.push(`form perfect semicircles.`); + case "natural": + r.push(`naturally contour to the shape of ${his} brow.`); + case "curved": + r.push(`form small "S" - shaped curves above ${his} eyes.`); + case "straight": + r.push(`are near perfectly straight, instead of curving.`); + case "high-arched": + r.push(`form tall arches on ${his} forehead.`); + case "elongated": + r.push(`are elongated to cover far more of ${his} brow than what would be considered average.`); + case "shortened": + r.push(`are shortened to cover far less of ${his} brow than what would be considered average.`); + default: + r.push(`are styled to be ${ + slave.eyebrowHStyle.`); + } + r.push(`They + } 're`); + switch (slave.eyebrowFullness) { + case "pencil-thin": + r.push(`incredibly and unnaturally light and thin.`); + case "thin": + r.push(`considerably thinner than what would be considered average.`); + case "threaded": + r.push(`styled to be thinner on the sides but otherwise normal.`); + case "natural": + r.push(`kept to a natural level of fullness.`); + case "tapered": + r.push(`styled to be thicker in the center but otherwise normal.`); + case "thick": + r.push(`considerably thicker than what would be considered average.`); + case "bushy": + r.push(`incredibly and unnaturally full and bushy.`); + default: + r.push(`${slave.eyebrowFullness.`); + } + } + }} else { + if (slave.hLength > 20) { + r.push(`hair sticks out of the suit in two`); + if (slave.hLength > 100) { + r.push(`extremely long`); + } else if (slave.hLength > 40) { + r.push(`long`); + } else { + r.push(`short`); + } + r.push(` tails, which can be used as handles when using the Fuckdoll's `); + if (slave.vagina > -1) { + r.push(`lower holes`); + } else { + r.push(`rear hole`); + } + r.push(`.`); + } else if (slave.hLength > 5) { + r.push(`short hair is tightly covered by the suit.`); + } else { + r.push(`scalp is tightly covered by the suit.`); + } + } + return r.join(" "); + }; diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw index f5c418ab53a33d4071537210e5c69c2570df0e29..8bbf589512a7bde5c84045c66827d6f6ba363a62 100644 --- a/src/uncategorized/longSlaveDescription.tw +++ b/src/uncategorized/longSlaveDescription.tw @@ -1840,7 +1840,7 @@ $He is <<upperFaceDescription>> - <<HairDescription>> + <<= App.Desc.hair($activeSlave)>> <<else>> $His hair is $activeSlave.hColor<<if $activeSlave.hColor != $activeSlave.eyebrowHColor>>, with $activeSlave.eyebrowHColor eyebrows<</if>>. diff --git a/src/utility/descriptionWidgetsStyle.tw b/src/utility/descriptionWidgetsStyle.tw index 0937ae3aaf042f83baa39e88810ad30054dd6dae..bbb3e2f4c5c2bcfa92cc48bb5ba5ddcaf8b8a7e7 100644 --- a/src/utility/descriptionWidgetsStyle.tw +++ b/src/utility/descriptionWidgetsStyle.tw @@ -1,161 +1,5 @@ :: clothing description widgets [widget nobr] -<<widget "HairDescription">> - -$His -<<if $activeSlave.fuckdoll == 0>> - <<switch $activeSlave.hStyle>> - - <<case "bald">> - hair no longer grows. If it did, it would be $activeSlave.origHColor. - - <<case "shaved" "shaved bald">> - hair has been shaved. If $his hair were visible, it would be $activeSlave.hColor. - - <<case "buzzcut">> - $activeSlave.hColor hair is in a short buzzcut. - - <<case "trimmed">> - $activeSlave.hColor hair is trimmed short. - - <<case "afro">> - $activeSlave.hColor hair is in a - <<if $activeSlave.hLength > 100>> - gigantic puffed-up afro and looks ridiculous. - <<elseif $activeSlave.hLength > 30>> - puffy afro. - <<else>> - short afro. - <</if>> - - <<case "cornrows">> - $activeSlave.hColor hair is formed tightly into cornrows in a decorative pattern on $his head, dangling - <<if $activeSlave.hLength >= 150>> - down calf-length, - <<elseif $activeSlave.hLength >= 100>> - down ass-length, - <<elseif $activeSlave.hLength >= 30>> - down long, - <<elseif $activeSlave.hLength >= 10>> - down shoulder-length, - <<else>> - down, - <</if>> - with colorful beads interspersed in them. - - <<case "bun">> - $activeSlave.hColor hair is - <<if $activeSlave.hLength >= 100>> - packed tightly into a huge puffy - <<elseif $activeSlave.hLength >= 30>> - packed into a large - <<elseif $activeSlave.hLength >= 10>> - tied into a small - <<else>> - tied into a - <</if>> - bun. - - <<case "messy bun">> - $activeSlave.hColor hair is - <<if $activeSlave.hLength >= 100>> - packed tightly into a huge messy - <<elseif $activeSlave.hLength >= 30>> - packed into a large messy - <<elseif $activeSlave.hLength >= 10>> - tied into a small messy - <<else>> - tied into a messy - <</if>> - bun. - - <<case "braided" "curled" "dreadlocks" "luxurious" "neat" "permed" "ponytail" "strip" "tails" "up">> - <<set _hairLength = $activeSlave.hLength/$activeSlave.height>> - <<if _hairLength > 0.9>> - floor-length, - <<elseif _hairLength > 0.8>> - calf-length, - <<elseif _hairLength > 0.7>> - knee-length, - <<elseif _hairLength >= 0.6>> - thigh-length, - <<elseif _hairLength >= 0.4>> - ass-length, - <<elseif _hairLength >= 0.2>> - long, - <<elseif _hairLength >= 15>> - shoulder-length, - <<else>> - short, - <</if>> - $activeSlave.hColor hair - <<HairClothingDescription>> - - <<default>> - $activeSlave.hColor hair is $activeSlave.hStyle. - - <</switch>> - $His - <<if $activeSlave.eyebrowHStyle == "bald">> - brows do not grow hair. $His eyebrows would be $activeSlave.eyebrowHColor in color if they did. - <<elseif $activeSlave.eyebrowHStyle == "shaved">> - eyebrows have <<if $activeSlave.hStyle == "shaved" || $activeSlave.hStyle == "shaved bald">>also <</if>>been shaved off. If they were visible, they would be $activeSlave.eyebrowHColor in color. - <<else>> - $activeSlave.eyebrowHColor eyebrows - <<switch $activeSlave.eyebrowHStyle>> - <<case "slanted inwards">> - slant inwards from the sides of $his forehead down to the center of $his head. - <<case "slanted outwards">> - slant outwards from the center of $his head down to the sides of $his forehead. - <<case "rounded">> - form perfect semicircles. - <<case "natural">> - naturally contour to the shape of $his brow. - <<case "curved">> - form small "S"-shaped curves above $his eyes. - <<case "straight">> - are near perfectly straight, instead of curving. - <<case "high-arched">> - form tall arches on $his forehead. - <<case "elongated">> - are elongated to cover far more of $his brow than what would be considered average. - <<case "shortened">> - are shortened to cover far less of $his brow than what would be considered average. - <<default>> - are styled to be $activeSlave.eyebrowHStyle. - <</switch>> - They're - <<switch $activeSlave.eyebrowFullness>> - <<case "pencil-thin">> - incredibly and unnaturally light and thin. - <<case "thin">> - considerably thinner than what would be considered average. - <<case "threaded">> - styled to be thinner on the sides but otherwise normal. - <<case "natural">> - kept to a natural level of fullness. - <<case "tapered">> - styled to be thicker in the center but otherwise normal. - <<case "thick">> - considerably thicker than what would be considered average. - <<case "bushy">> - incredibly and unnaturally full and bushy. - <<default>> - $activeSlave.eyebrowFullness. - <</switch>> - <</if>> -<<else>> - <<if $activeSlave.hLength > 20>> - hair sticks out of the suit in two <<if $activeSlave.hLength > 100>>extremely long<<elseif $activeSlave.hLength > 40>>long<<else>>short<</if>> tails, which can be used as handles when using the Fuckdoll's <<if $activeSlave.vagina > -1>>lower holes<<else>>rear hole<</if>>. - <<elseif $activeSlave.hLength > 5>> - short hair is tightly covered by the suit. - <<else>> - scalp is tightly covered by the suit. - <</if>> -<</if>> - -<</widget>> - <<widget "HairClothingDescription">> <<if $activeSlave.fuckdoll == 0>>