diff --git a/src/constants/tags.ts b/src/constants/tags.ts index 8689612..152458c 100644 --- a/src/constants/tags.ts +++ b/src/constants/tags.ts @@ -1,6 +1,7 @@ export enum Tag { Bubble = 'Bubble', Enemy = 'Enemy', + EnemyBubble = 'EnemyBubble', Player = 'Player', Projectile = 'Projectile', } diff --git a/src/gameobjects/bubble.ts b/src/gameobjects/bubble.ts index 73d06ee..dd97dba 100644 --- a/src/gameobjects/bubble.ts +++ b/src/gameobjects/bubble.ts @@ -22,9 +22,19 @@ export function addBubble(player: Player) { bubble.destroy() const currentEnemy = enemy as Enemy currentEnemy.hurt(DAMAGE) - currentEnemy.add([sprite(Sprite.BubbleGood), anchor('center'), scale(0.2)]) + currentEnemy.add([ + sprite(Sprite.BubbleGood), + anchor('center'), + scale(0.2), + Tag.EnemyBubble, + ]) currentEnemy.bubble = true }) + bubble.onCollide(Tag.Projectile, () => { + play(Sound.Hit) + bubble.destroy() + }) + return bubble } diff --git a/src/gameobjects/projectile.ts b/src/gameobjects/projectile.ts index 3d7d0e3..d3684fb 100644 --- a/src/gameobjects/projectile.ts +++ b/src/gameobjects/projectile.ts @@ -27,5 +27,10 @@ export function addProjectile(enemy: Enemy, player: Player) { currentPlayer.hurt(DAMAGE) }) + projectile.onCollide(Tag.Enemy, (enemy) => { + play(Sound.Hit) + enemy.removeAll(Tag.EnemyBubble) + }) + return projectile }