From f952f353132a2ab944c2e89e09200707679b53c7 Mon Sep 17 00:00:00 2001 From: Ole Herman Schumacher Elgesem Date: Sun, 23 Feb 2025 13:54:42 +0100 Subject: [PATCH] Different enemies working and animated Signed-off-by: Ole Herman Schumacher Elgesem --- src/frontend/painter.ts | 33 +++++++++++++++++++++++++++++++++ src/libtrpg/game.ts | 5 +---- src/libtrpg/rooms.ts | 11 ++++++++++- 3 files changed, 44 insertions(+), 5 deletions(-) diff --git a/src/frontend/painter.ts b/src/frontend/painter.ts index 352704e..b119147 100644 --- a/src/frontend/painter.ts +++ b/src/frontend/painter.ts @@ -165,6 +165,39 @@ const SPRITESHEET = { frame(3, 350), ], false), ), + Robe: new SpriteMetadata( + 4, + 12, + 4, + new AnimationData([ + frame(0, 350), + frame(1, 350), + frame(2, 350), + frame(3, 350), + ], false), + ), + Golem: new SpriteMetadata( + 4, + 8, + 4, + new AnimationData([ + frame(0, 350), + frame(1, 350), + frame(2, 350), + frame(3, 350), + ], false), + ), + Monk: new SpriteMetadata( + 4, + 4, + 4, + new AnimationData([ + frame(0, 350), + frame(1, 350), + frame(2, 350), + frame(3, 350), + ], false), + ), Fog: new SpriteMetadata(5, 0, 5), Attack: new SpriteMetadata(6, 0, 1), Heal: new SpriteMetadata(6, 1, 1), diff --git a/src/libtrpg/game.ts b/src/libtrpg/game.ts index 1ac3a17..07f462a 100644 --- a/src/libtrpg/game.ts +++ b/src/libtrpg/game.ts @@ -886,10 +886,7 @@ export class Enemy extends Creature { } override on_light_up(): void { - if (this.name === "Skeleton") { - console.log("Found skeleton to light up"); - this.start_animation(); - } + this.start_animation(); } } diff --git a/src/libtrpg/rooms.ts b/src/libtrpg/rooms.ts index a5bc7cd..92a9daf 100644 --- a/src/libtrpg/rooms.ts +++ b/src/libtrpg/rooms.ts @@ -31,7 +31,16 @@ function _generic_room(zone: Zone) { pos = cr(randint(1, zone.columns - 2), randint(2, zone.rows - 3)); } const level = 1 + Math.max(...[zone.pos.c, zone.pos.r].map(Math.abs)); - const entity = new Enemy("Skeleton", level, pos, zone, zone.game); + let entity; + if (level == 2){ + entity = new Enemy("Skeleton", level, pos, zone, zone.game); + } else if (level == 3){ + entity = new Enemy("Robe", level, pos, zone, zone.game); + } else if (level == 4){ + entity = new Enemy("Golem", level, pos, zone, zone.game); + } else { + entity = new Enemy("Monk", level, pos, zone, zone.game); + } if (entity.cr.c > zone.columns / 2) { entity.reversed = true; }