Commit Graph
67 Commits
Author SHA1 Message Date
Greyson Parrelli 76e08ceb17 Improve drag and drop animation. 2026-07-26 23:27:20 -04:00
Greyson Parrelli 08a2e74067 Fix bug in drag and drop. 2026-07-26 22:47:04 -04:00
Greyson Parrelli 5de5b60660 Keep the phone topbar on one row, and tighten card corners.
- Force the topbar to a single row and let long player names truncate with an
  ellipsis, so the three-dot menu no longer wraps to a second line.
- Drop the card's outer corner radius from 14px to 9px so it matches the
  scene/panel boxes inside (7-8px) instead of dwarfing them.
2026-07-26 22:13:21 -04:00
Greyson Parrelli 5a846f1319 Suppress mobile long-press selection and tap highlight.
Treat the app as a game surface: no tap-flash, and a long-press on a card or
button no longer starts a text selection or pops an image callout. Form inputs
and the room code opt back into selection so typing and copying still work.
2026-07-26 21:52:39 -04:00
Greyson Parrelli 53a04b0cea Give phone shop cards description room and un-clip the selection.
The horizontal-scroll trays clip vertical overflow, so a selected card's lift,
gold outline, and check badge were cut off at the top. Add row headroom and
tuck the check badge inside the card corner. Also make the in-tray cards taller
with a larger rule panel and bigger ability text so descriptions aren't cramped
(widths stay tight so all four shop cards still fit without scrolling).
2026-07-26 21:49:40 -04:00
Greyson Parrelli 6e6374e751 Fix mobile card magnify: no phantom hover preview, larger art/power.
- A tap on a touch device synthesized mouseenter/mousemove and popped the
  hover magnifier on top of the tap-to-magnify overlay — a double image. Gate
  the hover preview on real hover capability ((hover: hover)) so touch taps
  only open the tap overlay.
- In that overlay the card is large, but its art, power badge, and text were
  still the tiny in-tray sizes; restore full-size art/power/damage/name/effect
  so the magnified card reads like a real card.
2026-07-26 20:50:38 -04:00
Greyson Parrelli 9a3ee34357 Add touch-friendly shop interactions on phones.
A phone has no hover to preview a card, so tapping now opens a magnified,
fully-readable view with the actions that fit it instead of acting blind:

- Shop card: tap to see it big, then Buy (or read it even when unaffordable).
- Your deck card: tap to see it big, then Sell it, or Select to enter a
  bulk-selection mode where taps toggle pets (no magnify) and the action bar
  offers Sell / Triple / Cancel.

Desktop keeps click-to-buy and click-to-select unchanged; the new behavior is
gated on a max-width:600px media query via a small useMediaQuery hook.
2026-07-26 15:22:41 -04:00
Greyson Parrelli 33bef8f58a Battle result dialog, speed toggle, and topbar refactor for mobile.
- End-of-battle result is now a centered dialog (Victory/Defeat/Draw) with
  'Next round' and 'Not yet'; 'Not yet' dismisses it to rewatch the battle,
  and a toolbar button remains to advance. A modal is always fully on screen,
  fixing the next-round button being unreachable below the arena on phones.
- Also make the play area genuinely scrollable on phones (stretch the body
  so table-main's overflow can engage) as a safety net.
- Collapse the 5-button playback speed picker into one button that cycles
  through the options, keeping the battle controls on a single row.
- Topbar: show the round as a die face (1-6 pips) on all screens, move the
  room code and Leave into a '...' dropdown menu, and drop the wordmark on
  phones so the rail stays one row (die + players + menu).
- On phones, strip battle cards to art + power/damage + name (no suit, tier,
  or ability text); the magnified view still shows the full card.
2026-07-26 15:15:18 -04:00
Greyson Parrelli de9bb480c2 Optimize the layout for phones in portrait.
Lock the app to the viewport on screens <=600px wide so the page itself
never scrolls: the topbar becomes a slim rail and the play area fills the
rest. Cards, trays, and type shrink so a shop round or a battle fits on
one screen; the shop and deck rows scroll sideways when a full six-pet
deck outgrows the width, keeping each tray's height fixed. Arrange is the
one screen allowed to scroll past the viewport, since a battle line can
run long.
2026-07-26 15:04:54 -04:00
Greyson Parrelli 4ed04c967b Improve snappiness and add speed setting. 2026-07-26 14:21:56 -04:00
Greyson Parrelli e3234b6f83 Enter to submit. 2026-07-25 23:13:40 -04:00
Greyson Parrelli 0bf9712c5e Improve drag and drop. 2026-07-25 22:14:05 -04:00
Greyson Parrelli e6c895d6b4 Use real assets. 2026-07-25 18:42:20 -04:00
Greyson Parrelli 3598180ff1 Improved card design. 2026-07-25 14:08:59 -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 f3783b44bf Improve AI difficulty scaling. 2026-07-24 23:03:02 -04:00
Greyson Parrelli 5a396e6efe Improve AI to stop selling everything. 2026-07-24 22:34:55 -04:00
Greyson Parrelli 95499026d7 Move the UI to be vertical. 2026-07-24 22:16:28 -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 ceab30dc2e Add ability to hover pets in event log. 2026-07-24 09:23: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 9d9acc4577 Improved battle animations. 2026-07-23 21:39:01 -04:00
Greyson Parrelli ce70b1d89f Move a warning element down. 2026-07-23 21:28:06 -04:00
Greyson Parrelli 3e34e9b293 Improve some animations. 2026-07-23 21:24:30 -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 3825dbacec Improve arrangement phase UI. 2026-07-23 15:26:29 -04:00
Greyson Parrelli 547cd81a99 Various UX improvements. 2026-07-23 11:55: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 7bb20e5d2d Improve dice rolls. 2026-07-23 10:26:15 -04:00
Greyson Parrelli 44f8bcfcab Improve theme. 2026-07-23 09:14: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 3821469c61 Hide the hover magnifier while dragging a card to arrange. 2026-07-23 08:37:16 -04:00
Greyson Parrelli 169b21d6a8 Fix hooks order in Table (run replay-step hooks before the loading guard). 2026-07-23 08:22:00 -04:00
Greyson Parrelli 996bb861a9 Fly shop apples out from the creature that made them. 2026-07-23 08:10:18 -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 f7a00f6c48 Fly faint-summoned apples and bees out from the pet. 2026-07-23 07:54:19 -04:00
Greyson Parrelli 3922f545dc Keep button layout stable. 2026-07-23 07:47:51 -04:00
Greyson Parrelli ff251a442d Make right the front. 2026-07-23 07:44:36 -04:00
Greyson Parrelli c9159868e6 Add Dockerfile for deployment. 2026-07-23 07:40:09 -04:00
Greyson Parrelli 65bf3bf618 Fix clipping issue. 2026-07-23 07:39:58 -04:00
Greyson Parrelli e5604cde8e Add step-through replay controls to the battle view
Prev/next/play-pause/restart and a step counter let a player walk the
battle log manually and replay it before hitting Next. Local-only view
state; nothing is shared or sent to the server.
2026-07-23 01:14:08 -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 c641e4fc20 Magnify cards on hover
Hovering any card portals a large copy beside the cursor that grows to
fit its full effect text, so small or clipped cards can be read at a
glance.
2026-07-23 01:09:44 -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 da00d0fcd7 Fix card text overflow on taller cards
Shrink the oversized emoji art and let the effect text grow into the
freed middle band, centered with safe fallback to top-aligned so long
effects never clip their leading words.
2026-07-23 01:00:37 -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