From b8233641d46c76a7ff7b4e78404acd8490655346 Mon Sep 17 00:00:00 2001 From: lowercasedonkey <lowercasedonkey@gmail.com> Date: Mon, 30 Nov 2020 09:33:45 -0500 Subject: [PATCH] import --- .../bodyModification/bodyModification.js | 1210 +++++++++++++++++ .../bodyModification/bodyModification.tw | 853 +----------- 2 files changed, 1211 insertions(+), 852 deletions(-) diff --git a/src/facilities/bodyModification/bodyModification.js b/src/facilities/bodyModification/bodyModification.js index e69de29bb2d..2db2da2b332 100644 --- a/src/facilities/bodyModification/bodyModification.js +++ b/src/facilities/bodyModification/bodyModification.js @@ -0,0 +1,1210 @@ +App.UI.bodyModification = function(slave, cheat = false) { + const el = new DocumentFragment(); + + return el; + + +App.Utils.setLocalPronouns(slave); +Enunciate(slave); + +<h1>Body Modification Studio</h1> +<p class="scene-intro"> + r.push(`${V.SlaveFullName(slave)}`); + r.push(` is lying strapped down on the table in your body modification studio. ${He} is entirely at your mercy.`); + + if (V.brandApplied || V.degradation || V.scarApplied || V.modReaction) { + if (slave.fuckdoll === 0) { + if (canSee(slave)) { + r.push(`There's a mirror on the ceiling, so ${he} can see`); +} else { + r.push(`${He} can't see, so `); +if (canHear(slave)) { + r.push(`you're careful to describe`); +} else { + r.push(`${he} must, by ${himself}, get a feel for`); +} +} + r.push(` ${his} new appearance.`); + } + if (V.brandApplied) { + r.push(`The smell of burnt flesh hangs in the air. Being branded <span class="health.dec">has hurt ${his} health a little.</span>`); + healthDamage(slave, 10); + delete V.brandApplied; + } + if (V.scarApplied) { + if (V.scarTarget.local === "entire body") { + switch (V.scarDesign.local) { + case "burn": + r.push(`Your goal wasn't to make the distinct shape of a brand, but rather to permanently mar the skin with an open flame.`); + case "surgical": + if (V.PC.skill.medicine >= 100) { + r.push(`Your medical mastery is perfect, so creating Frankenstein's monster was a deliberate work of art.`); + } else if (V.PC.skill.medicine > 0) { + r.push(`Your medical skills are progressing, and the Frankenstein effect reminds you of your earliest attempts.`); + } else { + r.push(`You really slashed away with your knife, but were careful not to allow ${him} to bleed out.`); + } + default: + r.push(`The best way to apply scarring to the entire body is with a good old fashioned whip. ${His} body is a mess of crisscrossed lines`); +if (hasAnyNaturalLimbs(slave)) { + r.push(`, and ${his} `); +if (getLimbCount(slave, 1) > 1) { + r.push(`limbs twisted so violently in their restraints that they too have`); +} else { + r.push(`only limb twists so violently in its restraints that it too has`); +} + r.push(` become scarred`); +} + r.push(`.`); + } + r.push(`No matter how you chose to apply it, scarring so much of ${his} body has <span class="health.dec"> hurt ${his} health.</span>`); + healthDamage(slave, 20); + } else { + if (slave.scar[V.scarTarget.local][V.scarDesign.local] > 0) { + r.push(`This is not the first time ${he} was scarred like this.`); + } + switch (V.scarDesign.local) { + case "whip": + r.push(`Targeting a single area with a whip is not easy. You set the mood by carefully arranging candles dripping on to a whimpering `); +V.slave.slaveName + r.push(`, then got ${his} attention with a quick`); + if (canSee(slave)) { + r.push(`wave`); + } else if (canHear(slave)) { + r.push(`crack`); + } else { + r.push(`tap`); + } + r.push(`of the whip. One by one, you carefully snuffed out the candles, flicking hot wax as you went. After pausing a moment, you prepared to leave your mark.`); + if (["penis", "vagina"].includes(V.scarTarget.local)) { + if (slave.dick > 4 && V.seeDicks) { + r.push(`${His} dick was large enough that it was not too difficult to hit,`); + } else if (slave.dick > 0 && V.seeDicks) { + r.push(`${His} dick was a challengingly small target,`); + } else { + if (slave.clit > 0) { + r.push(`${His} clit was a difficult target,`); + } else { + r.push(`${His} clit was an impossibly tiny target,`); + } + } + r.push(`but the end was never in doubt. The tip connected with ${his} most intimate place on the first try, and plunged ${him} into absolute agony.`); + } else { + r.push(`The end was never in doubt. A few strokes of the whip plunged ${him} into agony ${his} body will not allow ${him} to forget.`); + } + case "burn": + r.push(`Your goal wasn't to make the distinct shape of a brand, but rather to permanently mar the `); +V.slave.skin + r.push(` skin of ${his} ${V.scarTarget.local} with an open flame.`); + case "surgical": + if (V.PC.skill.medicine >= 100) { + r.push(`Your medical mastery is perfect, so creating such a scar was a deliberate act of degradation.`); + } else if (V.PC.skill.medicine > 0) { + r.push(`Your medical skills are progressing, and the sloppy scar reminds you of your earliest attempts.`); + } else { + r.push(`You really slashed away at ${V.scarTarget.local} with your knife, but were careful not to allow ${him} to bleed out.`); + } + default: + r.push(`You had no shortage of kinky and medical tools for applying scars. ${His} `); +V.slave.skin + r.push(` ${V.scarTarget.local} is bleeding profusely.`); + } + + r.push(`No matter how you chose to apply it, being scarred <span class="health.dec"> hurt ${his} health a little.</span>`); + healthDamage(slave, 10); + } + r.push(`Afterwards you seal the wounds with a white medical spray. Infection is no risk to `); +V.slave.slaveName + r.push(` thanks to your curatives, but in order to form obvious scar tissue you had to keep air out and delay normal healing as long as possible.`); + delete V.scarApplied; + } + if (slave.fetish !== "mindbroken" && slave.fuckdoll === 0) { + if (V.degradation > 1) { + if (V.degradation > 5) { + if (slave.devotion <= 50 && slave.trust < -50) { + r.push(`${He} is appalled by the whorish spectacle you have made of ${him}. ${He} <span class="gold">fears</span> you all the more for this but is so terrified of you it does not affect ${his} submission.`); + slave.trust -= 10; + } else if (slave.devotion <= 50) { + r.push(`${He} is appalled by the whorish spectacle you have made of ${him}. ${He} <span class="mediumorchid">hates</span> and <span class="gold">fears</span> you for this.`); + slave.devotion -= 10, slave.trust -= 10; + } else { + r.push(`${He} is shocked by the whorish spectacle you have made of ${him}. However, ${he} is so submissive to your will that ${he} <span class="hotpink">accepts</span> that the slave `); +if (canSee(slave)) { + r.push(`in the mirror`); +} else { + r.push(`${he} pictures`); +} + r.push(` is who ${he} is now.`); + slave.devotion += 4; + } + <br><br> + } else { + if (slave.devotion < -20 && slave.trust < 20) { + r.push(`${He} is <span class="gold">afraid</span> that ${he} has been permanently altered against ${his} will, but is also scared of your reaction to any objection and suppresses ${his} disgust.`); + slave.trust -= 5; + } else if (slave.devotion < -20) { + r.push(`${He} is <span class="mediumorchid">angry</span> and <span class="gold">afraid</span> that ${he} has been permanently altered against ${his} will.`); + slave.devotion -= 5, slave.trust -= 5; + } else { + r.push(`${He} is saddened to have been altered against ${his} will. However, ${he} realizes that ${he} is a slave, so ${he} <span class="hotpink">accepts</span> your work.`); + slave.devotion += 2; + } + } + V.degradation = 0; + } + if (V.modReaction) { + r.push(`${V.V.modReaction}`); + delete V.modReaction; + } + } + } + + /* 000-250-006 */ + if (V.seeImages === 1) { + if (V.imageChoice === 1) { + <div class="imageRef lrgVector"><div class="mask"> </div> +V.SlaveArt(slave, 3, 0)</div> + } else { + <div class="imageRef lrgRender"><div class="mask"> </div> +V.SlaveArt(slave, 3, 0)</div> + } + } + /* 000-250-006 */ +</p> + +/* PIERCINGS */ + +_piercingCount =(slave.earPiercing + slave.nosePiercing + slave.eyebrowPiercing + slave.lipsPiercing + slave.tonguePiercing + slave.nipplesPiercing + slave.areolaePiercing + slave.corsetPiercing + slave.navelPiercing + slave.clitPiercing + slave.vaginaPiercing + slave.dickPiercing + slave.anusPiercing); + +/*DESCRIPTIONS */ + +<h2>Piercings</h2> + +<div class="indent"> + <div style="padding-bottom:1em"> + if (_piercingCount === 0) { + r.push(`${His} smooth `); +V.slave.skin + r.push(` skin is completely unpierced.`); + } + <div> +V.App.Desc.piercing(slave, "ear")</div> + <div> +V.App.Desc.piercing(slave, "nose")</div> + <div> +V.App.Desc.piercing(slave, "eyebrow")</div> + <div> +V.App.Desc.piercing(slave, "lips")</div> + <div> +V.App.Desc.piercing(slave, "tongue")</div> + <div> +V.App.Desc.piercing(slave, "nipple")</div> + <div> +V.App.Desc.piercing(slave, "areolae")</div> + <div> +V.App.Desc.piercing(slave, "navel")</div> + <div> +V.App.Desc.piercing(slave, "corset")</div> + <div> +V.App.Desc.piercing(slave, "clit")</div> + <div> +V.App.Desc.piercing(slave, "vagina")</div> + <div> +V.App.Desc.piercing(slave, "dick")</div> + <div> +V.App.Desc.piercing(slave, "anus")</div> + + <div> +V.App.Desc.piercing(slave, "chastity")</div> + </div> + + /* Apply piercings */ + + <div> + r.push(`Choose piercing style:`); + if (V.piercingLevel !== 1) {[[Light|Body Modification][V.piercingLevel = 1]] +} else { + r.push(`Light`); +} + if (V.piercingLevel !== 2) {| [[Heavy|Body Modification][V.piercingLevel = 2]] +} else {| Heavy +} + if (V.piercingLevel !== 3) {| [[Smart|Body Modification][V.piercingLevel = 3]] +} else {| Smart +} + if (V.piercingLevel !== 0) {| [[Remove|Body Modification][V.piercingLevel = 0]] +} else {| Remove +} + </div> + + <div> + if (V.piercingLevel === 1) { + //Lightly// pierce ${his}: + + <<link "Entire body">> + V.modReaction = ""; + if (slave.earPiercing !== 1) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "ear", 1); +} + if (slave.nosePiercing !== 1) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "nose", 1); +} + if (slave.eyebrowPiercing !== 1) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "eyebrow", 1); +} + if (slave.lipsPiercing !== 1) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "lips", 1); +} + if (slave.tonguePiercing !== 1) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "tongue", 1); +} + if (slave.nipples !== "fuckable") { + if (slave.nipplesPiercing !== 1) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "nipples", 1); +} + } + if (slave.areolaePiercing !== 1) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "areolae", 1); +} + if (slave.corsetPiercing !== 1) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "corset", 1); +} + if (slave.navelPiercing !== 1) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "navel", 1); +} + if (slave.vagina !== -1) || (slave.dick !== 0) { + if (slave.clitPiercing !== 1) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "clit", 1); +} + } + if (slave.vagina !== -1) { + if (slave.vaginaPiercing !== 1) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "vagina", 1); +} + } + if (slave.dick > 0) { + if (slave.dickPiercing !== 1) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "dick", 1); +} + } + if (slave.anusPiercing !== 1) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "anus", 1); +} + <<goto "Body Modification">> + <</link>> + + if (slave.earPiercing !== 1) { | [[Ear|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "ear", 1)]] +} + if (slave.nosePiercing !== 1) { | [[Nose|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "nose", 1)]] +} + if (slave.eyebrowPiercing !== 1) { | [[Eyebrow|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "eyebrow", 1)]] +} + if (slave.lipsPiercing !== 1) { | [[Lips|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "lips", 1)]] +} + if (slave.tonguePiercing !== 1) { | [[Tongue|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "tongue", 1)]] +} + if (slave.nipples !== "fuckable") { + if (slave.nipplesPiercing !== 1) { | [[Nipples|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "nipples", 1)]] +} + } + if (slave.areolaePiercing !== 1) { | [[Areolae|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "areolae", 1)]] +} + if (slave.corsetPiercing !== 1) { | [[Corset|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "corset", 1)]] +} + if (slave.navelPiercing !== 1) { | [[Navel|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "navel", 1)]] +} + if (slave.vagina !== -1) || (slave.dick !== 0) { + if (slave.vagina !== -1) { + if (slave.clitPiercing !== 1) { | [[Clit|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "clit", 1)]] +} + } else { + if (slave.clitPiercing !== 1) { | [[Dickhead|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "clit", 1)]] +} + } + } + if (slave.vagina !== -1) { + if (slave.vaginaPiercing !== 1) { + r.push(` | [[Vagina|Body Modification][${V.modReaction} = App.Medicine.Modification.setPiercing(slave, "vagina", 1)]]`); +} + } + if (slave.dick > 0) { + if (slave.dickPiercing !== 1) { | [[Dick|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "dick", 1)]] +} + } + if (slave.anusPiercing !== 1) { | [[Anus|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "anus", 1)]] +} + } else if (V.piercingLevel === 2) { + r.push(`''Heavily'' pierce ${his}:`); + + <<link "Entire body">> + V.modReaction = ""; + if (slave.earPiercing !== 2) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "ear", 2), V.degradation += 1; +} + if (slave.nosePiercing !== 2) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "nose", 2), V.degradation += 1; +} + if (slave.eyebrowPiercing !== 2) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "eyebrow", 2), V.degradation += 1; +} + if (slave.lipsPiercing !== 2) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "lips", 2), V.degradation += 1; +} + if (slave.tonguePiercing !== 2) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "tongue", 2), V.degradation += 1; +} + if (slave.nipples !== "fuckable") { + if (slave.nipplesPiercing !== 2) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "nipples", 2), V.degradation += 1; +} + } + if (slave.areolaePiercing !== 2) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "areolae", 2), V.degradation += 1; +} + if (slave.corsetPiercing !== 2) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "corset", 2), V.degradation += 1; +} + if (slave.navelPiercing !== 2) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "navel", 2), V.degradation += 1; +} + if (slave.vagina !== -1) || (slave.dick !== 0) { + if (slave.clitPiercing !== 2) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "clit", 2), V.degradation += 1; +} + } + if (slave.vagina !== -1) { + if (slave.vaginaPiercing !== 2) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "vagina", 2), V.degradation += 1; +} + } + if (slave.dick > 0) { + if (slave.dickPiercing !== 2) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "dick", 2), V.degradation += 1; +} + } + if (slave.anusPiercing !== 2) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "anus", 2), V.degradation += 1; +} + <<goto "Body Modification">> + <</link>> + + if (slave.earPiercing !== 2) { | [[Ear|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "ear", 2),V.degradation += 1]] +} + if (slave.nosePiercing !== 2) { | [[Nose|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "nose", 2),V.degradation += 1]] +} + if (slave.eyebrowPiercing !== 2) { | [[Eyebrow|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "eyebrow", 2),V.degradation += 1]] +} + if (slave.lipsPiercing !== 2) { | [[Lips|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "lips", 2),V.degradation += 1]] +} + if (slave.tonguePiercing !== 2) { | [[Tongue|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "tongue", 2),V.degradation += 1]] +} + if (slave.nipples !== "fuckable") { + if (slave.nipplesPiercing !== 2) { | [[Nipples|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "nipples", 2),V.degradation += 1]] +} + } + if (slave.areolaePiercing !== 2) { | [[Areolae|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "areolae", 2),V.degradation += 1]] +} + if (slave.corsetPiercing !== 2) { | [[Corset|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "corset", 2),V.degradation += 1]] +} + if (slave.navelPiercing !== 2) { | [[Navel|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "navel", 2),V.degradation += 1]] +} + if (slave.vagina !== -1) || (slave.dick !== 0) { + if (slave.vagina !== -1) { + if (slave.clitPiercing !== 2) { + r.push(` | [[Clit|Body Modification][${V.modReaction} = App.Medicine.Modification.setPiercing(slave, "clit", 2),V.degradation += 1]]`); +} + } else { + if (slave.clitPiercing !== 2) { + r.push(` | [[Dickhead|Body Modification][${V.modReaction} = App.Medicine.Modification.setPiercing(slave, "clit", 2),V.degradation += 1]]`); +} + } + } + if (slave.vagina !== -1) { + if (slave.vaginaPiercing !== 2) { + r.push(` | [[Vagina|Body Modification][${V.modReaction} = App.Medicine.Modification.setPiercing(slave, "vagina", 2),V.degradation += 1]]`); +} + } + if (slave.dick > 0) { + if (slave.dickPiercing !== 2) { | [[Dick|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "dick", 2),V.degradation += 1]] +} + } + if (slave.anusPiercing !== 2) { | [[Anus|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "anus", 2),V.degradation += 1]] +} + } else if (V.piercingLevel === 3) { + if (slave.vagina !== -1) || (slave.dick !== 0) { + if (slave.clitPiercing !== 3) { + r.push(`Give ${him} a [[smart piercing?|Body Modification][${V.modReaction} = App.Medicine.Modification.setPiercing(slave, "clit", 3),slave.clitSetting = "all",V.degradation += 1]] //Costs `); +V.cashFormat(V.SPcost) + r.push(`, unlocks options to mold sexuality//`); + } else { + r.push(`${He} already has a smart piercing!`); + } + } + } else if (V.piercingLevel === 0) { + r.push(`Remove piercings from:`); + + /* no dick/vagina checks in 'remove' so stealth piercings can be cleaned. Check only for piercings. */ + <<link "Everywhere">> + V.modReaction = ""; + if (slave.earPiercing > 0) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "ear", 0); +} + if (slave.nosePiercing > 0) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "nose", 0); +} + if (slave.eyebrowPiercing > 0) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "eyebrow", 0); +} + if (slave.lipsPiercing > 0) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "lips", 0); +} + if (slave.tonguePiercing > 0) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "tongue", 0); +} + if (slave.nipplesPiercing > 0) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "nipples", 0); +} + if (slave.areolaePiercing > 0) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "areolae", 0); +} + if (slave.corsetPiercing > 0) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "corset", 0); +} + if (slave.navelPiercing > 0) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "navel", 0); +} + if (slave.clitPiercing > 0) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "clit", 0); +} + if (slave.vaginaPiercing > 0) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "vagina", 0); +} + if (slave.dickPiercing > 0) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "dick", 0); +} + if (slave.anusPiercing > 0) { +V.modReaction += App.Medicine.Modification.setPiercing(slave, "anus", 0); +} + <<goto "Body Modification">> + <</link>> + + if (slave.earPiercing > 0) { | [[Ear|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "ear", 0)]] +} + if (slave.nosePiercing > 0) { | [[Nose|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "nose", 0)]] +} + if (slave.eyebrowPiercing > 0) { | [[Eyebrow|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "eyebrow", 0)]] +} + if (slave.lipsPiercing > 0) { | [[Lips|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "lips", 0)]] +} + if (slave.tonguePiercing > 0) { | [[Tongue|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "tongue", 0)]] +} + if (slave.nipplesPiercing > 0) { | [[Nipples|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "nipples", 0)]] +} + if (slave.areolaePiercing > 0) { | [[Areolae|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "areolae", 0)]] +} + if (slave.corsetPiercing > 0) { | [[Corset|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "corset", 0)]] +} + if (slave.navelPiercing > 0) { | [[Navel|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "navel", 0)]] +} + if (slave.vagina !== -1) { + if (slave.clitPiercing > 0) { | [[Clit|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "clit", 0)]] +} + } else { + if (slave.clitPiercing > 0) { | [[Dickhead|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "clit", 0)]] +} + } + if (slave.vaginaPiercing > 0) { | [[Vagina|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "vagina", 0)]] +} + if (slave.dickPiercing > 0) { | [[Dick|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "dick", 0)]] +} + if (slave.anusPiercing > 0) { | [[Anus|Body Modification][V.modReaction = App.Medicine.Modification.setPiercing(slave, "anus", 0)]] +} + } + </div> +</div> /* indent */ + +/* TATTOOS */ + +<h2>Tattoos</h2> +<div class="indent"> + <div style="padding-bottom:1em"> + if (slave.shouldersTat !== 0) {<div> +V.App.Desc.tattoo(slave, "shoulder")</div> +_hasTat = 1; +} + if (slave.lipsTat !== 0) {<div> +V.App.Desc.tattoo(slave, "lips")</div> +_hasTat = 1; +} + if (slave.boobsTat !== 0) {<div> +V.App.Desc.tattoo(slave, "breast")</div> +_hasTat = 1; +} + if (slave.armsTat !== 0 && hasAnyNaturalArms(slave)) {<div> +V.App.Desc.tattoo(slave, "upper arm")</div> +_hasTat = 1; +} + if (slave.backTat !== 0) {<div> +V.App.Desc.tattoo(slave, "back")</div> +_hasTat = 1; +} + if (slave.stampTat !== 0) {<div> +V.App.Desc.tattoo(slave, "lower back")</div> +_hasTat = 1; +} + if (slave.buttTat !== 0) {<div> +V.App.Desc.tattoo(slave, "buttock")</div> +_hasTat = 1; +} + if (slave.vaginaTat !== 0) {<div> +V.App.Desc.tattoo(slave, "vagina")</div> +_hasTat = 1; +} + if (slave.dickTat !== 0 && slave.dick > 0) {<div> +V.App.Desc.tattoo(slave, "dick")</div> +_hasTat = 1; +} + if (slave.anusTat !== 0) {<div> +V.App.Desc.tattoo(slave, "anus")</div> +_hasTat = 1; +} + if (slave.legsTat !== 0 && hasAnyNaturalLegs(slave)) {<div> +V.App.Desc.tattoo(slave, "thigh")</div> +_hasTat = 1; +} + </div> + + <div> + r.push(`Choose a tattoo style:`); + /* if/else is here so a "highlighted" option is never a link. */ + if (V.tattooChoice !== "tribal patterns") {[[Tribal patterns|Body Modification][V.tattooChoice = "tribal patterns"]] +} else { + r.push(`Tribal patterns`); +} + if (V.tattooChoice !== "flowers") { + r.push(` | [[Flowers|Body Modification][${V.tattooChoice} = "flowers"]]`); +} else {| Flowers +} + if (V.tattooChoice !== "counting") { + r.push(` | [[Counting|Body Modification][${V.tattooChoice} = "counting"]]`); +} else {| Counting +} + if (V.tattooChoice !== "advertisements") { + r.push(` | [[Advertisements|Body Modification][${V.tattooChoice} = "advertisements"]]`); +} else {| Advertisements +} + if (V.tattooChoice !== "rude words") { + r.push(` | [[Rude words|Body Modification][${V.tattooChoice} = "rude words"]]`); +} else {| Rude words +} + if (V.tattooChoice !== "degradation") { + r.push(` | [[Degradation|Body Modification][${V.tattooChoice} = "degradation"]]`); +} else {| Degradation +} + if (V.tattooChoice !== "Asian art") { + r.push(` | [[Asian art|Body Modification][${V.tattooChoice} = "Asian art"]] `); +} else {| Asian art +} + if (V.tattooChoice !== "scenes") { + r.push(` | [[Scenes|Body Modification][${V.tattooChoice} = "scenes"]]`); +} else {| Scenes +} + if (V.tattooChoice !== "bovine patterns") { + r.push(` | [[Bovine|Body Modification][${V.tattooChoice} = "bovine patterns"]]`); +} else {| Bovine +} + if (V.tattooChoice !== "permanent makeup") { + r.push(` | [[Permanent makeup|Body Modification][${V.tattooChoice} = "permanent makeup"]]`); +} else {| Permanent makeup +} + if (V.tattooChoice !== "sacrilege") { + r.push(` | [[Sacrilege|Body Modification][${V.tattooChoice} = "sacrilege"]]`); +} else {| Sacrilege +} + if (V.tattooChoice !== "sacrament") { + r.push(` | [[Sacrament|Body Modification][${V.tattooChoice} = "sacrament"]]`); +} else {| Sacrament +} + if (V.tattooChoice !== "possessive") { + r.push(` | [[Possessive|Body Modification][${V.tattooChoice} = "possessive"]]`); +} else {| Possessive +} + if (V.tattooChoice !== "paternalist") { + r.push(` | [[Paternalist|Body Modification][${V.tattooChoice} = "paternalist"]]`); +} else {| Paternalist +} + + if (slave.anusTat === 0) { + if (V.tattooChoice !== "bleached") {| [[Bleach|Body Modification][V.tattooChoice = "bleached"]] +} else {| Bleach +} + } + + if (_hasTat === 1) { + if (V.tattooChoice !== 0) { + r.push(` | //[[Remove a tattoo|Body Modification][${V.tattooChoice} = 0]]//`); +} else {| Remove a tattoo +} + } + </div> + + <div> + if (def V.tattooChoice) { + if (V.tattooChoice === 0) { + r.push(`Clean the ink off of ${him}:`); + } else if (V.tattooChoice === "counting") { + r.push(`Add tallies of ${his} sexual exploits to ${him}:`); + } else if (V.tattooChoice === "bleached") { + r.push(`Bleach ${his}:`); + } else { + r.push(`Add ${V.tattooChoice} to ${his}:`); + } + + if (V.tattooChoice !== "bleached") && (V.tattooChoice !== "permanent makeup") { + <<link "Entire body">> + _degradationTemp = 0, V.modReaction = ""; + if (slave.boobsTat !== V.tattooChoice) { + V.modReaction += App.Medicine.Modification.setTattoo(slave, "boobs", V.tattooChoice); + _degradationTemp += 1; + } + + if (slave.buttTat !== V.tattooChoice) { + V.modReaction += App.Medicine.Modification.setTattoo(slave, "butt", V.tattooChoice); + _degradationTemp += 1; + } + + if (slave.vaginaTat !== V.tattooChoice) { + V.modReaction += App.Medicine.Modification.setTattoo(slave, "vagina", V.tattooChoice); + _degradationTemp += 1; + } + + if (slave.dick > 0) { + if (slave.dickTat !== V.tattooChoice && V.tattooChoice !== "scenes") { + V.modReaction += App.Medicine.Modification.setTattoo(slave, "dick", V.tattooChoice); + _degradationTemp += 1; + } + } + + if (slave.lipsTat !== V.tattooChoice) { + if (V.tattooChoice === "scenes") { + V.modReaction += App.Medicine.Modification.setTattoo(slave, "lips", "permanent makeup"); + } else { + V.modReaction += App.Medicine.Modification.setTattoo(slave, "lips", V.tattooChoice); + } + _degradationTemp += 1; + } + + if (V.tattooChoice === "Asian art" || V.tattooChoice === "scenes") && slave.anusTat === "bleached" { + /* leave existing bleached anus alone */ + } else if (slave.anusTat !== V.tattooChoice) { + V.modReaction += App.Medicine.Modification.setTattoo(slave, "anus", V.tattooChoice); + _degradationTemp += 1; + } + + if (slave.shouldersTat !== V.tattooChoice) { + V.modReaction += App.Medicine.Modification.setTattoo(slave, "shoulders", V.tattooChoice); + _degradationTemp += 1; + } + + if (slave.backTat !== V.tattooChoice) { + V.modReaction += App.Medicine.Modification.setTattoo(slave, "back", V.tattooChoice); + _degradationTemp += 1; + } + + if (hasAnyNaturalArms(slave)) { + if (slave.armsTat !== V.tattooChoice) { + V.modReaction += App.Medicine.Modification.setTattoo(slave, "arms", V.tattooChoice); + _degradationTemp += 1; + } + } + if (hasAnyNaturalLegs(slave)) { + if (slave.legsTat !== V.tattooChoice) { + V.modReaction += App.Medicine.Modification.setTattoo(slave, "legs", V.tattooChoice); + _degradationTemp += 1; + } + } + + if (slave.stampTat !== V.tattooChoice) { + V.modReaction += App.Medicine.Modification.setTattoo(slave, "stamp", V.tattooChoice); + _degradationTemp += 1; + } + + if (!["flowers", "paternalist", "tribal patterns", 0].includes(V.tattooChoice)) { + V.degradation += _degradationTemp; + } + + <<goto "Body Modification">> + <</link>> + } + + if (V.tattooChoice === "permanent makeup") { + [[Face|Body Modification][V.modReaction = App.Medicine.Modification.setTattoo(slave, "lips", V.tattooChoice)]] + } else if (V.tattooChoice === "bleached") { + [[Asshole|Body Modification][V.modReaction = App.Medicine.Modification.setTattoo(slave, "anus", V.tattooChoice)]] + } else { + if (slave.shouldersTat !== V.tattooChoice) { + r.push(` | [[Shoulders|Body Modification][${V.modReaction} = App.Medicine.Modification.setTattoo(slave, "shoulders", V.tattooChoice)]]`); +} + if (V.tattooChoice !== "scenes") { + if (slave.lipsTat !== V.tattooChoice) { + r.push(` | [[Face|Body Modification][${V.modReaction} = App.Medicine.Modification.setTattoo(slave, "lips", V.tattooChoice)]]`); +} + } + if (slave.boobsTat !== V.tattooChoice) { + r.push(` | [[Boobs|Body Modification][${V.modReaction} = App.Medicine.Modification.setTattoo(slave, "boobs", V.tattooChoice)]]`); +} + if (hasAnyNaturalArms(slave)) { + if (slave.armsTat !== V.tattooChoice) { + r.push(` | [[Arms|Body Modification][${V.modReaction} = App.Medicine.Modification.setTattoo(slave, "arms", V.tattooChoice)]]`); +} + } + if (slave.backTat !== V.tattooChoice) { + r.push(` | [[Upper back|Body Modification][${V.modReaction} = App.Medicine.Modification.setTattoo(slave, "back", V.tattooChoice)]]`); +} + if (slave.stampTat !== V.tattooChoice) { + r.push(` | [[Lower back|Body Modification][${V.modReaction} = App.Medicine.Modification.setTattoo(slave, "stamp", V.tattooChoice)]]`); +} + if (slave.buttTat !== V.tattooChoice) { + r.push(` | [[Buttock|Body Modification][${V.modReaction} = App.Medicine.Modification.setTattoo(slave, "butt", V.tattooChoice)]]`); +} + if (slave.vaginaTat !== V.tattooChoice) { + r.push(` | [[Vagina|Body Modification][${V.modReaction} = App.Medicine.Modification.setTattoo(slave, "vagina", V.tattooChoice)]]`); +} + if (slave.dick > 0 && V.tattooChoice !== "scenes") { + if (slave.dickTat !== V.tattooChoice) { + r.push(` | [[Dick|Body Modification][${V.modReaction} = App.Medicine.Modification.setTattoo(slave, "dick", V.tattooChoice)]]`); +} + } + if (V.tattooChoice !== "Asian art") && (V.tattooChoice !== "scenes") { + if (slave.anusTat !== V.tattooChoice) { + r.push(` | [[Anus|Body Modification][${V.modReaction} = App.Medicine.Modification.setTattoo(slave, "anus", V.tattooChoice)]]`); +} + } + if (hasAnyNaturalLegs(slave)) { + if (slave.legsTat !== V.tattooChoice) { + r.push(` | [[Legs|Body Modification][${V.modReaction} = App.Medicine.Modification.setTattoo(slave, "legs", V.tattooChoice)]]`); +} + } + } + } + </div> + + <div> + if (slave.belly >= 10000 && slave.bellyPreg < 450000 && slave.bellyFluid < 5000) { + if (slave.bellyTat === 0) { + r.push(`${He} has no navel tattoos.`); + } else { + r.push(`${His} navel is tattooed with `); +V.slave.bellyTat + r.push(`.`); + } + if (slave.bellyTat === 0) { + <div> + [[Heart|Body Modification][V.modReaction = App.Medicine.Modification.setTattoo(slave, "belly", "a heart")]] + | [[Star|Body Modification][V.modReaction = App.Medicine.Modification.setTattoo(slave, "belly", "a star")]] + | [[Butterfly|Body Modification][V.modReaction = App.Medicine.Modification.setTattoo(slave, "belly", "a butterfly")]] + </div> + } + if (slave.bellyTat !== 0) { + //[[Remove tattoos|Body Modification][V.modReaction = App.Medicine.Modification.setTattoo(slave, "belly", 0)]]// + } + } else if (slave.bellyPreg >= 450000) { + r.push(`${His} middle is large and taut enough to be a suitable canvas for a navel focused tattoo, but ${his} brood is too active to permit the needle to do its work.`); + } else if (slave.bellyFluid >= 10000) { + r.push(`${His} middle is large and taut enough to be a suitable canvas for a navel focused tattoo, but the pressure applied to ${his} stomach will likely force ${him} to release its contents.`); + } else { + r.push(`${His} middle isn't large enough to be a suitable canvas for a navel focused tattoo.`); + } + </div> + + <div> + if (slave.birthsTat > 0) { + if (slave.birthsTat > 1) { + r.push(`${He} has a series of `); +V.num(slave.birthsTat) + r.push(` baby-shaped tattoos adorning ${his} stomach; one for each successful pregnancy`); +if (slave.pregKnown === 1) { + r.push(` and a temporary one for ${his} current pregnancy`); +} + r.push(`.`); + } else { + r.push(`${He} has a single baby-shaped tattoo`); +if (slave.pregKnown === 1) { + r.push(`, and one temporary one,`); +} + r.push(` adorning ${his} stomach.`); + } + //[[Remove tattoos|Body Modification][slave.birthsTat = -1, cashX(forceNeg(V.surgeryCost), "slaveSurgery", slave)]]// + } else if (slave.birthsTat === 0) { + if (slave.pregKnown === 1) { + r.push(`${He} has a single baby-shaped temporary tattoo adorning ${his} stomach.`); + //[[Remove it|Body Modification][slave.birthsTat = -1]]// + if (slave.abortionTat > -1) { + r.push(` //This will only remove birth tracking//`); +} + } else { + r.push(`${He} is scheduled to receive a tattoo each time ${he} gives birth.`); + //[[Cancel|Body Modification][slave.birthsTat = -1]]// + } + } else { + r.push(`Have ${him} receive a tattoo each time ${he} gives birth.`); + //[[Begin keeping track|Body Modification][slave.birthsTat = 0]]// + } + </div> + + <div> + if (slave.abortionTat > 0) { + if (slave.abortionTat > 1) { + r.push(`${He} has a series of `); +V.num(slave.abortionTat) + r.push(` crossed out baby-shaped tattoos`); +if (slave.pregKnown === 1) { + r.push(`, and one uncrossed one,`); +} + r.push(` adorning ${his} stomach.`); + } else { + r.push(`${He} has a single crossed out baby-shaped tattoo`); +if (slave.pregKnown === 1) { + r.push(`, and one uncrossed one,`); +} + r.push(` adorning ${his} stomach.`); + } + //[[Remove tattoos|Body Modification][slave.abortionTat = -1, cashX(forceNeg(V.surgeryCost), "slaveSurgery", slave)]]// + } else if (slave.abortionTat === 0) { + if (slave.pregKnown === 1) { + r.push(`${He} has a single baby-shaped temporary tattoo adorning ${his} stomach.`); + //[[Remove it|Body Modification][slave.abortionTat = -1]]// + if (slave.birthsTat > -1) { + r.push(` //This will only remove abortion tracking//`); +} + } else { + r.push(`${He} is scheduled to receive a tattoo each time ${he} gets an abortion or miscarries.`); + //[[Cancel|Body Modification][slave.abortionTat = -1]]// + } + } else { + r.push(`Have ${him} receive a tattoo for each abortion or miscarriage ${he} has.`); + //[[Begin keeping track|Body Modification][slave.abortionTat = 0]]// + } + </div> +</div>/* indent */ + +<h3>Custom Tattoos</h3> +<div class="indent"> + //Use complete sentences, make a description of it// + <div class="grid-2columns-auto"> + if (slave.lipsTat === 0) { + <div>Give ${him} a custom face tattoo:</div> + <div> +<<textbox "V.slaves[V.slaveIndices[V.AS]].lipsTat" V.slaves[V.slaveIndices[V.AS]].lipsTat "Slave Interact">></div> + } + + if (slave.shouldersTat === 0) { + <div>Give ${him} a custom shoulder tattoo:</div> + <div> +<<textbox "V.slaves[V.slaveIndices[V.AS]].shouldersTat" V.slaves[V.slaveIndices[V.AS]].shouldersTat "Slave Interact">></div> + } + + if (slave.armsTat === 0 && hasAnyNaturalArms(slave)) { + <div>Give ${him} a custom arm tattoo:</div> + <div> +<<textbox "V.slaves[V.slaveIndices[V.AS]].armsTat" V.slaves[V.slaveIndices[V.AS]].armsTat "Slave Interact">></div> + } + + if (slave.boobsTat === 0) { + <div>Give ${him} a custom tit tattoo:</div> + <div> +<<textbox "V.slaves[V.slaveIndices[V.AS]].boobsTat" V.slaves[V.slaveIndices[V.AS]].boobsTat "Slave Interact">></div> + } + + if (slave.backTat === 0) { + <div>Give ${him} a custom back tattoo:</div> + <div> +<<textbox "V.slaves[V.slaveIndices[V.AS]].backTat" V.slaves[V.slaveIndices[V.AS]].backTat "Slave Interact">></div> + } + + if (slave.stampTat === 0) { + <div>Give ${him} a custom tramp stamp (lower back tattoo):</div> + <div> +<<textbox "V.slaves[V.slaveIndices[V.AS]].stampTat" V.slaves[V.slaveIndices[V.AS]].stampTat "Slave Interact">></div> + } + + if (slave.buttTat === 0) { + <div>Give ${him} a custom butt tattoo:</div> + <div> +<<textbox "V.slaves[V.slaveIndices[V.AS]].buttTat" V.slaves[V.slaveIndices[V.AS]].buttTat "Slave Interact">></div> + } + + if (slave.dickTat === 0 && slave.dick !== 0) { + <div>Give ${him} a custom dick tattoo:</div> + <div> +<<textbox "V.slaves[V.slaveIndices[V.AS]].dickTat" V.slaves[V.slaveIndices[V.AS]].dickTat "Slave Interact">></div> + } + + if (slave.vaginaTat === 0) { + <div>Give ${him} a custom pubic tattoo:</div> + <div> +<<textbox "V.slaves[V.slaveIndices[V.AS]].vaginaTat" V.slaves[V.slaveIndices[V.AS]].vaginaTat "Slave Interact">></div> + } + + if (slave.anusTat === 0) { + <div>Give ${him} a custom anus tattoo:</div> + <div> +<<textbox "V.slaves[V.slaveIndices[V.AS]].anusTat" V.slaves[V.slaveIndices[V.AS]].anusTat "Slave Interact">></div> + } + + if (slave.legsTat === 0 && hasAnyNaturalLegs(slave)) { + <div>Give ${him} a custom leg tattoo:</div> + <div> +<<textbox "V.slaves[V.slaveIndices[V.AS]].legsTat" V.slaves[V.slaveIndices[V.AS]].legsTat "Slave Interact">></div> + } + </div> /* grid */ + + <div> + if (slave.custom.tattoo === "") { + r.push(`Give ${him} a custom tattoo: `); +<<textbox "V.slaves[V.slaveIndices[V.AS]].custom.tattoo" V.slaves[V.slaveIndices[V.AS]].custom.tattoo "Slave Interact">> + } else { + r.push(`${He} `); +if (_hasTat === 1) { + r.push(`also`); +} + r.push(` has a custom tattoo: `); +V.slave.custom.tattoo + r.push(`Change it here: `); +<<textbox "V.slaves[V.slaveIndices[V.AS]].custom.tattoo" V.slaves[V.slaveIndices[V.AS]].custom.tattoo "Slave Interact">> + } + if (slave.custom.tattoo !== "") { + //[[Remove custom tattoo|Body Modification][slave.custom.tattoo = "",cashX(forceNeg(V.surgeryCost), "slaveSurgery", slave)]]// + } + </div> + +</div> /* indent */ + +/* Branding */ + +<h2>Branding</h2> +<span id="brand-selection"></span> +<script> + r.push(`App.Medicine.Modification.Select.brand(getSlave(${V.AS))}`); +</script> + + +if (slave.breedingMark === 1 && (V.propOutcome === 0 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset")) { + <div class="indent"> + r.push(`${He} has an intricate tattoo on ${his} lower belly that suggests ${he} was made to be bred. [[Remove it|Body Modification][getSlave(${V.AS).breedingMark} = 0]]`); + </div> +} + +/* Scars */ + +<h2>Scars</h2> +<div class="indent"> +<div style="padding-bottom:1em"> +<<for _scarName, _scar range slave.scar>> + <div> + r.push(`${His}${ _scarName} is marked with `); +V.App.Desc.expandScarString(slave, _scarName): + <<capture _scarName>> + <<link "Remove Scar">> + V.scarApplied = 0; + delete slave.scar[_scarName]; + cashX(forceNeg(V.surgeryCost), "slaveSurgery", slave); + V.degradation -= 10; + <<goto "Body Modification">> + <</link>> + <</capture>> + </div> +<</for>> +if (jQuery.isEmptyObject(slave.scar)) { + <div> + r.push(`${His} skin is not scarred.`); + </div> +} +</div> + +<div> +Use ''V.scarDesign.local'' or choose another scar: + +[[Whip|Body Modification][V.scarDesign.local = "whip"]] +| [[Burns|Body Modification][V.scarDesign.local = "burn"]] +| [[Surgical|Body Modification][V.scarDesign.local = "surgical"]] +| [[Menacing|Body Modification][V.scarDesign.local = "menacing"]] +| [[Exotic|Body Modification][V.scarDesign.local = "exotic"]] +/* Other common scars might be battle scars or c-Section but it makes little sense to include them here */ +</div> + +<div> +Or design your own: +<<textbox "V.scarDesign.local" V.scarDesign.local "Body Modification">> +</div> + +<div> +Choose a site for scaring: + +if (["exotic", "menacing"].includes(V.scarDesign.local)) { + [[Cheeks|Body Modification][V.scarTarget.local = "cheek"]] +} else { + /* Sorted head to toe */ + + [[Entire body|Body Modification][V.scarTarget.local = "entire body"]] + + /* Head */ + if (slave.earShape !== "none") { + | [[Ears|Body Modification][V.scarTarget.local = "ear"]] + } + | [[Cheeks|Body Modification][V.scarTarget.local = "cheek"]] + | [[Neck|Body Modification][V.scarTarget.local = "neck"]] + + /* Torso */ + | [[Chest|Body Modification][V.scarTarget.local = "chest"]] + | [[Breasts|Body Modification][V.scarTarget.local = "breast"]] + | [[Back|Body Modification][V.scarTarget.local = "back"]] + | [[Lower Back|Body Modification][V.scarTarget.local = "lower back"]] + | [[Belly|Body Modification][V.scarTarget.local = "belly"]] + | [[Pubic Mound|Body Modification][V.scarTarget.local = "pubic mound"]] + if (slave.dick > 0) { + | [[Penis|Body Modification][V.scarTarget.local = "penis"]] + } + if (slave.balls > 0 && slave.scrotum > 0) { + | [[Testicles|Body Modification][V.scarTarget.local = "testicle"]] + } + + /* Arms*/ + | [[Shoulders|Body Modification][V.scarTarget.local = "shoulder"]] + if (hasAnyNaturalArms(slave)) { + | [[Arm, upper|Body Modification][V.scarTarget.local = "upper arm"]] + | [[Arm, lower|Body Modification][V.scarTarget.local = "lower arm"]] + | [[Wrists|Body Modification][V.scarTarget.local = "wrist"]] + | [[Hands|Body Modification][V.scarTarget.local = "hand"]] + } + + /* Legs */ + | [[Buttocks|Body Modification][V.scarTarget.local = "buttock"]] + if (hasAnyNaturalLegs(slave)) { + | [[Thighs|Body Modification][V.scarTarget.local = "thigh"]] + | [[Calves|Body Modification][V.scarTarget.local = "calf"]] + | [[Ankles|Body Modification][V.scarTarget.local = "ankle"]] + | [[Feet|Body Modification][V.scarTarget.local = "foot"]] + } +} +</div> + +<div> +Or a custom site: +<<textbox "V.scarTarget.local" V.scarTarget.local "Body Modification">> +</div> + +/* Correct some "bad" choices" */ +if (["exotic", "menacing"].includes(V.scarDesign.local)) { + if (V.scarTarget.local !== "cheek") { + V.scarTarget.local = "cheek"; + } +} + +<div> +if (["ankle", "breast", "buttock", "calf", "cheek", "ear", "foot", "hand", "lower arm", "shoulder", "testicle", "thigh", "upper arm", "wrist"].includes(V.scarTarget.local)) { + _leftTarget = ("left " + V.scarTarget.local); + _rightTarget = ("right " + V.scarTarget.local); + if (slave.scar[_leftTarget]) { + r.push(`${His}${ _leftTarget} is already marked with `); +V.App.Desc.expandScarString(slave, _leftTarget) + r.push(`.`); + } + if (slave.scar[_rightTarget]) { + r.push(`${His}${ _rightTarget} is already marked with `); +V.App.Desc.expandScarString(slave, _rightTarget) + r.push(`.`); + } + r.push(`Scar ${him} now with ''${V.scarDesign.local}'' on the`); + _left = 0, _right = 0; + r.push(` /* overwrite brand */`); + + if (!(["upper arm", "lower arm", "wrist", "hand"].includes(V.scarTarget.local) && getLeftArmID(slave) !== 1) && !(["thigh", "calf", "ankle", "foot"].includes(V.scarTarget.local) && getLeftLegID(slave) !== 1)) { + _left = 1; + r.push(` /* make next checks easier */`); + <<link "left">> + V.scarTarget.local = _leftTarget; + V.scarApplied = 1; + App.Medicine.Modification.addScar(slave, _leftTarget, V.scarDesign.local); + cashX(forceNeg(V.modCost), "slaveMod", slave); + V.degradation += 10; + <<goto "Body Modification">> + <</link>> + } + if (!(["upper arm", "lower arm", "wrist", "hand"].includes(V.scarTarget.local) && getRightArmID(slave) !== 1) && !(["thigh", "calf", "ankle", "foot"].includes(V.scarTarget.local) && getRightLegID(slave) !== 1)) { + _right = 1; + r.push(` /* make next checks easier */`); + } + if (_left && _right) { + r.push(`${V.scarTarget.local}, or the`); + } + if (_right) { + <<link "right">> + V.scarTarget.local = _rightTarget; + V.scarApplied = 1; + App.Medicine.Modification.addScar(slave, _rightTarget, V.scarDesign.local); + cashX(forceNeg(V.modCost), "slaveMod", slave); + V.degradation += 10; + <<goto "Body Modification">> + <</link>> + } +if (!_left || !_right) { + r.push(` ${V.scarTarget.local}`); +}? +} else { + if (slave.scar.hasOwnProperty(V.scarTarget.local)) { + if (slave.scar[V.scarTarget.local][V.scarDesign.local]) { + r.push(`${He} already has ${V.scarDesign.local} scars on ${his} V.scarTarget.local. You can make it worse.`); + } else { + r.push(` /* check how much scarring is on this part */`); + _scarTotalValue = (Object.values(slave.scar[V.scarTarget.local])).reduce((a, b) => a + b, 0); + if (_scarTotalValue) { + r.push(`That would be a new kind of scar to add to the growing collection on ${his} ${V.scarTarget.local}. Life can always be worse for a slave.`); + } + } + } + <<link "Scar">> + if (V.scarTarget.local === "entire body" && V.scarDesign.local.includes("whip")) { + /* Special case for whipping scene, produces two kinds of scars */ + App.Medicine.Modification.addScourged(slave); + } else { + /* Normal entire body scarring */ + if (V.scarTarget.local === "entire body") { + _scarArray = ["left breast", "right breast", "back", "lower back", "left buttock", "right buttock"]; + if (getLeftArmID(slave) === 0) { + _scarArray.push("left upper arm"); + } + if (getRightArmID(slave) === 0) { + _scarArray.push("right upper arm"); + } + if (getLeftLegID(slave) === 0) { + _scarArray.push("left thigh"); + } + if (getRightLegID(slave) === 0) { + _scarArray.push("right thigh"); + } + /* Single scar */ + } else { + _scarArray = [V.scarTarget.local]; + } + <<for _i to 0; _i < _scarArray.length; _i++>> + App.Medicine.Modification.addScar(slave, _scarArray[_i], V.scarDesign.local); + V.degradation += 10; + <</for>> + } + cashX(forceNeg(V.modCost), "slaveMod", slave); + V.scarApplied = 1; + V.degradation += 10; + <<goto "Body Modification">> + <</link>> + r.push(`with ${V.scarDesign.local} on the V.scarTarget.local`); +if (slave.scar[V.scarTarget.local]) { + r.push(`, adding to the scars that are already there?`); +} else { + r.push(`.`); +} +} +</div> +</div> /* indent */ + +}; diff --git a/src/facilities/bodyModification/bodyModification.tw b/src/facilities/bodyModification/bodyModification.tw index ddac0a6b078..ecf4ae9e6b3 100644 --- a/src/facilities/bodyModification/bodyModification.tw +++ b/src/facilities/bodyModification/bodyModification.tw @@ -1,854 +1,3 @@ :: Body Modification [nobr jump-from-safe] -<<set $nextButton = "Confirm changes", $nextLink = "Slave Interact">> -<<run App.Utils.setLocalPronouns(getSlave($AS))>> -<<run Enunciate(getSlave($AS))>> - -<<set $encyclopedia = "The Studio">> - -<h1>Body Modification Studio</h1> -<p class="scene-intro"> - <<= SlaveFullName(getSlave($AS))>> is lying strapped down on the table in your body modification studio. $He is entirely at your mercy. - - <<if $brandApplied || $degradation || $scarApplied || $modReaction>> - <<if getSlave($AS).fuckdoll == 0>> - <<if canSee(getSlave($AS))>>There's a mirror on the ceiling, so $he can see<<else>>$He can't see, so <<if canHear(getSlave($AS))>>you're careful to describe<<else>>$he must, by $himself, get a feel for<</if>><</if>> $his new appearance. - <</if>> - <<if $brandApplied>> - The smell of burnt flesh hangs in the air. Being branded @@.health.dec;has hurt $his health a little.@@ - <<run healthDamage(getSlave($AS), 10)>> - <<unset $brandApplied>> - <</if>> - <<if $scarApplied>> - <<if $scarTarget.local == "entire body">> - <<switch $scarDesign.local>> - <<case "burn">> - Your goal wasn't to make the distinct shape of a brand, but rather to permanently mar the skin with an open flame. - <<case "surgical">> - <<if $PC.skill.medicine >= 100>> - Your medical mastery is perfect, so creating Frankenstein's monster was a deliberate work of art. - <<elseif $PC.skill.medicine > 0>> - Your medical skills are progressing, and the Frankenstein effect reminds you of your earliest attempts. - <<else>> - You really slashed away with your knife, but were careful not to allow $him to bleed out. - <</if>> - <<default>> - The best way to apply scarring to the entire body is with a good old fashioned whip. $His body is a mess of crisscrossed lines<<if hasAnyNaturalLimbs(getSlave($AS))>>, and $his <<if getLimbCount(getSlave($AS), 1) > 1>>limbs twisted so violently in their restraints that they too have<<else>>only limb twists so violently in its restraints that it too has<</if>> become scarred<</if>>. - <</switch>> - No matter how you chose to apply it, scarring so much of $his body has @@.health.dec; hurt $his health.@@ - <<run healthDamage(getSlave($AS), 20)>> - <<else>> - <<if getSlave($AS).scar[$scarTarget.local][$scarDesign.local] > 0>> - This is not the first time $he was scarred like this. - <</if>> - <<switch $scarDesign.local>> - <<case "whip">> - Targeting a single area with a whip is not easy. You set the mood by carefully arranging candles dripping on to a whimpering <<= getSlave($AS).slaveName>>, then got $his attention with a quick - <<if canSee(getSlave($AS))>> - wave - <<elseif canHear(getSlave($AS))>> - crack - <<else>> - tap - <</if>> - of the whip. One by one, you carefully snuffed out the candles, flicking hot wax as you went. After pausing a moment, you prepared to leave your mark. - <<if ["penis", "vagina"].includes($scarTarget.local)>> - <<if getSlave($AS).dick > 4 && $seeDicks>> - $His dick was large enough that it was not too difficult to hit, - <<elseif getSlave($AS).dick > 0 && $seeDicks>> - $His dick was a challengingly small target, - <<else>> - <<if getSlave($AS).clit > 0>> - $His clit was a difficult target, - <<else>> - $His clit was an impossibly tiny target, - <</if>> - <</if>> - but the end was never in doubt. The tip connected with $his most intimate place on the first try, and plunged $him into absolute agony. - <<else>> - The end was never in doubt. A few strokes of the whip plunged $him into agony $his body will not allow $him to forget. - <</if>> - <<case "burn">> - Your goal wasn't to make the distinct shape of a brand, but rather to permanently mar the <<= getSlave($AS).skin>> skin of $his $scarTarget.local with an open flame. - <<case "surgical">> - <<if $PC.skill.medicine >= 100>> - Your medical mastery is perfect, so creating such a scar was a deliberate act of degradation. - <<elseif $PC.skill.medicine > 0>> - Your medical skills are progressing, and the sloppy scar reminds you of your earliest attempts. - <<else>> - You really slashed away at $scarTarget.local with your knife, but were careful not to allow $him to bleed out. - <</if>> - <<default>> - You had no shortage of kinky and medical tools for applying scars. $His <<= getSlave($AS).skin>> $scarTarget.local is bleeding profusely. - <</switch>> - - No matter how you chose to apply it, being scarred @@.health.dec; hurt $his health a little.@@ - <<run healthDamage(getSlave($AS), 10)>> - <</if>> - Afterwards you seal the wounds with a white medical spray. Infection is no risk to <<= getSlave($AS).slaveName>> thanks to your curatives, but in order to form obvious scar tissue you had to keep air out and delay normal healing as long as possible. - <<unset $scarApplied>> - <</if>> - <<if getSlave($AS).fetish != "mindbroken" && getSlave($AS).fuckdoll == 0>> - <<if $degradation > 1>> - <<if $degradation > 5>> - <<if getSlave($AS).devotion <= 50 && getSlave($AS).trust < -50>> - $He is appalled by the whorish spectacle you have made of $him. $He @@.gold;fears@@ you all the more for this but is so terrified of you it does not affect $his submission. - <<set getSlave($AS).trust -= 10>> - <<elseif getSlave($AS).devotion <= 50>> - $He is appalled by the whorish spectacle you have made of $him. $He @@.mediumorchid;hates@@ and @@.gold;fears@@ you for this. - <<set getSlave($AS).devotion -= 10, getSlave($AS).trust -= 10>> - <<else>> - $He is shocked by the whorish spectacle you have made of $him. However, $he is so submissive to your will that $he @@.hotpink;accepts@@ that the slave <<if canSee(getSlave($AS))>>in the mirror<<else>>$he pictures<</if>> is who $he is now. - <<set getSlave($AS).devotion += 4>> - <</if>> - <br><br> - <<else>> - <<if getSlave($AS).devotion < -20 && getSlave($AS).trust < 20>> - $He is @@.gold;afraid@@ that $he has been permanently altered against $his will, but is also scared of your reaction to any objection and suppresses $his disgust. - <<set getSlave($AS).trust -= 5>> - <<elseif getSlave($AS).devotion < -20>> - $He is @@.mediumorchid;angry@@ and @@.gold;afraid@@ that $he has been permanently altered against $his will. - <<set getSlave($AS).devotion -= 5, getSlave($AS).trust -= 5>> - <<else>> - $He is saddened to have been altered against $his will. However, $he realizes that $he is a slave, so $he @@.hotpink;accepts@@ your work. - <<set getSlave($AS).devotion += 2>> - <</if>> - <</if>> - <<set $degradation = 0>> - <</if>> - <<if $modReaction>> - <<print $modReaction>> - <<unset $modReaction>> - <</if>> - <</if>> - <</if>> - - /* 000-250-006 */ - <<if $seeImages == 1>> - <<if $imageChoice == 1>> - <div class="imageRef lrgVector"><div class="mask"> </div><<= SlaveArt(getSlave($AS), 3, 0)>></div> - <<else>> - <div class="imageRef lrgRender"><div class="mask"> </div><<= SlaveArt(getSlave($AS), 3, 0)>></div> - <</if>> - <</if>> - /* 000-250-006 */ -</p> - -/* PIERCINGS */ - -<<set _piercingCount =(getSlave($AS).earPiercing + getSlave($AS).nosePiercing + getSlave($AS).eyebrowPiercing + getSlave($AS).lipsPiercing + getSlave($AS).tonguePiercing + getSlave($AS).nipplesPiercing + getSlave($AS).areolaePiercing + getSlave($AS).corsetPiercing + getSlave($AS).navelPiercing + getSlave($AS).clitPiercing + getSlave($AS).vaginaPiercing + getSlave($AS).dickPiercing + getSlave($AS).anusPiercing)>> - -/*DESCRIPTIONS */ - -<h2>Piercings</h2> - -<div class="indent"> - <div style="padding-bottom:1em"> - <<if _piercingCount == 0>> - $His smooth <<= getSlave($AS).skin>> skin is completely unpierced. - <</if>> - <div><<= App.Desc.piercing(getSlave($AS), "ear")>></div> - <div><<= App.Desc.piercing(getSlave($AS), "nose")>></div> - <div><<= App.Desc.piercing(getSlave($AS), "eyebrow")>></div> - <div><<= App.Desc.piercing(getSlave($AS), "lips")>></div> - <div><<= App.Desc.piercing(getSlave($AS), "tongue")>></div> - <div><<= App.Desc.piercing(getSlave($AS), "nipple")>></div> - <div><<= App.Desc.piercing(getSlave($AS), "areolae")>></div> - <div><<= App.Desc.piercing(getSlave($AS), "navel")>></div> - <div><<= App.Desc.piercing(getSlave($AS), "corset")>></div> - <div><<= App.Desc.piercing(getSlave($AS), "clit")>></div> - <div><<= App.Desc.piercing(getSlave($AS), "vagina")>></div> - <div><<= App.Desc.piercing(getSlave($AS), "dick")>></div> - <div><<= App.Desc.piercing(getSlave($AS), "anus")>></div> - - <div><<= App.Desc.piercing(getSlave($AS), "chastity")>></div> - </div> - - /* Apply piercings */ - - <div> - Choose piercing style: - <<if $piercingLevel != 1>>[[Light|Body Modification][$piercingLevel = 1]]<<else>>Light<</if>> - <<if $piercingLevel != 2>>| [[Heavy|Body Modification][$piercingLevel = 2]]<<else>>| Heavy<</if>> - <<if $piercingLevel != 3>>| [[Smart|Body Modification][$piercingLevel = 3]]<<else>>| Smart<</if>> - <<if $piercingLevel != 0>>| [[Remove|Body Modification][$piercingLevel = 0]]<<else>>| Remove<</if>> - </div> - - <div> - <<if $piercingLevel == 1>> - //Lightly// pierce $his: - - <<link "Entire body">> - <<set $modReaction = "">> - <<if getSlave($AS).earPiercing != 1>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "ear", 1)>><</if>> - <<if getSlave($AS).nosePiercing != 1>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "nose", 1)>><</if>> - <<if getSlave($AS).eyebrowPiercing != 1>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "eyebrow", 1)>><</if>> - <<if getSlave($AS).lipsPiercing != 1>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "lips", 1)>><</if>> - <<if getSlave($AS).tonguePiercing != 1>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "tongue", 1)>><</if>> - <<if getSlave($AS).nipples != "fuckable">> - <<if getSlave($AS).nipplesPiercing != 1>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "nipples", 1)>><</if>> - <</if>> - <<if getSlave($AS).areolaePiercing != 1>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "areolae", 1)>><</if>> - <<if getSlave($AS).corsetPiercing != 1>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "corset", 1)>><</if>> - <<if getSlave($AS).navelPiercing != 1>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "navel", 1)>><</if>> - <<if (getSlave($AS).vagina != -1) || (getSlave($AS).dick != 0)>> - <<if getSlave($AS).clitPiercing != 1>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "clit", 1)>><</if>> - <</if>> - <<if (getSlave($AS).vagina != -1)>> - <<if getSlave($AS).vaginaPiercing != 1>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "vagina", 1)>><</if>> - <</if>> - <<if (getSlave($AS).dick > 0)>> - <<if getSlave($AS).dickPiercing != 1>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "dick", 1)>><</if>> - <</if>> - <<if getSlave($AS).anusPiercing != 1>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "anus", 1)>><</if>> - <<goto "Body Modification">> - <</link>> - - <<if getSlave($AS).earPiercing != 1>> | [[Ear|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "ear", 1)]]<</if>> - <<if getSlave($AS).nosePiercing != 1>> | [[Nose|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "nose", 1)]]<</if>> - <<if getSlave($AS).eyebrowPiercing != 1>> | [[Eyebrow|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "eyebrow", 1)]]<</if>> - <<if getSlave($AS).lipsPiercing != 1>> | [[Lips|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "lips", 1)]]<</if>> - <<if getSlave($AS).tonguePiercing != 1>> | [[Tongue|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "tongue", 1)]]<</if>> - <<if getSlave($AS).nipples != "fuckable">> - <<if getSlave($AS).nipplesPiercing != 1>> | [[Nipples|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "nipples", 1)]]<</if>> - <</if>> - <<if getSlave($AS).areolaePiercing != 1>> | [[Areolae|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "areolae", 1)]]<</if>> - <<if getSlave($AS).corsetPiercing != 1>> | [[Corset|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "corset", 1)]]<</if>> - <<if getSlave($AS).navelPiercing != 1>> | [[Navel|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "navel", 1)]]<</if>> - <<if (getSlave($AS).vagina != -1) || (getSlave($AS).dick != 0)>> - <<if getSlave($AS).vagina != -1>> - <<if getSlave($AS).clitPiercing != 1>> | [[Clit|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "clit", 1)]]<</if>> - <<else>> - <<if getSlave($AS).clitPiercing != 1>> | [[Dickhead|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "clit", 1)]]<</if>> - <</if>> - <</if>> - <<if (getSlave($AS).vagina != -1)>> - <<if getSlave($AS).vaginaPiercing != 1>> | [[Vagina|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "vagina", 1)]]<</if>> - <</if>> - <<if (getSlave($AS).dick > 0)>> - <<if getSlave($AS).dickPiercing != 1>> | [[Dick|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "dick", 1)]]<</if>> - <</if>> - <<if getSlave($AS).anusPiercing != 1>> | [[Anus|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "anus", 1)]]<</if>> - <<elseif $piercingLevel == 2>> - ''Heavily'' pierce $his: - - <<link "Entire body">> - <<set $modReaction = "">> - <<if getSlave($AS).earPiercing != 2>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "ear", 2), $degradation += 1>><</if>> - <<if getSlave($AS).nosePiercing != 2>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "nose", 2), $degradation += 1>><</if>> - <<if getSlave($AS).eyebrowPiercing != 2>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "eyebrow", 2), $degradation += 1>><</if>> - <<if getSlave($AS).lipsPiercing != 2>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "lips", 2), $degradation += 1>><</if>> - <<if getSlave($AS).tonguePiercing != 2>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "tongue", 2), $degradation += 1>><</if>> - <<if getSlave($AS).nipples != "fuckable">> - <<if getSlave($AS).nipplesPiercing != 2>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "nipples", 2), $degradation += 1>><</if>> - <</if>> - <<if getSlave($AS).areolaePiercing != 2>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "areolae", 2), $degradation += 1>><</if>> - <<if getSlave($AS).corsetPiercing != 2>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "corset", 2), $degradation += 1>><</if>> - <<if getSlave($AS).navelPiercing != 2>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "navel", 2), $degradation += 1>><</if>> - <<if (getSlave($AS).vagina != -1) || (getSlave($AS).dick != 0)>> - <<if getSlave($AS).clitPiercing != 2>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "clit", 2), $degradation += 1>><</if>> - <</if>> - <<if (getSlave($AS).vagina != -1)>> - <<if getSlave($AS).vaginaPiercing != 2>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "vagina", 2), $degradation += 1>><</if>> - <</if>> - <<if (getSlave($AS).dick > 0)>> - <<if getSlave($AS).dickPiercing != 2>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "dick", 2), $degradation += 1>><</if>> - <</if>> - <<if getSlave($AS).anusPiercing != 2>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "anus", 2), $degradation += 1>><</if>> - <<goto "Body Modification">> - <</link>> - - <<if getSlave($AS).earPiercing != 2>> | [[Ear|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "ear", 2),$degradation += 1]]<</if>> - <<if getSlave($AS).nosePiercing != 2>> | [[Nose|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "nose", 2),$degradation += 1]]<</if>> - <<if getSlave($AS).eyebrowPiercing != 2>> | [[Eyebrow|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "eyebrow", 2),$degradation += 1]]<</if>> - <<if getSlave($AS).lipsPiercing != 2>> | [[Lips|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "lips", 2),$degradation += 1]]<</if>> - <<if getSlave($AS).tonguePiercing != 2>> | [[Tongue|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "tongue", 2),$degradation += 1]]<</if>> - <<if getSlave($AS).nipples != "fuckable">> - <<if getSlave($AS).nipplesPiercing != 2>> | [[Nipples|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "nipples", 2),$degradation += 1]]<</if>> - <</if>> - <<if getSlave($AS).areolaePiercing != 2>> | [[Areolae|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "areolae", 2),$degradation += 1]]<</if>> - <<if getSlave($AS).corsetPiercing != 2>> | [[Corset|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "corset", 2),$degradation += 1]]<</if>> - <<if getSlave($AS).navelPiercing != 2>> | [[Navel|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "navel", 2),$degradation += 1]]<</if>> - <<if (getSlave($AS).vagina != -1) || (getSlave($AS).dick != 0)>> - <<if getSlave($AS).vagina != -1>> - <<if getSlave($AS).clitPiercing != 2>> | [[Clit|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "clit", 2),$degradation += 1]]<</if>> - <<else>> - <<if getSlave($AS).clitPiercing != 2>> | [[Dickhead|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "clit", 2),$degradation += 1]]<</if>> - <</if>> - <</if>> - <<if (getSlave($AS).vagina != -1)>> - <<if getSlave($AS).vaginaPiercing != 2>> | [[Vagina|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "vagina", 2),$degradation += 1]]<</if>> - <</if>> - <<if (getSlave($AS).dick > 0)>> - <<if getSlave($AS).dickPiercing != 2>> | [[Dick|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "dick", 2),$degradation += 1]]<</if>> - <</if>> - <<if getSlave($AS).anusPiercing != 2>> | [[Anus|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "anus", 2),$degradation += 1]]<</if>> - <<elseif $piercingLevel == 3>> - <<if (getSlave($AS).vagina != -1) || (getSlave($AS).dick != 0)>> - <<if getSlave($AS).clitPiercing != 3>> - Give $him a [[smart piercing?|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "clit", 3),getSlave($AS).clitSetting = "all",$degradation += 1]] //Costs <<print cashFormat($SPcost)>>, unlocks options to mold sexuality// - <<else>> - $He already has a smart piercing! - <</if>> - <</if>> - <<elseif $piercingLevel == 0>> - Remove piercings from: - - /* no dick/vagina checks in 'remove' so stealth piercings can be cleaned. Check only for piercings. */ - <<link "Everywhere">> - <<set $modReaction = "">> - <<if getSlave($AS).earPiercing > 0>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "ear", 0)>><</if>> - <<if getSlave($AS).nosePiercing > 0>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "nose", 0)>><</if>> - <<if getSlave($AS).eyebrowPiercing > 0>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "eyebrow", 0)>><</if>> - <<if getSlave($AS).lipsPiercing > 0>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "lips", 0)>><</if>> - <<if getSlave($AS).tonguePiercing > 0>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "tongue", 0)>><</if>> - <<if getSlave($AS).nipplesPiercing > 0>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "nipples", 0)>><</if>> - <<if getSlave($AS).areolaePiercing > 0>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "areolae", 0)>><</if>> - <<if getSlave($AS).corsetPiercing > 0>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "corset", 0)>><</if>> - <<if getSlave($AS).navelPiercing > 0>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "navel", 0)>><</if>> - <<if getSlave($AS).clitPiercing > 0>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "clit", 0)>><</if>> - <<if getSlave($AS).vaginaPiercing > 0>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "vagina", 0)>><</if>> - <<if getSlave($AS).dickPiercing > 0>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "dick", 0)>><</if>> - <<if getSlave($AS).anusPiercing > 0>><<set $modReaction += App.Medicine.Modification.setPiercing(getSlave($AS), "anus", 0)>><</if>> - <<goto "Body Modification">> - <</link>> - - <<if getSlave($AS).earPiercing > 0>> | [[Ear|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "ear", 0)]]<</if>> - <<if getSlave($AS).nosePiercing > 0>> | [[Nose|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "nose", 0)]]<</if>> - <<if getSlave($AS).eyebrowPiercing > 0>> | [[Eyebrow|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "eyebrow", 0)]]<</if>> - <<if getSlave($AS).lipsPiercing > 0>> | [[Lips|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "lips", 0)]]<</if>> - <<if getSlave($AS).tonguePiercing > 0>> | [[Tongue|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "tongue", 0)]]<</if>> - <<if getSlave($AS).nipplesPiercing > 0>> | [[Nipples|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "nipples", 0)]]<</if>> - <<if getSlave($AS).areolaePiercing > 0>> | [[Areolae|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "areolae", 0)]]<</if>> - <<if getSlave($AS).corsetPiercing > 0>> | [[Corset|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "corset", 0)]]<</if>> - <<if getSlave($AS).navelPiercing > 0>> | [[Navel|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "navel", 0)]]<</if>> - <<if getSlave($AS).vagina != -1>> - <<if getSlave($AS).clitPiercing > 0>> | [[Clit|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "clit", 0)]]<</if>> - <<else>> - <<if getSlave($AS).clitPiercing > 0>> | [[Dickhead|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "clit", 0)]]<</if>> - <</if>> - <<if getSlave($AS).vaginaPiercing > 0>> | [[Vagina|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "vagina", 0)]]<</if>> - <<if getSlave($AS).dickPiercing > 0>> | [[Dick|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "dick", 0)]]<</if>> - <<if getSlave($AS).anusPiercing > 0>> | [[Anus|Body Modification][$modReaction = App.Medicine.Modification.setPiercing(getSlave($AS), "anus", 0)]]<</if>> - <</if>> - </div> -</div> /* indent */ - -/* TATTOOS */ - -<h2>Tattoos</h2> -<div class="indent"> - <div style="padding-bottom:1em"> - <<if getSlave($AS).shouldersTat != 0>><div><<= App.Desc.tattoo(getSlave($AS), "shoulder")>></div><<set _hasTat = 1>><</if>> - <<if getSlave($AS).lipsTat != 0>><div><<= App.Desc.tattoo(getSlave($AS), "lips")>></div><<set _hasTat = 1>><</if>> - <<if getSlave($AS).boobsTat != 0>><div><<= App.Desc.tattoo(getSlave($AS), "breast")>></div><<set _hasTat = 1>><</if>> - <<if getSlave($AS).armsTat != 0 && hasAnyNaturalArms(getSlave($AS))>><div><<= App.Desc.tattoo(getSlave($AS), "upper arm")>></div><<set _hasTat = 1>><</if>> - <<if getSlave($AS).backTat != 0>><div><<= App.Desc.tattoo(getSlave($AS), "back")>></div><<set _hasTat = 1>><</if>> - <<if getSlave($AS).stampTat != 0>><div><<= App.Desc.tattoo(getSlave($AS), "lower back")>></div><<set _hasTat = 1>><</if>> - <<if getSlave($AS).buttTat != 0>><div><<= App.Desc.tattoo(getSlave($AS), "buttock")>></div><<set _hasTat = 1>><</if>> - <<if getSlave($AS).vaginaTat != 0>><div><<= App.Desc.tattoo(getSlave($AS), "vagina")>></div><<set _hasTat = 1>><</if>> - <<if getSlave($AS).dickTat != 0 && getSlave($AS).dick > 0>><div><<= App.Desc.tattoo(getSlave($AS), "dick")>></div><<set _hasTat = 1>><</if>> - <<if getSlave($AS).anusTat != 0>><div><<= App.Desc.tattoo(getSlave($AS), "anus")>></div><<set _hasTat = 1>><</if>> - <<if getSlave($AS).legsTat != 0 && hasAnyNaturalLegs(getSlave($AS))>><div><<= App.Desc.tattoo(getSlave($AS), "thigh")>></div><<set _hasTat = 1>><</if>> - </div> - - <div> - Choose a tattoo style: - /* if/else is here so a "highlighted" option is never a link. */ - <<if $tattooChoice != "tribal patterns">>[[Tribal patterns|Body Modification][$tattooChoice = "tribal patterns"]]<<else>>Tribal patterns<</if>> - <<if $tattooChoice != "flowers">> | [[Flowers|Body Modification][$tattooChoice = "flowers"]]<<else>>| Flowers<</if>> - <<if $tattooChoice != "counting">> | [[Counting|Body Modification][$tattooChoice = "counting"]]<<else>>| Counting<</if>> - <<if $tattooChoice != "advertisements">> | [[Advertisements|Body Modification][$tattooChoice = "advertisements"]]<<else>>| Advertisements<</if>> - <<if $tattooChoice != "rude words">> | [[Rude words|Body Modification][$tattooChoice = "rude words"]]<<else>>| Rude words<</if>> - <<if $tattooChoice != "degradation">> | [[Degradation|Body Modification][$tattooChoice = "degradation"]]<<else>>| Degradation<</if>> - <<if $tattooChoice != "Asian art">> | [[Asian art|Body Modification][$tattooChoice = "Asian art"]] <<else>>| Asian art<</if>> - <<if $tattooChoice != "scenes">> | [[Scenes|Body Modification][$tattooChoice = "scenes"]]<<else>>| Scenes<</if>> - <<if $tattooChoice != "bovine patterns">> | [[Bovine|Body Modification][$tattooChoice = "bovine patterns"]]<<else>>| Bovine<</if>> - <<if $tattooChoice != "permanent makeup">> | [[Permanent makeup|Body Modification][$tattooChoice = "permanent makeup"]]<<else>>| Permanent makeup<</if>> - <<if $tattooChoice != "sacrilege">> | [[Sacrilege|Body Modification][$tattooChoice = "sacrilege"]]<<else>>| Sacrilege<</if>> - <<if $tattooChoice != "sacrament">> | [[Sacrament|Body Modification][$tattooChoice = "sacrament"]]<<else>>| Sacrament<</if>> - <<if $tattooChoice != "possessive">> | [[Possessive|Body Modification][$tattooChoice = "possessive"]]<<else>>| Possessive<</if>> - <<if $tattooChoice != "paternalist">> | [[Paternalist|Body Modification][$tattooChoice = "paternalist"]]<<else>>| Paternalist<</if>> - - <<if getSlave($AS).anusTat == 0>> - <<if $tattooChoice != "bleached">>| [[Bleach|Body Modification][$tattooChoice = "bleached"]]<<else>>| Bleach<</if>> - <</if>> - - <<if _hasTat == 1>> - <<if $tattooChoice !== 0>> | //[[Remove a tattoo|Body Modification][$tattooChoice = 0]]//<<else>>| Remove a tattoo<</if>> - <</if>> - </div> - - <div> - <<if def $tattooChoice>> - <<if $tattooChoice == 0>> - Clean the ink off of $him: - <<elseif $tattooChoice == "counting">> - Add tallies of $his sexual exploits to $him: - <<elseif $tattooChoice == "bleached">> - Bleach $his: - <<else>> - Add $tattooChoice to $his: - <</if>> - - <<if ($tattooChoice != "bleached") && ($tattooChoice != "permanent makeup")>> - <<link "Entire body">> - <<set _degradationTemp = 0, $modReaction = "">> - <<if getSlave($AS).boobsTat != $tattooChoice>> - <<set $modReaction += App.Medicine.Modification.setTattoo(getSlave($AS), "boobs", $tattooChoice)>> - <<set _degradationTemp += 1>> - <</if>> - - <<if getSlave($AS).buttTat != $tattooChoice>> - <<set $modReaction += App.Medicine.Modification.setTattoo(getSlave($AS), "butt", $tattooChoice)>> - <<set _degradationTemp += 1>> - <</if>> - - <<if getSlave($AS).vaginaTat != $tattooChoice>> - <<set $modReaction += App.Medicine.Modification.setTattoo(getSlave($AS), "vagina", $tattooChoice)>> - <<set _degradationTemp += 1>> - <</if>> - - <<if getSlave($AS).dick > 0>> - <<if getSlave($AS).dickTat != $tattooChoice && $tattooChoice != "scenes">> - <<set $modReaction += App.Medicine.Modification.setTattoo(getSlave($AS), "dick", $tattooChoice)>> - <<set _degradationTemp += 1>> - <</if>> - <</if>> - - <<if getSlave($AS).lipsTat != $tattooChoice>> - <<if $tattooChoice == "scenes">> - <<set $modReaction += App.Medicine.Modification.setTattoo(getSlave($AS), "lips", "permanent makeup")>> - <<else>> - <<set $modReaction += App.Medicine.Modification.setTattoo(getSlave($AS), "lips", $tattooChoice)>> - <</if>> - <<set _degradationTemp += 1>> - <</if>> - - <<if ($tattooChoice == "Asian art" || $tattooChoice == "scenes") && getSlave($AS).anusTat == "bleached">> - /* leave existing bleached anus alone */ - <<elseif getSlave($AS).anusTat != $tattooChoice>> - <<set $modReaction += App.Medicine.Modification.setTattoo(getSlave($AS), "anus", $tattooChoice)>> - <<set _degradationTemp += 1>> - <</if>> - - <<if getSlave($AS).shouldersTat != $tattooChoice>> - <<set $modReaction += App.Medicine.Modification.setTattoo(getSlave($AS), "shoulders", $tattooChoice)>> - <<set _degradationTemp += 1>> - <</if>> - - <<if getSlave($AS).backTat != $tattooChoice>> - <<set $modReaction += App.Medicine.Modification.setTattoo(getSlave($AS), "back", $tattooChoice)>> - <<set _degradationTemp += 1>> - <</if>> - - <<if hasAnyNaturalArms(getSlave($AS))>> - <<if getSlave($AS).armsTat != $tattooChoice>> - <<set $modReaction += App.Medicine.Modification.setTattoo(getSlave($AS), "arms", $tattooChoice)>> - <<set _degradationTemp += 1>> - <</if>> - <</if>> - <<if hasAnyNaturalLegs(getSlave($AS))>> - <<if getSlave($AS).legsTat != $tattooChoice>> - <<set $modReaction += App.Medicine.Modification.setTattoo(getSlave($AS), "legs", $tattooChoice)>> - <<set _degradationTemp += 1>> - <</if>> - <</if>> - - <<if getSlave($AS).stampTat != $tattooChoice>> - <<set $modReaction += App.Medicine.Modification.setTattoo(getSlave($AS), "stamp", $tattooChoice)>> - <<set _degradationTemp += 1>> - <</if>> - - <<if !["flowers", "paternalist", "tribal patterns", 0].includes($tattooChoice)>> - <<set $degradation += _degradationTemp>> - <</if>> - - <<goto "Body Modification">> - <</link>> - <</if>> - - <<if $tattooChoice == "permanent makeup">> - [[Face|Body Modification][$modReaction = App.Medicine.Modification.setTattoo(getSlave($AS), "lips", $tattooChoice)]] - <<elseif $tattooChoice == "bleached">> - [[Asshole|Body Modification][$modReaction = App.Medicine.Modification.setTattoo(getSlave($AS), "anus", $tattooChoice)]] - <<else>> - <<if getSlave($AS).shouldersTat != $tattooChoice>> | [[Shoulders|Body Modification][$modReaction = App.Medicine.Modification.setTattoo(getSlave($AS), "shoulders", $tattooChoice)]]<</if>> - <<if $tattooChoice != "scenes">> - <<if getSlave($AS).lipsTat != $tattooChoice>> | [[Face|Body Modification][$modReaction = App.Medicine.Modification.setTattoo(getSlave($AS), "lips", $tattooChoice)]]<</if>> - <</if>> - <<if getSlave($AS).boobsTat != $tattooChoice>> | [[Boobs|Body Modification][$modReaction = App.Medicine.Modification.setTattoo(getSlave($AS), "boobs", $tattooChoice)]]<</if>> - <<if hasAnyNaturalArms(getSlave($AS))>> - <<if getSlave($AS).armsTat != $tattooChoice>> | [[Arms|Body Modification][$modReaction = App.Medicine.Modification.setTattoo(getSlave($AS), "arms", $tattooChoice)]]<</if>> - <</if>> - <<if getSlave($AS).backTat != $tattooChoice>> | [[Upper back|Body Modification][$modReaction = App.Medicine.Modification.setTattoo(getSlave($AS), "back", $tattooChoice)]]<</if>> - <<if getSlave($AS).stampTat != $tattooChoice>> | [[Lower back|Body Modification][$modReaction = App.Medicine.Modification.setTattoo(getSlave($AS), "stamp", $tattooChoice)]]<</if>> - <<if getSlave($AS).buttTat != $tattooChoice>> | [[Buttock|Body Modification][$modReaction = App.Medicine.Modification.setTattoo(getSlave($AS), "butt", $tattooChoice)]]<</if>> - <<if getSlave($AS).vaginaTat != $tattooChoice>> | [[Vagina|Body Modification][$modReaction = App.Medicine.Modification.setTattoo(getSlave($AS), "vagina", $tattooChoice)]]<</if>> - <<if getSlave($AS).dick > 0 && $tattooChoice != "scenes">> - <<if getSlave($AS).dickTat != $tattooChoice>> | [[Dick|Body Modification][$modReaction = App.Medicine.Modification.setTattoo(getSlave($AS), "dick", $tattooChoice)]]<</if>> - <</if>> - <<if ($tattooChoice != "Asian art") && ($tattooChoice != "scenes")>> - <<if getSlave($AS).anusTat != $tattooChoice>> | [[Anus|Body Modification][$modReaction = App.Medicine.Modification.setTattoo(getSlave($AS), "anus", $tattooChoice)]]<</if>> - <</if>> - <<if hasAnyNaturalLegs(getSlave($AS))>> - <<if getSlave($AS).legsTat != $tattooChoice>> | [[Legs|Body Modification][$modReaction = App.Medicine.Modification.setTattoo(getSlave($AS), "legs", $tattooChoice)]]<</if>> - <</if>> - <</if>> - <</if>> - </div> - - <div> - <<if getSlave($AS).belly >= 10000 && getSlave($AS).bellyPreg < 450000 && getSlave($AS).bellyFluid < 5000>> - <<if getSlave($AS).bellyTat == 0>> - $He has no navel tattoos. - <<else>> - $His navel is tattooed with <<= getSlave($AS).bellyTat>>. - <</if>> - <<if getSlave($AS).bellyTat == 0>> - <div> - [[Heart|Body Modification][$modReaction = App.Medicine.Modification.setTattoo(getSlave($AS), "belly", "a heart")]] - | [[Star|Body Modification][$modReaction = App.Medicine.Modification.setTattoo(getSlave($AS), "belly", "a star")]] - | [[Butterfly|Body Modification][$modReaction = App.Medicine.Modification.setTattoo(getSlave($AS), "belly", "a butterfly")]] - </div> - <</if>> - <<if getSlave($AS).bellyTat != 0>> - //[[Remove tattoos|Body Modification][$modReaction = App.Medicine.Modification.setTattoo(getSlave($AS), "belly", 0)]]// - <</if>> - <<elseif getSlave($AS).bellyPreg >= 450000>> - $His middle is large and taut enough to be a suitable canvas for a navel focused tattoo, but $his brood is too active to permit the needle to do its work. - <<elseif getSlave($AS).bellyFluid >= 10000>> - $His middle is large and taut enough to be a suitable canvas for a navel focused tattoo, but the pressure applied to $his stomach will likely force $him to release its contents. - <<else>> - $His middle isn't large enough to be a suitable canvas for a navel focused tattoo. - <</if>> - </div> - - <div> - <<if getSlave($AS).birthsTat > 0>> - <<if getSlave($AS).birthsTat > 1>> - $He has a series of <<= num(getSlave($AS).birthsTat)>> baby-shaped tattoos adorning $his stomach; one for each successful pregnancy<<if getSlave($AS).pregKnown == 1>> and a temporary one for $his current pregnancy<</if>>. - <<else>> - $He has a single baby-shaped tattoo<<if getSlave($AS).pregKnown == 1>>, and one temporary one,<</if>> adorning $his stomach. - <</if>> - //[[Remove tattoos|Body Modification][getSlave($AS).birthsTat = -1, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS))]]// - <<elseif getSlave($AS).birthsTat == 0>> - <<if getSlave($AS).pregKnown == 1>> - $He has a single baby-shaped temporary tattoo adorning $his stomach. - //[[Remove it|Body Modification][getSlave($AS).birthsTat = -1]]// - <<if getSlave($AS).abortionTat > -1>> //This will only remove birth tracking//<</if>> - <<else>> - $He is scheduled to receive a tattoo each time $he gives birth. - //[[Cancel|Body Modification][getSlave($AS).birthsTat = -1]]// - <</if>> - <<else>> - Have $him receive a tattoo each time $he gives birth. - //[[Begin keeping track|Body Modification][getSlave($AS).birthsTat = 0]]// - <</if>> - </div> - - <div> - <<if getSlave($AS).abortionTat > 0>> - <<if getSlave($AS).abortionTat > 1>> - $He has a series of <<= num(getSlave($AS).abortionTat)>> crossed out baby-shaped tattoos<<if getSlave($AS).pregKnown == 1>>, and one uncrossed one,<</if>> adorning $his stomach. - <<else>> - $He has a single crossed out baby-shaped tattoo<<if getSlave($AS).pregKnown == 1>>, and one uncrossed one,<</if>> adorning $his stomach. - <</if>> - //[[Remove tattoos|Body Modification][getSlave($AS).abortionTat = -1, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS))]]// - <<elseif getSlave($AS).abortionTat == 0>> - <<if getSlave($AS).pregKnown == 1>> - $He has a single baby-shaped temporary tattoo adorning $his stomach. - //[[Remove it|Body Modification][getSlave($AS).abortionTat = -1]]// - <<if getSlave($AS).birthsTat > -1>> //This will only remove abortion tracking//<</if>> - <<else>> - $He is scheduled to receive a tattoo each time $he gets an abortion or miscarries. - //[[Cancel|Body Modification][getSlave($AS).abortionTat = -1]]// - <</if>> - <<else>> - Have $him receive a tattoo for each abortion or miscarriage $he has. - //[[Begin keeping track|Body Modification][getSlave($AS).abortionTat = 0]]// - <</if>> - </div> -</div>/* indent */ - -<h3>Custom Tattoos</h3> -<div class="indent"> - //Use complete sentences, make a description of it// - <div class="grid-2columns-auto"> - <<if getSlave($AS).lipsTat == 0>> - <div>Give $him a custom face tattoo:</div> - <div><<textbox "$slaves[$slaveIndices[$AS]].lipsTat" $slaves[$slaveIndices[$AS]].lipsTat "Slave Interact">></div> - <</if>> - - <<if getSlave($AS).shouldersTat == 0>> - <div>Give $him a custom shoulder tattoo:</div> - <div><<textbox "$slaves[$slaveIndices[$AS]].shouldersTat" $slaves[$slaveIndices[$AS]].shouldersTat "Slave Interact">></div> - <</if>> - - <<if getSlave($AS).armsTat == 0 && hasAnyNaturalArms(getSlave($AS))>> - <div>Give $him a custom arm tattoo:</div> - <div><<textbox "$slaves[$slaveIndices[$AS]].armsTat" $slaves[$slaveIndices[$AS]].armsTat "Slave Interact">></div> - <</if>> - - <<if getSlave($AS).boobsTat == 0>> - <div>Give $him a custom tit tattoo:</div> - <div><<textbox "$slaves[$slaveIndices[$AS]].boobsTat" $slaves[$slaveIndices[$AS]].boobsTat "Slave Interact">></div> - <</if>> - - <<if getSlave($AS).backTat == 0>> - <div>Give $him a custom back tattoo:</div> - <div><<textbox "$slaves[$slaveIndices[$AS]].backTat" $slaves[$slaveIndices[$AS]].backTat "Slave Interact">></div> - <</if>> - - <<if getSlave($AS).stampTat == 0>> - <div>Give $him a custom tramp stamp (lower back tattoo):</div> - <div><<textbox "$slaves[$slaveIndices[$AS]].stampTat" $slaves[$slaveIndices[$AS]].stampTat "Slave Interact">></div> - <</if>> - - <<if getSlave($AS).buttTat == 0>> - <div>Give $him a custom butt tattoo:</div> - <div><<textbox "$slaves[$slaveIndices[$AS]].buttTat" $slaves[$slaveIndices[$AS]].buttTat "Slave Interact">></div> - <</if>> - - <<if getSlave($AS).dickTat == 0 && getSlave($AS).dick != 0>> - <div>Give $him a custom dick tattoo:</div> - <div><<textbox "$slaves[$slaveIndices[$AS]].dickTat" $slaves[$slaveIndices[$AS]].dickTat "Slave Interact">></div> - <</if>> - - <<if getSlave($AS).vaginaTat == 0>> - <div>Give $him a custom pubic tattoo:</div> - <div><<textbox "$slaves[$slaveIndices[$AS]].vaginaTat" $slaves[$slaveIndices[$AS]].vaginaTat "Slave Interact">></div> - <</if>> - - <<if getSlave($AS).anusTat == 0>> - <div>Give $him a custom anus tattoo:</div> - <div><<textbox "$slaves[$slaveIndices[$AS]].anusTat" $slaves[$slaveIndices[$AS]].anusTat "Slave Interact">></div> - <</if>> - - <<if getSlave($AS).legsTat == 0 && hasAnyNaturalLegs(getSlave($AS))>> - <div>Give $him a custom leg tattoo:</div> - <div><<textbox "$slaves[$slaveIndices[$AS]].legsTat" $slaves[$slaveIndices[$AS]].legsTat "Slave Interact">></div> - <</if>> - </div> /* grid */ - - <div> - <<if (getSlave($AS).custom.tattoo == "")>> - Give $him a custom tattoo: <<textbox "$slaves[$slaveIndices[$AS]].custom.tattoo" $slaves[$slaveIndices[$AS]].custom.tattoo "Slave Interact">> - <<else>> - $He <<if _hasTat == 1>>also<</if>> has a custom tattoo: <<= getSlave($AS).custom.tattoo>> - Change it here: <<textbox "$slaves[$slaveIndices[$AS]].custom.tattoo" $slaves[$slaveIndices[$AS]].custom.tattoo "Slave Interact">> - <</if>> - <<if getSlave($AS).custom.tattoo != "">> - //[[Remove custom tattoo|Body Modification][getSlave($AS).custom.tattoo = "",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS))]]// - <</if>> - </div> - -</div> /* indent */ - -/* Branding */ - -<h2>Branding</h2> -<span id="brand-selection"></span> -<script> - App.Medicine.Modification.Select.brand(getSlave(V.AS)) -</script> - - -<<if getSlave($AS).breedingMark == 1 && ($propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> - <div class="indent"> - $He has an intricate tattoo on $his lower belly that suggests $he was made to be bred. [[Remove it|Body Modification][getSlave($AS).breedingMark = 0]] - </div> -<</if>> - -/* Scars */ - -<h2>Scars</h2> -<div class="indent"> -<div style="padding-bottom:1em"> -<<for _scarName, _scar range getSlave($AS).scar>> - <div> - $His _scarName is marked with <<= App.Desc.expandScarString(getSlave($AS), _scarName)>>: - <<capture _scarName>> - <<link "Remove Scar">> - <<set $scarApplied = 0>> - <<run delete getSlave($AS).scar[_scarName]>> - <<run cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS))>> - <<set $degradation -= 10>> - <<goto "Body Modification">> - <</link>> - <</capture>> - </div> -<</for>> -<<if (jQuery.isEmptyObject(getSlave($AS).scar))>> - <div> - $His skin is not scarred. - </div> -<</if>> -</div> - -<div> -Use ''$scarDesign.local'' or choose another scar: - -[[Whip|Body Modification][$scarDesign.local = "whip"]] -| [[Burns|Body Modification][$scarDesign.local = "burn"]] -| [[Surgical|Body Modification][$scarDesign.local = "surgical"]] -| [[Menacing|Body Modification][$scarDesign.local = "menacing"]] -| [[Exotic|Body Modification][$scarDesign.local = "exotic"]] -/* Other common scars might be battle scars or c-Section but it makes little sense to include them here */ -</div> - -<div> -Or design your own: <<textbox "$scarDesign.local" $scarDesign.local "Body Modification">> -</div> - -<div> -Choose a site for scaring: - -<<if ["exotic", "menacing"].includes($scarDesign.local)>> - [[Cheeks|Body Modification][$scarTarget.local = "cheek"]] -<<else>> - /* Sorted head to toe */ - - [[Entire body|Body Modification][$scarTarget.local = "entire body"]] - - /* Head */ - <<if getSlave($AS).earShape != "none">> - | [[Ears|Body Modification][$scarTarget.local = "ear"]] - <</if>> - | [[Cheeks|Body Modification][$scarTarget.local = "cheek"]] - | [[Neck|Body Modification][$scarTarget.local = "neck"]] - - /* Torso */ - | [[Chest|Body Modification][$scarTarget.local = "chest"]] - | [[Breasts|Body Modification][$scarTarget.local = "breast"]] - | [[Back|Body Modification][$scarTarget.local = "back"]] - | [[Lower Back|Body Modification][$scarTarget.local = "lower back"]] - | [[Belly|Body Modification][$scarTarget.local = "belly"]] - | [[Pubic Mound|Body Modification][$scarTarget.local = "pubic mound"]] - <<if getSlave($AS).dick > 0>> - | [[Penis|Body Modification][$scarTarget.local = "penis"]] - <</if>> - <<if getSlave($AS).balls > 0 && getSlave($AS).scrotum > 0>> - | [[Testicles|Body Modification][$scarTarget.local = "testicle"]] - <</if>> - - /* Arms*/ - | [[Shoulders|Body Modification][$scarTarget.local = "shoulder"]] - <<if hasAnyNaturalArms(getSlave($AS))>> - | [[Arm, upper|Body Modification][$scarTarget.local = "upper arm"]] - | [[Arm, lower|Body Modification][$scarTarget.local = "lower arm"]] - | [[Wrists|Body Modification][$scarTarget.local = "wrist"]] - | [[Hands|Body Modification][$scarTarget.local = "hand"]] - <</if>> - - /* Legs */ - | [[Buttocks|Body Modification][$scarTarget.local = "buttock"]] - <<if hasAnyNaturalLegs(getSlave($AS))>> - | [[Thighs|Body Modification][$scarTarget.local = "thigh"]] - | [[Calves|Body Modification][$scarTarget.local = "calf"]] - | [[Ankles|Body Modification][$scarTarget.local = "ankle"]] - | [[Feet|Body Modification][$scarTarget.local = "foot"]] - <</if>> -<</if>> -</div> - -<div> -Or a custom site: <<textbox "$scarTarget.local" $scarTarget.local "Body Modification">> -</div> - -/* Correct some "bad" choices" */ -<<if ["exotic", "menacing"].includes($scarDesign.local)>> - <<if $scarTarget.local != "cheek">> - <<set $scarTarget.local = "cheek">> - <</if>> -<</if>> - -<div> -<<if ["ankle", "breast", "buttock", "calf", "cheek", "ear", "foot", "hand", "lower arm", "shoulder", "testicle", "thigh", "upper arm", "wrist"].includes($scarTarget.local)>> - <<set _leftTarget = ("left " + $scarTarget.local)>> - <<set _rightTarget = ("right " + $scarTarget.local)>> - <<if getSlave($AS).scar[_leftTarget]>> - $His _leftTarget is already marked with <<= App.Desc.expandScarString(getSlave($AS), _leftTarget)>>. - <</if>> - <<if getSlave($AS).scar[_rightTarget]>> - $His _rightTarget is already marked with <<= App.Desc.expandScarString(getSlave($AS), _rightTarget)>>. - <</if>> - Scar $him now with ''$scarDesign.local'' on the - <<set _left = 0, _right = 0>> /* overwrite brand */ - - <<if !(["upper arm", "lower arm", "wrist", "hand"].includes($scarTarget.local) && getLeftArmID(getSlave($AS)) !== 1) && !(["thigh", "calf", "ankle", "foot"].includes($scarTarget.local) && getLeftLegID(getSlave($AS)) !== 1)>> - <<set _left = 1>> /* make next checks easier */ - <<link "left">> - <<set $scarTarget.local = _leftTarget>> - <<set $scarApplied = 1>> - <<run App.Medicine.Modification.addScar(getSlave($AS), _leftTarget, $scarDesign.local)>> - <<run cashX(forceNeg($modCost), "slaveMod", getSlave($AS))>> - <<set $degradation += 10>> - <<goto "Body Modification">> - <</link>> - <</if>> - <<if !(["upper arm", "lower arm", "wrist", "hand"].includes($scarTarget.local) && getRightArmID(getSlave($AS)) !== 1) && !(["thigh", "calf", "ankle", "foot"].includes($scarTarget.local) && getRightLegID(getSlave($AS)) !== 1)>> - <<set _right = 1>> /* make next checks easier */ - <</if>> - <<if _left && _right>> - $scarTarget.local, or the - <</if>> - <<if _right>> - <<link "right">> - <<set $scarTarget.local = _rightTarget>> - <<set $scarApplied = 1>> - <<run App.Medicine.Modification.addScar(getSlave($AS), _rightTarget, $scarDesign.local)>> - <<run cashX(forceNeg($modCost), "slaveMod", getSlave($AS))>> - <<set $degradation += 10>> - <<goto "Body Modification">> - <</link>> - <</if>><<if !_left || !_right>> $scarTarget.local<</if>>? -<<else>> - <<if getSlave($AS).scar.hasOwnProperty($scarTarget.local)>> - <<if getSlave($AS).scar[$scarTarget.local][$scarDesign.local]>> - $He already has $scarDesign.local scars on $his $scarTarget.local. You can make it worse. - <<else>> /* check how much scarring is on this part */ - <<set _scarTotalValue = (Object.values(getSlave($AS).scar[$scarTarget.local])).reduce((a, b) => a + b, 0)>> - <<if _scarTotalValue>> - That would be a new kind of scar to add to the growing collection on $his $scarTarget.local. Life can always be worse for a slave. - <</if>> - <</if>> - <</if>> - <<link "Scar">> - <<if $scarTarget.local === "entire body" && $scarDesign.local.includes("whip")>> - /* Special case for whipping scene, produces two kinds of scars */ - <<run App.Medicine.Modification.addScourged(getSlave($AS))>> - <<else>> - /* Normal entire body scarring */ - <<if $scarTarget.local === "entire body">> - <<set _scarArray = ["left breast", "right breast", "back", "lower back", "left buttock", "right buttock"]>> - <<if getLeftArmID(getSlave($AS)) === 0>> - <<set _scarArray.push("left upper arm")>> - <</if>> - <<if getRightArmID(getSlave($AS)) === 0>> - <<set _scarArray.push("right upper arm")>> - <</if>> - <<if getLeftLegID(getSlave($AS)) === 0>> - <<set _scarArray.push("left thigh")>> - <</if>> - <<if getRightLegID(getSlave($AS)) === 0>> - <<set _scarArray.push("right thigh")>> - <</if>> - /* Single scar */ - <<else>> - <<set _scarArray = [$scarTarget.local]>> - <</if>> - <<for _i to 0; _i < _scarArray.length; _i++>> - <<run App.Medicine.Modification.addScar(getSlave($AS), _scarArray[_i], $scarDesign.local)>> - <<set $degradation += 10>> - <</for>> - <</if>> - <<run cashX(forceNeg($modCost), "slaveMod", getSlave($AS))>> - <<set $scarApplied = 1>> - <<set $degradation += 10>> - <<goto "Body Modification">> - <</link>> - with $scarDesign.local on the $scarTarget.local<<if getSlave($AS).scar[$scarTarget.local]>>, adding to the scars that are already there?<<else>>.<</if>> -<</if>> -</div> -</div> /* indent */ +<<set $nextButton = "Confirm changes", $nextLink = "Slave Interact", $encyclopedia = "The Studio">> -- GitLab