From c6a1f2de29161f16fdb109fb9cff110594b929dc Mon Sep 17 00:00:00 2001 From: Marc Date: Thu, 23 Jan 2025 02:02:31 -0700 Subject: [PATCH] [Aftershock] Add Salvor Camp Vehicle Merchant (#79287) * Add UICA Garage Vendor. * Fix Mapgen Issues, Increase spawn rate of items and spawn maximums. Shop keeper gives earthborn a better deal * Reduce price on vehicle to something a little more "gamey" 100k made a lot more sense to me. But at the price it would never make any sense to buy it over just buying parts and scraping a vehicle together yourslef or just trying to find on in Salus. Also there just aren't vehicles spawning on Salus. So I almost want the price to be more reachable for the player given the current state of the mod. So people can play with vehicles sooner. I will update this price once we have more vehicles spawning and we know what it's worth. * Increase snark. NPC greeting is also only nice to Earthborn * Add some spicy backstory * Lint Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Remove the dreaded and highly illegal "space" character * Name and Gender the NPC because I forget you can and should do that with globally unique npcs * Adjust strings for test gods --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../maps/mapgen/shuttlepad_salvors.json | 64 ++-- data/mods/Aftershock/mutations/mutations.json | 9 + .../uica_vehicle_marchant_talk.json | 284 ++++++++++++++++++ .../Salvor_Market/uica_vehicle_merchant.json | 189 ++++++++++++ data/mods/Aftershock/player/hobbies.json | 1 + .../price_overrides/fuel.json | 10 + 6 files changed, 540 insertions(+), 17 deletions(-) create mode 100644 data/mods/Aftershock/npcs/Salvor_Market/uica_vehicle_marchant_talk.json create mode 100644 data/mods/Aftershock/npcs/Salvor_Market/uica_vehicle_merchant.json create mode 100644 data/mods/aftershock_exoplanet/price_overrides/fuel.json diff --git a/data/mods/Aftershock/maps/mapgen/shuttlepad_salvors.json b/data/mods/Aftershock/maps/mapgen/shuttlepad_salvors.json index 5c57496e649f0..5c44a693b3cbe 100644 --- a/data/mods/Aftershock/maps/mapgen/shuttlepad_salvors.json +++ b/data/mods/Aftershock/maps/mapgen/shuttlepad_salvors.json @@ -12,20 +12,20 @@ " ℗℗ ℗℗℗ - ℗℗℗ ℗℗℗ ", " |||####||||| - - - - »»» ║║║║║####║║║℗ Χ ", " |ΩΩÖÖÖÖ×Ω|<| --- --- »»» ║©q««¬ffύ.ª║℗ ℗℗ ", - "‘$ΩΩéΩΩéΩΩ|‘|℗ ║║║║║║║- ║©..,.h.,.l║ ℗℗℗Χ℗℗ ", - "‘$Ω$$$$$$Ω|‘|℗℗║~╡FoU║-℗ ¦¦-·...h..q.║║ ╡╡###╡℗", - "‘$ΩΩΩΩΩΩΩΩ|‘|ØÙ╡1╡...║║℗℗ ¦ë-·ì--ffύq©║╡╡╡ÂÃÂÂ╡╡", - " $ΩΩΩΩΩΩΩΩ|‘ω‘‘╡..qq.@# ℗ ¦1-·ìì--║║║║║╡∙Å∙∙Ñ∙Ã╡", - "‘$Ω$$$$$$Ω|‘‘‘‘╡kh,..y#℗ Χ¦···ýí4·ýïðð¦╡ÆÇ∙ÂÂ∙∙╡", - "‘$ΩΩéÚΩéΩΩ1‘‘‘Ù╡k±««.h#℗ ¦¦¦¦ñ··ò····ð¦╡∙È∙∙Ñ∙∙╡", - " |ÛÜÝÝÝÞÙΩ|‘‘Ø2╡╡╡╡╡1╡║¦¦¦óó-¦1¦¦¦$$$¦¦╡╡╡Ã∙∙∙Ã╡", - " ||=====|1|‘‘‘Ù╡p.j²..#ôõö·ó-y.o-ß‘‘‘àßÙá╡╡$$$╡╡", - " |ÛÜÝÝÝÞÙΩ|‘‘‘‘$..jj±J#·ý··ó║h.U-ß‘é‘‘‘‘‘‘‘‘é‘ ‘", - "‘$ΩΩéÚΩéΩΩ1‘‘‘‘$..,...#····÷║.,k║‘╡‘‘Ù╡‘‘â╡‘‘Ù╡‘", - "‘$Ω$$$$$$Ω|‘‘Ø‘$..qq║║║í·¦1¦║@h±║‘Ù Ψ℗℗‘℗℗‘‘‘2¼℗", - " $ΩΩΩΩΩΩΩΩ|‘‘‘Ù╡║║║║║--öò¦‘½║║║║║‘╡ »» ℗¾‘‘Ù½¼¼¼", - "‘$ΩΩΩΩΩΩΩΩ|‘‘ Ψ -- -- -‘ ‘ 2 »» ℗½‘ω¦╡╡¦¦", - "‘$Ω$$$$$$Ω|‘‘‘‘‘‘- - ‘ ‘╫╫╫╫╫╫╫╫╫ »» ¿‘‘ -ò·ø¦", + "‘-ΩΩéΩΩéΩΩ|‘|℗ ║║║║║║║- ║©..,.h.,.l║ ℗℗℗Χ℗℗ ", + "‘-Ω$$$$$$Ω|‘|℗℗║~╡FoU║-℗ ¦¦-·...h..q.║║ ╡╡###╡℗", + "‘-ΩΩΩΩΩΩΩΩ|‘|ØÙ╡1╡...║║℗℗ ¦ë-·ì--ffύq©║╡╡╡ÂÃÂÂ╡╡", + " -ΩΩΩΩΩΩΩΩ|‘ω‘‘╡..qq.@# ℗ ¦1-·ìì--║║║║║╡∙Å∙∙Ñ∙Ã╡", + "‘-Ω$$$$$$Ω|‘‘‘‘╡kh,..y#℗ Χ¦···ýí4·ýïðð¦╡ÆÇ∙ÂÂ∙∙╡", + "‘-ΩΩΩΩΩΩΩΩ5‘‘‘Ù╡k±««.h#℗ ¦¦¦¦ñ··ò····ð¦╡∙È∙∙Ñ∙∙╡", + " |ΩΩΩΩΩΩΩΩ|‘‘Ø2╡╡╡╡╡1╡║¦¦¦óó-¦1¦¦¦$$$¦¦╡╡╡Ã∙∙∙Ã╡", + " ||=====|5|‘‘‘Ù╡p.j²..#ôõö·ó-y.o-ß‘‘‘àßÙá╡╡$$$╡╡", + " |ÜÜÝÝÝÞÙΩ|‘‘‘‘$..jj±J#·ý··ó║h.U-ß‘é‘‘‘‘‘‘‘‘é‘ ‘", + "‘$ΩΩéÚϋéΩΩ1‘‘‘‘$..,...#····÷║.,k║‘╡‘‘Ù╡‘‘â╡‘‘Ù╡‘", + "‘$Ω$$$$$$Ü|‘‘Ø‘$..qq║║║í·¦1¦║@h±║‘Ù Ψ℗℗‘℗℗‘‘‘2¼℗", + " $ΩΩΩΩΩΩΩÜ|‘‘‘Ù╡║║║║║--öò¦‘½║║║║║‘╡ »» ℗¾‘‘Ù½¼¼¼", + "‘$ΩΩΩΩΩΩΩÜ|‘‘ Ψ -- -- -‘ ‘ 2 »» ℗½‘ω¦╡╡¦¦", + "‘$Ω$$$$$$Ü|‘‘‘‘‘‘- - ‘ ‘╫╫╫╫╫╫╫╫╫ »» ¿‘‘ -ò·ø¦", "‘$ΩΩéΩΩéΩΩ|‘‘‘‘‘‘‘‘‘‘‘‘‘À╫‘ã‘ã‘ã‘╫℗ ℗℗¾‘‘‘ -4ýù¦", " |ΩΩÖÖÖÖ×Ω|‘ ℗¾℗‘‘‘‘‘‘‘ À╫ ‘‘‘ ‘ ╫℗℗ÀÀ‘‘‘‘ä¦ìì·#", " |||####||| ℗ ℗¾‘‘‘ ╫╫╫╫‘╫╫╫╫½¾‘‘‘‘‘Ψ䦦··#", @@ -59,7 +59,15 @@ " ╫╫╫╫╫╫╫╫╫╫╫╫╫╫╫╫╫╫╫╫╫℗‘‘ ψ " ], "palettes": [ "afs_habitat_structure", "afs_habitat_exterior", "afs_habitat_residential_furnishing" ], - "npcs": { "ω": { "class": "uica_ground_soldier" }, "χ": { "class": "uica_ground_soldier" } }, + "place_zones": [ + { "type": "LOOT_ITEM_GROUP", "filter": "NC_UICA_VEHICLE_MERCHANT", "faction": "UICA", "x": 9, "y": [ 13, 16 ] }, + { "type": "LOOT_ITEM_GROUP", "filter": "NC_UICA_VEHICLE_MERCHANT", "faction": "UICA", "x": 3, "y": 11 } + ], + "npcs": { + "ω": { "class": "uica_ground_soldier" }, + "χ": { "class": "uica_ground_soldier" }, + "ϋ": { "class": "uica_vehicle_merchant" } + }, "monster": { "ψ": { "monster": "mon_uica_tankbot" }, "Ψ": { "monster": "mon_uica_milbot_556" }, @@ -78,11 +86,13 @@ "Υ": { "item": "afs_tools_robot_maintenance", "repeat": [ 5, 8 ], "chance": 60 }, "Ϋ": { "item": "afs_machinery_maintenance_scrapgroup", "repeat": [ 10, 25 ], "chance": 60 } }, + "place_vehicles": [ { "vehicle": "uica_lynx_ex", "x": 6, "y": 5, "chance": 100, "status": 0 } ], "terrain": { "1": "t_door_metal_c", "2": "t_ladder_up", "3": "t_radio_tower", "4": "t_strconc_floor", + "5": "t_door_metal_locked", "=": "t_wall_prefab_glass", " ": "t_region_groundcover_urban", "‘": "t_strconc_floor", @@ -162,7 +172,9 @@ "ω": "t_strconc_floor", "ψ": "t_region_groundcover_urban", "Ψ": "t_region_groundcover_urban", - "χ": "t_metal_floor" + "χ": "t_metal_floor", + "ϋ": "t_strconc_floor_heated", + "υ": "t_strconc_floor_heated" }, "furniture": { "4": "f_console", @@ -239,7 +251,8 @@ "φ": "f_rack", "Ύ": "f_rack", "Υ": "f_rack", - "Ϋ": "f_rack" + "Ϋ": "f_rack", + "υ": "f_sealed_intermodal_crate" } } }, @@ -479,5 +492,22 @@ "5": "f_small_satellite_dish" } } + }, + { + "type": "mapgen", + "update_mapgen_id": "afs_shuttlepad_salvors_garage_open", + "method": "json", + "object": { + "set": [ + { "point": "terrain", "id": "t_grate", "x": 1, "y": 3 }, + { "point": "terrain", "id": "t_grate", "x": 1, "y": 4 }, + { "point": "terrain", "id": "t_grate", "x": 1, "y": 5 }, + { "point": "terrain", "id": "t_grate", "x": 1, "y": 6 }, + { "point": "terrain", "id": "t_grate", "x": 1, "y": 7 }, + { "point": "terrain", "id": "t_grate", "x": 1, "y": 8 }, + { "point": "terrain", "id": "t_door_metal_c", "x": 10, "y": 8 }, + { "point": "terrain", "id": "t_door_metal_c", "x": 9, "y": 10 } + ] + } } ] diff --git a/data/mods/Aftershock/mutations/mutations.json b/data/mods/Aftershock/mutations/mutations.json index cc765e7f5bde7..13cbd15c2892d 100644 --- a/data/mods/Aftershock/mutations/mutations.json +++ b/data/mods/Aftershock/mutations/mutations.json @@ -9,6 +9,15 @@ "player_display": false, "threshold": true }, + { + "type": "mutation", + "id": "BKGR_EARTH", + "name": { "str": "Earthling" }, + "points": 0, + "description": "Your mannerisms and accent are a dead giveaway that you were raised on Earth. Whatever your thoughts about the homeworld might be, the simple fact that you can call it home is likely to affect relationships with people liable to care about such things.", + "valid": false, + "purifiable": false + }, { "type": "mutation", "id": "PROF_SYSTEM_SECURITY", diff --git a/data/mods/Aftershock/npcs/Salvor_Market/uica_vehicle_marchant_talk.json b/data/mods/Aftershock/npcs/Salvor_Market/uica_vehicle_marchant_talk.json new file mode 100644 index 0000000000000..fdb1a9264ebf4 --- /dev/null +++ b/data/mods/Aftershock/npcs/Salvor_Market/uica_vehicle_marchant_talk.json @@ -0,0 +1,284 @@ +[ + { + "id": [ "TALK_UICA_VEHICLE_MERCHANT" ], + "type": "talk_topic", + "dynamic_line": { + "u_has_trait": "BKGR_EARTH", + "yes": "&The workshop is a chaotic mess of spare parts, tools, and partially assembled components littering every surface. is muttering to himself under his breath when you approach.\nOh hello, do you need something?", + "no": "&The workshop is a chaotic mess of spare parts, tools, and partially assembled components littering every surface. is muttering to himself under his breath when you approach.\nDo you need something salvor?" + }, + "responses": [ + { + "//": "If you have met them already, let the player go directly to trading.", + "text": "What do you have in stock?", + "topic": "TALK_DONE", + "effect": "start_trade", + "condition": { "compare_string": [ "yes", { "npc_val": "player_has_met" } ] } + }, + { + "//": "If you are Earthborn buying the car is much easier AND cheaper.", + "text": "You said something about a special offer?", + "topic": "TALK_UICA_VEHICLE_MERCHANT_BUY_VEHICLE_EARTH", + "condition": { + "and": [ + { "compare_string": [ "yes", { "npc_val": "player_has_met" } ] }, + { "not": { "compare_string": [ "yes", { "npc_val": "player_has_bought_car" } ] } }, + { "u_has_trait": "BKGR_EARTH" } + ] + } + }, + { + "//": "Not Earthborn so you have to do a little convincing to buy the car.", + "text": "Do you sell any vehicles here?", + "topic": "TALK_UICA_VEHICLE_MERCHANT_BUY_VEHICLE", + "condition": { + "and": [ + { "compare_string": [ "yes", { "npc_val": "player_has_met" } ] }, + { "not": { "compare_string": [ "yes", { "npc_val": "player_has_bought_car" } ] } }, + { "not": { "compare_string": [ "yes", { "npc_val": "player_has_pursuaded" } ] } }, + { "not": { "u_has_trait": "BKGR_EARTH" } }, + { "not": { "npc_has_effect": "afs_tried_to_buy_car" } } + ] + } + }, + { + "//": "Not Earthborn but already convinced them to make the offer to you.", + "text": "Is that Lynx still for sale?", + "topic": "TALK_UICA_VEHICLE_MERCHANT_BUY_VEHICLE_PASS_ALT", + "condition": { + "and": [ + { "compare_string": [ "yes", { "npc_val": "player_has_met" } ] }, + { "not": { "compare_string": [ "yes", { "npc_val": "player_has_bought_car" } ] } }, + { "compare_string": [ "yes", { "npc_val": "player_has_pursuaded" } ] }, + { "not": { "u_has_trait": "BKGR_EARTH" } }, + { "not": { "npc_has_effect": "afs_tried_to_buy_car" } } + ] + } + }, + { + "//": "Introduction if you haven't met them and aren't Earthborn.", + "text": "What do you do here?", + "topic": "TALK_UICA_VEHICLE_MERCHANT_INTRODUCTION", + "condition": { + "and": [ + { "not": { "compare_string": [ "yes", { "npc_val": "player_has_met" } ] } }, + { "not": { "u_has_trait": "BKGR_EARTH" } } + ] + } + }, + { + "//": "If you are Earthborn they pickup on that and will belay their introduction to nerd out about meeting a fellow Earthling", + "text": "What do you do here?", + "topic": "TALK_UICA_VEHICLE_MERCHANT_INTRODUCTION_EARTH", + "condition": { + "and": [ { "not": { "compare_string": [ "yes", { "npc_val": "player_has_met" } ] } }, { "u_has_trait": "BKGR_EARTH" } ] + } + }, + { + "//": "If you have met them you can ask them about why they are on Salus", + "text": "So, why did you come to Salus IV?", + "topic": "TALK_UICA_VEHICLE_MERCHANT_WHY_HERE", + "condition": { "compare_string": [ "yes", { "npc_val": "player_has_met" } ] } + }, + { "text": "Maybe later.", "topic": "TALK_DONE" } + ] + }, + { + "id": [ "TALK_UICA_VEHICLE_MERCHANT_INTRODUCTION_EARTH" ], + "type": "talk_topic", + "dynamic_line": "&Wait. Hold on a second, please don't take this the wrong way, but you wouldn't happen to be from Earth by any chance?.", + "responses": [ + { "text": "How can you tell?", "topic": "TALK_UICA_VEHICLE_MERCHANT_INTRODUCTION_EARTH_TRUTH" }, + { "text": "Sorry, you're mistaken.", "topic": "TALK_UICA_VEHICLE_MERCHANT_INTRODUCTION_EARTH_LIE" } + ] + }, + { + "id": [ "TALK_UICA_VEHICLE_MERCHANT_INTRODUCTION_EARTH_TRUTH" ], + "type": "talk_topic", + "dynamic_line": "&I knew it! I'm from Earth too so I could just tell. The way you carry yourself, it's not like the rest of the salvors around here. But you get it right?", + "responses": [ + { "text": "I know what you mean.", "topic": "TALK_UICA_VEHICLE_MERCHANT_INTRODUCTION_EARTH_TRUTH_2" }, + { "text": "What are you doing here?", "topic": "TALK_UICA_VEHICLE_MERCHANT_INTRODUCTION_EARTH_EXPLAIN" } + ] + }, + { + "id": [ "TALK_UICA_VEHICLE_MERCHANT_INTRODUCTION_EARTH_TRUTH_2" ], + "type": "talk_topic", + "dynamic_line": "&Right? Right! Of course you do. You understand! This place is about as far a cry from civilization as you can get. And the people, god, the people! This post sees a never-ending deluge of criminals and brawn for brains. And it's like none of them have even heard of a shower! Just the other day, a man emerged from the icy waste covered in blood and viscera. And everyone just ignored him acting like that was a completely normal thing to do! I am going to get off this god-forsaken rock if it's the last thing I do, I swear it.", + "responses": [ { "text": "What are you doing here?", "topic": "TALK_UICA_VEHICLE_MERCHANT_INTRODUCTION_EARTH_EXPLAIN" } ] + }, + { + "id": [ "TALK_UICA_VEHICLE_MERCHANT_INTRODUCTION_EARTH_LIE" ], + "type": "talk_topic", + "dynamic_line": "&No, don't give me that! I can tell, just by looking at you, I know. Don't worry, I'm from Earth too! I get it: some people around here get all weird when they find out where you're from. But you won't get that from me. Us Earthers got to stick together, right?", + "responses": [ + { "text": "What are you doing here?", "topic": "TALK_UICA_VEHICLE_MERCHANT_INTRODUCTION_EARTH_EXPLAIN" }, + { + "text": "I don't know what you're talking about.", + "topic": "TALK_UICA_VEHICLE_MERCHANT_INTRODUCTION_EARTH_LIE2" + } + ] + }, + { + "id": [ "TALK_UICA_VEHICLE_MERCHANT_INTRODUCTION_EARTH_LIE2" ], + "type": "talk_topic", + "dynamic_line": "&Sure, whatever you say, pal.", + "responses": [ { "text": "What are you doing here?", "topic": "TALK_UICA_VEHICLE_MERCHANT_INTRODUCTION_EARTH_EXPLAIN" } ] + }, + { + "id": [ "TALK_UICA_VEHICLE_MERCHANT_INTRODUCTION_EARTH_EXPLAIN" ], + "type": "talk_topic", + "dynamic_line": "&Right! Sorry, this is the vehicle bay, and I run the place. Mostly I just fix up the patrol vehicles. But I am also in charge of maintaining our stock of vehicle parts. As such: I've been authorized to trade with salvors in order to get what we need, and can offer you some of our excess stock or chits in exchange. I'll give you a nice price, just: Don't tell my boss. And one more thing, I've got something really special for sale, if you're interested.", + "responses": [ + { + "text": "Can you show me your stock?", + "topic": "TALK_DONE", + "effect": [ { "npc_add_var": "player_has_met", "value": "yes" }, "start_trade" ] + }, + { + "text": "What's this special offer?", + "topic": "TALK_UICA_VEHICLE_MERCHANT_BUY_VEHICLE_EARTH", + "effect": { "npc_add_var": "player_has_met", "value": "yes" } + }, + { + "text": "Thanks, I don't need anything right now.", + "topic": "TALK_DONE", + "effect": { "npc_add_var": "player_has_met", "value": "yes" } + } + ] + }, + { + "id": [ "TALK_UICA_VEHICLE_MERCHANT_INTRODUCTION" ], + "type": "talk_topic", + "dynamic_line": "This is the vehicle bay, and I run the place. Please don't touch anything unless you're buying. I fix up the patrol vehicles and maintain our stock of spare parts. As such: I've been authorized to trade with outsiders in order to get what we need, and can offer you some of our excess stock or chits in exchange.", + "responses": [ + { + "text": "Can you show me your stock?", + "topic": "TALK_DONE", + "effect": [ { "npc_add_var": "player_has_met", "value": "yes" }, "start_trade" ] + }, + { + "text": "Thanks, I don't need anything right now.", + "topic": "TALK_DONE", + "effect": { "npc_add_var": "player_has_met", "value": "yes" } + } + ] + }, + { + "id": [ "TALK_UICA_VEHICLE_MERCHANT_BUY_VEHICLE_EARTH" ], + "type": "talk_topic", + "dynamic_line": "Here's the thing: A while back one of our patrol vehicles got totalled when some junior officers took it for a joy ride. We are in queue to get a replacement issued to us and High Command just wants the old one broken down for parts. Well the chief and I agree that's a little wasteful. So I patched the damn thing back together with the parts we had on hand. And now we're looking for a way to make it, disappear. You follow?", + "responses": [ + { "text": "How much do want for it?", "topic": "TALK_UICA_VEHICLE_MERCHANT_BUY_VEHICLE_EARTH_2" }, + { "text": "Maybe later.", "topic": "TALK_DONE" } + ] + }, + { + "id": [ "TALK_UICA_VEHICLE_MERCHANT_BUY_VEHICLE_EARTH_2" ], + "type": "talk_topic", + "dynamic_line": "I'll cut you a deal. Let's say 30,000 USD and it's all yours.", + "responses": [ + { + "text": "I'll take it", + "topic": "TALK_DONE", + "effect": { "u_spend_cash": 3000000, "true_eocs": "EOC_UICA_VEHICLE_BUY" } + }, + { "text": "Maybe later.", "topic": "TALK_DONE" } + ] + }, + { + "id": [ "TALK_UICA_VEHICLE_MERCHANT_BUY_VEHICLE" ], + "type": "talk_topic", + "dynamic_line": "&As I've SAID before: I'm only authorized to trade vehicle parts and scraps. Our patrol vehicles are not up for auction. Now if you don't mind, I have work to do.", + "responses": [ + { + "text": "Surely you can arrange for a patrol car to be 'lost'. I can make it worth your while.", + "trial": { "type": "PERSUADE", "difficulty": 60 }, + "success": { + "topic": "TALK_UICA_VEHICLE_MERCHANT_BUY_VEHICLE_PASS", + "effect": { "npc_add_var": "player_has_pursuaded", "value": "yes" } + }, + "failure": { + "topic": "TALK_UICA_VEHICLE_MERCHANT_BUY_VEHICLE_FAIL", + "effect": { "npc_add_effect": "afs_tried_to_buy_car", "duration": "24 hours" } + } + }, + { "text": "Nevermind then.", "topic": "TALK_DONE" } + ] + }, + { + "id": [ "TALK_UICA_VEHICLE_MERCHANT_BUY_VEHICLE_FAIL" ], + "type": "talk_topic", + "dynamic_line": "I'd report you if this sort of behavior wasn't already so laughably perdictable. Just go away.", + "responses": [ { "text": "Your loss.", "topic": "TALK_DONE" } ] + }, + { + "id": [ "TALK_UICA_VEHICLE_MERCHANT_BUY_VEHICLE_PASS" ], + "type": "talk_topic", + "dynamic_line": "Alright, alright. Just not so loud. Here's the thing: A while back one of our patrol vehicles got totalled when some junior officers took it for a joy ride. We are in queue to get a replacement issued to us and High Command just wants the old one broken down for parts. Well the chief and I agree that's a little wasteful. So I patched the damn thing back together with the parts we had on hand. And now we're looking for a way to make it, disappear.", + "responses": [ + { "text": "How much do want for it?", "topic": "TALK_UICA_VEHICLE_MERCHANT_BUY_VEHICLE_PASS_2" }, + { "text": "Maybe later.", "topic": "TALK_DONE" } + ] + }, + { + "id": [ "TALK_UICA_VEHICLE_MERCHANT_BUY_VEHICLE_PASS_ALT" ], + "type": "talk_topic", + "dynamic_line": " sighs.\nYes it is, are you interested?", + "responses": [ + { "text": "How much do want for it again?", "topic": "TALK_UICA_VEHICLE_MERCHANT_BUY_VEHICLE_PASS_2" }, + { "text": "Maybe later.", "topic": "TALK_DONE" } + ] + }, + { + "id": [ "TALK_UICA_VEHICLE_MERCHANT_BUY_VEHICLE_PASS_2" ], + "type": "talk_topic", + "dynamic_line": "40,000 USD and it's all yours.", + "responses": [ + { + "text": "I'll take it", + "topic": "TALK_DONE", + "effect": { "u_spend_cash": 4000000, "true_eocs": "EOC_UICA_VEHICLE_BUY" } + }, + { "text": "Maybe later.", "topic": "TALK_DONE" } + ] + }, + { + "id": [ "TALK_UICA_VEHICLE_MERCHANT_WHY_HERE" ], + "type": "talk_topic", + "dynamic_line": "It wasn't my choice, obviously. That fucking bastard back in Alpha Centauri had me transferred to this frozen hell. Pulled strings with the staff in command. I signed on to help put Earth back where it belongs: on top. Not freeze my arse off fixing barely held-together scrap in the middle of fucking nowhere. Mercurial doesn't even give a shit about this place. I don't know why the UICA even bothers to station us here. If you ask me this planet should have stayed abandoned.", + "responses": [ + { "text": "Who's the bastard?", "topic": "TALK_UICA_VEHICLE_MERCHANT_BKGR_BASTARD" }, + { "text": "What makes you think Mercurial doesn't care?", "topic": "TALK_UICA_VEHICLE_MERCHANT_MERCURIAL" }, + { "text": "Sorry I asked.", "topic": "TALK_DONE" } + ] + }, + { + "id": [ "TALK_UICA_VEHICLE_MERCHANT_BKGR_BASTARD" ], + "type": "talk_topic", + "dynamic_line": "My former superior officer, the prick. Always hovering my shoulder like a damn drone. I won't miss that uptight control freak. We fought a lot and didn't see things eye to eye. But this? I never imagined the fucker would stoop this low. Hell of a disciplinary action, I'll tell you that much.", + "responses": [ { "text": "I'm sorry to hear that.", "topic": "TALK_DONE" } ] + }, + { + "id": [ "TALK_UICA_VEHICLE_MERCHANT_MERCURIAL" ], + "type": "talk_topic", + "dynamic_line": "The last thing they did was set up their little clinic on the station, and they haven't done jack since. No communications, no re-colonization efforts, no survey teams. They hardly even seem to care about going down planetside. Not like I blame them. The colony didn't work out before so, why bother? This place is clearly not worth the effort.", + "responses": [ { "text": "I guess there are some rocks even Corpos won't touch.", "topic": "TALK_DONE" } ] + }, + { + "id": "EOC_UICA_VEHICLE_BUY", + "type": "effect_on_condition", + "effect": [ + { "npc_add_var": "player_has_bought_car", "value": "yes" }, + { "mapgen_update": "afs_shuttlepad_salvors_garage_open", "om_terrain": "afs_shuttlepad_salvors_a1_1" } + ] + }, + { + "type": "effect_type", + "id": "afs_tried_to_buy_car", + "name": [ { "str": "Asked to buy car", "//~": "NO_I18N" } ], + "desc": [ + { "str": "You tried and failed to buy the car off this npc recently. If you see this it's a bug.", "//~": "NO_I18N" } + ] + } +] diff --git a/data/mods/Aftershock/npcs/Salvor_Market/uica_vehicle_merchant.json b/data/mods/Aftershock/npcs/Salvor_Market/uica_vehicle_merchant.json new file mode 100644 index 0000000000000..fe0a1932189f0 --- /dev/null +++ b/data/mods/Aftershock/npcs/Salvor_Market/uica_vehicle_merchant.json @@ -0,0 +1,189 @@ +[ + { + "type": "npc_class", + "id": "NC_UICA_VEHICLE_MERCHANT", + "name": { "str": "garage clerk" }, + "job_description": "Vehicle Garage Clerk", + "common": false, + "traits": [ + { "trait": "BKGR_EARTH" }, + { "group": "BG_survival_story_POLICE" }, + { "group": "NPC_starting_traits" }, + { "group": "Appearance_demographics" } + ], + "bonus_str": { "rng": [ 0, 1 ] }, + "bonus_dex": { "rng": [ 0, 2 ] }, + "bonus_int": { "rng": [ -2, 0 ] }, + "bonus_per": { "rng": [ 0, 2 ] }, + "worn_override": "NC_UICA_GROUND_ENGINEER_worn", + "carry_override": "NC_UICA_GROUND_ENGINEER_carry", + "weapon_override": "EMPTY_GROUP", + "skills": [ + { "skill": "ALL", "level": { "sum": [ { "dice": [ 3, 2 ] }, { "constant": -3 } ] } }, + { "skill": "fabrication", "bonus": { "rng": [ 4, 6 ] } }, + { "skill": "electronics", "bonus": { "rng": [ 4, 6 ] } }, + { "skill": "mechanics", "bonus": { "rng": [ 4, 6 ] } } + ], + "shopkeeper_item_group": [ { "group": "afs_vehicle_merchant", "rigid": true }, { "group": "augustmoon_shop_money", "rigid": true } ], + "shopkeeper_price_rules": [ + { "group": "afs_vehicle_merchant", "markup": 80, "condition": { "not": { "u_has_trait": "BKGR_EARTH" } } }, + { "group": "afs_vehicle_merchant", "markup": 65, "condition": { "u_has_trait": "BKGR_EARTH" } }, + { "group": "afs_vehicle_merchant_fuel", "markup": 2.5, "condition": { "not": { "u_has_trait": "BKGR_EARTH" } } }, + { "group": "afs_vehicle_merchant_fuel", "markup": 1.75, "condition": { "u_has_trait": "BKGR_EARTH" } } + ] + }, + { + "type": "npc", + "id": "uica_vehicle_merchant", + "name_unique": "Artemis Burton", + "name_suffix": "garage clerk", + "gender": "male", + "class": "NC_UICA_VEHICLE_MERCHANT", + "attitude": 0, + "mission": 3, + "chat": "TALK_UICA_VEHICLE_MERCHANT", + "faction": "UICA" + }, + { + "type": "item_group", + "id": "afs_vehicle_merchant", + "subtype": "collection", + "items": [ + { "group": "afs_vehicle_merchant_fuel" }, + { "group": "afs_vehicle_merchant_wheels" }, + { "group": "afs_vehicle_merchant_utilities" }, + { "group": "afs_vehicle_merchant_seating" }, + { "group": "afs_vehicle_merchant_plating" }, + { "group": "afs_vehicle_merchant_motors" }, + { "group": "afs_vehicle_merchant_lights" }, + { "group": "afs_vehicle_merchant_frames" }, + { "group": "afs_vehicle_merchant_controls" }, + { "group": "afs_vehicle_merchant_cargo" }, + { "group": "afs_vehicle_merchant_batteries" } + ] + }, + { + "type": "item_group", + "id": "afs_vehicle_merchant_wheels", + "subtype": "collection", + "items": [ + { "item": "wheel_mount_light", "prob": 50, "count": [ 1, 2 ] }, + { "item": "wheel_mount_medium", "prob": 50, "count": [ 1, 4 ] }, + { "item": "wheel_mount_heavy", "prob": 50, "count": [ 1, 4 ] }, + { "item": "wheel_motorbike", "prob": 50, "count": [ 1, 2 ] }, + { "item": "wheel", "prob": 50, "count": [ 1, 4 ] }, + { "item": "wheel_armor", "prob": 50, "count": [ 1, 4 ] } + ] + }, + { + "type": "item_group", + "id": "afs_vehicle_merchant_utilities", + "subtype": "collection", + "items": [ + { "item": "recharge_station", "prob": 50 }, + { "item": "battery_charger", "prob": 50 }, + { "item": "heattank", "prob": 60, "count": [ 1, 7 ] }, + { "item": "turret_mount", "prob": 30, "count": [ 1, 2 ] }, + { "item": "workbench", "prob": 70, "count": [ 1, 3 ] }, + { "item": "solar_panel", "prob": 70, "count": [ 3, 12 ] }, + { "item": "reinforced_solar_panel", "prob": 20, "count": [ 1, 2 ] }, + { "item": "solar_panel_v2", "prob": 20, "count": [ 2, 7 ] }, + { "item": "beeper", "prob": 20, "count": [ 1, 6 ] }, + { "item": "stereo", "prob": 20, "count": [ 1, 6 ] }, + { "item": "v_motorcycle_kickstand_item", "prob": 20, "count": [ 1, 8 ] } + ] + }, + { + "type": "item_group", + "id": "afs_vehicle_merchant_seating", + "subtype": "collection", + "items": [ { "item": "seat", "prob": 60, "count": [ 3, 8 ] }, { "item": "seat_bench", "prob": 40, "count": [ 3, 8 ] } ] + }, + { + "type": "item_group", + "id": "afs_vehicle_merchant_plating", + "subtype": "collection", + "items": [ + { "item": "sheet_metal", "prob": 80, "count": [ 5, 15 ] }, + { "item": "steel_plate", "prob": 60, "count": [ 5, 15 ] }, + { "item": "mil_plate", "prob": 30, "count": [ 1, 8 ] } + ] + }, + { + "type": "item_group", + "id": "afs_vehicle_merchant_motors", + "subtype": "collection", + "items": [ + { "item": "motor", "prob": 30 }, + { "item": "motor_enhanced", "prob": 10 }, + { "item": "motor_super", "prob": 5 }, + { "item": "motor_large", "prob": 40 }, + { "item": "motor_small", "prob": 20 }, + { "item": "motor_tiny", "prob": 20 } + ] + }, + { + "type": "item_group", + "id": "afs_vehicle_merchant_lights", + "subtype": "collection", + "items": [ + { "item": "car_headlight", "prob": 60, "count": [ 5, 12 ] }, + { "item": "motorcycle_headlight", "prob": 50, "count": [ 3, 7 ] }, + { "item": "headlight_reinforced", "prob": 20, "count": [ 1, 3 ] }, + { "item": "floodlight", "prob": 10, "count": [ 1, 3 ] }, + { "item": "directed_floodlight", "prob": 10, "count": [ 1, 3 ] } + ] + }, + { + "type": "item_group", + "id": "afs_vehicle_merchant_frames", + "subtype": "collection", + "items": [ + { "item": "xlframe", "prob": 40, "count": [ 2, 8 ] }, + { "item": "frame", "prob": 60, "count": [ 7, 18 ] }, + { "item": "hdframe", "prob": 30, "count": [ 3, 15 ] } + ] + }, + { + "type": "item_group", + "id": "afs_vehicle_merchant_controls", + "subtype": "collection", + "items": [ + { "item": "camera_control", "prob": 20 }, + { "item": "omnicamera", "prob": 20, "count": [ 3, 7 ] }, + { "item": "omnicamera_reinforced", "prob": 10, "count": [ 1, 4 ] }, + { "item": "vehicle_controls", "prob": 60, "count": [ 3, 8 ] }, + { "item": "vehicle_dashboard", "prob": 40, "count": [ 3, 7 ] }, + { "item": "electronics_controls", "prob": 40, "count": [ 2, 5 ] }, + { "item": "turret_controls", "prob": 5 } + ] + }, + { + "type": "item_group", + "id": "afs_vehicle_merchant_cargo", + "subtype": "collection", + "items": [ + { "item": "cargo_lock", "prob": 30, "count": [ 3, 7 ] }, + { "item": "cargo_rack", "prob": 40, "count": [ 3, 8 ] }, + { "item": "cargo_aisle", "prob": 40, "count": [ 3, 7 ] } + ] + }, + { + "type": "item_group", + "id": "afs_vehicle_merchant_batteries", + "subtype": "collection", + "ammo": 100, + "items": [ + { "item": "large_storage_battery", "prob": 10 }, + { "item": "storage_battery", "prob": 30, "count": [ 1, 4 ] }, + { "item": "medium_storage_battery", "prob": 40, "count": [ 3, 8 ] }, + { "item": "small_storage_battery", "prob": 50, "count": [ 5, 15 ] } + ] + }, + { + "type": "item_group", + "id": "afs_vehicle_merchant_fuel", + "subtype": "collection", + "items": [ { "item": "plut_cell", "count": [ 1, 3 ] } ] + } +] diff --git a/data/mods/Aftershock/player/hobbies.json b/data/mods/Aftershock/player/hobbies.json index b462d647c1ce1..d2c98bcfaeebb 100644 --- a/data/mods/Aftershock/player/hobbies.json +++ b/data/mods/Aftershock/player/hobbies.json @@ -15,6 +15,7 @@ "id": "afs_earthling", "name": "Earth born", "description": "Your mannerisms and accent are a dead giveaway that you were raised on Earth. Whatever your thoughts about the homeworld might be, the simple fact that you can call it home is likely to affect relationships with people liable to care about such things.", + "traits": [ "BKGR_EARTH" ], "points": -1 }, { diff --git a/data/mods/aftershock_exoplanet/price_overrides/fuel.json b/data/mods/aftershock_exoplanet/price_overrides/fuel.json new file mode 100644 index 0000000000000..8c5995eb0f011 --- /dev/null +++ b/data/mods/aftershock_exoplanet/price_overrides/fuel.json @@ -0,0 +1,10 @@ +[ + { + "id": "plut_cell", + "type": "AMMO", + "name": { "str": "plutonium fuel cell" }, + "copy-from": "plut_cell", + "price": "2400 USD", + "price_postapoc": "2400 USD" + } +]