diff --git a/js/003-data/miscData.js b/js/003-data/miscData.js index a3827577db64ead49252195fc27a1be019b1953d..7cea54214556f4d5eb35a49d0962598fafc848cc 100644 --- a/js/003-data/miscData.js +++ b/js/003-data/miscData.js @@ -2139,18 +2139,18 @@ App.Data.misc = { {name: "Bell", value: "bell collar"}, {name: "Cowbell", value: "leather with cowbell"}, { - name: "Bowtie collar", value: "bowtie", fs: "FSGenderFundamentalist", rs: "clothesBoughtBunny" -}, + name: "Bowtie collar", value: "bowtie", fs: "FSGenderFundamentalist", rs: "clothesBoughtBunny" + }, { - name: "Ancient Egyptian", value: "ancient Egyptian", fs: "FSEgyptianRevivalist", rs: "clothesBoughtEgypt" -}, + name: "Ancient Egyptian", value: "ancient Egyptian", fs: "FSEgyptianRevivalist", rs: "clothesBoughtEgypt" + }, ], harshCollars: [ {name: "Tight steel", value: "tight steel"}, - {name: "Cruel retirement counter", value: "cruel retirement counter", fs: "seeAge"}, + {name: "Cruel retirement counter", value: "cruel retirement counter", rs: "seeAge"}, {name: "Uncomfortable leather", value: "uncomfortable leather"}, - {name: "Pregnancy biometrics", value: "preg biometrics", fs: "seePreg"}, + {name: "Pregnancy biometrics", value: "preg biometrics", rs: "seePreg"}, {name: "Shock punishment", value: "shock punishment"}, {name: "Dildo gag", value: "dildo gag"}, {name: "Massive dildo gag", value: "massive dildo gag", rs: "buyGag"}, @@ -2170,19 +2170,19 @@ App.Data.misc = { { name: "Platforms", value: "platform shoes", - fs: "statuesque", + fs: "FSStatuesqueGlorification", rs: "boughtShoes" }, { name: "Platform heels", value: "platform heels", - fs: "statuesque", + fs: "FSStatuesqueGlorification", rs: "boughtShoes" }, { name: "Painfully extreme platform heels", value: "extreme platform heels", - fs: "statuesque", + fs: "FSStatuesqueGlorification", rs: "boughtShoes" } ], diff --git a/src/js/itemAvailability.js b/src/js/itemAvailability.js index 9053b3884c44593cbed941f16d61ce89012f50bc..c50d1231077fa042d8f1c5c102a5335a9fd08ad6 100644 --- a/src/js/itemAvailability.js +++ b/src/js/itemAvailability.js @@ -217,19 +217,22 @@ window.isClothingAccessible = (function() { } let niceDB; let harshDB; - if (category === "clothing") { + if (["clothing", "clothes"].includes(category)) { niceDB = App.Data.misc.niceClothes; harshDB = App.Data.misc.harshClothes; } else if (category === "collar") { niceDB = App.Data.misc.niceCollars; harshDB = App.Data.misc.harshCollars; + } else { + niceDB = App.Data.misc[category]; } let item = niceDB.find((i) => i.value === string); - if (!item) { + if (!item && typeof harshDB !== undefined) { item = harshDB.find((i) => i.value === string); } if (!item) { - console.log(`${string} is not a registered piece of clothing! Check App.Data.Misc.`); + console.log(`${string} is not a registered piece of clothing! Check App.Data.Misc.${category}`); + console.log(string); return false; /* couldn't be found */ } return isAvailable(item); diff --git a/src/js/slaveInteract.js b/src/js/slaveInteract.js index 556fad1be8ff69322b62d8021c267eb79710d909..2496e3b90b1e8382f1d4e79c3a1bb226b8da4ba9 100644 --- a/src/js/slaveInteract.js +++ b/src/js/slaveInteract.js @@ -876,7 +876,6 @@ App.UI.SlaveInteract.bloating = function(slave) { return jQuery('#bloating').empty().append(bloating); }; - App.UI.SlaveInteract.fertility = function(slave) { const { diff --git a/src/js/wardrobeUse.js b/src/js/wardrobeUse.js index f7dea2a3f401f1e11ca7a8988377c623d5a44d4b..8949cd73066bf876e048c9e6e9c3c35a0a8259ae 100644 --- a/src/js/wardrobeUse.js +++ b/src/js/wardrobeUse.js @@ -11,8 +11,24 @@ App.UI.Wardrobe.clothes = function(slave) { he, him, his, hers, himself, boy, He, His } = getPronouns(slave); - let choiceOptionsArray= []; - choiceOptionsArray.push({text: `Let ${him} choose`, updateSlave: {clothes: `choosing her own clothes`}}); + let el = document.createElement('div'); + + let label = document.createElement('div'); + label.append(`Clothes: `); + + let choice = document.createElement('span'); + choice.style.fontWeight = "bold"; + choice.textContent = (`${slave.clothes} `); + label.appendChild(choice); + + // Choose her own + if (slave.clothes !== `choosing her own clothes`) { + let choiceOptionsArray= []; + choiceOptionsArray.push({text: `Let ${him} choose`, updateSlave: {clothes: `choosing her own clothes`}}); + label.appendChild(App.UI.Wardrobe.generateRows(choiceOptionsArray, "clothes", slave, true)); + } + el.appendChild(label); + let niceOptionsArray= []; let harshOptionsArray= []; @@ -45,116 +61,133 @@ App.UI.Wardrobe.clothes = function(slave) { niceOptionsArray = niceOptionsArray.sort((a, b) => (a.text > b.text) ? 1 : -1); harshOptionsArray = harshOptionsArray.sort((a, b) => (a.text > b.text) ? 1 : -1); + // Nice options + let links = document.createElement('div'); + links.className = "choices"; + links.append(`Nice: `); + links.appendChild(App.UI.Wardrobe.generateRows(niceOptionsArray, "clothes", slave, false)); + el.appendChild(links); + + // Harsh options + links = document.createElement('div'); + links.className = "choices"; + links.append(`Harsh: `); + links.appendChild(App.UI.Wardrobe.generateRows(harshOptionsArray, "clothes", slave, false)); + el.appendChild(links); + + return jQuery('#clothes').empty().append(el); +}; + +App.UI.Wardrobe.collar = function(slave) { + if (slave.fuckdoll !== 0) { + return; + } + let el = document.createElement('div'); let label = document.createElement('div'); - label.append(`Clothes: `); + label.append(`Collar: `); let choice = document.createElement('span'); choice.style.fontWeight = "bold"; - choice.textContent = (`${slave.clothes} `); + choice.textContent = (`${slave.collar} `); label.appendChild(choice); // Choose her own - label.appendChild(generateRows(choiceOptionsArray)); + if (slave.collar !== `none`) { + let choiceOptionsArray= []; + choiceOptionsArray.push({text: `None`, updateSlave: {collar: `none`}}); + label.appendChild(App.UI.Wardrobe.generateRows(choiceOptionsArray, "collar", slave, true)); + } el.appendChild(label); + let niceOptionsArray= []; + let harshOptionsArray= []; + + let clothingOption; + // Nice collar + App.Data.misc.niceCollars.forEach(item => { + clothingOption = { + text: item.name, + updateSlave: {collar: item.value} + }; + if (item.fs) { + clothingOption.FS = item.fs; + } + niceOptionsArray.push(clothingOption); + }); + // Harsh collar + App.Data.misc.harshCollars.forEach(item => { + clothingOption = { + text: item.name, + updateSlave: {collar: item.value} + }; + if (item.fs) { + clothingOption.FS = item.fs; + } + harshOptionsArray.push(clothingOption); + }); + + // Sort + niceOptionsArray = niceOptionsArray.sort((a, b) => (a.text > b.text) ? 1 : -1); + harshOptionsArray = harshOptionsArray.sort((a, b) => (a.text > b.text) ? 1 : -1); // Nice options let links = document.createElement('div'); links.className = "choices"; links.append(`Nice: `); - links.appendChild(generateRows(niceOptionsArray)); + links.appendChild(App.UI.Wardrobe.generateRows(niceOptionsArray, "collar", slave, false)); el.appendChild(links); // Harsh options links = document.createElement('div'); links.className = "choices"; links.append(`Harsh: `); - links.appendChild(generateRows(harshOptionsArray)); + links.appendChild(App.UI.Wardrobe.generateRows(harshOptionsArray, "collar", slave, false)); el.appendChild(links); - return jQuery('#clothes').empty().append(el); + return jQuery('#collar').empty().append(el); +}; +App.UI.Wardrobe.armAccessory = function(slave) { + if (slave.fuckdoll !== 0) { + return; + } - function generateRows(array) { - let row = document.createElement('span'); - for (let i = 0; i < array.length; i++) { - let link; - const separator = document.createTextNode(` | `); - const keys = Object.keys(array[i]); - - // Test to see if there was a problem with the key - for (let j = 0; j < keys.length; j++) { - if (["FS", "text", "updateSlave", "update", "note", "disabled"].includes(keys[j])) { - continue; - } else { - array[i].text += " ERROR, THIS SCENE WAS NOT ENTERED CORRECTLY"; - console.log("Trash found while generateRows() was running: " + keys[j] + ": " + array[i][keys[j]]); - break; - } - } - if (array[i].updateSlave.clothes === `choosing her own clothes` || isClothingAccessible.entry(array[i].updateSlave.clothes, "clothing")) { - // is it just text? - if (array[i].disabled) { - link = App.UI.DOM.disabledLink(array[i].text, [array[i].disabled]); - } else { - link = document.createElement('span'); - - // Set up the link - link.appendChild( - App.UI.DOM.link( - `${array[i].text} `, - () => { click(array[i]); }, - ) - ); - - if (array[i].FS) { - let FS = array[i].FS.substring(2); // Given "FSEdoRevivalist", cut off the first two letters to start a user friendly tooltip - FS = FS.replace(/([A-Z])/g, ` $1`); // Given "EdoRevivalist", find every capital letter and put a space in front of it - FS = App.UI.DOM.disabledLink(`FS`, [FS]); // Tooltip should read "Edo Revivalist" - FS.style.fontStyle = "italic"; - link.appendChild(FS); - } - - // add a note node if required - if (array[i].note) { - let note = document.createElement('span'); - note.textContent = (` ${array[i].note}`); - note.className = "note"; - link.appendChild(note); - } - } - row.appendChild(link); - if (i < array.length-1) { - row.appendChild(separator); - } - } - } + let el = document.createElement('div'); - return row; + let label = document.createElement('div'); + label.append(`Arm accessory: `); - function click(arrayOption) { - if (arrayOption.updateSlave) { - Object.assign(slave, arrayOption.updateSlave); - } - if (arrayOption.update) { - Object.assign(V, arrayOption.update); - } - if (arrayOption.clothes === `choosing her own clothes`) { - slave.choosesOwnClothes = 1; - } else { - slave.choosesOwnClothes = 0; - } + let choice = document.createElement('span'); + choice.style.fontWeight = "bold"; + choice.textContent = (`${slave.armAccessory} `); + label.appendChild(choice); - App.UI.Wardrobe.refreshAll(slave); - return; - } + let array = []; + + // Choose her own + if (slave.armAccessory !== "none") { + array.push({text: `None`, updateSlave: {armAccessory: `none`}}); + label.appendChild(App.UI.Wardrobe.generateRows(array, "armAccessory", slave, true)); } + + el.appendChild(label); + + let links = document.createElement('div'); + links.className = "choices"; + array = [ + {text: "Hand gloves", updateSlave: {armAccessory: "hand gloves"}}, + {text: "Elbow gloves", updateSlave: {armAccessory: "elbow gloves"}} + ]; + links.appendChild(App.UI.Wardrobe.generateRows(array, "armAccessory", slave, true)); + el.appendChild(links); + + return jQuery('#armAccessory').empty().append(el); }; -App.UI.Wardrobe.collar = function(slave) { +App.UI.Wardrobe.shoes = function(slave) { if (slave.fuckdoll !== 0) { return; } @@ -166,145 +199,168 @@ App.UI.Wardrobe.collar = function(slave) { } = getPronouns(slave); let choiceOptionsArray= []; - choiceOptionsArray.push({text: `None`, updateSlave: {collar: `none`}}); + choiceOptionsArray.push({text: `None`, updateSlave: {shoes: `none`}}); - let niceOptionsArray= []; - let harshOptionsArray= []; + let optionsArray= []; let clothingOption; - // Nice collar - App.Data.misc.niceCollars.forEach(item => { + App.Data.misc.shoes.forEach(item => { clothingOption = { text: item.name, - updateSlave: {collar: item.value} + updateSlave: {shoes: item.value} }; if (item.fs) { clothingOption.FS = item.fs; } - niceOptionsArray.push(clothingOption); - }); - // Harsh collar - App.Data.misc.harshCollars.forEach(item => { - clothingOption = { - text: item.name, - updateSlave: {collar: item.value} - }; - if (item.fs) { - clothingOption.FS = item.fs; - } - harshOptionsArray.push(clothingOption); + optionsArray.push(clothingOption); }); // Sort - niceOptionsArray = niceOptionsArray.sort((a, b) => (a.text > b.text) ? 1 : -1); - harshOptionsArray = harshOptionsArray.sort((a, b) => (a.text > b.text) ? 1 : -1); + optionsArray = optionsArray.sort((a, b) => (a.text > b.text) ? 1 : -1); let el = document.createElement('div'); let label = document.createElement('div'); - label.append(`Collar: `); + label.append(`Shoes: `); let choice = document.createElement('span'); choice.style.fontWeight = "bold"; - choice.textContent = (`${slave.collar} `); + choice.textContent = (`${slave.shoes} `); label.appendChild(choice); // Choose her own - label.appendChild(generateRows(choiceOptionsArray)); - + if (slave.shoes !== `none`) { + label.appendChild(App.UI.Wardrobe.generateRows(choiceOptionsArray, "shoes", slave, true)); + } el.appendChild(label); - - // Nice options + // Options let links = document.createElement('div'); links.className = "choices"; - links.append(`Nice: `); - links.appendChild(generateRows(niceOptionsArray)); + links.appendChild(App.UI.Wardrobe.generateRows(optionsArray, "shoes", slave)); el.appendChild(links); - // Harsh options - links = document.createElement('div'); + return jQuery('#shoes').empty().append(el); +}; + +App.UI.Wardrobe.legAccessory = function(slave) { + if (slave.fuckdoll !== 0) { + return; + } + + const + { + // eslint-disable-next-line no-unused-vars + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + + let el = document.createElement('div'); + + let label = document.createElement('div'); + label.append(`Leg accessory: `); + + let choice = document.createElement('span'); + choice.style.fontWeight = "bold"; + choice.textContent = (`${slave.legAccessory} `); + label.appendChild(choice); + + let array = []; + + // Choose her own + if (slave.legAccessory !== "none") { + array.push({text: `None`, updateSlave: {legAccessory: `none`}}); + label.appendChild(App.UI.Wardrobe.generateRows(array, "legAccessory", slave, true)); + } + + el.appendChild(label); + + let links = document.createElement('div'); links.className = "choices"; - links.append(`Harsh: `); - links.appendChild(generateRows(harshOptionsArray)); + array = [ + {text: "Short stockings", updateSlave: {legAccessory: "short stockings"}}, + {text: "Long stockings", updateSlave: {legAccessory: "long stockings"}} + ]; + links.appendChild(App.UI.Wardrobe.generateRows(array, "legAccessory", slave, true)); el.appendChild(links); - return jQuery('#collar').empty().append(el); - + return jQuery('#legAccessory').empty().append(el); +}; - function generateRows(array) { - let row = document.createElement('span'); - for (let i = 0; i < array.length; i++) { - let link; - const separator = document.createTextNode(` | `); - const keys = Object.keys(array[i]); - - // Test to see if there was a problem with the key - for (let j = 0; j < keys.length; j++) { - if (["FS", "text", "updateSlave", "update", "note", "disabled"].includes(keys[j])) { - continue; - } else { - array[i].text += " ERROR, THIS SCENE WAS NOT ENTERED CORRECTLY"; - console.log("Trash found while generateRows() was running: " + keys[j] + ": " + array[i][keys[j]]); - break; - } +App.UI.Wardrobe.generateRows = function(array, category, slave, ignoreAccessCheck="false") { // category should be in the form of slave.category, the thing we want to update. + let row = document.createElement('span'); + for (let i = 0; i < array.length; i++) { + let link; + const separator = document.createTextNode(` | `); + const keys = Object.keys(array[i]); + + // Test to see if there was a problem with the key + for (let j = 0; j < keys.length; j++) { + if (["FS", "text", "updateSlave", "update", "note", "disabled"].includes(keys[j])) { + continue; + } else { + array[i].text += " ERROR, THIS SCENE WAS NOT ENTERED CORRECTLY"; + console.log("Trash found while generateRows() was running: " + keys[j] + ": " + array[i][keys[j]]); + break; } - if (array[i].updateSlave.collar === `none` || isClothingAccessible.entry(array[i].updateSlave.collar, "collar")) { - // is it just text? - if (array[i].disabled) { - link = App.UI.DOM.disabledLink(array[i].text, [array[i].disabled]); - } else { - link = document.createElement('span'); - - // Set up the link - link.appendChild( - App.UI.DOM.link( - `${array[i].text} `, - () => { click(array[i]); }, - ) - ); - - if (array[i].FS) { - let FS = array[i].FS.substring(2); // Given "FSEdoRevivalist", cut off the first two letters to start a user friendly tooltip - FS = FS.replace(/([A-Z])/g, ` $1`); // Given "EdoRevivalist", find every capital letter and put a space in front of it - FS = App.UI.DOM.disabledLink(`FS`, [FS]); // Tooltip should read "Edo Revivalist" - FS.style.fontStyle = "italic"; - link.appendChild(FS); - } - - // add a note node if required - if (array[i].note) { - let note = document.createElement('span'); - note.textContent = (` ${array[i].note}`); - note.className = "note"; - link.appendChild(note); - } + } + if (ignoreAccessCheck === true || isClothingAccessible.entry(array[i].updateSlave[category], `${category}`)) { + // is it just text? + if (array[i].disabled) { + link = App.UI.DOM.disabledLink(array[i].text, [array[i].disabled]); + } else { + link = document.createElement('span'); + + // Set up the link + link.appendChild( + App.UI.DOM.link( + `${array[i].text} `, + () => { click(array[i]); }, + ) + ); + + if (array[i].FS) { + let FS = array[i].FS.substring(2); // Given "FSEdoRevivalist", cut off the first two letters to start a user friendly tooltip + FS = FS.replace(/([A-Z])/g, ` $1`); // Given "EdoRevivalist", find every capital letter and put a space in front of it + FS = App.UI.DOM.disabledLink(`FS`, [FS]); // Tooltip should read "Edo Revivalist" + FS.style.fontStyle = "italic"; + link.appendChild(FS); } - row.appendChild(link); - if (i < array.length-1) { - row.appendChild(separator); + + // add a note node if required + if (array[i].note) { + let note = document.createElement('span'); + note.textContent = (` ${array[i].note}`); + note.className = "note"; + link.appendChild(note); } } + row.appendChild(link); + if (i < array.length-1) { + row.appendChild(separator); + } } + } - return row; + return row; - function click(arrayOption) { - if (arrayOption.updateSlave) { - Object.assign(slave, arrayOption.updateSlave); - } - if (arrayOption.update) { - Object.assign(V, arrayOption.update); - } - App.UI.Wardrobe.refreshAll(slave); - return; + function click(arrayOption) { + if (arrayOption.updateSlave) { + Object.assign(slave, arrayOption.updateSlave); } + if (arrayOption.update) { + Object.assign(V, arrayOption.update); + } + App.UI.Wardrobe.refreshAll(slave); + return; } }; App.UI.Wardrobe.refreshAll = function(slave) { App.UI.Wardrobe.clothes(slave); App.UI.Wardrobe.collar(slave); + App.UI.Wardrobe.armAccessory(slave); + App.UI.Wardrobe.shoes(slave); + App.UI.Wardrobe.legAccessory(slave); return; }; diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw index eafafbf507d0aeba361a0d1ff8c3f80567fb61ac..307d47c23b0b7b02695db8bc4d8457d1c0e37f18 100644 --- a/src/uncategorized/slaveInteract.tw +++ b/src/uncategorized/slaveInteract.tw @@ -202,31 +202,15 @@ <span id="collar"></span> <script>App.UI.Wardrobe.collar(V.activeSlave)</script> - <<if hasAnyArms($activeSlave)>> - <br>Arm accessory: ''<span id="armAccessory">$activeSlave.armAccessory</span>.'' - <<link "None">><<set $activeSlave.armAccessory = "none">><<replace "#armAccessory">>$activeSlave.armAccessory<</replace>><</link>> - | <<link "Hand gloves">><<set $activeSlave.armAccessory = "hand gloves">><<replace "#armAccessory">>$activeSlave.armAccessory<</replace>><</link>> - | <<link "Elbow gloves">><<set $activeSlave.armAccessory = "elbow gloves">><<replace "#armAccessory">>$activeSlave.armAccessory<</replace>><</link>> - <</if>> + <span id="armAccessory"></span> + <script>App.UI.Wardrobe.armAccessory(V.activeSlave)</script> <<if hasAnyLegs($activeSlave)>> - <br>Shoes: ''<span id="shoes">$activeSlave.shoes</span>.'' - <<link "Go barefoot">><<set $activeSlave.shoes = "none">><<replace "#shoes">>$activeSlave.shoes<</replace>><</link>> - | <<link "Flats">><<set $activeSlave.shoes = "flats">><<replace "#shoes">>$activeSlave.shoes<</replace>><</link>> - | <<link "Heels">><<set $activeSlave.shoes = "heels">><<replace "#shoes">>$activeSlave.shoes<</replace>><</link>> - | <<link "Pumps">><<set $activeSlave.shoes = "pumps">><<replace "#shoes">>$activeSlave.shoes<</replace>><</link>> - | <<link "Thigh boots">><<set $activeSlave.shoes = "boots">><<replace "#shoes">>$activeSlave.shoes<</replace>><</link>> - | <<link "Painfully extreme heels">><<set $activeSlave.shoes = "extreme heels">><<replace "#shoes">>$activeSlave.shoes<</replace>><</link>> - <<if isItemAccessible("platform heels")>> - | <<link "Platforms">><<set $activeSlave.shoes = "platform shoes">><<replace "#shoes">>$activeSlave.shoes<</replace>><</link>> - | <<link "Platform heels">><<set $activeSlave.shoes = "platform heels">><<replace "#shoes">>$activeSlave.shoes<</replace>><</link>> - | <<link "Painfully extreme platform heels">><<set $activeSlave.shoes = "extreme platform heels">><<replace "#shoes">>$activeSlave.shoes<</replace>><</link>> - <</if>> + <span id="shoes"></span> + <script>App.UI.Wardrobe.shoes(V.activeSlave)</script> - <br>Leg accessory: ''<span id="legAccessory">$activeSlave.legAccessory</span>.'' - <<link "None">><<set $activeSlave.legAccessory = "none">><<replace "#legAccessory">>$activeSlave.legAccessory<</replace>><</link>> - | <<link "Short stockings">><<set $activeSlave.legAccessory = "short stockings">><<replace "#legAccessory">>$activeSlave.legAccessory<</replace>><</link>> - | <<link "Long stockings">><<set $activeSlave.legAccessory = "long stockings">><<replace "#legAccessory">>$activeSlave.legAccessory<</replace>><</link>> + <span id="legAccessory"></span> + <script>App.UI.Wardrobe.legAccessory(V.activeSlave)</script> <</if>> <br>Torso accessory: ''<span id="bellyAccessory">$activeSlave.bellyAccessory</span>.'' diff --git a/src/uncategorized/wardrobe.tw b/src/uncategorized/wardrobe.tw index 4fbd62d0268359393c5b45d0b15bd02e52a8c35b..c216f9526989329ee6f3102e3689bd4466b6d704 100644 --- a/src/uncategorized/wardrobe.tw +++ b/src/uncategorized/wardrobe.tw @@ -12,7 +12,11 @@ <p class="scene-intro"> 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 -<<if ($cheatMode == 1) || (isClothingAccessible.entry("a bunny outfit") && isClothingAccessible.entry("chains") && isClothingAccessible.entry("conservative clothing") && isClothingAccessible.entry("Western clothing") && isClothingAccessible.entry("body oil") && isClothingAccessible.entry("a chattel habit") && isClothingAccessible.entry("a toga") && isClothingAccessible.entry("a huipil") && isClothingAccessible.entry("a kimono") && isClothingAccessible.entry("harem gauze") && isClothingAccessible.entry("a slutty qipao") && isItemAccessible("ancient Egyptian") && isClothingAccessible.entry("a maternity dress") && isClothingAccessible.entry("attractive lingerie for a pregnant woman") && isClothingAccessible.entry("a small empathy belly") && isClothingAccessible.entry("stretch pants and a crop-top") && isClothingAccessible.entry("striped panties") && isClothingAccessible.entry("a schutzstaffel uniform") && isClothingAccessible.entry("a burqa") && isClothingAccessible.entry("a dirndl") && isClothingAccessible.entry("battlearmor") && isClothingAccessible.entry("a police uniform") && isClothingAccessible.entry("a gothic lolita dress") && isClothingAccessible.entry("a cybersuit") && isClothingAccessible.entry("jeans") && isClothingAccessible.entry("boyshorts") && isClothingAccessible.entry("sport shorts and a sports bra") && isClothingAccessible.entry("a monokini") && isClothingAccessible.entry("a nice pony outfit") && isClothingAccessible.entry("a Santa dress") && isClothingAccessible.entry("a bimbo outfit") && isClothingAccessible.entry("a courtesan dress"))>> +<<set _ownItAll = ( + App.Data.misc.niceClothes.every((i) => isClothingAccessible.entry(i.value, "clothing")) && + App.Data.misc.harshClothes.every((i) => isClothingAccessible.entry(i.value, "clothing")) +)>> +<<if _ownItAll>> outfits from all manner of cultures and societies; not a single style eludes you. <<else>> many styles of clothing ranging from exciting to mundane and sexy to practical.