{ "id": "generic_merchant", "root": "intro", "nodes": [ { "id": "intro", "speaker": "npc", "text": "{disposition_label} face today. What brings you to my counter, friend?", "options": [ { "text": "Show me what you have for sale.", "next": "shop_open", "effects": [{ "kind": "open_shop" }] }, { "text": "What's the news?", "next": "lore" }, { "text": "[Persuasion DC 12] Surely a regular customer earns better prices?", "skill_check": { "skill": "persuasion", "dc": 12 }, "next_on_success": "shopkeeper_warmed", "next_on_failure": "shopkeeper_unmoved", "effects_on_success": [ { "kind": "rep_event", "event": { "kind": "Dialogue", "magnitude": 2, "note": "polite haggle" } } ], "effects_on_failure": [ { "kind": "rep_event", "event": { "kind": "Dialogue", "magnitude": -1, "note": "weak pitch" } } ] }, { "text": "[Intimidate DC 14] Discount, or I tell people about the rats in your stockroom.", "skill_check": { "skill": "intimidation", "dc": 14 }, "next_on_success": "shopkeeper_caves", "next_on_failure": "shopkeeper_dismisses", "conditions": [ { "kind": "not_has_flag", "flag": "intimidation_used_at_npc" } ], "effects_on_success": [ { "kind": "set_flag", "flag": "shopkeeper_intimidated" }, { "kind": "set_flag", "flag": "intimidation_used_at_npc" } ], "effects_on_failure": [ { "kind": "rep_event", "event": { "kind": "Dialogue", "magnitude": -3, "note": "tried to bully" } }, { "kind": "set_flag", "flag": "intimidation_used_at_npc" } ] }, { "text": "Goodbye.", "next": "" } ] }, { "id": "shop_open", "speaker": "npc", "text": "Take a look. Quality goods, fair prices.", "options": [ { "text": "[Browse]", "next": "intro", "effects": [{ "kind": "open_shop" }] }, { "text": "Actually, never mind.", "next": "intro" } ] }, { "id": "lore", "speaker": "npc", "text": "Times are uneasy. Rumours of strange scents on the wind. Travellers come through asking after old names. Don't ask me which. I trade in goods, not gossip. (Well — mostly.)", "options": [ { "text": "Back to business.", "next": "intro" }, { "text": "Goodbye.", "next": "" } ] }, { "id": "shopkeeper_warmed", "speaker": "npc", "text": "Hah. You've a tongue, that's certain. Tell you what — pick something out, I'll knock a bit off.", "options": [ { "text": "Show me what you have.", "next": "shop_open", "effects": [{ "kind": "open_shop" }] }, { "text": "Goodbye.", "next": "" } ] }, { "id": "shopkeeper_unmoved", "speaker": "npc", "text": "Heard better lines from the rats in my stockroom. Prices are prices.", "options": [ { "text": "Show me what you have anyway.", "next": "shop_open", "effects": [{ "kind": "open_shop" }] }, { "text": "Goodbye.", "next": "" } ] }, { "id": "shopkeeper_caves", "speaker": "npc", "text": "Easy. Easy. There's no need for that. Tell you what — take a look, I'll be reasonable.", "options": [ { "text": "Show me what you have.", "next": "shop_open", "effects": [{ "kind": "open_shop" }] }, { "text": "Goodbye.", "next": "" } ] }, { "id": "shopkeeper_dismisses", "speaker": "npc", "text": "I've heard better threats from a wet matchstick. Buy something or get out.", "options": [ { "text": "Show me what you have.", "next": "shop_open", "effects": [{ "kind": "open_shop" }] }, { "text": "Goodbye.", "next": "" } ] } ] }