diff --git a/js/003-data/miscData.js b/js/003-data/miscData.js index b79e4bd611d53d0561473aaf0254e5da0d2e37bf..13ad51986035fed5b87ce0d805d31816f9179b0b 100644 --- a/js/003-data/miscData.js +++ b/js/003-data/miscData.js @@ -1935,640 +1935,6 @@ App.Data.misc = { badWords: ["anus", "ass", "bitch", "boob", "butt", "cock", "crap", "cum", "cunny", "cunt", "dick", "fuck", "jizz", "junk", "piss", "prick", "pussy", "shit", "slave", "slut", "tit", "trash", "whore"], badNames: ["Ass Kisser", "Ass Licker", "Ass", "Assfucker", "Asshole", "Ballsack", "Bastard", "Bitch", "Cock", "Cocksucker", "Coward", "Creep", "Cum Rag", "Cunt", "Degenerate", "Despoiler", "Dick", "Dickhead", "Dicksucker", "Dickweed", "Dipshit", "Douchebag", "Dumbass", "DumbFuck", "Dunderfuck", "Faggot", "Fucker", "Fuckface", "Fuckhead", "Fucko", "Fucktard", "Fuckwit", "Idiot", "Inbred", "Jackass", "Jerk", "Jizz Stain", "Moron", "Motherfucker", "Nutsack", "Pissbaby", "Prick", "Pussy", "Rapist", "Ratfuck", "Retard", "Ruiner", "Schmuck", "Scumbag", "Shitbird", "Shithead", "Slave", "Slaver", "Sleazeball", "Slut", "Sodomite", "Thundercunt", "Traitor", "Trash", "Whore"], - /** - * @typedef {object} slaveWear - * @property {string} name - * @property {string} value - * @property {string} [fs] - * @property {boolean} [requirements] - */ - - /** - * @type {Array<slaveWear>} - */ - niceClothes: [ - { - name: "Maternity lingerie", - value: "attractive lingerie for a pregnant woman", - fs: "FSRepopulationFocus", - get requirements() { return V.boughtItem.clothing.maternityLingerie === 1; } - }, - { - name: "Bunny outfit", - value: "a bunny outfit", - fs: "FSGenderFundamentalist", - get requirements() { return V.boughtItem.clothing.bunny === 1; } - }, - { - name: "Body oil", - value: "body oil", - fs: "FSPhysicalIdealist", - get requirements() { return V.boughtItem.clothing.oil === 1; } - }, - { - name: "Chattel habit", - value: "a chattel habit", - fs: "FSChattelReligionist", - get requirements() { return V.boughtItem.clothing.habit === 1; } - }, - { - name: "Conservative clothing", - value: "conservative clothing", - fs: "FSPaternalist", - get requirements() { return V.boughtItem.clothing.conservative === 1; } - }, - { - name: "Harem gauze", - value: "harem gauze", - fs: "FSArabianRevivalist", - get requirements() { return V.boughtItem.clothing.harem === 1; } - }, - { - name: "Huipil", - value: "a huipil", - fs: "FSAztecRevivalist", - get requirements() { return V.boughtItem.clothing.huipil === 1; } - }, - { - name: "Kimono", - value: "a kimono", - fs: "FSEdoRevivalist", - get requirements() { return (V.boughtItem.clothing.kimono === 1 || V.continent === "Japan"); } - }, - { - name: "Maternity dress", - value: "a maternity dress", - fs: "FSRepopulationFocus", - get requirements() { return V.boughtItem.clothing.maternityDress === 1; } - }, - { - name: "Qipao (slutty)", - value: "a slutty qipao", - fs: "FSChineseRevivalist", - get requirements() { return V.boughtItem.clothing.qipao === 1; } - }, - { - name: "Qipao (long)", - value: "a long qipao", - fs: "FSChineseRevivalist", - get requirements() { return V.boughtItem.clothing.cultural === 1; } - }, - { - name: "Stretch pants and a crop-top", - value: "stretch pants and a crop-top", - fs: "FSHedonisticDecadence", - get requirements() { return V.boughtItem.clothing.lazyClothes === 1; } - }, - { - name: "Toga", - value: "a toga", - fs: "FSRomanRevivalist", - get requirements() { return V.boughtItem.clothing.toga === 1; } - }, - { - name: "Western clothing", - value: "Western clothing", - fs: "FSPastoralist", - get requirements() { return V.boughtItem.clothing.western === 1; } - }, - { - name: "Courtesan dress", - value: "a courtesan dress", - fs: "FSSlaveProfessionalism", - get requirements() { return V.boughtItem.clothing.courtesan === 1; } - }, - { - name: "Bimbo outfit", - value: "a bimbo outfit", - fs: "FSIntellectualDependency", - get requirements() { return V.boughtItem.clothing.bimbo === 1; } - }, - { - name: "Petite admi outfit", - value: "petite admi outfit", - fs: "FSPetiteAdmiration", - get requirements() { return V.boughtItem.clothing.petite === 1; } - }, - {name: "Battlearmor", value: "battlearmor", get requirements() { return V.boughtItem.clothing.military === 1; }}, - {name: "Military uniform", value: "a military uniform", get requirements() { return V.boughtItem.clothing.military === 1; }}, - {name: "Red Army uniform", value: "a red army uniform", get requirements() { return V.boughtItem.clothing.military === 1; }}, - {name: "Battledress", value: "battledress", get requirements() { return V.boughtItem.clothing.military === 1; }}, - {name: "Biyelgee costume", value: "a biyelgee costume", get requirements() { return V.boughtItem.clothing.cultural === 1; }}, - {name: "Dirndl", value: "a dirndl", get requirements() { return V.boughtItem.clothing.cultural === 1; }}, - {name: "Lederhosen", value: "lederhosen", get requirements() { return V.boughtItem.clothing.cultural === 1; }}, - {name: "Mounty outfit", value: "a mounty outfit", get requirements() { return V.boughtItem.clothing.cultural === 1; }}, - {name: "Hanbok", value: "a hanbok", get requirements() { return V.boughtItem.clothing.cultural === 1; }}, - { - name: "Burqa", - value: "a burqa", - get requirements() { return V.boughtItem.clothing.middleEastern === 1 || V.continent === "the Middle East"; } - }, - { - name: "Niqab and abaya", - value: "a niqab and abaya", - get requirements() { return V.boughtItem.clothing.middleEastern === 1 || V.continent === "the Middle East"; } - }, - { - name: "Hijab and blouse", - value: "a hijab and blouse", - get requirements() { return (V.boughtItem.clothing.conservative === 1 || V.continent === "the Middle East"); } - }, - { - name: "Burkini", - value: "a burkini", - get requirements() { return V.boughtItem.clothing.swimwear === 1 && (V.boughtItem.clothing.swimwear === 1 || V.continent === "the Middle East"); } - }, - {name: "Santa dress", value: "a Santa dress", get requirements() { return V.boughtItem.clothing.costume === 1; }}, - - {name: "Klan robe", value: "a klan robe", get requirements() { return V.boughtItem.clothing.pol === 1; }}, - {name: "Slutty klan robe", value: "a slutty klan robe", get requirements() { return V.boughtItem.clothing.pol === 1; }}, - {name: "Schutzstaffel uniform", value: "a schutzstaffel uniform", get requirements() { return V.boughtItem.clothing.pol === 1; }}, - {name: "Slutty schutzstaffel uniform", value: "a slutty schutzstaffel uniform", get requirements() { return V.boughtItem.clothing.pol === 1; }}, - - {name: "Nice business attire", value: "nice business attire", get requirements() { return V.boughtItem.clothing.career === 1; }}, - {name: "Nurse (nice)", value: "a nice nurse outfit", get requirements() { return V.boughtItem.clothing.career === 1; }}, - {name: "Police uniform", value: "a police uniform", get requirements() { return V.boughtItem.clothing.career === 1; }}, - { - name: "Maid (nice)", - value: "a nice maid outfit", - get requirements() { return V.boughtItem.clothing.career === 1 || V.PC.career === "servant"; } - }, - - {name: "Ballgown", value: "a ball gown", get requirements() { return V.boughtItem.clothing.dresses === 1; }}, - {name: "Gothic lolita dress", value: "a gothic lolita dress", get requirements() { return V.boughtItem.clothing.dresses === 1; }}, - - {name: "Cybersuit", value: "a cybersuit", get requirements() { return V.boughtItem.clothing.bodysuits === 1; }}, - {name: "Latex catsuit", value: "a latex catsuit", get requirements() { return V.boughtItem.clothing.bodysuits === 1; }}, - - {name: "Button-up shirt and panties", value: "a button-up shirt and panties", get requirements() { return V.boughtItem.clothing.casual === 1; }}, - {name: "Button-up shirt", value: "a button-up shirt", get requirements() { return V.boughtItem.clothing.casual === 1; }}, - {name: "Cutoffs", value: "cutoffs", get requirements() { return V.boughtItem.clothing.casual === 1; }}, - {name: "Jeans", value: "jeans", get requirements() { return V.boughtItem.clothing.casual === 1; }}, - {name: "Leather pants and a tube top", value: "leather pants and a tube top", get requirements() { return V.boughtItem.clothing.casual === 1; }}, - {name: "Leather pants", value: "leather pants", get requirements() { return V.boughtItem.clothing.casual === 1; }}, - {name: "Oversized t-shirt", value: "an oversized t-shirt", get requirements() { return V.boughtItem.clothing.casual === 1; }}, - {name: "Sweater and cutoffs", value: "a sweater and cutoffs", get requirements() { return V.boughtItem.clothing.casual === 1; }}, - {name: "Sweater and panties", value: "a sweater and panties", get requirements() { return V.boughtItem.clothing.casual === 1; }}, - {name: "Sweater", value: "a sweater", get requirements() { return V.boughtItem.clothing.casual === 1; }}, - {name: "T-shirt and jeans", value: "a t-shirt and jeans", get requirements() { return V.boughtItem.clothing.casual === 1; }}, - {name: "T-shirt and panties", value: "a t-shirt and panties", get requirements() { return V.boughtItem.clothing.casual === 1; }}, - {name: "T-shirt", value: "a t-shirt", get requirements() { return V.boughtItem.clothing.casual === 1; }}, - {name: "Tank-top and panties", value: "a tank-top and panties", get requirements() { return V.boughtItem.clothing.casual === 1; }}, - {name: "Tank-top", value: "a tank-top", get requirements() { return V.boughtItem.clothing.casual === 1; }}, - {name: "Tube top", value: "a tube top", get requirements() { return V.boughtItem.clothing.casual === 1; }}, - - {name: "Boyshorts", value: "boyshorts", get requirements() { return V.boughtItem.clothing.underwear === 1; }}, - {name: "Bra", value: "a bra", get requirements() { return V.boughtItem.clothing.underwear === 1; }}, - {name: "Kitty lingerie", value: "kitty lingerie", get requirements() { return V.boughtItem.clothing.underwear === 1; }}, - {name: "Panties and pasties", value: "panties and pasties", get requirements() { return V.boughtItem.clothing.underwear === 1; }}, - {name: "Skimpy loincloth", value: "a skimpy loincloth", get requirements() { return V.boughtItem.clothing.underwear === 1; }}, - {name: "Thong", value: "a thong", get requirements() { return V.boughtItem.clothing.underwear === 1; }}, - {name: "Pasties", value: "pasties", get requirements() { return V.boughtItem.clothing.underwear === 1; }}, - - { - name: "Leather pants and pasties", - value: "leather pants and pasties", - get requirements() { return V.boughtItem.clothing.underwear === 1 && V.boughtItem.clothing.casual === 1; } - }, - { - name: "T-shirt and thong", - value: "a t-shirt and thong", - get requirements() { return V.boughtItem.clothing.underwear === 1 && V.boughtItem.clothing.casual === 1; } - }, - { - name: "Tube top and thong", - value: "a tube top and thong", - get requirements() { return V.boughtItem.clothing.underwear === 1 && V.boughtItem.clothing.casual === 1; } - }, - { - name: "Oversized t-shirt and boyshorts", - value: "an oversized t-shirt and boyshorts", - get requirements() { return V.boughtItem.clothing.underwear === 1 && V.boughtItem.clothing.casual === 1; } - }, - {name: "Sport shorts and a sports bra", value: "sport shorts and a sports bra", get requirements() { return V.boughtItem.clothing.sports === 1; }}, - {name: "Sport shorts", value: "sport shorts", get requirements() { return V.boughtItem.clothing.sports === 1; }}, - {name: "Sports bra", value: "a sports bra", get requirements() { return V.boughtItem.clothing.sports === 1; }}, - { - name: "Sport shorts and a t-shirt", - value: "sport shorts and a t-shirt", - get requirements() { return V.boughtItem.clothing.sports === 1 && V.boughtItem.clothing.casual === 1; } - }, - {name: "Pony outfit (nice)", value: "a nice pony outfit", get requirements() { return V.boughtItem.clothing.pony === 1; }}, - {name: "Pony outfit (slutty)", value: "a slutty pony outfit", get requirements() { return V.boughtItem.clothing.pony === 1; }}, - - {name: "Monokini", value: "a monokini", get requirements() { return V.boughtItem.clothing.swimwear === 1; }}, - {name: "One-piece swimsuit", value: "a one-piece swimsuit", get requirements() { return V.boughtItem.clothing.swimwear === 1; }}, - - { - name: "Striped bra", - value: "a striped bra", - get requirements() { return V.boughtItem.clothing.pantsu === 1 || V.continent === "Japan"; } - }, - { - name: "Striped panties", - value: "striped panties", - get requirements() { return V.boughtItem.clothing.pantsu === 1 || V.continent === "Japan"; } - }, - { - name: "Striped underwear", - value: "striped underwear", - get requirements() { return V.boughtItem.clothing.pantsu === 1 || V.continent === "Japan"; } - }, - - // "Normal" things: - {name: "Apron", value: "an apron"}, - {name: "Bangles", value: "slutty jewelry"}, - {name: "Clubslut netting", value: "clubslut netting"}, - {name: "Cutoffs and a t-shirt", value: "cutoffs and a t-shirt"}, - {name: "Bodysuit", value: "a comfortable bodysuit"}, - {name: "Cheerleader", value: "a cheerleader outfit"}, - {name: "Fallen nun", value: "a fallen nuns habit"}, - {name: "Hijab and abaya", value: "a hijab and abaya"}, - {name: "Leotard", value: "a leotard"}, - {name: "Maid (slutty)", value: "a slutty maid outfit"}, - {name: "Mini dress", value: "a mini dress"}, - {name: "Nice lingerie", value: "attractive lingerie"}, - {name: "Nurse (slutty)", value: "a slutty nurse outfit"}, - {name: "Overalls", value: "overalls"}, - {name: "Panties", value: "panties"}, - {name: "Scalemail bikini", value: "a scalemail bikini"}, - {name: "Schoolgirl", value: "a schoolgirl outfit"}, - {name: "Slutty outfit", value: "a slutty outfit"}, - {name: "Spats and a tank top", value: "spats and a tank top"}, - {name: "String bikini", value: "a string bikini"}, - {name: "Succubus costume", value: "a succubus outfit"}, - {name: "Suit (slutty)", value: "slutty business attire"}, - - // {name: "Let them choose", value: "choosing her own clothes"}, - {name: "Haltertop dress", value: "a halter top dress"}, - {name: "Slave gown", value: "a slave gown"} - ], - /** - * @type {Array<slaveWear>} - */ - harshClothes: [ - { - name: "Chains", - value: "chains", - fs: "FSDegradationist", - get requirements() { return V.boughtItem.clothing.chains === 1; } - }, - {name: "Go naked", value: "no clothing"}, - {name: "Penitent nun", value: "a penitent nuns habit"}, - {name: "Restrictive latex", value: "restrictive latex"}, - {name: "Shibari ropes", value: "shibari ropes"}, - {name: "Uncomfortable straps", value: "uncomfortable straps"} - ], - /** - * @type {Array<slaveWear>} - */ - niceCollars: [ - {name: "Stylish leather", value: "stylish leather"}, - {name: "Satin choker", value: "satin choker"}, - {name: "Silken ribbon", value: "silk ribbon"}, - {name: "Heavy gold", value: "heavy gold"}, - {name: "Pretty jewelry", value: "pretty jewelry"}, - {name: "Nice retirement counter", value: "nice retirement counter", get requirements() { return V.seeAge === 1; }}, - {name: "Pregnancy biometrics", value: "preg biometrics", get requirements() { return V.seePreg === 1; }}, - {name: "Bell", value: "bell collar"}, - {name: "Cowbell", value: "leather with cowbell"}, - { - name: "Bowtie collar", - value: "bowtie", - fs: "FSGenderFundamentalist", - get requirements() { return V.boughtItem.clothing.bunny === 1; } - }, - { - name: "Neck tie", - value: "neck tie", - fs: "FSPaternalist", - get requirements() { return V.boughtItem.clothing.conservative === 1; } - }, - { - name: "Ancient Egyptian", - value: "ancient Egyptian", - fs: "FSEgyptianRevivalist", - get requirements() { return V.boughtItem.clothing.egypt === 1; } - }, - ], - /** - * @type {Array<slaveWear>} - */ - harshCollars: [ - {name: "Tight steel", value: "tight steel"}, - {name: "Cruel retirement counter", value: "cruel retirement counter", get requirements() { return V.seeAge === 1; }}, - {name: "Uncomfortable leather", value: "uncomfortable leather"}, - {name: "Shock punishment", value: "shock punishment"}, - {name: "Neck corset", value: "neck corset"}, - ], - /** - * @type {Array<slaveWear>} - */ - faceAccessory: [ - {name: "Porcelain mask", value: "porcelain mask"}, - {name: "Cat ears", value: "cat ears"}, - ], - /** - * @type {Array<slaveWear>} - */ - mouthAccessory: [ - {name: "Ball gag", value: "ball gag"}, - {name: "Bit gag", value: "bit gag"}, - {name: "Ring gag", value: "ring gag"}, - { - name: "Massive dildo gag", - value: "massive dildo gag", - get requirements() { return V.boughtItem.toys.gags === 1; } - }, - {name: "Dildo gag", value: "dildo gag"}, - ], - /** - * @type {Array<slaveWear>} - */ - shoes: [ - {name: "Barefoot", value: "none"}, - {name: "Flats", value: "flats"}, - {name: "Heels", value: "heels"}, - {name: "Pumps", value: "pumps"}, - {name: "Thigh boots", value: "boots"}, - {name: "Painfully extreme heels", value: "extreme heels"}, - { - name: "Platforms", - value: "platform shoes", - fs: "FSStatuesqueGlorification", - get requirements() { return (V.boughtItem.shoes.heels === 1); } - }, - { - name: "Platform heels", - value: "platform heels", - fs: "FSStatuesqueGlorification", - get requirements() { return (V.boughtItem.shoes.heels === 1); } - }, - { - name: "Painfully extreme platform heels", - value: "extreme platform heels", - fs: "FSStatuesqueGlorification", - get requirements() { return (V.boughtItem.shoes.heels === 1); } - } - ], - /** - * @type {Array<slaveWear>} - */ - bellyAccessories: [ - {name: "None", value: "none"}, - {name: "Tight corset", value: "a corset"}, - {name: "Extreme corset", value: "an extreme corset"}, - {name: "Supportive band", value: "a support band"}, - { - name: "1st Trimester belly", - value: "a small empathy belly", - fs: "FSRepopulationFocus", - get requirements() { return V.boughtItem.clothing.belly === 1; } - }, - { - name: "2nd Trimester belly", - value: "a medium empathy belly", - fs: "FSRepopulationFocus", - get requirements() { return V.boughtItem.clothing.belly === 1; } - }, - { - name: "3rd Trimester belly", - value: "a large empathy belly", - fs: "FSRepopulationFocus", - get requirements() { return V.boughtItem.clothing.belly === 1; } - }, - { - name: "3rd Trimester twins belly", - value: "a huge empathy belly", - fs: "FSRepopulationFocus", - get requirements() { return V.boughtItem.clothing.belly === 1; } - } - ], - /** - * @type {Array<slaveWear>} - */ - vaginalAccessories: [ - { - name: "None", - value: "none" - }, - { - name: "Bullet vibrator", - value: "bullet vibrator" - }, - { - name: "Smart bullet vibrator", - value: "smart bullet vibrator", - get requirements() { return V.boughtItem.toys.smartVibes === 1; } - }, - { - name: "Dildo", - value: "dildo" - }, - { - name: "Long dildo", - value: "long dildo", - get requirements() { return V.boughtItem.toys.dildos === 1; } - }, - { - name: "Large dildo", - value: "large dildo" - }, - { - name: "Long, large dildo", - value: "long, large dildo", - get requirements() { return V.boughtItem.toys.dildos === 1; } - }, - { - name: "Huge dildo", - value: "huge dildo", - get requirements() { return V.boughtItem.toys.dildos === 1; } - }, - { - name: "Long, huge dildo", - value: "long, huge dildo", - get requirements() { return V.boughtItem.toys.dildos === 1; } - } - ], - /** - * @type {Array<slaveWear>} - */ - vaginalAttachments: [ - {name: "None", value: "none"}, - { - name: "Vibrating attachment", - value: "vibrator", - } - ], - /** - * @type {Array<slaveWear>} - */ - dickAccessories: [ - {name: "None", value: "none"}, - { - name: "Bullet vibrator", - value: "bullet vibrator" - }, - { - name: "Smart bullet vibrator", - value: "smart bullet vibrator", - get requirements() { return V.boughtItem.toys.smartVibes === 1; } - } - ], - /** - * @type {Array<slaveWear>} - */ - buttplugs: [ - { - name: "None", - value: "none" - }, - { - name: "Standard plug", - value: "plug" - }, - { - name: "Long plug", - value: "long plug", - get requirements() { return V.boughtItem.toys.buttPlugs === 1; } - }, - { - name: "Large plug", - value: "large plug" - }, - { - name: "Long, large plug", - value: "long, large plug", - get requirements() { return V.boughtItem.toys.buttPlugs === 1; } - }, - { - name: "Huge plug", - value: "huge plug", - }, - { - name: "Long, huge plug", - value: "long, huge plug", - get requirements() { return V.boughtItem.toys.buttPlugs === 1; } - } - ], - /** - * @type {Array<slaveWear>} - */ - buttplugAttachments: [ - {name: "None", value: "none"}, - {name: "Tail", value: "tail", get requirements() { return V.boughtItem.toys.buttPlugTails === 1; }}, - {name: "Fox tail", value: "fox tail", get requirements() { return V.boughtItem.toys.buttPlugTails === 1; }}, - {name: "Cat tail", value: "cat tail", get requirements() { return V.boughtItem.toys.buttPlugTails === 1; }}, - {name: "Cow tail", value: "cow tail", get requirements() { return V.boughtItem.toys.buttPlugTails === 1; }} - ], - /** - * @typedef {object} slaveWearChastity - * @property {string} name - * @property {string} value - * @property {object} updateSlave - * @property {string} [fs] - */ - - /** @type {Array<slaveWearChastity>} */ - chastityDevices: [ - // '.value' must be a string, so using update slave so I can update multiple values. - { - name: "None", - value: "none", - updateSlave: { - choosesOwnChastity: 0, - chastityAnus: 0, - chastityPenis: 0, - chastityVagina: 0 - }, - }, - { - name: "Anal chastity", - value: "anal chastity", - updateSlave: { - choosesOwnChastity: 0, - chastityAnus: 1, - chastityPenis: 0, - chastityVagina: 0 - } - }, - { - name: "Chastity belt", - value: "chastity belt", - updateSlave: { - choosesOwnChastity: 0, - chastityAnus: 0, - chastityPenis: 0, - chastityVagina: 1 - }, - }, - { - name: "Combined chastity belt", - value: "combined chastity belt", - updateSlave: { - choosesOwnChastity: 0, - chastityAnus: 1, - chastityPenis: 0, - chastityVagina: 1 - }, - }, - { - name: "Chastity cage", - value: "chastity cage", - updateSlave: { - choosesOwnChastity: 0, - chastityAnus: 0, - chastityPenis: 1, - chastityVagina: 0 - }, - }, - { - name: "Combined chastity cage", - value: "combined chastity cage", - updateSlave: { - choosesOwnChastity: 0, - chastityAnus: 1, - chastityPenis: 1, - chastityVagina: 0 - }, - }, - { - name: "Genital chastity", - value: "genital chastity", - updateSlave: { - choosesOwnChastity: 0, - chastityAnus: 0, - chastityPenis: 1, - chastityVagina: 1 - }, - }, - { - name: "Full chastity", - value: "full chastity", - updateSlave: { - choosesOwnChastity: 0, - chastityAnus: 1, - chastityPenis: 1, - chastityVagina: 1 - }, - }, - { - name: "Choose own chastity", - value: "choose own chastity", - fs: "FSRestart", - updateSlave: { - choosesOwnChastity: 1 - }, - }, - { - name: "Revoke choosing own chastity", - value: "revoke choosing own chastity", - fs: "FSRestart", - updateSlave: { - choosesOwnChastity: 0 - }, - }, - ], facilityCareers: [Job.ARCADE, Job.CELLBLOCK, Job.ATTENDANT, Job.DJ, Job.FARMER, Job.MADAM, Job.MATRON, Job.MILKMAID, Job.NURSE, Job.TEACHER, Job.STEWARD, Job.WARDEN, Job.CONCUBINE, Job.CLINIC, Job.SCHOOL, Job.HEADGIRLSUITE, Job.SPA, Job.CLUB, Job.MASTERSUITE, Job.FARMYARD, Job.NURSERY, Job.QUARTER, Job.BROTHEL, Job.DAIRY], diff --git a/js/003-data/slaveWearData.js b/js/003-data/slaveWearData.js new file mode 100644 index 0000000000000000000000000000000000000000..cf95c5b9b88fff1835f4649a0335981f0f6cd664 --- /dev/null +++ b/js/003-data/slaveWearData.js @@ -0,0 +1,615 @@ +/** + * @typedef {object} slaveWear + * @property {string} name + * @property {string} value + * @property {string} [fs] + * @property {boolean} [requirements] + */ + +/** + * @typedef {Array<slaveWear>} slaveWearCategory + */ + +/** @type {Object.<string, slaveWearCategory>} */ +App.Data.slaveWear = { + + niceClothes: [ + { + name: "Maternity lingerie", + value: "attractive lingerie for a pregnant woman", + fs: "FSRepopulationFocus", + get requirements() { return V.boughtItem.clothing.maternityLingerie === 1; } + }, + { + name: "Bunny outfit", + value: "a bunny outfit", + fs: "FSGenderFundamentalist", + get requirements() { return V.boughtItem.clothing.bunny === 1; } + }, + { + name: "Body oil", + value: "body oil", + fs: "FSPhysicalIdealist", + get requirements() { return V.boughtItem.clothing.oil === 1; } + }, + { + name: "Chattel habit", + value: "a chattel habit", + fs: "FSChattelReligionist", + get requirements() { return V.boughtItem.clothing.habit === 1; } + }, + { + name: "Conservative clothing", + value: "conservative clothing", + fs: "FSPaternalist", + get requirements() { return V.boughtItem.clothing.conservative === 1; } + }, + { + name: "Harem gauze", + value: "harem gauze", + fs: "FSArabianRevivalist", + get requirements() { return V.boughtItem.clothing.harem === 1; } + }, + { + name: "Huipil", + value: "a huipil", + fs: "FSAztecRevivalist", + get requirements() { return V.boughtItem.clothing.huipil === 1; } + }, + { + name: "Kimono", + value: "a kimono", + fs: "FSEdoRevivalist", + get requirements() { return (V.boughtItem.clothing.kimono === 1 || V.continent === "Japan"); } + }, + { + name: "Maternity dress", + value: "a maternity dress", + fs: "FSRepopulationFocus", + get requirements() { return V.boughtItem.clothing.maternityDress === 1; } + }, + { + name: "Qipao (slutty)", + value: "a slutty qipao", + fs: "FSChineseRevivalist", + get requirements() { return V.boughtItem.clothing.qipao === 1; } + }, + { + name: "Qipao (long)", + value: "a long qipao", + fs: "FSChineseRevivalist", + get requirements() { return V.boughtItem.clothing.cultural === 1; } + }, + { + name: "Stretch pants and a crop-top", + value: "stretch pants and a crop-top", + fs: "FSHedonisticDecadence", + get requirements() { return V.boughtItem.clothing.lazyClothes === 1; } + }, + { + name: "Toga", + value: "a toga", + fs: "FSRomanRevivalist", + get requirements() { return V.boughtItem.clothing.toga === 1; } + }, + { + name: "Western clothing", + value: "Western clothing", + fs: "FSPastoralist", + get requirements() { return V.boughtItem.clothing.western === 1; } + }, + { + name: "Courtesan dress", + value: "a courtesan dress", + fs: "FSSlaveProfessionalism", + get requirements() { return V.boughtItem.clothing.courtesan === 1; } + }, + { + name: "Bimbo outfit", + value: "a bimbo outfit", + fs: "FSIntellectualDependency", + get requirements() { return V.boughtItem.clothing.bimbo === 1; } + }, + { + name: "Petite admi outfit", + value: "petite admi outfit", + fs: "FSPetiteAdmiration", + get requirements() { return V.boughtItem.clothing.petite === 1; } + }, + {name: "Battlearmor", value: "battlearmor", get requirements() { return V.boughtItem.clothing.military === 1; }}, + {name: "Military uniform", value: "a military uniform", get requirements() { return V.boughtItem.clothing.military === 1; }}, + {name: "Red Army uniform", value: "a red army uniform", get requirements() { return V.boughtItem.clothing.military === 1; }}, + {name: "Battledress", value: "battledress", get requirements() { return V.boughtItem.clothing.military === 1; }}, + {name: "Biyelgee costume", value: "a biyelgee costume", get requirements() { return V.boughtItem.clothing.cultural === 1; }}, + {name: "Dirndl", value: "a dirndl", get requirements() { return V.boughtItem.clothing.cultural === 1; }}, + {name: "Lederhosen", value: "lederhosen", get requirements() { return V.boughtItem.clothing.cultural === 1; }}, + {name: "Mounty outfit", value: "a mounty outfit", get requirements() { return V.boughtItem.clothing.cultural === 1; }}, + {name: "Hanbok", value: "a hanbok", get requirements() { return V.boughtItem.clothing.cultural === 1; }}, + { + name: "Burqa", + value: "a burqa", + get requirements() { return V.boughtItem.clothing.middleEastern === 1 || V.continent === "the Middle East"; } + }, + { + name: "Niqab and abaya", + value: "a niqab and abaya", + get requirements() { return V.boughtItem.clothing.middleEastern === 1 || V.continent === "the Middle East"; } + }, + { + name: "Hijab and blouse", + value: "a hijab and blouse", + get requirements() { return (V.boughtItem.clothing.conservative === 1 || V.continent === "the Middle East"); } + }, + { + name: "Burkini", + value: "a burkini", + get requirements() { return V.boughtItem.clothing.swimwear === 1 && (V.boughtItem.clothing.swimwear === 1 || V.continent === "the Middle East"); } + }, + {name: "Santa dress", value: "a Santa dress", get requirements() { return V.boughtItem.clothing.costume === 1; }}, + + {name: "Klan robe", value: "a klan robe", get requirements() { return V.boughtItem.clothing.pol === 1; }}, + {name: "Slutty klan robe", value: "a slutty klan robe", get requirements() { return V.boughtItem.clothing.pol === 1; }}, + {name: "Schutzstaffel uniform", value: "a schutzstaffel uniform", get requirements() { return V.boughtItem.clothing.pol === 1; }}, + {name: "Slutty schutzstaffel uniform", value: "a slutty schutzstaffel uniform", get requirements() { return V.boughtItem.clothing.pol === 1; }}, + + {name: "Nice business attire", value: "nice business attire", get requirements() { return V.boughtItem.clothing.career === 1; }}, + {name: "Nurse (nice)", value: "a nice nurse outfit", get requirements() { return V.boughtItem.clothing.career === 1; }}, + {name: "Police uniform", value: "a police uniform", get requirements() { return V.boughtItem.clothing.career === 1; }}, + { + name: "Maid (nice)", + value: "a nice maid outfit", + get requirements() { return V.boughtItem.clothing.career === 1 || V.PC.career === "servant"; } + }, + + {name: "Ballgown", value: "a ball gown", get requirements() { return V.boughtItem.clothing.dresses === 1; }}, + {name: "Gothic lolita dress", value: "a gothic lolita dress", get requirements() { return V.boughtItem.clothing.dresses === 1; }}, + + {name: "Cybersuit", value: "a cybersuit", get requirements() { return V.boughtItem.clothing.bodysuits === 1; }}, + {name: "Latex catsuit", value: "a latex catsuit", get requirements() { return V.boughtItem.clothing.bodysuits === 1; }}, + + {name: "Button-up shirt and panties", value: "a button-up shirt and panties", get requirements() { return V.boughtItem.clothing.casual === 1; }}, + {name: "Button-up shirt", value: "a button-up shirt", get requirements() { return V.boughtItem.clothing.casual === 1; }}, + {name: "Cutoffs", value: "cutoffs", get requirements() { return V.boughtItem.clothing.casual === 1; }}, + {name: "Jeans", value: "jeans", get requirements() { return V.boughtItem.clothing.casual === 1; }}, + {name: "Leather pants and a tube top", value: "leather pants and a tube top", get requirements() { return V.boughtItem.clothing.casual === 1; }}, + {name: "Leather pants", value: "leather pants", get requirements() { return V.boughtItem.clothing.casual === 1; }}, + {name: "Oversized t-shirt", value: "an oversized t-shirt", get requirements() { return V.boughtItem.clothing.casual === 1; }}, + {name: "Sweater and cutoffs", value: "a sweater and cutoffs", get requirements() { return V.boughtItem.clothing.casual === 1; }}, + {name: "Sweater and panties", value: "a sweater and panties", get requirements() { return V.boughtItem.clothing.casual === 1; }}, + {name: "Sweater", value: "a sweater", get requirements() { return V.boughtItem.clothing.casual === 1; }}, + {name: "T-shirt and jeans", value: "a t-shirt and jeans", get requirements() { return V.boughtItem.clothing.casual === 1; }}, + {name: "T-shirt and panties", value: "a t-shirt and panties", get requirements() { return V.boughtItem.clothing.casual === 1; }}, + {name: "T-shirt", value: "a t-shirt", get requirements() { return V.boughtItem.clothing.casual === 1; }}, + {name: "Tank-top and panties", value: "a tank-top and panties", get requirements() { return V.boughtItem.clothing.casual === 1; }}, + {name: "Tank-top", value: "a tank-top", get requirements() { return V.boughtItem.clothing.casual === 1; }}, + {name: "Tube top", value: "a tube top", get requirements() { return V.boughtItem.clothing.casual === 1; }}, + + {name: "Boyshorts", value: "boyshorts", get requirements() { return V.boughtItem.clothing.underwear === 1; }}, + {name: "Bra", value: "a bra", get requirements() { return V.boughtItem.clothing.underwear === 1; }}, + {name: "Kitty lingerie", value: "kitty lingerie", get requirements() { return V.boughtItem.clothing.underwear === 1; }}, + {name: "Panties and pasties", value: "panties and pasties", get requirements() { return V.boughtItem.clothing.underwear === 1; }}, + {name: "Skimpy loincloth", value: "a skimpy loincloth", get requirements() { return V.boughtItem.clothing.underwear === 1; }}, + {name: "Thong", value: "a thong", get requirements() { return V.boughtItem.clothing.underwear === 1; }}, + {name: "Pasties", value: "pasties", get requirements() { return V.boughtItem.clothing.underwear === 1; }}, + + { + name: "Leather pants and pasties", + value: "leather pants and pasties", + get requirements() { return V.boughtItem.clothing.underwear === 1 && V.boughtItem.clothing.casual === 1; } + }, + { + name: "T-shirt and thong", + value: "a t-shirt and thong", + get requirements() { return V.boughtItem.clothing.underwear === 1 && V.boughtItem.clothing.casual === 1; } + }, + { + name: "Tube top and thong", + value: "a tube top and thong", + get requirements() { return V.boughtItem.clothing.underwear === 1 && V.boughtItem.clothing.casual === 1; } + }, + { + name: "Oversized t-shirt and boyshorts", + value: "an oversized t-shirt and boyshorts", + get requirements() { return V.boughtItem.clothing.underwear === 1 && V.boughtItem.clothing.casual === 1; } + }, + {name: "Sport shorts and a sports bra", value: "sport shorts and a sports bra", get requirements() { return V.boughtItem.clothing.sports === 1; }}, + {name: "Sport shorts", value: "sport shorts", get requirements() { return V.boughtItem.clothing.sports === 1; }}, + {name: "Sports bra", value: "a sports bra", get requirements() { return V.boughtItem.clothing.sports === 1; }}, + { + name: "Sport shorts and a t-shirt", + value: "sport shorts and a t-shirt", + get requirements() { return V.boughtItem.clothing.sports === 1 && V.boughtItem.clothing.casual === 1; } + }, + {name: "Pony outfit (nice)", value: "a nice pony outfit", get requirements() { return V.boughtItem.clothing.pony === 1; }}, + {name: "Pony outfit (slutty)", value: "a slutty pony outfit", get requirements() { return V.boughtItem.clothing.pony === 1; }}, + + {name: "Monokini", value: "a monokini", get requirements() { return V.boughtItem.clothing.swimwear === 1; }}, + {name: "One-piece swimsuit", value: "a one-piece swimsuit", get requirements() { return V.boughtItem.clothing.swimwear === 1; }}, + + { + name: "Striped bra", + value: "a striped bra", + get requirements() { return V.boughtItem.clothing.pantsu === 1 || V.continent === "Japan"; } + }, + { + name: "Striped panties", + value: "striped panties", + get requirements() { return V.boughtItem.clothing.pantsu === 1 || V.continent === "Japan"; } + }, + { + name: "Striped underwear", + value: "striped underwear", + get requirements() { return V.boughtItem.clothing.pantsu === 1 || V.continent === "Japan"; } + }, + + // "Normal" things: + {name: "Apron", value: "an apron"}, + {name: "Bangles", value: "slutty jewelry"}, + {name: "Clubslut netting", value: "clubslut netting"}, + {name: "Cutoffs and a t-shirt", value: "cutoffs and a t-shirt"}, + {name: "Bodysuit", value: "a comfortable bodysuit"}, + {name: "Cheerleader", value: "a cheerleader outfit"}, + {name: "Fallen nun", value: "a fallen nuns habit"}, + {name: "Hijab and abaya", value: "a hijab and abaya"}, + {name: "Leotard", value: "a leotard"}, + {name: "Maid (slutty)", value: "a slutty maid outfit"}, + {name: "Mini dress", value: "a mini dress"}, + {name: "Nice lingerie", value: "attractive lingerie"}, + {name: "Nurse (slutty)", value: "a slutty nurse outfit"}, + {name: "Overalls", value: "overalls"}, + {name: "Panties", value: "panties"}, + {name: "Scalemail bikini", value: "a scalemail bikini"}, + {name: "Schoolgirl", value: "a schoolgirl outfit"}, + {name: "Slutty outfit", value: "a slutty outfit"}, + {name: "Spats and a tank top", value: "spats and a tank top"}, + {name: "String bikini", value: "a string bikini"}, + {name: "Succubus costume", value: "a succubus outfit"}, + {name: "Suit (slutty)", value: "slutty business attire"}, + + // {name: "Let them choose", value: "choosing her own clothes"}, + {name: "Haltertop dress", value: "a halter top dress"}, + {name: "Slave gown", value: "a slave gown"} + ], + + harshClothes: [ + { + name: "Chains", + value: "chains", + fs: "FSDegradationist", + get requirements() { return V.boughtItem.clothing.chains === 1; } + }, + {name: "Go naked", value: "no clothing"}, + {name: "Penitent nun", value: "a penitent nuns habit"}, + {name: "Restrictive latex", value: "restrictive latex"}, + {name: "Shibari ropes", value: "shibari ropes"}, + {name: "Uncomfortable straps", value: "uncomfortable straps"} + ], + + niceCollars: [ + {name: "Stylish leather", value: "stylish leather"}, + {name: "Satin choker", value: "satin choker"}, + {name: "Silken ribbon", value: "silk ribbon"}, + {name: "Heavy gold", value: "heavy gold"}, + {name: "Pretty jewelry", value: "pretty jewelry"}, + {name: "Nice retirement counter", value: "nice retirement counter", get requirements() { return V.seeAge === 1; }}, + {name: "Pregnancy biometrics", value: "preg biometrics", get requirements() { return V.seePreg === 1; }}, + {name: "Bell", value: "bell collar"}, + {name: "Cowbell", value: "leather with cowbell"}, + { + name: "Bowtie collar", + value: "bowtie", + fs: "FSGenderFundamentalist", + get requirements() { return V.boughtItem.clothing.bunny === 1; } + }, + { + name: "Neck tie", + value: "neck tie", + fs: "FSPaternalist", + get requirements() { return V.boughtItem.clothing.conservative === 1; } + }, + { + name: "Ancient Egyptian", + value: "ancient Egyptian", + fs: "FSEgyptianRevivalist", + get requirements() { return V.boughtItem.clothing.egypt === 1; } + }, + ], + + harshCollars: [ + {name: "Tight steel", value: "tight steel"}, + {name: "Cruel retirement counter", value: "cruel retirement counter", get requirements() { return V.seeAge === 1; }}, + {name: "Uncomfortable leather", value: "uncomfortable leather"}, + {name: "Shock punishment", value: "shock punishment"}, + {name: "Neck corset", value: "neck corset"}, + ], + + faceAccessory: [ + {name: "Porcelain mask", value: "porcelain mask"}, + {name: "Cat ears", value: "cat ears"}, + ], + + mouthAccessory: [ + {name: "Ball gag", value: "ball gag"}, + {name: "Bit gag", value: "bit gag"}, + {name: "Ring gag", value: "ring gag"}, + { + name: "Massive dildo gag", + value: "massive dildo gag", + get requirements() { return V.boughtItem.toys.gags === 1; } + }, + {name: "Dildo gag", value: "dildo gag"}, + ], + + shoes: [ + {name: "Barefoot", value: "none"}, + {name: "Flats", value: "flats"}, + {name: "Heels", value: "heels"}, + {name: "Pumps", value: "pumps"}, + {name: "Thigh boots", value: "boots"}, + {name: "Painfully extreme heels", value: "extreme heels"}, + { + name: "Platforms", + value: "platform shoes", + fs: "FSStatuesqueGlorification", + get requirements() { return (V.boughtItem.shoes.heels === 1); } + }, + { + name: "Platform heels", + value: "platform heels", + fs: "FSStatuesqueGlorification", + get requirements() { return (V.boughtItem.shoes.heels === 1); } + }, + { + name: "Painfully extreme platform heels", + value: "extreme platform heels", + fs: "FSStatuesqueGlorification", + get requirements() { return (V.boughtItem.shoes.heels === 1); } + } + ], + + bellyAccessories: [ + {name: "None", value: "none"}, + {name: "Tight corset", value: "a corset"}, + {name: "Extreme corset", value: "an extreme corset"}, + {name: "Supportive band", value: "a support band"}, + { + name: "1st Trimester belly", + value: "a small empathy belly", + fs: "FSRepopulationFocus", + get requirements() { return V.boughtItem.clothing.belly === 1; } + }, + { + name: "2nd Trimester belly", + value: "a medium empathy belly", + fs: "FSRepopulationFocus", + get requirements() { return V.boughtItem.clothing.belly === 1; } + }, + { + name: "3rd Trimester belly", + value: "a large empathy belly", + fs: "FSRepopulationFocus", + get requirements() { return V.boughtItem.clothing.belly === 1; } + }, + { + name: "3rd Trimester twins belly", + value: "a huge empathy belly", + fs: "FSRepopulationFocus", + get requirements() { return V.boughtItem.clothing.belly === 1; } + } + ], + + vaginalAccessories: [ + { + name: "None", + value: "none" + }, + { + name: "Bullet vibrator", + value: "bullet vibrator" + }, + { + name: "Smart bullet vibrator", + value: "smart bullet vibrator", + get requirements() { return V.boughtItem.toys.smartVibes === 1; } + }, + { + name: "Dildo", + value: "dildo" + }, + { + name: "Long dildo", + value: "long dildo", + get requirements() { return V.boughtItem.toys.dildos === 1; } + }, + { + name: "Large dildo", + value: "large dildo" + }, + { + name: "Long, large dildo", + value: "long, large dildo", + get requirements() { return V.boughtItem.toys.dildos === 1; } + }, + { + name: "Huge dildo", + value: "huge dildo", + get requirements() { return V.boughtItem.toys.dildos === 1; } + }, + { + name: "Long, huge dildo", + value: "long, huge dildo", + get requirements() { return V.boughtItem.toys.dildos === 1; } + } + ], + + vaginalAttachments: [ + {name: "None", value: "none"}, + { + name: "Vibrating attachment", + value: "vibrator", + } + ], + + dickAccessories: [ + {name: "None", value: "none"}, + { + name: "Bullet vibrator", + value: "bullet vibrator" + }, + { + name: "Smart bullet vibrator", + value: "smart bullet vibrator", + get requirements() { return V.boughtItem.toys.smartVibes === 1; } + } + ], + + buttplugs: [ + { + name: "None", + value: "none" + }, + { + name: "Standard plug", + value: "plug" + }, + { + name: "Long plug", + value: "long plug", + get requirements() { return V.boughtItem.toys.buttPlugs === 1; } + }, + { + name: "Large plug", + value: "large plug" + }, + { + name: "Long, large plug", + value: "long, large plug", + get requirements() { return V.boughtItem.toys.buttPlugs === 1; } + }, + { + name: "Huge plug", + value: "huge plug", + }, + { + name: "Long, huge plug", + value: "long, huge plug", + get requirements() { return V.boughtItem.toys.buttPlugs === 1; } + } + ], + + buttplugAttachments: [ + {name: "None", value: "none"}, + {name: "Tail", value: "tail", get requirements() { return V.boughtItem.toys.buttPlugTails === 1; }}, + {name: "Fox tail", value: "fox tail", get requirements() { return V.boughtItem.toys.buttPlugTails === 1; }}, + {name: "Cat tail", value: "cat tail", get requirements() { return V.boughtItem.toys.buttPlugTails === 1; }}, + {name: "Cow tail", value: "cow tail", get requirements() { return V.boughtItem.toys.buttPlugTails === 1; }} + ], + /** + * @typedef {object} slaveWearChastity + * @property {string} name + * @property {string} value + * @property {object} updateSlave + * @property {string} [fs] + */ + + /** @type {Array<slaveWearChastity>} */ + chastityDevices: [ + // '.value' must be a string, so using update slave so I can update multiple values. + { + name: "None", + value: "none", + updateSlave: { + choosesOwnChastity: 0, + chastityAnus: 0, + chastityPenis: 0, + chastityVagina: 0 + }, + }, + { + name: "Anal chastity", + value: "anal chastity", + updateSlave: { + choosesOwnChastity: 0, + chastityAnus: 1, + chastityPenis: 0, + chastityVagina: 0 + } + }, + { + name: "Chastity belt", + value: "chastity belt", + updateSlave: { + choosesOwnChastity: 0, + chastityAnus: 0, + chastityPenis: 0, + chastityVagina: 1 + }, + }, + { + name: "Combined chastity belt", + value: "combined chastity belt", + updateSlave: { + choosesOwnChastity: 0, + chastityAnus: 1, + chastityPenis: 0, + chastityVagina: 1 + }, + }, + { + name: "Chastity cage", + value: "chastity cage", + updateSlave: { + choosesOwnChastity: 0, + chastityAnus: 0, + chastityPenis: 1, + chastityVagina: 0 + }, + }, + { + name: "Combined chastity cage", + value: "combined chastity cage", + updateSlave: { + choosesOwnChastity: 0, + chastityAnus: 1, + chastityPenis: 1, + chastityVagina: 0 + }, + }, + { + name: "Genital chastity", + value: "genital chastity", + updateSlave: { + choosesOwnChastity: 0, + chastityAnus: 0, + chastityPenis: 1, + chastityVagina: 1 + }, + }, + { + name: "Full chastity", + value: "full chastity", + updateSlave: { + choosesOwnChastity: 0, + chastityAnus: 1, + chastityPenis: 1, + chastityVagina: 1 + }, + }, + { + name: "Choose own chastity", + value: "choose own chastity", + fs: "FSRestart", + updateSlave: { + choosesOwnChastity: 1 + }, + }, + { + name: "Revoke choosing own chastity", + value: "revoke choosing own chastity", + fs: "FSRestart", + updateSlave: { + choosesOwnChastity: 0 + }, + }, + ], +}; diff --git a/src/events/eventUtils.js b/src/events/eventUtils.js index 5eaf384ca872d04783dedb6a0bd1c4fbae86f3e0..bde85a986a287afa92d36436682c29e1a7b2101b 100644 --- a/src/events/eventUtils.js +++ b/src/events/eventUtils.js @@ -1,5 +1,5 @@ App.Events.drawEventArt = (function() { - const validSingleOutfits = App.Data.misc.niceClothes.map(c => c.value).concat(App.Data.misc.harshClothes.map(c => c.value)); + const validSingleOutfits = App.Data.slaveWear.niceClothes.map(c => c.value).concat(App.Data.slaveWear.harshClothes.map(c => c.value)); /** draw event art, with the option to dress the slave in a particular way * @param {Node} node - DOM node to attach art to diff --git a/src/facilities/wardrobe/wardrobeShopping.js b/src/facilities/wardrobe/wardrobeShopping.js index e1aeb31be6eaa9e753ac5db7427a51b10a41b638..3614f419b7581a5d1c514cc747eb8087be7756f9 100644 --- a/src/facilities/wardrobe/wardrobeShopping.js +++ b/src/facilities/wardrobe/wardrobeShopping.js @@ -8,8 +8,8 @@ App.UI.WardrobeShopping = function() { let r = []; r.push(`The room containing all the clothes and accessories you have available to dress your slaves in, as well as the supplies and tools your tailor needs to resize them to better fit your slaves. Several mirrors are set up for a slave to try on outfits should they be allowed to dress themselves. The selection includes`); const ownItAll = ( - App.Data.misc.niceClothes.every((i) => isItemAccessible.entry(i.value, "clothing")) && - App.Data.misc.harshClothes.every((i) => isItemAccessible.entry(i.value, "clothing")) + App.Data.slaveWear.niceClothes.every((i) => isItemAccessible.entry(i.value, "clothing")) && + App.Data.slaveWear.harshClothes.every((i) => isItemAccessible.entry(i.value, "clothing")) ); if (ownItAll) { r.push(`outfits from all manner of cultures and societies; not a single style eludes you.`); diff --git a/src/interaction/slaveInteract.js b/src/interaction/slaveInteract.js index 39e89da9c451c55066e940cd94fc4000f1c3d1d7..16124cac5f017cc11a83fa894b4c325890245cde 100644 --- a/src/interaction/slaveInteract.js +++ b/src/interaction/slaveInteract.js @@ -3409,7 +3409,7 @@ App.UI.SlaveInteract.generateRows = function(array, slave, category, accessCheck break; } } - // Some items will never be in App.data.misc, especially "none" if it falls in between harsh and nice data sets. Trying to look it up would cause an error, which is what access check works around. + // Some items will never be in App.Data.slaveWear, especially "none" if it falls in between harsh and nice data sets. Trying to look it up would cause an error, which is what access check works around. let unlocked = false; if (accessCheck === true) { if (category === "chastity") { diff --git a/src/interaction/wardrobeUse.js b/src/interaction/wardrobeUse.js index 8df74b06d91982fd3ee6f5c94af8a0d037b40302..772d8800f22d362d24390ad902940a9c8e6c0f86 100644 --- a/src/interaction/wardrobeUse.js +++ b/src/interaction/wardrobeUse.js @@ -33,7 +33,7 @@ App.UI.Wardrobe.clothes = function(slave) { let clothingOption; // Nice clothes - App.Data.misc.niceClothes.forEach(item => { + App.Data.slaveWear.niceClothes.forEach(item => { clothingOption = { text: item.name, updateSlave: {clothes: item.value, choosesOwnClothes: 0}, @@ -42,7 +42,7 @@ App.UI.Wardrobe.clothes = function(slave) { niceOptionsArray.push(clothingOption); }); // Harsh clothes - App.Data.misc.harshClothes.forEach(item => { + App.Data.slaveWear.harshClothes.forEach(item => { clothingOption = { text: item.name, updateSlave: {clothes: item.value, choosesOwnClothes: 0}, @@ -114,7 +114,7 @@ App.UI.Wardrobe.collar = function(slave) { let clothingOption; // Nice collar - App.Data.misc.niceCollars.forEach(item => { + App.Data.slaveWear.niceCollars.forEach(item => { clothingOption = { text: item.name, updateSlave: {collar: item.value}, @@ -123,7 +123,7 @@ App.UI.Wardrobe.collar = function(slave) { niceOptionsArray.push(clothingOption); }); // Harsh collar - App.Data.misc.harshCollars.forEach(item => { + App.Data.slaveWear.harshCollars.forEach(item => { clothingOption = { text: item.name, updateSlave: {collar: item.value}, @@ -179,7 +179,7 @@ App.UI.Wardrobe.mask = function(slave) { let array = []; let clothingOption; - App.Data.misc.faceAccessory.forEach(item => { + App.Data.slaveWear.faceAccessory.forEach(item => { clothingOption = { text: item.name, updateSlave: {faceAccessory: item.value}, @@ -239,7 +239,7 @@ App.UI.Wardrobe.mouth = function(slave) { let clothingOption; // mouthAccessory - App.Data.misc.mouthAccessory.forEach(item => { + App.Data.slaveWear.mouthAccessory.forEach(item => { clothingOption = { text: item.name, updateSlave: {mouthAccessory: item.value}, @@ -318,7 +318,7 @@ App.UI.Wardrobe.shoes = function(slave) { choice.textContent = (`${slave.shoes} `); label.appendChild(choice); - /* We have "barefoot" in App.Data.Misc to cover for this + /* We have "barefoot" in App.Data.slaveWear to cover for this // Choose her own if (slave.shoes !== `none`) { let choiceOptionsArray = []; @@ -331,7 +331,7 @@ App.UI.Wardrobe.shoes = function(slave) { let optionsArray = []; let clothingOption; - App.Data.misc.shoes.forEach(item => { + App.Data.slaveWear.shoes.forEach(item => { clothingOption = { text: item.name, updateSlave: {shoes: item.value}, @@ -420,7 +420,7 @@ App.UI.Wardrobe.bellyAccessory = function(slave) { let optionsArray = []; let clothingOption; - App.Data.misc.bellyAccessories.forEach(item => { + App.Data.slaveWear.bellyAccessories.forEach(item => { clothingOption = { text: item.name, updateSlave: {bellyAccessory: item.value}, @@ -497,7 +497,7 @@ App.UI.Wardrobe.buttplug = function(slave) { let optionsArray = []; let clothingOption; - App.Data.misc.buttplugs.forEach(item => { + App.Data.slaveWear.buttplugs.forEach(item => { clothingOption = { text: item.name, updateSlave: {buttplug: item.value}, @@ -553,7 +553,7 @@ App.UI.Wardrobe.buttplugAttachment = function(slave) { let optionsArray = []; let clothingOption; - App.Data.misc.buttplugAttachments.forEach(item => { + App.Data.slaveWear.buttplugAttachments.forEach(item => { clothingOption = { text: item.name, updateSlave: {buttplugAttachment: item.value}, @@ -608,7 +608,7 @@ App.UI.Wardrobe.vaginalAccessory = function(slave) { let optionsArray = []; let clothingOption; - App.Data.misc.vaginalAccessories.forEach(item => { + App.Data.slaveWear.vaginalAccessories.forEach(item => { clothingOption = { text: item.name, updateSlave: {vaginalAccessory: item.value}, @@ -665,7 +665,7 @@ App.UI.Wardrobe.vaginalAttachment = function(slave) { let optionsArray = []; let clothingOption; - App.Data.misc.vaginalAttachments.forEach(item => { + App.Data.slaveWear.vaginalAttachments.forEach(item => { clothingOption = { text: item.name, updateSlave: {vaginalAttachment: item.value}, @@ -720,7 +720,7 @@ App.UI.Wardrobe.dickAccessory = function(slave) { let optionsArray = []; let clothingOption; - App.Data.misc.dickAccessories.forEach(item => { + App.Data.slaveWear.dickAccessories.forEach(item => { clothingOption = { text: item.name, updateSlave: {dickAccessory: item.value}, @@ -802,7 +802,7 @@ App.UI.Wardrobe.chastity = function(slave) { let optionsArray = []; let clothingOption; - App.Data.misc.chastityDevices.forEach(item => { + App.Data.slaveWear.chastityDevices.forEach(item => { clothingOption = { text: item.name, updateSlave: {}, diff --git a/src/js/itemAvailability.js b/src/js/itemAvailability.js index f167beaa2eb9baae43e2b359478cacf184c70095..f0c5fc0cb1f13e86ed1266dd6d4e060240306d8a 100644 --- a/src/js/itemAvailability.js +++ b/src/js/itemAvailability.js @@ -20,40 +20,40 @@ globalThis.isItemAccessible = (function() { switch (category) { case "clothing": case "clothes": - niceDB = App.Data.misc.niceClothes; - harshDB = App.Data.misc.harshClothes; + niceDB = App.Data.slaveWear.niceClothes; + harshDB = App.Data.slaveWear.harshClothes; break; case "collar": - niceDB = App.Data.misc.niceCollars; - harshDB = App.Data.misc.harshCollars; + niceDB = App.Data.slaveWear.niceCollars; + harshDB = App.Data.slaveWear.harshCollars; break; case "bellyAccessory": - niceDB = App.Data.misc.bellyAccessories; + niceDB = App.Data.slaveWear.bellyAccessories; break; case "buttplug": - niceDB = App.Data.misc.buttplugs; + niceDB = App.Data.slaveWear.buttplugs; break; case "buttplugAttachment": - niceDB = App.Data.misc.buttplugAttachments; + niceDB = App.Data.slaveWear.buttplugAttachments; break; case "vaginalAccessory": - niceDB = App.Data.misc.vaginalAccessories; + niceDB = App.Data.slaveWear.vaginalAccessories; break; case "vaginalAttachment": - niceDB = App.Data.misc.vaginalAttachments; + niceDB = App.Data.slaveWear.vaginalAttachments; break; case "dickAccessory": - niceDB = App.Data.misc.vaginalAccessories; + niceDB = App.Data.slaveWear.vaginalAccessories; break; case "shoes": - niceDB = App.Data.misc.shoes; + niceDB = App.Data.slaveWear.shoes; break; case "chastity": - niceDB = App.Data.misc.chastityDevices; + niceDB = App.Data.slaveWear.chastityDevices; break; default: console.log(`made a category for ${category} automatically, may need to define this by hand`); - niceDB = App.Data.misc[category]; + niceDB = App.Data.slaveWear[category]; break; } let item = niceDB.find((i) => i.value === string); @@ -61,14 +61,14 @@ globalThis.isItemAccessible = (function() { item = harshDB.find((i) => i.value === string); } if (!item) { - console.log(`${string} is not a registered piece of clothing! Check App.Data.misc.${category}`); + console.log(`${string} is not a registered piece of clothing! Check App.Data.slaveWear.${category}`); return false; /* couldn't be found */ } return isAvailable(item, category, slave); } /** * Returns array of wearable clothing in format [name, value], basically player facing / game data. - * @param {Array} db Array to look in (such as App.Data.misc.niceClothes) + * @param {Array} db Array to look in (such as App.Data.slaveWear.niceClothes) * @returns {Array} */ function array(db) { diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js index 99e1a87ce69dd66435e219ec4773de7b4c3c9ca9..3310b5a16a4043cb17badfcacdbd0ee23ef71a12 100644 --- a/src/js/rulesAssistantOptions.js +++ b/src/js/rulesAssistantOptions.js @@ -1792,11 +1792,11 @@ globalThis.rulesAssistantOptions = (function() { ]; super("Clothes", items); - const nclothes = isItemAccessible.array(App.Data.misc.niceClothes); + const nclothes = isItemAccessible.array(App.Data.slaveWear.niceClothes); nclothes.sort(function(a, b) { if (a[0] < b[0]) { return -1; } if (a[0] > b[0]) { return 1; } return 0; }); this._nice = new ListSubSection(this, "Nice", nclothes); - const hclothes = isItemAccessible.array(App.Data.misc.harshClothes); + const hclothes = isItemAccessible.array(App.Data.slaveWear.harshClothes); hclothes.sort(function(a, b) { if (a[0] < b[0]) { return -1; } if (a[0] > b[0]) { return 1; } return 0; }); this._harsh = new ListSubSection(this, "Harsh", hclothes); @@ -1819,11 +1819,11 @@ globalThis.rulesAssistantOptions = (function() { ]; super("Collar", items); - const niceCollars = isItemAccessible.array(App.Data.misc.niceCollars); + const niceCollars = isItemAccessible.array(App.Data.slaveWear.niceCollars); niceCollars.sort(function(a, b) { if (a[0] < b[0]) { return -1; } if (a[0] > b[0]) { return 1; } return 0; }); this._nice = new ListSubSection(this, "Nice", niceCollars); - const harshCollars = isItemAccessible.array(App.Data.misc.harshCollars); + const harshCollars = isItemAccessible.array(App.Data.slaveWear.harshCollars); harshCollars.sort(function(a, b) { if (a[0] < b[0]) { return -1; } if (a[0] > b[0]) { return 1; } return 0; }); this._harsh = new ListSubSection(this, "Harsh", harshCollars); @@ -1840,7 +1840,7 @@ globalThis.rulesAssistantOptions = (function() { class MaskList extends ListSelector { constructor() { - const pairs = [["No mask", "none"]].concat(isItemAccessible.array(App.Data.misc.faceAccessory )); + const pairs = [["No mask", "none"]].concat(isItemAccessible.array(App.Data.slaveWear.faceAccessory )); super("Mask", pairs); this.setValue(current_rule.set.faceAccessory ); this.onchange = (value) => current_rule.set.faceAccessory = value; @@ -1849,7 +1849,7 @@ globalThis.rulesAssistantOptions = (function() { class GagList extends ListSelector { constructor() { - const pairs = [["No gag", "none"]].concat(isItemAccessible.array(App.Data.misc.mouthAccessory )); + const pairs = [["No gag", "none"]].concat(isItemAccessible.array(App.Data.slaveWear.mouthAccessory )); super("Gag", pairs); this.setValue(current_rule.set.mouthAccessory ); this.onchange = (value) => current_rule.set.mouthAccessory = value; @@ -1857,7 +1857,7 @@ globalThis.rulesAssistantOptions = (function() { } class ShoeList extends ListSelector { constructor() { - super("Shoes", isItemAccessible.array(App.Data.misc.shoes)); + super("Shoes", isItemAccessible.array(App.Data.slaveWear.shoes)); this.setValue(current_rule.set.shoes); this.onchange = (value) => current_rule.set.shoes = value; } @@ -1865,7 +1865,7 @@ globalThis.rulesAssistantOptions = (function() { class CorsetList extends ListSelector { constructor() { - super("Corsetage", isItemAccessible.array(App.Data.misc.bellyAccessories)); + super("Corsetage", isItemAccessible.array(App.Data.slaveWear.bellyAccessories)); this.setValue(current_rule.set.bellyAccessory); this.onchange = (value) => current_rule.set.bellyAccessory = value; } @@ -1911,7 +1911,7 @@ globalThis.rulesAssistantOptions = (function() { class VagAccVirginsList extends ListSelector { constructor() { - super("Vaginal accessories for virgins", isItemAccessible.array(App.Data.misc.vaginalAccessories)); + super("Vaginal accessories for virgins", isItemAccessible.array(App.Data.slaveWear.vaginalAccessories)); this.setValue(current_rule.set.virginAccessory); this.onchange = (value) => current_rule.set.virginAccessory = value; } @@ -1919,7 +1919,7 @@ globalThis.rulesAssistantOptions = (function() { class VagAccAVirginsList extends ListSelector { constructor() { - super("Vaginal accessories for anal virgins", isItemAccessible.array(App.Data.misc.vaginalAccessories)); + super("Vaginal accessories for anal virgins", isItemAccessible.array(App.Data.slaveWear.vaginalAccessories)); this.setValue(current_rule.set.aVirginAccessory); this.onchange = (value) => current_rule.set.aVirginAccessory = value; } @@ -1927,7 +1927,7 @@ globalThis.rulesAssistantOptions = (function() { class VagAccOtherList extends ListSelector { constructor() { - super("Vaginal accessories for other slaves", isItemAccessible.array(App.Data.misc.vaginalAccessories)); + super("Vaginal accessories for other slaves", isItemAccessible.array(App.Data.slaveWear.vaginalAccessories)); this.setValue(current_rule.set.vaginalAccessory); this.onchange = (value) => current_rule.set.vaginalAccessory = value; } @@ -1935,7 +1935,7 @@ globalThis.rulesAssistantOptions = (function() { class VaginalAttachmentsList extends ListSelector { constructor() { - super("Vaginal attachments for slaves with vaginal accessories", isItemAccessible.array(App.Data.misc.vaginalAttachments)); + super("Vaginal attachments for slaves with vaginal accessories", isItemAccessible.array(App.Data.slaveWear.vaginalAttachments)); this.setValue(current_rule.set.vaginalAttachment); this.onchange = (value) => current_rule.set.vaginalAttachment = value; } @@ -1955,7 +1955,7 @@ globalThis.rulesAssistantOptions = (function() { class DickAccVirginsList extends ListSelector { constructor() { - super("Dick accessories for anal virgins", isItemAccessible.array(App.Data.misc.dickAccessories)); + super("Dick accessories for anal virgins", isItemAccessible.array(App.Data.slaveWear.dickAccessories)); this.setValue(current_rule.set.aVirginDickAccessory); this.onchange = (value) => current_rule.set.aVirginDickAccessory = value; } @@ -1963,7 +1963,7 @@ globalThis.rulesAssistantOptions = (function() { class DickAccOtherList extends ListSelector { constructor() { - super("Dick accessories for other slaves", isItemAccessible.array(App.Data.misc.dickAccessories)); + super("Dick accessories for other slaves", isItemAccessible.array(App.Data.slaveWear.dickAccessories)); this.setValue(current_rule.set.dickAccessory); this.onchange = (value) => current_rule.set.dickAccessory = value; } @@ -1983,7 +1983,7 @@ globalThis.rulesAssistantOptions = (function() { class ButtplugsVirginsList extends ListSelector { constructor() { - super("Buttplugs for anal virgins", isItemAccessible.array(App.Data.misc.buttplugs)); + super("Buttplugs for anal virgins", isItemAccessible.array(App.Data.slaveWear.buttplugs)); this.setValue(current_rule.set.aVirginButtplug); this.onchange = (value) => current_rule.set.aVirginButtplug = value; } @@ -1991,7 +1991,7 @@ globalThis.rulesAssistantOptions = (function() { class ButtplugsOtherList extends ListSelector { constructor() { - super("Buttplugs for other slaves", isItemAccessible.array(App.Data.misc.buttplugs)); + super("Buttplugs for other slaves", isItemAccessible.array(App.Data.slaveWear.buttplugs)); this.setValue(current_rule.set.buttplug); this.onchange = (value) => current_rule.set.buttplug = value; } @@ -1999,7 +1999,7 @@ globalThis.rulesAssistantOptions = (function() { class ButtplugAttachmentsList extends ListSelector { constructor() { - super("Buttplug attachments for slaves with buttplugs", isItemAccessible.array(App.Data.misc.buttplugAttachments)); + super("Buttplug attachments for slaves with buttplugs", isItemAccessible.array(App.Data.slaveWear.buttplugAttachments)); this.setValue(current_rule.set.buttplugAttachment); this.onchange = (value) => current_rule.set.buttplugAttachment = value; }