Commit Graph

4 Commits

Author SHA1 Message Date
tiennm99 f66a68b590 fix(web-client): surface nickname rejection and stop scene restart loop 2026-04-10 18:03:56 +07:00
tiennm99 3615310335 fix(web-client): determine win/lose by result+piece, align nickname length to server 2026-04-10 18:02:20 +07:00
tiennm99 760ec9cb5e fix(web-client): eliminate hover preview flicker on micro mouse movement 2026-04-10 17:55:55 +07:00
tiennm99 22bb9c1371 feat: add Phaser 3 web client with Vite scaffold
Separate web-client/ directory with Phaser 3 + Vite + vanilla JS:
- Services: event bus, WebSocket connection (heartbeat, reconnect),
  game state, protocol constants matching server enums
- Scenes: BootScene (connect), MenuScene (DOM overlay), GameScene
  (canvas board with grid, stones, hover, click-to-move, animations)
- Objects: Board (wood grid, star points, labels), Stone (gradient
  circles with drop tween animation)
- UI: DOM overlays for nickname, lobby, PVP/PVE menus, room list,
  waiting room, game HUD, game over, toast notifications
- Audio: Web Audio API stone click + win/lose tones
- Full game flow: nickname → lobby → create/join/PVE → play → game over
2026-04-10 09:46:06 +07:00