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

40 lines
2.2 KiB
Markdown

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