Skip to content
Snippets Groups Projects
rulesAssistantOptions.js 101 KiB
Newer Older
  • Learn to ignore specific revisions
  • lowercasedonkey's avatar
    lowercasedonkey committed
    			]);
    			this.appendChild(breasts);
    
    
    vas's avatar
    vas committed
    			const shoulders = new ListSubSection(this, "Shoulders", [
    
    vas's avatar
    vas committed
    				["Left", "left shoulder"],
    
    				["Right", "right shoulder"],
    				["Both", "shoulders"]
    
    
    vas's avatar
    vas committed
    			]);
    			this.appendChild(shoulders);
    
    vas's avatar
    vas committed
    
    
    vas's avatar
    vas committed
    			const upper_arms = new ListSubSection(this, "Arms, upper", [
    
    vas's avatar
    vas committed
    				["Left", "left upper arm"],
    
    				["Right", "right upper arm"],
    				["Both", "upper arms"]
    
    
    vas's avatar
    vas committed
    			]);
    			this.appendChild(upper_arms);
    
    vas's avatar
    vas committed
    
    
    vas's avatar
    vas committed
    			const lower_arms = new ListSubSection(this, "Arms, lower", [
    
    vas's avatar
    vas committed
    				["Left", "left lower arm"],
    
    				["Right", "right lower arm"],
    				["Both", "lower arms"]
    
    vas's avatar
    vas committed
    			]);
    			this.appendChild(lower_arms);
    
    vas's avatar
    vas committed
    
    
    vas's avatar
    vas committed
    			const wrist = new ListSubSection(this, "Wrist", [
    
    vas's avatar
    vas committed
    				["Left", "left wrist"],
    
    				["Right", "right wrist"],
    				["Both", "wrists"]
    
    vas's avatar
    vas committed
    			]);
    			this.appendChild(wrist);
    
    vas's avatar
    vas committed
    
    
    vas's avatar
    vas committed
    			const hand = new ListSubSection(this, "Hand", [
    
    vas's avatar
    vas committed
    				["Left", "left hand"],
    
    				["Right", "right hand"],
    				["Both", "hands"]
    
    vas's avatar
    vas committed
    			]);
    			this.appendChild(hand);
    
    vas's avatar
    vas committed
    
    
    vas's avatar
    vas committed
    			const buttocks = new ListSubSection(this, "Buttocks", [
    
    vas's avatar
    vas committed
    				["Left", "left buttock"],
    
    				["Right", "right buttock"],
    				["Both", "buttocks"]
    
    vas's avatar
    vas committed
    			]);
    			this.appendChild(buttocks);
    
    vas's avatar
    vas committed
    
    
    vas's avatar
    vas committed
    			const thigh = new ListSubSection(this, "Thigh", [
    
    vas's avatar
    vas committed
    				["Left", "left thigh"],
    
    				["Right", "right thigh"],
    				["Both", "thighs"]
    
    vas's avatar
    vas committed
    			]);
    			this.appendChild(thigh);
    
    vas's avatar
    vas committed
    
    
    vas's avatar
    vas committed
    			const calf = new ListSubSection(this, "Calf", [
    
    vas's avatar
    vas committed
    				["Left", "left calf"],
    
    				["Right", "right calf"],
    				["Both", "calves"]
    
    vas's avatar
    vas committed
    			]);
    			this.appendChild(calf);
    
    vas's avatar
    vas committed
    
    
    vas's avatar
    vas committed
    			const ankle = new ListSubSection(this, "Ankle", [
    
    vas's avatar
    vas committed
    				["Left", "left ankle"],
    
    				["Right", "right ankle"],
    				["Both", "ankles"]
    
    vas's avatar
    vas committed
    			]);
    			this.appendChild(ankle);
    
    vas's avatar
    vas committed
    
    
    vas's avatar
    vas committed
    			const feet = new ListSubSection(this, "Feet", [
    
    vas's avatar
    vas committed
    				["Left", "left foot"],
    
    				["Right", "right foot"],
    				["Both", "feet"]
    
    vas's avatar
    vas committed
    			]);
    			this.appendChild(feet);
    
    vas's avatar
    vas committed
    
    
    vas's avatar
    vas committed
    			const other = new ListSubSection(this, "Other", [
    
    vas's avatar
    vas committed
    				["Neck", "neck"],
    				["Chest", "chest"],
    				["Back", "back"],
    
    lowercasedonkey's avatar
    lowercasedonkey committed
    				["Lower Back", "lower back"],
    				["Belly", "belly"],
    				["Pubic mound", "pubic mound"]
    
    vas's avatar
    vas committed
    			]);
    
    lowercasedonkey's avatar
    lowercasedonkey committed
    
    			// Ignoring testicles and penis for now, as not all slaves have them.
    
    
    vas's avatar
    vas committed
    			this.appendChild(other);
    
    vas's avatar
    vas committed
    
    
    			this.setValue(current_rule.set.brandTarget);
    			this.onchange = (value) => current_rule.set.brandTarget = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    vas's avatar
    vas committed
    
    	class BrandDesignList extends List {
    		constructor() {
    			const items = [
    
    klorpa's avatar
    klorpa committed
    				["Your slaving emblem", "your personal symbol"],
    
    vas's avatar
    vas committed
    				["Your initials", "your initials"],
    				["SLUT"],
    				["WHORE"],
    				["SLAVE"],
    				["COW"],
    				["MEAT"],
    				["CUMDUMP"],
    				["LOVER"],
    				["Pussy symbol", "a pussy symbol"],
    				["Anus symbol", "an anus symbol"],
    				["Penis symbol", "a penis symbol"],
    				["Lady", "a lady silhouette"],
    				["Princess", "a princess silhouette"],
    				["Queen", "a queen silhouette"],
    				["Angel", "an angel silhouette"],
    				["Devil", "a devil silhouette"]
    
    vas's avatar
    vas committed
    			];
    
    klorpa's avatar
    klorpa committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSSupremacist !== "unset" || V.arcologies[0].FSSubjugationist !== "unset") {
    
    vas's avatar
    vas committed
    				items.push(["(FS) Racial Slur", "a racial slur"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    klorpa's avatar
    klorpa committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSSupremacist !== "unset" && V.arcologies[0].FSSupremacistRace === "white") {
    
    vas's avatar
    vas committed
    				items.push(["(FS) Swastika", "a swastika"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    klorpa's avatar
    klorpa committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSSubjugationist !== "unset" && V.arcologies[0].FSSubjugationistRace === "semitic") {
    
    vas's avatar
    vas committed
    				items.push(["(FS) Star of David", "a Star of David"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSGenderRadicalist !== "unset" || V.arcologies.FSGenderFundamentalist !== "unset") {
    
    vas's avatar
    vas committed
    				items.push(["(FS) Gender Symbol", "a gender symbol"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSPaternalist !== "unset") {
    
    klorpa's avatar
    klorpa committed
    				items.push(["(FS) Personal Symbol", "$his own personal symbol"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSDegradationist !== "unset") {
    
    vas's avatar
    vas committed
    				items.push(["(FS) Chain Symbol", "a chain symbol"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSBodyPurist !== "unset") {
    
    vas's avatar
    vas committed
    				items.push(["(FS) Vitruvian Man", "a Vitruvian man"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSTransformationFetishist !== "unset") {
    
    vas's avatar
    vas committed
    				items.push(["(FS) Most Desired Implants", "a shortlist of desired implants"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSYouthPreferentialist !== "unset") {
    
    klorpa's avatar
    klorpa committed
    				items.push(["(FS) Virginity Status", "$his virginity status"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSMaturityPreferentialist !== "unset") {
    
    klorpa's avatar
    klorpa committed
    				items.push(["(FS) Sexual Skill Info", "$his sexual skills"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSSlimnessEnthusiast !== "unset") {
    
    klorpa's avatar
    klorpa committed
    				items.push(["(FS) Breast Ceiling", "$his absolute maximum breast size"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSAssetExpansionist !== "unset") {
    
    klorpa's avatar
    klorpa committed
    				items.push(["(FS) Breast Floor", "$his absolute minimum breast size"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSPastoralist !== "unset") {
    
    klorpa's avatar
    klorpa committed
    				items.push(["(FS) Product Quality", "$his body product quality"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSPhysicalIdealist !== "unset") {
    
    klorpa's avatar
    klorpa committed
    				items.push(["(FS) Deadlift Info", "$his deadlift record"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSHedonisticDecadence !== "unset") {
    
    klorpa's avatar
    klorpa committed
    				items.push(["(FS) Weight Record", "$his highest weigh-in"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSHedonisticDecadence && V.PC.refreshmentType === 2) {
    
    vas's avatar
    vas committed
    				items.push(["(FS) Favorite Food", `a big helping of ${V.PC.refreshment}`]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSRepopulationFocus !== "unset") {
    
    klorpa's avatar
    klorpa committed
    				items.push(["(FS) Birth Count", "the number of children $he has birthed"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSChattelReligionist !== "unset") {
    
    vas's avatar
    vas committed
    				items.push(["(FS) Religious Symbol", "a religious symbol"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSRomanRevivalist !== "unset") {
    
    vas's avatar
    vas committed
    				items.push(["(FS) Republican Crest", "a small crest of your Republic"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSAztecRevivalist !== "unset") {
    
    vas's avatar
    vas committed
    				items.push(["(FS) Seven Serpents", "a small symbol of the Aztec gods"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSEgyptianRevivalist !== "unset") {
    
    vas's avatar
    vas committed
    				items.push(["(FS) Dynastic Sigil", "a small sigil of your Dynasty"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSEdoRevivalist !== "unset") {
    
    vas's avatar
    vas committed
    				items.push(["(FS) Mon", "a small image of the Shogunate's mon"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSArabianRevivalist !== "unset") {
    
    vas's avatar
    vas committed
    				items.push(["(FS) Caliphate Symbol", "a small symbol of the Caliphate"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    vas's avatar
    vas committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.arcologies[0].FSChineseRevivalist !== "unset") {
    
    vas's avatar
    vas committed
    				items.push(["(FS) Imperial Seal", "a small image of your Imperial Seal"]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    klorpa's avatar
    klorpa committed
    
    
    vas's avatar
    vas committed
    			super("Your brand design is", items, true);
    
    			this.setValue(current_rule.set.brandDesign);
    			this.onchange = (value) => current_rule.set.brandDesign = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    vas's avatar
    vas committed
    
    
    	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 {
    
    vas's avatar
    vas committed
    		constructor() {
    
    			super("Facial tattoos", commonTattoos());
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.lipsTat);
    			this.onchange = (value) => current_rule.set.lipsTat = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    klorpa's avatar
    klorpa committed
    
    
    	class ShoulderTattooList extends ListCapitalized {
    
    vas's avatar
    vas committed
    		constructor() {
    
    			super("Shoulder tattoos", commonTattoos());
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.shouldersTat);
    			this.onchange = (value) => current_rule.set.shouldersTat = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    	class ChestTattooList extends ListCapitalized {
    
    vas's avatar
    vas committed
    		constructor() {
    
    			super("Chest tattoos", commonTattoos());
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.boobsTat);
    			this.onchange = (value) => current_rule.set.boobsTat = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    	class ArmTattooList extends ListCapitalized {
    
    vas's avatar
    vas committed
    		constructor() {
    
    			super("Arm tattoos", commonTattoos());
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.armsTat);
    			this.onchange = (value) => current_rule.set.armsTat = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    	class UpperBackTattooList extends ListCapitalized {
    
    vas's avatar
    vas committed
    		constructor() {
    
    			super("Upper back tattoos", commonTattoos());
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.backTat);
    			this.onchange = (value) => current_rule.set.backTat = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    	class LowerBackTattooList extends ListCapitalized {
    
    vas's avatar
    vas committed
    		constructor() {
    
    			super("Lower back tattoos", commonTattoos());
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.stampTat);
    			this.onchange = (value) => current_rule.set.stampTat = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    	class AbdomenTattooList extends ListCapitalized {
    
    vas's avatar
    vas committed
    		constructor() {
    
    			super("Abdomen tattoos", commonTattoos());
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.vaginaTat);
    			this.onchange = (value) => current_rule.set.vaginaTat = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    	class DickTattooList extends ListCapitalized {
    
    vas's avatar
    vas committed
    		constructor() {
    
    			super("Dick tattoos", commonTattoos());
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.dickTat);
    			this.onchange = (value) => current_rule.set.dickTat = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    	class ButtockTattooList extends ListCapitalized {
    
    vas's avatar
    vas committed
    		constructor() {
    
    			super("Buttock tattoos:", commonTattoos());
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.buttTat);
    			this.onchange = (value) => current_rule.set.buttTat = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    	class AnalTattooList extends ListCapitalized {
    
    vas's avatar
    vas committed
    		constructor() {
    
    			super("Anal tattoo or bleaching", commonTattoos().concat([['bleached']]));
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.anusTat);
    			this.onchange = (value) => current_rule.set.anusTat = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    	class LegTattooList extends ListCapitalized {
    
    vas's avatar
    vas committed
    		constructor() {
    
    			super("Leg tattoos", commonTattoos());
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.legsTat);
    			this.onchange = (value) => current_rule.set.legsTat = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    	class VisionSurgeryList extends ListCapitalized {
    
    vas's avatar
    vas committed
    		constructor() {
    			const items = [
    				["fixed", 1],
    
    vas's avatar
    vas committed
    				["blurred", -1],
    
    vas's avatar
    vas committed
    			];
    			super("Vision correction", items);
    
    			this.setValue(current_rule.set.surgery.eyes);
    			this.onchange = (value) => current_rule.set.surgery.eyes = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    	class HearingSurgeryList extends ListCapitalized {
    
    klorpa's avatar
    klorpa committed
    		constructor() {
    			const items = [
    				["fixed", 0],
    				["muffled", -1],
    			];
    			super("Hearing correction", items);
    
    			this.setValue(current_rule.set.surgery.hears);
    			this.onchange = (value) => current_rule.set.surgery.hears = value;
    
    klorpa's avatar
    klorpa committed
    		}
    	}
    
    klorpa's avatar
    klorpa committed
    
    
    	class SmellSurgeryList extends ListCapitalized {
    
    klorpa's avatar
    klorpa committed
    		constructor() {
    			const items = [
    				["fixed", 0],
    				["disabled", -1],
    			];
    			super("Olfactory correction", items);
    
    			this.setValue(current_rule.set.surgery.smells);
    			this.onchange = (value) => current_rule.set.surgery.smells = value;
    
    klorpa's avatar
    klorpa committed
    		}
    	}
    
    klorpa's avatar
    klorpa committed
    
    
    	class TasteSurgeryList extends ListCapitalized {
    
    klorpa's avatar
    klorpa committed
    		constructor() {
    			const items = [
    				["fixed", 0],
    				["disabled", -1],
    			];
    			super("Gustatory correction", items);
    
    			this.setValue(current_rule.set.surgery.tastes);
    			this.onchange = (value) => current_rule.set.surgery.tastes = value;
    
    klorpa's avatar
    klorpa committed
    		}
    	}
    
    klorpa's avatar
    klorpa committed
    
    
    	class LactationSurgeryList extends ListCapitalized {
    
    vas's avatar
    vas committed
    		constructor() {
    			const items = [
    				["implanted", 1],
    
    vas's avatar
    vas committed
    				["removed", 0],
    
    vas's avatar
    vas committed
    			];
    			super("Lactation drug implants", items);
    
    			this.setValue(current_rule.set.surgery.lactation);
    			this.onchange = (value) => current_rule.set.surgery.lactation = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    	class SemenSurgeryList extends ListCapitalized {
    
    vas's avatar
    vas committed
    		constructor() {
    			const items = [
    				["implanted", 1],
    
    vas's avatar
    vas committed
    				["removed", 0],
    
    vas's avatar
    vas committed
    			];
    			super("Prostate production enhancing drug implants", items);
    
    			this.setValue(current_rule.set.surgery.prostate);
    			this.onchange = (value) => current_rule.set.surgery.prostate = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    	class VasectomyList extends ListCapitalized {
    
    vas's avatar
    vas committed
    		constructor() {
    			const items = [
    				["apply vasectomy", true],
    				["undo vasectomy", false],
    			];
    			super("Apply or undo vasectomy for slaves with testicles", items);
    
    			this.setValue(current_rule.set.surgery.vasectomy);
    			this.onchange = (value) => current_rule.set.surgery.vasectomy = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    	class CosmeticSurgeryList extends ListCapitalized {
    
    vas's avatar
    vas committed
    		constructor() {
    			const items = [
    				["none", 0],
    				["subtle", 1],
    
    vas's avatar
    vas committed
    				["invasive", 2],
    			];
    			super("Cosmetic Surgery", items);
    
    			this.setValue(current_rule.set.surgery.cosmetic);
    			this.onchange = (value) => current_rule.set.surgery.cosmetic = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    ezsh's avatar
    ezsh committed
    	class LipSurgeryList extends NumberRange {
    
    vas's avatar
    vas committed
    		constructor() {
    			const items = [
    				["removed", 0],
    				["plush", 20],
    				["big", 40],
    				["huge", 70],
    
    vas's avatar
    vas committed
    				["facepussy", 95],
    
    vas's avatar
    vas committed
    			];
    
    ezsh's avatar
    ezsh committed
    			super("Lip implants", items, true, 0, 95, true);
    
    			this.setValue(current_rule.set.surgery.lips);
    			this.onchange = (value) => current_rule.set.surgery.lips = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    ezsh's avatar
    ezsh committed
    	class ButtSurgeryList extends NumberRange {
    
    vas's avatar
    vas committed
    		constructor() {
    			const items = [
    
    vas's avatar
    vas committed
    				["removed", 0],
    
    vas's avatar
    vas committed
    				["slim", 2],
    				["stacked", 4],
    				["huge", 6],
    
    klorpa's avatar
    klorpa committed
    				["maximized", 9],
    
    vas's avatar
    vas committed
    			];
    
    ezsh's avatar
    ezsh committed
    			super("Buttock implants", items, true, 0, 9, true);
    
    			this.setValue(current_rule.set.surgery.butt);
    			this.onchange = (value) => current_rule.set.surgery.butt = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    ezsh's avatar
    ezsh committed
    	class BreastSurgeryList extends NumberRange {
    
    vas's avatar
    vas committed
    		constructor() {
    			const items = [
    
    vas's avatar
    vas committed
    				["removed", 0],
    
    vas's avatar
    vas committed
    				["slim", 400],
    				["stacked", 1000],
    				["huge", 2000],
    				["barely functional", 9000],
    
    klorpa's avatar
    klorpa committed
    				["maximized", 48000]
    
    vas's avatar
    vas committed
    			];
    
    ezsh's avatar
    ezsh committed
    			super("Breast implants", items, true, 0, 48000, true);
    
    			this.setValue(current_rule.set.surgery.boobs);
    			this.onchange = (value) => current_rule.set.surgery.boobs = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    	class TighteningSurgeryList extends ListCapitalized {
    
    vas's avatar
    vas committed
    		constructor() {
    			const items = [
    
    vas's avatar
    vas committed
    				["tightening", 1],
    
    vas's avatar
    vas committed
    				["virginity restoration", 2],
    
    vas's avatar
    vas committed
    			];
    			super("Orifice Tightening", items);
    
    			this.setValue(current_rule.set.surgery.holes);
    			this.onchange = (value) => current_rule.set.surgery.holes = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    Skriv's avatar
    Skriv committed
    
    
    	class TummyTuckSurgeryList extends ListCapitalized {
    
    lowercasedonkey's avatar
    lowercasedonkey committed
    		constructor() {
    			const items = [
    				["tuck", 1],
    			];
    			super("Tummy Tuck", items);
    
    			this.setValue(current_rule.set.surgery.tummy);
    			this.onchange = (value) => current_rule.set.surgery.tummy = value;
    
    vas's avatar
    vas committed
    
    
    	class BodyHairSurgeryList extends ListCapitalized {
    
    vas's avatar
    vas committed
    		constructor() {
    			const items = [
    
    vas's avatar
    vas committed
    				["keep", 1],
    				["removal", 2],
    			];
    
    vas's avatar
    vas committed
    			super("Body Hair", items);
    
    			this.setValue(current_rule.set.surgery.bodyhair);
    			this.onchange = (value) => current_rule.set.surgery.bodyhair = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    	class HairSurgeryList extends ListCapitalized {
    
    vas's avatar
    vas committed
    		constructor() {
    			const items = [
    
    vas's avatar
    vas committed
    				["keep", 1],
    				["removal", 2],
    			];
    
    vas's avatar
    vas committed
    			super("Hair", items);
    
    			this.setValue(current_rule.set.surgery.hair);
    			this.onchange = (value) => current_rule.set.surgery.hair = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    vas's avatar
    vas committed
    
    	class AutomaticAssignmentList extends List {
    		constructor() {
    			const items = [
    				["Rest", "rest"],
    				["Fucktoy", "please you"],
    				["Subordinate Slave", "be a subordinate slave"],
    				["House Servant", "be a servant"],
    				["Confined", "stay confined"],
    				["Whore", "whore"],
    
    vas's avatar
    vas committed
    				["Public Servant", "serve the public"],
    
    vas's avatar
    vas committed
    				["Classes", "take classes"],
    				["Milked", "get milked"],
    
    kopareigns's avatar
    kopareigns committed
    				["Gloryhole", "work a glory hole"],
    				["Choose Her Own", "choose her own job"]
    
    vas's avatar
    vas committed
    			];
    
    klorpa's avatar
    klorpa committed
    
    
    DCoded's avatar
    DCoded committed
    			if (V.HGSuite > 0) {
    				items.push(["Head Girl Suite", "live with your Head Girl"]);
    			}
    			if (V.brothel > 0) {
    				items.push(["Brothel", "work in the brothel"]);
    			}
    			if (V.club > 0) {
    				items.push(["Club", "serve in the club"]);
    			}
    			if (V.arcade > 0) {
    				items.push(["Arcade", "be confined in the arcade"]);
    			}
    			if (V.dairy > 0) {
    				items.push(["Dairy", "work in the dairy"]);
    			}
    			if (V.farmyard > 0) {
    				items.push(["Farmyard", "work as a farmhand"]);
    			}
    			if (V.servantsQuarters > 0) {
    				items.push(["Servant Quarters", "work as a servant"]);
    			}
    			if (V.masterSuite > 0) {
    				items.push(["Master Suite", "serve in the master suite"]);
    			}
    			if (V.schoolroom > 0) {
    				items.push(["Schoolroom", "learn in the schoolroom"]);
    			}
    			if (V.spa > 0) {
    				items.push(["Spa", "rest in the spa"]);
    			}
    			if (V.clinic > 0) {
    				items.push(["Clinic", "get treatment in the clinic"]);
    			}
    			if (V.cellblock > 0) {
    				items.push(["Cellblock", "be confined in the cellblock"]);
    			}
    
    klorpa's avatar
    klorpa committed
    
    
    vas's avatar
    vas committed
    			super("Automatically set assignment", items);
    			this.setValue(current_rule.set.setAssignment);
    			this.onchange = (value) => current_rule.set.setAssignment = value;
    		}
    
    vas's avatar
    vas committed
    	}
    
    vas's avatar
    vas committed
    
    
    	class BellyImplantList extends ListCapitalized {
    
    vas's avatar
    vas committed
    		constructor() {
    			const items = [
    				["install", "install"],
    				["remove", "remove"],
    			];
    			super("Belly implant", items);
    
    			this.setValue(current_rule.set.surgery.bellyImplant);
    			this.onchange = (value) => current_rule.set.surgery.bellyImplant = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    klorpa's avatar
    klorpa committed
    
    
    vas's avatar
    vas committed
    	class LabelList extends List {
    		constructor() {
    
    ezsh's avatar
    ezsh committed
    			super("Custom label", [], true, true);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.label);
    			this.onchange = (value) => current_rule.set.label = value;
    		}
    	}
    
    
    	class LabelRemoveList extends List {
    		constructor() {
    
    ezsh's avatar
    ezsh committed
    			super("Remove custom label", [], true, true);
    
    			this.setValue(current_rule.set.removeLabel);
    			this.onchange = (value) => current_rule.set.removeLabel = value;
    		}
    	}
    
    klorpa's avatar
    klorpa committed
    
    
    klorpa's avatar
    klorpa committed
    	class SkinColorList extends List {
    
    vas's avatar
    vas committed
    		constructor() {
    			const items = [
    
    				["natural"],
    
    klorpa's avatar
    klorpa committed
    				["pure white"],
    				["ivory"],
    				["white"],
    				["extremely pale"],
    				["very pale"],
    
    vas's avatar
    vas committed
    				["pale"],
    
    klorpa's avatar
    klorpa committed
    				["extremely fair"],
    				["very fair"],
    				["fair"],
    				["light"],
    				["light olive"],
    				["tan"],
    				["olive"],
    				["bronze"],
    				["dark olive"],
    
    vas's avatar
    vas committed
    				["dark"],
    
    klorpa's avatar
    klorpa committed
    				["light beige"],
    				["beige"],
    				["dark beige"],
    				["light brown"],
    				["brown"],
    				["dark brown"],
    				["black"],
    				["ebony"],
    				["pure black"],
    
    klorpa's avatar
    klorpa committed
    				["sun tanned"],
    				["spray tanned"],
    
    vas's avatar
    vas committed
    				["dyed red"],
    				["dyed green"],
    				["dyed blue"],
    
    klorpa's avatar
    klorpa committed
    				["dyed pink"],
    
    klorpa's avatar
    klorpa committed
    				["dyed gray"],
    				["tiger striped"],
    
    vas's avatar
    vas committed
    				["camouflage patterned"],
    
    ezsh's avatar
    ezsh committed
    			];
    
    vas's avatar
    vas committed
    			super("Dye or tan skin", items);
    			this.setValue(current_rule.set.skinColor);
    			this.onchange = (x) => current_rule.set.skinColor = x;
    		}
    	}
    
    klorpa's avatar
    klorpa committed
    
    
    vas's avatar
    vas committed
    	return rulesAssistantOptions;
    
    vas's avatar
    vas committed
    })();