1- import { emit , on , off } from 'kontra' ;
2-
3- import { GOAL_COLLISION , LEVEL_COMPLETE } from './gameEvents' ;
41import { Goal } from './Goal' ;
2+ import { Heart } from './Heart' ;
53import { Player } from './Player' ;
64import { Saw } from './Saw' ;
75import { BACK_FORTH } from './sawBehavior' ;
@@ -10,6 +8,7 @@ export class Level {
108 player ;
119 saws = [ ] ;
1210 goals = [ ] ;
11+ hearts = [ ] ;
1312 isLevelLoaded = false ;
1413 levelId = - 1 ;
1514 constructor ( levelId , { game } ) {
@@ -19,6 +18,7 @@ export class Level {
1918 this . createPlayer ( levelData ) ;
2019 this . createSaws ( levelData ) ;
2120 this . createGoals ( levelData ) ;
21+ this . createHearts ( levelData ) ;
2222 this . isLevelLoaded = true ;
2323 } ) ;
2424 }
@@ -38,10 +38,15 @@ export class Level {
3838
3939 render ( ctx ) {
4040 if ( ! this . isLevelLoaded ) return ;
41- this . player . render ( ctx ) ;
41+
42+ // TODO (johnedvard) Add to same array if pressing for space
4243 this . saws . forEach ( ( saw ) => {
4344 saw . render ( ctx ) ;
4445 } ) ;
46+ this . hearts . forEach ( ( heart ) => {
47+ heart . render ( ctx ) ;
48+ } ) ;
49+ this . player . render ( ctx ) ;
4550 this . goals . forEach ( ( goal ) => {
4651 goal . render ( ctx ) ;
4752 } ) ;
@@ -57,6 +62,9 @@ export class Level {
5762 this . goals . forEach ( ( goal ) => {
5863 goal . update ( ) ;
5964 } ) ;
65+ this . hearts . forEach ( ( heart ) => {
66+ heart . update ( ) ;
67+ } ) ;
6068 }
6169 createGoals ( levelData ) {
6270 levelData . g . forEach ( ( g ) => {
@@ -71,9 +79,15 @@ export class Level {
7179 }
7280 createSaws ( levelData ) {
7381 levelData . s . forEach ( ( saw ) => {
82+ // TODO (johnedvard) Add actual saw behaviour
7483 this . saws . push ( new Saw ( saw . x , saw . y , { behavior : BACK_FORTH } ) ) ;
7584 } ) ;
7685 }
86+ createHearts ( levelData ) {
87+ levelData . h . forEach ( ( heart ) => {
88+ this . hearts . push ( new Heart ( heart . x , heart . y , { level : this } ) ) ;
89+ } ) ;
90+ }
7791
7892 // TODO (johnedvard) Move collisions to own file?
7993 checkCollisions ( ) {
0 commit comments