Files
healer-man/docs/RUNEWAKER_DUNGEON_MAPS.md
T
2026-09-26 17:51:56 -04:00

2.2 KiB

RuneWaker dungeon maps

The RuneWaker minimap shows a cropped dungeon map centered on the live player marker. Press M or click the minimap to open the full map. The player marker and heading, entrance, and numbered encounters use the same coordinate projection in both views. The full map closes with M. The existing map keybind and minimap rotation preference apply to RuneWaker dungeons too.

All 30 imported RuneWaker dungeon definitions have maps. Fifteen use calibrated minimap tiles from the extracted RuneWaker client. Fifteen use floorplans rendered from each dungeon's imported navigation mesh because matching client tiles are missing or cannot be aligned confidently. The floorplans still place live markers and encounters at their runtime coordinates. The UI labels a floorplan as such.

Reimporting

Run python scripts/runewaker-pipeline/import-maps.py from the HealerMan root with Pillow and NumPy available. RUNEWAKER_ROOT can point to the extracted RuneWaker client; the default is ../Runewaker. The importer reads DDS tiles under Resource/texture/minimap, the primary WDB placement in each dungeon's import-metadata.json, and the navigation GLB. It measures alignment between the tile artwork and navigation geometry, accepts client artwork at confidence 0.65 or higher, and creates a navigation floorplan otherwise.

The generated PNGs live at public/assets/game/dungeons/<id>/maps/runewaker-map.png. The runtime projection and source checksums live in src/game/generated/runewakerDungeonMaps.generated.json. The map loader rejects catalog entries when the dungeon map ID, coordinate transform, or visual checksum no longer matches the runtime definition. Reimport after changing those inputs.

Run npm run content:publish after reimporting so downloadable dungeon packs contain their map PNGs, then npm run build to refresh the bundled app.

Verification

Run node node_modules/vitest/vitest.mjs run src/game/dungeonArtworkMap.test.ts src/ui/DungeonMapGraphic.test.ts src/ui/MapPanel.test.ts. node scripts/playtest-runewaker-maps.cjs checks Forsaken Abbey in a browser, including its downloaded artwork, minimap, M-key full map, and marker projection. Screenshots are written to artifacts/playtest/runewaker-maps/.