diff --git a/data/json/enchantments.json b/data/json/enchantments.json index ed36e96e1759e..a2f77df25ce80 100644 --- a/data/json/enchantments.json +++ b/data/json/enchantments.json @@ -144,5 +144,53 @@ ] }, "values": [ { "value": "MOVE_COST", "multiply": -0.5 } ] + }, + { + "id": "combat_exoskeleton_inactive", + "type": "enchantment", + "name": { "str": "Inactive exoskeleton" }, + "description": "The exoskeleton is inactive and makes moving in it difficult and exhausting.", + "has": "WORN", + "condition": "INACTIVE", + "values": [ { "value": "MOVEMENT_EXERTION_MODIFIER", "multiply": 0.5 } ] + }, + { + "id": "combat_exoskeleton_heavy_active", + "type": "enchantment", + "name": { "str": "Active combat exoskeleton mk.1" }, + "description": "The exoskeleton helps you carry more weight, protects you against harmful gas, cools you down, and has reduced encumbrance.", + "has": "WORN", + "condition": "ACTIVE", + "values": [ + { "value": "MOVEMENT_EXERTION_MODIFIER", "multiply": 0.4 }, + { "value": "CARRY_WEIGHT", "multiply": 0.8 }, + { "value": "CLIMATE_CONTROL_CHILL", "add": 50 } + ] + }, + { + "id": "combat_exoskeleton_medium_active", + "type": "enchantment", + "name": { "str": "Active combat exoskeleton mk.2" }, + "description": "The exoskeleton helps you carry more weight, protects you against harmful gas, cools you down, and has reduced encumbrance.", + "has": "WORN", + "condition": "ACTIVE", + "values": [ + { "value": "MOVEMENT_EXERTION_MODIFIER", "multiply": 0.6 }, + { "value": "CARRY_WEIGHT", "multiply": 0.6 }, + { "value": "CLIMATE_CONTROL_CHILL", "add": 50 } + ] + }, + { + "id": "combat_exoskeleton_light_active", + "type": "enchantment", + "name": { "str": "Active combat exoskeleton mk.3" }, + "description": "The exoskeleton helps you carry more weight, protects you against harmful gas, cools you down, and has reduced encumbrance.", + "has": "WORN", + "condition": "ACTIVE", + "values": [ + { "value": "MOVEMENT_EXERTION_MODIFIER", "multiply": 0.8 }, + { "value": "CARRY_WEIGHT", "multiply": 0.4 }, + { "value": "CLIMATE_CONTROL_CHILL", "add": 50 } + ] } ] diff --git a/data/json/flags.json b/data/json/flags.json index 55790cb89fe06..fefd98e41c988 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -2196,32 +2196,32 @@ { "id": "EXO_HELMET_PLATE", "type": "json_flag", - "info": "This is meant for exosuit helmet plating." + "info": "This is meant for exoskeleton helmet plating." }, { "id": "EXO_TORSO_PLATE", "type": "json_flag", - "info": "This is meant for exosuit torso plating." + "info": "This is meant for exoskeleton torso plating." }, { "id": "EXO_ARM_PLATE", "type": "json_flag", - "info": "This is meant for exosuit arm plating." + "info": "This is meant for exoskeleton arm plating." }, { "id": "EXO_GLOVE_PLATE", "type": "json_flag", - "info": "This is meant for exosuit arm plating." + "info": "This is meant for exoskeleton arm plating." }, { "id": "EXO_LEG_PLATE", "type": "json_flag", - "info": "This is meant for exosuit leg plating." + "info": "This is meant for exoskeleton leg plating." }, { "id": "EXO_BOOT_PLATE", "type": "json_flag", - "info": "This is meant for exosuit foot plating." + "info": "This is meant for exoskeleton foot plating." }, { "id": "ROBOFAC_ROBOT_MEDIUM", diff --git a/data/json/furniture_and_terrain/terrain-manufactured.json b/data/json/furniture_and_terrain/terrain-manufactured.json index ca09d6f907dcc..219d5f22e204d 100644 --- a/data/json/furniture_and_terrain/terrain-manufactured.json +++ b/data/json/furniture_and_terrain/terrain-manufactured.json @@ -583,7 +583,7 @@ "name": "nanofabricator control panel", "symbol": "&", "description": "A small computer panel attached to a nanofabricator. It has a single slot for reading templates.", - "allowed_template_ids": [ "standard_template_construct", "debug_template" ], + "allowed_template_ids": [ "standard_template_construct", "standard_template_construct_combat_exoskeleton", "debug_template" ], "color": "red", "looks_like": "f_console", "move_cost": 0, diff --git a/data/json/itemgroups/Labs/lab_security.json b/data/json/itemgroups/Labs/lab_security.json index d6fbf55876f9d..e9d155edd68b3 100644 --- a/data/json/itemgroups/Labs/lab_security.json +++ b/data/json/itemgroups/Labs/lab_security.json @@ -9,28 +9,31 @@ "distribution": [ { "collection": [ - { "item": "power_armor_frame" }, - { "item": "power_armor_generator" }, - { "item": "power_armor_basic" }, - { "item": "power_armor_helmet_basic" } + { "item": "combat_exoskeleton_heavy" }, + { "item": "combat_exoskeleton_armor_head_heavy" }, + { "item": "combat_exoskeleton_armor_torso_heavy" }, + { "item": "combat_exoskeleton_armor_arm_heavy" }, + { "item": "combat_exoskeleton_armor_leg_heavy" } ], "prob": 30 }, { "collection": [ - { "item": "power_armor_frame" }, - { "item": "power_armor_generator" }, - { "item": "power_armor_heavy" }, - { "item": "power_armor_helmet_heavy" } + { "item": "combat_exoskeleton_medium" }, + { "item": "combat_exoskeleton_armor_head_medium" }, + { "item": "combat_exoskeleton_armor_torso_medium" }, + { "item": "combat_exoskeleton_armor_arm_medium" }, + { "item": "combat_exoskeleton_armor_leg_medium" } ], "prob": 10 }, { "collection": [ - { "item": "power_armor_frame" }, - { "item": "power_armor_generator" }, - { "item": "power_armor_helmet_light" }, - { "item": "power_armor_light" } + { "item": "combat_exoskeleton_light" }, + { "item": "combat_exoskeleton_armor_head_light" }, + { "item": "combat_exoskeleton_armor_torso_light" }, + { "item": "combat_exoskeleton_armor_arm_light" }, + { "item": "combat_exoskeleton_armor_leg_light" } ], "prob": 55 }, diff --git a/data/json/itemgroups/Locations_MapExtras/locations.json b/data/json/itemgroups/Locations_MapExtras/locations.json index 82c1d57a54e45..b86b5c0e4e6fb 100644 --- a/data/json/itemgroups/Locations_MapExtras/locations.json +++ b/data/json/itemgroups/Locations_MapExtras/locations.json @@ -1935,6 +1935,7 @@ [ "memory_card_unread", 40 ], [ "memory_card_science", 10 ], [ "standard_template_construct", 5 ], + [ "standard_template_construct_combat_exoskeleton", 5 ], { "item": "camera", "prob": 15, "charges": [ 0, 150 ] }, { "item": "camera_pro", "prob": 5, "charges": [ 0, 150 ] }, { "item": "lighter", "prob": 50, "charges": [ 0, 100 ] }, @@ -2393,6 +2394,7 @@ [ "diamond_dental_grill", 5 ], [ "gold_dental_grill", 5 ], [ "standard_template_construct", 4 ], + [ "standard_template_construct_combat_exoskeleton", 4 ], [ "briefcase", 4 ], [ "small_relic", 3 ], [ "holy_symbol", 3 ], diff --git a/data/json/itemgroups/main.json b/data/json/itemgroups/main.json index faa5c0fa78156..61e653aed98e4 100644 --- a/data/json/itemgroups/main.json +++ b/data/json/itemgroups/main.json @@ -3,7 +3,10 @@ "type": "item_group", "id": "debug_template_item", "subtype": "distribution", - "entries": [ { "item": "standard_template_construct", "prob": 10 } ] + "entries": [ + { "item": "standard_template_construct", "prob": 10 }, + { "item": "standard_template_construct_combat_exoskeleton", "prob": 10 } + ] }, { "type": "item_group", @@ -28,20 +31,35 @@ { "item": "plasma_rifle", "prob": 10 }, { "item": "portal", "prob": 10 }, { "item": "atomic_coffeepot", "prob": 10 }, - { "item": "power_armor_basic", "prob": 10 }, - { "item": "power_armor_frame", "prob": 10 }, - { "item": "power_armor_heavy", "prob": 10 }, - { "item": "power_armor_helmet_basic", "prob": 10 }, - { "item": "power_armor_helmet_heavy", "prob": 10 }, - { "item": "power_armor_helmet_light", "prob": 10 }, + { "item": "rm13_armor", "prob": 10 }, { "item": "high_density_capacitor", "prob": 10 }, { "item": "beam_scatterer", "prob": 10 }, - { "item": "power_armor_light", "prob": 10 }, { "item": "rm11b_sniper_rifle", "prob": 10 }, - { "item": "rm13_armor", "prob": 10 }, { "item": "v29", "prob": 10 } ] }, + { + "type": "item_group", + "id": "nanofab_recipes_combat_exoskeletons", + "subtype": "distribution", + "entries": [ + { "item": "combat_exoskeleton_heavy", "prob": 10 }, + { "item": "combat_exoskeleton_medium", "prob": 10 }, + { "item": "combat_exoskeleton_light", "prob": 10 }, + { "item": "combat_exoskeleton_armor_head_heavy", "prob": 1 }, + { "item": "combat_exoskeleton_armor_torso_heavy", "prob": 1 }, + { "item": "combat_exoskeleton_armor_arm_heavy", "prob": 1 }, + { "item": "combat_exoskeleton_armor_leg_heavy", "prob": 1 }, + { "item": "combat_exoskeleton_armor_head_medium", "prob": 1 }, + { "item": "combat_exoskeleton_armor_torso_medium", "prob": 1 }, + { "item": "combat_exoskeleton_armor_arm_medium", "prob": 1 }, + { "item": "combat_exoskeleton_armor_leg_medium", "prob": 1 }, + { "item": "combat_exoskeleton_armor_head_light", "prob": 1 }, + { "item": "combat_exoskeleton_armor_torso_light", "prob": 1 }, + { "item": "combat_exoskeleton_armor_arm_light", "prob": 1 }, + { "item": "combat_exoskeleton_armor_leg_light", "prob": 1 } + ] + }, { "type": "item_group", "id": "ammo", diff --git a/data/json/itemgroups/science_and_tech.json b/data/json/itemgroups/science_and_tech.json index ec3e9d2848631..671b5754062a3 100644 --- a/data/json/itemgroups/science_and_tech.json +++ b/data/json/itemgroups/science_and_tech.json @@ -30,6 +30,7 @@ [ "memory_card_unread", 50 ], [ "memory_card_science", 5 ], [ "standard_template_construct", 5 ], + [ "standard_template_construct_combat_exoskeleton", 5 ], { "item": "camera", "prob": 2, "charges": [ 0, 150 ] }, { "item": "camera", "container-item": "camera_bag", "prob": 1, "charges": [ 0, 150 ] }, { "item": "camera_pro", "prob": 1, "charges": [ 0, 150 ] }, diff --git a/data/json/items/armor/combat_exoskeleton.json b/data/json/items/armor/combat_exoskeleton.json new file mode 100644 index 0000000000000..b4d9a3c19b25c --- /dev/null +++ b/data/json/items/armor/combat_exoskeleton.json @@ -0,0 +1,482 @@ +[ + { + "abstract": "combat_exoskeleton_abstract", + "category": "armor", + "type": "ARMOR", + "name": { "str": "abstract combat exoskeleton" }, + "price": 50000000, + "price_postapoc": 100000, + "symbol": "[", + "volume": "36000 ml", + "weight": "13000 g", + "environmental_protection": 20, + "warmth": 40, + "flags": [ "STURDY", "PADDED", "WATERPROOF", "RAINPROOF", "RAD_PROOF", "ELECTRIC_IMMUNE", "SUN_GLASSES", "COMBAT_TOGGLEABLE" ], + "relic_data": { "passive_effects": [ { "id": "combat_exoskeleton_inactive" } ] }, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "volume_encumber_modifier": 0, + "description": "Compartment for a heavy battery.", + "flag_restriction": [ "BATTERY_HEAVY" ], + "max_contains_volume": "2000 ml", + "max_contains_weight": "2000 g", + "moves": 500 + }, + { + "pocket_type": "CONTAINER", + "holster": true, + "ablative": true, + "volume_encumber_modifier": 0, + "description": "Attachment points for exoskeleton head armor.", + "flag_restriction": [ "EXO_HELMET_PLATE" ], + "max_contains_volume": "20000 ml", + "max_contains_weight": "20000 g", + "moves": 1000 + }, + { + "pocket_type": "CONTAINER", + "holster": true, + "ablative": true, + "volume_encumber_modifier": 0, + "description": "Attachment points for exoskeleton torso armor.", + "flag_restriction": [ "EXO_TORSO_PLATE" ], + "max_contains_volume": "20000 ml", + "max_contains_weight": "20000 g", + "moves": 1000 + }, + { + "pocket_type": "CONTAINER", + "holster": true, + "ablative": true, + "volume_encumber_modifier": 0, + "description": "Attachment points for exoskeleton arm armor.", + "flag_restriction": [ "EXO_ARM_PLATE" ], + "max_contains_volume": "20000 ml", + "max_contains_weight": "20000 g", + "moves": 1000 + }, + { + "pocket_type": "CONTAINER", + "holster": true, + "ablative": true, + "volume_encumber_modifier": 0, + "description": "Attachment points for exoskeleton leg armor.", + "flag_restriction": [ "EXO_LEG_PLATE" ], + "max_contains_volume": "20000 ml", + "max_contains_weight": "20000 g", + "moves": 1000 + } + ], + "armor": [ + { + "layers": [ "NORMAL" ], + "covers": [ "eyes" ], + "encumbrance": 5, + "coverage": 100, + "material": [ { "type": "lvl4ballisticglass", "thickness": 1 } ] + }, + { + "layers": [ "NORMAL" ], + "covers": [ "mouth" ], + "encumbrance": 30, + "coverage": 100, + "material": [ { "type": "thermo_resin", "thickness": 1 } ] + }, + { + "layers": [ "NORMAL", "OUTER" ], + "covers": [ "head", "torso", "arm_l", "arm_r", "leg_l", "leg_r" ], + "encumbrance": 30, + "coverage": 100, + "material": [ + { "type": "lycra", "thickness": 0.2 }, + { "type": "nylon", "thickness": 1 }, + { "type": "nomex", "thickness": 1 }, + { "type": "vinyl", "thickness": 0.1 }, + { "type": "steel", "thickness": 5, "covered_by_mat": 5 }, + { "type": "aluminum", "thickness": 5, "covered_by_mat": 5 } + ] + }, + { + "layers": [ "NORMAL" ], + "covers": [ "hand_l", "hand_r" ], + "encumbrance": 3, + "coverage": 100, + "material": [ + { "type": "lycra", "thickness": 0.2 }, + { "type": "nylon", "thickness": 1 }, + { "type": "nomex", "thickness": 1 }, + { "type": "vinyl", "thickness": 0.1 } + ] + }, + { + "layers": [ "NORMAL" ], + "encumbrance": 3, + "coverage": 100, + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ + "foot_toes_r", + "foot_toes_l", + "foot_ankle_r", + "foot_ankle_l", + "foot_heel_r", + "foot_heel_l", + "foot_arch_r", + "foot_arch_l" + ], + "material": [ + { "type": "lycra", "thickness": 0.2 }, + { "type": "nylon", "thickness": 1 }, + { "type": "nomex", "thickness": 1 }, + { "type": "vinyl", "thickness": 0.1 } + ] + }, + { + "layers": [ "NORMAL" ], + "encumbrance": 0, + "coverage": 100, + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ "foot_sole_r", "foot_sole_l" ], + "material": [ { "type": "rubber", "thickness": 6 } ] + } + ] + }, + { + "id": "combat_exoskeleton_heavy", + "copy-from": "combat_exoskeleton_abstract", + "type": "TOOL_ARMOR", + "name": { "str": "combat exoskeleton mk1" }, + "description": "Colloquially known as a 'tank suit' in the media, these first-generation exoskeletons were tested in military service a few years back and determined to be too expensive for regular use. The exoskeleton itself is strapped on an environmental suit with an integrated life-support system. A variety of of webbing, magnets, and clips allows the attachment of special armor plating onto the frame.", + "looks_like": "power_armor_heavy", + "ammo": "battery", + "relic_data": { "passive_effects": [ { "id": "combat_exoskeleton_heavy_active" } ] }, + "use_action": { + "type": "transform", + "msg": "You turn the exoskeleton on.\n>>Initiating boot sequence…\n//Loading DoubleOS v1.38…\n//Loading calibration profile…\n//Activating atmospheric filtration…\n//Activating liquid cooling…\n//Activating sound dampeners…\n>>Boot successful.", + "target": "combat_exoskeleton_heavy_on", + "active": true, + "need_charges": 1, + "need_charges_msg": "The exoskeleton batteries are empty." + } + }, + { + "id": "combat_exoskeleton_heavy_on", + "copy-from": "combat_exoskeleton_heavy", + "type": "TOOL_ARMOR", + "name": { "str": "combat exoskeleton mk1 (on)", "str_pl": "combat exoskeletons mk1 (on)" }, + "extend": { "flags": [ "GAS_PROOF", "WATCH", "PARTIAL_DEAF", "TWO_WAY_RADIO" ] }, + "power_draw": "200 W", + "revert_to": "combat_exoskeleton_heavy", + "use_action": { + "type": "transform", + "menu_text": "Turn off", + "msg": "You turn the exoskeleton off.\n>>Initiating shutdown sequence…\n>>Shutting down.", + "target": "combat_exoskeleton_heavy" + }, + "armor": [ + { + "layers": [ "NORMAL" ], + "covers": [ "eyes" ], + "encumbrance": 5, + "coverage": 100, + "material": [ { "type": "lvl4ballisticglass", "thickness": 1 } ] + }, + { + "layers": [ "NORMAL" ], + "covers": [ "mouth" ], + "encumbrance": 10, + "coverage": 100, + "material": [ { "type": "thermo_resin", "thickness": 1 } ] + }, + { + "layers": [ "NORMAL", "OUTER" ], + "covers": [ "head", "torso", "arm_l", "arm_r", "leg_l", "leg_r" ], + "encumbrance": 14, + "coverage": 100, + "material": [ + { "type": "lycra", "thickness": 0.2 }, + { "type": "nylon", "thickness": 1 }, + { "type": "nomex", "thickness": 1 }, + { "type": "vinyl", "thickness": 0.1 }, + { "type": "steel", "thickness": 5, "covered_by_mat": 5 }, + { "type": "aluminum", "thickness": 5, "covered_by_mat": 5 } + ] + }, + { + "layers": [ "NORMAL" ], + "covers": [ "hand_l", "hand_r" ], + "encumbrance": 3, + "coverage": 100, + "material": [ + { "type": "lycra", "thickness": 0.2 }, + { "type": "nylon", "thickness": 1 }, + { "type": "nomex", "thickness": 1 }, + { "type": "vinyl", "thickness": 0.1 } + ] + }, + { + "layers": [ "NORMAL" ], + "encumbrance": 3, + "coverage": 100, + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ + "foot_toes_r", + "foot_toes_l", + "foot_ankle_r", + "foot_ankle_l", + "foot_heel_r", + "foot_heel_l", + "foot_arch_r", + "foot_arch_l" + ], + "material": [ + { "type": "lycra", "thickness": 0.2 }, + { "type": "nylon", "thickness": 1 }, + { "type": "nomex", "thickness": 1 }, + { "type": "vinyl", "thickness": 0.1 } + ] + }, + { + "layers": [ "NORMAL" ], + "encumbrance": 0, + "coverage": 100, + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ "foot_sole_r", "foot_sole_l" ], + "material": [ { "type": "rubber", "thickness": 6 } ] + } + ] + }, + { + "id": "combat_exoskeleton_medium", + "copy-from": "combat_exoskeleton_abstract", + "type": "TOOL_ARMOR", + "name": { "str": "combat exoskeleton mk2" }, + "description": "These were the second wave of military combat exoskeleton, and got a lot of media attention, with popular Navy commercials featuring them heavily. The exoskeleton itself is strapped on an environmental suit with an integrated life-support system. A variety of of webbing, magnets, and clips allows the attachment of special armor plating onto the frame.", + "looks_like": "power_armor_basic", + "ammo": "battery", + "relic_data": { "passive_effects": [ { "id": "combat_exoskeleton_medium_active" } ] }, + "use_action": { + "type": "transform", + "msg": "You turn the exoskeleton on.\n>>Initiating boot sequence…\n//Loading DoubleOS v2.86…\n//Loading calibration profile…\n//Activating atmospheric filtration…\n//Activating liquid cooling…\n//Activating sound dampeners…\n>>Boot successful.", + "target": "combat_exoskeleton_medium_on", + "active": true, + "need_charges": 1, + "need_charges_msg": "The exoskeleton batteries are empty." + } + }, + { + "id": "combat_exoskeleton_medium_on", + "copy-from": "combat_exoskeleton_medium", + "type": "TOOL_ARMOR", + "name": { "str": "combat exoskeleton mk2 (on)", "str_pl": "combat exoskeletons m2 (on)" }, + "extend": { "flags": [ "GAS_PROOF", "WATCH", "PARTIAL_DEAF", "TWO_WAY_RADIO" ] }, + "power_draw": "175 W", + "revert_to": "combat_exoskeleton_medium", + "use_action": { + "type": "transform", + "menu_text": "Turn off", + "msg": "You turn the exoskeleton off.\n>>Initiating shutdown sequence…\n>>Shutting down.", + "target": "combat_exoskeleton_medium" + }, + "armor": [ + { + "layers": [ "NORMAL" ], + "covers": [ "eyes" ], + "encumbrance": 5, + "coverage": 100, + "material": [ { "type": "lvl4ballisticglass", "thickness": 1 } ] + }, + { + "layers": [ "NORMAL" ], + "covers": [ "mouth" ], + "encumbrance": 10, + "coverage": 100, + "material": [ { "type": "thermo_resin", "thickness": 1 } ] + }, + { + "layers": [ "NORMAL", "OUTER" ], + "covers": [ "head", "torso", "arm_l", "arm_r", "leg_l", "leg_r" ], + "encumbrance": 12, + "coverage": 100, + "material": [ + { "type": "lycra", "thickness": 0.2 }, + { "type": "nylon", "thickness": 1 }, + { "type": "nomex", "thickness": 1 }, + { "type": "vinyl", "thickness": 0.1 }, + { "type": "steel", "thickness": 5, "covered_by_mat": 5 }, + { "type": "aluminum", "thickness": 5, "covered_by_mat": 5 } + ] + }, + { + "layers": [ "NORMAL" ], + "covers": [ "hand_l", "hand_r" ], + "encumbrance": 3, + "coverage": 100, + "material": [ + { "type": "lycra", "thickness": 0.2 }, + { "type": "nylon", "thickness": 1 }, + { "type": "nomex", "thickness": 1 }, + { "type": "vinyl", "thickness": 0.1 } + ] + }, + { + "layers": [ "NORMAL" ], + "encumbrance": 3, + "coverage": 100, + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ + "foot_toes_r", + "foot_toes_l", + "foot_ankle_r", + "foot_ankle_l", + "foot_heel_r", + "foot_heel_l", + "foot_arch_r", + "foot_arch_l" + ], + "material": [ + { "type": "lycra", "thickness": 0.2 }, + { "type": "nylon", "thickness": 1 }, + { "type": "nomex", "thickness": 1 }, + { "type": "vinyl", "thickness": 0.1 } + ] + }, + { + "layers": [ "NORMAL" ], + "encumbrance": 0, + "coverage": 100, + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ "foot_sole_r", "foot_sole_l" ], + "material": [ { "type": "rubber", "thickness": 6 } ] + } + ] + }, + { + "id": "combat_exoskeleton_light", + "copy-from": "combat_exoskeleton_abstract", + "type": "TOOL_ARMOR", + "name": { "str": "combat exoskeleton mk3" }, + "description": "The final iteration of military power armor before the fall of civilization, this version was designed for actual widespread combat use and was seen on the front lines during the last days of the Cataclysm, unfortunately, the world ended before it could roll out in significant numbers. The exoskeleton itself is strapped on an environmental suit with an integrated life-support system. A variety of of webbing, magnets, and clips allows the attachment of special armor plating onto the frame.", + "looks_like": "power_armor_light", + "ammo": "battery", + "relic_data": { "passive_effects": [ { "id": "combat_exoskeleton_light_active" } ] }, + "use_action": { + "type": "transform", + "msg": "You turn the exoskeleton on.\n>>Initiating boot sequence…\n//Loading DoubleOS v3.51…\n//Loading calibration profile…\n//Activating atmospheric filtration…\n//Activating liquid cooling…\n//Activating sound dampeners…\n>>Boot successful.", + "target": "combat_exoskeleton_light_on", + "active": true, + "need_charges": 1, + "need_charges_msg": "The exoskeleton batteries are empty." + } + }, + { + "id": "combat_exoskeleton_light_on", + "copy-from": "combat_exoskeleton_light", + "type": "TOOL_ARMOR", + "name": { "str": "combat exoskeleton mk3 (on)", "str_pl": "combat exoskeletons mk3 (on)" }, + "extend": { "flags": [ "GAS_PROOF", "WATCH", "PARTIAL_DEAF", "TWO_WAY_RADIO" ] }, + "power_draw": "150 W", + "revert_to": "combat_exoskeleton_light", + "use_action": { + "type": "transform", + "menu_text": "Turn off", + "msg": "You turn the exoskeleton off.\n>>Initiating shutdown sequence…\n>>Shutting down.", + "target": "combat_exoskeleton_light" + }, + "armor": [ + { + "layers": [ "NORMAL" ], + "covers": [ "eyes" ], + "encumbrance": 5, + "coverage": 100, + "material": [ { "type": "lvl4ballisticglass", "thickness": 1 } ] + }, + { + "layers": [ "NORMAL" ], + "covers": [ "mouth" ], + "encumbrance": 10, + "coverage": 100, + "material": [ { "type": "thermo_resin", "thickness": 1 } ] + }, + { + "layers": [ "NORMAL", "OUTER" ], + "covers": [ "head", "torso", "arm_l", "arm_r", "leg_l", "leg_r" ], + "encumbrance": 10, + "coverage": 100, + "material": [ + { "type": "lycra", "thickness": 0.2 }, + { "type": "nylon", "thickness": 1 }, + { "type": "nomex", "thickness": 1 }, + { "type": "vinyl", "thickness": 0.1 }, + { "type": "steel", "thickness": 5, "covered_by_mat": 5 }, + { "type": "aluminum", "thickness": 5, "covered_by_mat": 5 } + ] + }, + { + "layers": [ "NORMAL" ], + "covers": [ "hand_l", "hand_r" ], + "encumbrance": 3, + "coverage": 100, + "material": [ + { "type": "lycra", "thickness": 0.2 }, + { "type": "nylon", "thickness": 1 }, + { "type": "nomex", "thickness": 1 }, + { "type": "vinyl", "thickness": 0.1 } + ] + }, + { + "layers": [ "NORMAL" ], + "encumbrance": 3, + "coverage": 100, + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ + "foot_toes_r", + "foot_toes_l", + "foot_ankle_r", + "foot_ankle_l", + "foot_heel_r", + "foot_heel_l", + "foot_arch_r", + "foot_arch_l" + ], + "material": [ + { "type": "lycra", "thickness": 0.2 }, + { "type": "nylon", "thickness": 1 }, + { "type": "nomex", "thickness": 1 }, + { "type": "vinyl", "thickness": 0.1 } + ] + }, + { + "layers": [ "NORMAL" ], + "encumbrance": 0, + "coverage": 100, + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ "foot_sole_r", "foot_sole_l" ], + "material": [ { "type": "rubber", "thickness": 6 } ] + } + ] + }, + { + "id": "combat_exoskeleton_light_salvaged", + "copy-from": "combat_exoskeleton_light", + "type": "ARMOR", + "name": { "str": "salvaged combat exoskeleton" }, + "description": "This used to be a combat exoskeleton of third generation but it has been rendered non-functional: as one might expect, this makes it a lot harder to wear. A variety of of webbing, magnets, and clips allows the attachment of special armor plating onto the frame.", + "relative": { "environmental_protection": 0, "warmth": 0 }, + "proportional": { "volume": 0.25, "weight": 0.5, "price": 0.1, "price_postapoc": 0.1 }, + "delete": { + "flags": [ "STURDY", "PADDED", "WATERPROOF", "RAINPROOF", "RAD_PROOF", "ELECTRIC_IMMUNE", "SUN_GLASSES", "COMBAT_TOGGLEABLE" ] + }, + "relic_data": { "passive_effects": [ { "id": "combat_exoskeleton_inactive" } ] }, + "armor": [ + { + "layers": [ "NORMAL", "OUTER" ], + "covers": [ "head", "torso", "arm_l", "arm_r", "leg_l", "leg_r" ], + "encumbrance": 30, + "coverage": 5, + "material": [ { "type": "steel", "thickness": 5 }, { "type": "aluminum", "thickness": 5 } ] + } + ] + } +] diff --git a/data/json/items/armor/combat_exoskeleton_armor.json b/data/json/items/armor/combat_exoskeleton_armor.json new file mode 100644 index 0000000000000..58c49e66417ae --- /dev/null +++ b/data/json/items/armor/combat_exoskeleton_armor.json @@ -0,0 +1,995 @@ +[ + { + "id": "combat_exoskeleton_armor_head_heavy", + "type": "ARMOR", + "category": "armor", + "name": { "str": "heavy combat exoskeleton head armor" }, + "description": "Put the tank in tank suit with this 6mm thick exoskeleton armor, it even feels like wearing a real tank, you should stay wary of anti-material rounds though.", + "symbol": "[", + "price": 2000000, + "price_postapoc": 10000, + "volume": "3300 ml", + "weight": "3500 g", + "flags": [ "EXO_HELMET_PLATE", "STURDY", "CANT_WEAR" ], + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "head" ], + "encumbrance": 8, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 6, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "mouth" ], + "encumbrance": 0, + "coverage": 100, + "material": [ + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 6 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "eyes" ], + "encumbrance": 0, + "coverage": 100, + "material": [ { "type": "lvl4ballisticglass", "thickness": 2 } ] + } + ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "volume_encumber_modifier": 0, + "max_contains_volume": "300 ml", + "max_contains_weight": "500 g", + "max_item_length": "14 cm", + "moves": 100, + "description": "Pocket for a flashlight attachment.", + "flag_restriction": [ "HELMET_HEAD_ATTACHMENT" ], + "transparent": true + } + ] + }, + { + "id": "combat_exoskeleton_armor_torso_heavy", + "type": "ARMOR", + "category": "armor", + "name": { "str": "heavy combat exoskeleton torso armor" }, + "description": "Put the tank in tank suit with this 6mm thick exoskeleton armor, it even feels like wearing a real tank, you should stay wary of anti-material rounds though.", + "symbol": "[", + "price": 2000000, + "price_postapoc": 10000, + "volume": "12000 ml", + "weight": "12700 g", + "flags": [ "EXO_TORSO_PLATE", "STURDY", "CANT_WEAR" ], + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "torso" ], + "encumbrance": 8, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 6, "covered_by_mat": 95 } + ] + } + ], + "use_action": [ { "type": "attach_molle", "size": 10 }, { "type": "detach_molle" } ] + }, + { + "id": "combat_exoskeleton_armor_arm_heavy", + "type": "ARMOR", + "category": "armor", + "name": { "str": "heavy combat exoskeleton arm armor" }, + "description": "Put the tank in tank suit with this 6mm thick exoskeleton armor, it even feels like wearing a real tank, you should stay wary of anti-material rounds though.", + "symbol": "[", + "price": 2000000, + "price_postapoc": 10000, + "volume": "9700 ml", + "weight": "10300 g", + "flags": [ "EXO_ARM_PLATE", "STURDY", "CANT_WEAR" ], + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "arm_r", "arm_l" ], + "encumbrance": 8, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 6, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "hand_r", "hand_l" ], + "specifically_covers": [ "hand_back_r", "hand_back_l", "hand_wrist_r", "hand_wrist_l" ], + "encumbrance": 8, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 6, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "hand_r", "hand_l" ], + "specifically_covers": [ "hand_palm_r", "hand_palm_l", "hand_fingers_r", "hand_fingers_l" ], + "encumbrance": 0, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 1.1, "ignore_sheet_thickness": true } + ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_leg_heavy", + "type": "ARMOR", + "category": "armor", + "name": { "str": "heavy combat exoskeleton leg armor" }, + "description": "Put the tank in tank suit with this 6mm thick exoskeleton armor, it even feels like wearing a real tank, you should stay wary of anti-material rounds though.", + "symbol": "[", + "price": 2000000, + "price_postapoc": 10000, + "volume": "10000 ml", + "weight": "10600 g", + "flags": [ "EXO_LEG_PLATE", "STURDY", "CANT_WEAR" ], + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "leg_r", "leg_l" ], + "encumbrance": 8, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 6, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "foot_r", "foot_l" ], + "specifically_covers": [ + "foot_toes_r", + "foot_toes_l", + "foot_ankle_r", + "foot_ankle_l", + "foot_heel_r", + "foot_heel_l", + "foot_arch_r", + "foot_arch_l" + ], + "encumbrance": 8, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 6, "covered_by_mat": 95 } + ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_head_medium", + "copy-from": "combat_exoskeleton_armor_head_heavy", + "type": "ARMOR", + "name": { "str": "medium combat exoskeleton head armor" }, + "description": "This 4mm thick exoskeleton armor will allow you to withstand a lead storm while also giving you the mobility to escape it, if the hail ends up being made of heavier calibers than standard rifle rounds.", + "volume": "2700 ml", + "weight": "2800 g", + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "head" ], + "encumbrance": 6, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 4, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "mouth" ], + "encumbrance": 0, + "coverage": 100, + "material": [ + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 4 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "eyes" ], + "encumbrance": 0, + "coverage": 100, + "material": [ { "type": "lvl4ballisticglass", "thickness": 2 } ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_torso_medium", + "copy-from": "combat_exoskeleton_armor_torso_heavy", + "type": "ARMOR", + "name": { "str": "medium combat exoskeleton torso armor" }, + "description": "This 4mm thick exoskeleton armor will allow you to withstand a lead storm while also giving you the mobility to escape it, if the hail ends up being made of heavier calibers than standard rifle rounds.", + "volume": "9600 ml", + "weight": "10200 g", + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "torso" ], + "encumbrance": 6, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 4, "covered_by_mat": 95 } + ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_arm_medium", + "copy-from": "combat_exoskeleton_armor_arm_heavy", + "type": "ARMOR", + "name": { "str": "medium combat exoskeleton arm armor" }, + "description": "This 4mm thick exoskeleton armor will allow you to withstand a lead storm while also giving you the mobility to escape it, if the hail ends up being made of heavier calibers than standard rifle rounds.", + "volume": "7700 ml", + "weight": "8200 g", + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "arm_r", "arm_l" ], + "encumbrance": 6, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 4, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "hand_r", "hand_l" ], + "specifically_covers": [ "hand_back_r", "hand_back_l", "hand_wrist_r", "hand_wrist_l" ], + "encumbrance": 6, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 4, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "hand_r", "hand_l" ], + "specifically_covers": [ "hand_palm_r", "hand_palm_l", "hand_fingers_r", "hand_fingers_l" ], + "encumbrance": 0, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 1.1, "ignore_sheet_thickness": true } + ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_leg_medium", + "copy-from": "combat_exoskeleton_armor_leg_heavy", + "type": "ARMOR", + "name": { "str": "medium combat exoskeleton leg armor" }, + "description": "This 4mm thick exoskeleton armor will allow you to withstand a lead storm while also giving you the mobility to escape it, if the hail ends up being made of heavier calibers than standard rifle rounds.", + "volume": "8000 ml", + "weight": "8500 g", + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "leg_r", "leg_l" ], + "encumbrance": 6, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 4, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "foot_r", "foot_l" ], + "specifically_covers": [ + "foot_toes_r", + "foot_toes_l", + "foot_ankle_r", + "foot_ankle_l", + "foot_heel_r", + "foot_heel_l", + "foot_arch_r", + "foot_arch_l" + ], + "encumbrance": 6, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 4, "covered_by_mat": 95 } + ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_head_light", + "copy-from": "combat_exoskeleton_armor_head_heavy", + "type": "ARMOR", + "name": { "str": "light combat exoskeleton head armor" }, + "description": "This 2mm thick exoskeleton armor was designed when the testing of heavier versions concluded that mobility is actually the most important attribute on the battlefield, especially when you can still brush off small caliber rounds.", + "volume": "2000 ml", + "weight": "2300 g", + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "head" ], + "encumbrance": 4, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 2, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "mouth" ], + "encumbrance": 0, + "coverage": 100, + "material": [ + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 2 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "eyes" ], + "encumbrance": 0, + "coverage": 100, + "material": [ { "type": "lvl4ballisticglass", "thickness": 2 } ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_torso_light", + "copy-from": "combat_exoskeleton_armor_torso_heavy", + "type": "ARMOR", + "name": { "str": "light combat exoskeleton torso armor" }, + "description": "This 2mm thick exoskeleton armor was designed when the testing of heavier versions concluded that mobility is actually the most important attribute on the battlefield, especially when you can still brush off small caliber rounds.", + "volume": "7200 ml", + "weight": "8200 g", + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "torso" ], + "encumbrance": 4, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 2, "covered_by_mat": 95 } + ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_arm_light", + "copy-from": "combat_exoskeleton_armor_arm_heavy", + "type": "ARMOR", + "name": { "str": "light combat exoskeleton arm armor" }, + "description": "This 2mm thick exoskeleton armor was designed when the testing of heavier versions concluded that mobility is actually the most important attribute on the battlefield, especially when you can still brush off small caliber rounds.", + "volume": "5800 ml", + "weight": "6600 g", + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "arm_r", "arm_l" ], + "encumbrance": 4, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 2, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "hand_r", "hand_l" ], + "specifically_covers": [ "hand_back_r", "hand_back_l", "hand_wrist_r", "hand_wrist_l" ], + "encumbrance": 4, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 2, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "hand_r", "hand_l" ], + "specifically_covers": [ "hand_palm_r", "hand_palm_l", "hand_fingers_r", "hand_fingers_l" ], + "encumbrance": 0, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 1 }, + { "type": "kevlar_layered", "thickness": 1.1, "ignore_sheet_thickness": true } + ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_leg_light", + "copy-from": "combat_exoskeleton_armor_leg_heavy", + "type": "ARMOR", + "name": { "str": "light combat exoskeleton leg armor" }, + "description": "This 2mm thick exoskeleton armor was designed when the testing of heavier versions concluded that mobility is actually the most important attribute on the battlefield, especially when you can still brush off small caliber rounds.", + "volume": "6000 ml", + "weight": "6800 g", + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "leg_r", "leg_l" ], + "encumbrance": 4, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 2, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "foot_r", "foot_l" ], + "specifically_covers": [ + "foot_toes_r", + "foot_toes_l", + "foot_ankle_r", + "foot_ankle_l", + "foot_heel_r", + "foot_heel_l", + "foot_arch_r", + "foot_arch_l" + ], + "encumbrance": 4, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 2, "covered_by_mat": 95 } + ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_head_heavy_reinforced", + "copy-from": "combat_exoskeleton_armor_head_heavy", + "type": "ARMOR", + "name": { "str": "reinforced heavy combat exoskeleton head armor" }, + "description": "Put the tank in tank suit with this 6mm thick exoskeleton armor, it even feels like wearing a real tank, you should stay wary of anti-material rounds though. This armor has been reinforced with chainmail to fill its gaps.", + "volume": "3600 ml", + "weight": "3900 g", + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "head" ], + "encumbrance": 12, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel_chain", "thickness": 1.2 }, + { "type": "qt_steel", "thickness": 4.8, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "mouth" ], + "encumbrance": 0, + "coverage": 100, + "material": [ + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 6 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "eyes" ], + "encumbrance": 0, + "coverage": 100, + "material": [ { "type": "lvl4ballisticglass", "thickness": 2 } ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_torso_heavy_reinforced", + "copy-from": "combat_exoskeleton_armor_torso_heavy", + "type": "ARMOR", + "name": { "str": "reinforced heavy combat exoskeleton torso armor" }, + "description": "Put the tank in tank suit with this 6mm thick exoskeleton armor, it even feels like wearing a real tank, you should stay wary of anti-material rounds though. This armor has been reinforced with chainmail to fill its gaps.", + "volume": "13200 ml", + "weight": "14000 g", + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "torso" ], + "encumbrance": 12, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel_chain", "thickness": 1.2 }, + { "type": "qt_steel", "thickness": 4.8, "covered_by_mat": 95 } + ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_arm_heavy_reinforced", + "copy-from": "combat_exoskeleton_armor_arm_heavy", + "type": "ARMOR", + "name": { "str": "reinforced heavy combat exoskeleton arm armor" }, + "description": "Put the tank in tank suit with this 6mm thick exoskeleton armor, it even feels like wearing a real tank, you should stay wary of anti-material rounds though. This armor has been reinforced with chainmail to fill its gaps.", + "volume": "10700 ml", + "weight": "11300 g", + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "arm_r", "arm_l" ], + "encumbrance": 12, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel_chain", "thickness": 1.2 }, + { "type": "qt_steel", "thickness": 4.8, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "hand_r", "hand_l" ], + "specifically_covers": [ "hand_back_r", "hand_back_l", "hand_wrist_r", "hand_wrist_l" ], + "encumbrance": 12, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel_chain", "thickness": 1.2 }, + { "type": "qt_steel", "thickness": 4.8, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "hand_r", "hand_l" ], + "specifically_covers": [ "hand_palm_r", "hand_palm_l", "hand_fingers_r", "hand_fingers_l" ], + "encumbrance": 0, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 1.1, "ignore_sheet_thickness": true }, + { "type": "qt_steel_chain", "thickness": 1.2 } + ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_leg_heavy_reinforced", + "copy-from": "combat_exoskeleton_armor_leg_heavy", + "type": "ARMOR", + "name": { "str": "reinforced heavy combat exoskeleton leg armor" }, + "description": "Put the tank in tank suit with this 6mm thick exoskeleton armor, it even feels like wearing a real tank, you should stay wary of anti-material rounds though. This armor has been reinforced with chainmail to fill its gaps.", + "volume": "11000 ml", + "weight": "11700 g", + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "leg_r", "leg_l" ], + "encumbrance": 12, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel_chain", "thickness": 1.2 }, + { "type": "qt_steel", "thickness": 4.8, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "foot_r", "foot_l" ], + "specifically_covers": [ + "foot_toes_r", + "foot_toes_l", + "foot_ankle_r", + "foot_ankle_l", + "foot_heel_r", + "foot_heel_l", + "foot_arch_r", + "foot_arch_l" + ], + "encumbrance": 12, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel_chain", "thickness": 1.2 }, + { "type": "qt_steel", "thickness": 4.8, "covered_by_mat": 95 } + ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_head_medium_reinforced", + "copy-from": "combat_exoskeleton_armor_head_heavy", + "type": "ARMOR", + "name": { "str": "reinforced medium combat exoskeleton head armor" }, + "description": "This 4mm thick exoskeleton armor will allow you to withstand a lead storm while also giving you the mobility to escape it, if the hail ends up being made of heavier calibers than standard rifle rounds. This armor has been reinforced with chainmail to fill its gaps.", + "volume": "3000 ml", + "weight": "3100 g", + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "head" ], + "encumbrance": 10, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel_chain", "thickness": 1.2 }, + { "type": "qt_steel", "thickness": 2.8, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "mouth" ], + "encumbrance": 0, + "coverage": 100, + "material": [ + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 4 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "eyes" ], + "encumbrance": 0, + "coverage": 100, + "material": [ { "type": "lvl4ballisticglass", "thickness": 2 } ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_torso_medium_reinforced", + "copy-from": "combat_exoskeleton_armor_torso_heavy", + "type": "ARMOR", + "name": { "str": "reinforced medium combat exoskeleton torso armor" }, + "description": "This 4mm thick exoskeleton armor will allow you to withstand a lead storm while also giving you the mobility to escape it, if the hail ends up being made of heavier calibers than standard rifle rounds. This armor has been reinforced with chainmail to fill its gaps.", + "volume": "10600 ml", + "weight": "11200 g", + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "torso" ], + "encumbrance": 10, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel_chain", "thickness": 1.2 }, + { "type": "qt_steel", "thickness": 2.8, "covered_by_mat": 95 } + ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_arm_medium_reinforced", + "copy-from": "combat_exoskeleton_armor_arm_heavy", + "type": "ARMOR", + "name": { "str": "reinforced medium combat exoskeleton arm armor" }, + "description": "This 4mm thick exoskeleton armor will allow you to withstand a lead storm while also giving you the mobility to escape it, if the hail ends up being made of heavier calibers than standard rifle rounds. This armor has been reinforced with chainmail to fill its gaps.", + "volume": "8500 ml", + "weight": "9000 g", + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "arm_r", "arm_l" ], + "encumbrance": 10, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel_chain", "thickness": 1.2 }, + { "type": "qt_steel", "thickness": 2.8, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "hand_r", "hand_l" ], + "specifically_covers": [ "hand_back_r", "hand_back_l", "hand_wrist_r", "hand_wrist_l" ], + "encumbrance": 10, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel_chain", "thickness": 1.2 }, + { "type": "qt_steel", "thickness": 2.8, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "hand_r", "hand_l" ], + "specifically_covers": [ "hand_palm_r", "hand_palm_l", "hand_fingers_r", "hand_fingers_l" ], + "encumbrance": 0, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 1.1, "ignore_sheet_thickness": true }, + { "type": "qt_steel_chain", "thickness": 1.2 } + ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_leg_medium_reinforced", + "copy-from": "combat_exoskeleton_armor_leg_heavy", + "type": "ARMOR", + "name": { "str": "reinforced medium combat exoskeleton reinforced leg armor" }, + "description": "This 4mm thick exoskeleton armor will allow you to withstand a lead storm while also giving you the mobility to escape it, if the hail ends up being made of heavier calibers than standard rifle rounds. This armor has been reinforced with chainmail to fill its gaps.", + "volume": "8800 ml", + "weight": "9400 g", + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "leg_r", "leg_l" ], + "encumbrance": 10, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel_chain", "thickness": 1.2 }, + { "type": "qt_steel", "thickness": 2.8, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "foot_r", "foot_l" ], + "specifically_covers": [ + "foot_toes_r", + "foot_toes_l", + "foot_ankle_r", + "foot_ankle_l", + "foot_heel_r", + "foot_heel_l", + "foot_arch_r", + "foot_arch_l" + ], + "encumbrance": 10, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel_chain", "thickness": 1.2 }, + { "type": "qt_steel", "thickness": 2.8, "covered_by_mat": 95 } + ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_head_light_reinforced", + "copy-from": "combat_exoskeleton_armor_head_heavy", + "type": "ARMOR", + "name": { "str": "reinforced light combat exoskeleton head armor" }, + "description": "This 2mm thick exoskeleton armor was designed when the testing of heavier versions concluded that mobility is actually the most important attribute on the battlefield, especially when you can still brush off small caliber rounds. This armor has been reinforced with chainmail to fill its gaps.", + "volume": "2200 ml", + "weight": "2500 g", + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "head" ], + "encumbrance": 8, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel_chain", "thickness": 1.2 }, + { "type": "qt_steel", "thickness": 0.8, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "mouth" ], + "encumbrance": 0, + "coverage": 100, + "material": [ + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel", "thickness": 2 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "eyes" ], + "encumbrance": 0, + "coverage": 100, + "material": [ { "type": "lvl4ballisticglass", "thickness": 2 } ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_torso_light_reinforced", + "copy-from": "combat_exoskeleton_armor_torso_heavy", + "type": "ARMOR", + "name": { "str": "reinforced light combat exoskeleton torso armor" }, + "description": "This 2mm thick exoskeleton armor was designed when the testing of heavier versions concluded that mobility is actually the most important attribute on the battlefield, especially when you can still brush off small caliber rounds. This armor has been reinforced with chainmail to fill its gaps.", + "volume": "7900 ml", + "weight": "9000 g", + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "torso" ], + "encumbrance": 8, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel_chain", "thickness": 1.2 }, + { "type": "qt_steel", "thickness": 0.8, "covered_by_mat": 95 } + ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_arm_light_reinforced", + "copy-from": "combat_exoskeleton_armor_arm_heavy", + "type": "ARMOR", + "name": { "str": "reinforced light combat exoskeleton arm armor" }, + "description": "This 2mm thick exoskeleton armor was designed when the testing of heavier versions concluded that mobility is actually the most important attribute on the battlefield, especially when you can still brush off small caliber rounds. This armor has been reinforced with chainmail to fill its gaps.", + "volume": "6400 ml", + "weight": "7300 g", + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "arm_r", "arm_l" ], + "encumbrance": 8, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel_chain", "thickness": 1.2 }, + { "type": "qt_steel", "thickness": 0.8, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "hand_r", "hand_l" ], + "specifically_covers": [ "hand_back_r", "hand_back_l", "hand_wrist_r", "hand_wrist_l" ], + "encumbrance": 8, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel_chain", "thickness": 1.2 }, + { "type": "qt_steel", "thickness": 0.8, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "hand_r", "hand_l" ], + "specifically_covers": [ "hand_palm_r", "hand_palm_l", "hand_fingers_r", "hand_fingers_l" ], + "encumbrance": 0, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 1 }, + { "type": "kevlar_layered", "thickness": 1.1, "ignore_sheet_thickness": true }, + { "type": "qt_steel_chain", "thickness": 1.2 } + ] + } + ] + }, + { + "id": "combat_exoskeleton_armor_leg_light_reinforced", + "copy-from": "combat_exoskeleton_armor_leg_heavy", + "type": "ARMOR", + "name": { "str": "reinforced light combat exoskeleton reinforced leg armor" }, + "description": "This 2mm thick exoskeleton armor was designed when the testing of heavier versions concluded that mobility is actually the most important attribute on the battlefield, especially when you can still brush off small caliber rounds. This armor has been reinforced with chainmail to fill its gaps.", + "volume": "6600 ml", + "weight": "7500 g", + "armor": [ + { + "layers": [ "OUTER" ], + "covers": [ "leg_r", "leg_l" ], + "encumbrance": 8, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel_chain", "thickness": 1.2 }, + { "type": "qt_steel", "thickness": 0.8, "covered_by_mat": 95 } + ] + }, + { + "layers": [ "OUTER" ], + "covers": [ "foot_r", "foot_l" ], + "specifically_covers": [ + "foot_toes_r", + "foot_toes_l", + "foot_ankle_r", + "foot_ankle_l", + "foot_heel_r", + "foot_heel_l", + "foot_arch_r", + "foot_arch_l" + ], + "encumbrance": 8, + "coverage": 100, + "material": [ + { "type": "nylon", "thickness": 1, "covered_by_mat": 5 }, + { "type": "plastic_pad", "thickness": 2 }, + { "type": "kevlar_layered", "thickness": 4.4 }, + { "type": "qt_steel_chain", "thickness": 1.2 }, + { "type": "qt_steel", "thickness": 0.8, "covered_by_mat": 95 } + ] + } + ] + } +] diff --git a/data/json/items/armor/power_armor.json b/data/json/items/armor/power_armor.json deleted file mode 100644 index f46796b533a06..0000000000000 --- a/data/json/items/armor/power_armor.json +++ /dev/null @@ -1,695 +0,0 @@ -[ - { - "id": "depowered_armor", - "type": "ARMOR", - "category": "armor", - "name": { "str": "salvaged power armor" }, - "//": "These are much cheaper than powered suits, because they're extremely heavy and impractical. The good stuff is gone!", - "description": "This used to be a powered exoskeleton with a set of heavy armor plates, made wearable by the assistance of servos. Now it's just the armor plating and a stripped-down chassis: as one might expect, it's a lot harder to wear.", - "weight": "12214 g", - "volume": "25 L", - "price": 70000, - "price_postapoc": 15000, - "to_hit": 1, - "material": [ "steel" ], - "symbol": "[", - "looks_like": "power_armor_basic", - "color": "light_gray", - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "4 L", - "max_contains_weight": "30 kg", - "description": "Compartment for an UPS.", - "moves": 200 - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", - "max_item_length": "200 mm", - "holster": true, - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "description": "Spring-loaded clamp.", - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", - "max_item_length": "200 mm", - "holster": true, - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "description": "Spring-loaded clamp.", - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", - "max_item_length": "200 mm", - "holster": true, - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "description": "Spring-loaded clamp.", - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", - "max_item_length": "200 mm", - "holster": true, - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "description": "Spring-loaded clamp.", - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "1100 ml", - "max_contains_weight": "2 kg", - "description": "Compartment for grenades.", - "moves": 30, - "flag_restriction": [ "GRENADE" ] - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "12 L", - "max_contains_weight": "16500 g", - "max_item_length": "154 cm", - "description": "Integrated rifle case.", - "moves": 100 - } - ], - "warmth": 50, - "material_thickness": 8, - "environmental_protection": 6, - "flags": [ "WATERPROOF", "STURDY", "UNBREAKABLE_MELEE" ], - "armor": [ - { - "encumbrance": 40, - "coverage": 95, - "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] - } - ], - "melee_damage": { "bash": 1 } - }, - { - "id": "depowered_helmet", - "type": "ARMOR", - "category": "armor", - "name": { "str": "salvaged power armor helmet" }, - "description": "This used to be a military-grade full-head helmet with advanced optics and environmental filters. It looks like it was decommissioned or otherwise stripped for parts; now it's a very expensive hat. It's still quite durable, but quite hard to see out of.", - "weight": "2416 g", - "volume": "5 L", - "price": 30000, - "price_postapoc": 5000, - "to_hit": 1, - "material": [ "steel" ], - "symbol": "[", - "looks_like": "power_armor_helmet_basic", - "color": "light_gray", - "warmth": 50, - "material_thickness": 8, - "environmental_protection": 6, - "qualities": [ [ "GLARE", 1 ] ], - "flags": [ "WATERPROOF", "STURDY", "SUN_GLASSES" ], - "armor": [ { "encumbrance": 40, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ], - "melee_damage": { "bash": 1 } - }, - { - "id": "power_armor_basic", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "combat exoskeleton" }, - "description": "These were the second wave of military combat exoskeleton, and got a lot of media attention, with popular Navy commercials featuring them heavily. It consists of a muscle-boosting exoskeleton frame with overlaid segmented alloy plating. Despite advancements over the original bulky 'tank suits', the wearer still cannot easily fit through narrow spaces, or sit down comfortably (and it ruins upholstery). There is an integrated chemical-resistant bodyglove that precludes wearing other clothing. The armor is outfitted with a variety of clips & clamps, allowing it to hold a few mags & grenades, as well as a large rifle.", - "weight": "55 kg", - "volume": "100 L", - "price": 7000000, - "price_postapoc": 30000, - "to_hit": 1, - "material": [ "qt_steel", "hyperweave_off", "kevlar_rigid" ], - "symbol": "[", - "looks_like": "depowered_armor", - "color": "light_gray", - "relic_data": { "passive_effects": [ { "id": "ench_climate_control_all" } ] }, - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "4 L", - "max_contains_weight": "30 kg", - "description": "Compartment for an UPS.", - "moves": 200 - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", - "max_item_length": "200 mm", - "holster": true, - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "description": "Spring-loaded clamp.", - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", - "max_item_length": "200 mm", - "holster": true, - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "description": "Spring-loaded clamp.", - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", - "max_item_length": "200 mm", - "holster": true, - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "description": "Spring-loaded clamp.", - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", - "max_item_length": "200 mm", - "holster": true, - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "description": "Spring-loaded clamp.", - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "1100 ml", - "max_contains_weight": "2 kg", - "description": "Compartment for grenades.", - "moves": 30, - "flag_restriction": [ "GRENADE" ] - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "12 L", - "max_contains_weight": "16500 g", - "max_item_length": "154 cm", - "description": "Integrated rifle case.", - "moves": 100 - } - ], - "warmth": 90, - "power_armor": true, - "material_thickness": 14, - "environmental_protection": 16, - "ammo": "battery", - "use_action": { "type": "transform", "msg": "The %s engages.", "target": "power_armor_basic_on", "active": true }, - "flags": [ "WATERPROOF", "STURDY", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "UNBREAKABLE_MELEE" ], - "armor": [ - { - "encumbrance": 50, - "coverage": 100, - "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] - } - ], - "melee_damage": { "bash": 1 } - }, - { - "id": "power_armor_basic_on", - "copy-from": "power_armor_basic", - "looks_like": "power_armor_basic", - "type": "TOOL_ARMOR", - "name": { "str": "combat exoskeleton (on)", "str_pl": "combat exoskeletons (on)" }, - "description": "These were the second wave of military combat exoskeleton, and got a lot of media attention, with popular Navy commercials featuring them heavily. It consists of a muscle-boosting exoskeleton frame with overlaid segmented alloy plating. Despite advancements over the original bulky 'tank suits', the wearer still cannot easily fit through narrow spaces, or sit down comfortably (and it ruins upholstery). There is an integrated chemical-resistant bodyglove that precludes wearing other clothing. It is turned on and continually drawing power. Use it to turn it off.", - "flags": [ "USE_UPS", "WATERPROOF", "STURDY", "ELECTRIC_IMMUNE", "TRADER_AVOID", "COMBAT_TOGGLEABLE", "UNBREAKABLE_MELEE" ], - "power_draw": "4 kW", - "revert_to": "power_armor_basic", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s armor disengages.", "target": "power_armor_basic" }, - "armor": [ - { - "encumbrance": 10, - "coverage": 100, - "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] - } - ] - }, - { - "id": "power_armor_frame", - "type": "ARMOR", - "category": "armor", - "name": { "str": "power armor hauling frame" }, - "description": "A heavy-duty hauling frame designed to interface with military exoskeletons.", - "weight": "1640 g", - "volume": "45 L", - "price": 1000000, - "price_postapoc": 10000, - "to_hit": 1, - "material": [ "steel" ], - "symbol": "[", - "looks_like": "backpack_tactical_large", - "color": "light_gray", - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "30 L", - "max_item_length": "70 cm", - "max_contains_weight": "150 kg", - "moves": 300 - } - ], - "power_armor": true, - "material_thickness": 10, - "flags": [ "WATERPROOF", "STURDY", "BELTED" ], - "//": "this should be moved to an accessory like aftershock suits when someone gets around to overhauling power armor.", - "//2": "If this item covers anything, it becomes impossible to wear it with power armor because power armor is hardcoded.", - "melee_damage": { "bash": 1 } - }, - { - "id": "power_armor_generator", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "power armor generator frame" }, - "description": "A heavy-duty hauling frame designed to interface with military exoskeletons. This version exchanges capacity for a diesel ICE generator that powers the armor.", - "weight": "1640 g", - "volume": "45 L", - "price": 1000000, - "price_postapoc": 10000, - "to_hit": 1, - "material": [ "steel" ], - "symbol": "[", - "looks_like": "backpack_tactical_large", - "color": "light_gray", - "ammo": [ "jp8" ], - "fuel_efficiency": 0.4, - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "20 L", - "max_item_length": "70 cm", - "max_contains_weight": "100 kg", - "moves": 300 - }, - { "pocket_type": "MAGAZINE", "rigid": true, "watertight": true, "ammo_restriction": { "diesel": 10000 } } - ], - "power_armor": true, - "material_thickness": 10, - "flags": [ "WATERPROOF", "STURDY", "BELTED", "IS_UPS" ], - "melee_damage": { "bash": 1 } - }, - { - "id": "power_armor_heavy", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "heavy combat exoskeleton" }, - "description": "Colloquially known as a 'tank suit' in the media, these bulky exoskeletons, covered in thick segmented armor plates, were tested in military service a few years back and determined to be too heavy and expensive for regular use. Now that it's in your hands, though, you have a massive suit of power armor capable of resisting almost any small arms fire and most other forms of attack. On the other hand, it doubles your effective weight, and it's almost impossible not to bump into things. There is an integrated chemical-resistant bodyglove that precludes wearing other clothing. The armor is outfitted with a variety of clips & clamps, allowing it to hold a few mags & grenades, as well as a large rifle.", - "//": "This should probably changed to a pseudo-vehicle like the civilian exoskeleton", - "weight": "75 kg", - "volume": "130 L", - "price": 11500000, - "price_postapoc": 40000, - "to_hit": 1, - "material": [ "qt_steel", "hyperweave_off", "kevlar_rigid" ], - "symbol": "[", - "looks_like": "power_armor_basic", - "color": "dark_gray", - "relic_data": { "passive_effects": [ { "id": "ench_climate_control_all" } ] }, - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "4 L", - "max_contains_weight": "30 kg", - "description": "Compartment for an UPS.", - "moves": 200 - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", - "max_item_length": "200 mm", - "holster": true, - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "description": "Spring-loaded clamp.", - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", - "max_item_length": "200 mm", - "holster": true, - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "description": "Spring-loaded clamp.", - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", - "max_item_length": "200 mm", - "holster": true, - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "description": "Spring-loaded clamp.", - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", - "max_item_length": "200 mm", - "holster": true, - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "description": "Spring-loaded clamp.", - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "1100 ml", - "max_contains_weight": "2 kg", - "description": "Compartment for grenades.", - "moves": 30, - "flag_restriction": [ "GRENADE" ] - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "12 L", - "max_contains_weight": "16500 g", - "max_item_length": "154 cm", - "description": "Integrated rifle case.", - "moves": 100 - } - ], - "warmth": 60, - "power_armor": true, - "material_thickness": 16, - "environmental_protection": 16, - "ammo": "battery", - "use_action": { "type": "transform", "msg": "The %s engages.", "target": "power_armor_heavy_on", "active": true }, - "flags": [ "WATERPROOF", "STURDY", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "UNBREAKABLE_MELEE" ], - "armor": [ - { - "encumbrance": 60, - "coverage": 100, - "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] - } - ], - "melee_damage": { "bash": 1 } - }, - { - "id": "power_armor_heavy_on", - "copy-from": "power_armor_heavy", - "looks_like": "power_armor_heavy", - "type": "TOOL_ARMOR", - "name": { "str": "heavy combat exoskeleton (on)", "str_pl": "heavy combat exoskeletons (on)" }, - "description": "Colloquially known as a 'tank suit' in the media, these bulky exoskeletons, covered in thick segmented armor plates, were tested in military service a few years back and determined to be too heavy and expensive for regular use. Now that it's in your hands, though, you have a massive suit of power armor capable of resisting almost any small arms fire and most other forms of attack. On the other hand, it doubles your effective weight, and it's almost impossible not to bump into things. There is an integrated chemical-resistant bodyglove that precludes wearing other clothing. It is turned on and continually drawing power. Use it to turn it off.", - "flags": [ "USE_UPS", "WATERPROOF", "STURDY", "ELECTRIC_IMMUNE", "TRADER_AVOID", "COMBAT_TOGGLEABLE", "UNBREAKABLE_MELEE" ], - "power_draw": "4 kW", - "revert_to": "power_armor_heavy", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s armor disengages.", "target": "power_armor_heavy" }, - "armor": [ - { - "encumbrance": 20, - "coverage": 100, - "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] - } - ] - }, - { - "id": "power_armor_helmet_basic", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "environmental combat helmet" }, - "description": "A fully enclosed combat helmet for hazardous environments, this was designed to fit with a powered exoskeleton, using cameras to expand visual range. In practice, the cameras were unreliable and easily fouled. The environmental controls function best with direct-skin contact.", - "weight": "3628 g", - "volume": "5 L", - "price": 2500000, - "price_postapoc": 7500, - "to_hit": 1, - "material": [ "qt_steel", "hyperweave_off", "kevlar_rigid" ], - "symbol": "[", - "looks_like": "depowered_helmet", - "color": "light_gray", - "warmth": 90, - "power_armor": true, - "ammo": "battery", - "use_action": { - "type": "transform", - "menu_text": "Turn on", - "msg": "The %s engages.", - "target": "power_armor_helmet_basic_on", - "active": true - }, - "material_thickness": 14, - "environmental_protection": 16, - "qualities": [ [ "GLARE", 1 ] ], - "flags": [ "WATCH", "WATERPROOF", "STURDY", "PARTIAL_DEAF", "THERMOMETER", "SUN_GLASSES", "COMBAT_TOGGLEABLE" ], - "armor": [ { "encumbrance": 50, "coverage": 100, "covers": [ "head", "eyes", "mouth" ] } ], - "melee_damage": { "bash": 1 } - }, - { - "id": "power_armor_helmet_basic_on", - "type": "TOOL_ARMOR", - "copy-from": "power_armor_helmet_basic", - "looks_like": "power_armor_helmet_basic", - "name": { "str": "environmental combat helmet (on)", "str_pl": "environmental combat helmets (on)" }, - "description": "A fully enclosed combat helmet for hazardous environments, this was designed to fit with a powered exoskeleton, using cameras to expand visual range. In practice, the cameras were unreliable and easily fouled. The environmental controls function best with direct-skin contact. The environmental controls function best with direct-skin contact. It is turned on and continually drawing power. Use it to turn it off.", - "power_draw": "435 mW", - "revert_to": "power_armor_helmet_basic", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "power_armor_helmet_basic" }, - "extend": { "flags": [ "USE_UPS" ] }, - "armor": [ { "encumbrance": 10, "coverage": 100, "covers": [ "head", "eyes", "mouth" ] } ] - }, - { - "id": "power_armor_helmet_heavy", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "heavy environmental combat helmet" }, - "description": "An extremely heavy-duty fully enclosed combat helmet for hazardous environments, this was designed to fit with a powered exoskeleton. In the field, soldiers reported that the protection was not worth the awkward size and limited visuals. The environmental controls function best with direct-skin contact.", - "weight": "5442 g", - "volume": "7 L", - "price": 3750000, - "price_postapoc": 10000, - "to_hit": 1, - "material": [ "qt_steel", "hyperweave_off", "kevlar_rigid" ], - "symbol": "[", - "looks_like": "power_armor_helmet_basic", - "color": "dark_gray", - "warmth": 60, - "power_armor": true, - "material_thickness": 16, - "environmental_protection": 16, - "qualities": [ [ "GLARE", 1 ] ], - "ammo": "battery", - "use_action": { - "type": "transform", - "menu_text": "Turn on", - "msg": "The %s engages.", - "target": "power_armor_helmet_heavy_on", - "active": true - }, - "flags": [ "WATCH", "WATERPROOF", "STURDY", "PARTIAL_DEAF", "THERMOMETER", "SUN_GLASSES", "COMBAT_TOGGLEABLE" ], - "armor": [ { "encumbrance": 60, "coverage": 100, "covers": [ "head", "eyes", "mouth" ] } ], - "melee_damage": { "bash": 1 } - }, - { - "id": "power_armor_helmet_heavy_on", - "type": "TOOL_ARMOR", - "copy-from": "power_armor_helmet_heavy", - "looks_like": "power_armor_helmet_heavy", - "name": { "str": "heavy environmental combat helmet (on)", "str_pl": "heavy environmental combat helmets (on)" }, - "description": "An extremely heavy-duty fully enclosed combat helmet for hazardous environments, this was designed to fit with a powered exoskeleton. In the field, soldiers reported that the protection was not worth the awkward size and limited visuals. The environmental controls function best with direct-skin contact. It is turned on and continually drawing power. Use it to turn it off.", - "power_draw": "435 mW", - "revert_to": "power_armor_helmet_heavy", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "power_armor_helmet_heavy" }, - "extend": { "flags": [ "USE_UPS" ] }, - "armor": [ { "encumbrance": 20, "coverage": 100, "covers": [ "head", "eyes", "mouth" ] } ] - }, - { - "id": "power_armor_helmet_light", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "light environmental combat helmet" }, - "description": "This full-enclosure helmet was designed based on commercial diving equipment, in response to complaints that earlier designs were impossible to use in combat. While still a little more restrictive than regular combat headgear - and frustrating should your nose itch - this one received far better reviews from soldiers. Sadly, civilization ended before they could roll out in significant numbers. The environmental controls function best with direct-skin contact.", - "weight": "1814 g", - "volume": "4 L", - "price": 3750000, - "price_postapoc": 10000, - "to_hit": 1, - "material": [ "qt_steel", "kevlar", "kevlar_rigid" ], - "symbol": "[", - "looks_like": "power_armor_helmet_basic", - "color": "dark_gray", - "warmth": 60, - "power_armor": true, - "ammo": "battery", - "use_action": { - "type": "transform", - "menu_text": "Turn on", - "msg": "The %s engages.", - "target": "power_armor_helmet_light_on", - "active": true - }, - "material_thickness": 8, - "environmental_protection": 16, - "flags": [ "WATCH", "WATERPROOF", "STURDY", "THERMOMETER", "SUN_GLASSES", "SWIM_GOGGLES", "COMBAT_TOGGLEABLE" ], - "armor": [ { "encumbrance": 40, "coverage": 100, "covers": [ "head", "eyes", "mouth" ] } ], - "melee_damage": { "bash": 1 } - }, - { - "id": "power_armor_helmet_light_on", - "type": "TOOL_ARMOR", - "copy-from": "power_armor_helmet_light", - "looks_like": "power_armor_helmet_light", - "name": { "str": "light environmental combat helmet (on)", "str_pl": "light environmental combat helmets (on)" }, - "description": "This full-enclosure helmet was designed based on commercial diving equipment, in response to complaints that earlier designs were impossible to use in combat. While still a little more restrictive than regular combat headgear - and frustrating should your nose itch - this one received far better reviews from soldiers. Sadly, civilization ended before they could roll out in significant numbers. The environmental controls function best with direct-skin contact. It is turned on and continually drawing power. Use it to turn it off.", - "power_draw": "435 mW", - "revert_to": "power_armor_helmet_light", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "power_armor_helmet_light" }, - "extend": { "flags": [ "USE_UPS" ] }, - "armor": [ { "encumbrance": 0, "coverage": 100, "covers": [ "head", "eyes", "mouth" ] } ] - }, - { - "id": "power_armor_light", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "field combat exoskeleton" }, - "description": "The final iteration of military power armor before the fall of civilization, this type - a powered exoskeleton with high-tech segmented plating - was designed for actual widespread combat use and was seen on the front lines during the last days of the Cataclysm. Like the heavier suits, it is resistant to most modern weaponry, but it is light and maneuverable, and can fit into normal vehicles and doorways without fuss, a huge advantage over predecessors. Unfortunately, the world ended before it could roll out in significant numbers. There is an integrated chemical-resistant bodyglove that precludes wearing other clothing. The armor is outfitted with a variety of clips & clamps, allowing it to hold a few mags & grenades, as well as a large rifle.", - "weight": "12670 g", - "volume": "25 L", - "price": 11500000, - "price_postapoc": 40000, - "to_hit": 1, - "material": [ "qt_steel", "kevlar", "kevlar_rigid" ], - "symbol": "[", - "looks_like": "depowered_armor", - "color": "dark_gray", - "relic_data": { "passive_effects": [ { "id": "ench_climate_control_all" } ] }, - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "4 L", - "max_contains_weight": "30 kg", - "description": "Compartment for an UPS.", - "moves": 200 - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", - "max_item_length": "200 mm", - "holster": true, - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "description": "Spring-loaded clamp.", - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", - "max_item_length": "200 mm", - "holster": true, - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "description": "Spring-loaded clamp.", - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", - "max_item_length": "200 mm", - "holster": true, - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "description": "Spring-loaded clamp.", - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", - "max_item_length": "200 mm", - "holster": true, - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "description": "Spring-loaded clamp.", - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "1100 ml", - "max_contains_weight": "2 kg", - "description": "Compartment for grenades.", - "moves": 30, - "flag_restriction": [ "GRENADE" ] - }, - { - "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "12 L", - "max_contains_weight": "16500 g", - "max_item_length": "154 cm", - "description": "Integrated rifle case.", - "moves": 100 - } - ], - "warmth": 60, - "power_armor": true, - "material_thickness": 8, - "environmental_protection": 16, - "ammo": "battery", - "use_action": { "type": "transform", "msg": "The %s engages.", "target": "power_armor_light_on", "active": true }, - "flags": [ "WATERPROOF", "STURDY", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "UNBREAKABLE_MELEE" ], - "armor": [ - { - "encumbrance": 40, - "coverage": 100, - "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] - } - ], - "melee_damage": { "bash": 1 } - }, - { - "id": "power_armor_light_on", - "copy-from": "power_armor_light", - "looks_like": "power_armor_light", - "type": "TOOL_ARMOR", - "name": { "str": "field combat exoskeleton (on)", "str_pl": "field combat exoskeletons (on)" }, - "description": "The final iteration of military power armor before the fall of civilization, this type - a powered exoskeleton with high-tech segmented plating - was designed for actual widespread combat use and was seen on the front lines during the last days of the Cataclysm. Like the heavier suits, it is resistant to most modern weaponry, but it is light and maneuverable, and can fit into normal vehicles and doorways without fuss, a huge advantage over predecessors. Unfortunately, the world ended before it could roll out in significant numbers. There is an integrated chemical-resistant bodyglove that precludes wearing other clothing. It is turned on and continually drawing power. Use it to turn it off.", - "flags": [ "USE_UPS", "WATERPROOF", "STURDY", "ELECTRIC_IMMUNE", "TRADER_AVOID", "COMBAT_TOGGLEABLE", "UNBREAKABLE_MELEE" ], - "power_draw": "4 kW", - "revert_to": "power_armor_light", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s armor disengages.", "target": "power_armor_light" }, - "armor": [ - { - "encumbrance": 0, - "coverage": 100, - "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] - } - ] - } -] diff --git a/data/json/items/generic.json b/data/json/items/generic.json index 69be761ba82e5..1fed1f3cf782d 100644 --- a/data/json/items/generic.json +++ b/data/json/items/generic.json @@ -2065,6 +2065,14 @@ "to_hit": -1, "flags": [ "NANOFAB_TEMPLATE", "TRADER_AVOID" ] }, + { + "type": "GENERIC", + "id": "standard_template_construct_combat_exoskeleton", + "copy-from": "standard_template_construct", + "name": { "str": "nanofabricator exoskeleton template" }, + "description": "A state-of-the-art optical storage system. This small slate of transparent glass holds, inscribed as a miniature pattern, the instructions required to create an item through a nanofabricator. A small text at the bottom indicates that this one is specifically used to create combat exoskeletons.", + "nanofab_template_group": "nanofab_recipes_combat_exoskeletons" + }, { "type": "GENERIC", "id": "debug_template", diff --git a/data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_nested_security.json b/data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_nested_security.json index 823e77fb01d00..4954f947c2c29 100644 --- a/data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_nested_security.json +++ b/data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_nested_security.json @@ -1166,13 +1166,13 @@ "type": "mapgen", "method": "json", "nested_mapgen_id": "power_armor_roulette", - "weight": 100, + "weight": 300, "object": { "mapgensize": [ 1, 1 ], "place_loot": [ { "group": "power_armor_sets", "x": 0, "y": 0, "chance": 100 } ] } }, { "type": "mapgen", "method": "json", - "weight": 600, + "weight": 400, "nested_mapgen_id": "power_armor_roulette", "object": { "mapgensize": [ 1, 1 ], "place_monster": [ { "monster": "mon_zombie_armored", "x": 0, "y": 0 } ] } } diff --git a/data/json/monsterdrops/zombie.json b/data/json/monsterdrops/zombie.json index e953166eb52d0..4872efa7ddb8c 100644 --- a/data/json/monsterdrops/zombie.json +++ b/data/json/monsterdrops/zombie.json @@ -11,8 +11,11 @@ { "item": "circuit", "count": [ 0, 8 ], "prob": 40 }, { "item": "small_lcd_screen", "count": [ 0, 2 ], "prob": 25 }, { "item": "RAM", "count": [ 0, 1 ], "prob": 25 }, - { "item": "depowered_helmet", "count": [ 0, 1 ], "prob": 20 }, - { "item": "depowered_armor", "count": [ 0, 1 ], "prob": 20 } + { "item": "combat_exoskeleton_armor_head_medium", "count": [ 0, 1 ], "prob": 20 }, + { "item": "combat_exoskeleton_armor_torso_medium", "count": [ 0, 1 ], "prob": 20 }, + { "item": "combat_exoskeleton_armor_arm_medium", "count": [ 0, 1 ], "prob": 20 }, + { "item": "combat_exoskeleton_armor_leg_medium", "count": [ 0, 1 ], "prob": 20 }, + { "item": "combat_exoskeleton_light_salvaged", "count": [ 0, 1 ], "prob": 20 } ] }, { diff --git a/data/json/obsoletion_and_migration_0.I/migration_items.json b/data/json/obsoletion_and_migration_0.I/migration_items.json index e7c8aa428448d..0a2eb10360ebd 100644 --- a/data/json/obsoletion_and_migration_0.I/migration_items.json +++ b/data/json/obsoletion_and_migration_0.I/migration_items.json @@ -1,4 +1,84 @@ [ + { + "id": "depowered_armor", + "type": "MIGRATION", + "replace": "combat_exoskeleton_light_salvaged" + }, + { + "id": "depowered_helmet", + "type": "MIGRATION", + "replace": "combat_exoskeleton_armor_head_light" + }, + { + "id": "power_armor_frame", + "type": "MIGRATION", + "replace": "qt_steel_chunk" + }, + { + "id": "power_armor_generator", + "type": "MIGRATION", + "replace": "qt_steel_chunk" + }, + { + "id": "power_armor_helmet_basic", + "type": "MIGRATION", + "replace": "combat_exoskeleton_armor_head_medium" + }, + { + "id": "power_armor_helmet_basic_on", + "type": "MIGRATION", + "replace": "combat_exoskeleton_armor_head_medium" + }, + { + "id": "power_armor_helmet_light", + "type": "MIGRATION", + "replace": "combat_exoskeleton_armor_head_light" + }, + { + "id": "power_armor_helmet_light_on", + "type": "MIGRATION", + "replace": "combat_exoskeleton_armor_head_light" + }, + { + "id": "power_armor_helmet_heavy", + "type": "MIGRATION", + "replace": "combat_exoskeleton_armor_head_heavy" + }, + { + "id": "power_armor_helmet_heavy_on", + "type": "MIGRATION", + "replace": "combat_exoskeleton_armor_head_heavy" + }, + { + "id": "power_armor_basic", + "type": "MIGRATION", + "replace": "combat_exoskeleton_medium" + }, + { + "id": "power_armor_basic_on", + "type": "MIGRATION", + "replace": "combat_exoskeleton_medium_on" + }, + { + "id": "power_armor_light", + "type": "MIGRATION", + "replace": "combat_exoskeleton_light" + }, + { + "id": "power_armor_light_on", + "type": "MIGRATION", + "replace": "combat_exoskeleton_light_on" + }, + { + "id": "power_armor_heavy", + "type": "MIGRATION", + "replace": "combat_exoskeleton_heavy" + }, + { + "id": "power_armor_heavy_on", + "type": "MIGRATION", + "replace": "combat_exoskeleton_heavy_on" + }, { "id": "lobotomizer", "type": "MIGRATION", diff --git a/data/json/recipes/armor/combat_exoskeleton_armor.json b/data/json/recipes/armor/combat_exoskeleton_armor.json new file mode 100644 index 0000000000000..c4fb9df67cdb0 --- /dev/null +++ b/data/json/recipes/armor/combat_exoskeleton_armor.json @@ -0,0 +1,166 @@ +[ + { + "result": "combat_exoskeleton_armor_head_heavy_reinforced", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "fabrication", + "difficulty": 8, + "time": "2 h", + "book_learn": [ [ "textbook_armwest", 6 ], [ "textbook_fabrication", 6 ], [ "recipe_melee", 6 ] ], + "using": [ [ "chainmail_standard", 1 ], [ "welding_standard", 100 ] ], + "components": [ + [ [ "qt_link_sheet", 1 ] ], + [ [ "qt_chain_link", 20 ] ], + [ [ "qt_wire", 1 ] ], + [ [ "combat_exoskeleton_armor_head_heavy", 1 ] ] + ], + "proficiencies": [ { "proficiency": "prof_chain_armour" } ] + }, + { + "result": "combat_exoskeleton_armor_torso_heavy_reinforced", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "fabrication", + "difficulty": 8, + "time": "3 h 15 m", + "book_learn": [ [ "textbook_armwest", 6 ], [ "textbook_fabrication", 6 ], [ "recipe_melee", 6 ] ], + "using": [ [ "chainmail_standard", 2 ], [ "welding_standard", 200 ] ], + "components": [ + [ [ "qt_link_sheet", 2 ] ], + [ [ "qt_chain_link", 45 ] ], + [ [ "qt_wire", 1 ] ], + [ [ "combat_exoskeleton_armor_torso_heavy", 1 ] ] + ], + "proficiencies": [ { "proficiency": "prof_chain_armour" } ] + }, + { + "result": "combat_exoskeleton_armor_arm_heavy_reinforced", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "fabrication", + "difficulty": 8, + "time": "2 h", + "book_learn": [ [ "textbook_armwest", 6 ], [ "textbook_fabrication", 6 ], [ "recipe_melee", 6 ] ], + "using": [ [ "chainmail_standard", 1 ], [ "welding_standard", 100 ] ], + "components": [ + [ [ "qt_link_sheet", 1 ] ], + [ [ "qt_chain_link", 25 ] ], + [ [ "qt_wire", 1 ] ], + [ [ "combat_exoskeleton_armor_arm_heavy", 1 ] ] + ], + "proficiencies": [ { "proficiency": "prof_chain_armour" } ] + }, + { + "result": "combat_exoskeleton_armor_leg_heavy_reinforced", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "fabrication", + "difficulty": 8, + "time": "2 h", + "book_learn": [ [ "textbook_armwest", 6 ], [ "textbook_fabrication", 6 ], [ "recipe_melee", 6 ] ], + "using": [ [ "chainmail_standard", 1 ], [ "welding_standard", 100 ] ], + "components": [ + [ [ "qt_link_sheet", 1 ] ], + [ [ "qt_chain_link", 25 ] ], + [ [ "qt_wire", 1 ] ], + [ [ "combat_exoskeleton_armor_leg_heavy", 1 ] ] + ], + "proficiencies": [ { "proficiency": "prof_chain_armour" } ] + }, + { + "copy-from": "combat_exoskeleton_armor_head_heavy_reinforced", + "result": "combat_exoskeleton_armor_head_medium_reinforced", + "type": "recipe", + "components": [ + [ [ "qt_link_sheet", 1 ] ], + [ [ "qt_chain_link", 20 ] ], + [ [ "qt_wire", 1 ] ], + [ [ "combat_exoskeleton_armor_head_medium", 1 ] ] + ] + }, + { + "copy-from": "combat_exoskeleton_armor_torso_heavy_reinforced", + "result": "combat_exoskeleton_armor_torso_medium_reinforced", + "type": "recipe", + "components": [ + [ [ "qt_link_sheet", 2 ] ], + [ [ "qt_chain_link", 45 ] ], + [ [ "qt_wire", 1 ] ], + [ [ "combat_exoskeleton_armor_torso_medium", 1 ] ] + ] + }, + { + "copy-from": "combat_exoskeleton_armor_arm_heavy_reinforced", + "result": "combat_exoskeleton_armor_arm_medium_reinforced", + "type": "recipe", + "components": [ + [ [ "qt_link_sheet", 1 ] ], + [ [ "qt_chain_link", 25 ] ], + [ [ "qt_wire", 1 ] ], + [ [ "combat_exoskeleton_armor_arm_medium", 1 ] ] + ] + }, + { + "copy-from": "combat_exoskeleton_armor_leg_heavy_reinforced", + "result": "combat_exoskeleton_armor_leg_medium_reinforced", + "type": "recipe", + "components": [ + [ [ "qt_link_sheet", 1 ] ], + [ [ "qt_chain_link", 25 ] ], + [ [ "qt_wire", 1 ] ], + [ [ "combat_exoskeleton_armor_leg_medium", 1 ] ] + ] + }, + { + "copy-from": "combat_exoskeleton_armor_head_heavy_reinforced", + "result": "combat_exoskeleton_armor_head_light_reinforced", + "type": "recipe", + "components": [ + [ [ "qt_link_sheet", 1 ] ], + [ [ "qt_chain_link", 20 ] ], + [ [ "qt_wire", 1 ] ], + [ [ "combat_exoskeleton_armor_head_light", 1 ] ] + ] + }, + { + "copy-from": "combat_exoskeleton_armor_torso_heavy_reinforced", + "result": "combat_exoskeleton_armor_torso_light_reinforced", + "type": "recipe", + "components": [ + [ [ "qt_link_sheet", 2 ] ], + [ [ "qt_chain_link", 45 ] ], + [ [ "qt_wire", 1 ] ], + [ [ "combat_exoskeleton_armor_torso_light", 1 ] ] + ] + }, + { + "copy-from": "combat_exoskeleton_armor_arm_heavy_reinforced", + "result": "combat_exoskeleton_armor_arm_light_reinforced", + "type": "recipe", + "components": [ + [ [ "qt_link_sheet", 1 ] ], + [ [ "qt_chain_link", 25 ] ], + [ [ "qt_wire", 1 ] ], + [ [ "combat_exoskeleton_armor_arm_light", 1 ] ] + ] + }, + { + "copy-from": "combat_exoskeleton_armor_leg_heavy_reinforced", + "result": "combat_exoskeleton_armor_leg_light_reinforced", + "type": "recipe", + "components": [ + [ [ "qt_link_sheet", 1 ] ], + [ [ "qt_chain_link", 25 ] ], + [ [ "qt_wire", 1 ] ], + [ [ "combat_exoskeleton_armor_leg_light", 1 ] ] + ] + } +] diff --git a/data/json/recipes/nested.json b/data/json/recipes/nested.json index 4c715f3ebbfd0..57f8e419f47ba 100644 --- a/data/json/recipes/nested.json +++ b/data/json/recipes/nested.json @@ -7140,5 +7140,40 @@ "description": "Recipes pertaining to the production of necklaces, bracelets, and other forms of jewelry formed from spent munitions.", "skill_used": "fabrication", "nested_category_data": [ "nested_bullet_necklaces" ] + }, + { + "id": "nested_combat_exoskeleton_armor_reinforcement", + "type": "nested_category", + "activity_level": "NO_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "name": "exoskeleton armors reinforcements", + "description": "Recipes related to the reinforcement of standard exoskeleton armors.", + "skill_used": "fabrication", + "nested_category_data": [ + "combat_exoskeleton_armor_head_heavy_reinforced", + "combat_exoskeleton_armor_torso_heavy_reinforced", + "combat_exoskeleton_armor_arm_heavy_reinforced", + "combat_exoskeleton_armor_leg_heavy_reinforced", + "combat_exoskeleton_armor_head_medium_reinforced", + "combat_exoskeleton_armor_torso_medium_reinforced", + "combat_exoskeleton_armor_arm_medium_reinforced", + "combat_exoskeleton_armor_leg_medium_reinforced", + "combat_exoskeleton_armor_head_light_reinforced", + "combat_exoskeleton_armor_torso_light_reinforced", + "combat_exoskeleton_armor_arm_light_reinforced", + "combat_exoskeleton_armor_leg_light_reinforced" + ] + }, + { + "id": "nested_combat_exoskeleton_armor", + "type": "nested_category", + "activity_level": "NO_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_SUIT", + "name": "exoskeleton armors", + "description": "Recipes related to the production of custom exoskeleton armors.", + "skill_used": "fabrication", + "nested_category_data": [ "nested_combat_exoskeleton_armor_reinforcement" ] } ] diff --git a/data/json/recipes/recipe_deconstruction.json b/data/json/recipes/recipe_deconstruction.json index bdbcd46c54d49..5525ad3e590b7 100644 --- a/data/json/recipes/recipe_deconstruction.json +++ b/data/json/recipes/recipe_deconstruction.json @@ -3496,7 +3496,7 @@ "components": [ [ [ "scrap_copper", 3 ] ] ] }, { - "result": "power_armor_basic", + "result": "combat_exoskeleton_medium", "type": "uncraft", "activity_level": "MODERATE_EXERCISE", "skill_used": "fabrication", @@ -3506,7 +3506,7 @@ "qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ], "tools": [ [ [ "boltcutters", -1 ], [ "toolset", -1 ] ] ], "components": [ - [ [ "depowered_armor", 1 ] ], + [ [ "combat_exoskeleton_light_salvaged", 1 ] ], [ [ "power_supply", 6 ] ], [ [ "element", 2 ] ], [ [ "cable", 12 ] ], @@ -3514,25 +3514,6 @@ [ [ "transponder", 1 ] ] ] }, - { - "result": "power_armor_helmet_basic", - "type": "uncraft", - "activity_level": "MODERATE_EXERCISE", - "skill_used": "fabrication", - "difficulty": 8, - "skills_required": [ "electronics", 4 ], - "time": "45 m", - "qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ], - "tools": [ [ [ "boltcutters", -1 ], [ "toolset", -1 ] ] ], - "components": [ - [ [ "depowered_helmet", 1 ] ], - [ [ "power_supply", 1 ] ], - [ [ "element", 1 ] ], - [ [ "small_lcd_screen", 2 ] ], - [ [ "circuit", 2 ] ], - [ [ "RAM", 1 ] ] - ] - }, { "result": "processor", "type": "uncraft", diff --git a/data/json/statistics.json b/data/json/statistics.json index 0ab6183ce6670..7ecb1cc226c54 100644 --- a/data/json/statistics.json +++ b/data/json/statistics.json @@ -728,7 +728,7 @@ "id": "avatar_wears_power_armor_heavy", "type": "event_transformation", "event_transformation": "avatar_wears_item", - "value_constraints": { "itype": { "equals": [ "itype_id", "power_armor_heavy" ] } }, + "value_constraints": { "itype": { "equals": [ "itype_id", "combat_exoskeleton_heavy" ] } }, "drop_fields": [ "itype" ] }, { diff --git a/data/mods/classic_zombies/items/blacklists.json b/data/mods/classic_zombies/items/blacklists.json index d887c9b5b3774..e3ed722a04fc5 100644 --- a/data/mods/classic_zombies/items/blacklists.json +++ b/data/mods/classic_zombies/items/blacklists.json @@ -38,6 +38,22 @@ "atomic_coffee", "bren2_762", "bren2_556", + "combat_exoskeleton_light_salvaged", + "combat_exoskeleton_heavy", + "combat_exoskeleton_medium", + "combat_exoskeleton_light", + "combat_exoskeleton_armor_head_heavy", + "combat_exoskeleton_armor_torso_heavy", + "combat_exoskeleton_armor_arm_heavy", + "combat_exoskeleton_armor_leg_heavy", + "combat_exoskeleton_armor_head_medium", + "combat_exoskeleton_armor_torso_medium", + "combat_exoskeleton_armor_arm_medium", + "combat_exoskeleton_armor_leg_medium", + "combat_exoskeleton_armor_head_light", + "combat_exoskeleton_armor_torso_light", + "combat_exoskeleton_armor_arm_light", + "combat_exoskeleton_armor_leg_light", "mdrx", "ruger_arr", "ruger_pr", @@ -186,8 +202,6 @@ "btmp9mag_9x19mm_50rd", "coilgun", "cx4", - "depowered_armor", - "depowered_helmet", "emp_gun", "fetus", "fs2000", @@ -289,14 +303,6 @@ "plasma_gun", "plasma_rifle", "plut_cell", - "power_armor_basic", - "power_armor_frame", - "power_armor_generator", - "power_armor_heavy", - "power_armor_helmet_basic", - "power_armor_helmet_heavy", - "power_armor_helmet_light", - "power_armor_light", "purifier", "px4", "px4mag", diff --git a/tests/npc_attack_test.cpp b/tests/npc_attack_test.cpp index 2f33e0bf23384..009068ca15015 100644 --- a/tests/npc_attack_test.cpp +++ b/tests/npc_attack_test.cpp @@ -11,13 +11,11 @@ #include "options_helpers.h" #include "player_helpers.h" -static const ammotype ammo_battery( "battery" ); - static const faction_id faction_your_followers( "your_followers" ); +static const itype_id itype_combat_exoskeleton_medium( "combat_exoskeleton_medium" ); +static const itype_id itype_combat_exoskeleton_medium_on( "combat_exoskeleton_medium_on" ); static const itype_id itype_knife_chef( "knife_chef" ); -static const itype_id itype_power_armor_basic( "power_armor_basic" ); -static const itype_id itype_power_armor_basic_on( "power_armor_basic_on" ); static const itype_id itype_rock( "rock" ); static const itype_id itype_wearable_light( "wearable_light" ); @@ -149,41 +147,42 @@ TEST_CASE( "NPC_faces_zombies", "[npc_attack]" ) CHECK( !throw_attack ); } } - WHEN( "NPC has power armor" ) { - main_npc.clear_worn(); + WHEN( "NPC has an exoskeleton" ) { - item armor( "power_armor_basic" ); + main_npc.clear_worn(); + item armor( "combat_exoskeleton_medium" ); std::optional::iterator> wear_success = main_npc.wear_item( armor ); + item &worn_armor = **wear_success; + REQUIRE( wear_success ); // If the flag gets removed from power armor, some other item with the flag will need to replace it. REQUIRE( main_npc.worn_with_flag( flag_COMBAT_TOGGLEABLE ) ); - WHEN( "NPC has a UPS for their armor" ) { - item ps( "UPS_ON" ); - item battery( "heavy_plus_battery_cell" ); - battery.ammo_set( battery.ammo_default(), battery.ammo_capacity( ammo_battery ) ); + WHEN( "NPC has a battery for their armor" ) { + + item battery = item( "heavy_battery_cell" ); + battery.ammo_set( battery.ammo_default() ); + worn_armor.put_in( battery, pocket_type::MAGAZINE_WELL ); - ps.put_in( battery, pocket_type::MAGAZINE_WELL ); + REQUIRE( worn_armor.ammo_remaining() > 0 ); - item_location stored_ps = main_npc.try_add( ps ); - REQUIRE( stored_ps != item_location::nowhere ); + THEN( "NPC activates their exoskeleton successfully" ) { - THEN( "NPC activates their power armor successfully" ) { // target is not exposed, so regen_ai_cache is used to have the npc re-assess threat and store the target. main_npc.regen_ai_cache(); main_npc.method_of_attack(); - CHECK( main_npc.is_wearing( itype_power_armor_basic_on ) ); - CHECK( !main_npc.is_wearing( itype_power_armor_basic ) ); + CHECK( main_npc.is_wearing( itype_combat_exoskeleton_medium_on ) ); + CHECK( !main_npc.is_wearing( itype_combat_exoskeleton_medium ) ); } } - WHEN( "NPC has no power supply for their armor" ) { - THEN( "NPC fails to activate their power armor" ) { + WHEN( "NPC has no power supply for their exoskeleton" ) { + THEN( "NPC fails to activate their exoskeleton" ) { main_npc.regen_ai_cache(); main_npc.method_of_attack(); - CHECK( main_npc.is_wearing( itype_power_armor_basic ) ); - CHECK( !main_npc.is_wearing( itype_power_armor_basic_on ) ); + CHECK( main_npc.is_wearing( itype_combat_exoskeleton_medium ) ); + CHECK( !main_npc.is_wearing( itype_combat_exoskeleton_medium_on ) ); } } } @@ -292,18 +291,18 @@ TEST_CASE( "NPC_faces_zombies", "[npc_attack]" ) } } GIVEN( "There is no zombie nearby. " ) { - WHEN( "NPC is wearing active power armor. " ) { - item armor( "power_armor_basic_on" ); + WHEN( "NPC is wearing active exoskeleton. " ) { + item armor( "combat_exoskeleton_medium_on" ); armor.activate(); std::optional::iterator> wear_success = main_npc.wear_item( armor ); REQUIRE( wear_success ); - THEN( "NPC deactivates their power armor. " ) { + THEN( "NPC deactivates their exoskeleton. " ) { // This is somewhat cheating, but going up one level is testing all of npc::move. main_npc.cleanup_on_no_danger(); - CHECK( !main_npc.is_wearing( itype_power_armor_basic_on ) ); - CHECK( main_npc.is_wearing( itype_power_armor_basic ) ); + CHECK( !main_npc.is_wearing( itype_combat_exoskeleton_medium_on ) ); + CHECK( main_npc.is_wearing( itype_combat_exoskeleton_medium ) ); } } }