Skip to content
Snippets Groups Projects
rulesAssistantOptions.js 115 KiB
Newer Older
  • Learn to ignore specific revisions
  • vas's avatar
    vas committed
    				["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
    		}
    	}
    
    
    	class ButtSurgeryList extends NumericTargetEditor {
    
    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
    		}
    	}
    
    
    	class BreastSurgeryList extends NumericTargetEditor {
    
    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
    		}
    	}
    
    
    ezsh's avatar
    ezsh committed
    	class TighteningSurgeryList extends RadioSelector {
    
    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
    			];
    
    ezsh's avatar
    ezsh committed
    			super("Orifice Tightening", items, true);
    
    			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
    
    
    ezsh's avatar
    ezsh committed
    	class TummyTuckSurgeryList extends RadioSelector {
    
    lowercasedonkey's avatar
    lowercasedonkey committed
    		constructor() {
    			const items = [
    				["tuck", 1],
    			];
    
    ezsh's avatar
    ezsh committed
    			super("Tummy Tuck", items, true);
    
    			this.setValue(current_rule.set.surgery.tummy);
    			this.onchange = (value) => current_rule.set.surgery.tummy = value;
    
    ezsh's avatar
    ezsh committed
    	class BodyHairSurgeryList extends RadioSelector {
    
    vas's avatar
    vas committed
    		constructor() {
    			const items = [
    
    vas's avatar
    vas committed
    				["keep", 1],
    				["removal", 2],
    			];
    
    ezsh's avatar
    ezsh committed
    			super("Body Hair", items, true);
    
    			this.setValue(current_rule.set.surgery.bodyhair);
    			this.onchange = (value) => current_rule.set.surgery.bodyhair = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    
    ezsh's avatar
    ezsh committed
    	class HairSurgeryList extends RadioSelector {
    
    vas's avatar
    vas committed
    		constructor() {
    			const items = [
    
    vas's avatar
    vas committed
    				["keep", 1],
    				["removal", 2],
    			];
    
    ezsh's avatar
    ezsh committed
    			super("Hair", items, true);
    
    			this.setValue(current_rule.set.surgery.hair);
    			this.onchange = (value) => current_rule.set.surgery.hair = value;
    
    vas's avatar
    vas committed
    		}
    	}
    
    ezsh's avatar
    ezsh committed
    
    
    	class EarShapeSurgeryList extends RadioSelector {
    		constructor() {
    			const items = [
    				["normal ears", 1],
    				["small eflin ears", 2],
    				["long elfin ears", 3],
    				["bovine ears", 4],
    			];
    			super("Ear Shape", items, true);
    			this.setValue(current_rule.set.surgery.earShape);
    			this.onchange = (value) => current_rule.set.surgery.earShape = value;
    		}
    	}
    
    	class HornSurgeryList extends RadioSelector {
    		constructor() {
    			const items = [
    				["none", 1],
    				["curved succubus horns", 2],
    				["backswept horns", 3],
    				["cow horns", 4],
    				["one long oni horn", 5],
    				["two long oni horns", 6],
    				["small horns", 7],
    			];
    			super("Horn Implants", items, true);
    			this.setValue(current_rule.set.surgery.horn);
    			this.onchange = (value) => current_rule.set.surgery.horn = value;
    		}
    	}
    
    	class AutomaticAssignmentList extends ListSelector {
    
    vas's avatar
    vas committed
    		constructor() {
    
    			const items = [];
    			const penthouseDesc = App.Data.Facilities.penthouse;
    			for (const jn in penthouseDesc.jobs) {
    				/** @type {App.Data.JobDesc} */
    				const jd = penthouseDesc.jobs[jn];
    				items.push([jd.position, jd.assignment]);
    			}
    
    			const penthouse = App.Entity.facilities.penthouse;
    			/** @type {Object.<string, App.Entity.Facilities.Facility>} */
    			const facilities = App.Entity.facilities;
    			const facilitiesToSkip = [penthouse, facilities.pit, facilities.armory, facilities.arcologyAgent];
    			for (const fn in facilities) {
    				const f = facilities[fn];
    				if (facilitiesToSkip.includes(f)) { continue; }
    				items.push([f.name, f.job().desc.assignment]);
    
    DCoded's avatar
    DCoded committed
    			}
    
    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
    	}
    
    klorpa's avatar
    klorpa committed
    
    
    	class PitAssignmentList extends ListSelector{
    
    		constructor() {
    
    			const items =[["remove from pit", 0], ["assign to pit", 1]];
    
    klorpa's avatar
    klorpa committed
    			super("Pit assignment", items);
    
    			this.setValue(current_rule.set.pitRules);
    			this.onchange = (value) => current_rule.set.pitRules = value;
    		}
    	}
    
    klorpa's avatar
    klorpa committed
    
    
    ezsh's avatar
    ezsh committed
    	class BellyImplantList extends RadioSelector {
    
    vas's avatar
    vas committed
    		constructor() {
    			const items = [
    				["install", "install"],
    				["remove", "remove"],
    			];
    
    ezsh's avatar
    ezsh committed
    			super("Belly implant", items, true);
    
    			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
    
    
    ezsh's avatar
    ezsh committed
    	class LabelList extends StringEditor {
    
    vas's avatar
    vas committed
    		constructor() {
    
    			super("Custom label(s) (separate by '|')", [], true, true);
    
    vas's avatar
    vas committed
    			this.setValue(current_rule.set.label);
    			this.onchange = (value) => current_rule.set.label = value;
    		}
    	}
    
    ezsh's avatar
    ezsh committed
    	class LabelRemoveList extends StringEditor {
    
    			super("Remove custom label(s) (separate by '|')", [], true, true);
    
    			this.setValue(current_rule.set.removeLabel);
    			this.onchange = (value) => current_rule.set.removeLabel = value;
    		}
    	}
    
    klorpa's avatar
    klorpa committed
    
    
    	class SkinColorList extends ListSelector {
    
    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;
    
    ezsh's avatar
    ezsh committed
    })();