Skip to content

Immersive Terminal for RPGs v1.6.0

Choose a tag to compare

@flippelt flippelt released this 28 May 12:54
· 42 commits to main since this release

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

  • help opens 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's aliases map and shows the themed verbs under the canonical command — (also: auspex, scrutinize) under check in Warhammer, audit in IBM, scan/probe in Cyberpunk/Blade Runner, and so on. Players learn the scenario's verbs without leaving the popup.
  • crack / unlock auto-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 type cat <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--progress was 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 setPointerCapture was 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 from FileViewer/IceAlert), useIsMobile (matches the existing 640px breakpoint).
  • commands.js adopts directive lines (helpview, failure) for Terminal to intercept — same pattern as the existing fileview. Failure directives carry tracerTrip + historyLines so Terminal can defer those side effects to popup dismissal.
  • Coverage gaps from the test audit: added DecryptGame.onLose, Tracer.onComplete, and a full Prompt.test.jsx covering history nav, Tab completion, and Ctrl+L.
  • 176 automated tests (up from 154); lint + build all green.