From 66ab489952956e72314e7a584322a5f7fbed3c6e Mon Sep 17 00:00:00 2001 From: Chorus System Date: Tue, 25 Jun 2024 05:50:44 -0400 Subject: [PATCH] feat(content): 3D printers (#4801) * 3D Printer Added in 3D printer, carbon fiber items. Recipes pending. * Basic 3D printer can no longer repair steel * style(autofix.ci): automated formatting * Carbon fiber armor recipes Made carbon fiber armor have recipes. * Added carbon fiber shields * Crafting time, skill changes Made different recipes require different skill levels and have different crafting times. * Spear correction * Recipes, arrows Added recipe for plastic bottle, plastic jug, plastic jerrycan, and carbon fiber arrows and bolts. Changed carbon fiber arrows to be made of carbon fiber instead of rigid kevlar. * Fix recipe magazines * Carbon fiber crossbow, recipes Added carbon fiber crossbow and recipes for it, the pistol, and the rifle. * Added looks-like for guns * Changed recipe book, add some autolearn * Recipe correction * Textbook changes * style(autofix.ci): automated formatting * Gave 3d printer charges per use * Fixed shield weights * Added construction Added a construction and construction group for the grid 3D printer * Gun adjustments Made the carbon fiber rifle use any STANAG magazine, and made the carbon fiber magazine able to be used with any STANAG rifle. Removed the carbon fiber pistol magazine and made the carbon fiber machine pistol use glock magazines instead, which I added recipes for. * Update data/json/items/melee/unarmed_weapons.json Co-authored-by: Chaosvolt * Update data/json/items/ranged/crossbows.json * Update data/json/items/tool/science.json * Added itemgroups Added the various new carbon fiber items to itemgroups. * style(autofix.ci): automated formatting * Apply suggestions from code review * Fixes * Fix fix * Fix?? * Fix carbon pistol issue * Update iteminfo_test.cpp * Update iteminfo_test.cpp --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Chaosvolt --- data/json/construction.json | 14 ++++ data/json/construction_group.json | 5 ++ .../furniture-appliances.json | 66 +++++++++++++++++++ data/json/itemgroups/Clothing_Gear/gear.json | 1 + .../Locations_MapExtras/locations.json | 1 + .../locations_commercial.json | 4 ++ .../locations_mapextras.json | 1 + .../Locations_MapExtras/mall_item_groups.json | 1 + .../Weapons_Mods_Ammo/everydaycarry_guns.json | 22 +++++++ .../itemgroups/Weapons_Mods_Ammo/guns.json | 10 +++ .../Weapons_Mods_Ammo/nested_guns.json | 26 ++++++++ .../Weapons_Mods_Ammo/weapons_misc.json | 3 + .../json/itemgroups/collections_domestic.json | 1 + data/json/itemgroups/defense_mode.json | 4 ++ data/json/itemgroups/electronics.json | 2 + data/json/itemgroups/main.json | 1 + data/json/itemgroups/tools.json | 1 + data/json/items/armor/arms_armor.json | 9 +++ data/json/items/armor/boots.json | 10 +++ data/json/items/armor/gloves.json | 10 +++ data/json/items/armor/helmets.json | 9 +++ data/json/items/armor/legs_armor.json | 9 +++ data/json/items/armor/shields.json | 19 ++++++ data/json/items/armor/suits_protection.json | 9 +++ data/json/items/armor/torso_armor.json | 9 +++ data/json/items/fake.json | 55 ++++++++++++++++ data/json/items/gun/223.json | 52 ++++++++++++++- data/json/items/gun/300BLK.json | 4 +- data/json/items/gun/9mm.json | 20 ++++++ data/json/items/magazine/223.json | 17 +++++ .../json/items/melee/spears_and_polearms.json | 9 +++ data/json/items/melee/swords_and_blades.json | 18 +++++ data/json/items/melee/unarmed_weapons.json | 18 +++++ data/json/items/ranged/archery.json | 2 +- data/json/items/ranged/crossbows.json | 21 +++++- data/json/items/ranged/spearguns.json | 2 +- data/json/items/tool/science.json | 45 +++++++++++++ data/json/items/vehicle/boat.json | 2 +- data/json/materials.json | 21 ++++++ data/json/npcs/NC_ARSONIST.json | 2 + data/json/recipes/ammo/arrows.json | 26 ++++++++ data/json/recipes/armor/arms.json | 13 ++++ data/json/recipes/armor/feet.json | 13 ++++ data/json/recipes/armor/hands.json | 13 ++++ data/json/recipes/armor/head.json | 14 ++++ data/json/recipes/armor/legs.json | 13 ++++ data/json/recipes/armor/other.json | 27 ++++++++ data/json/recipes/armor/suit.json | 26 ++++++++ data/json/recipes/armor/torso.json | 13 ++++ data/json/recipes/electronic/tools.json | 23 +++++++ data/json/recipes/other/containers.json | 41 ++++++++++++ data/json/recipes/weapon/cutting.json | 26 ++++++++ data/json/recipes/weapon/magazines.json | 39 +++++++++++ data/json/recipes/weapon/piercing.json | 38 +++++++++++ data/json/recipes/weapon/ranged.json | 39 +++++++++++ tests/iteminfo_test.cpp | 4 +- 56 files changed, 895 insertions(+), 8 deletions(-) diff --git a/data/json/construction.json b/data/json/construction.json index 6ebe37c294d2..cfb65aa8223c 100644 --- a/data/json/construction.json +++ b/data/json/construction.json @@ -5079,5 +5079,19 @@ "pre_note": "Will only work if constructed in/on a building that has an electric grid with a mounted battery.", "pre_furniture": "f_street_light", "post_furniture": "f_street_light_rewired_off" + }, + { + "type": "construction", + "id": "constr_grid3dprinter_basic", + "group": "place_3d_printer_basic", + "category": "WORKSHOP", + "required_skills": [ [ "electronics", 1 ] ], + "time": "30 m", + "qualities": [ [ { "id": "SCREW", "level": 1 } ] ], + "using": [ [ "soldering_standard", 20 ] ], + "components": [ [ [ "3d_printer_basic", 1 ] ], [ [ "cable", 5 ] ], [ [ "power_supply", 1 ] ] ], + "pre_note": "Will only work if constructed in/on a building that has an electric grid with a mounted battery.", + "pre_special": "check_empty", + "post_furniture": "f_3d_printer" } ] diff --git a/data/json/construction_group.json b/data/json/construction_group.json index 62e70608b54d..ba18d83fd130 100644 --- a/data/json/construction_group.json +++ b/data/json/construction_group.json @@ -1009,6 +1009,11 @@ "id": "install_plut_generator", "name": "Install Plutonium Generator" }, + { + "type": "construction_group", + "id": "place_3d_printer_basic", + "name": "Place 3D Printer" + }, { "type": "construction_group", "id": "place_ac_unit", diff --git a/data/json/furniture_and_terrain/furniture-appliances.json b/data/json/furniture_and_terrain/furniture-appliances.json index b97c3ad87493..3c5a123c086e 100644 --- a/data/json/furniture_and_terrain/furniture-appliances.json +++ b/data/json/furniture_and_terrain/furniture-appliances.json @@ -2414,5 +2414,71 @@ ] }, "active": [ "steady_consumer", { "power": -1, "consume_every": "3 s" } ] + }, + { + "type": "furniture", + "id": "f_3d_printer", + "looks_like": "3d_printer_basic", + "name": "grid 3D printer", + "symbol": "=", + "description": "A 3D printer connected to a electrical grid.", + "color": "blue", + "move_cost_mod": -1, + "coverage": 10, + "required_str": -1, + "crafting_pseudo_item": [ "fake_3d_printer" ], + "flags": [ "TRANSPARENT", "MOUNTABLE", "EASY_DECONSTRUCT" ], + "deconstruct": { + "items": [ + { "item": "solder_wire", "charges": 20 }, + { "item": "3d_printer_basic", "count": 1 }, + { "item": "cable", "charges": 5 }, + { "item": "power_supply", "count": 1 } + ] + }, + "bash": { + "str_min": 8, + "str_max": 30, + "sound": "metal screeching!", + "sound_fail": "clang!", + "items": [ + { "item": "solder_wire", "charges": [ 10, 20 ] }, + { "item": "scrap", "count": [ 0, 2 ] }, + { "item": "cable", "charges": [ 1, 4 ] } + ] + } + }, + { + "type": "furniture", + "id": "f_3d_printer_advanced", + "looks_like": "3d_printer_advanced", + "name": "grid 3D printer (advanced)", + "symbol": "=", + "description": "An advanced 3D printer connected to a electrical grid.", + "color": "blue", + "move_cost_mod": -1, + "coverage": 10, + "required_str": -1, + "crafting_pseudo_item": [ "fake_3d_printer_advanced" ], + "flags": [ "TRANSPARENT", "MOUNTABLE", "EASY_DECONSTRUCT" ], + "deconstruct": { + "items": [ + { "item": "solder_wire", "charges": 20 }, + { "item": "3d_printer_advanced", "count": 1 }, + { "item": "cable", "charges": 5 }, + { "item": "power_supply", "count": 1 } + ] + }, + "bash": { + "str_min": 8, + "str_max": 30, + "sound": "metal screeching!", + "sound_fail": "clang!", + "items": [ + { "item": "solder_wire", "charges": [ 10, 20 ] }, + { "item": "scrap", "count": [ 0, 2 ] }, + { "item": "cable", "charges": [ 1, 4 ] } + ] + } } ] diff --git a/data/json/itemgroups/Clothing_Gear/gear.json b/data/json/itemgroups/Clothing_Gear/gear.json index 5401f215a061..2faaf992b8ad 100644 --- a/data/json/itemgroups/Clothing_Gear/gear.json +++ b/data/json/itemgroups/Clothing_Gear/gear.json @@ -22,6 +22,7 @@ [ "torso_bandolier_shotgun", 8 ], [ "kevlar", 20 ], [ "knife_combat", 10 ], + [ "knife_carbon", 10 ], [ "legpouch_large", 5 ], [ "mask_bal", 10 ], [ "mask_gas", 10 ], diff --git a/data/json/itemgroups/Locations_MapExtras/locations.json b/data/json/itemgroups/Locations_MapExtras/locations.json index 39649f798270..e335c04ba79a 100644 --- a/data/json/itemgroups/Locations_MapExtras/locations.json +++ b/data/json/itemgroups/Locations_MapExtras/locations.json @@ -1450,6 +1450,7 @@ { "item": "brewing_cookbook", "prob": 3 }, { "item": "recipe_bullets", "prob": 1 }, { "item": "knife_combat", "prob": 14 }, + { "item": "knife_carbon", "prob": 14 }, { "item": "knife_rm42", "prob": 2 }, { "item": "kukri", "prob": 2 }, { "item": "knife_hunting", "prob": 4 }, diff --git a/data/json/itemgroups/Locations_MapExtras/locations_commercial.json b/data/json/itemgroups/Locations_MapExtras/locations_commercial.json index 5695be55be85..d96a1b5aeb65 100644 --- a/data/json/itemgroups/Locations_MapExtras/locations_commercial.json +++ b/data/json/itemgroups/Locations_MapExtras/locations_commercial.json @@ -251,6 +251,7 @@ [ "bullwhip", 3 ], [ "bowhat", 10 ], [ "cowboy_hat", 10 ], + [ "3d_printer_basic", 5 ], [ "10gal_hat", 5 ], [ "hat_chef", 5 ], [ "jacket_chef", 5 ], @@ -289,6 +290,7 @@ [ "ax", 8 ], [ "knife_butcher", 10 ], [ "knife_combat", 14 ], + [ "knife_carbon", 14 ], [ "knife_rm42", 1 ], [ "kukri", 2 ], [ "knife_hunting", 8 ], @@ -1575,6 +1577,7 @@ [ "multi_cooker", 15 ], [ "coffeemaker", 45 ], [ "water_purifier", 15 ], + [ "3d_printer_basic", 25 ], [ "dehydrator", 30 ], [ "vac_sealer", 45 ], [ "forge", 5 ], @@ -1684,6 +1687,7 @@ { "group": "ammo_pocket_batteries_full", "prob": 20 }, [ "radio", 20 ], [ "television", 20 ], + [ "3d_printer_basic", 10 ], [ "two_way_radio", 20 ], [ "noise_emitter", 20 ], [ "eyedrops", 20 ], diff --git a/data/json/itemgroups/Locations_MapExtras/locations_mapextras.json b/data/json/itemgroups/Locations_MapExtras/locations_mapextras.json index 78046eda0e7a..06fa91e6bd4b 100644 --- a/data/json/itemgroups/Locations_MapExtras/locations_mapextras.json +++ b/data/json/itemgroups/Locations_MapExtras/locations_mapextras.json @@ -39,6 +39,7 @@ [ "nailboard", 5 ], [ "caltrops", 3 ], [ "knife_combat", 14 ], + [ "knife_carbon", 14 ], [ "kukri", 2 ], [ "knife_hunting", 4 ], [ "knife_heat", 4 ], diff --git a/data/json/itemgroups/Locations_MapExtras/mall_item_groups.json b/data/json/itemgroups/Locations_MapExtras/mall_item_groups.json index 8dbccdd8a8fc..a39b39b509fd 100644 --- a/data/json/itemgroups/Locations_MapExtras/mall_item_groups.json +++ b/data/json/itemgroups/Locations_MapExtras/mall_item_groups.json @@ -146,6 +146,7 @@ "items": [ [ "knife_butcher", 20 ], [ "knife_combat", 35 ], + [ "knife_carbon", 35 ], [ "throwing_knife", 10 ], [ "pockknife", 50 ], [ "punch_dagger", 10 ], diff --git a/data/json/itemgroups/Weapons_Mods_Ammo/everydaycarry_guns.json b/data/json/itemgroups/Weapons_Mods_Ammo/everydaycarry_guns.json index 3ef337bab7fc..ca1af8babf3d 100644 --- a/data/json/itemgroups/Weapons_Mods_Ammo/everydaycarry_guns.json +++ b/data/json/itemgroups/Weapons_Mods_Ammo/everydaycarry_guns.json @@ -2317,5 +2317,27 @@ "//": "this is a distribution for the gun, reasonable number of backup mags, and some ammo to repack", "subtype": "collection", "entries": [ { "item": "mgl", "ammo-group": "on_hand_40x46mm", "charges": [ 0, 6 ] }, { "group": "on_hand_40x46mm" } ] + }, + { + "id": "everyday_carbon_pistol", + "type": "item_group", + "//": "this is a distribution for the gun, reasonable number of backup mags, and some ammo to repack", + "subtype": "collection", + "entries": [ + { "item": "carbon_pistol", "charges-min": 0, "charges-max": 15 }, + { "group": "nested_glock17_mag", "charges-min": 0 }, + { "group": "nested_glock17_mag", "charges-min": 0, "prob": 50 } + ] + }, + { + "id": "everyday_carbon_rifle", + "type": "item_group", + "//": "this is a distribution for the gun, reasonable number of backup mags, and some ammo to repack", + "subtype": "collection", + "entries": [ + { "item": "carbon_rifle", "ammo-item": "556_incendiary", "charges": [ 0, 30 ] }, + { "group": "nested_stanag_mag", "charges-min": 0 }, + { "group": "nested_stanag_mag", "charges-min": 0, "prob": 50 } + ] } ] diff --git a/data/json/itemgroups/Weapons_Mods_Ammo/guns.json b/data/json/itemgroups/Weapons_Mods_Ammo/guns.json index 3e25d9786cff..31a696969906 100644 --- a/data/json/itemgroups/Weapons_Mods_Ammo/guns.json +++ b/data/json/itemgroups/Weapons_Mods_Ammo/guns.json @@ -40,6 +40,7 @@ { "group": "nested_hptjhp", "prob": 1 }, { "group": "nested_cz75", "prob": 18 }, { "group": "nested_walther_ccp", "prob": 8 }, + { "group": "nested_carbon_pistol", "prob": 3 }, { "group": "nested_walther_p22", "prob": 13 } ] }, @@ -139,6 +140,7 @@ { "group": "nested_deagle_44", "prob": 35 }, { "group": "nested_m1911a1_38super", "prob": 25 }, { "group": "nested_fn57", "prob": 80 }, + { "group": "nested_carbon_pistol", "prob": 25 }, { "group": "nested_ruger_lcr_22", "prob": 35 }, { "group": "nested_ruger_redhawk", "prob": 25 }, { "group": "nested_sig_40", "prob": 35 }, @@ -161,6 +163,7 @@ { "group": "everyday_deagle_44", "prob": 35 }, { "group": "everyday_m1911a1_38super", "prob": 25 }, { "group": "everyday_fn57", "prob": 80 }, + { "group": "everyday_carbon_pistol", "prob": 25 }, { "group": "everyday_ruger_lcr_22", "prob": 35 }, { "group": "everyday_ruger_redhawk", "prob": 25 }, { "group": "everyday_sig_40", "prob": 35 }, @@ -203,6 +206,7 @@ { "group": "nested_usp_45", "prob": 15 }, { "group": "nested_m1911_MEU", "prob": 5 }, { "group": "nested_glock_19", "prob": 20 }, + { "group": "nested_carbon_pistol", "prob": 15 }, { "group": "nested_needlepistol", "prob": 45 }, { "group": "nested_rm103a_pistol", "prob": 35 } ] @@ -218,6 +222,7 @@ { "group": "everyday_usp_45", "prob": 15 }, { "group": "everyday_m1911_MEU", "prob": 5 }, { "group": "everyday_glock_19", "prob": 20 }, + { "group": "everyday_carbon_pistol", "prob": 15 }, { "group": "everyday_needlepistol", "prob": 45 }, { "group": "everyday_rm103a_pistol", "prob": 35 } ] @@ -520,6 +525,7 @@ { "group": "nested_hk_g36", "prob": 30 }, { "group": "nested_henry_big_boy", "prob": 10 }, { "group": "nested_m14ebr", "prob": 15 }, + { "group": "nested_carbon_rifle", "prob": 25 }, { "group": "nested_M24", "prob": 15 }, { "group": "nested_m4a1", "prob": 45 }, { "group": "nested_m1903", "prob": 15 }, @@ -547,6 +553,7 @@ { "group": "everyday_hk_g36", "prob": 30 }, { "group": "everyday_henry_big_boy", "prob": 10 }, { "group": "everyday_m14ebr", "prob": 15 }, + { "group": "everyday_carbon_rifle", "prob": 25 }, { "group": "everyday_M24", "prob": 15 }, { "group": "everyday_m4a1", "prob": 45 }, { "group": "everyday_m1903", "prob": 15 }, @@ -570,6 +577,7 @@ { "item": "acr", "prob": 25, "charges-min": 0, "charges-max": 0 }, { "item": "colt_lightning", "prob": 15, "charges-min": 0, "charges-max": 0 }, { "item": "fn_fal", "prob": 40, "charges-min": 0, "charges-max": 0 }, + { "item": "carbon_rifle", "prob": 20, "charges-min": 0, "charges-max": 0 }, { "item": "hk_g3", "prob": 40, "charges-min": 0, "charges-max": 0 }, { "item": "hk_g36", "prob": 30, "charges-min": 0, "charges-max": 0 }, { "item": "henry_big_boy", "prob": 10, "charges-min": 0, "charges-max": 0 }, @@ -1165,6 +1173,8 @@ "items": [ { "group": "guns_improvised", "prob": 200 }, { "group": "everyday_ar15", "prob": 5 }, + { "group": "everyday_carbon_rifle", "prob": 5 }, + { "group": "everyday_carbon_pistol", "prob": 5 }, { "group": "everyday_ar_pistol", "prob": 3 }, { "group": "everyday_mossberg_500", "prob": 5 }, { "group": "everyday_remington_870", "prob": 5 }, diff --git a/data/json/itemgroups/Weapons_Mods_Ammo/nested_guns.json b/data/json/itemgroups/Weapons_Mods_Ammo/nested_guns.json index 0023d8ac0dfa..47ca8987e839 100644 --- a/data/json/itemgroups/Weapons_Mods_Ammo/nested_guns.json +++ b/data/json/itemgroups/Weapons_Mods_Ammo/nested_guns.json @@ -2373,5 +2373,31 @@ { "item": "as50mag", "ammo-group": "on_hand_50", "prob": 50 }, { "group": "on_hand_50" } ] + }, + { + "id": "nested_carbon_pistol", + "type": "item_group", + "//": "this is a distribution for the gun, reasonable number of backup mags, and some ammo to repack", + "subtype": "collection", + "ammo": 100, + "entries": [ + { "item": "carbon_pistol", "charges-min": 0, "charges-max": 15 }, + { "item": "glockmag" }, + { "item": "glockmag", "prob": 50 }, + { "group": "on_hand_9mm" } + ] + }, + { + "id": "nested_carbon_rifle", + "type": "item_group", + "//": "this is a distribution for the gun, reasonable number of backup mags, and some ammo to repack", + "subtype": "collection", + "ammo": 100, + "entries": [ + { "item": "carbon_rifle", "charges-min": 0, "charges-max": 30 }, + { "item": "carbonmag_223" }, + { "item": "carbonmag_223", "prob": 50 }, + { "group": "on_hand_223" } + ] } ] diff --git a/data/json/itemgroups/Weapons_Mods_Ammo/weapons_misc.json b/data/json/itemgroups/Weapons_Mods_Ammo/weapons_misc.json index 12319ed08aa5..ca3bf759ed68 100644 --- a/data/json/itemgroups/Weapons_Mods_Ammo/weapons_misc.json +++ b/data/json/itemgroups/Weapons_Mods_Ammo/weapons_misc.json @@ -12,8 +12,10 @@ [ "hatchet", 10 ], [ "ax", 8 ], [ "knife_combat", 14 ], + [ "knife_carbon", 14 ], [ "kukri", 2 ], [ "knife_hunting", 4 ], + [ "knife_carbon", 4 ], [ "knife_heat", 2 ], [ "knife_rambo", 8 ], [ "knife_rm42", 2 ], @@ -40,6 +42,7 @@ [ "wakizashi", 3 ], [ "nodachi", 1 ], [ "katana", 2 ], + [ "sword_carbon", 2 ], [ "survnote", 1 ] ] }, diff --git a/data/json/itemgroups/collections_domestic.json b/data/json/itemgroups/collections_domestic.json index cc786c5a6b8e..5b7050abfe1a 100644 --- a/data/json/itemgroups/collections_domestic.json +++ b/data/json/itemgroups/collections_domestic.json @@ -1053,6 +1053,7 @@ [ "cavalry_sabre", 1 ], [ "cavalry_sabre_fake", 20 ], [ "katana", 1 ], + [ "sword_carbon", 20 ], [ "katana_fake", 20 ], [ "katana_inferior", 2 ], [ "cutlass", 1 ], diff --git a/data/json/itemgroups/defense_mode.json b/data/json/itemgroups/defense_mode.json index 1b6c4c3cca99..df46c23eeef8 100644 --- a/data/json/itemgroups/defense_mode.json +++ b/data/json/itemgroups/defense_mode.json @@ -11,9 +11,12 @@ { "item": "hammer_sledge" }, { "item": "hatchet" }, { "item": "knife_combat" }, + { "item": "knife_carbon" }, { "item": "rapier" }, { "item": "machete" }, { "item": "katana" }, + { "item": "sword_carbon" }, + { "item": "spear_carbon" }, { "item": "spear_knife" }, { "item": "pike" }, { "item": "chainsaw_off" } @@ -25,6 +28,7 @@ "subtype": "collection", "items": [ { "item": "crossbow" }, + { "item": "crossbow_carbon" }, { "item": "marlin_9a" }, { "item": "hk_mp5" }, { "item": "taurus_spectrum" }, diff --git a/data/json/itemgroups/electronics.json b/data/json/itemgroups/electronics.json index 8a1fda03fa9b..459a64fa622b 100644 --- a/data/json/itemgroups/electronics.json +++ b/data/json/itemgroups/electronics.json @@ -17,6 +17,7 @@ [ "solar_cell", 5 ], [ "screwdriver", 40 ], [ "screwdriver_set", 40 ], + [ "3d_printer_basic", 10 ], [ "mask_dust", 65 ], [ "glasses_safety", 40 ], [ "goggles_welding", 70 ], @@ -69,6 +70,7 @@ [ "screwdriver_set", 40 ], [ "processor", 15 ], [ "RAM", 22 ], + [ "3d_printer_basic", 10 ], [ "mp3", 18 ], [ "portable_game", 12 ], [ "game_watch", 3 ], diff --git a/data/json/itemgroups/main.json b/data/json/itemgroups/main.json index c383c8d60ae8..e2c5212908f7 100644 --- a/data/json/itemgroups/main.json +++ b/data/json/itemgroups/main.json @@ -250,6 +250,7 @@ "entries": [ { "item": "crossbow", "prob": 70 }, { "item": "compcrossbow", "prob": 10 }, + { "item": "crossbow_carbon", "prob": 10 }, { "item": "bullet_crossbow", "prob": 10 }, { "item": "hand_crossbow", "prob": 10 }, { "item": "longbow", "prob": 40 }, diff --git a/data/json/itemgroups/tools.json b/data/json/itemgroups/tools.json index 27408bbac499..0cc257b6f30f 100644 --- a/data/json/itemgroups/tools.json +++ b/data/json/itemgroups/tools.json @@ -414,6 +414,7 @@ [ "hygrometer", 3 ], [ "barometer", 3 ], [ "camera", 3 ], + [ "3d_printer_basic", 3 ], [ "flask_glass", 10 ], [ "bottle_glass", 10 ], [ "thermos", 5 ], diff --git a/data/json/items/armor/arms_armor.json b/data/json/items/armor/arms_armor.json index 203a16c59d49..d12ef671c390 100644 --- a/data/json/items/armor/arms_armor.json +++ b/data/json/items/armor/arms_armor.json @@ -295,5 +295,14 @@ "environmental_protection": 1, "valid_mods": [ "steel_padded", "alloy_padded", "resized_large" ], "flags": [ "STURDY", "BELTED", "WATER_FRIENDLY" ] + }, + { + "id": "carbon_armguard", + "type": "ARMOR", + "name": { "str": "carbon fiber arm guards" }, + "description": "Custom armguards of layered carbon fiber armor made using a 3D printer. Its rigid plates are more comparable to a suit of armor than kevlar, but it's very protective and lightweight.", + "copy-from": "armguard_lightplate", + "material": [ "carbon_fiber" ], + "proportional": { "weight": 0.6, "price": 2, "price_postapoc": 2 } } ] diff --git a/data/json/items/armor/boots.json b/data/json/items/armor/boots.json index dbf69ee3ec0d..aa7fbd522019 100644 --- a/data/json/items/armor/boots.json +++ b/data/json/items/armor/boots.json @@ -1465,5 +1465,15 @@ "warmth": 15, "material_thickness": 2, "encumbrance": 3 + }, + { + "id": "carbon_boots", + "type": "ARMOR", + "name": { "str": "carbon fiber boots" }, + "description": "A custom pair of boots made out of layered carbon fiber armor made using a 3D printer. Its rigid plates are more comparable to a suit of armor than kevlar, but it's very protective and lightweight.", + "copy-from": "boots_plarmor", + "encumbrance": 22, + "material": [ "carbon_fiber" ], + "proportional": { "weight": 0.6, "price": 2, "price_postapoc": 2 } } ] diff --git a/data/json/items/armor/gloves.json b/data/json/items/armor/gloves.json index c2706000a885..c416652b706b 100644 --- a/data/json/items/armor/gloves.json +++ b/data/json/items/armor/gloves.json @@ -993,5 +993,15 @@ "warmth": 20, "material_thickness": 1, "flags": [ "VARSIZE", "WATERPROOF", "SKINTIGHT" ] + }, + { + "id": "carbon_gloves", + "type": "ARMOR", + "name": { "str": "carbon fiber gloves" }, + "description": "A custom pair of fingerless armored gloves made using a 3D printer. Its rigid plates are more comparable to metal than kevlar, but it's very protective and lightweight.", + "copy-from": "gloves_plate", + "material": [ "carbon_fiber" ], + "extend": { "flags": [ "ALLOWS_NATURAL_ATTACKS" ] }, + "proportional": { "weight": 0.6, "price": 2, "price_postapoc": 2 } } ] diff --git a/data/json/items/armor/helmets.json b/data/json/items/armor/helmets.json index 363b2e3693e9..54ef9ce2baa2 100644 --- a/data/json/items/armor/helmets.json +++ b/data/json/items/armor/helmets.json @@ -760,5 +760,14 @@ "material_thickness": 2, "techniques": [ "WBLOCK_1" ], "flags": [ "OVERSIZE" ] + }, + { + "id": "carbon_helmet", + "type": "ARMOR", + "name": { "str": "carbon fiber helmet" }, + "description": "A custom helmet of layered carbon fiber armor made using a 3D printer. Its rigid plates are more comparable to a suit of armor than kevlar, but it's very protective and lightweight.", + "copy-from": "helmet_survivor", + "material": [ "carbon_fiber" ], + "proportional": { "weight": 0.6, "price": 2, "price_postapoc": 2 } } ] diff --git a/data/json/items/armor/legs_armor.json b/data/json/items/armor/legs_armor.json index 1b0e4acac2b5..1a93f70d187f 100644 --- a/data/json/items/armor/legs_armor.json +++ b/data/json/items/armor/legs_armor.json @@ -386,5 +386,14 @@ "material": [ "leather", "iron" ], "price_postapoc": "175 cent", "encumbrance": 6 + }, + { + "id": "carbon_legguard", + "type": "ARMOR", + "name": { "str": "carbon fiber leg guards" }, + "description": "Custom legs of layered carbon fiber armor made using a 3D printer. Its rigid plates are more comparable to a suit of armor than kevlar, but it's very protective and lightweight.", + "copy-from": "legguard_lightplate", + "material": [ "carbon_fiber" ], + "proportional": { "weight": 0.6, "price": 2, "price_postapoc": 2 } } ] diff --git a/data/json/items/armor/shields.json b/data/json/items/armor/shields.json index cd7b3002412d..29a13c4c5fe3 100644 --- a/data/json/items/armor/shields.json +++ b/data/json/items/armor/shields.json @@ -254,5 +254,24 @@ "bashing": 10, "cutting": 10, "encumbrance": 30 + }, + { + "id": "carbon_buckler", + "type": "ARMOR", + "name": { "str": "carbon fiber buckler" }, + "description": "A custom buckler made out of layered carbon fiber armor over synthetic fabric padding made using a 3D printer. Its rigid plates are more comparable to a sheet of metal than kevlar, but it's very protective and lightweight.", + "copy-from": "shield_buckler", + "encumbrance": 5, + "material": [ "carbon_fiber" ], + "proportional": { "weight": 0.6, "price": 2, "price_postapoc": 2 } + }, + { + "id": "carbon_shield", + "type": "ARMOR", + "name": { "str": "carbon fiber ballistic shield" }, + "description": "A custom ballistic shield made out of layered carbon fiber armor over synthetic fabric padding made using a 3D printer. Its rigid plates are more comparable to a sheet of metal than kevlar, but it's very protective and lightweight.", + "copy-from": "shield_riot", + "material": [ "carbon_fiber" ], + "proportional": { "weight": 0.6, "encumbrance": 0.7, "price": 2, "price_postapoc": 2 } } ] diff --git a/data/json/items/armor/suits_protection.json b/data/json/items/armor/suits_protection.json index 8b46cf8dc538..b3df143e89ff 100644 --- a/data/json/items/armor/suits_protection.json +++ b/data/json/items/armor/suits_protection.json @@ -831,6 +831,15 @@ "environmental_protection": 5, "flags": [ "VARSIZE", "WATERPROOF", "POCKETS", "HOOD", "RAINPROOF", "STURDY" ] }, + { + "id": "armor_carbonplate", + "type": "ARMOR", + "name": { "str": "carbon fiber armor" }, + "description": "A custom suit of layered carbon fiber armor over neoprene padding made using a 3D printer. Its rigid plates are more comparable to a suit of armor than kevlar, but it's very protective and moves surprisingly well.", + "copy-from": "armor_lightplate", + "material": [ "carbon_fiber" ], + "proportional": { "weight": 0.6, "price": 2, "price_postapoc": 2 } + }, { "id": "exosuit_survivor", "type": "TOOL_ARMOR", diff --git a/data/json/items/armor/torso_armor.json b/data/json/items/armor/torso_armor.json index 782ab6b62dad..a503d19a1875 100644 --- a/data/json/items/armor/torso_armor.json +++ b/data/json/items/armor/torso_armor.json @@ -430,5 +430,14 @@ "material_thickness": 3, "environmental_protection": 1, "flags": [ "VARSIZE", "POCKETS", "OUTER" ] + }, + { + "id": "carbon_chestguard", + "type": "ARMOR", + "name": { "str": "carbon fiber chestguard" }, + "description": "A custom chestplate of layered carbon fiber armor made using a 3D printer. Its rigid plates are more comparable to a suit of armor than kevlar, but it's very protective and lightweight.", + "copy-from": "cuirass_lightplate", + "material": [ "carbon_fiber" ], + "proportional": { "weight": 0.6, "price": 2, "price_postapoc": 2 } } ] diff --git a/data/json/items/fake.json b/data/json/items/fake.json index 5d5037e5ca96..c40a75b71b75 100644 --- a/data/json/items/fake.json +++ b/data/json/items/fake.json @@ -347,5 +347,60 @@ "sub": "autoclave", "max_charges": 1000, "flags": [ "USES_GRID_POWER" ] + }, + { + "id": "fake_3d_printer", + "copy-from": "fake_item", + "looks_like": "3d_printer_basic", + "type": "TOOL", + "name": { "str": "Grid 3D Printer" }, + "sub": "3d_printer_basic", + "max_charges": 2500, + "use_action": [ + { + "type": "repair_item", + "item_action_type": "repair_metal", + "materials": [ "plastic", "carbon_fiber" ], + "skill": "computer", + "cost_scaling": 0.1, + "move_cost": 1500 + } + ], + "flags": [ "USES_GRID_POWER" ] + }, + { + "id": "fake_3d_printer_advanced", + "copy-from": "fake_item", + "looks_like": "3d_printer_advanced", + "type": "TOOL", + "name": { "str": "Advanced Grid 3D Printer" }, + "sub": "3d_printer_advanced", + "charges_per_use": 1, + "max_charges": 2500, + "use_action": [ + { + "type": "repair_item", + "item_action_type": "repair_metal", + "materials": [ + "iron", + "steel", + "hardsteel", + "aluminum", + "copper", + "bronze", + "silver", + "gold", + "platinum", + "superalloy", + "glass", + "plastic", + "carbon_fiber" + ], + "skill": "computer", + "cost_scaling": 0.1, + "move_cost": 1500 + } + ], + "flags": [ "USES_GRID_POWER" ] } ] diff --git a/data/json/items/gun/223.json b/data/json/items/gun/223.json index aad9d6a0d79a..66886e05b7d8 100644 --- a/data/json/items/gun/223.json +++ b/data/json/items/gun/223.json @@ -34,6 +34,7 @@ "stanag100", "stanag100drum", "stanag150", + "carbonmag_223", "survivor223mag" ] ] @@ -73,6 +74,7 @@ "stanag100", "stanag100drum", "stanag150", + "carbonmag_223", "survivor223mag" ] ] @@ -115,6 +117,7 @@ "stanag100", "stanag100drum", "stanag150", + "carbonmag_223", "survivor223mag" ] ] @@ -188,6 +191,7 @@ "stanag100", "stanag100drum", "stanag150", + "carbonmag_223", "survivor223mag" ] ] @@ -262,6 +266,7 @@ "stanag100", "stanag100drum", "stanag150", + "carbonmag_223", "survivor223mag" ] ] @@ -292,6 +297,7 @@ "stanag100", "stanag100drum", "stanag150", + "carbonmag_223", "survivor223mag" ] ] @@ -334,6 +340,7 @@ "stanag100", "stanag100drum", "stanag150", + "carbonmag_223", "survivor223mag" ] ] @@ -373,6 +380,7 @@ "stanag100", "stanag100drum", "stanag150", + "carbonmag_223", "survivor223mag" ] ] @@ -409,7 +417,7 @@ "dispersion": 380, "durability": 6, "min_cycle_recoil": 1350, - "magazines": [ [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ] + "magazines": [ [ "223", [ "stanag30", "stanag50", "carbonmag_223", "survivor223mag" ] ] ] }, { "id": "rifle_223", @@ -496,6 +504,7 @@ "stanag100", "stanag100drum", "stanag150", + "carbonmag_223", "survivor223mag" ] ] @@ -536,6 +545,7 @@ "stanag100", "stanag100drum", "stanag150", + "carbonmag_223", "survivor223mag" ] ] @@ -614,6 +624,7 @@ "223", [ "survivor223mag", + "carbonmag_223", "stanag30", "stanag5", "stanag10", @@ -629,5 +640,44 @@ ] ] ] + }, + { + "id": "carbon_rifle", + "copy-from": "rifle_auto", + "looks_like": "ar15", + "type": "GUN", + "name": { "str": "carbon fiber assault rifle" }, + "description": "This assault rifle was made using a 3D printer, resulting in a very lightweight weapon.", + "weight": "1590 g", + "volume": "2 L", + "price": "2343 USD", + "price_postapoc": "60 USD", + "material": [ "carbon_fiber" ], + "color": "dark_gray", + "ammo": "223", + "dispersion": 150, + "min_cycle_recoil": 1350, + "modes": [ [ "DEFAULT", "semi", 1 ], [ "AUTO", "auto", 3 ] ], + "magazines": [ + [ + "223", + [ + "stanag30", + "stanag5", + "stanag10", + "stanag20", + "stanag40", + "stanag50", + "stanag60", + "stanag60drum", + "stanag90", + "stanag100", + "stanag100drum", + "stanag150", + "carbonmag_223", + "survivor223mag" + ] + ] + ] } ] diff --git a/data/json/items/gun/300BLK.json b/data/json/items/gun/300BLK.json index dc9aa9375018..6e4d0173d184 100644 --- a/data/json/items/gun/300BLK.json +++ b/data/json/items/gun/300BLK.json @@ -34,7 +34,8 @@ "stanag100", "stanag100drum", "stanag150", - "survivor223mag" + "survivor223mag", + "carbonmag_223" ] ] ] @@ -85,6 +86,7 @@ "stanag100", "stanag100drum", "stanag150", + "carbonmag_223", "survivor223mag" ] ] diff --git a/data/json/items/gun/9mm.json b/data/json/items/gun/9mm.json index dea9a3429f92..72261ce2ba80 100644 --- a/data/json/items/gun/9mm.json +++ b/data/json/items/gun/9mm.json @@ -640,5 +640,25 @@ "ammo": "9mm", "magazine_well": "250 ml", "magazines": [ [ "9mm", [ "ccpmag" ] ] ] + }, + { + "id": "carbon_pistol", + "copy-from": "pistol_base", + "looks_like": "90two", + "type": "GUN", + "name": { "str": "carbon fiber machine pistol" }, + "description": "This 3D printed machine pistol is made completely without any metal parts. As a result, it is very lightweight.", + "material": [ "carbon_fiber" ], + "durability": 3, + "weight": "370 g", + "volume": "600 ml", + "price": "50 USD", + "price_postapoc": "25 USD", + "to_hit": -2, + "color": "dark_gray", + "ammo": "9mm", + "magazine_well": "250 ml", + "magazines": [ [ "9mm", [ "glockmag", "glockbigmag" ] ] ], + "modes": [ [ "DEFAULT", "semi", 1 ], [ "AUTO", "auto", 3 ] ] } ] diff --git a/data/json/items/magazine/223.json b/data/json/items/magazine/223.json index d1707462dd80..8f9277af28bc 100644 --- a/data/json/items/magazine/223.json +++ b/data/json/items/magazine/223.json @@ -420,5 +420,22 @@ "name": { "str": "Ruger makeshift magazine" }, "description": "An improvised 5-round straight single-stack box magazine consisting of little more than a bent sheet of steel held together by duct tape and hope, for use with the Ruger Mini-14 rifle.", "ammo_type": "223" + }, + { + "id": "carbonmag_223", + "type": "MAGAZINE", + "name": { "str": "carbon fiber .223 30-round magazine" }, + "description": "A standard capacity 30-round box magazine for use with 3D printed carbon fiber rifles, though it will fit with just about any STANAG rifle.", + "weight": "145 g", + "volume": "500 ml", + "price": "80 USD", + "price_postapoc": "250 cent", + "material": "carbon_fiber", + "symbol": "#", + "color": "light_gray", + "ammo_type": [ "223", "300blk" ], + "capacity": 30, + "reliability": 8, + "flags": [ "MAG_COMPACT" ] } ] diff --git a/data/json/items/melee/spears_and_polearms.json b/data/json/items/melee/spears_and_polearms.json index f428bf16a89e..006460292119 100644 --- a/data/json/items/melee/spears_and_polearms.json +++ b/data/json/items/melee/spears_and_polearms.json @@ -587,5 +587,14 @@ "color": "yellow", "techniques": [ "WBLOCK_1", "DEF_DISARM" ], "flags": [ "DURABLE_MELEE", "POLEARM", "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR", "SPEAR" ] + }, + { + "id": "spear_carbon", + "type": "GENERIC", + "copy-from": "spear_steel", + "name": { "str": "carbon fiber spear" }, + "description": "A custom 3D-printed spear made out of carbon fiber. It is more lightweight than a normal spear thanks to its method of manufacturing, but it can only be repaired using a 3D printer.", + "material": [ "carbon_fiber" ], + "proportional": { "weight": 0.6, "price": 2, "price_postapoc": 2 } } ] diff --git a/data/json/items/melee/swords_and_blades.json b/data/json/items/melee/swords_and_blades.json index 6b6516515e17..f738f0c1d433 100644 --- a/data/json/items/melee/swords_and_blades.json +++ b/data/json/items/melee/swords_and_blades.json @@ -1774,5 +1774,23 @@ "use_action": "HOTPLATE", "qualities": [ [ "CUT", 1 ], [ "CUT_FINE", 1 ], [ "BUTCHER", 30 ] ], "flags": [ "STAB", "SHEATH_KNIFE", "LEAK_DAM", "RADIOACTIVE", "FLAMING" ] + }, + { + "id": "knife_carbon", + "type": "GENERIC", + "copy-from": "knife_combat", + "name": { "str": "carbon fiber knife" }, + "description": "A custom 3D-printed combat knife made out of carbon fiber. It is more lightweight than a normal knife thanks to its method of manufacturing, but it can only be repaired using a 3D printer.", + "weight": "300 g", + "material": [ "carbon_fiber" ] + }, + { + "id": "sword_carbon", + "type": "GENERIC", + "copy-from": "katana", + "name": { "str": "carbon fiber sword" }, + "description": "A custom 3D-printed single-bladed sword made out of carbon fiber. It is more lightweight than a normal sword thanks to its method of manufacturing, but it can only be repaired using a 3D printer.", + "material": [ "carbon_fiber" ], + "proportional": { "weight": 0.6, "price": 2, "price_postapoc": 2 } } ] diff --git a/data/json/items/melee/unarmed_weapons.json b/data/json/items/melee/unarmed_weapons.json index d07226a5fec9..ecca4b4f8098 100644 --- a/data/json/items/melee/unarmed_weapons.json +++ b/data/json/items/melee/unarmed_weapons.json @@ -202,5 +202,23 @@ "techniques": [ "WBLOCK_2", "DEF_DISARM" ], "qualities": [ [ "COOK", 1 ] ], "flags": [ "STAB", "DURABLE_MELEE", "UNARMED_WEAPON", "SHEATH_KNIFE" ] + }, + { + "id": "jamadhar_carbon", + "type": "GENERIC", + "copy-from": "jamadhar", + "name": { "str": "carbon fiber jamadhar" }, + "description": "A custom 3D-printed jamadhar made out of carbon fiber. It is more lightweight than a normal weapon thanks to its method of manufacturing, but it can only be repaired using a 3D printer.", + "material": [ "carbon_fiber" ], + "proportional": { "weight": 0.6, "price": 2, "price_postapoc": 2 } + }, + { + "id": "katar_carbon", + "type": "GENERIC", + "copy-from": "katar", + "name": { "str": "carbon fiber katar" }, + "description": "A custom 3D-printed katar made out of carbon fiber. It is more lightweight than a normal weapon thanks to its method of manufacturing, but it can only be repaired using a 3D printer.", + "material": [ "carbon_fiber" ], + "proportional": { "weight": 0.6, "price": 2, "price_postapoc": 2 } } ] diff --git a/data/json/items/ranged/archery.json b/data/json/items/ranged/archery.json index 54264c72f097..ad3c19ea2287 100644 --- a/data/json/items/ranged/archery.json +++ b/data/json/items/ranged/archery.json @@ -271,7 +271,7 @@ "color": "green", "looks_like": "arrow_fire_hardened_fletched", "description": "A fletched carbon fiber arrow shaft with an expanding broadhead tip. Deals impressive damage to targets. Stands a good chance of remaining intact once fired.", - "material": [ "kevlar_rigid", "steel" ], + "material": [ "carbon_fiber", "steel" ], "volume": "250 ml", "price_postapoc": "10 USD", "weight": "30 g", diff --git a/data/json/items/ranged/crossbows.json b/data/json/items/ranged/crossbows.json index 3a20a9306347..00711107b5a2 100644 --- a/data/json/items/ranged/crossbows.json +++ b/data/json/items/ranged/crossbows.json @@ -237,7 +237,7 @@ "color": "green", "looks_like": "bolt_steel", "description": "A fletched carbon fiber crossbow bolt shaft with an expanding broadhead tip. Deals impressive damage to targets. Stands a good chance of remaining intact once fired.", - "material": [ "kevlar_rigid", "steel" ], + "material": [ "carbon_fiber", "steel" ], "volume": "250 ml", "price_postapoc": "15 USD", "weight": "30 g", @@ -436,5 +436,24 @@ "clip_size": 10, "reload": 200, "valid_mod_locations": [ [ "sling", 1 ], [ "dampening", 1 ], [ "grip", 1 ], [ "mechanism", 1 ] ] + }, + { + "id": "crossbow_carbon", + "type": "GUN", + "copy-from": "rep_crossbow", + "name": { "str": "carbon fiber repeating crossbow" }, + "description": "A custom 3D-printed pump-action repeating crossbow made out of carbon fiber and synthetic fabric. This expensive hunting weapon is surprisingly lightweight thanks to its construction, but it can only be repaired using a 3D printer.", + "material": [ "carbon_fiber" ], + "valid_mod_locations": [ + [ "grip", 1 ], + [ "mechanism", 4 ], + [ "rail", 1 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "underbarrel", 1 ], + [ "dampening", 1 ] + ], + "proportional": { "weight": 0.7, "price": 2, "price_postapoc": 2 } } ] diff --git a/data/json/items/ranged/spearguns.json b/data/json/items/ranged/spearguns.json index 13fe8e90d0c6..305f7198e6a8 100644 --- a/data/json/items/ranged/spearguns.json +++ b/data/json/items/ranged/spearguns.json @@ -29,7 +29,7 @@ "symbol": "=", "color": "dark_gray", "description": "An underwater fishing spear made from carbon fiber. It's very light, but doesn't have much range. Stands a bad chance of remaining intact once fired.", - "material": "kevlar_rigid", + "material": "carbon_fiber", "volume": "250 ml", "weight": "12 g", "bashing": 1, diff --git a/data/json/items/tool/science.json b/data/json/items/tool/science.json index 63f0468c7a24..204dba845a5a 100644 --- a/data/json/items/tool/science.json +++ b/data/json/items/tool/science.json @@ -680,5 +680,50 @@ ] ], "magazine_well": "250 ml" + }, + { + "id": "3d_printer_basic", + "type": "TOOL", + "category": "tools", + "name": { "str": "3D printer" }, + "description": "Although it's not nearly as fancy as the experimental nanofabricators, this civilian-grade 3D printer can produce almost any item out of plastic, polymer, or carbon fiber… so long as you can program it.", + "weight": "2000 g", + "volume": "1500 ml", + "price": "400 USD", + "price_postapoc": "20 USD", + "material": [ "steel", "plastic" ], + "looks_like": "f_centrifuge", + "symbol": "n", + "color": "white", + "ammo": "battery", + "charges_per_use": 1, + "flags": [ "ALLOWS_REMOTE_USE" ], + "use_action": [ + { + "type": "repair_item", + "item_action_type": "repair_metal", + "materials": [ "plastic", "carbon_fiber" ], + "skill": "fabrication", + "cost_scaling": 0.1, + "move_cost": 1500 + }, + { "flame": false, "type": "cauterize" } + ], + "magazines": [ + [ + "battery", + [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + ] + ], + "magazine_well": "500 ml" + }, + { + "id": "3d_printer_advanced", + "type": "TOOL", + "copy-from": "3d_printer_basic", + "name": { "str": "advanced 3D printer" }, + "description": "Recent advances in 3D printing technology have resulted in the ability to quickly and cheaply 3D print metals and alloys. Such 3D printers are highly expensive, but sought out by collectors and preppers alike.", + "price": "2000 USD", + "price_postapoc": "50 USD" } ] diff --git a/data/json/items/vehicle/boat.json b/data/json/items/vehicle/boat.json index 367ed879c330..7091c8f515bc 100644 --- a/data/json/items/vehicle/boat.json +++ b/data/json/items/vehicle/boat.json @@ -40,7 +40,7 @@ "description": "A carbon fiber sheet that keeps the boat afloat. Add boat hulls to a vehicle until it floats. Then attach oars or a motor to get the boat to move.", "price": "400 USD", "price_postapoc": "5 USD", - "material": [ "kevlar_rigid" ], + "material": [ "carbon_fiber" ], "weight": "500 g", "volume": "12500 ml", "bashing": 8, diff --git a/data/json/materials.json b/data/json/materials.json index a0fc9b96ffc0..84965b611395 100644 --- a/data/json/materials.json +++ b/data/json/materials.json @@ -1848,5 +1848,26 @@ "bash_dmg_verb": "dented", "cut_dmg_verb": "scratched", "compacts_into": [ "zinc_metal" ] + }, + { + "type": "material", + "id": "carbon_fiber", + "name": "Carbon Fiber", + "density": 8, + "specific_heat_liquid": 1.18, + "specific_heat_solid": 1.18, + "latent_heat": 260, + "bash_resist": 5, + "cut_resist": 6, + "bullet_resist": 7, + "acid_resist": 5, + "fire_resist": 3, + "elec_resist": 2, + "chip_resist": 20, + "repaired_with": "plastic_chunk", + "salvaged_into": "plastic_chunk", + "dmg_adj": [ "dented", "bent", "smashed", "shattered" ], + "bash_dmg_verb": "dented", + "cut_dmg_verb": "scratched" } ] diff --git a/data/json/npcs/NC_ARSONIST.json b/data/json/npcs/NC_ARSONIST.json index 8bf34fabe8e6..5a3a5ca03d81 100644 --- a/data/json/npcs/NC_ARSONIST.json +++ b/data/json/npcs/NC_ARSONIST.json @@ -146,6 +146,7 @@ { "item": "ax", "prob": 20 }, { "item": "machete", "prob": 20 }, { "item": "knife_combat", "prob": 20 }, + { "item": "knife_carbon", "prob": 20 }, { "item": "katana", "prob": 20 } ] }, @@ -156,6 +157,7 @@ "entries": [ { "item": "spear_knife", "prob": 50 }, { "item": "spear_steel", "prob": 10 }, + { "item": "spear_carbon", "prob": 10 }, { "item": "spear_forked", "prob": 10 }, { "item": "spear_rebar", "prob": 5 } ] diff --git a/data/json/recipes/ammo/arrows.json b/data/json/recipes/ammo/arrows.json index c791b5343566..ba0337f69a0f 100644 --- a/data/json/recipes/ammo/arrows.json +++ b/data/json/recipes/ammo/arrows.json @@ -457,5 +457,31 @@ ], "delete_flags": [ "FILTHY" ], "flags": [ "ALLOW_FILTHY" ] + }, + { + "result": "bolt_cf", + "type": "recipe", + "category": "CC_AMMO", + "subcategory": "CSC_AMMO_ARROWS", + "skill_used": "computer", + "difficulty": 2, + "skills_required": [ [ "fabrication", 2 ] ], + "time": "5 m", + "book_learn": [ [ "textbook_robots", 2 ], [ "advanced_electronics", 2 ] ], + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 15 ] ] ] + }, + { + "result": "arrow_cf", + "type": "recipe", + "category": "CC_AMMO", + "subcategory": "CSC_AMMO_ARROWS", + "skill_used": "computer", + "difficulty": 2, + "skills_required": [ [ "fabrication", 2 ] ], + "time": "5 m", + "book_learn": [ [ "textbook_computer", 2 ], [ "advanced_electronics", 2 ] ], + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 15 ] ] ] } ] diff --git a/data/json/recipes/armor/arms.json b/data/json/recipes/armor/arms.json index 37ecf3679d0a..a526299634bb 100644 --- a/data/json/recipes/armor/arms.json +++ b/data/json/recipes/armor/arms.json @@ -229,5 +229,18 @@ "autolearn": [ [ "fabrication", 6 ], [ "tailor", 4 ] ], "book_learn": [ [ "textbook_armwest", 3 ], [ "textbook_fabrication", 3 ], [ "recipe_melee", 3 ] ], "using": [ [ "chainmail_standard", 3 ] ] + }, + { + "result": "carbon_armguard", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_ARMS", + "skill_used": "computer", + "difficulty": 1, + "skills_required": [ [ "fabrication", 2 ] ], + "time": "30 m", + "book_learn": [ [ "textbook_computer", 1 ], [ "advanced_electronics", 1 ] ], + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 20 ] ] ] } ] diff --git a/data/json/recipes/armor/feet.json b/data/json/recipes/armor/feet.json index f7668829a813..c65beb3e10b0 100644 --- a/data/json/recipes/armor/feet.json +++ b/data/json/recipes/armor/feet.json @@ -603,5 +603,18 @@ "autolearn": true, "using": [ [ "sewing_standard", 5 ] ], "components": [ [ [ "rag", 4 ] ] ] + }, + { + "result": "carbon_boots", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_FEET", + "skill_used": "computer", + "difficulty": 2, + "skills_required": [ [ "fabrication", 2 ] ], + "time": "30 m", + "book_learn": [ [ "textbook_computer", 2 ], [ "advanced_electronics", 2 ] ], + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 20 ] ] ] } ] diff --git a/data/json/recipes/armor/hands.json b/data/json/recipes/armor/hands.json index ee441955fecc..23e06b17139b 100644 --- a/data/json/recipes/armor/hands.json +++ b/data/json/recipes/armor/hands.json @@ -604,5 +604,18 @@ "autolearn": [ [ "fabrication", 6 ], [ "tailor", 4 ] ], "book_learn": [ [ "textbook_armwest", 3 ], [ "textbook_fabrication", 3 ], [ "recipe_melee", 3 ] ], "using": [ [ "chainmail_standard", 2 ] ] + }, + { + "result": "carbon_gloves", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HANDS", + "skill_used": "computer", + "difficulty": 4, + "skills_required": [ [ "fabrication", 2 ] ], + "time": "30 m", + "book_learn": [ [ "textbook_computer", 4 ], [ "advanced_electronics", 4 ] ], + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 10 ] ] ] } ] diff --git a/data/json/recipes/armor/head.json b/data/json/recipes/armor/head.json index 53782c82f02e..322a5c29eb5e 100644 --- a/data/json/recipes/armor/head.json +++ b/data/json/recipes/armor/head.json @@ -1528,5 +1528,19 @@ [ [ "fabric_standard", 3, "LIST" ] ], [ [ "mask_bal", 1 ], [ "kevlar_plate", 2 ] ] ] + }, + { + "result": "carbon_helmet", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HEAD", + "skill_used": "computer", + "difficulty": 1, + "skills_required": [ [ "fabrication", 2 ] ], + "time": "15 m", + "autolearn": true, + "book_learn": [ [ "textbook_computer", 1 ], [ "advanced_electronics", 1 ] ], + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 25 ] ] ] } ] diff --git a/data/json/recipes/armor/legs.json b/data/json/recipes/armor/legs.json index 139a3955cd61..56efbc418329 100644 --- a/data/json/recipes/armor/legs.json +++ b/data/json/recipes/armor/legs.json @@ -698,5 +698,18 @@ "book_learn": [ [ "textbook_armwest", 3 ] ], "using": [ [ "sewing_standard", 10 ], [ "steel_tiny", 2 ] ], "components": [ [ [ "skirt_armor_leather", 1 ] ] ] + }, + { + "result": "carbon_legguard", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_LEGS", + "skill_used": "computer", + "difficulty": 3, + "skills_required": [ [ "fabrication", 2 ] ], + "time": "30 m", + "book_learn": [ [ "textbook_computer", 3 ], [ "advanced_electronics", 3 ] ], + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 25 ] ] ] } ] diff --git a/data/json/recipes/armor/other.json b/data/json/recipes/armor/other.json index 576f0a6e6576..0218fc304af2 100644 --- a/data/json/recipes/armor/other.json +++ b/data/json/recipes/armor/other.json @@ -550,5 +550,32 @@ "autolearn": true, "using": [ [ "sewing_standard", 15 ], [ "drawing_tool", 20 ] ], "components": [ [ [ "rag", 30 ] ] ] + }, + { + "result": "carbon_buckler", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_OTHER", + "skill_used": "computer", + "skills_required": [ [ "fabrication", 2 ] ], + "autolearn": true, + "time": "15 m", + "book_learn": [ [ "textbook_robots", 0 ], [ "advanced_electronics", 0 ] ], + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 25 ] ] ] + }, + { + "result": "carbon_shield", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_OTHER", + "skill_used": "computer", + "difficulty": 1, + "skills_required": [ [ "fabrication", 2 ] ], + "autolearn": true, + "time": "45 m", + "book_learn": [ [ "textbook_computer", 0 ], [ "advanced_electronics", 0 ] ], + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 45 ] ] ] } ] diff --git a/data/json/recipes/armor/suit.json b/data/json/recipes/armor/suit.json index 940d31890374..a7b9c0689f2e 100644 --- a/data/json/recipes/armor/suit.json +++ b/data/json/recipes/armor/suit.json @@ -908,6 +908,32 @@ "using": [ [ "sewing_standard", 36 ] ], "components": [ [ [ "nylon", 34 ] ] ] }, + { + "result": "armor_carbonplate", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_SUIT", + "skill_used": "computer", + "difficulty": 5, + "skills_required": [ [ "fabrication", 2 ] ], + "autolearn": true, + "time": "15 m", + "book_learn": [ [ "textbook_robots", 0 ], [ "advanced_electronics", 0 ] ], + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 75 ] ] ] + }, + { + "result": "armor_carbonplate", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_SUIT", + "id_suffix": "assembly", + "skill_used": "fabrication", + "difficulty": 3, + "autolearn": true, + "time": "15 m", + "components": [ [ [ "carbon_legguard", 1 ] ], [ [ "carbon_armguard", 1 ] ], [ [ "carbon_chestguard", 1 ] ] ] + }, { "result": "exosuit_survivor", "type": "recipe", diff --git a/data/json/recipes/armor/torso.json b/data/json/recipes/armor/torso.json index 9751c36838f9..e040b074b845 100644 --- a/data/json/recipes/armor/torso.json +++ b/data/json/recipes/armor/torso.json @@ -1325,5 +1325,18 @@ "book_learn": [ [ "textbook_tailor", 4 ] ], "using": [ [ "sewing_standard", 60 ] ], "components": [ [ [ "rag", 40 ] ] ] + }, + { + "result": "carbon_chestguard", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_TORSO", + "skill_used": "computer", + "difficulty": 4, + "skills_required": [ [ "fabrication", 2 ] ], + "time": "30 m", + "book_learn": [ [ "textbook_computer", 3 ], [ "advanced_electronics", 3 ] ], + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 40 ] ] ] } ] diff --git a/data/json/recipes/electronic/tools.json b/data/json/recipes/electronic/tools.json index 12dff36e354f..24f2fc3f17e8 100644 --- a/data/json/recipes/electronic/tools.json +++ b/data/json/recipes/electronic/tools.json @@ -824,5 +824,28 @@ "book_learn": [ [ "manual_electronics", 1 ] ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "SCREW", "level": 1 } ], "components": [ [ [ "scrap", 2 ] ], [ [ "amplifier", 1 ] ], [ [ "cable", 6 ] ], [ [ "plastic_chunk", 4 ] ], [ [ "e_scrap", 3 ] ] ] + }, + { + "type": "recipe", + "result": "3d_printer_basic", + "category": "CC_ELECTRONIC", + "subcategory": "CSC_ELECTRONIC_TOOLS", + "skill_used": "electronics", + "skills_required": [ "computer", 4 ], + "difficulty": 7, + "time": "25 m", + "book_learn": [ [ "textbook_computer", 7 ], [ "advanced_electronics", 7 ], [ "textbook_anarch", 7 ] ], + "using": [ [ "soldering_standard", 30 ], [ "welding_standard", 5 ] ], + "qualities": [ { "id": "SCREW", "level": 1 } ], + "tools": [ [ [ "software_hacking", -1 ] ] ], + "components": [ + [ [ "laptop", 1 ] ], + [ [ "e_scrap", 5 ] ], + [ [ "motor_micro", 2 ] ], + [ [ "power_supply", 4 ] ], + [ [ "amplifier", 4 ] ], + [ [ "pipe", 8 ] ], + [ [ "sheet_metal_small", 1 ] ] + ] } ] diff --git a/data/json/recipes/other/containers.json b/data/json/recipes/other/containers.json index d3911fa47d35..5624a3b2dbf2 100644 --- a/data/json/recipes/other/containers.json +++ b/data/json/recipes/other/containers.json @@ -600,5 +600,46 @@ "autolearn": true, "tools": [ [ [ "mold_plastic", -1 ] ], [ [ "surface_heat", 40, "LIST" ] ] ], "components": [ [ [ "plastic_chunk", 20 ] ] ] + }, + { + "result": "bottle_plastic", + "type": "recipe", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_CONTAINERS", + "id_suffix": "printed", + "skill_used": "computer", + "skills_required": [ [ "fabrication", 2 ] ], + "autolearn": true, + "time": "5 m", + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 2 ] ] ] + }, + { + "result": "jug_plastic", + "type": "recipe", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_CONTAINERS", + "id_suffix": "printed", + "skill_used": "computer", + "difficulty": 1, + "skills_required": [ [ "fabrication", 2 ] ], + "autolearn": true, + "time": "10 m", + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 15 ] ] ] + }, + { + "result": "jerrycan", + "type": "recipe", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_CONTAINERS", + "id_suffix": "printed", + "skill_used": "computer", + "difficulty": 2, + "skills_required": [ [ "fabrication", 2 ] ], + "autolearn": true, + "time": "10 m", + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 40 ] ] ] } ] diff --git a/data/json/recipes/weapon/cutting.json b/data/json/recipes/weapon/cutting.json index 3a1acbbf8221..acca960ab28d 100644 --- a/data/json/recipes/weapon/cutting.json +++ b/data/json/recipes/weapon/cutting.json @@ -678,5 +678,31 @@ [ "felt_patch", 1 ] ] ] + }, + { + "result": "sword_carbon", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_CUTTING", + "skill_used": "computer", + "difficulty": 3, + "skills_required": [ [ "fabrication", 2 ] ], + "time": "30 m", + "book_learn": [ [ "textbook_computer", 3 ], [ "advanced_electronics", 3 ] ], + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 25 ] ] ] + }, + { + "result": "katar_carbon", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_CUTTING", + "skill_used": "computer", + "difficulty": 4, + "skills_required": [ [ "fabrication", 2 ] ], + "time": "30 m", + "book_learn": [ [ "textbook_computer", 4 ], [ "advanced_electronics", 4 ] ], + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 20 ] ] ] } ] diff --git a/data/json/recipes/weapon/magazines.json b/data/json/recipes/weapon/magazines.json index 9bdf3311eddd..bd4c54a9b1d4 100644 --- a/data/json/recipes/weapon/magazines.json +++ b/data/json/recipes/weapon/magazines.json @@ -489,5 +489,44 @@ [ [ "scrap", 1 ] ], [ [ "duct_tape", 20 ] ] ] + }, + { + "result": "glockmag", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_MAGAZINES", + "skill_used": "computer", + "difficulty": 3, + "skills_required": [ [ "fabrication", 2 ] ], + "time": "30 m", + "book_learn": [ [ "textbook_computer", 3 ], [ "advanced_electronics", 3 ], [ "textbook_anarch", 3 ] ], + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 10 ] ] ] + }, + { + "result": "glockbigmag", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_MAGAZINES", + "skill_used": "computer", + "difficulty": 3, + "skills_required": [ [ "fabrication", 2 ] ], + "time": "30 m", + "book_learn": [ [ "textbook_computer", 3 ], [ "advanced_electronics", 3 ], [ "textbook_anarch", 3 ] ], + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 10 ] ] ] + }, + { + "result": "carbonmag_223", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_MAGAZINES", + "skill_used": "computer", + "difficulty": 3, + "skills_required": [ [ "fabrication", 2 ] ], + "time": "30 m", + "book_learn": [ [ "textbook_computer", 3 ], [ "advanced_electronics", 3 ], [ "textbook_anarch", 3 ] ], + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 10 ] ] ] } ] diff --git a/data/json/recipes/weapon/piercing.json b/data/json/recipes/weapon/piercing.json index 28fbf4a7b82c..743b9d6ddc49 100644 --- a/data/json/recipes/weapon/piercing.json +++ b/data/json/recipes/weapon/piercing.json @@ -874,5 +874,43 @@ "autolearn": true, "book_learn": [ [ "textbook_weapeast", 3 ], [ "recipe_melee", 4 ] ], "using": [ [ "blacksmithing_standard", 12 ], [ "steel_standard", 4 ] ] + }, + { + "result": "knife_carbon", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_PIERCING", + "skill_used": "computer", + "skills_required": [ [ "fabrication", 2 ] ], + "time": "15 m", + "autolearn": true, + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 15 ] ] ] + }, + { + "result": "spear_carbon", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_PIERCING", + "skill_used": "computer", + "difficulty": 2, + "skills_required": [ [ "fabrication", 2 ] ], + "autolearn": true, + "time": "25 m", + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 25 ] ] ] + }, + { + "result": "jamadhar_carbon", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_PIERCING", + "skill_used": "computer", + "difficulty": 1, + "skills_required": [ [ "fabrication", 2 ] ], + "autolearn": true, + "time": "15 m", + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 15 ] ] ] } ] diff --git a/data/json/recipes/weapon/ranged.json b/data/json/recipes/weapon/ranged.json index df7cfd68eb54..ed0eceb0d066 100644 --- a/data/json/recipes/weapon/ranged.json +++ b/data/json/recipes/weapon/ranged.json @@ -1226,5 +1226,44 @@ "qualities": [ { "id": "SAW_M_FINE", "level": 1 } ], "tools": [ [ [ "soldering_standard", 10, "LIST" ], [ "small_repairkit", 10 ], [ "large_repairkit", 5 ] ] ], "components": [ [ [ "pipe", 1 ] ], [ [ "power_supply", 1 ] ], [ [ "amplifier", 1 ] ], [ [ "scrap", 6 ] ], [ [ "cable", 20 ] ] ] + }, + { + "result": "carbon_pistol", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_RANGED", + "skill_used": "computer", + "difficulty": 5, + "skills_required": [ [ "fabrication", 2 ] ], + "time": "30 m", + "book_learn": [ [ "textbook_robots", 6 ], [ "advanced_electronics", 6 ], [ "textbook_anarch", 6 ] ], + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 15 ] ] ] + }, + { + "result": "crossbow_carbon", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_RANGED", + "skill_used": "computer", + "difficulty": 5, + "skills_required": [ [ "fabrication", 2 ] ], + "time": "30 m", + "book_learn": [ [ "textbook_computer", 6 ], [ "advanced_electronics", 6 ], [ "textbook_anarch", 6 ] ], + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 25 ] ] ] + }, + { + "result": "carbon_rifle", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_RANGED", + "skill_used": "computer", + "difficulty": 6, + "skills_required": [ [ "fabrication", 2 ] ], + "time": "45 m", + "book_learn": [ [ "textbook_computer", 6 ], [ "advanced_electronics", 6 ], [ "textbook_anarch", 6 ] ], + "tools": [ [ [ "3d_printer_basic", 100 ], [ "3d_printer_advanced", 100 ] ] ], + "components": [ [ [ "plastic_chunk", 25 ] ] ] } ] diff --git a/tests/iteminfo_test.cpp b/tests/iteminfo_test.cpp index 4cb9d4a310f8..e15cc0f7c415 100644 --- a/tests/iteminfo_test.cpp +++ b/tests/iteminfo_test.cpp @@ -878,11 +878,11 @@ TEST_CASE( "repairable and with what tools", "[item][iteminfo][repair]" ) test_info_contains( *item::spawn( "test_halligan" ), q, - "Repair using charcoal forge, grid forge, grid welder, electric forge, extended toolset, arc welder, or makeshift arc welder.\n" ); + "Repair using charcoal forge, Advanced Grid 3D Printer, grid forge, grid welder, electric forge, extended toolset, arc welder, or makeshift arc welder.\n" ); test_info_contains( *item::spawn( "test_hazmat_suit" ), q, - "Repair using grid soldering iron, alcohol-fueled soldering iron, electric soldering iron, TEST soldering iron, or extended toolset.\n" ); + "Repair using advanced 3D printer, 3D printer, Grid 3D Printer, Advanced Grid 3D Printer, grid soldering iron, alcohol-fueled soldering iron, electric soldering iron, TEST soldering iron, or extended toolset.\n" ); test_info_contains( *item::spawn( "test_rock" ), q, "* This item is not repairable.\n" );