diff --git a/js/003-data/slaveWearData.js b/js/003-data/slaveWearData.js index a8d755dffc0ec3c21130dd29e9b6225d36615bcc..da4c2b53a72792d9b667ef507a855a516ed8b8ad 100644 --- a/js/003-data/slaveWearData.js +++ b/js/003-data/slaveWearData.js @@ -1,18 +1,15 @@ /** * @typedef {object} itemFS - * @property {FC.FutureSociety} unlocks - * @property {Set<FC.FutureSociety>} [fsLoves] FS loves to see this outfit. - * @property {Set<FC.FutureSociety>} [fsTolerates] FS tolerates this outfit. - * @property {Set<FC.FutureSociety>} [fsHates] FS hates to see this outfit. + * @property {FC.FutureSociety} [unlocks] Automatically unlocked with this FS. + * @property {Set<FC.FutureSociety>} [loves] FS loves to see this outfit. + * @property {Set<FC.FutureSociety>} [tolerates] FS tolerates this outfit. + * @property {Set<FC.FutureSociety>} [hates] FS hates to see this outfit. */ /** * @typedef {object} clothes * @property {string} name - * @property {itemFS} [fs] Automatically unlocked with this FS. - * @property {Set<FC.FutureSociety>} [fsLoves] FS loves to see this outfit. - * @property {Set<FC.FutureSociety>} [fsTolerates] FS tolerates this outfit. - * @property {Set<FC.FutureSociety>} [fsHates] FS hates to see this outfit. + * @property {itemFS} [fs] * @property {boolean} [requirements] * @property {0|1|2|3|4} [exposure] 0: Modest, 1: Acceptable, 2: Slutty, 3: Humiliating (exposes genitals), 4: Might as well be nude * @property {boolean} [harsh] @@ -26,8 +23,10 @@ App.Data.clothes = new Map([ ["attractive lingerie for a pregnant woman", { name: "Maternity lingerie", - fs: {unlocks: "FSRepopulationFocus"}, - fsLoves: new Set(["FSIntellectualDependency"]), + fs: { + unlocks: "FSRepopulationFocus", + loves: new Set(["FSIntellectualDependency"]), + }, get requirements() { return V.boughtItem.clothing.maternityLingerie === 1; }, exposure: 2 } @@ -35,8 +34,10 @@ App.Data.clothes = new Map([ ["a bunny outfit", { name: "Bunny outfit", - fs: {unlocks: "FSGenderFundamentalist"}, - fsLoves: new Set(["FSGenderFundamentalist"]), + fs: { + unlocks: "FSGenderFundamentalist", + loves: new Set(["FSGenderFundamentalist"]), + }, get requirements() { return V.boughtItem.clothing.bunny === 1; }, exposure: 1 } @@ -44,8 +45,10 @@ App.Data.clothes = new Map([ ["body oil", { name: "Body oil", - fs: {unlocks: "FSPhysicalIdealist"}, - fsLoves: new Set(["FSPhysicalIdealist"]), + fs: { + unlocks: "FSPhysicalIdealist", + loves: new Set(["FSPhysicalIdealist"]), + }, get requirements() { return V.boughtItem.clothing.oil === 1; }, exposure: 4 } @@ -53,8 +56,10 @@ App.Data.clothes = new Map([ ["a chattel habit", { name: "Chattel habit", - fs: {unlocks: "FSChattelReligionist"}, - fsLoves: new Set(["FSChattelReligionist"]), + fs: { + unlocks: "FSChattelReligionist", + loves: new Set(["FSChattelReligionist"]), + }, get requirements() { return V.boughtItem.clothing.habit === 1; }, exposure: 3 } @@ -62,8 +67,10 @@ App.Data.clothes = new Map([ ["conservative clothing", { name: "Conservative clothing", - fs: {unlocks: "FSPaternalist"}, - fsLoves: new Set(["FSPaternalist"]), + fs: { + unlocks: "FSPaternalist", + loves: new Set(["FSPaternalist"]), + }, get requirements() { return V.boughtItem.clothing.conservative === 1; }, exposure: 0 } @@ -71,8 +78,10 @@ App.Data.clothes = new Map([ ["harem gauze", { name: "Harem gauze", - fs: {unlocks: "FSArabianRevivalist"}, - fsLoves: new Set(["FSArabianRevivalist"]), + fs: { + unlocks: "FSArabianRevivalist", + loves: new Set(["FSArabianRevivalist"]), + }, get requirements() { return V.boughtItem.clothing.harem === 1; }, exposure: 1 } @@ -80,8 +89,10 @@ App.Data.clothes = new Map([ ["a huipil", { name: "Huipil", - fs: {unlocks: "FSAztecRevivalist"}, - fsLoves: new Set(["FSAztecRevivalist"]), + fs: { + unlocks: "FSAztecRevivalist", + loves: new Set(["FSAztecRevivalist"]), + }, get requirements() { return V.boughtItem.clothing.huipil === 1; }, exposure: 0 } @@ -89,8 +100,10 @@ App.Data.clothes = new Map([ ["a kimono", { name: "Kimono", - fs: {unlocks: "FSEdoRevivalist"}, - fsLoves: new Set(["FSEdoRevivalist"]), + fs: { + unlocks: "FSEdoRevivalist", + loves: new Set(["FSEdoRevivalist"]), + }, get requirements() { return (V.boughtItem.clothing.kimono === 1 || V.continent === "Japan"); }, exposure: 0 } @@ -106,8 +119,10 @@ App.Data.clothes = new Map([ ["a slutty qipao", { name: "Qipao (slutty)", - fs: {unlocks: "FSChineseRevivalist"}, - fsLoves: new Set(["FSChineseRevivalist"]), + fs: { + unlocks: "FSChineseRevivalist", + loves: new Set(["FSChineseRevivalist"]), + }, get requirements() { return V.boughtItem.clothing.qipao === 1; }, exposure: 2 } @@ -147,8 +162,10 @@ App.Data.clothes = new Map([ ["a toga", { name: "Toga", - fs: {unlocks: "FSRomanRevivalist"}, - fsLoves: new Set(["FSRomanRevivalist"]), + fs: { + unlocks: "FSRomanRevivalist", + loves: new Set(["FSRomanRevivalist"]), + }, get requirements() { return V.boughtItem.clothing.toga === 1; }, exposure: 1 } @@ -156,8 +173,10 @@ App.Data.clothes = new Map([ ["Western clothing", { name: "Western clothing", - fs: {unlocks: "FSPastoralist"}, - fsLoves: new Set(["FSPastoralist"]), + fs: { + unlocks: "FSPastoralist", + loves: new Set(["FSPastoralist"]), + }, get requirements() { return V.boughtItem.clothing.western === 1; }, exposure: 3 } @@ -165,8 +184,10 @@ App.Data.clothes = new Map([ ["a courtesan dress", { name: "Courtesan dress", - fs: {unlocks: "FSSlaveProfessionalism"}, - fsLoves: new Set(["FSSlaveProfessionalism"]), + fs: { + unlocks: "FSSlaveProfessionalism", + loves: new Set(["FSSlaveProfessionalism"]), + }, get requirements() { return V.boughtItem.clothing.courtesan === 1; }, exposure: 1 } @@ -174,8 +195,10 @@ App.Data.clothes = new Map([ ["a bimbo outfit", { name: "Bimbo outfit", - fs: {unlocks: "FSIntellectualDependency"}, - fsLoves: new Set(["FSIntellectualDependency"]), + fs: { + unlocks: "FSIntellectualDependency", + loves: new Set(["FSIntellectualDependency"]), + }, get requirements() { return V.boughtItem.clothing.bimbo === 1; }, exposure: 2 } @@ -319,7 +342,9 @@ App.Data.clothes = new Map([ name: "Nice business attire", get requirements() { return V.boughtItem.clothing.career === 1; }, exposure: 0, - fsLoves: new Set(["FSMaturityPreferentialist"]), + fs: { + loves: new Set(["FSMaturityPreferentialist"]) + }, } ], ["a nice nurse outfit", @@ -341,7 +366,9 @@ App.Data.clothes = new Map([ name: "Maid (nice)", get requirements() { return V.boughtItem.clothing.career === 1 || V.PC.career === "servant" || V.PC.career === "handmaiden" || V.PC.career === "child servant"; }, exposure: 0, - fsLoves: new Set(["FSMaturityPreferentialist"]), + fs: { + loves: new Set(["FSMaturityPreferentialist"]) + }, } ], ["a ball gown", @@ -657,14 +684,14 @@ App.Data.clothes = new Map([ { name: "Bangles", exposure: 3, - fsLoves: new Set(["FSEgyptianRevivalist"]) + fs: {loves: new Set(["FSEgyptianRevivalist"])} } ], ["clubslut netting", { name: "Clubslut netting", exposure: 3, - fsLoves: new Set(["FSBodyPurist", "FSIntellectualDependency"]), + fs: {loves: new Set(["FSBodyPurist", "FSIntellectualDependency"])}, } ], ["cutoffs and a t-shirt", @@ -677,14 +704,14 @@ App.Data.clothes = new Map([ { name: "Bodysuit", exposure: 1, - fsLoves: new Set(["FSBodyPurist"]), + fs: {loves: new Set(["FSBodyPurist"])}, } ], ["a cheerleader outfit", { name: "Cheerleader", exposure: 2, - fsLoves: new Set(["FSGenderFundamentalist", "FSYouthPreferentialist"]), + fs: {loves: new Set(["FSGenderFundamentalist", "FSYouthPreferentialist"])}, } ], ["a fallen nuns habit", @@ -703,14 +730,14 @@ App.Data.clothes = new Map([ { name: "Leotard", exposure: 1, - fsLoves: new Set(["FSBodyPurist"]), + fs: {loves: new Set(["FSBodyPurist"])}, } ], ["a slutty maid outfit", { name: "Maid (slutty)", exposure: 2, - fsLoves: new Set(["FSSlaveProfessionalism", "FSIntellectualDependency"]), + fs: {loves: new Set(["FSSlaveProfessionalism", "FSIntellectualDependency"])}, } ], ["a mini dress", @@ -754,14 +781,14 @@ App.Data.clothes = new Map([ { name: "Schoolgirl", exposure: 1, - fsLoves: new Set(["FSGenderFundamentalist", "FSYouthPreferentialist"]), + fs: {loves: new Set(["FSGenderFundamentalist", "FSYouthPreferentialist"])}, } ], ["a slutty outfit", { name: "Slutty outfit", exposure: 2, - fsLoves: new Set(["FSIntellectualDependency"]), + fs: {loves: new Set(["FSIntellectualDependency"])}, } ], ["spats and a tank top", @@ -774,7 +801,7 @@ App.Data.clothes = new Map([ { name: "String bikini", exposure: 3, - fsLoves: new Set(["FSBodyPurist", "FSIntellectualDependency"]), + fs: {loves: new Set(["FSBodyPurist", "FSIntellectualDependency"])}, } ], ["a succubus outfit", @@ -787,7 +814,9 @@ App.Data.clothes = new Map([ { name: "Suit (slutty)", exposure: 2, - fsLoves: new Set(["FSMaturityPreferentialist", "FSSlaveProfessionalism"]), + fs: { + loves: new Set(["FSMaturityPreferentialist", "FSSlaveProfessionalism"]) + }, } ], @@ -802,21 +831,23 @@ App.Data.clothes = new Map([ { name: "Haltertop dress", exposure: 0, - fsLoves: new Set(["FSBodyPurist", "FSSlaveProfessionalism"]), + fs: {loves: new Set(["FSBodyPurist", "FSSlaveProfessionalism"])}, } ], ["a slave gown", { name: "Slave gown", exposure: 0, - fsLoves: new Set(["FSBodyPurist"]), + fs: {loves: new Set(["FSBodyPurist"])}, } ], ["chains", { name: "Chains", - fs: {unlocks: "FSDegradationist"}, - fsLoves: new Set(["FSDegradationist"]), + fs: { + unlocks: "FSDegradationist", + loves: new Set(["FSDegradationist"]), + }, get requirements() { return V.boughtItem.clothing.chains === 1; }, exposure: 4, harsh: true @@ -827,7 +858,7 @@ App.Data.clothes = new Map([ name: "Go naked", exposure: 4, harsh: true, - fsLoves: new Set(["FSPhysicalIdealist", "FSIntellectualDependency"]), + fs: {loves: new Set(["FSPhysicalIdealist", "FSIntellectualDependency"])}, } ], ["a penitent nuns habit", @@ -842,7 +873,7 @@ App.Data.clothes = new Map([ name: "Restrictive latex", exposure: 3, harsh: true, - fsLoves: new Set(["FSBodyPurist"]), + fs: {loves: new Set(["FSBodyPurist"])}, } ], ["shibari ropes", @@ -850,7 +881,7 @@ App.Data.clothes = new Map([ name: "Shibari ropes", exposure: 4, harsh: true, - fsLoves: new Set(["FSDegradationist"]), + fs: {loves: new Set(["FSDegradationist"])}, } ], ["uncomfortable straps", @@ -858,14 +889,14 @@ App.Data.clothes = new Map([ name: "Uncomfortable straps", exposure: 3, harsh: true, - fsLoves: new Set(["FSDegradationist"]), + fs: {loves: new Set(["FSDegradationist"])}, } ] ]); /** * @typedef {object} slaveWear * @property {string} name - * @property {itemFS} [fs] Automatically unlocked with this FS. + * @property {itemFS} [fs] * @property {boolean} [requirements] * @property {boolean} [harsh] */ @@ -1098,7 +1129,7 @@ App.Data.slaveWear = { /** * @typedef {object} slaveShoes * @property {string} name - * @property {itemFS} [fs] Automatically unlocked with this FS. + * @property {itemFS} [fs] * @property {boolean} [requirements] * @property {boolean} [harsh] * @property {number} heelHeight height in cm. Over 4cm they may totter. 21cm and over (8 inch heels) will be painful/extreme @@ -1189,7 +1220,7 @@ App.Data.shoes = new Map([ // TODO: add lift property /** * @typedef {object} slaveButtplugs * @property {string} name - * @property {itemFS} [fs] Automatically unlocked with this FS. + * @property {itemFS} [fs] * @property {boolean} [requirements] * @property {0|1|2|3} width * @property {0|1|2} length @@ -1261,7 +1292,7 @@ App.Data.buttplug = new Map([ /** * @typedef {object} vaginalAccessories * @property {string} name - * @property {itemFS} [fs] Automatically unlocked with this FS. + * @property {itemFS} [fs] * @property {boolean} [requirements] * @property {0|1|2|3} width * @property {0|1|2} length