Add case adjudication cutscene
This commit is contained in:
+12
-3
@@ -107,11 +107,18 @@ Mirrors the exhibit registry: `component_key → React component`. Each owns its
|
||||
presentation and signals completion with an optional terminal key.
|
||||
|
||||
```ts
|
||||
type CutsceneComponent = React.FC<{ onComplete: (terminalKey?: string) => void }>
|
||||
type CutsceneComponent = React.FC<{
|
||||
label: string
|
||||
presentation?: CutscenePresentation | null
|
||||
onComplete: (terminalKey?: string) => void
|
||||
}>
|
||||
// registry: { 'glass-harbour-diversion': GlassHarbourDiversion }
|
||||
```
|
||||
|
||||
For a single-terminal cutscene, `onComplete()` follows the only terminal.
|
||||
Report-aware cutscenes receive server-resolved, read-only presentation data. The
|
||||
`case-adjudication` component uses the accepted report associated with the most
|
||||
recent level; it never evaluates or changes the verdict itself.
|
||||
|
||||
## Editing UX
|
||||
|
||||
@@ -136,8 +143,10 @@ output port:
|
||||
|
||||
## Runtime traversal
|
||||
|
||||
The playthrough tracks position with `current_node_id` (and `current_level_id`,
|
||||
set while on a level node); the slot fields were dropped.
|
||||
The playthrough tracks position with `current_node_id`. `current_level_id` points
|
||||
to the most recently instantiated level until another level replaces it or the
|
||||
playthrough ends. Retaining that reference lets immediately downstream cutscenes
|
||||
and dialogue reload presentation data from the completed investigation.
|
||||
|
||||
```sql
|
||||
ALTER TABLE osint.playthroughs ADD COLUMN current_node_id UUID REFERENCES osint.story_nodes(id) ON DELETE SET NULL;
|
||||
|
||||
Reference in New Issue
Block a user