From 716f041e1d761bcf0500773b80ba38b7519bb12c Mon Sep 17 00:00:00 2001 From: DCoded <dcoded@live.com> Date: Sat, 16 Feb 2019 13:45:51 -0500 Subject: [PATCH] Initial vaginalAttachment setup --- src/init/setupVars.tw | 6 ++++++ src/js/SlaveState.js | 6 ++++++ src/js/datatypeCleanupJS.js | 6 ++++++ src/js/rulesAssistantOptions.js | 9 +++++++++ src/js/slaveSummaryWidgets.js | 8 ++++++++ src/pregmod/widgets/bodyswapWidgets.tw | 1 + src/uncategorized/reRelativeRecruiter.tw | 1 + src/uncategorized/slaveStats.tw | 1 + 8 files changed, 38 insertions(+) diff --git a/src/init/setupVars.tw b/src/init/setupVars.tw index a1de3392ff9..5a23e12fa46 100644 --- a/src/init/setupVars.tw +++ b/src/init/setupVars.tw @@ -2082,6 +2082,12 @@ Then pick _namePool.random(), or display those names as possible choices, or do {name: "Anal chastity belt", value: "anal chastity"}, {name: "Combined chastity belt", value: "combined chastity"}]>> +<<set setup.vaginalAttachments = [ + {name: "No default setting", value: "no default setting"}, + {name: "None", value: "none"}, + {name: "Bullet vibrator", value: "bullet vibrator"}, + {name: "Vibrating dildo", value: "vibrating dildo"}]>> + <<set setup.dickAccessories = [ {name: "No default setting", value: "no default setting"}, {name: "None", value: "none"}, diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js index ddc98c3653e..0fff9142222 100644 --- a/src/js/SlaveState.js +++ b/src/js/SlaveState.js @@ -1529,6 +1529,12 @@ App.Entity.SlaveState = class SlaveState { * * "anal chastity" * * "combined chastity" */ + this.vaginalAttachment = "none"; + /** + * * "none" + * * "bullet vibrator" + * * "vibrating dildo" + */ this.dickAccessory = "none"; /** * * "none" diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js index bad5c1431f6..ee9df56b7e0 100644 --- a/src/js/datatypeCleanupJS.js +++ b/src/js/datatypeCleanupJS.js @@ -372,6 +372,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() { if (typeof slave.vaginalAccessory !== "string") { slave.vaginalAccessory = "none"; } + if (typeof slave.vaginalAttachments !== "string") { + slave.vaginalAttachments = "none"; + } if (typeof slave.dickAccessory !== "string") { slave.dickAccessory = "none"; } @@ -942,6 +945,9 @@ window.childCosmeticsDatatypeCleanup = function childCosmeticsDatatypeCleanup(ch if (typeof child.vaginalAccessory !== "string") { child.vaginalAccessory = "none"; } + if (typeof child.vaginalAttachments !== "string") { + child.vaginalAttachments = "none"; + } if (typeof child.dickAccessory !== "string") { child.dickAccessory = "none"; } diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js index f9daa49363c..49f07cb2bd6 100644 --- a/src/js/rulesAssistantOptions.js +++ b/src/js/rulesAssistantOptions.js @@ -917,6 +917,7 @@ window.rulesAssistantOptions = (function() { this.appendChild(new VagAccVirginsList()); this.appendChild(new VagAccAVirginsList()); this.appendChild(new VagAccOtherList()); + this.appendChild(new VagAccAttachmentsList();) if (V.seeDicks !== 0 || V.makeDicks !== 0) { this.appendChild(new DickAccVirginsList()); this.appendChild(new DickAccOtherList()); @@ -1334,6 +1335,14 @@ window.rulesAssistantOptions = (function() { } } + class VagAccAttachmentsList extends List { /**TODO: this will need expanding */ + constructor() { + super("Vaginal attachments for slaves with vaginal accessories", accs); + this.setValue(current_rule.set.vaginalAttachment); + this.onchange = (value) => current_rule.set.vaginalAttachment = value; + } + } + class DickAccVirginsList extends List { constructor() { super("Dick accessories for anal virgins", setup.dickAccessories.map(i => [i.name, i.value])); diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js index 6a73d9818b1..3598ce92af9 100644 --- a/src/js/slaveSummaryWidgets.js +++ b/src/js/slaveSummaryWidgets.js @@ -4631,6 +4631,14 @@ window.SlaveSummaryUncached = (function(){ break; } r += " "; + switch (slave.vaginalAttachment) { /** TODO: this will need serious work */ + case "bullet vibrator": + r += `Attached bullet vibrator.`; + break; + case "vibrating dildo": + r += `Vibrating dildo.`; + break; + } } /** @param {App.Entity.SlaveState} slave */ diff --git a/src/pregmod/widgets/bodyswapWidgets.tw b/src/pregmod/widgets/bodyswapWidgets.tw index 612aee85096..6e284a0f88b 100644 --- a/src/pregmod/widgets/bodyswapWidgets.tw +++ b/src/pregmod/widgets/bodyswapWidgets.tw @@ -118,6 +118,7 @@ <<set $args[0].teeth = $args[1].teeth>> <<set $args[0].tonguePiercing = $args[1].tonguePiercing>> <<set $args[0].vagina = $args[1].vagina>> +<<set $args[0].vaginalAttachment = $args[1].vaginalAttachment>> <<set $args[0].vaginaLube = $args[1].vaginaLube>> <<set $args[0].vaginaPiercing = $args[1].vaginaPiercing>> <<set $args[0].vaginaTat = $args[1].vaginaTat>> diff --git a/src/uncategorized/reRelativeRecruiter.tw b/src/uncategorized/reRelativeRecruiter.tw index a1a3fa2449a..45890cc72e8 100644 --- a/src/uncategorized/reRelativeRecruiter.tw +++ b/src/uncategorized/reRelativeRecruiter.tw @@ -485,6 +485,7 @@ <<set $activeSlave.inflation = 0, $activeSlave.inflationType = "none", $activeSlave.inflationMethod = 0>> <<set $activeSlave.bodySwap = 0>> <<set $activeSlave.pregControl = "none">> +<<set $activeSlave.vaginalAttachment = "none">> <<set $activeSlave.buttplugAttachment = "none">> <<run SetBellySize($activeSlave)>> <<if $activeSlave.physicalAge < 6>> diff --git a/src/uncategorized/slaveStats.tw b/src/uncategorized/slaveStats.tw index 1795cfc1d3e..c8487ab2b20 100644 --- a/src/uncategorized/slaveStats.tw +++ b/src/uncategorized/slaveStats.tw @@ -248,6 +248,7 @@ slaveName: $activeSlave.slaveName /* TODO: figure out why this is being inden <br>collar: $activeSlave.collar <br>shoes: $activeSlave.shoes <br>vaginalAccessory: $activeSlave.vaginalAccessory +<br>vaginalAttachment: $activeSlave.vaginalAttachment <br>dickAccessory: $activeSlave.dickAccessory <br>legAccessory: $activeSlave.legAccessory <br>buttplug: $activeSlave.buttplug -- GitLab