diff --git a/src/ui/StoryPanel.tsx b/src/ui/StoryPanel.tsx new file mode 100644 index 0000000..833aedd --- /dev/null +++ b/src/ui/StoryPanel.tsx @@ -0,0 +1,74 @@ +import { gameRuntime } from '../state/runtime'; +import { useGameStore } from '../state/store'; + +/** Full-screen VN overlay with prose, choices, and desktop story log sidebar. */ +export function StoryPanel() { + const open = useGameStore((s) => s.storyPanelOpen); + const story = useGameStore((s) => s.story); + const storyLog = useGameStore((s) => s.storyLog); + + if (!open) return null; + + const hasChoices = story.choices.length > 0; + + return ( +
+
+ +
+

{story.currentProse}

+ {hasChoices ? ( +
+ {story.choices.map((choice) => ( + + ))} +
+ ) : ( + + )} + +
+
+
+ ); +}