Newer
Older
class NipplePiercingList extends ListSelector {
this.onchange = (value) => current_rule.set.nipplesPiercing = value;
super("Areola studs", pairs, true, false, true);
this.onchange = (value) => current_rule.set.areolaePiercing = value;
class LipPiercingList extends ListSelector {
this.onchange = (value) => current_rule.set.lipsPiercing = value;
class TonguePiercingList extends ListSelector {
this.onchange = (value) => current_rule.set.tonguePiercing = value;
class ClitPiercingList extends ListSelector {
super("Clit piercing", piercingTypes(true));
this.onchange = (value) => current_rule.set.clitPiercing = value;
class LabiaPiercingList extends ListSelector {
super("Pussylips piercings", piercingTypes());
this.onchange = (value) => current_rule.set.vaginaPiercing = value;
class ShaftPiercingList extends ListSelector {
this.onchange = (value) => current_rule.set.dickPiercing = value;
class PerineumPiercingList extends ListSelector {
super("Perianal piercings", piercingTypes());
this.onchange = (value) => current_rule.set.anusPiercing = value;
super("Corset piercings", pairs, true, false, true);
this.onchange = (value) => current_rule.set.corsetPiercing = value;
class AutoBrandingList extends BooleanSwitch {
super("Automatic branding", [0, 1]);
this.setValue(current_rule.set.autoBrand);
this.onchange = (value) => current_rule.set.autoBrand = value;
class BrandingLocationList extends List {
constructor() {
super("Your preferred location for brands is", []);
// I sorted this next section from top of body down, to make it easier to read for users. Hopefully when making similar lists elsewhere in the game, folks will use the same order. Makes it much easier to compare and make sure nothing is missing. And alphabetical is a poor choice for user facing lists.
["Right", "right cheek"],
["Both", "cheeks"]
const ears = new ListSubSection(this, "Ears", [
["Left", "left ear"],
["Right", "right ear"],
["Both", "ears"]
]);
this.appendChild(ears);
// Torso
const breasts = new ListSubSection(this, "Breasts", [
["Left", "left breast"],
["Right", "right breast"],
["Both", "breasts"]
["Right", "right shoulder"],
["Both", "shoulders"]
["Right", "right upper arm"],
["Both", "upper arms"]
["Right", "right lower arm"],
["Both", "lower arms"]
["Right", "right wrist"],
["Both", "wrists"]
["Right", "right hand"],
["Both", "hands"]
["Right", "right buttock"],
["Both", "buttocks"]
["Right", "right thigh"],
["Both", "thighs"]
["Right", "right calf"],
["Both", "calves"]
["Right", "right ankle"],
["Both", "ankles"]
["Right", "right foot"],
["Both", "feet"]
["Lower Back", "lower back"],
["Belly", "belly"],
["Pubic mound", "pubic mound"]
// Ignoring testicles and penis for now, as not all slaves have them.
this.setValue(current_rule.set.brandTarget);
this.onchange = (value) => current_rule.set.brandTarget = value;
["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"]
if (V.arcologies[0].FSSupremacist !== "unset" || V.arcologies[0].FSSubjugationist !== "unset") {
if (V.arcologies[0].FSSupremacist !== "unset" && V.arcologies[0].FSSupremacistRace === "white") {
if (V.arcologies[0].FSSubjugationist !== "unset" && V.arcologies[0].FSSubjugationistRace === "semitic") {
if (V.arcologies[0].FSGenderRadicalist !== "unset" || V.arcologies.FSGenderFundamentalist !== "unset") {
if (V.arcologies[0].FSTransformationFetishist !== "unset") {
items.push(["(FS) Most Desired Implants", "a shortlist of desired implants"]);
if (V.arcologies[0].FSYouthPreferentialist !== "unset") {
if (V.arcologies[0].FSMaturityPreferentialist !== "unset") {
if (V.arcologies[0].FSSlimnessEnthusiast !== "unset") {
items.push(["(FS) Breast Ceiling", "$his absolute maximum breast size"]);
if (V.arcologies[0].FSHedonisticDecadence !== "unset") {
if (V.arcologies[0].FSHedonisticDecadence && V.PC.refreshmentType === 2) {
items.push(["(FS) Favorite Food", `a big helping of ${V.PC.refreshment}`]);
items.push(["(FS) Birth Count", "the number of children $he has birthed"]);
if (V.arcologies[0].FSChattelReligionist !== "unset") {
items.push(["(FS) Republican Crest", "a small crest of your Republic"]);
items.push(["(FS) Seven Serpents", "a small symbol of the Aztec gods"]);
if (V.arcologies[0].FSEgyptianRevivalist !== "unset") {
items.push(["(FS) Caliphate Symbol", "a small symbol of the Caliphate"]);
items.push(["(FS) Imperial Seal", "a small image of your Imperial Seal"]);
super("Your brand design is", items, true, true);
this.setValue(current_rule.set.brandDesign);
this.onchange = (value) => current_rule.set.brandDesign = value;
function commonTattoos() {
return [
["none", 0],
["tribal patterns"],
["flowers"],
["counting"],
["advertisements"],
["rude words"],
["degradation"],
["bovine patterns"],
["Asian art"],
["permanent makeup"],
["sacrament"],
["sacrilege"],
["possessive"],
["paternalist"]
];
}
class FaceTattooList extends ListSelector {
this.setValue(current_rule.set.lipsTat);
this.onchange = (value) => current_rule.set.lipsTat = value;
class ShoulderTattooList extends ListSelector {
this.setValue(current_rule.set.shouldersTat);
this.onchange = (value) => current_rule.set.shouldersTat = value;
class ChestTattooList extends ListSelector {
this.setValue(current_rule.set.boobsTat);
this.onchange = (value) => current_rule.set.boobsTat = value;
class ArmTattooList extends ListSelector {
this.setValue(current_rule.set.armsTat);
this.onchange = (value) => current_rule.set.armsTat = value;
class UpperBackTattooList extends ListSelector {
super("Upper back tattoos", commonTattoos());
this.setValue(current_rule.set.backTat);
this.onchange = (value) => current_rule.set.backTat = value;
class LowerBackTattooList extends ListSelector {
super("Lower back tattoos", commonTattoos());
this.setValue(current_rule.set.stampTat);
this.onchange = (value) => current_rule.set.stampTat = value;
class AbdomenTattooList extends ListSelector {
this.setValue(current_rule.set.vaginaTat);
this.onchange = (value) => current_rule.set.vaginaTat = value;
class DickTattooList extends ListSelector {
this.setValue(current_rule.set.dickTat);
this.onchange = (value) => current_rule.set.dickTat = value;
class ButtockTattooList extends ListSelector {
this.setValue(current_rule.set.buttTat);
this.onchange = (value) => current_rule.set.buttTat = value;
class AnalTattooList extends ListSelector {
super("Anal tattoo or bleaching", commonTattoos().concat([['bleached']]));
this.setValue(current_rule.set.anusTat);
this.onchange = (value) => current_rule.set.anusTat = value;
class LegTattooList extends ListSelector {
this.setValue(current_rule.set.legsTat);
this.onchange = (value) => current_rule.set.legsTat = value;
class VisionSurgeryList extends List {
super("Vision correction", items, true, false, true);
this.setValue(current_rule.set.surgery.eyes);
this.onchange = (value) => current_rule.set.surgery.eyes = value;
class HearingSurgeryList extends List {
constructor() {
const items = [
["fixed", 0],
["muffled", -1],
];
super("Hearing correction", items, true, false, true);
this.setValue(current_rule.set.surgery.hears);
this.onchange = (value) => current_rule.set.surgery.hears = value;
class SmellSurgeryList extends List {
constructor() {
const items = [
["fixed", 0],
["disabled", -1],
];
super("Olfactory correction", items, true, false, true);
this.setValue(current_rule.set.surgery.smells);
this.onchange = (value) => current_rule.set.surgery.smells = value;
class TasteSurgeryList extends List {
constructor() {
const items = [
["fixed", 0],
["disabled", -1],
];
super("Gustatory correction", items, true, false, true);
this.setValue(current_rule.set.surgery.tastes);
this.onchange = (value) => current_rule.set.surgery.tastes = value;
class LactationSurgeryList extends List {
super("Lactation drug implants", items, true, false, true);
this.setValue(current_rule.set.surgery.lactation);
this.onchange = (value) => current_rule.set.surgery.lactation = value;
class SemenSurgeryList extends List {
super("Prostate production enhancing drug implants", items, true, false, true);
this.setValue(current_rule.set.surgery.prostate);
this.onchange = (value) => current_rule.set.surgery.prostate = value;
class VasectomyList extends List {
constructor() {
const items = [
["apply vasectomy", true],
["undo vasectomy", false],
];
super("Apply or undo vasectomy for slaves with testicles", items, true, false, true);
this.setValue(current_rule.set.surgery.vasectomy);
this.onchange = (value) => current_rule.set.surgery.vasectomy = value;
super("Cosmetic Surgery", items, true, false, true);
this.setValue(current_rule.set.surgery.cosmetic);
this.onchange = (value) => current_rule.set.surgery.cosmetic = value;
constructor() {
const items = [
["removed", 0],
["plush", 20],
["big", 40],
["huge", 70],
this.setValue(current_rule.set.surgery.lips);
this.onchange = (value) => current_rule.set.surgery.lips = value;
this.setValue(current_rule.set.surgery.butt);
this.onchange = (value) => current_rule.set.surgery.butt = value;
["slim", 400],
["stacked", 1000],
["huge", 2000],
["barely functional", 9000],
this.setValue(current_rule.set.surgery.boobs);
this.onchange = (value) => current_rule.set.surgery.boobs = value;
class TighteningSurgeryList extends List {
super("Orifice Tightening", items, true, false, true);
this.setValue(current_rule.set.surgery.holes);
this.onchange = (value) => current_rule.set.surgery.holes = value;
class TummyTuckSurgeryList extends List {
constructor() {
const items = [
["tuck", 1],
];
super("Tummy Tuck", items, true, false, true);
this.setValue(current_rule.set.surgery.tummy);
this.onchange = (value) => current_rule.set.surgery.tummy = value;
class BodyHairSurgeryList extends List {
super("Body Hair", items, true, false, true);
this.setValue(current_rule.set.surgery.bodyhair);
this.onchange = (value) => current_rule.set.surgery.bodyhair = value;
class HairSurgeryList extends List {
super("Hair", items, true, false, true);
this.setValue(current_rule.set.surgery.hair);
this.onchange = (value) => current_rule.set.surgery.hair = value;
class AutomaticAssignmentList extends ListSelector {
constructor() {
const items = [
["Rest", "rest"],
["Fucktoy", "please you"],
["Subordinate Slave", "be a subordinate slave"],
["House Servant", "be a servant"],
["Confined", "stay confined"],
["Whore", "whore"],
["Classes", "take classes"],
["Milked", "get milked"],
["Gloryhole", "work a glory hole"],
["Choose Her Own", "choose her own job"]
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
if (V.HGSuite > 0) {
items.push(["Head Girl Suite", "live with your Head Girl"]);
}
if (V.brothel > 0) {
items.push(["Brothel", "work in the brothel"]);
}
if (V.club > 0) {
items.push(["Club", "serve in the club"]);
}
if (V.arcade > 0) {
items.push(["Arcade", "be confined in the arcade"]);
}
if (V.dairy > 0) {
items.push(["Dairy", "work in the dairy"]);
}
if (V.farmyard > 0) {
items.push(["Farmyard", "work as a farmhand"]);
}
if (V.servantsQuarters > 0) {
items.push(["Servant Quarters", "work as a servant"]);
}
if (V.masterSuite > 0) {
items.push(["Master Suite", "serve in the master suite"]);
}
if (V.schoolroom > 0) {
items.push(["Schoolroom", "learn in the schoolroom"]);
}
if (V.spa > 0) {
items.push(["Spa", "rest in the spa"]);
}
if (V.clinic > 0) {
items.push(["Clinic", "get treatment in the clinic"]);
}
if (V.cellblock > 0) {
items.push(["Cellblock", "be confined in the cellblock"]);
}
super("Automatically set assignment", items);
this.setValue(current_rule.set.setAssignment);
this.onchange = (value) => current_rule.set.setAssignment = value;
}
class BellyImplantList extends List {
constructor() {
const items = [
["install", "install"],
["remove", "remove"],
];
super("Belly implant", items, true, false, true);
this.setValue(current_rule.set.surgery.bellyImplant);
this.onchange = (value) => current_rule.set.surgery.bellyImplant = value;
this.setValue(current_rule.set.label);
this.onchange = (value) => current_rule.set.label = value;
}
}
constructor() {
this.setValue(current_rule.set.removeLabel);
this.onchange = (value) => current_rule.set.removeLabel = value;
}
}
class SkinColorList extends ListSelector {
["pure white"],
["ivory"],
["white"],
["extremely pale"],
["very pale"],
["extremely fair"],
["very fair"],
["fair"],
["light"],
["light olive"],
["tan"],
["olive"],
["bronze"],
["dark olive"],
["light beige"],
["beige"],
["dark beige"],
["light brown"],
["brown"],
["dark brown"],
["black"],
["ebony"],
["pure black"],
["dyed red"],
["dyed green"],
["dyed blue"],
super("Dye or tan skin", items);
this.setValue(current_rule.set.skinColor);
this.onchange = (x) => current_rule.set.skinColor = x;
}
}