docs: document story engine and PR2 playable loop
CI / verify (push) Failing after 58s
CI / verify (pull_request) Failing after 41s

This commit is contained in:
ginnoir
2026-06-11 19:00:49 -05:00
parent 1461510a4b
commit c76265d648
14 changed files with 137 additions and 30 deletions
+2 -1
View File
@@ -30,6 +30,7 @@ export function App() {
<div className="flex items-center gap-2">
<button
type="button"
aria-label={storyHasUnread ? 'Story, unread' : 'Story'}
onClick={() => gameRuntime.openStoryPanel()}
className="relative rounded-lg border border-slate-700 bg-slate-800/70 px-3 py-1.5 text-sm transition-colors hover:border-amber-500/60"
>
@@ -37,7 +38,7 @@ export function App() {
{storyHasUnread ? (
<span
className="absolute -top-1 -right-1 h-2 w-2 rounded-full bg-amber-500"
aria-label="Unread story"
aria-hidden
/>
) : null}
</button>
+1 -1
View File
@@ -1,5 +1,5 @@
import { useGameStore } from '../state/store';
import type { ActionDetailMode, StoryOpenMode } from '../state/prefs';
import { useGameStore } from '../state/store';
/** Preference panel toggled from the header gear; changes persist immediately. */
export function SettingsDrawer() {
+2 -2
View File
@@ -24,8 +24,8 @@ export function StoryPanel() {
Story log
</h3>
<ul className="flex flex-col gap-2 text-slate-300 text-sm">
{storyLog.map((entry, i) => (
<li key={`${entry.nodeId}-${i}`}>
{storyLog.map((entry) => (
<li key={`${entry.nodeId}:${entry.choiceLabel ?? ''}:${entry.prose}`}>
{entry.choiceLabel ? (
<span className="text-amber-400/80">[{entry.choiceLabel}] </span>
) : null}