Commit graph

5 commits

Author SHA1 Message Date
d635ab673c prepare web build 2026-03-18 18:03:52 +01:00
fcd270861c Eliminate flicker on arrow key navigation in inventory and menus
Replace clear-then-write pattern with overwrite-in-place: move cursor
up to start of rendered area and write new content directly over old
lines. Only clear trailing lines if the new render is shorter. This
removes the visible blank frame between clear and re-render.
2026-03-16 19:50:39 +01:00
a6eada7473 Fix terminal height: fit addon now measures real container size
- Show terminal container BEFORE calling fitAddon.fit() so it can
  measure actual dimensions (was measuring display:none → 0 height)
- Read actual terminal rows from JS after init (getDimensions)
- Remove max-height:600px CSS constraint, let terminal fill viewport
- Revert preRender approach that caused flickering on arrow selection
- Height is now dynamic (instance property) instead of hardcoded 30
2026-03-16 19:03:31 +01:00
2c43e31605 Fix WASM compatibility issues and arrow selection rendering bug
- Fix arrow selection line count calculation (overcounted by 1 due to
  trailing newline, causing progressive line truncation on each redraw)
- Replace sync Loreline bridge with queue-based async pattern to avoid
  "Cannot wait on monitors" WASM deadlock
- Add bounded input buffer (8 keys, DropOldest) to prevent held-key
  accumulation
- Set Spectre.Console Profile.Height on all AnsiConsole.Create calls to
  prevent PlatformNotSupportedException on Console.WindowHeight
- Add explicit Loreline.dll reference + TrimmerRootAssembly for WASM
- Use MSBuild CopyGameContent target instead of Content/Link for static
  file serving in Blazor WASM
- Add WASM guards for file I/O in ContentRegistry, LocalizationManager,
  AdventureEngine
- Enforce min 120x30 terminal dimensions in xterm.js
- Add Playwright E2E tests (6 tests: page load, language selection,
  full flow, multi-box progression, extended play, adventure)
2026-03-16 18:21:31 +01:00
ea487cd332 Add Blazor WASM web build for itch.io browser playtesting
Compile the game to WebAssembly so it runs entirely client-side in the browser.
Uses xterm.js for terminal emulation and Spectre.Console off-screen rendering
for full ANSI output fidelity. Saves use localStorage. CI deploys to itch.io
via Butler on push to main.
2026-03-16 14:52:40 +01:00