summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--PKGBUILD34
-rw-r--r--npc-01_isherwood-update.patch425
-rw-r--r--npc-02_isherwood-duplicate-mission.patch35
-rw-r--r--npc-02_tacoma-update.patch427
-rw-r--r--npc-03_godco-update.patch565
-rw-r--r--npc-04_dialogue-fixes.patch (renamed from npc-01_dialogue-fixes.patch)0
-rw-r--r--terrain-02_tacoma-barn-door-position.patch11
7 files changed, 1435 insertions, 62 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 67b2447..1b87ccb 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -15,7 +15,7 @@ pkgname=cataclysm-bn
_pkgname=Cataclysm-BN-cbn-experimental
pkgver=202201182023
_pkgver=2022-01-18-2023
-pkgrel=1
+pkgrel=2
pkgdesc="A post-apocalyptic roguelike."
#url="http://cataclysmrl.blogspot.com/"
#url="http://www.cataclysm.glyphgryph.com/"
@@ -55,12 +55,13 @@ source=("$pkgname-$_pkgver.tar.gz::https://github.com/cataclysmbnteam/Cataclysm-
"mutations-01_nerf-lightstep.patch"
"mutations-02_fix-evac3-background-visible.patch"
- "npc-01_dialogue-fixes.patch"
- "npc-02_isherwood-duplicate-mission.patch"
+ "npc-01_isherwood-update.patch"
+ "npc-02_tacoma-update.patch"
+ "npc-03_godco-update.patch"
+ "npc-04_dialogue-fixes.patch"
"recipes-01_4570-dragon-can-be-dismantled.patch"
- "terrain-02_tacoma-barn-door-position.patch"
"terrain-03_tacoma-clinic-add-missing-floor.patch"
"terrain-04_lumbermill-gasoline-not-spilled.patch"
"terrain-05_community-garden-fertilizer-not-spilled.patch"
@@ -119,10 +120,11 @@ b2sums=('c2ba9f8cf1dd9448dfc5f918d0459ae4145ade15821a3024d446b506c5f7da72bab1043
'8bb71fbec3deece7bd0f9084e20ef5853812e71e2ebcd43011f7779499cbb99c7a8bc5c618d8ef9f55e5ce54c9fc4a5f4d3167bb63f9821a68889f9f3e1386f5'
'08f4746882b927bdff6b728630cf1e04a2b79924f694ca2d841e3115c3399feb87a8d363e4d2a0f59179c109cb6be6e840f912aadd44abb0bdb35afd2838cc4d'
'ab35d6663b864449d46da4a9e1c51e11956ff4c38e16db58c831b71f7b964fc25b0283122dbc8aa0549f240f01c4a910fb5c6c82937258c6b736c05b54bcf768'
+ '24c5f9ee5553b66ac937785b3312378adbca096888b05da8b0cdc9c0586ee51e9a3754615cc03a659cfe70ba2f48f7ce0359025c816c887c7691424c685f5f96'
+ '29402b22f8d7cf4c038b938aa92bbda9993751cba3e0cff05f9206651ba4ded44cfb9c18a06647c44b81398863aeb7c45e771972135fc804a08e5f45add40812'
+ 'e51bf3f26ed46d3572959a33cee680728dfff361195d1594eabe609d0e741d63c641c9423c33ebadf305a6b3443f348db2bf7120c20c5f5f77f38864e1323786'
'adcf0b46ad57390488b3932910fba5a5be8152f91b45864bf078a2b8d92dc89e9944c320dafb7a0d4786e1fce48bedea714d671feefe565ffbbb74baca21d98e'
- '339e48c2ce8d98852445839a71217a62af47af541c9e7573f21112c8b0bd5409b676774d2efd8665fe7f4cb5e6251467f77b9d9fad43a4c1fd61b405ae5e9831'
'71768899e631c5293d5fb8bcb237ca54f880913b6400d445c8a0322cb69801fe85b94b1293306e2f33fac6067cbd892c4665b9563bdc9ff4df5be245c7e7108f'
- 'ce0dd5121e814e0fcd79d68362c80a83bfe70f970be9d5d6f6fe5f6a56ed3f041be4d560aaf02225c3ce7c457dc63bc3adf0709d4b89a81c18184ff5341eb5d3'
'b8a64accada87ee5be989c5307805610c9b5c0327bc107aab237ac3225dd9e4c51b6c79a2a7de15fe187d3c32d7cbe1c462f9b0e9fb5d5a55a74236c7061e96e'
'85aeb5920ee5879848be4057324153a077fe907bed527ed8f9b80a3c5ee1ef64786f63ee2999f5ba74e80a43e99ded3280ce27759c1f7b73259a6e2b5e584aa8'
'58a94409205f7b670ab5745b8cbc234a38efd6a6217cef4efb7e397f091092e3e0c7790706b0a42accaa83d7509b8e244a98b9f0ba78349ee85f3164745c3501'
@@ -267,14 +269,18 @@ prepare() {
# # npc fixes
echo "Applying NPC fixes"
+ # Port over updates to Isherwood Farm
+ patch -Np1 -i "$srcdir"/npc-01_isherwood-update.patch
+
+ # Port over updates to Tacoma Commune
+ patch -Np1 -i "$srcdir"/npc-02_tacoma-update.patch
+
+ # Port over updates to New England Church Community
+ patch -Np1 -i "$srcdir"/npc-03_godco-update.patch
+
# Assorted typos in NPC dialogue.
# Fix Jack Isherwood mission listing 10 jars, when it is actually 20.
- patch -Np1 -i "$srcdir"/npc-01_dialogue-fixes.patch
-
- echo "Applying NPC fixes"
- # Jesse Isherwood's second mission is defined twice for some reason.
- # Remove the version that is just a mashup of mission one and two.
- patch -Np1 -i "$srcdir"/npc-02_isherwood-duplicate-mission.patch
+ patch -Np1 -i "$srcdir"/npc-04_dialogue-fixes.patch
# # recipe fixes
@@ -285,10 +291,6 @@ prepare() {
# # terrain and overmap fixes
echo "Applying terrain and overmap fixes"
- # Fix tacoma barn doors being placed in the same spot twice:
- # This enables the southeast barn door to be placed properly.
- patch -Np1 -i "$srcdir"/terrain-02_tacoma-barn-door-position.patch
-
# Fix missing floor in the tacoma clinic:
# The hospital is still a mess. :/
patch -Np1 -i "$srcdir"/terrain-03_tacoma-clinic-add-missing-floor.patch
diff --git a/npc-01_isherwood-update.patch b/npc-01_isherwood-update.patch
new file mode 100644
index 0000000..6e34964
--- /dev/null
+++ b/npc-01_isherwood-update.patch
@@ -0,0 +1,425 @@
+--- a/data/json/npcs/isherwood_farm/NPC_Barry_Isherwood.json
++++ b/data/json/npcs/isherwood_farm/NPC_Barry_Isherwood.json
+@@ -64,7 +64,7 @@
+ {
+ "type": "talk_topic",
+ "id": "TALK_ISHERWOOD_BARRY_TOWER",
+- "dynamic_line": [ "Yeah, I think we need to talk about it, but I'm not ready yet. Let me reclaim my life for a while. " ],
++ "dynamic_line": [ "Yeah, I think we need to talk about it, but I'm not ready yet. Let me reclaim my life for a while." ],
+ "responses": [ { "text": "Sounds good, Barry.", "topic": "TALK_DONE" } ]
+ },
+ {
+@@ -77,7 +77,7 @@
+ "destination": "dairy_farm_isherwood_W",
+ "start": {
+ "effect": [ { "u_add_var": "u_have_barry_escape", "type": "general", "context": "meeting", "value": "yes" } ],
+- "assign_mission_target": { "om_terrain": "dairy_farm_isherwood_W", "reveal_radius": 3 }
++ "assign_mission_target": { "om_terrain": "dairy_farm_isherwood_W", "om_special": "Isherwood Farm", "reveal_radius": 3, "search_range": 240 }
+ },
+ "end": {
+ "opinion": { "trust": 5, "value": 5 },
+--- a/data/json/npcs/isherwood_farm/NPC_Carlos_Isherwood.json
++++ b/data/json/npcs/isherwood_farm/NPC_Carlos_Isherwood.json
+@@ -28,7 +28,7 @@
+ "skill": "ALL",
+ "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "constant": -2 }, { "one_in": 4 } ] } ] }
+ },
+- { "skill": "barter", "bonus": { "rng": [ 2, 4 ] } },
++ { "skill": "speech", "bonus": { "rng": [ 2, 4 ] } },
+ { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } },
+ { "skill": "survival", "bonus": { "rng": [ 7, 10 ] } },
+ { "skill": "gun", "bonus": { "rng": [ 4, 8 ] } },
+@@ -47,14 +47,14 @@
+ "responses": [
+ {
+ "text": "Yeah, I'm a Marshal, what are you going to do about it?",
+- "topic": "TALK_LEAVE_NOW",
++ "topic": "TALK_LEAVE_NOW_MARSHAL",
+ "effect": "hostile",
+ "opinion": { "trust": -20, "value": -20 },
+ "condition": { "u_is_wearing": "badge_marshal" }
+ },
+ {
+ "text": "…",
+- "topic": "TALK_LEAVE_NOW",
++ "topic": "TALK_LEAVE_NOW_MARSHAL",
+ "opinion": { "trust": -20, "value": -20 },
+ "condition": { "u_is_wearing": "badge_marshal" }
+ },
+@@ -144,14 +144,8 @@
+ },
+ {
+ "type": "talk_topic",
+- "id": "TALK_LEAVE_NOW",
+- "dynamic_line": "You should get off my farm, I won't deal with a government stooge.",
+- "responses": [ { "text": "…", "topic": "TALK_DONE" } ]
+- },
+- {
+- "type": "talk_topic",
+ "id": "TALK_ISHERWOOD_CARLOS_TOPICS",
+- "dynamic_line": "Go on...",
++ "dynamic_line": "Go on…",
+ "responses": [
+ {
+ "text": "I heard about Barry, can you tell me what captured him?",
+--- a/data/json/npcs/isherwood_farm/NPC_Chris_Isherwood.json
++++ b/data/json/npcs/isherwood_farm/NPC_Chris_Isherwood.json
+@@ -28,7 +28,7 @@
+ "skill": "ALL",
+ "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "constant": -2 }, { "one_in": 4 } ] } ] }
+ },
+- { "skill": "barter", "bonus": { "rng": [ 2, 4 ] } },
++ { "skill": "speech", "bonus": { "rng": [ 2, 4 ] } },
+ { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } },
+ { "skill": "survival", "bonus": { "rng": [ 7, 10 ] } },
+ { "skill": "gun", "bonus": { "rng": [ 4, 8 ] } },
+@@ -47,7 +47,7 @@
+ "responses": [
+ {
+ "text": "…",
+- "topic": "TALK_LEAVE_NOW",
++ "topic": "TALK_LEAVE_NOW_MARSHAL_CHRIS",
+ "opinion": { "trust": -20, "value": -20 },
+ "condition": { "u_is_wearing": "badge_marshal" }
+ },
+@@ -137,14 +137,14 @@
+ },
+ {
+ "type": "talk_topic",
+- "id": "TALK_LEAVE_NOW",
++ "id": "TALK_LEAVE_NOW_MARSHAL_CHRIS",
+ "dynamic_line": "You should leave before my family sees you.",
+ "responses": [ { "text": "…", "topic": "TALK_DONE" } ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_ISHERWOOD_CHRIS_TOPICS",
+- "dynamic_line": "Go on...",
++ "dynamic_line": "Go on…",
+ "responses": [
+ {
+ "text": "Your dad asked me to come find you, said you've been looking for your uncle.",
+--- a/data/json/npcs/isherwood_farm/NPC_Claire_Isherwood.json
++++ b/data/json/npcs/isherwood_farm/NPC_Claire_Isherwood.json
+@@ -28,7 +28,7 @@
+ "skill": "ALL",
+ "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "constant": -2 }, { "one_in": 4 } ] } ] }
+ },
+- { "skill": "barter", "bonus": { "rng": [ 2, 4 ] } },
++ { "skill": "speech", "bonus": { "rng": [ 2, 4 ] } },
+ { "skill": "cooking", "bonus": { "rng": [ 4, 8 ] } },
+ { "skill": "firstaid", "bonus": { "rng": [ 3, 6 ] } },
+ { "skill": "survival", "bonus": { "rng": [ 3, 6 ] } },
+@@ -113,13 +113,13 @@
+ "responses": [
+ {
+ "text": "Yes, I'm a marshal.",
+- "topic": "TALK_LEAVE_NOW",
++ "topic": "TALK_LEAVE_NOW_MARSHAL_CLAIRE",
+ "opinion": { "trust": -20, "value": -20 },
+ "condition": { "u_is_wearing": "badge_marshal" }
+ },
+ {
+ "text": "…",
+- "topic": "TALK_LEAVE_NOW",
++ "topic": "TALK_LEAVE_NOW_MARSHAL_CLAIRE",
+ "opinion": { "trust": -20, "value": -20 },
+ "condition": { "u_is_wearing": "badge_marshal" }
+ },
+@@ -251,7 +251,7 @@
+ },
+ {
+ "type": "talk_topic",
+- "id": "TALK_LEAVE_NOW",
++ "id": "TALK_LEAVE_NOW_MARSHAL_CLAIRE",
+ "dynamic_line": "You should get off our land, you have no business here.",
+ "responses": [ { "text": "…", "topic": "TALK_DONE" } ]
+ },
+--- a/data/json/npcs/isherwood_farm/NPC_Eddie_Isherwood.json
++++ b/data/json/npcs/isherwood_farm/NPC_Eddie_Isherwood.json
+@@ -29,7 +29,7 @@
+ "skill": "ALL",
+ "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "constant": -2 }, { "one_in": 4 } ] } ] }
+ },
+- { "skill": "barter", "bonus": { "rng": [ 2, 4 ] } },
++ { "skill": "speech", "bonus": { "rng": [ 2, 4 ] } },
+ { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } },
+ { "skill": "survival", "bonus": { "rng": [ 3, 6 ] } },
+ { "skill": "gun", "bonus": { "rng": [ 3, 6 ] } },
+@@ -61,14 +61,14 @@
+ "responses": [
+ {
+ "text": "Yeah, I'm a Marshal, what are you going to do about it?",
+- "topic": "TALK_LEAVE_NOW",
++ "topic": "TALK_LEAVE_NOW_MARSHAL",
+ "effect": "hostile",
+ "opinion": { "trust": -20, "value": -20 },
+ "condition": { "u_is_wearing": "badge_marshal" }
+ },
+ {
+ "text": "…",
+- "topic": "TALK_LEAVE_NOW",
++ "topic": "TALK_LEAVE_NOW_MARSHAL",
+ "opinion": { "trust": -20, "value": -20 },
+ "condition": { "u_is_wearing": "badge_marshal" }
+ },
+@@ -174,14 +174,8 @@
+ },
+ {
+ "type": "talk_topic",
+- "id": "TALK_LEAVE_NOW",
+- "dynamic_line": "You should get off my farm, I won't deal with a government stooge.",
+- "responses": [ { "text": "…", "topic": "TALK_DONE" } ]
+- },
+- {
+- "type": "talk_topic",
+ "id": "TALK_ISHERWOOD_EDDIE_TOPICS",
+- "dynamic_line": "Go on...",
++ "dynamic_line": "Go on…",
+ "responses": [
+ { "text": "Your son helps with the dairy?", "topic": "TALK_EDDIE_LUKE" },
+ { "text": "So, Jesse runs the horse farm?", "topic": "TALK_EDDIE_JESSE" },
+--- a/data/json/npcs/isherwood_farm/NPC_Jack_Isherwood.json
++++ b/data/json/npcs/isherwood_farm/NPC_Jack_Isherwood.json
+@@ -29,7 +29,7 @@
+ "skill": "ALL",
+ "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "constant": -2 }, { "one_in": 4 } ] } ] }
+ },
+- { "skill": "barter", "bonus": { "rng": [ 2, 4 ] } },
++ { "skill": "speech", "bonus": { "rng": [ 2, 4 ] } },
+ { "skill": "gun", "bonus": { "rng": [ 4, 8 ] } },
+ { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } },
+ { "skill": "survival", "bonus": { "rng": [ 3, 6 ] } },
+@@ -67,7 +67,8 @@
+ { "item": "crossbow", "prob": 20 },
+ { "item": "shortbow", "prob": 5 },
+ { "item": "compbow", "prob": 15 },
+- { "item": "compositebow", "prob": 15 },
++ { "item": "recurbow", "prob": 15 },
++ { "item": "reflexbow", "prob": 10 },
+ { "item": "longbow", "prob": 10 },
+ { "item": "hand_crossbow", "prob": 15 },
+ { "item": "selfbow", "prob": 5 }
+@@ -96,7 +97,7 @@
+ { "item": "cheese_hard", "prob": 50 },
+ { "item": "vinegar", "prob": 55 },
+ { "item": "veggy_pickled", "prob": 50, "charges": 2, "container-item": "jar_glass_sealed" },
+- { "item": "jar_sauerkraut_pickled", "prob": 50 },
++ { "item": "sauerkraut", "prob": 50, "charges": 4, "container-item": "jar_glass_sealed" },
+ { "item": "meat_pickled", "prob": 50, "charges": 2, "container-item": "jar_glass_sealed" },
+ { "item": "fish_pickled", "prob": 60, "charges": 2, "container-item": "jar_glass_sealed" },
+ { "item": "meat_canned", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" },
+@@ -122,14 +123,14 @@
+ "responses": [
+ {
+ "text": "Yes, I'm a marshal.",
+- "topic": "TALK_LEAVE_NOW",
++ "topic": "TALK_LEAVE_NOW_MARSHAL_JACK",
+ "effect": "hostile",
+ "opinion": { "trust": -20, "value": -20 },
+ "condition": { "u_is_wearing": "badge_marshal" }
+ },
+ {
+ "text": "…",
+- "topic": "TALK_LEAVE_NOW",
++ "topic": "TALK_LEAVE_NOW_MARSHAL_JACK",
+ "opinion": { "trust": -20, "value": -20 },
+ "condition": { "u_is_wearing": "badge_marshal" }
+ },
+@@ -198,7 +199,7 @@
+ {
+ "type": "talk_topic",
+ "id": "TALK_JACK_FARM",
+- "dynamic_line": "Even out here we've had some attacks and seen … other things. We have been working on our defenses, but it takes time. We've been able to keep up with the crops and animals though so we won't have to risk our necks for supplies.",
++ "dynamic_line": "Even out here we've had some attacks and seen… other things. We have been working on our defenses, but it takes time. We've been able to keep up with the crops and animals though so we won't have to risk our necks for supplies.",
+ "responses": [
+ { "text": "What sort of defenses do you want?", "topic": "TALK_FARM_DEFENSE" },
+ { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_JACK_TOPICS" },
+@@ -250,14 +251,14 @@
+ },
+ {
+ "type": "talk_topic",
+- "id": "TALK_LEAVE_NOW",
++ "id": "TALK_LEAVE_NOW_MARSHAL_JACK",
+ "dynamic_line": "You should get off my land, the government proved its incompetence with this catastrophe.",
+ "responses": [ { "text": "…", "topic": "TALK_DONE" } ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_ISHERWOOD_JACK_TOPICS",
+- "dynamic_line": "Go on ...",
++ "dynamic_line": "Go on…",
+ "responses": [
+ {
+ "text": "I'm here to deliver some resources.",
+--- a/data/json/npcs/isherwood_farm/NPC_Jesse_Isherwood.json
++++ b/data/json/npcs/isherwood_farm/NPC_Jesse_Isherwood.json
+@@ -28,7 +28,7 @@
+ "skill": "ALL",
+ "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "constant": -2 }, { "one_in": 4 } ] } ] }
+ },
+- { "skill": "barter", "bonus": { "rng": [ 6, 9 ] } },
++ { "skill": "speech", "bonus": { "rng": [ 6, 9 ] } },
+ { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } },
+ { "skill": "survival", "bonus": { "rng": [ 3, 6 ] } },
+ { "skill": "gun", "bonus": { "rng": [ 3, 6 ] } },
+@@ -51,14 +51,14 @@
+ "responses": [
+ {
+ "text": "Yeah, I'm a Marshal, what are you going to do about it?",
+- "topic": "TALK_LEAVE_NOW",
++ "topic": "TALK_LEAVE_NOW_MARSHAL",
+ "effect": "hostile",
+ "opinion": { "trust": -20, "value": -20 },
+ "condition": { "u_is_wearing": "badge_marshal" }
+ },
+ {
+ "text": "…",
+- "topic": "TALK_LEAVE_NOW",
++ "topic": "TALK_LEAVE_NOW_MARSHAL",
+ "opinion": { "trust": -20, "value": -20 },
+ "condition": { "u_is_wearing": "badge_marshal" }
+ },
+@@ -124,7 +124,7 @@
+ "id": "TALK_MET_JACK_CLAIRE",
+ "dynamic_line": "Oh good, I'm sure Jack wanted to put you to work. If you're interested, I could use a hand clearing out the woods. My son, Chris has his hands full trying to keep the predators under control.",
+ "responses": [
+- { "text": "I'd like to speak with Carlos too about some work.", "topic": "TALK_JESSE_CARLOS" },
++ { "text": "I'd like to speak with Carlos too about some work.", "topic": "TALK_JESSE_CARLOS1" },
+ {
+ "text": "Is Chris around? I'd like to know what he's run into out in the woods.",
+ "topic": "TALK_JESSE_CHRIS"
+@@ -136,7 +136,7 @@
+ },
+ {
+ "type": "talk_topic",
+- "id": "TALK_JESSE_CARLOS",
++ "id": "TALK_JESSE_CARLOS1",
+ "dynamic_line": "He's out back in the workshop.",
+ "responses": [
+ { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_JESSE_TOPICS" },
+@@ -154,7 +154,7 @@
+ },
+ {
+ "type": "talk_topic",
+- "id": "TALK_JESSE_CARLOS",
++ "id": "TALK_JESSE_CARLOS2",
+ "dynamic_line": "Carlos will be in his workshop if he isn't out hunting. He is trying to get a forge set up.",
+ "responses": [
+ { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_JESSE_TOPICS" },
+@@ -163,19 +163,19 @@
+ },
+ {
+ "type": "talk_topic",
+- "id": "TALK_LEAVE_NOW",
++ "id": "TALK_LEAVE_NOW_MARSHAL",
+ "dynamic_line": "You should get off my farm, I won't deal with a government stooge.",
+ "responses": [ { "text": "…", "topic": "TALK_DONE" } ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_ISHERWOOD_JESSE_TOPICS",
+- "dynamic_line": "Go on...",
++ "dynamic_line": "Go on…",
+ "responses": [
+ { "text": "Looks like you are doing well here.", "topic": "TALK_ISHERWOOD_JESSE_TALK1" },
+ { "text": "Do you have any animal care tips?", "topic": "TALK_ISHERWOOD_JESSE_TIPS" },
+ { "text": "Jack and Claire suggested I come talk to you.", "topic": "TALK_MET_JACK_CLAIRE" },
+- { "text": "I'd like to speak with Carlos too about some work.", "topic": "TALK_JESSE_CARLOS" },
++ { "text": "I'd like to speak with Carlos too about some work.", "topic": "TALK_JESSE_CARLOS2" },
+ { "text": "Is Chris around?", "topic": "TALK_JESSE_CHRIS" },
+ { "text": "Can I do anything for you?", "topic": "TALK_MISSION_LIST" },
+ { "text": "I'd better get going.", "topic": "TALK_DONE" }
+@@ -206,33 +206,7 @@
+ "success_lie": "Show me the bodies.",
+ "failure": "It was a lost cause anyways…"
+ },
+- "end": { "opinion": { "trust": 1, "value": 1 }, "effect": [ { "u_buy_item": "horse_tack", "count": 1 } ] }
+- },
+- {
+- "id": "MISSION_ISHERWOOD_JESSE_2",
+- "type": "mission_definition",
+- "name": { "str": "Kill monster" },
+- "goal": "MGOAL_KILL_MONSTER",
+- "difficulty": 8,
+- "value": 80000,
+- "start": {
+- "assign_mission_target": { "om_terrain": "forest_thick", "reveal_radius": 1, "random": true, "search_range": 20, "min_distance": 15 },
+- "update_mapgen": { "place_monster": [ { "monster": "mon_flying_polyp", "pack_size": [ 3, 6 ], "x": 11, "y": 11, "target": true } ] }
+- },
+- "origins": [ "ORIGIN_SECONDARY" ],
+- "has_generic_rewards": false,
+- "dialogue": {
+- "describe": "We could use some help killing some wolves.",
+- "offer": "There's been some wolves that keep scaring our chickens and horses, I'd be grateful if you can kill them.",
+- "accepted": "Wonderful, let me know when it is done.",
+- "rejected": "Thanks anyway, we will try some traps.",
+- "advice": "A gun will probably help.",
+- "inquire": "Did you kill it?",
+- "success": "I appreciate it, I've got this old saddle I want you to have. I'll be happy to put a horse under it if you want to do some more heroics.",
+- "success_lie": "Show me the bodies.",
+- "failure": "It was a lost cause anyways…"
+- },
+- "end": { "opinion": { "trust": 1, "value": 1 }, "effect": [ { "u_buy_item": "horse_tack", "count": 1 } ] }
++ "end": { "opinion": { "trust": 1, "value": 1 }, "effect": [ { "u_buy_item": "horse_tack", "count": 1 } ] }
+ },
+ {
+ "id": "MISSION_ISHERWOOD_JESSE_2",
+--- a/data/json/npcs/isherwood_farm/NPC_Lisa_Isherwood.json
++++ b/data/json/npcs/isherwood_farm/NPC_Lisa_Isherwood.json
+@@ -45,7 +45,7 @@
+ "responses": [
+ {
+ "text": "…",
+- "topic": "TALK_LEAVE_NOW",
++ "topic": "TALK_LEAVE_NOW_MARSHAL",
+ "opinion": { "trust": -20, "value": -20 },
+ "condition": { "u_is_wearing": "badge_marshal" }
+ },
+@@ -123,17 +123,11 @@
+ {
+ "type": "talk_topic",
+ "id": "TALK_ISHERWOOD_LISA_TOPICS",
+- "dynamic_line": "Go on...",
++ "dynamic_line": "Go on…",
+ "responses": [
+ { "text": "Hi, I'm looking for Jesse.", "topic": "TALK_LISA_JESSE" },
+ { "text": "Hi, I'm looking for Chris.", "topic": "TALK_LISA_CHRIS" },
+ { "text": "I'd better get going.", "topic": "TALK_DONE" }
+ ]
+- },
+- {
+- "type": "talk_topic",
+- "id": "TALK_LEAVE_NOW",
+- "dynamic_line": "You should get off my farm, I won't deal with a government stooge.",
+- "responses": [ { "text": "…", "topic": "TALK_DONE" } ]
+ }
+ ]
+--- a/data/json/npcs/isherwood_farm/NPC_Luke_Isherwood.json
++++ b/data/json/npcs/isherwood_farm/NPC_Luke_Isherwood.json
+@@ -47,7 +47,7 @@
+ "responses": [
+ {
+ "text": "…",
+- "topic": "TALK_LEAVE_NOW",
++ "topic": "TALK_LEAVE_NOW_LUKE",
+ "opinion": { "trust": -20, "value": -20 },
+ "condition": { "u_is_wearing": "badge_marshal" }
+ },
+@@ -135,14 +135,14 @@
+ },
+ {
+ "type": "talk_topic",
+- "id": "TALK_LEAVE_NOW",
++ "id": "TALK_LEAVE_NOW_LUKE",
+ "dynamic_line": "You won't find any help here.",
+ "responses": [ { "text": "…", "topic": "TALK_DONE" } ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_ISHERWOOD_LUKE_TOPICS",
+- "dynamic_line": "Go on...",
++ "dynamic_line": "Go on…",
+ "responses": [
+ {
+ "text": "Must be tough having the world fall apart when you had you future to look forward to.",
diff --git a/npc-02_isherwood-duplicate-mission.patch b/npc-02_isherwood-duplicate-mission.patch
deleted file mode 100644
index 982aa7e..0000000
--- a/npc-02_isherwood-duplicate-mission.patch
+++ /dev/null
@@ -1,35 +0,0 @@
---- a/data/json/npcs/isherwood_farm/NPC_Jesse_Isherwood.json
-+++ b/data/json/npcs/isherwood_farm/NPC_Jesse_Isherwood.json
-@@ -222,32 +222,6 @@
- "origins": [ "ORIGIN_SECONDARY" ],
- "has_generic_rewards": false,
- "dialogue": {
-- "describe": "We could use some help killing some wolves.",
-- "offer": "There's been some wolves that keep scaring our chickens and horses, I'd be grateful if you can kill them.",
-- "accepted": "Wonderful, let me know when it is done.",
-- "rejected": "Thanks anyway, we will try some traps.",
-- "advice": "A gun will probably help.",
-- "inquire": "Did you kill it?",
-- "success": "I appreciate it, I've got this old saddle I want you to have. I'll be happy to put a horse under it if you want to do some more heroics.",
-- "success_lie": "Show me the bodies.",
-- "failure": "It was a lost cause anyways…"
-- },
-- "end": { "opinion": { "trust": 1, "value": 1 }, "effect": [ { "u_buy_item": "horse_tack", "count": 1 } ] }
-- },
-- {
-- "id": "MISSION_ISHERWOOD_JESSE_2",
-- "type": "mission_definition",
-- "name": { "str": "Kill monster" },
-- "goal": "MGOAL_KILL_MONSTER",
-- "difficulty": 8,
-- "value": 80000,
-- "start": {
-- "assign_mission_target": { "om_terrain": "forest_thick", "reveal_radius": 1, "random": true, "search_range": 20, "min_distance": 15 },
-- "update_mapgen": { "place_monster": [ { "monster": "mon_flying_polyp", "pack_size": [ 3, 6 ], "x": 11, "y": 11, "target": true } ] }
-- },
-- "origins": [ "ORIGIN_SECONDARY" ],
-- "has_generic_rewards": false,
-- "dialogue": {
- "describe": "We could use some help killing some monsters.",
- "offer": "We could use some help killing a pack of monsters. I don't know what they are, but they're very fast, I'm willing to outfit you with a horse if you succeed.",
- "accepted": "Be ready for anything.",
diff --git a/npc-02_tacoma-update.patch b/npc-02_tacoma-update.patch
new file mode 100644
index 0000000..b70a534
--- /dev/null
+++ b/npc-02_tacoma-update.patch
@@ -0,0 +1,427 @@
+--- a/data/json/npcs/tacoma_ranch/NPC_ranch_barber.json
++++ b/data/json/npcs/tacoma_ranch/NPC_ranch_barber.json
+@@ -47,7 +47,7 @@
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_BARBER_CUT",
+- "dynamic_line": "Stand still while I get my clippers...",
++ "dynamic_line": "Stand still while I get my clippers…",
+ "responses": [ { "text": "Thanks…", "topic": "TALK_DONE" } ]
+ }
+ ]
+--- a/data/json/npcs/tacoma_ranch/NPC_ranch_foreman.json
++++ b/data/json/npcs/tacoma_ranch/NPC_ranch_foreman.json
+@@ -49,7 +49,7 @@
+ {
+ "text": "Thanks.",
+ "topic": "TALK_RANCH_FOREMAN",
+- "effect": [ { "u_buy_item": "commune_prospectus" }, { "u_add_effect": "has_prospectus" } ]
++ "effect": [ { "u_buy_item": "commune_prospectus" }, { "u_add_effect": "has_prospectus", "duration": "PERMANENT" } ]
+ }
+ ]
+ },
+@@ -122,7 +122,7 @@
+ "place_nested": [ { "chunks": [ "tacoma_commune_west_wall_door" ], "x": 22, "y": 0 } ]
+ },
+ {
+- "om_terrain": "ranch_camp_66",
++ "om_terrain": "ranch_camp_75",
+ "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
+ "place_nested": [
+ { "chunks": [ "tacoma_commune_east_wall_door" ], "x": 0, "y": 0 },
+@@ -269,7 +269,7 @@
+ "dialogue": {
+ "describe": "We need help…",
+ "offer": "I'm sure you've noticed the new workers that have started trickling in. The Free Merchant counsel is demanding that we immediately begin projects to become self-sufficient due to limited supplies. We are going to need to rapidly setup an agricultural industry before winter and starvation catches us unprepared and unsupported. In order to get a half dozen shovels and a couple of bags of seeds, we are going to have to trade for it. I've already got the deal lined up but the only thing they are willing to trade it for is salt. I negotiated them down from 500 units to 300… we were hoping you might have access to a source.",
+- "accepted": "Salt is key to preserving meat and other perishables… without any excess food it wouldn't do us much good now but I imagine we'll need to send you out to get more in the future. ",
++ "accepted": "Salt is key to preserving meat and other perishables… without any excess food it wouldn't do us much good now but I imagine we'll need to send you out to get more in the future.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "If you can find a source of salt water you should be able to boil it down.",
+ "inquire": "Do you have the salt?",
+@@ -332,7 +332,7 @@
+ "followup": "MISSION_RANCH_FOREMAN_6",
+ "dialogue": {
+ "describe": "We need help…",
+- "offer": "Well, our first crop will be planted shortly but I'm starting to suspect that our profit margin is going to be much smaller than we expect. With limited seed for our original crop our next course of action is to increase the soil's fertility. Is there any way you could find or produce a basic liquid fertilizer for us? We'd need at least 30 units to make a significant improvement in our output. ",
++ "offer": "Well, our first crop will be planted shortly but I'm starting to suspect that our profit margin is going to be much smaller than we expect. With limited seed for our original crop our next course of action is to increase the soil's fertility. Is there any way you could find or produce a basic liquid fertilizer for us? We'd need at least 30 units to make a significant improvement in our output.",
+ "accepted": "I don't know the exact recipe but I'm sure you could make it from a commercial fertilizer or produce it from bonemeal.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "I'd look through a few basic chemistry books to find a simple recipe.",
+@@ -377,7 +377,7 @@
+ "followup": "MISSION_RANCH_FOREMAN_7",
+ "dialogue": {
+ "describe": "We need help…",
+- "offer": "Our current assessment for survivability has increased significantly thanks to your efforts. The next priority issue is securing a cleaner water source. Drinking from the pond on the back end of the ranch has led to an outbreak of dysentery. As quickly as possible we need to improve the sanitary conditions in the camp. To do so the first step is to dig a well and construct stone fireplaces in the barn for the migrants to boil water. We are going to need at least 75 rocks from you if we hope to accomplish the task before we all get sick. After we have them installed you will have free access to them, guaranteed. ",
++ "offer": "Our current assessment for survivability has increased significantly thanks to your efforts. The next priority issue is securing a cleaner water source. Drinking from the pond on the back end of the ranch has led to an outbreak of dysentery. As quickly as possible we need to improve the sanitary conditions in the camp. To do so the first step is to dig a well and construct stone fireplaces in the barn for the migrants to boil water. We are going to need at least 75 rocks from you if we hope to accomplish the task before we all get sick. After we have them installed you will have free access to them, guaranteed.",
+ "accepted": "If you take a shovel to a pile of rubble you should be able to pull out structural grade stone.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Mining would always be an option if you had the resources.",
+@@ -475,7 +475,7 @@
+ "dialogue": {
+ "describe": "We need help…",
+ "offer": "With the well's completion we are rapidly closing the sustainability gap. In order to expand from here we will need massive quantities of lumber to construct fortifications and new buildings. We have already begun work on a manually operated sawmill but we will need two motors to control the actual blades. We were hoping you might be able to secure the motors for us.",
+- "accepted": "Power for the motors will be provided by a salvaged truck battery, you need not bring additional mechanical components. ",
++ "accepted": "Power for the motors will be provided by a salvaged truck battery, you need not bring additional mechanical components.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Motors of this kind are pretty commonplace in industrial machinery.",
+ "inquire": "Do you have the motors?",
+@@ -531,7 +531,7 @@
+ "item": "bleach",
+ "count": 150,
+ "origins": [ "ORIGIN_SECONDARY" ],
+- "followup": "MISSION_RANCH_FOREMAN_10",
++ "followup": "MISSION_RANCH_FOREMAN_10_1",
+ "dialogue": {
+ "describe": "We need help…",
+ "offer": "Disease and infection remains a persistent problem among the refugees. Without dedicated medical personnel and facilities I doubt everyone will be willing to stick around when the next outbreak happens. Until we can get a former medic or nurse I'm just going to have to improvise. Sterilization would be the first step I imagine. Bring me 5 gallon jugs of bleach so we can get started.",
+@@ -560,23 +560,46 @@
+ }
+ },
+ {
++ "id": "MISSION_RANCH_FOREMAN_10_1",
++ "type": "mission_definition",
++ "name": { "str": "Gather 36 bandages" },
++ "goal": "MGOAL_FIND_ITEM",
++ "difficulty": 5,
++ "value": 50000,
++ "item": "bandages",
++ "count": 36,
++ "origins": [ "ORIGIN_SECONDARY" ],
++ "followup": "MISSION_RANCH_FOREMAN_10",
++ "dialogue": {
++ "describe": "We need help…",
++ "offer": "We've started planning a medical clinic but we are going to need a lot more supplies if we hope to warrant sending one of the few people with medical experience from the refugee center to our outpost. I know first aid equipment is rare but they have all the basic supplies that I'm uncertain of. If you could bring in thirty-six bandages I'm sure we could supplement them to make them last a bit longer.",
++ "accepted": "We'll do our best to make them last…",
++ "rejected": "Come back when you get a chance. We need skilled survivors.",
++ "advice": "Homes, hospitals, labs, and doctor offices would be where I'd check.",
++ "inquire": "Do you have the bandages?",
++ "success": "I appreciate it.",
++ "success_lie": "What good does this do us?",
++ "failure": "It was a lost cause anyways…"
++ }
++ },
++ {
+ "id": "MISSION_RANCH_FOREMAN_10",
+ "type": "mission_definition",
+- "name": { "str": "Gather 6 First Aid Kits" },
++ "name": { "str": "Gather 6 bottles of antiseptic" },
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+- "item": "1st_aid",
+- "count": 6,
++ "item": "disinfectant",
++ "count": 60,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_FOREMAN_11",
+ "dialogue": {
+ "describe": "We need help…",
+- "offer": "We've started planning a medical clinic but we are going to need a lot more supplies if we hope to warrant sending one of the few people with medical experience from the refugee center to our outpost. I know first aid kits are rare but they have all the basic supplies that I'm uncertain of. If you could bring in 6 full kits I'm sure we could supplement them to make them last a bit longer.",
++ "offer": "We've started planning a medical clinic but we are going to need a lot more supplies if we hope to warrant sending one of the few people with medical experience from the refugee center to our outpost. I know first aid equipment is rare but they have all the basic supplies that I'm uncertain of. If you could bring in 6 bottles of antiseptic I'm sure we could supplement them to make them last a bit longer.",
+ "accepted": "We'll do our best to make them last…",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Homes, hospitals, labs, and doctor offices would be where I'd check.",
+- "inquire": "Do you have the first aid kits?",
++ "inquire": "Do you have the antiseptic?",
+ "success": "I appreciate it.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways…"
+@@ -657,7 +680,7 @@
+ "offer": "We have the basic equipment that we need but without a functioning power grid we are forced to rely on the readily available vehicle batteries. This is going to be a chore but I'll need twelve car batteries to swap between charging and powering our equipment. The good news is that they don't need to be charged, we can take care of that.",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+- "advice": "Cars can be found in traffic jams along roads or in parking lots… I'm sure you can find a few.",
++ "advice": "Cars can be found in traffic jams along roads or in parking lots… I'm sure you can find a few.",
+ "inquire": "Do you have the car batteries?",
+ "success": "I'm impressed with your abilities.",
+ "success_lie": "What good does this do us?",
+--- a/data/json/npcs/tacoma_ranch/NPC_ranch_guard.json
++++ b/data/json/npcs/tacoma_ranch/NPC_ranch_guard.json
+@@ -14,7 +14,7 @@
+ "id": "TALK_RANCH_GUARD",
+ "type": "talk_topic",
+ "dynamic_line": [
+- "I'm not in charge here, you're looking for someone else...",
++ "I'm not in charge here, you're looking for someone else…",
+ "Keep civil or I'll bring the pain.",
+ "Just on watch, move along.",
+ {
+--- a/data/json/npcs/tacoma_ranch/NPC_ranch_nurse.json
++++ b/data/json/npcs/tacoma_ranch/NPC_ranch_nurse.json
+@@ -294,7 +296,7 @@
+ "item": "emergency_book",
+ "start": "ranch_nurse_8",
+ "origins": [ "ORIGIN_SECONDARY" ],
+- "followup": "MISSION_RANCH_NURSE_10",
++ "followup": "MISSION_RANCH_NURSE_11",
+ "dialogue": {
+ "describe": "We need help…",
+ "offer": "Have you heard of a book called the 'Guide to Advanced Emergency Care?' I really need a copy. The doctor is requesting a lot of supplies that I'm not familiar with but I believe I could make if I could get a copy of the book.",
+@@ -308,29 +310,6 @@
+ }
+ },
+ {
+- "id": "MISSION_RANCH_NURSE_10",
+- "type": "mission_definition",
+- "name": { "str": "Find a Flu Shot" },
+- "goal": "MGOAL_FIND_ITEM",
+- "difficulty": 5,
+- "value": 50000,
+- "item": "flu_shot",
+- "start": "ranch_nurse_9",
+- "origins": [ "ORIGIN_SECONDARY" ],
+- "followup": "MISSION_RANCH_NURSE_11",
+- "dialogue": {
+- "describe": "We need help…",
+- "offer": "The doctor has some ideas on how to recreate a vaccination program for the common flu. If you come across an unused flu shot please bring it to me. We haven't had any fatalities from the flu yet but it is only a matter of time until one of the older or younger members of the outpost gets a bad case.",
+- "accepted": "I'm counting on you.",
+- "rejected": "Come back when you get a chance. We need skilled survivors.",
+- "advice": "Hospitals or clinics might have a few that haven't been used.",
+- "inquire": "Do you have the flu shot?",
+- "success": "Thank you for your assistance.",
+- "success_lie": "What good does this do us?",
+- "failure": "It was a lost cause anyways…"
+- }
+- },
+- {
+ "id": "MISSION_RANCH_NURSE_11",
+ "type": "mission_definition",
+ "name": { "str": "Find 10 Syringes" },
+@@ -339,6 +318,7 @@
+ "value": 50000,
+ "item": "syringe",
+ "count": 3,
++ "start": "ranch_nurse_9",
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_NULL",
+ "dialogue": {
+--- a/data/json/npcs/tacoma_ranch/NPC_ranch_scavenger.json
++++ b/data/json/npcs/tacoma_ranch/NPC_ranch_scavenger.json
+@@ -127,7 +127,7 @@
+ "followup": "MISSION_RANCH_SCAVENGER_4",
+ "dialogue": {
+ "describe": "We need help…",
+- "offer": "When outnumbered or forced to pull back my scavengers have been taught to throw Molotov cocktails to keep monsters from chasing them. We go through one or two on every mission so we can always use a few more. Would you be willing to make us a dozen? I'm willing to pay you what I can for your assistance. ",
++ "offer": "When outnumbered or forced to pull back my scavengers have been taught to throw Molotov cocktails to keep monsters from chasing them. We go through one or two on every mission so we can always use a few more. Would you be willing to make us a dozen? I'm willing to pay you what I can for your assistance.",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Alcohol or lamp oil is probably easier to refine rather than find in large quantities.",
+--- a/data/json/npcs/tacoma_ranch/NPC_ranch_sickly_laborer.json
++++ b/data/json/npcs/tacoma_ranch/NPC_ranch_sickly_laborer.json
+@@ -13,7 +13,7 @@
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_ILL_1",
+- "dynamic_line": "Please leave me alone...",
++ "dynamic_line": "Please leave me alone…",
+ "responses": [
+ { "text": "What is your job here?", "topic": "TALK_RANCH_ILL_1_JOB" },
+ { "text": "Do you need any help?", "topic": "TALK_RANCH_ILL_1_HIRE" },
+@@ -30,13 +30,13 @@
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_ILL_1_HIRE",
+- "dynamic_line": "I don't know what you could do. I've tried everything. Just give me time...",
++ "dynamic_line": "I don't know what you could do. I've tried everything. Just give me time…",
+ "responses": [ { "text": "OK.", "topic": "TALK_RANCH_ILL_1" } ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_ILL_1_SICK",
+- "dynamic_line": "I keep getting sick! At first I thought it was something I ate but now it seems like I can't keep anything down...",
++ "dynamic_line": "I keep getting sick! At first I thought it was something I ate but now it seems like I can't keep anything down…",
+ "responses": [ { "text": "Uhm.", "topic": "TALK_RANCH_ILL_1" } ]
+ }
+ ]
+--- a/data/json/npcs/tacoma_ranch/mission_mapgen_tacoma_commune.json
++++ b/data/json/npcs/tacoma_ranch/mission_mapgen_tacoma_commune.json
+@@ -441,26 +441,26 @@
+ "object": {
+ "mapgensize": [ 20, 20 ],
+ "rows": [
+- " ",
+- " ",
+- " ",
+- "........ .......",
+- "........ .......",
+- ".....................",
+- ".....................",
+- ".....................",
+- ".....................",
+- ".....................",
+- "........ .......",
+- " ",
+- " ",
+- " ",
+- " ",
+- " ",
+- " ",
+- " ",
+- " ",
+- " "
++ " ",
++ " ",
++ " ",
++ "........ .......",
++ "........ .......",
++ "....................",
++ "....................",
++ "....................",
++ "....................",
++ "....................",
++ "........ .......",
++ " ",
++ " ",
++ " ",
++ " ",
++ " ",
++ " ",
++ " ",
++ " ",
++ " "
+ ],
+ "terrain": { ".": "t_dirt" }
+ }
+@@ -554,7 +554,6 @@
+ " ",
+ " ",
+ " ",
+- " ",
+ " "
+ ],
+ "terrain": { "w": "t_wall", ".": "t_floor", "+": "t_door_c", "[": "t_window_boarded_noglass", "c": "t_floor", "t": "t_floor" },
+@@ -617,22 +616,22 @@
+ "object": {
+ "mapgensize": [ 16, 16 ],
+ "rows": [
+- "wwwwww ",
+- "w....wwwwwwwwwww ",
+- "w....w.........w ",
+- "w..............w ",
+- "w....w.........w ",
+- "wwwwww.........w ",
+- " w.........w ",
+- " ..........w ",
+- " w.........w ",
+- " www.....www ",
+- " w.....w ",
+- " w.....w ",
+- " w...... ",
+- " w.....w ",
+- " wwwwwww ",
+- " "
++ "wwwwww ",
++ "w....wwwwwwwwwww",
++ "w....w.........w",
++ "w..............w",
++ "w....w.........w",
++ "wwwwww.........w",
++ " w.........w",
++ " ..........w",
++ " w.........w",
++ " www.....www",
++ " w.....w ",
++ " w.....w ",
++ " w...... ",
++ " w.....w ",
++ " wwwwwww ",
++ " "
+ ],
+ "terrain": { "w": "t_wall_half", ".": "t_dirt" }
+ }
+@@ -644,22 +643,22 @@
+ "object": {
+ "mapgensize": [ 16, 16 ],
+ "rows": [
+- "wwwwww ",
+- "w....wwww000wwww ",
+- "0....w.........w ",
+- "0..............w ",
+- "w....w.........0 ",
+- "wwwwww.........0 ",
+- " w.........w ",
+- " ..........w ",
+- " w.........w ",
+- " www.....www ",
+- " w.....w ",
+- " w.....w ",
+- " 0...... ",
+- " w.....w ",
+- " wwwwwww ",
+- " "
++ "wwwwww ",
++ "w....wwww000wwww",
++ "0....w.........w",
++ "0..............w",
++ "w....w.........0",
++ "wwwwww.........0",
++ " w.........w",
++ " ..........w",
++ " w.........w",
++ " www.....www",
++ " w.....w ",
++ " w.....w ",
++ " 0...... ",
++ " w.....w ",
++ " wwwwwww ",
++ " "
+ ],
+ "terrain": { "w": "t_wall", ".": "t_dirtfloor", "0": "t_window_frame" }
+ }
+@@ -671,22 +670,22 @@
+ "object": {
+ "mapgensize": [ 16, 16 ],
+ "rows": [
+- "wwwwww ",
+- "w....wwww[[[wwww ",
+- "[....w........rw ",
+- "[.............rw ",
+- "w....w..cc.cc.r[ ",
+- "wwwwww..cc.cc.r[ ",
+- " w..cc.cc.rw ",
+- " +..cc.cc.rw ",
+- " w........rw ",
+- " www.....www ",
+- " w.....w ",
+- " w..c..w ",
+- " [..c..+ ",
+- " w..c..w ",
+- " wwwwwww ",
+- " "
++ "wwwwww ",
++ "w....wwww[[[wwww",
++ "[....w........rw",
++ "[.............rw",
++ "w....w..cc.cc.r[",
++ "wwwwww..cc.cc.r[",
++ " w..cc.cc.rw",
++ " +..cc.cc.rw",
++ " w........rw",
++ " www.....www",
++ " w.....w ",
++ " w..c..w ",
++ " [..c..+ ",
++ " w..c..w ",
++ " wwwwwww ",
++ " "
+ ],
+ "terrain": {
+ "w": "t_wall",
+@@ -815,15 +814,8 @@
+ "W.......rW ",
+ "WWW....WWW "
+ ],
+- "terrain": {
+- "r": "t_dirtfloor",
+- "W": "t_wall_log",
+- ".": "t_dirtfloor",
+- "c": "t_conveyor",
+- "m": "t_machinery_old",
+- "M": "t_machinery_heavy"
+- },
+- "furniture": { "r": "f_rack" },
++ "terrain": { "r": "t_dirtfloor", "W": "t_wall_log", ".": "t_dirtfloor", "m": "t_dirtfloor", "M": "t_dirtfloor", "c": "t_conveyor" },
++ "furniture": { "m": "f_machinery_old", "M": "f_machinery_heavy", "r": "f_rack" },
+ "place_item": [
+ { "item": "log", "x": 3, "y": 0 },
+ { "item": "log", "x": 3, "y": 1 },
diff --git a/npc-03_godco-update.patch b/npc-03_godco-update.patch
new file mode 100644
index 0000000..a11c40b
--- /dev/null
+++ b/npc-03_godco-update.patch
@@ -0,0 +1,565 @@
+--- a/data/json/npcs/godco/NPC_Chloe_Taylor_King.json
++++ b/data/json/npcs/godco/NPC_Chloe_Taylor_King.json
+@@ -0,0 +1,173 @@
++[
++ {
++ "type": "npc",
++ "id": "godco_chloe",
++ "name_unique": "Chloe Taylor King",
++ "gender": "female",
++ "name_suffix": "member",
++ "class": "NC_godco_chloe",
++ "attitude": 0,
++ "mission": 7,
++ "chat": "TALK_GODCO_Chloe_1",
++ "faction": "gods_community"
++ },
++ {
++ "type": "npc_class",
++ "id": "NC_godco_chloe",
++ "name": { "str": "Member" },
++ "job_description": "I am a member of the New England Church Community.",
++ "common": false,
++ "bonus_str": { "rng": [ -3, -2 ] },
++ "bonus_dex": { "rng": [ 0, 2 ] },
++ "bonus_int": { "rng": [ -2, -2 ] },
++ "bonus_per": { "rng": [ 0, 2 ] },
++ "worn_override": "GODCO_chloe_worn",
++ "carry_override": "GODCO_chloe_carried",
++ "weapon_override": "GODCO_chloe_wield",
++ "traits": [ { "group": "NPC_starting_traits" }, { "group": "Skin_Any" }, { "trait": "hair_black_long" } ],
++ "skills": [
++ { "skill": "ALL", "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "rng": [ 0, -4 ] } ] } ] } },
++ { "skill": "melee", "bonus": 1 },
++ { "skill": "stabbing", "bonus": 1 }
++ ]
++ },
++ {
++ "type": "item_group",
++ "id": "GODCO_chloe_worn",
++ "subtype": "collection",
++ "entries": [
++ { "item": "sports_bra" },
++ { "item": "boxer_shorts" },
++ { "item": "socks" },
++ { "item": "tshirt_text" },
++ { "item": "skirt" },
++ { "item": "sneakers" },
++ { "item": "gloves_light" },
++ { "item": "knit_scarf" },
++ { "item": "holy_symbol_wood" },
++ { "item": "hat_knit", "prob": 50 },
++ { "item": "coat_rain" }
++ ]
++ },
++ {
++ "type": "item_group",
++ "id": "GODCO_chloe_carried",
++ "subtype": "collection",
++ "entries": [ { "item": "portable_game" }, { "item": "lemonlime" } ]
++ },
++ {
++ "type": "item_group",
++ "id": "GODCO_chloe_wield",
++ "subtype": "collection",
++ "entries": [ { "item": "knife_combat" } ]
++ },
++ {
++ "type": "talk_topic",
++ "id": [
++ "TALK_GODCO_Chloe_2",
++ "TALK_GODCO_Chloe_Story",
++ "TALK_GODCO_Chloe_Mood",
++ "TALK_GODCO_Chloe_Help",
++ "TALK_GODCO_Chloe_Sonia",
++ "TALK_GODCO_Chloe_Knife"
++ ],
++ "responses": [
++ { "text": "What's your story?", "topic": "TALK_GODCO_Chloe_Story" },
++ { "text": "What's your take on the situation here?", "topic": "TALK_GODCO_Chloe_Mood" },
++ { "text": "Who takes care of you here?", "topic": "TALK_GODCO_Chloe_Help" }
++ ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Chloe_1",
++ "dynamic_line": {
++ "u_has_var": "u_met_godco_chloe",
++ "type": "general",
++ "context": "meeting",
++ "value": "yes",
++ "yes": "Aw hey, it's you again.",
++ "no": "Oh… hi. I don't know you. My name's Chloe."
++ },
++ "responses": [
++ {
++ "text": "Nice to meet you, kid. What's up?",
++ "effect": { "u_add_var": "u_met_godco_chloe", "type": "general", "context": "meeting", "value": "yes" },
++ "condition": { "not": { "u_has_var": "u_met_godco_chloe", "type": "general", "context": "meeting", "value": "yes" } },
++ "topic": "TALK_GODCO_Chloe_2"
++ },
++ {
++ "text": "Hello, Chloe. What's up?",
++ "topic": "TALK_GODCO_Chloe_2",
++ "condition": { "u_has_var": "u_met_godco_chloe", "type": "general", "context": "meeting", "value": "yes" }
++ },
++ { "text": "Hi, Chloe. I can't stay to talk.", "topic": "TALK_DONE" }
++ ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Chloe_2",
++ "dynamic_line": "Things suck right now, but you know that anyway. I don't even know why you bother asking these stupid questions.",
++ "responses": [ { "text": "I'd better get going.", "topic": "TALK_DONE" } ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Chloe_Story",
++ "dynamic_line": "You're creepy. I'm sorry for your lack of friends but, like, I'm literally a kid. Everyone on Earth turned into a zombie, we're running out of toilet paper and everything, and my parents are gone. I know they're still alive and they're looking for me. I miss them. Is that enough personal stuff for you?",
++ "responses": [
++ { "text": "I'm sorry for your loss. What were you saying before?", "topic": "TALK_GODCO_Chloe_Loss" },
++ { "text": "I'm sorry for your loss. I'd better get going.", "topic": "TALK_GODCO_Chloe_Loss" }
++ ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Chloe_Loss",
++ "dynamic_line": "They are not dead.",
++ "responses": [ { "text": "…", "topic": "TALK_DONE" } ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Chloe_Mood",
++ "dynamic_line": "I told you already: it sucks. Nobody's happy here, everyone's hungry, Sonia's songs are getting repetitive, and turns out, the boogeyman is friggin' real. We can hear it screaming every night.",
++ "responses": [
++ { "text": "What were you saying before?", "topic": "TALK_NONE" },
++ { "text": "I'd better get going.", "topic": "TALK_DONE" }
++ ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Chloe_Help",
++ "dynamic_line": "I'm not a baby, you know? I don't need a babysitter. Sonia looks out for me though. She's not so weird, I guess. She promised to give me guitar lessons and she even signed me an autograph. I know she's only nice to me because I saved her, but that's okay; we're equal now.",
++ "responses": [
++ {
++ "text": "Saving Sonia sounds like an interesting story; can you tell me what happened?",
++ "topic": "TALK_GODCO_Chloe_Sonia"
++ },
++ { "text": "Aren't you a bit too young to be carrying a knife?", "topic": "TALK_GODCO_Chloe_Knife" },
++ { "text": "What were you saying before?", "topic": "TALK_NONE" },
++ { "text": "I'd better get going.", "topic": "TALK_DONE" }
++ ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Chloe_Sonia",
++ "dynamic_line": "I was home alone during the ongoing riots. My parents chose the worst possible time to reconnect, which sucks, but I'm also kinda happy for them. Anyway, they were part of the NECC people, so they knew about this place and their plans and all. Thing is, it was, like, really far away. I kinda didn't want to go alone but I also didn't want the rioters to eat me, so I asked Sonia - my neighbor - to evacuate with me, I guess. So that was fun; escaping my hometown, walking down the country road, waiting for a horror to ambush us. Spoiler alert: we were attacked. So this zombie shambles in front of us and Sonia whacks it real hard with her guitar! Its brain splatters all over the pavement, and it was super cool, but I also vomited because it was really disgusting. We got here soon after that. My parents weren't here, obviously. Oh man, they must worry about me so much…",
++ "responses": [
++ { "text": "Aren't you a bit too young to be carrying a knife?", "topic": "TALK_GODCO_Chloe_Knife" },
++ { "text": "Thanks for telling me that. What were you saying before?", "topic": "TALK_NONE" },
++ { "text": "Thanks for telling me that. I'd better get going.", "topic": "TALK_DONE" }
++ ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Chloe_Knife",
++ "dynamic_line": "Aren't you a bit too old not to realize how dangerous the world is for a kid like me? I know how to handle one without hurting myself! My dad taught me everything, he's a real pro.",
++ "responses": [
++ {
++ "text": "Saving Sonia sounds like an interesting story; can you tell me what happened?",
++ "topic": "TALK_GODCO_Chloe_Sonia"
++ },
++ { "text": "What were you saying before?", "topic": "TALK_NONE" },
++ { "text": "I'd better get going.", "topic": "TALK_DONE" }
++ ]
++ }
++]
+--- a/data/json/npcs/godco/NPC_Sonia_Greene.json
++++ b/data/json/npcs/godco/NPC_Sonia_Greene.json
+@@ -0,0 +1,163 @@
++[
++ {
++ "type": "npc",
++ "id": "godco_sonia",
++ "name_unique": "Sonia Greene",
++ "name_suffix": "joinee",
++ "gender": "female",
++ "class": "NC_godco_sonia",
++ "attitude": 0,
++ "mission": 7,
++ "chat": "TALK_GODCO_Sonia_1",
++ "faction": "gods_community"
++ },
++ {
++ "type": "npc_class",
++ "id": "NC_godco_sonia",
++ "name": { "str": "Joinee" },
++ "job_description": "I'm just trying to survive.",
++ "common": false,
++ "bonus_str": { "rng": [ -3, -1 ] },
++ "bonus_dex": { "rng": [ -1, 1 ] },
++ "bonus_int": { "rng": [ -2, 2 ] },
++ "bonus_per": { "rng": [ 0, 1 ] },
++ "worn_override": "GODCO_sonia_worn",
++ "carry_override": "GODCO_sonia_carried",
++ "weapon_override": "GODCO_sonia_wield",
++ "traits": [
++ { "trait": "PRETTY" },
++ { "trait": "PACIFIST" },
++ { "group": "NPC_starting_traits" },
++ { "trait": "SKIN_LIGHT" },
++ { "trait": "hair_blond_long" }
++ ],
++ "skills": [ { "skill": "speech", "bonus": { "rng": [ 3, 4 ] } }, { "bonus": 1, "skill": "bashing" } ]
++ },
++ {
++ "type": "item_group",
++ "id": "GODCO_sonia_worn",
++ "subtype": "collection",
++ "entries": [
++ { "item": "socks" },
++ { "item": "sneakers" },
++ { "item": "briefs" },
++ { "item": "bra" },
++ { "item": "tshirt_tour" },
++ { "item": "pants_cargo" },
++ { "item": "leather_belt" },
++ { "item": "trenchcoat_leather" },
++ { "item": "wristwatch" },
++ { "item": "bead_bracelet" }
++ ]
++ },
++ {
++ "type": "item_group",
++ "id": "GODCO_sonia_carried",
++ "subtype": "collection",
++ "entries": [ { "item": "smart_phone", "ammo-item": "battery", "charges": 120 }, { "group": "snacks", "count": [ 1, 2 ] } ]
++ },
++ {
++ "type": "item_group",
++ "id": "GODCO_sonia_wield",
++ "subtype": "collection",
++ "entries": [ { "item": "acoustic_guitar", "damage": 1 } ]
++ },
++ {
++ "type": "talk_topic",
++ "id": [
++ "TALK_GODCO_Sonia_2",
++ "TALK_GODCO_Sonia_Guitar",
++ "TALK_GODCO_Sonia_Story",
++ "TALK_GODCO_Sonia_Story1",
++ "TALK_GODCO_Sonia_Mood",
++ "TALK_GODCO_Sonia_Firstmeet",
++ "TALK_GODCO_Sonia_Community"
++ ],
++ "responses": [
++ { "text": "So, how did you get here?", "topic": "TALK_GODCO_Sonia_Story" },
++ { "text": "How are things, living here?", "topic": "TALK_GODCO_Sonia_Mood" },
++ { "text": "Are the non-joinees treating you fairly?", "topic": "TALK_GODCO_Sonia_Community" },
++ { "text": "That's a nice guitar you have.", "topic": "TALK_GODCO_Sonia_Guitar" }
++ ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Sonia_1",
++ "dynamic_line": {
++ "u_has_var": "u_met_godco_sonia",
++ "type": "general",
++ "context": "meeting",
++ "value": "yes",
++ "yes": "Well now, good to see you again, friend.",
++ "no": "Good to see people like you in the world. I'm Sonia, Sonia Greene. I entertain the people."
++ },
++ "responses": [
++ {
++ "text": "Sonia, hey? Nice to meet you. How are things here?",
++ "effect": { "u_add_var": "u_met_godco_sonia", "type": "general", "context": "meeting", "value": "yes" },
++ "condition": { "not": { "u_has_var": "u_met_godco_sonia", "type": "general", "context": "meeting", "value": "yes" } },
++ "topic": "TALK_GODCO_Sonia_Mood"
++ },
++ {
++ "text": "Hey, Sonia. What's up?",
++ "condition": { "u_has_var": "u_met_godco_sonia", "type": "general", "context": "meeting", "value": "yes" },
++ "topic": "TALK_GODCO_Sonia_2"
++ },
++ { "text": "Hey, Sonia. I can't stay to talk.", "topic": "TALK_DONE" }
++ ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Sonia_2",
++ "dynamic_line": [
++ "Just playing some good ol' tunes. There's so much negativity around here, someone's gotta cheer the people up, you know?"
++ ],
++ "responses": [ { "text": "I'd better get going.", "topic": "TALK_DONE" } ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Sonia_Guitar",
++ "dynamic_line": "You are damn right. I like its scars, makes it look like it has a history, you know? We've been through a lot, him and I. Those pesky <zombies> forced me to inflict harm on my sweet, sweet guitar. But I retaliated, and bashed their head in! I lost a part of me that day, yeah. The guitar's all right, thank you very much. Just a bit rusted from all that blood and gore.",
++ "responses": [
++ { "text": "What were you saying before?", "topic": "TALK_NONE" },
++ { "text": "I'd better get going.", "topic": "TALK_DONE" }
++ ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Sonia_Story",
++ "dynamic_line": "Now that's a wild, wild story. I owe my life to this kid, Chloe, really. I'll let her tell the tale.",
++ "responses": [
++ { "text": "What did you do before <the_cataclysm>?", "topic": "TALK_GODCO_Sonia_Story1" },
++ { "text": "What were you saying before?", "topic": "TALK_NONE" },
++ { "text": "I'd better get going.", "topic": "TALK_DONE" }
++ ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Sonia_Story1",
++ "dynamic_line": "I was in an underground band - Taurists was our name - before all this. Performing gigs at local venues, jamming with my friends; that's all my life was about. Now, I'm a badass soloist with a war-torn guitar, a singer of the old-world, preserving the wonders of music and the Taurist legacy for generations to come. That's also a synonym for not having all that much going on in my life, yeah.",
++ "responses": [
++ { "text": "What were you saying before?", "topic": "TALK_NONE" },
++ { "text": "I'd better get going.", "topic": "TALK_DONE" }
++ ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Sonia_Mood",
++ "dynamic_line": "Oh, you know, just fine. A bit malnourished and all, but I can't really complain if that's the worst of it, right? My guitar makes our twisted little world a bit more tolerable, though. Takes my mind off stuff, muffles the screams of the boogeyman, you know?",
++ "responses": [
++ { "text": "What were you saying before?", "topic": "TALK_NONE" },
++ { "text": "I'd better get going.", "topic": "TALK_DONE" }
++ ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Sonia_Community",
++ "dynamic_line": "Fairly? There's no such thing as fairness in the world. The NECC wouldn't give a damn if I starved to death on this very bench. At least I have friends here, ones that appreciate what I do. I make music. That's all I have left, and it means everything to me.",
++ "responses": [
++ { "text": "What were you saying before?", "topic": "TALK_NONE" },
++ { "text": "I'd better get going.", "topic": "TALK_DONE" }
++ ]
++ }
++]
+--- a/data/json/npcs/godco/NPC_Zachary_Montes.json
++++ b/data/json/npcs/godco/NPC_Zachary_Montes.json
+@@ -0,0 +1,179 @@
++[
++ {
++ "type": "npc",
++ "id": "godco_zachary",
++ "name_unique": "Zachary Montes",
++ "name_suffix": "joinee",
++ "gender": "male",
++ "class": "NC_godco_zachary",
++ "attitude": 0,
++ "mission": 7,
++ "chat": "TALK_GODCO_Zachary_1",
++ "faction": "gods_community"
++ },
++ {
++ "type": "npc_class",
++ "id": "NC_godco_zachary",
++ "name": { "str": "Joinee" },
++ "job_description": "I'm just trying to survive.",
++ "common": false,
++ "bonus_str": { "rng": [ 0, 2 ] },
++ "bonus_dex": { "rng": [ 0, 2 ] },
++ "bonus_int": { "rng": [ -1, 1 ] },
++ "bonus_per": { "rng": [ -1, 1 ] },
++ "worn_override": "GODCO_zachary_worn",
++ "carry_override": "GODCO_zachary_carried",
++ "weapon_override": "GODCO_zachary_wield",
++ "proficiencies": [ "prof_carpentry_basic", "prof_carving" ],
++ "traits": [ { "group": "NPC_starting_traits" }, { "group": "Appearance_demographics" }, { "trait": "FACIAL_HAIR_BEARD" } ],
++ "skills": [
++ { "bonus": 1, "skill": "melee" },
++ { "bonus": 2, "skill": "cutting" },
++ { "bonus": 2, "skill": "survival" },
++ { "bonus": 3, "skill": "bashing" },
++ { "bonus": 4, "skill": "fabrication" }
++ ]
++ },
++ {
++ "type": "item_group",
++ "id": "GODCO_zachary_worn",
++ "subtype": "collection",
++ "entries": [
++ { "item": "socks" },
++ { "item": "boots" },
++ { "item": "boxer_shorts" },
++ { "item": "jeans" },
++ { "item": "undershirt" },
++ { "item": "leather_belt" },
++ { "item": "gloves_work" },
++ { "item": "gold_ear" },
++ { "item": "hat_hard_hooded" }
++ ]
++ },
++ {
++ "type": "item_group",
++ "id": "GODCO_zachary_carried",
++ "subtype": "collection",
++ "entries": [ { "item": "nail" }, { "item": "hammer" } ]
++ },
++ {
++ "type": "item_group",
++ "id": "GODCO_zachary_wield",
++ "subtype": "collection",
++ "entries": [ { "item": "fire_ax" } ]
++ },
++ {
++ "type": "talk_topic",
++ "id": [
++ "TALK_GODCO_Zachary_2",
++ "TALK_GODCO_Zachary_Story",
++ "TALK_GODCO_Zachary_Mood",
++ "TALK_GODCO_Zachary_Result_rewardIcon",
++ "TALK_GODCO_Zachary_Result_rewardRation",
++ "TALK_GODCO_Zachary_Community",
++ "TALK_GODCO_Zachary_Firstmeet",
++ "TALK_GODCO_Zachary_Story1"
++ ],
++ "responses": [
++ { "text": "So, how did you get here?", "topic": "TALK_GODCO_Zachary_Story" },
++ { "text": "How are things, living here?", "topic": "TALK_GODCO_Zachary_Mood" },
++ { "text": "Are the non-joinees treating you fairly?", "topic": "TALK_GODCO_Zachary_Community" }
++ ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Zachary_1",
++ "dynamic_line": "I got my rights to be here, chum. Squatter's rights!",
++ "responses": [
++ {
++ "text": "Don't worry, I'm not going to hurt you.",
++ "effect": { "u_add_var": "u_met_godco_zachary", "type": "general", "context": "meeting", "value": "yes" },
++ "condition": { "not": { "u_has_var": "u_met_godco_zachary", "type": "general", "context": "meeting", "value": "yes" } },
++ "topic": "TALK_GODCO_Zachary_Firstmeet"
++ },
++ {
++ "text": "Hey, good to see you're still around.",
++ "condition": { "u_has_var": "u_met_godco_zachary", "type": "general", "context": "meeting", "value": "yes" },
++ "topic": "TALK_GODCO_Zachary_2"
++ },
++ { "text": "…", "topic": "TALK_DONE" }
++ ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Zachary_Firstmeet",
++ "dynamic_line": "I got here first, therefore this place belongs to me. Them's the rules in the Cataclysm.",
++ "responses": [ { "text": "Now that's an archaic belief. I'll see you around.", "topic": "TALK_DONE" } ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Zachary_2",
++ "dynamic_line": [ "I ain't leaving, bruv. Not until that eldritch screechin' nightmare is dead 'n buried." ],
++ "responses": [ { "text": "I'll see you around then.", "topic": "TALK_DONE" } ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Zachary_Story",
++ "dynamic_line": "That ain't the point here, chum. Don'tcha get it? This was MY territory, but they took it away from me. Now they think of us as nothin' but a goddamn nuisance.",
++ "responses": [
++ { "text": "What did you do before <the_cataclysm>?", "topic": "TALK_GODCO_Zachary_Story1" },
++ { "text": "What were you saying before?", "topic": "TALK_NONE" },
++ { "text": "I'd better get going.", "topic": "TALK_DONE" }
++ ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Zachary_Story1",
++ "dynamic_line": "Who I was is gone, dead… died when I put down the monsters wearing the face of my friends. Ever since then, I've felt nothing but disgust for myself. Let's not fuckin' reminisce.",
++ "responses": [
++ { "text": "What were you saying before?", "topic": "TALK_NONE" },
++ { "text": "I'd better get going.", "topic": "TALK_DONE" }
++ ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Zachary_Community",
++ "dynamic_line": "They are nice people, lettin' us crash here 'n all. I got friends here. We may not be members but we belong here. We'll fight together if they ever try to kick us out.",
++ "responses": [
++ { "text": "What were you saying before?", "topic": "TALK_NONE" },
++ { "text": "I'd better get going.", "topic": "TALK_DONE" }
++ ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Zachary_Mood",
++ "dynamic_line": "It ain't so bad. I got shelter, heat, and people to defend me if any <zombie> shuffles its way here. If I want to eat then I'll be doin' construction work from dusk till dawn.",
++ "responses": [
++ {
++ "text": "How have things changed after that deal with Helena?",
++ "topic": "TALK_GODCO_Zachary_Result_rewardIcon",
++ "condition": { "u_has_var": "godco_machine_reward", "type": "mission", "context": "reward", "value": "icon" }
++ },
++ {
++ "text": "How have things changed after that deal with Helena?",
++ "topic": "TALK_GODCO_Zachary_Result_rewardRation",
++ "condition": { "u_has_var": "godco_machine_reward", "type": "mission", "context": "reward", "value": "ration" }
++ },
++ { "text": "What were you saying before?", "topic": "TALK_NONE" },
++ { "text": "I'd better get going.", "topic": "TALK_DONE" }
++ ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Zachary_Result_rewardRation",
++ "dynamic_line": "Food is the only thing a starving man needs. Thanks for the help, bruv.",
++ "responses": [
++ { "text": "What were you saying before?", "topic": "TALK_NONE" },
++ { "text": "I'd better get going.", "topic": "TALK_DONE" }
++ ]
++ },
++ {
++ "type": "talk_topic",
++ "id": "TALK_GODCO_Zachary_Result_rewardIcon",
++ "dynamic_line": "Ha ha ha! Think before you speak, chum. Eight icons for an honest day's work. The system's broken!",
++ "responses": [
++ { "text": "Sorry to hear that. What were you saying before?", "topic": "TALK_NONE" },
++ { "text": "No rest for the weary…", "topic": "TALK_DONE" }
++ ]
++ }
++]
+--- a/data/json/npcs/godco/cook.json
++++ b/data/json/npcs/godco/cook.json
+@@ -184,7 +184,7 @@
+ {
+ "type": "talk_topic",
+ "id": "TALK_GODCO_cook_currency",
+- "dynamic_line": "We use religious icons as our currency. These were made before <the_cataclysm>, and the name of our community is written on the back. It's a lot more handy than old-world dollars, those are basicly just firestarters here.",
++ "dynamic_line": "We use religious icons as our currency. These were made before <the_cataclysm>, and the name of our community is written on the back. It's a lot more handy than old-world dollars, those are basically just firestarters here.",
+ "responses": [
+ { "text": "Oh, okay.", "topic": "TALK_GODCO_cook_1" },
+ { "text": "What can I buy here?", "topic": "TALK_GODCO_cook_ask_goods" }
+@@ -209,7 +209,7 @@
+ "rejected": "It's okay, I can do without them. Just let me know if you reconsider.",
+ "advice": "There's a lot of places to look. They are common in house kitchens, restaurants or grocery stores.",
+ "inquire": "How is the search going? Have you found 'em?",
+- "success": "I really apreciate your help. Don't worry, you won't leave empty-handed.",
+- "success_lie": "Thanks for trying… I guess.",
++ "success": "I really appreciate your help. Don't worry, you won't leave empty-handed.",
++ "success_lie": "Thanks for trying… I guess.",
+ "failure": "Don't worry about it, it's not that important."
+ },
+@@ -232,9 +232,9 @@
+ "offer": "This task is bit more serious. I don't have enough jars to preserve perishables for the future, and we can't just store everything in salt. We could do our own canning if we had some more glass jars. I could get by with 5 for now.",
+ "accepted": "Thanks for accepting this task. It'll take a load off my shoulders. I finally won't have to worry about this problem anymore.",
+ "rejected": "Just let me know if you change your mind.",
+- "advice": "Glass jars are not that hard to find. I'd look for them in residental areas.",
++ "advice": "Glass jars are not that hard to find. I'd look for them in residential areas.",
+ "inquire": "Have you found the jars?",
+ "success": "Thank you for your help. Here's your reward. I have one more task to do.",
+- "success_lie": "Thanks for trying… I guess.",
++ "success_lie": "Thanks for trying… I guess.",
+ "failure": "It's not a big deal, it isn't that urgent."
+ },
+@@ -259,6 +259,6 @@
+ "advice": "Butcher knives are not that rare to find. They are commonly found in kitchens.",
+ "inquire": "Do you have that knife now?",
+ "success": "I am grateful for the help you've done.",
+- "success_lie": "Thanks for trying… I guess.",
++ "success_lie": "Thanks for trying… I guess.",
+ "failure": "Don't worry about it, it's not that important."
+ },
diff --git a/npc-01_dialogue-fixes.patch b/npc-04_dialogue-fixes.patch
index 577fc60..577fc60 100644
--- a/npc-01_dialogue-fixes.patch
+++ b/npc-04_dialogue-fixes.patch
diff --git a/terrain-02_tacoma-barn-door-position.patch b/terrain-02_tacoma-barn-door-position.patch
deleted file mode 100644
index d5f5642..0000000
--- a/terrain-02_tacoma-barn-door-position.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/data/json/npcs/tacoma_ranch/NPC_ranch_foreman.json
-+++ b/data/json/npcs/tacoma_ranch/NPC_ranch_foreman.json
-@@ -122,7 +122,7 @@
- "place_nested": [ { "chunks": [ "tacoma_commune_west_wall_door" ], "x": 22, "y": 0 } ]
- },
- {
-- "om_terrain": "ranch_camp_66",
-+ "om_terrain": "ranch_camp_75",
- "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
- "place_nested": [
- { "chunks": [ "tacoma_commune_east_wall_door" ], "x": 0, "y": 0 },