diff --git a/js/003-data/slaveMods.js b/js/003-data/slaveMods.js index 509d9a710294c24d5bf99d0da59e9e458696dca0..5a3c46fd8134190a69b6cf642dfcef65aa7e14fd 100644 --- a/js/003-data/slaveMods.js +++ b/js/003-data/slaveMods.js @@ -343,6 +343,10 @@ App.Medicine.Modification.hairStyles = { title: "Up", value: "up" }, + { + title: "Half-Shaved", + value: "undercut" + }, ], Cut: [ { diff --git a/src/npc/children/longChildDescription.js b/src/npc/children/longChildDescription.js index 40644f4da5d3f17367f608510420d249eb484312..1ba47693ebfd2681e86c577589fb1717160abd10 100644 --- a/src/npc/children/longChildDescription.js +++ b/src/npc/children/longChildDescription.js @@ -3642,6 +3642,62 @@ App.Facilities.Nursery.LongChildDescription = function(child, {market = 0, event r += `is shaved into a mohawk. `; } break; + case "undercut": + if (child.hLength > 100) { + switch (child.clothes) { + case "a schoolgirl outfit": + r += `is shaved to one side in an extremely long undercut with scores of tiny pastel bows woven into it. `; + break; + case "a t-shirt": + case "an oversized t-shirt": + r += `is shaved to one side in an extremely long undercut kept out of ${his} face by a couple of cute hairpins. `; + break; + case "a tank-top": + case "a tube top": + r += `is shaved to one side in an extremely long undercut kept out of ${his} face by a couple of black hairpins. `; + break; + default: + r += `is shaved to one side in an extremely long undercut falling well past ${his} chest. `; + break; + } + } else if (child.hLength > 30) { + switch (child.clothes) { + case "a schoolgirl outfit": + r += `is shaved into a long, flowing undercut with tiny pastel bows woven into it. `; + break; + case "a t-shirt": + case "an oversized t-shirt": + r += `is shaved into a long, flowing undercut kept out of ${his} face by a couple of cute hairpins. `; + break; + case "a tank-top": + case "a tube top": + r += `is shaved into a long, flowing undercut kept out of ${his} face by a couple of black hairpins. `; + break; + default: + r += `is shaved to one side, the other half falling down to their neck. `; + break; + } + } else if (child.hLength > 10) { + switch (child.clothes) { + case "a schoolgirl outfit": + r += `is shaved on one side of ${his} head with tiny pastel bows woven into it. `; + break; + case "a t-shirt": + case "an oversized t-shirt": + r += `is shaved on one side of ${his} head, kept out of ${his} face by a couple of cute hairpins. `; + break; + case "a tank-top": + case "a tube top": + r += `is shaved on one side of ${his} head, kept out of ${his} face by a couple of black hairpins. `; + break; + default: + r += `is shaved to one side, the other half falling just over one eye. `; + break; + } + } else { + r += `is shaved to one side in a pixie-like undercut. `; + } + break; case "bald": r += `is completely bald. `; break; diff --git a/src/npc/descriptions/style/hair.js b/src/npc/descriptions/style/hair.js index 0da7d91d403eb8313743c495e5505295b6953908..fde15c0e21ca312b1dac6626b471cf98c20f6488 100644 --- a/src/npc/descriptions/style/hair.js +++ b/src/npc/descriptions/style/hair.js @@ -84,6 +84,7 @@ App.Desc.hair = function(slave) { case "permed": case "ponytail": case "strip": + case "undercut": case "tails": case "up": if (hairLength > 0.9) { diff --git a/src/npc/descriptions/style/hairClothing.js b/src/npc/descriptions/style/hairClothing.js index f77ef2c347b7a84b304c2fe3dc0db663188429ea..9a5f27b2c6253dd26958e947b31a281c4fc1c986 100644 --- a/src/npc/descriptions/style/hairClothing.js +++ b/src/npc/descriptions/style/hairClothing.js @@ -5273,6 +5273,413 @@ App.Desc.hairClothing = function(slave) { } } break; + case "undercut": + if (slave.hLength > 100) { + switch (slave.clothes) { + case "chains": + case "uncomfortable straps": + case "restrictive latex": + case "shibari ropes": + case "a latex catsuit": + case "Western clothing": + r.push(`is shaved to one side under ${his} cowboy hat, flowing out well past ${his} face and all the way down to ${his} breasts.`); + break; + case "a Santa dress": + r.push(`is shaved to one side under ${his} festive hat, flowing out well past ${his} face and all the way down to ${his} breasts.`); + break; + case "body oil": + case "a huipil": + case "a kimono": + r.push(`is shaved to one side in an extremely long undercut, with scores of little ivory talismans woven into it.`); + break; + case "a slutty qipao": + r.push(`is shaved to one side in an extremely long undercut, with scores of traditional Chinese coins woven into it.`); + break; + case "battledress": + r.push(`is shaved to one side in an extremely long undercut, stiffened so it won't get in ${his} way.`); + break; + case "harem gauze": + r.push(`is shaved to one side in an extremely long undercut with scores of little golden bells woven into it.`); + break; + case "a fallen nuns habit": + r.push(`is shaved to one side in an extremely long undercut with scores of little silver crosses hanging from it.`); + break; + case "a chattel habit": + r.push(`is shaved to one side that cascades out from under ${his} cowl, and has scores of little golden ornaments in lewd shapes woven into it.`); + break; + case "a penitent nuns habit": + r.push(`is shaved to one side in an extremely long undercut decently covered by an extra-long surplice.`); + break; + case "a schoolgirl outfit": + r.push(`is shaved to one side in an extremely long undercut with scores of tiny pastel bows woven into it.`); + break; + case "a slutty maid outfit": + case "a nice maid outfit": + r.push(`is shaved to one side in an extremely long undercut with scores of tiny black bows woven into it.`); + break; + case "a burkini": + case "a burqa": + case "a hijab and abaya": + case "a hijab and blouse": + case "a niqab and abaya": + r.push(`is shaved to one side in an extremely long undercut that's hidden by ${his} niqab.`); + break; + case "a klan robe": + case "a slutty klan robe": + r.push(`is shaved to one side in an extremely long undercut that's hidden by ${his} hood.`); + break; + case "a police uniform": + case "overalls": + r.push(`is shaved to one side in an extremely long undercut kept out of ${his} face by a couple of sturdy hairpins.`); + break; + case "a hanbok": + case "a one-piece swimsuit": + r.push(`is shaved to one side in an extremely long undercut kept out of ${his} face by a couple of simple barrettes.`); + break; + case "a gothic lolita dress": + r.push(`is shaved to one side in an extremely long undercut kept out of ${his} face by a dark-colored headband.`); + break; + case "a bra": + case "a button-up shirt": + case "a sweater": + case "a striped bra": + case "striped underwear": + case "a sweater and panties": + case "a t-shirt": + case "an oversized t-shirt and boyshorts": + case "an oversized t-shirt": + case "a t-shirt and jeans": + case "boyshorts": + case "cutoffs": + case "panties": + case "a t-shirt and panties": + case "panties and pasties": + case "pasties": + case "a sweater and cutoffs": + case "a button-up shirt and panties": + r.push(`is shaved to one side in an extremely long undercut kept out of ${his} face by a couple of cute hairpins.`); + break; + case "a sports bra": + case "sport shorts and a t-shirt": + case "sport shorts and a sports bra": + case "sport shorts": + r.push(`is shaved to one side in an extremely long undercut kept out of ${his} face by a couple of sporty hairpins.`); + break; + case "a tube top and thong": + case "a tank-top": + case "a thong": + case "a tube top": + case "a tank-top and panties": + case "a t-shirt and thong": + case "leather pants and pasties": + case "leather pants": + case "jeans": + case "leather pants and a tube top": + r.push(`is shaved to one side in an extremely long undercut kept out of ${his} face by a couple of black hairpins.`); + break; + case "a nice pony outfit": + case "a slutty pony outfit": + r.push(`is shaved to one side in an extremely long undercut kept out of ${his} face by a couple of black barrettes.`); + break; + case "a skimpy loincloth": + r.push(`is shaved to one side in an extremely long undercut kept out of ${his} face by a couple of bone hairpins.`); + break; + case "kitty lingerie": + r.push(`is shaved to one side atop ${his} head that cascades magnificently down one side, topped by a cat ear headband.`); + break; + case "a bimbo outfit": + r.push(`is shaved to one side, flowing out magnificently down one side and kept out of ${his} face by a couple of heart-shaped barrettes.`); + break; + default: + r.push(`is shaved on one side into a long undercut that falls well past ${his} breasts.`); + } + } else if (slave.hLength > 30) { + switch (slave.clothes) { + case "chains": + case "uncomfortable straps": + case "restrictive latex": + case "shibari ropes": + case "a latex catsuit": + case "Western clothing": + r.push(`is shaved to one side under ${his} cowboy hat, but pokes out down to ${his} neck on one side.`); + break; + case "a Santa dress": + r.push(`is shaved to one side under ${his} festive hat, but pokes out down to ${his} neck on one side.`); + break; + case "body oil": + case "a huipil": + r.push(`is shaved into a permed strip which falls down ${his} back.`); + break; + case "a kimono": + case "long qipao": + r.push(`is shaved into a long, flowing undercut with little ivory talismans woven into it.`); + break; + case "a slutty qipao": + r.push(`is shaved into a long, flowing undercut with traditional Chinese coins woven into it.`); + break; + case "battledress": + case "a military uniform": + case "a schutzstaffel uniform": + case "a slutty schutzstaffel uniform": + case "a red army uniform": + case "a mounty outfit": + case "battlearmor": + r.push(`is shaved into a long, flowing undercut.`); + break; + case "harem gauze": + r.push(`is shaved into a long, flowing undercut with little golden bells woven into it.`); + break; + case "a fallen nuns habit": + r.push(`is shaved into a long, flowing undercut with little silver crosses hanging from it.`); + break; + case "a chattel habit": + r.push(`is shaved into a long, flowing undercut that sticks out from under ${his} cowl, and has little golden ornaments in lewd shapes woven into it.`); + break; + case "a penitent nuns habit": + r.push(`is shaved into a long, flowing undercut, decently covered by a roomy surplice.`); + break; + case "a schoolgirl outfit": + case "lederhosen": + case "a dirndl": + case "a biyelgee costume": + r.push(`is shaved into a long, flowing undercut with tiny pastel bows woven into it.`); + break; + case "a slutty maid outfit": + case "a nice maid outfit": + r.push(`is shaved into a long, flowing undercut with tiny black bows woven into it.`); + break; + case "a burkini": + case "a burqa": + case "a hijab and abaya": + case "a hijab and blouse": + case "a niqab and abaya": + r.push(`is shaved into a long, flowing undercut, hidden by ${his} head covering.`); + break; + case "a klan robe": + case "a slutty klan robe": + r.push(`is shaved into a long, flowing undercut, hidden by ${his} hood.`); + break; + case "a police uniform": + case "overalls": + r.push(`is shaved into a long, flowing undercut and kept out of ${his} face by a couple of sturdy hairpins.`); + break; + case "a hanbok": + r.push(`is shaved into a long, flowing undercut and flows down ${his} back, rustling freely in the wind.`); + break; + case "a one-piece swimsuit": + r.push(`is shaved into a long, flowing undercut and is kept out of ${his} face by a couple of simple barrettes.`); + break; + case "a gothic lolita dress": + r.push(`is shaved into a long, flowing undercut and is kept out of ${his} face by a dark-colored headband.`); + break; + case "a bra": + case "a button-up shirt": + case "a sweater": + case "a striped bra": + case "striped underwear": + case "a sweater and panties": + case "a t-shirt": + case "an oversized t-shirt and boyshorts": + case "an oversized t-shirt": + case "a t-shirt and jeans": + case "boyshorts": + case "cutoffs": + case "panties": + case "a t-shirt and panties": + case "panties and pasties": + case "pasties": + case "a sweater and cutoffs": + case "a button-up shirt and panties": + r.push(`is shaved into a long, flowing undercut and is kept out of ${his} face by a couple of cute hairpins.`); + break; + case "a sports bra": + case "sport shorts and a t-shirt": + case "sport shorts and a sports bra": + case "sport shorts": + r.push(`is shaved into a long, flowing undercut and is kept out of ${his} face by a couple of sporty hairpins.`); + break; + case "a tube top and thong": + case "a tank-top": + case "a thong": + case "a tube top": + case "a tank-top and panties": + case "a t-shirt and thong": + case "leather pants and pasties": + case "leather pants": + case "jeans": + case "leather pants and a tube top": + r.push(`is shaved into a long, flowing undercut and is kept out of ${his} face by a couple of black hairpins.`); + break; + case "a nice pony outfit": + case "a slutty pony outfit": + r.push(`is shaved into a long, flowing undercut and is kept out of ${his} face by a couple of black barrettes.`); + break; + case "a skimpy loincloth": + r.push(`is shaved into a long, flowing undercut and is kept out of ${his} face by a couple of bone hairpins.`); + break; + case "kitty lingerie": + r.push(`is shaved into a long, flowing undercut and topped by a cat ear headband.`); + break; + case "a bimbo outfit": + r.push(`is shaved into a long, flowing undercut and kept out of ${his} face by a couple of heart-shaped barrettes.`); + break; + default: + r.push(`is shaved to one side, the other half falling down to their neck.`); + } + } else if (slave.hLength > 10) { + switch (slave.clothes) { + case "chains": + case "uncomfortable straps": + case "restrictive latex": + case "shibari ropes": + case "a latex catsuit": + case "Western clothing": + r.push(`is shaved to one side under ${his} cowboy hat, with just the slightest trace of ${his} hair poking out on the unshaven side.`); + break; + case "a Santa dress": + r.push(`is shaved to one side under ${his} festive hat, with just the slightest trace of ${his} hair poking out on the unshaven side.`); + break; + case "body oil": + case "a huipil": + case "a kimono": + case "a long qipao": + r.push(`is shaved to one side in a flowing undercut with little ivory talismans woven into it.`); + break; + case "a slutty qipao": + r.push(`is shaved to one side in a flowing undercut with traditional Chinese coins woven into it.`); + break; + case "battledress": + case "a military uniform": + case "a schutzstaffel uniform": + case "a slutty schutzstaffel uniform": + case "a red army uniform": + case "a mounty outfit": + case "battlearmor": + r.push(`is shaved to one side in an undercut that bristles against ${his} armor.`); + break; + case "harem gauze": + r.push(`is shaved to one side in a flowing undercut with little golden bells woven into it.`); + break; + case "a fallen nuns habit": + r.push(`is shaved to one side in a flowing undercut with little silver crosses hanging from it.`); + break; + case "a chattel habit": + r.push(`is shaved to one side with little golden ornaments in lewd shapes woven into it.`); + break; + case "a penitent nuns habit": + r.push(`is shaved to one side in a flowing undercut decently covered by ${his} surplice.`); + break; + case "a schoolgirl outfit": + case "lederhosen": + case "a dirndl": + case "a biyelgee costume": + case "striped panties": + r.push(`is shaved to one side in a flowing undercut with tiny pastel bows woven into it.`); + break; + case "a slutty maid outfit": + case "a nice maid outfit": + r.push(`is shaved to one side in a flowing udnercut with tiny black bows woven into it.`); + break; + case "a burkini": + case "a burqa": + case "a hijab and abaya": + case "a hijab and blouse": + case "a niqab and abaya": + r.push(`is shaved to one side in a flowing undercut, kept hidden by ${his} head covering.`); + break; + case "a klan robe": + case "a slutty klan robe": + r.push(`is shaved to one side in a flowing undercut, kept hidden by ${his} hood.`); + break; + case "a police uniform": + case "overalls": + r.push(`is shaved to one side and kept out of ${his} face by a couple of sturdy hairpins.`); + break; + case "a hanbok": + case "a one-piece swimsuit": + r.push(`is shaved to one side and is kept out of ${his} face by a couple of simple barrettes.`); + break; + case "a gothic lolita dress": + r.push(`is shaved to one side and is kept out of ${his} face by a dark-colored headband.`); + break; + case "a bra": + case "a button-up shirt": + case "a sweater": + case "a striped bra": + case "striped underwear": + case "a sweater and panties": + case "a t-shirt": + case "an oversized t-shirt and boyshorts": + case "an oversized t-shirt": + case "a t-shirt and jeans": + case "boyshorts": + case "cutoffs": + case "panties": + case "a t-shirt and panties": + case "panties and pasties": + case "pasties": + case "a sweater and cutoffs": + case "a button-up shirt and panties": + r.push(`is shaved to one side and is kept out of ${his} face by a couple of cute hairpins.`); + break; + case "a sports bra": + case "sport shorts and a t-shirt": + case "sport shorts and a sports bra": + case "sport shorts": + r.push(`is shaved to one side and is kept out of ${his} face by a couple of sporty hairpins.`); + break; + case "a tube top and thong": + case "a tank-top": + case "a thong": + case "a tube top": + case "a tank-top and panties": + case "a t-shirt and thong": + case "leather pants and pasties": + case "leather pants": + case "jeans": + case "leather pants and a tube top": + r.push(`is shaved to one side and is kept out of ${his} face by a couple of black hairpins.`); + break; + case "a nice pony outfit": + case "a slutty pony outfit": + r.push(`is shaved to one side and is kept out of ${his} face by a couple of black barrettes.`); + break; + case "a skimpy loincloth": + r.push(`is shaved to one side and is kept out of ${his} face by a couple of bone hairpins.`); + break; + case "kitty lingerie": + r.push(`is shaved to one side and topped by a cat ear headband.`); + break; + case "a bimbo outfit": + r.push(`is shaved to one side and kept out of ${his} face by a couple of heart-shaped barrettes.`); + break; + default: + r.push(`is shaved to one side, the other half falling just over one eye.`); + } + } else { + switch (slave.clothes) { + case "a burkini": + case "a burqa": + case "a hijab and abaya": + case "a hijab and blouse": + case "a niqab and abaya": + r.push(`is totally hidden by ${his} modest garb.`); + break; + case "a klan robe": + case "a slutty klan robe": + r.push(`is totally hidden by ${his} hood.`); + break; + case "a scalemail bikini": + r.push(`is shaved to one side in a pixie-like undercut topped by a gold headband.`); + break; + case "kitty lingerie": + r.push(`is shaved to one side into a pixie-like undercut completed by an adorable cat-ear headband.`); + break; + default: + r.push(`is shaved to one side in a pixie-like undercut.`); + } + } + break; case "bald": r.push(`is completely bald.`); }