Skip to content

Releases: flippelt/Immersive-Terminal-for-RPGs

Immersive Terminal for RPGs v1.8.1

Choose a tag to compare

@flippelt flippelt released this 17 Aug 17:29
4585498

A v1.8.0 saiu antes da moldura CRT. Esta tag cobre o que já estava na main.

O que entra

  • Moldura CRT + perfil por sistema (#132)
  • rpgterm-engine@^0.2.1 (#131)
  • package.json agora acompanha a tag (1.8.1, #133)

Install / demo

https://flippelt.github.io/Immersive-Terminal-for-RPGs/

Immersive Terminal for RPGs v1.8.0

Choose a tag to compare

@flippelt flippelt released this 14 Aug 20:41
6eec4c3

Host de referência: compose, schema e skins vivem no rpgterm-engine. Este repo só carrega os demos e renderiza o terminal.

Engine / contrato

  • src/themes/index.js só faz glob. Front-matter, VFS, i18n e o merge da skin saíram daqui — o host chama composeTheme / composeCustomScenario do rpgterm-engine@0.2.0.
  • JSON Schema compartilhado (rpgterm-engine/schema e …/schema/frontmatter). O CI valida cada scenario.json de demo e o front-matter dos arquivos. Bundle colado/compartilhado também é validado antes de montar.
  • Skins novas não se adicionam neste repo — PR no engine.

Qualidade

  • Smoke do Terminal.jsx: login, ls/cat, crack no DC (igual passa), decrypt Esc + reabrir.
  • Docs alinhados: CONTRIBUTING, SECURITY, wiki (Architecture / Authoring-Themes / Home). package.json agora acompanha a tag (1.8.0).

Já na main desde o v1.7.0 (primeira tag a cobrir)

  • Preview ao vivo via postMessage (rpgterm:load) — o scenario-forge empurra campanha sem limite de URL.
  • Fotos de arquivo abrem numa janela companheira no desktop.
  • Consumo do rpgterm-engine pelo npm (depois extração do motor local).
  • Fix do ThemeSwitcher em modo GM (tela preta).
  • Gate de npm audit só em deps de produção.

Install / demo

https://flippelt.github.io/Immersive-Terminal-for-RPGs/

Immersive Terminal for RPGs v1.7.0

Choose a tag to compare

@flippelt flippelt released this 28 May 15:39

"Feelin' Lucky? ;)" — a one-shot d20 roll the player can pull right before tackling the decrypt minigame, for a chance at burned attempts or revealed letters. Feature suggested by Pedro Fuster.

✨ Features

  • decrypt luck roll. When the cipher minigame opens, a small popup sits above the wordle: type a number 1–20, hit Enter, and the d20 decides whether you walk in with an edge or a handicap.
    • Roll 1 — critical fail. Smiley ;_; with red jitter; 2 attempts burned as ✗ phantom rows at the top of the grid.
    • Rolls 2–9 — 1 attempt burned.
    • Rolls 10–14 — 1 letter of the target word revealed in a hint row above the grid.
    • Rolls 15–19 — 2 letters revealed.
    • Natural 20\o/ with green burst; 3 letters revealed.
  • One shot per file, persisted across cancels. Open, roll, press Esc, re-run decrypt on the same file — the popup stays gone AND the roll's effect (burned rows or revealed letters) is restored exactly as you left it. Cancelling without rolling or guessing keeps your shot available for next time.
  • Skip without using the slot: just start typing your guess in the wordle. Submitting any guess auto-dismisses the popup without burning the luck roll's consequences.
  • GM opt-out per file. Add decryptLuck: false to a file's front-matter to hide the popup entirely on that file — useful for hard-mode challenges where you don't want a bailout.
  • Reduced-motion respected. All luck animations (jitter, pulse, burst) are gated by prefers-reduced-motion.
  • Bilingual. Full English + Brazilian Portuguese translations for the title, label, result messages, and the "REVEALED" caption.

🔧 Under the hood

  • New components: WordleLuckPopup.jsx and integration into DecryptGame.jsx.
  • New engine helpers in engine/wordle.js: rollLuck(n) (pure tier resolver) and pickRevealPositions(len, count, taken, rand) (deterministic with an injectable RNG, so tests pin the picks).
  • DecryptGame accepts initialLostByLuck and initialRevealed props seeded from Terminal's per-path luckEffects map, so the roll's outcome survives unmount/remount cycles.
  • 36 new tests covering: rollLuck tier boundaries (including the 15-overlap resolution), pickRevealPositions selection + pool exhaustion, the luck popup's autofocus / digit-only input / shake-on-invalid / hold-then-commit timing, the integration paths (roll, skip-via-guess, cancel-without-interaction), and the effect-persistence props (restored burned rows + restored hint row from initial state). 209 automated tests total (up from 176); lint + build clean.

🐛 Fix tagging along

  • Fallout directive_06.md now has crackDC: 14crack correctly opens the roll dialog instead of falling straight through to the brute-force bar. (Audit found this was the only tracked locked file in the project missing its DC.)

Credits

Luck roll idea + spec: Pedro Fuster. Thanks Pedro!

Immersive Terminal for RPGs v1.6.0

Choose a tag to compare

@flippelt flippelt released this 28 May 12:54

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.

Immersive Terminal for RPGs v1.5.1

Choose a tag to compare

@flippelt flippelt released this 28 May 03:26
a18cbdf

Patch release — mobile fix for the cipher minigame.

🐛 Fixes

  • Decrypt minigame now works on mobile (#82). The old window-level keyboard listener never fired on phones because mobile soft keyboards only emit input events when a focusable <input> is active. The minigame now drives off a hidden, autofocused input — the soft keyboard pops up on open, and tapping anywhere in the modal re-opens it after dismissal. font-size: 16px on the capture input prevents iOS's auto-zoom on focus.

All 154 tests pass; lint and build clean.

Immersive Terminal for RPGs v1.5.0

Choose a tag to compare

@flippelt flippelt released this 28 May 00:42
3516d0c

Bilingual release: the whole experience now speaks English and Brazilian Portuguese, plus cinematic file/decrypt popups and a stack upgrade.

✨ Features

  • Bilingual (EN / PT-BR) — full UI + all 8 scenarios and themes translated to Portuguese. Toggle language in the bottom-left control; commands stay identical in both languages. GMs can localize their own scenarios (per-language i18n block + parallel files.<lang>/ tree) — see CONTRIBUTING.
  • Cinematic cat — files open in a scrollable CRT popup with an × close button (also Esc / backdrop).
  • Decrypt cinematic — solving the cipher minigame plays a DECRYPTING progress bar → ACCESS GRANTED → auto-typed key → file viewer.
  • Self-destruct — red voxel detonation flooding the screen, then CRT power-off + reboot.
  • GM decrypt controls — per-file decryptAttempts (default 6, hard floor 4); varied word pools (lengths 4–9, ≥25 six-letter words).
  • Tab-completion now covers themed command aliases (auspex, audit, scan, probe, …) and their file arguments.

🐛 Fixes

  • Crack/decrypt progress-bar alignment (visible in the IBM theme's font).
  • Decrypt-win progress popup now always shows.

🔧 Under the hood

  • Upgraded to React 19, Vite 8, Vitest 4npm audit clean (0 vulnerabilities).
  • 150 automated tests; lint + build + demo build all green.

Immersive Terminal for RPGs v1.4.0

Choose a tag to compare

@flippelt flippelt released this 27 May 21:48
645f31f

Prop de terminal CRT imersivo para mesas de RPG — 8 sistemas. O zip contém só os arquivos necessários para rodar localmente (código + fontes), sem node_modules/build. Referência completa na Wiki.

✨ Novidades / What's new (desde v1.3.1)

unlock / decrypt — o fluxo de arquivos trancados virou dois verbos:

  • unlock <file> [key] — desbloqueia com a senha (o "decrypt" clássico). · Password unlock.
  • decrypt <file> — minigame de cifra estilo Wordle pra descobrir a chave; ao vencer, recupera a senha, abre o arquivo e evade o tracer. · Wordle-style cipher minigame.
  • Disponibilidade: arquivos nocrack têm decrypt por padrão; crackeáveis optam com decryptGame: true; decryptGame: false desliga (chave vem de fora). Sem decrypt → mensagem de encriptação alta demais. · Availability rule.
  • Palavra-alvo fixa (decryptWord), aleatória (decryptWords) ou de uma lista padrão — escolhida por arquivo e visível no gmsheet. decryptAttempts (padrão 6). · Per-file target word, shown in gmsheet.

Inclui engine puro wordle.js + testes (112 no total) e a UI DecryptGame.


🇧🇷 Rodar localmente

Requer Node 22+.

cd Immersive-Terminal-for-RPGs
npm install
npm run dev

Abra http://localhost:5173. Build estático: npm run build.

🇬🇧 Run locally

Requires Node 22+.

cd Immersive-Terminal-for-RPGs
npm install
npm run dev

Open http://localhost:5173. Static build: npm run build.


MIT © 2026 Felipe Lippelt · unofficial fan content (see README).

Immersive Terminal for RPGs v1.3.1

Choose a tag to compare

@flippelt flippelt released this 27 May 20:40
ba68001

Prop de terminal CRT imersivo para mesas de RPG — 8 sistemas (Alien, Lancer, Blade Runner, WH40K Cogitator + Dataslate, Fallout, Cyberpunk RED, IBM 5151).

O zip abaixo contém só os arquivos necessários para rodar localmente (código-fonte + fontes), sem node_modules nem build. Inclui os dois READMEs (PT/EN). Referência completa na Wiki.


✨ Polimento do tracer / What's new (desde v1.3.0)

  • decrypt também evade o tracer — entrar com a senha certa num arquivo vigiado encerra o trace (igual a um crack bem-sucedido). · Successful decrypt evades the tracer too.
  • Som no clímax "FOUND YOU" — glitch + whine de monitor desligando (Web Audio, sem assets; caught.sound: false silencia). · Caught-climax SFX.
  • Vinheta ambiente — brilho vermelho pulsante nas bordas enquanto o trace corre. · Ambient red vignette while tracing.
  • gmsheet mostra a config de vigilância por arquivo (checkDC, janela do tracer). · gmsheet surfaces surveillance config.
  • Testes — matemática do tracer extraída pra módulo puro testável; 99 testes no total. · Extracted pure tracer math + tests.

🇧🇷 Rodar localmente

Requer Node 22+.

cd Immersive-Terminal-for-RPGs
npm install
npm run dev

Abra http://localhost:5173. Site estático: npm run build (saída em dist/).


🇬🇧 Run locally

Requires Node 22+.

cd Immersive-Terminal-for-RPGs
npm install
npm run dev

Open http://localhost:5173. Static build: npm run build (output in dist/).


MIT © 2026 Felipe Lippelt · unofficial fan content (see README).

Immersive Terminal for RPGs v1.3.0

Choose a tag to compare

@flippelt flippelt released this 27 May 20:28
7e99e5f

Prop de terminal CRT imersivo para mesas de RPG — 8 sistemas (Alien, Lancer, Blade Runner, WH40K Cogitator + Dataslate, Fallout, Cyberpunk RED, IBM 5151).

O zip abaixo contém só os arquivos necessários para rodar localmente (código-fonte + fontes), sem node_modules nem build. Inclui os dois READMEs (PT/EN). Referência completa na Wiki.


✨ Novidades / What's new (desde v1.2.0)

Sistema de rastreamento + recon (tracer & check):

  • Tracer por arquivo — só arquivos com tracer: true ativam o rastreador; encerra ao crackear com sucesso (evaded). · Per-file opt-in tracer; stops on a successful crack.
  • Dificuldade configurávelstartAfter (falhas antes de armar) e overrides por arquivo (tracerSeconds/Penalty/StartAfter/NocrackSeconds). · GM grace + per-file difficulty overrides.
  • check (recon) — escaneia trava/força-bruta/vigilância; opcional com rolagem (checkDC): precisa/ambígua/falha, e "scan mente" (checkMisleadsOnFail). Aliases temáticos (audit, auspex, scan). · Recon scan command with optional difficulty + themed aliases.
  • Trace rápido em arquivos blindados (nocrack) e alerta ICE de re-scan (avisa e gasta a graça do tracer). · Nocrack fast-trace + repeat-scan ICE alert.
  • Clímax "FOUND YOU" (Cyberpunk) — popups, tela final, efeito de monitor desligando e reboot. · "FOUND YOU" caught climax with CRT power-off.
  • Tracer temático em Blade Runner, IBM, WH40K e Dataslate. · Themed tracer across more scenarios.

Outros: Pages agora hospeda apenas a demo (/demo/); o site completo vai pro Netlify. · Pages hosts only the demo now.


🇧🇷 Rodar localmente

Requer Node 22+.

cd Immersive-Terminal-for-RPGs
npm install
npm run dev

Abra http://localhost:5173. Site estático: npm run build (saída em dist/).


🇬🇧 Run locally

Requires Node 22+.

cd Immersive-Terminal-for-RPGs
npm install
npm run dev

Open http://localhost:5173. Static build: npm run build (output in dist/).


MIT © 2026 Felipe Lippelt · unofficial fan content (see README).

Immersive Terminal for RPGs v1.2.0

Choose a tag to compare

@flippelt flippelt released this 27 May 15:37
1f5cfed

Prop de terminal CRT imersivo para mesas de RPG — 8 sistemas (Alien, Lancer, Blade Runner, WH40K Cogitator + Dataslate, Fallout, Cyberpunk RED, IBM 5151).

O zip abaixo contém só os arquivos necessários para rodar localmente (código-fonte + fontes), sem node_modules nem build. Inclui os dois READMEs (PT/EN). A referência completa está na Wiki.


✨ Novidades / What's new (desde v1.1.0)

  • Link compartilhável de cenáriosharescenario embute o cenário custom inteiro na URL (?scenario64=) e copia pra área de transferência; sem hospedar JSON, sem CORS. · Shareable scenario links.
  • Offline / PWA — instala como app e roda sem internet na mesa depois da primeira visita (service worker + manifest). · Installable + offline support.
  • Testes de componente — 11 novos testes de UI (Terminal/modals/Tracer) com React Testing Library; 75 testes no total. · Component/UI tests.

🇧🇷 Rodar localmente

Requer Node 22+.

# 1. baixe e extraia o zip, entre na pasta
cd Immersive-Terminal-for-RPGs

# 2. instale as dependências
npm install

# 3. rode o servidor de desenvolvimento
npm run dev

Abra http://localhost:5173. Para gerar o site estático: npm run build (saída em dist/).


🇬🇧 Run locally

Requires Node 22+.

# 1. download and extract the zip, enter the folder
cd Immersive-Terminal-for-RPGs

# 2. install dependencies
npm install

# 3. start the dev server
npm run dev

Open http://localhost:5173. To produce the static site: npm run build (output in dist/).


MIT © 2026 Felipe Lippelt · unofficial fan content (see README).