feat(engine): Phase B home hierarchy — Continue card, hero New Game, deal-options disclosure
Test / test (pull_request) Failing after 10s
Test / test (pull_request) Failing after 10s
Restructures the Home overlay per docs/ui-redesign-2026-07.md Phase B: - Continue card (mode / elapsed / score) when a game is in progress; clicking returns to the table - Hero New Game replays the persisted Settings::last_mode (new field, serde-default Classic) with one tap; locked modes fall back to Classic - Deal options (draw 1/3, winnable-only, difficulty tiers) move into a disclosure under the hero — off the Home top level (decision 2) - Compact symmetric 2x3 mode grid; descriptions on wide viewports only - Stats strip moves to the bottom (right pane on wide) - Two-pane body on wide viewports (>= 1000 logical px) via new ui_modal::spawn_modal_sized (default card stays 720 px) - Cancel becomes "Back to table" and only renders while a live (un-won) game exists 10 new home_plugin tests; all 936 engine tests + clippy green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+1105
-307
File diff suppressed because it is too large
Load Diff
@@ -178,6 +178,26 @@ pub fn spawn_modal<M: Component, F>(
|
||||
z_panel: i32,
|
||||
build_card: F,
|
||||
) -> Entity
|
||||
where
|
||||
F: FnOnce(&mut ChildSpawnerCommands),
|
||||
{
|
||||
spawn_modal_sized(commands, plugin_marker, z_panel, MODAL_CARD_MAX_WIDTH, build_card)
|
||||
}
|
||||
|
||||
/// Default maximum card width in logical pixels — every [`spawn_modal`]
|
||||
/// caller gets this. Surfaces that lay out side-by-side panes (e.g. the
|
||||
/// two-pane Home on wide viewports) can raise it via [`spawn_modal_sized`].
|
||||
pub const MODAL_CARD_MAX_WIDTH: f32 = 720.0;
|
||||
|
||||
/// [`spawn_modal`] with an explicit card `max_width`. Behaviour is
|
||||
/// otherwise identical — same scrim, enter animation, and card chrome.
|
||||
pub fn spawn_modal_sized<M: Component, F>(
|
||||
commands: &mut Commands,
|
||||
plugin_marker: M,
|
||||
z_panel: i32,
|
||||
max_width: f32,
|
||||
build_card: F,
|
||||
) -> Entity
|
||||
where
|
||||
F: FnOnce(&mut ChildSpawnerCommands),
|
||||
{
|
||||
@@ -235,7 +255,7 @@ where
|
||||
padding: UiRect::all(VAL_SPACE_5),
|
||||
border: UiRect::all(Val::Px(1.0)),
|
||||
border_radius: BorderRadius::all(Val::Px(RADIUS_LG)),
|
||||
max_width: Val::Px(720.0),
|
||||
max_width: Val::Px(max_width),
|
||||
align_items: AlignItems::Stretch,
|
||||
..default()
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user