diff --git a/src/facilities/salon/salonPassage.js b/src/facilities/salon/salonPassage.js index 7e0d601640c83284882580f315adef9e6ad8bbc8..b78f34aecd986a313a2b0b7ad571d04d2ef83311 100644 --- a/src/facilities/salon/salonPassage.js +++ b/src/facilities/salon/salonPassage.js @@ -174,6 +174,26 @@ App.UI.salon = function(slave, cheat = false) { if (showChoices) { if (slave.hLength > 1) { + // Original color + if (cheat) { + option = options.addOption("Natural color", "origHColor", slave); + for (const color of App.Medicine.Modification.Color.Primary) { + option.addValue(capFirstChar(color.value), color.value, billMod); + } + option.pulldown(); + + options.addOption("") + .customButton( + "Sync body hair color", + () => { + slave.eyebrowHColor = slave.origHColor; + slave.pubicHColor = slave.origHColor; + slave.underArmHColor = slave.origHColor; + App.UI.reload(); + }, + "" + ); + } // Color option = options.addOption("Primary color", "hColor", slave); if (slave.origHColor !== slave.hColor) { @@ -260,6 +280,16 @@ App.UI.salon = function(slave, cheat = false) { const options = new App.UI.OptionsGroup(); let comment = []; + if (cheat) { + options.addOption(`${His} natural skin color is`, "origSkin", slave).showTextBox() + .addValueList([["Pure White", "pure white"], ["Ivory", "ivory"], ["White", "white"], ["Extremely Pale", "extremely pale"], + ["Very Pale", "very pale"], ["Pale", "pale"], ["Extremely Fair", "extremely fair"], ["Very Fair", "very fair"], + ["Fair", "fair"], ["Light", "light"], ["Light Olive", "light olive"], ["Tan", "tan"], ["Olive", "olive"], ["Bronze", "bronze"], + ["Dark Olive", "dark olive"], ["Dark", "dark"], ["Light Beige", "light beige"], ["Beige", "beige"], + ["Dark Beige", "dark beige"], ["Light Brown", "light brown"], ["Brown", "brown"], ["Dark Brown", "dark brown"], + ["Black", "black"], ["Ebony", "ebony"], ["Pure Black", "pure black"]]).pulldown(); + } + let option = options.addOption(`${His} skin is ${slave.skin}.`, "skin", slave); if (App.Medicine.Modification.dyedSkins.includes(slave.skin)) { option.addValue("Remove coloring", slave.origSkin, billMod); @@ -303,6 +333,17 @@ App.UI.salon = function(slave, cheat = false) { for (const dye of App.Medicine.Modification.dyedSkins) { option.addValue(capFirstChar(dye), dye, billMod); } + + if (cheat) { + options.addOption(`${His} skin's marks are`, "markings", slave) + .addValueList([ + ["None", "none"], + ["Freckles", "freckles"], + ["Heavily freckled", "heavily freckled"], + ["Beauty mark", "beauty mark"], + ["Birthmark", "birthmark"], + ]); + } option.pulldown(); if (slave.markings === "beauty mark") { diff --git a/src/npc/startingGirls/startingGirls.js b/src/npc/startingGirls/startingGirls.js index 15c12bda60d42096c1db238afecad3d0b9e7c5c5..8a03b57faeb3de2c96e13845758dcdf4de0288b3 100644 --- a/src/npc/startingGirls/startingGirls.js +++ b/src/npc/startingGirls/startingGirls.js @@ -37,11 +37,6 @@ App.StartingGirls.cleanup = function(slave) { resetEyeColor(slave, "both"); slave.origRace = slave.race; - slave.skin = slave.origSkin; - slave.hColor = slave.origHColor; - slave.eyebrowHColor = slave.hColor; - slave.pubicHColor = slave.hColor; - slave.underArmHColor = slave.hColor; if (slave.balls === 0) { slave.scrotum = 0; diff --git a/src/npc/startingGirls/startingGirls.tw b/src/npc/startingGirls/startingGirls.tw index 8d1b8731c2b86d9186c346222bd28a851d4167ff..eb8a930e046c3575c14da7388c7e367ae4a7892d 100644 --- a/src/npc/startingGirls/startingGirls.tw +++ b/src/npc/startingGirls/startingGirls.tw @@ -206,6 +206,7 @@ <button class="tab-links" onclick="App.UI.tabBar.openTab(event, 'Skills')" id="tab Skills">Skills</button> <button class="tab-links" onclick="App.UI.tabBar.openTab(event, 'Family', App.StartingGirls.uncommittedFamilyTree(V.activeSlave))" id="tab Family">Family</button> <button class="tab-links" onclick="App.UI.tabBar.openTab(event, 'body-mods')" id="tab body-mods">Body Mods</button> + <button class="tab-links" onclick="App.UI.tabBar.openTab(event, 'salon')" id="tab salon">Salon</button> <button class="tab-links" onclick="App.UI.tabBar.openTab(event, 'Customization')" id="tab Customization">Customization</button> <<if $cash >= _slaveCost>> <button class="tab-links" onclick="App.UI.tabBar.openTab(event, 'assignRemove')" id="tab assignRemove">Finalize</button> @@ -335,14 +336,6 @@ ["Amerindian", "amerindian"], ["Pacific Islander", "pacific islander"], ["Malay", "malay"], ["Mixed Race", "mixed race"]])>> <</if>> - <<run _options.addOption("$His skin color is", "origSkin", $activeSlave).showTextBox() - .addValueList([["Pure White", "pure white"], ["Ivory", "ivory"], ["White", "white"], ["Extremely Pale", "extremely pale"], - ["Very Pale", "very pale"], ["Pale", "pale"], ["Extremely Fair", "extremely fair"], ["Very Fair", "very fair"], - ["Fair", "fair"], ["Light", "light"], ["Light Olive", "light olive"], ["Tan", "tan"], ["Olive", "olive"], ["Bronze", "bronze"], - ["Dark Olive", "dark olive"], ["Dark", "dark"], ["Light Beige", "light beige"], ["Beige", "beige"], - ["Dark Beige", "dark beige"], ["Light Brown", "light brown"], ["Brown", "brown"], ["Dark Brown", "dark brown"], - ["Black", "black"], ["Ebony", "ebony"], ["Pure Black", "pure black"]])>> - <<run _options.addOption("Intelligence", "intelligence", $activeSlave) .addValueList([["Moronic", -100], ["Very stupid", -60], ["Stupid", -30], ["Average", 0], ["Smart", 30], ["Very smart", 60], ["Brilliant", 100]])>> @@ -470,6 +463,16 @@ .addRange(6000, 6000, "<=", "Monstrous") .addRange(8000, 6000, ">", "Science Experiment")>> + <<run _options.addOption("Natural shape", "boobShape", $activeSlave) + .addValueList([ + ["Normal", "normal"], + ["Perky", "perky"], + ["Torpedo-shaped", "torpedo-shaped"], + ["Wide-set", "wide-set"], + ["Downward-facing", "downward-facing"], + ["Saggy", "saggy"] + ])>> + <<run _options.addOption("Lactation", "lactation", $activeSlave) .addValue("Artificial", 2, () => V.activeSlave.lactationDuration = 2) .addValue("Natural", 1, () => V.activeSlave.lactationDuration = 2) @@ -493,6 +496,22 @@ <<run _options.addOption("Anus", "anus", $activeSlave) .addValueList([["Virgin", 0], ["Normal", 1], ["Veteran", 2], ["Gaping", 3]])>> + <<if $activeSlave.anus > 0>> + <<if $activeSlave.analArea <= $activeSlave.anus>> + <<set _comment = "Recently stretched to current size.">>" + <<elseif $activeSlave.analArea - $activeSlave.anus == 1>> + <<set _comment = "Used to current size."">> + <<else>> + <<set _comment = "Very broad."">> + <</if>> + <<run _options.addOption("External anus appearance", "anus", $activeSlave) + .addValueList([ + ["Recently stretched", $activeSlave.analArea = $activeSlave.anus], + ["Used to current size", $activeSlave.analArea = $activeSlave.anus+1], + ["Very broad", $activeSlave.analArea = $activeSlave.anus+2], + ]).addComment(_comment)>> + <</if>> + <<run _options.addOption("Vagina", "vagina", $activeSlave) .addValue("No vagina", -1, () => { V.activeSlave.preg = 0; @@ -906,6 +925,12 @@ </div> </div> +<div id="salon" class="tab-content"> + <div class="content"> + <<includeDOM App.UI.salon($activeSlave, true)>> + </div> +</div> + <div id="Customization" class="tab-content"> <div class="content"> @@ -916,9 +941,6 @@ <br>''Career:'' <span id="career-textbox"><<textbox "$activeSlave.career" $activeSlave.career "Starting Girls">></span> <span id="careers"></span> <script>jQuery('#careers').empty().append(App.StartingGirls.career(V.activeSlave));</script> - <br>''Hair color:'' <<textbox "$activeSlave.origHColor" $activeSlave.origHColor "Starting Girls">> //This will also set eyebrow, pubic, and underarm hair color.// - <br>''Hair Style:'' <<textbox "$activeSlave.hStyle" $activeSlave.hStyle "Starting Girls">> - <br>''Hair Length:'' <<textbox "$activeSlave.hLength" $activeSlave.hLength "Starting Girls">> <br>''Eye color:'' <<textbox "$activeSlave.eye.origColor" $activeSlave.eye.origColor "Starting Girls">> <<if def $pupil_temp>> <<set $activeSlave.eye.left.pupil = $pupil_temp, $activeSlave.eye.right.pupil = $pupil_temp, delete $pupil_temp>> @@ -928,7 +950,6 @@ <<set $activeSlave.eye.left.sclera = $sclerae_temp, $activeSlave.eye.right.sclera = $sclerae_temp, delete $sclerae_temp>> <</if>> <br>''Sclera color:'' <<textbox "$sclerae_temp" $activeSlave.eye.left.sclera "Starting Girls">> - <br>Custom tattoo: <<textbox "$activeSlave.custom.tattoo" $activeSlave.custom.tattoo "Starting Girls">> //Use complete, capitalized and punctuated sentences.// <br>Custom origin story: <<textbox "$activeSlave.origin" $activeSlave.origin "Starting Girls">> //Use complete, capitalized and punctuated sentences.// <br>Origin override: <<if $originOverride == 1>> @@ -942,79 +963,6 @@ <br>Custom description: <<textbox "$activeSlave.custom.desc" $activeSlave.custom.desc "Starting Girls">> //Use complete, capitalized and punctuated sentences.// <br>Custom label: <<textbox "$activeSlave.custom.label" $activeSlave.custom.label "Starting Girls">> //Use a short phrase.// - <br><br> - ''Eyebrow hair style:'' $activeSlave.eyebrowHStyle. - [[Natural|Starting Girls][$activeSlave.eyebrowHStyle = "natural"]] - | [[Curved|Starting Girls][$activeSlave.eyebrowHStyle = "curved"]] - | [[Elongated|Starting Girls][$activeSlave.eyebrowHStyle = "elongated"]] - | [[High-Arched|Starting Girls][$activeSlave.eyebrowHStyle = "high-arched"]] - | [[Rounded|Starting Girls][$activeSlave.eyebrowHStyle = "rounded"]] - | [[Shaved|Starting Girls][$activeSlave.eyebrowHStyle = "shaved"]] - | [[Shortened|Starting Girls][$activeSlave.eyebrowHStyle = "shortened"]] - | [[Slanted Inwards|Starting Girls][$activeSlave.eyebrowHStyle = "slanted inwards"]] - | [[Slanted Outwards|Starting Girls][$activeSlave.eyebrowHStyle = "slanted outwards"]] - | [[Straight|Starting Girls][$activeSlave.eyebrowHStyle = "straight"]] - - <br> - ''Eyebrow hair maintenance:'' $activeSlave.eyebrowFullness - [[Natural|Starting Girls][$activeSlave.eyebrowFullness = "natural"]] - | [[Bushy|Starting Girls][$activeSlave.eyebrowFullness = "bushy"]] - | [[Thick|Starting Girls][$activeSlave.eyebrowFullness = "thick"]] - | [[Tapered|Starting Girls][$activeSlave.eyebrowFullness = "tapered"]] - | [[Threaded|Starting Girls][$activeSlave.eyebrowFullness = "threaded"]] - | [[Thin|Starting Girls][$activeSlave.eyebrowFullness = "thin"]] - | [[Pencil-Thin|Starting Girls][$activeSlave.eyebrowFullness = "pencil-thin"]] - - <br><br> - ''Pubic hair maintenance:'' $activeSlave.pubicHStyle. - [[Waxed|Starting Girls][$activeSlave.pubicHStyle = "waxed"]] - | [[Naturally hairless|Starting Girls][$activeSlave.pubicHStyle = "hairless"]] - | [[Landing strip|Starting Girls][$activeSlave.pubicHStyle = "in a strip"]] - | [[Neat|Starting Girls][$activeSlave.pubicHStyle = "neat"]] - | [[Bushy in the front|Starting Girls][$activeSlave.pubicHStyle = "bushy in the front and neat in the rear"]] - | [[Bushy|Starting Girls][$activeSlave.pubicHStyle = "bushy"]] - | [[Very Bushy|Starting Girls][$activeSlave.pubicHStyle = "very bushy"]] - - <br><br> - ''Under arm hair maintenance:'' $activeSlave.underArmHStyle. - [[Waxed|Starting Girls][$activeSlave.underArmHStyle = "waxed"]] - | [[Naturally hairless|Starting Girls][$activeSlave.underArmHStyle = "hairless"]] - | [[Shaved|Starting Girls][$activeSlave.underArmHStyle = "shaved"]] - | [[Neat|Starting Girls][$activeSlave.underArmHStyle = "neat"]] - | [[Bushy|Starting Girls][$activeSlave.underArmHStyle = "bushy"]] - - <br><br> - ''Natural skin distinctiveness:'' $activeSlave.markings. - [[None|Starting Girls][$activeSlave.markings = "none"]] - | [[Freckles|Starting Girls][$activeSlave.markings = "freckles"]] - | [[Heavily freckled|Starting Girls][$activeSlave.markings = "heavily freckled"]] - | [[Beauty mark|Starting Girls][$activeSlave.markings = "beauty mark"]] - | [[Birthmark|Starting Girls][$activeSlave.markings = "birthmark"]] - - <<if $activeSlave.anus > 0>> - <br><br> - ''External appearance of anus:'' - <<if $activeSlave.analArea <= $activeSlave.anus>> - Recently stretched to current size. - <<elseif $activeSlave.analArea - $activeSlave.anus == 1>> - Used to current size. - <<else>> - Very broad. - <</if>> - [[Recently stretched|Starting Girls][$activeSlave.analArea = $activeSlave.anus]] - | [[Used to current size|Starting Girls][$activeSlave.analArea = $activeSlave.anus+1]] - | [[Very broad|Starting Girls][$activeSlave.analArea = $activeSlave.anus+2]] - <</if>> - - <br><br> - ''Natural breast shape:'' $activeSlave.boobShape. - [[Normal|Starting Girls][$activeSlave.boobShape = "normal"]] - | [[Perky|Starting Girls][$activeSlave.boobShape = "perky"]] - | [[Torpedo-shaped|Starting Girls][$activeSlave.boobShape = "torpedo-shaped"]] - | [[Wide-set|Starting Girls][$activeSlave.boobShape = "wide-set"]] - | [[Downward-facing|Starting Girls][$activeSlave.boobShape = "downward-facing"]] - | [[Saggy|Starting Girls][$activeSlave.boobShape = "saggy"]] - <br><br> ''Births:'' <<textbox "$activeSlave.counter.birthsTotal" $activeSlave.counter.birthsTotal "Starting Girls">> //How many times $he has already given birth, not necessarily while owned by you.//