| @@ -1,3 +1,480 @@ | |||
| panels = { | |||
| "body": { | |||
| "name": "Body", | |||
| "buttons": [ | |||
| { | |||
| "name": "Eat", | |||
| "target": "feed" | |||
| }, | |||
| { | |||
| "name": "Crop Swallow", | |||
| "target": "crop_swallow" | |||
| }, | |||
| { | |||
| "name": "Digest", | |||
| "target": "digest_stomach" | |||
| }, | |||
| { | |||
| "name": "Chew", | |||
| "target": "chew" | |||
| }, | |||
| { | |||
| "name": "Drool", | |||
| "target": "drool" | |||
| }, | |||
| { | |||
| "name": "Vomit", | |||
| "target": "vomit" | |||
| }, | |||
| { | |||
| "name": "Sit", | |||
| "target": "sit" | |||
| }, | |||
| { | |||
| "name": "Grind ass", | |||
| "target": "ass_grind" | |||
| }, | |||
| { | |||
| "name": "Anal Vore", | |||
| "target": "anal_vore" | |||
| }, | |||
| { | |||
| "name": "Digest Bowels", | |||
| "target": "digest_anal" | |||
| }, | |||
| { | |||
| "name": "Grind hips", | |||
| "target": "grind" | |||
| } | |||
| ] | |||
| }, | |||
| "paws": { | |||
| "name": "Paws", | |||
| "buttons": [ | |||
| { | |||
| "name": "Stomp", | |||
| "target": "stomp" | |||
| }, | |||
| { | |||
| "name": "Flex Toes", | |||
| "target": "flex_toes" | |||
| }, | |||
| { | |||
| "name": "Absorb", | |||
| "target": "paw_vore" | |||
| }, | |||
| { | |||
| "name": "Digest", | |||
| "target": "digest_paws" | |||
| } | |||
| ] | |||
| }, | |||
| "tails": { | |||
| "name": "Tails", | |||
| "buttons": [ | |||
| { | |||
| "name": "Tail Slap", | |||
| "target": "tail_slap" | |||
| }, | |||
| { | |||
| "name": "Tail Vore", | |||
| "target": "tail_vore_only" | |||
| }, | |||
| { | |||
| "name": "Tail Vore (1)", | |||
| "target": "tail_vore_one" | |||
| }, | |||
| { | |||
| "name": "Tail Vore (some)", | |||
| "target": "tail_vore_some" | |||
| }, | |||
| { | |||
| "name": "Tail Vore (all!)", | |||
| "target": "tail_vore_all" | |||
| }, | |||
| { | |||
| "name": "Digest", | |||
| "target": "digest_tail" | |||
| } | |||
| ] | |||
| }, | |||
| "breasts": { | |||
| "name": "Breasts", | |||
| "buttons": [ | |||
| { | |||
| "name": "Stuff Cleavage", | |||
| "target": "cleavage_stuff" | |||
| }, | |||
| { | |||
| "name": "Squeeze Cleavage", | |||
| "target": "breast_toy" | |||
| }, | |||
| { | |||
| "name": "Crush Cleavage", | |||
| "target": "cleavage_crush" | |||
| }, | |||
| { | |||
| "name": "Drop Cleavage", | |||
| "target": "cleavage_drop" | |||
| }, | |||
| { | |||
| "name": "Absorb Cleavage", | |||
| "target": "cleavage_absorb" | |||
| }, | |||
| { | |||
| "name": "Breast Crush", | |||
| "target": "breast_crush" | |||
| }, | |||
| { | |||
| "name": "Breast Vore", | |||
| "target": "breast_vore" | |||
| }, | |||
| { | |||
| "name": "Digest", | |||
| "target": "digest_breast" | |||
| }, | |||
| { | |||
| "name": "Milk Breasts", | |||
| "target": "breast_milk" | |||
| } | |||
| ] | |||
| }, | |||
| "vagina": { | |||
| "name": "Slit", | |||
| "buttons": [ | |||
| { | |||
| "name": "Unbirth", | |||
| "target": "unbirth" | |||
| }, | |||
| { | |||
| "name": "Digest", | |||
| "target": "digest_unbirth" | |||
| }, | |||
| { | |||
| "name": "Finger Slit", | |||
| "target": "slit_toy" | |||
| } | |||
| ] | |||
| }, | |||
| "dick": { | |||
| "name": "Cock", | |||
| "buttons": [ | |||
| { | |||
| "name": "Stuff Sheath", | |||
| "target": "sheath_stuff" | |||
| }, | |||
| { | |||
| "name": "Squeeze Sheath", | |||
| "target": "sheath_toy" | |||
| }, | |||
| { | |||
| "name": "Clench Sheath", | |||
| "target": "sheath_clench" | |||
| }, | |||
| { | |||
| "name": "Absorb Sheath", | |||
| "target": "sheath_absorb" | |||
| }, | |||
| { | |||
| "name": "Cockslap", | |||
| "target": "cockslap" | |||
| }, | |||
| { | |||
| "name": "Cock Vore", | |||
| "target": "cock_vore" | |||
| }, | |||
| { | |||
| "name": "Digest", | |||
| "target": "digest_cock" | |||
| }, | |||
| { | |||
| "name": "Ball Smother", | |||
| "target": "ball_smother" | |||
| } | |||
| ] | |||
| }, | |||
| "souls": { | |||
| "name": "Souls", | |||
| "buttons": [ | |||
| { | |||
| "name": "Soul Vore", | |||
| "target": "soul_vore" | |||
| }, | |||
| { | |||
| "name": "Digest", | |||
| "target": "digest_soul" | |||
| }, | |||
| { | |||
| "name": "Paws", | |||
| "target": "soul_absorb_paw" | |||
| } | |||
| ] | |||
| }, | |||
| "shoes": { | |||
| "name": "Footwear", | |||
| "buttons": [ | |||
| { | |||
| "name": "Put On Shoes", | |||
| "target": "wear_shoes" | |||
| }, | |||
| { | |||
| "name": "Take Off Shoes", | |||
| "target": "remove_shoes" | |||
| }, | |||
| { | |||
| "name": "Put On Socks", | |||
| "target": "wear_socks" | |||
| }, | |||
| { | |||
| "name": "Take Off Socks", | |||
| "target": "remove_socks" | |||
| }, | |||
| { | |||
| "name": "Stuff Shoes", | |||
| "target": "stuff_shoes" | |||
| }, | |||
| { | |||
| "name": "Stuff Socks", | |||
| "target": "stuff_socks" | |||
| }, | |||
| { | |||
| "name": "Dump Shoes", | |||
| "target": "dump_shoes" | |||
| }, | |||
| { | |||
| "name": "Dump Socks", | |||
| "target": "dump_socks" | |||
| } | |||
| ] | |||
| }, | |||
| "waste": { | |||
| "name": "Waste", | |||
| "buttons": [ | |||
| { | |||
| "name": "Belch", | |||
| "target": "belch" | |||
| }, | |||
| { | |||
| "name": "Fart", | |||
| "target": "fart" | |||
| }, | |||
| { | |||
| "name": "Piss", | |||
| "target": "piss" | |||
| }, | |||
| { | |||
| "name": "Bladder Vore", | |||
| "target": "bladder_vore" | |||
| }, | |||
| { | |||
| "name": "Digest", | |||
| "target": "digest_bladder" | |||
| }, | |||
| { | |||
| "name": "Scat", | |||
| "target": "scat" | |||
| } | |||
| ] | |||
| }, | |||
| "goo": { | |||
| "name": "Goo", | |||
| "buttons": [ | |||
| { | |||
| "name": "Solidify", | |||
| "target": "solidify" | |||
| }, | |||
| { | |||
| "name": "Melt", | |||
| "target": "melt" | |||
| }, | |||
| { | |||
| "name": "Flood", | |||
| "target": "flood" | |||
| }, | |||
| { | |||
| "name": "Push to Stomach", | |||
| "target": "goo_stomach_push" | |||
| }, | |||
| { | |||
| "name": "Pull from Stomach", | |||
| "target": "goo_stomach_pull" | |||
| }, | |||
| { | |||
| "name": "Push to Bowels", | |||
| "target": "goo_bowels_push" | |||
| }, | |||
| { | |||
| "name": "Pull from Bowels", | |||
| "target": "goo_bowels_pull" | |||
| }, | |||
| { | |||
| "name": "Push to Womb", | |||
| "target": "goo_womb_push" | |||
| }, | |||
| { | |||
| "name": "Pull from Womb", | |||
| "target": "goo_womb_pull" | |||
| }, | |||
| { | |||
| "name": "Push to Balls", | |||
| "target": "goo_balls_push" | |||
| }, | |||
| { | |||
| "name": "Pull from Balls", | |||
| "target": "goo_balls_pull" | |||
| }, | |||
| { | |||
| "name": "Push to Breasts", | |||
| "target": "goo_breasts_push" | |||
| }, | |||
| { | |||
| "name": "Pull from Breasts", | |||
| "target": "goo_breasts_pull" | |||
| }, | |||
| { | |||
| "name": "Push to Tails", | |||
| "target": "goo_tail_push" | |||
| }, | |||
| { | |||
| "name": "Pull from Tails", | |||
| "target": "goo_tail_pull" | |||
| }, | |||
| { | |||
| "name": "Push to Paws", | |||
| "target": "goo_paws_push" | |||
| }, | |||
| { | |||
| "name": "Pull from Paws", | |||
| "target": "goo_paws_pull" | |||
| }, | |||
| { | |||
| "name": "Digest", | |||
| "target": "digest_goo" | |||
| } | |||
| ] | |||
| }, | |||
| "misc": { | |||
| "name": "Misc", | |||
| "buttons": [ | |||
| { | |||
| "name": "Stuff Pouch", | |||
| "target": "pouch_stuff" | |||
| }, | |||
| { | |||
| "name": "Rub Pouch", | |||
| "target": "pouch_rub" | |||
| }, | |||
| { | |||
| "name": "Eat From Pouch", | |||
| "target": "pouch_eat" | |||
| }, | |||
| { | |||
| "name": "Absorb Pouch", | |||
| "target": "pouch_absorb" | |||
| }, | |||
| { | |||
| "name": "Flap Wings", | |||
| "target": "wings_flap" | |||
| }, | |||
| { | |||
| "name": "Wing Vore", | |||
| "target": "wings_vore" | |||
| } | |||
| ] | |||
| }, | |||
| "breath": { | |||
| "name": "Breath", | |||
| "buttons": [ | |||
| { | |||
| "name": "Line Shape", | |||
| "target": "breath_line" | |||
| }, | |||
| { | |||
| "name": "Cone Shape", | |||
| "target": "breath_cone" | |||
| }, | |||
| { | |||
| "name": "Fire", | |||
| "target": "breath_fire" | |||
| }, | |||
| { | |||
| "name": "Ice", | |||
| "target": "breath_ice" | |||
| }, | |||
| { | |||
| "name": "Electric", | |||
| "target": "breath_electric" | |||
| }, | |||
| { | |||
| "name": "Smoke", | |||
| "target": "breath_smoke" | |||
| }, | |||
| { | |||
| "name": "Radiation", | |||
| "target": "breath_radiation" | |||
| }, | |||
| { | |||
| "name": "Foul", | |||
| "target": "breath_foul" | |||
| } | |||
| ] | |||
| }, | |||
| "magic": { | |||
| "name": "Magic", | |||
| "buttons": [ | |||
| { | |||
| "name": "Shrink", | |||
| "target": "magic_shrink" | |||
| }, | |||
| { | |||
| "name": "Fast Digestion", | |||
| "target": "magic_fast_digestion" | |||
| } | |||
| ] | |||
| }, | |||
| "options": { | |||
| "name": "Options", | |||
| "buttons": [ | |||
| { | |||
| "name": "Arousal On", | |||
| "target": "arousal", | |||
| "default": true | |||
| }, | |||
| { | |||
| "name": "Status: Standing", | |||
| "target": "stroll", | |||
| "default": true | |||
| }, | |||
| { | |||
| "name": "Numbers: Words", | |||
| "target": "numbers", | |||
| "default": true | |||
| }, | |||
| { | |||
| "name": "Units: Metric", | |||
| "target": "units", | |||
| "default": true | |||
| }, | |||
| { | |||
| "name": "Verbose Text", | |||
| "target": "verbose", | |||
| "default": true | |||
| }, | |||
| { | |||
| "name": "Toggle Dark Mode", | |||
| "target": "dark_mode", | |||
| "default": true | |||
| }, | |||
| { | |||
| "name": "Debug Log", | |||
| "target": "debug", | |||
| "default": true | |||
| } | |||
| ] | |||
| } | |||
| } | |||
| options = [ | |||
| { | |||
| "name": "Basics", | |||
| @@ -4129,6 +4129,7 @@ function disable_button(name) { | |||
| } | |||
| function enable_panel(name) { | |||
| console.log(name); | |||
| document.getElementById("action-part-" + name).style.display = "inline"; | |||
| } | |||
| @@ -4556,7 +4557,7 @@ function startGame(e) { | |||
| } | |||
| } | |||
| document.getElementById("button-arousal").innerHTML = (macro.arousalEnabled ? "Arousal On" : "Arousal Off"); | |||
| document.getElementById("button-action-arousal").innerHTML = (macro.arousalEnabled ? "Arousal On" : "Arousal Off"); | |||
| if (!macro.arousalEnabled) { | |||
| document.getElementById("arousal").style.display = "none"; | |||
| document.getElementById("edge").style.display = "none"; | |||
| @@ -4726,6 +4727,7 @@ window.addEventListener('load', function(event) { | |||
| }()); | |||
| construct_options(); | |||
| construct_panels(); | |||
| document.querySelectorAll("input[type='number']").forEach(function(x) { | |||
| x.addEventListener("input", function() { updatePreview(x.id); }); | |||
| @@ -4751,19 +4753,19 @@ window.addEventListener('load', function(event) { | |||
| }); | |||
| document.getElementById("button-look").addEventListener("click",look); | |||
| document.getElementById("button-stroll").addEventListener("click",toggle_auto); | |||
| document.getElementById("button-numbers").addEventListener("click",toggle_numbers); | |||
| document.getElementById("button-units").addEventListener("click",toggle_units); | |||
| document.getElementById("button-verbose").addEventListener("click",toggle_verbose); | |||
| document.getElementById("button-arousal").addEventListener("click",toggle_arousal); | |||
| document.getElementById("button-action-stroll").addEventListener("click",toggle_auto); | |||
| document.getElementById("button-action-numbers").addEventListener("click",toggle_numbers); | |||
| document.getElementById("button-action-units").addEventListener("click",toggle_units); | |||
| document.getElementById("button-action-verbose").addEventListener("click",toggle_verbose); | |||
| document.getElementById("button-action-arousal").addEventListener("click",toggle_arousal); | |||
| document.getElementById("button-dark-mode-options").addEventListener("click",toggleDarkMode); | |||
| document.getElementById("button-dark-mode-game").addEventListener("click",toggleDarkMode); | |||
| document.getElementById("button-action-dark_mode").addEventListener("click",toggleDarkMode); | |||
| document.getElementById("button-units-options").addEventListener("click",toggle_units_options); | |||
| document.getElementById("button-stats").addEventListener("click",showStats); | |||
| document.getElementById("button-debug-log").addEventListener("click",debugLog); | |||
| document.getElementById("button-action-debug").addEventListener("click",debugLog); | |||
| document.querySelectorAll(".growth-part").forEach(function (button) { | |||
| button.addEventListener("click", function() { grow_part_pick(button.id); }); | |||
| @@ -5029,3 +5031,41 @@ function construct_options() { | |||
| render_category(root, category); | |||
| }); | |||
| } | |||
| function construct_panels() { | |||
| let root = document.getElementById("action-panel"); | |||
| let panelList = document.createElement("div"); | |||
| panelList.classList.add("action-part-container"); | |||
| root.appendChild(panelList); | |||
| Object.entries(panels).forEach(function([name, contents]) { | |||
| let buttons = document.createElement("div"); | |||
| buttons.classList.add("action-tab"); | |||
| buttons.id = "actions-" + name; | |||
| let panel_button = document.createElement("button"); | |||
| panel_button.classList.add("action-part-button"); | |||
| panel_button.id = "action-part-" + name; | |||
| panel_button.innerText = contents.name; | |||
| panelList.appendChild(panel_button); | |||
| contents.buttons.forEach(function(action) { | |||
| let button = document.createElement("button"); | |||
| button.classList.add("action-button"); | |||
| button.id = "button-action-" + action.target; | |||
| button.innerText = action.name; | |||
| if (action.default) { | |||
| button.style.display = "inline"; | |||
| } | |||
| buttons.appendChild(button); | |||
| }); | |||
| root.appendChild(buttons); | |||
| }); | |||
| } | |||
| @@ -201,6 +201,7 @@ | |||
| </div> | |||
| </div> | |||
| <div class="sidebar" id="action-panel"> | |||
| <!-- | |||
| <div class="action-part-container"> | |||
| <button class="active action-part-button" id="action-part-body">Body</button> | |||
| <button class="action-part-button" id="action-part-paws">Paws</button> | |||
| @@ -359,6 +360,7 @@ | |||
| <button class="stat-button" id="button-debug-log">Debug Log</button> | |||
| </div> | |||
| </div> | |||
| --> | |||
| </div> | |||
| <div class="character-build" id="character-build-area"> | |||
| <p>Welcome to Stroll 0.7.4</p> | |||