| @@ -765,6 +765,48 @@ function grow() | |||
| update(["Power surges through you as you grow " + heightStr + " taller and gain " + massStr + " of mass",newline]); | |||
| } | |||
| function option_male() { | |||
| macro.maleParts = !macro.maleParts; | |||
| document.getElementById("button-male-genitals").innerHTML = (macro.maleParts ? "Male genitals" : "No male genitals"); | |||
| } | |||
| function option_female() { | |||
| macro.femaleParts = !macro.femaleParts; | |||
| document.getElementById("button-female-genitals").innerHTML = (macro.femaleParts ? "Female genitals" : "No female genitals"); | |||
| } | |||
| function startGame() { | |||
| document.getElementById("option-panel").style.display = 'none'; | |||
| document.getElementById("action-panel").style.display = 'flex'; | |||
| if (!macro.maleParts) { | |||
| document.getElementById("button-cockslap").style.display = 'none'; | |||
| document.getElementById("button-cock_vore").style.display = 'none'; | |||
| document.getElementById("button-ball_smother").style.display = 'none'; | |||
| document.getElementById("stats-balls").style.display = 'none'; | |||
| document.getElementById("stats-cock").style.display = 'none'; | |||
| document.getElementById("stats-smothered").style.display = 'none'; | |||
| } | |||
| if (!macro.femaleParts) { | |||
| document.getElementById("button-breast_crush").style.display = 'none'; | |||
| document.getElementById("button-unbirth").style.display = 'none'; | |||
| document.getElementById("stats-womb").style.display = 'none'; | |||
| document.getElementById("stats-breasts").style.display = 'none'; | |||
| } | |||
| var species = document.getElementById("option-species").value; | |||
| var re = /^[a-zA-Z\- ]+$/; | |||
| // tricksy tricksy players | |||
| if (re.test(species)) { | |||
| macro.species = species; | |||
| } | |||
| document.getElementById("stat-container").style.display = 'flex'; | |||
| } | |||
| window.addEventListener('load', function(event) { | |||
| victims["stomped"] = initVictims(); | |||
| @@ -793,6 +835,10 @@ window.addEventListener('load', function(event) { | |||
| document.getElementById("button-location").addEventListener("click",change_location); | |||
| document.getElementById("button-units").addEventListener("click",toggle_units); | |||
| document.getElementById("button-verbose").addEventListener("click",toggle_verbose); | |||
| document.getElementById("button-male-genitals").addEventListener("click",option_male); | |||
| document.getElementById("button-female-genitals").addEventListener("click",option_female); | |||
| document.getElementById("button-start").addEventListener("click",startGame); | |||
| setTimeout(pick_move, 2000); | |||
| update(); | |||
| @@ -615,14 +615,14 @@ function Tram(count = 1) { | |||
| this.describe = function(verbose = true) { | |||
| if (verbose) { | |||
| if (this.count <= 3) { | |||
| if (this.count == 1) { | |||
| list = []; | |||
| for (var i = 0; i < this.count; i++) { | |||
| list.push(this.describeOne(this.count < 2)); | |||
| list.push(this.describeOne(verbose)); | |||
| } | |||
| return merge_things(list) + " with " + this.contents.person.describe() + " inside"; | |||
| return merge_things(list) + " with " + this.contents.person.describe(verbose) + " inside"; | |||
| } else { | |||
| return this.count + " trams with " + this.contents.person.describe() + " inside"; | |||
| return this.count + " trams with " + this.contents.person.describe(verbose) + " inside"; | |||
| } | |||
| } else { | |||
| return (this.count > 1 ? this.count + " trams" : "a tram"); | |||
| @@ -668,10 +668,10 @@ function Train(count = 1) { | |||
| this.describe = function(verbose = true) { | |||
| if (verbose) { | |||
| if (this.count <= 3) { | |||
| if (this.count == 1) { | |||
| list = []; | |||
| for (var i = 0; i < this.count; i++) { | |||
| list.push(this.describeOne(this.count < 2)); | |||
| list.push(this.describeOne(verbose)); | |||
| } | |||
| return merge_things(list) + " with " + this.contents.person.describe() + " in the engine and " + this.contents.traincar.describe() + " attached"; | |||
| } else { | |||
| @@ -11,7 +11,7 @@ | |||
| </head> | |||
| <body> | |||
| <div class=game-area> | |||
| <div class=stat-container> | |||
| <div class=stat-container id=stat-container> | |||
| <div class=stat-header-self id=stats-self> | |||
| <p>Stats</p> | |||
| <div class=stat-line id=height></div> | |||
| @@ -47,14 +47,14 @@ | |||
| </div> | |||
| <div id=log-area> | |||
| <div id=log> | |||
| <div>Welcome to Stroll 0.2.2</div> | |||
| <div>Welcome to Stroll 0.2.3</div> | |||
| <div><b>This game features 18+ content</b></div> | |||
| <div><a href="https://chemicalcrux.org/stroll">Changelog</a></div> | |||
| <div>It's a nice day for a walk</div> | |||
| <div> </div> | |||
| </div> | |||
| </div> | |||
| <div class=button-container> | |||
| <div class=button-container id=action-panel> | |||
| <button class=action-button id=button-look>Look</button> | |||
| <button class=action-button id=button-grow>Get Bigger</button> | |||
| <button class=action-button id=button-feed>Eat</button> | |||
| @@ -71,6 +71,12 @@ | |||
| <button class=action-button class=action-button id=button-units>Units: Metric</button> | |||
| <button class=action-button id=button-verbose>Descriptions: Verbose</button> | |||
| </div> | |||
| <div class=button-container id=option-panel> | |||
| <button class=option-button id=button-male-genitals>Male genitals</button> | |||
| <button class=option-button id=button-female-genitals>Female genitals</button> | |||
| <form class=option-form>Species:<br><input type="text" name="species" id="option-species"></input></form> | |||
| <button class=option-button id=button-start>Start game</button> | |||
| </div> | |||
| </div> | |||
| </body> | |||
| </html> | |||
| @@ -49,7 +49,7 @@ body { | |||
| } | |||
| .stat-container { | |||
| display: flex; | |||
| display: none; | |||
| flex-wrap: wrap; | |||
| flex-direction: column; | |||
| text-align: right; | |||
| @@ -57,13 +57,31 @@ body { | |||
| } | |||
| .button-container { | |||
| display: flex; | |||
| flex-wrap: wrap; | |||
| max-width: 300px; | |||
| height: 400px; | |||
| flex: 2; | |||
| } | |||
| #action-panel { | |||
| display: none; | |||
| } | |||
| #option-panel { | |||
| display: flex; | |||
| } | |||
| .option-button { | |||
| font-size: 20px; | |||
| width: 120px; | |||
| height: 75px; | |||
| } | |||
| .option-form { | |||
| font-size: 16px; | |||
| width: 300px; | |||
| height: 100px; | |||
| } | |||
| .action-button { | |||
| font-size: 24px; | |||
| width: 120px; | |||