Add per-player autosaving game notebooks
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
import RecruitPhase from '../components/RecruitPhase.svelte';
|
||||
import GameOverPhase from '../components/GameOverPhase.svelte';
|
||||
import CrewSidebar from '../components/CrewSidebar.svelte';
|
||||
import EventLog from '../components/EventLog.svelte';
|
||||
import GameNotebook from '../components/GameNotebook.svelte';
|
||||
import NameModal from '../components/NameModal.svelte';
|
||||
import GatModal from '../components/GatModal.svelte';
|
||||
import RankBonusModal from '../components/RankBonusModal.svelte';
|
||||
@@ -35,9 +35,7 @@
|
||||
let reconnectDelay = 1000;
|
||||
let destroyed = false;
|
||||
let staleSession = false;
|
||||
// Non-scene phases use the same pinned Event Log column and fixed corner
|
||||
// toggle that ScenePhase owns for the main play screen.
|
||||
let phaseLogOpen = true;
|
||||
let panelOpen = true;
|
||||
|
||||
function discardStaleSession(message) {
|
||||
staleSession = true;
|
||||
@@ -230,10 +228,10 @@
|
||||
|
||||
{#if state}
|
||||
<div class="dashboard-container {state.player.is_ghost ? 'ghost-world' : ''}">
|
||||
<div class={state.game.phase === 'scene' ? 'scene-view-layout' : 'phase-view-layout'} class:log-collapsed={!panelOpen}>
|
||||
{#if state.game.phase === 'scene'}
|
||||
<ScenePhase state={rosterState} />
|
||||
{:else}
|
||||
<div class="phase-view-layout" class:log-collapsed={!phaseLogOpen}>
|
||||
<CrewSidebar state={rosterState} />
|
||||
<main class="phase-main-column">
|
||||
{#if ['scene_setup', 'recruit_creation'].includes(state.game.phase) && (state.game.last_rank_up_player_id || state.game.current_scene_number > 1)}
|
||||
@@ -261,25 +259,11 @@
|
||||
<div class="card p-4">Unknown phase: {state.game.phase}</div>
|
||||
{/if}
|
||||
</main>
|
||||
{#if phaseLogOpen}
|
||||
<div class="log-column">
|
||||
<EventLog {state} inline on:collapse={() => (phaseLogOpen = false)} />
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
<GameNotebook {state} bind:open={panelOpen} />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{#if state.game.phase !== 'scene'}
|
||||
<button
|
||||
class="log-reopen-btn"
|
||||
aria-expanded={phaseLogOpen}
|
||||
title={phaseLogOpen ? 'Hide the event log' : 'Show the event log'}
|
||||
on:click={() => (phaseLogOpen = !phaseLogOpen)}
|
||||
>
|
||||
{phaseLogOpen ? '✕ Close Log' : '📜 Event Log'}
|
||||
</button>
|
||||
{/if}
|
||||
<NameModal {state} />
|
||||
<GatModal {state} />
|
||||
<RankBonusModal {state} />
|
||||
|
||||
Reference in New Issue
Block a user