• feat(replay): add full-screen tableau dim layer for mini-tableau preview

    funman300 released this 2026-05-09 01:01:22 +00:00 | 313 commits to master since this release

    Spawn a ReplayTableauDimLayer UI node (100% × 100%, 50% opacity black)
    at z=54 (Z_REPLAY_OVERLAY − 1) whenever a replay starts. The dim layer
    darkens the entire card world so the replay chrome (banner at z=55,
    move-log panel at z=55) reads clearly against the scene without
    obscuring card positions — matching the mockup's "Game Peek Band at
    50% opacity" spec. Bevy's UI/world compositor means no changes to
    card_plugin are needed: UI nodes always render above world-space sprites
    regardless of Transform.z values.

    The dim layer carries no Interaction component (purely visual; pointer
    events pass through). Despawned alongside the banner and move-log panel
    in react_to_state_change when the replay ends.

    Adds Z_REPLAY_DIM (= 54) and TABLEAU_DIM_ALPHA (= 0.5) constants plus
    two new tests: lifecycle (spawn/despawn mirrors floating chip pattern)
    and z-ordering invariant (Z_REPLAY_DIM < Z_REPLAY_OVERLAY pinned).

    1275 tests pass / 0 failing. Closes the last major B-2 sub-piece.

    Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com

    Downloads