diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js index ae7afb42f844554612fa4de6d66879dbcff81c6f..59e3f09dfa27e72740b7882b23a4e8eb1e2f3539 100644 --- a/src/js/rulesAssistantOptions.js +++ b/src/js/rulesAssistantOptions.js @@ -188,9 +188,9 @@ window.rulesAssistantOptions = (function() { /** @protected */ this._allowNullValue = allowNullValue; if (allowNullValue) { - this.appendChild(new ListItem("no default setting", null)); + this.appendChild(new ListItem("No default setting", null)); } - data.forEach(item => this.appendChild(new ListItem(...item))); + data.forEach(item => this.appendChild(this._createListItem(...item))); } createEditor(...args) { return null; } @@ -239,6 +239,16 @@ window.rulesAssistantOptions = (function() { this.onchange(this.getData()); } } + + /** + * @private + * @param {string} display + * @param {any} data + * @returns {ListItem} + */ + _createListItem(display, data) { + return new ListItem(display, data); + } } // a clickable item of a list @@ -271,6 +281,15 @@ window.rulesAssistantOptions = (function() { } } + /** + * Automatically capitalizes shortcut labels + */ + class EditorWithShortcutsCapitalized extends EditorWithShortcuts { + _createListItem(display, data) { + return super._createListItem(capFirstChar(display), data); + } + } + class List extends EditorWithShortcuts { constructor(prefix, data = [], allowNullValue = true, textinput = false) { super(prefix, data, allowNullValue, textinput); @@ -307,7 +326,16 @@ window.rulesAssistantOptions = (function() { } } - class NumberRange extends EditorWithShortcuts { + /** + * Automatically capitalizes shortcut labels + */ + class ListCapitalized extends List { + _createListItem(display, data) { + return super._createListItem(capFirstChar(display), data); + } + } + + class NumberRange extends EditorWithShortcutsCapitalized { /** * @param {string} prefix * @param {Array} [data=[]] @@ -980,12 +1008,12 @@ window.rulesAssistantOptions = (function() { } } - class SpecialInclusion extends List { + class SpecialInclusion extends ListCapitalized { constructor() { const items = [ - ["Include", -1], - ["Exclude", 0], - ["Only", 1] + ["include", -1], + ["exclude", 0], + ["only", 1] ]; super("Special slaves", items); this.setValue(current_rule.condition.specialSlaves); @@ -1448,12 +1476,12 @@ window.rulesAssistantOptions = (function() { } } - class LeggingsList extends List { + class LeggingsList extends ListCapitalized { constructor() { const items = [ - ["None", "none"], - ["Short stockings", "short stockings"], - ["Long stockings", "long stockings"], + ["none"], + ["short stockings"], + ["long stockings"], ]; super("Leg accessory", items); this.setValue(current_rule.set.legAccessory); @@ -1461,11 +1489,11 @@ window.rulesAssistantOptions = (function() { } } - class VagChastityList extends List { + class VagChastityList extends ListCapitalized { constructor() { const chaste = [ - ["None", 0], - ["Chastity", 1], + ["none", 0], + ["chastity", 1], ]; super("Vaginal chastity", chaste); this.setValue(current_rule.set.chastityVagina); @@ -1537,11 +1565,11 @@ window.rulesAssistantOptions = (function() { } } - class DickChastityList extends List { + class DickChastityList extends ListCapitalized { constructor() { const items = [ - ["None", 0], - ["Chastity cage", 1], + ["none", 0], + ["chastity cage", 1], ]; super("Penile chastity", items); this.setValue(current_rule.set.chastityPenis); @@ -1565,11 +1593,11 @@ window.rulesAssistantOptions = (function() { } } - class AnalChastityList extends List { + class AnalChastityList extends ListCapitalized { constructor() { const items = [ - ["None", 0], - ["Chastity", 1], + ["none", 0], + ["chastity", 1], ]; super("Anal chastity", items); this.setValue(current_rule.set.chastityAnus); @@ -1625,21 +1653,21 @@ window.rulesAssistantOptions = (function() { } } - class ImplantVolumeList extends List { + class ImplantVolumeList extends ListCapitalized { constructor() { const pairs = [ - ["No changes", -1], - ["Empty implant", 0], - ["Early pregnancy", 1500], - ["Second trimester pregnancy", 5000], - ["Full-term pregnancy", 15000], - ["Full-term with twins", 30000], - ["Full-term with triplets", 45000], - ["Full-term with quadruplets", 60000], - ["Full-term with quintuplets", 75000], - ["Full-term with sextuplets", 90000], - ["Full-term with septuplets", 105000], - ["Full-term with octuplets", 120000] + ["no changes", -1], + ["empty implant", 0], + ["early pregnancy", 1500], + ["second trimester pregnancy", 5000], + ["full-term pregnancy", 15000], + ["full-term with twins", 30000], + ["full-term with triplets", 45000], + ["full-term with quadruplets", 60000], + ["full-term with quintuplets", 75000], + ["full-term with sextuplets", 90000], + ["full-term with septuplets", 105000], + ["full-term with octuplets", 120000] ]; super("Belly implant target volume (if present)", pairs, false); this.setValue(current_rule.set.bellyImplantVol); @@ -1647,11 +1675,11 @@ window.rulesAssistantOptions = (function() { } } - class AutosurgerySwitch extends List { + class AutosurgerySwitch extends ListCapitalized { constructor() { const pairs = [ - ["Activate", 1], - ["Off", 0], + ["on", 1], + ["off", 0], ]; super("Assistant-applied implants (Autosurgery global switch)", pairs, false); this.setValue(current_rule.set.autoSurgery); @@ -1659,11 +1687,11 @@ window.rulesAssistantOptions = (function() { } } - class IntensiveGrowthSwitch extends List { + class IntensiveGrowthSwitch extends ListCapitalized { constructor() { const pairs = [ - ["No", 0], - ["Yes", 1], + ["no", 0], + ["yes", 1], ]; super("Use intensive growth drugs for healthy slaves", pairs, false); this.setValue(current_rule.set.growth.intensity); @@ -1671,11 +1699,11 @@ window.rulesAssistantOptions = (function() { } } - class HyperGrowthSwitch extends List { + class HyperGrowthSwitch extends ListCapitalized { constructor() { const pairs = [ - ["No", 0], - ["Yes", 1], + ["no", 0], + ["yes", 1], ]; super("Use hyper growth drugs", pairs, false); this.setValue(current_rule.set.hyper_drugs); @@ -1775,9 +1803,9 @@ window.rulesAssistantOptions = (function() { const pairs = [ ["B-Cup", 350], ["D-Cup", 1000], - ["Monstrous", 9000], - ["Unlimited", 48000], - ["None", 0] + ["monstrous", 9000], + ["unlimited", 48000], + ["none", 0] ]; super("Breasts", pairs, true, 0, 48000, true); this.setValue(current_rule.set.growth.boobs); @@ -1788,11 +1816,11 @@ window.rulesAssistantOptions = (function() { class ButtGrowthList extends NumberRange { constructor() { const pairs = [ - ["Cute", 2], - ["Big", 4], - ["Huge", 6], - ["Unlimited", 20], - ["None", 0] + ["cute", 2], + ["big", 4], + ["huge", 6], + ["unlimited", 20], + ["none", 0] ]; super("Butts", pairs, true, 0, 20, true); this.setValue(current_rule.set.growth.butt); @@ -1803,10 +1831,10 @@ window.rulesAssistantOptions = (function() { class LipGrowthList extends NumberRange { constructor() { const pairs = [ - ["Plump", 25], - ["Beestung", 45], - ["Facepussy", 100], - ["None", 0] + ["plump", 25], + ["beestung", 45], + ["facepussy", 100], + ["none", 0] ]; super("Lips", pairs, true, 0, 100, true); this.setValue(current_rule.set.growth.lips); @@ -1817,10 +1845,10 @@ window.rulesAssistantOptions = (function() { class DickGrowthList extends NumberRange { constructor() { const pairs = [ - ["Above average", 4], - ["Pornstar", 6], - ["Unlimited", 30], - ["None", 0] + ["above average", 4], + ["pornstar", 6], + ["unlimited", 30], + ["none", 0] ]; super("Dicks, if present", pairs, true, 0, 30, true); this.setValue(current_rule.set.growth.dick); @@ -1831,10 +1859,10 @@ window.rulesAssistantOptions = (function() { class BallGrowthList extends NumberRange { constructor() { const pairs = [ - ["Sizable", 4], - ["Cumslave", 6], - ["Unlimited", 125], - ["None", 0] + ["sizable", 4], + ["cumslave", 6], + ["unlimited", 125], + ["none", 0] ]; super("Balls, if present", pairs, true, 0, 125, true); this.setValue(current_rule.set.growth.balls); @@ -1842,12 +1870,12 @@ window.rulesAssistantOptions = (function() { } } - class CurrativesList extends List { + class CurrativesList extends ListCapitalized { constructor() { const pairs = [ - ["None", 0], - ["Preventatives", 1], - ["Curatives", 2], + ["none", 0], + ["preventatives", 1], + ["curatives", 2], ]; super("Health drugs", pairs); this.setValue(current_rule.set.curatives); @@ -1855,13 +1883,13 @@ window.rulesAssistantOptions = (function() { } } - class AphrodisiacList extends List { + class AphrodisiacList extends ListCapitalized { constructor() { const pairs = [ - ["None", 0], - ["Standard", 1], - ["Extreme", 2], - ["Anaphrodisiacs", -1] + ["none", 0], + ["standard", 1], + ["extreme", 2], + ["anaphrodisiacs", -1] ]; super("Aphrodisiacs", pairs); this.setValue(current_rule.set.aphrodisiacs); @@ -1869,11 +1897,11 @@ window.rulesAssistantOptions = (function() { } } - class ContraceptiveList extends List { + class ContraceptiveList extends ListCapitalized { constructor() { const drugs = [ - ["Contraceptives", true], - ["Fertile", false], + ["contraceptives", true], + ["fertile", false], ]; super("Contraceptives for fertile slaves", drugs); this.setValue(current_rule.set.preg); @@ -1881,14 +1909,14 @@ window.rulesAssistantOptions = (function() { } } - class AbortionList extends List { + class AbortionList extends ListCapitalized { constructor() { const pairs = [ - ["Abort all", "all"], + ["abort all", "all"], ]; if (V.pregnancyMonitoringUpgrade === 1 && V.geneticMappingUpgrade === 1) { - pairs.push(["Abort boys", "male"]); - pairs.push(["Abort girls", "female"]); + pairs.push(["abort boys", "male"]); + pairs.push(["abort girls", "female"]); } super("Pregnancy termination", pairs); this.setValue(current_rule.set.abortion); @@ -1896,14 +1924,14 @@ window.rulesAssistantOptions = (function() { } } - class PregDrugsList extends List { + class PregDrugsList extends ListCapitalized { constructor() { const pairs = [ - ["None", "none"], - ["Fast gestation", "fast"], - ["Slow gestation", "slow"], - ["Birth suppressors", "suppress"], - ["Birth stimulators", "stimulate"] + ["none"], + ["fast gestation", "fast"], + ["slow gestation", "slow"], + ["birth suppressors", "suppress"], + ["birth stimulators", "stimulate"] ]; super("Pregnancy control agents for pregnant slaves", pairs); this.setValue(current_rule.set.pregSpeed); @@ -1956,15 +1984,15 @@ window.rulesAssistantOptions = (function() { } } - class OtherDrugsList extends List { + class OtherDrugsList extends ListCapitalized { constructor() { const drugs = [ - ["None", "none"], - ["Fertility drugs", "fertility drugs"], - ["Psychosuppressants", "psychosuppressants"], - ["Steroids", "steroids"], + ["none"], + ["fertility drugs"], + ["psychosuppressants"], + ["steroids"], ["Natural hormone enhancers", "hormone enhancers"], - ["Hormone blockers", "hormone blockers"], + ["hormone blockers"], ["Erectile dysfunction circumvention", "priapism agents"], ["breast injections"], ["intensive breast injections"], @@ -2016,17 +2044,17 @@ window.rulesAssistantOptions = (function() { } } - class EnemaList extends List { + class EnemaList extends ListCapitalized { constructor() { const enemas = [ - ["None", "none"], - ["Water", "water"] + ["none"], + ["water"] ]; if (V.medicalEnema === 1) { enemas.push( - ["Aphrodisiac", "aphrodisiac"], - ["Curative", "curative"], - ["Tightener", "tightener"] + ["aphrodisiac"], + ["curative"], + ["tightener"] ); } super("Enemas", enemas); @@ -2035,32 +2063,32 @@ window.rulesAssistantOptions = (function() { } } - class DietList extends List { + class DietList extends ListCapitalized { constructor() { const diets = [ ["Healthy diet", "healthy"], - ["Fix fat and skinny slaves", "attractive"], - ["Curvy", 30], - ["Average", 0], - ["Thin", -30] + ["fix fat and skinny slaves", "attractive"], + ["curvy", 30], + ["average", 0], + ["thin", -30] ]; if (V.feeder === 1) { diets.push( - ["Feminine", "XX"], - ["Masculine", "XY"] + ["feminine", "XX"], + ["masculine", "XY"] ); if (V.dietXXY === 1) { - diets.push(["Futanari", "XXY"]); + diets.push(["futanari", "XXY"]); } } if (V.dietCleanse === 1) { - diets.push(["Cleansing", "cleansing"]); + diets.push(["cleansing"]); } if (V.dietFertility === 1) { - diets.push(["Fertility", "fertility"]); + diets.push(["fertility"]); } if (V.cumProDiet === 1) { - diets.push(["Cum production", "cum production"]); + diets.push(["cum production"]); } super("Slave diets", diets, true, true); @@ -2069,11 +2097,11 @@ window.rulesAssistantOptions = (function() { } } - class DietGrowthList extends List { + class DietGrowthList extends ListCapitalized { constructor() { const pairs = [ - ["On", 1], - ["Off", 0] + ["on", 1], + ["off", 0] ]; super("Diet support for growth drugs", pairs, false); this.setValue(current_rule.set.dietGrowthSupport); @@ -2107,11 +2135,11 @@ window.rulesAssistantOptions = (function() { } } - class DietSolidFoodList extends List { + class DietSolidFoodList extends ListCapitalized { constructor() { const pairs = [ - ["Permitted", 0], - ["Forbidden", 1], + ["permitted", 0], + ["forbidden", 1], ]; super("Solid food access", pairs); this.setValue(current_rule.set.onDiet); @@ -2122,11 +2150,11 @@ window.rulesAssistantOptions = (function() { class MuscleList extends NumberRange { constructor() { const pairs = [ - ["None", 0], - ["Toned", 20], - ["Ripped", 50], - ["Massive", 100], - ["Weak", -20] + ["none", 0], + ["toned", 20], + ["ripped", 50], + ["massive", 100], + ["weak", -20] ]; super("Muscles", pairs, true, -20, 100, true); this.setValue(current_rule.set.muscles); @@ -2134,12 +2162,12 @@ window.rulesAssistantOptions = (function() { } } - class BraceList extends List { + class BraceList extends ListCapitalized { constructor() { const pairs = [ - ["None", "none"], - ["Straighten", "straighten"], - ["Universal", "universal"] + ["none"], + ["straighten"], + ["universal"] ]; super("Braces", pairs); this.setValue(current_rule.set.teeth); @@ -2147,12 +2175,12 @@ window.rulesAssistantOptions = (function() { } } - class LivingStandardList extends List { + class LivingStandardList extends ListCapitalized { constructor() { const pairs = [ - ["Luxurious", "luxurious"], - ["Normal", "normal"], - ["Spare", "spare"] + ["luxurious"], + ["normal"], + ["spare"] ]; super("Living standard", pairs); this.setValue(current_rule.set.livingRules); @@ -2160,13 +2188,13 @@ window.rulesAssistantOptions = (function() { } } - class PunishmentList extends List { + class PunishmentList extends ListCapitalized { constructor() { const pairs = [ - ["Confinement", "confinement"], - ["Whipping", "whipping"], - ["Chastity", "chastity"], - ["Situational", "situational"] + ["confinement"], + ["whipping"], + ["chastity"], + ["situational"] ]; super("Typical punishment", pairs); this.setValue(current_rule.set.standardPunishment); @@ -2174,13 +2202,13 @@ window.rulesAssistantOptions = (function() { } } - class RewardList extends List { + class RewardList extends ListCapitalized { constructor() { const pairs = [ - ["Relaxation", "relaxation"], - ["Drugs", "drugs"], - ["Orgasm", "orgasm"], - ["Situational", "situational"] + ["relaxation"], + ["drugs"], + ["orgasm"], + ["situational"] ]; super("Typical reward", pairs); this.setValue(current_rule.set.standardReward); @@ -2188,14 +2216,14 @@ window.rulesAssistantOptions = (function() { } } - class ReleaseList extends List { + class ReleaseList extends ListCapitalized { constructor() { const pairs = [ - ["Permissive", "permissive"], - ["Sapphic", "sapphic"], - ["Masturbation", "masturbation"], - ["Restrictive", "restrictive"], - ["Chastity", "chastity"] + ["permissive"], + ["sapphic"], + ["masturbation"], + ["restrictive"], + ["chastity"] ]; super("Release rules", pairs); this.setValue(current_rule.set.releaseRules); @@ -2203,15 +2231,15 @@ window.rulesAssistantOptions = (function() { } } - class ToyHoleList extends List { + class ToyHoleList extends ListCapitalized { constructor() { const pairs = [ - ["All her holes", "all her holes"], - ["Mouth", "mouth"], - ["Boobs", "boobs"], - ["Pussy", "pussy"], - ["Ass", "ass"], - ["Dick", "dick"] + ["all her holes"], + ["mouth"], + ["boobs"], + ["pussy"], + ["ass"], + ["dick"] ]; super("Fucktoy use preference", pairs); this.setValue(current_rule.set.toyHole); @@ -2219,16 +2247,16 @@ window.rulesAssistantOptions = (function() { } } - class SmartFetishList extends List { + class SmartFetishList extends ListCapitalized { constructor() { const pairs = [ - ["Vanilla", "vanilla"], - ["Oral", "oral"], - ["Anal", "anal"], - ["Boobs", "boobs"], + ["vanilla"], + ["oral"], + ["anal"], + ["boobs"], ["Sub", "submissive"], - ["Dom", "dom"], - ["Humiliation", "humiliation"], + ["dom"], + ["humiliation"], ["Preg", "pregnancy"], ["Pain", "masochist"], ["Sadism", "sadist"] @@ -2239,13 +2267,13 @@ window.rulesAssistantOptions = (function() { } } - class SmartXYAttractionList extends List { + class SmartXYAttractionList extends ListCapitalized { constructor() { const pairs = [ - ["Passionate", 100], - ["Attracted", 75], - ["Indifferent", 45], - ["None", 0] + ["passionate", 100], + ["attracted", 75], + ["indifferent", 45], + ["none", 0] ]; super("Smart piercing XY attraction target", pairs); this.setValue(current_rule.set.clitSettingXY); @@ -2253,13 +2281,13 @@ window.rulesAssistantOptions = (function() { } } - class SmartXXAttractionList extends List { + class SmartXXAttractionList extends ListCapitalized { constructor() { const pairs = [ - ["Passionate", 100], - ["Attracted", 75], - ["Indifferent", 45], - ["None", 0] + ["passionate", 100], + ["attracted", 75], + ["indifferent", 45], + ["none", 0] ]; super("Smart piercing XX attraction target", pairs); this.setValue(current_rule.set.clitSettingXX); @@ -2267,15 +2295,15 @@ window.rulesAssistantOptions = (function() { } } - class SmartEnergyList extends List { + class SmartEnergyList extends ListCapitalized { constructor() { const pairs = [ - ["Nympho", 100], - ["Sex Addict", 85], - ["Powerful", 65], - ["Healthy", 45], - ["Weak", 25], - ["Frigid", 0] + ["nympho", 100], + ["sex addict", 85], + ["powerful", 65], + ["healthy", 45], + ["weak", 25], + ["frigid", 0] ]; super("Smart piercing sex drive target", pairs); this.setValue(current_rule.set.clitSettingEnergy); @@ -2283,12 +2311,12 @@ window.rulesAssistantOptions = (function() { } } - class SpeechList extends List { + class SpeechList extends ListCapitalized { constructor() { const pairs = [ - ["Permissive", "permissive"], - ["Suppress accents", "accent elimination"], - ["Restrictive", "restrictive"] + ["permissive"], + ["suppress accents", "accent elimination"], + ["restrictive"] ]; super("Speech rules", pairs); this.setValue(current_rule.set.speechRules); @@ -2296,12 +2324,12 @@ window.rulesAssistantOptions = (function() { } } - class RelationshipList extends List { + class RelationshipList extends ListCapitalized { constructor() { const pairs = [ - ["Permissive", "permissive"], - ["Just friends", "just friends"], - ["Restrictive", "restrictive"] + ["permissive"], + ["just friends"], + ["restrictive"] ]; super("Relationship rules", pairs); this.setValue(current_rule.set.relationshipRules); @@ -2309,11 +2337,11 @@ window.rulesAssistantOptions = (function() { } } - class PornBroadcastStatus extends List { + class PornBroadcastStatus extends ListCapitalized { constructor() { const pairs = [ - ["Disabled", 0], - ["Enabled", 1] + ["disabled", 0], + ["enabled", 1] ]; super("Porn Broadcasting Status", pairs); this.setValue(current_rule.set.pornFeed); @@ -2321,11 +2349,11 @@ window.rulesAssistantOptions = (function() { } } - class PornList extends List { + class PornList extends ListCapitalized { constructor() { const pairs = [ /* ["No broadcasting", -1], **This has changed, it would now use .pornFeed** */ - ["No subsidy", 0], + ["no subsidy", 0], ["1000", 1000], ["2000", 2000], ["3000", 3000], @@ -2338,7 +2366,7 @@ window.rulesAssistantOptions = (function() { } } - class EyewearList extends List { + class EyewearList extends ListCapitalized { constructor() { const pairs = [ ["none"], @@ -2443,7 +2471,7 @@ window.rulesAssistantOptions = (function() { } } - class EarwearList extends List { + class EarwearList extends ListCapitalized { constructor() { const pairs = [ ["none"], @@ -2457,7 +2485,7 @@ window.rulesAssistantOptions = (function() { } } - class MakeupList extends List { + class MakeupList extends ListCapitalized { constructor() { const pairs = [ ["makeup-free", 0], @@ -2472,7 +2500,7 @@ window.rulesAssistantOptions = (function() { } } - class NailsList extends List { + class NailsList extends ListCapitalized { constructor() { const pairs = [ ["clipped", 0], @@ -2492,7 +2520,7 @@ window.rulesAssistantOptions = (function() { } } - class HairLengthList extends List { + class HairLengthList extends ListCapitalized { constructor() { const pairs = [ ["very short", 5], @@ -2508,7 +2536,7 @@ window.rulesAssistantOptions = (function() { } } - class HaircutsList extends List { + class HaircutsList extends ListCapitalized { constructor() { const pairs = [ ["maintain hair length", 1], @@ -2520,7 +2548,7 @@ window.rulesAssistantOptions = (function() { } } - class HairColorList extends List { + class HairColorList extends ListCapitalized { constructor() { const pairs = [ ["blonde"], @@ -2563,7 +2591,7 @@ window.rulesAssistantOptions = (function() { } } - class HairStyleList extends List { + class HairStyleList extends ListCapitalized { constructor() { const pairs = [ ["neat"], @@ -2592,7 +2620,7 @@ window.rulesAssistantOptions = (function() { } } - class EyebrowColorList extends List { + class EyebrowColorList extends ListCapitalized { constructor() { const pairs = [ ["blonde"], @@ -2635,7 +2663,7 @@ window.rulesAssistantOptions = (function() { } } - class EyebrowStyleList extends List { + class EyebrowStyleList extends ListCapitalized { constructor() { const pairs = [ ["shaved"], @@ -2655,7 +2683,7 @@ window.rulesAssistantOptions = (function() { } } - class EyebrowFullnessList extends List { + class EyebrowFullnessList extends ListCapitalized { constructor() { const pairs = [ ["pencil-thin"], @@ -2672,7 +2700,7 @@ window.rulesAssistantOptions = (function() { } } - class MarkingsList extends List { + class MarkingsList extends ListCapitalized { constructor() { const pairs = [ ["remove beauty marks"], @@ -2685,7 +2713,7 @@ window.rulesAssistantOptions = (function() { } } - class PubicHairColorList extends List { + class PubicHairColorList extends ListCapitalized { constructor() { const pairs = [ ["blonde"], @@ -2728,7 +2756,7 @@ window.rulesAssistantOptions = (function() { } } - class PubicHairStyleList extends List { + class PubicHairStyleList extends ListCapitalized { constructor() { const pairs = [ ["waxed"], @@ -2744,7 +2772,7 @@ window.rulesAssistantOptions = (function() { } } - class ArmpitHairColorList extends List { + class ArmpitHairColorList extends ListCapitalized { constructor() { const pairs = [ ["blonde"], @@ -2787,7 +2815,7 @@ window.rulesAssistantOptions = (function() { } } - class ArmpitHairStyleList extends List { + class ArmpitHairStyleList extends ListCapitalized { constructor() { const pairs = [ ["waxed"], @@ -2801,76 +2829,63 @@ window.rulesAssistantOptions = (function() { } } - class EarPiercingList extends List { + function piercingTypes(smartEnabled = false) { + let res = [ + ["none", 0], + ["light", 1], + ["heavy", 2] + ]; + if (smartEnabled) { + res.push(["Smart (expensive)", 3]); + } + return res; + } + + class EarPiercingList extends ListCapitalized { constructor() { - const pairs = [ - ["None", 0], - ["Light", 1], - ["Heavy", 2] - ]; - super("Ear piercings", pairs); + super("Ear piercings", piercingTypes()); this.setValue(current_rule.set.earPiercing); this.onchange = (value) => current_rule.set.earPiercing = value; } } - class NosePiercingList extends List { + class NosePiercingList extends ListCapitalized { constructor() { - const pairs = [ - ["None", 0], - ["Light", 1], - ["Heavy", 2] - ]; - super("Nasal piercings", pairs); + super("Nasal piercings", piercingTypes()); this.setValue(current_rule.set.nosePiercing); this.onchange = (value) => current_rule.set.nosePiercing = value; } } - class EyebrowPiercingList extends List { + class EyebrowPiercingList extends ListCapitalized { constructor() { - const pairs = [ - ["None", 0], - ["Light", 1], - ["Heavy", 2] - ]; - super("Eyebrow piercings", pairs); + super("Eyebrow piercings", piercingTypes()); this.setValue(current_rule.set.eyebrowPiercing); this.onchange = (value) => current_rule.set.eyebrowPiercing = value; } } - class NavelPiercingList extends List { + class NavelPiercingList extends ListCapitalized { constructor() { - const pairs = [ - ["None", 0], - ["Light", 1], - ["Heavy", 2] - ]; - super("Navel piercings", pairs); + super("Navel piercings", piercingTypes()); this.setValue(current_rule.set.navelPiercing); this.onchange = (value) => current_rule.set.navelPiercing = value; } } - class NipplePiercingList extends List { + class NipplePiercingList extends ListCapitalized { constructor() { - const pairs = [ - ["None", 0], - ["Light", 1], - ["Heavy", 2] - ]; - super("Nipple piercings", pairs); + super("Nipple piercings", piercingTypes()); this.setValue(current_rule.set.nipplesPiercing); this.onchange = (value) => current_rule.set.nipplesPiercing = value; } } - class AreolaPiercingList extends List { + class AreolaPiercingList extends ListCapitalized { constructor() { const pairs = [ - ["None", 0], - ["Studded", 1] + ["none", 0], + ["studded", 1] ]; super("Areola studs", pairs); this.setValue(current_rule.set.areolaePiercing); @@ -2878,90 +2893,59 @@ window.rulesAssistantOptions = (function() { } } - class LipPiercingList extends List { + class LipPiercingList extends ListCapitalized { constructor() { - const pairs = [ - ["None", 0], - ["Light", 1], - ["Heavy", 2] - ]; - super("Lip piercings", pairs); + super("Lip piercings", piercingTypes()); this.setValue(current_rule.set.lipsPiercing); this.onchange = (value) => current_rule.set.lipsPiercing = value; } } - class TonguePiercingList extends List { + class TonguePiercingList extends ListCapitalized { constructor() { - const pairs = [ - ["None", 0], - ["Light", 1], - ["Heavy", 2] - ]; - super("Tongue piercing", pairs); + super("Tongue piercing", piercingTypes()); this.setValue(current_rule.set.tonguePiercing); this.onchange = (value) => current_rule.set.tonguePiercing = value; } } - class ClitPiercingList extends List { + class ClitPiercingList extends ListCapitalized { constructor() { - const pairs = [ - ["None", 0], - ["Light", 1], - ["Heavy", 2], - ["Smart (expensive)", 3] - ]; - super("Clit piercing", pairs); + super("Clit piercing", piercingTypes(true)); this.setValue(current_rule.set.clitPiercing); this.onchange = (value) => current_rule.set.clitPiercing = value; } } - class LabiaPiercingList extends List { + class LabiaPiercingList extends ListCapitalized { constructor() { - const pairs = [ - ["None", 0], - ["Light", 1], - ["Heavy", 2] - ]; - super("Pussylips piercings", pairs); + super("Pussylips piercings", piercingTypes()); this.setValue(current_rule.set.vaginaPiercing); this.onchange = (value) => current_rule.set.vaginaPiercing = value; } } - class ShaftPiercingList extends List { + class ShaftPiercingList extends ListCapitalized { constructor() { - const pairs = [ - ["None", 0], - ["Light", 1], - ["Heavy", 2] - ]; - super("Shaft piercings", pairs); + super("Shaft piercings", piercingTypes()); this.setValue(current_rule.set.dickPiercing); this.onchange = (value) => current_rule.set.dickPiercing = value; } } - class PerineumPiercingList extends List { + class PerineumPiercingList extends ListCapitalized { constructor() { - const pairs = [ - ["None", 0], - ["Light", 1], - ["Heavy", 2] - ]; - super("Perianal piercings", pairs); + super("Perianal piercings", piercingTypes()); this.setValue(current_rule.set.anusPiercing); this.onchange = (value) => current_rule.set.anusPiercing = value; } } - class CorsetPiercingList extends List { + class CorsetPiercingList extends ListCapitalized { constructor() { const pairs = [ - ["None", 0], - ["Apply", 1] + ["none", 0], + ["applied", 1] ]; super("Corset piercings", pairs); this.setValue(current_rule.set.corsetPiercing); @@ -2969,11 +2953,11 @@ window.rulesAssistantOptions = (function() { } } - class AutoBrandingList extends List { + class AutoBrandingList extends ListCapitalized { constructor() { const pairs = [ - ["Activate", 1], - ["Off", 0], + ["on", 1], + ["off", 0], ]; super("Automatic branding", pairs, false); this.setValue(current_rule.set.autoBrand); @@ -3213,269 +3197,114 @@ window.rulesAssistantOptions = (function() { } } - class FaceTattooList extends List { + function commonTattoos() { + return [ + ["none", 0], + ["tribal patterns"], + ["flowers"], + ["counting"], + ["advertisements"], + ["rude words"], + ["degradation"], + ["bovine patterns"], + ["Asian art"], + ["permanent makeup"], + ["sacrament"], + ["sacrilege"], + ["possessive"], + ["paternalist"] + ]; + } + + class FaceTattooList extends ListCapitalized { constructor() { - const items = [ - ["none", 0], - ["tribal patterns"], - ["flowers"], - ["counting"], - ["advertisements"], - ["rude words"], - ["degradation"], - ["bovine patterns"], - ["Asian art"], - ["permanent makeup"], - ["sacrament"], - ["sacrilege"], - ["possessive"], - ["paternalist"] - ]; - super("Facial tattoos", items); + super("Facial tattoos", commonTattoos()); this.setValue(current_rule.set.lipsTat); this.onchange = (value) => current_rule.set.lipsTat = value; } } - class ShoulderTattooList extends List { + class ShoulderTattooList extends ListCapitalized { constructor() { - const items = [ - ["none", 0], - ["tribal patterns"], - ["flowers"], - ["counting"], - ["advertisements"], - ["rude words"], - ["degradation"], - ["bovine patterns"], - ["Asian art"], - ["scenes"], - ["sacrament"], - ["sacrilege"], - ["possessive"], - ["paternalist"] - ]; - super("Shoulder tattoos", items); + super("Shoulder tattoos", commonTattoos()); this.setValue(current_rule.set.shouldersTat); this.onchange = (value) => current_rule.set.shouldersTat = value; } } - class ChestTattooList extends List { + class ChestTattooList extends ListCapitalized { constructor() { - const items = [ - ["none", 0], - ["tribal patterns"], - ["flowers"], - ["counting"], - ["advertisements"], - ["rude words"], - ["degradation"], - ["bovine patterns"], - ["Asian art"], - ["scenes"], - ["sacrament"], - ["sacrilege"], - ["possessive"], - ["paternalist"] - ]; - super("Chest tattoos", items); + super("Chest tattoos", commonTattoos()); this.setValue(current_rule.set.boobsTat); this.onchange = (value) => current_rule.set.boobsTat = value; } } - class ArmTattooList extends List { + class ArmTattooList extends ListCapitalized { constructor() { - const items = [ - ["none", 0], - ["tribal patterns"], - ["flowers"], - ["counting"], - ["advertisements"], - ["rude words"], - ["degradation"], - ["bovine patterns"], - ["Asian art"], - ["scenes"], - ["sacrament"], - ["sacrilege"], - ["possessive"], - ["paternalist"] - ]; - super("Arm tattoos", items); + super("Arm tattoos", commonTattoos()); this.setValue(current_rule.set.armsTat); this.onchange = (value) => current_rule.set.armsTat = value; } } - class UpperBackTattooList extends List { + class UpperBackTattooList extends ListCapitalized { constructor() { - const items = [ - ["none", 0], - ["tribal patterns"], - ["flowers"], - ["counting"], - ["advertisements"], - ["rude words"], - ["degradation"], - ["bovine patterns"], - ["Asian art"], - ["scenes"], - ["sacrament"], - ["sacrilege"], - ["possessive"], - ["paternalist"], - ]; - super("Upper back tattoos", items); + super("Upper back tattoos", commonTattoos()); this.setValue(current_rule.set.backTat); this.onchange = (value) => current_rule.set.backTat = value; } } - class LowerBackTattooList extends List { + class LowerBackTattooList extends ListCapitalized { constructor() { - const items = [ - ["none", 0], - ["tribal patterns"], - ["flowers"], - ["counting"], - ["advertisements"], - ["rude words"], - ["degradation"], - ["bovine patterns"], - ["Asian art"], - ["scenes"], - ["sacrament"], - ["sacrilege"], - ["possessive"], - ["paternalist"] - ]; - super("Lower back tattoos", items); + super("Lower back tattoos", commonTattoos()); this.setValue(current_rule.set.stampTat); this.onchange = (value) => current_rule.set.stampTat = value; } } - class AbdomenTattooList extends List { + class AbdomenTattooList extends ListCapitalized { constructor() { - const items = [ - ["none", 0], - ["tribal patterns"], - ["flowers"], - ["counting"], - ["advertisements"], - ["rude words"], - ["degradation"], - ["bovine patterns"], - ["Asian art"], - ["scenes"], - ["sacrament"], - ["sacrilege"], - ["possessive"], - ["paternalist"], - ]; - super("Abdomen tattoos", items); + super("Abdomen tattoos", commonTattoos()); this.setValue(current_rule.set.vaginaTat); this.onchange = (value) => current_rule.set.vaginaTat = value; } } - class DickTattooList extends List { + class DickTattooList extends ListCapitalized { constructor() { - const items = [ - ["none", 0], - ["tribal patterns"], - ["flowers"], - ["counting"], - ["advertisements"], - ["rude words"], - ["degradation"], - ["bovine patterns"], - ["Asian art"], - ["sacrament"], - ["sacrilege"], - ["possessive"], - ["paternalist"], - ]; - super("Dick tattoos", items); + super("Dick tattoos", commonTattoos()); this.setValue(current_rule.set.dickTat); this.onchange = (value) => current_rule.set.dickTat = value; } } - class ButtockTattooList extends List { + class ButtockTattooList extends ListCapitalized { constructor() { - const items = [ - ["none", 0], - ["tribal patterns"], - ["flowers"], - ["counting"], - ["advertisements"], - ["rude words"], - ["degradation"], - ["bovine patterns"], - ["Asian art"], - ["scenes"], - ["sacrament"], - ["sacrilege"], - ["possessive"], - ["paternalist"], - ]; - super("Buttock tattoos:", items); + super("Buttock tattoos:", commonTattoos()); this.setValue(current_rule.set.buttTat); this.onchange = (value) => current_rule.set.buttTat = value; } } - class AnalTattooList extends List { + class AnalTattooList extends ListCapitalized { constructor() { - const items = [ - ["none", 0], - ["tribal patterns"], - ["flowers"], - ["counting"], - ["advertisements"], - ["rude words"], - ["degradation"], - ["bovine patterns"], - ["bleached"], - ["sacrament"], - ["sacrilege"], - ["possessive"], - ["paternalist"], - ]; - super("Anal tattoo or bleaching", items); + super("Anal tattoo or bleaching", commonTattoos()); this.setValue(current_rule.set.anusTat); this.onchange = (value) => current_rule.set.anusTat = value; } } - class LegTattooList extends List { + class LegTattooList extends ListCapitalized { constructor() { - const items = [ - ["none", 0], - ["tribal patterns"], - ["flowers"], - ["counting"], - ["advertisements"], - ["rude words"], - ["degradation"], - ["bovine patterns"], - ["Asian art"], - ["scenes"], - ["sacrament"], - ["sacrilege"], - ["possessive"], - ["paternalist"], - ]; - super("Leg tattoos", items); + super("Leg tattoos", commonTattoos()); this.setValue(current_rule.set.legsTat); this.onchange = (value) => current_rule.set.legsTat = value; } } - class VisionSurgeryList extends List { + class VisionSurgeryList extends ListCapitalized { constructor() { const items = [ ["fixed", 1], @@ -3487,7 +3316,7 @@ window.rulesAssistantOptions = (function() { } } - class HearingSurgeryList extends List { + class HearingSurgeryList extends ListCapitalized { constructor() { const items = [ ["fixed", 0], @@ -3499,7 +3328,7 @@ window.rulesAssistantOptions = (function() { } } - class SmellSurgeryList extends List { + class SmellSurgeryList extends ListCapitalized { constructor() { const items = [ ["fixed", 0], @@ -3511,7 +3340,7 @@ window.rulesAssistantOptions = (function() { } } - class TasteSurgeryList extends List { + class TasteSurgeryList extends ListCapitalized { constructor() { const items = [ ["fixed", 0], @@ -3523,7 +3352,7 @@ window.rulesAssistantOptions = (function() { } } - class LactationSurgeryList extends List { + class LactationSurgeryList extends ListCapitalized { constructor() { const items = [ ["implanted", 1], @@ -3535,7 +3364,7 @@ window.rulesAssistantOptions = (function() { } } - class SemenSurgeryList extends List { + class SemenSurgeryList extends ListCapitalized { constructor() { const items = [ ["implanted", 1], @@ -3547,7 +3376,7 @@ window.rulesAssistantOptions = (function() { } } - class VasectomyList extends List { + class VasectomyList extends ListCapitalized { constructor() { const items = [ ["apply vasectomy", true], @@ -3559,7 +3388,7 @@ window.rulesAssistantOptions = (function() { } } - class CosmeticSurgeryList extends List { + class CosmeticSurgeryList extends ListCapitalized { constructor() { const items = [ ["none", 0], @@ -3618,7 +3447,7 @@ window.rulesAssistantOptions = (function() { } } - class TighteningSurgeryList extends List { + class TighteningSurgeryList extends ListCapitalized { constructor() { const items = [ ["tightening", 1], @@ -3630,7 +3459,7 @@ window.rulesAssistantOptions = (function() { } } - class TummyTuckSurgeryList extends List { + class TummyTuckSurgeryList extends ListCapitalized { constructor() { const items = [ ["tuck", 1], @@ -3642,7 +3471,7 @@ window.rulesAssistantOptions = (function() { } - class BodyHairSurgeryList extends List { + class BodyHairSurgeryList extends ListCapitalized { constructor() { const items = [ ["keep", 1], @@ -3654,7 +3483,7 @@ window.rulesAssistantOptions = (function() { } } - class HairSurgeryList extends List { + class HairSurgeryList extends ListCapitalized { constructor() { const items = [ ["keep", 1], @@ -3725,7 +3554,7 @@ window.rulesAssistantOptions = (function() { } } - class BellyImplantList extends List { + class BellyImplantList extends ListCapitalized { constructor() { const items = [ ["install", "install"],