Dungeon Mode Kit - Development Log (no version number yet)

test level

Turn Engine, Shadows, and Core Systems

Turn Engine

Implemented a turn-based system using ROT.js Scheduler.Simple. All actors with a personality or controlled attribute are added to the scheduler and take turns in sequence. Player-controlled actors lock the engine while waiting for input; AI actors execute their personality behaviors automatically.

Observer Mode: When no player-controlled actors exist (or when the player dies), the game enters observer mode. Turns auto-advance at a configurable speed (turn_speed in prototype.json, default 50ms). Press Space to play/pause, Escape to reload.

Shadow Rendering

Added addBaseAndShadows() to draw diagonal shadows beneath floor tiles when the darkness mechanic is disabled. This is based on the previous roguelike prototype and the tile drawings I’ve been doing.

Void and Death

When an actor moves onto a tile with no floor the actor’s fall() method is called.

Added getValidMoveDirections() for sighted actors to avoid void tiles when pathfinding.

Item Pickup and Inventory

Refactored inventory to be per-actor rather than a global prototype setting. Actors now have an inventory attribute (integer) that determines how many items they can carry. Actors without this attribute cannot pick up items.

Maze-Room Passageways

Rooms generated by the wildcard system now detect adjacent maze paths and omit walls at those positions, creating natural passageways. The wildcard processor now explicitly processes mazes before rooms to ensure floor tiles exist for intersection detection.

Other Changes

  • Fixed getAttribute() to return undefined for missing keys instead of false
  • Updated removeEntity() to properly destroy PIXI sprites when entities are removed
  • Added bounds checking to shadow rendering helpers