feat(content): stub story graph with A/B branch and route-gated actions
This commit is contained in:
+40
-1
@@ -1,7 +1,46 @@
|
||||
export const storyNodeDefs = [
|
||||
{
|
||||
id: 'boot_intro',
|
||||
prose: 'Placeholder boot.',
|
||||
prose: '[Stub] You wake at a crossroads camp. Smoke rises from a cold fire pit.',
|
||||
triggers: [{ type: 'boot', targetNodeId: 'boot_intro' }],
|
||||
},
|
||||
{
|
||||
id: 'fork_choice',
|
||||
prose: '[Stub] Tracks split. The high road climbs; the low road bends toward the river.',
|
||||
choices: [
|
||||
{
|
||||
id: 'pick_a',
|
||||
label: 'Take the high road',
|
||||
outcomes: [
|
||||
{ type: 'setFlag', flag: 'route_a' },
|
||||
{ type: 'grantResource', resourceId: 'supplies', amount: 3 },
|
||||
{ type: 'grantResource', resourceId: 'coin', amount: 2 },
|
||||
],
|
||||
targetNodeId: 'route_a_beat',
|
||||
},
|
||||
{
|
||||
id: 'pick_b',
|
||||
label: 'Follow the river',
|
||||
outcomes: [
|
||||
{ type: 'setFlag', flag: 'route_b' },
|
||||
{ type: 'grantResource', resourceId: 'coin', amount: 2 },
|
||||
],
|
||||
targetNodeId: 'route_b_beat',
|
||||
},
|
||||
],
|
||||
},
|
||||
{ id: 'route_a_beat', prose: '[Stub] Route A: high ground, extra supplies.' },
|
||||
{ id: 'route_b_beat', prose: '[Stub] Route B: river trade, extra coin.' },
|
||||
{
|
||||
id: 'threshold_listener',
|
||||
prose: ' ',
|
||||
triggers: [{ type: 'minResources', minResources: { coin: 3 }, targetNodeId: 'merchant_flavor' }],
|
||||
},
|
||||
{ id: 'merchant_flavor', prose: '[Stub] A merchant remembers your face.' },
|
||||
{
|
||||
id: 'scout_listener',
|
||||
prose: ' ',
|
||||
triggers: [{ type: 'actionComplete', actionId: 'scout_path', targetNodeId: 'scout_aftermath' }],
|
||||
},
|
||||
{ id: 'scout_aftermath', prose: '[Stub] The path is mapped.' },
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user