From 0e24d7284f12c50d3a0e0a313e843258c5d382ce Mon Sep 17 00:00:00 2001 From: lowercasedonkey <lowercasedonkey@gmail.com> Date: Thu, 20 Feb 2020 00:19:30 -0500 Subject: [PATCH] vaginalAccessory --- js/003-data/miscData.js | 34 +++++++++++--- src/js/itemAvailability.js | 2 +- src/js/wardrobeUse.js | 72 +++++++++++++++++++++++++----- src/uncategorized/slaveInteract.tw | 24 +--------- 4 files changed, 93 insertions(+), 39 deletions(-) diff --git a/js/003-data/miscData.js b/js/003-data/miscData.js index 546660ce627..e257949a12a 100644 --- a/js/003-data/miscData.js +++ b/js/003-data/miscData.js @@ -2395,7 +2395,12 @@ App.Data.misc = { }, { name: "Smart bullet vibrator", - value: "smart bullet vibrator" + value: "smart bullet vibrator", + unlock: function(slave) { + if (V.toysBoughtSmartVibes > 0) { + return true; + } + } }, { name: "Dildo", @@ -2408,7 +2413,9 @@ App.Data.misc = { unlock: function(slave) { if (V.buyBigDildos > 0) { if (slave) { - if (slave.belly < 1500 && slave.weight < 130) { + if (!(slave.breedingMark !== 1 || V.propOutcome === 0 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset")) { + return "Elites frown on this"; + } else { return true; } } else { @@ -2428,7 +2435,9 @@ App.Data.misc = { unlock: function(slave) { if (V.buyBigDildos > 0) { if (slave) { - if (slave.belly < 1500 && slave.weight < 130) { + if (!(slave.breedingMark !== 1 || V.propOutcome === 0 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset")) { + return "Elites frown on this"; + } else { return true; } } else { @@ -2439,7 +2448,18 @@ App.Data.misc = { }, { name: "Huge dildo", - value: "huge dildo" + value: "huge dildo", + unlock: function(slave) { + if (slave) { + if (slave.vagina < 2) { + return `Slave's vagina is too small for this right now`; + } else { + return true; + } + } else { + return true; + } + } }, { name: "Long, huge dildo", @@ -2448,7 +2468,11 @@ App.Data.misc = { unlock: function(slave) { if (V.buyBigDildos > 0) { if (slave) { - if (slave.belly < 1500 && slave.weight < 130) { + if (!(slave.breedingMark !== 1 || V.propOutcome === 0 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset")) { + return "Elites frown on this"; + } else if (slave.vagina < 2) { + return `Slave's vagina is too small for this right now`; + } else { return true; } } else { diff --git a/src/js/itemAvailability.js b/src/js/itemAvailability.js index 18a4cb35330..25f9012c30e 100644 --- a/src/js/itemAvailability.js +++ b/src/js/itemAvailability.js @@ -250,7 +250,7 @@ window.isClothingAccessible = (function() { case "shoes": niceDB = App.Data.misc.shoes; break; - //case "chastity": + // case "chastity": // niceDB = App.Data.misc.vaginalAccessories; //this is going to be weird, they aren't in App.Data.Misc // break; default: diff --git a/src/js/wardrobeUse.js b/src/js/wardrobeUse.js index 98f74851562..ebbf024f6de 100644 --- a/src/js/wardrobeUse.js +++ b/src/js/wardrobeUse.js @@ -466,6 +466,65 @@ App.UI.Wardrobe.buttplugAttachment = function(slave) { return jQuery('#buttplugAttachment').empty().append(el); }; +App.UI.Wardrobe.vaginalAccessory = 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(`Vaginal accessory: `); + + let choice = document.createElement('span'); + choice.style.fontWeight = "bold"; + choice.textContent = (`${slave.vaginalAccessory} `); + label.appendChild(choice); + + if (slave.vaginalAccessory !== `none`) { + let choiceOptionsArray = []; + choiceOptionsArray.push({text: `None`, updateSlave: {vaginalAccessory: `none`}}); + label.appendChild(App.UI.Wardrobe.generateRows(choiceOptionsArray, "vaginalAccessory", slave, false)); + } + el.appendChild(label); + + let optionsArray = []; + + let clothingOption; + App.Data.misc.vaginalAccessories.forEach(item => { + clothingOption = { + text: item.name, + updateSlave: {vaginalAccessory: item.value} + }; + if (item.fs) { + clothingOption.FS = item.fs; + } + + if (item.value !== "none") { + // skip none in set, we set the link elsewhere. + optionsArray.push(clothingOption); + } + }); + + // Sort + // No sort here since we want small -> large. optionsArray = optionsArray.sort((a, b) => (a.text > b.text) ? 1 : -1); + + // Options + let links = document.createElement('div'); + links.className = "choices"; + links.appendChild(App.UI.Wardrobe.generateRows(optionsArray, "vaginalAccessory", slave, true)); + el.appendChild(links); + + return jQuery('#vaginalAccessory').empty().append(el); +}; + + App.UI.Wardrobe.generateRows = function(array, category, slave, accessCheck=false) { // category should be in the form of slave.category, the thing we want to update. let row = document.createElement('span'); @@ -552,21 +611,12 @@ App.UI.Wardrobe.refreshAll = function(slave) { App.UI.Wardrobe.bellyAccessory(slave); App.UI.Wardrobe.buttplug(slave); App.UI.Wardrobe.buttplugAttachment(slave); + App.UI.Wardrobe.vaginalAccessory(slave); + return; }; /* - if (isItemAccessible("tail") && slave.buttplug !== "none") { - <br> - Anal accessory attachment: ''<span id="buttplugAttach">slave.buttplugAttachment</span>.'' - <<link "None">>slave.buttplugAttachment = "none";<</link>> - if (V.toysBoughtButtPlugTails === 1) { - <<link "Tail">>slave.buttplugAttachment = "tail";<</link>> - <<link "Cat tail">>slave.buttplugAttachment = "cat tail";<</link>> - <<link "Fox tail">>slave.buttplugAttachment = "fox tail";<</link>> - <<link "Cow tail">>slave.buttplugAttachment = "cow tail";<</link>> - } - } if (slave.vagina > -1) { <br>Vaginal accessory: ''<span id="vaginalAccessory">slave.vaginalAccessory</span>.'' diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw index c451a7d7d37..6c3bba5ed1a 100644 --- a/src/uncategorized/slaveInteract.tw +++ b/src/uncategorized/slaveInteract.tw @@ -225,28 +225,8 @@ <</if>> <<if $activeSlave.vagina > -1>> - <br>Vaginal accessory: ''<span id="vaginalAccessory">$activeSlave.vaginalAccessory</span>.'' - <<link "None">><<set $activeSlave.vaginalAccessory = "none">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><<run App.UI.SlaveInteract.refreshAll($activeSlave)>><</link>> - <<if isItemAccessible("bullet vibrator")>> - | <<link "Bullet vibrator">><<set $activeSlave.vaginalAccessory = "bullet vibrator">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><</link>> - <</if>> - <<if isItemAccessible("smart bullet vibrator") && $toysBoughtSmartVibes == 1>> - | <<link "Smart bullet vibrator">><<set $activeSlave.vaginalAccessory = "smart bullet vibrator">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><</link>> - <</if>> - | <<link "Dildo">><<set $activeSlave.vaginalAccessory = "dildo">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><</link>> - <<if isItemAccessible("long dildo") && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> - | <<link "Long dildo">><<set $activeSlave.vaginalAccessory = "long dildo">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><</link>> - <</if>> - | <<link "Large dildo">><<set $activeSlave.vaginalAccessory = "large dildo">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><</link>> - <<if isItemAccessible("long, large dildo") && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> - | <<link "Large and long dildo">><<set $activeSlave.vaginalAccessory = "long, large dildo">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><</link>> - <</if>> - <<if $activeSlave.vagina >= 2>> - | <<link "Huge dildo">><<set $activeSlave.vaginalAccessory = "huge dildo">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><</link>> - <<if isItemAccessible("long, huge dildo") && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> - | <<link "Huge and long dildo">><<set $activeSlave.vaginalAccessory = "long, huge dildo">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><</link>> - <</if>> - <</if>> + <span id="vaginalAccessory"></span> + <script>App.UI.Wardrobe.vaginalAccessory(V.activeSlave)</script> <<if isItemAccessible("vibrator") && ($activeSlave.vaginalAccessory != "none" && $activeSlave.vaginalAccessory != "bullet vibrator" && $activeSlave.vaginalAccessory != "smart bullet vibrator") && $toysBoughtVaginalAttachments == 1>> <br> Vaginal accessory attachment: -- GitLab