Просмотр исходного кода

Added a basic options menu, plus a species field.

tags/v0.7.0
Fen Dweller 8 лет назад
Родитель
Сommit
3e83965564
4 измененных файлов: 81 добавлений и 11 удалений
  1. +46
    -0
      game.js
  2. +6
    -6
      recursive-macro.js
  3. +9
    -3
      stroll.html
  4. +20
    -2
      style.css

+ 46
- 0
game.js Просмотреть файл

@@ -765,6 +765,48 @@ function grow()
update(["Power surges through you as you grow " + heightStr + " taller and gain " + massStr + " of mass",newline]); 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) { window.addEventListener('load', function(event) {
victims["stomped"] = initVictims(); victims["stomped"] = initVictims();
@@ -793,6 +835,10 @@ window.addEventListener('load', function(event) {
document.getElementById("button-location").addEventListener("click",change_location); document.getElementById("button-location").addEventListener("click",change_location);
document.getElementById("button-units").addEventListener("click",toggle_units); document.getElementById("button-units").addEventListener("click",toggle_units);
document.getElementById("button-verbose").addEventListener("click",toggle_verbose); 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); setTimeout(pick_move, 2000);


update(); update();


+ 6
- 6
recursive-macro.js Просмотреть файл

@@ -615,14 +615,14 @@ function Tram(count = 1) {


this.describe = function(verbose = true) { this.describe = function(verbose = true) {
if (verbose) { if (verbose) {
if (this.count <= 3) {
if (this.count == 1) {
list = []; list = [];
for (var i = 0; i < this.count; i++) { 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 { } else {
return this.count + " trams with " + this.contents.person.describe() + " inside";
return this.count + " trams with " + this.contents.person.describe(verbose) + " inside";
} }
} else { } else {
return (this.count > 1 ? this.count + " trams" : "a tram"); return (this.count > 1 ? this.count + " trams" : "a tram");
@@ -668,10 +668,10 @@ function Train(count = 1) {


this.describe = function(verbose = true) { this.describe = function(verbose = true) {
if (verbose) { if (verbose) {
if (this.count <= 3) {
if (this.count == 1) {
list = []; list = [];
for (var i = 0; i < this.count; i++) { 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"; return merge_things(list) + " with " + this.contents.person.describe() + " in the engine and " + this.contents.traincar.describe() + " attached";
} else { } else {


+ 9
- 3
stroll.html Просмотреть файл

@@ -11,7 +11,7 @@
</head> </head>
<body> <body>
<div class=game-area> <div class=game-area>
<div class=stat-container>
<div class=stat-container id=stat-container>
<div class=stat-header-self id=stats-self> <div class=stat-header-self id=stats-self>
<p>Stats</p> <p>Stats</p>
<div class=stat-line id=height></div> <div class=stat-line id=height></div>
@@ -47,14 +47,14 @@
</div> </div>
<div id=log-area> <div id=log-area>
<div id=log> <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><b>This game features 18+ content</b></div>
<div><a href="https://chemicalcrux.org/stroll">Changelog</a></div> <div><a href="https://chemicalcrux.org/stroll">Changelog</a></div>
<div>It's a nice day for a walk</div> <div>It's a nice day for a walk</div>
<div>&nbsp;</div> <div>&nbsp;</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-look>Look</button>
<button class=action-button id=button-grow>Get Bigger</button> <button class=action-button id=button-grow>Get Bigger</button>
<button class=action-button id=button-feed>Eat</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 class=action-button id=button-units>Units: Metric</button>
<button class=action-button id=button-verbose>Descriptions: Verbose</button> <button class=action-button id=button-verbose>Descriptions: Verbose</button>
</div> </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> </div>
</body> </body>
</html> </html>

+ 20
- 2
style.css Просмотреть файл

@@ -49,7 +49,7 @@ body {
} }


.stat-container { .stat-container {
display: flex;
display: none;
flex-wrap: wrap; flex-wrap: wrap;
flex-direction: column; flex-direction: column;
text-align: right; text-align: right;
@@ -57,13 +57,31 @@ body {
} }


.button-container { .button-container {
display: flex;
flex-wrap: wrap; flex-wrap: wrap;
max-width: 300px; max-width: 300px;
height: 400px; height: 400px;
flex: 2; 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 { .action-button {
font-size: 24px; font-size: 24px;
width: 120px; width: 120px;


Загрузка…
Отмена
Сохранить