From eeefcd02e6f9c481ee1121faef4584fadd2dfe0e Mon Sep 17 00:00:00 2001 From: lowercasedonkey <lowercasedonkey@gmail.com> Date: Wed, 3 Jun 2020 21:35:59 -0400 Subject: [PATCH] finish tat and polish --- src/npc/descriptions/describeTattoos.js | 862 +++++++++++++++++++++++- 1 file changed, 851 insertions(+), 11 deletions(-) diff --git a/src/npc/descriptions/describeTattoos.js b/src/npc/descriptions/describeTattoos.js index e72c47190dc..58c4af2c6cb 100644 --- a/src/npc/descriptions/describeTattoos.js +++ b/src/npc/descriptions/describeTattoos.js @@ -74,45 +74,885 @@ App.Desc.tattoo = function(slave, surface) { break; } case "lips": { - r += `<<lipsTatDescription>>`; + /* Fuckdoll vulva and anus alone are visibile, plus enormus lips */ + if (slave.fuckdoll === 0 || slave.lips > 95) { + if (slave.lipsTat !== 0) { + switch (slave.lipsTat) { + case "tribal patterns": + r.push(`${His} face is tattooed with tribal patterns that make ${him} seem mysterious and exotic.`); + break; + case "flowers": + r.push(`${His} minimal facial tattoos are limited to a cute flower on each cheek.`); + break; + case "counting": + if (slave.counter.oral === 0) { + r.push(`There is a horizontal line tattooed across the ${his} cheeks for symbols counting ${his} oral totals to be inscribed under, once ${he} has some.`); + } else if (slave.counter.oral < 500) { + r.push(`Tiny dick, pussy, and anus symbols are tattooed all over ${his} cheeks, one for every thing ${he}'s sucked.`); + } else { + r.push(`Tiny dick, pussy, and anus symbols are tattooed all over ${his} face, forehead, and neck, one for every thing ${he}'s sucked.`); + } + break; + case "advertisements": + r.push(`${His} facial tattoos include 'Facefuck Me' across ${his} forehead, 'Cock' to the left of ${his} mouth, and 'Sucker' to the right of it.`); + break; + case "rude words": + r.push(`${His} facial tattoos include 'Sex Slave' across ${his} forehead, 'Face' to the left of ${his} mouth, and 'Pussy' to the right of it.`); + break; + case "degradation": + r.push(`'${V.desc}' is tattooed across ${his} forehead.`); + break; + case "Asian art": + r.push(`${He} has a blossoming cherry tree tattooed on one temple; its pink petals are dappled across ${his} cheeks.`); + break; + case "bovine patterns": + r.push(`${His} face is subtly tattooed to give ${him} a somewhat bovine appearance.`); + break; + case "permanent makeup": + if (slave.makeup !== 0) { + r.push(`${His} normal makeup is difficult to distinguish from the underlying tattoo.`); + } + break; + case "sacrilege": + r.push(`${His} face is subtly tattooed to give ${him} a decidedly demonic appearance.`); + break; + case "sacrament": + r.push(`${His} face is subtly tattooed to give ${him} a decidedly angelic appearance.`); + break; + case "possessive": + r.push(`'Property of ${PlayerName()}' is tattooed across ${his} forehead.`); + break; + case "paternalist": + r.push(`'Beloved ${V.desc}' is tattooed across one of ${his} cheeks.`); + break; + default: + r.push(slave.lipsTat); + break; + } + } + } break; } case "breast": { - r += `<<boobsTatDescription>>`; + if (slave.fuckdoll === 0) { + if (slave.boobsTat !== 0) { + switch (slave.boobsTat) { + case "tribal patterns": + r.push(`${His} chest and breasts are tattooed with tribal patterns that focus attention on ${his} nipples.`); + break; + case "flowers": + r.push(`${His} chest is tattooed with a pattern of flowering vines that delicately outlines ${his} breasts.`); + break; + case "counting": + if (slave.counter.mammary === 0) { + r.push(`There is a horizontal line tattooed across ${his} middle chest for symbols counting ${his} mammary encounters to be inscribed under, once ${he} has some.`); + } else if (slave.counter.mammary < 500) { + r.push(`Tiny dick, lips, breast, and even pussy symbols are tattooed all over ${his} cleavage, one for each of ${his} mammary encounters.`); + } else { + r.push(`Tiny dick, lips, breast, and even pussy symbols cover ${his} breasts, cleavage, and sides, one for each of ${his} mammary encounters.`); + } + break; + case "advertisements": + r.push(`'Fuck Me!' is tattooed across ${his} chest in such large letters that the word is visible a long way off.`); + break; + case "rude words": + r.push(`'Fuckslave' is tattooed across ${his} chest in such large letters that the word is visible a long way off.`); + break; + case "degradation": + r.push(`'${WrittenMaster(slave)}'s' is tattooed across the top of ${his} right breast; 'Bitch' is tattooed across the top of ${his} left.`); + break; + case "Asian art": + r.push(`An octopus is tattooed on ${his} upper chest; its tentacles reach down to envelop ${his} breasts, their tips reaching for but not quite reaching each nipple.`); + break; + case "scenes": + r.push(`${His} chest is tattooed with lewd scenes; each of ${his} breasts shows a phallus receiving a titfuck while each of ${his} collarbones shows a ${woman} deepthroating a large phallus.`); + break; + case "bovine patterns": + r.push(`${His} chest is tattooed to look like a Holstein cow's, with ${his} udders left bare to draw attention to them.`); + break; + case "sacrilege": + r.push(`Each of ${his} breasts is tattooed with a depiction of a pentagram, with ${his} nipples forming the center.`); + break; + case "sacrament": + r.push(`Each of ${his} breasts is tattooed with a depiction of a crucifix, with ${his} nipples forming the center.`); + break; + case "possessive": + r.push(`Your personal symbol is tattooed above ${his} left breast, '${PlayerName()}' above ${his} right, leaving the rest of ${his} chest and breasts bare.`); + break; + case "paternalist": + r.push(`'${WrittenMaster(slave)}'s' is tattooed across the top of ${his} right breast; 'Darling' is tattooed across the top of ${his} left.`); + break; + default: + r.push(slave.boobsTat); + break; + } + } + } break; } case "upper arm": { /* technically the old widget describes the ENTIRE arm, but we are going to display it here to preserve order */ - r += `<<armsTatDescription>>`; + if (slave.fuckdoll === 0 && hasAnyArms(slave)) { + if (slave.armsTat !== 0) { + let arms; + if (!hasBothArms(slave)) { + arms = "arm"; + } else { + arms = "arms"; + } + switch (slave.armsTat) { + case "tribal patterns": + r.push(`${His} tribal tattoos run down ${his} ${arms}.`); + break; + case "flowers": + r.push(`${His} floral tattoos run down ${his} ${arms} to end in a pretty bloom on the back of`); + if (hasBothArms(slave)) { + r.push(`each hand.`); + } else { + r.push(`${his} hand.`); + } + break; + case "counting": + if (slave.counter.oral === 0) { + r.push(`There are horizontal lines tattooed around ${his} fore${arms}, creating a blank space to permanently tally future sexual exploits.`); + } else if (slave.counter.oral < 500) { + r.push(`Tiny dick, pussy, and anus symbols are tattooed on ${his} fore${arms}, one for each organ ${he}'s manually pleasured.`); + } else { + r.push(`Tiny dick, pussy, and anus symbols are tattooed all over`); + if (hasBothArms(slave)) { + r.push(`both of`); + } + r.push(`${his} ${arms}, one for each organ ${he}'s manually pleasured.`); + } + break; + case "advertisements": + r.push(`${His} right arm is tattooed with a price list for use if ${he}'s whoring, and ${his} left with a simple tourist guide for use if ${he}'s serving the public.`); + break; + case "rude words": + r.push(`${His} ${arms}`); + if (hasBothArms(slave)) { + r.push(`have`); + } else { + r.push(`has`); + } + r.push(`helpful instructions on how to restrain ${him} for rape, including indications of the best anchor points at ${his}`); + if (hasBothArms(slave)) { + r.push(`wrists.`); + } else { + r.push(`wrist.`); + } + break; + case "degradation": + if (slave.dick > 0) { + if (slave.vagina > -1) { + if (slave.boobs > 600) { + r.push(`'Boobs Pussy Cock Asshole' is tattooed on ${his} left arm, and 'Suck Fuck Hurt Rape' is tattooed on ${his} right.`); + } else { + r.push(`'Half Pussy & Half Cock' is tattooed on ${his} left arm, and 'All Whore' is tattooed on ${his} right.`); + } + } else if (slave.boobs > 600) { + r.push(`'I didn't use to have boobs' is tattooed on ${his} left arm, and 'I didn't always take it up the ass' is tattooed on ${his} right.`); + } else { + r.push(`'I promise to cum buckets' is tattooed on ${his} left arm, and 'If you fuck my butt' is tattooed on ${his} right.`); + } + } else { + if (slave.boobs > 800 && slave.lactation > 0) { + r.push(`'Grade AAA Milker' is tattooed on ${his} left arm, and 'Grade AAA Breeder' is tattooed on ${his} right.`); + } else if ((slave.visualAge > 35)) { + r.push(`'Please let Mommy suck your cock' is tattooed on ${his} left arm, and 'Please rape Mommy's cunt' is tattooed on ${his} right.`); + } else if ((slave.visualAge < 25)) { + r.push(`'Teach me how to suck cock' is tattooed on ${his} left arm, and 'Teach me how to take dick' is tattooed on ${his} right.`); + } else { + r.push(`'There are many sex slaves like me' is tattooed on ${his} left arm, and 'But this one is ${WrittenMaster(slave)}'s' is tattooed on ${his} right.`); + } + } + break; + case "Asian art": + r.push(`Tattoos of fierce dragons wind around both ${his} arms.`); + break; + case "scenes": + r.push(`${His} lewd tattoos cover ${his} ${arms}; they include lots of little vignettes of sex, with dates to show when ${he} was first fucked like that.`); + break; + case "bovine patterns": + r.push(`Tattoos of cow-like spots cover ${his} ${arms}, but stop short of`); + if (hasBothArms(slave)) { + r.push(`each of ${his} elbows.`); + } else { + r.push(`${his} elbow.`); + } + break; + case "sacrilege": + r.push(`Tattoos of swirling flames run down ${his} ${arms}.`); + break; + case "sacrament": + r.push(`Tattoos of swirling thorns run down ${his} ${arms}, culminating in a stylized depiction of a bloody nail on the back of each hand.`); + break; + case "possessive": + r.push(`${His} arm tattoos depict notable moments during ${his} enslavement by you, culminating in a stylized rendition of your first initial on ${his} left hand and your second on the right.`); + break; + case "paternalist": + if (slave.dick > 0) { + if (slave.vagina > -1) { + if (slave.boobs > 600) { + r.push(`'Boobs Pussy Cock Asshole' is tattooed on ${his} left arm, and 'Caress Pleasure Stroke Stretch' is tattooed on ${his} right.`); + } else { + r.push(`'Half Pussy & Half Cock' is tattooed on ${his} left arm, and 'All Loved' is tattooed on ${his} right.`); + } + } else if (slave.boobs > 600) { + r.push(`'I didn't use to have boobs' is tattooed on ${his} left arm, and 'And now I do!' is tattooed on ${his} right.`); + } else { + r.push(`'I promise to cum buckets' is tattooed on ${his} left arm, and 'If you treat me right' is tattooed on ${his} right.`); + } + } else { + if (slave.boobs > 800 && slave.lactation > 0) { + r.push(`'Please drink' is tattooed on ${his} left arm, and 'All my milk' is tattooed on ${his} right.`); + } else if ((slave.visualAge > 35)) { + r.push(`'Please let Mommy worship your cock' is tattooed on ${his} left arm, and 'Please pleasure Mommy's pussy' is tattooed on ${his} right.`); + } else if ((slave.visualAge < 25)) { + r.push(`'Please teach me how to suck cock' is tattooed on ${his} left arm, and 'Please teach me how to fuck' is tattooed on ${his} right.`); + } else { + r.push(`'There are many sex slaves like me' is tattooed on ${his} left arm, and 'But ${WrittenMaster(slave)} loves me' is tattooed on ${his} right.`); + } + } + break; + default: + r.push(slave.armsTat); + break; + } + } + } break; } case "back": { - r += `<<backTatDescription>>`; + if (slave.fuckdoll === 0) { + if (slave.backTat !== 0) { + switch (slave.backTat) { + case "tribal patterns": + r.push(`${He} has a totem of ${his} spirit animal tattooed across ${his} back.`); + break; + case "flowers": + r.push(`${His} back is covered in hundreds of beautiful flower tattoos; one could spend half an hour examining them all.`); + break; + case "counting": + r.push(`${His} back is tattooed with tick marks to count the days of ${his} sexual`); + if (slave.weekAcquired === 0) { + r.push(`enslavement to you. There are a lot of them.`); + } else { + let daysEnslaved = ((V.week - slave.weekAcquired) * 7) + jsRandom(-3, 3); + if (daysEnslaved < 10) { + r.push(`slavery here. There are only a few.`); + } else { + r.push(`slavery here: ${daysEnslaved} of them.`); + } + } + break; + case "advertisements": + r.push(`${He} has an ad for the arcology itself tattooed across ${his} back.`); + break; + case "rude words": + r.push(`'Sex Slave' is tattooed across ${his} back; the tattoo uses the broad space to make each letter`); + if (V.showInches === 2) { + r.push(`six inches`); + } else { + r.push(`fifteen centimeters`); + } + r.push(`tall, so that ${his} identity can be read from hundreds of`); + if (V.showInches === 2) { + r.push(`yards`); + } else { + r.push(`meters`); + } + r.push(`off.`); + break; + case "degradation": + r.push(`${He} has`); + if (slave.dick > 0) { + if (slave.vagina > -1) { + if (slave.boobs > 600) { + r.push(`'Futa`); + if (slave.visualAge > 35) { + r.push(`MILF`); + } + r.push(`Slave'`); + } else { + if (slave.visualAge > 35) { + r.push(`MILF Hermaphrodite'`); + } else { + r.push(`'Hermaphrodite'`); + } + } + } else if (slave.boobs > 600) { + r.push(`'Shemale`); + if (slave.visualAge > 35) { + r.push(`MILF`); + } + r.push(`Slave'`); + } else { + r.push(`'Dickgirl`); + if (slave.visualAge > 35) { + r.push(`MILF`); + } + r.push(`Slave'`); + } + } else { + if (slave.boobs > 800 && slave.lactation > 0) { + r.push(`'Slave Cow'`); + } else if ((slave.visualAge > 35)) { + r.push(`'MILF Slave'`); + } else if (slave.visualAge < 25) { + r.push(`'Slave Girl'`); + } else { + r.push(`'Sex Slave'`); + } + } + r.push(`tattooed across ${his} back in gothic script.`); + break; + case "Asian art": + r.push(`An Asian dragon is tattooed in a circle across ${his} back; the dragon has subtle features that, according to traditional meanings, relate it to ${his} personality.`); + break; + case "scenes": + if (slave.vagina === -1) { + r.push(`A line-art rendition of ${slave.slaveName} ${him}self cumming copiously while riding a dick is tattooed across ${his} entire back.`); + } else if (slave.lactation > 0) { + r.push(`A line-art rendition of ${slave.slaveName} ${him}self nursing a pair of ${his} fellow slaves is tattooed across ${his} entire back.`); + } else if (slave.skill.vaginal >= 100) { + r.push(`A line-art rendition of ${slave.slaveName} ${him}self performing reverse cowgirl and spreading ${his} pussy is tattooed across ${his} entire back.`); + } else if (V.PC.vagina !== -1) { + r.push(`A line-art rendition of ${slave.slaveName} ${him}self eating pussy is tattooed across ${his} entire back.`); + } else { + r.push(`A line-art rendition of ${slave.slaveName} ${him}self deepthroating a cock is tattooed across ${his} entire back.`); + } + break; + case "bovine patterns": + r.push(`${His} back is tattooed to resemble the dappled flank of a cow.`); + break; + case "sacrilege": + r.push(`${He} has a pair of blackened wings tattooed across ${his} entire back.`); + break; + case "sacrament": + r.push(`${He} has a pair of pure white wings tattooed across ${his} entire back.`); + break; + case "possessive": + r.push(`An abridged and stylized version of ${his} slave contract is tattooed across ${his} entire back.`); + break; + case "paternalist": + r.push(`${He} has your name and the location of your penthouse tattooed on ${his} upper back, so kind citizens can return ${him} to you if ${he} wanders off.`); + break; + default: + r.push(slave.backTat); + break; + } + } + } break; } case "lower back": { - r += `<<stampTatDescription>>`; + if (slave.fuckdoll === 0) { + if (slave.stampTat !== 0) { + switch (slave.stampTat) { + case "tribal patterns": + r.push(`${He} has a tribal-patterned tramp stamp.`); + break; + case "flowers": + r.push(`${He} has a floral-patterned tramp stamp.`); + break; + case "counting": + if (slave.anus === 0) { + r.push(`${He} has the dashed outline of a cock tattooed across ${his} lower back.`); + } else { + r.push(`${He} has the silhouette of the largest cock ${he}'s ever had up ${his} anus tattooed across ${his} lower back.`); + } + break; + case "advertisements": + r.push(`${He} has a tramp stamp which reads 'Fuck my ass!'`); + break; + case "rude words": + r.push(`${He} has a tramp stamp which reads 'Rear Entrance,' with an arrow pointing downward.`); + break; + case "degradation": + r.push(`${He} has a tramp stamp formed from gothic lettering that reads 'Anal Whore.'`); + break; + case "Asian art": + r.push(`A traditional Asian household scene is tattooed on ${his} lower back, showing a rendition of ${slave.slaveName}, dressed in rich silks, having sex with a`); + if (V.PC.title === 1) { + r.push(`gentleman`); + } else { + r.push(`lady`); + } + r.push(`. The slave and the`); + if (V.PC.title === 1) { + r.push(`gentleman`); + } else { + r.push(`lady`); + } + r.push(`are kissing passionately as ${getPronouns(V.PC).pronoun}`); + if (slave.vagina < 0) { + r.push(`penetrates the slave's anus.`); + } else if (slave.bellyPreg >= 1500 || slave.bellyImplant >= 1500) { + r.push(`embraces the slave's`); + if (slave.pregKnown === 1) { + r.push(`pregnant`); + } else { + r.push(`rounded`); + } + r.push(`belly.`); + } else { + r.push(`penetrates the slave's vagina.`); + } + break; + case "scenes": + r.push(`${He} has a tramp stamp which shows a cock entering an anus, recognizably ${he}rs.`); + break; + case "bovine patterns": + r.push(`${He} has an identifying barcode tattooed across ${his} lower back.`); + break; + case "sacrilege": + r.push(`${He} has a tramp stamp which reads 'Fuck my ass and be damned.'`); + break; + case "sacrament": + r.push(`${He} has a tramp stamp which reads 'Fuck my ass and be blessed.'`); + break; + case "possessive": + r.push(`${He} has a tramp stamp which reads '${V.PC.slaveName}'s ${V.desc}.'`); + break; + case "paternalist": + r.push(`${He} has a tramp stamp which reads 'Fuck me slowly' with an arrow pointing downward.`); + break; + default: + r.push(slave.stampTat); + break; + } + } + } break; } case "buttock": { - r += `<<buttTatDescription>>`; + if (slave.fuckdoll === 0) { + if (slave.buttTat !== 0) { + switch (slave.buttTat) { + case "tribal patterns": + r.push(`${His} buttocks and hips are tattooed with tribal patterns that emphasize ${his} womanly curves.`); + break; + case "flowers": + r.push(`${His} hips are tattooed with a cute floral design.`); + break; + case "counting": + if (slave.counter.anal === 0) { + r.push(`There is a horizontal line tattooed across the tops of ${his} buttocks for symbols counting ${his} anal exploits to be inscribed under, once ${he} has some.`); + } else if (slave.counter.anal < 500) { + r.push(`Tiny dick symbols are tattooed all over the top of ${his} buttocks, one for every time ${he}'s been assfucked.`); + } else { + r.push(`Tiny dick symbols are tattooed all over ${his} entire buttocks, attesting to long anal slavery.`); + } + break; + case "advertisements": + r.push(`'Shove' is tattooed across ${his} left buttock; 'It In' is tattooed across ${his} right.`); + break; + case "rude words": + if (slave.vagina > 0) { + r.push(`'No. 2'`); + } else { + r.push(`'No. 1'`); + } + r.push(`is tattooed across ${his} left buttock; 'Fuckhole' is tattooed across ${his} right.`); + break; + case "degradation": + r.push(`'Treat it' is tattooed across ${his} left buttock; 'Like a Pussy' is tattooed across ${his} right.`); + break; + case "Asian art": + r.push(`Each of ${his} buttocks bears a tattoo of a coiled dragon, advancing meaningfully towards ${his} anus.`); + break; + case "scenes": + if (slave.dick > 0 && slave.balls > 0) { + r.push(`${His} buttocks are tattooed with lewd scenes; each of ${his} buttocks shows a smiling shemale offering ${his} anus, while each of ${his} thighs shows a rear view of a shemale simultaneously being sodomized and sodomizing.`); + } else if ((slave.dick > 0)) { + r.push(`${His} buttocks are tattooed with lewd scenes; each of ${his} buttocks shows a gelding, legs together to conceal ${his} cock and display ${his} anus, while each of ${his} thighs shows a gelding being double penetrated in ${his} gaping anus.`); + } else { + r.push(`${His} buttocks are tattooed with lewd scenes; each of ${his} buttocks shows a ${woman} being sodomized while each of ${his} thighs shows a ${woman} being gangbanged in all ${his} holes.`); + } + break; + case "bovine patterns": + r.push(`${His} buttocks are tattooed with large black splotches like those of a Holstein cow.`); + break; + case "sacrilege": + r.push(`'It's not a sin' is tattooed across ${his} left buttock;`); + if (slave.vagina > -1) { + r.push(`'If I don't enjoy it'`); + } else { + r.push(`'I'm a girl'`); + } + r.push(`is tattooed across ${his} right.`); + break; + case "sacrament": + r.push(`'This is my penance' is tattooed across ${his} left buttock;`); + if (slave.vagina > -1) { + r.push(`'Make me suffer.'`); + } else { + r.push(`'As a ${slave}.'`); + } + r.push(`is tattooed across ${his} right.`); + break; + case "possessive": + r.push(`'${V.PC.slaveName} made me their' is tattooed across ${his} left buttock; with '${V.desc}' tattooed across ${his} right.`); + break; + case "paternalist": + r.push(`'Treat it' is tattooed across ${his} left buttock; 'Gently' is tattooed across ${his} right.`); + break; + default: + r.push(slave.buttTat); + break; + } + } + } + break; } case "vagina": { - r += `<<vaginaTatDescription>>`; + /* Fuckdoll vulva and anus alone are visibile, plus enormus lips */ + if (slave.vaginaTat !== 0) { + switch (slave.vaginaTat) { + case "tribal patterns": + r.push(`${His} abdomen is tattooed with tribal patterns that draw the eye down toward ${his}`); + if (slave.dick !== 0) { + r.push(`cock.`); + } else if (slave.vagina === -1) { + r.push(`featureless crotch.`); + } else { + r.push(`vagina.`); + } + break; + case "flowers": + r.push(`${His} abdomen bears a tasteful tattoo of a`); + if (slave.dick !== 0) { + r.push(`lily with a large stamen.`); + } else { + r.push(`blooming flower.`); + } + break; + case "counting": + if (slave.counter.vaginal === 0) { + r.push(`${His} abdomen reads 'count begins other side, sorry.'`); + } else if (slave.counter.vaginal < 500) { + r.push(`Tiny dick symbols are tattooed all over ${his} abdomen, one for every time ${he}'s been fucked.`); + } else { + r.push(`Tiny dick symbols are tattooed all over ${his} abdomen, one for every time ${he}'s been fucked. There are so many that they spread up to ${his} breasts and around ${his} sides.`); + } + break; + case "advertisements": + r.push(`${His} abdomen reads`); + if (slave.vagina < 0) { + r.push(`'Rear Entrance Other Side.'`); + } else { + r.push(`'Insert Cock' with an arrow pointing downward.`); + } + break; + case "rude words": + r.push(`${His} abdomen reads`); + if (slave.vagina < 0) { + r.push(`'Useless, Rape Ass Instead' with an arrow pointing downward.`); + } else { + r.push(`'Fucktoy.'`); + } + break; + case "degradation": + r.push(`${His} abdomen is tattooed with`); + if (slave.dick !== 0) { + r.push(`a downward-pointing arrow which reads 'Bounces When Buttfucked.'`); + } else { + r.push(`gothic script that reads '`); + if (V.PC.dick !== 0) { + if (V.PC.vagina !== -1) { + r.push(`Futa`); + } else { + r.push(`Cock`); + } + } else { + r.push(`Cunt`); + } + r.push(`Pleaser.'`); + } + break; + case "Asian art": + r.push(`${He} has formal Asian characters tattooed across ${his} abdomen. To those who do not know the language, they look elegant, but roughly translated, they read`); + if (slave.dick > 0 && canAchieveErection(slave)) { + r.push(`'dick girl slut.'`); + } else if (slave.dick > 0) { + r.push(`'limp dick slut.'`); + } else if (slave.pregKnown === 1 && slave.bellyPreg >= 100) { + r.push(`'pregnant cow.'`); + } else if (slave.physicalAge > 35) { + r.push(`'horny old bitch.'`); + } else { + r.push(`'sex ${slave}.'`); + } + break; + case "scenes": + r.push(`${His} abdomen is tattooed with lewd scenes. It entices with a depiction of`); + if (slave.dick !== 0) { + if (slave.balls !== 0) { + r.push(`sodomy of a shemale.`); + } else { + r.push(`sodomy of a gelding.`); + } + } else if (slave.vagina === -1) { + r.push(`sodomy of a null.`); + } else { + r.push(`loving intercourse.`); + } + break; + case "bovine patterns": + r.push(`${His} abdomen is tattooed in a Holstein cow pattern.`); + break; + case "sacrilege": + r.push(`${His} abdomen is tattooed with a variety of heretical symbols.`); + break; + case "sacrament": + r.push(`${His} abdomen is tattooed with a variety of religious symbols.`); + break; + case "possessive": + r.push(`${His} abdomen is tattooed with`); + if (slave.dick > 0 && canAchieveErection(slave)) { + r.push(`'Dick girl slave`); + } else if (slave.dick > 0) { + r.push(`'Limp dick slave`); + } else if (slave.counter.births > 5) { + r.push(`'Breeder slave`); + } else if (slave.actualAge > 35) { + r.push(`'MILF slave`); + } else { + r.push(`'Sex slave`); + } + r.push(`of ${WrittenMaster(slave)} ${V.PC.slaveName}.'`); + break; + case "paternalist": + r.push(`${His} abdomen is tattooed with a downward-pointing arrow which reads 'Let's come together.'`); + break; + default: + r.push(slave.vaginaTat); + break; + } + } + break; } case "dick": { - r += `<<dickTatDescription>>`; + if (slave.fuckdoll === 0) { + if (slave.dick !== 0 && slave.dickTat !== 0) { + switch (slave.dickTat) { + case "tribal patterns": + r.push(`${His} cock is tattooed with tribal patterns.`); + break; + case "flowers": + r.push(`${His} cock is tattooed with a vine that wraps around its shaft.`); + break; + case "counting": + if (slave.counter.penetrative === 0) { + r.push(`There is a horizontal line tattooed around the base of ${his} dick for symbols counting ${his} penetrative exploits to be inscribed under, once ${he} has some.`); + } else if (slave.counter.penetrative < 500) { + r.push(`Tiny anus, pussy and mouth symbols are tattooed all over ${his} dick, recounting ${his} penetrative exploits.`); + } else { + r.push(`Tiny anus, pussy and mouth symbols are tattooed all over ${his} dick, recounting ${his} penetrative exploits. ${He} has so many that they radiate out across ${his} crotch, too.`); + } + break; + case "advertisements": + r.push(`${His} cock reads 'Sissy Slut.'`); + break; + case "rude words": + r.push(`${His} cock reads 'Bitchstick.'`); + break; + case "degradation": + if (slave.anus === 0) { + r.push(`${His} cock reads '100% Virgin Anus.'`); + } else { + r.push(`${His} cock reads 'Comes When Assraped.'`); + } + break; + case "Asian art": + r.push(`${His} cock has an Asian dragon rushing down each side to the tip.`); + break; + case "bovine patterns": + r.push(`${His} cock is tattooed to make it look a little like a bulls'.`); + break; + case "sacrilege": + r.push(`${His} cock is covered in tiny words, each derived from a sacrilegious text.`); + break; + case "sacrament": + r.push(`${His} cock is covered in tiny words, each derived from a sacred scripture.`); + break; + case "possessive": + r.push(`${His} cock has an identification barcode tattooed on its side.`); + break; + case "paternalist": + if (slave.anus === 0) { + r.push(`${His} cock reads 'Still an Ass Virgin.'`); + } else { + r.push(`${His} cock reads 'Comes When Stroked.'`); + } + break; + default: + r.push(slave.dickTat); + break; + } + } + } break; } case "anus": { - r += `<<anusTatDescription>>`; + /* Fuckdoll vulva and anus alone are visibile, plus enormus lips */ + if (slave.anusTat !== 0) { + switch (slave.anusTat) { + case "bleached": + r.push(`${His} anus is bleached.`); + break; + case "tribal patterns": + r.push(`${His} anus is bleached. It is tattooed with a tribal pattern that changes interestingly when ${he} relaxes or tightens ${his} sphincter.`); + break; + case "flowers": + r.push(`${He} has a huge blooming flower tattooed right over ${his} anus.`); + break; + case "counting": + if (slave.counter.anal === 0) { + r.push(`${He} has a dashed line tattooed around ${his} anus as a guideline for where ${his} anal count will be inscribed.`); + } else if (slave.counter.anal < 1000) { + r.push(`${He} has fine rings tattooed around ${his} anus, one for each hundred cocks.`); + } else { + r.push(`${He} has thick and fine rings tattooed around ${his} anus, for each thousand and hundred cocks.`); + } + break; + case "advertisements": + if (slave.vagina > -1) { + r.push(`${He} has a ring of text tattooed around ${his} anus which reads 'Second Pussy.'`); + } else { + r.push(`${He} has a ring of text tattooed around ${his} anus which reads 'Spit First.'`); + } + break; + case "rude words": + if (slave.vagina > -1) { + r.push(`${He} has a ring of text tattooed around ${his} anus which reads 'Fucktoy's Favorite Fuckhole.'`); + } else { + r.push(`${He} has a ring of text tattooed around ${his} anus which reads 'Sissy Slut's Sodomy Slit.'`); + } + break; + case "degradation": + r.push(`${His} anus is bleached. It is tattooed with gothic script in a ring around ${his} hole, reading '${WrittenMaster(slave)} Made Me An Anal Slut.'`); + break; + case "bovine patterns": + r.push(`${His} anus is tattooed to mimic the puffy, dark appearance of a cow's.`); + break; + case "sacrilege": + r.push(`${He} has a ring of Aramaic text tattooed around ${his} anus, which translates to horrible blasphemy.`); + break; + case "sacrament": + r.push(`${He} has a ring of Aramaic text tattooed around ${his} anus, which translates to a comforting blessing.`); + break; + case "possessive": + r.push(`${He} has a ring of numbers around ${his} anus, detailing the date ${he} was enslaved by you.`); + break; + case "paternalist": + r.push(`${His} anus is bleached. It is tattooed with text in a ring around ${his} hole, reading '${WrittenMaster(slave)} Helped Me Love Anal.'`); + break; + case "Asian art": + r.push(`${His} anus is bleached.`); + break; + default: + r.push(slave.anusTat); + break; + } + } + break; } case "thigh": { /* technically the old widget describes the ENTIRE leg, but we are going to display it here to preserve order */ - r += `<<legsTatDescription>>`; + if (slave.fuckdoll === 0 && hasAnyLegs(slave)) { + if (slave.legsTat !== 0) { + let legs; + if (!hasBothLegs(slave)) { + legs = "leg"; + } else { + legs = "legs"; + } + switch (slave.legsTat) { + case "tribal patterns": + r.push(`${His} tribal tattoos run down ${his} ${legs}.`); + break; + case "flowers": + r.push(`${His} floral tattoos run down ${his} ${legs}, with an especially beautiful bouquet of blooms sprayed across`); + if (hasBothLegs(slave)) { + r.push(`each`); + } else { + r.push(`${his}`); + } + r.push(`thigh.`); + break; + case "counting": + r.push(`${His} thighs are used as space for tattoos that count the number of times ${he}'s done various degrading but nonsexual things.`); + break; + case "advertisements": + r.push(`${His} thighs are used as simple ad space, promoting ${V.arcologies[0].name} and your business pursuits.`); + break; + case "rude words": + r.push(`${His} left thigh reads '${V.desc}' and the right 'slut.'`); + break; + case "degradation": + if (slave.vagina < 0) { + r.push(`${His} left thigh reads 'I Used To Fuck,' and the right 'But Now I Get Fucked.'`); + } else { + r.push(`${His} left thigh reads 'My Life Is Sex,' and the right 'All I'm Good For.'`); + } + break; + case "Asian art": + r.push(`A komainu is tattooed across ${his} right leg while a shishi graces ${his} left, the fierce lions guarding the way to ${his} "temple".`); + break; + case "scenes": + r.push(`${He} has symmetrical tattoos on`); + if (hasBothLegs(slave)) { + r.push(`each`); + } else { + r.push(`${his}`); + } + r.push(`thigh depicting ${him} being spitroasted.`); + break; + case "bovine patterns": + r.push(`${His} ${legs}`); + if (hasBothLegs(slave)) { + r.push(`are`); + } else { + r.push(`is`); + } + r.push(`covered in tattoos of spots, giving ${him} a noticeably bovine appearance.`); + break; + case "sacrilege": + r.push(`${His} ${legs}`); + if (hasBothLegs(slave)) { + r.push(`are`); + } else { + r.push(`is`); + } + r.push(`covered in tattoos of swirling flames.`); + break; + case "sacrament": + r.push(`${His} ${legs}`); + if (hasBothLegs(slave)) { + r.push(`are`); + } else { + r.push(`is`); + } + r.push(`covered in tattoos of swirling thorns.`); + break; + case "possessive": + r.push(`${His} left thigh is tattooed with a stylized representation of your initials, and the right with a depiction of your personal symbol.`); + break; + case "paternalist": + r.push(`${His} left thigh reads 'I Love My Life,' and the right 'Let Me Love Yours Too.'`); + break; + default: + r.push(slave.legsTat); + break; + } + } + } + break; } } - return r; + return r.join(" "); }; -- GitLab