Skip to content
Snippets Groups Projects
rulesAssistantOptions.js 97.3 KiB
Newer Older
  • Learn to ignore specific revisions
  • vas's avatar
    vas committed
    	class SmartXYAttractionList extends List {
    		constructor() {
    			const pairs = [
    				["No default setting", "no default setting"],
    
    vas's avatar
    vas committed
    				["Passionate", 100],
    				["Attracted", 75],
    				["Indifferent", 45],
    				["None", 0]
    
    vas's avatar
    vas committed
    			];
    			super("Smart piercing XY attraction target", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.clitSettingXY);
    			this.onchange = (value) => current_rule.set.clitSettingXY = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class SmartXXAttractionList extends List {
    		constructor() {
    			const pairs = [
    				["No default setting", "no default setting"],
    
    vas's avatar
    vas committed
    				["Passionate", 100],
    				["Attracted", 75],
    				["Indifferent", 45],
    				["None", 0]
    
    vas's avatar
    vas committed
    			];
    			super("Smart piercing XX attraction target", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.clitSettingXX);
    			this.onchange = (value) => current_rule.set.clitSettingXX = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class SmartEnergyList extends List {
    		constructor() {
    			const pairs = [
    
    kopareigns's avatar
    kopareigns committed
    				["No default setting", "no default setting"],
    
    vas's avatar
    vas committed
    				["Nympho", 100],
    				["Sex Addict", 85],
    				["Powerful", 65],
    				["Healthy", 45],
    				["Weak", 25],
    				["Frigid", 0]
    
    vas's avatar
    vas committed
    			];
    			super("Smart piercing sex drive target", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.clitSettingEnergy);
    			this.onchange = (value) => current_rule.set.clitSettingEnergy = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class SpeechList extends List {
    		constructor() {
    			const pairs = [
    				["No default setting", "no default setting"],
    				["Permissive", "permissive"],
    				["Suppress accents", "accent elimination"],
    				["Restrictive", "restrictive"]
    			];
    			super("Speech rules", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.speechRules);
    			this.onchange = (value) => current_rule.set.speechRules = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class RelationshipList extends List {
    		constructor() {
    			const pairs =[
    				["No default setting", "no default setting"],
    				["Permissive", "permissive"],
    				["Just friends", "just friends"],
    				["Restrictive", "restrictive"]
    			];
    			super("Relationship rules", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.relationshipRules);
    			this.onchange = (value) => current_rule.set.relationshipRules = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    kopareigns's avatar
    kopareigns committed
    	class PornBroadcastStatus extends List {
    
    		constructor() {
    			const pairs = [
    				["No default setting", "no default setting"],
    				["Disabled", 0],
    				["Enabled", 1]
    			];
    			super("Porn Broadcasting Status", pairs);
    			this.setValue(current_rule.set.pornFeed);
    			this.onchange = (value) => current_rule.set.pornFeed = value;
    		}
    	}
    
    
    vas's avatar
    vas committed
    	class PornList extends List {
    		constructor() {
    			const pairs = [
    				["No default setting", "no default setting"],
    
    Pregmodder's avatar
    Pregmodder committed
    				/*["No broadcasting", -1], **This has changed, it would now use .pornFeed** */
    
    vas's avatar
    vas committed
    				["No subsidy", 0],
    				["1000", 1000],
    				["2000", 2000],
    				["3000", 3000],
    				["4000", 4000],
    				["5000", 5000]
    
    vas's avatar
    vas committed
    			];
    			super("Weekly porn publicity subsidy", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.pornFameSpending);
    			this.onchange = (value) => current_rule.set.pornFameSpending = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    	class EyewearList extends List {
    		constructor() {
    			const pairs = [
    				["no default setting"],
    
    				["correct with glasses"],
    
    vas's avatar
    vas committed
    				["correct with contacts"],
    				["universal glasses"],
    				["blur with glasses"],
    				["blur with contacts"]
    			];
    			super("Eyewear", pairs);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.eyewear);
    			this.onchange = (value) => current_rule.set.eyewear = value;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    vas's avatar
    vas committed
    	class LensesList extends Element {
    		constructor() {
    
    vas's avatar
    vas committed
    			super(current_rule.set.eyeColor);
    
    vas's avatar
    vas committed
    			this.appendChild(new OptionsItem("No default Setting", () => this.setValue("no default setting")));
    
    klorpa's avatar
    klorpa committed
    			this.colorlist = new LensesColorList();
    
    vas's avatar
    vas committed
    			this.shapelist = new LensesShapeList();
    
    klorpa's avatar
    klorpa committed
    			this.appendChild(this.colorlist);
    
    vas's avatar
    vas committed
    			this.appendChild(this.shapelist);
    		}
    
    vas's avatar
    vas committed
    
    
    vas's avatar
    vas committed
    		render(color) {
    			const elem = document.createElement("div");
    
    vas's avatar
    vas committed
    			elem.innerHTML = "Eye coloring: ";
    
    vas's avatar
    vas committed
    			this.label = document.createElement("strong");
    
    vas's avatar
    vas committed
    			this.label.innerText = color;
    
    vas's avatar
    vas committed
    			elem.appendChild(this.label);
    
    vas's avatar
    vas committed
    			return elem;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    
    
    vas's avatar
    vas committed
    		combine() {
    			const lst = [];
    
    klorpa's avatar
    klorpa committed
    			if (this.colorlist.value !== "no default setting")
    				lst.push(this.colorlist.value);
    
    vas's avatar
    vas committed
    			if (this.shapelist.value !== "no default setting")
    
    vas's avatar
    vas committed
    				lst.push(this.shapelist.value);
    
    kopareigns's avatar
    kopareigns committed
    			if (lst.length === 0) return "no default setting";
    
    vas's avatar
    vas committed
    			else return lst.join(" ");
    		}
    
    vas's avatar
    vas committed
    
    
    vas's avatar
    vas committed
    		setValue(val) {
    			if (val === undefined) val = this.combine();
    			this.label.innerText = val;
    			current_rule.set.eyeColor = val;
    
    vas's avatar
    vas committed
    		}
    
    vas's avatar
    vas committed
    	}
    
    
    klorpa's avatar
    klorpa committed
    	class LensesColorList extends Options {
    
    vas's avatar
    vas committed
    		constructor() {
    
    vas's avatar
    vas committed
    			const items = [];
    
    vas's avatar
    vas committed
    			[
    
    vas's avatar
    vas committed
    				"no default setting",
    				"blue",
    				"black",
    				"brown",
    				"green",
    				"turquoise",
    				"sky-blue",
    				"hazel",
    				"pale-grey",
    				"white",
    				"pink",
    
    vas's avatar
    vas committed
    				"amber",
    				"red"
    
    vas's avatar
    vas committed
    			].forEach(i => items.push(new OptionsItem(i, item => {
    
    vas's avatar
    vas committed
    				this.value = item.label;
    
    vas's avatar
    vas committed
    				this.parent.setValue();
    
    vas's avatar
    vas committed
    			})));
    
    vas's avatar
    vas committed
    			super(items);
    
    vas's avatar
    vas committed
    		}
    	}
    
    	class LensesShapeList extends Options {
    		constructor() {
    
    vas's avatar
    vas committed
    			const items = [];
    
    vas's avatar
    vas committed
    			[
    
    vas's avatar
    vas committed
    				"no default setting",
    				"catlike",
    				"serpent-like",
    
    vas's avatar
    vas committed
    				"devilish",
    				"demonic",
    				"hypnotic",
    				"heart-shaped",
    
    vas's avatar
    vas committed
    				"wide-eyed",
    				"almond-shaped",
    				"bright",
    				"teary",
    				"vacant"
    
    vas's avatar
    vas committed
    			].forEach(i => items.push(new OptionsItem(i, item => {
    
    vas's avatar
    vas committed
    				this.value = item.label;
    
    vas's avatar
    vas committed
    				this.parent.setValue();
    
    vas's avatar
    vas committed
    			})));
    
    vas's avatar
    vas committed
    			super(items);
    
    vas's avatar
    vas committed
    		}
    	}
    
    klorpa's avatar
    klorpa committed
    
    
    klorpa's avatar
    klorpa committed
    	class EarwearList extends List {
    		constructor() {
    			const pairs = [
    
    kopareigns's avatar
    kopareigns committed
    				["no default setting"],
    
    klorpa's avatar
    klorpa committed
    				["correct with hearing aids"],
    				["muffle with ear plugs"],
    				["deafen with ear plugs"]
    			];
    			super("Earwear", pairs);
    			this.setValue(current_rule.set.earwear);
    			this.onchange = (value) => current_rule.set.earwear = value;
    		}
    	}
    
    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],
    				["neon colored", 6],
    				["neon color-coordinate with hair", 7],
    				["metallic painted", 8],
    				["metallic color-coordinate with hair", 9]
    
    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
    		}
    	}
    
    2hu4u's avatar
    2hu4u committed
    
    	class HaircutsList extends List {
    		constructor() {
    			const pairs = [
    				["no default setting"],
    				["maintain hair length", 1],
    				["do not maintain hair length", 0]
    			];
    			super("Hair length maintenance", pairs);
    			this.setValue(current_rule.set.haircuts);
    			this.onchange = (value) => current_rule.set.haircuts = value;
    		}
    	}
    
    
    klorpa's avatar
    klorpa committed
    	class HairColorList extends List {
    
    vas's avatar
    vas committed
    		constructor() {
    			const pairs = [
    				["no default setting"],
    				["blonde"],
    				["golden"],
    				["platinum blonde"],
    				["strawbery-blonde"],
    				["copper"],
    				["ginger"],
    				["red"],
    
    vas's avatar
    vas committed
    				["green"],
    				["blue"],
    				["pink"],
    				["dark brown"],
    				["brown"],
    				["auburn"],
    				["burgundy"],
    				["chocolate"],
    				["chestnut"],
    				["hazel"],
    
    deepmurk's avatar
    deepmurk committed
    				["jet black"],
    
    vas's avatar
    vas committed
    				["black"],
    				["grey"],
    				["silver"],
    				["white"],
    
    vas's avatar
    vas committed
    				["blue-violet"],
    
    deepmurk's avatar
    deepmurk committed
    				["purple"],
    				["dark orchid"],
    				["sea green"],
    				["green-yellow"],
    				["dark blue"],
    
    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"],
    
    vas's avatar
    vas committed
    				["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 EyebrowColorList extends List {
    		constructor() {
    			const pairs = [
    				["no default setting"],
    				["blonde"],
    				["golden"],
    				["platinum blonde"],
    				["strawerry-blonde"],
    				["copper"],
    				["ginger"],
    				["red"],
    				["deep red"],
    				["green"],
    				["blue"],
    				["pink"],
    				["dark brown"],
    				["brown"],
    				["auburn"],
    				["burgundy"],
    				["chocolate"],
    				["chestnut"],
    				["hazel"],
    
    deepmurk's avatar
    deepmurk committed
    				["jet black"],
    
    				["black"],
    				["grey"],
    				["silver"],
    				["white"],
    				["blue-violet"],
    
    deepmurk's avatar
    deepmurk committed
    				["purple"],
    				["dark orchid"],
    				["sea green"],
    				["green-yellow"],
    				["dark blue"],
    
    				["blazing red"],
    				["neon green"],
    				["neon blue"],
    				["neon pink"]
    			];
    			super("Eyebrow hair color, when present", pairs);
    			this.setValue(current_rule.set.eyebrowHColor);
    			this.onchange = (value) => current_rule.set.eyebrowHColor = value;
    		}
    	}
    
    	class EyebrowStyleList extends List {
    		constructor() {
    			const pairs = [
    				["no default setting"],
    				["shaved"],
    				["straight"],
    				["rounded"],
    				["natural"],
    				["slanted inwards"],
    				["slanted outwards"],
    				["high-arched"],
    				["elongated"],
    				["shortened"],
    				["curved"]
    			];
    			super("Eyebrow style", pairs);
    			this.setValue(current_rule.set.eyebrowHStyle);
    			this.onchange = (value) => current_rule.set.eyebrowHStyle = value;
    		}
    	}
    
    	class EyebrowFullnessList extends List {
    		constructor() {
    			const pairs = [
    				["no default setting"],
    				["pencil-thin"],
    				["thin"],
    				["threaded"],
    				["natural"],
    				["tapered"],
    				["thick"],
    				["bushy"]
    			];
    			super("Eyebrow fullness", pairs);
    			this.setValue(current_rule.set.eyebrowFullness);
    			this.onchange = (value) => current_rule.set.eyebrowFullness = value;
    		}
    	}
    
    
    	class MarkingsList extends List {
    		constructor() {
    			const pairs = [
    				["no default setting"],
    				["remove beauty marks"],
    				["remove birthmarks"],
    				["remove both"]
    			];
    			super("Facial markings", pairs);
    			this.setValue(current_rule.set.markings);
    			this.onchange = (value) => current_rule.set.markings = value;
    		}
    	}
    
    
    klorpa's avatar
    klorpa committed
    	class PubicHairColorList extends List {
    
    vas's avatar
    vas committed
    		constructor() {
    			const pairs = [
    				["no default setting"],
    				["blonde"],
    				["golden"],
    				["platinum blonde"],
    				["strawerry-blonde"],
    				["copper"],
    				["ginger"],
    				["red"],
    
    vas's avatar
    vas committed
    				["green"],
    				["blue"],
    				["pink"],
    				["dark brown"],
    				["brown"],
    				["auburn"],
    				["burgundy"],
    				["chocolate"],
    				["chestnut"],
    				["hazel"],
    
    deepmurk's avatar
    deepmurk committed
    				["jet black"],
    
    vas's avatar
    vas committed
    				["black"],
    				["grey"],
    				["silver"],
    				["white"],
    
    vas's avatar
    vas committed
    				["blue-violet"],
    
    deepmurk's avatar
    deepmurk committed
    				["purple"],
    				["dark orchid"],
    				["sea green"],
    				["green-yellow"],
    				["dark blue"],
    
    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
    	}
    
    
    klorpa's avatar
    klorpa committed
    	class ArmpitHairColorList extends List {
    
    vas's avatar
    vas committed
    		constructor() {
    			const pairs = [
    				["no default setting"],
    				["blonde"],
    				["golden"],
    				["platinum blonde"],
    				["strawberry-blonde"],
    				["copper"],
    				["ginger"],
    				["red"],
    
    vas's avatar
    vas committed
    				["green"],
    				["blue"],
    				["pink"],
    				["dark brown"],
    				["brown"],
    				["auburn"],
    				["burgundry"],
    				["chocolate"],
    				["chestnut"],
    				["hazel"],
    
    deepmurk's avatar
    deepmurk committed
    				["jet black"],
    
    vas's avatar
    vas committed
    				["black"],
    				["grey"],
    				["silver"],
    
    vas's avatar
    vas committed
    				["white"],
    				["blue-violet"],
    
    deepmurk's avatar
    deepmurk committed
    				["purple"],
    				["dark orchid"],
    				["sea green"],
    				["green-yellow"],
    				["dark blue"],
    
    				["blazing red"],
    				["neon green"],
    				["neon blue"],
    				["neon pink"]
    
    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);
    
    			this.onchange = (value) => current_rule.set.nosePiercing = 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 = [
    
    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
    
    
    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"]);
    
    klorpa's avatar
    klorpa committed
    
    
    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"]);
    
    klorpa's avatar
    klorpa committed
    
    
    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
    
    
    ezsh's avatar
    ezsh 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"]);
    
    klorpa's avatar
    klorpa 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"],