Files
2026-09-04 14:58:42 +08:00

2690 lines
59 KiBLFS
JSON

{
"nodes": [
{
"id": "Start",
"text": "The tavern door creaks open. Smoke and laughter fill the air.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "TavernEntry",
"text": "Three figures catch your eye: a hooded stranger, a boisterous merchant, and the barkeep.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "TavernChoice",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "ObserveRoom",
"text": "You notice the stranger slipping a note to the barkeep. The merchant counts gold nervously.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "ObserveChoice",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "InterceptNote",
"text": "You dare?!",
"speaker": "Stranger",
"type": "line"
},
{
"id": "PickpocketAttempt",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "PickpocketSuccess",
"text": "50 gold pieces heavier, you slip away. The merchant hasn't noticed... yet.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "PickpocketDistract",
"text": "Watch it, friend!",
"speaker": "Merchant",
"type": "line"
},
{
"id": "MerchantAnnoyed",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "MerchantCalm",
"text": "Hmph. Buy me a drink and we're even.",
"speaker": "Merchant",
"type": "line"
},
{
"id": "MerchantFight",
"text": "Why you little\u2014!",
"speaker": "Merchant",
"type": "line"
},
{
"id": "PickpocketAfter",
"text": "But where to spend your ill-gotten gains?",
"speaker": "Narrator",
"type": "line"
},
{
"id": "PickpocketChoice",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "StrangerApproach",
"text": "You have the look of someone seeking something.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerGreet",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "CrimsonQuestStart",
"text": "The Crimson Blade? Many seek it. Few survive.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "CrimsonWarning",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "CrimsonAccept",
"text": "Then you'll need a map. I have one... for a price.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "CrimsonPrice",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "CrimsonNegotiate",
"text": "100 gold, or a favor to be named later.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "CrimsonDeal",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "CrimsonGoldPath",
"text": "Wise choice. No strings attached.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "CrimsonFavorPath",
"text": "Remember, I always collect.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "CrimsonCompromise",
"text": "You drive a hard bargain. Agreed.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "CrimsonDiscount",
"text": "Your silver tongue amuses me. 75 gold, final offer.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "CrimsonDiscountDeal",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "CrimsonRefuse",
"text": "Your loss. The Blade waits for no one.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "CrimsonLore",
"text": "The mountain claims them. Traps, guardians, madness itself.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "CrimsonLoreMore",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "GuardianInfo",
"text": "Stone sentinels that never sleep. Best approached with stealth... or great power.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "GuardianChoice",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "GuardianMagic",
"text": "A mage, then. You may yet survive. Take this.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "GuardianStealth",
"text": "A rogue's path. Dangerous but possible.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "MadnessInfo",
"text": "The mountain whispers. Those who listen too long... never leave.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "MadnessWarning",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "MadnessResist",
"text": "Confidence or foolishness? We shall see.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerLaugh",
"text": "Ha! I like you. Maybe you'll be the one.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "MapReceived",
"text": "The Crimson Blade awaits at the peak of Mount Sorrow. Go.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "MapReceivedDebt",
"text": "Remember our deal. I will find you when the time is right.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "MapReceivedHalf",
"text": "A fair trade. Now go, before the trail grows cold.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "QuestAccepted",
"text": "You pocket the map. Your journey begins at dawn.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "QuestAcceptedDebt",
"text": "The map feels heavy in your hands. What have you agreed to?",
"speaker": "Narrator",
"type": "line"
},
{
"id": "QuestChoice",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "PrepareQuest",
"text": "You gather supplies and rest. Dawn breaks cold and clear.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "MoreInfo",
"text": "Who might know more about Mount Sorrow?",
"speaker": "Narrator",
"type": "line"
},
{
"id": "MoreInfoChoice",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "BarkeepInfo",
"text": "Mount Sorrow? My grandfather went there once. Came back without his voice. Said he traded it for wisdom.",
"speaker": "Barkeep",
"type": "line"
},
{
"id": "BarkeepWisdom",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "BarkeepSecret",
"text": "He wrote it down before he died. Want to see?",
"speaker": "Barkeep",
"type": "line"
},
{
"id": "BarkeepOffer",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "BarkeepJournal",
"text": "It says: \"The silence speaks truth. Listen with your heart, not your ears.\"",
"speaker": "Barkeep",
"type": "line"
},
{
"id": "JournalWisdom",
"text": "Cryptic, but perhaps useful. You commit it to memory.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "BarkeepPrice",
"text": "Smart. 20 gold for the journal.",
"speaker": "Barkeep",
"type": "line"
},
{
"id": "BarkeepDeal",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "BarkeepHaggle",
"text": "15. Take it or leave it.",
"speaker": "Barkeep",
"type": "line"
},
{
"id": "BarkeepFinal",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "BarkeepTrust",
"text": "You're kind. Take the journal. He would have wanted it to help someone.",
"speaker": "Barkeep",
"type": "line"
},
{
"id": "MerchantInfo",
"text": "Mount Sorrow? I've sold equipment to three expeditions. None returned for refunds.",
"speaker": "Merchant",
"type": "line"
},
{
"id": "MerchantSales",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "MerchantGear",
"text": "Climbing tools, wards against magic, and plenty of rope. Most came back for more rope.",
"speaker": "Merchant",
"type": "line"
},
{
"id": "GearAdvice",
"text": "Perhaps you should stock up.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "MerchantCynical",
"text": "Hey, a sale's a sale. Not my fault if they don't come back.",
"speaker": "Merchant",
"type": "line"
},
{
"id": "MerchantDefend",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "MerchantShame",
"text": "...I light a candle for each of them. Not that it helps.",
"speaker": "Merchant",
"type": "line"
},
{
"id": "MerchantConfess",
"text": "Look, take this charm. It's supposed to protect against curses. For free. Consider it penance.",
"speaker": "Merchant",
"type": "line"
},
{
"id": "CharmReceived",
"text": "You receive a strange amulet. It pulses faintly with warmth.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "MerchantShop",
"text": "I've got rope, torches, climbing picks, and a potion or two. What'll it be?",
"speaker": "Merchant",
"type": "line"
},
{
"id": "ShopChoice",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "BuyGear",
"text": "30 gold for the full kit. Worth every copper.",
"speaker": "Merchant",
"type": "line"
},
{
"id": "GearPurchase",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "GearBought",
"text": "You're now equipped for climbing. The mountain won't know what hit it.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "GearHaggle",
"text": "25, and that's robbery.",
"speaker": "Merchant",
"type": "line"
},
{
"id": "GearFinal",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "PotionList",
"text": "Healing, night vision, and one I call \"liquid courage.\" Makes you immune to fear for an hour.",
"speaker": "Merchant",
"type": "line"
},
{
"id": "PotionChoice",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "BuyHealing",
"text": "A red vial joins your pack. Better than dying.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "BuyNightVision",
"text": "A blue vial. The darkness won't hide dangers from you now.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "BuyCourage",
"text": "A golden vial. For when fear is the enemy.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "BuyAll",
"text": "Big spender! 60 gold for the lot.",
"speaker": "Merchant",
"type": "line"
},
{
"id": "BuyAllDeal",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "AllPotionsBought",
"text": "Your pack clinks with vials. You feel prepared.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "StrangerMoreInfo",
"text": "Back so soon? Afraid?",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerReturn",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "StrangerRespect",
"text": "Wisdom. Most charge in blindly. Ask your questions.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerQuestions",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "StrangerOrigin",
"text": "I... found it. On someone who no longer needed it.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerDark",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "StrangerAccuse",
"text": "Would it matter? They're dead. The map lives on. As might you.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerClarity",
"text": "The mountain took them. I merely... recovered what was left.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerPast",
"text": "Once. Long ago. I left something there. Something I can never retrieve.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerRegret",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "StrangerSecret",
"text": "My name. The mountain takes something from everyone.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerVulnerable",
"text": "...Her name was Elena. She heard the whispers and... walked off the cliff. Smiling.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerGrief",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "StrangerHope",
"text": "The legends say it can cut anything. Even death. But legends lie.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerBlessing",
"text": "Go then. And may you find what you seek... without losing what you have.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerWarningFinal",
"text": "Guard your identity. The mountain will try to take it.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerTruth",
"text": "Power. Madness. Death. And one blade that can end wars or start them.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "RecruitChoice",
"text": "Who might join your quest?",
"speaker": "Narrator",
"type": "line"
},
{
"id": "RecruitOptions",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "RecruitStranger",
"text": "Join you? I gave up adventuring when Elena... No. But I'll wait here. If you return, drinks are on me.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "RecruitFail",
"text": "Your party remains at one. Perhaps for the best.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "RecruitMerchant",
"text": "Me? Climb a mountain? Ha! I'll sell you supplies, but I like living too much.",
"speaker": "Merchant",
"type": "line"
},
{
"id": "RecruitBarkeep",
"text": "I know a sellsword who comes through sometimes. Name's Kira. She's... intense.",
"speaker": "Barkeep",
"type": "line"
},
{
"id": "KiraIntro",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "KiraLocation",
"text": "She's in the back room. Blue cloak, two swords. Can't miss her.",
"speaker": "Barkeep",
"type": "line"
},
{
"id": "KiraRate",
"text": "She negotiates. Bring coin and patience.",
"speaker": "Barkeep",
"type": "line"
},
{
"id": "KiraWarning",
"text": "She's never failed a contract. But she's got... rules. Strange ones. Don't break them.",
"speaker": "Barkeep",
"type": "line"
},
{
"id": "KiraMeet",
"text": "You find Kira sharpening her blade in the dim light.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "KiraApproach",
"text": "State your business. I don't do small talk.",
"speaker": "Kira",
"type": "line"
},
{
"id": "KiraOffer",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "KiraJob",
"text": "Mountain? Which one?",
"speaker": "Kira",
"type": "line"
},
{
"id": "KiraWhich",
"text": "Mount Sorrow?",
"speaker": "Kira",
"type": "line"
},
{
"id": "KiraSorrow",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "KiraKnows",
"text": "Everyone's heard of it. Not everyone's stupid enough to go.",
"speaker": "Kira",
"type": "line"
},
{
"id": "KiraConcern",
"text": "Problem? It's suicide. But the pay would need to match.",
"speaker": "Kira",
"type": "line"
},
{
"id": "KiraPrice",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "KiraNaming",
"text": "200 gold. Half now, half when we're done. If we survive, you owe me a story.",
"speaker": "Kira",
"type": "line"
},
{
"id": "KiraDeal",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "KiraJoins",
"text": "Then we leave at dawn. Don't be late. I won't wait.",
"speaker": "Kira",
"type": "line"
},
{
"id": "KiraHaggle",
"text": "175. And you carry the supplies.",
"speaker": "Kira",
"type": "line"
},
{
"id": "KiraHaggleFinal",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "KiraGlory",
"text": "Glory doesn't pay for food. But... the Crimson Blade is legendary. 150 gold.",
"speaker": "Kira",
"type": "line"
},
{
"id": "KiraFlattery",
"text": "Flattery is cheap. What do you want?",
"speaker": "Kira",
"type": "line"
},
{
"id": "KiraDirect",
"text": "Depends on the threat. Mount Sorrow? That's 200 gold minimum.",
"speaker": "Kira",
"type": "line"
},
{
"id": "KiraDecision",
"text": "If you're going to Sorrow, you'll need me. 200 gold. Take it or leave it.",
"speaker": "Kira",
"type": "line"
},
{
"id": "PartyFormed",
"text": "With Kira at your side, the odds feel slightly less suicidal.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "MerchantApproach",
"text": "Ah, a customer perhaps? Or just looking for company?",
"speaker": "Merchant",
"type": "line"
},
{
"id": "MerchantGreet",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "MerchantTrouble",
"text": "It's nothing. Just... debts. Powerful people. You know how it is.",
"speaker": "Merchant",
"type": "line"
},
{
"id": "MerchantDebt",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "MerchantAmount",
"text": "500 gold. By month's end, or...",
"speaker": "Merchant",
"type": "line"
},
{
"id": "MerchantThreat",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "MerchantHelp",
"text": "What kind of price?",
"speaker": "Merchant",
"type": "line"
},
{
"id": "MerchantBargain",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "MerchantDeal",
"text": "Everything? I... alright. Save me and it's yours.",
"speaker": "Merchant",
"type": "line"
},
{
"id": "MerchantInfoDeal",
"text": "Information? I know expeditions. Gear lists. Who came back. It's yours if you help.",
"speaker": "Merchant",
"type": "line"
},
{
"id": "MerchantPartner",
"text": "A partner? That's... actually fair. You help with this, and we split future profits. Deal?",
"speaker": "Merchant",
"type": "line"
},
{
"id": "MerchantAllied",
"text": "You've gained a potential ally\u2014or liability. Time will tell.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "MerchantHit",
"text": "You're... offering to kill them? That's dark. But effective. 100 gold if you do.",
"speaker": "Merchant",
"type": "line"
},
{
"id": "HitChoice",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "HitAccepted",
"text": "You've accepted a contract to kill. This will have consequences.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "HitNegotiate",
"text": "150. That's all I have left.",
"speaker": "Merchant",
"type": "line"
},
{
"id": "HitFinal",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "MerchantCreditor",
"text": "A guild. The Black Ledger. They don't forgive debts.",
"speaker": "Merchant",
"type": "line"
},
{
"id": "MerchantSuspicious",
"text": "It's just gold! Honestly earned! Why would you\u2014are you with THEM?!",
"speaker": "Merchant",
"type": "line"
},
{
"id": "MerchantPanic",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "MerchantTerror",
"text": "Please! I can pay! I just need more time!",
"speaker": "Merchant",
"type": "line"
},
{
"id": "MerchantBeg",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "MerchantRelief",
"text": "Oh thank the gods. You nearly gave me a heart attack. Drinks on me.",
"speaker": "Merchant",
"type": "line"
},
{
"id": "MerchantBribed",
"text": "Anything! Ask and it's yours!",
"speaker": "Merchant",
"type": "line"
},
{
"id": "MerchantFate",
"text": "The merchant's scream is cut short. The tavern falls silent.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "MerchantFriendly",
"text": "You're alright, friend. Let me know if you need gear or trade contacts.",
"speaker": "Merchant",
"type": "line"
},
{
"id": "BarkeepApproach",
"text": "What'll it be? Ale, wine, or something stronger?",
"speaker": "Barkeep",
"type": "line"
},
{
"id": "DrinkChoice",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "DrinkAle",
"text": "Classic choice. 2 copper.",
"speaker": "Barkeep",
"type": "line"
},
{
"id": "DrinkWine",
"text": "From the southern vineyards. 5 copper.",
"speaker": "Barkeep",
"type": "line"
},
{
"id": "DrinkStrong",
"text": "Dwarven Fire. You sure? It's knocked out knights.",
"speaker": "Barkeep",
"type": "line"
},
{
"id": "StrongConfirm",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "DrinkDouble",
"text": "Your funeral.",
"speaker": "Barkeep",
"type": "line"
},
{
"id": "DrinkPassed",
"text": "The world spins. Then goes dark. You wake up in an alley, missing 50 gold.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "RobbedWake",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "AlleyRage",
"text": "Your shout echoes. A rat scurries away. No answers come.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "AlleyCheck",
"text": "Your pack is intact. The map is still there. But your coin pouch is lighter.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "AlleyCalm",
"text": "You take stock. Gold gone, but otherwise unharmed. Could be worse.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "TavernReturn",
"text": "You stumble back to the tavern. The barkeep smirks.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "BarkeepSmirk",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "BarkeepAccuse",
"text": "I told you Dwarven Fire knocks out knights. Not my fault you didn't listen.",
"speaker": "Barkeep",
"type": "line"
},
{
"id": "BarkeepLaugh",
"text": "Ha! You've got spirit. This one's on the house.",
"speaker": "Barkeep",
"type": "line"
},
{
"id": "DrinkServed",
"text": "The drink warms your belly. The world feels slightly better.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "BarkeepBribe",
"text": "Information costs. 20 gold and I'll tell you what I know about the castle nearby.",
"speaker": "Barkeep",
"type": "line"
},
{
"id": "StrangerHostile",
"text": "You've made a dangerous enemy today.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerChoice",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "StrangerFight",
"text": "Blades flash. The stranger is fast\u2014too fast.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "StrangerBattle",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "StrangerWound",
"text": "You land a cut, but so does she. Blood drips from both of you.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "StrangerStalemate",
"text": "Enough. You fight well. Perhaps we started poorly.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerTruce",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "StrangerExplain",
"text": "I test potential allies. You passed.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerMercy",
"text": "Coward. But at least you're smart. Leave my sight.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerCalm",
"text": "Words are wind. But I'll give you one chance. Explain yourself.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerExplain2",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "StrangerNote",
"text": "The note is none of your concern. But since you're bold...",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerLie",
"text": "[Narrows eyes] You're lying. But I appreciate the attempt.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerReveal",
"text": "Perceptive. I was once known as the Shadow of Eloria. Now I am no one.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerIdentity",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "StrangerFamous",
"text": "Former. Retired. Mostly.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerPurpose",
"text": "Waiting. For someone like you, perhaps.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "StrangerOffended",
"text": "Good. That means I did my job well.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "WorkOffer",
"text": "Work? I have a task. Dangerous. Well-paid. Interested?",
"speaker": "Stranger",
"type": "line"
},
{
"id": "WorkChoice",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "WorkDetails",
"text": "Retrieve an item from the old crypt. A ring. Don't ask what it does.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "WorkRisk",
"text": "Undead. Traps. The usual.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "WorkPay",
"text": "100 gold on completion. More if you're fast.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "WorkAccept",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "SideQuestAccepted",
"text": "Good. Come back when it's done. Don't die.",
"speaker": "Stranger",
"type": "line"
},
{
"id": "BarFight",
"text": "Tables overturn! The tavern erupts into chaos!",
"speaker": "Narrator",
"type": "line"
},
{
"id": "BarFightChoice",
"text": "",
"speaker": "",
"type": "choice"
},
{
"id": "BarFightWin",
"text": "Fists fly. You emerge victorious, bruised but alive.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "BarFightHide",
"text": "Chaos swirls above as you wait it out. Eventually, calm returns.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "BarFightAfter",
"text": "OUT! All of you! I'm closing early!",
"speaker": "Barkeep",
"type": "line"
},
{
"id": "TavernExit",
"text": "The cool night air greets you. The adventure continues... elsewhere.",
"speaker": "Narrator",
"type": "line"
},
{
"id": "JourneyBegin",
"text": "The mountain looms in the distance. Your destiny awaits.",
"speaker": "Narrator",
"type": "line"
}
],
"edges": [
{
"from": "Start",
"to": "TavernEntry"
},
{
"from": "TavernEntry",
"to": "TavernChoice"
},
{
"from": "TavernChoice",
"to": "StrangerApproach",
"text": "1. Approach the hooded stranger."
},
{
"from": "TavernChoice",
"to": "MerchantApproach",
"text": "2. Sit next to the merchant."
},
{
"from": "TavernChoice",
"to": "BarkeepApproach",
"text": "3. Order a drink from the barkeep."
},
{
"from": "TavernChoice",
"to": "ObserveRoom",
"text": "4. [Observe] Study the room from the shadows."
},
{
"from": "ObserveRoom",
"to": "ObserveChoice"
},
{
"from": "ObserveChoice",
"to": "InterceptNote",
"text": "1. Intercept the note."
},
{
"from": "ObserveChoice",
"to": "PickpocketAttempt",
"text": "2. Pickpocket the merchant."
},
{
"from": "ObserveChoice",
"to": "TavernChoice",
"text": "3. Pretend you saw nothing."
},
{
"from": "InterceptNote",
"to": "StrangerHostile"
},
{
"from": "PickpocketAttempt",
"to": "PickpocketSuccess",
"text": "1. [Sleight of Hand] Swiftly grab the pouch."
},
{
"from": "PickpocketAttempt",
"to": "PickpocketDistract",
"text": "2. [Distraction] Bump into him accidentally."
},
{
"from": "PickpocketAttempt",
"to": "TavernChoice",
"text": "3. Abandon the attempt."
},
{
"from": "PickpocketSuccess",
"to": "PickpocketAfter"
},
{
"from": "PickpocketDistract",
"to": "MerchantAnnoyed"
},
{
"from": "MerchantAnnoyed",
"to": "MerchantCalm",
"text": "1. Apologize profusely."
},
{
"from": "MerchantAnnoyed",
"to": "MerchantFight",
"text": "2. [Intimidate] You watch where YOU'RE going."
},
{
"from": "MerchantAnnoyed",
"to": "PickpocketSuccess",
"text": "3. Use the distraction to grab the gold."
},
{
"from": "MerchantCalm",
"to": "MerchantFriendly"
},
{
"from": "MerchantFight",
"to": "BarFight"
},
{
"from": "PickpocketAfter",
"to": "PickpocketChoice"
},
{
"from": "PickpocketChoice",
"to": "BarkeepBribe",
"text": "1. Buy information from the barkeep."
},
{
"from": "PickpocketChoice",
"to": "TavernExit",
"text": "2. Leave before anyone notices."
},
{
"from": "PickpocketChoice",
"to": "StrangerApproach",
"text": "3. Approach the stranger with newfound confidence."
},
{
"from": "StrangerApproach",
"to": "StrangerGreet"
},
{
"from": "StrangerGreet",
"to": "CrimsonQuestStart",
"text": "1. I seek the Crimson Blade."
},
{
"from": "StrangerGreet",
"to": "WorkOffer",
"text": "2. I'm looking for work."
},
{
"from": "StrangerGreet",
"to": "StrangerIdentity",
"text": "3. Who are you?"
},
{
"from": "StrangerGreet",
"to": "StrangerReveal",
"text": "4. [Insight] Something tells me you're not what you seem."
},
{
"from": "CrimsonQuestStart",
"to": "CrimsonWarning"
},
{
"from": "CrimsonWarning",
"to": "CrimsonAccept",
"text": "1. I'm not like the others."
},
{
"from": "CrimsonWarning",
"to": "CrimsonLore",
"text": "2. What happened to them?"
},
{
"from": "CrimsonWarning",
"to": "TavernChoice",
"text": "3. Perhaps I should reconsider..."
},
{
"from": "CrimsonAccept",
"to": "CrimsonPrice"
},
{
"from": "CrimsonPrice",
"to": "CrimsonNegotiate",
"text": "1. How much?"
},
{
"from": "CrimsonPrice",
"to": "CrimsonDiscount",
"text": "2. [Persuade] Surely we can come to an arrangement."
},
{
"from": "CrimsonPrice",
"to": "CrimsonRefuse",
"text": "3. I'll find my own way."
},
{
"from": "CrimsonNegotiate",
"to": "CrimsonDeal"
},
{
"from": "CrimsonDeal",
"to": "CrimsonGoldPath",
"text": "1. I'll pay the gold."
},
{
"from": "CrimsonDeal",
"to": "CrimsonFavorPath",
"text": "2. I'll owe you a favor."
},
{
"from": "CrimsonDeal",
"to": "CrimsonCompromise",
"text": "3. [Barter] 50 gold and a minor favor."
},
{
"from": "CrimsonGoldPath",
"to": "MapReceived"
},
{
"from": "CrimsonFavorPath",
"to": "MapReceivedDebt"
},
{
"from": "CrimsonCompromise",
"to": "MapReceivedHalf"
},
{
"from": "CrimsonDiscount",
"to": "CrimsonDiscountDeal"
},
{
"from": "CrimsonDiscountDeal",
"to": "MapReceived",
"text": "1. Deal."
},
{
"from": "CrimsonDiscountDeal",
"to": "CrimsonRefuse",
"text": "2. Still too rich for my blood."
},
{
"from": "CrimsonRefuse",
"to": "TavernChoice"
},
{
"from": "CrimsonLore",
"to": "CrimsonLoreMore"
},
{
"from": "CrimsonLoreMore",
"to": "GuardianInfo",
"text": "1. Guardians?"
},
{
"from": "CrimsonLoreMore",
"to": "MadnessInfo",
"text": "2. Madness?"
},
{
"from": "CrimsonLoreMore",
"to": "CrimsonWarning",
"text": "3. I've heard enough."
},
{
"from": "GuardianInfo",
"to": "GuardianChoice"
},
{
"from": "GuardianChoice",
"to": "GuardianMagic",
"text": "1. [Arcana] I have magical means."
},
{
"from": "GuardianChoice",
"to": "GuardianStealth",
"text": "2. [Stealth] I move like a shadow."
},
{
"from": "GuardianChoice",
"to": "CrimsonWarning",
"text": "3. I'll figure it out when I get there."
},
{
"from": "GuardianMagic",
"to": "MapReceived"
},
{
"from": "GuardianStealth",
"to": "MapReceived"
},
{
"from": "MadnessInfo",
"to": "MadnessWarning"
},
{
"from": "MadnessWarning",
"to": "MadnessResist",
"text": "1. [Willpower] My mind is steel."
},
{
"from": "MadnessWarning",
"to": "StrangerLaugh",
"text": "2. I'll bring ear plugs."
},
{
"from": "MadnessWarning",
"to": "CrimsonRefuse",
"text": "3. This sounds too risky."
},
{
"from": "MadnessResist",
"to": "MapReceived"
},
{
"from": "StrangerLaugh",
"to": "MapReceived"
},
{
"from": "MapReceived",
"to": "QuestAccepted"
},
{
"from": "MapReceivedDebt",
"to": "QuestAcceptedDebt"
},
{
"from": "MapReceivedHalf",
"to": "QuestAccepted"
},
{
"from": "QuestAccepted",
"to": "QuestChoice"
},
{
"from": "QuestAcceptedDebt",
"to": "QuestChoice"
},
{
"from": "QuestChoice",
"to": "PrepareQuest",
"text": "1. Prepare for the journey."
},
{
"from": "QuestChoice",
"to": "MoreInfo",
"text": "2. Seek more information first."
},
{
"from": "QuestChoice",
"to": "RecruitChoice",
"text": "3. Recruit allies."
},
{
"from": "PrepareQuest",
"to": "JourneyBegin"
},
{
"from": "MoreInfo",
"to": "MoreInfoChoice"
},
{
"from": "MoreInfoChoice",
"to": "BarkeepInfo",
"text": "1. Ask the barkeep."
},
{
"from": "MoreInfoChoice",
"to": "MerchantInfo",
"text": "2. Consult the merchant."
},
{
"from": "MoreInfoChoice",
"to": "StrangerMoreInfo",
"text": "3. Return to the stranger."
},
{
"from": "BarkeepInfo",
"to": "BarkeepWisdom"
},
{
"from": "BarkeepWisdom",
"to": "BarkeepSecret",
"text": "1. What wisdom?"
},
{
"from": "BarkeepWisdom",
"to": "QuestChoice",
"text": "2. That's disturbing."
},
{
"from": "BarkeepWisdom",
"to": "BarkeepTrust",
"text": "3. [Empathy] It must have been hard for your family."
},
{
"from": "BarkeepSecret",
"to": "BarkeepOffer"
},
{
"from": "BarkeepOffer",
"to": "BarkeepJournal",
"text": "1. Yes, show me."
},
{
"from": "BarkeepOffer",
"to": "BarkeepPrice",
"text": "2. What's the catch?"
},
{
"from": "BarkeepOffer",
"to": "QuestChoice",
"text": "3. I prefer to discover myself."
},
{
"from": "BarkeepJournal",
"to": "JournalWisdom"
},
{
"from": "JournalWisdom",
"to": "QuestChoice"
},
{
"from": "BarkeepPrice",
"to": "BarkeepDeal"
},
{
"from": "BarkeepDeal",
"to": "BarkeepJournal",
"text": "1. Fair enough."
},
{
"from": "BarkeepDeal",
"to": "QuestChoice",
"text": "2. Too expensive."
},
{
"from": "BarkeepDeal",
"to": "BarkeepHaggle",
"text": "3. [Haggle] 10 gold."
},
{
"from": "BarkeepHaggle",
"to": "BarkeepFinal"
},
{
"from": "BarkeepFinal",
"to": "BarkeepJournal",
"text": "1. Deal."
},
{
"from": "BarkeepFinal",
"to": "QuestChoice",
"text": "2. I'll pass."
},
{
"from": "BarkeepTrust",
"to": "BarkeepJournal"
},
{
"from": "MerchantInfo",
"to": "MerchantSales"
},
{
"from": "MerchantSales",
"to": "MerchantGear",
"text": "1. What equipment did they buy?"
},
{
"from": "MerchantSales",
"to": "MerchantCynical",
"text": "2. Sounds profitable for you."
},
{
"from": "MerchantSales",
"to": "MerchantShop",
"text": "3. Would you sell to me?"
},
{
"from": "MerchantGear",
"to": "GearAdvice"
},
{
"from": "GearAdvice",
"to": "MerchantShop"
},
{
"from": "MerchantCynical",
"to": "MerchantDefend"
},
{
"from": "MerchantDefend",
"to": "MerchantShame",
"text": "1. [Morality] That's cold."
},
{
"from": "MerchantDefend",
"to": "MerchantFriendly",
"text": "2. Fair point. Business is business."
},
{
"from": "MerchantDefend",
"to": "MerchantConfess",
"text": "3. Do you feel any guilt?"
},
{
"from": "MerchantShame",
"to": "MerchantConfess"
},
{
"from": "MerchantConfess",
"to": "CharmReceived"
},
{
"from": "CharmReceived",
"to": "QuestChoice"
},
{
"from": "MerchantShop",
"to": "ShopChoice"
},
{
"from": "ShopChoice",
"to": "BuyGear",
"text": "1. I'll take the climbing gear."
},
{
"from": "ShopChoice",
"to": "PotionList",
"text": "2. What potions do you have?"
},
{
"from": "ShopChoice",
"to": "QuestChoice",
"text": "3. I'm good for now."
},
{
"from": "BuyGear",
"to": "GearPurchase"
},
{
"from": "GearPurchase",
"to": "GearBought",
"text": "1. I'll take it."
},
{
"from": "GearPurchase",
"to": "GearHaggle",
"text": "2. [Haggle] 20 gold."
},
{
"from": "GearPurchase",
"to": "ShopChoice",
"text": "3. Maybe later."
},
{
"from": "GearBought",
"to": "QuestChoice"
},
{
"from": "GearHaggle",
"to": "GearFinal"
},
{
"from": "GearFinal",
"to": "GearBought",
"text": "1. Fine, 25."
},
{
"from": "GearFinal",
"to": "ShopChoice",
"text": "2. Too rich."
},
{
"from": "PotionList",
"to": "PotionChoice"
},
{
"from": "PotionChoice",
"to": "BuyHealing",
"text": "1. The healing potion."
},
{
"from": "PotionChoice",
"to": "BuyNightVision",
"text": "2. Night vision sounds useful."
},
{
"from": "PotionChoice",
"to": "BuyCourage",
"text": "3. Liquid courage\u2014I might need that."
},
{
"from": "PotionChoice",
"to": "BuyAll",
"text": "4. One of each."
},
{
"from": "PotionChoice",
"to": "ShopChoice",
"text": "5. I'll pass on potions."
},
{
"from": "BuyHealing",
"to": "ShopChoice"
},
{
"from": "BuyNightVision",
"to": "ShopChoice"
},
{
"from": "BuyCourage",
"to": "ShopChoice"
},
{
"from": "BuyAll",
"to": "BuyAllDeal"
},
{
"from": "BuyAllDeal",
"to": "AllPotionsBought",
"text": "1. Worth it."
},
{
"from": "BuyAllDeal",
"to": "BuyHealing",
"text": "2. Just the healing potion then."
},
{
"from": "AllPotionsBought",
"to": "QuestChoice"
},
{
"from": "StrangerMoreInfo",
"to": "StrangerReturn"
},
{
"from": "StrangerReturn",
"to": "StrangerRespect",
"text": "1. Cautious, not afraid."
},
{
"from": "StrangerReturn",
"to": "GuardianInfo",
"text": "2. Tell me more about the guardians."
},
{
"from": "StrangerReturn",
"to": "StrangerTruth",
"text": "3. What's really up there?"
},
{
"from": "StrangerRespect",
"to": "StrangerQuestions"
},
{
"from": "StrangerQuestions",
"to": "StrangerOrigin",
"text": "1. How did you get a map?"
},
{
"from": "StrangerQuestions",
"to": "StrangerPast",
"text": "2. Have you been there yourself?"
},
{
"from": "StrangerQuestions",
"to": "JourneyBegin",
"text": "3. I'm ready now."
},
{
"from": "StrangerOrigin",
"to": "StrangerDark"
},
{
"from": "StrangerDark",
"to": "StrangerAccuse",
"text": "1. You killed them?"
},
{
"from": "StrangerDark",
"to": "StrangerClarity",
"text": "2. They died on the mountain?"
},
{
"from": "StrangerDark",
"to": "StrangerQuestions",
"text": "3. I don't want to know."
},
{
"from": "StrangerAccuse",
"to": "StrangerQuestions"
},
{
"from": "StrangerClarity",
"to": "StrangerQuestions"
},
{
"from": "StrangerPast",
"to": "StrangerRegret"
},
{
"from": "StrangerRegret",
"to": "StrangerSecret",
"text": "1. What did you leave?"
},
{
"from": "StrangerRegret",
"to": "StrangerQuestions",
"text": "2. I'm sorry."
},
{
"from": "StrangerRegret",
"to": "StrangerVulnerable",
"text": "3. [Insight] You lost someone, didn't you?"
},
{
"from": "StrangerSecret",
"to": "StrangerWarningFinal"
},
{
"from": "StrangerVulnerable",
"to": "StrangerGrief"
},
{
"from": "StrangerGrief",
"to": "StrangerBlessing",
"text": "1. I'll be careful."
},
{
"from": "StrangerGrief",
"to": "StrangerHope",
"text": "2. Maybe the blade can bring her back?"
},
{
"from": "StrangerGrief",
"to": "StrangerBlessing",
"text": "3. Some things are worth the risk."
},
{
"from": "StrangerHope",
"to": "StrangerBlessing"
},
{
"from": "StrangerBlessing",
"to": "JourneyBegin"
},
{
"from": "StrangerWarningFinal",
"to": "JourneyBegin"
},
{
"from": "StrangerTruth",
"to": "StrangerQuestions"
},
{
"from": "RecruitChoice",
"to": "RecruitOptions"
},
{
"from": "RecruitOptions",
"to": "RecruitStranger",
"text": "1. The stranger seems capable."
},
{
"from": "RecruitOptions",
"to": "RecruitMerchant",
"text": "2. The merchant knows the gear."
},
{
"from": "RecruitOptions",
"to": "RecruitBarkeep",
"text": "3. Perhaps the barkeep has contacts."
},
{
"from": "RecruitOptions",
"to": "JourneyBegin",
"text": "4. I work better alone."
},
{
"from": "RecruitStranger",
"to": "RecruitFail"
},
{
"from": "RecruitFail",
"to": "JourneyBegin"
},
{
"from": "RecruitMerchant",
"to": "RecruitFail"
},
{
"from": "RecruitBarkeep",
"to": "KiraIntro"
},
{
"from": "KiraIntro",
"to": "KiraLocation",
"text": "1. Where can I find her?"
},
{
"from": "KiraIntro",
"to": "KiraRate",
"text": "2. What's her rate?"
},
{
"from": "KiraIntro",
"to": "KiraWarning",
"text": "3. Intense how?"
},
{
"from": "KiraLocation",
"to": "KiraMeet"
},
{
"from": "KiraRate",
"to": "KiraMeet"
},
{
"from": "KiraWarning",
"to": "KiraMeet"
},
{
"from": "KiraMeet",
"to": "KiraApproach"
},
{
"from": "KiraApproach",
"to": "KiraOffer"
},
{
"from": "KiraOffer",
"to": "KiraJob",
"text": "1. I need a sword for a mountain expedition."
},
{
"from": "KiraOffer",
"to": "KiraFlattery",
"text": "2. [Flattery] Your reputation precedes you."
},
{
"from": "KiraOffer",
"to": "KiraDirect",
"text": "3. How much to keep me alive?"
},
{
"from": "KiraJob",
"to": "KiraWhich"
},
{
"from": "KiraWhich",
"to": "KiraSorrow"
},
{
"from": "KiraSorrow",
"to": "KiraKnows",
"text": "1. You've heard of it."
},
{
"from": "KiraSorrow",
"to": "KiraConcern",
"text": "2. Is that a problem?"
},
{
"from": "KiraSorrow",
"to": "KiraDecision",
"text": "3. The same. Will you come?"
},
{
"from": "KiraKnows",
"to": "KiraConcern"
},
{
"from": "KiraConcern",
"to": "KiraPrice"
},
{
"from": "KiraPrice",
"to": "KiraNaming",
"text": "1. Name your price."
},
{
"from": "KiraPrice",
"to": "KiraGlory",
"text": "2. [Persuade] Think of the glory."
},
{
"from": "KiraPrice",
"to": "RecruitFail",
"text": "3. Forget it, you're too expensive."
},
{
"from": "KiraNaming",
"to": "KiraDeal"
},
{
"from": "KiraDeal",
"to": "KiraJoins",
"text": "1. Deal."
},
{
"from": "KiraDeal",
"to": "KiraHaggle",
"text": "2. [Haggle] 150."
},
{
"from": "KiraDeal",
"to": "RecruitFail",
"text": "3. Too steep."
},
{
"from": "KiraJoins",
"to": "PartyFormed"
},
{
"from": "KiraHaggle",
"to": "KiraHaggleFinal"
},
{
"from": "KiraHaggleFinal",
"to": "KiraJoins",
"text": "1. Agreed."
},
{
"from": "KiraHaggleFinal",
"to": "KiraJoins",
"text": "2. Fine, 200 it is."
},
{
"from": "KiraHaggleFinal",
"to": "RecruitFail",
"text": "3. I'll go alone."
},
{
"from": "KiraGlory",
"to": "KiraDeal"
},
{
"from": "KiraFlattery",
"to": "KiraJob"
},
{
"from": "KiraDirect",
"to": "KiraDeal"
},
{
"from": "KiraDecision",
"to": "KiraDeal"
},
{
"from": "PartyFormed",
"to": "JourneyBegin"
},
{
"from": "MerchantApproach",
"to": "MerchantGreet"
},
{
"from": "MerchantGreet",
"to": "MerchantShop",
"text": "1. What are you selling?"
},
{
"from": "MerchantGreet",
"to": "MerchantTrouble",
"text": "2. You look worried. What's wrong?"
},
{
"from": "MerchantGreet",
"to": "MerchantSuspicious",
"text": "3. [Examine] What's in that heavy pouch?"
},
{
"from": "MerchantTrouble",
"to": "MerchantDebt"
},
{
"from": "MerchantDebt",
"to": "MerchantAmount",
"text": "1. How much do you owe?"
},
{
"from": "MerchantDebt",
"to": "MerchantCreditor",
"text": "2. Who's after you?"
},
{
"from": "MerchantDebt",
"to": "TavernChoice",
"text": "3. Not my problem."
},
{
"from": "MerchantAmount",
"to": "MerchantThreat"
},
{
"from": "MerchantThreat",
"to": "MerchantHelp",
"text": "1. I could help. For a price."
},
{
"from": "MerchantThreat",
"to": "MerchantHit",
"text": "2. [Intimidate] Pay me and I'll make the problem disappear."
},
{
"from": "MerchantThreat",
"to": "TavernChoice",
"text": "3. Sounds dangerous. Good luck."
},
{
"from": "MerchantHelp",
"to": "MerchantBargain"
},
{
"from": "MerchantBargain",
"to": "MerchantDeal",
"text": "1. Your entire inventory."
},
{
"from": "MerchantBargain",
"to": "MerchantInfoDeal",
"text": "2. Information about Mount Sorrow."
},
{
"from": "MerchantBargain",
"to": "MerchantPartner",
"text": "3. A partnership. 50/50 on profits."
},
{
"from": "MerchantDeal",
"to": "MerchantAllied"
},
{
"from": "MerchantInfoDeal",
"to": "MerchantAllied"
},
{
"from": "MerchantPartner",
"to": "MerchantAllied"
},
{
"from": "MerchantAllied",
"to": "TavernChoice"
},
{
"from": "MerchantHit",
"to": "HitChoice"
},
{
"from": "HitChoice",
"to": "HitAccepted",
"text": "1. Consider it done."
},
{
"from": "HitChoice",
"to": "TavernChoice",
"text": "2. [Morality] No, I was joking."
},
{
"from": "HitChoice",
"to": "HitNegotiate",
"text": "3. Make it 200."
},
{
"from": "HitAccepted",
"to": "MerchantAllied"
},
{
"from": "HitNegotiate",
"to": "HitFinal"
},
{
"from": "HitFinal",
"to": "HitAccepted",
"text": "1. Fine. 150."
},
{
"from": "HitFinal",
"to": "TavernChoice",
"text": "2. Too low. Find someone else."
},
{
"from": "MerchantCreditor",
"to": "MerchantAmount"
},
{
"from": "MerchantSuspicious",
"to": "MerchantPanic"
},
{
"from": "MerchantPanic",
"to": "MerchantCalm",
"text": "1. [Calm] Easy, I'm not with anyone."
},
{
"from": "MerchantPanic",
"to": "MerchantTerror",
"text": "2. Maybe I am. Maybe I'm not."
},
{
"from": "MerchantPanic",
"to": "MerchantTerror",
"text": "3. [Bluff] The Black Ledger sends their regards."
},
{
"from": "MerchantTerror",
"to": "MerchantBeg"
},
{
"from": "MerchantBeg",
"to": "MerchantRelief",
"text": "1. [Mercy] Relax, I'm messing with you."
},
{
"from": "MerchantBeg",
"to": "MerchantBribed",
"text": "2. Then the information you have is mine."
},
{
"from": "MerchantBeg",
"to": "MerchantFate",
"text": "3. [Evil] Time's up."
},
{
"from": "MerchantRelief",
"to": "MerchantFriendly"
},
{
"from": "MerchantBribed",
"to": "MerchantInfoDeal"
},
{
"from": "MerchantFate",
"to": "BarFight"
},
{
"from": "MerchantFriendly",
"to": "TavernChoice"
},
{
"from": "BarkeepApproach",
"to": "DrinkChoice"
},
{
"from": "DrinkChoice",
"to": "DrinkAle",
"text": "1. Ale."
},
{
"from": "DrinkChoice",
"to": "DrinkWine",
"text": "2. Wine."
},
{
"from": "DrinkChoice",
"to": "DrinkStrong",
"text": "3. Something stronger."
},
{
"from": "DrinkChoice",
"to": "BarkeepInfo",
"text": "4. Information."
},
{
"from": "DrinkAle",
"to": "DrinkServed"
},
{
"from": "DrinkWine",
"to": "DrinkServed"
},
{
"from": "DrinkStrong",
"to": "StrongConfirm"
},
{
"from": "StrongConfirm",
"to": "DrinkServed",
"text": "1. [Constitution] I can handle it."
},
{
"from": "StrongConfirm",
"to": "DrinkAle",
"text": "2. Maybe just ale."
},
{
"from": "StrongConfirm",
"to": "DrinkDouble",
"text": "3. Give me a double."
},
{
"from": "DrinkDouble",
"to": "DrinkPassed"
},
{
"from": "DrinkPassed",
"to": "RobbedWake"
},
{
"from": "RobbedWake",
"to": "AlleyRage",
"text": "1. [Rage] WHO TOOK MY GOLD?!"
},
{
"from": "RobbedWake",
"to": "AlleyCheck",
"text": "2. Check your belongings."
},
{
"from": "RobbedWake",
"to": "AlleyCalm",
"text": "3. [Calm] Assess the situation."
},
{
"from": "AlleyRage",
"to": "AlleyCheck"
},
{
"from": "AlleyCheck",
"to": "TavernReturn"
},
{
"from": "AlleyCalm",
"to": "TavernReturn"
},
{
"from": "TavernReturn",
"to": "BarkeepSmirk"
},
{
"from": "BarkeepSmirk",
"to": "BarkeepAccuse",
"text": "1. You let someone rob me!"
},
{
"from": "BarkeepSmirk",
"to": "BarkeepLaugh",
"text": "2. [Humor] I'll have what I had."
},
{
"from": "BarkeepSmirk",
"to": "TavernChoice",
"text": "3. Never again."
},
{
"from": "BarkeepAccuse",
"to": "TavernChoice"
},
{
"from": "BarkeepLaugh",
"to": "DrinkServed"
},
{
"from": "DrinkServed",
"to": "TavernChoice"
},
{
"from": "BarkeepBribe",
"to": "BarkeepDeal"
},
{
"from": "StrangerHostile",
"to": "StrangerChoice"
},
{
"from": "StrangerChoice",
"to": "StrangerFight",
"text": "1. [Fight] Then let's end this now."
},
{
"from": "StrangerChoice",
"to": "StrangerCalm",
"text": "2. [Apologize] I meant no offense!"
},
{
"from": "StrangerChoice",
"to": "TavernExit",
"text": "3. [Flee] Run for the door!"
},
{
"from": "StrangerFight",
"to": "StrangerBattle"
},
{
"from": "StrangerBattle",
"to": "StrangerWound",
"text": "1. [Attack] Press the advantage."
},
{
"from": "StrangerBattle",
"to": "StrangerStalemate",
"text": "2. [Defend] Focus on survival."
},
{
"from": "StrangerBattle",
"to": "StrangerMercy",
"text": "3. [Yield] I surrender!"
},
{
"from": "StrangerWound",
"to": "StrangerStalemate"
},
{
"from": "StrangerStalemate",
"to": "StrangerTruce"
},
{
"from": "StrangerTruce",
"to": "StrangerGreet",
"text": "1. Agreed. Start over?"
},
{
"from": "StrangerTruce",
"to": "TavernExit",
"text": "2. I don't trust you."
},
{
"from": "StrangerTruce",
"to": "StrangerExplain",
"text": "3. [Suspicious] Why the sudden change?"
},
{
"from": "StrangerExplain",
"to": "StrangerGreet"
},
{
"from": "StrangerMercy",
"to": "TavernChoice"
},
{
"from": "StrangerCalm",
"to": "StrangerExplain2"
},
{
"from": "StrangerExplain2",
"to": "StrangerNote",
"text": "1. I was curious about the note."
},
{
"from": "StrangerExplain2",
"to": "CrimsonQuestStart",
"text": "2. I'm seeking the Crimson Blade."
},
{
"from": "StrangerExplain2",
"to": "StrangerLie",
"text": "3. [Lie] I thought you were someone else."
},
{
"from": "StrangerNote",
"to": "StrangerGreet"
},
{
"from": "StrangerLie",
"to": "StrangerGreet"
},
{
"from": "StrangerReveal",
"to": "StrangerIdentity"
},
{
"from": "StrangerIdentity",
"to": "StrangerFamous",
"text": "1. The assassin?!"
},
{
"from": "StrangerIdentity",
"to": "StrangerPurpose",
"text": "2. What are you doing here?"
},
{
"from": "StrangerIdentity",
"to": "StrangerOffended",
"text": "3. I've never heard of you."
},
{
"from": "StrangerFamous",
"to": "StrangerGreet"
},
{
"from": "StrangerPurpose",
"to": "StrangerGreet"
},
{
"from": "StrangerOffended",
"to": "StrangerGreet"
},
{
"from": "WorkOffer",
"to": "WorkChoice"
},
{
"from": "WorkChoice",
"to": "WorkDetails",
"text": "1. What's the job?"
},
{
"from": "WorkChoice",
"to": "WorkRisk",
"text": "2. How dangerous?"
},
{
"from": "WorkChoice",
"to": "WorkPay",
"text": "3. How much?"
},
{
"from": "WorkDetails",
"to": "WorkAccept"
},
{
"from": "WorkRisk",
"to": "WorkDetails"
},
{
"from": "WorkPay",
"to": "WorkAccept"
},
{
"from": "WorkAccept",
"to": "SideQuestAccepted",
"text": "1. I'll do it."
},
{
"from": "WorkAccept",
"to": "WorkDetails",
"text": "2. I need more information."
},
{
"from": "WorkAccept",
"to": "StrangerGreet",
"text": "3. I have other priorities."
},
{
"from": "SideQuestAccepted",
"to": "TavernChoice"
},
{
"from": "BarFight",
"to": "BarFightChoice"
},
{
"from": "BarFightChoice",
"to": "BarFightWin",
"text": "1. [Fight] Join the brawl!"
},
{
"from": "BarFightChoice",
"to": "TavernExit",
"text": "2. [Flee] Slip out the back!"
},
{
"from": "BarFightChoice",
"to": "BarFightHide",
"text": "3. [Hide] Duck under a table!"
},
{
"from": "BarFightWin",
"to": "BarFightAfter"
},
{
"from": "BarFightHide",
"to": "BarFightAfter"
},
{
"from": "BarFightAfter",
"to": "TavernExit"
},
{
"from": "TavernExit",
"to": "End"
},
{
"from": "JourneyBegin",
"to": "End"
}
]
}