Newer
Older
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());
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
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 DickTattooList());
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());
if (V.bellyImplants > 0)
this.appendChild(new BellyImplantList());
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"],
["Fallen nun", "a fallen nuns habit"],
["Halter top", "a halter top dress"],
["Hijab and abaya", "a hijab and abaya"],
["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 default collar setting", "no default setting"],
["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"],
["Cowbell", "leather with cowbell"]
];
if (V.seeAge !== 0)
ncollars.push(["Nice retirement counter", "nice retirement counter"]);
const fsncollars = [
["Bowtie collar", "bowtie"],
];
fsncollars.forEach(pair => { if (isItemAccessible(pair[1])) ncollars.push(pair); });
const hcollars = [];
setup.harshCollars.forEach(item => {
else hcollars.push([item.name, item.value]);
});
this.setValue(current_rule.set.collar);
this.onchange = (value) => current_rule.set.collar = value;
this.setValue(current_rule.set.shoes);
this.onchange = (value) => current_rule.set.shoes = value;
class CorsetList extends List {
constructor() {
const bellies = [];
setup.bellyAccessories.forEach(acc => {
if (acc.fs === undefined && acc.rs === undefined)
bellies.push([acc.name, acc.value]);
else if (acc.fs === "repopulation" && V.arcologies[0].FSRepopulationFocus !== "unset")
bellies.push([acc.name + " (FS)", acc.value]);
else if (acc.rs === "boughtBelly" && V.clothesBoughtBelly === 1)
bellies.push([acc.name + " (Purchased)", acc.value]);
});
super("Corsetage", bellies);
this.onchange = (value) => current_rule.set.bellyAccessory = value;
class LeggingsList extends List {
constructor() {
const items = [
["No default setting"],
["None"],
["Short stockings"],
["Long stockings"],
];
super("Leg accessory", items);
this.setValue(current_rule.set.legAccessory);
this.onchange = (value) => current_rule.set.legAccessory = value;
}
}
class VagChastityList extends List {
constructor() {
const chaste = [
["No default setting", "no default setting"],
["None", 0],
["Chastity", 1],
];
super("Vaginal chastity", chaste);
this.setValue(current_rule.set.chastityVagina);
this.onchange = (value) => current_rule.set.chastityVagina = value;
}
}
class VagAccVirginsList extends List {
constructor() {
const accs = [];
setup.vaginalAccessories.forEach(acc => {
if (acc.fs === undefined && acc.rs === undefined)
accs.push([acc.name, acc.value]);
else if (acc.rs === "buyBigDildos" && V.toysBoughtDildos === 1)
accs.push([acc.name + " (Purchased)", acc.value]);
});
this.setValue(current_rule.set.virginAccessory);
this.onchange = (value) => current_rule.set.virginAccessory = value;
class VagAccAVirginsList extends List {
constructor() {
const accs = [];
setup.vaginalAccessories.forEach(acc => {
if (acc.fs === undefined && acc.rs === undefined)
accs.push([acc.name, acc.value]);
else if (acc.rs === "buyBigDildos" && V.toysBoughtDildos === 1)
accs.push([acc.name + " (Purchased)", acc.value]);
});
this.setValue(current_rule.set.aVirginAccessory);
this.onchange = (value) => current_rule.set.aVirginAccessory = value;
class VagAccOtherList extends List {
constructor() {
const accs = [];
setup.vaginalAccessories.forEach(acc => {
if (acc.fs === undefined && acc.rs === undefined)
accs.push([acc.name, acc.value]);
else if (acc.rs === "buyBigDildos" && V.toysBoughtDildos === 1)
accs.push([acc.name + " (Purchased)", acc.value]);
});
this.setValue(current_rule.set.vaginalAccessory);
this.onchange = (value) => current_rule.set.vaginalAccessory = value;
class DickChastityList extends List {
constructor() {
const items = [
["No default setting", "no default setting"],
["None", 0],
["Chastity cage", 1],
];
super("Penile chastity", items);
this.setValue(current_rule.set.chastityPenis);
this.onchange = (value) => current_rule.set.chastityPenis = value;
}
}
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;
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 {
constructor() {
const items = [
["No default setting", "no default setting"],
["None", 0],
["Chastity", 1],
];
super("Anal chastity", items);
this.setValue(current_rule.set.chastityAnus);
this.onchange = (value) => current_rule.set.chastityAnus = value;
}
}
class ButtplugsVirginsList extends List {
constructor() {
const accs = [];
setup.buttplugs.forEach(acc => {
if (acc.fs === undefined && acc.rs === undefined)
accs.push([acc.name, acc.value]);
else if (acc.rs === "buyBigPlugs" && V.toysBoughtButtPlugs === 1)
accs.push([acc.name + " (Purchased)", acc.value]);
});
this.setValue(current_rule.set.aVirginButtplug);
this.onchange = (value) => current_rule.set.aVirginButtplug = value;
class ButtplugsOtherList extends List {
constructor() {
const accs = [];
setup.buttplugs.forEach(acc => {
if (acc.fs === undefined && acc.rs === undefined)
accs.push([acc.name, acc.value]);
else if (acc.rs === "buyBigPlugs" && V.toysBoughtButtPlugs === 1)
accs.push([acc.name + " (Purchased)", acc.value]);
});
this.setValue(current_rule.set.buttplug);
this.onchange = (value) => current_rule.set.buttplug = value;
class ButtplugAttachmentsList extends List {
constructor() {
const accs = [];
setup.buttplugAttachments.forEach(acc => {
if (acc.fs === undefined && acc.rs === undefined)
accs.push([acc.name, acc.value]);
else if (acc.rs === "buyTails" && V.toysBoughtButtPlugTails === 1)
accs.push([acc.name + " (Purchased)", acc.value]);
});
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 List {
constructor() {
const pairs = [
["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);
this.setValue(current_rule.set.bellyImplantVol);
this.onchange = (value) => current_rule.set.bellyImplantVol = value;
}
}
class AutosurgerySwitch extends List {
constructor() {
const pairs = [
["Activate", 1],
["Off", 0],
];
super("Assistant-applied implants (Autosurgery global switch)", pairs);
this.setValue(current_rule.set.autoSurgery);
this.onchange = (value) => current_rule.set.autoSurgery = value;
class HyperGrowthSwitch extends List {
constructor() {
const pairs = [
["No", 0],
["Yes", 1],
];
super("Use hyper growth drugs", pairs, true);
this.setValue(current_rule.set.hyper_drugs);
this.onchange = (value) => current_rule.set.hyper_drugs = value;
}
}
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
class GrowthList extends Options {
constructor() {
super();
this.sublists = [];
const pairs = [
["No default setting", () => 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: ";
nds() {
[this.breasts, this.butts, this.lips, this.dicks, this.balls].forEach(i => {
i.setValue("no default change");
i.propagateChange();
});
}
girlish() {
this.breasts.setValue(350);
this.butts.setValue(2);
this.lips.setValue(25);
if (this.dicks) this.dicks.setValue(0);
if (this.balls) this.balls.setValue(0);
this.sublists.forEach(i => i.propagateChange());
}
stacked() {
this.breasts.setValue(1000);
this.butts.setValue(4);
this.lips.setValue(25);
if (this.dicks) this.dicks.setValue(4);
if (this.balls) this.balls.setValue(4);
this.sublists.forEach(i => i.propagateChange());
}
huge() {
this.breasts.setValue(9000);
this.butts.setValue(10);
this.lips.setValue(45);
if (this.dicks) this.dicks.setValue(6);
if (this.balls) this.balls.setValue(6);
this.sublists.forEach(i => i.propagateChange());
}
if (this.dicks) this.dicks.setValue(30);
if (this.balls) this.balls.setValue(125);
none() {
this.sublists.forEach(i => {
i.setValue(0);
i.propagateChange();
});
}
class BreastGrowthList extends List {
constructor() {
const pairs = [
["No default setting", "no default setting"],
["Monstrous", 9000],
["Unlimited", 48000],
["None", 0]
];
super("Breasts", pairs, true);
this.setValue(current_rule.set.growth_boobs);
this.onchange = (value) => current_rule.set.growth_boobs = value;
class ButtGrowthList extends List {
constructor() {
const pairs = [
["No default setting", "no default setting"],
["Cute", 2],
["Big", 4],
["Huge", 6],
this.setValue(current_rule.set.growth_butt);
this.onchange = (value) => current_rule.set.growth_butt = value;
class LipGrowthList extends List {
constructor() {
const pairs = [
["No default setting", "no default setting"],
["Plump", 25],
["Beestung", 45],
["Facepussy", 100],
["None", 0]
];
super("Lips", pairs, true);
this.setValue(current_rule.set.growth_lips);
this.onchange = (value) => current_rule.set.growth_lips = value;
class DickGrowthList extends List {
constructor() {
const pairs = [
["No default setting", "no default setting"],
["Above average", 4],
["Pornstar", 6],
this.setValue(current_rule.set.growth_dick);
this.onchange = (value) => current_rule.set.growth_dick = value;
class BallGrowthList extends List {
constructor() {
const pairs = [
["No default setting", "no default setting"],
this.setValue(current_rule.set.growth_balls);
this.onchange = (value) => current_rule.set.growth_balls = value;
class CurrativesList extends List {
constructor() {
const pairs = [
["No default setting", "no default setting"],
this.setValue(current_rule.set.curatives);
this.onchange = (value) => current_rule.set.curatives = value;
class AphrodisiacList extends List {
constructor() {
const pairs = [
["No default setting", "no default setting"],
["None", 0],
["Standard", 1],
["Extreme", 2],
["Anaphrodisiacs", -1]
this.setValue(current_rule.set.aphrodisiacs);
this.onchange = (value) => current_rule.set.aphrodisiacs = value;
this.setValue(current_rule.set.preg);
this.onchange = (value) => current_rule.set.preg = value;
class AbortionList extends List {
constructor() {
const pairs = [
["No default setting", "no default setting"],
["Abort all", "all"],
];
if (V.pregnancyMonitoringUpgrade === 1 && V.geneticMappingUpgrade === 1)
pairs.push(["Abort boys", "male"]);
pairs.push(["Abort girls", "female"]);
super("Pregnancy termination", pairs);
this.setValue(current_rule.set.abortion);
this.onchange = (value) => current_rule.set.abortion = value;
}
}
class PregDrugsList extends List {
constructor() {
const pairs = [
this.setValue(current_rule.set.pregSpeed);
this.onchange = (value) => current_rule.set.pregSpeed = value;
class FemaleHormonesList extends List {
constructor() {
const pairs = [
["No default setting", "no default setting"],
["Intensive Female", 2],
["Female", 1],
["None", 0],
["Male", -1],
["Intensive Male", -2]
this.setValue(current_rule.set.XX);
this.onchange = (value) => current_rule.set.XX = value;
class GeldingHormonesList extends List {
constructor() {
const pairs = [
["No default setting", "no default setting"],
["Intensive Female", 2],
["Female", 1],
["None", 0],
["Male", -1],
["Intensive Male", -2]
this.setValue(current_rule.set.gelding);
this.onchange = (value) => current_rule.set.gelding = value;
class ShemaleHormonesList extends List {
constructor() {
const pairs = [
["No default setting", "no default setting"],
["Intensive Female", 2],
["Female", 1],
["None", 0],
["Male", -1],
this.setValue(current_rule.set.XY);
this.onchange = (value) => current_rule.set.XY = value;
const drugs = [
["No default setting", "no default setting"],
["None", "none"],
["Fertility drugs", "fertility drugs"],
["Psychosuppressants", "psychosuppressants"],
["Steroids", "steroids"],
["Natural hormone enhancers", "hormone enhancers"],
["Hormone blockers", "hormone blockers"],
["breast injections"],
["intensive breast injections"],
["butt injections"],
["intensive butt injections"],
["lip injections"],
["penis enhancement"],
["intensive penis enhancement"],
["testicle enhancement"],
["intensive testicle enhancement"],
];
if (V.growthStim === 1)
drugs.push(["Growth Stimulants (Research)", "growth stimulants"]);
if (V.precociousPuberty === 1 && V.pubertyHormones) {
drugs.push(["Female hormone injections (Research)", "female hormone injections"]);
drugs.push(["Male hormone injections (Research)", "male hormone injections"]);
}
if (V.purchasedSagBGone === 1)
drugs.push(["Sag-B-gone (Product)", "sag-B-gone"]);
if (V.arcologies[0].FSSlimnessEnthusiastResearch === 1) {
drugs.push(["breast redistributors"]);
drugs.push(["butt redistributors"]);
drugs.push(["lip atrophiers"]);
drugs.push(["penis atrophiers"]);
drugs.push(["testicle atrophiers"]);
drugs.push(["clitoris atrophiers"]);
drugs.push(["labia atrophiers"]);
}
if (V.arcologies[0].FSAssetExpansionistResearch === 1) {
drugs.push(["hyper breast injections"]);
drugs.push(["hyper butt injections"]);
drugs.push(["hyper penis enhancement"]);
drugs.push(["hyper testicle enhancement"]);
}
drugs.push(["Anti-aging cream (FS)", "anti-aging cream"]);
if (V.seeHyperPreg === 1 && V.superFertilityDrugs === 1)
drugs.push(["Super fertility drugs", "super fertility drugs"]);
super("Other drugs", drugs);
this.setValue(current_rule.set.drug);
this.onchange = (value) => current_rule.set.drug = value;
class EnemaList extends List {
constructor() {
const enemas = [
["No default setting", "no default setting"],
["None", "none"],
["Water", "water"]
];
if (V.medicalEnema === 1) {
enemas.push(
["Aphrodisiac", "aphrodisiac"],
["Curative", "curative"],
["Tightener", "tightener"]
);
}
super("Enemas", enemas);
this.setValue(current_rule.set.inflationType);
this.onchange = (value) => current_rule.set.inflationType = value;
}
}
class DietList extends List {
constructor() {
const diets = [
["no default setting", "no default setting"],
["Fix fat and skinny slaves", "attractive"],
["Curvy", 30],
this.setValue(current_rule.set.diet);
this.onchange = (value) => current_rule.set.diet = value;
class DietGrowthList extends List {
constructor() {
const pairs = [
["On", 1],
["Off", 0]
];
super("Diet support for growth drugs", pairs);
this.setValue(current_rule.set.dietGrowthSupport);
this.onchange = (value) => current_rule.set.dietGrowthSupport = value;
class DietBaseList extends List {
constructor() {
// TODO: better data structure?
const pairs = [
["No default setting", {cum: "no default setting", milk: "no default setting"}],
["Normal Diet", {cum: 0, milk: 0}],
["Cum Added", {cum: 1, milk: 0}],
["Milk Added", {cum: 0, milk: 1}],
["Cum & Milk Added", {cum: 1, milk: 1}],
["Cum-Based", {cum: 2, milk: 0}],
["Milk-Based", {cum: 0, milk: 2}],
];
super("Diet base", pairs);
this.setValue(this.value2string(current_rule.set.dietCum, current_rule.set.dietMilk));
current_rule.set.dietCum = value.cum;
current_rule.set.dietMilk = value.milk;
this.setValue(this.value2string(current_rule.set.dietCum, current_rule.set.dietMilk));
value2string(cum, milk) {
return `cum: ${cum}, milk: ${milk}`;
}
class DietSolidFoodList extends List {
constructor() {
const pairs = [
["No default setting", "no default setting"],
["Permitted", 0],
["Forbidden", 1],
];
super("Solid food access", pairs);
this.setValue(current_rule.set.onDiet);
this.onchange = (value) => current_rule.set.onDiet = value;
}
}
class MuscleList extends List {
constructor() {
const pairs = [
["No default setting", "no default setting"],
["None", 0],
["Toned", 20],
["Ripped", 50],
["Massive", 100],
["Weak", -20]
this.setValue(current_rule.set.muscles);
this.onchange = (value) => current_rule.set.muscles = value;
class BraceList extends List {
constructor() {
const pairs = [
["No default setting", "no default setting"],
["None", "none"],
["Straighten", "straighten"],
["Universal", "universal"]
];
super("Braces", pairs);
this.setValue(current_rule.set.teeth);
this.onchange = (value) => current_rule.set.teeth = value;
class LivingStandardList extends List {
constructor() {
const pairs = [
["No default setting", "no default setting"],
["Luxurious", "luxurious"],
["Normal", "normal"],
["Spare", "spare"]
];
super("Living standard", pairs);
this.setValue(current_rule.set.livingRules);
this.onchange = (value) => current_rule.set.livingRules = value;
class PunishmentList extends List {
constructor() {
const pairs = [
["No default setting", "no default setting"],
["Confinement", "confinement"],
["Whipping", "whipping"],
["Chastity", "chastity"],
["Situational", "situational"]
];
super("Typical punishment", pairs);
this.setValue(current_rule.set.standardPunishment);
this.onchange = (value) => current_rule.set.standardPunishment = value;