myth-o-magic backlog
Future features and refinements, loosely prioritized. Edit freely as ideas come in.
Next up (low effort, decent impact)
- Avatar / color picker in the setup screen — currently names only. Add an avatar selection so players visually identify themselves.
- Hot-seat save & resume — online has it (localStorage + server state); hot-seat games are wiped on tab close. Add localStorage save for hot-seat too.
- Server-side hand redaction — opponent could open dev tools and inspect raw state to see your hand. Not a problem for friends, would matter for tournaments. Real fix needs proxying realtime through our own SSE per-player or a Postgres view + RLS filter. Non-trivial.
- Old game cleanup —
pg_cronblock inonline/schema.sqlis commented out. Enable to auto-deletegamesrows older than 24h. - Hot-seat + vs-AI in match history. v1.57 added the match-history view but it only shows ONLINE games (the only ones recorded server-side). To include hot-seat, log finished games to localStorage and merge in render. To include vs-AI, similarly log them locally with an
aiOpponent: trueflag.
Mechanics
- Attack-or-buff choice for Hades / Aphrodite / Hephaestus / Hera (per Benjamin's original notes). Each turn when you use one of these gods, prompt: "Use as attack (deal damage) or buff (apply property effect)?"
- Energy discharge option. Currently energy stays attached after a god's move. Alternative: discharges to a pile and must be re-attached. Test which feels better.
- Max hand size. Cap or trim oldest. Prevent infinite hand growth from un-played energy.
- Turn-start auto-draw cap. If hand is full, skip the draw or burn the card.
- 3-4 player free-for-all. Substantial — needs turn order rotation, target picker that distinguishes between multiple opponents, win condition update (last player standing), board layout for >2.
Polish & feel
- Death dissolve when a god is defeated (currently they just disappear). Pi-friendly: a single opacity + scale fade keyframe.
- Card-from-hand-to-slot path animation — currently the slot just pops; doesn't show the card travelling from the hand. FLIP-style transform animation would do it cheaply.
- Sound effects — attack hit, card play, victory fanfare. Mute toggle.
- Better visual targeting — arrows from selected attacker to valid targets, not just a green border.
- Confirm dialogs for irreversible actions (use a god's last energy, attack a low-HP friendly via Charmspeak redirect, etc.).
- Undo last action within your own turn (we already have undo for end-turn via the pass overlay's "go back" button — extend to mid-turn actions).
- Keyboard shortcuts — number keys to select hand cards, arrows to move between gods, Enter to confirm.
- "Opponent disconnected" detection in online mode — currently silent; opponent leaving without forfeit just hangs.
Art
- Energy card art — single design used for all 31 copies (rune / chalice / sigil). Currently shows ⚡ on a gold panel.
- Logo / title image — refine the MythoMagic card-back art into a clean header for the landing/setup screens.
- Playmat background for the game board area.
- Per-property color tints on cards in play (Healing = green glow, Defence = blue, Charmspeak = pink, etc.).
Done
- v1.0–v1.27 — Core game (hot-seat 2-player, 14 gods, draw/play/attach/use loop, win/lose, restart), hint bar + help overlay, compact layout fits MacBook Air, player name selector, localStorage scoreboard, Demeter ally-shield, Hestia HP raise + sacrifice, Hermes Steal, balance tuning, rules page rendered live from data, pre-deploy sync check, energy pips on hand cards, card-back logo fix, draw 2/turn, in-play wipe = loss, sequential VERSION numbering, "go back" undo for end-turn, energy attachment cap, auto-mulligan, per-god
baseDamageoverrides, full god art set integrated. - v1.28–v1.36 — Online play live: Supabase Postgres + realtime, three flows (Quick play / Host private / Join with code), state sync, hand redaction (client-side), refresh-resumes, realtime resync fallback, leave-game button. Quickjoin recency filter, all 14 hand-trimmed god images, deploy auto-rebase against origin. Uplink hardening (idempotent PUT, dedup filenames).
- v1.37–v1.42 — God selection deselect/switch, rules link relocated, leave = forfeit, version on setup screen, cross-device scoreboard via Supabase, clear-local-scores button.
- v1.43–v1.45 — AI opponent (heuristic, scored move selection, focus-fire). Two stuck-AI bug fixes.
- v1.46–v1.50 — Per-game changelog/backlog links on landing + setup; locally-hosted markdown rendering (private repo); ← home links throughout; landing page redesign with stacked pill cards.
- v1.54 — Hestia balance: no self-target + boost 3000 → 2750.
- v1.56 — Visual attack feedback: damage shake + floating number, summon pop, status badges (+ATK/-ATK/CHRM). Pi-safe (transform/opacity only). Online-mode sync via state diff.
- v1.57 — Match history on the setup screen: head-to-head (per-pair W/L) + recent matches (last 50, online-only).
- v1.58 — Energy pips redesigned: empty pip is now a visible dim-yellow ring instead of a tiny dark dot. Plus a "N/M" count text.
- v1.59–v1.62 — Damage feedback iterated: bigger shake, Diablo-style red glow number (no harsh outline, fits within mobile card width).
- v1.60–v1.64 — Auto-end-turn countdown when stuck (10 s). Per-turn one-energy-per-god rule respected.
- v1.63–v1.65 — God card art top-aligned, container sized to portrait aspect (no gap between art and text).
- v1.66–v1.67 — Setup overlay scrollable on iOS (inner-content scroll pattern).