From 273080475af5e63b5c48ceb4b7adeb6af6a047e7 Mon Sep 17 00:00:00 2001 From: lowercase-donkey <lowercasedonkey@gmail.com> Date: Sat, 27 Jul 2019 21:00:05 -0400 Subject: [PATCH] piercings --- .../nursery/longChildDescription.tw | 14 ++-- src/js/describePiercings.js | 73 +++++++++++++++++++ src/js/describeTattoos.js | 2 +- src/js/descriptionWidgets.js | 7 +- src/npc/descriptions/boobs/boobs.js | 4 +- src/uncategorized/bodyModification.tw | 47 ++++-------- src/uncategorized/longSlaveDescription.tw | 16 ++-- src/uncategorized/wardrobeUse.tw | 2 +- src/utility/descriptionWidgetsFlesh.tw | 21 +----- src/utility/descriptionWidgetsStyle.tw | 4 +- 10 files changed, 116 insertions(+), 74 deletions(-) create mode 100644 src/js/describePiercings.js diff --git a/src/facilities/nursery/longChildDescription.tw b/src/facilities/nursery/longChildDescription.tw index da979d185e6..7ce18eb896f 100644 --- a/src/facilities/nursery/longChildDescription.tw +++ b/src/facilities/nursery/longChildDescription.tw @@ -1119,9 +1119,7 @@ $He is $activeChild.counter.pitKills slaves have died by $his hand in pit fights. <</if>> -<<if $activeChild.corsetPiercing > 0>> - <<CorsetPiercingDescription>> -<</if>> +<<= App.Desc.piercing($activeChild, "corset")>> <<pregnancyDescription>> @@ -1282,9 +1280,9 @@ $He is The piercings on $his head run through $his suit, helping secure the material to $his head. <</if>> <<else>> - <<earPiercingDescription>> - <<nosePiercingDescription>> - <<eyebrowPiercingDescription>> + <<= App.Desc.mods($activeChild, "ear")>> + <<= App.Desc.mods($activeChild, "nose")>> + <<= App.Desc.mods($activeChild, "eyebrow")>> <<if ($activeChild.custom.tattoo != "") && (def $activeChild.custom.tattoo)>> <<print $activeChild.custom.tattoo>> <</if>> @@ -1343,9 +1341,7 @@ $He is <<= App.Desc.mods($activeChild, "breast")>> <<shouldersDescription>> <<nipplesDescription>> -<<if $showBodyMods == 1>> - <<nipplesPiercingDescription>> -<</if>> +<<= App.Desc.mods($activeChild, "nipple")>> <<areolaeDescription>> <<if $activeChild.inflation > 0>> /* to be obsoleted with phase 4 */ diff --git a/src/js/describePiercings.js b/src/js/describePiercings.js new file mode 100644 index 00000000000..8086a30a06b --- /dev/null +++ b/src/js/describePiercings.js @@ -0,0 +1,73 @@ +/** + * @param {App.Entity.SlaveState} slave + * @returns {string} Relevant slave tattoo, if present + */ +App.Desc.piercing = function(slave, surface) { + "use strict"; + const V = State.variables; + let r = ``; + /* eslint-disable no-unused-vars*/ + const { + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + /* eslint-enable */ + switch (surface) { + case "ear": { + r += `<<earPiercingDescription>>`; + break; + } + case "nose": { + r += `<<nosePiercingDescription>>`; + break; + } + case "eyebrow": { + r += `<<eyebrowPiercingDescription>>`; + break; + } + case "lips": { + r += `<<lipsPiercingDescription>>`; + break; + } + case "tongue": { + r += `<<tonguePiercingDescription>>`; + break; + } + case "nipple": { + r += `<<nipplesPiercingDescription>>`; + break; + } + case "areolae": { + r += `<<areolaePiercingDescription>>`; + break; + } + case "navel": { + r += `<<navelPiercingDescription>>`; + break; + } + case "clit": { + r += `<<clitPiercingDescription>>`; + break; + } + case "vagina": { + r += `<<vaginaPiercingDescription>>`; + break; + } + case "dick": { + r += `<<dickPiercingDescription>>`; + break; + } + case "anus": { + r += `<<anusPiercingDescription>>`; + break; + } + case "corset": { // non anatomical + r += `<<CorsetPiercingDescription>>`; + break; + } + case "chastity": { // non anatomical + r += `<<chastityPiercingDescription>>`; + break; + } + } + return r; +}; diff --git a/src/js/describeTattoos.js b/src/js/describeTattoos.js index acdd17f24f2..54ecdbc31df 100644 --- a/src/js/describeTattoos.js +++ b/src/js/describeTattoos.js @@ -44,7 +44,7 @@ App.Desc.tattoo = function(slave, surface) { r += `<<vaginaTatDescription>>`; break; } - case "penis": { + case "dick": { r += `<<dickTatDescription>>`; break; } diff --git a/src/js/descriptionWidgets.js b/src/js/descriptionWidgets.js index 28ac6fa97b2..a61343d53ec 100644 --- a/src/js/descriptionWidgets.js +++ b/src/js/descriptionWidgets.js @@ -588,7 +588,12 @@ App.Desc.mods = function(slave, surface) { if (slave.fuckdoll !== 0 && !["vagina", "anus", "lips"].includes(surface)) { /* Fuckdoll vulva and anus alone are visibile, plus enormus lips */ return; } - return App.Desc.tattoo(slave, surface) + App.Desc.brand(slave, surface) + App.Desc.scar(slave, surface); + return ( + App.Desc.piercing(slave, surface) + + App.Desc.tattoo(slave, surface) + + App.Desc.brand(slave, surface) + + App.Desc.scar(slave, surface) + ); }; /** diff --git a/src/npc/descriptions/boobs/boobs.js b/src/npc/descriptions/boobs/boobs.js index a7d93502f6f..6deaacde6c9 100644 --- a/src/npc/descriptions/boobs/boobs.js +++ b/src/npc/descriptions/boobs/boobs.js @@ -1703,9 +1703,9 @@ App.Desc.areola = function(slave, pronouns) { r.push(`${His} motherly boobs point downward, though, leaving only the top of each ${slave.areolaeShape} visible.`); } } - } else { + } /* else { r.push(this.areolaePiercing(slave, pronouns)); - } + }*/ } if ((V.showClothing === 1) && (V.saleDescription === 0)) { if (slave.areolae > 1) { diff --git a/src/uncategorized/bodyModification.tw b/src/uncategorized/bodyModification.tw index b6829ef34dd..aee6e814ea3 100644 --- a/src/uncategorized/bodyModification.tw +++ b/src/uncategorized/bodyModification.tw @@ -404,36 +404,21 @@ Piercings: $His smooth $activeSlave.skin skin is completely unpierced. <</if>> -<<if $activeSlave.earPiercing > 0 >><br> <<earPiercingDescription>><</if>> -<<if $activeSlave.nosePiercing > 0 >><br> <<nosePiercingDescription>><</if>> -<<if $activeSlave.eyebrowPiercing > 0 >><br> <<eyebrowPiercingDescription>><</if>> -<<if $activeSlave.lipsPiercing > 0 >><br> <<lipsPiercingDescription>><</if>> -<<if $activeSlave.tonguePiercing > 0 >><br> <<tonguePiercingDescription>><</if>> -<<if $activeSlave.nipplesPiercing > 0 >><br> <<nipplesPiercingDescription>><</if>> -<<if $activeSlave.areolaePiercing > 0 >><br> <<areolaePiercingDescription>><</if>> -<<if $activeSlave.navelPiercing > 0 >><br> <<navelPiercingDescription>><</if>> -<<if $activeSlave.corsetPiercing > 0 >><br> <<CorsetPiercingDescription>><</if>> -<<if $activeSlave.clitPiercing > 0 >><br> <<clitPiercingDescription>><</if>> -<<if $activeSlave.vaginaPiercing > 0 >><br> <<vaginaPiercingDescription>><</if>> -<<if $activeSlave.dickPiercing > 0 >><br> <<dickPiercingDescription>><</if>> -<<if $activeSlave.anusPiercing > 0 >><br> <<anusPiercingDescription>><</if>> - -<br><<chastityPiercingDescription>> - -/*<<earPiercingDescription>> -<<nosePiercingDescription>> -<<eyebrowPiercingDescription>> -<<lipsPiercingDescription>> -<<tonguePiercingDescription>> -<<nipplesPiercingDescription>> -<<areolaePiercingDescription>> -<<navelPiercingDescription>> -<<CorsetPiercingDescription>> -<<clitPiercingDescription>> -<<vaginaPiercingDescription>> -<<dickPiercingDescription>> -<<anusPiercingDescription>> -<<chastityPiercingDescription>>*/ +<<if $activeSlave.earPiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "ear")>><</if>> +<<if $activeSlave.nosePiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "nose")>><</if>> +<<if $activeSlave.eyebrowPiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "eyebrow")>><</if>> +<<if $activeSlave.lipsPiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "lips")>><</if>> +<<if $activeSlave.tonguePiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "tongue")>><</if>> +<<if $activeSlave.nipplesPiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "nipple")>><</if>> +<<if $activeSlave.areolaePiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "areolae")>><</if>> +<<if $activeSlave.navelPiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "navel")>><</if>> +<<if $activeSlave.corsetPiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "corset")>><</if>> +<<if $activeSlave.clitPiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "clit")>><</if>> +<<if $activeSlave.vaginaPiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "vagina")>><</if>> +<<if $activeSlave.dickPiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "dick")>><</if>> +<<if $activeSlave.anusPiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "anus")>><</if>> + +<br><<= App.Desc.piercing($activeSlave, "chastity")>> /* Apply piercings */ @@ -624,7 +609,7 @@ Tattoos: <<if $activeSlave.stampTat != 0>> <br> <<= App.Desc.tattoo($activeSlave, "lower back")>><<set _hasTat = 1>><</if>> <<if $activeSlave.buttTat != 0>> <br> <<= App.Desc.tattoo($activeSlave, "buttock")>><<set _hasTat = 1>><</if>> <<if $activeSlave.vaginaTat != 0>> <br> <<= App.Desc.tattoo($activeSlave, "vagina")>><<set _hasTat = 1>><</if>> -<<if $activeSlave.dickTat != 0 && $activeSlave.dick > 0>> <br> <<= App.Desc.tattoo($activeSlave, "penis")>><<set _hasTat = 1>><</if>> +<<if $activeSlave.dickTat != 0 && $activeSlave.dick > 0>> <br> <<= App.Desc.tattoo($activeSlave, "dick")>><<set _hasTat = 1>><</if>> <<if $activeSlave.anusTat != 0>> <br> <<= App.Desc.tattoo($activeSlave, "anus")>><<set _hasTat = 1>><</if>> <<if $activeSlave.legsTat != 0 && $activeSlave.amp != 1>> <br> <<= App.Desc.tattoo($activeSlave, "thigh")>><<set _hasTat = 1>><</if>> diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw index 582036d6452..4db8ac2a928 100644 --- a/src/uncategorized/longSlaveDescription.tw +++ b/src/uncategorized/longSlaveDescription.tw @@ -1926,9 +1926,7 @@ $He is $activeSlave.counter.pitKills slaves have died by $his hand in pit fights. <</if>> -<<if $activeSlave.corsetPiercing > 0>> - <<CorsetPiercingDescription>> -<</if>> +<<= App.Desc.piercing($activeSlave, "corset")>> <<pregnancyDescription>> @@ -2082,9 +2080,9 @@ $He is The piercings on $his head run through $his suit, helping secure the material to $his head. <</if>> <<else>> - <<earPiercingDescription>> - <<nosePiercingDescription>> - <<eyebrowPiercingDescription>> + <<= App.Desc.mods($activeSlave, "ear")>> + <<= App.Desc.mods($activeSlave, "nose")>> + <<= App.Desc.mods($activeSlave, "eyebrow")>> <<if ($activeSlave.custom.tattoo != "") && (def $activeSlave.custom.tattoo)>> <<print $activeSlave.custom.tattoo>> <</if>> @@ -2144,10 +2142,9 @@ $He is <<= App.Desc.mods($activeSlave, "breast")>> <<shouldersDescription>> <<nipplesDescription>> -<<if $showBodyMods == 1>> - <<nipplesPiercingDescription>> -<</if>> +<<= App.Desc.mods($activeSlave, "nipple")>> <<areolaeDescription>> +<<= App.Desc.mods($activeSlave, "areolae")>> <<if $activeSlave.inflation > 0>> /* to be obsoleted with phase 4 */ <<BellyInflationDescription>> @@ -2156,6 +2153,7 @@ $He is <<else>> <<BellyDescription>> <</if>> +<<= App.Desc.mods($activeSlave, "navel")>> <<ButtDescription>> diff --git a/src/uncategorized/wardrobeUse.tw b/src/uncategorized/wardrobeUse.tw index 7e5f34bbfcd..1f0eb75d7cc 100644 --- a/src/uncategorized/wardrobeUse.tw +++ b/src/uncategorized/wardrobeUse.tw @@ -407,7 +407,7 @@ Collar: ''$activeSlave.collar.'' Torso accessory: ''$activeSlave.bellyAccessory.'' <br> -//<<waistDescription>><<pregnancyDescription>><<clothingCorsetDescription>><<CorsetPiercingDescription>>// +//<<waistDescription>><<pregnancyDescription>><<clothingCorsetDescription>><<= App.Desc.piercing($activeSlave, "corset")>>// <<options $activeSlave.bellyAccessory>> <<option "none" "None">> <<option "a corset" "Tight corset">> diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw index 715142ccb42..ec8c905f7d0 100644 --- a/src/utility/descriptionWidgetsFlesh.tw +++ b/src/utility/descriptionWidgetsFlesh.tw @@ -1471,9 +1471,6 @@ $He's got a <<buttplugDescription>> <<= App.Desc.mods($activeSlave, "anus")>> -<<if $showBodyMods == 1>> - <<anusPiercingDescription>> -<</if>> <<if $activeSlave.fuckdoll > 0>> As a Fuckdoll, @@ -3604,11 +3601,6 @@ $He's got a <<= App.Desc.mods($activeSlave, "dick")>> <<= App.Desc.mods($activeSlave, "testicle")>> -<<if $activeSlave.fuckdoll == 0>> - <<if $showBodyMods == 1>> - <<dickPiercingDescription>> - <</if>> -<</if>> <</widget>> @@ -4010,11 +4002,8 @@ $He's got a <</if>> <</if>> -<<if $showBodyMods == 1>> - <<vaginaPiercingDescription>> - <<clitPiercingDescription>> -<</if>> <<= App.Desc.mods($activeSlave, "vagina")>> +<<= App.Desc.mods($activeSlave, "clit")>> <<if $activeSlave.fuckdoll == 0>> <<if ($activeSlave.releaseRules == "permissive") || $activeSlave.releaseRules == "masturbation">> @@ -4385,7 +4374,6 @@ $His <<makeupDescription>> <</if>> <</if>> -<<= App.Desc.mods($activeSlave, "lips")>> <</widget>> @@ -4507,11 +4495,8 @@ $He has $He has no sense of taste, but this isn't immediately obvious just by looking at $his tongue. <</if>> -<<if $showBodyMods == 1>> - <<lipsPiercingDescription>> - <<tonguePiercingDescription>> -<</if>> - +<<= App.Desc.mods($activeSlave, "lips")>> +<<= App.Desc.mods($activeSlave, "tongue")>> <<if $activeSlave.fuckdoll > 0>> <<if $PC.dick == 1>>Sticking a dick<<else>>Sliding a dildo<</if>> into $his <<if $activeSlave.lips > 95>>facepussy<<else>>mouth insert<</if>> diff --git a/src/utility/descriptionWidgetsStyle.tw b/src/utility/descriptionWidgetsStyle.tw index 7cf0f56afbe..7ea6398956c 100644 --- a/src/utility/descriptionWidgetsStyle.tw +++ b/src/utility/descriptionWidgetsStyle.tw @@ -877,7 +877,7 @@ $activeSlave.slaveName is <<footwearDescription>> <</if>> - <<chastityPiercingDescription>> + <<= App.Desc.piercing($activeSlave, "chastity")>> <<case "a Santa dress">> made of red felt with white fur @@ -4883,7 +4883,7 @@ $His end at mid-calf, leaving $his feet bare except for a set of jeweled toe-rings. <</switch>> - <<chastityPiercingDescription>> + <<= App.Desc.piercing($activeSlave, "chastity")>> <<default>> <<switch $activeSlave.shoes>> -- GitLab