Skip to content

Commit

Permalink
Add Timer to Level on load
Browse files Browse the repository at this point in the history
  • Loading branch information
pomle committed Apr 2, 2020
1 parent 0d6561a commit 1e251a7
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions public/js/loaders/level.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,26 @@
import {Matrix} from '../math.js';
import Entity from '../Entity.js';
import LevelTimer from '../traits/LevelTimer.js';
import Level from '../Level.js';
import {createSpriteLayer} from '../layers/sprites.js';
import {createBackgroundLayer} from '../layers/background.js';
import {loadMusicSheet} from './music.js';
import {loadSpriteSheet} from './sprite.js';
import {loadJSON} from '../loaders.js';

function createTimer() {
const entity = new Entity();
entity.addTrait(new LevelTimer());
return entity;
}

function setupBehavior(level) {
const timer = createTimer();
level.entities.add(timer);
level.events.listen(LevelTimer.EVENT_TIMER_OK, () => level.music.playTheme());
level.events.listen(LevelTimer.EVENT_TIMER_HURRY, () => level.music.playHurryTheme());
}

function setupBackgrounds(levelSpec, level, backgroundSprites) {
levelSpec.layers.forEach(layer => {
const grid = createGrid(layer.tiles, levelSpec.patterns);
Expand Down Expand Up @@ -41,6 +56,7 @@ export function createLevelLoader(entityFactory) {

setupBackgrounds(levelSpec, level, backgroundSprites);
setupEntities(levelSpec, level, entityFactory);
setupBehavior(level);

return level;
});
Expand Down

0 comments on commit 1e251a7

Please sign in to comment.