Add the theme :)

This commit is contained in:
Aaron Fischer 2015-09-13 09:50:36 +02:00
parent c6aa271cf9
commit 54a3333ff3
3 changed files with 64 additions and 14 deletions

View File

@ -8,6 +8,9 @@ compile:
cp -f src/*.{html,css} out/ cp -f src/*.{html,css} out/
rm out/js13kgames-2015.js rm out/js13kgames-2015.js
optimize:
#closure --compilation_level ADVANCED_OPTIMIZATIONS --language_in ECMASCRIPT6 --language_out ECMASCRIPT5 --js src/main.js --js src/helpers.js --js vendor/minified-src.js --warnings_whitelist_file vendor/minified-src.js --js_output_file out.min.js
zip: compile zip: compile
rm -f js13kgames2015-aaronfischer.zip rm -f js13kgames2015-aaronfischer.zip
zip -9 -r js13kgames-2015-aaronfischer.zip out/* zip -9 -r js13kgames-2015-aaronfischer.zip out/*

View File

@ -16,6 +16,15 @@
</ul> </ul>
</nav> </nav>
<div id="startgame">
<button>Start the adventure now</button>
</div>
<div id="endgame">
You've made it!
You can leave this rotten ugly place now.
</div>
<div id="ship"> <div id="ship">
Active tool: <strong id="active-tool">Probe</strong><br> Active tool: <strong id="active-tool">Probe</strong><br>
Equipment: Equipment:

View File

@ -11,6 +11,8 @@ class Engine {
this.station = new Station(); this.station = new Station();
this.ship = new Ship(this.current_asteroid, this.station); this.ship = new Ship(this.current_asteroid, this.station);
this.asteroids = [this.current_asteroid]; this.asteroids = [this.current_asteroid];
this.game_running = true;
this.init_sequence_run = true;
} }
tick() { tick() {
@ -18,6 +20,19 @@ class Engine {
} }
update() { update() {
// Endgame?
if (!this.game_running) {
$('#ship, #asteroid, #station, #startgame').hide();
$('#endgame').show();
return;
}
if (this.init_sequence_run) {
$('#ship, #asteroid, #station, #endgame').hide();
$('#startgame').show();
return;
}
// Resources // Resources
_.eachObj(this.ship.resources, (key, value) => { _.eachObj(this.ship.resources, (key, value) => {
$('nav .res-' + key).fill(value); $('nav .res-' + key).fill(value);
@ -102,7 +117,7 @@ class Ship {
carbon: 0, carbon: 0,
metal: 0 metal: 0
}; };
this.cbtc = 450; this.cbtc = 999999999; //450;
} }
mount(tool) { mount(tool) {
@ -216,8 +231,13 @@ class Station {
'price': 20000, 'price': 20000,
'type': 'bot', 'type': 'bot',
'capability': {'A': 8, 'C': 8, 'S': 8, 'X': 8} 'capability': {'A': 8, 'C': 8, 'S': 8, 'X': 8}
} },
'reverser': {
'price': 90000,
'type': 'part',
'capability': {}
}
}; };
this.market = { this.market = {
'dust': 1, 'dust': 1,
@ -241,6 +261,11 @@ class Station {
return; return;
} }
// Endgame?
if (tool == 'reverser')
engine.game_running = false;
ship.equip(tool, this.inventory[tool]); ship.equip(tool, this.inventory[tool]);
ship.cbtc -= price; ship.cbtc -= price;
} }
@ -260,16 +285,6 @@ class Station {
var engine = new Engine(); var engine = new Engine();
$(() => { $(() => {
setInterval(() => {
engine.tick();
_.each(engine.asteroids, (asteroid) => {
_.each(asteroid.bots, (bot) => {
bot.mine();
})
});
engine.update();
}, 1000);
$('#btn-mine').onClick(() => { $('#btn-mine').onClick(() => {
engine.ship.mine(); engine.ship.mine();
engine.update(); engine.update();
@ -279,7 +294,7 @@ $(() => {
engine.ship.docked_to = engine.station; engine.ship.docked_to = engine.station;
engine.current_asteroid = null; engine.current_asteroid = null;
// Update the resources to sell. If the ship is docket to a station, // Update the resources to sell. If the ship is docked to a station,
// the resources do not change because we can't mine. // the resources do not change because we can't mine.
_.eachObj(engine.ship.resources, (key, value) => { _.eachObj(engine.ship.resources, (key, value) => {
$('#ship-inventory .res-' + key).set('value', value); $('#ship-inventory .res-' + key).set('value', value);
@ -307,10 +322,33 @@ $(() => {
$('#ship-inventory a').onClick((e) => { $('#ship-inventory a').onClick((e) => {
let res = $(e.target).get('%res'); let res = $(e.target).get('%res');
let amount = $('#ship-inventory input[name="sell-res-'+res+'"]').get('value'); let input = $('#ship-inventory input[name="sell-res-'+res+'"]');
let amount = input.get('value');
let rest = engine.ship.resources[res] - amount;
if (rest < 0) rest = engine.ship.resources[res];
input.set('value', rest);
engine.station.buy(engine.ship, res, amount); engine.station.buy(engine.ship, res, amount);
engine.update(); engine.update();
}); });
$('#startgame button').onClick((e) => {
$('#startgame').hide();
$('#ship').show();
engine.init_sequence_run = false;
engine.update();
setInterval(() => {
engine.tick();
_.each(engine.asteroids, (asteroid) => {
_.each(asteroid.bots, (bot) => {
bot.mine();
})
});
engine.update();
}, 1000);
});
engine.update(); engine.update();
}) })