1[
2  {
3    "//": [
4      "The responses here are currently merged with the built in responses as not all",
5      "responses for the topics here have been moved to json.",
6      "Some of the topics here can be moved to NPC type specific files later."
7    ],
8    "type": "talk_topic",
9    "//2": "Generic responses for NPCs that can have missions",
10    "id": [
11      "TALK_SHELTER",
12      "TALK_EVAC_MERCHANT",
13      "TALK_ARSONIST",
14      "TALK_OLD_GUARD_REP",
15      "TALK_EVAC_GUARD2",
16      "TALK_RANCH_FOREMAN",
17      "TALK_RANCH_CROP_OVERSEER",
18      "TALK_CITY_COP"
19    ],
20    "responses": [
21      { "text": "About that job…", "topic": "TALK_MISSION_INQUIRE", "condition": "has_assigned_mission" },
22      {
23        "text": "About one of those jobs…",
24        "topic": "TALK_MISSION_LIST_ASSIGNED",
25        "condition": "has_many_assigned_missions"
26      }
27    ]
28  },
29  {
30    "id": [ "TALK_MISSION_DESCRIBE_URGENT", "TALK_MISSION_DESCRIBE" ],
31    "type": "talk_topic",
32    "responses": [
33      { "text": "What's the matter?", "topic": "TALK_MISSION_OFFER" },
34      { "text": "I don't care.", "topic": "TALK_MISSION_REJECTED" }
35    ]
36  },
37  {
38    "id": "TALK_MISSION_LIST",
39    "type": "talk_topic",
40    "dynamic_line": {
41      "has_no_available_mission": {
42        "has_no_assigned_mission": "I don't have any jobs for you.",
43        "no": { "has_many_assigned_missions": "I don't have any more jobs for you.", "no": "I don't have any more jobs for you." }
44      },
45      "no": {
46        "has_many_available_missions": {
47          "has_no_assigned_mission": "I have other jobs for you.  Want to hear about them?",
48          "no": {
49            "has_many_assigned_missions": "I have more jobs for you.  Want to hear about them?",
50            "no": "I have other jobs for you.  Want to hear about them?"
51          }
52        },
53        "no": {
54          "has_no_assigned_mission": "I have a job for you.  Want to hear about it?",
55          "no": {
56            "has_many_assigned_missions": "I just have one job for you.  Want to hear about it?",
57            "no": "I just have one job for you.  Want to hear about it?"
58          }
59        }
60      }
61    },
62    "responses": [
63      { "text": "Oh, okay.", "topic": "TALK_NONE", "condition": "has_no_available_mission" },
64      {
65        "text": "Never mind, I'm not interested.",
66        "topic": "TALK_NONE",
67        "condition": { "not": "has_no_available_mission" }
68      }
69    ]
70  },
71  {
72    "id": "TALK_MISSION_LIST_ASSIGNED",
73    "type": "talk_topic",
74    "dynamic_line": {
75      "has_no_assigned_mission": "You're not working on anything for me now.",
76      "no": { "has_many_assigned_missions": "Which job?", "no": "What about it?" }
77    },
78    "responses": [ { "text": "Never mind.", "topic": "TALK_NONE" } ]
79  },
80  {
81    "id": "TALK_MISSION_OFFER",
82    "type": "talk_topic",
83    "responses": [
84      { "text": "I'll do it!", "topic": "TALK_MISSION_ACCEPTED", "effect": "assign_mission" },
85      { "text": "Not interested.", "topic": "TALK_MISSION_REJECTED" }
86    ]
87  },
88  {
89    "id": "TALK_MISSION_ACCEPTED",
90    "type": "talk_topic",
91    "responses": [
92      { "text": "Not a problem.", "topic": "TALK_NONE" },
93      { "text": "Got any advice?", "topic": "TALK_MISSION_ADVICE" },
94      { "text": "Can you share some equipment?", "topic": "TALK_SHARE_EQUIPMENT" },
95      { "text": "I'll be back soon!", "topic": "TALK_DONE" }
96    ]
97  },
98  {
99    "id": "TALK_MISSION_ADVICE",
100    "type": "talk_topic",
101    "responses": [ { "text": "Sounds good, thanks.", "topic": "TALK_NONE" }, { "text": "Sounds good.  Bye!", "topic": "TALK_DONE" } ]
102  },
103  {
104    "id": "TALK_MISSION_REJECTED",
105    "type": "talk_topic",
106    "responses": [ { "text": "I'm sorry.", "topic": "TALK_NONE" }, { "text": "Whatever.  Bye.", "topic": "TALK_DONE" } ]
107  },
108  {
109    "id": "TALK_MISSION_INQUIRE",
110    "type": "talk_topic",
111    "responses": [
112      {
113        "text": "I'm sorry…  I failed.",
114        "condition": "mission_failed",
115        "topic": "TALK_MISSION_FAILURE",
116        "opinion": { "trust": -1, "value": -1, "anger": 1 }
117      },
118      {
119        "text": "Not yet.",
120        "condition": "mission_failed",
121        "trial": { "type": "LIE", "difficulty": 10, "mod": [ [ "TRUST", 3 ] ] },
122        "success": { "topic": "TALK_NONE" },
123        "failure": { "topic": "TALK_MISSION_FAILURE", "opinion": { "trust": -3, "value": -1, "anger": 2 } }
124      },
125      { "text": "Not yet.", "condition": "mission_incomplete", "topic": "TALK_NONE" },
126      {
127        "truefalsetext": { "true": "I killed him.", "false": "I killed it.", "condition": { "mission_goal": "MGOAL_ASSASSINATE" } },
128        "condition": {
129          "and": [
130            "mission_incomplete",
131            {
132              "or": [
133                { "mission_goal": "MGOAL_ASSASSINATE" },
134                { "mission_goal": "MGOAL_KILL_MONSTER" },
135                { "mission_goal": "MGOAL_KILL_MONSTER_SPEC" },
136                { "mission_goal": "MGOAL_KILL_MONSTER_TYPE" }
137              ]
138            }
139          ]
140        },
141        "trial": { "type": "LIE", "difficulty": 10, "mod": [ [ "TRUST", 5 ] ] },
142        "success": { "topic": "TALK_MISSION_SUCCESS", "effect": "mission_success" },
143        "failure": { "topic": "TALK_MISSION_SUCCESS_LIE", "opinion": { "trust": -5, "value": -1, "anger": 5 } }
144      },
145      { "text": "No.  I'll get back to it, bye!", "condition": "mission_incomplete", "topic": "TALK_NONE" },
146      {
147        "text": "Yup!  Here it is!",
148        "topic": "TALK_MISSION_SUCCESS",
149        "condition": {
150          "and": [
151            "mission_complete",
152            {
153              "or": [
154                { "mission_goal": "MGOAL_FIND_ITEM" },
155                { "mission_goal": "MGOAL_FIND_ANY_ITEM" },
156                { "mission_goal": "MGOAL_FIND_ITEM_GROUP" }
157              ]
158            }
159          ]
160        },
161        "switch": true,
162        "effect": "mission_success"
163      },
164      {
165        "text": "We're here!",
166        "topic": "TALK_MISSION_SUCCESS",
167        "condition": { "and": [ "mission_complete", { "mission_goal": "MGOAL_GO_TO_TYPE" } ] },
168        "switch": true,
169        "effect": "mission_success"
170      },
171      {
172        "text": "Here I am.",
173        "topic": "TALK_MISSION_SUCCESS",
174        "condition": { "and": [ { "or": [ { "mission_goal": "MGOAL_GO_TO" }, { "mission_goal": "MGOAL_FIND_NPC" } ] }, "mission_complete" ] },
175        "switch": true,
176        "effect": "mission_success"
177      },
178      {
179        "text": "I talked to them.",
180        "topic": "TALK_MISSION_SUCCESS",
181        "condition": { "and": [ "mission_complete", { "mission_goal": "MGOAL_TALK_TO_NPC" } ] },
182        "switch": true,
183        "effect": "mission_success"
184      },
185      {
186        "text": "Here it is!",
187        "topic": "TALK_MISSION_SUCCESS",
188        "condition": { "and": [ "mission_complete", { "mission_goal": "MGOAL_FIND_MONSTER" } ] },
189        "switch": true,
190        "effect": "mission_success"
191      },
192      {
193        "text": "Justice has been served.",
194        "topic": "TALK_MISSION_SUCCESS",
195        "condition": { "and": [ "mission_complete", { "mission_goal": "MGOAL_ASSASSINATE" } ] },
196        "switch": true,
197        "effect": "mission_success"
198      },
199      {
200        "text": "I killed it.",
201        "topic": "TALK_MISSION_SUCCESS",
202        "condition": { "and": [ "mission_complete", { "mission_goal": "MGOAL_KILL_MONSTER" } ] },
203        "switch": true,
204        "effect": "mission_success"
205      },
206      {
207        "text": "I killed them.  All of them.",
208        "topic": "TALK_MISSION_SUCCESS",
209        "condition": {
210          "and": [
211            { "or": [ { "mission_goal": "MGOAL_KILL_MONSTER_SPEC" }, { "mission_goal": "MGOAL_KILL_MONSTER_TYPE" } ] },
212            "mission_complete"
213          ]
214        },
215        "switch": true,
216        "effect": "mission_success"
217      },
218      {
219        "text": "I brought 'em.",
220        "topic": "TALK_MISSION_SUCCESS",
221        "condition": {
222          "and": [ "mission_complete", { "mission_goal": "MGOAL_RECRUIT_NPC" }, { "mission_goal": "MGOAL_RECRUIT_NPC_CLASS" } ]
223        },
224        "switch": true,
225        "effect": "mission_success"
226      },
227      {
228        "text": "I've taken care of it",
229        "topic": "TALK_MISSION_SUCCESS",
230        "condition": { "and": [ "mission_complete", { "mission_goal": "MGOAL_COMPUTER_TOGGLE" } ] },
231        "switch": true,
232        "effect": "mission_success"
233      },
234      {
235        "text": "I found it, but I'm keeping it, and I'll find you another one.  Let's talk about something else.",
236        "topic": "TALK_NONE",
237        "condition": {
238          "and": [ { "or": [ { "mission_goal": "MGOAL_FIND_ITEM" }, { "mission_goal": "MGOAL_FIND_ANY_ITEM" } ] }, "mission_complete" ]
239        },
240        "effect": { "npc_add_effect": "npc_player_still_looking", "duration": 43200 }
241      },
242      {
243        "text": "I found it, but I'm keeping it, and I'll find you another one.  Bye!",
244        "topic": "TALK_DONE",
245        "condition": {
246          "and": [ { "or": [ { "mission_goal": "MGOAL_FIND_ITEM" }, { "mission_goal": "MGOAL_FIND_ANY_ITEM" } ] }, "mission_complete" ]
247        },
248        "effect": { "npc_add_effect": "npc_player_still_looking", "duration": 43200 }
249      },
250      {
251        "text": "Mission success!  I don't know what else to say.",
252        "topic": "TALK_MISSION_SUCCESS",
253        "condition": "mission_complete",
254        "switch": true,
255        "default": true,
256        "effect": "mission_success"
257      }
258    ]
259  },
260  {
261    "id": "TALK_MISSION_SUCCESS",
262    "type": "talk_topic",
263    "responses": [
264      {
265        "text": "Glad to help.  I need no payment.",
266        "topic": "TALK_NONE",
267        "condition": "mission_has_generic_rewards",
268        "effect": "clear_mission",
269        "mission_opinion": { "trust": 4, "value": 3 },
270        "opinion": { "fear": -1, "anger": -1 }
271      },
272      {
273        "text": "How about some items as payment?",
274        "topic": "TALK_MISSION_REWARD",
275        "condition": { "and": [ "mission_has_generic_rewards", { "not": "npc_friend" } ] },
276        "effect": "mission_reward"
277      },
278      {
279        "text": "Maybe you can teach me something as payment?",
280        "topic": "TALK_TRAIN",
281        "condition": { "and": [ "mission_has_generic_rewards", { "or": [ "npc_train_skills", "npc_train_styles" ] } ] }
282      },
283      {
284        "text": "Glad to help.  I need no payment.  Bye!",
285        "topic": "TALK_DONE",
286        "condition": "mission_has_generic_rewards",
287        "effect": "clear_mission",
288        "mission_opinion": { "trust": 4, "value": 3 },
289        "opinion": { "fear": -1, "anger": -1 }
290      },
291      {
292        "text": "Glad to help.",
293        "topic": "TALK_NONE",
294        "condition": { "not": "mission_has_generic_rewards" },
295        "effect": "clear_mission",
296        "mission_opinion": { "trust": 4, "value": 3 },
297        "opinion": { "fear": -1, "anger": -1 }
298      },
299      {
300        "text": "Glad to help.  Bye!",
301        "topic": "TALK_DONE",
302        "condition": { "not": "mission_has_generic_rewards" },
303        "effect": "clear_mission",
304        "mission_opinion": { "trust": 4, "value": 3 },
305        "opinion": { "fear": -1, "anger": -1 }
306      }
307    ]
308  },
309  {
310    "id": "TALK_MISSION_SUCCESS_LIE",
311    "type": "talk_topic",
312    "responses": [ { "text": "Well, um, sorry.", "topic": "TALK_NONE", "effect": "clear_mission" } ]
313  },
314  {
315    "id": "TALK_MISSION_FAILURE",
316    "type": "talk_topic",
317    "responses": [ { "text": "I'm sorry.  I did what I could.", "topic": "TALK_NONE", "effect": "clear_mission" } ]
318  },
319  {
320    "id": "TALK_MISSION_REWARD",
321    "type": "talk_topic",
322    "dynamic_line": "Sure, here you go!",
323    "responses": [
324      { "text": "Thank you.", "topic": "TALK_NONE", "effect": "clear_mission" },
325      { "text": "Thanks, bye.", "topic": "TALK_DONE", "effect": "clear_mission" }
326    ]
327  }
328]
329