diff --git a/src/screens/Ledger.jsx b/src/screens/Ledger.jsx index e661126..42ae5b7 100644 --- a/src/screens/Ledger.jsx +++ b/src/screens/Ledger.jsx @@ -12,10 +12,10 @@ import { const CHAPTERS = ['ostia', 'capua', 'brundisium', 'carthago', 'alexandria'] -export default function Game({ state, onStateChange }) { +export default function Game({ state, onStateChange, onNewGame }) { const [selectedRoute, setSelectedRoute] = useState(null) - const [dispatch, setDispatch] = useState(null) // { routeId, startMs, durationMs } - const [otium, setOtium] = useState(null) // { startMs } + const [dispatch, setDispatch] = useState(null) + const [otium, setOtium] = useState(null) const [message, setMessage] = useState('') const [journal, setJournal] = useState(getSeenJournalEntries(state)) const [newEntryKey, setNewEntryKey] = useState(null) @@ -28,7 +28,6 @@ export default function Game({ state, onStateChange }) { msgRef.current = setTimeout(() => setMessage(''), dur) } - // Game tick — 250ms useEffect(() => { tickRef.current = setInterval(() => { const now = Date.now() @@ -36,7 +35,6 @@ export default function Game({ state, onStateChange }) { if (dispatch) { const elapsed = now - dispatch.startMs if (elapsed >= dispatch.durationMs) { - // Dispatch complete setDispatch(null) const entry = getNewJournalEntry(state, dispatch.routeId) const newState = applyDispatch(state, dispatch.routeId) @@ -93,12 +91,10 @@ export default function Game({ state, onStateChange }) { } function handleNewGame() { - if (!window.confirm('Abandon this ledger and start a new one?')) return - localStorage.removeItem('otium_token') - window.location.reload() + if (!window.confirm('Abandon this ledger and begin a new one?')) return + onNewGame() } - // Progress bar values let progressPct = 0 let progressLabel = '' let progressSub = '' @@ -263,11 +259,7 @@ export default function Game({ state, onStateChange }) {