feat: replace browser dialogs with in-game naming screen + notifications

Remove prompt() and alert() calls that broke game immersion. Add:
- Pokemon-style naming screen with character grid + direct typing
- Canvas-rendered notification toasts (with fade-out animation)
- Both render on top of workshop AND world mode canvases
- Workshop keyboard handler yields to naming screen when active

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jose Luis
2026-03-20 17:36:31 +01:00
parent c6f5e19af5
commit 816a02aeb9
6 changed files with 267 additions and 36 deletions

View File

@@ -4,6 +4,7 @@ import { state } from './state.js';
import { getInputPorts, getOutputPorts, getComponentWidth, getComponentHeight } from './gates.js';
import { getGateLabel, drawWaveLabels, drawWaveforms } from './waveform.js';
import { getBusPairs } from './bus.js';
import { drawNamingScreen, drawNotification } from './world/inventory.js';
let canvas, ctx;
let circuitAnimFrameId = null;
@@ -663,5 +664,9 @@ function draw() {
drawWaveforms();
}
// In-game overlays (naming screen, notifications) — render on top
drawNamingScreen(ctx, canvas.width, canvas.height);
drawNotification(ctx, canvas.width);
circuitAnimFrameId = requestAnimationFrame(draw);
}