diff --git a/js/003-data/slaveWearData.js b/js/003-data/slaveWearData.js index bdcda4d95a82d8c602883034f302763891853240..914e054700767da66a43ad64d585854bb83bb9dc 100644 --- a/js/003-data/slaveWearData.js +++ b/js/003-data/slaveWearData.js @@ -3,9 +3,8 @@ * @property {string} name * @property {string} value * @property {FC.FutureSociety} [fs] Automatically unlocked with this FS. - * @property {boolean} slutty true: slutty, false: modest - * @property {boolean} [humiliating] true: reveals genitals * @property {boolean} [requirements] + * @property {0|1|2} [exposure] 0: Modest, 1: Slutty, 2: Humiliating (exposes genitals) */ /** @@ -21,659 +20,638 @@ App.Data.clothes = { value: "attractive lingerie for a pregnant woman", fs: "FSRepopulationFocus", get requirements() { return V.boughtItem.clothing.maternityLingerie === 1; }, - slutty: true + exposure: 1 }, { name: "Bunny outfit", value: "a bunny outfit", fs: "FSGenderFundamentalist", get requirements() { return V.boughtItem.clothing.bunny === 1; }, - slutty: false + exposure: 0 }, { name: "Body oil", value: "body oil", fs: "FSPhysicalIdealist", get requirements() { return V.boughtItem.clothing.oil === 1; }, - slutty: false, - humiliating: true + exposure: 2 }, { name: "Chattel habit", value: "a chattel habit", fs: "FSChattelReligionist", get requirements() { return V.boughtItem.clothing.habit === 1; }, - slutty: true, - humiliating: true + exposure: 2 }, { name: "Conservative clothing", value: "conservative clothing", fs: "FSPaternalist", get requirements() { return V.boughtItem.clothing.conservative === 1; }, - slutty: false + exposure: 0 }, { name: "Harem gauze", value: "harem gauze", fs: "FSArabianRevivalist", get requirements() { return V.boughtItem.clothing.harem === 1; }, - slutty: true, - humiliating: true + exposure: 2 }, { name: "Huipil", value: "a huipil", fs: "FSAztecRevivalist", get requirements() { return V.boughtItem.clothing.huipil === 1; }, - slutty: false + exposure: 0 }, { name: "Kimono", value: "a kimono", fs: "FSEdoRevivalist", get requirements() { return (V.boughtItem.clothing.kimono === 1 || V.continent === "Japan"); }, - slutty: false + exposure: 0 }, { name: "Maternity dress", value: "a maternity dress", fs: "FSRepopulationFocus", get requirements() { return V.boughtItem.clothing.maternityDress === 1; }, - slutty: false, + exposure: 0, }, { name: "Qipao (slutty)", value: "a slutty qipao", fs: "FSChineseRevivalist", get requirements() { return V.boughtItem.clothing.qipao === 1; }, - slutty: true + exposure: 1 }, { name: "Qipao (long)", value: "a long qipao", fs: "FSChineseRevivalist", get requirements() { return V.boughtItem.clothing.cultural === 1; }, - slutty: false + exposure: 0 }, { name: "Imperial Plate", value: "Imperial Plate", fs: "FSNeoImperialist", get requirements() { return V.boughtItem.clothing.imperialarmor === 1; }, - slutty: false + exposure: 0 }, { name: "Imperial Bodysuit", value: "a tight Imperial bodysuit", fs: "FSNeoImperialist", get requirements() { return V.boughtItem.clothing.imperialsuit === 1; }, - slutty: true + exposure: 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; }, - slutty: false + exposure: 0 }, { name: "Toga", value: "a toga", fs: "FSRomanRevivalist", get requirements() { return V.boughtItem.clothing.toga === 1; }, - slutty: false + exposure: 0 }, { name: "Western clothing", value: "Western clothing", fs: "FSPastoralist", get requirements() { return V.boughtItem.clothing.western === 1; }, - slutty: true, - humiliating: true + exposure: 2 }, { name: "Courtesan dress", value: "a courtesan dress", fs: "FSSlaveProfessionalism", get requirements() { return V.boughtItem.clothing.courtesan === 1; }, - slutty: false + exposure: 0 }, { name: "Bimbo outfit", value: "a bimbo outfit", fs: "FSIntellectualDependency", get requirements() { return V.boughtItem.clothing.bimbo === 1; }, - slutty: true + exposure: 1 }, { name: "Petite admi outfit", value: "petite admi outfit", fs: "FSPetiteAdmiration", get requirements() { return V.boughtItem.clothing.petite === 1; }, - slutty: false + exposure: 0 }, { name: "Battlearmor", value: "battlearmor", get requirements() { return V.boughtItem.clothing.military === 1; }, - slutty: false + exposure: 0 }, { name: "Military uniform", value: "a military uniform", get requirements() { return V.boughtItem.clothing.military === 1; }, - slutty: false + exposure: 0 }, { name: "Red Army uniform", value: "a red army uniform", get requirements() { return V.boughtItem.clothing.military === 1; }, - slutty: false + exposure: 0 }, { name: "Battledress", value: "battledress", get requirements() { return V.boughtItem.clothing.military === 1; }, - slutty: false + exposure: 0 }, { name: "Biyelgee costume", value: "a biyelgee costume", get requirements() { return V.boughtItem.clothing.cultural === 1; }, - slutty: false + exposure: 0 }, { name: "Dirndl", value: "a dirndl", get requirements() { return V.boughtItem.clothing.cultural === 1; }, - slutty: false + exposure: 0 }, { name: "Lederhosen", value: "lederhosen", get requirements() { return V.boughtItem.clothing.cultural === 1; }, - slutty: false + exposure: 0 }, { name: "Mounty outfit", value: "a mounty outfit", get requirements() { return V.boughtItem.clothing.cultural === 1; }, - slutty: false + exposure: 0 }, { name: "Hanbok", value: "a hanbok", get requirements() { return V.boughtItem.clothing.cultural === 1; }, - slutty: false + exposure: 0 }, { name: "Burqa", value: "a burqa", get requirements() { return V.boughtItem.clothing.middleEastern === 1 || V.continent === "the Middle East"; }, - slutty: false + exposure: 0 }, { name: "Niqab and abaya", value: "a niqab and abaya", get requirements() { return V.boughtItem.clothing.middleEastern === 1 || V.continent === "the Middle East"; }, - slutty: false + exposure: 0 }, { name: "Hijab and blouse", value: "a hijab and blouse", get requirements() { return (V.boughtItem.clothing.conservative === 1 || V.continent === "the Middle East"); }, - slutty: false + exposure: 0 }, { name: "Burkini", value: "a burkini", get requirements() { return V.boughtItem.clothing.swimwear === 1 && (V.boughtItem.clothing.swimwear === 1 || V.continent === "the Middle East"); }, - slutty: false + exposure: 0 }, { name: "Santa dress", value: "a Santa dress", get requirements() { return V.boughtItem.clothing.costume === 1; }, - slutty: true + exposure: 1 }, { name: "Klan robe", value: "a klan robe", get requirements() { return V.boughtItem.clothing.pol === 1; }, - slutty: false + exposure: 0 }, { name: "Slutty klan robe", value: "a slutty klan robe", get requirements() { return V.boughtItem.clothing.pol === 1; }, - slutty: true + exposure: 1 }, { name: "Schutzstaffel uniform", value: "a schutzstaffel uniform", get requirements() { return V.boughtItem.clothing.pol === 1; }, - slutty: false + exposure: 0 }, { name: "Slutty schutzstaffel uniform", value: "a slutty schutzstaffel uniform", get requirements() { return V.boughtItem.clothing.pol === 1; }, - slutty: true + exposure: 1 }, { name: "Nice business attire", value: "nice business attire", get requirements() { return V.boughtItem.clothing.career === 1; }, - slutty: false + exposure: 0 }, { name: "Nurse (nice)", value: "a nice nurse outfit", get requirements() { return V.boughtItem.clothing.career === 1; }, - slutty: false + exposure: 0 }, { name: "Police uniform", value: "a police uniform", get requirements() { return V.boughtItem.clothing.career === 1; }, - slutty: false + exposure: 0 }, { name: "Maid (nice)", value: "a nice maid outfit", get requirements() { return V.boughtItem.clothing.career === 1 || V.PC.career === "servant" || V.PC.career === "handmaiden" || V.PC.career === "child servant"; }, - slutty: false + exposure: 0 }, { name: "Ballgown", value: "a ball gown", get requirements() { return V.boughtItem.clothing.dresses === 1; }, - slutty: false + exposure: 0 }, { name: "Gothic lolita dress", value: "a gothic lolita dress", get requirements() { return V.boughtItem.clothing.dresses === 1; }, - slutty: false + exposure: 0 }, { name: "Cybersuit", value: "a cybersuit", get requirements() { return V.boughtItem.clothing.bodysuits === 1; }, - slutty: false + exposure: 0 }, { name: "Latex catsuit", value: "a latex catsuit", get requirements() { return V.boughtItem.clothing.bodysuits === 1; }, - slutty: false + exposure: 0 }, { name: "Button-up shirt and panties", value: "a button-up shirt and panties", get requirements() { return V.boughtItem.clothing.casual === 1; }, - slutty: true + exposure: 1 }, { name: "Button-up shirt", value: "a button-up shirt", get requirements() { return V.boughtItem.clothing.casual === 1; }, - slutty: true, - humiliating: true + exposure: 2 }, { name: "Cutoffs", value: "cutoffs", get requirements() { return V.boughtItem.clothing.casual === 1; }, - slutty: false + exposure: 0 }, { name: "Jeans", value: "jeans", get requirements() { return V.boughtItem.clothing.casual === 1; }, - slutty: true + exposure: 1 }, { name: "Leather pants and a tube top", value: "leather pants and a tube top", get requirements() { return V.boughtItem.clothing.casual === 1; }, - slutty: false + exposure: 0 }, { name: "Leather pants", value: "leather pants", get requirements() { return V.boughtItem.clothing.casual === 1; }, - slutty: true + exposure: 1 }, { name: "Oversized t-shirt", value: "an oversized t-shirt", get requirements() { return V.boughtItem.clothing.casual === 1; }, - slutty: true + exposure: 1 }, { name: "Sweater and cutoffs", value: "a sweater and cutoffs", get requirements() { return V.boughtItem.clothing.casual === 1; }, - slutty: false + exposure: 0 }, { name: "Sweater and panties", value: "a sweater and panties", get requirements() { return V.boughtItem.clothing.casual === 1; }, - slutty: true + exposure: 1 }, { name: "Sweater", value: "a sweater", get requirements() { return V.boughtItem.clothing.casual === 1; }, - slutty: true, - humiliating: true + exposure: 2 }, { name: "T-shirt and jeans", value: "a t-shirt and jeans", get requirements() { return V.boughtItem.clothing.casual === 1; }, - slutty: false + exposure: 0 }, { name: "T-shirt and panties", value: "a t-shirt and panties", get requirements() { return V.boughtItem.clothing.casual === 1; }, - slutty: true + exposure: 1 }, { name: "T-shirt", value: "a t-shirt", get requirements() { return V.boughtItem.clothing.casual === 1; }, - slutty: true, - humiliating: true + exposure: 2 }, { name: "Tank-top and panties", value: "a tank-top and panties", get requirements() { return V.boughtItem.clothing.casual === 1; }, - slutty: true + exposure: 1 }, { name: "Tank-top", value: "a tank-top", get requirements() { return V.boughtItem.clothing.casual === 1; }, - slutty: true, - humiliating: true + exposure: 2 }, { name: "Tube top", value: "a tube top", get requirements() { return V.boughtItem.clothing.casual === 1; }, - slutty: true, - humiliating: true + exposure: 2 }, { name: "Boyshorts", value: "boyshorts", get requirements() { return V.boughtItem.clothing.underwear === 1; }, - slutty: true + exposure: 1 }, { name: "Bra", value: "a bra", get requirements() { return V.boughtItem.clothing.underwear === 1; }, - slutty: true, - humiliating: true + exposure: 2 }, { name: "Kitty lingerie", value: "kitty lingerie", get requirements() { return V.boughtItem.clothing.underwear === 1; }, - slutty: true + exposure: 1 }, { name: "Panties and pasties", value: "panties and pasties", get requirements() { return V.boughtItem.clothing.underwear === 1; }, - slutty: true + exposure: 1 }, { name: "Skimpy loincloth", value: "a skimpy loincloth", get requirements() { return V.boughtItem.clothing.underwear === 1; }, - slutty: true, - humiliating: true + exposure: 2 }, { name: "Thong", value: "a thong", get requirements() { return V.boughtItem.clothing.underwear === 1; }, - slutty: true, - humiliating: true + exposure: 2 }, { name: "Pasties", value: "pasties", get requirements() { return V.boughtItem.clothing.underwear === 1; }, - slutty: true, - humiliating: true + exposure: 2 }, { name: "Leather pants and pasties", value: "leather pants and pasties", get requirements() { return V.boughtItem.clothing.underwear === 1 && V.boughtItem.clothing.casual === 1; }, - slutty: true, + exposure: 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; }, - slutty: true, + exposure: 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; }, - slutty: true, + exposure: 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; }, - slutty: false, + exposure: 0, }, { name: "Sport shorts and a sports bra", value: "sport shorts and a sports bra", get requirements() { return V.boughtItem.clothing.sports === 1; }, - slutty: true, + exposure: 1, }, { name: "Sport shorts", value: "sport shorts", get requirements() { return V.boughtItem.clothing.sports === 1; }, - slutty: true + exposure: 1 }, { name: "Sports bra", value: "a sports bra", get requirements() { return V.boughtItem.clothing.sports === 1; }, - slutty: true, - humiliating: true + exposure: 2 }, { 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; }, - slutty: false + exposure: 0 }, { name: "Pony outfit (nice)", value: "a nice pony outfit", get requirements() { return V.boughtItem.clothing.pony === 1; }, - slutty: false + exposure: 0 }, { name: "Pony outfit (slutty)", value: "a slutty pony outfit", get requirements() { return V.boughtItem.clothing.pony === 1; }, - slutty: true + exposure: 1 }, { name: "Monokini", value: "a monokini", get requirements() { return V.boughtItem.clothing.swimwear === 1; }, - slutty: true, - humiliating: true + exposure: 2 }, { name: "One-piece swimsuit", value: "a one-piece swimsuit", get requirements() { return V.boughtItem.clothing.swimwear === 1; }, - slutty: false + exposure: 0 }, { name: "Striped bra", value: "a striped bra", get requirements() { return V.boughtItem.clothing.pantsu === 1 || V.continent === "Japan"; }, - slutty: true, - humiliating: true + exposure: 2 }, { name: "Striped panties", value: "striped panties", get requirements() { return V.boughtItem.clothing.pantsu === 1 || V.continent === "Japan"; }, - slutty: true, + exposure: 1, }, { name: "Striped underwear", value: "striped underwear", get requirements() { return V.boughtItem.clothing.pantsu === 1 || V.continent === "Japan"; }, - slutty: true, + exposure: 1, }, // "Normal" things: { name: "Apron", value: "an apron", - slutty: true, + exposure: 1, }, { name: "Bangles", value: "slutty jewelry", - slutty: true, - humiliating: true + exposure: 2 }, { name: "Clubslut netting", value: "clubslut netting", - slutty: true, - humiliating: true + exposure: 2 }, { name: "Cutoffs and a t-shirt", value: "cutoffs and a t-shirt", - slutty: false + exposure: 0 }, { name: "Bodysuit", value: "a comfortable bodysuit", - slutty: false + exposure: 0 }, { name: "Cheerleader", value: "a cheerleader outfit", - slutty: true + exposure: 1 }, { name: "Fallen nun", value: "a fallen nuns habit", - slutty: true, - humiliating: true + exposure: 2 }, { name: "Hijab and abaya", value: "a hijab and abaya", - slutty: false + exposure: 0 }, { name: "Leotard", value: "a leotard", - slutty: false + exposure: 0 }, { name: "Maid (slutty)", value: "a slutty maid outfit", - slutty: true + exposure: 1 }, { name: "Mini dress", value: "a mini dress", - slutty: false + exposure: 0 }, { name: "Nice lingerie", value: "attractive lingerie", - slutty: true + exposure: 1 }, { name: "Nurse (slutty)", value: "a slutty nurse outfit", - slutty: true + exposure: 1 }, { name: "Overalls", value: "overalls", - slutty: false + exposure: 0 }, { name: "Panties", value: "panties", - slutty: true + exposure: 1 }, { name: "Scalemail bikini", value: "a scalemail bikini", - slutty: true + exposure: 1 }, { name: "Schoolgirl", value: "a schoolgirl outfit", - slutty: true + exposure: 1 }, { name: "Slutty outfit", value: "a slutty outfit", - slutty: true + exposure: 1 }, { name: "Spats and a tank top", value: "spats and a tank top", - slutty: false + exposure: 0 }, { name: "String bikini", value: "a string bikini", - slutty: true, - humiliating: true + exposure: 2 }, { name: "Succubus costume", value: "a succubus outfit", - slutty: true, - humiliating: true + exposure: 2 }, { name: "Suit (slutty)", value: "slutty business attire", - slutty: true, + exposure: 1, }, /* @@ -685,12 +663,12 @@ App.Data.clothes = { { name: "Haltertop dress", value: "a halter top dress", - slutty: false + exposure: 0 }, { name: "Slave gown", value: "a slave gown", - slutty: false + exposure: 0 } ], @@ -700,37 +678,32 @@ App.Data.clothes = { value: "chains", fs: "FSDegradationist", get requirements() { return V.boughtItem.clothing.chains === 1; }, - slutty: true, - humiliating: true + exposure: 2 }, { name: "Go naked", value: "no clothing", - slutty: true, - humiliating: true + exposure: 2 }, { name: "Penitent nun", value: "a penitent nuns habit", - slutty: true, + exposure: 1, }, { name: "Restrictive latex", value: "restrictive latex", - slutty: true, - humiliating: true + exposure: 2 }, { name: "Shibari ropes", value: "shibari ropes", - slutty: true, - humiliating: true + exposure: 2 }, { name: "Uncomfortable straps", value: "uncomfortable straps", - slutty: true, - humiliating: true + exposure: 2 } ], }; diff --git a/src/endWeek/saClothes.js b/src/endWeek/saClothes.js index 019a5b053e223417d3da01df8ed40c8dc5b51241..86e649ac224b047bf2f4b5ca6a45a5756e78f60f 100644 --- a/src/endWeek/saClothes.js +++ b/src/endWeek/saClothes.js @@ -287,7 +287,7 @@ App.SlaveAssignment.clothes = (function() { r.push(`${He} pretends to be embarrassed by ${his} clearly exposed breasts but <span class="hotpink">secretly gets off on it.</span>`); slave.devotion += 1; } - } else if (slave.fetish === "humiliation" && isHumiliating(slave.clothes)) { + } else if (slave.fetish === "humiliation" && clothingExposureAmount(slave.clothes) === 2) { if (slave.fetishKnown === 0) { r.push(`${He} pretends to be embarrassed by ${his} extremely revealing clothing but seems to get off on it. <span class="lightcoral">${He}'s into humiliation.</span>`); slave.fetishKnown = 1; @@ -324,7 +324,7 @@ App.SlaveAssignment.clothes = (function() { // humiliating clothing effects if (slave.fetishKnown === 0 || slave.fetish === "none") { - if (isHumiliating(slave.clothes)) { + if (clothingExposureAmount(slave.clothes) === 2) { if (fetishChangeChance(slave) > jsRandom(0, 100)) { r.push(`Surprisingly, ${he} takes to ${his} extremely revealing clothing, and gets an obvious thrill from it. <span class="lightcoral">${He}'s become a humiliation fetishist!</span>`); slave.fetish = "humiliation"; diff --git a/src/interaction/siWardrobe.js b/src/interaction/siWardrobe.js index 2034473b005b87d449c5b33a23ce31f83b9d3a1b..4ce4801f5b08a48e24b9c62445e1c99dfbd6f1ad 100644 --- a/src/interaction/siWardrobe.js +++ b/src/interaction/siWardrobe.js @@ -41,7 +41,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { // Choose her own if (slave.clothes !== `choosing her own clothes`) { let choiceOptionsArray = []; - choiceOptionsArray.push({text: ` Let ${him} choose`, updateSlave: {clothes: `choosing her own clothes`, choosesOwnClothes: 1}}); + choiceOptionsArray.push({ text: ` Let ${him} choose`, updateSlave: { clothes: `choosing her own clothes`, choosesOwnClothes: 1 } }); label.appendChild(generateRows(choiceOptionsArray, "clothes", false)); } el.appendChild(label); @@ -55,10 +55,9 @@ App.UI.SlaveInteract.wardrobe = function(slave) { niceOptionsArray.push( { text: item.name, - updateSlave: {clothes: item.value, choosesOwnClothes: 0}, + updateSlave: { clothes: item.value, choosesOwnClothes: 0 }, FS: item.fs, - slutty: item.slutty, - humiliating: item.humiliating + exposure: item.exposure, } ); }); @@ -68,10 +67,9 @@ App.UI.SlaveInteract.wardrobe = function(slave) { harshOptionsArray.push( { text: item.name, - updateSlave: {clothes: item.value, choosesOwnClothes: 0}, + updateSlave: { clothes: item.value, choosesOwnClothes: 0 }, FS: item.fs, - slutty: item.slutty, - humiliating: item.humiliating + exposure: item.exposure, } ); } @@ -113,7 +111,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { // Choose her own if (slave.collar !== `none`) { let choiceOptionsArray = []; - choiceOptionsArray.push({text: ` None`, updateSlave: {collar: `none`}}); + choiceOptionsArray.push({ text: ` None`, updateSlave: { collar: `none` } }); label.appendChild(generateRows(choiceOptionsArray, "collar", false)); } @@ -127,7 +125,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { App.Data.slaveWear.niceCollars.forEach(item => { clothingOption = { text: item.name, - updateSlave: {collar: item.value}, + updateSlave: { collar: item.value }, FS: item.fs }; niceOptionsArray.push(clothingOption); @@ -136,7 +134,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { App.Data.slaveWear.harshCollars.forEach(item => { clothingOption = { text: item.name, - updateSlave: {collar: item.value}, + updateSlave: { collar: item.value }, FS: item.fs }; harshOptionsArray.push(clothingOption); @@ -176,7 +174,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { // Choose her own if (slave.faceAccessory !== `none`) { let choiceOptionsArray = []; - choiceOptionsArray.push({text: ` None`, updateSlave: {faceAccessory: `none`}}); + choiceOptionsArray.push({ text: ` None`, updateSlave: { faceAccessory: `none` } }); label.appendChild(generateRows(choiceOptionsArray, "faceAccessory", false)); } @@ -188,7 +186,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { App.Data.slaveWear.faceAccessory.forEach(item => { clothingOption = { text: item.name, - updateSlave: {faceAccessory: item.value}, + updateSlave: { faceAccessory: item.value }, FS: item.fs }; array.push(clothingOption); @@ -231,7 +229,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { // Choose her own if (slave.mouthAccessory !== `none`) { let choiceOptionsArray = []; - choiceOptionsArray.push({text: ` None`, updateSlave: {mouthAccessory: `none`}}); + choiceOptionsArray.push({ text: ` None`, updateSlave: { mouthAccessory: `none` } }); label.appendChild(generateRows(choiceOptionsArray, "mouthAccessory", false)); } @@ -244,7 +242,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { App.Data.slaveWear.mouthAccessory.forEach(item => { clothingOption = { text: item.name, - updateSlave: {mouthAccessory: item.value}, + updateSlave: { mouthAccessory: item.value }, FS: item.fs }; array.push(clothingOption); @@ -276,7 +274,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { // Choose her own if (slave.armAccessory !== "none") { - array.push({text: ` None`, updateSlave: {armAccessory: `none`}}); + array.push({ text: ` None`, updateSlave: { armAccessory: `none` } }); label.appendChild(generateRows(array, "armAccessory", false)); } @@ -285,8 +283,8 @@ App.UI.SlaveInteract.wardrobe = function(slave) { let links = document.createElement('div'); links.className = "choices"; array = [ - {text: "Hand gloves", updateSlave: {armAccessory: "hand gloves"}}, - {text: "Elbow gloves", updateSlave: {armAccessory: "elbow gloves"}} + { text: "Hand gloves", updateSlave: { armAccessory: "hand gloves" } }, + { text: "Elbow gloves", updateSlave: { armAccessory: "elbow gloves" } } ]; links.appendChild(generateRows(array, "armAccessory", false)); el.appendChild(links); @@ -320,7 +318,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { App.Data.slaveWear.shoes.forEach(item => { clothingOption = { text: item.name, - updateSlave: {shoes: item.value}, + updateSlave: { shoes: item.value }, FS: item.fs }; optionsArray.push(clothingOption); @@ -361,7 +359,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { // Choose her own if (slave.legAccessory !== "none") { - array.push({text: ` None`, updateSlave: {legAccessory: `none`}}); + array.push({ text: ` None`, updateSlave: { legAccessory: `none` } }); label.appendChild(generateRows(array, "legAccessory", false)); } @@ -370,8 +368,8 @@ App.UI.SlaveInteract.wardrobe = function(slave) { let links = document.createElement('div'); links.className = "choices"; array = [ - {text: "Short stockings", updateSlave: {legAccessory: "short stockings"}}, - {text: "Long stockings", updateSlave: {legAccessory: "long stockings"}} + { text: "Short stockings", updateSlave: { legAccessory: "short stockings" } }, + { text: "Long stockings", updateSlave: { legAccessory: "long stockings" } } ]; links.appendChild(generateRows(array, "legAccessory", false)); el.appendChild(links); @@ -381,7 +379,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { function bellyAccessory() { let choiceOptionsArray = []; - choiceOptionsArray.push({text: ` None`, updateSlave: {bellyAccessory: `none`}}); + choiceOptionsArray.push({ text: ` None`, updateSlave: { bellyAccessory: `none` } }); let optionsArray = []; @@ -389,7 +387,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { App.Data.slaveWear.bellyAccessories.forEach(item => { clothingOption = { text: item.name, - updateSlave: {bellyAccessory: item.value}, + updateSlave: { bellyAccessory: item.value }, FS: item.fs }; if (item.value !== "none") { @@ -444,7 +442,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { if (slave.buttplug !== `none`) { let choiceOptionsArray = []; - choiceOptionsArray.push({text: ` None`, updateSlave: {buttplug: `none`, buttplugAttachment: `none`}}); + choiceOptionsArray.push({ text: ` None`, updateSlave: { buttplug: `none`, buttplugAttachment: `none` } }); label.appendChild(generateRows(choiceOptionsArray, "buttplug", false)); } el.appendChild(label); @@ -455,7 +453,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { App.Data.slaveWear.buttplugs.forEach(item => { clothingOption = { text: item.name, - updateSlave: {buttplug: item.value}, + updateSlave: { buttplug: item.value }, FS: item.fs }; if (item.value !== "none") { @@ -491,7 +489,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { if (slave.buttplugAttachment !== `none`) { let choiceOptionsArray = []; - choiceOptionsArray.push({text: ` None`, updateSlave: {buttplugAttachment: `none`}}); + choiceOptionsArray.push({ text: ` None`, updateSlave: { buttplugAttachment: `none` } }); label.appendChild(generateRows(choiceOptionsArray, "buttplugAttachment", false)); } el.appendChild(label); @@ -502,7 +500,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { App.Data.slaveWear.buttplugAttachments.forEach(item => { clothingOption = { text: item.name, - updateSlave: {buttplugAttachment: item.value}, + updateSlave: { buttplugAttachment: item.value }, FS: item.fs }; if (item.value !== "none") { @@ -537,7 +535,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { if (slave.vaginalAccessory !== `none`) { let choiceOptionsArray = []; - choiceOptionsArray.push({text: ` None`, updateSlave: {vaginalAccessory: `none`}}); + choiceOptionsArray.push({ text: ` None`, updateSlave: { vaginalAccessory: `none` } }); label.appendChild(generateRows(choiceOptionsArray, "vaginalAccessory", false)); } el.appendChild(label); @@ -548,7 +546,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { App.Data.slaveWear.vaginalAccessories.forEach(item => { clothingOption = { text: item.name, - updateSlave: {vaginalAccessory: item.value}, + updateSlave: { vaginalAccessory: item.value }, FS: item.fs }; if (item.value !== "none") { @@ -584,7 +582,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { if (slave.vaginalAttachment !== `none`) { let choiceOptionsArray = []; - choiceOptionsArray.push({text: ` None`, updateSlave: {vaginalAttachment: `none`}}); + choiceOptionsArray.push({ text: ` None`, updateSlave: { vaginalAttachment: `none` } }); label.appendChild(generateRows(choiceOptionsArray, "vaginalAttachment", false)); } el.appendChild(label); @@ -595,7 +593,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { App.Data.slaveWear.vaginalAttachments.forEach(item => { clothingOption = { text: item.name, - updateSlave: {vaginalAttachment: item.value}, + updateSlave: { vaginalAttachment: item.value }, FS: item.fs }; if (item.value !== "none") { @@ -628,7 +626,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { if (slave.dickAccessory !== `none`) { let choiceOptionsArray = []; - choiceOptionsArray.push({text: ` None`, updateSlave: {dickAccessory: `none`}}); + choiceOptionsArray.push({ text: ` None`, updateSlave: { dickAccessory: `none` } }); label.appendChild(generateRows(choiceOptionsArray, "dickAccessory", false)); } el.appendChild(label); @@ -639,7 +637,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { App.Data.slaveWear.dickAccessories.forEach(item => { clothingOption = { text: item.name, - updateSlave: {dickAccessory: item.value}, + updateSlave: { dickAccessory: item.value }, FS: item.fs }; if (item.value !== "none") { @@ -950,15 +948,19 @@ App.UI.SlaveInteract.wardrobe = function(slave) { /* assuming nice clothes, could actually add some sort of check to make sure. */ /* which clothes have these is decided in miscData.js */ let clothTooltip = Cloth + ""; - if (isHumiliating(cloth)) { - clothTooltip += ", it's humiliating"; + switch (clothingExposureAmount(cloth)) { + case 2: + clothTooltip += ", it's humiliating"; + break; + case 1: + clothTooltip += ", it's slutty"; + break; + case 0: + clothTooltip += ", it's modest"; + break; } - if (isSlutty(cloth)) { - clothTooltip += ", it's slutty"; - } else { - clothTooltip += ", it's modest"; - } - if (clothTooltip === Cloth + "") { + + if (clothTooltip === Cloth + "") { clothTooltip += ", it's only nice(meaning non-obedients lose devotion and fear while obedients gain devotion and trust)."; } clothTooltip += "."; diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js index a3fda2b849126b98a806cf10e94e7a6017ce6654..023a2f5bb5b352daf0d27e0717cdcb50238587b1 100644 --- a/src/js/eventSelectionJS.js +++ b/src/js/eventSelectionJS.js @@ -618,7 +618,7 @@ globalThis.generateRandomEventPoolStandard = function(eventSlave) { if (eventSlave.trust > 20) { if (eventSlave.rules.speech !== "restrictive") { if (eventSlave.choosesOwnClothes !== 1) { - if (!isSlutty(eventSlave.clothes)) { + if (clothingExposureAmount(eventSlave.clothes) === 0) { V.RESSevent.push("modest clothes"); } } diff --git a/src/js/statsChecker/statsChecker.js b/src/js/statsChecker/statsChecker.js index 696d8161f66d2be00dc6be3868b49839ff97a8b9..f19ee1234a3284373a3b0c866680e6ec1a30c458 100644 --- a/src/js/statsChecker/statsChecker.js +++ b/src/js/statsChecker/statsChecker.js @@ -472,7 +472,7 @@ globalThis.bimboScore = function(slave) { if (slave.skin === "sun tanned" || slave.skin === "spray tanned") { degree++; } - if (isSlutty(slave.clothes)) { + if (clothingExposureAmount(slave.clothes) > 0) { degree++; } diff --git a/src/js/utilsFC.js b/src/js/utilsFC.js index 5916307b5939b35798d40453cb77e03135aafdd2..c07b6d9804672c6c7454f66e3f26e8ef6ad18221 100644 --- a/src/js/utilsFC.js +++ b/src/js/utilsFC.js @@ -3085,12 +3085,12 @@ App.Utils.alphabetizeIterable = function(iterable) { return clonedArray.sort(compare); }; -globalThis.isSlutty = function(clothing) { - const clothes = App.Data.clothes.nice.concat(App.Data.clothes.harsh).find(c => c.value === clothing); - return clothes && clothes.slutty; -}; - -globalThis.isHumiliating = function(clothing) { +/** + * + * @param {string} clothing + * @returns {0|1|2} + */ +globalThis.clothingExposureAmount = function(clothing) { const clothes = App.Data.clothes.nice.concat(App.Data.clothes.harsh).find(c => c.value === clothing); - return clothes && clothes.humiliating; + return (clothes) ? clothes.exposure : 0; };