From 8614a6c820a13fd8a4df82ac9c477ead36edf505 Mon Sep 17 00:00:00 2001 From: Tim McCarthy Date: Sun, 14 Jun 2026 10:57:55 -0700 Subject: [PATCH] Collapse between-scenes upkeep into a single panel During between_scenes there's now just one centered panel with the voting controls, nomination progress, and Crew Rank Ledger. The separate "Resting Deep Upkeep" panel (which only said hand refresh would happen later) is rendered solely during deep_upkeep, where the actual discard/ redraw happens. Moved the rank ledger into the voting panel and added a .between-grid.single layout. Co-Authored-By: Claude Opus 4.8 --- TODO.md | 2 +- frontend/src/assets/css/upkeep.css | 8 ++++ frontend/src/components/UpkeepPhase.svelte | 48 ++++++++++------------ 3 files changed, 31 insertions(+), 27 deletions(-) diff --git a/TODO.md b/TODO.md index 842418f..03766be 100644 --- a/TODO.md +++ b/TODO.md @@ -22,7 +22,7 @@ - [x] When you get a gat, there should be a pop up to enter a description of it, as with your name -- [ ] In between scenes, there really only needs to be one panel with the roster and voting status. There doesn't need to be a whole extra panel to inform players that the deep will later get to refresh their hands. +- [x] In between scenes, there really only needs to be one panel with the roster and voting status. There doesn't need to be a whole extra panel to inform players that the deep will later get to refresh their hands. ## UI Polish diff --git a/frontend/src/assets/css/upkeep.css b/frontend/src/assets/css/upkeep.css index 8e14e1d..9880808 100644 --- a/frontend/src/assets/css/upkeep.css +++ b/frontend/src/assets/css/upkeep.css @@ -6,6 +6,14 @@ margin: 2rem 0; } +/* Between scenes there's only the voting/roster panel — center it. */ +.between-grid.single { + grid-template-columns: 1fr; + max-width: 640px; + margin-left: auto; + margin-right: auto; +} + @media (max-width: 800px) { .between-grid { grid-template-columns: 1fr; diff --git a/frontend/src/components/UpkeepPhase.svelte b/frontend/src/components/UpkeepPhase.svelte index 3bef644..ffedfb3 100644 --- a/frontend/src/components/UpkeepPhase.svelte +++ b/frontend/src/components/UpkeepPhase.svelte @@ -198,7 +198,7 @@

🐀 A fresh recruit is on the way! Once upkeep wraps up, you and the crew will create your new Pi-Rat together.

{/if} -
+

1. Pirate Ranking (Voting)

@@ -250,19 +250,30 @@
{/if} + +
+

Crew Rank Ledger:

+
    + {#each state.players as p} +
  • + {displayName(p)}: Rank {p.rank} + {#if p.role === 'deep'}Deep{:else if p.is_ghost}Ghost{:else}Pi-Rat{/if} +
  • + {/each} +
+
- - + + + {#if state.game.phase === 'deep_upkeep'}

2. Resting Deep Upkeep

- + {#if state.player.role === "deep"}

You controlled the Deep in the last scene and your Pi-Rat was resting. You will discard your current hand and redraw back up to your maximum hand size.

- - {#if state.game.phase === 'between_scenes'} -

Voting is currently in progress. Hand refresh will begin after voting concludes.

- {:else if state.game.phase === 'deep_upkeep' && state.player.is_ready} + + {#if state.player.is_ready}

✔️ Hand refreshed! You're holding {hand.length} card{hand.length === 1 ? '' : 's'} for the next scene.

@@ -275,7 +286,7 @@ {/each}

Waiting for the rest of the crew to finish upkeep...

- {:else if state.game.phase === 'deep_upkeep'} + {:else}

Your Hand Size Limit: {maxHandSize} cards.
Drag cards to the "Discard Pile" zone to discard them, or click them to move them. @@ -329,25 +340,10 @@ {/if}

{:else} - {#if state.game.phase === 'between_scenes'} -

Your Pi-Rat was active. Your hand cards carry over to the next scene.

- {:else if state.game.phase === 'deep_upkeep'} -

Waiting for resting Deep player to refresh their hand...

- {/if} +

Waiting for resting Deep player to refresh their hand...

{/if} - -
-

Crew Rank Ledger:

-
    - {#each state.players as p} -
  • - {displayName(p)}: Rank {p.rank} - {#if p.role === 'deep'}Deep{:else if p.is_ghost}Ghost{:else}Pi-Rat{/if} -
  • - {/each} -
-
+ {/if}