big steppy
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

320 lines
15 KiB

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Stroll</title>
  6. <link rel="stylesheet" type="text/css" href="https://csshake.surge.sh/csshake.min.css">
  7. <link rel="stylesheet" href="style.css">
  8. <script src="sounds.js"></script>
  9. <script src="migrations.js"></script>
  10. <script src="presets.js"></script>
  11. <script src="units.js"></script>
  12. <script src="recursive-macro.js"></script>
  13. <script src="features.js"></script>
  14. <script src="recursive-desc.js"></script>
  15. <script src="game.js"></script>
  16. <meta name="theme-color" content="#000000" />
  17. <meta name="description" content="An 18+ macro/vore text game" />
  18. <meta property="og:title" content="Stroll" />
  19. <meta property="og:description" content="An 18+ macro/vore text game" />
  20. <meta property="og:image" content="https://crux.sexy/images/stroll.png" />
  21. <link rel="icon" href="https://crux.sexy/images/stroll.ico">
  22. <script async defer data-website-id="130bd6a3-9a9f-4e3d-901b-fb35b096c5bd" src="https://umami.crux.best/umami.js" data-domains="stroll.crux.sexy,www.stroll.crux.sexy"></script>
  23. </head>
  24. <body class="light">
  25. <script src="darkmode.js"></script>
  26. <div class="game-area">
  27. <div class="sidebar" id="stat-container">
  28. <div class="stat-header-self" id="stats-self">
  29. <div class="stat-container">
  30. <button class="stat-button" id="button-look">Look Around</button>
  31. <button class="stat-button" id="button-stats">Stats</button>
  32. </div>
  33. <div class="stat-line" id="height"></div>
  34. <div class="stat-line" id="mass"></div>
  35. <div class="stat-line" id="growth-points"></div>
  36. <div class="stat-line" id="arousal"></div>
  37. <div class="stat-line" id="edge"></div>
  38. <div class="meter" id="arousalMeter">
  39. <div class="meterLabel">
  40. AROUSAL
  41. </div>
  42. <div class="fill">
  43. <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="300px" height="300px" viewBox="0 0 300 300" enable-background="new 0 0 300 300" xml:space="preserve">
  44. <path fill="#04ACFF" id="waveShape" d="M300,300V2.5c0,0-0.6-0.1-1.1-0.1c0,0-25.5-2.3-40.5-2.4c-15,0-40.6,2.4-40.6,2.4
  45. c-12.3,1.1-30.3,1.8-31.9,1.9c-2-0.1-19.7-0.8-32-1.9c0,0-25.8-2.3-40.8-2.4c-15,0-40.8,2.4-40.8,2.4c-12.3,1.1-30.4,1.8-32,1.9
  46. c-2-0.1-20-0.8-32.2-1.9c0,0-3.1-0.3-8.1-0.7V300H300z"/>
  47. </svg>
  48. </div>
  49. </div>
  50. <div class="meter" id="orgasmMeter">
  51. <div class="meterLabel">
  52. ORGASM
  53. </div>
  54. <div class="fill">
  55. <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="300px" height="300px" viewBox="0 0 300 300" enable-background="new 0 0 300 300" xml:space="preserve">
  56. <path fill="#04ACFF" id="waveShape" d="M300,300V2.5c0,0-0.6-0.1-1.1-0.1c0,0-25.5-2.3-40.5-2.4c-15,0-40.6,2.4-40.6,2.4
  57. c-12.3,1.1-30.3,1.8-31.9,1.9c-2-0.1-19.7-0.8-32-1.9c0,0-25.8-2.3-40.8-2.4c-15,0-40.8,2.4-40.8,2.4c-12.3,1.1-30.4,1.8-32,1.9
  58. c-2-0.1-20-0.8-32.2-1.9c0,0-3.1-0.3-8.1-0.7V300H300z"/>
  59. </svg>
  60. </div>
  61. </div>
  62. <div class="meter" id="edgeMeter">
  63. <div class="meterLabel">
  64. EDGING
  65. </div>
  66. <div class="fill">
  67. <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="300px" height="300px" viewBox="0 0 300 300" enable-background="new 0 0 300 300" xml:space="preserve">
  68. <path fill="#04ACFF" id="waveShape" d="M300,300V2.5c0,0-0.6-0.1-1.1-0.1c0,0-25.5-2.3-40.5-2.4c-15,0-40.6,2.4-40.6,2.4
  69. c-12.3,1.1-30.3,1.8-31.9,1.9c-2-0.1-19.7-0.8-32-1.9c0,0-25.8-2.3-40.8-2.4c-15,0-40.8,2.4-40.8,2.4c-12.3,1.1-30.4,1.8-32,1.9
  70. c-2-0.1-20-0.8-32.2-1.9c0,0-3.1-0.3-8.1-0.7V300H300z"/>
  71. </svg>
  72. </div>
  73. </div>
  74. <p></p>
  75. <!-- external svg is such a pain in the ass -->
  76. <div class="meter" id="cumMeter">
  77. <div class="meterLabel">
  78. CUM
  79. </div>
  80. <div class="fill">
  81. <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="300px" height="300px" viewBox="0 0 300 300" enable-background="new 0 0 300 300" xml:space="preserve">
  82. <path fill="#04ACFF" id="waveShape" d="M300,300V2.5c0,0-0.6-0.1-1.1-0.1c0,0-25.5-2.3-40.5-2.4c-15,0-40.6,2.4-40.6,2.4
  83. c-12.3,1.1-30.3,1.8-31.9,1.9c-2-0.1-19.7-0.8-32-1.9c0,0-25.8-2.3-40.8-2.4c-15,0-40.8,2.4-40.8,2.4c-12.3,1.1-30.4,1.8-32,1.9
  84. c-2-0.1-20-0.8-32.2-1.9c0,0-3.1-0.3-8.1-0.7V300H300z"/>
  85. </svg>
  86. </div>
  87. </div>
  88. <div class="meter" id="femcumMeter">
  89. <div class="meterLabel">
  90. FEMCUM
  91. </div>
  92. <div class="fill">
  93. <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="300px" height="300px" viewBox="0 0 300 300" enable-background="new 0 0 300 300" xml:space="preserve">
  94. <path fill="#04ACFF" id="waveShape" d="M300,300V2.5c0,0-0.6-0.1-1.1-0.1c0,0-25.5-2.3-40.5-2.4c-15,0-40.6,2.4-40.6,2.4
  95. c-12.3,1.1-30.3,1.8-31.9,1.9c-2-0.1-19.7-0.8-32-1.9c0,0-25.8-2.3-40.8-2.4c-15,0-40.8,2.4-40.8,2.4c-12.3,1.1-30.4,1.8-32,1.9
  96. c-2-0.1-20-0.8-32.2-1.9c0,0-3.1-0.3-8.1-0.7V300H300z"/>
  97. </svg>
  98. </div>
  99. </div>
  100. <div class="meter" id="milkMeter">
  101. <div class="meterLabel">
  102. MILK
  103. </div>
  104. <div class="fill">
  105. <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="300px" height="300px" viewBox="0 0 300 300" enable-background="new 0 0 300 300" xml:space="preserve">
  106. <path fill="#04ACFF" id="waveShape" d="M300,300V2.5c0,0-0.6-0.1-1.1-0.1c0,0-25.5-2.3-40.5-2.4c-15,0-40.6,2.4-40.6,2.4
  107. c-12.3,1.1-30.3,1.8-31.9,1.9c-2-0.1-19.7-0.8-32-1.9c0,0-25.8-2.3-40.8-2.4c-15,0-40.8,2.4-40.8,2.4c-12.3,1.1-30.4,1.8-32,1.9
  108. c-2-0.1-20-0.8-32.2-1.9c0,0-3.1-0.3-8.1-0.7V300H300z"/>
  109. </svg>
  110. </div>
  111. </div>
  112. <div class="meter" id="gasMeter">
  113. <div class="meterLabel">
  114. GAS
  115. </div>
  116. <div class="fill">
  117. <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="300px" height="300px" viewBox="0 0 300 300" enable-background="new 0 0 300 300" xml:space="preserve">
  118. <path fill="#04ACFF" id="waveShape" d="M300,300V2.5c0,0-0.6-0.1-1.1-0.1c0,0-25.5-2.3-40.5-2.4c-15,0-40.6,2.4-40.6,2.4
  119. c-12.3,1.1-30.3,1.8-31.9,1.9c-2-0.1-19.7-0.8-32-1.9c0,0-25.8-2.3-40.8-2.4c-15,0-40.8,2.4-40.8,2.4c-12.3,1.1-30.4,1.8-32,1.9
  120. c-2-0.1-20-0.8-32.2-1.9c0,0-3.1-0.3-8.1-0.7V300H300z"/>
  121. </svg>
  122. </div>
  123. </div>
  124. <div class="meter" id="pissMeter">
  125. <div class="meterLabel">
  126. PISS
  127. </div>
  128. <div class="fill">
  129. <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="300px" height="300px" viewBox="0 0 300 300" enable-background="new 0 0 300 300" xml:space="preserve">
  130. <path fill="#04ACFF" id="waveShape" d="M300,300V2.5c0,0-0.6-0.1-1.1-0.1c0,0-25.5-2.3-40.5-2.4c-15,0-40.6,2.4-40.6,2.4
  131. c-12.3,1.1-30.3,1.8-31.9,1.9c-2-0.1-19.7-0.8-32-1.9c0,0-25.8-2.3-40.8-2.4c-15,0-40.8,2.4-40.8,2.4c-12.3,1.1-30.4,1.8-32,1.9
  132. c-2-0.1-20-0.8-32.2-1.9c0,0-3.1-0.3-8.1-0.7V300H300z"/>
  133. </svg>
  134. </div>
  135. </div>
  136. <div class="meter" id="scatMeter">
  137. <div class="meterLabel">
  138. SCAT
  139. </div>
  140. <div class="fill">
  141. <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="300px" height="300px" viewBox="0 0 300 300" enable-background="new 0 0 300 300" xml:space="preserve">
  142. <path fill="#04ACFF" id="waveShape" d="M300,300V2.5c0,0-0.6-0.1-1.1-0.1c0,0-25.5-2.3-40.5-2.4c-15,0-40.6,2.4-40.6,2.4
  143. c-12.3,1.1-30.3,1.8-31.9,1.9c-2-0.1-19.7-0.8-32-1.9c0,0-25.8-2.3-40.8-2.4c-15,0-40.8,2.4-40.8,2.4c-12.3,1.1-30.4,1.8-32,1.9
  144. c-2-0.1-20-0.8-32.2-1.9c0,0-3.1-0.3-8.1-0.7V300H300z"/>
  145. </svg>
  146. </div>
  147. </div>
  148. <div class="stat-line-hidden" id="cum"></div>
  149. <div class="stat-line-hidden" id="femcum"></div>
  150. <div class="stat-line-hidden" id="milk"></div>
  151. <div class="stat-line-hidden" id="gas"></div>
  152. <div class="stat-line-hidden" id="piss"></div>
  153. <div class="stat-line-hidden" id="scat"></div>
  154. </div>
  155. <div class="growth-box">
  156. <div id="growth-box-left">
  157. <div class="stat-header-self">Growth</div>
  158. <select id="growth-part-select">
  159. <option class="growth-part growth-part-active" id="option-growth-body" value="body">Body</option>
  160. <option class="growth-part" id="option-growth-paws" value="paws">Paws</option>
  161. <option class="growth-part" id="option-growth-tail" value="tail">Tail</option>
  162. <option class="growth-part" id="option-growth-ass" value="ass">Ass</option>
  163. <option class="growth-part" id="option-growth-dick" value="dick">Cock</option>
  164. <option class="growth-part" id="option-growth-balls" value="balls">Balls</option>
  165. <option class="growth-part" id="option-growth-slit" value="slit">Slit</option>
  166. <option class="growth-part" id="option-growth-womb" value="womb">Womb</option>
  167. <option class="growth-part" id="option-growth-breasts" value="breasts">Breasts</option>
  168. <option class="growth-part" id="option-growth-wings" value="wings">Wings</option>
  169. <option class="growth-part" id="option-growth-musk" value="musk">Musk</option>
  170. <option class="growth-part" id="option-growth-stench" value="stench">Stench</option>
  171. <option class="growth-part" id="option-growth-breath" value="breath">Breath</option>
  172. <option class="growth-part" id="option-growth-magic" value="magic">Magic</option>
  173. </select>
  174. <div id="growth-amount-buttons">
  175. <button class="growth-amount" id="button-growth-1.1">1.1x</button>
  176. <button class="growth-amount" id="button-growth-1.5">1.5x</button>
  177. <button class="growth-amount" id="button-growth-2">2x</button>
  178. <button class="growth-amount" id="button-growth-5">5x</button>
  179. <button class="growth-amount" id="button-growth-20">20x</button>
  180. <button class="growth-amount" id="button-growth-100">100x</button>
  181. </div>
  182. </div>
  183. </div>
  184. </div>
  185. <div class="log" id="log">
  186. <div>Welcome to Stroll</div>
  187. <div>&nbsp;</div>
  188. <div class="version"></div>
  189. <div>&nbsp;</div>
  190. <div><b>This game features 18+ content</b></div>
  191. <div>&nbsp;</div>
  192. </div>
  193. <div class="log" id="react-log">
  194. <div>It's a nice day for a walk.</div>
  195. <div>&nbsp;</div>
  196. <div>This log will show automatic actions.</div>
  197. <div>&nbsp;</div>
  198. </div>
  199. <div class="sidebar" id="action-panel">
  200. </div>
  201. </div>
  202. <div class="character-build" id="character-build-area">
  203. <div class="intro-text">
  204. <p>Welcome to Stroll</p>
  205. <p class="version"></p>
  206. <p><b>This game features 18+ content</b></p>
  207. <p><a href="https://crux.sexy/changelog#stroll">Changelog</a> - <a href="https://discord.gg/7pdcVhD">Discord</a></p>
  208. <p>Stroll is a text-based macro game. Stomp things, eat things, abuse things - then grow larger and do it all over again.</p>
  209. <p>Leave a box empty for a sane default value. Units are metric, but you can preview other unit systems.</p>
  210. <p>Click on boxed titles to enable and disable features.</p>
  211. <p class="has-tooltip" title="uwu">Underlined options have tooltips</p>
  212. </div>
  213. <div id="custom-species">
  214. <ul class="flex-outer">
  215. <div class="custom-category wide-category">
  216. <div>
  217. <button class="option-button" id="button-start">Start Game</button>
  218. </div>
  219. </div>
  220. <div class="custom-category">
  221. <p>Presets let you play as other players' characters. There are a few groups to choose from.</p>
  222. <div>
  223. <select id="character-preset-categories">
  224. </select>
  225. <select id="character-presets">
  226. </select>
  227. </div>
  228. <p>
  229. <button type="button" class="option-button" id="button-load-preset">Load Preset Character</button>
  230. </p>
  231. </div>
  232. <div class="custom-category">
  233. <p>Save/load your own characters here. They will be stored in your browser.</p>
  234. <div>
  235. <select id="custom-characters">
  236. <option>No character to load</option>
  237. </select>
  238. </div>
  239. <p></p>
  240. <div>
  241. <button type="button" class="option-button" id="button-load-custom">Load</button>
  242. <button type="button" class="option-button" id="button-save-custom">Save</button>
  243. <button type="button" class="option-button" id="button-delete-custom">Delete</button>
  244. </div>
  245. </div>
  246. <div class="custom-category">
  247. <p>Export your current character or import someone else's character.</p>
  248. <div class>
  249. <button type="button" class="option-button" id="button-export-clear">Clear</button>
  250. <button type="button" class="option-button" id="button-export-preset">Export</button>
  251. <button type="button" class="option-button" id="button-import-preset">Import</button>
  252. <p><input autocomplete="off" type="text" id="export-area" placeholder="Paste character data here..."></p>
  253. </div>
  254. </div>
  255. <div class="custom-category">
  256. <p>Reset the sheet here (saved data isn't affected). You can also load the character you started your most recent game with.</p>
  257. <div>
  258. <button class="option-button" id="button-reset-custom">Reset</button>
  259. <button class="option-button" id="button-load-autosave">Load Last</button>
  260. </div>
  261. </div>
  262. <div class="custom-category">
  263. <p>Show/hide whole groups of character features here.</p>
  264. <div id="group-button-holder">
  265. </div>
  266. </div>
  267. <div class="custom-category">
  268. <p>Misc options</p>
  269. <br>
  270. <button class="option-button" id="button-dark-mode-options">Toggle Dark Mode</button>
  271. <button class="option-button" id="button-units-options">Units: Metric</button>
  272. </div>
  273. </ul>
  274. <form id="custom-species-form" name="custom-species-form">
  275. <ul class="flex-outer" id="character-flex-outer">
  276. <input class="save-version" id="save-version" name="version" type="number"></input>
  277. </ul>
  278. </form>
  279. </div>
  280. </div>
  281. </body>
  282. </html>