Skip to content
Snippets Groups Projects
rulesAssistantOptions.tw 85.4 KiB
Newer Older
  • Learn to ignore specific revisions
  • vas's avatar
    vas committed
    
    	class MakeupList extends List {
    		constructor() {
    			super("Makeup");
    			[
    				["no default setting"],
    
    vas's avatar
    vas committed
    				["makeup-free", 0],
    				["nice", 1],
    				["gorgeous", 2],
    				["color-coordinate with hair", 3],
    				["slutty", 4]
    
    vas's avatar
    vas committed
    			].forEach(pair => this.appendChild(new ListItem(...pair)));
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.makeup);
    			this.onchange = (value) => current_rule.set.makeup = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class NailsList extends List {
    		constructor() {
    			super("Nails");
    			[
    				["no default setting"],
    
    vas's avatar
    vas committed
    				["clipped", 0],
    				["extended", 1],
    				["color-coordinate with hair", 2],
    				["sharp and claw-like", 3],
    				["bright and glittery", 4],
    				["hooker nails", 5]
    
    vas's avatar
    vas committed
    			].forEach(pair => this.appendChild(new ListItem(...pair)));
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.nails);
    			this.onchange = (value) => current_rule.set.nails = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class HairLengthList extends List {
    		constructor() {
    			const pairs = [
    				["no default setting"],
    
    vas's avatar
    vas committed
    				["very short", 5],
    				["short", 10],
    				["shoulder length", 30],
    				["long", 60],
    				["very long", 100],
    				["floor length", 150]
    
    vas's avatar
    vas committed
    			];
    			super("Hair length", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.hLength);
    			this.onchange = (value) => current_rule.set.hLength = value;
    
    vas's avatar
    vas committed
    		}
    	}
    	class HairColourList extends List {
    		constructor() {
    			const pairs = [
    				["no default setting"],
    				["blonde"],
    				["golden"],
    				["platinum blonde"],
    				["strawbery-blonde"],
    				["copper"],
    				["ginger"],
    				["red"],
    				["green"],
    				["blue"],
    				["pink"],
    				["dark brown"],
    				["brown"],
    				["auburn"],
    				["burgundy"],
    				["chocolate"],
    				["chestnut"],
    				["hazel"],
    				["black"],
    				["grey"],
    				["silver"],
    				["white"],
    
    vas's avatar
    vas committed
    				["blue-violet"],
    
    vas's avatar
    vas committed
    				["blazing red"],
    				["neon green"],
    				["neon blue"],
    				["neon pink"]
    			];
    			super("Hair color", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.hColor);
    			this.onchange = (value) => current_rule.set.hColor = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    	class HairStyleList extends List {
    		constructor() {
    			const pairs = [
    				["no default setting"],
    				["neat"],
    				["shaved"],
    				["trimmed"],
    				["buzzcut"],
    				["up"],
    				["ponytail"],
    				["bun"],
    
    vas's avatar
    vas committed
    				["messy bun"],
    
    vas's avatar
    vas committed
    				["curled"],
    				["permed"],
    				["luxurious"],
    				["dreadlocks"],
    				["cornrows"],
    				["braided"],
    				["tails"],
    				["afro"],
    				["strip"]
    			];
    			super("Hair style", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.hStyle);
    			this.onchange = (value) => current_rule.set.hStyle = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    	class PubicHairColourList extends List {
    		constructor() {
    			const pairs = [
    				["no default setting"],
    				["blonde"],
    				["golden"],
    				["platinum blonde"],
    				["strawerry-blonde"],
    				["copper"],
    				["ginger"],
    				["red"],
    				["green"],
    				["blue"],
    				["pink"],
    				["dark brown"],
    				["brown"],
    				["auburn"],
    				["burgundy"],
    				["chocolate"],
    				["chestnut"],
    				["hazel"],
    				["black"],
    				["grey"],
    				["silver"],
    				["white"],
    
    vas's avatar
    vas committed
    				["blue-violet"],
    
    vas's avatar
    vas committed
    				["blazing red"],
    				["neon green"],
    				["neon blue"],
    				["neon pink"]
    			];
    			super("Pubic hair color, when present", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.pubicHColor);
    			this.onchange = (value) => current_rule.set.pubicHColor = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    	class PubicHairStyleList extends List {
    		constructor() {
    			const pairs = [
    				["no default setting"],
    				["waxed"],
    				["in a strip"],
    				["neat"],
    				["bushy"],
    				["bushy in the front and neat in the rear"],
    				["very bushy"]
    			];
    			super("Pubic hairstyle", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.pubicHStyle);
    			this.onchange = (value) => current_rule.set.pubicHStyle = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class ArmpitHairColourList extends List {
    		constructor() {
    			const pairs = [
    				["no default setting"],
    				["blonde"],
    				["golden"],
    				["platinum blonde"],
    				["strawberry-blonde"],
    				["copper"],
    				["ginger"],
    				["red"],
    				["green"],
    				["blue"],
    				["pink"],
    				["dark brown"],
    				["brown"],
    				["auburn"],
    				["burgundry"],
    				["chocolate"],
    				["chestnut"],
    				["hazel"],
    				["black"],
    				["grey"],
    				["silver"],
    
    vas's avatar
    vas committed
    				["white"],
    				["blue-violet"],
    
    vas's avatar
    vas committed
    			];
    			super("Underarm hair color, when present", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.underArmHColor);
    			this.onchange = (value) => current_rule.set.underArmHColor = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    	class ArmpitHairStyleList extends List {
    		constructor() {
    			const pairs = [
    				["no default setting"],
    				["waxed"],
    				["shaved"],
    				["neat"],
    				["bushy"]
    			];
    			super("Underarm hair style", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.underArmHStyle);
    			this.onchange = (value) => current_rule.set.underArmHStyle = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class EarPiercingList extends List {
    
    vas's avatar
    vas committed
    		constructor() {
    			const pairs = [
    				["No default setting", "no default setting"],
    				["None", 0],
    				["Light", 1],
    				["Heavy", 2]
    			];
    			super("Ear piercings", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.earPiercing);
    
    vas's avatar
    vas committed
    			this.onchange = (value) => current_rule.set.earPiercing = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class NosePiercingList extends List {
    		constructor() {
    			const pairs = [
    				["No default setting", "no default setting"],
    				["None", 0],
    				["Light", 1],
    				["Heavy", 2]
    			];
    			super("Nasal piercings", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.nosePiercing);
    
    vas's avatar
    vas committed
    			this.onchange = (value) => current_rule.set.earPiercing = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class EyebrowPiercingList extends List {
    		constructor() {
    			const pairs = [
    				["No default setting", "no default setting"],
    				["None", 0],
    				["Light", 1],
    				["Heavy", 2]
    			];
    			super("Eyebrow piercings", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.eyebrowPiercing);
    
    vas's avatar
    vas committed
    			this.onchange = (value) => current_rule.set.eyebrowPiercing = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class NavelPiercingList extends List {
    		constructor() {
    			const pairs = [
    				["No default setting", "no default setting"],
    				["None", 0],
    				["Light", 1],
    				["Heavy", 2]
    			];
    			super("Navel piercings", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.navelPiercing);
    
    vas's avatar
    vas committed
    			this.onchange = (value) => current_rule.set.navelPiercing = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class NipplePiercingList extends List {
    		constructor() {
    			const pairs = [
    				["No default setting", "no default setting"],
    				["None", 0],
    				["Light", 1],
    				["Heavy", 2]
    			];
    			super("Nipple piercings", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.nipplesPiercing);
    
    vas's avatar
    vas committed
    			this.onchange = (value) => current_rule.set.nipplesPiercing = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class AreolaPiercingList extends List {
    		constructor() {
    			const pairs = [
    				["No default setting", "no default setting"],
    				["None", 0],
    				["Studded", 1]
    			];
    			super("Areola studs", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.areolaePiercing);
    
    vas's avatar
    vas committed
    			this.onchange = (value) => current_rule.set.areolaePiercing = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class LipPiercingList extends List {
    		constructor() {
    			const pairs = [
    				["No default setting", "no default setting"],
    				["None", 0],
    				["Light", 1],
    				["Heavy", 2]
    			];
    			super("Lip piercings", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.lipsPiercing);
    
    vas's avatar
    vas committed
    			this.onchange = (value) => current_rule.set.lipsPiercing = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class TonguePiercingList extends List {
    		constructor() {
    			const pairs = [
    				["No default setting", "no default setting"],
    				["None", 0],
    				["Light", 1],
    				["Heavy", 2]
    			];
    			super("Tongue piercing", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.tonguePiercing);
    
    vas's avatar
    vas committed
    			this.onchange = (value) => current_rule.set.tonguePiercing = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class ClitPiercingList extends List {
    
    vas's avatar
    vas committed
    		constructor() {
    			const pairs = [
    				["No default setting", "no default setting"],
    				["None", 0],
    				["Light", 1],
    				["Heavy", 2],
    				["Smart (expensive)", 3]
    			];
    			super("Clit piercing", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.clitPiercing);
    
    vas's avatar
    vas committed
    			this.onchange = (value) => current_rule.set.clitPiercing = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class LabiaPiercingList extends List {
    		constructor() {
    			const pairs = [
    				["No default setting", "no default setting"],
    				["None", 0],
    				["Light", 1],
    				["Heavy", 2]
    			];
    			super("Pussylips piercings", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.vaginaPiercing);
    
    vas's avatar
    vas committed
    			this.onchange = (value) => current_rule.set.vaginaPiercing = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class ShaftPiercingList extends List {
    		constructor() {
    			const pairs = [
    				["No default setting", "no default setting"],
    				["None", 0],
    				["Light", 1],
    				["Heavy", 2]
    			];
    			super("Shaft piercings", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.dickPiercing);
    
    vas's avatar
    vas committed
    			this.onchange = (value) => current_rule.set.dickPiercing = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class PerineumPiercingList extends List {
    		constructor() {
    			const pairs = [
    				["No default setting", "no default setting"],
    				["None", 0],
    				["Light", 1],
    				["Heavy", 2]
    			];
    			super("Perianal piercings", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.anusPiercing);
    
    vas's avatar
    vas committed
    			this.onchange = (value) => current_rule.set.anusPiercing = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class CorsetPiercingList extends List {
    		constructor() {
    			const pairs = [
    				["No default setting", "no default setting"],
    				["None", 0],
    				["Apply", 1]
    			];
    			super("Corset piercings", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.corsetPiercing);
    
    vas's avatar
    vas committed
    			this.onchange = (value) => current_rule.set.corsetPiercing = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class AutoBrandingList extends List {
    		constructor() {
    			const pairs = [
    				["Activate", 1],
    				["Off", 0],
    			];
    			super("Automatic branding", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.autoBrand);
    			this.onchange = (value) => current_rule.set.autoBrand = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class BrandingLocationList extends List {
    		constructor() {
    			super("Your preferred location for brands is", []);
    
    
    vas's avatar
    vas committed
    			const ears = new ListSubSection(this, "Ears", [
    
    vas's avatar
    vas committed
    				["Left", "left ear"],
    				["Right", "right ear"],
    				["Both", "ears"]
    			]);
    			this.appendChild(ears);
    
    
    vas's avatar
    vas committed
    			const cheeks = new ListSubSection(this, "Cheeks", [
    
    vas's avatar
    vas committed
    				["Left", "left cheek"],
    				["Right", "right cheek"],
    				["Both", "cheeks"]
    			]);
    			this.appendChild(cheeks);
    
    vas's avatar
    vas committed
    
    
    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 breasts = new ListSubSection(this, "Breasts", [
    
    vas's avatar
    vas committed
    				["Left", "right breast"],
    				["Right", "left breast"],
    				["Both", "breasts"]
    
    vas's avatar
    vas committed
    			]);
    			this.appendChild(breasts);
    
    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"],
    				["Belly", "belly"],
    				["Pubic mound", "pubic mound"],
    				["Back", "back"],
    				["Lower Back", "lower back"]
    
    vas's avatar
    vas committed
    			]);
    			this.appendChild(other);
    
    vas's avatar
    vas committed
    
    
    vas's avatar
    vas committed
    			this.setValue(V.brandTarget);
    
    vas's avatar
    vas committed
    			this.onchange = (value) => V.brandTarget = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    vas's avatar
    vas committed
    
    	class BrandDesignList extends List {
    		constructor() {
    			const items = [
    				["Your  slaving emblem", "your personal symbol"],
    				["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
    			];
    
    vas's avatar
    vas 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"]);
    
    vas's avatar
    vas committed
    			
    			if (V.arcologies[0].FSSupremacist !== "unset" && V.arcologies[0].FSSupremacistRace === "white")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Swastika", "a swastika"]);
    
    vas's avatar
    vas 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"]);
    
    vas's avatar
    vas committed
    
    			if (V.arcologies[0].FSGenderRadicalist !== "unset" || V.arcologies.FSGenderFundamentalist !== "unset")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Gender Symbol", "a gender symbol"]);
    
    vas's avatar
    vas committed
    
    			if (V.arcologies[0].FSPaternalist !== "unset")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Personal Symbol", "her own personal symbol"]);
    
    vas's avatar
    vas committed
    
    			if (V.arcologies[0].FSDegradationist !== "unset")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Chain Symbol", "a chain symbol"]);
    
    vas's avatar
    vas committed
    
    			if (V.arcologies[0].FSBodyPurist !== "unset")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Vitruvian Man", "a Vitruvian man"]);
    
    vas's avatar
    vas committed
    
    			if (V.arcologies[0].FSTransformationFetishist !== "unset")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Most Desired Implants", "a shortlist of desired implants"]);
    
    vas's avatar
    vas committed
    
    			if (V.arcologies[0].FSYouthPreferentialist !== "unset")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Virginity Status", "her virginity status"]);
    
    vas's avatar
    vas committed
    
    			if (V.arcologies[0].FSMaturityPreferentialist !== "unset")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Sexual Skill Info", "her sexual skills"]);
    
    vas's avatar
    vas committed
    
    			if (V.arcologies[0].FSSlimnessEnthusiast !== "unset")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Breast Ceiling", "her absolute maximum breast size"]);
    
    vas's avatar
    vas committed
    
    			if (V.arcologies[0].FSAssetExpansionist !== "unset")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Breast Floor", "her absolute minimum breast size"]);
    
    vas's avatar
    vas committed
    
    			if (V.arcologies[0].FSPastoralist !== "unset")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Product Quality", "her body product quality"]);
    
    vas's avatar
    vas committed
    
    			if (V.arcologies[0].FSPhysicalIdelist !== "unset")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Deadlift Info", "her deadlift record"]);
    
    vas's avatar
    vas committed
    
    			if (V.arcologies[0].FSHedonisticDecadence !== "unset")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Weight Record", "her highest weigh-in"]);
    
    vas's avatar
    vas 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}`]);
    
    vas's avatar
    vas committed
    
    			if (V.arcologies[0].FSRepopulationFocus !== "unset")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Birth Count", "the number of children she has birthed"]);
    
    vas's avatar
    vas committed
    
    			if (V.arcologies[0].FSChattelReligionist !== "unset")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Religious Symbol", "a religious symbol"]);
    
    vas's avatar
    vas committed
    
    			if (V.arcologies[0].FSRomanRevivalist !== "unset")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Republican Crest", "a small crest of your Republic"]);
    
    vas's avatar
    vas committed
    
    			if (V.arcologies[0].FSAztecRevivalist !== "unset")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Seven Serpents", "a small symbol of the Aztec gods"]);
    
    vas's avatar
    vas committed
    
    			if (V.arcologies[0].FSEgyptianRevivalist !== "unset")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Dynastic Sigil", "a small sigil of your Dynasty"]);
    
    vas's avatar
    vas committed
    
    			if (V.arcologies[0].FSEdoRevivalist !== "unset")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Mon", "a small image of the Shogunate's mon"]);
    
    vas's avatar
    vas committed
    
    			if (V.arcologies[0].FSArabianRevivalist !== "unset")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Caliphate Symbol", "a small symbol of the Caliphate"]);
    
    vas's avatar
    vas committed
    
    			if (V.arcologies[0].FSChineseRevivalist !== "unset")
    
    vas's avatar
    vas committed
    				items.push(["(FS) Imperial Seal", "a small image of your Imperial Seal"]);
    
    vas's avatar
    vas committed
    			
    
    vas's avatar
    vas committed
    			super("Your brand design is", items, true);
    
    vas's avatar
    vas committed
    		}
    	}
    
    vas's avatar
    vas committed
    
    	class FaceTattooList extends List {
    		constructor() {
    			const items = [
    				["no default setting"],
    
    vas's avatar
    vas committed
    				["none", 0],
    
    vas's avatar
    vas committed
    				["tribal patterns"],
    				["flowers"],
    				["counting"],
    				["advertisements"],
    				["rude words"],
    				["degradation"],
    				["bovine patterns"],
    				["Asian art"],
    				["permanent makeup"],
    				["sacrament"],
    				["sacrilege"],
    				["possessive"],
    				["paternalist"]
    
    vas's avatar
    vas committed
    			];
    			super("Facial tattoos", items);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.lipsTat);
    			this.onchange = (value) => current_rule.set.lipsTat = value;
    
    vas's avatar
    vas committed
    		}
    	}
    	
    	class ShoulderTattooList extends List {
    		constructor() {
    			const items = [
    				["no default setting"],
    
    vas's avatar
    vas committed
    				["none", 0],
    
    vas's avatar
    vas committed
    				["tribal patterns"],
    				["flowers"],
    				["counting"],
    				["advertisements"],
    				["rude words"],
    				["degradation"],
    				["bovine patterns"],
    				["Asian art"],
    				["scenes"],
    				["sacrament"],
    				["sacrilege"],
    				["possessive"],
    				["paternalist"]
    
    vas's avatar
    vas committed
    			];
    			super("Shoulder tattoos", items);
    
    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 List {
    		constructor() {
    			const items = [
    				["no default setting"],
    
    vas's avatar
    vas committed
    				["none", 0],
    
    vas's avatar
    vas committed
    				["tribal patterns"],
    				["flowers"],
    				["counting"],
    				["advertisements"],
    				["rude words"],
    				["degradation"],
    				["bovine patterns"],
    				["Asian art"],
    				["scenes"],
    				["sacrament"],
    				["sacrilege"],
    				["possessive"],
    				["paternalist"]
    
    vas's avatar
    vas committed
    			];
    			super("Chest tattoos", items);
    
    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 List {
    		constructor() {
    			const items = [
    				["no default setting"],
    
    vas's avatar
    vas committed
    				["none", 0],
    
    vas's avatar
    vas committed
    				["tribal patterns"],
    				["flowers"],
    				["counting"],
    				["advertisements"],
    				["rude words"],
    				["degradation"],
    				["bovine patterns"],
    				["Asian art"],
    				["scenes"],
    				["sacrament"],
    				["sacrilege"],
    				["possessive"],
    				["paternalist"]
    
    vas's avatar
    vas committed
    			];
    			super("Arm tattoos", items);
    
    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 List {
    		constructor() {
    			const items = [
    				["no default setting"],
    
    vas's avatar
    vas committed
    				["none", 0],
    
    vas's avatar
    vas committed
    				["tribal patterns"],
    				["flowers"],
    				["counting"],
    				["advertisements"],
    				["rude words"],
    				["degradation"],
    				["bovine patterns"],
    				["Asian art"],
    				["scenes"],
    				["sacrament"],
    				["sacrilege"],
    				["possessive"],
    
    vas's avatar
    vas committed
    				["paternalist"],
    
    vas's avatar
    vas committed
    			];
    			super("Upper back tattoos", items);
    
    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 List {
    		constructor() {
    			const items = [
    				["no default setting"],
    
    vas's avatar
    vas committed
    				["none", 0],
    
    vas's avatar
    vas committed
    				["tribal patterns"],
    				["flowers"],
    				["counting"],
    				["advertisements"],
    				["rude words"],
    				["degradation"],
    				["bovine patterns"],
    				["Asian art"],
    				["scenes"],
    				["sacrament"],
    				["sacrilege"],
    				["possessive"],
    				["paternalist"]
    
    vas's avatar
    vas committed
    			];
    			super("Lower back tattoos", items);
    
    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 List {
    		constructor() {
    			const items = [
    				["no default setting"],
    
    vas's avatar
    vas committed
    				["none", 0],
    
    vas's avatar
    vas committed
    				["tribal patterns"],
    				["flowers"],
    				["counting"],
    				["advertisements"],
    				["rude words"],
    				["degradation"],
    				["bovine patterns"],
    				["Asian art"],
    				["scenes"],
    				["sacrament"],
    				["sacrilege"],
    				["possessive"],
    
    vas's avatar
    vas committed
    				["paternalist"],
    			];
    			super("Abdomen tattoos", items);
    
    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 List {
    		constructor() {
    			const items = [
    				["no default setting"],
    
    vas's avatar
    vas committed
    				["none", 0],
    
    vas's avatar
    vas committed
    				["tribal patterns"],
    				["flowers"],
    				["counting"],
    				["advertisements"],
    				["rude words"],
    				["degradation"],
    				["bovine patterns"],
    				["Asian art"],
    				["sacrament"],
    				["sacrilege"],
    				["possessive"],
    
    vas's avatar
    vas committed
    				["paternalist"],
    
    vas's avatar
    vas committed
    			];
    			super("Dick tattoos", items);
    
    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 List {
    		constructor() {
    			const items = [
    				["no default setting"],
    
    vas's avatar
    vas committed
    				["none", 0],
    
    vas's avatar
    vas committed
    				["tribal patterns"],
    				["flowers"],
    				["counting"],
    				["advertisements"],
    				["rude words"],
    				["degradation"],
    				["bovine patterns"],
    				["Asian art"],
    				["scenes"],
    				["sacrament"],
    				["sacrilege"],
    				["possessive"],
    
    vas's avatar
    vas committed
    				["paternalist"],
    
    vas's avatar
    vas committed
    			];
    
    vas's avatar
    vas committed
    			super("Buttock tattoos:", items);
    
    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 List {
    		constructor() {
    			const items = [
    				["no default setting"],
    
    vas's avatar
    vas committed
    				["none", 0],
    
    vas's avatar
    vas committed
    				["tribal patterns"],
    				["flowers"],
    				["counting"],
    				["advertisements"],
    				["rude words"],
    				["degradation"],
    				["bovine patterns"],
    
    vas's avatar
    vas committed
    				["bleached"],
    
    vas's avatar
    vas committed
    				["sacrament"],
    				["sacrilege"],
    				["possessive"],
    
    vas's avatar
    vas committed
    				["paternalist"],
    
    vas's avatar
    vas committed
    			];
    			super("Anal tattoo or bleaching", items);
    
    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 List {
    		constructor() {
    			const items = [
    				["no default setting"],
    
    vas's avatar
    vas committed
    				["none", 0],
    
    vas's avatar
    vas committed
    				["tribal patterns"],
    				["flowers"],
    				["counting"],
    				["advertisements"],
    				["rude words"],
    				["degradation"],
    				["bovine patterns"],
    				["Asian art"],
    				["scenes"],
    				["sacrament"],
    				["sacrilege"],
    				["possessive"],
    
    vas's avatar
    vas committed
    				["paternalist"],
    
    vas's avatar
    vas committed
    			];
    			super("Leg tattoos", items);
    
    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 List {
    		constructor() {
    			const items = [
    				["no default setting"],
    				["fixed", 1],
    
    vas's avatar
    vas committed
    				["blurred", -1],
    
    vas's avatar
    vas committed
    			];
    			super("Vision correction", items);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.surgery_eyes);
    			this.onchange = (value) => current_rule.set.surgery_eyes = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    	class LactationSurgeryList extends List {
    		constructor() {
    			const items = [
    				["no default setting"],
    				["implanted", 1],
    
    vas's avatar
    vas committed
    				["removed", 0],
    
    vas's avatar
    vas committed
    			];
    			super("Lactation drug implants", items);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.surgery_lactation);
    			this.onchange = (value) => current_rule.set.surgery_lactation = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    	class SemenSurgeryList extends List {
    		constructor() {
    			const items = [
    				["no default setting"],
    				["implanted", 1],
    
    vas's avatar
    vas committed
    				["removed", 0],
    
    vas's avatar
    vas committed
    			];
    			super("Prostate production enhancing drug implants", items);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.surgery_prostate);
    			this.onchange = (value) => current_rule.set.surgery_prostate = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    vas's avatar
    vas committed
    	class VasectomyList extends List {
    		constructor() {
    			const items = [
    				["no default setting"],
    				["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 List {
    		constructor() {
    			const items = [
    				["none", 0],
    				["subtle", 1],
    
    vas's avatar
    vas committed
    				["invasive", 2],
    			];
    			super("Cosmetic Surgery", items);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.surgery_cosmetic);
    			this.onchange = (value) => current_rule.set.surgery_cosmetic = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    	class LipSurgeryList extends List {
    		constructor() {
    			const items = [
    				["no default setting"],
    				["removed", 0],
    				["plush", 20],
    				["big", 40],
    				["huge", 70],
    
    vas's avatar
    vas committed
    				["facepussy", 95],
    
    vas's avatar
    vas committed
    			];
    			super("Lip implants", items);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.surgery_lips);
    			this.onchange = (value) => current_rule.set.surgery_lips = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    	class ButtSurgeryList extends List {
    		constructor() {
    			const items = [
    				["no default setting"],
    
    vas's avatar
    vas committed
    				["removed", 0],
    
    vas's avatar
    vas committed
    				["slim", 2],
    				["stacked", 4],
    				["huge", 6],
    
    vas's avatar
    vas committed
    				["maximised", 9],
    			];
    			super("Buttock implants", items);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.surgery_butt);
    			this.onchange = (value) => current_rule.set.surgery_butt = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    	class BreastSurgeryList extends List {
    		constructor() {
    			const items = [
    				["no default setting"],
    
    vas's avatar
    vas committed
    				["removed", 0],
    
    vas's avatar
    vas committed
    				["slim", 400],
    				["stacked", 1000],
    				["huge", 2000],
    				["barely functional", 9000],
    				["maximised", 48000]
    
    vas's avatar
    vas committed
    			];
    			super("Breast implants", items);