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