diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js index 8b565adae01fc363914756ac81c9e55beec6adcb..4abf3903b1d5b1913402e0074e92743e4009043f 100644 --- a/src/js/DefaultRules.js +++ b/src/js/DefaultRules.js @@ -46,6 +46,8 @@ globalThis.DefaultRules = (function() { if (slave.fuckdoll === 0) { ProcessClothing(slave, rule); ProcessCollar(slave, rule); + ProcessMask(slave, rule); + ProcessGag(slave, rule); ProcessEyewear(slave, rule); ProcessEarwear(slave, rule); ProcessDildos(slave, rule); @@ -206,9 +208,6 @@ globalThis.DefaultRules = (function() { if (rule.collar === "preg biometrics" && slave.preg <= -1 && slave.ovaries === 0 && slave.mpreg === 0) { slave.collar = "none"; r += `${slave.slaveName} cannot utilize preg biometrics. `; - } else if ((rule.collar === "massive dildo gag" && slave.skill.oral <= 50)) { - slave.collar = "none"; - r += `${slave.slaveName} lacks the oral skill to successfully keep the massive dildo gag in ${his} throat. `; } else { slave.collar = rule.collar; } @@ -216,7 +215,7 @@ globalThis.DefaultRules = (function() { r += `${slave.slaveName} has been given no collar.`; } else if ((slave.collar === "pretty jewelry")) { r += `${slave.slaveName} has been given ${slave.collar}.`; - } else if ((["ball gag", "bell collar", "bit gag", "bowtie", "dildo gag", "massive dildo gag", "neck corset", "porcelain mask"].includes(slave.collar))) { + } else if ((["bell collar", "bowtie", "neck corset"].includes(slave.collar))) { r += `${slave.slaveName} has been given a ${slave.collar}.`; } else { r += `${slave.slaveName} has been given a ${slave.collar} collar.`; @@ -225,6 +224,49 @@ globalThis.DefaultRules = (function() { } } + /** + * @param {App.Entity.SlaveState} slave + * @param {App.RA.RuleSetters} rule + */ + function ProcessMask(slave, rule) { + // apply faceAccessory to slave + if ((rule.faceAccessory !== undefined) && (rule.faceAccessory !== null)) { + if (slave.faceAccessory !== rule.faceAccessory) { + r += "<br>"; + slave.faceAccessory = rule.faceAccessory; + if (slave.faceAccessory === "none") { + r += `${slave.slaveName} has had their mask removed.`; + } else { + r += `${slave.slaveName} has been given a ${slave.faceAccessory}.`; + } + } + } + } + + /** + * @param {App.Entity.SlaveState} slave + * @param {App.RA.RuleSetters} rule + */ + function ProcessGag(slave, rule) { + // apply mouthAccessory to slave + if ((rule.mouthAccessory !== undefined) && (rule.mouthAccessory !== null)) { + if (slave.mouthAccessory !== rule.mouthAccessory) { + r += "<br>"; + if ((rule.mouthAccessory === "massive dildo gag" && slave.skill.oral <= 50)) { + slave.mouthAccessory = "none"; + r += `${slave.slaveName} lacks the oral skill to successfully keep the massive dildo gag in ${his} throat. `; + } else { + slave.mouthAccessory = rule.mouthAccessory; + } + if (slave.mouthAccessory === "none") { + r += `${slave.slaveName} has been given no gag.`; + } else { + r += `${slave.slaveName} has been given a ${slave.mouthAccessory}.`; + } + } + } + } + /** * @param {App.Entity.SlaveState} slave * @param {App.RA.RuleSetters} rule diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js index 27554ebb74a037bebae672b5144a0a41b47c159f..08d195385554f6056bd3aad5df7c7d06573944b0 100644 --- a/src/js/rulesAssistantOptions.js +++ b/src/js/rulesAssistantOptions.js @@ -1573,6 +1573,8 @@ globalThis.rulesAssistantOptions = (function() { super("appearance", "Appearance", tabButtons); this.appendChild(new ClothesList()); this.appendChild(new CollarList()); + this.appendChild(new GagList()); + this.appendChild(new MaskList()); this.appendChild(new ShoeList()); this.appendChild(new CorsetList()); this.appendChild(new GlovesList()); @@ -1822,6 +1824,21 @@ globalThis.rulesAssistantOptions = (function() { } } + class MaskList extends ListSelector { + constructor() { + super("Mask", isItemAccessible.array(App.Data.misc.faceAccessory )); + this.setValue(current_rule.set.faceAccessory ); + this.onchange = (value) => current_rule.set.faceAccessory = value; + } + } + + class GagList extends ListSelector { + constructor() { + super("Gag", isItemAccessible.array(App.Data.misc.mouthAccessory )); + this.setValue(current_rule.set.mouthAccessory ); + this.onchange = (value) => current_rule.set.mouthAccessory = value; + } + } class ShoeList extends ListSelector { constructor() { super("Shoes", isItemAccessible.array(App.Data.misc.shoes));