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.
 
 
 

299 line
14 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="features.js"></script>
  10. <script src="migrations.js"></script>
  11. <script src="presets.js"></script>
  12. <script src="units.js"></script>
  13. <script src="recursive-macro.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. </head>
  23. <body class="light">
  24. <script src="darkmode.js"></script>
  25. <div class="game-area">
  26. <div class="sidebar" id="stat-container">
  27. <div class="stat-header-self" id="stats-self">
  28. <div class="stat-container">
  29. <button class="stat-button" id="button-look">Look Around</button>
  30. <button class="stat-button" id="button-stats">Stats</button>
  31. </div>
  32. <div class="stat-line" id="height"></div>
  33. <div class="stat-line" id="mass"></div>
  34. <div class="stat-line" id="growth-points"></div>
  35. <div class="stat-line" id="arousal"></div>
  36. <div class="stat-line" id="edge"></div>
  37. <div class="meter" id="arousalMeter">
  38. <div class="meterLabel">
  39. AROUSAL
  40. </div>
  41. <div class="fill">
  42. <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">
  43. <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
  44. 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
  45. c-2-0.1-20-0.8-32.2-1.9c0,0-3.1-0.3-8.1-0.7V300H300z"/>
  46. </svg>
  47. </div>
  48. </div>
  49. <div class="meter" id="orgasmMeter">
  50. <div class="meterLabel">
  51. ORGASM
  52. </div>
  53. <div class="fill">
  54. <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">
  55. <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
  56. 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
  57. c-2-0.1-20-0.8-32.2-1.9c0,0-3.1-0.3-8.1-0.7V300H300z"/>
  58. </svg>
  59. </div>
  60. </div>
  61. <div class="meter" id="edgeMeter">
  62. <div class="meterLabel">
  63. EDGING
  64. </div>
  65. <div class="fill">
  66. <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">
  67. <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
  68. 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
  69. c-2-0.1-20-0.8-32.2-1.9c0,0-3.1-0.3-8.1-0.7V300H300z"/>
  70. </svg>
  71. </div>
  72. </div>
  73. <p></p>
  74. <!-- external svg is such a pain in the ass -->
  75. <div class="meter" id="cumMeter">
  76. <div class="meterLabel">
  77. CUM
  78. </div>
  79. <div class="fill">
  80. <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">
  81. <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
  82. 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
  83. c-2-0.1-20-0.8-32.2-1.9c0,0-3.1-0.3-8.1-0.7V300H300z"/>
  84. </svg>
  85. </div>
  86. </div>
  87. <div class="meter" id="femcumMeter">
  88. <div class="meterLabel">
  89. FEMCUM
  90. </div>
  91. <div class="fill">
  92. <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">
  93. <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
  94. 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
  95. c-2-0.1-20-0.8-32.2-1.9c0,0-3.1-0.3-8.1-0.7V300H300z"/>
  96. </svg>
  97. </div>
  98. </div>
  99. <div class="meter" id="milkMeter">
  100. <div class="meterLabel">
  101. MILK
  102. </div>
  103. <div class="fill">
  104. <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">
  105. <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
  106. 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
  107. c-2-0.1-20-0.8-32.2-1.9c0,0-3.1-0.3-8.1-0.7V300H300z"/>
  108. </svg>
  109. </div>
  110. </div>
  111. <div class="meter" id="gasMeter">
  112. <div class="meterLabel">
  113. GAS
  114. </div>
  115. <div class="fill">
  116. <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">
  117. <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
  118. 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
  119. c-2-0.1-20-0.8-32.2-1.9c0,0-3.1-0.3-8.1-0.7V300H300z"/>
  120. </svg>
  121. </div>
  122. </div>
  123. <div class="meter" id="pissMeter">
  124. <div class="meterLabel">
  125. PISS
  126. </div>
  127. <div class="fill">
  128. <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">
  129. <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
  130. 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
  131. c-2-0.1-20-0.8-32.2-1.9c0,0-3.1-0.3-8.1-0.7V300H300z"/>
  132. </svg>
  133. </div>
  134. </div>
  135. <div class="meter" id="scatMeter">
  136. <div class="meterLabel">
  137. SCAT
  138. </div>
  139. <div class="fill">
  140. <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">
  141. <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
  142. 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
  143. c-2-0.1-20-0.8-32.2-1.9c0,0-3.1-0.3-8.1-0.7V300H300z"/>
  144. </svg>
  145. </div>
  146. </div>
  147. <div class="stat-line-hidden" id="cum"></div>
  148. <div class="stat-line-hidden" id="femcum"></div>
  149. <div class="stat-line-hidden" id="milk"></div>
  150. <div class="stat-line-hidden" id="gas"></div>
  151. <div class="stat-line-hidden" id="piss"></div>
  152. <div class="stat-line-hidden" id="scat"></div>
  153. </div>
  154. <div class="stat-header-self">Growth</div>
  155. <div class="growth-box">
  156. <div id="growth-box-left">
  157. <button class="growth-part growth-part-active" id="button-growth-body">Body</button>
  158. <button class="growth-part" id="button-growth-paws">Paws</button>
  159. <button class="growth-part" id="button-growth-tail">Tail</button>
  160. <button class="growth-part" id="button-growth-ass">Ass</button>
  161. <button class="growth-part" id="button-growth-dick">Cock</button>
  162. <button class="growth-part" id="button-growth-balls">Balls</button>
  163. <button class="growth-part" id="button-growth-slit">Slit</button>
  164. <button class="growth-part" id="button-growth-womb">Womb</button>
  165. <button class="growth-part" id="button-growth-breasts">Breasts</button>
  166. </div>
  167. <div id="growth-box-right">
  168. <button class="growth-amount" id="button-growth-1.1">1.1x</button>
  169. <button class="growth-amount" id="button-growth-1.5">1.5x</button>
  170. <button class="growth-amount" id="button-growth-2">2x</button>
  171. <button class="growth-amount" id="button-growth-5">5x</button>
  172. <button class="growth-amount" id="button-growth-20">20x</button>
  173. <button class="growth-amount" id="button-growth-100">100x</button>
  174. </div>
  175. </div>
  176. </div>
  177. <div id="log-area">
  178. <div class="log" id="log">
  179. <div>Welcome to Stroll</div>
  180. <br>
  181. <div class="version"></div>
  182. <br>
  183. <div><b>This game features 18+ content</b></div>
  184. <div>&nbsp;</div>
  185. </div>
  186. <div class="log" id="react-log">
  187. <div>It's a nice day for a walk</div>
  188. <div>&nbsp;</div>
  189. </div>
  190. </div>
  191. <div class="sidebar" id="action-panel">
  192. </div>
  193. </div>
  194. <div class="character-build" id="character-build-area">
  195. <div class="intro-text">
  196. <p>Welcome to Stroll</p>
  197. <p class="version"></p>
  198. <p><b>This game features 18+ content</b></p>
  199. <p><a href="https://crux.sexy/changelog#stroll">Changelog</a> - <a href="https://discord.gg/7pdcVhD">Discord</a></p>
  200. <p>Stroll is a text-based macro game. Stomp things, eat things, abuse things - then grow larger and do it all over again.</p>
  201. <p>Leave a box empty for a sane default value. Units are metric, but you can preview other unit systems.</p>
  202. <p>Click on boxed titles to enable and disable features.</p>
  203. <p class="has-tooltip" title="uwu">Underlined options have tooltips</p>
  204. </div>
  205. <div id="custom-species">
  206. <ul class="flex-outer">
  207. <div class="custom-category">
  208. <p>Reset the sheet here (saved data isn't affected). You can also load the character you started your most recent game with.</p>
  209. <div>
  210. <button class="option-button" id="button-reset-custom">Reset</button>
  211. <button class="option-button" id="button-load-autosave">Load Last</button>
  212. </div>
  213. </div>
  214. <div class="custom-category">
  215. <div>
  216. <button class="option-button" id="button-start">Start Game</button>
  217. </div>
  218. </div>
  219. <div class="custom-category">
  220. <button class="option-button" id="button-dark-mode-options">Toggle Dark Mode</button>
  221. <button class="option-button" id="button-units-options">Units: Metric</button>
  222. </div>
  223. <div class="custom-category">
  224. <p>You can load a preset character here...</p>
  225. <div>
  226. <select id="character-presets">
  227. </select>
  228. </div>
  229. <p>
  230. <button type="button" class="option-button" id="button-load-preset">Load Preset Character</button>
  231. </p>
  232. </div>
  233. <div class="custom-category">
  234. <p>Or, load/save your own character internally here. It'll be saved in your browser, so you can come back to it later.</p>
  235. <div>
  236. <select id="custom-characters">
  237. <option>No character to load</option>
  238. </select>
  239. </div>
  240. <p></p>
  241. <div>
  242. <button type="button" class="option-button" id="button-load-custom">Load</button>
  243. <button type="button" class="option-button" id="button-save-custom">Save</button>
  244. <button type="button" class="option-button" id="button-delete-custom">Delete</button>
  245. </div>
  246. </div>
  247. <div class="custom-category">
  248. <p>Or export/import your character to text here. Copy and paste to share.</p>
  249. <div class>
  250. <button type="button" class="option-button" id="button-export-clear">Clear</button>
  251. <button type="button" class="option-button" id="button-export-preset">Export</button>
  252. <button type="button" class="option-button" id="button-import-preset">Import</button>
  253. <p><input autocomplete="off" type="text" id="export-area" placeholder="Paste character data here..."></p>
  254. </div>
  255. </div>
  256. </ul>
  257. <form id="custom-species-form" name="custom-species-form">
  258. <ul class="flex-outer" id="character-flex-outer">
  259. <input class="save-version" id="save-version" name="version" type="number"></input>
  260. </ul>
  261. </form>
  262. </div>
  263. </div>
  264. </body>
  265. </html>