feat(ui): single-URL game app-shell (in-memory screens/views) #35
@@ -95,7 +95,11 @@ label `game.shell.menu.return_to_lobby`); it calls
|
|||||||
`appScreen` / `activeView` persist a snapshot (screen, game id, view +
|
`appScreen` / `activeView` persist a snapshot (screen, game id, view +
|
||||||
sub-params) to `sessionStorage` (`galaxy-app-nav`) on every mutation
|
sub-params) to `sessionStorage` (`galaxy-app-nav`) on every mutation
|
||||||
and read it back once at construction, so a refresh restores the last
|
and read it back once at construction, so a refresh restores the last
|
||||||
screen and view. On a full load the dispatcher records the restored
|
screen and view. Re-entering a game from the lobby is not a restore: the
|
||||||
|
lobby resets `activeView` to the map before `appScreen.go("game")`, so
|
||||||
|
only an in-place refresh replays the saved view — browser Back and the
|
||||||
|
in-game return-to-lobby control both exit to the lobby. On a full load
|
||||||
|
the dispatcher records the restored
|
||||||
game id (`appScreen.restoredGameId`); the game shell's boot path then
|
game id (`appScreen.restoredGameId`); the game shell's boot path then
|
||||||
validates it against the player's game list. `GameStateStore.init`
|
validates it against the player's game list. `GameStateStore.init`
|
||||||
looks the game up through `listMyGames` / `findGame`, and if the game
|
looks the game up through `listMyGames` / `findGame`, and if the game
|
||||||
|
|||||||
Reference in New Issue
Block a user