diff --git a/src/markets/specificMarkets/customSlaveMarket.js b/src/markets/specificMarkets/customSlaveMarket.js index b1a887b4b5cc385bdb1823c9ab81c4070740f2f7..9c83fae59bf7975883d074ff05cc2e38860936f9 100644 --- a/src/markets/specificMarkets/customSlaveMarket.js +++ b/src/markets/specificMarkets/customSlaveMarket.js @@ -8,11 +8,19 @@ App.Markets["Custom Slave"] = function() { el.append(muscles()); el.append(lips()); el.append(voice()); + el.append(height()); + el.append(weight()); + el.append(face()); + // Ethnicity + // Skin tone + el.append(boobs()); + el.append(butt()); + el.append(sex()); return el; function intro() { - const {heA} = getPronouns(assistant.pronouns().main).appendSuffix('A'); + const { heA } = getPronouns(assistant.pronouns().main).appendSuffix('A'); let r = []; if (V.customSlaveOrdered === 0) { r.push(`You work up a new slave order for posting where slave merchants can work to fulfill it.`); @@ -36,19 +44,19 @@ App.Markets["Custom Slave"] = function() { const select = document.createElement("select"); for (let i = 0; i < ages.length; i++) { const high = ages[i]; - const low = ages[i-1] || (ages[i] - 1); // First element of array has nothing before it, obviously, so display low as one less than high. + const low = ages[i - 1] || (ages[i] - 1); // First element of array has nothing before it, obviously, so display low as one less than high. if (low < V.minimumSlaveAge) { continue; } else if (high > V.retirementAge) { const option = document.createElement("option"); - option.text = `${low+1}+`; - option.value = low+1; + option.text = `${low + 1}+`; + option.value = low + 1; select.append(option); break; } const option = document.createElement("option"); - option.text = `${low+1}-${high}`; + option.text = `${low + 1}-${high}`; option.value = high; select.append(option); } @@ -64,13 +72,13 @@ App.Markets["Custom Slave"] = function() { const highIndex = ages.indexOf(slave.age); if (highIndex === 0) { - return `${(ages[highIndex]-1)}-${ages[highIndex]} years old. `; + return `${(ages[highIndex] - 1)}-${ages[highIndex]} years old. `; } else if (highIndex === ages.length) { // Highest possible number return `${ages[highIndex]}+ years old. `; } else { // Lower age should be the previous number in the array, +1 - return `${(ages[highIndex-1])+1}-${ages[highIndex]} years old. `; + return `${(ages[highIndex - 1]) + 1}-${ages[highIndex]} years old. `; } } } @@ -152,7 +160,7 @@ App.Markets["Custom Slave"] = function() { function voice() { const el = document.createElement("div"); - const slaveProperty = "lips"; + const slaveProperty = "voice"; const choices = new Map([ ["3", "High, girly"], ["2", "Feminine"], @@ -172,6 +180,33 @@ App.Markets["Custom Slave"] = function() { } else { return `${text} voice.`; } + } else { + return `Voice is unimportant.`; + } + } + } + + return el; + } + + function height() { + const el = document.createElement("div"); + const slaveProperty = "heightMod"; + const choices = new Map([ + ["greatly below average", "Petite"], + ["below average", "Short"], + ["normal", "Average height"], + ["above average", "Tall"], + ["greatly above average", "Very tall"], + ]); + + createDescription(el, description, slaveProperty); + el.append(choicesMaker(slaveProperty, choices, description)); + + function description() { + for (const [value, text] of choices) { + if (slave.heightMod === value) { + return `${text}.`; } } } @@ -179,6 +214,142 @@ App.Markets["Custom Slave"] = function() { return el; } + function weight() { + const el = document.createElement("div"); + const slaveProperty = "weight"; + const choices = new Map([ + ["200", "Immobile"], + ["150", "Very Fat"], + ["100", "Fat"], + ["50", "Chubby"], + ["15", "Plush"], + ["0", "Average"], + ["-15", "Thin"], + ["-50", "Very thin"], + ]); + + createDescription(el, description, slaveProperty); + el.append(choicesMaker(slaveProperty, choices, description)); + + function description() { + for (const [value, text] of choices) { + if (slave.weight >= Number(value)) { + return `${text}.`; + } + } + } + + return el; + } + + function face() { + const el = document.createElement("div"); + const slaveProperty = "face"; + const choices = new Map([ + ["55", "Very attractive"], + ["15", "Attractive"], + ["0", "Average"], + ["-15", "Unattractive"], + ["-55", "Very unattractive"], + ]); + + createDescription(el, description, slaveProperty); + el.append(choicesMaker(slaveProperty, choices, description)); + + function description() { + for (const [value, text] of choices) { + if (slave.face >= Number(value)) { + return `${text}.`; + } + } + } + + return el; + } + + function sex() { + const el = document.createElement("div"); + const slaveProperty = "sex"; + const choices = new Map([ + ["3", "Both"], + ["2", "Male"], + ["1", "Female"], + ]); + + createDescription(el, description, slaveProperty); + el.append(choicesMaker(slaveProperty, choices, description)); + + function description() { + switch (slave.sex) { + case 3: + return `Female (cock & balls options not applied).`; + case 2: + return `Male (pussy options not applied).`; + case 1: + return `Futanari (clit options not applied).`; + } + } + + return el; + } + + //TODO: function ethnicity + + //TODO: function skinTone + + function boobs() { + const el = document.createElement("div"); + const slaveProperty = "boobs"; + const choices = new Map([ + ["6000", "Massive"], + ["2100", "Giant"], + ["1400", "Huge"], + ["800", "Big"], + ["500", "Healthy"], + ["200", "Flat"], + ]); + + createDescription(el, description, slaveProperty); + el.append(choicesMaker(slaveProperty, choices, description)); + + function description() { + for (const [value, text] of choices) { + if (slave.boobs >= Number(value)) { + if (slave.boobs <= 200) { + return `${text} chest.`; + } else { + return `${text} breasts.`; + } + } + } + } + + return el; + } + + function butt() { + const el = document.createElement("div"); + const slaveProperty = "butt"; + const choices = new Map([ + ["8", "Massive"], + ["5", "Huge"], + ["3", "Healthy"], + ["1", "Flat"], + ]); + + createDescription(el, description, slaveProperty); + el.append(choicesMaker(slaveProperty, choices, description)); + + function description() { + for (const [value, text] of choices) { + if (slave.butt >= Number(value)) { + return `${text} buttocks.`; + } + } + } + + return el; + } /** *