Commit Graph
35 Commits
Author SHA1 Message Date
Greyson Parrelli 6ae4d41976 Put the bug report behind an always-available button.
The debug report was only reachable in DEBUG mode, which is the one mode
a player hitting a real bug won't be running. Move it to a "🐛 Report a
bug" item in the game menu: a note field, a download, and a copy-as-text,
on any server.

That knowingly shows the reporter their opponents' hands and the shop
deck order. Credentials are still required, so a report only ever reaches
someone seated at that table. The buy-any-card panel stays DEBUG-only —
it changes the game; a report only reads it.
2026-08-10 13:42:31 -04:00
Greyson Parrelli 8ccde03023 Add replayable debug reports.
A report dumps everything needed to understand a game that went wrong:
the full state (decks card by card, shop row and tier deck order,
discards, pending choices, banked Mana/Trumpets/apples), the round's
battles, and the whole event log. Available as JSON, which replays, or
text, which reads — and the text ends with a paste-ready repro test.

Battles now record the randomness they consume alongside what they
started from, so a result can be replayed long after the round cleared
those banks: same lineups, same dice, same events, down to the log text.
Results predating the recording say so rather than quietly re-rolling.

Three ways in: the 🐛 panel's download/copy buttons, GET
/api/debug/report (DEBUG-only, since a report holds both players' hands
and the shop deck order), and `mise run report`, which reads the
database directly so a live game can be dumped without DEBUG.
2026-08-10 10:06:06 -04:00
Greyson Parrelli a4f5f6910d Add support for up to 6 players. 2026-07-28 07:36:09 -04:00
Greyson Parrelli 4fb5c5929f Keep deck storted sensibly during shop phase. 2026-07-27 09:29:07 -04:00
Greyson Parrelli 3a7f92b3cb Allow abomination to mimic play abilitites. 2026-07-25 07:58:02 -04:00
Greyson Parrelli a1d57fe1dd Initial pass at unicorn pack. 2026-07-25 00:37:44 -04:00
Greyson Parrelli 0a1e2f9bee Make the AI a little smarter. 2026-07-24 16:20:45 -04:00
Greyson Parrelli e25a85e394 Fix bugs around AI opponents. 2026-07-24 12:52:10 -04:00
Greyson Parrelli add2218978 More random UI fixes. 2026-07-24 11:23:38 -04:00
Greyson Parrelli 6558806ba0 Various bug fixes and improvements. 2026-07-24 10:47:59 -04:00
Greyson Parrelli 0fe0757e18 Fix nurse shark and remove mid-battle choice. 2026-07-24 10:12:17 -04:00
Greyson Parrelli 094f38593e Fix a bunch of bugs. 2026-07-24 09:51:25 -04:00
Greyson Parrelli 10b6346874 More UX improvements. 2026-07-24 09:07:54 -04:00
Greyson Parrelli 962e3bb5ff Various UX improvements. 2026-07-24 07:54:58 -04:00
Greyson Parrelli dd395f4bbf Initial pass at Golden Pack. 2026-07-24 07:47:05 -04:00
Greyson Parrelli e74f983470 Add lobby and pack concept. 2026-07-23 22:01:54 -04:00
Greyson Parrelli 72e198a750 Fix shop action costs and pass semantics.
Only buying costs gold; selling and trading (Triple) are free. Pass is
now a final action, legal only at or under the pet limit: it forfeits
remaining gold and ends that player's shopping for the round, with the
shop closing once everyone has passed. That makes the separate cleanup
phase unreachable (you sell down in-shop before passing), so it is
removed. The client asks for confirmation before passing, and the bot
knows buys are the only coin sink, when passing is legal, and that it
must sell down before it can pass.
2026-07-23 16:11:07 -04:00
Greyson Parrelli db1a6ef290 Add bot to play against. 2026-07-23 15:58:12 -04:00
Greyson Parrelli 816ad13f7e Improve rock attribution. 2026-07-23 11:17:56 -04:00
Greyson Parrelli 235b1d9cc8 Improve UI of food and set-aside cards. 2026-07-23 11:12:47 -04:00
Greyson Parrelli 14a8fd1032 Deflake TestBuyTakesCardAndRefills by pinning an effect-less shop pet. 2026-07-23 08:53:15 -04:00
Greyson Parrelli f8b1337def Reveal tripled-in pets but keep the pick secret unless it buys. 2026-07-23 08:52:14 -04:00
Greyson Parrelli ec68689586 Break a 9-clash pet deadlock by fainting both combatants. 2026-07-23 08:49:51 -04:00
Greyson Parrelli c669ac1453 Test that Skunk's strip faints a pet dropped below its damage. 2026-07-23 08:49:37 -04:00
Greyson Parrelli 1705de5a3f Hold the battle result until the replay ends, then show it last. 2026-07-23 08:40:42 -04:00
Greyson Parrelli 63b64bc1d8 Narrate the battle in the event log, synced to the replay step. 2026-07-23 08:07:17 -04:00
Greyson Parrelli 506c6e5b55 Add a persistent event log for shop and prep actions. 2026-07-23 08:00:59 -04:00
Greyson Parrelli 7eb4812f86 Let players peek both decks during and after a battle
Record each seat's arranged lineup on the battle result (already public)
and reveal the full deck in a popover when hovering a deck pile in the
battle view — the opponent's included.
2026-07-23 01:12:36 -04:00
Greyson Parrelli b2aa7c5ca3 Add DEBUG-gated panel to buy any card in the shop
When the server's DEBUG env var is on, expose a card catalog endpoint
and a collapsible client panel that drops any pet or food straight into
your deck (free, off-turn). Gated server-side so it is inert in normal
play.
2026-07-23 01:07:14 -04:00
Greyson Parrelli 71fa20493a Add 3D dice roll animation for thrown rocks
Emit the individual rock-die faces (0/0/1/1/2/2) from the battle
resolver so the client can render a real CSS 3D cube per die that
tumbles and settles on the rolled face, replacing the flat random
damage number. Falls back to the flying-rock cue for older battle logs
without per-die data.
2026-07-23 01:01:00 -04:00
Greyson Parrelli b8775432b4 Implement priority token. 2026-07-23 00:45:25 -04:00
Greyson Parrelli 1c457c602a Fix json error. 2026-07-23 00:32:57 -04:00
Greyson Parrelli 10ac457e2e Add pets for tiers 4-6. 2026-07-23 00:10:20 -04:00
Greyson Parrelli 8d43bbf61e Add pets for tiers 1-3. 2026-07-23 00:10:17 -04:00
Greyson Parrelli 612a4e6227 Initial commit. 2026-07-22 23:07:29 -04:00