diff --git a/src/facilities/salon/salonPassage.js b/src/facilities/salon/salonPassage.js index 2c1bd5e2b7ec54ce32fd8dbd2d545790881bf923..5c8b678c639a7e6299ccfce1986a5ff7bad6794b 100644 --- a/src/facilities/salon/salonPassage.js +++ b/src/facilities/salon/salonPassage.js @@ -27,6 +27,10 @@ App.UI.salon = function(slave, cheat = false) { } el.append(eyewear()); el.append(ears()); + if (slave.horn !== "none") { + el.append(horns()); + } + el.append(makeup()); return el; } @@ -83,12 +87,13 @@ App.UI.salon = function(slave, cheat = false) { } else { r.push(`${He} is hearing impaired`); } - const option = options.addOption(r.join(" "), "eyewear", slave) + const option = options.addOption(r.join(" "), "earwear", slave) .addValue("None", "none"); // Hard of hearing if (slave.hears === -1 && slave.earImplant !== 1) { option.addValue("Hearing aids", "hearing aids", billMod); } + // Is not deaf if (slave.hears > -2 || slave.earImplant === 1) { option.addValue("Muffling ear plugs", "muffling ear plugs", billMod); option.addValue("Deafening ear plugs", "deafening ear plugs", billMod); @@ -100,9 +105,75 @@ App.UI.salon = function(slave, cheat = false) { return el; } + function horns() { + const el = new DocumentFragment(); + App.UI.DOM.appendNewElement("h2", el, "Horns"); + const options = new App.UI.OptionsGroup(); + + options.addOption(`Set the color of ${his} ${slave.horn}`, "hornColor", slave) + .addValueList(makeAList(App.Medicine.Modification.Color.Primary.map(color => color.value))) + .addCallbackToEach(billMod); + + el.append(options.render()); + + return el; + } + + function makeup() { + const el = new DocumentFragment(); + App.UI.DOM.appendNewElement("h2", el, "Makeup"); + const options = new App.UI.OptionsGroup(); + + options.addOption(App.Desc.makeup(slave), "makeup", slave) + .addValue("Nice", 1, billMod) + .addValue("Gorgeous", 2, billMod) + .addValue("Slutty", 4, billMod) + .addValue("Color-coordinate with hair", 3, billMod); + + options.addOption("", "makeup", slave) + .addValue("Neon", 5, billMod) + .addValue("Neon, color-coordinate with hair", 6, billMod); + + options.addOption("", "makeup", slave) + .addValue("Metallic", 7, billMod) + .addValue("Metallic, color-coordinate with hair", 8, billMod); + + el.append(options.render()); + + return el; + } + + function skin() { + const el = new DocumentFragment(); + App.UI.DOM.appendNewElement("h2", el, "Skin"); + const options = new App.UI.OptionsGroup(); + + options.addOption(App.Desc.makeup(slave), "makeup", slave) + .addValue("Nice", 1, billMod) + .addValue("Gorgeous", 2, billMod) + .addValue("Slutty", 4, billMod) + .addValue("Color-coordinate with hair", 3, billMod); + + options.addOption("", "makeup", slave) + .addValue("Neon", 5, billMod) + .addValue("Neon, color-coordinate with hair", 6, billMod); + + options.addOption("", "makeup", slave) + .addValue("Metallic", 7, billMod) + .addValue("Metallic, color-coordinate with hair", 8, billMod); + + el.append(options.render()); + + return el; + } + function billMod() { if (!cheat) { cashX(forceNeg(V.modCost), "slaveMod", slave); } } + + function makeAList(iterable) { + return Array.from(iterable, (k => [capFirstChar(k), k])); + } };