From 01e611f58651bb1b04da7694016fe45cebf861b0 Mon Sep 17 00:00:00 2001 From: MegaBrutal Date: Thu, 28 Dec 2017 00:45:00 +0100 Subject: [PATCH] Cleanup: Monster also uses JusticeBlaster as a weapon To further simplify the code, the Monster class should also use the JusticeBlaster weapon class as its weapon. modified: ld40.js --- ld40.js | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/ld40.js b/ld40.js index d32c5ff..6a1eb77 100644 --- a/ld40.js +++ b/ld40.js @@ -22,7 +22,8 @@ const MODE_DETERMINATION = 0; const MODE_JUSTICE = 1; const SPEED_PLAYER = 150; - const SPEED_PROJECTILE = 500; + const SPEED_PPROJECTILE = 500; + const SPEED_MPROJECTILE = 200; window.addEventListener("keydown", function(e) { // Prevent default browser action for arrows and spacebar @@ -46,6 +47,7 @@ this.speed = 150; this.switchmode(MODE_DETERMINATION); this.weapon = new JusticeBlaster(game, this); + this.weapon.bulletSpeed = SPEED_PPROJECTILE; this.healthBar = new HealthBar(60, game.world.height - (WALL_BORDERBOTTOM / 2)); } @@ -144,10 +146,9 @@ this.anchor.setTo(0.5, 0.5); this.health = MONSTER_HEALTH; this.nexttime_shoot = game.time.now; - this.weapon = new Phaser.Weapon(game, this); - this.weapon.x = x; - this.weapon.y = y; - this.weapon.createBullets(20, 'projectile'); + this.weapon = new JusticeBlaster(game, this); + this.weapon.bulletSpeed = SPEED_MPROJECTILE; + this.weapon.trackSprite(this); } enablePhysics() { @@ -171,7 +172,7 @@ this.weapon.fireAtSprite(player); this.nexttime_shoot = game.time.now + (WAIT_MONSTERSHOOT / 2) + (Math.random() * WAIT_MONSTERSHOOT); } - game.physics.arcade.overlap(player, this.weapon.bullets, function(p,b) { p.damage(p.love); }); + game.physics.arcade.overlap(player, this.weapon.bullets, function(p,b) { b.overlap_player(p); }); } } @@ -196,13 +197,17 @@ entity.damage(player.love); this.kill(); } + + overlap_player(player) { + player.damage(player.love); + this.kill(); + } } class JusticeBlaster extends Phaser.Weapon { constructor(game, parent) { super(game, parent); this.bulletClass = Justice; - this.bulletSpeed = SPEED_PROJECTILE; this.multiFire = true; this.createBullets(100, null); } -- 2.34.1