Immersive Terminal for RPGs v1.6.0
Popup overhaul — help, success and failure flows all move out of the scrollback into purpose-built popups, with theme-aware scrollbar and a few audit-driven cleanups.
✨ Features
helpopens a movable cheat-sheet popup. On desktop: drag the header to move, drag the bottom-right corner to resize, the prompt stays interactive behind it. On mobile: centered modal with backdrop. Both close via the × button, Esc, or backdrop click.- Per-scenario aliases in
help. The cheat sheet reads each scenario'saliasesmap and shows the themed verbs under the canonical command —(also: auspex, scrutinize)undercheckin Warhammer,auditin IBM,scan/probein Cyberpunk/Blade Runner, and so on. Players learn the scenario's verbs without leaving the popup. crack/unlockauto-open the cat popup on success. The freshly unlocked file appears in the viewer the moment the brute-force progress bar finishes — no need to typecat <file>after.- Failure popup for
crack/unlock/decrypt. Hardened-file crack, wrong key, failed crack roll, and decrypt-minigame loss now surface as a quick acknowledge dialog (× / Esc / OK / backdrop). The tracer time penalty waits for the popup to close — no more losing trace seconds while still reading the message. - Help popup scrollbar matches the active theme. Long extra-help sections use the same thin track +
var(--muted)thumb as the main terminal — green on most themes, amber on IBM, etc. - ThemeSwitcher labels now translate. "System", "Language", and the GM-mode "enable/disable for players" tooltips were the last hardcoded English strings; they now route through the i18n layer.
🐛 Fixes
- Mobile progress bar no longer overflows the viewport.
.modal--progresswas holding a 420px min-width even when the parent modal dropped to 92vw; the inner bar can now scroll horizontally if its fixed-cell rendering exceeds the available space. - X button on the help popup actually closes it now. The header's
setPointerCapturewas rerouting pointerup off the button. Fixed (#85) — stops pointerdown propagation on the button and guards the header handler with a target check. - Lancer pt-br lexicon. The franchise term Lance (squad/unit) was being mistranslated as Portuguese lança (spear). Restored to Lancer across all four occurrences in the Horizon Lance scenario. The wh40k Imperial Creed line "ponta da Sua lança" (literal weapon metaphor) is intentionally untouched.
🔧 Under the hood
- New components:
HelpPopup,FailurePopup. - New hooks:
useEscapeKey(extracted fromFileViewer/IceAlert),useIsMobile(matches the existing 640px breakpoint). commands.jsadopts directive lines (helpview,failure) for Terminal to intercept — same pattern as the existingfileview. Failure directives carrytracerTrip+historyLinesso Terminal can defer those side effects to popup dismissal.- Coverage gaps from the test audit: added
DecryptGame.onLose,Tracer.onComplete, and a fullPrompt.test.jsxcovering history nav, Tab completion, and Ctrl+L. - 176 automated tests (up from 154); lint + build all green.