-
Notifications
You must be signed in to change notification settings - Fork 4.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Aftershock] Add the Salvor Fabricator to the Shuttlepad Camp (#79437)
* Begin implementation of NPC * Finish off the NPC and apply a small fix to the vehicle merchant * Add a salvor faction * Salvor Fabricator sells improvised weapons and armor * Small Bugfixes * Nerf Tool Spawns * Remove Salvor Faction, Candlebury added a better one in a later PR * More Item Group Nerfs in attempt to deviate the fabricator from the Gadget Trader * Minor itemgroup fix, also Add some backstory * Minor Fix * Re-add Welding Gear * Lint Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Add missing space, re-add welding goggles. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
- Loading branch information
1 parent
e020f1c
commit 2eaa72c
Showing
6 changed files
with
485 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
67 changes: 67 additions & 0 deletions
67
data/mods/Aftershock/npcs/Salvor_Market/salvor_fabricator.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
[ | ||
{ | ||
"type": "npc_class", | ||
"id": "NC_SALVOR_FABRICATOR", | ||
"name": { "str": "salvage merchant" }, | ||
"job_description": "Salvor Fabricator", | ||
"common": false, | ||
"traits": [ { "group": "BG_survival_story_POLICE" }, { "group": "NPC_starting_traits" }, { "group": "Appearance_demographics" } ], | ||
"bonus_str": { "rng": [ 2, 3 ] }, | ||
"bonus_dex": { "rng": [ 0, 2 ] }, | ||
"bonus_int": { "rng": [ -2, 0 ] }, | ||
"bonus_per": { "rng": [ 1, 3 ] }, | ||
"worn_override": "NC_SALVOR_FABRICATOR_worn", | ||
"carry_override": "EMPTY_GROUP", | ||
"weapon_override": "EMPTY_GROUP", | ||
"skills": [ | ||
{ "skill": "ALL", "level": { "sum": [ { "dice": [ 3, 2 ] }, { "constant": -3 } ] } }, | ||
{ "skill": "gun", "bonus": { "rng": [ 4, 6 ] } }, | ||
{ "skill": "survival", "bonus": { "rng": [ 4, 6 ] } }, | ||
{ "skill": "fabrication", "bonus": { "rng": [ 6, 8 ] } }, | ||
{ "skill": "electronics", "bonus": { "rng": [ 4, 6 ] } }, | ||
{ "skill": "mechanics", "bonus": { "rng": [ 1, 3 ] } } | ||
], | ||
"shopkeeper_item_group": [ { "group": "afs_salvor_fabricator_trade", "rigid": true } ], | ||
"shopkeeper_price_rules": [ | ||
{ "group": "afs_augustmoon_batteries_disposable", "markup": 10 }, | ||
{ "group": "afs_augustmoon_batteries_rechargeable", "markup": 20 }, | ||
{ "group": "afs_salvor_fabricator_tools", "markup": 80 }, | ||
{ "group": "afs_salvor_fabricator_scraps", "markup": 3 }, | ||
{ "group": "afs_salvor_fabricator_tools_aftershock", "markup": 3 }, | ||
{ "group": "afs_salvor_fabricator_combat_gear", "markup": 3 } | ||
] | ||
}, | ||
{ | ||
"type": "npc", | ||
"id": "salvor_fabricator", | ||
"name_unique": "Veronica Donaldson", | ||
"name_suffix": "salvor fabricator", | ||
"gender": "female", | ||
"age": 62, | ||
"height": 182, | ||
"class": "NC_SALVOR_FABRICATOR", | ||
"attitude": 0, | ||
"mission": 3, | ||
"chat": "TALK_SALVOR_FABRICATOR", | ||
"faction": "UICA" | ||
}, | ||
{ | ||
"type": "item_group", | ||
"id": "NC_SALVOR_FABRICATOR_worn", | ||
"subtype": "collection", | ||
"ammo": 100, | ||
"magazine": 100, | ||
"items": [ | ||
{ "item": "afs_frontier_cryo" }, | ||
{ "item": "afs_frontier_cryomask" }, | ||
{ "item": "afs_wrist_computer" }, | ||
{ "item": "spacer_cap" }, | ||
{ "item": "carbide_cuirass" }, | ||
{ "item": "afs_herc_rig" }, | ||
{ "item": "boots_combat" }, | ||
{ "item": "gloves_tactical" }, | ||
{ "item": "spacer_jumpsuit" }, | ||
{ "item": "holster" } | ||
] | ||
} | ||
] |
189 changes: 189 additions & 0 deletions
189
data/mods/Aftershock/npcs/Salvor_Market/salvor_fabricator_groups.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,189 @@ | ||
[ | ||
{ | ||
"type": "item_group", | ||
"id": "afs_salvor_fabricator_trade", | ||
"ammo": 100, | ||
"magazine": 100, | ||
"subtype": "collection", | ||
"items": [ | ||
{ "group": "afs_salvor_fabricator_scraps" }, | ||
{ "group": "afs_salvor_fabricator_tools" }, | ||
{ "group": "afs_salvor_fabricator_combat_gear" }, | ||
{ "item": "afs_40g_plasma_civ", "count": [ 2, 5 ] }, | ||
{ "group": "afs_tools_welding_consumable", "count": [ 6, 8 ] }, | ||
{ "group": "afs_augustmoon_batteries_disposable", "count": [ 5, 10 ] }, | ||
{ "group": "afs_augustmoon_batteries_rechargeable", "count": [ 2, 3 ], "prob": 20 }, | ||
{ "group": "augustmoon_shop_money" } | ||
] | ||
}, | ||
{ | ||
"type": "item_group", | ||
"id": "afs_salvor_fabricator_scraps", | ||
"subtype": "collection", | ||
"items": [ | ||
{ "group": "afs_common_biomaterial_scrapgroup", "prob": 30, "count": [ 3, 5 ] }, | ||
{ "group": "afs_common_energy_storage_scrapgroup", "prob": 70, "count": [ 5, 8 ] }, | ||
{ "group": "afs_common_heat_scrapgroup", "prob": 70, "count": [ 5, 8 ] }, | ||
{ "group": "afs_common_magnet_scrapgroup", "prob": 70, "count": [ 5, 8 ] }, | ||
{ "group": "afs_common_circuitry_scrapgroup", "prob": 90, "count": [ 6, 15 ] }, | ||
{ "group": "afs_common_material_scrapgroup", "prob": 90, "count": [ 8, 15 ] } | ||
] | ||
}, | ||
{ | ||
"type": "item_group", | ||
"id": "afs_salvor_fabricator_tools", | ||
"subtype": "collection", | ||
"items": [ | ||
{ "group": "afs_salvor_fabricator_tools_general" }, | ||
{ "group": "afs_salvor_fabricator_tools_cooking" }, | ||
{ "group": "afs_salvor_fabricator_tools_electronics" }, | ||
{ "group": "afs_salvor_fabricator_tools_appliances" } | ||
] | ||
}, | ||
{ | ||
"type": "item_group", | ||
"id": "afs_salvor_fabricator_combat_gear", | ||
"subtype": "collection", | ||
"items": [ | ||
{ "group": "afs_salvor_fabricator_makeshift_armor" }, | ||
{ "group": "afs_salvor_fabricator_makeshift_weapons" }, | ||
{ "group": "afs_salvor_fabricator_makeshift_ammo" }, | ||
{ "group": "afs_salvor_fabricator_makeshift_grenades" } | ||
] | ||
}, | ||
{ | ||
"type": "item_group", | ||
"id": "afs_salvor_fabricator_makeshift_armor", | ||
"subtype": "collection", | ||
"items": [ | ||
{ "item": "xl_helmet_scrap", "prob": 40 }, | ||
{ "item": "helmet_scrap_xs", "prob": 40 }, | ||
{ "item": "helmet_scrap", "prob": 70 }, | ||
{ "item": "xl_cuirass_scrap", "prob": 40 }, | ||
{ "item": "xs_cuirass_scrap", "prob": 40 }, | ||
{ "item": "cuirass_scrap", "prob": 70 }, | ||
{ "item": "armguard_scrap", "prob": 70 }, | ||
{ "item": "legguard_scrap", "prob": 70 }, | ||
{ "item": "xl_boots_scrap", "prob": 40 }, | ||
{ "item": "xs_boots_scrap", "prob": 40 }, | ||
{ "item": "boots_scrap", "prob": 70 }, | ||
{ "item": "afs_titanium_vest", "prob": 30 } | ||
] | ||
}, | ||
{ | ||
"type": "item_group", | ||
"id": "afs_salvor_fabricator_makeshift_weapons", | ||
"subtype": "collection", | ||
"items": [ | ||
{ "item": "laser_rifle_cheap", "prob": 60, "count": [ 1, 2 ] }, | ||
{ "item": "makeshift_scrambler", "prob": 30 }, | ||
{ "item": "afs_launcher_salvaged", "prob": 10 }, | ||
{ "item": "afs_makeshift_fusion_gun", "prob": 5 } | ||
] | ||
}, | ||
{ | ||
"type": "item_group", | ||
"id": "afs_salvor_fabricator_makeshift_ammo", | ||
"subtype": "collection", | ||
"items": [ { "item": "afs_bootleg_cartridge", "prob": 60, "count": [ 1, 3 ] } ] | ||
}, | ||
{ | ||
"type": "item_group", | ||
"id": "afs_salvor_fabricator_makeshift_grenades", | ||
"subtype": "collection", | ||
"items": [ | ||
{ "item": "afs_electroshock_grenade_1", "prob": 60, "count": [ 1, 4 ] }, | ||
{ "item": "grenade_cryo", "prob": 60, "count": [ 1, 2 ] }, | ||
{ "item": "afs_oxygen_bomb", "prob": 30, "count": [ 1, 2 ] } | ||
] | ||
}, | ||
{ | ||
"type": "item_group", | ||
"id": "afs_salvor_fabricator_tools_general", | ||
"//": "Some general tools that aren't especially hard to find or overly useful.", | ||
"subtype": "collection", | ||
"items": [ | ||
{ "item": "flashlight", "prob": 80, "count": [ 1, 3 ] }, | ||
{ "item": "heavy_flashlight", "prob": 30 }, | ||
{ "item": "hammer", "prob": 80, "count": [ 1, 3 ] }, | ||
{ "item": "screwdriver", "prob": 80, "count": [ 1, 3 ] }, | ||
{ "item": "screwdriver_set", "prob": 30 }, | ||
{ "item": "wrench", "prob": 80, "count": [ 1, 3 ] }, | ||
{ "item": "cordless_impact_wrench", "prob": 30 }, | ||
{ "item": "wrench_large", "prob": 60 }, | ||
{ "item": "wrench_small", "prob": 60 }, | ||
{ "item": "socket_wrench_set", "prob": 30 }, | ||
{ "item": "multitool", "prob": 60, "count": [ 1, 3 ] }, | ||
{ "item": "xacto", "prob": 60, "count": [ 1, 3 ] }, | ||
{ "item": "utility_knife_folding", "prob": 80, "count": [ 1, 2 ] }, | ||
{ "item": "pipe_cleaner", "prob": 30 }, | ||
{ "item": "angle_grinder", "prob": 20 }, | ||
{ "item": "crash_axe", "prob": 20 }, | ||
{ "item": "crowbar", "prob": 20 }, | ||
{ "item": "geiger_off", "prob": 20 }, | ||
{ "item": "small_repairkit", "prob": 10 }, | ||
{ "item": "hacksaw", "prob": 10 }, | ||
{ "item": "chisel", "prob": 5 }, | ||
{ "item": "hammer_sledge", "prob": 20 }, | ||
{ "item": "hammer_sledge_short", "prob": 20 }, | ||
{ "item": "e_tool", "prob": 10 }, | ||
{ "item": "afs_plasma_torch", "prob": 40 }, | ||
{ "item": "goggles_welding", "prob": 40, "count": [ 1, 2 ] } | ||
] | ||
}, | ||
{ | ||
"type": "item_group", | ||
"id": "afs_salvor_fabricator_tools_cooking", | ||
"//": "Some tools to assist in cooking while out and about. She makes a point of keeping these sorts of things available.", | ||
"subtype": "collection", | ||
"items": [ | ||
{ "item": "hotplate", "prob": 80, "count": [ 1, 3 ] }, | ||
{ "item": "pot", "prob": 80, "count": [ 1, 3 ] }, | ||
{ "item": "steel_pan", "prob": 80, "count": [ 1, 3 ] }, | ||
{ "item": "military_mess_kit", "prob": 30 }, | ||
{ "item": "multi_cooker", "prob": 40 } | ||
] | ||
}, | ||
{ | ||
"type": "item_group", | ||
"id": "afs_salvor_fabricator_tools_electronics", | ||
"//": "Tools for crafting and maintaining electronics. Less available in general since their usefulness in the field is limited.", | ||
"subtype": "collection", | ||
"items": [ | ||
{ "item": "soldering_iron", "prob": 20, "count": [ 1, 2 ] }, | ||
{ "item": "soldering_iron_portable", "prob": 10, "count": [ 1, 2 ] }, | ||
{ "item": "multimeter", "prob": 20 }, | ||
{ "item": "voltmeter", "prob": 20 }, | ||
{ "item": "solder_wire", "prob": 50, "count": [ 1, 4 ] } | ||
] | ||
}, | ||
{ | ||
"type": "item_group", | ||
"id": "afs_salvor_fabricator_tools_appliances", | ||
"//": "Appliances to setting up a small little outpost. She stocks these decently well for Salvors lacking the skill to fabricate them on their own.", | ||
"subtype": "collection", | ||
"items": [ | ||
{ "item": "afs_battery_charger", "prob": 60, "count": [ 1, 3 ] }, | ||
{ "item": "afs_survival_heater", "prob": 40 }, | ||
{ "item": "afs_tripod_light", "prob": 80, "count": [ 3, 8 ] }, | ||
{ "item": "afs_survival_battery", "prob": 40, "count": [ 1, 2 ] }, | ||
{ "item": "foot_locker_recharge_station", "prob": 30, "count": [ 1, 2 ] }, | ||
{ "item": "cot", "prob": 80, "count": [ 1, 3 ] }, | ||
{ "item": "rollmat", "prob": 80, "count": [ 1, 3 ] } | ||
] | ||
}, | ||
{ | ||
"type": "item_group", | ||
"id": "afs_salvor_fabricator_tools_aftershock", | ||
"//": "Just a group for all aftershock tools she sells, prevents her marking them up to oblivion.", | ||
"items": [ | ||
{ "item": "afs_battery_charger" }, | ||
{ "item": "afs_survival_heater" }, | ||
{ "item": "afs_tripod_light" }, | ||
{ "item": "afs_survival_battery" }, | ||
{ "item": "multi_cooker" }, | ||
{ "item": "afs_40g_plasma_civ" }, | ||
{ "item": "afs_plasma_torch" } | ||
] | ||
} | ||
] |
Oops, something went wrong.