[
  {
    "type": "GENERIC",
    "id": "rubik_farthing",
    "name": { "str": "shiny farthing" },
    "description": "A small, shiny brass coin with a picture of a stern-looking older man on one side and the words 'For all of Angland and her children' in an arc beneath him.  On the other side is a large number '1' wreathed in what appear to be nettle leaves.",
    "weight": "2 g",
    "to_hit": -1,
    "color": "yellow",
    "symbol": ".",
    "flags": [ "COIN_SHAPED" ],
    "material": [ "copper" ],
    "volume": "1 ml",
    "price": 1,
    "price_postapoc": 1
  },
  {
    "//": "table of contents: common response strings appearing in this list of topics",
    "id": [
      "TALK_EXODII_MERCHANT_New",
      "TALK_EXODII_MERCHANT_Talk",
      "TALK_EXODII_MERCHANT_Base2",
      "TALK_EXODII_MERCHANT_Dialect_Anglic",
      "TALK_EXODII_MERCHANT_DoneTrade",
      "TALK_EXODII_MERCHANT_Exodus2",
      "TALK_EXODII_MERCHANT_ExodizeNope",
      "TALK_EXODII_MERCHANT_Survival2"
    ],
    "type": "talk_topic",
    "responses": [
      { "text": "What've you got for trade?", "effect": "start_trade", "topic": "TALK_EXODII_MERCHANT_DoneTrade" },
      { "text": "I don't understand a word you're saying.", "topic": "TALK_EXODII_MERCHANT_Dialect" },
      { "text": "Are you some kind of robot?", "topic": "TALK_EXODII_MERCHANT_Robot" },
      {
        "text": "[INT 9] You're called Exodii?  Does that mean you were driven out of your home?",
        "condition": { "u_has_intelligence": 9 },
        "topic": "TALK_EXODII_MERCHANT_Exodus"
      },
      {
        "text": "What are you doing here?",
        "topic": "TALK_EXODII_MERCHANT_Purpose",
        "condition": { "u_has_var": "u_met_Rubik", "type": "general", "context": "meeting", "value": "yes" }
      },
      { "text": "What kind of place is this?", "topic": "TALK_EXODII_MERCHANT_Base" },
      {
        "text": "[PER 6] Some of this tech looks… weird.",
        "topic": "TALK_EXODII_MERCHANT_Tech",
        "condition": {
          "and": [ { "u_has_var": "u_met_Rubik", "type": "general", "context": "meeting", "value": "yes" }, { "u_has_perception": 6 } ]
        }
      },
      {
        "text": "What's with those weird metal zombies I've been seeing?  They resemble some of the robots around here.",
        "condition": { "u_has_var": "seen_zomborg", "type": "dialogue", "context": "exodii", "value": "yes" },
        "topic": "TALK_EXODII_MERCHANT_Zomborgs"
      },
      {
        "text": "Would you be willing to sell some of your robots?",
        "condition": { "u_has_var": "rubik_offered_robosell", "type": "dialogue", "context": "exodii", "value": "yes" },
        "topic": "TALK_EXODII_MERCHANT_Robot_Buy"
      },
      {
        "text": "You wanted to ask me some questions earlier, and I think I was rude about it.  What did you want to ask?",
        "condition": {
          "and": [
            { "u_has_var": "rubik_intro", "type": "dialogue", "context": "started", "value": "yes" },
            { "not": { "u_has_var": "rubik_intro", "type": "dialogue", "context": "midpoint", "value": "yes" } }
          ]
        },
        "topic": "TALK_EXODII_MERCHANT_Talk_Intro1b"
      },
      {
        "text": "Can we continue our conversation about your arrival in this world?",
        "condition": {
          "and": [
            { "u_has_var": "rubik_intro", "type": "dialogue", "context": "started", "value": "yes" },
            { "u_has_var": "rubik_intro", "type": "dialogue", "context": "midpoint", "value": "yes" },
            { "not": { "u_has_var": "rubik_intro", "type": "dialogue", "context": "completed", "value": "yes" } }
          ]
        },
        "topic": "TALK_EXODII_MERCHANT_Talk_Intro2a"
      },
      {
        "text": "Can you turn me into a cyborg RIGHT NOW?  I'm a developer for this game, you know.",
        "condition": { "u_has_trait": "DEBUG_NODMG" },
        "topic": "TALK_EXODII_MERCHANT_ExodizeTest"
      },
      {
        "text": "I think I'm ready to try becoming a cyborg now.",
        "condition": {
          "and": [
            { "u_has_var": "anusfetick", "type": "mission", "context": "completed", "value": "yes" },
            { "not": { "u_has_trait": "CBM_Interface" } }
          ]
        },
        "topic": "TALK_EXODII_MERCHANT_ExodizeMe2"
      },
      {
        "text": "Any chance you could help me get some of those sweet bionic upgrades?",
        "topic": "TALK_EXODII_MERCHANT_Exodize",
        "condition": {
          "and": [
            { "u_has_var": "u_knows_exodiilore", "type": "knowledge", "context": "exodization", "value": "yes" },
            {
              "not": {
                "or": [
                  { "u_has_mission": "RUBIK_ANUS_FETICK" },
                  { "u_has_var": "anusfetick", "type": "mission", "context": "completed", "value": "yes" },
                  { "u_has_trait": "CBM_Interface" }
                ]
              }
            }
          ]
        }
      },
      {
        "text": "Can you help me with CBM surgery?",
        "topic": "TALK_EXODII_MERCHANT_Bionic_Install",
        "condition": { "u_has_trait": "CBM_Interface" }
      }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT",
    "type": "talk_topic",
    "dynamic_line": {
      "u_has_effect": "u_exodii_interaction_timer_short",
      "yes": [ "Back in a blink and a whiff, eh?", "Forgot sommat?", "Ah, a returnin', an I'm ken." ],
      "no": {
        "u_has_var": "u_met_Rubik",
        "type": "general",
        "context": "meeting",
        "value": "yes",
        "yes": [
          "And a fine return, matey.",
          "Fine and you still ain't dead.  What brings ye roun' Rubik's neckawoods?",
          "Bright and sunny, you're back!  I got goods for ye, if you got goods for me."
        ],
        "no": "Oy, you ain't dead.  Lookin' t'trade?"
      }
    },
    "speaker_effect": [
      {
        "//": "Just coming and saying hi to Rubik regularly will give you a small boost to trust.",
        "condition": { "not": { "u_has_effect": "u_exodii_interaction_timer_short" } },
        "effect": [ { "u_add_effect": "u_exodii_interaction_timer_short", "duration": "30 hours" }, { "u_add_faction_trust": 1 } ]
      },
      {
        "sentinel": "first_meeting_effects",
        "condition": { "not": { "u_has_var": "u_met_Rubik", "type": "general", "context": "meeting", "value": "yes" } },
        "effect": [ { "u_add_var": "u_met_Rubik", "type": "timer", "context": "first_meeting", "time": true } ]
      },
      {
        "//": "Check to see if you've sold enough for Rubik's trust in you to increase a bit",
        "condition": {
          "and": [ { "compare_num": [ { "u_val": "sold" }, ">=", { "const": 20 } ] }, { "not": { "u_has_faction_trust": 20 } } ]
        },
        "effect": [ { "arithmetic": [ { "u_val": "sold" }, "-=", { "const": 20 } ] }, { "u_add_faction_trust": 1 } ]
      },
      {
        "//": "Governs the special CBM stock availability and restock, also adds a little extra faction rep.",
        "condition": { "not": { "u_has_effect": "u_exodii_interaction_timer_long" } },
        "effect": [ { "u_add_effect": "u_exodii_interaction_timer_long", "duration": "7 days" }, { "u_add_faction_trust": 1 } ]
      }
    ],
    "responses": [
      {
        "text": "Who are you?  What is this place?",
        "topic": "TALK_EXODII_MERCHANT_New",
        "condition": { "not": { "u_has_var": "u_met_Rubik", "type": "general", "context": "meeting", "value": "yes" } },
        "effect": { "u_add_var": "u_met_Rubik", "type": "general", "context": "meeting", "value": "yes" }
      },
      {
        "text": "I've brought the anesthetic for you.  Can you help me out?",
        "condition": { "and": [ { "u_has_items": { "item": "anesthetic", "count": 1000 } }, { "u_has_mission": "RUBIK_ANUS_FETICK" } ] },
        "effect": [ { "u_sell_item": "anesthetic", "count": 1000 }, { "finish_mission": "RUBIK_ANUS_FETICK", "success": true } ],
        "topic": "TALK_EXODII_MERCHANT_ExodizeMe2"
      },
      {
        "text": "I think I'm ready to try becoming a cyborg now.",
        "condition": {
          "and": [
            { "u_has_var": "anusfetick", "type": "mission", "context": "completed", "value": "yes" },
            { "not": { "u_has_trait": "CBM_Interface" } }
          ]
        },
        "topic": "TALK_EXODII_MERCHANT_ExodizeMe2"
      },
      {
        "text": "I paid a visit to the bunker.",
        "condition": { "and": [ { "u_has_var": "u_scouted_bunker", "type": "mission", "context": "completed", "value": "yes" } ] },
        "effect": [
          { "u_lose_var": "u_scouted_bunker", "type": "mission", "context": "completed" },
          { "arithmetic": [ { "global_val": "var", "var_name": "exodii_knows_hub01" }, "=", { "const": 1 } ] }
        ],
        "topic": "TALK_EXODII_MERCHANT_mission_1_complete"
      },
      {
        "text": "I found the warehouse.",
        "condition": { "and": [ { "u_has_var": "u_found_warehouse", "type": "mission", "context": "completed", "value": "yes" } ] },
        "effect": [
          { "u_lose_var": "u_found_warehouse", "type": "mission", "context": "completed" },
          { "arithmetic": [ { "global_val": "var", "var_name": "warehouse_was_found" }, "=", { "const": 1 } ] }
        ],
        "topic": "TALK_EXODII_MERCHANT_mission_2_complete"
      },
      {
        "text": "Any chance you could help me get some of those sweet bionic upgrades?",
        "topic": "TALK_EXODII_MERCHANT_Exodize",
        "condition": {
          "and": [
            { "u_has_var": "u_knows_exodiilore", "type": "knowledge", "context": "exodization", "value": "yes" },
            {
              "not": {
                "or": [
                  { "u_has_mission": "RUBIK_ANUS_FETICK" },
                  { "u_has_var": "anusfetick", "type": "mission", "context": "completed", "value": "yes" }
                ]
              }
            }
          ]
        }
      },
      {
        "text": "What've you got for trade?",
        "effect": "start_trade",
        "topic": "TALK_EXODII_MERCHANT_DoneTrade",
        "condition": { "u_has_var": "u_met_Rubik", "type": "general", "context": "meeting", "value": "yes" }
      },
      {
        "text": "Actually, I wanted to talk.",
        "topic": "TALK_EXODII_MERCHANT_Talk",
        "condition": { "u_has_var": "u_met_Rubik", "type": "general", "context": "meeting", "value": "yes" }
      },
      {
        "text": "Hell no, I'm out of here.",
        "condition": { "not": { "u_has_var": "u_met_Rubik", "type": "general", "context": "meeting", "value": "yes" } },
        "topic": "TALK_DONE"
      },
      {
        "text": "Just popping in to say hi.  See you later, alligator.",
        "condition": { "u_has_var": "u_met_Rubik", "type": "general", "context": "meeting", "value": "yes" },
        "topic": "TALK_DONE"
      }
    ]
  },
  {
    "type": "effect_type",
    "id": "u_exodii_interaction_timer_short",
    "//": "This prevents you from building trust with the Exodii too quickly by just talking to them constantly, and tells Rubik to use a different greeting because he saw you very recently."
  },
  {
    "type": "effect_type",
    "id": "u_exodii_interaction_timer_long",
    "//": "This prevents you from building trust with the Exodii too quickly by just talking to them constantly."
  },
  {
    "id": "TALK_EXODII_MERCHANT_New",
    "type": "talk_topic",
    "dynamic_line": "Us call us the Exodii, eh?  An' other things, but that'n's good.  This're our home, such as it.  This'n's monicked as Rubik, and tassed with a trade an'.  You lookin' to trade?  Us'n's alay for the scrap, metal an' more as it be.",
    "//~": "We call ourselves the Exodii, eh?  And other things, but that's good.  This is our home, such as it is.  I'm called Rubik, and I've been assigned to trade with you.  Are you looking to trade?  We're always looking for scrap, metal and more.",
    "responses": [ { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" } ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_DoneTrade",
    "type": "talk_topic",
    "dynamic_line": [ "Good an' fine, then.", "Have it as ye'll see.", "For a card an' a wink, eh?" ],
    "//~": "For a card an' a wink, eh? --> That was a good exchange",
    "speaker_effect": {
      "condition": {
        "and": [ { "compare_num": [ { "u_val": "sold" }, ">=", { "const": 20 } ] }, { "not": { "u_has_faction_trust": 21 } } ]
      },
      "effect": [ { "arithmetic": [ { "u_val": "sold" }, "-=", { "const": 20 } ] }, { "u_add_faction_trust": 1 } ]
    },
    "responses": [
      { "text": "Why are your lockers full of medieval gear?", "topic": "TALK_EXODII_MERCHANT_Stock_Medieval" },
      {
        "text": "You seem to have a bunch of blueprints.  Can you tell me more about those?",
        "topic": "TALK_EXODII_MERCHANT_Stock_Nomad"
      },
      { "text": "Have you anything more back there?", "topic": "TALK_EXODII_MERCHANT_AskedRestock" },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Stock_Medieval",
    "type": "talk_topic",
    "dynamic_line": "That be a right welcher, eh?  Afore us'n were to this land, the preface were on a half-score century by the reckonin'.  Landed us in amidst of a war'd turned wrong, for an' as the dead had come back in.  By the butcher's block, not much an unusual case, really.  The Enemy makes us fight.  By an' by, we came in, an' by then the killin' fields were plump and ready to harvest the bronze.  'Tain't no steel-of-the-lake, but 'tis a good dross metal for holdin' off a nibblin' mouth, so we kept a few o' their vestments an' stickers for to trade.",
    "//~": "It's a bit of a surprise, isn't it?  Before we came here, we were in a place about 600 years earlier in time, or so.  We landed in the middle of a war that turned wrong when the dead started joining back in.  Truth be told, not a very unusual situation.  The Enemy makes us fight.  By and by, we came in, and by then the killing fields were ready for us to harvest their bronze.  It's no steel-of-the-lake, but it's a good strong metal for stopping a nibbling mouth, so we kept some of their armour and weapons to trade.",
    "responses": [
      {
        "text": "You seem to have a bunch of blueprints.  Can you tell me more about those?",
        "topic": "TALK_EXODII_MERCHANT_Stock_Nomad"
      },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Stock_Nomad",
    "type": "talk_topic",
    "dynamic_line": "Ah, a real monger's eye, ye be.  Them's the mettle o' many a year of trials.  Us'n've been clashin wi' the Enemy for a long an' then, an' o'er the turns us've worked out some vestments for the job.  Keep's a walker walkin' longer, an I'm ken.  This'n keeps some o' the parst in an' around, but ye'd be tassed to make the vestment with the grease o' your own brow.",
    "//~": "Ah, you've got a discerning eye.  They're the result of many years of work.  We've been fighting the Enemy for a long time, and over the years we've worked out some armour for the job.  Keeps you going a bit longer in the field, if you ask me.  I keep some of the parts in stock, but you'll have to put it together yourself.",
    "responses": [
      { "text": "What makes your specific armor so great?", "topic": "TALK_EXODII_MERCHANT_Stock_Nomad2" },
      { "text": "Why do I have to make it myself?", "topic": "TALK_EXODII_MERCHANT_Stock_Nomad3" },
      { "text": "Why are your lockers full of medieval gear?", "topic": "TALK_EXODII_MERCHANT_Stock_Medieval" },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Stock_Nomad2",
    "type": "talk_topic",
    "dynamic_line": "This 'n that, an I'm ken.  It be made for a fine wander, beladen with the goods o' the hunt, y'see.  By which I'm to say, 'tis well suited to carry all ye can wrest from the cold arms o' the deadlands, without troublin' your gait nor makin' it easy for the cold clutch o' the scrabblin' arm.  Be an' it is tough as a tarket's nut, I'd razz.",
    "//~": "This and that, you know.  It's made for a travelling scavenger, you see.  What I mean is, it's well suited to carry around whatever you pick up in the wastelands, without making it too hard to get around nor giving any easy handholds for scrambling arms.  That, and I'd say it's as tough as nails.",
    "responses": [
      { "text": "Why do I have to make it myself?", "topic": "TALK_EXODII_MERCHANT_Stock_Nomad3" },
      { "text": "Why are your lockers full of medieval gear?", "topic": "TALK_EXODII_MERCHANT_Stock_Medieval" },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Stock_Nomad3",
    "type": "talk_topic",
    "dynamic_line": "'Tis as simple as comes to a wobble.  Our vestment be oft made from the fine clothes and hides of the land, and our jibber tears the stuff o' life apart here and there when us'n travel.  For as some can be saved if care be taken, there be no case to store nigh enough o' this.  That, an' our manuc-makers run as hot as a sunstone, no spit'n taste for that which we don't use usselves.",
    "//~": "It's a simple matter of how we teleport.  Our clothes are often made from cloth and hides from wherever we visit, and our teleporter tears living stuff apart here and there when we travel.  Some can be saved if we take care, but there's no room to store nearly enough extra.  That, and our fabricators are always busy, no time to waste on stuff we don't need for ourselves",
    "responses": [
      { "text": "What makes your specific armor so great?", "topic": "TALK_EXODII_MERCHANT_Stock_Nomad2" },
      { "text": "Why are your lockers full of medieval gear?", "topic": "TALK_EXODII_MERCHANT_Stock_Medieval" },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_AskedRestock",
    "type": "talk_topic",
    "dynamic_line": [ "HEH, ye c'nnae get enough o' ol' Rubik's merchandise, eh?  Sure as 'ell, come back in <interval>." ],
    "//~": "HEH, you can't get enough of old Rubik's merchandise, eh? Sure as hell, come back in <interval>.",
    "responses": [
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "Well, thanks.  I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Talk",
    "type": "talk_topic",
    "dynamic_line": {
      "u_has_var": "rubik_intro",
      "type": "dialogue",
      "context": "started",
      "value": "yes",
      "yes": "Sure as you c'n try.  Us're not the greatest yarker, nor do it all for gratis, kennit.",
      "no": "Oy, c'n I bark you summat first?"
    },
    "//~": "Yes: You can surely try.  I'm not the greatest speaker, and I won't just chat forever for free, you know.  No: Hey, can I ask you something first?",
    "speaker_effect": { "effect": { "u_add_var": "rubik_intro", "type": "dialogue", "context": "started", "value": "yes" } },
    "responses": [
      { "text": "Like, ask me a question?  Sure, I guess.", "topic": "TALK_EXODII_MERCHANT_Talk_Intro1a" },
      { "text": "Know where I can find any work?", "topic": "TALK_EXODII_MERCHANT_Jobs" },
      {
        "text": "No.  I'm too busy to answer your questions, you're supposed to answer mine.  I guess I'll head out.",
        "topic": "TALK_DONE"
      }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Talk_Intro1a",
    "type": "talk_topic",
    "dynamic_line": "'Ow long's it been since the mess happened?",
    "responses": [ { "text": "[Tell them]", "topic": "TALK_EXODII_MERCHANT_Talk_Intro2" } ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Talk_Intro1b",
    "type": "talk_topic",
    "dynamic_line": "Thank ye.  When you an' Rubik first met, how long'd it been since the mess begun?",
    "responses": [ { "text": "[Tell them]", "topic": "TALK_EXODII_MERCHANT_Talk_Intro2" } ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Talk_Intro2",
    "type": "talk_topic",
    "dynamic_line": "Lovely!  Benzete's gonna be a pair, that's a track!  I mean, they'll be right happy.  This is their first jump, and it's a flappin' duck.",
    "//~": "Lovely!  Benzete (this is a name) is going to be beside themselves, that's for sure.  I mean, they'll be really happy.  This is their first jump, and it's a lucky one.",
    "speaker_effect": { "effect": { "u_add_var": "rubik_intro", "type": "dialogue", "context": "midpoint", "value": "yes" } },
    "responses": [
      { "text": "What makes it such a good jump?", "topic": "TALK_EXODII_MERCHANT_Talk_Intro3" },
      { "text": "Who is Benzete?", "topic": "TALK_EXODII_MERCHANT_Talk_IntroBenzete1" },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "I've gotta go.  See you later, Rubik.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Talk_Intro2a",
    "type": "talk_topic",
    "dynamic_line": "So 'twere an I recalt, us're yarkin' of Benzete an' their great first jump.",
    "//~": "As I recall, we were talking about Benzete and how this is a great jump for their first time.",
    "responses": [
      { "text": "What makes it such a good jump?", "topic": "TALK_EXODII_MERCHANT_Talk_Intro3" },
      { "text": "Who is Benzete?", "topic": "TALK_EXODII_MERCHANT_Talk_IntroBenzete1" },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "I've gotta go.  See you later, Rubik.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Talk_Intro3",
    "type": "talk_topic",
    "dynamic_line": "Us gotta leave the old world afore it's worn right to the gums, an y'ken, and find a nice twitchy one on t'other side.  Your deadland be a brand shiny",
    "//~": "We've got to leave the old world before it gets too worn out, you see, and find a nice fresh one on the other side.  Your deadland is as fresh as it gets.",
    "responses": [
      { "text": "I'm not following that at all.", "topic": "TALK_EXODII_MERCHANT_Talk_Intro3a" },
      {
        "text": "[INT 9] So you mean, we have a nice, freshly dead world for you to visit?",
        "condition": { "u_has_intelligence": 9 },
        "topic": "TALK_EXODII_MERCHANT_Talk_Intro4b"
      },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "I've gotta go.  See you later, Rubik.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Talk_Intro3a",
    "type": "talk_topic",
    "dynamic_line": "Neverken.  Right and so, the Enemy is new here, and us'n have a few good hours in the sun beforenext the jump.",
    "//~": "No worries.  I mean, the Enemy is new here, and we have a bit of safe time ahead of us before we have to jump away again.",
    "responses": [
      {
        "text": "Oh, you mean you got here early in the Cataclysm.  Why is that so good?",
        "topic": "TALK_EXODII_MERCHANT_Talk_Intro4a"
      },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "I've gotta go.  See you later, Rubik.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Talk_Intro4a",
    "type": "talk_topic",
    "dynamic_line": "That be a part an' switch, but this be'n nice for all, overtop the last jump by heads.  Otherlands with fusillies and mobbings, us'n gets a fine change on that.",
    "//~": "That's a part of it, sure, but this is nice for other reasons, and much better than our last jump.  Otherlands with fusillies and mobbings are really useful to us.",
    "speaker_effect": {
      "effect": { "u_add_var": "u_knows_exodiilore", "type": "knowledge", "context": "exodii_transdimensional", "value": "yes" }
    },
    "responses": [
      { "text": "I don't know what fusillies and mobbings are.", "topic": "TALK_EXODII_MERCHANT_Talk_Intro5" },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "I've gotta go.  See you later, Rubik.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Talk_Intro4b",
    "type": "talk_topic",
    "dynamic_line": "You kennit rightly!  That and this be'n nice for all, overtop the last jump by heads.  Otherlands with fusillies and mobbings, us'n gets a fine change on that.",
    "//~": "That's exactly it!  This is nice for many reasons, and much better than our last jump.  Otherlands with fusillies and mobbings are really useful to us.",
    "responses": [
      {
        "text": "I don't know what fusillies and mobbings are.",
        "condition": { "not": { "u_has_var": "fussily", "type": "dictionary", "context": "known", "value": "yes" } },
        "topic": "TALK_EXODII_MERCHANT_Talk_Intro5"
      },
      {
        "text": "Wait, am I following this right?  You're from a place where this happened before, and you escaped to our world?",
        "topic": "TALK_EXODII_MERCHANT_Exodus3"
      },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "I've gotta go.  See you later, Rubik.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Talk_Intro5",
    "type": "talk_topic",
    "dynamic_line": "Oh, rights.  Many lands be'd assert on thosun's.  A fusilly, she's a weapon, shoots a shot at high speeds usin' bang.  A mobbing, he's a grand box o' metal, pushed by burnin' and boomin' from wit'in, kennit?",
    "//~": "Oh, yeah.  Lots of places have different words for those.  A fusilly is a weapon that fires a bullet at high speeds using propellant.  A mobbing is a big metal box that's moved around by an internal explosion.  Do you get it?",
    "responses": [
      {
        "text": "[INT 7] Sounds like you mean a fusilly is a gun, and a mobbing is a car?",
        "condition": { "u_has_intelligence": 7 },
        "effect": { "u_add_var": "fussily", "type": "dictionary", "context": "known", "value": "yes" },
        "topic": "TALK_EXODII_MERCHANT_Talk_Intro6"
      },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "I've gotta go.  See you later, Rubik.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Talk_Intro6",
    "type": "talk_topic",
    "dynamic_line": "Right so, us'n'll write it in the dicky.  Here, a shiny brass farthing for crossin' the nation.",
    "//~": "Great, I'll put that in the dictionary.  Here's a token of my gratitude for your explanation.",
    "speaker_effect": {
      "effect": [
        { "u_add_var": "rubik_intro", "type": "dialogue", "context": "completed", "value": "yes" },
        { "u_spawn_item": "rubik_farthing" }
      ]
    },
    "responses": [
      {
        "text": "Now that we've sorted that out, I have to ask.  You're from a place where this happened before, and you escaped to our world?",
        "topic": "TALK_EXODII_MERCHANT_Exodus3"
      },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "I've gotta go.  See you later, Rubik.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Talk_IntroBenzete1",
    "type": "talk_topic",
    "dynamic_line": "Them's an otherlander from thrice jumps an' change, wide as the sky.  They's got happily on sommat for the tracking, you ken?",
    "//~": "They're an otherlander from around three jumps ago, a real optimistic greenhorn.  They're really interested in how we do tracking, you see?",
    "responses": [
      { "text": "I… didn't really follow that.", "topic": "TALK_EXODII_MERCHANT_Talk_IntroBenzete2" },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "I've gotta go.  See you later, Rubik.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Talk_IntroBenzete2",
    "type": "talk_topic",
    "dynamic_line": "Hmm.  They… planned out the last jump?  Like as an apprentice to the ol' sexten.",
    "//~": "Hmm.  They… planned out the last jump?  Like an apprentice to the old tracker.",
    "responses": [
      { "text": "Oh, like a navigator?", "topic": "TALK_EXODII_MERCHANT_Talk_IntroBenzete3" },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "I've gotta go.  See you later, Rubik.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Talk_IntroBenzete3",
    "type": "talk_topic",
    "dynamic_line": "Sure an' that's a fine enough word, an I'm ken.",
    "//~": "Sure, that word is fine, I think.",
    "responses": [
      {
        "text": "You said this was an especially good jump?",
        "condition": { "not": { "u_has_var": "rubik_intro", "type": "dialogue", "context": "completed", "value": "yes" } },
        "topic": "TALK_EXODII_MERCHANT_Talk_Intro3"
      },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "I've gotta go.  See you later, Rubik.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Aliens",
    "type": "talk_topic",
    "dynamic_line": "Yeah, you could call us as it.  Us're from otherlands mostlike.  Not otherworlds though.  Too risky bringin' them squelchies into the fold.",
    "//~": "Yeah, you could say that.  We're from otherlands, most of the time.  Not otherworlds though.  Too risky bringing those monsters into our safe haven.",
    "speaker_effect": {
      "effect": { "u_add_var": "u_knows_exodiilore", "type": "knowledge", "context": "exodii_transdimensional", "value": "yes" }
    },
    "responses": [
      { "text": "I don’t know the difference between otherlands and otherworlds.", "topic": "TALK_EXODII_MERCHANT_Aliens2" },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Aliens2",
    "type": "talk_topic",
    "dynamic_line": "Sure an that's a biggun'.  Otherworlds be the wherefore o' them uggo buggers you got round and here, eh?  Walkin' plants and talkin' mushrooms and whatlike.  Otherlands be tassed more of a kinship.  I be from Earth, but my Earth be differed.  So you's shouldno be asked what the Exodii is doin' on Earth, because some is feelin' of us fine an' fine at home, an I'm ken.  You's should be askin' what the Exodii is doin' razzin up your green and brown.",
    "//~": "Yeah, that's a big question. Otherworlds are how you got those ugly bug-creatures around here, you know? Walking plants, talking mushroom, stuff like that. Otherlands are closer related. I'm from Earth, just a different Earth. You shouldn't be asking what the Exodii are doing in Earth, because some of us are feeling pretty at home here, I think. You should be asking what we're doing hanging out in your part of town.",
    "responses": [
      {
        "text": "OK then, what are you meaning with 'razzing up our green and brown'?",
        "topic": "TALK_EXODII_MERCHANT_Purpose2"
      },
      { "text": "Tell me about your own world.", "topic": "TALK_EXODII_MERCHANT_Home" },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Home",
    "type": "talk_topic",
    "dynamic_line": "*becomes distant for a moment.  \"Ah.  Home.  It were a long time gone, kennit.  Your'n be not too far.  This'n… I don't think I want to talk 'bout it.  Too much metal atwixt now an' then.\"",
    "//~": "Ah.  Home.  That's a long time gone, you know?  Yours isn't too different.  I… don't think I want to talk about it.  I've changed too much between then and now.",
    "responses": [
      { "text": "That's rough, maybe we should talk about something else.", "topic": "TALK_EXODII_MERCHANT_Talk" },
      {
        "text": "What are you meaning with 'razzing up our green and brown'?",
        "topic": "TALK_EXODII_MERCHANT_Purpose2"
      },
      { "text": "How did you come to be made of metal like this?", "topic": "TALK_EXODII_MERCHANT_Metal" },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Metal",
    "type": "talk_topic",
    "dynamic_line": "Us'n saw this were a pidgeon's road, I'd razz.  Only one way, I'm ken, if I'm not to join the rank an' file.",
    "//~": "I realized that it was a no-brainer question.  There was only one other option, you see, if I didn't join the Exodii.",
    "responses": [
      {
        "text": "I think I know what you mean.  The only way to survive is to… \"upgrade\".  Can you help me with that?",
        "topic": "TALK_EXODII_MERCHANT_Exodize",
        "condition": {
          "not": {
            "or": [
              { "u_has_mission": "RUBIK_ANUS_FETICK" },
              { "u_has_var": "anusfetick", "type": "mission", "context": "completed", "value": "yes" },
              { "u_has_trait": "CBM_Interface" }
            ]
          }
        },
        "effect": { "u_add_var": "u_knows_exodiilore", "type": "knowledge", "context": "exodization", "value": "yes" }
      },
      {
        "text": "What are you meaning with 'razzing up our green and brown'?",
        "topic": "TALK_EXODII_MERCHANT_Purpose2"
      },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Robot",
    "type": "talk_topic",
    "dynamic_line": "Robot?  What assert is f'r it?  Ahold…\"  Rubik stops for a moment, as if thinking.  \"Ah, an automate?  No, this'n be flesh 'n blood as ye be, encased in a shell o' metal an' wire.  Not so much flesh as there were.  The wire is amixed an' afloat with the flesh, all as one, kennit.\"",
    "//~": "Robot?  What does that word mean?  Hang on. …Ah, an automate?  No, I'm as flesh and blood as you are, encased in a shell of metal and wire.  Not as much flesh as there used to be.  The wire is mixed and woven into the flesh, all as one, you see.",
    "speaker_effect": { "effect": { "u_add_var": "u_knows_exodiilore", "type": "knowledge", "context": "rubik_is_cyborg", "value": "yes" } },
    "responses": [
      {
        "text": "[INT 9] So you're a cyborg of some kind?  That's awesome.  How do I become a cyborg?",
        "topic": "TALK_EXODII_MERCHANT_Exodize",
        "condition": {
          "and": [
            { "u_has_intelligence": 9 },
            {
              "not": {
                "or": [
                  { "u_has_mission": "RUBIK_ANUS_FETICK" },
                  { "u_has_var": "anusfetick", "type": "mission", "context": "completed", "value": "yes" },
                  { "u_has_trait": "CBM_Interface" }
                ]
              }
            }
          ]
        },
        "effect": { "u_add_var": "u_knows_exodiilore", "type": "knowledge", "context": "exodization", "value": "yes" }
      },
      {
        "text": "I don't have any idea what you mean.  You're kind of a robot, but you're also flesh and blood?",
        "topic": "TALK_EXODII_MERCHANT_Robot2"
      },
      { "text": "What are you meaning 'razzing up our green and brown'?", "topic": "TALK_EXODII_MERCHANT_Purpose2" },
      { "text": "I don't understand a word you're saying.", "topic": "TALK_EXODII_MERCHANT_Dialect" },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Robot2",
    "type": "talk_topic",
    "dynamic_line": "Yeah, that be the soggy leaves, an I'm ken.  A bit o' both, but Rubik were once as a kin, to you be.",
    "//~": "Yeah, that's the basic explanation.  A bit of both now, but I used to be just like you.",
    "responses": [
      { "text": "What are you meaning 'razzing up our green and brown'?", "topic": "TALK_EXODII_MERCHANT_Purpose2" },
      { "text": "Can we talk about something else?  This is confusing.", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "I don't understand a word you're saying.", "topic": "TALK_EXODII_MERCHANT_Dialect" },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Base",
    "type": "talk_topic",
    "dynamic_line": "A junker base, innit?  Pile o' gamp.  Us'll pack it up and sing along soon enough.",
    "//~": "A junker base, obviously.  A jury-rigged mess.  We'll pack it up and leave eventually.",
    "responses": [
      { "text": "Pack it up?  How can you pack up something like this?", "topic": "TALK_EXODII_MERCHANT_Base2" },
      { "text": "Soon?  How long will you still be here?", "topic": "TALK_EXODII_MERCHANT_BaseTimeLeft" },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_BaseTimeLeft",
    "type": "talk_topic",
    "dynamic_line": "Yon aforetime otherland, 'twere a right soggy biscuit.  This'n be crisp an' fresh yet.  Us'n'll try as might stay a fair tick.",
    "//~": "The otherlands we were in before had only little time left, so we can't say for sure.  But this land is as fresh as it can be.",
    "responses": [
      { "text": "Good to know you will be here for a while.", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Base2",
    "type": "talk_topic",
    "dynamic_line": "For an' how, ye be needin' to think wi' them elevens o' directions, kennit?  Us'll open a gate an' wibble-an-wobble.  Same as us came.",
    "//~": "To understand how, you've gotta think eleven-dimensionally.  We'll open up a gate and teleport out, the same as we came.",
    "speaker_effect": {
      "effect": { "u_add_var": "u_knows_exodiilore", "type": "knowledge", "context": "exodii_transdimensional", "value": "yes" }
    },
    "responses": [
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Zomborgs",
    "type": "talk_topic",
    "dynamic_line": "'Tis a good an' yark, sooth.  Them as can have the metal deep in, can be saved for the risen, but it b'ain't a sure course.  Some as comes back anyway, an' some be too much flesh.  The grander lot are no exodii like ol' Rubik, most be friends more kin to thyself.  Us'll harken out and trundle home the pieces for a scrub-and-bucket.",
    "//~": "Ah, good question.  Enough cybernetic implants can keep someone from coming back as a zombie, but it's not a sure thing.  Some come back anyway, and some just don't have enough cybernetics.  Most of them aren't full Exodii like old Rubik, they're more our friends - like you.  Sooner or later we'll get out there, put them down, and bring their parts back for cleaning.",
    "responses": [
      {
        "text": "So you use these cybernetics to prevent zombification, but they don't work perfectly?  Why not?",
        "topic": "TALK_EXODII_MERCHANT_Robot_Make"
      },
      { "text": "Alright.  Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Robot_Make",
    "type": "talk_topic",
    "dynamic_line": "Rubik's not the finest dandy to yark it, an I'm ken, but this'n'll do best as can.  Ol' Rubik an' the stompy-clanker gang be shiny an' fine as can be, for y'see so well, but on the wind-up, the guts be nigh so fleshy as they were afore, twixt as they be with wire and steel.  Ain't none so left as remembers precise how it all goes, and much is boggled from bits and drabs o' a dozen elsewheres.  'Tis a marked fine they work at all, though work they do, and nicely.  Still, 'tis hard to know what'll crumple out from the can.  Those as return, they be… less well made as ol' Rubik.  Some as did work themselves, even, and mayhap against the good old ways.",
    "//": "Lore note: Rubik is an unreliable narrator here, by giving part-truths.  Nothing here is a lie but they're omitting some important details.",
    "//~": "I don't think I'm the best to explain that, but I'll do my best.  Our technology might seem pretty high-tech and well made to you, but on the inside I'm still mostly human meat bound up in wires and steel.  Nobody's left that remembers exactly how it all goes, and much of it is cobbled together from a few different dimensions.  It's a miracle they work as well as they do, but somehow it's actually pretty functional.  Still, it can be hard to know exactly what could go wrong.  The ones who come back as zombies, they're generally less well made than me.  Some even did their own cybernetic conversions, and didn't exactly follow best practices.",
    "responses": [
      {
        "text": "You seem to have a lot of standardized robotic helpers, like those quads.  Is that a different thing?",
        "topic": "TALK_EXODII_MERCHANT_Robot_Quads"
      },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Robot_Quads",
    "type": "talk_topic",
    "dynamic_line": "*'s tone changes slightly, sounding a bit pained.  \"Ah, them be an in-between, more machiner.  Us'n use the softer bits o' other critters for them, an' there be a manufactory for the walker.  A hard but needed choice.\"",
    "//": "Rubik is not giving you the whole story here and will avoid giving you the whole story unless you force them.",
    "responses": [
      { "text": "How long does it take you to make one of these walkers?", "topic": "TALK_EXODII_MERCHANT_Robot_Make_Time" },
      { "text": "Can I buy one of your machines?", "topic": "TALK_EXODII_MERCHANT_Robot_Buy" },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Robot_Make_Time",
    "type": "talk_topic",
    "dynamic_line": "Blinker than a bat, but downer than a cat.  Razzin' up the bits be a trick and some.  The draw-make automates can manufactorize the outer shell, and there be automates for the most o' the tools.  Some bits be more a breakfast o' rats, an' for them, us'n has some artisanals.  Us'n b'ain't on the solid now, so 'tis a longer down.",
    "//~": "Faster than you might guess, but it can still take a while, the hardest part is sourcing the materials for one.  We've got printers that make the body, and others that make the tools and equipment the walker will use.  Some of the special parts have to be manufactured by hand, so we have a small team that does that.  Right now, it's very slow, we're still setting up our operations.",
    "responses": [
      { "text": "Can I buy one of your machines?", "topic": "TALK_EXODII_MERCHANT_Robot_Buy" },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Robot_Buy",
    "type": "talk_topic",
    "dynamic_line": "* sounds thoughtful.  \"This'n can't make a call o' the quarter.  The stompers be a king's necklace, and the manufactory don't run on dreams.  Mayhap when us'n be more on the solid, but for the tick and tumble, no.\"",
    "speaker_effect": { "effect": { "u_add_var": "rubik_offered_robosell", "type": "dialogue", "context": "exodii", "value": "yes" } },
    "//~": "I don't know about that.  Each one we make is very important to our operations here, and they're extremely expensive.  I might be able to sell you one later, but not right now.",
    "//2": "In the future, Rubik should be able to sell the player a robot.  This is a placeholder until that time arrives.",
    "responses": [
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Jobs",
    "type": "talk_topic",
    "dynamic_line": {
      "concatenate": [
        "*pulls out a sheaf of mismatched papers, and leafs through the pages for a second.  Their broad metallic fingers look surprisingly deft and delicate, and incongruous on the otherwise unremarkable looseleaf.  \"Aye, an' there's room for a pop-an-work roun' here.  Rubik's got tassed a lissy, right and clean.\"",
        {
          "u_has_mission": "EXODII_MISSION_CONTACT_HUB",
          "yes": ".  Right and so, mayhap ye should first see about that escoltin'.",
          "no": [
            {
              "compare_int": [ { "global_val": "var", "var_name": "exodii_knows_hub01" }, "==", { "const": 1 } ],
              "yes": [
                {
                  "compare_int": [ { "global_val": "var", "var_name": "warehouse_was_found" }, "==", { "const": 1 } ],
                  "yes": ", but for the right-an-quick, this'n has nothin' t'be tassed for ye.",
                  "no": ".  How'd ye be twigged by a pop-an-squeak?  Or as y'r tassed, a treasure hunt?"
                }
              ],
              "no": ".  How'd ye be twigged by a quick an' round, a nice escoltin' out to a place sommat of curiosity?"
            }
          ]
        }
      ]
    },
    "//~": "Yeah, we're always in need of some help around here.  Here's the list I've got for stuff like this.",
    "responses": [
      {
        "text": "Sounds like you're saying a job?  That's what I'm looking for.  Tell me more.",
        "condition": {
          "and": [
            { "not": { "u_has_mission": "EXODII_MISSION_CONTACT_HUB" } },
            {
              "not": { "compare_int": [ { "global_val": "var", "var_name": "exodii_knows_hub01" }, "==", { "const": 1 } ] }
            }
          ]
        },
        "topic": "TALK_EXODII_MERCHANT_mission_1_intro"
      },
      {
        "text": "Sounds like you're saying a job?  That's what I'm looking for.  Tell me more.",
        "condition": {
          "and": [
            { "not": { "u_has_mission": "EXODII_MISSION_WAREHOUSE" } },
            {
              "not": { "compare_int": [ { "global_val": "var", "var_name": "warehouse_was_found" }, "==", { "const": 1 } ] }
            },
            { "compare_int": [ { "global_val": "var", "var_name": "exodii_knows_hub01" }, "==", { "const": 1 } ] }
          ]
        },
        "topic": "TALK_EXODII_MERCHANT_mission_2_intro"
      },
      { "text": "I'm not interested in anything right now.  I'll see you around.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Dialect",
    "type": "talk_topic",
    "dynamic_line": "Sure as ye can, at least sommat.  Us'n'll try as we might to parley your Anglic, but so ye kennit as us be from otherlands and all, it ain't that simple.",
    "//~": "Sure you can, at least a bit.  I'll do my best to speak your Anglic, but seeing as we're from otherlands and all, it's not that simple.",
    "responses": [
      {
        "text": "[INT or PER 7] How come you speak English, or uh, 'anglic' like that?",
        "condition": { "or": [ { "u_has_intelligence": 7 }, { "u_has_perception": 7 } ] },
        "topic": "TALK_EXODII_MERCHANT_Dialect_Anglic"
      },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Exodus",
    "type": "talk_topic",
    "dynamic_line": "Oh yeah, right and so.  Each and every.  We wander, we make do.  It's a livin'.",
    "//~": "Oh yeah, just that.  Every one of us.  We wander, we make do.  It's a living.",
    "responses": [
      { "text": "What drove you out?", "topic": "TALK_EXODII_MERCHANT_Exodus2" },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Exodus2",
    "type": "talk_topic",
    "dynamic_line": "Same as you will be, an I'm ken.  The Enemy.  The dead.",
    "//~": "Same as you, I'd guess.  The Enemy.  The dead.",
    "responses": [
      {
        "condition": { "u_has_var": "u_knows_exodiilore", "type": "knowledge", "context": "exodii_transdimensional", "value": "yes" },
        "text": "Wait, am I following this right?  You're from a place where this happened before, and you escaped to our world?",
        "topic": "TALK_EXODII_MERCHANT_Exodus3"
      },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Exodus3",
    "type": "talk_topic",
    "dynamic_line": "Just so, aye.  Again an' again, this'n has seen it.  Too many times.",
    "responses": [
      { "text": "Do you know what's going on?  What caused all this?", "topic": "TALK_EXODII_MERCHANT_Talk_CataclysmCause" },
      {
        "text": "Is it always like this?  What's going to happen to us?",
        "topic": "TALK_EXODII_MERCHANT_Talk_CataclysmTimeline"
      },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "I've gotta go.  See you later, Rubik.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Talk_CataclysmCause",
    "type": "talk_topic",
    "dynamic_line": "F'r to wax religious, eh?\n\n*Rubik pauses for a while.  When they start talking again, their voice is slow and more serious than usual.*\n\nThis'n can't tell ye, rightly, but those what have a bottle an' a cork what fits it, they yark about the Enemy.  Most folks got a story like that in their ol' hearth-tales, an I'm ken.  A bad way, from times old, come back.  Ol' Rubik don't know much about that, but something makes them bodies walk and moan, and it don't seem to be somethin' of the way o' our kin.  How it gets in, well, that be anyone's for a guess.  It can come the way we came, wibbling and wobbling, but it don't always.  How it be'd the end for your deadland, Rubik can't say for ye.",
    "//~": "You want to get religious, eh?  I can't tell you for sure, but the people who claim to know, they talk about the Enemy.  Most folks have a fairy tale like that, I think.  A monster from ancient memory, returned.  I don't know much about that, but something makes those bodies walk and moan, and it doesn't seem to be anything human.  How it gets in, well, that's anyone's guess.  It can come the way we came, through a portal, but it doesn't always.  How it was for your world, I can't tell you.",
    "responses": [
      {
        "text": "Wait, it can come like you did?  Did you bring this here?!",
        "topic": "TALK_EXODII_MERCHANT_Talk_CataclysmCause2"
      },
      {
        "text": "Is it always like this?  What's going to happen to us?",
        "topic": "TALK_EXODII_MERCHANT_Talk_CataclysmTimeline"
      },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "I've gotta go.  See you later, Rubik.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Talk_CataclysmCause2",
    "type": "talk_topic",
    "dynamic_line": "No!  Bluster an' clouds, no!\"  Rubik's voice comes haltingly, as if they are picking their words with unusual care for clarity.  \"We done a few things what Rubik don't like to pickle an'… to think about, but never that!  We came after the fall, long after.  Always.\"",
    "responses": [
      {
        "text": "Is it always like this?  What's going to happen to us?",
        "topic": "TALK_EXODII_MERCHANT_Talk_CataclysmTimeline"
      },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "I've gotta go.  See you later, Rubik.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Talk_CataclysmTimeline",
    "type": "talk_topic",
    "dynamic_line": "This be a deadland, kennit.  Spend a farthing at the pastor's house, d'ye razz?  What be left for ye?  The dead'll be in the fields, the forests, all around the green and brown.  Anything what walks, they'll salt 'n fallow, and most'll rise up and rejoin.  Those what don't, the Enemy twists and turns as well.  Every deadland be the same.  Ye've turns and twain, but come as it may, this land be dead.  Though, an I'm ken, ye've quite a few turns and twain to go yet.",
    "//~": "This is a deadland, you see.  Take a moment and look around, know what I mean?  What's left for you?  The dead will be in the fields, the forests, all over the world.  Anything that walks, they'll make it so it doesn't, and most will come back as undead.  Those that don't, the Enemy will change them as well.  Every deadland is the same.  You've years and more to go, but one way or another, this place is dead.  Though, as far as I can see, you've got quite a few years to go yet.",
    "responses": [
      {
        "text": "What then?  What happens after the whole planet dies?  Could it spread to other worlds from here?",
        "topic": "TALK_EXODII_MERCHANT_Talk_CataclysmTimeline2"
      },
      {
        "text": "That's pretty hopeless talk.  I've killed a lot of zombies, I can beat this 'Enemy' too.",
        "topic": "TALK_EXODII_MERCHANT_Talk_CataclysmTimelineTough"
      },
      {
        "text": "Do you know what's going on?  What caused all this?",
        "topic": "TALK_EXODII_MERCHANT_Talk_CataclysmCause"
      },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "I've gotta go.  See you later, Rubik.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Talk_CataclysmTimeline2",
    "type": "talk_topic",
    "dynamic_line": "Spread, aye, through the wibbles, but we ain't ken on how.  After the green an' brown be to grey and black, so t'speak, Rubik be long gone.  On a moment, we folk've sent back a lover's robe or so t'the deadlands what left, but narry have returned.  An I'm ken, there be only one course from here.",
    "//~": "Spread, yes, through the portals, but we don't know how.  After the world is down to dust, I'm long gone.  Once or twice we've send back a probe to the deadlands we left behind, but none have returned.  As far as I know, there's only one way it goes from here.",
    "speaker_effect": {
      "effect": { "u_add_var": "u_knows_exodiilore", "type": "knowledge", "context": "probes_dont_return", "value": "yes" }
    },
    "//": "The probes don't return variable is not yet used but we should store it for when players might be offered the option to try going to previous deadlands, so they can object if they want.",
    "responses": [
      {
        "text": "So travelling off-world is definitely an option.  Or getting to the ISS, maybe stepping off from there.",
        "topic": "TALK_EXODII_MERCHANT_Talk_CataclysmTimeline3"
      },
      {
        "text": "It sounds like a secure base with a safe perimeter could last a long time.  Maybe forever.",
        "topic": "TALK_EXODII_MERCHANT_Talk_CataclysmTimeline3"
      },
      {
        "text": "I haven't seen many zombies underground.  Seems like it might be possible to make a safe base down there.",
        "topic": "TALK_EXODII_MERCHANT_Talk_CataclysmTimeline3"
      },
      {
        "text": "That's pretty hopeless talk.  I've killed a lot of zombies, I can beat this 'Enemy' too.",
        "topic": "TALK_EXODII_MERCHANT_Talk_CataclysmTimelineTough"
      },
      {
        "text": "So what do you do, then?  How do you get out, and how do I do that?",
        "topic": "TALK_EXODII_MERCHANT_Survival"
      },
      {
        "text": "Do you know what's going on?  What caused all this?",
        "topic": "TALK_EXODII_MERCHANT_Talk_CataclysmCause"
      },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "I've gotta go.  See you later, Rubik.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Talk_CataclysmTimeline3",
    "type": "talk_topic",
    "dynamic_line": "If ye be champed t'try, this'n won't stop ye.  Right so, Rubik'll sell ye the pieces ye might use t'do.",
    "//~": "If you want to try it, I won't stop you.  In fact, I'll sell you equipment that might help.",
    "responses": [
      { "text": "Do you know what's going on?  What caused all this?", "topic": "TALK_EXODII_MERCHANT_Talk_CataclysmCause" },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "I've gotta go.  See you later, Rubik.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Talk_CataclysmTimelineTough",
    "type": "talk_topic",
    "//": "While many people face the possibility of destruction with planning and hope, and the Exodii don't consider that unusual, it is a bit of a warning sign to be this overconfident.  That said, as an individual data point it doesn't mean much.",
    "speaker_effect": { "effect": { "u_adjust_var": "exodii_psychosis_judgment", "type": "counter", "context": "Exodii", "adjustment": 2 } },
    "dynamic_line": "Fine an' fine.  Rubik'll clarion for ye when ye stand o'er the garried trick o' Anubine hisself.",
    "//~": "You do that then.  I'll cheer for you when you stand over the vanquished corpse of the devil himself.",
    "responses": [
      { "text": "Do you know what's going on?  What caused all this?", "topic": "TALK_EXODII_MERCHANT_Talk_CataclysmCause" },
      { "text": "Can we talk about something else?", "topic": "TALK_EXODII_MERCHANT_Talk" },
      { "text": "I've gotta go.  See you later, Rubik.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Dialect_Anglic",
    "type": "talk_topic",
    "dynamic_line": "Be an' as us're a dock climber from ol' Upper Landin', this'll be our way o' yarkin'.  All an' all from our green an' brown yark like this'n.",
    "//~": "I'm a lowlife from old Upper Landing, this is my way of talking.  Everyone from where I come from talks like this.",
    "responses": [
      { "text": "Tell me about \"ol' Upper Landing\".  What was your home like?", "topic": "TALK_EXODII_MERCHANT_Home" },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Scythean",
    "type": "talk_topic",
    "dynamic_line": "Ha!  A new string and beans, an I'm ken.  Latched and keyed in the bright shine o' the deadland afore this'n.  He be a thing o' fire and bronze, an' the node appreciates his grit.  \"A cnight of old, clade in shining steel, leading the hoste onward to glorie,\" as 'twere.  This'n finds him an apt one to give rede.  To command in battle, that's t'yark.",
    "//~": "Ha!  A new part of our crew.  Signed up early on in the world we were in before.  He's a really tough guy, and the node appreciates his grit.  <recites some poetry>, as 'twere.  I think he's pretty good as a military commander.",
    "responses": [
      {
        "text": "You know, every so often you talk normally and I realize you could probably drop the whole accent if you wanted to.",
        "topic": "TALK_EXODII_MERCHANT_Anglic_Tease"
      },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      {
        "text": "I think I've had about enough of trying to figure out what you're talking about, see you later.",
        "topic": "TALK_DONE"
      }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Anglic_Tease",
    "type": "talk_topic",
    "dynamic_line": "Mayhap, but where'd be the fun in that?  Asides, quoth poetry is one thing, but changin' this'n's whole yark for always takes a lot o' practice.",
    "//~": "Maybe, but where's the fun in that?  Besides, quoting poetry is one thing, but changing the way I speak all the time takes a lot of practice.",
    "responses": [
      {
        "text": "What was it you were saying before, about the mission you had for me?",
        "topic": "TALK_EXODII_MERCHANT_mission_1_intro"
      },
      { "text": "Well, a person can get sick of trying to piece it together.  See you later.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Meetcute",
    "type": "talk_topic",
    "dynamic_line": "Aye.  Ye kennit, when two of a sort happen upon each other as per chance, an' find a liking to another?  'Tis a bit o' Anglic yark.",
    "//~": "Right.  You see, it's when two compatible people randomly happen into each other and take a liking to one another.  It's a bit of Anglic slang.",
    "responses": [
      {
        "text": "Yeah, that's what I thought it meant, just… nevermind.  What were you saying about the job?",
        "topic": "TALK_EXODII_MERCHANT_mission_1_intro"
      },
      { "text": "I don't know what kind of game you're playing, but I'm out for a bit.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Hempen1",
    "type": "talk_topic",
    "dynamic_line": "*seems to become wistful for a moment.  \"Harks this'n yonder, right so.  'Tis a bit o' t'ol' King's Landing right there, kennit, yarkin' from back when Rubik were nigh smaller than a kelpie.  It…\"  Rubik's gravelly voice falters.  \"Ah, 'tis mightily tassed to harken back yonder.  Mayhap another time.",
    "//~": "That takes me way back.  That's a bit of the old King's Landing right there, you know, calling back from when I was just little.  It… ah, it's really hard for me to think about those old days.  Maybe another time.",
    "responses": [
      { "text": "Maybe later then.  What were you saying about the job?", "topic": "TALK_EXODII_MERCHANT_mission_1_intro" },
      { "text": "You know, I think it'd be best if I just got going.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Purpose",
    "type": "talk_topic",
    "dynamic_line": "Makin' do, makin' do, same as you, an I'm ken.  Last home got a bit too dead 'n putrid roun' the edges, like.  Happens to the best of 'em.  Caught a jibber that made us ken 'bout your place here, fired up the ol' wibble-wammles and boom!  Now it's all tick-tock on a zimmer, here we be.  Got a good timing this time, I razz you only been dead a few days when we wobbled in.  Freshest corpse this'n's seen in a kitchen sink.",
    "//~": "Making do, making do, same as you I'd imagine.  Our last home got too dead and putrid around the edges, basically.  It happens to the best of them.  We caught some news that brought us along to your place here, fired up the engines, and boom!  Now, quick as can be, here we are.  We got a good timing this time, seems to me you'd only been dead a few days when we got here.  Freshest corpse I've seen in a while.",
    "responses": [
      { "text": "…what?", "topic": "TALK_EXODII_MERCHANT_Purpose_Dialect" },
      {
        "text": "[INT or PER 9] Where did you come from then?  Are you aliens or something?",
        "condition": { "or": [ { "u_has_intelligence": 9 }, { "u_has_perception": 9 } ] },
        "topic": "TALK_EXODII_MERCHANT_Aliens"
      },
      { "text": "Is there anything else you want from this place?", "topic": "TALK_EXODII_MERCHANT_Purpose2" },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Purpose_Dialect",
    "type": "talk_topic",
    "dynamic_line": "Us're here to live and breathe, kennit?  After our last otherland got a li'l too dead an' all.  So, us'n came to a new place.  This'n.  An I'm ken, it's not so long dead round here jus' yet.",
    "//~": "We're just here to survive, you understand?  Our last world got too overrun with undead.  So, we came to a new world.  This one.  If I'm not mistaken, it's not so long dead around here just yet.",
    "responses": [
      {
        "text": "[INT or PER 7] Otherland?  Are you aliens or something?",
        "condition": { "or": [ { "u_has_intelligence": 7 }, { "u_has_perception": 7 } ] },
        "topic": "TALK_EXODII_MERCHANT_Aliens"
      },
      { "text": "Is there anything else you want from this place?", "topic": "TALK_EXODII_MERCHANT_Purpose2" },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Purpose2",
    "type": "talk_topic",
    "dynamic_line": "Aside from jus' livin' in such a cozy nook?  Us be minin', ye kennit.  Pickin' the scraps, seein' if for your otherland has any tech worth an upside-down.  No sense lettin' good scraps go to waste.  If we’re lucky, pickin' a few new Exodii afore we wobble out.  Pickin' up the pieces of our sweet, shattered dreams, suchlike.",
    "//~": "Aside from just having a safe place to live?  We're here to mine, you understand.  Picking the scraps, seeing if this world has any tech worth reverse engineering.  No sense letting good scraps go to waste.  If we're lucky, maybe we'll get some new Exodii before we teleport out.  Pickin' up the pieces of our sweet, shattered dreams, such as they are.",
    "responses": [
      {
        "text": "What do you mean 'go to waste'?  The zombies aren't using the scrap, and there's plenty to go around.",
        "topic": "TALK_EXODII_MERCHANT_Purpose3"
      },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Purpose3",
    "type": "talk_topic",
    "dynamic_line": "This'n be a deadland, an I'm ken.  You gots you a case o' the willies ain't gonna sing along.  No cure for these rats and fleas.",
    "//~": "This is a deadland, don't you see?  You've already got an infestation and it's not going away.  There's no cure for the zombies.",
    "responses": [
      { "text": "What the hell does that mean?", "topic": "TALK_EXODII_MERCHANT_Purpose4" },
      {
        "text": "[INT 8] Are you saying you think we're doomed?  Why would you have come here if there wasn’t some way to survive?",
        "condition": { "u_has_intelligence": 8 },
        "topic": "TALK_EXODII_MERCHANT_Survival"
      },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Purpose4",
    "type": "talk_topic",
    "dynamic_line": "Means what it means.  Your land's a deadun', still kickin' is all.",
    "//~": "It means what it means.  Your land's dead already, it's just still kicking is all.",
    "responses": [
      {
        "text": "Are you saying you think we're doomed?  Why would you have come here if there wasn’t some way to survive?",
        "topic": "TALK_EXODII_MERCHANT_Survival"
      },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Survival",
    "type": "talk_topic",
    "dynamic_line": "Oh, us can wobble along as needs.  Sends the scrap back, brings in the foods, and shakes off a willie or three, kennit.  No good for you, won’t take too much meat-an'-bone.",
    "//~": "Oh, we can teleport along as we need to.  We send the scrap along, then the food, and shake off some baddies, you understand.  It's no good for you though, it won't take too much flesh and bone.",
    "speaker_effect": { "effect": { "u_add_var": "u_knows_exodiilore", "type": "knowledge", "context": "exodization", "value": "yes" } },
    "responses": [
      {
        "text": "Well… could you help me fix that?",
        "topic": "TALK_EXODII_MERCHANT_Exodize",
        "condition": {
          "not": {
            "or": [
              { "u_has_mission": "RUBIK_ANUS_FETICK" },
              { "u_has_var": "anusfetick", "type": "mission", "context": "completed", "value": "yes" },
              { "u_has_trait": "CBM_Interface" }
            ]
          }
        }
      },
      {
        "text": "Wait.  I thought you were still flesh and bone, under that metal.",
        "topic": "TALK_EXODII_MERCHANT_Survival2",
        "condition": { "u_has_var": "u_knows_exodiilore", "type": "knowledge", "context": "rubik_is_cyborg", "value": "yes" }
      },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Survival2",
    "type": "talk_topic",
    "dynamic_line": "Haha, not mostly, mate.  Not worth riskin’ the willies, innit?  I keep what's Rubik, but the rest is all solid.",
    "//~": "Haha, not mostly, mate.  It's not worth risking the side effects, you see?  I keep the parts of me that make me Rubik, but the rest is all solid.",
    "responses": [
      {
        "text": "What?  I mean, really, it seems like you're being hard to understand on purpose.  What are the 'willies'?",
        "topic": "TALK_EXODII_MERCHANT_Survival3"
      },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Survival3",
    "type": "talk_topic",
    "dynamic_line": "Oh, sure an it's bagged in a coffer an' all that.  That is t'say, this'n does get a wipe o' a grinny t'see the perplexion upon a visage, an I'm ken.*  You're pretty sure you hear a faint chuckle in the metallic voice.  *What I be meanin' is at, for my body were t'be meat-an'-bone, the tool what we be usin' for t'travel to an' fro, it rips up the meat an' leaves it a right mess.  A bit can come along for a right fun, but too much… on a time, an earlier Rubik felt a spot o' those willies, an' this'n be not in the farrier's hut for t'try it again.",
    "//~": "Oh, sure, that's a fair assessment.  I mean, I do get a bit of a laugh out of the look on your face sometimes.  What I'm saying is, if my body were flesh and bone, the device we use to travel around dimensions would rip up the meat and leave me quite a mess.  We can take a bit, but too much… once time, I felt a bit of that, and I'm not in any rush to try it again.",
    "responses": [
      {
        "text": "What?  I mean, really, it seems like you're being hard to understand on purpose.",
        "topic": "TALK_EXODII_MERCHANT_Survival3"
      },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Tech",
    "type": "talk_topic",
    "dynamic_line": "Not to me it don't.  We ain't tassed from around here though.  Looks fine an' fine to you I'd razz.",
    "//~": "Not to me it doesn't.  We didn't get it from around here though.  I bet it looks pretty nice to you.",
    "responses": [
      {
        "text": "[INT or PER 7] Not from around here?  Are you aliens or something?",
        "condition": { "or": [ { "u_has_intelligence": 7 }, { "u_has_perception": 7 } ] },
        "topic": "TALK_EXODII_MERCHANT_Aliens"
      },
      { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
      { "text": "Well, I'd better be going.  Bye.", "topic": "TALK_DONE" }
    ]
  },
  {
    "id": "TALK_EXODII_MERCHANT_Bionic_Install",
    "type": "talk_topic",
    "dynamic_line": "If'n you're full an' plenty, this'n's happy to make the call, for a shiny farthing.",
    "//~": "If you've got what I need, I'm happy to call ahead and make the arrangements, for a fee.",
    "responses": [
      { "text": "I've got some stuff I'd like to install.", "topic": "TALK_DONE", "effect": "bionic_install" },
      { "text": "Would you be able to take out one of my implants?", "topic": "TALK_DONE", "effect": "bionic_remove" }
    ]
  }
]
