From b054ba425c5aca8662f2326ada8fe3f661de91b5 Mon Sep 17 00:00:00 2001 From: 0xVector Date: Tue, 10 Sep 2024 21:34:48 +0200 Subject: [PATCH] client: Add basic purple slime implementation --- client/src/actors/entities/entity-factory.ts | 3 ++- client/src/actors/entities/slime/slime-purple.ts | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 client/src/actors/entities/slime/slime-purple.ts diff --git a/client/src/actors/entities/entity-factory.ts b/client/src/actors/entities/entity-factory.ts index 769531f..6c60eea 100644 --- a/client/src/actors/entities/entity-factory.ts +++ b/client/src/actors/entities/entity-factory.ts @@ -1,6 +1,7 @@ import { EntityType } from "./entity"; import { Player } from "./player/player"; import { Slime } from "./slime/slime"; +import { SlimePurple } from "./slime/slime-purple"; export function createEntity(entityType: EntityType, id: string) { switch (entityType) { @@ -9,7 +10,7 @@ export function createEntity(entityType: EntityType, id: string) { case EntityType.SLIME: return new Slime(id); case EntityType.SLIME_PURPLE: - return new Slime(id); // TODO: Implement purple slime + return new SlimePurple(id); default: throw new Error(`Entity type ${entityType} not found`); } diff --git a/client/src/actors/entities/slime/slime-purple.ts b/client/src/actors/entities/slime/slime-purple.ts new file mode 100644 index 0000000..4173416 --- /dev/null +++ b/client/src/actors/entities/slime/slime-purple.ts @@ -0,0 +1,12 @@ +import { Color } from "excalibur"; +import { Slime } from "./slime"; + +export class SlimePurple extends Slime { + public static override MAX_HP = 4; + + constructor(netId: string) { + super(netId); + this.hp = SlimePurple.MAX_HP; + this.color = Color.Violet; + } +} \ No newline at end of file