Keep crew roster order stable across role changes
This commit is contained in:
@@ -28,7 +28,7 @@
|
||||
## Unknown - need to clarify what these mean
|
||||
|
||||
- [ ] Temporary names
|
||||
- [ ] Consistent player list order
|
||||
- [x] Consistent player list order
|
||||
- [ ] Crew objectives reveal area should be connected to button
|
||||
|
||||
## Fixes
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
let openTargetId = null;
|
||||
|
||||
$: captainId = state.game.captain_player_id;
|
||||
$: crew = [...state.players].sort((a, b) => (a.role === 'deep' ? 1 : 0) - (b.role === 'deep' ? 1 : 0));
|
||||
$: openTarget = openTargetId ? state.players.find(p => p.id === openTargetId) : null;
|
||||
|
||||
function iconFor(p) {
|
||||
@@ -64,7 +63,7 @@
|
||||
|
||||
<aside class="crew-column phase-crew-column" aria-label="Crew roster">
|
||||
<div class="crew-bubbles">
|
||||
{#each crew as p (p.id)}
|
||||
{#each state.players as p (p.id)}
|
||||
{#if state.game.phase === 'lobby'}
|
||||
<div
|
||||
class="crew-bubble is-static"
|
||||
|
||||
@@ -35,8 +35,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
// Pi-Rats first, the Deep last; otherwise keep join order.
|
||||
$: crew = [...state.players].sort((a, b) => (a.role === 'deep' ? 1 : 0) - (b.role === 'deep' ? 1 : 0));
|
||||
$: captainId = state.game.captain_player_id;
|
||||
$: openTarget = openTargetId ? state.players.find(p => p.id === openTargetId) : null;
|
||||
$: crewDone = [state.game.completed_crew_1, state.game.completed_crew_2, state.game.completed_crew_3].filter(Boolean).length;
|
||||
@@ -54,7 +52,7 @@
|
||||
|
||||
<div class="crew-column">
|
||||
<div class="crew-bubbles">
|
||||
{#each crew as p (p.id)}
|
||||
{#each state.players as p (p.id)}
|
||||
<button
|
||||
class="crew-bubble"
|
||||
class:is-you={p.id === state.player.id}
|
||||
|
||||
@@ -6,10 +6,11 @@
|
||||
// - Add a CHANGELOG entry only when a commit changes something players can
|
||||
// see. Skip refactors, tests, and tooling. Keep wording player-facing.
|
||||
|
||||
export const VERSION = 42;
|
||||
export const VERSION = 43;
|
||||
|
||||
// Newest first. Each entry: { version, date: 'YYYY-MM-DD', changes: [string, ...] }.
|
||||
export const CHANGELOG = [
|
||||
{ version: 43, date: '2026-09-04', changes: ['The crew roster keeps players in the same order when roles or ranks change, including when someone becomes the Deep.'] },
|
||||
{ version: 42, date: '2026-09-04', changes: ['Gats require a description, including older Gats that were left blank. Read descriptions on character sheets or hover over Gat icons in the crew roster.', 'Gat descriptions and prompts follow Gat Taxes correctly and clear when you create a new recruit.'] },
|
||||
{ version: 41, date: '2026-09-04', changes: ['Dismiss a completed duel once you have read the result. Other players can still read it, and dismissed results stay hidden after a reload.'] },
|
||||
{ version: 40, date: '2026-09-04', changes: ['Played cards show a check or cross in the upper corner instead of a green or red outline, so results remain clear in stacked cards.'] },
|
||||
|
||||
Reference in New Issue
Block a user