Working on fixing enemy ids and spawning

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
2026-03-15 19:46:00 +01:00
parent 301218a01b
commit f12748f631
3 changed files with 14 additions and 8 deletions

View File

@@ -85,10 +85,10 @@ abstract class MapObject {
// --- Enemy Range Constants ---
static const int guardStart = 108; // 108-143
static const int officerStart = 144; // 144-179
static const int dogStart = 144; // 144-179
static const int ssStart = 180; // 180-215
static const int dogStart = 216; // 216-251
static const int mutantStart = 252; // 252-287
static const int mutantStart = 216; // 216-251
static const int officerStart = 252; // 252-287
// --- Missing Decorative Bodies ---
static const int deadGuard = 124; // Decorative only in WL1

View File

@@ -201,6 +201,12 @@ abstract class Enemy extends Entity {
return null;
}
// Prevent bosses from accidentally spawning as regular enemies!
if (objId >= MapObject.bossHansGrosse &&
objId <= MapObject.bossFettgesicht) {
return null;
}
final type = EnemyType.fromMapId(objId);
if (type == null) return null;

View File

@@ -45,7 +45,7 @@ class EnemyAnimationMap {
enum EnemyType {
guard(
mapData: EnemyMapData(108),
mapData: EnemyMapData(MapObject.guardStart),
animations: EnemyAnimationMap(
idle: SpriteFrameRange(50, 57),
walking: SpriteFrameRange(58, 89),
@@ -56,7 +56,7 @@ enum EnemyType {
),
),
dog(
mapData: EnemyMapData(216),
mapData: EnemyMapData(MapObject.dogStart),
animations: EnemyAnimationMap(
idle: SpriteFrameRange(99, 106),
walking: SpriteFrameRange(107, 130),
@@ -67,7 +67,7 @@ enum EnemyType {
),
),
ss(
mapData: EnemyMapData(180),
mapData: EnemyMapData(MapObject.ssStart),
animations: EnemyAnimationMap(
idle: SpriteFrameRange(138, 145),
walking: SpriteFrameRange(146, 177),
@@ -78,7 +78,7 @@ enum EnemyType {
),
),
mutant(
mapData: EnemyMapData(252),
mapData: EnemyMapData(MapObject.mutantStart),
animations: EnemyAnimationMap(
idle: SpriteFrameRange(187, 194),
walking: SpriteFrameRange(195, 226),
@@ -89,7 +89,7 @@ enum EnemyType {
),
),
officer(
mapData: EnemyMapData(144),
mapData: EnemyMapData(MapObject.officerStart),
animations: EnemyAnimationMap(
idle: SpriteFrameRange(238, 245),
walking: SpriteFrameRange(246, 277),