diff --git a/js/003-data/slaveWearData.js b/js/003-data/slaveWearData.js index ee5f17b6f40c2bd78e4fb0360f5554ebc3d9450c..b649e699b8f82f067a8f7a99d8cb4b1b3ecd1116 100644 --- a/js/003-data/slaveWearData.js +++ b/js/003-data/slaveWearData.js @@ -983,53 +983,6 @@ App.Data.slaveWear = { ] ]), - vaginalAccessories: new Map([ - ["none", {name: "None"}], - ["bullet vibrator", {name: "Bullet vibrator"}], - ["smart bullet vibrator", - { - name: "Smart bullet vibrator", - get requirements() { - return V.boughtItem.toys.smartVibes === 1; - } - } - ], - ["dildo", {name: "Dildo"}], - ["long dildo", - { - name: "Long dildo", - get requirements() { - return V.boughtItem.toys.dildos === 1; - } - } - ], - ["large dildo", {name: "Large dildo"}], - ["long, large dildo", - { - name: "Long, large dildo", - get requirements() { - return V.boughtItem.toys.dildos === 1; - } - } - ], - ["huge dildo", - { - name: "Huge dildo", - get requirements() { - return V.boughtItem.toys.dildos === 1; - } - } - ], - ["long, huge dildo", - { - name: "Long, huge dildo", - get requirements() { - return V.boughtItem.toys.dildos === 1; - } - } - ] - ]), - vaginalAttachments: new Map([ ["none", {name: "None"}], ["vibrator", @@ -1263,7 +1216,98 @@ App.Data.buttplugs = new Map([ } ] ]); +/** + * @typedef {object} vaginalAccessories + * @property {string} name + * @property {FC.FutureSociety} [fs] Automatically unlocked with this FS. + * @property {boolean} [requirements] + * @property {0|1|2|3} width + * @property {0|1|2} length + */ +/** + * @type {Map<string, vaginalAccessories>} + */ +App.Data.vaginalAccessories = new Map([ + ["none", + { + name: "None", + width: 0, + length: 0 + } + ], + ["bullet vibrator", + { + name: "Bullet vibrator", + width: 0, + length: 1 + } + ], + ["smart bullet vibrator", + { + name: "Smart bullet vibrator", + get requirements() { + return V.boughtItem.toys.smartVibes === 1; + }, + width: 0, + length: 1 + } + ], + ["dildo", + { + name: "Dildo", + width: 1, + length: 1 + } + ], + ["long dildo", + { + name: "Long dildo", + get requirements() { + return V.boughtItem.toys.dildos === 1; + }, + width: 1, + length: 2 + } + ], + ["large dildo", + { + name: "Large dildo", + width: 2, + length: 1 + } + ], + ["long, large dildo", + { + name: "Long, large dildo", + get requirements() { + return V.boughtItem.toys.dildos === 1; + }, + width: 2, + length: 2 + } + ], + ["huge dildo", + { + name: "Huge dildo", + get requirements() { + return V.boughtItem.toys.dildos === 1; + }, + width: 3, + length: 1 + } + ], + ["long, huge dildo", + { + name: "Long, huge dildo", + get requirements() { + return V.boughtItem.toys.dildos === 1; + }, + width: 3, + length: 2 + } + ] +]); /** * @typedef {object} slaveWearChastity * @property {string} name @@ -1381,3 +1425,4 @@ App.Data.chastityDevices = new Map([ } ] ]); + diff --git a/src/interaction/siWardrobe.js b/src/interaction/siWardrobe.js index 5ce522bbb185278210505758ef579ba8574118ff..511d657d698551c5146723493cbfdd8be745b516 100644 --- a/src/interaction/siWardrobe.js +++ b/src/interaction/siWardrobe.js @@ -590,7 +590,7 @@ App.UI.SlaveInteract.wardrobe = function(slave) { let optionsArray = []; - for (const [key, object] of App.Data.slaveWear.vaginalAccessories) { + for (const [key, object] of App.Data.vaginalAccessories) { if (key === "none") { // skip none in set, we set the link elsewhere. continue; diff --git a/src/js/itemAvailability.js b/src/js/itemAvailability.js index d8975c4fcb1d77997979d22ff243bb5cce4960ca..e2349b2a2eb1980f959b048af5b4f60772297bbe 100644 --- a/src/js/itemAvailability.js +++ b/src/js/itemAvailability.js @@ -34,7 +34,7 @@ globalThis.isItemAccessible = (function() { selectedDB = App.Data.slaveWear.buttplugAttachments; break; case "vaginalAccessory": - selectedDB = App.Data.slaveWear.vaginalAccessories; + selectedDB = App.Data.vaginalAccessories; break; case "vaginalAttachment": selectedDB = App.Data.slaveWear.vaginalAttachments; diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js index 294b86564f30c9595c969fb68c540dbb72a02da9..23c59b39e43381f354f08f40a589136c55afc656 100644 --- a/src/js/rulesAssistantOptions.js +++ b/src/js/rulesAssistantOptions.js @@ -1928,7 +1928,7 @@ App.RA.options = (function() { class VagAccVirginsList extends ListSelector { constructor() { - super("Vaginal accessories for virgins", isItemAccessible.array(App.Data.slaveWear.vaginalAccessories)); + super("Vaginal accessories for virgins", isItemAccessible.array(App.Data.vaginalAccessories)); this.setValue(current_rule.set.virginAccessory); this.onchange = (value) => current_rule.set.virginAccessory = value; } @@ -1936,7 +1936,7 @@ App.RA.options = (function() { class VagAccAVirginsList extends ListSelector { constructor() { - super("Vaginal accessories for anal virgins", isItemAccessible.array(App.Data.slaveWear.vaginalAccessories)); + super("Vaginal accessories for anal virgins", isItemAccessible.array(App.Data.vaginalAccessories)); this.setValue(current_rule.set.aVirginAccessory); this.onchange = (value) => current_rule.set.aVirginAccessory = value; } @@ -1944,7 +1944,7 @@ App.RA.options = (function() { class VagAccOtherList extends ListSelector { constructor() { - super("Vaginal accessories for other slaves", isItemAccessible.array(App.Data.slaveWear.vaginalAccessories)); + super("Vaginal accessories for other slaves", isItemAccessible.array(App.Data.vaginalAccessories)); this.setValue(current_rule.set.vaginalAccessory); this.onchange = (value) => current_rule.set.vaginalAccessory = value; }