Files
TheriapolisV3/Content/Data/dialogues/millhaven_lacroix.json
T

150 lines
7.6 KiB
JSON
Raw Normal View History

{
"id": "millhaven_lacroix",
"root": "intro",
"nodes": [
{
"id": "intro",
"speaker": "npc",
"text": "\"Evening, friend. Fen Lacroix, traveling merchant. Saw your face in the inn last night and thought I'd say hello.\"\n\nThe coyote-folk smiles too widely, talks too smoothly, and stands too close. There's a road-pack at his feet, but the only goods inside are two flat parcels that don't rattle.",
"options": [
{ "text": "What are you really doing in Millhaven?", "next": "what_doing" },
{
"text": "[Has Briarstead Journal] You were in my parents' workshop.",
"conditions": [{ "kind": "has_item", "id": "briarstead_journal" }],
"next": "accuse"
},
{ "text": "Just passing through. Goodbye.", "next": "<end>" }
]
},
{
"id": "what_doing",
"speaker": "npc",
"text": "\"Buying, selling, listening. Roads have ears, and ears get hungry.\" His smile doesn't change. \"You should be careful who you talk to. This town has a habit of remembering things badly.\"",
"options": [
{ "text": "Is that a warning?", "next": "warning" },
{ "text": "Goodbye.", "next": "<end>" }
]
},
{
"id": "warning",
"speaker": "npc",
"text": "\"It's a road-merchant's discount. Listen well or pay later.\" He starts to lift his pack.",
"options": [
{ "text": "Wait. We're not done.", "next": "accuse",
"conditions": [{ "kind": "has_item", "id": "briarstead_journal" }] },
{ "text": "Goodbye, then.", "next": "<end>" }
]
},
{
"id": "accuse",
"speaker": "npc",
"text": "His face stops smiling.\n\n\"Ah. So you read the journal already. That's quicker than they thought.\" He shifts his weight. The hand near his pack is no longer holding it.\n\n\"Three options, friend. You walk away and forget my name. You take me to your constable, and I tell him a story that won't satisfy you. Or we settle it here.\"",
"options": [
{
"text": "[Intimidate DC 14] Talk first. The story you tell me, or you don't walk out of this room.",
"skill_check": { "skill": "intimidation", "dc": 14 },
"next_on_success": "interrogate",
"next_on_failure": "fight",
"effects_on_success": [
{ "kind": "set_flag", "flag": "lacroix_interrogated", "value": 1 },
{ "kind": "rep_event", "event": { "kind": "Dialogue", "magnitude": 4, "role_tag": "millhaven.lacroix", "note": "broke under threat" } }
],
"effects_on_failure": [
{ "kind": "rep_event", "event": { "kind": "Dialogue", "magnitude": -3, "role_tag": "millhaven.lacroix", "note": "called your bluff" } }
]
},
{
"text": "Settle it here.",
"next": "fight"
},
{
"text": "Walk away. (Both of us.)",
"next": "let_go",
"effects": [
{ "kind": "set_flag", "flag": "lacroix_let_go", "value": 1 },
{ "kind": "give_item", "id": "maw_sigil", "qty": 1 },
{ "kind": "rep_event", "event": { "kind": "Dialogue", "magnitude": 5, "faction": "maw", "note": "let the operative go" } },
{ "kind": "rep_event", "event": { "kind": "Dialogue", "magnitude": -8, "faction": "covenant_enforcers", "note": "did not detain a known suspect" } }
]
}
]
},
{
"id": "interrogate",
"speaker": "npc",
"text": "He sits — slowly — on the edge of the bed.\n\n\"Fine. I was sent to confirm your parents' notes were destroyed. Someone wanted them dead before they finished writing. I was cleanup.\" He looks tired. \"I don't know who paid. I take a name and a wax seal and money in my hand. The seal is teeth in a circle. The Maw, they call themselves. That's all I know. Ask the people in Thornfield. Ask Sable.\"\n\nHe opens his coat slowly and produces a folded letter sealed in black wax. The mark is a circle of teeth meeting at the centre. He sets it on the bed.",
"options": [
{
"text": "Take the letter and let him go.",
"next": "<end>",
"effects": [
{ "kind": "give_item", "id": "maw_sigil", "qty": 1 },
{ "kind": "set_flag", "flag": "lacroix_climax_resolved", "value": 1 },
{ "kind": "set_flag", "flag": "act_i_briarstead_searched", "value": 1 },
{ "kind": "give_xp", "xp": 250 },
{ "kind": "rep_event", "event": { "kind": "Quest", "magnitude": 4, "faction": "covenant_enforcers", "note": "extracted intel from a Maw operative" } },
{ "kind": "rep_event", "event": { "kind": "Quest", "magnitude": -10, "faction": "maw", "note": "extracted intel from one of their operatives" } }
]
},
{
"text": "Take the letter and end this.",
"next": "kill_after_interrogate",
"effects": [
{ "kind": "give_item", "id": "maw_sigil", "qty": 1 },
{ "kind": "set_flag", "flag": "lacroix_killed", "value": 1 },
{ "kind": "set_flag", "flag": "lacroix_climax_resolved", "value": 1 },
{ "kind": "set_flag", "flag": "act_i_briarstead_searched", "value": 1 },
{ "kind": "give_xp", "xp": 200 },
{ "kind": "rep_event", "event": { "kind": "Death", "magnitude": -25, "faction": "maw", "note": "killed an operative after extraction" } },
{ "kind": "rep_event", "event": { "kind": "Crime", "magnitude": -8, "faction": "covenant_enforcers", "note": "executed a prisoner without trial" } }
]
}
]
},
{
"id": "kill_after_interrogate",
"speaker": "narration",
"text": "He doesn't fight back. He didn't think you'd actually do it.",
"options": [
{ "text": "Continue.", "next": "<end>" }
]
},
{
"id": "fight",
"speaker": "narration",
"text": "Lacroix moves first. The room is small. There is no escape — only a fight that ends one way or the other.\n\n(For Phase 6 M6, the fight is resolved narratively here as a single decisive blow; Phase 7's PoI work will replace this with the full tactical encounter the design calls for.)",
"options": [
{
"text": "[Decisive blow]",
"next": "<end>",
"effects": [
{ "kind": "give_item", "id": "maw_sigil", "qty": 1 },
{ "kind": "set_flag", "flag": "lacroix_killed", "value": 1 },
{ "kind": "set_flag", "flag": "lacroix_climax_resolved", "value": 1 },
{ "kind": "set_flag", "flag": "act_i_briarstead_searched", "value": 1 },
{ "kind": "give_xp", "xp": 250 },
{ "kind": "rep_event", "event": { "kind": "Death", "magnitude": -30, "faction": "maw", "note": "killed Lacroix in self-defence" } },
{ "kind": "rep_event", "event": { "kind": "Combat", "magnitude": 4, "faction": "covenant_enforcers", "note": "stopped a Maw operative mid-mission" } }
]
}
]
},
{
"id": "let_go",
"speaker": "npc",
"text": "He nods, slowly, and slides a folded letter across the floor with his boot. The wax seal is a circle of teeth.\n\n\"You have a long road. Keep it warm.\" He shoulders his pack and goes.\n\n(The Maw now knows you exist. They will adjust.)",
"options": [
{
"text": "Continue.",
"next": "<end>",
"effects": [
{ "kind": "set_flag", "flag": "lacroix_climax_resolved", "value": 1 },
{ "kind": "set_flag", "flag": "act_i_briarstead_searched", "value": 1 },
{ "kind": "give_xp", "xp": 150 }
]
}
]
}
]
}