Current integration: mountMap and mountMapBoard render legacy dungeons directly. The adapter supplies geographic node positions, traced polylines and the unchanged paintings; the normal node glyphs, fog knowledge, camera, selection tray, tooltips, legend and keyboard controls are shared. There is no separate dungeon node renderer.
The dungeon map now composes the shared W4b HUD, orientation strip, map frame, Potions, kit Back/Enter buttons and location tray. The shared SVG node artwork keeps markers circular; entrances sit on the approach roads. Smoky dark fog has brown haze restricted to authored road paths.
Legacy dungeon · road exploration
legacyDungeon.js maps 24 authored nodes to connected roads, themed fog, saved decisions and one-time encounters. Its dialogue adapter reuses W4c; combat reuses W4 with the same paired floor/background scene and a dedicated boss arena. Actors remain above both art plates.
AshenSpire component catalog
Reusable presentation vocabulary for Map, Combat, Inventory, and future screens. Each card shows the stable component ID, model/factory home, renderer, and reuse surface.
Asset Components / Rendered Armoury
The interactive catalog includes every dotted ID from asset-data/components/armoury.json: player views, Character stat cards, the non-resizable Armaments tray, procedural equipment-position subcomponents, Inventory hold/comparison surfaces, and optional supporting-tray handles. Choose Rendered Armoury assets in the group filter, or open the full selector and ownership reference.
Data-driven HUD tokens
Defaults live in balance.ui.hudPresentation; src/main.js validates and projects them once for the shared Map/Combat HUD.
| Setting | Default | Runtime projection | Effect |
|---|---|---|---|
componentBackgroundOpacityPct | 0 | --hud-component-background-opacity | Component-card background opacity |
metadataFontPx | 11 | --hud-metadata-font-px | Shared metadata font size |
beltItemGapPx | 2 | --hud-belt-item-gap-px | Relic/potion slot spacing |
portraitScale | 0.7 | --hud-portrait-scale | Portrait-badge scale |
primaryRowGapPx | 8 | --hud-primary-row-gap-px | Vitals/Quick Access gap |
controlGapPx | 2 | --hud-control-gap-px | Quick Access grid gap |
resourceRowGapPx | 3 | --hud-resource-row-gap-px | HP/MP/SP vertical gap |
panelPadPx / mobilePanelPadPx | 4 / 0 | --hud-panel-pad-px / --hud-mobile-panel-pad-px | Quick Access host padding without resizing controls |
mobileControlGapPx | 1 | --hud-mobile-control-gap-px | Narrow Quick Access cell gap |
mobileOuterPadPx / mobileRowGapPx | 4 / 3 | --hud-mobile-outer-pad-px / --hud-mobile-row-gap-px | Narrow shared-HUD vertical density |
cindersMaxWidthPct | 30 | --hud-cinders-max-width | Centered Cinders track cap |
metadataMaxWidthPct | 30 | --hud-metadata-max-width | Right metadata-trail cap |
metadataShowTotals | false | data-hud-metadata-show-totals | Act/Floor total visibility |