Card Battle — backlog
Outstanding bugs and feature ideas. Newest at top.
Features
- Online scoreboard — record finished online games to the shared
scorestable (would need agameTypecolumn to keep CB and MoM tallies separate) so wins/losses can surface per-game on the landing page. - Resume on refresh — persist
{roomCode, you}to localStorage so accidentally reloading mid-game reconnects instead of forfeiting. Myth-o-Magic has this pattern; lift it. - "Play again" online — currently sends both players back to setup; ideally re-uses the same room code with a fresh deck.
- Sound effects — card play, die roll, win/lose. Optional, mute toggle.
- Visible AI thinking indicator — the 700 ms pause is silent; consider a "…thinking" pip on the opponent block.
Bugs
(none open)
Known constraints / by-design
- Hot-seat (two humans on one device) was deliberately skipped to keep the UI simple — only vs AI and online.
- The AI is intentionally simple: card pick is random (the game's already mostly luck) and No-card play is probability-gated. A smarter AI (counts cards, models opponent's hand) is doable but probably not worth it given how lucky-by-design the game is.
Done
- v1.0 — Initial scaffold from Benjamin's spec: 47-card RPS deck, vs heuristic AI, race to 7 points, dice rolls, No-card mechanic.
- v1.1 — Online multiplayer (host/join by code), reusing MoM's Supabase backend with a
gameTypediscriminator. Host-orchestrated model. Forfeit on leave. - v1.1.1–v1.1.2 — Mobile responsive (portrait + landscape), 100dvh + safe-area, smaller cards on phones. Quick play matchmaking. Server-side merge for join/quickjoin so host's pre-dealt p2 hand isn't clobbered. ← home link.
- v1.1.3 — Dice animation race fix in online mode (render() was double-firing the animation, host's await early-returned). Played No cards now recycle back into the noPool instead of being permanently discarded.