diff --git a/features.js b/features.js index 4d0b631..3e37e9f 100644 --- a/features.js +++ b/features.js @@ -956,6 +956,7 @@ options = [ "name": "Male Genitals", "id": "maleParts", "optional": true, + "stats": ["cum"], "panels": ["dick"], "buttons": ["cockslap", "ball_smother"], "entries": @@ -1101,6 +1102,7 @@ options = [ "name": "Female Genitals", "id": "femaleParts", "optional": true, + "stats": ["femcum"], "panels": ["vagina"], "buttons": ["slit_toy"], "entries": @@ -1224,6 +1226,7 @@ options = [ "name": "Lactation", "id": "lactationEnabled", "type": "subcategory", + "stats": ["milk"], "buttons": ["breast_milk"], "warning": "Lactation is enabled", "entries": @@ -1331,6 +1334,7 @@ options = [ "name": "Gas", "id": "gasEnabled", "optional": true, + "stats": ["gas"], "panels": ["waste"], "warning": "Gas is enabled", "entries": @@ -1420,6 +1424,7 @@ options = [ "name": "Piss", "id": "pissEnabled", "optional": true, + "stats": ["piss"], "panels": ["waste"], "buttons": ["piss"], "warning": "Watersports enabled", @@ -1495,6 +1500,7 @@ options = [ "name": "Scat", "id": "scatEnabled", "optional": true, + "stats": ["scat"], "panels": ["waste"], "buttons": ["scat"], "warning": "Scat is enabled", diff --git a/game.js b/game.js index 88fb3d1..500cb4c 100644 --- a/game.js +++ b/game.js @@ -4272,7 +4272,7 @@ function loadPreset() { loadSettings(presets[select.selectedIndex]); } -function grabFormData(form, warnings, panels, buttons) { +function grabFormData(form, warnings, panels, buttons, stats) { if (form.hasAttribute("data-warning")) { warnings.push(form.getAttribute("data-warning")); } @@ -4292,11 +4292,20 @@ function grabFormData(form, warnings, panels, buttons) { panels.push(token); }) } + + if (form.hasAttribute("data-stats")) { + let text = form.getAttribute("data-stats"); + + text.split(",").forEach(function(token) { + stats.push(token); + }) + } } function generateSettings() { let form = document.forms.namedItem("custom-species-form"); let settings = {}; + let warnings = []; let panels = []; let buttons = []; @@ -4312,7 +4321,7 @@ function generateSettings() { settings[form[i].name] = form[i].checked; if (form[i].checked) { - grabFormData(form[i], warnings, panels, buttons); + grabFormData(form[i], warnings, panels, buttons, stats); } @@ -4320,12 +4329,12 @@ function generateSettings() { let name = form[i].name; if (form[i].checked) { settings[name] = form[i].value; - grabFormData(form[i], warnings, panels, buttons); + grabFormData(form[i], warnings, panels, buttons, stats); } } else if (form[i].type == "select-one") { settings[form[i].name] = form[i][form[i].selectedIndex].value; - grabFormData(form[i][form[i].selectedIndex], warnings, panels, buttons); + grabFormData(form[i][form[i].selectedIndex], warnings, panels, buttons, stats); } } @@ -4333,7 +4342,8 @@ function generateSettings() { "settings": settings, "warnings": warnings, "panels": panels, - "buttons": buttons + "buttons": buttons, + "stats": stats }; } @@ -4528,6 +4538,10 @@ function startGame(e) { enable_button(button); }); + info["stats"].forEach(function(stat) { + enable_stat(stat); + }); + for (var key in settings) { if (settings.hasOwnProperty(key)) { macro[key] = settings[key]; @@ -4630,8 +4644,6 @@ function startGame(e) { enable_victim("cock-vore","Cock vore"); } - enable_stat("cum"); - enable_growth_part("dick"); enable_growth_part("balls"); @@ -4668,7 +4680,6 @@ function startGame(e) { if (macro.unbirthEnabled) { enable_victim("unbirth","Unbirthed"); } - enable_stat("femcum"); enable_growth_part("slit"); enable_growth_part("womb"); @@ -4695,8 +4706,6 @@ function startGame(e) { if (macro.lactationEnabled) { enable_victim("milk-flood","Flooded by milk"); - - enable_stat("milk"); } if (macro.breastVore) { @@ -4727,7 +4736,6 @@ function startGame(e) { } if (macro.gasEnabled) { - enable_stat("gas"); if (macro.belchEnabled) { enable_panel("waste"); enable_victim("gas-belch","Belched on"); @@ -4750,8 +4758,6 @@ function startGame(e) { if (macro.pissEnabled) { enable_panel("waste"); - enable_stat("piss"); - enable_victim("piss","Pissed away"); if (macro.bladderVore) { @@ -4764,9 +4770,6 @@ function startGame(e) { } if (macro.scatEnabled) { - enable_panel("waste"); - - enable_stat("scat"); enable_victim("scat","Shat on"); @@ -5351,6 +5354,10 @@ function attach_form_data(element, data) { if (data.buttons != undefined) { element.setAttribute("data-buttons", data.buttons.join(",")); } + + if (data.stats != undefined) { + element.setAttribute("data-stats", data.stats.join(",")); + } } function construct_panels() {