diff --git a/devTools/types/FC/RA.d.ts b/devTools/types/FC/RA.d.ts index 1ffbafabf9bd7bda40c534318365b814e4e61819..f837d13e7695c0e361e6ee77d2c34465ad937fc3 100644 --- a/devTools/types/FC/RA.d.ts +++ b/devTools/types/FC/RA.d.ts @@ -25,6 +25,7 @@ declare namespace FC { } interface RuleSurgerySettings { + voice: number; eyes: number; hears: number; smells: number; diff --git a/src/js/rulesAssistant.js b/src/js/rulesAssistant.js index 8fec2409220b6cf93681a33a4214943e9bbbb9d6..e5b20fa7fd31536a6fd3414edbb738fb1bcbf4e0 100644 --- a/src/js/rulesAssistant.js +++ b/src/js/rulesAssistant.js @@ -364,6 +364,7 @@ App.RA.newRule = function() { /** @returns {FC.RA.RuleSurgerySettings} */ function emptySurgery() { return { + voice: null, eyes: null, hears: null, smells: null, diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js index 9b85122e9bbdd76e76c6a52b25457e589ae8abfb..a289ccc665e09e968fb59a8a66cdb776ca5496c5 100644 --- a/src/js/rulesAssistantOptions.js +++ b/src/js/rulesAssistantOptions.js @@ -1879,6 +1879,7 @@ App.RA.options = (function() { constructor(tabButtons) { super("autosurgery", "Autosurgery", tabButtons); this.appendChild(new AutosurgerySwitch()); + this.appendChild(new VoiceSurgeryList()); this.appendChild(new VisionSurgeryList()); this.appendChild(new HearingSurgeryList()); this.appendChild(new SmellSurgeryList()); @@ -3838,6 +3839,20 @@ App.RA.options = (function() { } } + class VoiceSurgeryList extends RadioSelector { + constructor() { + const items = [ + ["mute", 0], + ["deep", 1], + ["feminine", 2], + ["high, girly", 3], + ]; + super("Voice modification", items, true); + this.setValue(current_rule.set.surgery.voice); + this.onchange = (value) => current_rule.set.surgery.voice = value; + } + } + class VisionSurgeryList extends RadioSelector { constructor() { const items = [ diff --git a/src/js/rulesAutosurgery.js b/src/js/rulesAutosurgery.js index b5d6511683f242d848ca071f11bc107846da0000..003746bde710b163b59f3d61e746e9fa448e1169 100644 --- a/src/js/rulesAutosurgery.js +++ b/src/js/rulesAutosurgery.js @@ -169,6 +169,8 @@ globalThis.rulesAutosurgery = (function() { commitProcedure(`surgery to correct ${his} sense of taste`, s => { s.tastes = 0; }); } else if (slave.tastes === 0 && thisSurgery.tastes === -1) { commitProcedure(`surgery to muffle ${his} sense of taste`, s => { s.tastes = -1; }); + } else if (slave.voice !== thisSurgery.voice) { + commitProcedure(`surgery to ${(slave.voice > thisSurgery.voice) ? "lower" : "raise"} ${his} voice`, s => { s.voice = thisSurgery.voice; }); } if (slave.lactation === 2 && thisSurgery.lactation === 0) {