diff --git a/data/json/bionics.json b/data/json/bionics.json index 4fb4b4f00823f..7732e10a75b26 100644 --- a/data/json/bionics.json +++ b/data/json/bionics.json @@ -1681,6 +1681,38 @@ "passive_pseudo_items": [ "toolset", "integrated_welder" ], "flags": [ "BIONIC_SHOCKPROOF", "BIONIC_NPC_USABLE" ] }, + { + "id": "bio_multimeter", + "type": "bionic", + "name": { "str": "Integrated Multimeter" }, + "description": "Your fingers and arms have been implanted with retractable electrical probes connected to a multimeter embedded in your arm, allowing you to measure electrical voltage, resistance, and current by touch. This also provides your hands and arms with a modicum of protection against electric shocks.", + "occupied_bodyparts": [ [ "hand_l", 1 ], [ "hand_r", 1 ] ], + "passive_pseudo_items": [ "integrated_multimeter" ], + "flags": [ "BIONIC_SHOCKPROOF", "BIONIC_NPC_USABLE" ], + "protec": [ + [ "hand_l", { "electric": 3 } ], + [ "hand_r", { "electric": 3 } ], + [ "arm_l", { "electric": 3 } ], + [ "arm_r", { "electric": 3 } ] + ], + "available_upgrades": [ "bio_electrokit" ] + }, + { + "id": "bio_electrokit", + "type": "bionic", + "name": { "str": "Integrated Circuitry Toolset" }, + "description": "Your fingers and arms have been implanted a soldering iron, a multimeter, and a set of small screwdrivers, providing all the tools required for working with bench-scale electrical circuits. This also provides your hands and arms with a modicum of protection against electric shocks.", + "occupied_bodyparts": [ [ "hand_l", 2 ], [ "hand_r", 2 ] ], + "passive_pseudo_items": [ "integrated_electrokit", "integrated_multimeter" ], + "flags": [ "BIONIC_SHOCKPROOF", "BIONIC_NPC_USABLE" ], + "protec": [ + [ "hand_l", { "electric": 3 } ], + [ "hand_r", { "electric": 3 } ], + [ "arm_l", { "electric": 3 } ], + [ "arm_r", { "electric": 3 } ] + ], + "upgraded_bionic": "bio_multimeter" + }, { "id": "bio_torsionratchet", "type": "bionic", diff --git a/data/json/itemgroups/Monsters_Animals_Lairs/harvest_cbm.json b/data/json/itemgroups/Monsters_Animals_Lairs/harvest_cbm.json index 6923183824891..7e0c8c32c28b7 100644 --- a/data/json/itemgroups/Monsters_Animals_Lairs/harvest_cbm.json +++ b/data/json/itemgroups/Monsters_Animals_Lairs/harvest_cbm.json @@ -82,6 +82,7 @@ { "distribution": [ { "item": "bio_tools", "prob": 15 }, + { "item": "bio_electrokit", "prob": 15 }, { "item": "bio_magnet", "prob": 15 }, { "item": "bio_soporific", "prob": 20 }, { "item": "bio_sunglasses", "prob": 25 }, @@ -160,6 +161,7 @@ [ "bio_radscrubber", 20 ], [ "bio_recycler", 20 ], [ "bio_tools", 30 ], + [ "bio_electrokit", 20 ], [ "bio_ar", 30 ], [ "bio_taste_blocker", 50 ], [ "bio_water_extractor", 40 ] diff --git a/data/json/itemgroups/bionics.json b/data/json/itemgroups/bionics.json index 6b53d83148341..15099dc4cd1aa 100644 --- a/data/json/itemgroups/bionics.json +++ b/data/json/itemgroups/bionics.json @@ -10,6 +10,8 @@ [ "bio_fuel_cell_gasoline", 10 ], [ "bio_lampoil", 10 ], [ "bio_tools", 10 ], + [ "bio_multimeter", 10 ], + [ "bio_electrokit", 10 ], [ "bio_ups", 10 ], [ "bio_flashlight", 10 ], [ "bio_tattoo_led", 10 ], @@ -105,6 +107,8 @@ "items": [ [ "bio_power_storage", 10 ], [ "bio_tools", 10 ], + [ "bio_multimeter", 10 ], + [ "bio_electrokit", 10 ], [ "bio_flashlight", 10 ], [ "bio_fuel_cell_gasoline", 10 ], [ "bio_lampoil", 10 ], diff --git a/data/json/items/bionics.json b/data/json/items/bionics.json index 1bc0826427b9e..d75c800dfb8cb 100644 --- a/data/json/items/bionics.json +++ b/data/json/items/bionics.json @@ -1017,6 +1017,28 @@ "price_postapoc": "50 USD", "difficulty": 6 }, + { + "id": "bio_multimeter", + "copy-from": "bionic_general_npc_usable", + "type": "BIONIC_ITEM", + "name": { "str": "Integrated Multimeter CBM" }, + "looks_like": "bio_tools", + "description": "A set of electrical leads to be embedded in the user's fingers, connected to a multimeter unit in their hand. Allows the user to measure voltage, resistance, and current using their fingertips, and provides slight protection against electric shocks.", + "price": "2 kUSD", + "price_postapoc": "20 USD", + "difficulty": 3 + }, + { + "id": "bio_electrokit", + "copy-from": "bionic_general_npc_usable", + "type": "BIONIC_ITEM", + "name": { "str": "Integrated Circuitry Toolset CBM" }, + "looks_like": "bio_tools", + "description": "A soldering iron, multimeter, and set of fine screwdrivers implanted in the user's hands. Contains all the tools required for manipulating bench-scale electrical circuits, and provides slight protection against electric shocks.", + "price": "4 kUSD", + "price_postapoc": "35 USD", + "difficulty": 5 + }, { "id": "bio_torsionratchet", "copy-from": "bionic_general_npc_usable", diff --git a/data/json/items/tool/integrated.json b/data/json/items/tool/integrated.json index 176fbaa5b9b95..692de54e272d6 100644 --- a/data/json/items/tool/integrated.json +++ b/data/json/items/tool/integrated.json @@ -218,5 +218,77 @@ "charges_per_use": 20, "charged_qualities": [ [ "WELD", 2 ] ], "melee_damage": { "bash": 2, "cut": -1 } + }, + { + "id": "integrated_multimeter", + "type": "TOOL_ARMOR", + "category": "armor", + "weight": "50 g", + "volume": "25 ml", + "price": "0 cent", + "price_postapoc": "0 cent", + "symbol": ",", + "color": "brown", + "warmth": 0, + "environmental_protection": 0, + "material_thickness": 0.5, + "flags": [ + "INTEGRATED", + "UNBREAKABLE", + "PERSONAL", + "WATER_FRIENDLY", + "SOFT", + "NO_REPAIR", + "ALLOWS_NATURAL_ATTACKS", + "TRADER_AVOID", + "USES_BIONIC_POWER" + ], + "material": [ "superalloy", "copper" ], + "name": { "str_sp": "integrated multimeter" }, + "description": "Integrated bionic multimeter implanted in your fingers.", + "to_hit": -1, + "use_action": [ { "type": "VOLTMETER" } ] + }, + { + "id": "integrated_electrokit", + "type": "TOOL_ARMOR", + "category": "armor", + "weight": "50 g", + "volume": "25 ml", + "price": "0 cent", + "price_postapoc": "0 cent", + "symbol": ",", + "color": "brown", + "warmth": 0, + "environmental_protection": 0, + "material_thickness": 0.5, + "flags": [ + "INTEGRATED", + "UNBREAKABLE", + "PERSONAL", + "WATER_FRIENDLY", + "SOFT", + "NO_REPAIR", + "ALLOWS_NATURAL_ATTACKS", + "TRADER_AVOID", + "USES_BIONIC_POWER" + ], + "material": [ "superalloy", "copper" ], + "name": { "str_sp": "integrated soldering iron" }, + "description": "Integrated soldering iron and screwdriver set.", + "to_hit": -1, + "use_action": [ + { + "type": "repair_item", + "item_action_type": "repair_metal", + "materials": [ "plastic", "lead", "tin", "zinc" ], + "skill": "fabrication", + "cost_scaling": 0.1, + "move_cost": 1500 + } + ], + "ammo": [ "battery" ], + "charges_per_use": 1, + "qualities": [ [ "SCREW", 1 ], [ "SCREW_FINE", 1 ] ] } ] diff --git a/data/json/npcs/exodii/exodii_merchant_itemlist.json b/data/json/npcs/exodii/exodii_merchant_itemlist.json index 3afe112f94335..dff5086ec308c 100644 --- a/data/json/npcs/exodii/exodii_merchant_itemlist.json +++ b/data/json/npcs/exodii/exodii_merchant_itemlist.json @@ -222,6 +222,7 @@ "//": "These CBMs should be available in the Exodii store after at least 2 weeks.", "items": [ [ "bio_tools", 10 ], + [ "bio_electrokit", 10 ], [ "bio_ethanol", 10 ], [ "bio_eye_optic", 10 ], [ "bio_remote", 10 ], @@ -317,6 +318,7 @@ [ "bio_syringe", 10 ], [ "bio_flashlight", 10 ], [ "bio_lighter", 10 ], + [ "bio_multimeter", 5 ], [ "bio_magnet", 5 ], [ "bio_fingerhack", 2 ], [ "bio_geiger", 5 ] diff --git a/data/json/recipes/appliances/oven.json b/data/json/recipes/appliances/oven.json index 05e9eb82a62bf..63dd1bd3fc00b 100644 --- a/data/json/recipes/appliances/oven.json +++ b/data/json/recipes/appliances/oven.json @@ -136,7 +136,14 @@ { "proficiency": "prof_elec_circuits", "skill_penalty": 0 } ], "qualities": [ { "id": "SCREW", "level": 1 } ], - "tools": [ [ [ "soldering_iron", -1 ], [ "soldering_iron_portable", -1 ], [ "integrated_welder", -1 ] ] ], + "tools": [ + [ + [ "soldering_iron", -1 ], + [ "soldering_iron_portable", -1 ], + [ "integrated_electrokit", -1 ], + [ "integrated_welder", -1 ] + ] + ], "components": [ [ [ "plastic_chunk", 4 ] ], [ [ "sheet_metal_small", 1 ] ], diff --git a/data/json/recipes/armor/head.json b/data/json/recipes/armor/head.json index 23794b3038701..8e52da9fdc78e 100644 --- a/data/json/recipes/armor/head.json +++ b/data/json/recipes/armor/head.json @@ -2035,6 +2035,7 @@ [ "welder_crude", 84 ], [ "soldering_iron", 84 ], [ "soldering_iron_portable", 84 ], + [ "integrated_electrokit", 84 ], [ "integrated_welder", 84 ] ] ], @@ -2068,6 +2069,7 @@ [ "welder_crude", 84 ], [ "soldering_iron", 84 ], [ "soldering_iron_portable", 84 ], + [ "integrated_electrokit", 84 ], [ "integrated_welder", 84 ] ] ], @@ -2102,6 +2104,7 @@ [ "welder_crude", 84 ], [ "soldering_iron", 84 ], [ "soldering_iron_portable", 84 ], + [ "integrated_electrokit", 84 ], [ "integrated_welder", 84 ] ] ], @@ -2132,6 +2135,7 @@ [ "welder_crude", 84 ], [ "soldering_iron", 84 ], [ "soldering_iron_portable", 84 ], + [ "integrated_electrokit", 84 ], [ "integrated_welder", 84 ] ] ], @@ -2167,6 +2171,7 @@ [ "welder_crude", 84 ], [ "soldering_iron", 84 ], [ "soldering_iron_portable", 84 ], + [ "integrated_electrokit", 84 ], [ "integrated_welder", 84 ] ] ], diff --git a/data/json/recipes/armor/suit.json b/data/json/recipes/armor/suit.json index 756bc62e7bf89..639343821835a 100644 --- a/data/json/recipes/armor/suit.json +++ b/data/json/recipes/armor/suit.json @@ -1822,6 +1822,7 @@ [ "welder_crude", 97 ], [ "soldering_iron", 97 ], [ "soldering_iron_portable", 97 ], + [ "integrated_electrokit", 97 ], [ "integrated_welder", 97 ] ], [ [ "swage", -1 ] ], @@ -1851,6 +1852,7 @@ [ "welder_crude", 72 ], [ "soldering_iron", 72 ], [ "soldering_iron_portable", 72 ], + [ "integrated_electrokit", 72 ], [ "integrated_welder", 72 ] ], [ [ "swage", -1 ] ], @@ -1880,6 +1882,7 @@ [ "welder_crude", 109 ], [ "soldering_iron", 109 ], [ "soldering_iron_portable", 109 ], + [ "integrated_electrokit", 109 ], [ "integrated_welder", 109 ] ], [ [ "swage", -1 ] ], diff --git a/data/json/recipes/basecamps/base/fbmc_outpost/recipe_modular_outpost_cross.json b/data/json/recipes/basecamps/base/fbmc_outpost/recipe_modular_outpost_cross.json index 555b149609354..746a6fc3ae2fe 100644 --- a/data/json/recipes/basecamps/base/fbmc_outpost/recipe_modular_outpost_cross.json +++ b/data/json/recipes/basecamps/base/fbmc_outpost/recipe_modular_outpost_cross.json @@ -138,7 +138,11 @@ "time": "1 d", "skills": [ [ "electronics", 8 ] ], "inline": { - "tools": [ [ [ "hazmat_suit", -1 ] ], [ [ "mask_gas", 50 ] ], [ [ "soldering_iron", 50 ], [ "soldering_iron_portable", 50 ] ] ], + "tools": [ + [ [ "hazmat_suit", -1 ] ], + [ [ "mask_gas", 50 ] ], + [ [ "soldering_iron", 50 ], [ "soldering_iron_portable", 50 ], [ "integrated_electrokit", 50 ] ] + ], "qualities": [ [ { "id": "SCREW" } ], [ { "id": "SCREW_FINE" } ], [ { "id": "WRENCH" } ], [ { "id": "WRENCH_FINE" } ] ], "components": [ [ [ "solder_wire", 50 ] ], diff --git a/data/json/recipes/basecamps/base/fbmc_outpost/recipe_modular_outpost_normal.json b/data/json/recipes/basecamps/base/fbmc_outpost/recipe_modular_outpost_normal.json index aac76d154f52e..e996e2c331b41 100644 --- a/data/json/recipes/basecamps/base/fbmc_outpost/recipe_modular_outpost_normal.json +++ b/data/json/recipes/basecamps/base/fbmc_outpost/recipe_modular_outpost_normal.json @@ -123,7 +123,11 @@ "time": "1 d", "skills": [ [ "electronics", 8 ] ], "inline": { - "tools": [ [ [ "hazmat_suit", -1 ] ], [ [ "mask_gas", 50 ] ], [ [ "soldering_iron", 50 ], [ "soldering_iron_portable", 50 ] ] ], + "tools": [ + [ [ "hazmat_suit", -1 ] ], + [ [ "mask_gas", 50 ] ], + [ [ "soldering_iron", 50 ], [ "soldering_iron_portable", 50 ], [ "integrated_electrokit", 50 ] ] + ], "qualities": [ [ { "id": "SCREW" } ], [ { "id": "SCREW_FINE" } ], [ { "id": "WRENCH" } ], [ { "id": "WRENCH_FINE" } ] ], "components": [ [ [ "solder_wire", 50 ] ], diff --git a/data/json/recipes/practice/electronics.json b/data/json/recipes/practice/electronics.json index f617320701d9c..3d4fe148345f1 100644 --- a/data/json/recipes/practice/electronics.json +++ b/data/json/recipes/practice/electronics.json @@ -31,7 +31,7 @@ "book_learn": [ [ "mag_electronics", 1 ], [ "manual_electronics", 1 ], [ "advanced_electronics", 2 ], [ "textbook_electronics", 3 ] ], "//": "Some parts are listed as tools so they are not destroyed during crafting, while the components are consumed.", "tools": [ - [ [ "voltmeter", 5 ], [ "multimeter", 5 ] ], + [ [ "voltmeter", 5 ], [ "multimeter", 5 ], [ "integrated_multimeter", 5 ] ], [ [ "antenna", -1 ], [ "circuit", -1 ], [ "element", -1 ], [ "light_bulb", -1 ], [ "motor_micro", -1 ] ] ], "components": [ [ [ "cable", 10 ] ], [ [ "e_scrap", 5 ] ] ], @@ -55,7 +55,7 @@ ], "book_learn": [ [ "manual_electronics", 1 ], [ "advanced_electronics", 2 ], [ "textbook_electronics", 3 ] ], "tools": [ - [ [ "multimeter", 50 ] ], + [ [ "multimeter", 50 ], [ "integrated_multimeter", 50 ] ], [ [ "breadboard", -1 ] ], [ [ "power_supply", -1 ] ], [ [ "amplifier", -1 ], [ "element", -1 ], [ "receiver", -1 ], [ "transponder", -1 ] ] @@ -82,7 +82,7 @@ ], "book_learn": [ [ "advanced_electronics", 4 ], [ "textbook_electronics", 4 ], [ "ic_reference_electronics", 3 ] ], "tools": [ - [ [ "multimeter", 100 ] ], + [ [ "multimeter", 100 ], [ "integrated_multimeter", 100 ] ], [ [ "breadboard", -1 ] ], [ [ "power_supply", -1 ] ], [ [ "processor", -1 ] ], diff --git a/data/json/recipes/recipe_others.json b/data/json/recipes/recipe_others.json index 042363d7bc2ae..a939ef4b57257 100644 --- a/data/json/recipes/recipe_others.json +++ b/data/json/recipes/recipe_others.json @@ -1221,6 +1221,7 @@ [ "integrated_welder", 300 ], [ "soldering_iron", 300 ], [ "soldering_iron_portable", 300 ], + [ "integrated_electrokit", 300 ], [ "oxy_torch", 40 ] ] ], @@ -1397,6 +1398,7 @@ [ "integrated_welder", 150 ], [ "soldering_iron", 150 ], [ "soldering_iron_portable", 150 ], + [ "integrated_electrokit", 150 ], [ "oxy_torch", 20 ] ] ], @@ -1436,6 +1438,7 @@ [ "integrated_welder", 75 ], [ "soldering_iron", 75 ], [ "soldering_iron_portable", 75 ], + [ "integrated_electrokit", 75 ], [ "oxy_torch", 10 ] ] ], @@ -1600,6 +1603,7 @@ [ "integrated_welder", 225 ], [ "soldering_iron", 225 ], [ "soldering_iron_portable", 225 ], + [ "integrated_electrokit", 225 ], [ "oxy_torch", 30 ] ] ], @@ -1770,7 +1774,8 @@ [ "welder_crude", 150 ], [ "integrated_welder", 150 ], [ "soldering_iron", 150 ], - [ "soldering_iron_portable", 150 ] + [ "soldering_iron_portable", 150 ], + [ "integrated_electrokit", 150 ] ] ], "components": [ [ [ "steel_chunk", 6 ], [ "scrap", 18 ] ], [ [ "pipe", 2 ] ] ] diff --git a/data/json/recipes/weapon/explosive.json b/data/json/recipes/weapon/explosive.json index f55a692193792..04112822de2d6 100644 --- a/data/json/recipes/weapon/explosive.json +++ b/data/json/recipes/weapon/explosive.json @@ -226,7 +226,8 @@ [ "welder_crude", 30 ], [ "integrated_welder", 30 ], [ "soldering_iron", 30 ], - [ "soldering_iron_portable", 30 ] + [ "soldering_iron_portable", 30 ], + [ "integrated_electrokit", 30 ] ] ], "components": [ diff --git a/data/json/requirements/toolsets.json b/data/json/requirements/toolsets.json index 5412ac6038e81..5a99bb73a00c2 100644 --- a/data/json/requirements/toolsets.json +++ b/data/json/requirements/toolsets.json @@ -249,6 +249,7 @@ "tools": [ [ [ "soldering_iron", 1 ], + [ "integrated_electrokit", 1 ], [ "soldering_iron_portable", 1 ], [ "integrated_welder", 1 ], [ "small_repairkit", 1 ], diff --git a/data/json/uncraft/vehicle/alternator.json b/data/json/uncraft/vehicle/alternator.json index 81b43c56682c9..79342636bed9d 100644 --- a/data/json/uncraft/vehicle/alternator.json +++ b/data/json/uncraft/vehicle/alternator.json @@ -40,7 +40,15 @@ "difficulty": 4, "time": "40 m", "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "SAW_M", "level": 1 } ], - "tools": [ [ [ "soldering_iron", 80 ], [ "soldering_iron_portable", 80 ], [ "toolset", 80 ], [ "oxy_torch", 40 ] ] ], + "tools": [ + [ + [ "soldering_iron", 80 ], + [ "soldering_iron_portable", 80 ], + [ "integrated_electrokit", 80 ], + [ "toolset", 80 ], + [ "oxy_torch", 40 ] + ] + ], "components": [ [ [ "power_supply", 4 ] ], [ [ "cable", 400 ] ], diff --git a/tests/iteminfo_test.cpp b/tests/iteminfo_test.cpp index fe7b907476b38..ed08598289c8f 100644 --- a/tests/iteminfo_test.cpp +++ b/tests/iteminfo_test.cpp @@ -2495,7 +2495,7 @@ TEST_CASE( "repairable_and_with_what_tools", "[iteminfo][repair]" ) // FIXME: Use an item that can only be repaired by test tools CHECK( item_info_str( hazmat, repaired ) == "--\n" - "Repair using integrated welder, gunsmith repair kit, firearm repair kit, soldering iron, portable soldering iron, or TEST soldering iron.\n" + "Repair using integrated soldering iron, integrated welder, gunsmith repair kit, firearm repair kit, soldering iron, portable soldering iron, or TEST soldering iron.\n" "With Plastic.\n" ); CHECK( item_info_str( rock, repaired ) ==