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/.