Sky/Sea Select: ?seat-aware so a CARTE owner drives all 6 seats — TDD

A Carte Blanche gamer owns all 6 seats but could only cast sky / draw sea for ONE:
the sky/sea state IS per-seat (Character.seat), but the code resolved to the fixed
canonical (PC-first) seat, ignoring the ?seat switched to via the GATE VIEW pos-
circles — so the tray switched but the sky wheel / sea spread stuck on the
canonical seat + saves wrote back to it. Mirrors Sig Select's existing ?seat path.

- generalize `_acting_sig_seat` → `_acting_seat` (logic is sig-agnostic; 3 callers)
- `_role_select_context` SKY_SELECT branch keys off `selected_seat` (the ?seat-aware
  seat, already computed) instead of `_canonical_seat`: user_polarity,
  confirmed_char, user_seat_role, my_tray_sig, saved_by_position, saved_sea_spread,
  sea_default_spread, hand_complete, sea_back_image_url
- sky_save / sky_delete / sea_save / sea_delete / sea_deck resolve the acting seat
  via `_acting_seat(…, request.GET.get("seat"))`; sea_partial threads seat_param
- the sky + sea felts carry `?seat={{ current_slot }}` on their save/delete/deck/
  sea_partial action URLs so the POSTs target the switched-to seat
- single-seat flow unchanged (no ?seat → canonical fallback)
- ITs: CARTE owner — ?seat switches the displayed spread; sea_save/sky_save target
  the switched seat leaving the canonical seat's Character intact; felt URLs carry
  ?seat. 949 epic+gameboard ITs green.

; FLIP tint tweak (parallel edit): drop the polarity border, bump the flipped-back
overlay --quiUser/--terUser to 0.6 alpha

[[project-sig-select-seat-switch-open-problems]] [[project-deck-segment-model]]
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Disco DeDisco
2026-06-07 22:44:06 -04:00
parent de59cb7e69
commit d09dca56c0
5 changed files with 138 additions and 33 deletions

View File

@@ -2347,15 +2347,11 @@ $_sea-title-els: '.fan-card-name, .sig-qualifier-above, .sig-qualifier-below, .f
border-radius: 0.4rem;
}
}
.sea-stage--gravity .sea-stage-card.is-flipped-to-back,
.sea-stage--gravity .sea-stage-card.sig-stage-card--image.is-flipped-to-back {
border: 0.18rem solid rgba(var(--quaUser), 1);
&::after { background: rgba(var(--quiUser), 0.3); }
.sea-stage--gravity .sea-stage-card.is-flipped-to-back {
&::after { background: rgba(var(--quiUser), 0.6); }
}
.sea-stage--levity .sea-stage-card.is-flipped-to-back,
.sea-stage--levity .sea-stage-card.sig-stage-card--image.is-flipped-to-back {
border: 0.18rem solid rgba(var(--ninUser), 1);
&::after { background: rgba(var(--terUser), 0.3); }
.sea-stage--levity .sea-stage-card.is-flipped-to-back {
&::after { background: rgba(var(--terUser), 0.6); }
}
// Sea stat block — reuses sig-select stat-block sizing, scoped to sea-stage.