Newer
Older
current_rule.condition.data.value[0] = this.parse(value);
this.min.value = `${current_rule.condition.data.value[0]}`;
current_rule.condition.data.value[1] = this.parse(value);
this.max.value = `${current_rule.condition.data.value[1]}`;
return ({
"devotion": "Very Hateful: (-∞, -95), Hateful: [-95, -50), Resistant: [-50, -20), Ambivalent: [-20, 20], Accepting: (20, 50], Devoted: (50, 95], Worshipful: (95, ∞)",
"trust": "Extremely terrified: (-∞, -95), Terrified: [-95, -50), Frightened: [-50, -20), Fearful: [-20, 20], Careful: (20, 50], Trusting: (50, 95], Total trust: (95, ∞)",
"health": "Death: (-∞, -100), Near Death: [-100, -90), Extremely Unhealthy: [-90, -50), Unhealthy: [-50, -20), Healthy: [-20, 20], Very Healthy: (20, 50], Extremely Healthy: (50, 90], Unnaturally Healthy: (90, ∞)",
"energy": "Frigid: (-∞, 20], Poor: (20, 40], Average: (40, 60], Powerful: (60, 80], Sex Addict: (80, 100), Nympho: 100",
"weight": "Emaciated: (-∞, -95), Skinny: [-95, -30), Thin: [-30, -10), Average: [-10, 10], Plush: (10, 30], Fat: (30, 95], Overweight: (95, ∞)",
"lactation": "None: 0, 1: Natural, 2: Lactation implant",
"preg": "Barren: -2, On contraceptives: -1, Not pregnant: 0, Pregnancy weeks: [1, ∞)",
"pregType": "Fetus count, known only after the 10th week of pregnancy",
"bellyImplant": "Volume in CCs. None: -1",
"belly": "Volume in CCs, any source",
"intelligenceImplant": "Education level. 0: uneducated, 15: educated, 30: advanced education, (0, 15): incomplete education.",
"intelligence": "From moronic to brilliant: [-100, 100]",
"accent": "No accent: 0, Nice accent: 1, Bad accent: 2, Can't speak language: 3 and above",
"waist": "Masculine waist: (95, ∞), Ugly waist: (40, 95], Unattractive waist: (10, 40], Average waist: [-10, 10], Feminine waist: [-40, -10), Wasp waist: [-95, -40), Absurdly narrow: (-∞, -95)",
class ItemEditor extends Element {
render(fn, data) {
const elem = document.createElement("div");
const input = document.createElement("input");
input.setAttribute("type", "text");
input.value = JSON.stringify(data.value);
input.onkeypress = e => { if (returnP(e)) { this.setValue(input); } };
this.input = input;
elem.appendChild(input);
const infobar = document.createElement("div");
infobar.innerHTML = this.info(data.attribute);
elem.appendChild(infobar);
return elem;
}
info(attribute) {
"fetish": "buttslut, cumslut, masochist, sadist, dom, submissive, boobs, pregnancy, none (AKA vanilla)",
setValue(input) {
try {
const arr = JSON.parse(input.value);
current_rule.condition.data.value = arr;
input.value = JSON.stringify(arr);
} catch (e) {
alert(e);
}
}
}
const items = ["Classes", "Confined", "Fucktoy", "Gloryhole", "House Servant", "Milked", "Public Servant", "Rest", "Subordinate Slave", "Whore"];
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
if (V.HGSuite > 0) {
items.push("Head Girl Suite");
}
if (V.brothel > 0) {
items.push("Brothel");
}
if (V.club > 0) {
items.push("Club");
}
if (V.arcade > 0) {
items.push("Arcade");
}
if (V.dairy > 0) {
items.push("Dairy");
}
if (V.servantsQuarters > 0) {
items.push("Servant Quarters");
}
if (V.masterSuite > 0) {
items.push("Master Suite");
}
if (V.schoolroom > 0) {
items.push("Schoolroom");
}
if (V.spa > 0) {
items.push("Spa");
}
if (V.nursery > 0) {
items.push("Nursery");
}
if (V.clinic > 0) {
items.push("Clinic");
}
if (V.cellblock > 0) {
items.push("Cellblock");
}
i => this.appendChild(new ButtonItem(i, this.getAttribute(i), current_rule.condition.assignment.includes(this.getAttribute(i)))));
current_rule.condition.assignment = this.getSelection();
}
getAttribute(what) {
return {
"Rest": "rest",
"Fucktoy": "please you",
"Subordinate Slave": "be a subordinate slave",
"House Servant": "be a servant",
"Confined": "stay confined",
"Whore": "whore",
"Public Servant": "serve the public",
"Classes": "take classes",
"Milked": "get milked",
"Gloryhole": "work a glory hole",
"Head Girl Suite": "live with your Head Girl",
"Brothel": "work in the brothel",
"Club": "serve in the club",
"Arcade": "be confined in the arcade",
"Dairy": "work in the dairy",
"Servant Quarters": "work as a servant",
"Master Suite": "serve in the master suite",
"Schoolroom": "learn in the schoolroom",
"Spa": "rest in the spa",
"Clinic": "get treatment in the clinic",
"Cellblock": "be confined in the cellblock",
class SpecialInclusion extends List {
["include", -1],
["exclude", 0],
["only", 1]
super("Special slaves", items, true, false, true);
this.setValue(current_rule.condition.specialSlaves);
this.onchange = (value) => current_rule.condition.specialSlaves = value;
}
}
class SpecificInclusionExclusion extends Options {
constructor() {
this.appendChild(new OptionsItem("Limit to specific slaves", () => this.show_slave_selection()));
this.appendChild(new OptionsItem("Exclude specific slaves", () => this.show_slave_exclusion()));
this.subwidget = null;
}
show_slave_selection() {
this.subwidget = new SlaveSelection();
this.appendChild(this.subwidget);
}
show_slave_exclusion() {
this.subwidget = new SlaveExclusion();
this.appendChild(this.subwidget);
}
}
class SlaveSelection extends ButtonList {
constructor() {
super("Include specific slaves");
V.slaves.forEach(slave => this.appendChild(new ButtonItem(
[slave.slaveName, slave.slaveSurname].join(" "),
slave.ID,
current_rule.condition.selectedSlaves.includes(slave.ID))));
}
onchange() {
current_rule.condition.selectedSlaves = this.getSelection();
}
}
class SlaveExclusion extends ButtonList {
constructor() {
super("Exclude specific slaves");
V.slaves.forEach(slave => this.appendChild(new ButtonItem(
[slave.slaveName, slave.slaveSurname].join(" "),
slave.ID,
current_rule.condition.excludedSlaves.includes(slave.ID))));
}
onchange() {
current_rule.condition.excludedSlaves = this.getSelection();
}
// parent section for effect editing
class EffectEditor extends Element {
constructor() {
this.appendChild(new AppearanceSection(true));
this.appendChild(new CosmeticSection(true));
this.appendChild(new BodyModSection(true));
this.appendChild(new AutosurgerySection(true));
this.appendChild(new RegimenSection(true));
this.appendChild(new BehaviourSection(true));
this.appendChild(new OtherSection(true));
constructor(isCollapsed) {
super("Appearance Settings", isCollapsed);
this.appendChild(new ClothesList());
this.appendChild(new CollarList());
this.appendChild(new ShoeList());
this.appendChild(new CorsetList());
this.appendChild(new VagChastityList());
this.appendChild(new VagAccVirginsList());
this.appendChild(new VagAccAVirginsList());
this.appendChild(new VagAccOtherList());
this.appendChild(new DickChastityList());
this.appendChild(new DickAccVirginsList());
this.appendChild(new DickAccOtherList());
this.appendChild(new AnalChastityList());
this.appendChild(new ButtplugsVirginsList());
this.appendChild(new ButtplugsOtherList());
this.appendChild(new ButtplugAttachmentsList());
constructor(isCollapsed) {
super("Physical Regimen Settings", isCollapsed);
if (V.arcologies[0].FSAssetExpansionistResearch === 1)
this.appendChild(new GrowthList());
this.appendChild(new CurrativesList());
this.appendChild(new AphrodisiacList());
this.appendChild(new ContraceptiveList());
this.appendChild(new FemaleHormonesList());
this.appendChild(new ShemaleHormonesList());
this.appendChild(new GeldingHormonesList());
this.appendChild(new OtherDrugsList());
if (V.enema === 1) {
this.appendChild(new EnemaList());
}
this.appendChild(new DietList());
this.appendChild(new DietGrowthList());
this.appendChild(new DietBaseList());
if (V.arcologies[0].FSHedonisticDecadenceResearch === 1) {
this.appendChild(new DietSolidFoodList());
}
this.appendChild(new MuscleList());
this.appendChild(new BraceList());
constructor(isCollapsed) {
super("Behavior Settings", isCollapsed);
this.appendChild(new AutomaticAssignmentList());
this.appendChild(new LivingStandardList());
this.appendChild(new PunishmentList());
this.appendChild(new RewardList());
this.appendChild(new ReleaseList());
this.appendChild(new SmartFetishList());
this.appendChild(new SmartXYAttractionList());
this.appendChild(new SmartXXAttractionList());
this.appendChild(new SmartEnergyList());
this.appendChild(new SpeechList());
this.appendChild(new RelationshipList());
if (V.studio === 1) {
this.appendChild(new PornBroadcastStatus());
constructor(isCollapsed) {
super("Other Settings", isCollapsed);
this.appendChild(new LabelRemoveList());
constructor(isCollapsed) {
super("Cosmetic Settings", isCollapsed);
this.appendChild(new EyewearList());
this.appendChild(new LensesList());
this.appendChild(new MakeupList());
this.appendChild(new NailsList());
this.appendChild(new HairLengthList());
this.appendChild(new EyebrowColorList());
this.appendChild(new EyebrowStyleList());
this.appendChild(new EyebrowFullnessList());
this.appendChild(new MarkingsList());
constructor(isCollapsed) {
super("Body Mod Settings", isCollapsed);
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
this.appendChild(new EarPiercingList());
this.appendChild(new NosePiercingList());
this.appendChild(new EyebrowPiercingList());
this.appendChild(new NavelPiercingList());
this.appendChild(new NipplePiercingList());
this.appendChild(new AreolaPiercingList());
this.appendChild(new LipPiercingList());
this.appendChild(new TonguePiercingList());
this.appendChild(new ClitPiercingList());
this.appendChild(new LabiaPiercingList());
this.appendChild(new ShaftPiercingList());
this.appendChild(new PerineumPiercingList());
this.appendChild(new CorsetPiercingList());
this.appendChild(new AutoBrandingList());
this.appendChild(new BrandingLocationList());
this.appendChild(new BrandDesignList());
this.appendChild(new FaceTattooList());
this.appendChild(new ShoulderTattooList());
this.appendChild(new ChestTattooList());
this.appendChild(new ArmTattooList());
this.appendChild(new UpperBackTattooList());
this.appendChild(new LowerBackTattooList());
this.appendChild(new AbdomenTattooList());
this.appendChild(new ButtockTattooList());
this.appendChild(new AnalTattooList());
this.appendChild(new LegTattooList());
this.appendChild(new AutosurgerySwitch());
this.appendChild(new SmellSurgeryList());
this.appendChild(new TasteSurgeryList());
this.appendChild(new CosmeticSurgeryList());
this.appendChild(new LipSurgeryList());
this.appendChild(new ButtSurgeryList());
this.appendChild(new BreastSurgeryList());
this.appendChild(new TighteningSurgeryList());
this.appendChild(new BodyHairSurgeryList());
this.appendChild(new HairSurgeryList());
class ClothesList extends List {
constructor() {
const items = [
["Select her own outfit", "choosing her own clothes"]
];
super("Clothes", items);
const nclothes = [
["Bangles", "slutty jewelry"],
["Bodysuit", "a comfortable bodysuit"],
["Bra", "a bra"],
["Button-up shirt and panties", "a button-up shirt and panties"],
["Button-up shirt", "a button-up shirt"],
["Clubslut netting", "clubslut netting"],
["Cutoffs and a t-shirt", "cutoffs and a t-shirt"],
["Leather pants and a tube top", "leather pants and a tube top"],
["Leather pants and pasties", "leather pants and pasties"],
["Leather pants", "leather pants"],
["Maid (nice)", "a nice maid outfit"],
["Maid (slutty)", "a slutty maid outfit"],
["Mini dress", "a mini dress"],
["Nice lingerie", "attractive lingerie"],
["Nurse (nice)", "a nice nurse outfit"],
["Over-sized t-shirt and boyshorts", "an oversized t-shirt and boyshorts"],
["Over-sized t-shirt", "an oversized t-shirt"],
["Panties", "panties"],
["Schoolgirl", "a schoolgirl outfit"],
["Slave gown", "a slave gown"],
["Slutty outfit", "a slutty outfit"],
["Spats and tank top", "spats and a tank top"],
["Sport shorts and a sports bra", "sport shorts and a sports bra"],
["Suit (slutty)", "slutty business attire"],
["Sweater and cutoffs", "a sweater and cutoffs"],
["Sweater and panties", "a sweater and panties"],
["Sweater", "a sweater"],
["T-shirt", "a t-shirt"],
["Tank-top and panties", "a tank-top and panties"],
["Tank-top", "a tank-top"],
["Thong", "a thong"],
["Tube top and thong", "a tube top and thong"],
["Tube top", "a tube top"]
const spclothes = [
["Battlearmor", "battlearmor"],
["Biyelgee costume", "a biyelgee costume"],
["Burkini", "a burkini"],
["Burqa", "a burqa"],
["Dirndl", "a dirndl"],
["Gothic Lolita Dress", "a gothic lolita dress"],
["Hanbok", "a hanbok"],
["Hijab and blouse", "a hijab and blouse"],
["Lederhosen", "lederhosen"],
["Mounty outfit", "a mounty outfit"],
["Military uniform", "a military uniform"],
["Niqab and abaya", "a niqab and abaya"],
["Police Uniform", "a police uniform"],
["Pony outfit (nice)", "a nice pony outfit"],
["Pony outfit (slutty)", "a slutty pony outfit"],
["Santa dress", "a Santa dress"],
["Schutzstaffel uniform (nice)", "a schutzstaffel uniform"],
["Schutzstaffel uniform (slutty)", "a slutty schutzstaffel uniform"],
["Striped Bra", "a striped bra"],
["Striped Panties", "striped panties"],
["Striped Underwear", "striped underwear"],
const fsnclothes = [
["Body oil (FS)", "body oil"],
["Bunny outfit (FS)", "a bunny outfit"],
["Chattel habit (FS)", "a chattel habit"],
["Conservative clothing (FS)", "conservative clothing"],
["Harem gauze (FS)", "harem gauze"],
["Huipil (FS)", "a huipil"],
["Kimono (FS)", "a kimono"],
["Maternity dress (FS)", "a maternity dress"],
["Maternity lingerie (FS)", "attractive lingerie for a pregnant woman"],
["Qipao (nice) (FS)", "a long qipao"],
["Qipao (slutty) (FS)", "a slutty qipao"],
["Stretch pants and a crop-top (FS)", "stretch pants and a crop-top"],
["Toga (FS)", "a toga"],
["Western clothing (FS)", "Western clothing"],
];
spclothes.forEach(pair => { if (isItemAccessible(pair[1])) { nclothes.push(pair); } });
fsnclothes.forEach(pair => { if (isItemAccessible(pair[1])) { nclothes.push(pair); } });
this.appendChild(nice);
const hclothes = [
["Nude", "no clothing"],
["Penitent nun", "a penitent nuns habit"],
["Restrictive latex", "restrictive latex"],
["Shibari ropes", "shibari ropes"],
["Uncomfortable straps", "uncomfortable straps"]
];
const fshclothes = [
["Chains (FS)", "chains"],
];
fshclothes.forEach(pair => { if (isItemAccessible(pair[1])) { hclothes.push(pair); } });
}
}
class CollarList extends List {
constructor() {
const items = [
["No collar", "none"],
];
super("Collar", items);
const ncollars = [
["Stylish leather", "stylish leather"],
["Satin choker", "satin choker"],
["Silken Ribbon", "silk ribbon"],
["Heavy Gold", "heavy gold"],
["Pretty jewelry", "pretty jewelry"],
if (V.seeAge !== 0) { ncollars.push(["Nice retirement counter", "nice retirement counter"]); }
fsncollars.forEach(pair => { if (isItemAccessible(pair[1])) { ncollars.push(pair); } });
const hcollars = [];
if (item.fs === "seeAge" && V.seeAge === 0) {
return;
} else if (item.fs === "seePreg" && V.seePreg === 0) {
return;
} else if (item.rs === "buyGag" && V.toysBoughtGags !== 1) {
return;
this.setValue(current_rule.set.collar);
this.onchange = (value) => current_rule.set.collar = value;
class ShoeList extends ListSelector {
this.setValue(current_rule.set.shoes);
this.onchange = (value) => current_rule.set.shoes = value;
class CorsetList extends ListSelector {
} else if (acc.fs === "repopulation" && V.arcologies[0].FSRepopulationFocus !== "unset") {
} else if (acc.rs === "boughtBelly" && V.clothesBoughtBelly === 1) {
this.onchange = (value) => current_rule.set.bellyAccessory = value;
["none"],
["short stockings"],
["long stockings"],
super("Leg accessory", items, true, false, true);
this.setValue(current_rule.set.legAccessory);
this.onchange = (value) => current_rule.set.legAccessory = value;
}
}
class VagChastityList extends List {
super("Vaginal chastity", chaste, true, false, true);
this.setValue(current_rule.set.chastityVagina);
this.onchange = (value) => current_rule.set.chastityVagina = value;
}
class VagAccVirginsList extends ListSelector {
} else if (acc.rs === "buyBigDildos" && V.toysBoughtDildos === 1) {
this.setValue(current_rule.set.virginAccessory);
this.onchange = (value) => current_rule.set.virginAccessory = value;
class VagAccAVirginsList extends ListSelector {
} else if (acc.rs === "buyBigDildos" && V.toysBoughtDildos === 1) {
this.setValue(current_rule.set.aVirginAccessory);
this.onchange = (value) => current_rule.set.aVirginAccessory = value;
class VagAccOtherList extends ListSelector {
} else if (acc.rs === "buyBigDildos" && V.toysBoughtDildos === 1) {
this.setValue(current_rule.set.vaginalAccessory);
this.onchange = (value) => current_rule.set.vaginalAccessory = value;
class VaginalAttachmentsList extends ListSelector {
} else if (acc.rs === "buyVaginalAttachments" && V.toysBoughtVaginalAttachments === 1) {
super("Vaginal attachments for slaves with vaginal accessories", accs);
this.setValue(current_rule.set.vaginalAttachment);
this.onchange = (value) => current_rule.set.vaginalAttachment = value;
}
class DickChastityList extends List {
super("Penile chastity", items, true, false, true);
this.setValue(current_rule.set.chastityPenis);
this.onchange = (value) => current_rule.set.chastityPenis = value;
}
class DickAccVirginsList extends ListSelector {
super("Dick accessories for anal virgins", setup.dickAccessories.map(i => [i.name, i.value]));
this.setValue(current_rule.set.aVirginDickAccessory);
this.onchange = (value) => current_rule.set.aVirginDickAccessory = value;
class DickAccOtherList extends ListSelector {
super("Dick accessories for other slaves", setup.dickAccessories.map(i => [i.name, i.value]));
this.setValue(current_rule.set.dickAccessory);
this.onchange = (value) => current_rule.set.dickAccessory = value;
class AnalChastityList extends List {
super("Anal chastity", items, true, false, true);
this.setValue(current_rule.set.chastityAnus);
this.onchange = (value) => current_rule.set.chastityAnus = value;
}
class ButtplugsVirginsList extends ListSelector {
} else if (acc.rs === "buyBigPlugs" && V.toysBoughtButtPlugs === 1) {
this.setValue(current_rule.set.aVirginButtplug);
this.onchange = (value) => current_rule.set.aVirginButtplug = value;
class ButtplugsOtherList extends ListSelector {
} else if (acc.rs === "buyBigPlugs" && V.toysBoughtButtPlugs === 1) {
this.setValue(current_rule.set.buttplug);
this.onchange = (value) => current_rule.set.buttplug = value;
class ButtplugAttachmentsList extends ListSelector {
constructor() {
const accs = [];
} else if (acc.rs === "buyTails" && V.toysBoughtButtPlugTails === 1) {
});
super("Buttplug attachments for slaves with buttplugs", accs);
this.setValue(current_rule.set.buttplugAttachment);
this.onchange = (value) => current_rule.set.buttplugAttachment = value;
}
}
class ImplantVolumeList extends ListSelector {
["no changes", -1],
["empty implant", 0],
["early pregnancy", 1500],
["second trimester pregnancy", 5000],
["full-term pregnancy", 15000],
["full-term with twins", 30000],
["full-term with triplets", 45000],
["full-term with quadruplets", 60000],
["full-term with quintuplets", 75000],
["full-term with sextuplets", 90000],
["full-term with septuplets", 105000],
["full-term with octuplets", 120000]
super("Belly implant target volume (if present)", pairs, false);
this.setValue(current_rule.set.bellyImplantVol);
this.onchange = (value) => current_rule.set.bellyImplantVol = value;
class AutosurgerySwitch extends BooleanSwitch {
super("Assistant-applied implants (Autosurgery global switch)", [0, 1]);
this.setValue(current_rule.set.autoSurgery);
this.onchange = (value) => current_rule.set.autoSurgery = value;
class IntensiveGrowthSwitch extends BooleanSwitch {
super("Use intensive growth drugs for healthy slaves", [0, 1]);
this.setValue(current_rule.set.growth.intensity);
this.onchange = (value) => current_rule.set.growth.intensity = value;
class HyperGrowthSwitch extends BooleanSwitch {
this.setValue(current_rule.set.hyper_drugs);
this.onchange = (value) => current_rule.set.hyper_drugs = value;
}
}
class GrowthList extends Options {
constructor() {
super();
this.sublists = [];
const pairs = [
[capFirstChar(noDefaultSetting.text), () => this.nds()],
["Girlish figure", () => this.girlish()],
["Stacked figure", () => this.stacked()],
["Huge but functional", () => this.huge()],
["Unlimited", () => this.unlimited()],
["None", () => this.none()]
];
pairs.forEach(pair => this.appendChild(new OptionsItem(...pair)));
this.breasts = new BreastGrowthList();
this.butts = new ButtGrowthList();
this.lips = new LipGrowthList();
this.sublists.push(this.breasts, this.butts, this.lips);
if (V.seeDicks > 0 || V.makeDicks > 0) {
this.dicks = new DickGrowthList();
this.balls = new BallGrowthList();
this.sublists.push(this.dicks, this.balls);
}
render() {
const elem = document.createElement("div");
const span = document.createElement("span");
span.innerHTML = "Growth hormone regimes for healthy slaves: ";
[this.breasts, this.butts, this.lips, this.dicks, this.balls].forEach(i => {
this.breasts.setValue(App.RA.makeTarget('<=', 350));
this.butts.setValue(App.RA.makeTarget('<=', 2));
this.lips.setValue(App.RA.makeTarget('<=', 25));
if (this.dicks) this.dicks.setValue(App.RA.makeTarget('==', 0));
if (this.balls) this.balls.setValue(App.RA.makeTarget('==', 0));
this.breasts.setValue(App.RA.makeTarget('>=', 1000));
this.butts.setValue(App.RA.makeTarget('>=', 5));
this.lips.setValue(App.RA.makeTarget('>=', 25));
if (this.dicks) this.dicks.setValue(App.RA.makeTarget('>=', 4));
if (this.balls) this.balls.setValue(App.RA.makeTarget('>=', 4));
this.breasts.setValue(App.RA.makeTarget('>=', 9000));
this.butts.setValue(App.RA.makeTarget('>=', 10));
this.lips.setValue(App.RA.makeTarget('>=', 45));
if (this.dicks) this.dicks.setValue(App.RA.makeTarget('>=', 6));
if (this.balls) this.balls.setValue(App.RA.makeTarget('>=', 6));
this.breasts.setValue(App.RA.makeTarget('>=', 48000));
this.butts.setValue(App.RA.makeTarget('>=', 20));
this.lips.setValue(App.RA.makeTarget('>=', 100));
if (this.dicks) this.dicks.setValue(App.RA.makeTarget('>=', 30));
if (this.balls) this.balls.setValue(App.RA.makeTarget('>=', 125));
["monstrous", 9000],
["unlimited", 48000],
["none", 0]
this.setValue(current_rule.set.growth.boobs);
this.onchange = (value) => current_rule.set.growth.boobs = value;
["cute", 2],
["big", 4],
["huge", 6],
["unlimited", 20],
["none", 0]
this.setValue(current_rule.set.growth.butt);
this.onchange = (value) => current_rule.set.growth.butt = value;
["plump", 25],
["beestung", 45],
["facepussy", 100],
["none", 0]
this.setValue(current_rule.set.growth.lips);
this.onchange = (value) => current_rule.set.growth.lips = value;
["above average", 4],
["pornstar", 6],
["unlimited", 30],
["none", 0]
this.setValue(current_rule.set.growth.dick);
this.onchange = (value) => current_rule.set.growth.dick = value;
["sizable", 4],
["cumslave", 6],
["unlimited", 125],
["none", 0]
this.setValue(current_rule.set.growth.balls);
this.onchange = (value) => current_rule.set.growth.balls = value;