fix(engine): platform-correct onboarding copy; Home waits for first-run onboarding (Phase H)
- The how-to-play slide told touch players to left/right-click; Android now gets tap/double-tap copy pointing at the bottom-bar Hint button. - On a fresh profile the Home auto-show spawned underneath the onboarding modal, stacking two scrims (v0.44.0 emulator smoke finding). spawn_home_on_launch now waits until first_run_complete and the onboarding modal is gone, so the launch beat is onboarding, then Home, then the table. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -475,6 +475,11 @@ fn persist_last_mode(
|
||||
/// must be empty — when the player has a saved in-progress game the
|
||||
/// restore prompt takes precedence; the home picker would compete
|
||||
/// with it for attention.
|
||||
/// * First-run onboarding must be finished (`Settings.first_run_complete`
|
||||
/// and no `OnboardingScreen` open) — on a fresh profile the onboarding
|
||||
/// owns the launch beat; Home appearing underneath it stacked two
|
||||
/// modals (Phase H fix; spotted in the v0.44.0 emulator smoke). Home
|
||||
/// spawns on the first frame after the player finishes or skips.
|
||||
/// * `HomeScreen` must not already exist (defensive — e.g. the player
|
||||
/// pressed `M` between ticks).
|
||||
/// * `LaunchHomeShown` flips to `true` after the first spawn so this
|
||||
@@ -488,6 +493,7 @@ fn spawn_home_on_launch(
|
||||
splash: Query<(), With<crate::splash_plugin::SplashRoot>>,
|
||||
restore_prompts: Query<(), With<crate::game_plugin::RestorePromptScreen>>,
|
||||
pending_restore: Option<Res<crate::game_plugin::PendingRestoredGame>>,
|
||||
onboarding: Query<(), With<crate::onboarding_plugin::OnboardingScreen>>,
|
||||
existing: Query<(), With<HomeScreen>>,
|
||||
sources: HomeSpawnSources,
|
||||
mut deal_expanded: ResMut<DealOptionsExpanded>,
|
||||
@@ -496,6 +502,11 @@ fn spawn_home_on_launch(
|
||||
|| !splash.is_empty()
|
||||
|| !restore_prompts.is_empty()
|
||||
|| pending_restore.as_ref().is_some_and(|p| p.0.is_some())
|
||||
|| !onboarding.is_empty()
|
||||
|| sources
|
||||
.settings
|
||||
.as_ref()
|
||||
.is_some_and(|s| !s.0.first_run_complete)
|
||||
|| !existing.is_empty()
|
||||
{
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user