From 1bdddb1f8cd876712ed5d2387049ee9cd286026c Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 6 Dec 2021 23:12:45 -0800 Subject: [PATCH 001/189] Draft Initial draft adding tool slots and tools for exoskeletons. --- .../Aftershock/items/armor/exoskeletons.json | 102 ++++++++++++++++++ data/mods/Aftershock/items/tools.json | 69 ++++++++++++ 2 files changed, 171 insertions(+) create mode 100644 data/mods/Aftershock/items/armor/exoskeletons.json diff --git a/data/mods/Aftershock/items/armor/exoskeletons.json b/data/mods/Aftershock/items/armor/exoskeletons.json new file mode 100644 index 0000000000000..a182bab890648 --- /dev/null +++ b/data/mods/Aftershock/items/armor/exoskeletons.json @@ -0,0 +1,102 @@ +[ + { + "id": "utility_exoskeleton_off", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "battery powered utility exoskeleton" }, + "//": "This is based on the Sarcos Guardian, a production model with independent battery power, all weather operation, and capable of lifting up to 200 lbs. It uses three 12 lb batteries that provide 8 hours of operation. The battery life in-game is significantly less in order to utilize medium storage batteries, otherwise this would require the unit to be active to reload itself. This can also be changed out to use other battery types.", + "description": "This is a skeletal frame of sturdy metal with attached motors to allow the user to move heavier loads with less strain on the body.", + "weight": "90 kg", + "volume": "130 L", + "price": 11500000, + "price_postapoc": 40000, + "to_hit": 1, + "bashing": 1, + "material": [ "steel", "plastic" ], + "symbol": "[", + "looks_like": "depowered_armor", + "color": "dark_gray", + "pocket_data": [{ "pocket_type": "MAGAZINE_WELL", "item_restriction": [ "medium_storage_battery" ] }, + { "pocket_type": "CONTAINER", "item_restriction": [ "exotool" ] }, + { "pocket_type": "CONTAINER", "item_restriction": [ "powered_exotool" ] }], + "warmth": 0, + "material_thickness": 8, + "environmental_protection": 0, + "ammo": "battery", + "charges_per_use": 1, + "use_action": { "type": "transform", "msg": "The %s engages.", "target": "utility_exoskeleton_on", "active": true }, + "flags": [ "STURDY", "OVERSIZE", "BELTED", "WATER_FRIENDLY", "SLOWS_MOVEMENT" ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 20 } ] } ] }, + "armor": [ + { + "encumbrance": 20, + "coverage": 20, + "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] + } + ] + }, + { + "id": "utility_exoskeleton_on", + "copy-from": "utility_exoskeleton_off", + "repairs_like": "utility_exoskeleton_off", + "looks_like": "power_armor_light", + "type": "TOOL_ARMOR", + "name": { "str": "battery powered utility exoskeleton (on)", "str_pl": "battery powered utility exoskeletons (on)" }, + "description": "This is a skeletal frame of sturdy metal with attached motors to allow the user to move heavier loads with less strain on the body. It is turned on and continually drawing power. Use it to turn it off.", + "flags": [ "STURDY", "OVERSIZE", "BELTED", "WATER_FRIENDLY", "TRADER_AVOID" ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 20 } ] } ] }, + "ammo": "battery", + "power_draw": 972216, + "//": "Battery should last two hours (02:00:07).", + "revert_to": "utility_exoskeleton_off", + "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "utility_exoskeleton_off" } + }, + { + "id": "ice_utility_exoskeleton_off", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "ICE utility exoskeleton" }, + "description": "This is a skeletal frame of sturdy metal with attached motors to allow the user to move heavier loads with less strain on the body. This model uses a compact internal combustion engine for power.", + "weight": "110 kg", + "volume": "130 L", + "price": 11500000, + "price_postapoc": 40000, + "to_hit": 1, + "bashing": 1, + "material": [ "steel", "plastic" ], + "symbol": "[", + "looks_like": "depowered_armor", + "color": "dark_gray", + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "watertight": true, "ammo_restriction": { "gasoline": 10000 } }, { "pocket_type": "CONTAINER", "item_restriction": [ "exotool" ] }, { "pocket_type": "CONTAINER", "item_restriction": [ "powered_exotool" ] } ], + "warmth": 0, + "material_thickness": 8, + "environmental_protection": 0, + "ammo": "gasoline", + "charges_per_use": 1, + "use_action": { "type": "transform", "msg": "The %s engages.", "target": "ice_utility_exoskeleton_on", "active": true }, + "flags": [ "STURDY", "OVERSIZE", "BELTED", "WATER_FRIENDLY", "SLOWS_MOVEMENT" ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 20 } ] } ] }, + "armor": [ + { + "encumbrance": 20, + "coverage": 20, + "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] + } + ] + }, + { + "id": "ice_utility_exoskeleton_on", + "copy-from": "ice_utility_exoskeleton_off", + "repairs_like": "ice_utility_exoskeleton_off", + "looks_like": "power_armor_light", + "type": "TOOL_ARMOR", + "name": { "str": "ICE utility exoskeleton (on)", "str_pl": "ICE utility exoskeletons (on)" }, + "description": "This is a skeletal frame of sturdy metal with attached motors to allow the user to move heavier loads with less strain on the body. This model uses a compact internal combustion engine for power. It is turned on and continually draining gasoline. Use it to turn it off.", + "flags": [ "STURDY", "OVERSIZE", "BELTED", "WATER_FRIENDLY", "TRADER_AVOID" ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 20 } ] } ] }, + "turns_per_charge": 1, + "//": "Full tank lasts a bit under three hours (166.66 minutes).", + "revert_to": "ice_utility_exoskeleton_off", + "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "ice_utility_exoskeleton_off" } + } +] \ No newline at end of file diff --git a/data/mods/Aftershock/items/tools.json b/data/mods/Aftershock/items/tools.json index 033c8adba84dd..e02f01fd06503 100644 --- a/data/mods/Aftershock/items/tools.json +++ b/data/mods/Aftershock/items/tools.json @@ -489,5 +489,74 @@ "symbol": "H", "color": "light_gray", "flags": [ "ALLOWS_REMOTE_USE" ] + }, + { + "id": "exotool", + "type": "TOOL", + "name": { "str": "exoskeleton tool set" }, + "description": "This is a tool module for a powered exoskeleton.", + "weight": "5 kg", + "volume": "5 L", + "longest_side": "75 cm", + "price": 10000, + "price_postapoc": 30000, + "material": [ "aluminum", "steel" ], + "symbol": "=", + "color": "light_gray", + "use_action": [ [ "CROWBAR", 0 ], [ "HAMMER", 0 ] ], + "qualities": [ + [ "HAMMER", 3 ], + [ "HAMMER_FINE", 1 ], + [ "SAW_W", 1 ], + [ "SAW_M", 2 ], + [ "SAW_M_FINE", 1 ], + [ "WRENCH", 2 ], + [ "WRENCH_FINE", 1 ], + [ "WHEEL_FAST", 1 ], + [ "SCREW", 1 ], + [ "SCREW_FINE", 1 ], + [ "CUT", 1 ], + [ "PRY", 1 ], + [ "PRYING_NAIL", 1 ], + [ "DRILL", 3 ], + [ "BUTCHER", -38 ] + ] + }, + { + "id": "powered_exotool", + "type": "TOOL", + "name": { "str": "exoskeleton powered tool set" }, + "description": "This is a tool module for a powered exoskeleton. It includes an arc welder and an electric jackhammer, powered by a heavy battery.", + "weight": "10 kg", + "volume": "5 L", + "longest_side": "75 cm", + "price": 10000, + "price_postapoc": 30000, + "material": [ "aluminum", "steel" ], + "symbol": "=", + "color": "light_gray", + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_HEAVY" ], + "default_magazine": "heavy_battery_cell" + } + ], + "ammo": [ "battery" ], + "charges_per_use": 5, + "qualities": [ [ "WELD", 2 ] ], + "use_action": [ + { + "type": "repair_item", + "item_action_type": "repair_metal", + "materials": [ "iron", "steel", "hardsteel", "aluminum", "copper", "bronze", "silver", "gold", "platinum", "superalloy" ], + "skill": "fabrication", + "tool_quality": 10, + "cost_scaling": 0.1, + "move_cost": 500 + }, + "JACKHAMMER" + ] } ] From fcfb99e66e356058497bb626e928c5fb87ef9d51 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Tue, 7 Dec 2021 13:14:31 -0800 Subject: [PATCH 002/189] Modular Exos Adds a basic power armor frame with pockets for torso, back, arms, and legs. These pockets are for specific PA plating which uses the "CANT_WEAR" flag. Added draft steel plate for each location to verify functionality. --- data/mods - Shortcut.lnk | Bin 0 -> 1186 bytes .../Aftershock/items/armor/exoskeletons.json | 24 ++++++ .../items/armor/modular_exoskeleton.json | 80 ++++++++++++++++++ .../items/armor/modular_exoskeleton_case.json | 78 +++++++++++++++++ 4 files changed, 182 insertions(+) create mode 100644 data/mods - Shortcut.lnk create mode 100644 data/mods/Aftershock/items/armor/modular_exoskeleton.json create mode 100644 data/mods/Aftershock/items/armor/modular_exoskeleton_case.json diff --git a/data/mods - Shortcut.lnk b/data/mods - Shortcut.lnk new file mode 100644 index 0000000000000000000000000000000000000000..011192b5b533aa82fdd80d27b98ea232197986e2 GIT binary patch literal 1186 zcmbVLUr1A76#q?4w7*xgu(BM2X{BqzkR>UTP3J^%Y}r3<;MgWAcWt>FWxgdjM8g-2 z3<`^t4^1gbjQ)rP^&kkNuvPRB^p=%KFGVk%b2slML_z2B`@Zv?d+zU?@0@d+0BG{k zXa#1K74-wifrVaN+T+iL)dXeC&1bv!-#BTU}+}o=qU?1Cq{MjzIhWnRVkjy z<=12kR&+onQ!eZ(Q*W67hd1C4;-JdaOI+p==BjOEh9O>3Wb)H%IN(J9egw&$hxPW3-f*TULiQR{CSm>#x_XRkV zh|}dvj|lKk9KPvF4dyBDyGjk_LYd^hfk{)u*8c&X1V3lJ!WME~H45U_pHHSG?WM2%2}2d8t)iOnl1+eEiVoaEG%EB zo31(fB`5qWaPhfan*7)M$8>>gVC*!pRXFX=ullF&&FHs||A=l52iuBTI3`CbBorx! zc+<2fMIDt;OpKbCGA80*TDynINCpWUP`_L}y=2`k+*(d+9lX96*-7@b?7#un5R!EV zw$ND_c@rr(bL0X4fy|h}XZ~V6p`K=6qM6mAjd~_g{$6yEoxk2lfQg{~ucUVqIG5X< z?$YX!S2 Date: Wed, 8 Dec 2021 18:38:27 -0800 Subject: [PATCH 003/189] Armor types and power supplies Three different backpack power supplies exist (rechargeable, battery compartment, and gasoline), two types of destructible ablative armor are finished (steel and plastic). Initial sanity pass done on frame and armor balance. Next steps will be adding enhancement modules to increase carry weight, then more armor types like military composite, then pockets for tools/ammo/etc. --- .../items/armor/modular_exoskeleton.json | 163 ++++++++++++----- .../items/armor/modular_exoskeleton_case.json | 166 ++++++++++-------- 2 files changed, 213 insertions(+), 116 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exoskeleton.json index b3bf2651c2ecd..0a2ef6b7415a0 100644 --- a/data/mods/Aftershock/items/armor/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exoskeleton.json @@ -1,11 +1,11 @@ [ - { + { "id": "afs_pa_undersuit", "repairs_like": "thermal_suit", "type": "ARMOR", "copy-from": "jumpsuit", "looks_like": "robofac_enviro_suit", - "name": { "str": "powerframe undersuit" }, + "name": { "str": "exoskeleton undersuit" }, "description": "A form-fitting suit inlaid with meant to be worn beneath power armor. Although not a requirement for the operation of power armor, it features climate control and haptic feedback systems that offer improved performance and comfort. The suit is not designed for use outside of armor, it has no pockets, offers nearly no protection and damages easily.", "color": "brown", "material": [ "nomex", "plastic" ], @@ -19,62 +19,141 @@ ], "pocket_data": [ ], "warmth": 10, - "flags": [ "USE_UPS", "WATERPROOF", "POWERARMOR_COMPATIBLE" ] + "flags": [ "USE_UPS", "SKINTIGHT", "WATERPROOF", "POWERARMOR_COMPATIBLE" ] }, { - "id": "exoskeleton frame", - "type": "ARMOR", - "name": {"str": "exoskeleton frame"}, - "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools.", - "weight": "40 kg", - "volume": "130 L", - "price": 11500000, - "price_postapoc": 40000, - "to_hit": 1, - "bashing": 1, - "material": [ "steel", "plastic" ], + "id": "modular_exoskeleton_off", + "type": "TOOL_ARMOR", + "name": { "str": "exoskeleton frame", "str_pl": "exoskeleton frames" }, + "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs.", + "weight": "40 kg", + "volume": "130 L", + "price": 11500000, + "price_postapoc": 40000, + "to_hit": 1, + "bashing": 1, + "material": [ "steel", "plastic" ], "symbol": "[", "looks_like": "power_armor_basic", "color": "light_gray", "pocket_data": [ - { + { "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "6 L", - "max_contains_weight": "4200 g", + "ablative": true, + "max_contains_volume": "10 L", + "max_contains_weight": "15 kg", "item_restriction": [ "pa_torso_steel" ], "moves": 60 - }, - { + }, + { "pocket_type": "CONTAINER", "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", + "max_contains_volume": "50 L", + "max_contains_weight": "400 kg", "max_item_length": "200 mm", - "holster": true, - "item_restriction": [ "pa_torso_steel" ], + "item_restriction": [ "pa_back_battery" ], "moves": 60 - }, - { + }, + { "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", + "ablative": true, + "max_contains_volume": "10 L", + "max_contains_weight": "15 kg", "max_item_length": "200 mm", - "holster": true, - "item_restriction": [ "pa_torso_steel" ], + "item_restriction": [ "pa_arm_steel" ], "moves": 60 - }, - { + }, + { "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", + "ablative": true, + "max_contains_volume": "10 L", + "max_contains_weight": "15 kg", "max_item_length": "200 mm", - "holster": true, - "item_restriction": [ "pa_torso_steel" ], + "item_restriction": [ "pa_leg_steel" ], "moves": 60 - } - ] - } -] \ No newline at end of file + }], +"armor": [ + { + "encumbrance": 20, + "coverage": 100, + "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] + } + ], + "ammo": "battery", + "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] }, + "use_action": + { + "target": "modular_exoskeleton_low", + "msg": "You activate the exoskeleton on the lowest setting.", + "menu_text": "Low power", + "active": true, + "need_charges": 1, + "need_charges_msg": "The suit does not have enough charge.", + "type": "transform" + } + }, + { + "id": "modular_exoskeleton_low", + "copy-from": "modular_exoskeleton_off", + "repairs_like": "modular_exoskeleton_off", + "looks_like": "power_armor_light", + "type": "TOOL_ARMOR", + "name": { "str": "exoskeleton frame (on, low)", "str_pl": "exoskeleton frames (on, low)" }, + "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on to low power mode and continually drawing power. Use it to turn it off.", + "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] }, + "power_draw": 7123, + "revert_to": "modular_exoskeleton_off", + "use_action": { + "target": "modular_exoskeleton_med", + "msg": "You activate the exoskeleton on the middle setting.", + "menu_text": "Medium power", + "active": true, + "need_charges": 1, + "need_charges_msg": "The suit does not have enough charge.", + "type": "transform" + } + }, + { + "id": "modular_exoskeleton_med", + "copy-from": "modular_exoskeleton_off", + "repairs_like": "modular_exoskeleton_off", + "looks_like": "power_armor_light", + "type": "TOOL_ARMOR", + "name": { "str": "exoskeleton frame (on, med)", "str_pl": "exoskeleton frames (on, med)" }, + "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on to medium power mode and continually drawing power. Use it to turn it off.", + "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] }, + "power_draw": 8418, + "revert_to": "modular_exoskeleton_off", + "use_action": { +"target": "modular_exoskeleton_high", + "msg": "You activate the exoskeleton on the highest setting.", + "menu_text": "High power", + "active": true, + "need_charges": 1, + "need_charges_msg": "The suit does not have enough charge.", + "type": "transform" + } + }, + { + "id": "modular_exoskeleton_high", + "copy-from": "modular_exoskeleton_off", + "repairs_like": "modular_exoskeleton_off", + "looks_like": "power_armor_light", + "type": "TOOL_ARMOR", + "name": { "str": "exoskeleton frame (on, high)", "str_pl": "exoskeleton frames (on, high)" }, + "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on to high power mode and continually drawing power. Use it to turn it off.", + "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] }, + "power_draw": 8681, + "revert_to": "modular_exoskeleton_off", + "use_action": { + "type": "transform", + "menu_text": "Turn off", + "msg": "The exoskeleton powers off.", + "target": "modular_exoskeleton_off" + } + } +] diff --git a/data/mods/Aftershock/items/armor/modular_exoskeleton_case.json b/data/mods/Aftershock/items/armor/modular_exoskeleton_case.json index 76e5450237a14..379c4e9fcfabf 100644 --- a/data/mods/Aftershock/items/armor/modular_exoskeleton_case.json +++ b/data/mods/Aftershock/items/armor/modular_exoskeleton_case.json @@ -1,78 +1,96 @@ [ - { - "id": "pa_torso_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton torso steel plate"}, - "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", + { + "id": "pa_torso_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton torso steel plate" }, + "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", "weight": "4200 g", "volume": "6 L", - "material": ["steel"], - "symbol":"[", - "looks_like": "cuirass_lightplate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 4, - "flags": ["OUTER", "STURDY", "CANT_WEAR"], - "armor": [ - {"encumbrance": 20,"coverage": 95, "covers": ["torso"]} - ] - }, - { - "id": "pa_arm_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton arm steel plate"}, - "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", - "weight": "4200 g", - "volume": "6 L", - "material": ["steel"], - "symbol":"[", - "looks_like": "cuirass_lightplate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 4, - "flags": ["OUTER", "STURDY", "CANT_WEAR"], - "armor": [ - {"encumbrance": 20,"coverage": 95, "covers": ["arm_l","arm_r"]} - ] - }, - { - "id": "pa_leg_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton legs steel plate"}, - "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", - "weight": "4200 g", - "volume": "6 L", - "material": ["steel"], - "symbol":"[", - "looks_like": "cuirass_lightplate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 4, - "flags": ["OUTER", "STURDY", "CANT_WEAR"], - "armor": [ - {"encumbrance": 20,"coverage": 95, "covers": ["leg_l","leg_r"]} - ] - }, - { - "id": "pa_back_battery", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton battery power supply"}, - "description": "Designed to attach to an exoskeleton's back, this is a heavy battery unit.", - "weight": "4200 g", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "cuirass_lightplate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 4, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + }, + { + "id": "pa_arm_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton arm steel plate" }, + "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", + "weight": "2720 g", + "volume": "5500 ml", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "armguard_lightplate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 3, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ + { + "covers": [ "arm_l", "arm_r" ], + "encumbrance": 16, + "coverage": 95, + "cover_melee": 95, + "cover_ranged": 95, + "cover_vitals": 90, + "specifically_covers": [ "arm_lower_r", "arm_lower_l", "arm_elbow_r", "arm_elbow_l", "arm_upper_r", "arm_upper_l" ] + } + ] + }, + { + "id": "pa_leg_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton legs steel plate" }, + "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", + "weight": "4080 g", "volume": "6 L", - "material": ["steel"], - "symbol":"[", - "looks_like": "cuirass_lightplate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 4, - "flags": ["STURDY", "CANT_WEAR"], - "armor": [ - {"encumbrance": 20,"coverage": 95, "covers": ["torso"]} - ] - } -] \ No newline at end of file + "material": [ "steel" ], + "symbol": "L", + "looks_like": "legguard_lightplate", + "color": "light_gray", + "warmth": 10, + "material_thickness": 4, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ + { + "covers": [ "leg_l", "leg_r" ], + "encumbrance": 8, + "coverage": 95, + "cover_melee": 95, + "cover_ranged": 95, + "cover_vitals": 90, + "specifically_covers": [ "leg_lower_r", "leg_lower_l", "leg_knee_r", "leg_knee_l", "leg_upper_r", "leg_upper_l" ] + } + ] + }, + { + "id": "pa_back_battery", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton battery power supply" }, + "description": "Designed to attach to an exoskeleton's back, this is a heavy duty UPS with a replacable battery.", + "weight": "35000 g", + "volume": "6250 ml", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "UPS_off", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "item_restriction": [ "small_storage_battery", "storage_battery", "medium_storage_battery" ] + } + ] + } +] From 41d49cc1d710bca0ecac65b407daa0b4fa7e2a00 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 9 Dec 2021 10:35:23 -0800 Subject: [PATCH 004/189] Additional plating Adds military composite plating. Milcom plating is destroyed like ballistic plates. --- .../items/armor/modular_exoskeleton.json | 114 ++---- .../armor/modular_exoskeleton_modules.json | 165 ++++++++ .../armor/modular_exoskeleton_plating.json | 370 ++++++++++++++++++ 3 files changed, 574 insertions(+), 75 deletions(-) create mode 100644 data/mods/Aftershock/items/armor/modular_exoskeleton_modules.json create mode 100644 data/mods/Aftershock/items/armor/modular_exoskeleton_plating.json diff --git a/data/mods/Aftershock/items/armor/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exoskeleton.json index 0a2ef6b7415a0..584aba342baa7 100644 --- a/data/mods/Aftershock/items/armor/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exoskeleton.json @@ -28,10 +28,6 @@ "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs.", "weight": "40 kg", "volume": "130 L", - "price": 11500000, - "price_postapoc": 40000, - "to_hit": 1, - "bashing": 1, "material": [ "steel", "plastic" ], "symbol": "[", "looks_like": "power_armor_basic", @@ -39,54 +35,71 @@ "pocket_data": [ { "pocket_type": "CONTAINER", + "//": "This is a mounting point for torso armor.", "ablative": true, + "rigid": true, "max_contains_volume": "10 L", - "max_contains_weight": "15 kg", - "item_restriction": [ "pa_torso_steel" ], + "max_contains_weight": "45 kg", + "item_restriction": [ "pa_torso_steel", "pa_torso_plastic" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "//": "This is a hardpoint for storing items in the torso.", + "ablative": true, + "rigid": true, + "max_contains_volume": "2 L", + "max_contains_weight": "5 kg", + "item_restriction": [ "pa_medium_storage" ], "moves": 60 }, + { "pocket_type": "CONTAINER", + "//": "This is a mounting point for power supply units.", + "ablative": true, "rigid": true, - "max_contains_volume": "50 L", - "max_contains_weight": "400 kg", - "max_item_length": "200 mm", - "item_restriction": [ "pa_back_battery" ], + "max_contains_volume": "25 L", + "max_contains_weight": "140 kg", + "item_restriction": [ "pa_back_battery_compartment", "pa_back_battery_rechargable", "pa_back_gasoline" ], "moves": 60 }, { "pocket_type": "CONTAINER", + "//": "This is a mounting point for arm armor.", "ablative": true, - "max_contains_volume": "10 L", - "max_contains_weight": "15 kg", + "rigid": true, + "max_contains_volume": "8 L", + "max_contains_weight": "35 kg", "max_item_length": "200 mm", - "item_restriction": [ "pa_arm_steel" ], + "item_restriction": [ "pa_arm_steel", "pa_arm_plastic" ], "moves": 60 }, { "pocket_type": "CONTAINER", + "//": "This is a mounting point for leg armor.", "ablative": true, - "max_contains_volume": "10 L", - "max_contains_weight": "15 kg", + "rigid": true, + "max_contains_volume": "9 L", + "max_contains_weight": "40 kg", "max_item_length": "200 mm", - "item_restriction": [ "pa_leg_steel" ], + "item_restriction": [ "pa_leg_steel", "pa_leg_plastic" ], "moves": 60 }], "armor": [ { "encumbrance": 20, "coverage": 100, - "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] + "covers": [ "torso", "arm_l", "arm_r", "leg_l", "leg_r" ] } ], "ammo": "battery", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] }, + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 }] } ] }, "use_action": { - "target": "modular_exoskeleton_low", - "msg": "You activate the exoskeleton on the lowest setting.", - "menu_text": "Low power", + "target": "modular_exoskeleton_on", + "msg": "The %s engages.", "active": true, "need_charges": 1, "need_charges_msg": "The suit does not have enough charge.", @@ -94,66 +107,17 @@ } }, { - "id": "modular_exoskeleton_low", + "id": "modular_exoskeleton_on", "copy-from": "modular_exoskeleton_off", "repairs_like": "modular_exoskeleton_off", "looks_like": "power_armor_light", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton frame (on, low)", "str_pl": "exoskeleton frames (on, low)" }, - "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on to low power mode and continually drawing power. Use it to turn it off.", + "name": { "str": "exoskeleton frame (on)", "str_pl": "exoskeleton frames (on)" }, + "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on and continually drawing power. Use it to turn it off.", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] }, + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 }] } ] }, "power_draw": 7123, "revert_to": "modular_exoskeleton_off", - "use_action": { - "target": "modular_exoskeleton_med", - "msg": "You activate the exoskeleton on the middle setting.", - "menu_text": "Medium power", - "active": true, - "need_charges": 1, - "need_charges_msg": "The suit does not have enough charge.", - "type": "transform" - } - }, - { - "id": "modular_exoskeleton_med", - "copy-from": "modular_exoskeleton_off", - "repairs_like": "modular_exoskeleton_off", - "looks_like": "power_armor_light", - "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton frame (on, med)", "str_pl": "exoskeleton frames (on, med)" }, - "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on to medium power mode and continually drawing power. Use it to turn it off.", - "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] }, - "power_draw": 8418, - "revert_to": "modular_exoskeleton_off", - "use_action": { -"target": "modular_exoskeleton_high", - "msg": "You activate the exoskeleton on the highest setting.", - "menu_text": "High power", - "active": true, - "need_charges": 1, - "need_charges_msg": "The suit does not have enough charge.", - "type": "transform" - } - }, - { - "id": "modular_exoskeleton_high", - "copy-from": "modular_exoskeleton_off", - "repairs_like": "modular_exoskeleton_off", - "looks_like": "power_armor_light", - "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton frame (on, high)", "str_pl": "exoskeleton frames (on, high)" }, - "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on to high power mode and continually drawing power. Use it to turn it off.", - "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] }, - "power_draw": 8681, - "revert_to": "modular_exoskeleton_off", - "use_action": { - "type": "transform", - "menu_text": "Turn off", - "msg": "The exoskeleton powers off.", - "target": "modular_exoskeleton_off" + "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exoskeleton_off" } } - } ] diff --git a/data/mods/Aftershock/items/armor/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exoskeleton_modules.json new file mode 100644 index 0000000000000..d54a79777c2fe --- /dev/null +++ b/data/mods/Aftershock/items/armor/modular_exoskeleton_modules.json @@ -0,0 +1,165 @@ +[ + { + "id": "pa_back_battery_compartment", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton swapable battery power supply" }, + "description": "Designed to attach to an exoskeleton's back, this is a large battery compartment with an integrated UPS.", + "weight": "5 kg", + "volume": "25 L", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "it_battery_mount", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "armor": [ { "encumbrance": 0, "coverage": 50, "covers": [ "torso" ] } ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "//": "This is a storage compartment for a battery.", + "rigid": true, + "item_restriction": [ "battery_car", "battery_motorbike", "small_storage_battery", "medium_storage_battery" ] + }, + { + "pocket_type": "CONTAINER", + "//": "This is a mounting point for armor protecting the PSU.", + "ablative": true, + "rigid": true, + "max_contains_volume": "10 L", + "max_contains_weight": "145 kg", + "item_restriction": [ "pa_psu_steel", "pa_psu_plastic" ], + "moves": 60 + } + ] + }, + { + "id": "pa_back_battery_rechargable", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton rechargable battery power supply" }, + "description": "Designed to attach to an exoskeleton's back, this is a large rechargable battery with an integrated UPS.", + "weight": "5 kg", + "volume": "25 L", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "storage_battery", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS" ], + "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 40000 } }, + { + "pocket_type": "CONTAINER", + "//": "This is a mounting point for armor protecting the PSU.", + "rigid": true, + "ablative": true, + "max_contains_volume": "10 L", + "max_contains_weight": "145 kg", + "item_restriction": [ "pa_psu_steel", "pa_psu_plastic" ], + "moves": 60 + } + ] + }, + { + "id": "pa_back_gasoline", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton ICE (gasoline) power supply" }, + "description": "Designed to attach to an exoskeleton's back, this is a gasoline generator with an integrated UPS.", + "weight": "20 kg", + "volume": "25 L", + "material": [ "steel", "plastic" ], + "symbol": "#", + "looks_like": "1cyl_combustion", + "color": "dark_gray", + "ammo": "gasoline", + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE", + "//": "This is a tank for gasoline Holds up to 10 liters.", + "rigid": true, + "watertight": true, + "ammo_restriction": { "gasoline": 10000 }}, + { + "pocket_type": "CONTAINER", + "//": "This is a mounting point for armor protecting the PSU.", + "ablative": true, + "rigid": true, + "max_contains_volume": "10 L", + "max_contains_weight": "145 kg", + "item_restriction": [ "pa_psu_steel", "pa_psu_plastic" ], + "moves": 60 + } + ] + }, + { + "id": "pa_medium_storage", + "repairs_like": "backpack", + "type": "ARMOR", + "name": { "str": "medium storage pouch" }, + "description": "Provides a bit of extra storage, with minimal encumbrance.", + "weight": "272 g", + "volume": "1050 ml", + "material": [ "nylon", "plastic" ], + "symbol": "[", + "looks_like": "holster", + "color": "green", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "2500 ml", + "max_contains_weight": "5 kg", + "max_item_length": "25 cm", + "magazine_well": "1 L", + "moves": 80 + } + ], + "material_thickness": 0.1, + "flags": [ "BELTED", "WATER_FRIENDLY" ], + "armor": [ { "encumbrance": [ 1, 3 ], "coverage": 10, "covers": [ "torso" ], "specifically_covers": [ "torso_lower" ] } ] + }, + { + "id": "legrig", + "type": "ARMOR", + "name": { "str": "pair of drop leg pouches", "str_pl": "pairs of drop leg pouches" }, + "description": "A set of pouches that can be worn on the thighs using buckled straps. This variety is favored by the military.", + "weight": "205 g", + "volume": "1050 ml", + "price": 3000, + "price_postapoc": 250, + "material": [ "nylon" ], + "symbol": "[", + "color": "dark_gray", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "2250 ml", + "max_contains_weight": "2 kg", + "max_item_length": "30 cm", + "magazine_well": "500 ml", + "moves": 200 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "2250 ml", + "max_contains_weight": "2 kg", + "max_item_length": "30 cm", + "magazine_well": "500 ml", + "moves": 200 + } + ], + "material_thickness": 0.2, + "flags": [ "VARSIZE", "WATER_FRIENDLY", "BELTED" ], + "armor": [ + { + "encumbrance": [ 2, 5 ], + "coverage": 50, + "covers": [ "leg_l", "leg_r" ], + "specifically_covers": [ "leg_upper_r", "leg_upper_l" ] + } + ] + } + ] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exoskeleton_plating.json new file mode 100644 index 0000000000000..1a938f42447b4 --- /dev/null +++ b/data/mods/Aftershock/items/armor/modular_exoskeleton_plating.json @@ -0,0 +1,370 @@ +[ + { + "id": "pa_torso_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton torso steel plate" }, + "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", + "weight": "4200 g", + "volume": "8 L", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "cuirass_lightplate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 4, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + }, + { + "id": "pa_psu_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton PSU steel plate" }, + "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of steel.", + "weight": "107333 g", + "volume": "10 L", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "backpack_tactical_large", + "color": "light_gray", + "warmth": 0, + "material_thickness": 4, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + }, + { + "id": "pa_arm_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton arm steel plate" }, + "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", + "weight": "2720 g", + "volume": "5500 ml", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "armguard_lightplate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 3, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ + { + "covers": [ "arm_l", "arm_r" ], + "encumbrance": 16, + "coverage": 95, + "cover_melee": 95, + "cover_ranged": 95, + "cover_vitals": 90, + "specifically_covers": [ "arm_lower_r", "arm_lower_l", "arm_elbow_r", "arm_elbow_l", "arm_upper_r", "arm_upper_l" ] + } + ] + }, + { + "id": "pa_leg_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton legs steel plate" }, + "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", + "weight": "4080 g", + "volume": "8 L", + "material": [ "steel" ], + "symbol": "L", + "looks_like": "legguard_lightplate", + "color": "light_gray", + "warmth": 10, + "material_thickness": 4, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ + { + "covers": [ "leg_l", "leg_r" ], + "encumbrance": 8, + "coverage": 95, + "cover_melee": 95, + "cover_ranged": 95, + "cover_vitals": 90, + "specifically_covers": [ "leg_lower_r", "leg_lower_l", "leg_knee_r", "leg_knee_l", "leg_upper_r", "leg_upper_l" ] + } + ] + }, + { + "id": "pa_torso_plastic", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton torso plastic plate" }, + "description": "Designed to attach to an exoskeleton's torso, this is a plate of plastic.", + "weight": "3432 g", + "volume": "8 L", + "material": [ "plastic" ], + "symbol": "[", + "looks_like": "cuirass_lightplate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 4, + "non_functional": "destroyed_pa_torso_plastic_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + }, + { + "id": "destroyed_pa_torso_plastic_plate", + "type": "ARMOR", + "copy-from": "pa_torso_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection just weight.", + "looks_like": "pa_torso_plastic", + "material": [ "plastic" ], + "material_thickness": 2, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] + }, + { + "id": "pa_psu_plastic", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton PSU plastic plate" }, + "description": "Designed to attach to an exoskeleton's power supply unit, this is a plate of plastic.", + "weight": "4290 g", + "volume": "10 L", + "material": [ "plastic" ], + "symbol": "[", + "looks_like": "backpack_tactical_large", + "color": "light_gray", + "warmth": 0, + "material_thickness": 4, + "non_functional": "destroyed_pa_psu_plastic_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + }, + { + "id": "destroyed_pa_psu_plastic_plate", + "type": "ARMOR", + "copy-from": "pa_psu_plastic", + "name": { "str": "shattered plastic PSU plate" }, + "description": "The remains of a plastic PSU plate after taking a strong impact. No longer provides functional protection just weight.", + "looks_like": "pa_psu_plastic", + "material": [ "plastic" ], + "material_thickness": 2, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] + }, + { + "id": "pa_arm_plastic", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton arm plastic plate" }, + "description": "Designed to attach to an exoskeleton's arms, these are plates of plastic.", + "weight": "2574 g", + "volume": "5500 ml", + "material": [ "plastic" ], + "symbol": "[", + "looks_like": "armguard_lightplate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 3, + "non_functional": "destroyed_pa_arm_plastic_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ + { + "covers": [ "arm_l", "arm_r" ], + "encumbrance": 16, + "coverage": 95, + "cover_melee": 95, + "cover_ranged": 95, + "cover_vitals": 90, + "specifically_covers": [ "arm_lower_r", "arm_lower_l", "arm_elbow_r", "arm_elbow_l", "arm_upper_r", "arm_upper_l" ] + } + ] + }, + { + "id": "destroyed_pa_arm_plastic_plate", + "type": "ARMOR", + "copy-from": "pa_arm_plastic", + "name": { "str": "shattered plastic arm plate" }, + "description": "The remains of a plastic arm plate after taking a strong impact. No longer provides functional protection just weight.", + "looks_like": "pa_arm_plastic", + "material": [ "plastic" ], + "material_thickness": 2, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] + }, + { + "id": "pa_leg_plastic", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton legs plastic plate" }, + "description": "Designed to attach to an exoskeleton's legs, these are plates of plastic.", + "weight": "3003 g", + "volume": "8 L", + "material": [ "plastic" ], + "symbol": "L", + "looks_like": "legguard_lightplate", + "color": "light_gray", + "warmth": 10, + "material_thickness": 4, + "non_functional": "destroyed_pa_leg_plastic_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ + { + "covers": [ "leg_l", "leg_r" ], + "encumbrance": 8, + "coverage": 95, + "cover_melee": 95, + "cover_ranged": 95, + "cover_vitals": 90, + "specifically_covers": [ "leg_lower_r", "leg_lower_l", "leg_knee_r", "leg_knee_l", "leg_upper_r", "leg_upper_l" ] + } + ] + }, + { + "id": "destroyed_pa_leg_plastic_plate", + "type": "ARMOR", + "copy-from": "pa_leg_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection just weight.", + "looks_like": "pa_leg_plastic", + "material": [ "plastic" ], + "material_thickness": 2, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] + }, + { + "id": "pa_torso_milcomp", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton torso military composite plate" }, + "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of military composite.", + "weight": "44000 g", + "volume": "8 L", + "material": [ "military composite", "ceramic" ], + "symbol": "[", + "looks_like": "cuirass_lightplate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 4, + "non_functional": "destroyed_pa_torso_milcomp_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + }, + { + "id": "destroyed_pa_torso_milcomp_plate", + "type": "ARMOR", + "copy-from": "pa_torso_milcomp", + "name": { "str": "shattered military composite torso plate" }, + "description": "The remains of a military composite torso plate after taking a strong impact. No longer provides functional protection just weight.", + "looks_like": "pa_torso_milcomp", + "material": [ "military composite", "ceramic" ], + "material_thickness": 2, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] + }, + { + "id": "pa_psu_milcomp", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton PSU military composite plate" }, + "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of military composite.", + "weight": "55000 g", + "volume": "10 L", + "material": [ "military composite", "ceramic" ], + "symbol": "[", + "looks_like": "backpack_tactical_large", + "color": "light_gray", + "warmth": 0, + "material_thickness": 4, + "non_functional": "destroyed_pa_psu_milcomp_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + }, + { + "id": "destroyed_pa_psu_milcomp_plate", + "type": "ARMOR", + "copy-from": "pa_psu_milcomp", + "name": { "str": "shattered military composite PSU plate" }, + "description": "The remains of a military composite PSU plate after taking a strong impact. No longer provides functional protection just weight.", + "looks_like": "pa_psu_milcomp", + "material": [ "military composite", "ceramic" ], + "material_thickness": 2, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] + }, + { + "id": "pa_arm_milcomp", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton arm military composite plate" }, + "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of military composite.", + "weight": "33000 g", + "volume": "5500 ml", + "material": [ "military composite", "ceramic" ], + "symbol": "[", + "looks_like": "armguard_lightplate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 3, + "non_functional": "destroyed_pa_arm_milcomp_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ + { + "covers": [ "arm_l", "arm_r" ], + "encumbrance": 16, + "coverage": 95, + "cover_melee": 95, + "cover_ranged": 95, + "cover_vitals": 90, + "specifically_covers": [ "arm_lower_r", "arm_lower_l", "arm_elbow_r", "arm_elbow_l", "arm_upper_r", "arm_upper_l" ] + } + ] + }, + { + "id": "destroyed_pa_arm_milcomp_plate", + "type": "ARMOR", + "copy-from": "pa_arm_milcomp", + "name": { "str": "shattered military composite arm plate" }, + "description": "The remains of a military composite arm plate after taking a strong impact. No longer provides functional protection just weight.", + "looks_like": "pa_arm_milcomp", + "material": [ "military composite", "ceramic" ], + "material_thickness": 2, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] + }, + { + "id": "pa_leg_milcomp", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton legs military composite plate" }, + "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of military composite.", + "weight": "38500 g", + "volume": "8 L", + "material": [ "military composite", "ceramic" ], + "symbol": "L", + "looks_like": "legguard_lightplate", + "color": "light_gray", + "warmth": 10, + "material_thickness": 4, + "non_functional": "destroyed_pa_leg_milcomp_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ + { + "covers": [ "leg_l", "leg_r" ], + "encumbrance": 8, + "coverage": 95, + "cover_melee": 95, + "cover_ranged": 95, + "cover_vitals": 90, + "specifically_covers": [ "leg_lower_r", "leg_lower_l", "leg_knee_r", "leg_knee_l", "leg_upper_r", "leg_upper_l" ] + } + ] + }, + { + "id": "destroyed_pa_leg_milcomp_plate", + "type": "ARMOR", + "copy-from": "pa_leg_milcomp", + "name": { "str": "shattered military composite leg plate" }, + "description": "The remains of a military composite leg plate after taking a strong impact. No longer provides functional protection just weight.", + "looks_like": "pa_leg_milcomp", + "material": [ "military composite", "ceramic" ], + "material_thickness": 2, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] + } +] From 9c9733f1a00ce866d03c59645c4d2fd6d7bce0aa Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 9 Dec 2021 12:57:08 -0800 Subject: [PATCH 005/189] Modules Adds two module types in two sizes. APUs as additional battery storage and load bearing modules to reduce the carry weight. --- .../items/armor/modular_exos/exo_gadgets.json | 71 ++++ .../{ => modular_exos}/exoskeletons.json | 0 .../modular_exoskeleton.json | 103 ++++-- .../modular_exoskeleton_modules.json | 226 ++++++++++++ .../modular_exoskeleton_plating.json | 104 +++--- .../modular_exoskeleton_storage.json | 321 ++++++++++++++++++ .../items/armor/modular_exoskeleton_case.json | 96 ------ .../armor/modular_exoskeleton_modules.json | 165 --------- data/mods/Aftershock/items/tools.json | 69 ---- 9 files changed, 736 insertions(+), 419 deletions(-) create mode 100644 data/mods/Aftershock/items/armor/modular_exos/exo_gadgets.json rename data/mods/Aftershock/items/armor/{ => modular_exos}/exoskeletons.json (100%) rename data/mods/Aftershock/items/armor/{ => modular_exos}/modular_exoskeleton.json (59%) create mode 100644 data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json rename data/mods/Aftershock/items/armor/{ => modular_exos}/modular_exoskeleton_plating.json (84%) create mode 100644 data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json delete mode 100644 data/mods/Aftershock/items/armor/modular_exoskeleton_case.json delete mode 100644 data/mods/Aftershock/items/armor/modular_exoskeleton_modules.json diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gadgets.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gadgets.json new file mode 100644 index 0000000000000..028aa07ec691b --- /dev/null +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gadgets.json @@ -0,0 +1,71 @@ +[ + { + "id": "exotool", + "type": "TOOL", + "name": { "str": "exoskeleton tool set" }, + "description": "This is a tool module for a powered exoskeleton.", + "weight": "5 kg", + "volume": "5 L", + "longest_side": "75 cm", + "price": 10000, + "price_postapoc": 30000, + "material": [ "aluminum", "steel" ], + "symbol": "=", + "color": "light_gray", + "use_action": [ [ "CROWBAR", 0 ], [ "HAMMER", 0 ] ], + "qualities": [ + [ "HAMMER", 3 ], + [ "HAMMER_FINE", 1 ], + [ "SAW_W", 1 ], + [ "SAW_M", 2 ], + [ "SAW_M_FINE", 1 ], + [ "WRENCH", 2 ], + [ "WRENCH_FINE", 1 ], + [ "WHEEL_FAST", 1 ], + [ "SCREW", 1 ], + [ "SCREW_FINE", 1 ], + [ "CUT", 1 ], + [ "PRY", 1 ], + [ "PRYING_NAIL", 1 ], + [ "DRILL", 3 ], + [ "BUTCHER", -38 ] + ] + }, + { + "id": "powered_exotool", + "type": "TOOL", + "name": { "str": "exoskeleton powered tool set" }, + "description": "This is a tool module for a powered exoskeleton. It includes an arc welder and an electric jackhammer, powered by a heavy battery.", + "weight": "10 kg", + "volume": "5 L", + "longest_side": "75 cm", + "price": 10000, + "price_postapoc": 30000, + "material": [ "aluminum", "steel" ], + "symbol": "=", + "color": "light_gray", + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_HEAVY" ], + "default_magazine": "heavy_battery_cell" + } + ], + "ammo": [ "battery" ], + "charges_per_use": 5, + "qualities": [ [ "WELD", 2 ] ], + "use_action": [ + { + "type": "repair_item", + "item_action_type": "repair_metal", + "materials": [ "iron", "steel", "hardsteel", "aluminum", "copper", "bronze", "silver", "gold", "platinum", "superalloy" ], + "skill": "fabrication", + "tool_quality": 10, + "cost_scaling": 0.1, + "move_cost": 500 + }, + "JACKHAMMER" + ] + } + ] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/exoskeletons.json b/data/mods/Aftershock/items/armor/modular_exos/exoskeletons.json similarity index 100% rename from data/mods/Aftershock/items/armor/exoskeletons.json rename to data/mods/Aftershock/items/armor/modular_exos/exoskeletons.json diff --git a/data/mods/Aftershock/items/armor/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json similarity index 59% rename from data/mods/Aftershock/items/armor/modular_exoskeleton.json rename to data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 584aba342baa7..0331d8685e51e 100644 --- a/data/mods/Aftershock/items/armor/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -1,6 +1,6 @@ [ { - "id": "afs_pa_undersuit", + "id": "afs_exo_undersuit", "repairs_like": "thermal_suit", "type": "ARMOR", "copy-from": "jumpsuit", @@ -35,77 +35,106 @@ "pocket_data": [ { "pocket_type": "CONTAINER", - "//": "This is a mounting point for torso armor.", - "ablative": true, + "//": "This is a mounting point for torso armor.", + "ablative": true, "rigid": true, "max_contains_volume": "10 L", "max_contains_weight": "45 kg", - "item_restriction": [ "pa_torso_steel", "pa_torso_plastic" ], + "item_restriction": [ "exo_torso_steel", "exo_torso_plastic" ], "moves": 60 }, - { - "pocket_type": "CONTAINER", - "//": "This is a hardpoint for storing items in the torso.", - "ablative": true, + { + "pocket_type": "CONTAINER", + "//": "This is a hardpoint for storing items in the torso.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "item_restriction": [ "pa_medium_storage" ], + "item_restriction": [ + "exo_small_storage", + "exo_medium_storage", + "exo_large_ammo_pouch", + "exo_small_ammo_pouch", + "exo_small_aux_power", + "exo_small_carry_off", + "exo_small_carry_on" + ], "moves": 60 }, - { "pocket_type": "CONTAINER", - "//": "This is a mounting point for power supply units.", - "ablative": true, + "//": "This is a mounting point for power supply units or large modules.", + "ablative": true, "rigid": true, "max_contains_volume": "25 L", "max_contains_weight": "140 kg", - "item_restriction": [ "pa_back_battery_compartment", "pa_back_battery_rechargable", "pa_back_gasoline" ], + "item_restriction": [ + "exo_back_battery_compartment", + "exo_back_battery_rechargable", + "exo_back_gasoline", + "exo_large_storage", + "exo_large_aux_power", + "exo_small_aux_power", + "exo_large_carry_off", + "exo_large_carry_on", + "exo_small_carry_off", + "exo_small_carry_on" + ], "moves": 60 }, { "pocket_type": "CONTAINER", - "//": "This is a mounting point for arm armor.", - "ablative": true, + "//": "This is a mounting point for arm armor.", + "ablative": true, "rigid": true, "max_contains_volume": "8 L", "max_contains_weight": "35 kg", "max_item_length": "200 mm", - "item_restriction": [ "pa_arm_steel", "pa_arm_plastic" ], + "item_restriction": [ "exo_arm_steel", "exo_arm_plastic" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "//": "This is a hardpoint for storing items on the arms.", + "rigid": true, + "max_contains_volume": "1 L", + "max_contains_weight": "5 kg", + "item_restriction": [ "exo_small_storage", "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", "exo_small_carry_on" ], "moves": 60 }, { "pocket_type": "CONTAINER", - "//": "This is a mounting point for leg armor.", - "ablative": true, + "//": "This is a mounting point for leg armor.", + "ablative": true, "rigid": true, "max_contains_volume": "9 L", "max_contains_weight": "40 kg", "max_item_length": "200 mm", - "item_restriction": [ "pa_leg_steel", "pa_leg_plastic" ], + "item_restriction": [ "exo_leg_steel", "exo_leg_plastic" ], "moves": 60 - }], -"armor": [ + }, { - "encumbrance": 20, - "coverage": 100, - "covers": [ "torso", "arm_l", "arm_r", "leg_l", "leg_r" ] + "pocket_type": "CONTAINER", + "//": "This is a hardpoint for storing items on the legs.", + "rigid": true, + "max_contains_volume": "1 L", + "max_contains_weight": "5 kg", + "item_restriction": [ "exo_small_storage", "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", "exo_small_carry_on" ], + "moves": 60 } ], + "armor": [ { "encumbrance": 20, "coverage": 100, "covers": [ "torso", "arm_l", "arm_r", "leg_l", "leg_r" ] } ], "ammo": "battery", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 }] } ] }, - "use_action": - { - "target": "modular_exoskeleton_on", - "msg": "The %s engages.", - "active": true, - "need_charges": 1, - "need_charges_msg": "The suit does not have enough charge.", - "type": "transform" - } - }, + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, + "use_action": { + "target": "modular_exoskeleton_on", + "msg": "The %s engages.", + "active": true, + "need_charges": 1, + "need_charges_msg": "The suit does not have enough charge.", + "type": "transform" + } + }, { "id": "modular_exoskeleton_on", "copy-from": "modular_exoskeleton_off", @@ -115,9 +144,9 @@ "name": { "str": "exoskeleton frame (on)", "str_pl": "exoskeleton frames (on)" }, "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on and continually drawing power. Use it to turn it off.", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 }] } ] }, + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, "power_draw": 7123, "revert_to": "modular_exoskeleton_off", "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exoskeleton_off" } - } + } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json new file mode 100644 index 0000000000000..7089174dfeb19 --- /dev/null +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -0,0 +1,226 @@ +[ + { + "id": "exo_back_battery_compartment", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton swapable battery power supply" }, + "description": "Designed to attach to an exoskeleton's back, this is a large battery compartment with an integrated UPS.", + "weight": "5 kg", + "volume": "25 L", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "it_battery_mount", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "armor": [ { "encumbrance": 0, "coverage": 50, "covers": [ "torso" ] } ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "//": "This is a storage compartment for a battery.", + "rigid": true, + "item_restriction": [ "battery_car", "battery_motorbike", "small_storage_battery", "medium_storage_battery" ] + }, + { + "pocket_type": "CONTAINER", + "//": "This is a mounting point for armor protecting the PSU.", + "ablative": true, + "rigid": true, + "max_contains_volume": "10 L", + "max_contains_weight": "145 kg", + "item_restriction": [ "exo_psu_steel", "exo_psu_plastic" ], + "moves": 60 + } + ] + }, + { + "id": "exo_back_battery_rechargable", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton rechargable battery power supply" }, + "description": "Designed to attach to an exoskeleton's back, this is a large rechargable battery with an integrated UPS.", + "weight": "5 kg", + "volume": "25 L", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "storage_battery", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS" ], + "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], + "pocket_data": [ + { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 40000 } }, + { + "pocket_type": "CONTAINER", + "//": "This is a mounting point for armor protecting the PSU.", + "rigid": true, + "ablative": true, + "max_contains_volume": "10 L", + "max_contains_weight": "145 kg", + "item_restriction": [ "exo_psu_steel", "exo_psu_plastic" ], + "moves": 60 + } + ] + }, + { + "id": "exo_back_gasoline", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton ICE power supply" }, + "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS.", + "weight": "20 kg", + "volume": "25 L", + "material": [ "steel", "plastic" ], + "symbol": "#", + "looks_like": "1cyl_combustion", + "color": "dark_gray", + "ammo": "gasoline", + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE", + "//": "This is a tank for gasoline. Holds up to 10 liters.", + "rigid": true, + "watertight": true, + "ammo_restriction": { "gasoline": 10000 } + }, + { + "pocket_type": "CONTAINER", + "//": "This is a mounting point for armor protecting the PSU.", + "ablative": true, + "rigid": true, + "max_contains_volume": "10 L", + "max_contains_weight": "145 kg", + "item_restriction": [ "exo_psu_steel", "exo_psu_plastic" ], + "moves": 60 + } + ] + }, + { + "id": "exo_large_aux_power", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton large APU" }, + "description": "This is a large rechargable auxiliary power unit that attaches to a hardpoint.", + "weight": "4 kg", + "volume": "5 L", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "storage_battery", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 4000 } } ] + }, + { + "id": "exo_small_aux_power", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton small APU" }, + "description": "This is a small rechargable auxiliary power unit that attaches to a hardpoint.", + "weight": "2 kg", + "volume": "1 L", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "storage_battery", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 1000 } } ] + }, + { + "id": "exo_large_carry_off", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton large APU" }, + "description": "This is a large rechargable auxiliary power unit that attaches to a hardpoint.", + "weight": "4 kg", + "volume": "5 L", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "storage_battery", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "relic_data": { + "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] + }, + "use_action": { + "target": "exo_large_carry_on", + "msg": "The %s engages.", + "active": true, + "need_charges": 1, + "need_charges_msg": "The APU does not have enough charge.", + "type": "transform" + } + }, + { + "id": "exo_large_carry_on", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton large APU" }, + "description": "This is a large rechargable auxiliary power unit that attaches to a hardpoint.", + "weight": "4 kg", + "volume": "5 L", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "storage_battery", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "relic_data": { + "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] + }, + "power_draw": 1500, + "revert_to": "exo_large_carry_off", + "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "exo_large_carry_off" } + }, + { + "id": "exo_small_carry_off", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton small APU" }, + "description": "This is a small rechargable auxiliary power unit that attaches to a hardpoint.", + "weight": "2 kg", + "volume": "1 L", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "storage_battery", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "relic_data": { + "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 50 } ] } ] + }, + "use_action": { + "target": "exo_small_carry_on", + "msg": "The %s engages.", + "active": true, + "need_charges": 1, + "need_charges_msg": "The APU does not have enough charge.", + "type": "transform" + } + }, + { + "id": "exo_small_carry_on", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton large APU" }, + "description": "This is a large rechargable auxiliary power unit that attaches to a hardpoint.", + "weight": "4 kg", + "volume": "5 L", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "storage_battery", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "relic_data": { + "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 50 } ] } ] + }, + "power_draw": 750, + "revert_to": "exo_small_carry_on", + "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "exo_small_carry_on" } + } +] diff --git a/data/mods/Aftershock/items/armor/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json similarity index 84% rename from data/mods/Aftershock/items/armor/modular_exoskeleton_plating.json rename to data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 1a938f42447b4..07a1270b64bf0 100644 --- a/data/mods/Aftershock/items/armor/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -1,6 +1,6 @@ [ { - "id": "pa_torso_steel", + "id": "exo_torso_steel", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton torso steel plate" }, @@ -17,7 +17,7 @@ "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { - "id": "pa_psu_steel", + "id": "exo_psu_steel", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton PSU steel plate" }, @@ -34,7 +34,7 @@ "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { - "id": "pa_arm_steel", + "id": "exo_arm_steel", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton arm steel plate" }, @@ -61,7 +61,7 @@ ] }, { - "id": "pa_leg_steel", + "id": "exo_leg_steel", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton legs steel plate" }, @@ -88,7 +88,7 @@ ] }, { - "id": "pa_torso_plastic", + "id": "exo_torso_plastic", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton torso plastic plate" }, @@ -101,24 +101,24 @@ "color": "light_gray", "warmth": 20, "material_thickness": 4, - "non_functional": "destroyed_pa_torso_plastic_plate", + "non_functional": "destroyed_exo_torso_plastic_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { - "id": "destroyed_pa_torso_plastic_plate", + "id": "destroyed_exo_torso_plastic_plate", "type": "ARMOR", - "copy-from": "pa_torso_plastic", + "copy-from": "exo_torso_plastic", "name": { "str": "shattered plastic leg plate" }, "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection just weight.", - "looks_like": "pa_torso_plastic", + "looks_like": "exo_torso_plastic", "material": [ "plastic" ], "material_thickness": 2, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, { - "id": "pa_psu_plastic", + "id": "exo_psu_plastic", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton PSU plastic plate" }, @@ -131,24 +131,24 @@ "color": "light_gray", "warmth": 0, "material_thickness": 4, - "non_functional": "destroyed_pa_psu_plastic_plate", + "non_functional": "destroyed_exo_psu_plastic_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { - "id": "destroyed_pa_psu_plastic_plate", + "id": "destroyed_exo_psu_plastic_plate", "type": "ARMOR", - "copy-from": "pa_psu_plastic", + "copy-from": "exo_psu_plastic", "name": { "str": "shattered plastic PSU plate" }, "description": "The remains of a plastic PSU plate after taking a strong impact. No longer provides functional protection just weight.", - "looks_like": "pa_psu_plastic", + "looks_like": "exo_psu_plastic", "material": [ "plastic" ], "material_thickness": 2, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, { - "id": "pa_arm_plastic", + "id": "exo_arm_plastic", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton arm plastic plate" }, @@ -161,7 +161,7 @@ "color": "light_gray", "warmth": 20, "material_thickness": 3, - "non_functional": "destroyed_pa_arm_plastic_plate", + "non_functional": "destroyed_exo_arm_plastic_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { @@ -176,19 +176,19 @@ ] }, { - "id": "destroyed_pa_arm_plastic_plate", + "id": "destroyed_exo_arm_plastic_plate", "type": "ARMOR", - "copy-from": "pa_arm_plastic", + "copy-from": "exo_arm_plastic", "name": { "str": "shattered plastic arm plate" }, "description": "The remains of a plastic arm plate after taking a strong impact. No longer provides functional protection just weight.", - "looks_like": "pa_arm_plastic", + "looks_like": "exo_arm_plastic", "material": [ "plastic" ], "material_thickness": 2, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, { - "id": "pa_leg_plastic", + "id": "exo_leg_plastic", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton legs plastic plate" }, @@ -201,7 +201,7 @@ "color": "light_gray", "warmth": 10, "material_thickness": 4, - "non_functional": "destroyed_pa_leg_plastic_plate", + "non_functional": "destroyed_exo_leg_plastic_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { @@ -216,92 +216,92 @@ ] }, { - "id": "destroyed_pa_leg_plastic_plate", + "id": "destroyed_exo_leg_plastic_plate", "type": "ARMOR", - "copy-from": "pa_leg_plastic", + "copy-from": "exo_leg_plastic", "name": { "str": "shattered plastic leg plate" }, "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection just weight.", - "looks_like": "pa_leg_plastic", + "looks_like": "exo_leg_plastic", "material": [ "plastic" ], "material_thickness": 2, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, { - "id": "pa_torso_milcomp", + "id": "exo_torso_milcomp", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton torso military composite plate" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of military composite.", "weight": "44000 g", "volume": "8 L", - "material": [ "military composite", "ceramic" ], + "material": [ "steel", "ceramic" ], "symbol": "[", "looks_like": "cuirass_lightplate", "color": "light_gray", "warmth": 20, "material_thickness": 4, - "non_functional": "destroyed_pa_torso_milcomp_plate", + "non_functional": "destroyed_exo_torso_milcomp_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { - "id": "destroyed_pa_torso_milcomp_plate", + "id": "destroyed_exo_torso_milcomp_plate", "type": "ARMOR", - "copy-from": "pa_torso_milcomp", + "copy-from": "exo_torso_milcomp", "name": { "str": "shattered military composite torso plate" }, "description": "The remains of a military composite torso plate after taking a strong impact. No longer provides functional protection just weight.", - "looks_like": "pa_torso_milcomp", - "material": [ "military composite", "ceramic" ], + "looks_like": "exo_torso_milcomp", + "material": [ "steel", "ceramic" ], "material_thickness": 2, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, { - "id": "pa_psu_milcomp", + "id": "exo_psu_milcomp", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton PSU military composite plate" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of military composite.", "weight": "55000 g", "volume": "10 L", - "material": [ "military composite", "ceramic" ], + "material": [ "steel", "ceramic" ], "symbol": "[", "looks_like": "backpack_tactical_large", "color": "light_gray", "warmth": 0, "material_thickness": 4, - "non_functional": "destroyed_pa_psu_milcomp_plate", + "non_functional": "destroyed_exo_psu_milcomp_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { - "id": "destroyed_pa_psu_milcomp_plate", + "id": "destroyed_exo_psu_milcomp_plate", "type": "ARMOR", - "copy-from": "pa_psu_milcomp", + "copy-from": "exo_psu_milcomp", "name": { "str": "shattered military composite PSU plate" }, "description": "The remains of a military composite PSU plate after taking a strong impact. No longer provides functional protection just weight.", - "looks_like": "pa_psu_milcomp", - "material": [ "military composite", "ceramic" ], + "looks_like": "exo_psu_milcomp", + "material": [ "steel", "ceramic" ], "material_thickness": 2, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, { - "id": "pa_arm_milcomp", + "id": "exo_arm_milcomp", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton arm military composite plate" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of military composite.", "weight": "33000 g", "volume": "5500 ml", - "material": [ "military composite", "ceramic" ], + "material": [ "steel", "ceramic" ], "symbol": "[", "looks_like": "armguard_lightplate", "color": "light_gray", "warmth": 20, "material_thickness": 3, - "non_functional": "destroyed_pa_arm_milcomp_plate", + "non_functional": "destroyed_exo_arm_milcomp_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { @@ -316,32 +316,32 @@ ] }, { - "id": "destroyed_pa_arm_milcomp_plate", + "id": "destroyed_exo_arm_milcomp_plate", "type": "ARMOR", - "copy-from": "pa_arm_milcomp", + "copy-from": "exo_arm_milcomp", "name": { "str": "shattered military composite arm plate" }, "description": "The remains of a military composite arm plate after taking a strong impact. No longer provides functional protection just weight.", - "looks_like": "pa_arm_milcomp", - "material": [ "military composite", "ceramic" ], + "looks_like": "exo_arm_milcomp", + "material": [ "steel", "ceramic" ], "material_thickness": 2, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, { - "id": "pa_leg_milcomp", + "id": "exo_leg_milcomp", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton legs military composite plate" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of military composite.", "weight": "38500 g", "volume": "8 L", - "material": [ "military composite", "ceramic" ], + "material": [ "steel", "ceramic" ], "symbol": "L", "looks_like": "legguard_lightplate", "color": "light_gray", "warmth": 10, "material_thickness": 4, - "non_functional": "destroyed_pa_leg_milcomp_plate", + "non_functional": "destroyed_exo_leg_milcomp_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { @@ -356,13 +356,13 @@ ] }, { - "id": "destroyed_pa_leg_milcomp_plate", + "id": "destroyed_exo_leg_milcomp_plate", "type": "ARMOR", - "copy-from": "pa_leg_milcomp", + "copy-from": "exo_leg_milcomp", "name": { "str": "shattered military composite leg plate" }, "description": "The remains of a military composite leg plate after taking a strong impact. No longer provides functional protection just weight.", - "looks_like": "pa_leg_milcomp", - "material": [ "military composite", "ceramic" ], + "looks_like": "exo_leg_milcomp", + "material": [ "steel", "ceramic" ], "material_thickness": 2, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json new file mode 100644 index 0000000000000..15d1ecb83d6de --- /dev/null +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -0,0 +1,321 @@ +[ + { + "id": "exo_rifle_storage", + "type": "ARMOR", + "name": { "str": "large storage pouch" }, + "description": "A hardpoint for storing a rifle, with an additional small pocket.", + "weight": "454 g", + "volume": "2 L", + "price": 18000, + "price_postapoc": 800, + "material": [ "steel" ], + "symbol": "[", + "looks_like": "slingpack", + "color": "light_gray", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "6000 ml", + "max_contains_weight": "12000 g", + "max_item_length": "133 cm", + "moves": 100 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "1000 ml", + "max_contains_weight": "5000 g", + "max_item_length": "20 cm", + "magazine_well": "500 ml", + "moves": 80 + } + ], + "material_thickness": 2, + "armor": [ { "encumbrance": [ 2, 6 ], "coverage": 20, "covers": [ "torso" ] } ] + }, + { + "id": "exo_melee_storage", + "type": "ARMOR", + "name": { "str": "large storage pouch" }, + "description": "A hardpoint for storing a sword. Activate to sheath/draw a sword .", + "weight": "454 g", + "volume": "2 L", + "price": 18000, + "price_postapoc": 800, + "material": [ "steel" ], + "symbol": "[", + "looks_like": "bscabbard", + "color": "light_gray", + "pocket_data": [ + { + "magazine_well": "1750 ml", + "max_contains_volume": "3750 ml", + "max_contains_weight": "5 kg", + "max_item_length": "180 cm", + "holster": true, + "moves": 60, + "flag_restriction": [ "SHEATH_SWORD" ] + } + ], + "use_action": { "type": "holster", "holster_prompt": "Sheath sword", "holster_msg": "You sheath your %s" }, + "material_thickness": 2, + "armor": [ { "encumbrance": [ 2, 6 ], "coverage": 20, "covers": [ "torso" ]} ] + }, + { + "id": "exo_large_storage", + "repairs_like": "backpack_tactical_large", + "type": "ARMOR", + "name": { "str": "exoskeleton large storage pack" }, + "description": "A large storage pack, mountable on a hardpoint.", + "weight": "2291 g", + "volume": "15 L", + "material": [ "nylon", "plastic" ], + "symbol": "[", + "looks_like": "backpack", + "color": "green", + + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "55 L", + "max_contains_weight": "70 kg", + "max_item_length": "70 cm", + "magazine_well": "10 L", + "moves": 300 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "5 L", + "max_contains_weight": "10 kg", + "max_item_length": "40 cm", + "magazine_well": "1 L", + "moves": 200 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "3 L", + "max_contains_weight": "3 kg", + "max_item_length": "30 cm", + "magazine_well": "800 ml", + "moves": 120 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "3 L", + "max_contains_weight": "3 kg", + "max_item_length": "30 cm", + "magazine_well": "800 ml", + "moves": 120 + }, + { + "//": "carabiner pocket", + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "5 L", + "max_contains_weight": "6 kg", + "max_item_length": "120 cm", + "min_item_length": "40 cm", + "moves": 150, + "extra_encumbrance": 3, + "ripoff": 2, + "activity_noise": { "volume": 8, "chance": 10 } + }, + { + "//": "carabiner pocket", + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "5 L", + "max_contains_weight": "6 kg", + "max_item_length": "120 cm", + "min_item_length": "40 cm", + "moves": 150, + "extra_encumbrance": 3, + "ripoff": 2, + "activity_noise": { "volume": 8, "chance": 10 } + }, + { + "//": "carabiner pocket", + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "5 L", + "max_contains_weight": "6 kg", + "max_item_length": "120 cm", + "min_item_length": "40 cm", + "moves": 150, + "extra_encumbrance": 3, + "ripoff": 2, + "activity_noise": { "volume": 8, "chance": 10 } + } + ], + "flags": [ "BELTED", "WATERPROOF", "ONLY_ONE", "OVERSIZE" ] + }, + { + "id": "exo_medium_storage", + "repairs_like": "fanny", + "type": "ARMOR", + "name": { "str": "exoskeleton medium pouch", "str_pl": "exoskeleton medium pouches" }, + "description": "A medium storage pouch, mountable on a hardpoint.", + "weight": "275 g", + "volume": "2500 ml", + "material": [ "nylon", "plastic" ], + "symbol": "[", + "looks_like": "holster", + "color": "green", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "2500 ml", + "max_contains_weight": "5 kg", + "max_item_length": "25 cm", + "magazine_well": "1 L", + "moves": 80 + } + ] + }, + { + "id": "exo_small_storage", + "repairs_like": "fanny", + "type": "ARMOR", + "name": { "str": "exoskeleton small pouch", "str_pl": "exoskeleton small pouches" }, + "description": "A small storage pouch, mountable on a hardpoint.", + "weight": "272 g", + "volume": "1050 ml", + "material": [ "nylon", "plastic" ], + "symbol": "[", + "looks_like": "holster", + "color": "green", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "2500 ml", + "max_contains_weight": "5 kg", + "max_item_length": "25 cm", + "magazine_well": "1 L", + "moves": 80 + } + ] + }, + { + "id": "exo_large_ammo_pouch", + "type": "ARMOR", + "name": { "str": "exoskeleton large ammo pouches", "str_pl": "exoskeleton large ammo pouches" }, + "description": "A set of pouches that attach to a hardpoint.", + "weight": "205 g", + "volume": "1050 ml", + "price": 3000, + "price_postapoc": 250, + "material": [ "nylon" ], + "symbol": "[", + "color": "dark_gray", + "pocket_data": [ + { + "magazine_well": "350 ml", + "pocket_type": "CONTAINER", + "holster": true, + "min_item_volume": "300 ml", + "max_contains_volume": "1000 ml", + "max_contains_weight": "2 kg", + "max_item_length": "30 cm", + "moves": 50 + }, + { + "pocket_type": "CONTAINER", + "max_item_length": "300 mm", + "min_item_volume": "250 ml", + "max_contains_volume": "1 L", + "max_contains_weight": "2 kg", + "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "max_item_length": "300 mm", + "min_item_volume": "250 ml", + "max_contains_volume": "1 L", + "max_contains_weight": "2 kg", + "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "max_item_length": "250 mm", + "min_item_volume": "200 ml", + "max_contains_volume": "800 ml", + "max_contains_weight": "1600 g", + "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "max_item_length": "250 mm", + "min_item_volume": "200 ml", + "max_contains_volume": "800 ml", + "max_contains_weight": "1600 g", + "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "max_item_length": "250 mm", + "min_item_volume": "200 ml", + "max_contains_volume": "800 ml", + "max_contains_weight": "1600 g", + "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], + "moves": 60 + }, + { "ammo_restriction": { "410shot": 6, "shot": 6, "20x66mm": 6, "signal_flare": 6 }, "moves": 25 } + ], + "material_thickness": 0.2, + "flags": [ "WATER_FRIENDLY" ], + "armor": [ + { + "encumbrance": [ 2, 5 ], + "coverage": 50, + "covers": [ "leg_l", "leg_r" ], + "specifically_covers": [ "leg_upper_r", "leg_upper_l" ] + } + ] + }, + { + "id": "exo_small_ammo_pouch", + "type": "ARMOR", + "name": { "str": "exoskeleton small ammo pouches", "str_pl": "exoskeleton small ammo pouches" }, + "description": "A set of pouches that attach to a hardpoint.", + "weight": "205 g", + "volume": "1050 ml", + "price": 3000, + "price_postapoc": 250, + "material": [ "nylon" ], + "symbol": "[", + "color": "dark_gray", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "2250 ml", + "max_contains_weight": "2 kg", + "max_item_length": "30 cm", + "magazine_well": "500 ml", + "moves": 200, + "flag_restriction": [ "MAG_COMPACT"] + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "2250 ml", + "max_contains_weight": "2 kg", + "max_item_length": "30 cm", + "magazine_well": "500 ml", + "moves": 200, + "flag_restriction": [ "MAG_COMPACT"] + } + ], + "material_thickness": 0.2, + "flags": [ "WATER_FRIENDLY" ], + "armor": [ + { + "encumbrance": [ 2, 5 ], + "coverage": 50, + "covers": [ "leg_l", "leg_r" ], + "specifically_covers": [ "leg_upper_r", "leg_upper_l" ] + } + ] + } + ] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/modular_exoskeleton_case.json b/data/mods/Aftershock/items/armor/modular_exoskeleton_case.json deleted file mode 100644 index 379c4e9fcfabf..0000000000000 --- a/data/mods/Aftershock/items/armor/modular_exoskeleton_case.json +++ /dev/null @@ -1,96 +0,0 @@ -[ - { - "id": "pa_torso_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton torso steel plate" }, - "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", - "weight": "4200 g", - "volume": "6 L", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "cuirass_lightplate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 4, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] - }, - { - "id": "pa_arm_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton arm steel plate" }, - "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", - "weight": "2720 g", - "volume": "5500 ml", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "armguard_lightplate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 3, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ - { - "covers": [ "arm_l", "arm_r" ], - "encumbrance": 16, - "coverage": 95, - "cover_melee": 95, - "cover_ranged": 95, - "cover_vitals": 90, - "specifically_covers": [ "arm_lower_r", "arm_lower_l", "arm_elbow_r", "arm_elbow_l", "arm_upper_r", "arm_upper_l" ] - } - ] - }, - { - "id": "pa_leg_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton legs steel plate" }, - "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", - "weight": "4080 g", - "volume": "6 L", - "material": [ "steel" ], - "symbol": "L", - "looks_like": "legguard_lightplate", - "color": "light_gray", - "warmth": 10, - "material_thickness": 4, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ - { - "covers": [ "leg_l", "leg_r" ], - "encumbrance": 8, - "coverage": 95, - "cover_melee": 95, - "cover_ranged": 95, - "cover_vitals": 90, - "specifically_covers": [ "leg_lower_r", "leg_lower_l", "leg_knee_r", "leg_knee_l", "leg_upper_r", "leg_upper_l" ] - } - ] - }, - { - "id": "pa_back_battery", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "exoskeleton battery power supply" }, - "description": "Designed to attach to an exoskeleton's back, this is a heavy duty UPS with a replacable battery.", - "weight": "35000 g", - "volume": "6250 ml", - "material": [ "plastic", "steel" ], - "symbol": "=", - "looks_like": "UPS_off", - "color": "light_gray", - "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ], - "pocket_data": [ - { - "pocket_type": "MAGAZINE_WELL", - "rigid": true, - "item_restriction": [ "small_storage_battery", "storage_battery", "medium_storage_battery" ] - } - ] - } -] diff --git a/data/mods/Aftershock/items/armor/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exoskeleton_modules.json deleted file mode 100644 index d54a79777c2fe..0000000000000 --- a/data/mods/Aftershock/items/armor/modular_exoskeleton_modules.json +++ /dev/null @@ -1,165 +0,0 @@ -[ - { - "id": "pa_back_battery_compartment", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "exoskeleton swapable battery power supply" }, - "description": "Designed to attach to an exoskeleton's back, this is a large battery compartment with an integrated UPS.", - "weight": "5 kg", - "volume": "25 L", - "material": [ "plastic", "steel" ], - "symbol": "=", - "looks_like": "it_battery_mount", - "color": "light_gray", - "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], - "armor": [ { "encumbrance": 0, "coverage": 50, "covers": [ "torso" ] } ], - "pocket_data": [ - { - "pocket_type": "MAGAZINE_WELL", - "//": "This is a storage compartment for a battery.", - "rigid": true, - "item_restriction": [ "battery_car", "battery_motorbike", "small_storage_battery", "medium_storage_battery" ] - }, - { - "pocket_type": "CONTAINER", - "//": "This is a mounting point for armor protecting the PSU.", - "ablative": true, - "rigid": true, - "max_contains_volume": "10 L", - "max_contains_weight": "145 kg", - "item_restriction": [ "pa_psu_steel", "pa_psu_plastic" ], - "moves": 60 - } - ] - }, - { - "id": "pa_back_battery_rechargable", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "exoskeleton rechargable battery power supply" }, - "description": "Designed to attach to an exoskeleton's back, this is a large rechargable battery with an integrated UPS.", - "weight": "5 kg", - "volume": "25 L", - "material": [ "plastic", "steel" ], - "symbol": "=", - "looks_like": "storage_battery", - "color": "light_gray", - "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS" ], - "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 40000 } }, - { - "pocket_type": "CONTAINER", - "//": "This is a mounting point for armor protecting the PSU.", - "rigid": true, - "ablative": true, - "max_contains_volume": "10 L", - "max_contains_weight": "145 kg", - "item_restriction": [ "pa_psu_steel", "pa_psu_plastic" ], - "moves": 60 - } - ] - }, - { - "id": "pa_back_gasoline", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "exoskeleton ICE (gasoline) power supply" }, - "description": "Designed to attach to an exoskeleton's back, this is a gasoline generator with an integrated UPS.", - "weight": "20 kg", - "volume": "25 L", - "material": [ "steel", "plastic" ], - "symbol": "#", - "looks_like": "1cyl_combustion", - "color": "dark_gray", - "ammo": "gasoline", - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], - "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], - "pocket_data": [ - { - "pocket_type": "MAGAZINE", - "//": "This is a tank for gasoline Holds up to 10 liters.", - "rigid": true, - "watertight": true, - "ammo_restriction": { "gasoline": 10000 }}, - { - "pocket_type": "CONTAINER", - "//": "This is a mounting point for armor protecting the PSU.", - "ablative": true, - "rigid": true, - "max_contains_volume": "10 L", - "max_contains_weight": "145 kg", - "item_restriction": [ "pa_psu_steel", "pa_psu_plastic" ], - "moves": 60 - } - ] - }, - { - "id": "pa_medium_storage", - "repairs_like": "backpack", - "type": "ARMOR", - "name": { "str": "medium storage pouch" }, - "description": "Provides a bit of extra storage, with minimal encumbrance.", - "weight": "272 g", - "volume": "1050 ml", - "material": [ "nylon", "plastic" ], - "symbol": "[", - "looks_like": "holster", - "color": "green", - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "max_contains_volume": "2500 ml", - "max_contains_weight": "5 kg", - "max_item_length": "25 cm", - "magazine_well": "1 L", - "moves": 80 - } - ], - "material_thickness": 0.1, - "flags": [ "BELTED", "WATER_FRIENDLY" ], - "armor": [ { "encumbrance": [ 1, 3 ], "coverage": 10, "covers": [ "torso" ], "specifically_covers": [ "torso_lower" ] } ] - }, - { - "id": "legrig", - "type": "ARMOR", - "name": { "str": "pair of drop leg pouches", "str_pl": "pairs of drop leg pouches" }, - "description": "A set of pouches that can be worn on the thighs using buckled straps. This variety is favored by the military.", - "weight": "205 g", - "volume": "1050 ml", - "price": 3000, - "price_postapoc": 250, - "material": [ "nylon" ], - "symbol": "[", - "color": "dark_gray", - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "max_contains_volume": "2250 ml", - "max_contains_weight": "2 kg", - "max_item_length": "30 cm", - "magazine_well": "500 ml", - "moves": 200 - }, - { - "pocket_type": "CONTAINER", - "max_contains_volume": "2250 ml", - "max_contains_weight": "2 kg", - "max_item_length": "30 cm", - "magazine_well": "500 ml", - "moves": 200 - } - ], - "material_thickness": 0.2, - "flags": [ "VARSIZE", "WATER_FRIENDLY", "BELTED" ], - "armor": [ - { - "encumbrance": [ 2, 5 ], - "coverage": 50, - "covers": [ "leg_l", "leg_r" ], - "specifically_covers": [ "leg_upper_r", "leg_upper_l" ] - } - ] - } - ] \ No newline at end of file diff --git a/data/mods/Aftershock/items/tools.json b/data/mods/Aftershock/items/tools.json index e02f01fd06503..033c8adba84dd 100644 --- a/data/mods/Aftershock/items/tools.json +++ b/data/mods/Aftershock/items/tools.json @@ -489,74 +489,5 @@ "symbol": "H", "color": "light_gray", "flags": [ "ALLOWS_REMOTE_USE" ] - }, - { - "id": "exotool", - "type": "TOOL", - "name": { "str": "exoskeleton tool set" }, - "description": "This is a tool module for a powered exoskeleton.", - "weight": "5 kg", - "volume": "5 L", - "longest_side": "75 cm", - "price": 10000, - "price_postapoc": 30000, - "material": [ "aluminum", "steel" ], - "symbol": "=", - "color": "light_gray", - "use_action": [ [ "CROWBAR", 0 ], [ "HAMMER", 0 ] ], - "qualities": [ - [ "HAMMER", 3 ], - [ "HAMMER_FINE", 1 ], - [ "SAW_W", 1 ], - [ "SAW_M", 2 ], - [ "SAW_M_FINE", 1 ], - [ "WRENCH", 2 ], - [ "WRENCH_FINE", 1 ], - [ "WHEEL_FAST", 1 ], - [ "SCREW", 1 ], - [ "SCREW_FINE", 1 ], - [ "CUT", 1 ], - [ "PRY", 1 ], - [ "PRYING_NAIL", 1 ], - [ "DRILL", 3 ], - [ "BUTCHER", -38 ] - ] - }, - { - "id": "powered_exotool", - "type": "TOOL", - "name": { "str": "exoskeleton powered tool set" }, - "description": "This is a tool module for a powered exoskeleton. It includes an arc welder and an electric jackhammer, powered by a heavy battery.", - "weight": "10 kg", - "volume": "5 L", - "longest_side": "75 cm", - "price": 10000, - "price_postapoc": 30000, - "material": [ "aluminum", "steel" ], - "symbol": "=", - "color": "light_gray", - "pocket_data": [ - { - "pocket_type": "MAGAZINE_WELL", - "rigid": true, - "flag_restriction": [ "BATTERY_HEAVY" ], - "default_magazine": "heavy_battery_cell" - } - ], - "ammo": [ "battery" ], - "charges_per_use": 5, - "qualities": [ [ "WELD", 2 ] ], - "use_action": [ - { - "type": "repair_item", - "item_action_type": "repair_metal", - "materials": [ "iron", "steel", "hardsteel", "aluminum", "copper", "bronze", "silver", "gold", "platinum", "superalloy" ], - "skill": "fabrication", - "tool_quality": 10, - "cost_scaling": 0.1, - "move_cost": 500 - }, - "JACKHAMMER" - ] } ] From a760dc55d3c2ce5095f94e810f02c78c24ce00e7 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 9 Dec 2021 15:13:34 -0800 Subject: [PATCH 006/189] Weight Bearing Modules Weight modules work now. Sacrificing a primary PSU and relying only on APUs, a large and four small weight modules can be worn, allowing the character to move wearing the heavy military composite plating. Plating values need balance. --- .../items/armor/modular_exos/exo_gadgets.json | 71 ---------- .../armor/modular_exos/exoskeletons.json | 126 ------------------ .../modular_exos/modular_exoskeleton.json | 7 +- .../modular_exoskeleton_modules.json | 83 +++++++----- .../modular_exoskeleton_plating.json | 24 ++-- 5 files changed, 63 insertions(+), 248 deletions(-) delete mode 100644 data/mods/Aftershock/items/armor/modular_exos/exo_gadgets.json delete mode 100644 data/mods/Aftershock/items/armor/modular_exos/exoskeletons.json diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gadgets.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gadgets.json deleted file mode 100644 index 028aa07ec691b..0000000000000 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gadgets.json +++ /dev/null @@ -1,71 +0,0 @@ -[ - { - "id": "exotool", - "type": "TOOL", - "name": { "str": "exoskeleton tool set" }, - "description": "This is a tool module for a powered exoskeleton.", - "weight": "5 kg", - "volume": "5 L", - "longest_side": "75 cm", - "price": 10000, - "price_postapoc": 30000, - "material": [ "aluminum", "steel" ], - "symbol": "=", - "color": "light_gray", - "use_action": [ [ "CROWBAR", 0 ], [ "HAMMER", 0 ] ], - "qualities": [ - [ "HAMMER", 3 ], - [ "HAMMER_FINE", 1 ], - [ "SAW_W", 1 ], - [ "SAW_M", 2 ], - [ "SAW_M_FINE", 1 ], - [ "WRENCH", 2 ], - [ "WRENCH_FINE", 1 ], - [ "WHEEL_FAST", 1 ], - [ "SCREW", 1 ], - [ "SCREW_FINE", 1 ], - [ "CUT", 1 ], - [ "PRY", 1 ], - [ "PRYING_NAIL", 1 ], - [ "DRILL", 3 ], - [ "BUTCHER", -38 ] - ] - }, - { - "id": "powered_exotool", - "type": "TOOL", - "name": { "str": "exoskeleton powered tool set" }, - "description": "This is a tool module for a powered exoskeleton. It includes an arc welder and an electric jackhammer, powered by a heavy battery.", - "weight": "10 kg", - "volume": "5 L", - "longest_side": "75 cm", - "price": 10000, - "price_postapoc": 30000, - "material": [ "aluminum", "steel" ], - "symbol": "=", - "color": "light_gray", - "pocket_data": [ - { - "pocket_type": "MAGAZINE_WELL", - "rigid": true, - "flag_restriction": [ "BATTERY_HEAVY" ], - "default_magazine": "heavy_battery_cell" - } - ], - "ammo": [ "battery" ], - "charges_per_use": 5, - "qualities": [ [ "WELD", 2 ] ], - "use_action": [ - { - "type": "repair_item", - "item_action_type": "repair_metal", - "materials": [ "iron", "steel", "hardsteel", "aluminum", "copper", "bronze", "silver", "gold", "platinum", "superalloy" ], - "skill": "fabrication", - "tool_quality": 10, - "cost_scaling": 0.1, - "move_cost": 500 - }, - "JACKHAMMER" - ] - } - ] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/modular_exos/exoskeletons.json b/data/mods/Aftershock/items/armor/modular_exos/exoskeletons.json deleted file mode 100644 index 46b0fc8afb1cd..0000000000000 --- a/data/mods/Aftershock/items/armor/modular_exos/exoskeletons.json +++ /dev/null @@ -1,126 +0,0 @@ -[ - { - "id": "afs_pa_undersuit", - "repairs_like": "thermal_suit", - "type": "ARMOR", - "copy-from": "jumpsuit", - "looks_like": "robofac_enviro_suit", - "name": { "str": "powerframe undersuit" }, - "description": "A form-fitting suit inlaid with meant to be worn beneath power armor. Although not a requirement for the operation of power armor, it features climate control and haptic feedback systems that offer improved performance and comfort. The suit is not designed for use outside of armor, it has no pockets, offers nearly no protection and damages easily.", - "color": "brown", - "material": [ "nomex", "plastic" ], - "armor": [ - { "covers": [ "head" ], "coverage": 100, "encumbrance": 5 }, - { "covers": [ "torso" ], "coverage": 100, "encumbrance": 5 }, - { "covers": [ "leg_l", "leg_r" ], "coverage": 100, "encumbrance": 5 }, - { "covers": [ "arm_l", "arm_r" ], "coverage": 100, "encumbrance": 5 }, - { "covers": [ "hand_l", "hand_r" ], "coverage": 100, "encumbrance": 5 }, - { "covers": [ "foot_l", "foot_r" ], "coverage": 100, "encumbrance": 5 } - ], - "pocket_data": [ ], - "warmth": 10, - "flags": [ "USE_UPS", "WATERPROOF", "POWERARMOR_COMPATIBLE" ] - }, - { - "id": "utility_exoskeleton_off", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "battery powered utility exoskeleton" }, - "//": "This is based on the Sarcos Guardian, a production model with independent battery power, all weather operation, and capable of lifting up to 200 lbs. It uses three 12 lb batteries that provide 8 hours of operation. The battery life in-game is significantly less in order to utilize medium storage batteries, otherwise this would require the unit to be active to reload itself. This can also be changed out to use other battery types.", - "description": "This is a skeletal frame of sturdy metal with attached motors to allow the user to move heavier loads with less strain on the body.", - "weight": "90 kg", - "volume": "130 L", - "price": 11500000, - "price_postapoc": 40000, - "to_hit": 1, - "bashing": 1, - "material": [ "steel", "plastic" ], - "symbol": "[", - "looks_like": "depowered_armor", - "color": "dark_gray", - "pocket_data": [{ "pocket_type": "MAGAZINE_WELL", "item_restriction": [ "medium_storage_battery" ] }, - { "pocket_type": "CONTAINER", "item_restriction": [ "exotool" ] }, - { "pocket_type": "CONTAINER", "item_restriction": [ "powered_exotool" ] }], - "warmth": 0, - "material_thickness": 8, - "environmental_protection": 0, - "power_armor": true, - "ammo": "battery", - "charges_per_use": 1, - "use_action": { "type": "transform", "msg": "The %s engages.", "target": "utility_exoskeleton_on", "active": true }, - "flags": [ "STURDY", "OVERSIZE", "BELTED", "WATER_FRIENDLY", "SLOWS_MOVEMENT" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 20 } ] } ] }, - "armor": [ - { - "encumbrance": 20, - "coverage": 20, - "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] - } - ] - }, - { - "id": "utility_exoskeleton_on", - "copy-from": "utility_exoskeleton_off", - "repairs_like": "utility_exoskeleton_off", - "looks_like": "power_armor_light", - "type": "TOOL_ARMOR", - "name": { "str": "battery powered utility exoskeleton (on)", "str_pl": "battery powered utility exoskeletons (on)" }, - "description": "This is a skeletal frame of sturdy metal with attached motors to allow the user to move heavier loads with less strain on the body. It is turned on and continually drawing power. Use it to turn it off.", - "flags": [ "STURDY", "OVERSIZE", "BELTED", "WATER_FRIENDLY", "TRADER_AVOID" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 20 } ] } ] }, - "ammo": "battery", - "power_draw": 972216, - "//": "Battery should last two hours (02:00:07).", - "revert_to": "utility_exoskeleton_off", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "utility_exoskeleton_off" } - }, - { - "id": "ice_utility_exoskeleton_off", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "ICE utility exoskeleton" }, - "description": "This is a skeletal frame of sturdy metal with attached motors to allow the user to move heavier loads with less strain on the body. This model uses a compact internal combustion engine for power.", - "weight": "110 kg", - "volume": "130 L", - "price": 11500000, - "price_postapoc": 40000, - "to_hit": 1, - "bashing": 1, - "material": [ "steel", "plastic" ], - "symbol": "[", - "looks_like": "depowered_armor", - "color": "dark_gray", - "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "watertight": true, "ammo_restriction": { "gasoline": 10000 } }, { "pocket_type": "CONTAINER", "item_restriction": [ "exotool" ] }, { "pocket_type": "CONTAINER", "item_restriction": [ "powered_exotool" ] } ], - "warmth": 0, - "material_thickness": 8, - "environmental_protection": 0, - "power_armor": true, - "ammo": "gasoline", - "charges_per_use": 1, - "use_action": { "type": "transform", "msg": "The %s engages.", "target": "ice_utility_exoskeleton_on", "active": true }, - "flags": [ "STURDY", "OVERSIZE", "BELTED", "WATER_FRIENDLY", "SLOWS_MOVEMENT" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 20 } ] } ] }, - "armor": [ - { - "encumbrance": 20, - "coverage": 20, - "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] - } - ] - }, - { - "id": "ice_utility_exoskeleton_on", - "copy-from": "ice_utility_exoskeleton_off", - "repairs_like": "ice_utility_exoskeleton_off", - "looks_like": "power_armor_light", - "type": "TOOL_ARMOR", - "name": { "str": "ICE utility exoskeleton (on)", "str_pl": "ICE utility exoskeletons (on)" }, - "description": "This is a skeletal frame of sturdy metal with attached motors to allow the user to move heavier loads with less strain on the body. This model uses a compact internal combustion engine for power. It is turned on and continually draining gasoline. Use it to turn it off.", - "flags": [ "STURDY", "OVERSIZE", "BELTED", "WATER_FRIENDLY", "TRADER_AVOID" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 20 } ] } ] }, - "turns_per_charge": 1, - "//": "Full tank lasts a bit under three hours (166.66 minutes).", - "revert_to": "ice_utility_exoskeleton_off", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "ice_utility_exoskeleton_off" } - } -] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 0331d8685e51e..edb3536fa96f1 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -40,7 +40,7 @@ "rigid": true, "max_contains_volume": "10 L", "max_contains_weight": "45 kg", - "item_restriction": [ "exo_torso_steel", "exo_torso_plastic" ], + "item_restriction": [ "exo_torso_steel", "exo_torso_plastic", "exo_torso_milcomp" ], "moves": 60 }, { @@ -63,7 +63,6 @@ { "pocket_type": "CONTAINER", "//": "This is a mounting point for power supply units or large modules.", - "ablative": true, "rigid": true, "max_contains_volume": "25 L", "max_contains_weight": "140 kg", @@ -89,7 +88,7 @@ "max_contains_volume": "8 L", "max_contains_weight": "35 kg", "max_item_length": "200 mm", - "item_restriction": [ "exo_arm_steel", "exo_arm_plastic" ], + "item_restriction": [ "exo_arm_steel", "exo_arm_plastic", "exo_arm_milcomp" ], "moves": 60 }, { @@ -109,7 +108,7 @@ "max_contains_volume": "9 L", "max_contains_weight": "40 kg", "max_item_length": "200 mm", - "item_restriction": [ "exo_leg_steel", "exo_leg_plastic" ], + "item_restriction": [ "exo_leg_steel", "exo_leg_plastic", "exo_leg_milcomp" ], "moves": 60 }, { diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 7089174dfeb19..054dc8770ac5b 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -28,7 +28,7 @@ "rigid": true, "max_contains_volume": "10 L", "max_contains_weight": "145 kg", - "item_restriction": [ "exo_psu_steel", "exo_psu_plastic" ], + "item_restriction": [ "exo_psu_steel", "exo_psu_plastic", "exo_psu_milcomp" ], "moves": 60 } ] @@ -57,7 +57,7 @@ "ablative": true, "max_contains_volume": "10 L", "max_contains_weight": "145 kg", - "item_restriction": [ "exo_psu_steel", "exo_psu_plastic" ], + "item_restriction": [ "exo_psu_steel", "exo_psu_plastic", "exo_psu_milcomp" ], "moves": 60 } ] @@ -92,7 +92,7 @@ "rigid": true, "max_contains_volume": "10 L", "max_contains_weight": "145 kg", - "item_restriction": [ "exo_psu_steel", "exo_psu_plastic" ], + "item_restriction": [ "exo_psu_steel", "exo_psu_plastic", "exo_psu_milcomp" ], "moves": 60 } ] @@ -133,25 +133,26 @@ "id": "exo_large_carry_off", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton large APU" }, - "description": "This is a large rechargable auxiliary power unit that attaches to a hardpoint.", - "weight": "4 kg", - "volume": "5 L", + "name": { "str": "exoskeleton large load support module (off)" }, + "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power cosumption.", + "weight": "10 kg", + "volume": "10 L", "material": [ "plastic", "steel" ], "symbol": "=", "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], "relic_data": { - "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] + "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 30000 } ] } ] }, "use_action": { "target": "exo_large_carry_on", "msg": "The %s engages.", + "menu_text": "Turn on module", "active": true, - "need_charges": 1, - "need_charges_msg": "The APU does not have enough charge.", + "need_charges": 5, + "need_charges_msg": "There is not enough charge to activate the module.", "type": "transform" } }, @@ -159,29 +160,34 @@ "id": "exo_large_carry_on", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton large APU" }, - "description": "This is a large rechargable auxiliary power unit that attaches to a hardpoint.", - "weight": "4 kg", - "volume": "5 L", + "name": { "str": "exoskeleton large load support module (on)" }, + "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power cosumption. It is turned on and continually drawing power. Use it to turn it off.", + "weight": "10 kg", + "volume": "10 L", "material": [ "plastic", "steel" ], "symbol": "=", "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], "relic_data": { - "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] - }, + "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 30000 } ] } ]}, "power_draw": 1500, "revert_to": "exo_large_carry_off", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "exo_large_carry_off" } + "use_action": { + "ammo_scale": 0, + "target": "exo_large_carry_off", + "msg": "You deactivate the module.", + "menu_text": "Turn off module", + "type": "transform" + } }, { "id": "exo_small_carry_off", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton small APU" }, - "description": "This is a small rechargable auxiliary power unit that attaches to a hardpoint.", + "name": { "str": "exoskeleton small load support module (off)" }, + "description": "This module increases the exoskeleton's weight bearing at the cost of increased power cosumption.", "weight": "2 kg", "volume": "1 L", "material": [ "plastic", "steel" ], @@ -189,16 +195,17 @@ "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], "relic_data": { - "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 50 } ] } ] + "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 15000 } ] } ] }, "use_action": { "target": "exo_small_carry_on", "msg": "The %s engages.", + "menu_text": "Turn on module", "active": true, - "need_charges": 1, - "need_charges_msg": "The APU does not have enough charge.", + "need_charges": 5, + "need_charges_msg": "There is not enough charge to activate the module.", "type": "transform" } }, @@ -206,21 +213,27 @@ "id": "exo_small_carry_on", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton large APU" }, - "description": "This is a large rechargable auxiliary power unit that attaches to a hardpoint.", - "weight": "4 kg", - "volume": "5 L", + "name": { "str": "exoskeleton small load support module (on)" }, + "description": "This module increases the exoskeleton's weight bearing at the cost of increased power cosumption. It is turned on and continually drawing power. Use it to turn it off.", + "weight": "2 kg", + "volume": "1 L", "material": [ "plastic", "steel" ], "symbol": "=", "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], "relic_data": { - "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 50 } ] } ] + "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 15000 } ] } ] }, - "power_draw": 750, - "revert_to": "exo_small_carry_on", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "exo_small_carry_on" } - } + "power_draw": 1500, + "revert_to": "exo_small_carry_off", + "use_action": { + "ammo_scale": 0, + "target": "exo_small_carry_off", + "msg": "You deactivate the module.", + "menu_text": "Turn off module", + "type": "transform" + } + } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 07a1270b64bf0..fca1a7c1c8373 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -85,8 +85,8 @@ "cover_vitals": 90, "specifically_covers": [ "leg_lower_r", "leg_lower_l", "leg_knee_r", "leg_knee_l", "leg_upper_r", "leg_upper_l" ] } - ] - }, + ] + }, { "id": "exo_torso_plastic", "type": "ARMOR", @@ -105,7 +105,7 @@ "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, - { + { "id": "destroyed_exo_torso_plastic_plate", "type": "ARMOR", "copy-from": "exo_torso_plastic", @@ -135,7 +135,7 @@ "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, - { + { "id": "destroyed_exo_psu_plastic_plate", "type": "ARMOR", "copy-from": "exo_psu_plastic", @@ -175,7 +175,7 @@ } ] }, - { + { "id": "destroyed_exo_arm_plastic_plate", "type": "ARMOR", "copy-from": "exo_arm_plastic", @@ -215,7 +215,7 @@ } ] }, - { + { "id": "destroyed_exo_leg_plastic_plate", "type": "ARMOR", "copy-from": "exo_leg_plastic", @@ -245,7 +245,7 @@ "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, - { + { "id": "destroyed_exo_torso_milcomp_plate", "type": "ARMOR", "copy-from": "exo_torso_milcomp", @@ -275,7 +275,7 @@ "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, - { + { "id": "destroyed_exo_psu_milcomp_plate", "type": "ARMOR", "copy-from": "exo_psu_milcomp", @@ -315,7 +315,7 @@ } ] }, - { + { "id": "destroyed_exo_arm_milcomp_plate", "type": "ARMOR", "copy-from": "exo_arm_milcomp", @@ -353,9 +353,9 @@ "cover_vitals": 90, "specifically_covers": [ "leg_lower_r", "leg_lower_l", "leg_knee_r", "leg_knee_l", "leg_upper_r", "leg_upper_l" ] } - ] - }, - { + ] + }, + { "id": "destroyed_exo_leg_milcomp_plate", "type": "ARMOR", "copy-from": "exo_leg_milcomp", From ca7b28cff52543b15ff27c8d61a707daa1ead0c3 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 9 Dec 2021 15:29:53 -0800 Subject: [PATCH 007/189] Update modular_exoskeleton_plating.json --- .../modular_exoskeleton_plating.json | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index fca1a7c1c8373..f1de45868ad91 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -12,7 +12,7 @@ "looks_like": "cuirass_lightplate", "color": "light_gray", "warmth": 20, - "material_thickness": 4, + "material_thickness": 6, "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, @@ -29,7 +29,7 @@ "looks_like": "backpack_tactical_large", "color": "light_gray", "warmth": 0, - "material_thickness": 4, + "material_thickness": 6, "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, @@ -46,7 +46,7 @@ "looks_like": "armguard_lightplate", "color": "light_gray", "warmth": 20, - "material_thickness": 3, + "material_thickness": 6, "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { @@ -73,7 +73,7 @@ "looks_like": "legguard_lightplate", "color": "light_gray", "warmth": 10, - "material_thickness": 4, + "material_thickness": 6, "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { @@ -100,7 +100,7 @@ "looks_like": "cuirass_lightplate", "color": "light_gray", "warmth": 20, - "material_thickness": 4, + "material_thickness": 3, "non_functional": "destroyed_exo_torso_plastic_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] @@ -113,7 +113,7 @@ "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection just weight.", "looks_like": "exo_torso_plastic", "material": [ "plastic" ], - "material_thickness": 2, + "material_thickness": 3, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, @@ -130,7 +130,7 @@ "looks_like": "backpack_tactical_large", "color": "light_gray", "warmth": 0, - "material_thickness": 4, + "material_thickness": 3, "non_functional": "destroyed_exo_psu_plastic_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] @@ -143,7 +143,7 @@ "description": "The remains of a plastic PSU plate after taking a strong impact. No longer provides functional protection just weight.", "looks_like": "exo_psu_plastic", "material": [ "plastic" ], - "material_thickness": 2, + "material_thickness": 3, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, @@ -183,7 +183,7 @@ "description": "The remains of a plastic arm plate after taking a strong impact. No longer provides functional protection just weight.", "looks_like": "exo_arm_plastic", "material": [ "plastic" ], - "material_thickness": 2, + "material_thickness": 3, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, @@ -200,7 +200,7 @@ "looks_like": "legguard_lightplate", "color": "light_gray", "warmth": 10, - "material_thickness": 4, + "material_thickness": 3, "non_functional": "destroyed_exo_leg_plastic_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ @@ -223,7 +223,7 @@ "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection just weight.", "looks_like": "exo_leg_plastic", "material": [ "plastic" ], - "material_thickness": 2, + "material_thickness": 3, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, @@ -235,12 +235,12 @@ "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of military composite.", "weight": "44000 g", "volume": "8 L", - "material": [ "steel", "ceramic" ], + "material": [ "hardsteel", "ceramic" ], "symbol": "[", "looks_like": "cuirass_lightplate", "color": "light_gray", "warmth": 20, - "material_thickness": 4, + "material_thickness": 8, "non_functional": "destroyed_exo_torso_milcomp_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] @@ -252,8 +252,8 @@ "name": { "str": "shattered military composite torso plate" }, "description": "The remains of a military composite torso plate after taking a strong impact. No longer provides functional protection just weight.", "looks_like": "exo_torso_milcomp", - "material": [ "steel", "ceramic" ], - "material_thickness": 2, + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, @@ -265,12 +265,12 @@ "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of military composite.", "weight": "55000 g", "volume": "10 L", - "material": [ "steel", "ceramic" ], + "material": [ "hardsteel", "ceramic" ], "symbol": "[", "looks_like": "backpack_tactical_large", "color": "light_gray", "warmth": 0, - "material_thickness": 4, + "material_thickness": 8, "non_functional": "destroyed_exo_psu_milcomp_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] @@ -282,8 +282,8 @@ "name": { "str": "shattered military composite PSU plate" }, "description": "The remains of a military composite PSU plate after taking a strong impact. No longer provides functional protection just weight.", "looks_like": "exo_psu_milcomp", - "material": [ "steel", "ceramic" ], - "material_thickness": 2, + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, @@ -295,12 +295,12 @@ "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of military composite.", "weight": "33000 g", "volume": "5500 ml", - "material": [ "steel", "ceramic" ], + "material": [ "hardsteel", "ceramic" ], "symbol": "[", "looks_like": "armguard_lightplate", "color": "light_gray", "warmth": 20, - "material_thickness": 3, + "material_thickness": 8, "non_functional": "destroyed_exo_arm_milcomp_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ @@ -322,8 +322,8 @@ "name": { "str": "shattered military composite arm plate" }, "description": "The remains of a military composite arm plate after taking a strong impact. No longer provides functional protection just weight.", "looks_like": "exo_arm_milcomp", - "material": [ "steel", "ceramic" ], - "material_thickness": 2, + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, @@ -335,12 +335,12 @@ "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of military composite.", "weight": "38500 g", "volume": "8 L", - "material": [ "steel", "ceramic" ], + "material": [ "hardsteel", "ceramic" ], "symbol": "L", "looks_like": "legguard_lightplate", "color": "light_gray", "warmth": 10, - "material_thickness": 4, + "material_thickness": 8, "non_functional": "destroyed_exo_leg_milcomp_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ @@ -362,8 +362,8 @@ "name": { "str": "shattered military composite leg plate" }, "description": "The remains of a military composite leg plate after taking a strong impact. No longer provides functional protection just weight.", "looks_like": "exo_leg_milcomp", - "material": [ "steel", "ceramic" ], - "material_thickness": 2, + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] } From 7161bfeba24bf52015532988b44bbaa8e9b313b9 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 9 Dec 2021 18:38:54 -0800 Subject: [PATCH 008/189] Polish Removed replaceable battery PSU, reloading anything larger than a car battery or small storage battery is impractical in the field without the suit's own strength. Added additional storage to legs and arms representing a 2L point on each limb. Plastic armor can be worn by a strength 8 character with no weight bearing modules. Steel requires some weight modules, forcing players to choose between protection and cargo. Milcomp requires a significant investment in weight support modules, when using the heavy ICE power supply and maximizing all possible weight support modules a strength 8 character will still be overburdened. May add an archeotech weight module to fit with some other hypertech equipment found in Aftershock. --- .../modular_exos/modular_exoskeleton.json | 30 ++++++++++-- .../modular_exoskeleton_modules.json | 46 +++---------------- .../modular_exoskeleton_plating.json | 8 ++-- 3 files changed, 35 insertions(+), 49 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index edb3536fa96f1..da35ae14d0473 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -17,7 +17,6 @@ { "covers": [ "hand_l", "hand_r" ], "coverage": 100, "encumbrance": 5 }, { "covers": [ "foot_l", "foot_r" ], "coverage": 100, "encumbrance": 5 } ], - "pocket_data": [ ], "warmth": 10, "flags": [ "USE_UPS", "SKINTIGHT", "WATERPROOF", "POWERARMOR_COMPATIBLE" ] }, @@ -67,16 +66,19 @@ "max_contains_volume": "25 L", "max_contains_weight": "140 kg", "item_restriction": [ - "exo_back_battery_compartment", "exo_back_battery_rechargable", "exo_back_gasoline", "exo_large_storage", "exo_large_aux_power", "exo_small_aux_power", + "exo_small_storage", + "exo_medium_storage", "exo_large_carry_off", "exo_large_carry_on", "exo_small_carry_off", - "exo_small_carry_on" + "exo_small_carry_on", + "exo_melee_storage", + "exo_large_storage" ], "moves": 60 }, @@ -95,7 +97,16 @@ "pocket_type": "CONTAINER", "//": "This is a hardpoint for storing items on the arms.", "rigid": true, - "max_contains_volume": "1 L", + "max_contains_volume": "2 L", + "max_contains_weight": "5 kg", + "item_restriction": [ "exo_small_storage", "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", "exo_small_carry_on" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "//": "This is a hardpoint for storing items on the arms.", + "rigid": true, + "max_contains_volume": "2 L", "max_contains_weight": "5 kg", "item_restriction": [ "exo_small_storage", "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", "exo_small_carry_on" ], "moves": 60 @@ -115,7 +126,16 @@ "pocket_type": "CONTAINER", "//": "This is a hardpoint for storing items on the legs.", "rigid": true, - "max_contains_volume": "1 L", + "max_contains_volume": "2 L", + "max_contains_weight": "5 kg", + "item_restriction": [ "exo_small_storage", "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", "exo_small_carry_on" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "//": "This is a hardpoint for storing items on the legs.", + "rigid": true, + "max_contains_volume": "2 L", "max_contains_weight": "5 kg", "item_restriction": [ "exo_small_storage", "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", "exo_small_carry_on" ], "moves": 60 diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 054dc8770ac5b..e852faefff73b 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -1,46 +1,12 @@ [ - { - "id": "exo_back_battery_compartment", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "exoskeleton swapable battery power supply" }, - "description": "Designed to attach to an exoskeleton's back, this is a large battery compartment with an integrated UPS.", - "weight": "5 kg", - "volume": "25 L", - "material": [ "plastic", "steel" ], - "symbol": "=", - "looks_like": "it_battery_mount", - "color": "light_gray", - "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], - "armor": [ { "encumbrance": 0, "coverage": 50, "covers": [ "torso" ] } ], - "pocket_data": [ - { - "pocket_type": "MAGAZINE_WELL", - "//": "This is a storage compartment for a battery.", - "rigid": true, - "item_restriction": [ "battery_car", "battery_motorbike", "small_storage_battery", "medium_storage_battery" ] - }, - { - "pocket_type": "CONTAINER", - "//": "This is a mounting point for armor protecting the PSU.", - "ablative": true, - "rigid": true, - "max_contains_volume": "10 L", - "max_contains_weight": "145 kg", - "item_restriction": [ "exo_psu_steel", "exo_psu_plastic", "exo_psu_milcomp" ], - "moves": 60 - } - ] - }, { "id": "exo_back_battery_rechargable", "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton rechargable battery power supply" }, "description": "Designed to attach to an exoskeleton's back, this is a large rechargable battery with an integrated UPS.", - "weight": "5 kg", - "volume": "25 L", + "weight": "15 kg", + "volume": "20 L", "material": [ "plastic", "steel" ], "symbol": "=", "looks_like": "storage_battery", @@ -67,7 +33,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton ICE power supply" }, - "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS.", + "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS. The large size ", "weight": "20 kg", "volume": "25 L", "material": [ "steel", "plastic" ], @@ -103,7 +69,7 @@ "category": "armor", "name": { "str": "exoskeleton large APU" }, "description": "This is a large rechargable auxiliary power unit that attaches to a hardpoint.", - "weight": "4 kg", + "weight": "5 kg", "volume": "5 L", "material": [ "plastic", "steel" ], "symbol": "=", @@ -197,7 +163,7 @@ "ammo": [ "battery" ], "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], "relic_data": { - "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 15000 } ] } ] + "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 20000 } ] } ] }, "use_action": { "target": "exo_small_carry_on", @@ -224,7 +190,7 @@ "ammo": [ "battery" ], "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], "relic_data": { - "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 15000 } ] } ] + "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 20000 } ] } ] }, "power_draw": 1500, "revert_to": "exo_small_carry_off", diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index f1de45868ad91..9ee4dcf1228cd 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -5,7 +5,7 @@ "category": "armor", "name": { "str": "exoskeleton torso steel plate" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", - "weight": "4200 g", + "weight": "34347 g", "volume": "8 L", "material": [ "steel" ], "symbol": "[", @@ -22,7 +22,7 @@ "category": "armor", "name": { "str": "exoskeleton PSU steel plate" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of steel.", - "weight": "107333 g", + "weight": "42933 g", "volume": "10 L", "material": [ "steel" ], "symbol": "[", @@ -39,7 +39,7 @@ "category": "armor", "name": { "str": "exoskeleton arm steel plate" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", - "weight": "2720 g", + "weight": "25760 g", "volume": "5500 ml", "material": [ "steel" ], "symbol": "[", @@ -66,7 +66,7 @@ "category": "armor", "name": { "str": "exoskeleton legs steel plate" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", - "weight": "4080 g", + "weight": "30053 g", "volume": "8 L", "material": [ "steel" ], "symbol": "L", From 0fdc39f0250c7c90d1883e16fd289aac98d58baa Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 10 Dec 2021 13:47:23 -0800 Subject: [PATCH 009/189] Boots, gloves, helmets, and more modules! Boots, gloves, helmets added, using same modular plating. Added some modules primarily intended for the helmet (sensory enhancements, gas filter) and a torso-specific recoil control module. Also a lamp. --- .../modular_exos/modular_exoskeleton.json | 132 +++++++++- .../modular_exoskeleton_modules.json | 229 +++++++++++++++-- .../modular_exoskeleton_plating.json | 231 ++++++++++++++++++ .../modular_exoskeleton_storage.json | 31 ++- 4 files changed, 580 insertions(+), 43 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index da35ae14d0473..b0209489ca0ee 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -7,6 +7,8 @@ "looks_like": "robofac_enviro_suit", "name": { "str": "exoskeleton undersuit" }, "description": "A form-fitting suit inlaid with meant to be worn beneath power armor. Although not a requirement for the operation of power armor, it features climate control and haptic feedback systems that offer improved performance and comfort. The suit is not designed for use outside of armor, it has no pockets, offers nearly no protection and damages easily.", + "weight": "610 g", + "volume": "3500 ml", "color": "brown", "material": [ "nomex", "plastic" ], "armor": [ @@ -28,13 +30,14 @@ "weight": "40 kg", "volume": "130 L", "material": [ "steel", "plastic" ], - "symbol": "[", + "material_thickness": 8, + "symbol": "T", "looks_like": "power_armor_basic", "color": "light_gray", "pocket_data": [ { "pocket_type": "CONTAINER", - "//": "This is a mounting point for torso armor.", + "description": "This is a mounting point for torso armor.", "ablative": true, "rigid": true, "max_contains_volume": "10 L", @@ -44,7 +47,7 @@ }, { "pocket_type": "CONTAINER", - "//": "This is a hardpoint for storing items in the torso.", + "description": "This is a hardpoint for storing items in the torso.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", @@ -55,13 +58,18 @@ "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", - "exo_small_carry_on" + "exo_small_carry_on", + "exo_flashlight_off", + "exo_flashlight_low", + "exo_flashlight_high", + "exo_recoil_off", + "exo_recoil_on" ], "moves": 60 }, { "pocket_type": "CONTAINER", - "//": "This is a mounting point for power supply units or large modules.", + "description": "This is a mounting point for power supply units or large modules.", "rigid": true, "max_contains_volume": "25 L", "max_contains_weight": "140 kg", @@ -77,14 +85,14 @@ "exo_large_carry_on", "exo_small_carry_off", "exo_small_carry_on", - "exo_melee_storage", - "exo_large_storage" + "exo_melee_storage", + "exo_rifle_storage" ], "moves": 60 }, { "pocket_type": "CONTAINER", - "//": "This is a mounting point for arm armor.", + "description": "This is a mounting point for arm armor.", "ablative": true, "rigid": true, "max_contains_volume": "8 L", @@ -95,7 +103,7 @@ }, { "pocket_type": "CONTAINER", - "//": "This is a hardpoint for storing items on the arms.", + "description": "This is a hardpoint for storing items on the arms.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", @@ -104,7 +112,7 @@ }, { "pocket_type": "CONTAINER", - "//": "This is a hardpoint for storing items on the arms.", + "description": "This is a hardpoint for storing items on the arms.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", @@ -113,7 +121,7 @@ }, { "pocket_type": "CONTAINER", - "//": "This is a mounting point for leg armor.", + "description": "This is a mounting point for leg armor.", "ablative": true, "rigid": true, "max_contains_volume": "9 L", @@ -124,7 +132,7 @@ }, { "pocket_type": "CONTAINER", - "//": "This is a hardpoint for storing items on the legs.", + "description": "This is a hardpoint for storing items on the legs.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", @@ -133,7 +141,7 @@ }, { "pocket_type": "CONTAINER", - "//": "This is a hardpoint for storing items on the legs.", + "description": "This is a hardpoint for storing items on the legs.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", @@ -167,5 +175,103 @@ "power_draw": 7123, "revert_to": "modular_exoskeleton_off", "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exoskeleton_off" } + }, + { + "id": "exoskeleton_helmet", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton helmet" }, + "description": "This is a helmet offering hardpoints for specialized equipment and protection.", + "weight": "2500 g", + "volume": "5 L", + "material": [ "steel", "plastic" ], + "symbol": "n", + "looks_like": "power_armor_helmet_basic", + "color": "dark_gray", + "power_armor": true, + "material_thickness": 8, + "environmental_protection": 16, + "armor": [ { "encumbrance": 20, "coverage": 100, "covers": [ "head", "eyes", "mouth" ] } ], + "flags": [ "WATCH", "WATERPROOF", "STURDY", "THERMOMETER", "SUN_GLASSES", "SWIM_GOGGLES" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "description": "This is a mounting point for helmet plating.", + "ablative": true, + "item_restriction": [ "exo_helmet_steel", "exo_helmet_plastic", "exo_helmet_milcomp" ] + }, + { + "pocket_type": "CONTAINER", + "description": "This is a series of mounts for helmet equipment.", + "rigid": true, + "max_contains_volume": "2 L", + "max_contains_weight": "5 kg", + "item_restriction": [ + "exo_flashlight_off", + "exo_flashlight_low", + "exo_flashlight_high", + "exo_hearing_on", + "exo_hearing_off", + "exo_optics_off", + "exo_optics_on", + "exoskeleton_helmet_filter" + ], + "moves": 60 + } + ] + }, + { + "id": "exoskeleton_boots", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton boots" }, + "description": "This is a pair of exoskeleton boots. Has mounting points for protective plate.", + "weight": "2000 g", + "volume": "3250 ml", + "material": [ "steel", "plastic" ], + "symbol": "b", + "looks_like": "boots_plate", + "color": "dark_gray", + "power_armor": true, + "material_thickness": 8, + "environmental_protection": 16, + "armor": [ { "encumbrance": 5, "coverage": 100, "covers": [ "foot_l", "foot_r" ] } ], + "flags": [ "WATERPROOF", "STURDY" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "description": "This is a mounting point for boot plating.", + "ablative": true, + "item_restriction": [ "exo_boot_steel", "exo_boot_plastic", "exo_boot_milcomp" ], + "moves": 60 + } + ] + }, + { + "id": "exoskeleton_gloves", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton gloves" }, + "description": "This is a pair of exoskeleton gloves. Has mounting points for protective plate.", + "weight": "1000 g", + "volume": "1500 ml", + "material": [ "steel", "plastic" ], + "symbol": "g", + "looks_like": "gloves_plate", + "color": "dark_gray", + "power_armor": true, + "material_thickness": 8, + "environmental_protection": 16, + "armor": [ { "encumbrance": 5, "coverage": 100, "covers": [ "foot_l", "foot_r" ] } ], + "flags": [ "WATERPROOF", "STURDY" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "description": "This is a mounting point for glove plating.", + "ablative": true, + "item_restriction": [ "exo_glove_steel", "exo_glove_plastic", "exo_glove_milcomp" ], + "moves": 60 + } + ] } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index e852faefff73b..8c8b8e7caf505 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -18,7 +18,7 @@ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 40000 } }, { "pocket_type": "CONTAINER", - "//": "This is a mounting point for armor protecting the PSU.", + "description": "This is a mounting point for armor protecting the PSU.", "rigid": true, "ablative": true, "max_contains_volume": "10 L", @@ -46,14 +46,14 @@ "pocket_data": [ { "pocket_type": "MAGAZINE", - "//": "This is a tank for gasoline. Holds up to 10 liters.", + "description": "This is a tank for gasoline. Holds up to 10 liters.", "rigid": true, "watertight": true, "ammo_restriction": { "gasoline": 10000 } }, { "pocket_type": "CONTAINER", - "//": "This is a mounting point for armor protecting the PSU.", + "description": "This is a mounting point for armor protecting the PSU.", "ablative": true, "rigid": true, "max_contains_volume": "10 L", @@ -68,7 +68,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton large APU" }, - "description": "This is a large rechargable auxiliary power unit that attaches to a hardpoint.", + "description": "This is a large rechargable auxiliary power unit that attaches to an exoskeleton hardpoint.", "weight": "5 kg", "volume": "5 L", "material": [ "plastic", "steel" ], @@ -84,7 +84,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton small APU" }, - "description": "This is a small rechargable auxiliary power unit that attaches to a hardpoint.", + "description": "This is a small rechargable auxiliary power unit that attaches to an exoskeleton hardpoint.", "weight": "2 kg", "volume": "1 L", "material": [ "plastic", "steel" ], @@ -115,10 +115,10 @@ "use_action": { "target": "exo_large_carry_on", "msg": "The %s engages.", - "menu_text": "Turn on module", + "menu_text": "Turn on module", "active": true, - "need_charges": 5, - "need_charges_msg": "There is not enough charge to activate the module.", + "need_charges": 5, + "need_charges_msg": "There is not enough charge to activate the module.", "type": "transform" } }, @@ -137,7 +137,8 @@ "ammo": [ "battery" ], "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], "relic_data": { - "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 30000 } ] } ]}, + "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 30000 } ] } ] + }, "power_draw": 1500, "revert_to": "exo_large_carry_off", "use_action": { @@ -153,7 +154,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton small load support module (off)" }, - "description": "This module increases the exoskeleton's weight bearing at the cost of increased power cosumption.", + "description": "This module increases the exoskeleton's weight bearing at the cost of increased power cosumption.", "weight": "2 kg", "volume": "1 L", "material": [ "plastic", "steel" ], @@ -168,10 +169,10 @@ "use_action": { "target": "exo_small_carry_on", "msg": "The %s engages.", - "menu_text": "Turn on module", + "menu_text": "Turn on module", "active": true, - "need_charges": 5, - "need_charges_msg": "There is not enough charge to activate the module.", + "need_charges": 5, + "need_charges_msg": "There is not enough charge to activate the module.", "type": "transform" } }, @@ -201,5 +202,205 @@ "menu_text": "Turn off module", "type": "transform" } - } + }, + { + "id": "exo_flashlight_off", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "mounted lamp (off)", "str_pl": "mounted lamps (off)" }, + "description": "This is a light that can be secured to an exoskeleton hardpoint. It has two levels of brightness.", + "weight": "500 g", + "volume": "500 ml", + "material": [ "steel", "plastic" ], + "symbol": "o", + "color": "white", + "charges_per_use": 1, + "ammo": [ "battery" ], + "flags": [ "USE_UPS", "CANT_WEAR" ], + "use_action": { + "type": "transform", + "msg": "You turn the lamp on low.", + "target": "exo_flashlight_low", + "active": true, + "need_charges": 1, + "need_charges_msg": "There is not enough charge to activate the module." + } + }, + { + "id": "exo_flashlight_low", + "copy-from": "exo_flashlight_off", + "type": "TOOL", + "name": { "str": "mounted lamp (low)", "str_pl": "mounted lamps (low)" }, + "power_draw": 1000, + "revert_to": "exo_flashlight_off", + "use_action": { + "ammo_scale": 0, + "menu_text": "Turn to high", + "type": "transform", + "msg": "You turn the heavy duty flashlight off.", + "target": "exo_flashlight_high" + }, + "flags": [ "LIGHT_250", "USE_UPS", "CANT_WEAR" ] + }, + { + "id": "exo_flashlight_high", + "copy-from": "exo_flashlight_off", + "type": "TOOL", + "name": { "str": "mounted lamp (high)", "str_pl": "mounted lamps (high)" }, + "power_draw": 2000, + "revert_to": "exo_flashlight_off", + "use_action": { + "ammo_scale": 0, + "menu_text": "Turn off", + "type": "transform", + "msg": "You turn the heavy duty flashlight off.", + "target": "exo_flashlight_off" + }, + "flags": [ "LIGHT_500", "USE_UPS", "CANT_WEAR" ] + }, + { + "id": "exo_hearing_off", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "enhanced audio sensor (off)", "str_pl": "enhanced audio sensors (off)" }, + "description": "This is an audio detection array exoskeleton module. While active, it also protects your hearing from loud noises.", + "weight": "500 g", + "volume": "500 ml", + "material": [ "steel", "plastic" ], + "symbol": "o", + "color": "white", + "charges_per_use": 1, + "ammo": [ "battery" ], + "flags": [ "USE_UPS", "CANT_WEAR" ], + "use_action": { + "type": "transform", + "msg": "You activate the helmet's audio enhancers.", + "target": "exo_hearing_on", + "active": true, + "need_charges": 1, + "need_charges_msg": "There is not enough charge to activate the module." + } + }, + { + "id": "exo_hearing_on", + "copy-from": "exo_hearing_off", + "type": "TOOL", + "name": { "str": "enhanced audio sensor (on)", "str_pl": "enhanced audio sensors (on)" }, + "power_draw": 500, + "revert_to": "exo_hearing_off", + "use_action": { + "ammo_scale": 0, + "menu_text": "Turn off", + "type": "transform", + "msg": "You turn off the helmet's audio enhancers.", + "target": "exo_hearing_off" + }, + "flags": [ "PARTIAL_DEAF", "USE_UPS", "CANT_WEAR" ] + }, + { + "id": "exo_recoil_off", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "recoil controller (off)", "str_pl": "recoil controller (off)" }, + "description": "This module takes partial control of the exoskeleton while firing, damping recoil. Activate before firing.", + "weight": "500 g", + "volume": "500 ml", + "material": [ "steel", "plastic" ], + "symbol": "o", + "color": "white", + "charges_per_use": 1, + "ammo": [ "battery" ], + "flags": [ "USE_UPS", "CANT_WEAR" ], + "use_action": { + "type": "transform", + "msg": "You activate the helmet's audio enhancers.", + "target": "exo_recoil_on", + "active": true, + "need_charges": 1, + "need_charges_msg": "There is not enough charge to activate the module." + }, + "relic_data": { + "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "WEAPON_DISPERSION", "add": -50 } ] } ] + } + }, + { + "id": "exo_recoil_on", + "copy-from": "exo_recoil_off", + "type": "TOOL", + "name": { "str": "recoil controller (on)", "str_pl": "recoil controllers (on)" }, + "power_draw": 2000, + "revert_to": "exo_recoil_off", + "use_action": { + "ammo_scale": 0, + "menu_text": "Turn off", + "type": "transform", + "msg": "You turn off the recoil controller.", + "target": "exo_recoil_off" + }, + "flags": [ "USE_UPS", "CANT_WEAR" ], + "relic_data": { + "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "WEAPON_DISPERSION", "add": -50 } ] } ] + } + }, + { + "id": "exo_optics_off", + "type": "TOOL_ARMOR", + "category": "armor", + "symbol": "8", + "color": "light_gray", + "name": { "str": "exoskeleton enhanced optics (off)", "str_pl": "exoskeleton enhanced optics (off)" }, + "description": "A set of enhanced optics for an exoskeleton. Provides telescopic vision as well as protection from glare and bright flashes of light. Activate to enable infrared vision.", + "price": 30000, + "price_postapoc": 500, + "material": [ "plastic", "glass" ], + "flags": [ "ZOOM", "SUN_GLASSES", "FLASH_PROTECTION" ], + "weight": "500 g", + "volume": "500 ml", + "bashing": 4, + "to_hit": -1, + "use_action": { + "type": "transform", + "msg": "You activate the helmet's optical enhancement.", + "target": "exo_hearing_on", + "active": true, + "need_charges": 1, + "need_charges_msg": "There is not enough charge to activate the module." + } + }, + { + "id": "exo_optics_on", + "copy-from": "exo_optics_off", + "type": "TOOL", + "name": { "str": "exoskeleton enhanced optics (on)", "str_pl": "exoskeleton enhanced optics (on)" }, + "power_draw": 500, + "revert_to": "exo_optics_off", + "use_action": { + "ammo_scale": 0, + "menu_text": "Turn off", + "type": "transform", + "msg": "You turn off helmet's optical enhancement.", + "target": "exo_optics_off" + }, + "flags": [ "USE_UPS", "CANT_WEAR", "IR_EFFECT" ] + }, + { + "id": "exoskeleton_helmet_filter", + "type": "TOOL_ARMOR", + "name": { "str": "exoskeleton filter module" }, + "category": "clothing", + "description": "A gas filtration module for an exoskeleton helmet. Provides excellent protection from smoke, teargas, and other contaminants. It must be prepared before use.", + "flags": [ "SLEEP_IGNORE" ], + "weight": "1000 g", + "volume": "1 L", + "material": [ "plastic" ], + "symbol": "[", + "color": "dark_gray", + "warmth": 20, + "material_thickness": 2, + "environmental_protection": 1, + "environmental_protection_with_filter": 16, + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "gasfilter_m": 100 } } ], + "ammo": "gasfilter_m", + "use_action": [ "GASMASK" ] + } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 9ee4dcf1228cd..26d959def83e7 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -366,5 +366,236 @@ "material_thickness": 8, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] + }, + { + "id": "exo_helmet_plastic", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton helmet plastic plate" }, + "description": "Designed to attach to an exoskeleton's helmet, this is a plate of plastic.", + "weight": "1287 g", + "volume": "5 L", + "material": [ "plastic" ], + "symbol": "[", + "looks_like": "power_armor_helmet_basic", + "color": "light_gray", + "warmth": 20, + "material_thickness": 3, + "non_functional": "destroyed_exo_helmet_plastic_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] + }, + { + "id": "destroyed_exo_helmet_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_helmet_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_helmet_plastic", + "material": [ "plastic" ], + "material_thickness": 3, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] + }, + { + "id": "exo_helmet_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton helmet steel plate" }, + "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of steel.", + "weight": "12880 g", + "volume": "5 L", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "power_armor_helmet_basic", + "color": "light_gray", + "warmth": 20, + "material_thickness": 6, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] + }, + { + "id": "exo_helmet_milcomp", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton helmet military composite plate" }, + "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of military composite.", + "weight": "16500 g", + "volume": "5 L", + "material": [ "hardsteel", "ceramic" ], + "symbol": "[", + "looks_like": "power_armor_helmet_basic", + "color": "light_gray", + "warmth": 20, + "material_thickness": 8, + "non_functional": "destroyed_exo_helmet_milcomp_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] + }, + { + "id": "destroyed_exo_helmet_milcomp_plate", + "type": "ARMOR", + "copy-from": "exo_helmet_milcomp", + "name": { "str": "shattered military composite helmet plate" }, + "description": "The remains of a military composite helmet plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_helmet_milcomp", + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] + }, + { + "id": "exo_boot_plastic", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton boot plastic plate" }, + "description": "Designed to attach to an exoskeleton's boot, this is a plate of plastic.", + "weight": "3003 g", + "volume": "3250 ml", + "material": [ "plastic" ], + "symbol": "[", + "looks_like": "boots_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 3, + "non_functional": "destroyed_exo_boot_plastic_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] + }, + { + "id": "destroyed_exo_boot_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_boot_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_boot_plastic", + "material": [ "plastic" ], + "material_thickness": 3, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] + }, + { + "id": "exo_boot_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton boot steel plate" }, + "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of steel.", + "weight": "30053 g", + "volume": "3250 ml", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "boots_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 6, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] + }, + { + "id": "exo_boot_milcomp", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton boot military composite plate" }, + "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of military composite.", + "weight": "38500 g", + "volume": "3250 ml", + "material": [ "hardsteel", "ceramic" ], + "symbol": "[", + "looks_like": "boots_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 8, + "non_functional": "destroyed_exo_boot_milcomp_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] + }, + { + "id": "destroyed_exo_boot_milcomp_plate", + "type": "ARMOR", + "copy-from": "exo_boot_milcomp", + "name": { "str": "shattered military composite boot plate" }, + "description": "The remains of a military composite boot plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_boot_milcomp", + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] + }, + { + "id": "exo_glove_plastic", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton glove plastic plate" }, + "description": "Designed to attach to an exoskeleton's glove, this is a plate of plastic.", + "weight": "429 g", + "volume": "1 ml", + "material": [ "plastic" ], + "symbol": "[", + "looks_like": "gloves_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 3, + "non_functional": "destroyed_exo_glove_plastic_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] + }, + { + "id": "destroyed_exo_glove_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_glove_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_glove_plastic", + "material": [ "plastic" ], + "material_thickness": 3, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] + }, + { + "id": "exo_glove_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton glove steel plate" }, + "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of steel.", + "weight": "4293 g", + "volume": "1 ml", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "gloves_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 6, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] + }, + { + "id": "exo_glove_milcomp", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton glove military composite plate" }, + "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of military composite.", + "weight": "5500 g", + "volume": "1 ml", + "material": [ "hardsteel", "ceramic" ], + "symbol": "[", + "looks_like": "gloves_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 8, + "non_functional": "destroyed_exo_glove_milcomp_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] + }, + { + "id": "destroyed_exo_glove_milcomp_plate", + "type": "ARMOR", + "copy-from": "exo_glove_milcomp", + "name": { "str": "shattered military composite glove plate" }, + "description": "The remains of a military composite glove plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_glove_milcomp", + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 15d1ecb83d6de..ac3e451a832f8 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -1,5 +1,5 @@ [ - { + { "id": "exo_rifle_storage", "type": "ARMOR", "name": { "str": "large storage pouch" }, @@ -32,7 +32,7 @@ "material_thickness": 2, "armor": [ { "encumbrance": [ 2, 6 ], "coverage": 20, "covers": [ "torso" ] } ] }, - { + { "id": "exo_melee_storage", "type": "ARMOR", "name": { "str": "large storage pouch" }, @@ -58,9 +58,9 @@ ], "use_action": { "type": "holster", "holster_prompt": "Sheath sword", "holster_msg": "You sheath your %s" }, "material_thickness": 2, - "armor": [ { "encumbrance": [ 2, 6 ], "coverage": 20, "covers": [ "torso" ]} ] + "armor": [ { "encumbrance": [ 2, 6 ], "coverage": 20, "covers": [ "torso" ] } ] }, - { + { "id": "exo_large_storage", "repairs_like": "backpack_tactical_large", "type": "ARMOR", @@ -72,7 +72,6 @@ "symbol": "[", "looks_like": "backpack", "color": "green", - "pocket_data": [ { "pocket_type": "CONTAINER", @@ -107,7 +106,7 @@ "moves": 120 }, { - "//": "carabiner pocket", + "description": "carabiner pocket", "pocket_type": "CONTAINER", "holster": true, "max_contains_volume": "5 L", @@ -120,7 +119,7 @@ "activity_noise": { "volume": 8, "chance": 10 } }, { - "//": "carabiner pocket", + "description": "carabiner pocket", "pocket_type": "CONTAINER", "holster": true, "max_contains_volume": "5 L", @@ -133,7 +132,7 @@ "activity_noise": { "volume": 8, "chance": 10 } }, { - "//": "carabiner pocket", + "description": "carabiner pocket", "pocket_type": "CONTAINER", "holster": true, "max_contains_volume": "5 L", @@ -148,7 +147,7 @@ ], "flags": [ "BELTED", "WATERPROOF", "ONLY_ONE", "OVERSIZE" ] }, - { + { "id": "exo_medium_storage", "repairs_like": "fanny", "type": "ARMOR", @@ -171,7 +170,7 @@ } ] }, - { + { "id": "exo_small_storage", "repairs_like": "fanny", "type": "ARMOR", @@ -194,7 +193,7 @@ } ] }, - { + { "id": "exo_large_ammo_pouch", "type": "ARMOR", "name": { "str": "exoskeleton large ammo pouches", "str_pl": "exoskeleton large ammo pouches" }, @@ -206,7 +205,7 @@ "material": [ "nylon" ], "symbol": "[", "color": "dark_gray", - "pocket_data": [ + "pocket_data": [ { "magazine_well": "350 ml", "pocket_type": "CONTAINER", @@ -275,7 +274,7 @@ } ] }, - { + { "id": "exo_small_ammo_pouch", "type": "ARMOR", "name": { "str": "exoskeleton small ammo pouches", "str_pl": "exoskeleton small ammo pouches" }, @@ -295,7 +294,7 @@ "max_item_length": "30 cm", "magazine_well": "500 ml", "moves": 200, - "flag_restriction": [ "MAG_COMPACT"] + "flag_restriction": [ "MAG_COMPACT" ] }, { "pocket_type": "CONTAINER", @@ -304,7 +303,7 @@ "max_item_length": "30 cm", "magazine_well": "500 ml", "moves": 200, - "flag_restriction": [ "MAG_COMPACT"] + "flag_restriction": [ "MAG_COMPACT" ] } ], "material_thickness": 0.2, @@ -318,4 +317,4 @@ } ] } - ] \ No newline at end of file +] From 4f3a0af47fdea2a5c440cbeb33d6e8d7720aefa9 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 10 Dec 2021 16:19:36 -0800 Subject: [PATCH 010/189] Flags Adds a collection of flags for exoskeleton equipment. --- data/font/terminus.fon | Bin 0 -> 1351680 bytes data/json/flags.json | 71 +++ .../modular_exos/modular_exoskeleton.json | 83 +--- .../modular_exoskeleton_modules.json | 50 +- .../modular_exoskeleton_plating.json | 438 +++++++++--------- .../modular_exoskeleton_storage.json | 8 +- src/flag.cpp | 14 + 7 files changed, 355 insertions(+), 309 deletions(-) create mode 100644 data/font/terminus.fon diff --git a/data/font/terminus.fon b/data/font/terminus.fon new file mode 100644 index 0000000000000000000000000000000000000000..6258a062b84b8c5dcb2432327fa70a19c4ecc84b GIT binary patch literal 1351680 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 z zefxsn*@cB=Ufl0wvQj`4biyuP`mTi};OgDyOqb7I;QS81pipqJs1QIEAZDMc(w)BN zA`NiCmOuJ<4$^OhPmy!iB|Uw0@)eYT$ZA9yn}d^1Dk^Y1nk1&VQljCan7sN_La;@^ksi)N98&CS;iW>5I_I>M_qd50jALlZw_c3w% z%9pr(+m`eZ+^4MFUP_%|_s+u15B+@w*jLB1({H}7@aFppct7FI_Z8lJU!nbd1wDz= zYn(?D^iX%6LTb-!!){T&|!p9n1^y?SiBJxlNmX5v+f4)23{_)eVBjhFL$dZNimm zcwFJ%=XV5qLt$O-E5N2tw)e8uI6w0J&Ue1k<9&rK1DF(`9WA(h@p!TMeT9WZL0eqd zv}t+MrdVbnsRiO?OruTq?F4ZXOD}=ykU}!;ADB&rpyobG^xeqeqDK0{!W*l|%3Z!ylsvw$P<>xv5MNjrNBT`D96AAqnj|^I-CPkd z#R?NT4NihCqaipvA?~R1HU!EnxsbYd-{Rt){rli~&Ox-nX;zODcjn~bWcJSl8`Ujgzel6YByzOaDrv&L;ZQ!(ik^l#Ed z`ErD8>S7YKu?xlJ5qmjaT*jbeL@o@#VII8;3Vau)2aHi%H5mdJF;qbI1q0%iK79W{ zH8Ottj{W;AHHiS&g{AU6{Tm)-s`HC(ZiI% zrWtXYVCg2yYKko0K8rbW_V&drvp}o_&`*w)#(bLO6|>41ssxDLWicb7_fzzUK23Ls z2pcptBd$2Pt#0u#ZLW5(|C1!3riKgiw*OyAUF!d zWf6>>Y#d4pWWER>T#_78ZG8(>So^Sv*s&vRx&$}l$w**%;=}_FJ~$p(c1RVkbg5*y zZQG6=`#7rv=SxoE(P(k;_S`Er*tN|jHcqA@k)GZbf@EV)1o8?G#^N8}jaS709vb7a#BOC^fUm42RNzTz6D z`ZhL_o@shPPc96o3-`!wy|B{joXMASt1QaK06s8z1*oIld$VKY_5_w)^L-uCTJP(j zBwh|le>KmrjXCr-edl1x{F}e8fN|HMKZ|tx_TP2*@Ll`&Em~>x3yZ{n|IR}7%*K$t zzpVGuxcXGN5na*0P$e zacPr46Glo~l249p6wIyJdprq8Lrd76R@2%fD|nO^1P^y3rz=!IrKO6VzcCu&Ki|t4 zLScb$KV$-4wsbAVu9lj7Hn00WRwXbLIpA{QguJ_fnu1A@7*#?%u-IQoYmHXt2Sr3% zi~{Ax3T)bBsqhOI4#9*=5|nX_{>z7+{SS_B2tp!} z^?LY{Tr?f)?F?^cJKTEs{$%0eelY8-4k7Tiaf;3+>aA476b+%GmcoQ}>8x_-^E*Q- zD{5FuLa4}M7HP&UEnEHd^zj>azw55M?#k&gdzaMyYU+CUl2%k#l(@<%kFSUCj{|OA z`;Hh^DlD!Y2rg@JRD}IYXkyBKU8FT$rYCSUh@sR!Qb2acah!#vr-lof91iCeB>h!{z_%LLk)&Q zmCdb3cSy5|hS+J3J<5Tp#?c9l$xU4VY0)ve;##mPSc8Sdk3RU|NB`AB4^C}cpls$_ zdcJd*(5C%Z>G3(QF7r}rV_+LR@a0%v@U(5=x!X5v-msxpH5N_YZM^E~+VMC+dYU22 zm#&bDrL5z3y+9&TF!E*}^;JFVafSz6t*dFKu}pPkNK%2jz+N!dL(ZbQqQu5G_$XDG zA`ZTG-^9B3d%{$UNWXpQBirSp0&l(R1okKCW<(h(Ku8X@FGSekktW4 zH}1JLs{`!h=FYpO!dGsM<2r^>x%&+}jFG0M#8SYsW~{MlKII!wVh zSg4|)h3?1q-ns)eWEJj)9A8Q-mJvg&rJicgw|tYX`j)CP`zR5o>BC?>I=P-R-Arb& zzE(rj7j?7P=%46JSG#Jc#l(IqtXTRnvW_vNzfn=R;*4E$U)Y&$j;jlcQJSCWWU6n* zIN{2#GnISk!m{bdh|K;r?`$%Z(gK+uhJ3H{RQ+9Ajuh~-bYfFzV=+&pG-zV)GhIET zz*T*bM?RDOqqAMFY(I0V0;^V;`W{UK#oor>`{CC$KM%$7a`xW;1yj_iiZnv zhiJ-CHYccN$Sc$j9wNk@c78_XARTdg&8a}t=CK0#{GeKC9LZH(-?kmS4?hgu=QZ9q z(694F@$T^6aFMD_vV_49HzGDZ{rYBHE9kxD8@}ndh!XXzP0pE$SZ?4S<9+*Ljw{9D zke5ZjN1_DOMV1oi)o+2M@0l*Yg`mHn;0SM&mnSh)#HUgQa8vhOqyZjO$p7ZU)CxnS z;BJM2<+Yc5*VD&ou4LKfRJy!c3Vq|-=d9RpWy9{y9gU%9jc+BeY1tYpKV3^Td=0SH z+x+Wzx}Uj?y$}i08ed`Rix=E?hRIT<%1u^g5m;nw2RAbZ=X?X(QOxyxN}XZt47duIeap7N5x{A{MZgun z8sGq4>v$M&0k8tN2H3r2+u#AfIlyJWRlw|4&;w2bE&{Fq)&K`?0X^UXU;paE z0$>Gj4X}GZ=mF;dmjPD+v+o2w;56VO;0j<3aNsV`11VSRGTzzX0RVE4~~9&iqD8E_Ra`}3d& zoCaJ3Tmh^B4lIElZ~?FaxCYpL5cGg^fXjfZfZ2OM4>%3D2)F`R0~|O6dcXz13g8-G z_b-6{7w~-rnGTli4KMNI>^7KW=@Xeac)>>&%CCK`#8(!+T9)Iq%Pq%COV2+KGcAO1 znedly-1zpl@r3%IkSojV3P0$gZKZIJdcl866QBYHVBYHa0{Ob8@ls& z(SW=w_*kY$GAT3s`30bD{v?X{B&;YcBv!JoU=b6fC6dj;o)3Z3HnhVR_O#4jX84E< z1}Fr@NHD)}AxbIIPF_~Y2l5F{+9{Vaa48lk=XY)2zH2@Fzx{WA_w9cC=f%uI{LDfu zax(c0w!9E2oohod7`U{sdGj&^6!D8v6o{ykn23P?D1-YdgXmj^7>KB!Nk_|&3Z_UW zh)c<^sQjf<_b$x;zw-Hp zXWKpSPaWk7fco5f3WC|Znbk`2q56!aHDfQ%0ZnkJ8!#N(Yg-uVk5{7MDRIZ72-n_8 z5KZumPm6IP@Fa#5lCd{BK7vn|;ufOnP9_%PXw>#fbC+X!Y_Bx80bd(X$9E|VhITf{ z(-3ocA{F0pK<%N|GlpV*!)FwbwG}4a@zI5)oee*;yOtW0fl1moHfAC)@ezb?*`@q< z-BQVbMy#&Zs*f26^GWlY5=Bv#m^oHGBYjr_^AF}ZpN^SrQkK-8AH*g3=hn-cd5R`C zWT~PxWQhJR3z=La3MnQ+CRa}$4W-lT%`lvHrpMCF)sX3C-igWOA%ykj3*wSVOiY0 zRa;SH;Fq3EsOn~sn4Bsv%cNlPqHC#&-}9dchO&>P?i5%?$-(M59 zw&ak>o$~jVFErm8T5Yf5Tg{XFL(O$hU}6nLg?jkv`j^ ziTJe-vZ5!9$%O%N;lmQ9K$aZ*qSDgPU&O}f^$iyJ)Uahg|L0#4lN4Y2bHASlKD&%= z;_DRTZ+o&>pG^L7K8*UNoW`lmp+2Q#xOy3XNq722{7_gLHb_W&LsC@u3lm%%|A22^ ztp7wqg?b@|h#>}6nvH9~C}Khgg!-Qp{CfQ-lJ4pg_*yd}yO6HtFfLR&-2X zbQ2bM#dPwu%2d;t7sw)hm;MMoFRm?Z{j2)y5JL%`|EWVx{$=D&{!v24zw&ht?*8GF zf5Nu;Ru#u)ITjsoJekx;7V4xBp_WlUW84C+mYLP`EZsGm>A0g`!j>%CP%@pJD7zqI z4xeds|M@Fl|NBXW4{6}AtS&|hatG_p^SgHWuQ?6Ky(oZI6lIy|gWzLtE6(u=_%THT zqLB?t|+)?Q~ySUYG7$ezTJf{b8TpO7L+ZBRM|%@HcsOYu`G=vtq*ve z@#)pDw7;5&_ylkh-?tD>LtJGXxcQA4R8GnjS4PD#W|NzrpP8x3420AXLKDYWoxk$z zfzNU$yoj3!on3@KD^=&ORUemz3S)8j7FbX=crkr~P#I%+Ag@2ArEa2?K^X{zHZUp4 zXKbkANBKDYXC2Z1hrT&Onge3iMfsFchs85Ku6hRbHmaN8D37QcwGGKLr+2XPhsw`4zl1HMhVRX(Lo z(pmC=e6)*`?gu`hh%zIN)OzP)dRst0sQw7_tk7^(Lurm5!xDws6mo;sygLQBzs z((|i^*>CBhyx8}A# zzxw?1&)1S~YQEC5967P8Gc59?pKN{3+cGVNc_I5v%J2&W8WoNP_p!Rr1vwc>+*?f~ zcO27k!$Y?$SNE|G5Ja4Oe}Yph<$<53BMJgowK!@p_otPNE2rLXa#N50NPs<6DPsma z@E;vVu%N|2%xVg(>-RMb-X|)vI$UslL`G#Kuyov>#0n|Ut3+6@4iG~XG zLJat!jsbtH*|>)EN$@qD^N)_(a9xP_MGP^J$K+!oItVf>B9=A?m_z+#Z-E#X_JlFSPa%gPd3;ay%I zoU8p-%ysnv)kM;5K2P`X8zsHKHCMJ$(s{A=h7O47#($!%j_HbL-L)Lk1)ozhU6M~_ zz8XjTNetxybnN^*4iC9(`1=vXLMzG=WhClQ6Z0aofKg~dh#?|1)(tT#n(9Bvs-5tW zOlJ*NcDPC^DiZvd9_0CPNuRDi>puTq?|FVM&vC4$227qQ{h#_gKS+E*%Xjh*6;f}a z9BUf`1`%ys#&qI4 z9g67%LSgnKH#*59esw-)Mj^R&DJ4K$ZL>14^Y8+>sQ4hHj{W>h!u7Ow$nQSrJ_7-1 z30bi6T)s*vqbwxJE=a>{u0J?Iy)AiwbRmif2rS@~BI<;jKTG6A`BeBf$)7x%t05qLppUL#u<>l4UdPYeg^pqRw-BZoR@!- zJ`gd=KkK{f3?lGTZvw8tW$BUs8K=)3{3E{8A2LLJ=)sjJrj!sb_JIx?kCw4&4XD;X zt^pejRs2bel`+IXXcKxNEUO_mrdRkMvPoK|=rkTnBdFkq?(O}XuCdo8An`Z$)%k~t zDKsB{f7Y&8A16!BZ%yNc^ILLd3^vV&%p`tOeK?2a{j01B(pZI@e25?UIQbJlrdRNr z+DrU05g?|{%{|C<`-h0jz{Jqk<-2#5NH_CCe{TujS$Xrlr8nPO!h0)tPwCC~mhj%r zo9`{Py|-jG`{mw3C;0zqdq_yY4sUSOfHnt4`wocX0jQTiSx3 zEoV0A3+ehsx-y@PKZE`aZ!EhqBBokUiZyYVWlF@J3^k7*XW2f9Src$iv6w7|MAD1H zMa-anMjcJb=&ygzkF@-M{7B2c-?S;>tF@lN1WGYlbg5YV^*b$1uPq_3%y2cr_m*m} zExGrW{L?=CP{|2sj($7F*9R35cB4YM>J>J0g6r|s7Leoyo)Z5k8^{UHikOG^=WeI^ z(5jHrp@JAxpMqCLDvq!2)xY3^UoOQ(n*Hb` zgqVRaX*IvM#4an#$;6jn?=8*YBU3*8hw;{ue7PWWfrNbl4PjB`hV=F%QpiVN^qL`- z64PtQX#Mbusat{GDFU*1&0l|^APoy7F$|*#aIIf}p`nkW070M?(HNgzJ|h+lXzp{kolV{)pzganfpT}xH`o`0zr!ai0DX}Z3L71+tA zXu$_2a>?#I6zbutlOt4O3BQj% ztNg1rjJ*uQ%9lzJ@iz>Ck|=UvK%9MGCRo9<Kh8Db8RjV4c+VOW&DY4y)1ojh z5b@gr=_C^zoi(3H;hZC;eJf6e`hk^E%<(ex`W)&RJlDUGl7TYD@U@wb-2b5u8Cgt+ zntevpO)oK>h*lW{vvg%r(u?U``lI-`77^VH71re6FwqK;=YL|qlYbGpt6qm9On<8K z%=j0hSRv)F6KzF*1V@S~B6>2KrAiSq${5N6u9n&O%F>HO!*p~Bc4f2tf=tX{Iy5N8 zEx>fT4}IwVk6=l)lktW);FoKkhs-%zMRL-M}tm>yV z0K+g?TjbaUBo~NuobszU{3y<1#wv=%>0b6>oSyYbAICY7@sIl8#yb(#BOl`D@@GnL zCeOkW)KB~+lrmfJ+xVBUyCf9({F2;UNM=l9pv+<^G9)V1#+|P+SHxa0vtU#lRWs?Q z>uKZ`ih^qyLky6ExQhN;vLC+z-zMEEpQ6Z8G(tXVb1~^Ya}xhT5yKS&QC5J(O21n> zi&}c%B=t{aME)g0u88HP`!AGTMx-*-L=Y*`oxJ$_amNn0DJFR768W?RcIu~Gaq|wh zsb+U1F%|}gPn`H*6Q{g=6^zY1U{Z&cdskqw6*oz#^F;o>{4cumz@Tk{7sZ5F8Y?Uz z@h=&Tu1x$>h*Fw*K2Z7S&Zh9y9Zn74R3vWo5LfK_7f(P0SI0&QbhI%Y&4}r!vz zE{^F4ls;l%hfg|7reB7L`4U~XJP+Rgz&$)N+P?kn_uT)Xz%uj7#l=*_y7`lp?3d~v zCc4&)=sU!!*!c zB7$Wejj=ZTNyG?&_4e=DJNLs?x$vp)&tPV&r>~bkIp|rA41zktB2QW`{~tH}yfxi1 zNQ9q?>PGUpi};|&qAm)d-6h2Wg6#DmVlDU zUwi1mk2JIw4Q_mIsjWtnoIkrO+w@p=%X}-@)C1WQG&H%T$Ymz!$f7X5ezuxow zT%M_(vBDzHl>SeBo*y(O4BVtYWvmbbDQ5cFSDw~Ug75mJ3<=eAQ=DqLYI4EKWG?6L z>Ywp1BhB(ifAPZ%fg5v&A2ApxW6a;2qVHmQ!iY%{z$C@}Pw(?{_W>h*YsfJxVhakF z8u<4<&)0JzUb8P54I*g&U zhiu$2UWS$|elZGB*Jk279m?>->`6v+l1Kc$^Eq*~&B`EKzrZb|j$C!5jP#w?@@QA|K!0h`pQ6K?)2h@{+W^|hDa7wu**21rE|61XT@*>f?IKL>W>4>ZAv7aO(AY1o3zLHLz$ei@;V(4M%-yna%Dgtf+mKJt%gwqE_ z2O3>MmE^YmDg{|Cf@hbgZ{uHMrX{ETEm9Ig5#QBcFp80QN?3$2@b`s+EA^k4LMK$A zNozp9e=8%$oFH%y`W%r4F+E2g*awt!iry3n3L~iChwfef8jycUskJ_fC|B2w?2AJt z9pt78aeiCRcv9c-zc6&eIPz6sIJn#mh7s}*=MkbjK1x4x(q6}e~8Q(C|xD{ z2dnQb{U0zX_Q8*z`K`0R@z}5bo5gp3@I8z7EFFCR;)&mQ;y3=yBWD-?)yJRw_22yX zCl??7_5U7TV=-?VjPdt&%ft7U<_3EPOLGH!y*GYu=>@f1rr%qdgEu#L0dNhl|1EQa zhXKz5t^j5>&kc?M&H^q2UIXmjGBM={a22rQmbt+LfM)e)GAMgxd1@JoH0Dh@`6mSvn3Sf2z$_JbSya2cc*#B0P4|o=E z1u%05$_JbUTn4-b*!?z?54Zq$39tsZ=j|vTa0ze~u;ZstKHwR^3gC6Xft@HHa1rnd zV0IVE2b=@E0JsL&zZ>NPo&{V1%-o6c0cQc10j~je??L&13xJmZYk+&+f${;D09OG! z_M&{iGk_Jq>wp6bC?9YU@Csmd5#^^|<0T%!-0oDNb{0zzmTmoDL?07HA2Rs8<0lW@4@Uti% za1rndVD{%wKHwbS1;91H{+~zrfM)?$05eM{A8;0M8Soll_d%2oxBz$wum-s29+VHb z1h@*=aR}uDo&l@?UI!fb1(XlC2zUiB`->EZ_=Y=6xt1a29YG z@ETzEVU!QJ0C)+o2Ds<_C?9YMa22rQ2+9XM16TpP4mj`uln=NFcm*(f6y+bq_m*Tj zSk7P29Q#)jR#(;Pm0kUJJ%-D8W#_N{iZAZ)%S)wuC225O-MMq;tFPj+^VR2Ykxv+f zxry&F-T3mC`ASVW!6m1=e*OB+ow!`zc^DT@2lA)>@gGUH%r7f#nX$P}{Z$fyqWXCy z=FV(MUu3G%VQs-jnOIa=D5r4U0xK@_TQ+_`-q!fQ#*Opt5u<{wE(T|$$TQf(mWg!Z zMwT`dvfr-IX<=H`rz&(=v5B1zg6~{K5yGJek!KNIMUonUvSBmy^!{w9emWNuX zD=&%CxJRB_=J)K}1FH|n*fYmE?nzpTS^_UTUkA)D5g zw{6Z$1f!(fxdfQ$!3Pq|;R9TLk^~hF$b!pRFn0JI^IMjex6HpI%#|L4a}kCD)Z3>@ zSlTE{SW8n|hM!|Z7S)=%?1tbvhirud%c~@HMw>r%)o2?q@X_`Ck&};o?CGbl(qoxV z1z;vyIj3yR4nL1xJ^#G&Gr{6fF;NY)0lV9eVk&Jh(V_`YDZcD$fQY zFRoBs1>?cy@v7z*gHx|a=|vzc)&NhmGCD2tdF-|9t}f{(1Q{Bc zSR0*|m(ORRywKlyzmtw!0)1B9u-{3FhS|wn*M5hRcP`VjBuWWo<&lP|?A6zO0_C365 zVZBlwW3+7;Eh#&>D4)jV7V`^v#4SZO9yrb+jKWIs<6#~LJ>K;l?^;Xjt6M)O#?tET z^Zbe7;w7ahlg)lq|igLzV(RJO4^5(70WZ{rpie;ndV2GJR_ za75r2la!^QYWw`AFfC$IWh=BQPe1;IX_6TW?0vOQnTZq&DK6J?S4FAoy6U-Xhi^QB)3(H`9iGa> z7E?9g^s}!#g|OOxo^9#}>$;Td$_v4i*G1P=UPWIZ`@}QM@Y+WySweoWRquxE z4`Bt&+9$)njR&4(X3i;>zfTn$Q=-Z~OY%gW^ir!b=#Yb+<+_xWCW|1lG5uB+K%%ic zs*0Q!Rp`P32roYmyIJO;pT=j z*I&I(H3;rz%Tsb4w06K@JjJ&`D+ehl=Vr_MubYmeW^=D`lO)Lywd`i-wr$I`+;f%1 zr1U8%%sUQ0I#P}KW|#z&Fa}d zwtYAbj5qz>8~@wy{oe0c5t)CpZb^h%QqpHZ+`P@ueQhq59>Vl zYAzS!-Br{2{5ijXJ`8uy#=-moUD!Uq2la|Sr#6%ui;IB)%99(1re6!Cyn?$Qt3mST zanQp%sivxu&S(>bgwUmxl=Ve}j=_5*=v|^$6~oBo52PviCZD&73~cbmgsuSEC(l`- zF3C>>CU=vl#W@dJ^^MNo8|n<_AGHcRLDzL2V&zy3s_{V>c{&OW%X}SqC?YL^h{X9? z`y#vVkMp%QCc8hvPYh_rt~4e&zl`bsOL@nj#upm-#)Z7>j%HA|EPb*v;MLb!s6@=>n|Gz7H6LIL+HoGevn?M z9c5Y1n@?`)Qhx_Z*Y8nJV!)`<_{%yxWJmN+T;4t_M}6PE<>l~TLQw6TPMBjP6%xql z!Zt8^p(617cuT1oiu+Id(x{t1(=1q};;uj+csofakGpvsKNIGMXf zW%aa`tbS(d^riQF4Q~D?3z4Y(9)MYFV0vjSwm9k9aT zlYmw-e52DRgX(m0xF|DduBN2Rl+^KLd6h*MnyLs~%o^4)$po2qCKndPN0}iUbFrSH z$`no-5_vtzFm+<2i{-S)WvGwK#1@8tkYNXcdQ8gD#Cmzit^8^ni(@-%Z;%pE#Rc4I zwA6Dlk;Aq#p^5eKNY~VVETE8I7xm^8GH&otB3>Ez`OQMab{#nrF!1Yx!aay({E%W5u9ifSou7v4b0)+Dzmr6sU_ z1OJ0Bf?*AGh<>2stj7i_UzdUxor%bqIa_=uM zO&r}aUeo*ue1Cak$NS5JGPSSz{<5c&y9K^^2PZGTI=aANUBA~tlICvu{pD?2w{F8- zT$3wG80aWmjui&~`ggzgz3;ZZFa4)~T6$lWy|C0}Ql{MNC~K!& z7|7pW=C5@p58XMx<>@W+cOE*K)sq}}PF-9_6PIegx&5f$U)JhbeVsf9u6k16)O2qD zqLa;_YXwSOO4e(x_o_uO-?>*sfI z)39rP?#_c4o#XMr1uG1G!73JL%yT^RTzxLiAyT(kEk`jm_|NhFGRDsqtVNikmTL8r zfp=YIj9Q+wQr57Rrn-5hMl1>B(EGhhWwE{?TPc?1RgyZRH}U>5kMj7N*r~^#;)&;y z(-+KS{C)m;Y82hLOoemaW$mJKbO|ejCMiYt6Np1`I34;aP0C|2MZkA@4LV5-+rWA~ zNyqwD>Iot%DJzT2eA|{*Nhw9hC2T>g_pIE@8hEcQ9U_6J_5>Cj`uIdViT! z<5F7`%E4Vjc}v01>KWzPAQ!`r1jEEMR#1hKwNJ3v>3JX#cZD*#{^LkHkoyq#@+Ql1 zsv;W_*MC|K?LOwv+)N)mxR5pqxHdL}zo^={#k`9AU z9A7KV^ab~E*LBI+xfAa%58V6|`!8ym6eX9~f2&j+x|C<=<~NSNE`7lqLFel!$+_$g1yiFITw<(WK} z@B;H0iKM*Pf5IS_3mTL;-+!^+Vj%G}I*)I;mGVydeU{N#p%Ww+T`Xp~-Va8n<>mbl z$_w2+&ib8nM$hY+waa`j9}+N~oqJR7FP}X5*yFMl zNmX)+f`?lFncrX5YBlaDR@rbrmfU!#yuJ*pb*X)23TntD=@&0m^r!SAU0hu%8 znJu?rPiC>IpKD|_w;rE1Rmj0YoveS#0#NgTk!U#>q(jgrt{+69;~+$=T1gv3(v^vw zgxsL_<3aL37qGMSuZs>vq&iACa4=8HliD_wM{1(_`$l=O#=pM2*_eg(uT1e;sMfw= zLRn=6gIk3k27OJQ<3u7MCr`irVJ^b^%WhtB`dQ(CiLH|27r_DQvQvps7d-hcHA&qvtpx}plex2JYd0s!qmAn>t3RbQE z9Id1C^R;03@-&0%QXW-w_{y*$@EKfeeE&>>q^z?*!38RtZmy0}HqkM~gC(oUKR;p9E8 z(AkPawXW)Xt$l91XYE783zc)Gt$+-Bw;Bgh+HfNu=;Ffr%XW(;l%=O<*d@3bA_S|* z&G9|3_(5m4)0?Z$XRsJoj&eDA>SWjZ%QeC0Wy^__$+RjL%HR6X-Ny~)*=OS$0cwbA657033+ukx`^%&V?$9B7e_0i4(#?Un6u^(*{bj46 z_<60`L_yS{(Mh0%uEM}iozfLO`{D58Pdt&{Uw-0=|MKNjUg-~d&b<2St7lT)&6XE9 z$f%769EmOFx_IgaO-&g$Ti$=&bZ@@D3=JuG3sEFh$wO`&X#up)9-tF!FR18dCIS(Cee94yY)p)un!QsNQxr%>-*cW&Nx=e?&!P`d0P zyX~PEOuj77#vvl{ywyyryR)YF{xY7^R~O2w)Du4;;sxeZ7k|_PRJ_2fd9sel`^$Q7 zEZ5Nc1yN84z39pqvSUx2Uz(DpyeOA2HTnB~LpR@_e+Ig-(R+DDd@F98$}{n$loWzG zXYVij@_>aFLLT6WE`-7*IxEk7PiN&7hHeRnhiOQ5SiG^$=%^=NzZ@M=>0)_fV~%Mg zxK#@*r99J5eSI12a5J09@%cdK<$1H?2vxkP-|=ew;M#}Q0%(|S-<;oEH|QCalU=A zoDgvBTgK^;?plIsdpc!~kyL2N({Vw`oYiF7?|)(cx&HT;^?|qe)LSZ#+d8f$>hkRi zdJK6#(EH2!Y@J&@tt9$+X}P}iov*y?aH6w%7DS$VwBP}$O z3lWf685K-bM;*h0gE3fG68!}Z+Ln4wkdHEB3v1;GT|@toG3ZDR$mD`)0b<3Ib+Y)O zz6-zzZq=`SOp~%FAs1d03dN9;CFJTEDlEx3z7}WuNWVijlGQ*^YhRnbREi#yl?3ox z@9%g&r1zJ5-v>yIMPE4Ot>gV=?YG9~`D|K`;;8mti=IhctTQ0HT0eC4yLF!QVWl5j zd12#}5W329bY4HLo{`CV+IPJi+eoUn&ng9PiLqM(t83DLE%*T!!CHCHK6AD5_|ucD(0)URteXdQ)=V9k_a7`>waKMKfh}^$h7im3 z`?FM(hHM}^@vJ9UeSi7SPyC?YUq;v9Z?{zf-(TK7SR5>EA8dEuUtU2mbmunVg72?x z+CEqTtO1U^1#!R%U=46&Gva_1z#8Dl7Q_K7fHlC8t%w6w0Be9Fw;&E!0jvRz%pwk0 z0jvRz+=@701+WGDej(F(;pGZL+OJhZ}4w5q16CYz=0u0k^`Nh_*X7P1*t>j?%z*P!KA zc2wDx<-k!?mVDI)hE_0KLFfi4SL=GTsaMM_vVjvAnFo)DaRzFu)hdB8Yj_opS8)nA z5CW~nDO}E5g51yV_dDm@bMAZhy=SX~!R+Xe-+RxW-}#;Yf9|=z_q(^?1~pIzqw8^l z8mNQOU&0M)pbkcF#SLnp4o3e0ZcqbtFnSwqPy=-^`VVn~8mNQOe%zo2>R|MC+@J>P zU~~g+Py=-^`f=Q#2I^pR05_PV00^PPy=-^`j2pf8mNQOPvHhNPzR&`8E#MmbujvA+@J>PVDvx74Qikc zMu%~O8mNQOJ8^>=sDshFaDy7CgVDQjgBqxV(O<_6YM>5A{|nrp2I^pR8*WeobujuF z+@J>PU~~jGsDU~dy$3g_fjSr+#SLnp4n{wV8`MA@jE><3HBbkmzkwUnKpl*Z;|4WQ z2cr|XK@HTw=p=4X19dQZFK$o+buhXeH>iO+82ub>Py=-^x&ybH4$!PsFtP52EL&O{ zD46uamlLz{F~zG_xm^B#{)Wr7*$JIz++}fTaP8W)SFdted-Woh!KHZ3Mh&X`F7~HC zl`Ee@=30!ujCt-kxvm`?=bFan!^}&|5_!eG%p5`u zCi?>$Kk1l>hIpdC%wXQ1Ix`Xy)|=9_wAT_Jli`0R_-jnn~2G_0ATny^x zta0WqE2P&^d%p8slTKLZfH^Z1&zXt5606K0Vq(vz{#@;)^LJE#uJ+Qt7{#Xn%*6bo z_|^to<8U8G@6FmT#A@Dto);ze*5aMXV`PA0^LdeU26Kd}@QwJYU%nXGy9?Fkz4e~= zk@8GfgtYD)lWzHvD;-=^RCXtf&4JFOfwhDS*;He=$T)WT$?0X5x*~`4!_&#fp_FuG zMb|!Nc-EnXwDpR-KDaw+f1-;!<`Or5l>l+);Wm16chP1oQ}m79%3*fa7`b~Kt{j$@ zjFG$N;beB>#P2_a`F)-LZ*q4}L1wQlz9N&R-cO%C{fe#wK3wLH&wh4dBgb~yifh+> z;uH5U;&U@_`g`Bwn?SDS7nk08E8V}KK~M}|n@8uJ7#5;Dw#*&s%dB_t>acRrcvNLqR zILz!ia9MgqabsgBU%Y1A%hD?oL9=kJg`kVQkwPoMmhNg}XzC-piY16CO6&7OO&u|3 zvrGDozPV3X`mX=29T*r%>PXy&LjTM8c$?qid4>F2T9WOeEzU*W>vLNi zp2lw+zj>_OmdCgD*I6i<$}C(r9aT@OQ&6(Mv=HmFY0vd>^RDT>aye)^A*YUH$9uk(HoWeu>Z6cjl=l^LDfp7MIp`^Zacq#PiGV%Z}KmE%(s= zi~t)6>HfN*{TYjKd>_l-i-XYT|Jt;T`3xk_CxJS|kGV(n|KyVvzpVUj_!Y|^ z5)Bzi+b@*e$HybiK~a-`@%-ZQW$AITDJh6DB{zlqFE7icCo+Y{C(XYuUehyQq5F!7 z^Vb^>8yiTyakxfEE@}J6v}O-2qE0eAJwwVaY2_5h;lOKrX6EX}i*5+XK#IdP0xW#q z#T|!-`ak{F()5_Q;_#08e_(>8wEyQFAm$&&Zy}ziDW?Av57ItN?jgR*!|A0(MsiM( zr#d_9D2GG9yLj>H%*;5)v2pmJ zLp*$tF3Iv3V7tXQJl{VqEL`SUM5yC%GUXXGtv?D?*nOnWBYw1nJy_UDSt_=Fkp}>u zYC8Vbt@GvccmGWSqfd96;+Oj5nU5c1d|LUPbJ(WkPg4{6)Q1nk7EGMJ?RfK4inhl7 zUZiO1_LbT+5KpVZCZ7Q-MyM7&O5D2Vv!Ph%{}w?9pIbrF_Or^#XMy7SAH~<jYUyh!O4FAeFmVRb=YQR{g>SFg5Q;f3FE23nEH1_q zP#kXdhVrMIa2njoAy={IlTc&*r|XaL_mih_iPM)HC!aEJcz@w{oxTLE)_>zXGBOrE zbtW^PsHvBGZt_h)?sv~;Cni37kGSLfncZ&!8pl(+{fp0aes7ll*;zS5@}@C;IYi1$ zV|d*EKUn=6uZH$7BoVb=-t-YooW8S1q0uTFcb$l$UHZlTM?Z>UXPG~Iu-=#isiWDL zi>Wky8+m2p4|1)ALiuIgTeD_%*6wmG9Dr#u(VWdeRGhNeE#G==n!b%2yOzYK-xA)i z{u_Tn2#0^e`k$xodLIXwjro(5UH^L}ef|mYUz+tlNuM=XPvQ$rrwkg(UzmR+ zeQ(nF$I{mY%WVOgEnZ7YW#>OcGBZBzENS~)yH>R%{IwdjC4OPk5?MT{-1Bjt+v4!? z2`6IhPhZwdjK|@D0~s+BhYn82zCZR!?X=ok&Dtxa;tXzZj49Df;~N5Iy=zCt&>rgna6$*$GdxxTNnqX?0iqjg8<*^)7jAwt{#fDPyx0z=z8y^!8?V8HKUG zl-GZGUF>4waLI1E`lsa=`aFK)x7*YB#wq51z3n$LeemEP+#_u!PY?He_Nk|S`jeP{ zdiMO*^3zW*zZHjHZ~C5>P99A^?JgAg^MmXFd>px7Z~Fgf$G1r@uFurY>mE$%7rUhQ zevr`~#}&Kuxn}E;r?aPK?`piueAqg^aA=HI^kD}6!16Z*9_h4M2*lZX+LVsm7$^2g zr~MFez5RD(|FOpp74cy# z2wS%pe_GqJUY4d8?*V0=w`zyGNdQT+I`Yq+cjg0^T6K`~K7N>*%N7e|K%+^y9kMU(16I z`+J_UPun-V!^^UZr|kupJiwg37-imB(>~J}?)zS2Nbo5<@dSTw@h@_{JKU+iC#3$K zkZWoEJ&h3Kxp$v#sK3CbT@jkj|LZnNCkTfvftj~lz9yX@l}Pkq`Ca>MkiTfmi1ync ze-SNYlDxk5Ph|!IXGva9e$!{R5Keps4QFa4CD8aHK-0VgGXDf#*JY7f^2W_$2|uZ2 zH7ZRI2VI~1Vb00VA-PX#lQu|ws5Z(UBv&I#Oc%OMXoBFQ@oi${8seuO6N#{T z{*r#X^S934AG(3>rUB1Czsus!z<1Mt_m}kZ^~bee;ru3Fe|!t3&%elrXuv0Ukp9Fy zPfo$RF#o7{p!DJ;L`g}qq5kaDN0c2pMmbGc=sd5hd1V5j*zCOeYo7y{L2wi z9!_;-(tf-}-slcbxP|i*9eI~AF~6*Eev;SUhg-jWEPpSa|GWIl5^N1nIKRu|`SF+T zH=@}lDTa42ZYZ;G@PW$_F3f4$>Z6TOc2_l5S; z8jQlarl4e_xGW-!x9*LG@GHd!~7e3G(5DQ?+9h>=Uczfeo?pa9Fi@t-}(6H za*yjTkDuG(@G$=r()BcXET4R_{Bg=+Ps>kyFGA&pP%*xy!~)=lP%*ylUXqK?o7_8i z|DV4?c3k54WVq$~?;wC|$M-6R9LEoW$98=GiijV_;ra8&hkJkT-Wo)yr_Udjth;LJ zY5HmZ`#|fDG$wD$ld8uN-k(c{$Xcxb8Xuan`q%jF>R;sMqFJ!v{jtrwSC_|Rp%gQ= zd^N8BD87kM7RI03zao5!EcXI?u7+_S>8GP0=AXxx;zq_3$s*o-{Zpgk0euw9G zsVZmk{A<$UORjU%kbmJE^@2QpNHWXH>u(~+&-x6wx^S`GPiGF5t^Y#EA&UkkCiXo1-MF!Zc+M8>#tqSXoJ+|D(r%`ru2o((h^#I6O+z^yoH&XntJ?kE>llD!lm#gMt%py8!UZ~ z_5Qn93vXi3AcA@FNxAZq5U!~lo+uD$t;b|+W=0~5eQavVe3Myy6pMU`@KCx=m8lEe2!@dDiuEzvP5J_EQ&;AC{3-Q^5OX_X( zm}Hubbnlbr0h?xHA@TC6CG@_uh$&TLva&L<5i^lQNtoTVrn@^;K#>HK{?ydvmg)by zf7d$wKmF6D>D#XlR`GLm>4%s?|I785jF@7#k@TGwPq5naM>ejb?k6VXRYII~g=zklml-qsl2EQ{2K^JL<3fJ#yyp|^)*#2Z z?i2UiS;)S={8j}PrpH7Sg2c&VkM)?8sVWhgvM^yMdQ2Krl(=+M$BFAXjWp8zE!(~z z;XR7Rm+s$6k4Z8$5kuTAVZDWEO)U7hTOipu@#I5do-EO0vb6MUg9(w5BN*uKM+bqn zy!|c&XFdV&`iw*=!y!p`m}dwy=NHC7&P`?zF}Y7_TXH7$jp|Rk!AT*3MOn&_Sy^S7|!q0C*vSQJ; z(Mwu)36VOQk7K9EL=M!u8{?onQ9?en9ut2KgPti}2Z|}Q(_`}QQ;P|wxUnH?;*4{c zv_Apj&cki==I)}+TBhh5yOqPlgfVjWI9xd_Eg2(s&%?>=x{dds-1E+RbpB^5)w`!4 zv)2|)i;~%??_#*P$vBI*8IA;#)}!wh4#Fir zF&9?-BnIjc`mX=+y(V4eLX5Qk1@B<-`yW(Ge`b7)y$~Cr5Qs(hKL~65 z{KB&~#@GnO;j(^wOdG&o!h0ws)4ESC`H8F$xb&44UQFa^MTY%Xc$c5f!5Uv;uhCVv zdH%`yz+%3U)5PM7B|JQwCan~`aoOF&P#o3o+IDeYuyc1|k#Nj@DIY`$@vRV7Ls6QV+&v$qsugQdb_qxg}T-N%&4>X2bFYtXK4o_3H zoW$W`w^Y-dcp6v#;?z3KYr-g8{afT}L_9#bcvLjTFrcd0k)zj=Z(5hU|hp03Y* z+KLO;M&!Fj!Ss)$dQ3w6$dV@))mAu;PkTWW&1WFlKLqL!Kjt3h&k#2sheoIMCsyBx zh4P1pAtPz~g@XI|c*HqavqpMcY-}R-G%e&1JV|sXH-+|_nX#wpa4kH)YyNfZ8XNzN ze&M{3|9IHgKuYo-${#Fg`$w5`*3csA4qpm-$nSBcrs6nsxUqu=FFgBfsK~VbG})0n z@8VA5yNJ(T_&It^)Deew)c>Qj%lm)c0b>4P{1*C+rzxg?XQBNGxX9-lfGjrk$8<%#|oJ6UE^(9qBP?D1W*M4~xH) zM#_>`Vq^WM>yPEdPo7pAasFiDl!vc;0!`O{nJ{hFX>(_DJ?t?@`8Za7hALAZy6TVU z6c{e~CLnn6)ys_=KYqKoQ*Pq&6G-EDigRvdXw1LQx!vRO>r@?e7`8d(?h;(?>LM`pzDOx>Epa{HF2SrJs%;Wt8xDXAjmHll_m8 zH5+p=15MvXUfKAATx+3_f0LrkH32jnfN3((nMJi(UR=iI)--*qI=hy{r{5CZu>M;q z2_YQr4eP&!OTw=Aae!%l@l{fGo$qw|{Nv;6bEuxbH0yuN81fvfPrvE<@8e4j)L8io z^N*zOO*;Qrd|R+=HEgzcAx9UU!wdE26~ZfiZtTbYd3!O&Sv%PX=pW0eZ8yfZuREge@->NNU>Q@-ouN@e@7+! zT$8V?3=a#m8^q}_W<-yPY&v!0S=3_^&m7hP()No-zV(1Y`^AZ2msYqb*#V~nQk#j7 zYqoXr`qr5{@0{4^X%=~ZCvigci=)88)5=})*lY#yG*ZU&3D1YvT}EN*le%OS#y*ne zboEcyf61);_Bl4?@r_d)F7fjCW{bnGxBUjjw{06A@TbqWfBf#dAATt2Z&Q}9@J2l* z*PFgiOUFP^XW)JPJwL;fvEY5>e!c1crygJWZ(N_Lo!32>)Gu~P><={Btz{h+0*4u4tY(+ z^!bxZzLSW<*}q5@dV9SL0G2qMUm)4@pnGg{PvJ3%d_)8>9u?$i_8|?`VMMxDWd;-@er8MK%ls)u!qwvJ;ubw7*CBr-wPtLZUt2X@6oWTN zk34ZuO}QSEZ8FntYof;_Z*@sdOxk{Vt4nspG@HnD*k6YplQhk!aL(#;(HIhZ3Qs)2 z-&_2PT<;Ed>hB4uzbBq}?BKzI^oJ0s9+++0wq2(llV;UM|B)Jv1lB^X%yRjfv`8wE zSRlcv{Wi#7G}fi|+aP}tWkixEIwAy3o>^fm$?Gf1N+4 z3wlhZm(QK!6ZJF8aruer-=28yX*d2gd04(w?m^yJczV4TeutXZU+6$d`{(KVIW%2#d@O%2&i^ic>HGgY zo@>8C|I2%8Qi|YU+;DEBwd{`A()o*FL#X3ft<4+ib_WR6dj8$3x|M|~t02KQF^^RXn^g7<(7urwG zNR$3oXg`(Za22Vy|IqL6Lu-d6F!*TxLjMU%VDQoK(04d>7K_-j6YMcu}8Na`;i zwJtulxc>6^xh)P4=@L6my>{1H+X3-1o31Tp`l|9!CaN18Kvb7<8U-oHtQ$Xcxb8Xuan`q%jF>R+~> zqKCtuo)_icY~sDJBr~&`k);c9`7OTIf{9QT=1+?+qreW(qgStvjijHBf|!3EUy2(U zPb7MLo*+mK`=7Aouilly)qj8g z;-XN=A;{&3v9mVaKQ@wyPu%|kg)shb@9(X}(;Zx3>ntX@lkeb);i(i?+W(9;R9nOI zn}t*9lmMy^{QlO>pZy#`m9)R55SD-4(HGl4nuQDf$HjKS@8qy)|83WQ(p`Y@jIUAp zUJf`8j-NuBrXR&G&A(?Teffiye|Z_PZEM7)>BmxlKArd;?E)4SkHjHnmr>_T)BK12 zQ&RuE`~=b&_d}%c6s8G8@*}5h4X!4c$QQw;LVTRk`q__186!^O`^337O+VTNG)*7z z055;=*^TnPxL|lP?R7i~@3Up(w_3k=@|sGR73L4A*<}0{>R(!=_4+02Z+ZV~SbrP( zkHq(l&%Kbo#c$RA62H9uEPi?Yr6X7J@xk`bN!@-RM^TT-|In9ZpL^oaR}X*bkw?Eg zwB>WZHgwnUo%amw_|juv`tn1EhaPz1sYieBiKmD5KKi@dnx^#8Y>K~%4|}ESOn26s z4R>eVS+CSEgo4}{R zD7X*o0S|%$;AwCSJO}2$i{K^jDmV|`0PldSpbj`a$ku~FuoZCFooxqS0DHlHa2U*h z6X5IM4EPqPfpg$>@HV&t-UnU$jBYL106q!s0^?v8_#)T`9tTIkGvE|>9?XN6!E4|m zxCGt>?}24d>7o2!6ZkY31^0nH;6ZQzJPnS4=fE6z5xfLm1?RyV;2m%k)Is-0DL)tl zTfsK49ee@o1^dBaFau72uY)t-Tc8Hcf!D#?;0kyjbX6!n*Z@8W?gHar7x*IB2ObAU z!870#cpl7ym%(e`BDe(J1@D1nP`R1%gH7PmU=-X3_J9Y$0q`_92A%_R;6?Bfcom!n zZ-95eRZs`ry_6pef~{a1*bcq`_JaN3Fqi=+z}LYU@GVdS=fLaWZEyv=54t`^`N0P8 zNpKe!2fM%*!9MUfI0~Ktr@-@I9=r@*0~f(1@Gf`{EQ1O^QN9gq0-pw>;6AViJO~be zr@=As9GC+yf|tOn;5>K(yaTR+I_O?U`N1IA3bujm;0s_c*bfea8E^u89h?E*0yS_B zybj(5SHSzAtB>-74d9dDE-(&ufiHr6;PF26m@pkI9#^v{)54LjUHIB}zxy>^qmL|o zcj;>vmTbM=y|}n|=+KbRWJ8A*oek^I*~PO%htwN?0@Ti&e&ooo_{xv&FMJI?7;z8p z+?o4-_q)!2toPPKm;S^`jNx0_`U3hcZn|G91kA-HZA! z9z%!DzHn&ES#5%yXLt7vZFxXb7}~vi=+ToW9~BbItwrw}k}4e1oN~hqOcP5^$ z>@e&b()gDDv)`y55fVvA#)H_e9Y4Q9+4n*R}Lijya&#Q*ro7Zw&?IH~DMN*LvN{LQmxB{iiv{+DOJ;p~!6 zjPlV;5I`$gPlHSbuRvA&%Wu>#dEjMgHRaFqEx2K z=OO80larbs`Wn5=+V_x@v9C}3VIe7|W|2loeGc^;IeuK*!n%XiztyPavqvZ#jrddV zO5e|9eI-y=pw|K#M(-BVM$cS>HA!nF~#$ZT=;toU1v zT0OX$7CzqJX-IbI_K5%Y7HF2L*vOAGz%{YKTJq2@cGm)$f3f@e7dy#1{>QZeVtOeT zy-yloQEdGTM$c22ixK}R8iM+t!n*V9N%8SUTJ*Ta%|>=yo4mGTL_!v&*1W%x+C0#= z#WMZEqy$aILSlPL{kOmUzym(^?xDO* ztarW%DUpOLkaXu-5Yp>nZeLjvnKe>~CX}TfxlZpNXo9BmjPF|yrTK0Cz8me7Y zdJI)6l^mu=zV_X3epA=?;hvG5BbjDW61#QF?iY4%xmDB6n0>YXn#C=x}^mV?H)3VUTqnXd=BsI8}d;PG5fnnOuLDZ?)HtJ$ta1|Wub_gQX@!v z_6_&-ji^iZ5e!_PKqi@|2#n-~9Xodq?fk|TmI<>@eq(b_-`M58sat>6xB2sbJhpnZ z)$^pzpOf@MKj-&F_MzRm|CY$UJF>?#Sw_EIqTimD{K@<;>%|b0VZKK6MfRcHxj##L zSVzbYZHS@1$WO47RS%d^?7TxPd&nO#ai$8r<) zm&5u#IYhV^s;derEjYd|0w@jC%Oj7#^UnHlh?@WwaT9PH#Y*vVP*Jjq`~c=M%CH-8i3+)me5g zH_j)d9%R#m(OnAn8|M?$iSFp!p7h4~#EtU_87JP{IG?z2J|Rz+a_%J0<+=UF`Gl<_ zH_j)hhyNd*PyFfn>y@9VsQiSN?8}g!=*iY*!#x>ip+SD)>m(yaAv*TFZz zOJD(91aE;WU=ehGq$j%-Yy!hz9DE+^1&@NK!Pmek@B;W2cmI@AC&BaJ&p{3RC3pk;HFysoq=D>1Pc{Iyf)Q{ZcmV7J zhrkSY7R-UO;AQZy!0X^LxC)j)82iw7J@E|w{j)LRh>)@N=xP|41ld*1l$K60Q2oI=Bq3 zf+bK{Py2&Uf?o&Q!EW#%IJh4938n*nmu5zPnKpfF{@AhFsbk0V{nhmH8_Ub*t}ZXD zD?2D(Qkfp!g7k}~tv1Qr#+6{Ldxq#8L;4x8BJJt_Vi8Zr-MuY>WE-yHj zs<3_h=j!bL@yyuYjLrPmlGIOJ1PKfMAcg-D1=$o4L{|u9v44NYKW63)%+t4FaE$Gr z8acRs|F(f{%c>CYQ32DYV_aY|BfgHON;XPOsPWa5_4F<;GZ35^np$3-8uG3MG2!=t zoA`i&p`X!^F> z-k3&^CfonUL6H*O_Iny*gQdjwh95Di>DQ%Z*onsX54-S#Bg-Sg z-wbt|#uj#-Gz(?T$;IY1QBF;XYx>-|i*LXG?zwZ?2mLQDt*!~{CO=bFYvLN~?sk;j zYX`UOKPR6~5iZMA?Gkq5GB$-vdcE?5#zbT_V{kbqurReDy4QO|xL~w6p-j%D5j7{& zho%Q5r3(d|5`W35un?Y9wz0x>QF_|Ng&7}qPKTtpmY@`zTXJEPV!`EX@qz@LJ9lAG z!lZnQ5~@iC*FuQ*Hl$iwiDP44!stb2#>6#fqN;Ah!TZf?*WM%@2@~dOG=*c#3aZ*e z!(jRD`)^<5CX`xdl8mNj`Ine+*xS?HI4w+)u&{-N>Ck>FK4;qdgq@mDhI4dh`3ho| zss9_xSI-?Ym-rt%XnFa;4`k91BVp3g(p{{U#;hX`4{O=IXmqz^EF1GeyAswvwqN`j z&2l!Ze3Ovr?iq5Vtx2J^h}M2kO`pTd>V?iIbdFNP&e3jKzQN&P_t6T+*->^A8hC1* zQLYg!o|d5-u{rp5cT;GklooWgYh=(WC485p+r9CIOTqG~JS{KejMUV)GAt~p%jczA zU2k8zOpYvsNmE;JNkXVxE5o4Dxn{C@!3Xxf{nRB{@#zsX;@ZzBrIw`ZnB{!D50HfX zu48yW0<;$NBCbQ&3L8tdnOzQ}w!HT!@5-^|Y=+CO9n_?nQy zGIa>)%$sk%`8IfSMqF_|iMJg0>o_c>%t%XOI}=UC`0T$B7v%1{_j@u=?bmSUPHMYnvrJ^M`-(XaDTa{^Sp( zRmQr<_m5}VJ}y@u-*)iLgWEptTz)Zf&dj$mjr)iH{LlXR|MF+TCHGV^S&BWq-EB>k zR7O~{hXehQ-jUvXnTp%l;%T?O_`ZzQWN)LPuD*=Yu5`<+e}qaH^S)YNN%^F36p@C! zyl?-({^9)>=f;_YoNMZ>mwWriv&+N#w*5SW$;`n26xku`%%9UT+9Y#~o8j2SSc$^u zS&@r&h+HEFM!OC>JSi(I4-xrpbNN~)tbaS<;H zqkl#&8c*i@x2?34AzCS2*`?^zge$vqxw1Q#E4y>KvOAYH4ihF*np&s-BHu3!_Y094 zO~E@PJyP&aT=0xs^oFPmwrttTEISzXMfn#gkIxE-6Lsl2YU@DMjv* z7R+6+J$Tz~Ge7!~A8l^kl+>-(Xc}_uYt6f?*1XH=$-9Uro!NC~S}<}EFLDttb}?sZ z)#wUD8KmeKNjTX-bxjZyFy`vmjIJ%yw6b9aVAmoqAy8>c|79`oy81U=7Dp>Bm(2 zMjnvgA3R`3Zkx?yoAp#^<`m}edJH^9c1#ZM+_7VG|7y#OGM>SR#kjykXM4vJwi+h< zLkj$?VD&QR{oV{sE>8}52fs4FC`a+yynSW6Kc3<=X=G%YDm7ZFcAEOO;)UpHvE=%Q zAS|pTo&x8L{tH`n?x&EVU%&p8*68p2@uTvSnosTdyiiM%4DX`mN0l;32r+v#a+JzD zM1IL3Cdh4XW{)4TEvXcGdU@)vF+RM+qGxk_U&Wh;@3f% zUeCA->sn3PR%=jp4Rm!m$}W1(rtLFbU0p&sL)A`WH!cH1xTM=FPiQPjO&u=V1s0~Z zaR~fFf@U$4$+?Ck3C#%gv05A$N*4-<;8Kr}%`G4xgdRb48g!OINA%2Z!CbLnHgp75KlhbkWqtIGJYd<`s zh?7^$V!&&Z%v zN_Z~G1b6C`@^?*Pb%u{Mq2>jbD}%LQ$cr>!mOVH{GA@LCY70(F04Xu{FHF(a;F+K(~T(=&`?->GNC zFE=!(bed)L8Q3(r$ls;`aoNZqy_uX^ehelJ(YxLk>Eu)%x_R@?+>u#*dOB-A=hB%l znj1Bi{z7wT@`3q3X1eC7kp3Y^C@x~^$@7swCL!kPn~++{jw`9gOt#> z`;Hy-7B{H#bi9r7MZEyKta2x9jqBe$G<1Y9zsco%hioZEY-q!B3;ortR>H!16nvAl zKdB>0G(MjiSv|I6Ec3lsLf3EJd2;7wClo*{b=jbiAdGKi;S$cLa!;iRyCZeUMZ1%x z(!ZHX3G^eY`&Wl$N;_fFzFW-PZnzVMOBzEs0mpa;_^x1C?X9x zHMD7SPv55dP7G2;=NkI_sntD$8NaPs|JNZ*3c&vm*&*x9pEB2Ib2HBRVi#j23ZrL5 zF4`e-^>6NvT$GPCmmgc5d|rw|kW5je$8^EVUF@<{(hEp0a*+mb~q19s8W^mtND_ z6(Tj7f_F%Iq~M*n;2F7Sp{NYDY}v{zn>V__&S|Lk{k9}1rN~!2DMjv*QsgcvMedSP zkl&*9F!C=W72}se!j=hH00XXns-^Pd6(6bchQ2!Om7qUDH zPVl@m2j)QyoClYH$WGNk1-YjUU@I5}yMV||9RNqc2`~rdK@FS-m%tTJ2Nh(UHh`@_ zi3QmAIFb`_rJh%j|fI6rk<0NuYTfr#U1@?ji;3zl&=D<9tf%D)JxB}{+ z!ehV&uoaAgU0^Q|*{Gx71egQ!pa#x^OW+Eqg9f)ij4%!3*@ z4=#Z#pbjd?F>L@M3pEOMfxX}WI0{aHIWP}u;5@hlu7Ela8K@0lD;Nd4z+P|wi2TzD zFbC#A4V(v;z!gvj6~r|*fURH@>;fY9bO0O$C%_z-2Q_dWTmn}>9aNB2+5ol!k$2h! z_JRZ8C^!M;z&xmd^WYM=0_vcGjFQMXZ3UxX7uX99fTQ39m;>{m2F`;^;0maN3bIKX zz*aB{c7eS>WSfqH6JQR^gBmywE`ckc4k}C{8^BgD3Ph%9FE{{>f)ij4%!3*@4=#Z# zpbjd?A#DI6%QOmhfxX}WI0{aHIWP}u;5@hlu7Ela8Kwh#`AJ4L4`Y&p<*5@h*62eP>`cy-Ag2?a7%D3O9h8~tE*>HD?y;j1cY*tDnx}a zxlmPuR255?h&=_lD)uIcWR<#wV!xBEBJo7Jirl0ER(w@#-Ned@7qODk^<#nrlrrNb znU_r}yo*fUw&s(*m$j0z3qLPy<=v8mQHu=|(!)0ux{}RcEOwR2%R!R}ap@(ZSEN97 z=fYPl#jjvs$$ROZq70V2eTk&7WNA(0u!@pc>}GfY9AvSSz00M$@d{XtNeRe1DHC1c zU6D7bOqTF)@3}pJ+!JAdG^&6p z38R*$EL_sdrMD!#Sboc;@7`xij3wv==axcz>2K~WAv!jYuM%T&Tvq;Ek}GmAMDgAG zWbu)>HV0X_e{t(y+ov*JLLW^EZ^Kw-A zcy{#N`uaBTx7YvD*++B^a(m})FB8_SLSY&7kyIG-i<_`~e<2sCWSDEhbB@2}Uo!04 zN9Z;GOK`@43Hj?bcPb-BcrGPI4f^s88ZlR87bL~h9m$G`JC+vHE)dC!h4@xK@C&j- zl0qsqCX<6V5?YWPYa%QZ#X+q=YuYP{brN|O7G8T#po>cE9NhbNz z^^;6muyeZ^92tOui6zQdZA|_omMIhQl^|6{V~CiH$jZ3>m*!t2uhQ|8hBuTql`xa+ z=lxc4no5~vS)-g8MEU;46|PX1`SgrjMZu&edRhZXe}i0R^e~^}j^xf7$|E%x^`F+# zXOb1#$#p1kVQhtWGH9}%r&4HCNhF7+^H(H^Cj6x3?FzTT{s>u)qKQxZpl^^#%d%7| zjUqD#rCjo{O$W)({-~;y&bB8-Kigkee@bQ45FU!9)F@ZlJB*W#AdysCz+KoM8igMW z=5kjNSSv`ZNqxz*=lZrI3{q>jQ^B?1cA{&j`Y8ynCDLm;|I31>gF?7dp2Y2>fI_&F z0}5^@2^8E#Nj4jwxh$J39xR}`e~|LB{>X+&HVisONI!9te&Qy*#7%s^VHlJAr;=^b zylHqU-4^DTx2Xf|8k8@Ra0~S#Evn(JeuCT8PjCl0DM#<>CxlBLvq;*F`iSJ+Bt0Qj zL z+e&(q-@jdM!QX*g@#0JefrunX)32f$Hq0?dJV zPy^?|C2$4QL4~u%4PYx61-rmrZ~z9aK1L+yJ(MQLqc_1qZ-U za01MMc~ArA!6k47)Io)_#tmRA7zMk)UT^>$1t-89mE#w z>;(tFQE&pxfq75^=fNd#1=K->v&IczD;Nd4z+P|w90e!99GC|+a2{L&S3n(9IBVPh zwt`Wx3+x34z)^4l%z=4O1Lwgda0S#sg|o&DU@I5}yTD#>02~D;z#NzdHE9aK1L+yJ(MQLqc_1qZ-Ua01MMc~ArA!6k47)Io)_#tmRA7zMk)UT^>$1t-89 zm}JEzQr z>o})OrR$iKdAYj-88-hKDwVKflHTr0xT8wSm{iIR4>_mI1?}vdG8|JnDLF4|CvTzD z$lEA2g?G})TX&<7tCzWx`VrYZFLmeLc=Z{z*f37EPyJHiJI*N+@w<#yj7~DhIHV$Y z+5(Xf9^3kIF+3Pp@=g*@i|e?0=CL%MkSFqZS(ZxV(blm{p0ZE*rE+;HTA?yb^2X1Z zR5nl3^tI(l#B(Tjr2BgH_c2l_Jst$M$8vfc3MZ0!8Xn2&nR}qCYy0*wOD>hyqorw# zX#^&Gcq+3;cp|l@{I-*az)$Vtk>s8fjih}3y)~3q1xyeSSZ(>?O6j8tNM!gdyF7hY+E#xsBuM3CH#sqey)5{9@lM!J^clc7aH4FvRcD`XPRhArp?N^q|ZO-bg6*LDL5b!X`3= z#E7K`Irxm_2uVyUhYP(UHeTp1mnQ6s#R*vtV|l{NNfb){ta|+X<=k$)Mi!)CV#z|5 zpGMijM7ogtA}*E77Z&p`5_qwUVKKbHok|+A93Z?$o>Ph(Pu$-im&rbtT&Mr$@`nxOks6HpPirYe$qMb{I+V*84VKFy%6gtkBclC2 zl1J3}E0RdG{^_r9EbNc`F3P1PxAdH{Q8uwCok$Gkpojt1d~6H9AfuQDXp}}dMb~As zX%|jaN9+=5MU~@9Qx=zwAdy&{#8KEEO1M_CS>mg%=&9tQZEsWA#ViZbi^NU^7=zo1 zFmg^=5Ms3U9U_ZbDCU2e4Rz2Y?~ot8f7c@GVTf8u8JCgqj-_WKpvF{VNwM@8?zcZe9gh#|paODtsTW z!guj1$Te2@4qk=t-&OeTU4^s33g5Y_@O`@q-?gi74p`wkb``!~S3zf6g)_ej->Iwc zeYy(YrK@nhSK&K!74)!G`0iYVv%Cu5nXB-9xeDKvt8i{tLAP3k@5fd6Zd`>kx(eTk zqujj}z6)33Jg&lb;3|Cot&*JsSHRkjRrtPJ1s!OVA3P6U1Mh;$TFMXhfTzJ6con<@ zy4O*D@C9%fd>z!l+n}qD@`GLAac~N}3@(9Xu;~`c4-SCmz)Ro_PzQtSDL>c`PJnNL z*TMT>!!J>Oun#-~=D|hq9=PpR$`2j{$H0r=Jh%$h{{zYo_JSF32Al&|z}nj=Klmaz z3Z4hAfp2Rsetz^mXL(A`h@!56?`@O4lFZ-cJeDL>c+9tWqu%it1N2Aeie zesBOh2VMeifI1lbIOPZX!3pp!@H%)OY#5;YU>|q}%!7;IJ#gD6C_i`*90M!1eS z23?ydKiCBx2dBWx;1XB{n|_({g9G3>@Dg|f)WP6p$`AH~6X09mb?`pe@GF!b>;un$ zd2kWD2X6Z$XCTU{dW{bxF-=0E(Rv5-%y>rOF1f}0 z;wL}RjAJEx4GfL~rkG_^!CN7eRq?;?6tWr{4Vs#2fk0?$-1V|8#-47-i#msZZ~P$0i1UF*xzq zh0tD7!3)wJN+1`NM_oyddc}7^!h%VKRPoNs?`UW)nyR;#6hmTGqH5rBw=*Kg5d21P+l%qmxFf?4{U?g$JgFe-eiugHdc~ER6{P$l4aNDp{z#0>dPf%!)d1K zEq0eMF-h4qC?;IpebdUyP2H=LxUNXvuWxv2Wo2qOeYh^rh$6?SsXW6zZk*QoyB}Iv zdFXEcQ#B>2MxzT41{mXTcGjy&3~ZqDcE<56V-=xD?*osjw|9KE+7Tu>qcpN~jMS%@ z3!+(}luHP&icK$KVYYY-@y7{z&tnWS@p7Tk?&?BH?Z1B7bQpf-cOP+H4L6m9x#zLJ z_`wez`Hd)0c^D%pRTNTU)r622K+d?kgd~$NH7Hgrqsg*|w+*ZeY zX<#Jt>MG`6B-MP*^A>kGhi28PjjL9zO4G{Xv{v1;=3}?t$>a)|C8DA3Vm`Av0AoIu zK+I?3unbb0>@8Nr&3O>K%Ie5BnQ(}y-FhK~YmsLcOondqk2@~E2{%i`CzU4SU7n`2 zZ&($JOknp-K2nprw1IC23$Ah#IAa`)oA)c;2k*8v?Tz|av4Up5|NS5SUzi^*Eco<% z*+Y6(Kh!qHrQvA;I}J6Gm`|pJE)smC<)^0Nwy>~J(K8QgGF%>>@#XP}dAIf-)5z=6 zs`{Xi=ZI#?0wWqnZTWdb5}a^envXconj0&ZE4$B)+%1+9dS^!H9dvveZfkBb!|ulK zZ5n7O^ZtWJjvU-i9ax}Gfnrt7$0|^-zMgYFj;8wkpZ?vy`K#}%vB1VWQ?4h!`q(2{ z+hsJ=k2iV!cvdb|s~WBCDd(jW&aStd&m$8z*{tBXNU`|$`|w#UytpwrpQ^fLuA7>g zi02Jx5<>V$D>!4Zgd#P*P~2U)^6XR{snEz;nJ?Z#lk%||{;PlUcR&5U3yJtRAK^m( z7`&UYXt8rH-lj>pPULA^baQfLK6O)vpP!@bIO0KBC(V@h!~6#bHCuiYka*qj{fqc75KvhHS znq~AZ-(4H~h9|ORg-)OF(FXA(YuHJ(>xU#9(jr-$7+);qCO;Sn<%(+D6Im1%odK6t zNqfm&BJ)$wP4q~MSh$jw&OkB&g`ldlxw}t@^qMm<@>zWh;o@R*OY@9}Z?8P9Mw(DR z4SaGB&qpR9=j+nSX#yYG*L;0;{eCp_>F(Ru$1if|ek zGjMj9Uc}`6S@NMKP!lW@P_*G7JcODB8m;L@J~<(524%qJ_3YS0+$1kzWSm({mm9e` zRo<&Z((o{l9agqwx>-3svXgI~esdYhK2|u8zpxC|lWc!J3bKEX)c{(XP*i zkDcFX`u(}9#1@Y)Bk>IFLB=ZDN3ME{y9XK;O&{cF>^7J`Ci?JZ_jh0Xxv29Wo_gYc z|6w6~VR8W<<{JiJ+qD}?UE^Bqjb}xC`Y%+5+O>rwkmuD$L-kydh z*igHY)n=werwQb@(<6dIE!EVC>-O7kFVgr9QJ`&k?&oP;4SOf|YGgO-N`p^M^V!FX zfq7UI^0)gR@xRY@zLRo37E!n^)MoA_f<9NtQ*07BbY~QAu zpVspsjm3PS^S6vb;~b_Pb9Q)@*uq0hX%u&IbMRn(ZsVJ)>LPLQH#|Hezev3^FS`p1 z-Q@cZ>k;hu!{7Hw`RJkXwOE7fZ`k1&QHbs1Sbkl$gJ)`Ke-2sf@M-+qH8J`8cfS4Y z?>s*_5&Wu?YO3Zje$&Lm4^I@Hr~_?e>An5#{TKG%eS2Qdu2WPOaw_Hyzl(65x)S6B zV#~9V`g_;J#)7ziUCD@yiqJ{h~yapb{>Jy+ykRl8o{!=P!M;^5sk zwL38G&Z{j-r%x6#WU`9J>1_aPlTuJ{to(e!`jvG4!4-EI@<2AJIV z=S!yjhi?D)`>pxNsSiaS=D4NUNgO+#zgU+sHsc9nOlS$EqD|YKWp7%r)2Yg6rv zej3XAAtZbiu02iYhb{Poei&#Z2WeWN9|ju9K}sV&nR~KQyIrb!v#VGsmz~f5Bs}Xa z1V%zY*)xY!REe&OFOGCNZ(lBYXZFehI*w4pfM{_Ra!pN+-Z&p%#@(J^? zYfK|e-|lQjn!X*4G<`c7Y5J6=N``!0Ti&GUQyTG4X=Dm&M?<9F@9mwIedbq;v#?3` znfQeBsC;dzD!E<5&|qo^{fBVL4_9nr+|X!A*(JYXN@*yU zQM8~T#kTDZO*o57#|{~{EQ^#xNUN-GIMVW4B&*o<_b#W%@2Qbjx*?}{Lr(FAoZ<~R z#g=l4_XaatHd!I3`0~ru>Z_-NoMIMc@v4i2ywYF&)ym5Ee;VWz8)>qK|4!t-X2%D5 zLQ={oxUlpLjL)Vd5?YmuHv{8v_&qrNo_(Og`@_py`6ZO_5t4)^CQ;g!=as}4(}|qo z9hlOMi?R91+nCmJiXZu?{5}N}#P36aoMl{_YrLmt7HtnDW@BF;|7tE9iPUmRJbUlG z{EOLM2+8Ssj^Dp^;O_>u-hVtKCA1z!XmX12FVe+-!2xyDm%X;>{_+5s%v!;Q`;i);j0@f{DM02!CFn7c7R!$VI^LF z2Yl{G#1whRNEk7|7>A8=in0Or35uK|V|5@edLHI!I=EZy2$P&q8cjMz>eI{x(X3F) zrCB(B%og|W+_`g{-g7^LtU1+_zjfHYW%Em$ez`yq`o;ih+}gkSbNAkx^f4{JRf3eN z5W9(!AII8A=6AA9g4IjEry^e@DgOL3iLmKb=8Rj*3T~uiiFu`iY)MV=+p89)bq9+g zmM6DrmDfHnG!#Whtjvd>`_21*>meqx@gyK}1SJXSS`blirT_y*mwdOTH0RK)S~bWS zeT%eK-Sm-<-f{<%Yw;*QN^Mq#;7n^igF`|?rdp)M1nz36ybh&Y_v)p*ek_>B+*Mtr z>kiqsM9Pzr5_+1_zF~Dd#BYMTRz+1(v`QP4wu2BG2jfGXDCBxd_`95=RW z|Cv@!rF9h1OvZ6zyXEH}OJb#CM*{s$A&wi{ncuw`i2Y;xP4q4?`8KH<2dn+wTwBJy z4S~)>OKq3ZvQIv=XV2$9Z$uW&8q}`lL#ZD6t^0qI`T5?`w5T6%O6$ipxh7VY=bX>| z<7K_x@e$1(t@1NDIZh?EXfK(*y(!C&FBJFEatVzrVYl8|KH#l}KmYkXdmfs!w3^j3 zOnO*%7>nikk%TPQWi-sEPBTLJ{5;?`z1&Lsp;tfB)#YE4HKsVAU-!~W2_MQ+TAD_F z>eH;Z@@wJ_4Xr*QO)^nNPg__QViqc+!GGLlpz?O7cWFYc(o#Om3QT0B{bvnpZM%L5 zpODt7Rn1vNQM)880P05xluPxG&DM-HMR+^Sii1bR+g5!)n zhH%NbH`si8m8L}uKXo*(9AoME%#iM@R$BWUo3BT>czKv zsjMD+q%Vsp?axMI^FoXKz(Q-fRsArL-6{jNRXuBFBtK>SkUY$`+aGpIClrk~Jw4rJ zdDc*ODWg#q%1l43*M#iO`|rQ6iFbpS6kF%yl{hF~2M6z%oLtiX{P?13#O_AHeeE#j zV?Isol&$Q!p!=gA4ZUOM&Q_vSaAxt@(KLbBvwVEngN#*l93!>|nzFN$f!0q;p4VT0 z^JhGy4Gm5HH~;6Q?f9E{a3rt^AQ^zp|MA%U8v36O9Xu^O4KbST+|_5NP19II!P})?sU+m3{UAot)7=@ zEZIS}+t)Q_uhB>PkB#IOJ&Bn`PHuRVD?PX2;BRPX8VubLmA#PO0mV3vf52zL` zS}vK%N>g(A4L8prxwk)uY~SIH;rP9$&%E%$nbYyI98dDu;Hr&x+_AB(>>&BQWz&x1 zJ2s&S)|;xc_&ZMKj`Gd3BhOl`$U-xI?<;4{yzle0OZdIYWp7JEe%hWjk)O6StH z-sk8kyQX57(z3Uuq3msGC|6q=CXKf3PS$noxU;yXV+R^}m%C#|Qhew^SK5Y~G=00X z9clV@G}83#Xr$@e(MZ#`qme179SsHjN>9%b*=Oc*idnkPgeIIvmDQme8ncrv&YIlN zXh|dWLqoKraoxTp4f*j$K&4A2`Dsf-e%jKIpY}8Z?a$C?ckPAJ6B|09^KkVnB+bVl zbkP)4O5^IeC7);tD&^zaq9q?$;N>k*n=R0|n}J>pWv>RCS}41uBW5BE$z7D)C|b}^ z_O>*Xt1S(wwrzK4!dYC|*oo6>ajumYvY9QGQ~X~)b-nr&*JV@ug##khr+8~oPVo%M zh>7$mo>`3^Ht-(U@DX&ofdk+ar~%QXSm{Ow8`ukufqC#csDn*wOpoGW?sMQZa0RSK zSK=tx2TlOdp?C>&p(k-G*aMD&GvGXU4~YK6?ce}71!~|OP(erHU0^Q|-HG$ybx;SJ z(2=+c90qgXH6VHu*P|bC6zl^hz)Ro~=t4K*Rve!I0b6p9Z*5m@Gc(O~Q3Pcy;3GfoQ1iH|7xE1UHN5L5&dJx|O8_;*S9UK6sKn=VDD(E^C9f*6u zF)$Ba2X(LsU5C5CVIcYsUjtXbdh{HQf_>lwcnMqrqWf?w*aMD&GvGXU4{Sic;dUT; z4^M#_cn4I_ZFm>h3yy(#AUY50VAHRVJ~#~Kz-!lk#V$d|VnNBGvCJt^gCY7FMHgeNXt79U zOxqo13Li0%AY&6vi3B(Q#!ScpfwRzGT$c%o7?nBq* z4yGvSn1yQdv<*rbBXP&TFz7E#l@nH#iCxvo4{^=3QqBlv{JU1CpfS^u`ipX-X@`T7 z#`anoiK9(zal=(vI+rg;s;to(tO|`ljHi>|n&o~NcB593h6GMt}`W%P^+HD{zgTQQhNkDj#Ap3 zbt_xY_t;9|BMgGhM~TpiVTt0$q*g3Gd9)wNr|hb!Gq@mcldwMY1bT0&dQ0)%x{5kc z1_?)*pNk41X@y{XqLEI>WZm-N{x1By>aj57l$%jh9U*kQY}g2*A9fjCM4e?`KV+mJ zGE)M7ar|awkn0PKoS&s-gpMqW^h7?CJ`|>OEHXh?r0OGZJW>@ED z6rwLFR~l&)37Jw`!?tc-A@p>u`jykcqneT)n5> ztBEVuB^l3Glr^CuJ*Q7HRw$X*OP;pX->la2L!O6Lox3IDU(>-}8Rz8_U)e)?&l9PJzWt6+;9qXX{z9Wc> z;pwEjv2p+*ZAM4^1rx@3MCg)m&mYz*Q{GeQyueEWW%^aYGcPlf^$*RB6SCnPE3wmEVt*RmQ~)<$#~) zEK+@yzPzOCxaBsb6XkSb8bX~1H<`iN2NOxubpbuV;Yo)hnH}vhR5vXD{F18Fb>x238bW9f~5|jzVo>imv zUNlEh!DZ%BOwtv4$s8jo^grVSSyV%!rjLg~GfEHzI=8=RVc{v|_I^>?>J^vQ_dgBr zgf60Vx=wy1e$!1^d&QUVlyn=FU*=`0x^#V-Qs9>T6#6DgFk$G7<0m)YzOBkDbfNyl z;Y}mEz)xmDPv+ANZY+TxeZu?u?8)8xH7dr;>&4T^J^Ua)_N?NFc!_%2P84Jc3%ZJ$ z&{>R?WG&B}(a8iD<{^ojQizZ8D=5os+8m@?RG2Ar%A%OA<*!A5mROC7;sU?S*wROJ z1hr9~2`?LH?kdbnjN@cnOK7sJQIBTxno|bNm1+7a^l3Cvs0qn}1us-RS?KfBpr1`? zv)p*XaHl9Op0{G%n!QfBW|p*8VB{=xnf*n-rtU^1n|brm9?^;(qE~~>TXH(+y=Q2B zM~?!Hj!g@to19BbE(jy9ce8_iiIBHdz6p)$)k+m`W(yKIxkhtZtM)ZLoE_~CI_)o= z(RHGeQ_9r3&k2Q@M%|or5g!=c8})PQ@QElAYrFH}KP*43a=5 zj{)*b5h?kMnFMYw|Lw}r*?D%Shn<>w6Q!Tze^QMvhU)$7Nb#qzY*hZqtY)mL3qs(G zJkx{?lk=l5M0M;bC%mP_y@?{whH`YmN0R7NAE;)BHj}lB@s#AQsxG^Bq8C)iJJ1a( zWGIpPAVxP=iIPw%#v8||!}lqUIt<;;vQfI@=tO6zBw=4O>qK#=P&ZW`N|9Y36cTiU zqCm7eRs1QnLYS)=Aq#Yg5>ZEIx2n>iN3{R;U$p1PTqW~WQ)QxoZLY`B&Ayrh7nd`= ziJwzg7he69(FJ8{ZTJO+Y7t!(rp0ubUnaCuMRbyOk*=U)G(49T>4<9kp+wPWvJ+Ym z{ut7gM@$UQzrJ6E8N*pn#1@|?`f*uR4t7yH_16&{_16&{_0ka?`RnN1k^FT;NB%mZ zBY&OICHhG7{YErAv=-?v(hZVxM=CaMUajXyDWK4YSvVq8exW}LRSUY%pWD!d{v6Rs zhKlKi{v6RshKh9J$K$U()tbXyt9rMqT4j6`6_&~jngc`ri0#PoiizgHmUPsMltD~OI?8KQZRp5LNBsr5aBf>1mlTFzGjY1i zGu}ItHzM_6rT0iyS!lZc-sP25uj&nXW#lz)$SdEFSH2;y+(KUY-rUTVPFOtW<+@da zymCI-=ab)Tu3t6CD>tJqqxINqRZs>HPkogGOR3)`5{X3AV)w@^(<%N4pp9MLu^bxp%luI*f*{#yQw zPr6h)P8KedqTf{&y_QFD+Cp0EdDZAGl)Xy1t1b=I_o`Z^ipmC*#L-D<%QF>+1ii1K z+%*m;*n{rZ*2-TcRwoKzg^oO$vJ7#wH;{+l^OaGz@1#-8)>VWaKvTYp!lfuu(JJ$E zTg9+Migd#k*0+?S@bfANTa^Yn&U^+ziyzX$+UtpJsVEjYevE9oV%zYG^u?C{fLHj5 zN>r`D)?LxoH+M~|B5@go=uK;_JXRuE!?teTn66d7a=M4wDv}j`(q66FOlZ)WEh=eE zqmg)&m|Ul9>z^G@m|odLv8+rNW|%n~f2%*Y^p~V5-ZS(+r(d>>g2#JpU6^d$|8hOE zEfmd?uJ*slHp*rTbd$Kt4CN(%sxPBuKb7K!Em0XW{3BfrEfq3){j;msEBf=bY7@Tq zni5*o!+LL%aPQ?RS#PcSR;-J5(na>YK<~~^O50jVh!MK+Cgd&aPy5TgGnP%4MzdSQ zuUt7T5gos&mI`X2gCA+49%5DN{K*OvOtXwRKP{-cjJKhawZEmpTH;%UOvXxUv*zug zy31~Dskjz?v5vD=OZ%)$kg8sMa3DxDwf8ms)`=d9Aob5TQo zp-ko6coxmuV^u46ZOZ>W#w#HLVoo3O`>h6XIxLplhozSE57LR%x!$ zwO5?$_-Phf^=F}LtuRt3=%ZRAZItLj=c>+b8ngMuaWbyWN$~AdpRO`!u2fea23bjb z8qE~zhHYP7vo8Wn*axE=DDt($^X}JK{}X1~2W^MitagM%KD*_Y7#ZfR#<|jWa1kcT zt1UlwWYUzJUGrQRTd1h4&SG^WIy20E!}Z+qB~fURQiBt4Ie$+o*$h>I!r62!jijG zXK?BBTTrOzR`s%KVLxQgJZSXH@TY#*ji znI%exA)@{|I(MZ0I-;ZgI-;XqI-(`vHZlTmzsz>^aJ7Q}&>r0>MgiiWQCv?(hI-!$3 z(+ORN%8sSTO%xu}W%Nv-D&gLQ^T`(V?AMT4j^j$ln=o`^t}UI^ADyNxof}JS>1bbn z2H5iakNkB+NB%mZBY&OIb)Xno>W}_1;|G(t%S_|AKVc6{lvFMau;!$S`|@zkTg_r%jf zdmsH>ZV4yv=u`d5w|FP|m2b{&%Z6{xZbp@3Hq^yifGm5FWW=a`<(s+PoV^HM2g_jV zM{dr(2#$eoflHvf`(|`2-<&-NPJoxeJ7Ddao3l}{ADjZOf-B&*o}07n;Bhbq&Vl#9 z;74!Hc7dnC8E_HQ!6z#>XM4a5mD2b>1mG&*6~K=Ghu(?y1D*!F2zU*!33%VT(0;&Wz%{^M0d~I|?FW1e z@EO3%fbRhI{VduK_&DIRfHlAyfc>**Kj1OIp8~!LcoT5&0NM|D3h+6=b-+&mhYzCt zfJ=b?4EQGCHsHv8Xg}anfd2xx0oXf-_5*$oa0T#ZfbRjO???LqX93Rv{v2=<@a{us zKj0I9tAJMkKLQ+@NBaR!16~BY2G|6=ZvpKGTn1bN{1ssL186_sV}Q>9UIu&zu0|Hv>$L5@EqXJ0XG5f{s7t!_ypi8;1$4+ z0EdpC{eY(dF9KczYy#f*^JqWdGT<8EuK>G$0qqBT4DcDi%Yg3y_WdH-5BNCXvw$_g z8-V@4g!Tg-1Nu8>Wm!Ob|!8n>KYq=-KSPoIp5t8rSqNQE%$1Z zb_MZjhr77A*ay(XLz#O*pO8X~c4oHrNaP{7!K)HY`{B%}8#th?0Lg{(nVSbR_v&GW zNRnNX^Q&8{^OM=_%R%gj0dd5obBl`ui7PD+fh2IUg*v`Hw#|_{JZl8*nf!nYuZOzU z8hZ0b7Z(p5I|_FI-^@BXAF?Zkyt=69GvS@un9pHc`CD#mTXA@EuM!OU8bc)FionP) zS6L*5+9vvi&H_qFvU|_2t*u>qWN(tVuz%|kwd*ivHqDbV9;Tx>nPug5mclPmM+aM5 zgQIch6pE{QI4p#in8uLr_g7c9whA8ThZ^`USI>6F1Tj6~a>25$DwnatXw)y?I`k7| zgO8YFBeyGq*jv%_STz&kF#^ZKV_?4L`ghA1O;S`fi=hXnwI~1jTNn1q0nEpapFP8J zx}*VMSCR#f??WG-J9+kNn5EJj6-uc#AZtpr5DK;rF!N3EjJR1I@QkzjM!DIky?ghF zgVZC=1`9m+{`*$r#K#JyHGpAq6dLns(pN01W2}e}dwU^3G@hX+?rl<}Qp9k=<{s_0 z#l>{uU+OoH%;VYQoWt{jL7bx05MT>*RYc!AedzdJbN!g@Bef;ScYvp*(GiP-)WXVf z^tcduhI4u;LnS8ZWH6RkjjSq!5In*T{u@du-82EORZ5`?B~6BtcYH4RjB~xW54tDS6_#F_3Lg= z>vZPi&|a`@jInjNsK9bpc{~d~MZpe<2NLSIXxL=nOVpx|m7DK3zk2*`d5UVX!)qnfr@4Q;JV#P8fG+c7j)36z{ z+zhq0+-`d?{K`;!W?|%-_^M4NEJgQxKR6$^z?E^OMygtIjjt+A^WY0^B}v2VVWWzw z7lmPNzr=GCOv)k{dzm?OwfLncO$uI`Q+S6}_k zkN-9e7tgm|F#?Q8VR_$uM>(qmhng#mR#jbx%wAo~Vb|fPn3QX{mcx*yWpia(iYPcCL?Go)x7Regbi0WS$jzz zX4_|H_p@^Jf;!73ip`a7{$+8%tqfH{8ym^aBwO2;`b2TDE25KyR&uQNTm}}AFK54m zD+H7Qk;Iti^{%##i%JMePrg$T_@=eq%b|3X)AW$+SGZ9IamJgAWjyD+-5!)F2r%>Z z;vBpS<4*87(g4W`Yq>#i^w{x}CyyUH8ty@Bo!0(jMzMbG6St9pJhuK)uBYKC$KY4m zGEs6Y7*`J@=(Go6Tt%LY7~e-^nTth1hAL(-;`=QXn6w&N{-ftEVpmOPISgx`h;fby z4vBnRP_H6JWr#GfXlL02=n(}p$w~F_a{Ep4CQPogm@H+s^tr%=J@_2Pk*giI>PsTu z%IAVDCUwj}1D_ja$|~<;FYl;vK~AeS0~az>T1~BioMQ~F=?U2B8ZuxhQcT1lED__- z9xmZ}6IYz{_D(J3IFX@bFP%%*&j}CO%F$90FH2RKTPc$DVeUDq=YM_(1b!8>gNEk;!s?P!!0l z5s@+qkgmy4S{X(P(-0y_$~W9d0-JTEDH;({7GoE_^_{1Aw_Tg= z$;EJRn=b3Oie*);erXzVAuShWEbn&xv#-E?o!%>F`-V4^i2A({VEmXZFdStMlo#d2 zey0Lc^Z)~KbqL4j3xcs_z-i=gR>d}Q2#3iR@ z+RpQSHPeRh1ajg#zU|;mAu-`#!I5u8e#Wpy0*FVCB1B+`6ubC$6@ynWdj`kPmifBPetN zQp}(R%#!$5YSCB4I6Mg%*HwZzPG?%s^vC~QgniL;l(NI=8Q?E{>2oW6k5S>5GP+2I zH{N)#X}=h6q5*J^c!`Oe1uh3Nr@Yh&PH8MoU63K87iymo;vLu}rk)G_l|TE^c5N#O zC0(`V?&y4QaA5Cl(c@DonX5Gw0`TQn&pIJPcL_Nwe5`Mp@`DtPaI7eoHaL9Tje(J{ zC)8Qa4u01QB%%c)A2Z}eu?tnt5a0GALPAdC?X=%)Tv}~nx?;qZ6T&Laf6Q1szitPL zpZ(V}4t1rjIP}$NK5=nXI5qphbN?C>Ys3~*2qBDX#l83{_TPW`Nggb|EnmG^jg1s9 z(~IkQ;T9$4{fBU&r)z;$Mjy3DC%LqpadEltYs0Nt_;QVH;);k3891Lcab-Sh;7;R4 zSQA&8(!fQo?)&uI@mIbsXz+#-Q9teb0$UCU=r`IV*a~_t)2}Kv_*xD>U`kr!)bF^s z)NdPZ)xwuLYvNL8O&PGs=wYplZq)okdB?@2yluFZv_JPKZxgqD&Ej2``J?=e!QYEV z(`aY#YC5LiXlFny?m@Fyu*?%&H!eVujiJgAjjtOQ+v2)$k>OT;Tp&T`#)ZQz#ziHl zvgdL}8OD4uE&{Gn^z4>GNQOWgCAteaWE+0p9J;xr8kTy1&M2q3gc}hNsgx^pW_S!o z;!+9Dqo8)>W%mK-IynCMebFkI&}tX%Ne~Z_T&>W zyO%m7;nLK`y{9WfZp{0?GUQrtQL{)(iA^$^T2qGH)C^aKXM=BQndi$XxXD*IHDq8e z&OM)!eZ(JGZ43n!p;ItYX6|nORb=`O)rK;s!2BMbFwT%|D360{L%GDQRN#y+bw+t} z+^Dk*m-5DY!1E|-y2`S!X=uTX#YBq<%G<^_A~;;i+r$-l$&;=UAD&FX?)Lz_=UAbf zmS9fNPdxr;yjPs|lEiJ=r1cwza~$(POt_UK=vlvwgKPa(;(}YH(jpd|pMsMNeq1D6 z>*Jhn>|?M_xN;pJR{)%Z3Rf3tB(cPuIg5MYPkz^z4OCpmmpWtpbh)huR0PI>Iupb( zaH+F4Tt5XHU+STWOFcAYAWhTGjFW_wPxZl=TarOP&c8@;wW`RxLPA_AgW05)!J!-3 z=+M2hu=}6=eFdDaj%TOeeqZ73_Z9Gd!rSjFy#2mH_xlQZCr%{bY zf3-lBdaE>LOB%QOrza+U6|8@CVxrjlkas0m>P<`t+csPg!{Z9YIKLx=7Zi5(z5>ql ziO<_O0ev*`ee=yX$9P|1vWFuRd5#ubJhZdd{=UNef}kzTPfV;%OvFkn$*qvCV_pwu zvfo1xH?;g3s17M)<2~3F0^Nry!*xa$^H4T1ar(h`O@DIwT@RjiGT^8gAk|o%SAdgT zcwynzdY$q#RyT6wg@y8cg1>? zjod4I%hwfPV#AdZ6>l`*4XC#F6`-#wsh5oPg#~<{HQSG4$|;!=d0ZFu%Mmg$ib~9J z6hc-;?A7S`qM8Zu7=gn)`XCJWK}-)AqwqBw3Rq#Rg6=Cu#4Y~jZynV$vhUr0_yNmJ zDgbt6xjfls|I|AVe+V2JrVhLc$cigkFtTk!oWymPPEa`iy=iJ0J&vlI*ez}XrxayH zZHa|@_hF9Qcke=0SRqvd7$!%dF`p)V#iBaKiU_gCI^SqKLr>h>q)4R_!x_7c!{JlE zd1Njtden2?Z|Jb#686N@J0E1L#QAwAp;Q)?<%;VT&j@lYB-4OnAx=eF!NU-Ta2JV( zk%dwOis~p>)Ova_ags9*vR+*lwvKP5#e!~_xTao!;a;Zo=6Vo}0vCMoyq}#OZ#;-( z@f3<49uVKj(B3x1T3MI}`L6h0qTq@I1%Gq{>j^=svMrWyx3fvr?}D5HA30SqhDer> zu66yZh=P*g8AD~SSmqb)qCG&tFyNwbZ3;%eefacm!kzxGDo&YJE46gxO6}&qpx>~K zvD&?UlO$paIB1?+{6X_71N5vYu>oKwG|c=R3L%5sJ8Ld*Os2#x}2Sp;Jz8;9B=S;&@| zOLmr|^(_><2jKSa-=8*Jf}8PVBJezY`nNy&(ZPxpTTKjWmrIsYQ~UQnz*!|YUvrAD ztSl_td+)w|+C0PM=EdSE>pPvvA^~`b}xZe7~g<#WdgY<2m^&mcy{}i5TaY;E*WB z1(C@XfjXYA8|`e;aKgTdymI3EL_C))Z!^@*Q}INTPTLxO8AUbs-W6(#m;Z7tl&T2%Nast5$Ma5 z%W&25wHos+H-&88=<8V3KwtC#@APSTccYSFS|vtBj5jO}7kQn@a(+-mG{Y!RZxmo+ z!g3K-E*_!@mn5z{;D!J{%kGbNJsehN^yAO{U;iubRxB+1FTeZT|ItK)MwB&%gKolQ z)0OpGkQd#N(~G6&7iBp@NcB&D8ty;P`}FBJHft$WKiv-++a4${?4`Ni>3KOTsRZ8G ze0PM4>%pwEthTn0sH1H*QQbvDOvwJsgjI2b*= zn(wVt@Wk!J&eVj*STC>w_QHh#t;m^N`-OlBGe#)PglERLgEHKzg&O>QS|C>|q)2Lz zW5uyUlf(WO7TV0h4^wOfWJ8CY4EY2Hc0j7&uUJ-817=D5Tehj8f+UtFhsR@eO<^i& z#14)9y9oPYM{a)M-+c5VANj~f|4p&of$7jy#%!J&xdk9)7S^Kz;C#D`0!N}BKF#yk zCoG4dadb*!c3T%fTf&>=x$D5rktp!*ee|Qh_iumqquaDCZ&Jx6Pfue)+wR9oPeHp~ zRpTwBt`#i=;LD*l?`gZ@)A#P$yKC22Vt{2Am#%#6c-%pHhB3pEuE_dh2fynDCQyU1 z8#@F|XA35#sMv|Ix}q zrlb+~XC6F_y+OJd(NUp{YsFnUJuy3R`o!*uckF-gH$7irob$zzyfTsChl6}itE@PX zLX7tx!iAo$1%`ppcp{Ws+RnJR-1m)(%Qd!%tCf~Aa6W6|s?a4a?pRHYiwh3A@7t1n z->3hBvb0;@wI)Nry;1WI=BKf7Det&^Dew5WhtL@xLRU2I#rLRHu?f+!?&W}3+=FIUIm-z>=f(xQ zIlH$Lu>)T>F1E#W<6>J}H!d8m3RueE#)ZRG0ZZH+qk$iwI*(EYSs#>xQUxu=3B=pcwAg^ zco=GxeZ<378^a1cS|ePk;6-P1u%CZfSVfN!y~R#kPJ#KxPX<0PDx!(Ap*#+*4drog zZFr7@OM8g-fJe>0keE~OxVV&eTwKaKKJFpxtf5>u>UYy>3QjWkagk)OJ|2f}PoFu!Zh(_e;p!rdB$l{e zJN=s<89eeiU$zodmhxyjte-Bo^?-`Nu&Faa90Qj+8yA;)7#EkajB97a?SpY2;YvTv zzerXD*R*UI*v=+FJD&6JD}3o!-s<-i_V)((`x&bm-&dIG&Gr_jdU#%L%f7F04b{-e z_Z6lPO!ck-ZUFZE)KqU7@EG7K;5uLva0IWRd<<{}um-pZI5;`g`)$A_z%{@Pz`nac z4|oi46>uG}2{`f&&;zaj)&MsF2ls&wrzb5!_b$7~l$E4R8~1@Mk~|xCFQcxB=MrPS67$16&1M2W$e4ybJVzD}Xh? zO~Ao-gC1}Ra1C$+uuG}2{?i`em@4d0$2mw1ROj7dcY;XHNXwPzJs6# zJO;Q5xDMC^9JvqlfGdDCz)irxInVdV0QTJvdcb3VtAOi(O~4Txc>giL6~G$c zCg9*a=mD1i*8n#F`xZbCcnokAa2>D-IPw7K0apNPfSZ7Whd~dx1h@vc0oeB*&;uR= zTm@VQYyyrv2ztO3z#8Bt;NW{f54Z%l2Dky(_dd`A9s^tjTnB6dj{F?x0apNPfSZ7W z?*~2L65tx(24LR@Ko58fa20SJun9PF1oVI_fHlBPz`>sfJ>U}H8sG+C-!Fh3@EG7K z;5uLvaO4+354ZwY1Kb20{3Xx>E&;9qZUFZEGUx%10j>hB12zFi7C{fV0$2mw1ROjH zdcY;XHNXwPzK1{$cnokAa2>D-IC2d1fGdDCz)irxUjhBE;QI z4=o#q;?(tD|23X|{_Z#Gdcf&ZT|HP_eCZ_|(?S^3mdzIzw%&LHPuLIFvo{y&;rjad z^Xu>c!-U`Ko%myU9v`nH%^s zrFR}KCe|abnFIISb6_X@-}w8#e`7rUGja@8{LDhEaya|~?$Cx8PO6w~2L>+UoP|{= zC>B(;7!Z{|jG2h=gADdj2KQBl9_=kd3`DfgWTSP+1ykY!#HDPUsQk*=?=+loc%F?FzaZ+ApdRHKG4weg@#_e-h2xJKVZ-Fx3>B-d!jHBSxg<}DuDSMKMTd| z-Al2OerP@ep`%#I@dz$;y&l3?K+91F$|_Ox&x$)GRk-#JgK9!xd^!#%0#9N{1sQvz z<0JTVDQz*D?r>-+jz(>-G6xZ|V`CvAL!UtW9S4;Efp-)Iu!!~bhWMC)FrT!) zDN$AYvcr0s8NgBBmB9RidCpgWnQd6t&UAd?*zu%)>5FaX#FATZ)X-WAX!8eFg-ra2 zLW-e~iEsIsl8<8m9Op4F;#)x&UNQ}318nKs<0tg{0SE3o=FZ{sSjo@6KSx>+Ley1Zz_I^$$X4g-0&9RcPXcs9%VZwhOA{D0oO?imP zfw%UB2=`V#4QDtUsB;FCeI#OUKjW1Wb&Lvs$b^0_z7#>$#(3!Q8JES~pAsO34E)-Y z2~}Y2j<{rY5?+=`!K9~asZLd%|4=ZLeH06MdLVFEft`Np4t!vuM7zNE*O0BPIb?FD z{1+{Vh1Srry^3g(C;bP>bx&Yw4cvkpUYuA@TO{F+Vb4MR`3EJiTdf@Da)^ogwGSLt zu>N6|6+SFs29%X?>{dmN=!e)Cy}rSsp9VJeV}tr@uiy~IS6_YQYkofue0CY#&=1R? zf7_GA+B5yf`7qj>avG#I2YG5KaB>-c$#?cf{7_jMHpobOLsAs{g$X>zKj2#s#b%?(3T!W|#lKvxtM20bmE!Pjf_1b^6s$>3wo3Owr z=96nW6fDnYSs;t}qwGiU={fy(^{?8qLku-|{%4Ol{nwE@`9}>I|5Bfxf5Nu;Rt?8y zIaVETJef!&3w1JxAZ4`An6`+MGCPGP%XiIYJ}%i7u_enkl+0%*$}Y&5BV-=ke|_y+ zKO7c(NCSsubsjUhY%!* zH;h!-$1G-3|3-u|vbZSU?!u;Q*RHZm(`-R3$v$eaXFL8-%ipcE)D2Y_)PY!N1GAET28JqO)Q_`&h>{Lv%I`-x z+RDXozaphDc=Wze4Vwfc7f3kP7kTdKNq!8&-N*nBliAx|JRnMR)Md|sd5~jO?^)0f zIU2OJmnA#V5Ak#TGe=$IU)WFLFEK+GdzLOM@VoeF^GAL46{^9^vQ*0 zrwm*}ifTee8Y`?J@gHi1!5JS?+@tbM$(LX_UuXFQHu@Ko?jVfzoi?d zsg!eEm69n|&OcUyMp%^BP=1RQ^AQ>PgvA{`=`5S!FeEI*z0x*uiB-{Scj+q}pZMgr zUTeb{zVy;i@-e8wT&M%x*1HO&p?lRL3iarA3A+Q_IQ5Qn>MD!$`e(kD+?g~M!!5}? z0M$ANo`}K8r?$L(&u$6K>t$->sT+PBdBh-62a>p*qmqgXflEcaQO`5aG{)tud%84Ujamb{& zo!J|H1JW@NMnLL@3f#)|3&zk3*HhW`5sd+DY+I^Ts2%t+r_rp{jX@c1(Q`w<+w_hi z%t1XjkbAh`p<5N-ee44hR;0}LC%9|HE<_LK-3YE2G;mgp&3q(@HOnu|<)StfiMu)shUR7F-y(h|6~?`>)LP_aTl{xWhK%?<1; zMUVdc(OvjZ^e%UwE))^JAre?eN*}3wq9v}w1%B~GK+7Kv2a#%rzb^+mQBLHsg9r#m zZ4vS73l%@+b+4T2jYdJ8g@sl${<`Y04EdOd4uVp2m_Es(o0>bxZ6`Y!pZ@rbn9s-p zQRP~H7zcsk-wpKpj-OrGwP!L>2s$JhkZc(8PoCX7xA*MHvH9yge<)GDE>c|IDNiUQ zG=cYj>{>RgOHmv&RNPPl$)~-w;a4ba!{`3C4IkL8_;R2(u14s*JT>HPsjQU7iD)W2fn_|#_`KK0p#FZLtj(Y$%7on94VDJAw} zs1hnZaS6#)5*7Pt!6&w27=@<99$N6l9t>4N#b3nu2>o>?^p}*Hy&*A_{95s8pG=p( zM-ZR+;xKu_2_HYcq|A*+vuDW<{Qday_^iDR-;XbkFZ!t^M?EKhVV@$WwKq}(d_TUV zEXeQ2m*fY0VFvrQyE!3k!9dW^5X)dF^4J$lGX0znKkcA~z@Pe*`pk3qmL*}pr#`cM zlOOeF`2nB$%&b$xLD51xp8U_fwm&zbVFXG6xVkwjAP98 z7xSSX2E9`Mg3pP!MgN1L5RgnG!LqrBOJauu7DDZ*ZiXX>(fp7XO<)Qtg z-vH*V+9IrCn)0{dCk&#d6yEsRk1<28|Fz(!TxmxSp5C0_zSfzrd~hU8sPLpLW-hp82M12mh0PFb>LH< zZTQq@%$Gr+RZu@M-^oM$#C(TOsy6#nZsu1Ok+4rjG|T+UDm|G_Y8KWJzbTK}b0&|o z=SVn4#J#gb?A`zD?=9gwD{sHI^!9s8cy9&oDZTyP65iW+`@N;E_m=FfPzhJ#>{Vy^ zbpD+u4{$!S=Q zemlm?0}TnD*QOrD$K&{TcAt2TS6ehc;3@I1gK9!xq%%MEn&Mz8445j z4HKSNn+mHc#a&F+FZ)uATkkL!+t(NWv6$>DRgS4ssqp9I)A(Y{3Y^JQM`GYJE{l71 zS_tGJeh4CdWbKYVW?>RuVi8~0QdPg_Un_>Nk76ND*Y~gjJN;B0_`pPoc7gA&n$ia% zB~@SfFIbR@LPJ9k^A*t~@5g*qOz5*JWiuA!@Z#hMMJnNsW6#>PIOHW8yV4qrhh`dInpxnM3~ulR*)|2D zpno~I2^8LnnVt%kUpwhWES4akP_Hr42Vp}f@vnp1WwIf)jpf~u3T+ct?TM*@} zV~mlMGQ_|tVkL~2C6OS%9DLUze=U5fL=*U0Gh#u=SNzy?^e>Dvx%r6S71X^bwe;@g+U;lL@i}^6KFNnFR7xRgj z4hLMx@|8)=Am)#BCO{RphRA9q`S5N_}Sht5mP@ z*NL{UAK@s~RDn4HS*Vji#DY4;@`#f%8(&#|m1vlcF2SyBAHN_I3z!cJifM~5pYGRx z{kJ~yk->^(_q1EZ|H2mr3o)PE!5d$4xp!f~^&`0lq^ipD{l{#)JP|+gW<)G9tiFDJ zs3Bt&G3ywc!A2~(wrlK&s*&x#Y=a$E6^Zavl5^Yf@BF|Gc&9nMzVk210{Olts!VK|YR zV;7KIAkuNluj25dI13r8s1|2?@t`?Uq%LnS3`mFf!Z4A{5c#(JFSz@G!P*2bstKtyR#-#gUo#n9 zo%p91wY2U1f#Rb(6XB~n5Pb!ls>H1s$sH_%e^(D6NU@uOD|}Ka^iAYzO2`={7>~@{ znZ4l-x{iS`0&=yM>lcinhqaW~Q{iKuY5u_=uUP+Ebuy>XtksRdF5IH$hM@T3k6pv8 zREfC5+?`ZhSLdp;Nkxdi!O|c;Ar}DF#j$lC> zuf03^eU1IKb2q>6JNOn5-0$SuH#C#CPykV%^V|!=H9iQWmmn*3`}oDZYJ3%l9|hW- ziD!&6g%ZPelc%Uf|31g!eTx)fRiu%eU-*4A_V<7HqaSH$FB&|?drK``wH|g?w&}6z zJLX#{rX|RpprzrpG6+Er{N=_iIwE)A&kXSx32x?|UT-q{T{aXDKhPMiY-&?t2Qldt zdis6lNNM@?%1X@J;qS|V4jPIab`$~Os4e2e)H|vDF|T`}ep)}bwS~P^($uPB{Zi9! z`>GITEE@#cth;94k6q_Gbi`y|7Q$)+{_HeyijFfe4Zr-lP{2nGq^kq|+~M6*yARJ{ z`fq$;NC^u5`dbH-D3<{FfC((obW}jc`#*Lq8`dQ)psy;jdnl3*DRzX<{q0Wpb3f3A zUsdh$aQQEH(4Vo*|FOg>Liu4|=yCpd_^6e;USswKxoc5#r7fU+GF|>2L44+`s~HG^A74`D$73Zq>VcllkFRm?{rDOO-;Xbk zZ|zlK;8!9JpWZP2Xwf$ED^)Mv%?W7>0^4fEG8l^f!|(5P#(!XQPn3uHj50Ff@U#3% zYoI=}{B7{5&z;~?KRdyPY3}&_9mRu>{EpzLhn2!+ zbwtcjr(7JR9;Y8E2lE>2{C=A{-3dN*x)XfbXd6C-=bBVg9Bf?8u@BntrMzn5a}C%D zKKXnS9rp~c?>_xWt5(9An~Nc$3$>)p3v)_7|FbZdzVEL%N3hFU^e;_y1aXcS6F<%o zW8%j#KPEoqPrm`on+iHZ%D)qQ%D)qQ%D)r*1?b%M7v!dOpsOmI{Aq3gr0Hm%R84T2 z37`11&oV#uFALiGm-(a(F81%3__2S-#Lw0MCr>7SWzy&~sJVVpS!}Pvmn&wuFyd_2 zaCIXG8Q`xgz~J*)@j_j*RhfRMPsyX_E1HnDZn+r_W%bcr+dE( zxB~bpU=#4rUDNo+(sb`dzzx9ucTD$w8}KQ>8sJBOBm1U%9|v3od=s$mr>A?r2Dk)x z8E_MDcnb9co&#J5?7kcI1D*n01AGr~a2oXkt^mFY*aSQ@gZcq40&W2I--G%Ap8~7_ zegrszUur)NxC;0tVBdb!54Z$)8E_MD_-9Z*;5oo`!0vaVe!x?JYk=|u>WUKKj2efe&ei8Kpt^&RZ*!N4QA8-lqGTfZdCzAMh058sK|?gGW(6;0oZYfK9+d521d*i+~$|{l`#0;8TD#z>fe& zeg*Xdt^&RZ*!QcbA8-lqGTAu{74S{KzLTi`B)+#K)4{5Hd6;i*uCCf7f-^$9`7ufGm&_VwrC$tR2gTYeg8>+4_Vnjn2fEH2o&Y#l~}fWGJTP$q{FI4W@>5%cS_sb==y&A;~mwvXAiE+ z_e}Ozhc(^M_xr}i#SIt=dV&@>$hu;_e_k@r_igt|7;A3vMz69%SXHgll}xNn&-n8ARZj$opk!- zSUA6=O`^P&M#YyF2M^7GONG*-!Q*J~Gc5Y_o01D=& zDdSwSQb-BBU@bL_CYLnwkTK}zvsglF5tnkDUPLV!UDAuF#haR=YqZbnGu5QAfGk0y z9~^So4=loik9<8TL>w}slyzgH=sm@mn3`KUzqNIKX>Mwwpwgsom_v{ONH0^0LtwOJ zJdLVPRC?=HTk|l5VjApvRjaDd<@m(Z#>Oo_kwF4`VGHy2q@N}z-K|@)I1DjwS4_WU z=lc)i5N;fnYUk~k95;UCG_ABgvC7B zpHF45O}Glv$Cvr0?)sPG976q#r$NU}qBu`OPsrx6cl;Jrdep3knsVndaF{SYkYElU z;PR6ssH*647ECSOKQp-zr4nMXhI%tfs9SmqM~X0pZe>+3It{U_$MRK|Ii(wUog zbO}pi!(qzN`jEzEWE#_<*AMH1i*u)+(nv=xx({s1DRhyZn9+rrn$xFmobI(FO)qRg zf_Qm-L9QS!_Hta%iiKocshI}f)Jty6to$p)d`XTDGMK6Ia zHmu)ITunf{2_E_*l}U{9<&grRBbm{SJ&r>EEpa2_W*5{EErs=QMJwvn-t#7w5VRA$ ziD?;D=TJ|mH<4(J^>CKSo$8ZjP1VGP3X3qXUY6v7Q+HGJQyEb~8DwNCm6<*lU&5D=C6UUuwa-YL z&)2cvVkGgjag=puikz4-IJ4(RvV7Jhhw?yLW@Dje066YeL}V( ziH^L2d;ax}i%Yq^ur5|~_uaFz*(bwLpDmiaXrWw*CsX`T7cW)Rr84D%opP1(ET;A! zw-niU;5hd~$&ZH_-01Oc-0{Bs=fo&kvwfaFF?^c(&mA%7aI5bArSlqZ`ng3m%Zr?C zrwS~z1<4MR+;r-|$m~|4*Y|_iSRCsu^H~@~FxAYig=ZS{t@Q=z$EM?WFc~#k zv|s8IVO#4XF(|V7_DtfO#eUzNDw}u;wqHzAk;cmQ`AuP3#6)DPwA81cuZ3ySCz_Zl z#F(Q|+ThFX?iy-w2cl6i?Pn|sV!N#Y|++H%b zawnq5>c`Qxa<1CVH{OCPuMQI8 zx=%dA46l8ZvL)sRYf&U)T}MLec)-0+Ug>1*lY!vI1Mg*K&KZ}#P8A$8qGF#VWwfT? z8X|)ZMd(?sOIdBQ2%;F%Z_Db!`e-V0zo?)K3m}60MiJ2r8i}5hF>AQL(v0 zy0C}K>B&QLO>AF}mY%$fy>Sy!a;S)5N10^fmI!WW1cjD*q5hXbANqaQ%sff9wiM3W zR3;2Tf{=D1wvySk8?sWPug?uV=|$fU!Z>fXIEIU*A7O3bI5KF5yr4=KTLT`a3H ze46a2fVQtS5fekAZA=Ig4v8i=%^}ZJ#uoMMrw%5H@!q8iVj7)>i6>)5XCd=2;25;K zs&3B@xl7MH{wEL1y;JNqKlsGs-}rh$&-8G9BQUho!BSar*_=jU$cE-9zsl= z)yveK)OY7}95v&O8M@pa565rA9;hx^l zM?Rl%-*08vC^~Onq&w7a|6Ux+^1DgQ$=yG7eK-zi6VKlIzn^{f*_^;qHVE7HAz=`< z?L&k-+*(xYHij<5B0&}n*I$ie(2qaClZQP-Gqe78pgSE8GRd$L+SYd+gpKu`6L8n{ zG$wW2?@3qUjkeuk21im)?z1vRH#Q?YOfrAW+&nHpGRk^r8`Z^Ool5wFI9c}+`YGc5koK9T$Zx>E*1$6n0zMwya%RcReqAaXRWv-^fZmYep*O1fU zb;t?5d>4B8?sxzC^$xw@VV&n+PkI^k+uP_Fer6th7_Oe3U=pn`bg>gDvtwG!EB>6? zGH=J}I!4fYvof)?Ni6lDx;BYtu-oC4RGX-zGukMeL@O=TFg z;$U?z*^GhGJAB?I@}*W|;*KKNm`rt#OJ#{m73sbm-Oa%L8kxsB#~<~m7QAMb7+3g>M2?NPFy&XN;D>v&o5nk{dxW}mr8X%D7wd8=d>?R7#a&I zk_7L6##<Rj)h(zbEtJr_mZ7EbV z`c{wb3sRc>m+-Yhn?KoqU3BcfE;{yK7ajYdi;n%!MaM<5`~GLu18L?g&GvQCiG6m^ zv3*^1VxJv!Y+o0h*jX1HmJ{puGiRh9bXVW&p>1eixMdbr_;~+?_myP#=E*tL!o%BP8 zoKUwocNf#LV#tN1g3w?Q^BB?o3(qeNhq3=y2IQrSEzd8pA5^^PXLM1MMf=zfkwPPp zj{VR@$A0LdV?T7!QJ-CO)MpnRw-8<9LG)77PtL|IbHaEC?V^3=^B{48oklxjUSA(W z3DeB^i%&etTy^L*G@}k=vPG~WJXp*{5ZgPgIO;PZkSYv7o2R5q21N&*4T?5885A9K zHYnQYWKeX_*`R2nlR?ozXM>`RP8Puqx+*M!ZFE%5pR7*q(S`8)tEZwSH6p(|$;y{K zH!6iT8Or`8^}Cdz9|EVW-?jhv@R@Xdd;g&WL7UUXNv(y>`mc>HPHHW5)_-kuadK** zvwmo!qkX!;H1>{}?dzgr`<(ORPi`uA(XoBbWpr#`7aiN@T$bYHU)JwHw2M|Qg2Bc( z*DxA8@#N~6xT%my%2i_rG;RYD!@MJmhbqP?`xMSE$Xi}un&moI{O zeR=zGIisDm)EDinrM~dYAoqb?*MNS%>NLu^)1K}+zxCa$q}Ri*2et$bYgd*pf_eLh zCL*fWn0KXVZSAYN>GDOesISTvv#dVqv$H-}a+jQJL)Um7&rPa{{Aw)yZH9|%WuEGjQ3aHet-Gx_m@Y%zntbgjbZ&Vx9;X< ziEeRmS{bf%lKh5*aJ2-jy z)zJkGJNmuWy{>%6?=Mf?b=OpRQ#Qy_;dqX0r|awc@jv{-k2~L&{>oPx?@ROcE#5T~ zvw`K*-d;9%J9ZZDF9%!nmEv2{;uiVf%4)u|5<7#biG8_yz?5I!Tu!eqXOI4fT{~M2 z?Ug_-gY{Zi>K)dpbOUwGipNO){xUaxXO7)BGx^Nq%zeksAeHDC<9+IC15I3XH=Pyb zzxVsgDxS&f<#ghSysin-;^6TO0PO0bV}F|Coj1Q9>*L8Eaq*d+NY>j3{8A9hCh^$A z+zg%whr_Fes4-b7qy!#(I^30jS4Bb>+3EYsrWfhPJ#HRkU7_1lEzZ{PON`M$qjXM! zMCUR!s<`TFg$)$RDEon#^7t&@U)Gr5MUQoEY|z?bmPIC}zzvV8EzaKI`^y8b6ys`P zb3l!%PgHa3R$KGlet+3i>OvU_tK!dUkP12C@P$|xSQ+eV{+JBEW1K%ZMKQEuOrR1) zNaxq-lX#(Ry!V%%fBt#b^)m;!Q#dd)ecw@x&cWd5yj6y1xXAA~WB%#dT6j72<_0i1l7pUl7Zx%jygJ zrMQFf`W!0zRyrYIdE5KT6pc%5RVfGOhx!&nn8_LS*`gQ2j|Bb1GzzFn$=WAa?DRa6 zh)2aTy79-6nhN(J?&VF^1IembA6K-P2odc*>%_cNdolE7D#GMq^=Q4RNMo$W*Q>dz zPntDV6B{aps?R133rUB;CyuX`X7++*VMA61czA!g=jNx_f6>yUD)F>F*vvW&hc1;F zx`nOdZI8X0=KITdFwra< zVJee)qKr(XGSep?3^*@|R2KVB802~p`%J{SeFpqN?7+m+=zM=$X;I%9zt1u{t8$18 zql?w7Hv7Tow7$F_LVcmT2U)+9j{I|atx>l-YGUe}B-wP5GDFPNVxhM)YnO#yKg4G~ zJNJ&>Up{l@(Q~pDNg_Ez!9%V8gWq3Pv26E}?J3sTa6gvZcqm?9#;J9weRYaz%w^p1 z`^zOyUmq_6GH1xUC-26d%u;2TTVz? z#E=CyzeS?tg&ks$94{~*KY5(5FI#UJ>o{<8EB7Lbv^$a0zrK9NDhgq^=GVEcDD(C? zD9SqYDOipEbF_}m&)0(C>(h8597Q*(zID?$LX9V$kLtCic2dfgm>a7_Nf_%g60-GA z@E|8bk=C~lzdqxAe(}|V*=4SFsiBKAnyjc1J|w(SIcM4m$hddwaUi7)H_Cx7F1){Nmsmns zdwRxQhMOTmv_x)C&*6MLI=h_SJKp=tXU~j!f4QOfyl%N8WjZbOLj7AGy6d>!4Et=b z6~Lx4WegHTssMQxSUncH`qq8lG2S_*sG+@kwX)H^y}wL~;Eo-$_m|bMhNC&KlnVIo z@cyz%C}A#Dmnw+bH#&)Q&^ZPeZ#j}rRkcqw;!Ecqe>}av{P^R4`SpZS`x`yyUw{4e z^IC>6UTk+T&&+EXmpL2Z4C(xk4cuka#v2?VQ-ZW_g{7u~{uz4@K*KZrRAy!zRbm-H z@k@%B=ot3N_60PXUE=G~SXF7;D=HeptpRj#*~ zqd9TGVZWTHB!=JovFN^w=Wr+(?Dvj@h%MQzRI#5IvitM6^wj*{&zxP8G9qcdw z(C^#0{@@!}+r)jtKaN7O;o|e*0jAfVPrI&pTr%Qac-bU5{YyRQw{=k^^pUG1i9wq_ zaO~`{11&4y^I_kL&Rl#xk!Z{hg0f6&HKQp@d!?KnpA&bR*h^;W&ez0>Dk z&-CKiX7M^p6^R+K=Jre43SEeuNI~I}VqbcH5xFfYl1YgKF@pN^!eQR=2~pNpF<#Tl z-3$zkPf3Lf{j5;vK-&}*-JN0jMCB7*@j-Hr=!BXu#n$NY2hx;%htJzY22^TH+))G@ zld<1l_P;tbDythgGWgJBc0*~`7&hVtAZxelUN4M19fb|B+wsn*ZuXay}!J7>b~P=S73D6Lv}(14w!sF?&UpoX3rr!rg2Kl^uVz*Wqo(y za;=v4m-*9ND%Jg<=$_YeabKP=G)5g!MRdIX8E>J)1zXGLn@Zz-%wT7<>n^%#1Rbwe zy6Eu4L}z{6XLZqWpVcKN*M}}TjMq*&d38&)2t^ip!Dz3#>Z8tVs}x^f{u*=D*)$Z* z(=t#Tq&{O(^q+}mp}(JO^;AY1GT48HZ=ul_SAo2XE*tL! zT{hlBoxXihF9lsT-V3^HyccxYcrWNo1Gqtk2fO%K*TAx3$Z5BN(7=g#j08Eu^Gm~0 zpG*E3A8Q}`A&3_P-w&<}Bx-c*he!}2Mpr?WE;{x@7ajYdi;nv2qN6^$=(vUG8V}T2 zP0zbJC4xRfvj&ZMkeFs~rWfY*RZyE=&Yydfx$4ksaJ7*|yOvTJ6o};&2TBB_S`RI? ziHfB%C=j;MRmkt6lR?ozXM>`xK3N1i=xk85(aE6bptC{IMkkA42VE5w!8SUO^!|ir zcj`)rolNfB{R02os2~MhvbX&DCuPuQVARroGKosx+jxkTvLC_~ak^kZX`0lUbQQ|G z=+dOtq_h5Ot1nGXO*-p`Ho9^VY`<92=GGdhUo3*2j*FmowM(#le(-uaw$D4CV*9%2 z*go%kY8IRMtlx3-2|2E0;{pGKneyiVKhKlib(CWqa zm+$E<^cL^w-Q&K$yoPG%E=|D0_g5$G>8$}a0n0yyG++&|30U5XG++&|30R&)8n6b~ z1T5c$G++&|30Qsy(ttI*HUZ01NCVaYn}FrJkp`>*HUZ1i zNCVaYn}FpRqycMyO~CR!NCVaYn}Fqekp`>*HUZ1~kp`>*HUY~&gEU|bunAaxC(?j5 zz$Re%T}T7g0Goj2cOwm018f48e->%L8ekK!Jc~474X_DVK7ce}4X_DVK8Q464X_DV zz7J`@8ekK!Jcl%34X_DVz8`788ekK!d1J(eWfaMP$4Ojzg0+x>;4Ojzg0+xRsX}}s_6R`XXNCVaYn}FqCL>jOL*aR&9 z64HP*z$Re%myrgn0X6~4i%0|30Goj2qeuhR0Goj2hmZ!W0X6~4$B+iB0X6~4zk)Pi z4X_DV{#B#_Yk*C_@^PdAYk*C_@&}OytN}Iw%S%WD)&QG;n?62};if_IN zZ}|8B4c_`{m^PJuFGD$gg5=>Yw!-;%GN=7qj~H5-{;%0_!KhylKwW_XFp4S z`p_x(IXynieCxKnTB~1X-lNqz|Kw#5!QmsE>%+QoB_WEJVdg1@eA&54kL3-5-D1Tp z^zzEFe5#p3tTw*6TvIWq_RC-Z7GJKa;n0hqZ#=J}dN_Wvx%d`HrL_z7?XQ5mpjTdK zf_yOAbM|qx0B%_OJgG5wXd2wcEuZJ(_~td-eBbAJUO1m}YN~mvY(!}}F$5n>P43pl z4}bjQAC9X3KYrsI|FNz9JdV(RPKy1X+*pV1Z{31d`SO0BT-DbKHvE1ojGuhWczPXweiY{N!Rq1E zXKeb^Nlz}@%?s(%&-}J>UJiL*c;U&Xm*=Ktjvo~7EW>RC1gxZ)!5M4I8A(!b`h{$~Z zkDsLbBZ@p`|m%25ue=L3t#^7`gzm*#;tFEJKw+HP-!}R zZ62S(p~FIys5y5?E@r*g-h76b&%F6sDp&2NbQz=IUf*Ro()ew4QWh5R@IkPdM^B0tfPP$CZ~Nl32IrG#e)InrA*1d#nQ`9A~#D>j&aYWmlHu-xo9Dt#ooja zCFs&!HB0jx@+w>4F*@~mM^lIAtZ~-g%uP96^#}W#o|{|Bbj0-eXn%>1#ccoc`(STIFIJrFX#}PJDKlqxPHu2=;-p(?M3&Qx1Q~fLj4qnrh_RmSETK~(#h!g z94z#t)}txg<%j4eH_}Fq=-!2j&lgn-%A9X|xES)ZwsSM7%kgW{T07?Ea{Zb9jZaB$ zryfT7LjOu9643<2dHF=-WCGF?zTE1+*iRc_UvBkw>Cfns+;;4raxwb3xuCp4e#N5L zWz0*FtUkqjc~0LPzlkcv6211n%tCG|({kB#RE8^4P`1C+677An0mDwAT7lU@$`5m2 ztW_oP<&0~sxg>@Y^p7Nazq$Sf{mby-N>H|+^cefWU3fC}qt>u-YkDuPzjcN9-0h$A zdink{_CE%XtW@w!HinJ<$5`~`MrC0+2u=R=^(CEv3j0a*huVwvQ|MELoCvb{C)I1x z=e<~C%N}Mv36?Id*NGh-oU>NDh%b+Q9xwZ2j-WX*6Cl%H#E$fyd%Au-|KyWO-_?G* zkyErkRvHD#`!BZL=#k+iaEFX?5W?kW1P_O_IPW?dB1|DoA^+{$-1InCTt12XvUojn z`Hx_}bY8wGKWua$P5E*m$h^G&J+8)Mk4O>%KXVy1hpL5>r@;-cQm;W2N_gc8Z=KO2*2eWC|PaOXyNYRe4ZB)|@zOO%Q8@&NnzFhjxdxiaa z)l0mnUr5EgSqkIGz8S9fGq8n&BPRCH{MF34RP~b=u!WO7oGb3p-qd~ewb$OfeEAe^ z$NKW~=W+3YdQmMd19Z3O%hUd`#x`EDeL3nk22qE;9E~b=ANlo&jkdT4D>h-ef8hmy zam~ly%#5|q!hHV8cbnvq=Op3%WsKF8LfnUKZGT=H@$(#f1EX-he%0lV*W({de>-e9HMt%WW0_ zx6b+%bEouLsayQ8k5x|I*ZQRuo%M4E44S$8`d_wf@!P99ggoclw`OWt9l)p`$%E8x9iD~n3@E7Yp<Q0nPE`CD%6O_x8Ut z{VT6V{})xb{!3l&aD4qC?n>P%+}J;iSARZ!#ELThcJo24F)NZp+nDoM(taIzUE>ev zqJ^UUT=ym?S64NpU)%tbYTTTS8&SSyjjP<^x7M%Y#>QVOJ?s|cjrCt~QG#;tZ>;~R z{$PE$k=f+WnuGm)CBOcO^t}9)`!8+w$NI4b%boaq{~zg11={{%{$c&*XbVLr;3^7y z!WN)y@w#=Z>;4aj)SWsNB6UpW@;!5un@DN$YX7Xr+B>laV*cX+z|`dxM)OG{f@ z3UU*~b6?+><9?Boo=kkxbGbZz=1>#J`_GSjwSczqlWJryOireB8KVw;p562EHz6-v zSnV6m#x42H6TKeP-|PfKm5?&FtssWPHnyz*R?bmq@wSko(C4$g_T_cP>3liG%~$`t z{lri78tbN4PNAG#?@`M*7t1oQkzRV{+_^tF!9L^F!-? z)8^XNBg50HW=l0g&WEGv$)QPC=3oZi@$)wY4>N=!J0|mPkJ&M@9eqCSlWhLshfhTE zmdFx*xopYKv$nQQh|6NBtD6BH>YkI5j=r*L!%2or%}>Bz<4M@HNJP4VKumtkbI zS;&E(rh%*oPt33W`1`^AI3NFtxN+-qpXD=XFy_zRzU7JE+W5icpj?DY=Y=UC??@H7 zb^jx#kL4)c!r*X%3-WQP;`1;g@4xuA+(}&PlWL>q`RMqkpPVm89CYDFcrKp$L%c@; zq5TMtXPLf|{{Syf;7}9x3;-gYSf9W_PFS?VRk%kvzcjBu!ZU0c>~l-_@j)Dagz%Jz zd-ZemC3qCCey+X*Uv5fco{t-jX^m+g*YdaY{E^s?)zcD+{j}s4S@>MoqfdN7+!K!$ zUp6BuenEQUCr|SY>!*M6#i;Wr0NQ?X#Qm6dT-xJi|6ZAXv_cR`2eC3U& z8~V%YC=&UVPEjbynRyyPyxGz~8Lra^@+T4-NNTt7`HOt~5nJpwK7ZjBGFC5_efcv3 zu?AKzcYZrs0(w-ANwlK{LeB?iI$Dr_7ClxQBAu&6iKtH%Qd4wcMaYn-WpVN}fiHS% z&mSgEoI6sg8Dk$bbK7&ks`(STLyfGs?U6|k5boF?-m{<#ch;)Bi3Jia%N`NliYMrfcqc5Ko-g2XNRhK<+X2r`TU#T z`SX_gwcn-3z#FdEKT-QK0?Cq+rt2r!df4?>v|F%nwa3e@`1}S~#Bz+E5%e;C?6R$e zUamh!(95OT2zuGSj-Z$Q>j-*kW2F34#Rz&nHa9t<{(6YJbtC9Sjq&<(Yb#!cM*Sk< zE<59es4q|Tv-9E5|9<>R{fR*OUrZuwJ>&k>MG`uU)^@vb2*(^+?5O7-r2iv!lV1AY zRjcx+-~XilN6<_Eji4vLQSyuZkG}t3VcWw0{J>w0{J>w0{J>w0{J> zw0|T$o>Y(a(|mq}Yp>cr4Z^lSY5tJ$C!N;*{DO=>3MsDn{6aDR2&ZEHs@(Vsd{X_Q z|0sVTck^E{|1{`}`KM8TG5<8^i}|NPU(7!ZdS)d3x5$sI(d`cd^}O7*WpmmtU$Dj@ ze^_$~lzX{pcq3-|3(tSz4Tb#ogY}J5hq7lNlm4auOzaqD^pz|*q2(GRdg;GNXOToN z{g=@)k?5uWj4XzUUixnYJ&SPtR=7mZf>H9z(mP`Oancw)e>nYzYP;ueTS(A;@-^2F z&!5>mc=4G(%I-ghS5MA&JwGR%s25*q3aR~81uB!u!we8-i~jTLzm~K88sqr!_M`o;^kPHZ{onrl0yhC+7HOk*{ohKj{oh@`>;G1I z?Z0k%*MIHwa{tYb;>NX1mF~Q7NW1l4RLb^u(`)-lXD+AL_IJ~3`;C@iPOt6nrq}k5 zqUY;sx&5G7@ot7}0^;J&+BglQNm$39%|5IRlcsZS{E=9kD-QQR8})mXD$GAhoT?5u z$^NAB!hXH|34?;(+g}^Kx4$-eZGX4?jrJGylV^+mWBXN~Hu(d&pa-I?LvjmCW05vQ z*!lXik;ck$q(y$+0$kksZWG}rx8rLNMg2N|i00HQ^bcN@UU-W3;I*wE-SpajM$0g# z*Z%9K*Z%9KXGwPdrjVbUN6Sxbb&o%mj-EeQF8bG+;kVA;z!EEf{-r-j2G=3K8^2BY z+l)xL?Zp2VKgZ<%-1Xwy=a{^GjtS1KIE-^E0B@gTf^$2LK_7rkz}x4Tq;pLA?rZgW zs8pN+Wm3C!OAaD-UcQdtSD3+I@QF{r8$9tSyyBM_z6XV0u;h2FpS*!+_Dc+BaJ+%O z`s9=J@k$8%{5qNkh>SkR~u#L9ISWr$D-RGF#{xJ_S(PK=Co6yt&mcs6H zO!P6jJ-hA)1F*P%*RDzI3zOq@3~pz3o@2rne^I+oul_5L7xZ|3p0#gtj!93%z=pcZ zi5PWOYDY^*cxwZ$^B9w@t^Pb*KO@PQ?U~%Wchpny^>8pK4k5^x-P-uae;i%^=ReOXrv@;jA*arTjN7{FWkSkKaE$E0yYN#HMMoP^G9;?Vq6Y->pVBpS_s z)Hx<@Vw&O$YD|ZUCGZF3Eh2|$Uq0V|@)5cxJI*n=b?e!NOZ1a7bF;HJgFrf7xAaJ+ z2>|yFQ5*NtBFB&+cIJse7UK*;mu0%dt>9c1fBZ82i5cvH4f}GZzt(e196dTfT?aj{ zg2ef9qmeL3;LD9h!XSY!kMZti_v8+2_c0R?a3^H`$5bkzVL;gR4LwDPA>0f3 zWn}MA|JbqqA-0>}xSG2Az=5OL{1U%fQ<3NT#`DkT&w=auvvfbsF*zYCSh0R#{9;k# z!yM0kd*eK2kBx6XYtotaQ@V^%+g{&gInxjvi?=#Flb`h-Y*(HmNpzGarFuQA`WXf0 zlVS|ec+muL_%)^S)EbwcVcxdY%gPOr#|m&>S$EN zwlp$bMpym8{_wq~e0|I9&oK&7+yCGbu^&8j5_=(es3hUZ{s%u~{oSk2>KMaDD3#KB zCTH%J4lpmj4=lRRy!@G@P`|JQFHGdQBIEumKFgiY!9q{!Nm+H<<%i^R8)+lw<#!b? zF6LEB5x&Hd+8!>3JiYDQjI`9BNo(zxn#%QO`Zqo$y*>UG=?ncUU63erftOE2PDUU- z;mfUlKEo-KWLy7_(4WyKx$|ezqTEwKd4>Ec3k5G@Udm+kDdx*F`j+vVs8TG^tKG>g z)EIm66L4j?nEkMpTPlUx`(^_v-(qS7W($_fFt1f5@#Tzbt+^zI6ZFrd=rCzQF@pY; zxN6Q{yl#5r%%f+;J$mMm^7@JNq31A&ZvCC!5Le#xWB+6D=pviXKaKu}EhTFHV4_qO zmV+?R&+>OznScuWN%e=?+w3=0$cZ4Ezf!#>ecp@p`VzkHmmIDi>%=a}pPHZ3$37np z16j;?t<_2Xy#Cm7qeq69U~-Zc=bcW(hBM+h8bfg* zq$&FE@@2WUN?vjOF7nITb@J2)4OZf;!cx)nkLoS@3-||q-Xst{b%)uY8&<=^c2<@73~PyMsL8`8W6UP zTsES!wlj=oW09i$UiA_$>K8JxZkA#fjvui+f1#0bV#37gy7uMK=rD_)dGwroV&0bv zy?W0+`|7!KG$CKE-!GMFdHvGZKWdItTjP5W^0m{PUb4s_>d=>?>SFhiUysDmrb{2% z7;}V;OgnxIrzaDod}hYAP@?(%vpH?%IjQ}&1M$-PIIqH013ovejU{=`aF}{XW4`|O z^*-_M+HWL`)>y8>CW=mBT`zqm{Hjjzkullx=};`}U&&9KgIt2;#2g$qt}iu z#*dcUEC6nu^($sM|7}OFmAb_byCJ3VzSb{uS!exIN;!24FXed0VKbi&QAWy_ULNZl zlScdVO*qC(8YPS;B{ub+uRkh_O`gid%SY*X@x@SGzW#I4)Lo}dpWgmGrxfQc)ya_L z)Q7X`FUk}cy|f94S+fW3o1ee$0Mm(+#cTp;jwdg9m;5HVhHdiq`@Dx_&T36zxOo)r zB&U3frB#sqVYw;n*1zI3`ah9M%+aT=cR0TO5O<|%@kIZ((r;IPX@B68@elVN)EHaZ z-!|qv1F2s}Uf1{ox@e)0pO60dlK>hwz@!>?&!TFRB?!)-wf;2v!Yts0M;vspTVOTT ze?>$I%7N8b|FxVI2kXNP%z`)Akqh z59>FV&p%qfE?Bx6wk=+GcCO?84{u+JJA@C|ip!=?oLW|C73LS`nAoi4Lqlblk9|$~ z@iqp%#$$pC9>Z0d3lkI?08DrFD zmJ>P-FM~yQ^k{$Ha5nJ!9ciNanJ8EoEEld5!ekspH2_&Dq`O1NR*}cIFX}q*InD zJUhok_Mf(LglW^ypYjN!%-LjUOIR^~TU{~+_zP@4{6n!m4ar2=sQBD~ZPSb2U$(Yz z!9^EeD9g_YdJFb1!p6~}gBaEob3|wvKWXwq3-a;v7U~z>yj6M*I$_l6;pZN>)*{Iy z^^Qh+!HQR`ZR?St$(q@+pRjVyhokAq!LUb!ckuj8!7X-sk#EVo+buVR&1pZCG1jD? z!EQOn$y2k>zrLR5w506*TuYH;ed?9lfAtDnSGkVZ?){sNTnv6NkSU;b{KtVWqo}nm z4*WC?6e#u-h&~8X6e78C>$9Kv%xB~rlh5Suk-XLMqwUwu*C`-31Qoe;|0AZ434&|j?{L@d)bI|cmKRI8HI0(a!@LW9eAK-}!Li-V(pEAmSfX5m} zJxop6GXRKq{x}OmjXYeowd}w75fMDbBMg(l z_;S-4^L*TJOlwU0xR$@A=Z~m0tEMd!`)Mo4^RR+G`ouYL-RGDb=S+LNILCx{%Gd(A z+AppcSO@!VV*`r+7eB`&x0$?sOxZ5BSrT(vH*bli`CKJ%#6V%@mPdt9^T(SFL zxts%Y{P^+aIVSm?M&jnqUA5)~F*PZ7Pvgy&m~WBcI*lNIBGJlHD0Um4zi8@G>^44s z;T9rR53|Q31TELB;Lqx10_4(Ga7Vs6QZr8b5G)YiJbYVrvkT}%D z$^d;TzSVjrYbGsZq>=C3Di=_sn$cb6y=a z{#h<}`#Q%DYrFGvOz`uZ_6*GsPoF&bNR&QC^dyp3K6~i+*;n`^ZY)4#cIhHToIN1a zZQm)2=a@Wm`;}LwW*0Bt_VoSLM{w!-$SM{s5kQYZaTx5j&wTcUrSosR_PLh&wcp|I z*$duq#r-F0UsevXWJ}ZjNwyw#{l)7JGhw2NtLk{!#dT8^HXcE%a>f zD0;b6v&+5~dfC5@s9*N4Bk0+jQT0jspaWID z`rBQ9ruswgq5u8(mHHDy>3=Z^9B;sj<=E>k64BBBakh>_IOfn|N74WP?7e?*Ugve+ zc?r@G{0gQhMo}q<1tFGE71Zm6q*i4(EC9i*Lt$K%;wqjFCaZy{ly(qFX6THTL0RCI zqiQ%9SJ7}>O@ey0TCStzVl!Hg?9rr{RDCVCjDw{WkEY9UVOymYkLtm=8kNZ?437SPJl91@1mhzHN-+$N944X6tv#lSK%=V8eZP&v1nf)hj8H>Lkpg(Z+ zn%F?b@z?ott&XR(JoD#z9Z#{m&R;C(VzIo=Uo7ZivAoV-O?jQan(~rWXTKq=>)Nlk z-kSBNx89odr?cnB-*sE>-}c)8ATtSIK^E@BY7gzZVNR%R3Zdq@DeoPGY7n zFV>Ve{*DckXj14jK+vczUml{{m)A+GDX)`QQ(h;rro3%pwXfecv2^e%+pj`UQ@;v9 zP5t^1P*YwX0&2?JAdbp+XZ9+rhe>?jH=D&UUWd1A5+x)jLpUi({d7HoX<&*iVEN>rerK`B*T_%q^FS4Y= zgNz${k^lDPt^ZQahhll_fBW**e_vM4#q!qw_T{brb>(>oNbf>6|GJ>0gZdBO=^*0_rKJ@74zwo(V`}{LQQ=j|CoGR=4 zXg1BihR^$ho(sJhPiVbaZY(%c(be4x9lmfhF)dcoVz@R>6DV zGPnjBAL-3*2fM*1z&`LPa2PxWX23Jx6nGvif>*$6;0>?>E`oQ#`(Pcg50GsKgJ2l2 z*_};*hrtv$3XX$0umD~JXThsr8Jq`igLl9h_z?8)8QoSe0PY6&fl)9CJ_C+`r@<_E z4x9lmfhF)dcoVz@R>6DVGPnjBee@sf2A=@?z^A}r@EDi@&wx|ld9Vmx0k45KzzVns z-UaW2bTeTZ-aNh8u$?OH0VDV0C$7? zz$lmmp8-d}(_j`n2hM<(z!G>Jyb0a{tKdCw8C(O6o9RE;4L$+(flq!7!v{)0g<3?2Xz;9)QYj)LQ04lIBd!CCMsSO(|8+u$9r z20jEmAEW;s*MSHUtk58ejvfHm+T=-Ed9!2q}$+y_R%B=`(C0-oN69~0EUmD3uoh*~)D?1g8) z{`F^1X#DEeuReR>s>ZWJSFT(+c5Fz}v!P>GT#V?@xhv;}j%hOKWM~|ndg8>0q{>J4 z7oLR=L9Ry*9*pT<|GG=x-+$XNTA^h%GIV7~s81X`F;2)`{2<|wUJRW(_T6LWh9o`1 zy+ZJ=(7*rc)&2IcPIHEaTuTp0$oNkV<%l=yNZ;@Hru|)>`pxLo$Rz z+EPx0p>fMO#3=hp=vGqbe~!BqU!Toy-;R3@p1#u8CuR9L_XD4PjJTHpvZaC{p@ENzgo~d((bsoO;?hk+jE_rH zY8~39{Ha0zOL8WOuJ171Hl*dP{pWr=KOrPik*o)ae{lLV|4)Bl>GBL>?Z5N_si$AK zB*~6S%c6U8{*^)(kZ*%f7|j(KOxMn1B4Xp?+8$&LDYN-KCVkwtP10c@H5S7aCZ(8itnb9>(>fO> z4mSQaqSnqnp>Q;k&bTZ64wR8^8>?Jt`l#9Qk=kkaw2(-9XyA@M39|af#}6Kwo<4L? z+M*P0ju=I>#kq5mZX;^r;6_^b_;lnz;;!C4iT{3+X~`ulUw-+kKeqI3L+QHk?G$pET!N~s@eh3aY37jRYKRIf%kD{Z={@%x@+5Nh z_bE%$0dd(re#O-#$$$3Ck3Qi8tf8{Ig{*F#SW>3SNaN9kH zUOsfsZ5q$ezAC?Vb;3?O8+`ruzW#g9a(U>Gtu$RnLx+YOft>6%qC=O`48?U9T5YAI z$G`n!StZGR**F=2)E3tGm%j9!4?g(%3tzIVW2Z0q_DkdG0_lZyo$9@G4IVl)%}ALZ z7M&?`EIb(yRht@5^nW_edu6d4Jb3k4h|;k|W{(}?AZ6409sQI0Bm8AXeHO|8ShrRy3^8y4vK4)4;wB!jM1B9N@3OfIo4!`OA zOE0_-=0Zo>^)cvJR|9k4M3f1j4#)HKNS~8!(-unO*Obx3waE&TId$z}256trMA<0n ze47EIk!H#i$d%mreZ6+4H5wtYwTyD4mG=C`Nb3Y7G&;6A15B8u3%QNIn+->!GoYg& z^xtyh?`FWIA3MD_i~}?9V}BQ52ABZjUv>Qde1GDFO&4zLPu$p_xUoNRV}Iht{)B8# z+}NMcS9Bh9{no>c{Rz1<%l^uZ{Rw>{y0JfjJWT6Ty}i5K*q^wuKjGd5^_~01{=|*_ zi5vS9=WgszxL@_`&Hn!n`xF1u_P?zCL__T-oS|QqVL#EAZOumdGIn8t{ltq@BSGya z`Z)Dvr@@QhE8sQI1aE=wgEepk^nRo-yAA9HBVZJK8cc!DfoH(8;0$;fybAsRtbp%= z_rRZlp5DG}8yEy12m8Q5@EPzc;5f*^^We*13H&}d5B>vq7kmJ&f&QENu#f1=?g0;g z1K=>222X>NU;+F#cm;eNya~Po-T^-W>p(V(ZwGt8ePA3s41O8R0NKWR4txom1z!bk zfD2$1{1|))wtTb?JBYq)2z&zU2b16*furCzz$x$ocnSO-SO(t$7r~FfWq^?ewhw*T zPB0Aif=_`*!4Yr_%z-b0MQ{$h4*nf@8(aeKgR7u%GrtmnyTRWE6W|bd3_J;D!D;X! z_zHLpG{IZo`(O=R0lodqKiCaMz$o}Mm;#>z&wyva8SpZA75o8M0pA7hfjUUw02~I>;AwCYEP&qz zuYj+EH^FznJK!f^9rWG8{DVEi9|dODZS#ZZjQ{?btuJF}Ht*UhUYwf5+6u#?+4ea=AmYHgMjl zSCT-s(&?Xq_|M<`=6}|RB<(*sF>zGsBYum>78d#kDg0lepqXMH?>eC@ zjvmeUPnf$%c;)Q zE^VyIlMf%KZPesye{Zj&?A@wgZ1(o{3YTjP?N#E&W&bo+BK69Xk2?F+Pl7fKF6RZ7 zr!h?T`cDWKf_5kL$z5qdZ3*L{^+8GRLIXAHQu0d-!g;r449-0Ts_da~*ElxtIVX^~5z1ltPLoa4?@a^rT(@H5b=tkGbpjArvUKO#s zc+u5h?NpxD7FtGa8eAWmO}+AM>D8-uKDb1SEC;2jGk8^U7+mYapwhW%vT-2=_J02K zN}A&9BWtglKckdUlD-qJ#r3|EDyC%)cS?qif*$1R7%|q^jvdFi_`>(zlC&7M344}- zq&EQ?8ZJw9wF(UCD`%Fy_$i(HfecsucK7yDQY)5ERPhrw0nEQ zv^Ry5Or1X#@BL3c8C0$Hc+4E-xV(0v%ON@PrlrW1DQtbo~reELjTm2>VhnE$`#k4dFw-2 ztA%G9$J9|}^zbB0!)c-yUwjdhm9M_|!iz4SE?$ZKlg`ma$)jtD?vas*x}5ApGf=}` zT^!OsyIZKx$ko+?#uUY)%IB)&73XMF7cGa4Z@RpA|6`S$+q$Z1t_zu<&Kx!MXAAp&S+QxTF%-pDn+5u{wN)ZmLim&kbyw3_(L9|%$3;f_qRk&EcI7EA=`8tn+6=zu%GnJ1JjQG^ju}(l-SVp{FU!dVLx+Yf9l5m)Q$bA8~aoB`%`lhF4z;+b?i@V+j}zXR&Cq6ciW@a zu06Uw&`vP zH=f<2_B(e|iq1{AUL45fa@(0l_rAaP(KB*m&*b}`m1Tg?;xp$7J+wp?Ss--n^` zYvV)y0?Sx}a+IV!6B`qLdy3tpy?akGq(;loo@BhOd!e{Sth#L!5Ej-GPr>D!{uj3F zPn~(;g_GO2pV1Nhl`nlx4E#TS_|rlyQ!+Bi$nR6iLPdPmp+UA%G3e$?4hh?a;WMX2!Q1Nw;*4H;GSLF32Z`jNYCzxxt^XLp`2rAPZBpSJBPRuu~(kZSe4pOxJ(EvPh+DHcuCeKhCaEg zA*n(e!gy?v3j%El9TfY2&6f<}Nf*TwopAEhOJ~oXePuECeV8y|);uUrN?TO2C`T{G zUCT}!kc^3m11E%1`lsK*DVK0HE_qt+VMw*NQpQ$`6*qCfET9ie z2&Gi5L2Ed5e(4Om*aXRg<&ndapW-A}(mxGapS52~rg@Y5d$_c`LkF#f{d8}Cn7?aI zlx?g%%h-nr#MyS8v>9j4ES-04k@P)#tSzTb9XN20a+2C*rbS##UiO+G4-IMG{dY-X z-_E$0l=byV-nM%VNLp){%WM@Ca`yL((%Ml;qtn_&n?Dkyi{sV@gi+`mrRGgAZ#rgM zb=^p_g$uz^_K+KR>R3ZDqTSOz(Dwc~gHqLjgU8(H8X2@o3D2vd;Le;;{%$I4%t)~* z)V6Tt`d~8{+9DH}Wsgl$jmx2(I)f)AgPK_T1n&l2J8R=YHdlWBxH@%8nxf@2Z_f@l ze?}>zBz-5$#r56~^C79BUos?OL9RxaKh{`Z-v}2+&U{hQVqii=Xs$^LR`~mOOF(P& zZOdfoXo%FLlac18d3*L8OfGFaeb;UN+?CgaJ9m#?;ot6^QcSbA?;9DX(D%=&MWG~E4>gYgPh>at!3bR!{f?hY zl$($C9er)m!h?kkhDuLSyYaP|JW}kHrQOpLrhQzPi5&T3@!roE38|=B>wjT?YCp?c zvL^Nm7sB>E2VXe2#~B4=s2^K2mYI1f1}*MS9XJq_vaHnbbmYoNvqX|k%5_nDlRBa+ zz*czZlq;zt@u^u^tA%G9&5m+G4_WK+-1sLRP7jhf-$ z!L*&KYE)>1%gJ#kt=c~kToqouD$dbx;vf>`+WtYb@ z7j%Eaw57kRS!EpYY~|Lwl=oZJ<)6MXHGL2!9)T*k-sT10z1P`W8} zlvd33$W5W&pJEDI?rJ)Jl%@Xq-P+pnOXAr~Vhd{rt=MpXsl#pF&|3?WY#qC#H%0)B^8Ii(m;X zgB7p}#CB>OG_ZRb0K;G(m;_=sH3MeB0$2n~U>U4{Rj>xuK?7T-0Wb{2UTP9dff+Ch z7QiA{0?S|ptb#SL4jR}viJjCi*as%T6qo_CU;!+GC9n)uz$#b+>!87FzyKHq`@kfa z0%99A3l_j4SOUvn1+0QKunrp7G!1}Zun&k$)D)NjvtR)%f+esFR=_G)1M8rH9n%01 zTc~|t5=?;^FbfvIB3J^;U675iEgaumV=W8dwJn z%ryqUFxUqsf!ICGfLX8r7Qqr&1}k6{tbujVz*cDh3=z%U}hpf;F%X8n;m%41;}O5=?=a+pwQP9k`zg&fBla8Sl%f1r^st8!D7o z$&9LCN5unG!IDaTg)G@p!682C>Yh~Gu)=DJ5KXEw&5uS^Eml=RObB*W+yV=hReG(z zf;rnNDlb@9QC-o%D$5EcR?<89vCkWdiBXaSXJrL{`F+FNSxIv$EUg%2XKN*W7k=K_ z%3n(r+IRi!Hm#4;qR|zbLIty{On#6vixA_G6-=+Ff#HtESN!DD-uwy%(h>q^T9|28%7}8lCX%_tDT_ZJpR>`JQI9G#LP~QBWGo7yi+DOZu1EZ)tzg z1=1j+ze-GS{%R;M@)p`#wBxe=$6vCO>t<5^9r(HN5Z0!HEWc)xdNXoi;ElhNH{^V;Y9QCYUT>Gtt43iN^o8HZjhGUS zp8AWHVQvb&JX`x{!O75G*FQL0QfObVT^DV{Xn(X4V+6}~VqOH|cu-klD<=7J&xrLG ze_0RZoe>c86m7<`tY|eRdcg;4Y{7D@!gdUmomh_*?Z@EO#)3@hF@+T=tUiA%+L2|M zS&~UPy?@e3qjc9%gBR?{vaD!P#`v1WRkSH9Se1#oh`Wd-{( z49rRvX0h9$n*}SgENithgEBtfxMEH>c_yiPHr*%fvD}s&y|T?2O)glS73|KW16g5x zwAh~cA#nW$%s3qMLTF7ZTCkb& zR0Vm}@{3k%nKM!1F;VTOKc)lU2Xd@TeTM_}k4=MSn{kNz07I1nk0ubsi%s;7i9qEfUb5dR;;Jr}3 zXg8!8rYa9T>U>}$SQ(y+nf(5V$mcTMt0jppQtb+!7jRRm9 z>;scv3e136umBdp5?BT+U=^%^b4@`n7Fau`60$2n~U>U4{Rj>xuL4&=<0Wb{qfk`k0X22|10E=J=EQ1xW3f90n zXt38f0EWRnFbSr>444HAU=b{VWv~KP!5UZx4fYxbz%bYcCczY#0kdEMEP^Gl3|7D@ zSOe>z(>|s9$!NlU_eRNG_daE6PbY6dsYRV^WR+~{Pqso1djUxJGkb|_{2wTvIC4&>BKC|cQ(P&Bl&eMYXK?c2{|ZL%|wP$P4y(Syr^jW3E%1JY^qPX#`6V4JvGZFLHQ>(ey)GgA2;6CH{lW5C%F@5>BsoU#Yu1LC*_M4B1KyW|06$T z9DgYuZT`e$j1a8;gg&+Vll;{3kMS$m{-I!Oxj5@T>HpA>_$4>{Kk{w)m<1qW)6NEv z-ZEl-)mh)&F|mu#@zo*l^AC*-L9is?=YM{cCyWLjOmVb`Xt4?8J;UgGdSr-TW&EAh z0&+g0I%u!)3-&o%%)C>oj@E(fV>yKt>;rkVHq(R9o&tYTX&=GO57(BD3D39{3GH)+ z4Mkf)+8=F#WL=i*1-%Hw@u0HAW>BVB8hFww<4AU5VG+vP_>iC24zfu{g-p1!9@P5f zieUT-7K9ZxgenpugV&5c*x;$%Tsup`Xml4Tth_%K?Fq&F!*cxa`1ZN$aKFw9c7un7Kp5`U`H9~Z3yB{amZ-3 zM3fY<@*!|fk|k5t$EiJHmIdRzu$W9TgM5~rk6P>!8Ia;W<$jb+!8WmMok$6EP|^pY zacv8~WS_ERrD%^Q#j>)bf~6w*RGKcq>7%lKid_zDbhyM~ah#;m^Pv&>#lTh3Zn1Ko zk|9WJ7n$#9y_nc9I{hf)Rj^8pbUD@LabRS2zVMN39gj;bJ?zLMt~3r1hGXQaPm zruTm|U1HOy^(9t~s_YU=Mzw@ZuE{UhHX?ro>qgn9Ozj($pL^nW?bF%d;AA4Kw+Yu@ z$rs%}9_ZyF&{y8ySqr)tkd>mnqtsu#pZn^~=F!?GYpKVHtlg_Py7eEfo#kB9-yhxh zqq!67$K?L$^7l`q7LZw1w1Gqzq(P|_BvYby@KM+QQhhD9kT%5(k(_&HXjr z|G6&OL`r^Y73qe=KR-l$6ZjYI_oNoBBTWPtmPk+ibTV9*@ApmwLVo%FFH30L%L`OR zTglMgk_g0o%If>Mx0%%PA^@R&n{qe*q}sK&oGjZ;%JYLrfVZ9$5lHPPb$kbVlJ*yE zD0RL%TTxo;%KMc6>pg#2d&;e9PkD>)JpSk!+4gLtA%Ege{L$&KyhJq;)Sj}zslngz zYw-8`8vNZpNI%lx@ANhJ`+N<2%r&r+Z18vZ8vOmeM%LTgz$UW6-`Q*6H?G0o)oWn? z*x>KzHTe5^4gPLk16#)izTg`CeY^&L7q5X`V}rkg*WmBpHTb)C4fX~b{GGc7f8Vab z-?eM757^-E*fse3bq##BHQ4iO@OSDO{C&Cxf0wSo{$7K>L)X9$TZ6wl*I+NN!QYu{ z@b~2!{9U;Q`*sa{t2OxhaSi@%T!THj27f1xe)l){yKoKm;~M-OxCVd!t&yDvYhdfg z8vK2?20qZ}KX?he3El&Zt@Ixp2G4*+@CJAn^xi`M!NcG^gy9ek$m;uj&*T6-v4hHX}|KKQC0I!0#!G~aA zC;bOUz;j>;yag_U+y6TK2akbM;1#d}-Ur(U=|7kPbKopE57xleUGyJ(2F!w&z?Eh+e=r5+ zz*%q}tbwif(0}lmd$6Yzbuj;U2=l5OvOEcvGN0#P`&yp=+n4g()1b;-$Q{kb#)S(T z8_geXYn~|WMBAG*?F8F8`N*Kq+qTTK3`J$2gl}%G)9)t435F!DL6gVKPE+7 z5MH^z=r=x)q%;K*CG8)Kjqzo}Sz1f@(;xm&8%|W4TR0f;;Qe>qWj=;N;UuD5Hhy^F zop&xUJ`xHn^aAo*Huv_AKB2)qHpo;Ye29+ebdB}*&&wav)u8i5EVoN&?!DLjsrnBt zSz0R}=G~_Li9cyZ8fBH+HB)insj ze##tMovcC?%E(e&o2AK4=1I>J5cU0%zHwybVg5LV^gP8P zlO&fb^R8D|sr`4)m=D9h`;R~Cl3Gsc?dlhv`onL2^Rs_1$y6T3NP3mzw25j(Vvp3H zn9P=FB~Js66-!ykej%N!X|v0wL7UxuC)1{sxLGB>s$w<%%G0!!4I5&$^4{zVRh(rG{5)88&Pm{c zaWHN^t$ZH5-{!PGk+Jds&41$?fBYW_f81>P`h4F*eKtOfHo?{5X#zXVHIkH1ri88# zd}QXQr_;HxyfAHZPiQq9o(Qk5zB1oGl^^rS>*~sVR%mlVGi{j(jia{qd{!zPb4l8c zw9VQY>zC`hZ;hO-lryqKBlHhCJ}sx4He2B7#y{J%(9q|jPo6mOe~k^WcWB9U z3Ccp5^}C9k0=B7ifs@M41v8NpF8)z?< zYx@7*U5>_Yel$JNd$0UNJ=#xy{{Q@AN8?Y;@uo%hKY8K8AIqOtxNzaOd?o^9`yhEp z(R&j%FF7#xj@U89j&*Pgm zd9jalS;iY|7~NP?F;*iqf$$C_B3x)BFJ5wW#~pW+X}my`XlwWVJng)XgmWHZK2lg& znpmI-gA?w{acq3k{_N;yOW!Szi(L2`{238a2}g&zMfSX@`WnSUV;+&De@5! zk|*)H`(Qfnu@2w2km5xst}suM2b%f__iAGz55Db{b0DkH;r;=j?j0oi#uK^)JNm>o ze7izREwX7-Ss&6RPaDpvd1OC{5E6@#&ijxEyw=s>T`wCOf9Y#q{p#0V8XpTa`?HYt-*NxZ3rFw2BeuC|EWFYaBA&(lQ-oX+bW$zqkFhB}rFb42 zf8%Rkd*k)5wQDnd@BCiLYek!9xngBZ0uo54(iNR6jUBtFOLrgr<6rw{zeGG-8>+;^ zt&1oAX?WbyA(Vra>S7<;2-}L6WiyQO?1va7&sv$)fip^a-hpVj0axclMv^sL?{47e}JIN| zUJgTZJk4kqZI*|YBTg7y^?K48V?t0tAt?_rAEEmiq+OPlG}{pg4ZI5X0;mcajj1;c zw+NAklyi`78XPy4KoiC}@bQ(!1m)3zkEfBjbtPS+BcG1@evk$g6pG~`<|EP+3GHP=enGV` z79UMo+H+ldGQM&@JYN5h?%I+(j=HM++JVNapt!!ShsNn2_#AUvC6SLbOnAxJg4aM! z|Bxv88azqHG|kB!elDc6Myl6^@QJjdg8m}WKjdgdDUHb3nEW6aiaC;$DCAW|5?jTd zzj8Z8zNf}s>4u%+4Lijfc8WLb6l?7i9}Ho>N=-=`c8agRp673TIoK(Bg^1E~g|Jup zqd(f%_{N_EJH=L-?1?`YyRZ4to$l*d%EBS=P*#0AN9T(qlALRvJM0{V!>_^V*X$2e z_`H-;pYjos0!>Py#cKB}rL}}^>=f@JwB5WgHa~oaP;aOBk&l}7e_{^rJLk@$I$fiE zee-yGXcKmA+s1zlmyD!5$js@35At8aMBau?)_3}$;hlfJbNHdtp(>&Euwv>rvuviA zH7(O03x5wr61n?Z@DzPiBj18jW2nsM`LlBrzB|iygX%E$kc40OsDx??KH(eMu?Jq; z`+Mxq1GJ%&P8zQe2y*$wiu^fbW;|ElDm!B~LEdjo zBTOQrVlk17VoKE&MDs!^hpK$i&=wCJJa}*v>3N7nR!#Nmj~utZW%Dz;|3---$i`0U zxNXOtPd@lyLB_QIHVD$IQt66I{VP4Pl=)`5B3qO6dusWMB*i~9Q6k@c8#?2*b{#ij znuK2IqFFLhe7ji_>IEz**uJ_=o4ogdp`oNeA&Nfye{sVBOkr>E|e=|g$k03d0B#U^?U}0goZ}d)P(|f zBh-EjrC$%~q5b$+Hm{zWdfaD+Nn>NwDrsMpP|3w!3L!TNCKbVMumk^#hY<%o?S;a%r=471p@L=2bPx#2p zkB`^P>B$LUBw@mRBH3D_%8z~o+Fn)@n(Y^^T8t?x<_e`1mM;STkRuzI|xd9^Wa>ZTlrOatpidw)P9& zM)=d8K79D`ajUCpoMF<(eTTK!zCBWrwYnV*`qceZvGy{*)1GgrNH zXay8mTlu+(du=B*XtE4Z91EWO1~pOH`2j zEw{FH`HHBoZC!Aj)7KCVk$X$b&sW>JDB)E{_23vw&u5PIw^ZU1l5yVDj^-a8nuY_R z9RcYgKgeSHd1qYwynCaiDt02v657f$g~&F&P{qKdL8BvGH$JerO%`n3I7?e3@DS9N z)qJPt!(I_W@o3Z6*W0emn(GejXq1IA(?6_NL3Zy$4}Gd4xg|-utvY!l%}VcsIMf-H zy$izKDNTs;$A9!$!bD>{q_>OEw|4IZDXVtHLpnE~1L2}wr2YD`7a1GqcBKPN&0fmj zUE||d^?%&n$&H~qW!aCu@?-h4u0!Mh{lEMlOLYZ1#k~hlpZ=}W8d5v6bSk8%-s9xq zxWp%13WwjiQp1Nq?&divnfJQ_^HRi?gdW?D5PxIQ>z@ZVZK@J``2&$9#x0jMLKA3j zMIypQo5-!V-rAAIiq`J?dG1yBY@g@Ptu(pMlJk5V#8yg2_~U;tiJzM^s92;45=Vqo zf>QaB-4@$UFlv1*D!5xJbICF+Y4Rd32Ygt@L-^heY6$_qew5!(I8yXJ3B# z?3dHqvWie>x;#kWDu))=JoD4fzFT)6IDKF@o?w0OEc}^tp2gcgJo|EOZ=;T2^ua$k zd-e~$a<*NY>3iq*O4((rdkpi9VK(H&sAf;0b6vW*;UE9nSDJ{2uf5{z*2O3PDKk=$ z&4aN%*3|A}Te-I4W!Vg)JVVw#t3UhfzyJ4N`O25R^e?{n&!2UT$;ZcYqSz_A1Wxko zhXkb)7BgK;Wk+PFkdw!&o-UrlRaQH^=fbh$vnYMnvKW&G>p7)s|8AxE zMl@F}9k0648@Jpl+D8NAv8=|Ns_#Z8i1-Zin~H=ImvBknJML%FZNI--{rqf-x1NR? zyLl!_`d(cZe7fA*@l)EC4}JHct)@!u-EH}}DMvzDW-A?M&9BqFqMm#R1xpcYaP57N zpD#ifjY_=8NZ+eE?#cM!sdz_oa+tJdQ?Z746qooK}L9?~||)g|L2L^U)rh7#HiGG&7bs^Md^&b}XF(vGa-zMs_9N&i4& zEv|XS)?ZLLW737;3Ml|SKU4v+(ZS52J-qRRu-z#{Z&;!G3h#Esh#5g{_(%8KgC`-)>+AoB_)~d?_}1@xcbBz$vf<-UjPn_f6(U z@i^y2@FrLT+wqmS4;%ptKzt~!f*$-N4uivB7Muku;4%>Zi4$N3oB_+=UC_Ws;(cHW zi0{ND@HSWnyYZ1Y366tB@FozyiQDmyxDOlw3*a@d3VQI3I1I#R;w(4|R={O2fN#VJ zFayp2@t626Xy6m^J}?DNfhF)ZSO?-OaS|K{i{MSL2Dal5aUVDW#82XDU={S>3vn16 z2D9KSSOMZAaR6V46JQ3M0n6ZB(7@L4J|O-PPk|-yHdqI{@q;)Cj)O%Yz7f~Jc6=c2 z14qCDcnz$A9{eAQU&O;;7Muku;4&D%_u&MX0pb&J8N3S`_&vN2Oo3Bi3A_!&AL4HO z9!`SeU=h3t*1&dr9_|C;3vmIw23A22{tk!1VK58M0`Y@*84Td>a01MLGhi9K3mW)3 z6d#CF;1pN_Z-aHP8()W$;5ZQfhi`&4upK{#`@j*f0A2&DKztt#gTr7JoCPc3G8n+W z;RF!BhiAYtco#JAZFnD;0;j+d5TA$ZVE4~aKR6B+!JA+WY`>fO!4a?kUIVM3=WkL! zI1FZi_&Qtxm%+e2)DLFB8L$lA1&yDlelP`2fhF)ZSO>d@sUI8%i{MSL2Dbk#>IX-_ z0(cFqf}W34KREnx{3(h$@W%L$6Z}Rt?WatRM17gir%rJ|7u(f z(>xts$y%H%qSQ+?!qglircM~ODo7(Qya9V3izO$E#xhdk21EQciZ900(PEiQtDx${ zxt}E!j>1PmV#rwGDY4mfh3cIyLS)Kq0TuYl<9Y^&Ou|QJ@p6Wmho+LaMIY> zOCx1;s;z7|Doc0e`yt)%>y4~jvgII<;OX>RJWG;e9-|iX-|AI3Z7fq)I&Orh%(K#Y zV+9@Gj}VehgtiqqRylEmU2&buSIyOq9Hr(|X2eLc=*&^%rKK04G4+u!e)?H;J6aK` zc6r5gp%lN4>fkZS%83hHsPymXC`4R5U3X3%p;kYSJ6at*%IJ~pI7)9L>$+I*_gLrf z5eC8MqZFuPm}QlY9}A;mXnRUS@B|aew_bs3A&%)2U9t*uuUPh5SLg+S?KN`)9E}_mc?;kR85NTve#li8L z*EJ5yP4UA=%QHepmL+~79}oT2%px5(ncyqZPq9#VKK?BIrA9mYL}iuP(WM!Md3G4>vojw9>M$hUYGQ8ehsvp=n|7sBI+rBtlJ=>u$tb5vbRW8FBg zq*UU=vYiu4s4D$fMj>vk-KDgV{Ofatx0Krz5Hp0 zCv*ix=sG&Lfp+ueth3`w=%n6O2MMvGxvSULDIKnrQ|RaYm-nu$o=W|YG(W#}{S~?} zesbZ1fn4CxhgfgdvA>3s9#?9*BuW5#juG;$t8{+Qd6ypWOb63>|3ILH)! zh>C_FEXGQj78_@Dq5y*)lCnh#Nl|_}BUSv2!j7%Z8HAtamFu`RQh0-5;TtZ=+3EHy-i=t{Xy*E!#$5pb(=z**!Md~kMto=oK>al{Ef z7pPN$Qw4hRBj`!=Y-AaJ8N>bZ@#v5<^3$2?#wVvR>>zWlPW)~nOyR;s@^S*#t^PT+ zVHK2`)M>vsl$#H+7|CNa#5O`KM)DXX=IF#~MTYsS16qFm1%uUOWvo$c+lO1`Fg2IQo=iP3f$K?&gy`6{qzAiSayl`~u?TP3l zR4H|+efzrnJ;m`&ZqbFBk_*OKo{KxZ_c))S|IZJ;|Lt#I@Wq=IUPH-~=VBzV^|_et z_@Z*IbRG(glR+ij+~xZWeL&_#y~O>4EYF2Ui>P+<+%A7|%)k58$$`C7xVwn9*w<*& zmb)~S0Y_Gnze4+zq)aCinUZ;SPH%{^BDgw2rn{C?;$QTMRtKXxI7;2E9Gu z8CElLt*-zg!cMrs_s8Ix@|Yiaj0t z2__6)wAf$QNXJf3PU?gHlf+zeiU;cpy@`*WRbB4t zJ}8_;lvM*J)zDq8?C6s#oH`mwkxX@N*Ao_A2m1MyG_5nO zm$X&~sMU1Rhj}>&BNwXph57JAa(0AilJe?;pQjUf2<0pI$$g&?^{x=-TEdPR<@wMn zKzA*tJc;|LG)+RiTva+qt?ci0@5A|qaCY4d`cJZ4+k*a+G*6eyg$rH>rt9~5>Ae0E zmer0^t!`hZoLilzR=1Bi>*zpL__bSa(ih41p~8`BsMyoUS>&|nOf`@d8K#A*;)$)Y zWcU1)+bgSI)f@K8*lXUfSH5Ade8XP3#$Nfs80M>Vl}k%}tLA|&+!Uhvn~(lggS~QA zL5EpdtCLlyPK(W`cC-plpHJcw$jcFfAoqstGc7U!&Df9gUY3VuxMos{C4)rC4It#D1hZ*S+Q6*7Dz1ZS_2lXFo47Qi6!+iEb#UG)r79h`me(6}l}=nM=yXSV zysi`0)+%SNuxsX)?T_spx%DEl}g^Rr;MfuIleqy-XDyzPhn-bkf_j8SUf2?`xgoSBeMUul3GfrJ`;ezzQ90 zG-nxd(K$dKzUOO4-C0PJlJ!G`A3$@yi^HX)P&q34**hf|EoUaziEr4_{VgFPD*U_) z!n)o-$6o9psQ<9n`-!b}6idDO!S)>NI`B*U#di9jIQWdM6GgkfxnprC3Rgz)plkrv zI**k?HnH{7o6^MCPbgIt~+h$#>}s5!Lh8U z3kzrkSI)-IedgVUmn6?2f6l*bdj|;6!O!jsbgF!j9eQ0sIas1p5Sbt z!!6NzYR5V~E);U_uXR{U8+F3Q$5W@ZS@nFV@5$S09oNFo`>2#|)alcCM6aU*TlghD zY}-4rm9g%|k*)BHzHGO&cUtvR__LKZw9~5H`?Xar9UY)RCG%!7SnuFg7>=3>tko}~ z3WB2(ZAJTotP%8JEkFF-2FIs$av-&YdTadIrTwkbLn3q?om^38PY-`Fx|0K3=%n6m z9Hsa=MeN(lmGrhdXShmd%e>ZUiqOe?NT|~XDZe@TB-iaiG9R1T(MWnX4swM~i97_>vh3(U7iP}wtqf0l zC%Vunfj>wi+63p0S1Cu@&}3P+{&bZ=wNqVv8RSml>cGG1P`zVa2vdi+vhZBl`V(EL zd*4cV)-!Us+%yk#McCev9L0k#T^Z>bc9E`r-z=+gyc-^y^H@WT^WD^5S^V!-Ip8f# zoAT}GgcmCFz}xDGx4=&vsdo81naayuv3D&ouM6Z{H-h+Q4fo3js~z*gyBpuU(u58& z7h2hkk6t0}-cPTx?zCSV>aTke4@5+&=<<{xI^L3TF60z1T7CCA2`G~3RkZ_Oqfg1Z zapEiV)sB2i{JL@G3$KE_q>ZVFdl{^gzlvh5NxOIYdzV4Q;0@A+2%nxaZUH+cpYN)+M8x3RK&3jMkJNQ}O{=C9_FnRJ^+{uBk zusAIas9T%}M;R2Fo-W^K=mP`Xc|SsUcJtgWe|pfr`_#Sn*gHxW`+Bs_->B!L5pBYp z2!S5z-+zNl3EwunB-uN(qvbflx+ZlA-_acNsG{H|wTubX{LlNafA{kS-ZGQyTwiwPzw^5$DF2h?jc;~na? zJ6oswTetV~)K4*gXfd|C9CNR8wGp4auM$kRL)iWJbfoR zUvHC9wmGR^zcLxlhp~5JENzd$RV;Mf@MC^iYr8tGH}z*+a%h~zT65oD+bbEfzjEjk z+nl@E*BkA!ABlhC+TTB z`5MyaVxQLL+|9n86!ki=PX7sAH;#~%PR36+ zezBC7r$h~P%*eA|FmE;QDe|P~eYMv)N|vgwdmpZ%eJtgWD(zDZ7*eVuUbofhKPg#9 zm)1M&w!}KkFVj_WqU_%TQf~4Sh;6ZT;@6EcW$8zSL*-DhNh{EB_zt zP=50B$A0tpuYUG(zcF;rCx3qEzL9%>Vd%iGKJ}}=@%ZtfM?e3C&;8oxpBb9^+&|{z zTT?i1%f!F(tv(I^$~R}XXCpUfH{;4N8|vYyIm=#g8=>l7`DWZK-<-Vy-Uipe@JDXW zJ_AmHSHUXi?Y$Y_$~R|^fd%k7co%HF>E>)7I10{yH^3UWz3=910z3^C!Fg~Q41V z!3=m2yb0b116yy-J_U}0m%s}65bVC?=ImiG3tj{RdOvIq({I2Q+rme{cjm50=4uVEf;o|6m5Z2;Kzm zgMmHt9~=iSffeu}*!^?#AIySRz}w&&7`~hSgHzyDunKzrCjAGGfd%k7co%HFhyH`3 z;0$;JtbyBqp8kWU!6G;hE`z~g`VXD~XTe)w9o+r5=s%bPOW-2t`8fRtQ{Xx98h8gZ z{u}xaj)3REGI$Sc{{;O9GvGz=CU_qV{I~QU90xCf74RY0JwpFS@UJZDV17CYVZ+Ir zf!f(?m9gpO_r6Ece|oFgoDMgKycsz(^FTYl@uMGMe|zb_VmFx3UJ4=7dSA;B7W^6K zR(;@Uyv;#!iBz&6FOsUy<^HE=Mah}65f`ZWB&pi*vhpo+hQZcdyLN5mTo;`E@y36p z(~N@)VFU^h&u8nMx8B(`-ygmIqb~T~A|BI5pHP==!D(OCZ0h5YKI{9+<(nKGbaBYM zk$m0G*b;K+nhCA=<^d9dQ|3%5Baw@VoOxM$Jn&FjcgSOzYUj+<4Gm>;5QFp2-0Gk? zYhEf4N|8-B?V8`1-*wZbSRP+pVIrnOa`anVbkv;XM&eF-fwLA1;;XsEZ;R3U9I5e9sb=SQkBZK$L2h?}mvT4)3yIgWEXPdR+W0B^YjA=AE7=ND-`c`t@ z?E02NC(saRwZT4>bDqRq)PL63U+KiTwMftAO&c4VHtVxV$}O*0Zf%@7BM;5AsKlK* z3d*dI-z;45i`2c-8ynO2h9@VNoi{ICYUTynEn8XgV`KC48ykgmE^=CY=~9wvzMWAJ zTel>sux#del5m~TFuv*^rLM4wV;w;uPpCJ-A<32_9V&NYdHe3$&d&izNfiI$2w%H_(iL2OrLL3A{2 zPH4V<@e#K}96WDsL*$ZiRn@y$1Ff#}4QBL@<05XO#p7d6W)sLc25B_%uuYKB-T zBGjE5L80yhJ#w#VMa(6Jht174ZzChq(>^QCn@^FmxEIs!p^r^Z2Nh+4fGkMJ19|V( z!3TPM7z@d1r0Fk&?=;?>)zxS0VV-bIX=(H=qSMQ5$W`4*n9 z^<_d5M+-S5Ei&o&3TbJMjaNEv#!*Sjd|@pi4-K>DE%($F#<&^siG+&+?X)Ke**-zf zuDzeFY;UOz)>7AoY0pN9!ojEV%o#(JU!Pq#-^9+g2EHN3b%P6+xKH@t)8v6bHI({X zj`}Pasa&Sng05k>1U>sy;b`6qCFWBLq)ngNULHJs z?nyH*VZt@?ZP9v4pYr{?yTT)I?zx(18f(wj1}#*lw7Fj9O`ocKN0ebveuW?@A(wg+ z46`gL5}JA}AFNMyj5;;8HkrXpspMJt&O5hm4ew7%D*{nq?KoVx@Xnw9FfNyrZ*$xi zU_~m+JMX+#w2BMVoLe-{qwF-B>SU+r#5#+#zOAdgQRn9$@Ua z%coYKQ+L+YKXmz)!`B{m>{!cp%ho&Zovx}d3PDw_rL|v0JaDxyR-H43*pA6$j}`Kn z1q(h^NW890^si()+T4@s*{_W#XPRvNi*sVMJQYdM8?C1J+KX+FEa5BKFVboOX#juHS_dl?I{{#2m>-M0nPT&71MxlOrPVCSI;j!^;d!fD%oaQO#+&>|0Mio{8^iJMPz z0^dAMMF*qQ(LmE_s?(HtagMFE*50~xA)MyD1}?QBw`!VpQa{Fwnt8yE?~snlh{8o! z!W!`$s?U3Q-{g%`4!!+*i!_0uChvVRzCTAgMyp5`v*fkZ26H1ON{r#s;8V?CvaZmP zdy9Kljx;w?-o%QV#hybOfehI)5cTh|Mb@Dpk!E^PisSqEj$(s_KvYkOP%e?Rid06z zr_#uV!EeIi>MyCHa*S%)@LIrnoQvrzW2^EvRg4S@=yPVKmS3( z*F~Gt(@me6`r*D%bX@E<lg*fF<9Y=Ugf{XIo!k6do45e3kF3Dl)>&~0LhO(Ubbk4aSjU+9j0~Uh( zO0K7jdM7PY8|Mkj7}}lK-P`g!;c0SiT;zewwLtIPMh|%feRz)R;$52Z{;!$EpK+*? z5fh2$*t7<4EXdBZCd&Y5q2K?y zl*_=Stz5b_#2vtweq$--I!;)iNr&D#QgAs{QgL>3ZG^bq#g7ZzNTW z(N+v-CUginn+U1r&*Dv^8Gh?d{`Vo@E@ZY4l&`zLm1t2r1=7%l>v{Gpj9K7N&G&lubZvL1FmDCM+BXhP z&V(>sZ+RrnJ!zt!I`cJgw4H}Iz9zqsqp@z^2Fp+7SGBa)zd=zojj(joPPrX|4)5Id z^Rc~MT!;?K)Ag1I?u=B|d#~1pv?anOjxMoF}8wAS3X=e`NrvMU$PYq)U5Cs(&YIQsXYPJDG8XSWE$jxza&ItK2&@DF_( zTvJO8wmq(qUHZ5_?P;sqE4kh7>AJtotAiH%mTLvp5{pa1=o385KH*n~lIS7aIZOAq zsDmRd@{?YKc)EwzLEbCw-O5IqOQhHchS+J~P?gZ=vUCMP#@ICW`dpRog%DGq$k(K- z^B!LLoxv(Y1!uz2f~DE9_1#I*ecgG}sO%VY@N}B$xyE~oG*#tYJD8>h z(q@|K^?|~;7EImd&*KG&^BZFsDq>a{i$gSZ8&y} zKP||^)V)Ek`&x4vlKTrilb|X%>R(AF)rFK8mR<7|9n3mT^{=qXjcuN?%|r*Q1`hf+ zAuTm{Oa^#NtY=adzO}{mmQu8hC*Lge{FQ&NfPZytr*C|(aN~OgzE8OEy~2&}721EV zfYEvg;hmPJx+HiVHa4Dr?Q5j}+n4e@+4Rao`SIM7W@Gak7cO8t-TYzty@J=nqBkQg zexv@0`kNlxRj}{PO}(as!hg%wU1RelQb~t-u4jK>tAFd3Eq@2re`m`U?&E0?-g%OM zdp}`YMXSw7X|-54zazL06t3@k1$_Dhdz++zX*BSC|NZy7_+H_r43~-G2Z|8=yH|g& zuxm)khIVb)GQVX@s5IBqoa<&t%kas*O`zeDPj5n+5V>Ueme_w!{9x{B6Cn#}Ea&!4e zOX4_CxskY&UNB=8)FG4Qw>yp<(6HZldny^T7+mV$T|+}Vci%<0bu0c>gHfI@RCyK& zZgJe6A?yTSAoNYTmOiWHN+Cy!5ec-~U=n=DeI%Z(PjW1cnIkC|>Dk1t^`@536VY-N(USd| z%o+RKCuJiCAG+6^jNiI__gy|Y4gu7GSbRur@4s!gc+qGPb?CU`j2j0X1<$PG86R|g zrl9)pOI=Tn=jtuy+H=d6THk=iX6V)iI%uuYKB-TBGfew zJtB2?f*$FsS`l+KR^=Q%&Ra?>w-s~ESDZH{%!Nq3rT?})(kl(A-iai+kLvA8?puAV z{G^A%)Y15}xH#k`eNYT=3$kORNeL-f={;CzVh}P3dcT@ewh7-{^D-s3s2ugaIVaLv z90#Q+(ZUydKU*2mgOm^{b>X1nfQPj*Un4G-F{<&QU2sS}y9t$r0&Av0uHC7S)p8MO zJISPtZ^@s0o-!<4=+q|jYlKQtpz{oky;1pNdE8_iWS;3>p>vFZFA~no+b0hkBpmpp z4V>lV<4qZH`+LEj*p07yjPa?W{A2K`DhfE75+13e6(}JQdQZvUaMsxs%A)Le8h@4& zPQ;Y9#8;RSB42ChoYKZMln^9Zsz5vLc@$`UqHpgnR<^g)23NVAB44HQ2hUh;Dj|pv z*MwkW@gQD3f&;N;WeKOC%;);JC&_(8&f&r})HORL3Gqlf{m3Je2M(0_<|W6HeJQze z4It)I{Rr6Er?!^|Pwy$cJUr+oIi?F`ys}ur_u$W|y0mo9RZF;1UUJn>{kYM|G2xs0 zROLHVp?{SiDZ#bg1j8hI4ox2^oNWZ{7@rAZYttSo)m?<`+qcJESfwrSlnclAz=6p} z9+@8Z*)CO2%_LP=_V;h!ewSz!7t)$ze0+Rp=+;{s4eOq#m4_D}k7rSNt+%4WScOu9 z?iEW<9bN-EyR(n28T5Y4UY-#O@@e~Wf0th*Zd8Io|Y9)xQCb%{Ny3zq1@XHT zy+X_TMdX|1#t}AFH$qCVBm#=xa9QuadRM>x>tAyyfY?gfQbNl|2- zlH}<{DJ~lpr3RNMlFPDwuq?XbX=vn_PJ|wOD(5_jyJ)19B1yiZbtlbGJ#uw?od3x? zWWqKfK62(uzaqO8Lqq@I@R@(1#S4c#*)K``@Spyz0-2lRgfZDF>H4R+inQgc)E|E> zUncE(o~u(i8yYIsYH}9Wv6nDC&wIO0PgRi0Oa?a9>zjHb?^r_8cpu!7PFAFAjR|SJ z%*HZ(B8c(Q#qyRENw_YVH4feU&JgRGkI^KSC-E4qrfo(7iP?Lhn~_i=j;zFdiK}=2 z+@3vq{FOi3`;fm%&)$!JS_;O_ z3o;z!S8_dN9J91cZJZ}8<7s!|PWLu>AoFeLbT7P~cWLg%L%Z~Lv1@2NY4CV%okRJA z)Pn3-vJ61TPa|@NmAx>3PV-9f!LEN7;c3JPu)QA#`OWf#XA<8v^zb8x4jp>r;nL%d z8_9&yo)1rIM*8d+UnNfTVW4Rx7v*U)2+ zJo4D1haai$n~Yhy5wokzC%xW^LhJNnWlAr4Rd)bd`q(rwcj7r&NPVbngKhGK_l6F% zQcaXgtCV9~xpXtnA9s|Pr`M?{%*S>7uIHH0InS={Hx1PaaB0x}Nt!T|-^&8%b?r zv~`Sgr*|9~vu@?V*73L#38}?GoZ&q8X-ecCHp+VnSwR}yJ7Jgmzfm6P;JB|XRO=J; zd<##9K8$bpwxzAjo1Ta9bz6h;o=t&oxR94IezoNncL|nM8MNQAR4Out1wzT9&z{>S<57x5T=LHLrvA5^Gn< zo6Y#%Qr0Eb63^Av(1`;R8p0nl$O>&3_tcW=--kN!)pcy&E0pBHkA>%IKD`gRziV*t z7kzr3HX`?_JQ)&(cG>2NPxU;@z00z0_jHwSm-=`A1V0Q-_|@Ut;Lp+qAGdSV!D)Jl z$YojoOyWDpd)N1FVI4KFt4L2#1E;BD*!U9o+J~qvUD%R0pT&)qLZ6 zlNLsLqmI`SYug6N%;gY6)WI>WXpR%p{n*GH*UO|c;X$LN_B(LOjYl4t5<>_7RC}+H zNf@&x{6n(TRg_1`3bc73B;s{&)W4D|95giL%7+fLLH`Op7o&HfknbAxrNfzqgt$hi zNmX#vzmjYXkfRd011!7dD>|6(6$<)S*w{#z$$3mMtLv;7QqTw z2g5&0d9VPM!5SF2o$_E7EP++f_-m90Ghh*{fORmugYsYjEQ2*La0lhVELZ}opfNys zFas9B3RnljcTyfKfMu`-26j>&%z`Db3L1Z%@?Zumf)%h1hH-d51s1?ESOWvQC=X`A z5?BR|ArC`UQb|RnMOKq~ zD47=TsA{UJX-Zoeg{C{MxM(!g@@&^)cd}*_Rre;oXa2C zoxuRwX%$Il$|H zO`ilk;2ywfz{`LI!0ulFJ>WQC7Vs`$+b+-p9tNBPybjp(i=YSG12_$M8L$A@y&Lp^ z3fOCM?0h>MrdcZw^(}0%&3xM6f40^zEz%1Zhz_w3=9`G>W9N=}p zre6U);2ywfz{`LI!0sW?1C9e`0q+8~-2i&P!+>*u*8!Vu1U=v$z-hqCfCa$rJ)j31 z2h0NA1#J5a=s$z=6{I_u;fGkk&1esSYdgfz(+=@CWTE`?KQD30!YgIj8Vm7dYiQ`1 zXYgqmp;d->e7JD=opoxk~;cUH&0 zS2mps$1DVq?et{HB0;+@&$tL@`>=Yb6VPzG}w3$L9~<7mxPV|Lp*e0sK4eXOOsR2q~QzMW;P_k z)3yQlKfYD@Z~b_d0E?KLtEi722>nU@ml8#R@0QVNSw{M;1o|KJb2c75Te~ca!p5!L zAIm@8y}X{2SaMC08d^;PZGP*FkjXWmkfJSQa`o}(lJ}wk>_zv(24-@s%?sCTtG3}I zU%pAt57>I$o*O(L3@@cG8jzGB9{YM?mygZZuM%6j#GSm64rTCRbgP7GwH&^bj`OeX zhD|8k0T8P=0Rk-JArL$RVfl?Kod*0w{&LL@$+Y}7+oi+vH)eu;d15^-vF(v+?j#9Y zvDBp7sMWR=OOx!DpCqIKdp<-=iS--f;FIyo@9JZ|_^07;6BKbQDd&6gLX?m*!2ODbga39KAF_`6MWseJ81ReWqbG*ehj?%_JIl;r*a|M9H{8Z${w#<{ZFEN2#(1Zw z-fC=GFxvqiQ?4Jsaq&;R=n&sD9Ts?nc=Gki{#d^OA@>Xo$=O{vnd@U8%hNQ> z9E6nQP>b~|@kg-?wF0g6Sevo&xnJ_1MkVcrAL)*xyL%RuZR`U#gppK z(o)w}Wgr7Smj_10@@aWgxrg#G_77F!=Ar3&l%Xw*AL|t{gvO)mMkQ<#5S=4oTOX30 z(|8z$S;znnud}tiu#u^hQ73zL%$*)Hx@N(vi_u$MewnhC@*#d&{)|x<_-FPL`HRn^ zuh~9PtImlp@QDXyv_c#`?IaWfW8^}!G3%>Ll|iLsV#%O5?t#g7V%2r~Xt@_5R0bbC z)6(Pt#}=h7LVf2*s{Jd?CJ*M-SELaH@u7EDS~`>JHYB z8Z0|Wz!Dq=4RvXLqd~U=F%Le73$odP6~4i^_JU#5wnd5%J_W9A@hy8{0j;<`kjV%P z3;5b0RO?~A#Rb!d!alBu!RX8TAD`m$#V~ZXQ!J0dd)o%Q-{6zZNAuox0e{yZcAjjt zF3bN=zgg2q**pBu?@BnH!g25Kym8T^*n9h#XWAjWZ{j@MOT57SUWivuDRVpfdky1t zx`f#Q7EY}zLLmB-?@LSW9x&9C@@L)FJztPpXo~QgtT$5oOvj^W&n-}?qftf|t02bF z*Y@ZQIXEFEB7S{H^X4zfVnS;WKq@stF*mLn^6Rfa`1ingyU;H65U2r&HF2I}TlWb502wg0MpMiIt7 zVjR%vtXFVW zB=aTAm`pJ=Mo>*Dt5IX)|K(fX`qqE>&j08E^tS)PMh zPwqM>>{y;f!q|rf*_kL(lHLG`$4L_qB5yV%@r`L-;Ke|A|}Xd0+6nU3(%qOhg-jkMeh@R2Dwq z@9Vt>L&r+b*V-O6qe*_t7P&~4a}i@GhSfd~vOMeTC$;B-vc&mkWoJV^+9`tKr)<-P z70+Rt@wyaBRp090312YTHPe|Q^_(T%$ZZGBQcu{pozF3oIB}%Zba;$wgPq1Z{{E(s zxVF_-=*@)?kmp#uxgkF@oAnCO4|=;CC>gFOPx@E=`>8?SvKnevfNWAXfp;?6I2;NME)*T8@I{=s#(Mjt)cMEBLd zaN(sOw@flzhIqA4oLZ$X9EA9`;`=Tl#M4776S}P0SUgJCCYm_GtI2Q4)SB`f!+SGs zo&k?3{{kglI0BPjvI*=>f5`YYFEvi{4ECabY%{7m;+bnBBjlkbzcOhu{T{`^*8B*N zNC#(dl{_TzJp4pP02#DnQVD{VUScGCj24&albi`c<3pa%m;_s|}cMmPoShBmZs*=d4`)Zt3cGOZaXD-zi=FZVBJ*T>WmT(|1e$ zGflb2ez#2G%h0vqu$AHu{}8JnUwfh`%t9hoO`{txBL2+f%YXG(_~N0B6G3L;xWP{b zf=l}88-9l$NbozPL*G5>>G#yqlNL%_$j0OLSw!zjj^CKl?=ElNey9MpoeGQrgVzgwz&w$zB< zExAW{LFPdv2VgmRc8t{riUaTR@g>@D%x%u4vrN3+P4hZ~hsY&qma= zv7v$(G@pW31~SJ__o^qjphU$54t_pO6Gb^F$7gMfAFB3xwIrK%Z31%rF zy}AUqYeea;rc6g$3!cKob1e7z3{32{7Dhp(sG$Xr*X8pHcgM8EOL_~m!^GUFW@WBvGI4~t1osWMDWkqUnqQ}YvJ z#^Jn9WgrGV{W7>GJCQ&i;=5bG53I4@jEQVS<;540bSza=%fD0%VIR~&oR05q1UBVU zbifBDQnU(eeU;SS5h+NfEM8#9xg) z%NEA|9GJk#mLYTt@#2x3T~*%f0~{xv%jfV-BHoe3Iw&Iwd@1N^=_SMyF&>=`@y(Nf_#PUC| z!<4_^lLn4rPB-*Lx48jXRz5MKsg>LGb>rhSDtdWuNH zAgTnjvQ0ceCL{=2VGvyk<<|}!YK;ecQ@2k&)oO-#atCjmRI_@8_ckZK-8;qH+Nl$ zf5!uEz;itCT+S17oMM#-Ucosx!ek6rX$QuBBmou0a>Z4GyfEZDH(UOKP%ss)kWjdU zHdf^?IIF=Y+maV?W#CPZ@TXE${;IkWz+*7RVjBy5O8ANpN1VDx-=O8po(u zKI0ncuZ1Uw@oeK^6X9$<%9G{yI0iJ(cywdzqCh8Qog>nA%2RQ8C{8nB6^g~!Uetw! zG??Ib3dF;44x}hG`6a?y%7^%A`7_2j&%f{ydXN0Y7ZW?+cj8};dndlY=bs-$PpB@$ z(NiX&7#Jfi&Bm;+GF6JbU}C|bIF@>}PgB!KEffXUGWh5r2XUGG`)J#K9lq~$b3R3p z#Atwgbi>1F`%H=a3q^ESG(;Hznx>y;lFw&RiFcet|0u)7Chd!SX2L@fe8!cb9Lo^P znKN9!T-U|t@giW*6GMU*F9}v%pkI%2#lt(?hRVJpk+BdDA2{&2Ixfg*hH0?6xWJ?? z%`Xf{n|HGv(0Kq#bIe6Ie=fwUr%*P9hEO)PEiz3La4mzcqlcxm;`%@)BVo3J4362= z6HicCa0wqDfQ@=@a<}<{&UT7r@k$%;euGasAI*E|0{*T+>_9s{z9j!mvmWbOyWk{s zeZ#NadLx&N`uaZki@$b@W0~Aa-B@4aMh`p!_j|m+{a%7d8B+6!0HDZxi6@(+=tT%d zpX0me?g2wRDSy`OTAwdc`)pSDqps*eyaxR>R)LSvdl~T;^YPd8p@pF;NV1m0dWa7T zSlQ%>=$tGC`hdBQcd%iumhLcktMsn&_bJ0I>qtUM8GNay6Mj2IOU8B-b|foJ(cAH8 z;pcY1gHEG;3v*c##7-%D5NAl#EwV%Cqj%b6a3W%niy{#4>xld6VjrHyh|b=?46+**ZFpp zMkeZxCbmBCS;cwhRNkB81$BWo&H{4ma+eYb7?|@&3}QjfZ+Z`I(U%i_b{>u7Fd4 zcqq`ifJ2XGoD?V%qS_2aSF(u5V>tTM2x8d#3h#;c!REg~X8+A?|MHMkU&gMdWXQfEy_W+u`KW)*8DdGueCj@B8fi5xNt0> zX0Fc|Rl&0xrU_np2>6bE`=KdC#mBB|(49RnB^#r1ZurGjGhz}lh zZV+1a?{`A&e}DAKgB9aTUepQmCd@{H8GcdJ(>J zxwpgg@a$3uK6iiR#F#M4776S}cBp z1DI&=S(tVBq*}}KCh_AKFwS6bWfTzN=!pj-ji>REAdM#kLF(j@U})1Wc=6@&tD zbVY)0$ABcE6lA$1@zLJI7t;zyP{b(umeEHLEBe&*|3oYWyLt&~N`9j~hxih{!qd4| z;MhTACnveNiNRGG6y%3kZ})Poy|vLBrSW-HF;(=Z?pb@$zD@LxOgz4zmr4A}_^Cb! zxfSkMmY!ij{)G?e9Wi>YU3#iggQ(6W1jziF_``mrf2g(R5)z7peM80o83AJdPmB_R z)s+ds7?m88WA2i8vUVdt62IC&{@v35Gx}lATl(2X3xC&o1#sTd=Egu{XmbNUQeJMj z^Ol~47&2#&5bVtP6A#Atn1p`7y�I0tweu&sM@<2Jx?zzcu{ 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 literal 0 HcmV?d00001 diff --git a/data/json/flags.json b/data/json/flags.json index d5510ea184fb6..857606933b4b5 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -1858,5 +1858,76 @@ "type": "json_flag", "info": "Airtight tanks for propane, natural gas, etc.", "name": "gas tank" + }, + { + "id": "EXO_SMALL", + "type": "json flag", + "info": "This is meant for a small exoskeleton hardpoint." + }, + { + "id": "EXO_LARGE", + "type": "json flag", + "info": "This is meant for a large exoskeleton hardpoint." + }, + { + "id": "EXO_PSU", + "type": "json flag", + "info": "This is meant for an exoskeleton PSU hardpoint." + }, + { + "id": "EXO_SMALL_GADGET", + "type": "json flag", + "info": "This is meant for small exoskeleton gadgets, 1 L or less." + }, + { + "id": "EXO_HELMET_GADGET", + "type": "json flag", + "info": "This is meant for helmet-specific gadgets." + }, + { + "id": "EXO_MEDIUM_GADGET", + "type": "json flag", + "info": "This is meant for medium exoskeleton gadgets, between 1 L and 5 L." + }, + { + "id": "EXO_LARGE_GADGET", + "type": "json flag", + "info": "This is meant for large exoskeleton gadgets, larger than 5 L." + }, + { + "id": "EXO_HELMET_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton helmet plating." + }, + { + "id": "EXO_TORSO_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton torso plating." + }, + { + "id": "EXO_PSU_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton PSU plating." + }, + { + "id": "EXO_ARM_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton arm plating." + }, + { + { + "id": "EXO_GLOVE_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton arm plating." + }, + { + "id": "EXO_LEG_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton leg plating." + }, + { + "id": "EXO_BOOT_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton foot plating." } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index b0209489ca0ee..2b13acde5d99b 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -40,53 +40,25 @@ "description": "This is a mounting point for torso armor.", "ablative": true, "rigid": true, - "max_contains_volume": "10 L", - "max_contains_weight": "45 kg", - "item_restriction": [ "exo_torso_steel", "exo_torso_plastic", "exo_torso_milcomp" ], + "flag_restriction": [ "EXO_TORSO_PLATE" ], "moves": 60 }, { "pocket_type": "CONTAINER", - "description": "This is a hardpoint for storing items in the torso.", + "description": "This is a mount for storing items in the torso.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "item_restriction": [ - "exo_small_storage", - "exo_medium_storage", - "exo_large_ammo_pouch", - "exo_small_ammo_pouch", - "exo_small_aux_power", - "exo_small_carry_off", - "exo_small_carry_on", - "exo_flashlight_off", - "exo_flashlight_low", - "exo_flashlight_high", - "exo_recoil_off", - "exo_recoil_on" - ], + "flag_restriction": ["EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET"], "moves": 60 }, { "pocket_type": "CONTAINER", - "description": "This is a mounting point for power supply units or large modules.", + "description": "This is a mounting point for power supply units and large modules.", "rigid": true, "max_contains_volume": "25 L", "max_contains_weight": "140 kg", - "item_restriction": [ - "exo_back_battery_rechargable", - "exo_back_gasoline", - "exo_large_storage", - "exo_large_aux_power", - "exo_small_aux_power", - "exo_small_storage", - "exo_medium_storage", - "exo_large_carry_off", - "exo_large_carry_on", - "exo_small_carry_off", - "exo_small_carry_on", - "exo_melee_storage", - "exo_rifle_storage" + "flag_restriction": ["EXO_PSU", "EXO_LARGE_GADGET", "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" ], "moves": 60 }, @@ -95,28 +67,25 @@ "description": "This is a mounting point for arm armor.", "ablative": true, "rigid": true, - "max_contains_volume": "8 L", - "max_contains_weight": "35 kg", - "max_item_length": "200 mm", - "item_restriction": [ "exo_arm_steel", "exo_arm_plastic", "exo_arm_milcomp" ], + "flag_restriction": [ "EXO_ARM_PLATE" ], "moves": 60 }, { "pocket_type": "CONTAINER", - "description": "This is a hardpoint for storing items on the arms.", + "description": "This is a mount for storing items on the arms.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "item_restriction": [ "exo_small_storage", "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", "exo_small_carry_on" ], + "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET", ], "moves": 60 }, { "pocket_type": "CONTAINER", - "description": "This is a hardpoint for storing items on the arms.", + "description": "This is a mount for storing items on the arms.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "item_restriction": [ "exo_small_storage", "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", "exo_small_carry_on" ], + "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET", ], "moves": 60 }, { @@ -124,28 +93,25 @@ "description": "This is a mounting point for leg armor.", "ablative": true, "rigid": true, - "max_contains_volume": "9 L", - "max_contains_weight": "40 kg", - "max_item_length": "200 mm", - "item_restriction": [ "exo_leg_steel", "exo_leg_plastic", "exo_leg_milcomp" ], + "flag_restriction": [ "EXO_LEG_PLATE" ], "moves": 60 }, { "pocket_type": "CONTAINER", - "description": "This is a hardpoint for storing items on the legs.", + "description": "This is a mount for storing items on the legs.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "item_restriction": [ "exo_small_storage", "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", "exo_small_carry_on" ], + "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET", ], "moves": 60 }, { "pocket_type": "CONTAINER", - "description": "This is a hardpoint for storing items on the legs.", + "description": "This is a mount for storing items on the legs.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "item_restriction": [ "exo_small_storage", "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", "exo_small_carry_on" ], + "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET", ], "moves": 60 } ], @@ -181,7 +147,7 @@ "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton helmet" }, - "description": "This is a helmet offering hardpoints for specialized equipment and protection.", + "description": "This is a helmet offering mounts for specialized equipment and protection.", "weight": "2500 g", "volume": "5 L", "material": [ "steel", "plastic" ], @@ -198,7 +164,7 @@ "pocket_type": "CONTAINER", "description": "This is a mounting point for helmet plating.", "ablative": true, - "item_restriction": [ "exo_helmet_steel", "exo_helmet_plastic", "exo_helmet_milcomp" ] + "flag_restriction": [ "EXO_HELMET_PLATE" ] }, { "pocket_type": "CONTAINER", @@ -206,16 +172,7 @@ "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "item_restriction": [ - "exo_flashlight_off", - "exo_flashlight_low", - "exo_flashlight_high", - "exo_hearing_on", - "exo_hearing_off", - "exo_optics_off", - "exo_optics_on", - "exoskeleton_helmet_filter" - ], + "flag_restriction": ["EXO_HELMET_GADGET"], "moves": 60 } ] @@ -242,7 +199,7 @@ "pocket_type": "CONTAINER", "description": "This is a mounting point for boot plating.", "ablative": true, - "item_restriction": [ "exo_boot_steel", "exo_boot_plastic", "exo_boot_milcomp" ], + "flag_restriction": ["EXO_BOOT_PLATE" ], "moves": 60 } ] @@ -269,7 +226,7 @@ "pocket_type": "CONTAINER", "description": "This is a mounting point for glove plating.", "ablative": true, - "item_restriction": [ "exo_glove_steel", "exo_glove_plastic", "exo_glove_milcomp" ], + "flag_restriction": [ "EXO_GLOVE_PLATE" ], "moves": 60 } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 8c8b8e7caf505..00d3ef0ab6089 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -12,7 +12,7 @@ "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS", "EXO_PSU", "ONLY_ONE" ], "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 40000 } }, @@ -23,7 +23,7 @@ "ablative": true, "max_contains_volume": "10 L", "max_contains_weight": "145 kg", - "item_restriction": [ "exo_psu_steel", "exo_psu_plastic", "exo_psu_milcomp" ], + "item_restriction": [ "EXO_PSU_PLATE" ], "moves": 60 } ] @@ -41,7 +41,7 @@ "looks_like": "1cyl_combustion", "color": "dark_gray", "ammo": "gasoline", - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS", "EXO_PSU", "ONLY_ONE" ], "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], "pocket_data": [ { @@ -58,7 +58,7 @@ "rigid": true, "max_contains_volume": "10 L", "max_contains_weight": "145 kg", - "item_restriction": [ "exo_psu_steel", "exo_psu_plastic", "exo_psu_milcomp" ], + "flag_restriction": [ "EXO_PSU_PLATE" ], "moves": 60 } ] @@ -76,7 +76,7 @@ "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS", "EXO_LARGE_GADGET" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 4000 } } ] }, { @@ -92,7 +92,7 @@ "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS", "EXO_SMALL_GADGET" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 1000 } } ] }, { @@ -108,7 +108,7 @@ "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS", "EXO_LARGE_GADGET" ], "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 30000 } ] } ] }, @@ -135,7 +135,7 @@ "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS", "EXO_LARGE_GADGET" ], "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 30000 } ] } ] }, @@ -162,7 +162,7 @@ "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS", "EXO_SMALL_GADGET" ], "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 20000 } ] } ] }, @@ -189,7 +189,7 @@ "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS", "EXO_SMALL_GADGET" ], "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 20000 } ] } ] }, @@ -216,7 +216,7 @@ "color": "white", "charges_per_use": 1, "ammo": [ "battery" ], - "flags": [ "USE_UPS", "CANT_WEAR" ], + "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET" ], "use_action": { "type": "transform", "msg": "You turn the lamp on low.", @@ -240,7 +240,7 @@ "msg": "You turn the heavy duty flashlight off.", "target": "exo_flashlight_high" }, - "flags": [ "LIGHT_250", "USE_UPS", "CANT_WEAR" ] + "flags": [ "LIGHT_250", "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET"] }, { "id": "exo_flashlight_high", @@ -256,14 +256,14 @@ "msg": "You turn the heavy duty flashlight off.", "target": "exo_flashlight_off" }, - "flags": [ "LIGHT_500", "USE_UPS", "CANT_WEAR" ] + "flags": [ "LIGHT_500", "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET" ] }, { "id": "exo_hearing_off", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "enhanced audio sensor (off)", "str_pl": "enhanced audio sensors (off)" }, - "description": "This is an audio detection array exoskeleton module. While active, it also protects your hearing from loud noises.", + "name": { "str": "audio protection (off)", "str_pl": "audio protection (off)" }, + "description": "This is an audio protection exoskeleton module. While active, it also protects your hearing from loud noises.", "weight": "500 g", "volume": "500 ml", "material": [ "steel", "plastic" ], @@ -271,10 +271,10 @@ "color": "white", "charges_per_use": 1, "ammo": [ "battery" ], - "flags": [ "USE_UPS", "CANT_WEAR" ], + "flags": [ "USE_UPS", "CANT_WEAR", "EXO_HELMET_GADGET", "ONLY ONE"], "use_action": { "type": "transform", - "msg": "You activate the helmet's audio enhancers.", + "msg": "You activate the helmet's audio protection.", "target": "exo_hearing_on", "active": true, "need_charges": 1, @@ -285,17 +285,17 @@ "id": "exo_hearing_on", "copy-from": "exo_hearing_off", "type": "TOOL", - "name": { "str": "enhanced audio sensor (on)", "str_pl": "enhanced audio sensors (on)" }, + "name": { "str": "audio protection (on)", "str_pl": "audio protection (on)" }, "power_draw": 500, "revert_to": "exo_hearing_off", "use_action": { "ammo_scale": 0, "menu_text": "Turn off", "type": "transform", - "msg": "You turn off the helmet's audio enhancers.", + "msg": "You turn off the helmet's audio protection.", "target": "exo_hearing_off" }, - "flags": [ "PARTIAL_DEAF", "USE_UPS", "CANT_WEAR" ] + "flags": [ "PARTIAL_DEAF", "USE_UPS", "CANT_WEAR", "EXO_HELMET_GADGET", "ONLY ONE" ] }, { "id": "exo_recoil_off", @@ -310,7 +310,7 @@ "color": "white", "charges_per_use": 1, "ammo": [ "battery" ], - "flags": [ "USE_UPS", "CANT_WEAR" ], + "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET", "ONLY ONE" ], "use_action": { "type": "transform", "msg": "You activate the helmet's audio enhancers.", @@ -337,7 +337,7 @@ "msg": "You turn off the recoil controller.", "target": "exo_recoil_off" }, - "flags": [ "USE_UPS", "CANT_WEAR" ], + "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET", "ONLY ONE" ], "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "WEAPON_DISPERSION", "add": -50 } ] } ] } @@ -353,7 +353,7 @@ "price": 30000, "price_postapoc": 500, "material": [ "plastic", "glass" ], - "flags": [ "ZOOM", "SUN_GLASSES", "FLASH_PROTECTION" ], + "flags": [ "ZOOM", "SUN_GLASSES", "FLASH_PROTECTION", "EXO_HELMET_GADGET", "ONLY ONE" ], "weight": "500 g", "volume": "500 ml", "bashing": 4, @@ -381,7 +381,7 @@ "msg": "You turn off helmet's optical enhancement.", "target": "exo_optics_off" }, - "flags": [ "USE_UPS", "CANT_WEAR", "IR_EFFECT" ] + "flags": [ "USE_UPS", "CANT_WEAR", "IR_EFFECT", "EXO_HELMET_GADGET", "ONLY ONE" ] }, { "id": "exoskeleton_helmet_filter", @@ -389,7 +389,7 @@ "name": { "str": "exoskeleton filter module" }, "category": "clothing", "description": "A gas filtration module for an exoskeleton helmet. Provides excellent protection from smoke, teargas, and other contaminants. It must be prepared before use.", - "flags": [ "SLEEP_IGNORE" ], + "flags": [ "SLEEP_IGNORE", "EXO_HELMET_GADGET", "ONLY ONE" ], "weight": "1000 g", "volume": "1 L", "material": [ "plastic" ], diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 26d959def83e7..93a890fa8c090 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -1,4 +1,21 @@ [ + { + "id": "exo_helmet_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton helmet steel plate" }, + "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of steel.", + "weight": "12880 g", + "volume": "5 L", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "power_armor_helmet_basic", + "color": "light_gray", + "warmth": 20, + "material_thickness": 6, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_HELMET_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] + }, { "id": "exo_torso_steel", "type": "ARMOR", @@ -13,7 +30,7 @@ "color": "light_gray", "warmth": 20, "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE","EXO_TORSO_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { @@ -30,7 +47,7 @@ "color": "light_gray", "warmth": 0, "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_PSU_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { @@ -47,7 +64,7 @@ "color": "light_gray", "warmth": 20, "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_ARM_PLATE" ], "armor": [ { "covers": [ "arm_l", "arm_r" ], @@ -60,6 +77,23 @@ } ] }, + { + "id": "exo_glove_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton glove steel plate" }, + "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of steel.", + "weight": "4293 g", + "volume": "1 ml", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "gloves_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 6, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] + }, { "id": "exo_leg_steel", "type": "ARMOR", @@ -74,7 +108,7 @@ "color": "light_gray", "warmth": 10, "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_LEG_PLATE" ], "armor": [ { "covers": [ "leg_l", "leg_r" ], @@ -87,6 +121,53 @@ } ] }, + { + "id": "exo_boot_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton boot steel plate" }, + "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of steel.", + "weight": "30053 g", + "volume": "3250 ml", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "boots_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 6, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_BOOT_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] + }, + { + "id": "exo_helmet_plastic", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton helmet plastic plate" }, + "description": "Designed to attach to an exoskeleton's helmet, this is a plate of plastic.", + "weight": "1287 g", + "volume": "5 L", + "material": [ "plastic" ], + "symbol": "[", + "looks_like": "power_armor_helmet_basic", + "color": "light_gray", + "warmth": 20, + "material_thickness": 3, + "non_functional": "destroyed_exo_helmet_plastic_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_HELMET_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] + }, + { + "id": "destroyed_exo_helmet_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_helmet_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_helmet_plastic", + "material": [ "plastic" ], + "material_thickness": 3, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_HELMET_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] + }, { "id": "exo_torso_plastic", "type": "ARMOR", @@ -102,7 +183,7 @@ "warmth": 20, "material_thickness": 3, "non_functional": "destroyed_exo_torso_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE","EXO_TORSO_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { @@ -114,7 +195,7 @@ "looks_like": "exo_torso_plastic", "material": [ "plastic" ], "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR","EXO_TORSO_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, { @@ -162,7 +243,7 @@ "warmth": 20, "material_thickness": 3, "non_functional": "destroyed_exo_arm_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_ARM_PLATE" ], "armor": [ { "covers": [ "arm_l", "arm_r" ], @@ -175,6 +256,36 @@ } ] }, + { + "id": "exo_glove_plastic", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton glove plastic plate" }, + "description": "Designed to attach to an exoskeleton's glove, this is a plate of plastic.", + "weight": "429 g", + "volume": "1 ml", + "material": [ "plastic" ], + "symbol": "[", + "looks_like": "gloves_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 3, + "non_functional": "destroyed_exo_glove_plastic_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] + }, + { + "id": "destroyed_exo_glove_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_glove_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_glove_plastic", + "material": [ "plastic" ], + "material_thickness": 3, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_GLOVE_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] + }, { "id": "destroyed_exo_arm_plastic_plate", "type": "ARMOR", @@ -184,7 +295,7 @@ "looks_like": "exo_arm_plastic", "material": [ "plastic" ], "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_ARM_PLATE" ], "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, { @@ -202,7 +313,7 @@ "warmth": 10, "material_thickness": 3, "non_functional": "destroyed_exo_leg_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_LEG_PLATE" ], "armor": [ { "covers": [ "leg_l", "leg_r" ], @@ -224,9 +335,69 @@ "looks_like": "exo_leg_plastic", "material": [ "plastic" ], "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_LEG_PLATE" ], "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, + { + "id": "exo_boot_plastic", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton boot plastic plate" }, + "description": "Designed to attach to an exoskeleton's boot, this is a plate of plastic.", + "weight": "3003 g", + "volume": "3250 ml", + "material": [ "plastic" ], + "symbol": "[", + "looks_like": "boots_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 3, + "non_functional": "destroyed_exo_boot_plastic_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_BOOT_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] + }, + { + "id": "destroyed_exo_boot_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_boot_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_boot_plastic", + "material": [ "plastic" ], + "material_thickness": 3, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_BOOT_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] + }, + { + "id": "exo_helmet_milcomp", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton helmet military composite plate" }, + "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of military composite.", + "weight": "16500 g", + "volume": "5 L", + "material": [ "hardsteel", "ceramic" ], + "symbol": "[", + "looks_like": "power_armor_helmet_basic", + "color": "light_gray", + "warmth": 20, + "material_thickness": 8, + "non_functional": "destroyed_exo_helmet_milcomp_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_HELMET_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] + }, + { + "id": "destroyed_exo_helmet_milcomp_plate", + "type": "ARMOR", + "copy-from": "exo_helmet_milcomp", + "name": { "str": "shattered military composite helmet plate" }, + "description": "The remains of a military composite helmet plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_helmet_milcomp", + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_HELMET_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] + }, { "id": "exo_torso_milcomp", "type": "ARMOR", @@ -242,7 +413,7 @@ "warmth": 20, "material_thickness": 8, "non_functional": "destroyed_exo_torso_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE","EXO_TORSO_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { @@ -254,7 +425,7 @@ "looks_like": "exo_torso_milcomp", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR","EXO_TORSO_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, { @@ -302,7 +473,7 @@ "warmth": 20, "material_thickness": 8, "non_functional": "destroyed_exo_arm_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_ARM_PLATE" ], "armor": [ { "covers": [ "arm_l", "arm_r" ], @@ -324,9 +495,39 @@ "looks_like": "exo_arm_milcomp", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_ARM_PLATE" ], "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, + { + "id": "exo_glove_milcomp", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton glove military composite plate" }, + "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of military composite.", + "weight": "5500 g", + "volume": "1 ml", + "material": [ "hardsteel", "ceramic" ], + "symbol": "[", + "looks_like": "gloves_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 8, + "non_functional": "destroyed_exo_glove_milcomp_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] + }, + { + "id": "destroyed_exo_glove_milcomp_plate", + "type": "ARMOR", + "copy-from": "exo_glove_milcomp", + "name": { "str": "shattered military composite glove plate" }, + "description": "The remains of a military composite glove plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_glove_milcomp", + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_GLOVE_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] + }, { "id": "exo_leg_milcomp", "type": "ARMOR", @@ -342,7 +543,7 @@ "warmth": 10, "material_thickness": 8, "non_functional": "destroyed_exo_leg_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_LEG_PLATE" ], "armor": [ { "covers": [ "leg_l", "leg_r" ], @@ -364,133 +565,9 @@ "looks_like": "exo_leg_milcomp", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_LEG_PLATE" ], "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] }, - { - "id": "exo_helmet_plastic", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton helmet plastic plate" }, - "description": "Designed to attach to an exoskeleton's helmet, this is a plate of plastic.", - "weight": "1287 g", - "volume": "5 L", - "material": [ "plastic" ], - "symbol": "[", - "looks_like": "power_armor_helmet_basic", - "color": "light_gray", - "warmth": 20, - "material_thickness": 3, - "non_functional": "destroyed_exo_helmet_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] - }, - { - "id": "destroyed_exo_helmet_plastic_plate", - "type": "ARMOR", - "copy-from": "exo_helmet_plastic", - "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_helmet_plastic", - "material": [ "plastic" ], - "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] - }, - { - "id": "exo_helmet_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton helmet steel plate" }, - "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of steel.", - "weight": "12880 g", - "volume": "5 L", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "power_armor_helmet_basic", - "color": "light_gray", - "warmth": 20, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] - }, - { - "id": "exo_helmet_milcomp", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton helmet military composite plate" }, - "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of military composite.", - "weight": "16500 g", - "volume": "5 L", - "material": [ "hardsteel", "ceramic" ], - "symbol": "[", - "looks_like": "power_armor_helmet_basic", - "color": "light_gray", - "warmth": 20, - "material_thickness": 8, - "non_functional": "destroyed_exo_helmet_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] - }, - { - "id": "destroyed_exo_helmet_milcomp_plate", - "type": "ARMOR", - "copy-from": "exo_helmet_milcomp", - "name": { "str": "shattered military composite helmet plate" }, - "description": "The remains of a military composite helmet plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_helmet_milcomp", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] - }, - { - "id": "exo_boot_plastic", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton boot plastic plate" }, - "description": "Designed to attach to an exoskeleton's boot, this is a plate of plastic.", - "weight": "3003 g", - "volume": "3250 ml", - "material": [ "plastic" ], - "symbol": "[", - "looks_like": "boots_plate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 3, - "non_functional": "destroyed_exo_boot_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] - }, - { - "id": "destroyed_exo_boot_plastic_plate", - "type": "ARMOR", - "copy-from": "exo_boot_plastic", - "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_boot_plastic", - "material": [ "plastic" ], - "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] - }, - { - "id": "exo_boot_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton boot steel plate" }, - "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of steel.", - "weight": "30053 g", - "volume": "3250 ml", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "boots_plate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] - }, { "id": "exo_boot_milcomp", "type": "ARMOR", @@ -506,7 +583,7 @@ "warmth": 20, "material_thickness": 8, "non_functional": "destroyed_exo_boot_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_BOOT_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] }, { @@ -518,84 +595,7 @@ "looks_like": "exo_boot_milcomp", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_BOOT_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] - }, - { - "id": "exo_glove_plastic", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton glove plastic plate" }, - "description": "Designed to attach to an exoskeleton's glove, this is a plate of plastic.", - "weight": "429 g", - "volume": "1 ml", - "material": [ "plastic" ], - "symbol": "[", - "looks_like": "gloves_plate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 3, - "non_functional": "destroyed_exo_glove_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] - }, - { - "id": "destroyed_exo_glove_plastic_plate", - "type": "ARMOR", - "copy-from": "exo_glove_plastic", - "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_glove_plastic", - "material": [ "plastic" ], - "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] - }, - { - "id": "exo_glove_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton glove steel plate" }, - "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of steel.", - "weight": "4293 g", - "volume": "1 ml", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "gloves_plate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] - }, - { - "id": "exo_glove_milcomp", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton glove military composite plate" }, - "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of military composite.", - "weight": "5500 g", - "volume": "1 ml", - "material": [ "hardsteel", "ceramic" ], - "symbol": "[", - "looks_like": "gloves_plate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 8, - "non_functional": "destroyed_exo_glove_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] - }, - { - "id": "destroyed_exo_glove_milcomp_plate", - "type": "ARMOR", - "copy-from": "exo_glove_milcomp", - "name": { "str": "shattered military composite glove plate" }, - "description": "The remains of a military composite glove plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_glove_milcomp", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index ac3e451a832f8..f27542e23e3c2 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -9,6 +9,7 @@ "price": 18000, "price_postapoc": 800, "material": [ "steel" ], + "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], "symbol": "[", "looks_like": "slingpack", "color": "light_gray", @@ -42,6 +43,7 @@ "price": 18000, "price_postapoc": 800, "material": [ "steel" ], + "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], "symbol": "[", "looks_like": "bscabbard", "color": "light_gray", @@ -69,6 +71,7 @@ "weight": "2291 g", "volume": "15 L", "material": [ "nylon", "plastic" ], + "flags": [ "WATER_FRIENDLY", "EXO_LARGE_GADGET" ], "symbol": "[", "looks_like": "backpack", "color": "green", @@ -156,6 +159,7 @@ "weight": "275 g", "volume": "2500 ml", "material": [ "nylon", "plastic" ], + "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], "symbol": "[", "looks_like": "holster", "color": "green", @@ -264,7 +268,7 @@ { "ammo_restriction": { "410shot": 6, "shot": 6, "20x66mm": 6, "signal_flare": 6 }, "moves": 25 } ], "material_thickness": 0.2, - "flags": [ "WATER_FRIENDLY" ], + "flags": [ "WATER_FRIENDLY", "EXO_LARGE_GADGET" ], "armor": [ { "encumbrance": [ 2, 5 ], @@ -307,7 +311,7 @@ } ], "material_thickness": 0.2, - "flags": [ "WATER_FRIENDLY" ], + "flags": [ "WATER_FRIENDLY", "EXO_SMALL_GADGET" ], "armor": [ { "encumbrance": [ 2, 5 ], diff --git a/src/flag.cpp b/src/flag.cpp index 7366005ec93cb..7accf14aed6f1 100644 --- a/src/flag.cpp +++ b/src/flag.cpp @@ -89,6 +89,20 @@ const flag_id flag_EDIBLE_FROZEN( "EDIBLE_FROZEN" ); const flag_id flag_EFFECT_IMPEDING( "EFFECT_IMPEDING" ); const flag_id flag_ELECTRIC_IMMUNE( "ELECTRIC_IMMUNE" ); const flag_id flag_ETHEREAL_ITEM( "ETHEREAL_ITEM" ); +const flag_id _flag EXO_ARM_PLATE( "EXO_ARM_PLATE" ); +const flag_id _flag EXO_BOOT_PLATE( "EXO_BOOT_PLATE" ); +const flag_id _flag EXO_GLOVE_PLATE( "EXO_GLOVE_PLATE" ); +const flag_id _flag EXO_HELMET_GADGET( "EXO_HELMET_GADGET" ); +const flag_id _flag EXO_HELMET_PLATE( "EXO_HELMET_PLATE" ); +const flag_id _flag EXO_LARGE_GADGET( "EXO_LARGE_GADGET" ); +const flag_id _flag EXO_LARGE( "EXO_LARGE" ); +const flag_id _flag EXO_LEG_PLATE( "EXO_LEG_PLATE" ); +const flag_id _flag EXO_MEDIUM_GADGET( "EXO_MEDIUM_GADGET" ); +const flag_id _flag EXO_PSU_PLATE( "EXO_PSU_PLATE" ); +const flag_id _flag EXO_PSU( "EXO_PSU" ); +const flag_id _flag EXO_SMALL_GADGET( "EXO_SMALL_GADGET" ); +const flag_id _flag EXO_SMALL( "EXO_SMALL" ); +const flag_id _flag EXO_TORSO_PLATE( "EXO_TORSO_PLATE" ); const flag_id flag_FAKE_MILL( "FAKE_MILL" ); const flag_id flag_FAKE_SMOKE( "FAKE_SMOKE" ); const flag_id flag_FANCY( "FANCY" ); From f0d9803e19f8e3d4cd6d6efd3f6cdcb5641e3c07 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 10 Dec 2021 16:42:00 -0800 Subject: [PATCH 011/189] Final draft Last few fixes --- data/json/flags.json | 29 +++++++++---------- .../modular_exos/modular_exoskeleton.json | 18 ++++++++---- .../modular_exoskeleton_modules.json | 20 ++++++------- .../modular_exoskeleton_plating.json | 10 +++---- .../modular_exoskeleton_storage.json | 3 +- 5 files changed, 43 insertions(+), 37 deletions(-) diff --git a/data/json/flags.json b/data/json/flags.json index 857606933b4b5..004796b470341 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -1861,73 +1861,72 @@ }, { "id": "EXO_SMALL", - "type": "json flag", + "type": "json_flag", "info": "This is meant for a small exoskeleton hardpoint." }, { "id": "EXO_LARGE", - "type": "json flag", + "type": "json_flag", "info": "This is meant for a large exoskeleton hardpoint." }, { "id": "EXO_PSU", - "type": "json flag", + "type": "json_flag", "info": "This is meant for an exoskeleton PSU hardpoint." }, { "id": "EXO_SMALL_GADGET", - "type": "json flag", + "type": "json_flag", "info": "This is meant for small exoskeleton gadgets, 1 L or less." }, { "id": "EXO_HELMET_GADGET", - "type": "json flag", + "type": "json_flag", "info": "This is meant for helmet-specific gadgets." }, { "id": "EXO_MEDIUM_GADGET", - "type": "json flag", + "type": "json_flag", "info": "This is meant for medium exoskeleton gadgets, between 1 L and 5 L." }, { "id": "EXO_LARGE_GADGET", - "type": "json flag", + "type": "json_flag", "info": "This is meant for large exoskeleton gadgets, larger than 5 L." }, { "id": "EXO_HELMET_PLATE", - "type": "json flag", + "type": "json_flag", "info": "This is meant for exoskeleton helmet plating." }, { "id": "EXO_TORSO_PLATE", - "type": "json flag", + "type": "json_flag", "info": "This is meant for exoskeleton torso plating." }, { "id": "EXO_PSU_PLATE", - "type": "json flag", + "type": "json_flag", "info": "This is meant for exoskeleton PSU plating." }, { "id": "EXO_ARM_PLATE", - "type": "json flag", + "type": "json_flag", "info": "This is meant for exoskeleton arm plating." }, { - { "id": "EXO_GLOVE_PLATE", - "type": "json flag", + "type": "json_flag", "info": "This is meant for exoskeleton arm plating." }, { "id": "EXO_LEG_PLATE", - "type": "json flag", + "type": "json_flag", "info": "This is meant for exoskeleton leg plating." }, { "id": "EXO_BOOT_PLATE", - "type": "json flag", + "type": "json_flag", "info": "This is meant for exoskeleton foot plating." } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 2b13acde5d99b..0815d5ff77a16 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -40,6 +40,8 @@ "description": "This is a mounting point for torso armor.", "ablative": true, "rigid": true, + "max_contains_volume": "10 L", + "max_contains_weight": "45 kg", "flag_restriction": [ "EXO_TORSO_PLATE" ], "moves": 60 }, @@ -67,6 +69,9 @@ "description": "This is a mounting point for arm armor.", "ablative": true, "rigid": true, + "max_contains_volume": "8 L", + "max_contains_weight": "35 kg", + "max_item_length": "200 mm", "flag_restriction": [ "EXO_ARM_PLATE" ], "moves": 60 }, @@ -76,7 +81,7 @@ "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET", ], + "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" ], "moves": 60 }, { @@ -85,7 +90,7 @@ "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET", ], + "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" ], "moves": 60 }, { @@ -93,6 +98,9 @@ "description": "This is a mounting point for leg armor.", "ablative": true, "rigid": true, + "max_contains_volume": "9 L", + "max_contains_weight": "40 kg", + "max_item_length": "200 mm", "flag_restriction": [ "EXO_LEG_PLATE" ], "moves": 60 }, @@ -102,7 +110,7 @@ "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET", ], + "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" ], "moves": 60 }, { @@ -111,7 +119,7 @@ "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET", ], + "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" ], "moves": 60 } ], @@ -199,7 +207,7 @@ "pocket_type": "CONTAINER", "description": "This is a mounting point for boot plating.", "ablative": true, - "flag_restriction": ["EXO_BOOT_PLATE" ], + "flag_restriction": [ "EXO_BOOT_PLATE" ], "moves": 60 } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 00d3ef0ab6089..31936067a78f0 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -23,7 +23,7 @@ "ablative": true, "max_contains_volume": "10 L", "max_contains_weight": "145 kg", - "item_restriction": [ "EXO_PSU_PLATE" ], + "flag_restriction": [ "EXO_PSU_PLATE" ], "moves": 60 } ] @@ -41,7 +41,7 @@ "looks_like": "1cyl_combustion", "color": "dark_gray", "ammo": "gasoline", - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS", "EXO_PSU", "ONLY_ONE" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS", "EXO_PSU", "ONLY_ONE" ], "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], "pocket_data": [ { @@ -240,7 +240,7 @@ "msg": "You turn the heavy duty flashlight off.", "target": "exo_flashlight_high" }, - "flags": [ "LIGHT_250", "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET"] + "flags": [ "LIGHT_250", "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET" ] }, { "id": "exo_flashlight_high", @@ -271,7 +271,7 @@ "color": "white", "charges_per_use": 1, "ammo": [ "battery" ], - "flags": [ "USE_UPS", "CANT_WEAR", "EXO_HELMET_GADGET", "ONLY ONE"], + "flags": [ "USE_UPS", "CANT_WEAR", "EXO_HELMET_GADGET", "ONLY_ONE" ], "use_action": { "type": "transform", "msg": "You activate the helmet's audio protection.", @@ -295,7 +295,7 @@ "msg": "You turn off the helmet's audio protection.", "target": "exo_hearing_off" }, - "flags": [ "PARTIAL_DEAF", "USE_UPS", "CANT_WEAR", "EXO_HELMET_GADGET", "ONLY ONE" ] + "flags": [ "PARTIAL_DEAF", "USE_UPS", "CANT_WEAR", "EXO_HELMET_GADGET", "ONLY_ONE" ] }, { "id": "exo_recoil_off", @@ -310,7 +310,7 @@ "color": "white", "charges_per_use": 1, "ammo": [ "battery" ], - "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET", "ONLY ONE" ], + "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET", "ONLY_ONE" ], "use_action": { "type": "transform", "msg": "You activate the helmet's audio enhancers.", @@ -337,7 +337,7 @@ "msg": "You turn off the recoil controller.", "target": "exo_recoil_off" }, - "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET", "ONLY ONE" ], + "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET", "ONLY_ONE" ], "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "WEAPON_DISPERSION", "add": -50 } ] } ] } @@ -353,7 +353,7 @@ "price": 30000, "price_postapoc": 500, "material": [ "plastic", "glass" ], - "flags": [ "ZOOM", "SUN_GLASSES", "FLASH_PROTECTION", "EXO_HELMET_GADGET", "ONLY ONE" ], + "flags": [ "ZOOM", "SUN_GLASSES", "FLASH_PROTECTION", "EXO_HELMET_GADGET", "ONLY_ONE" ], "weight": "500 g", "volume": "500 ml", "bashing": 4, @@ -381,7 +381,7 @@ "msg": "You turn off helmet's optical enhancement.", "target": "exo_optics_off" }, - "flags": [ "USE_UPS", "CANT_WEAR", "IR_EFFECT", "EXO_HELMET_GADGET", "ONLY ONE" ] + "flags": [ "USE_UPS", "CANT_WEAR", "IR_EFFECT", "EXO_HELMET_GADGET", "ONLY_ONE" ] }, { "id": "exoskeleton_helmet_filter", @@ -389,7 +389,7 @@ "name": { "str": "exoskeleton filter module" }, "category": "clothing", "description": "A gas filtration module for an exoskeleton helmet. Provides excellent protection from smoke, teargas, and other contaminants. It must be prepared before use.", - "flags": [ "SLEEP_IGNORE", "EXO_HELMET_GADGET", "ONLY ONE" ], + "flags": [ "SLEEP_IGNORE", "EXO_HELMET_GADGET", "ONLY_ONE" ], "weight": "1000 g", "volume": "1 L", "material": [ "plastic" ], diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 93a890fa8c090..0ce86fef06516 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -30,7 +30,7 @@ "color": "light_gray", "warmth": 20, "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE","EXO_TORSO_PLATE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_TORSO_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { @@ -183,7 +183,7 @@ "warmth": 20, "material_thickness": 3, "non_functional": "destroyed_exo_torso_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE","EXO_TORSO_PLATE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_TORSO_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { @@ -195,7 +195,7 @@ "looks_like": "exo_torso_plastic", "material": [ "plastic" ], "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR","EXO_TORSO_PLATE" ], + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_TORSO_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, { @@ -413,7 +413,7 @@ "warmth": 20, "material_thickness": 8, "non_functional": "destroyed_exo_torso_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE","EXO_TORSO_PLATE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_TORSO_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { @@ -425,7 +425,7 @@ "looks_like": "exo_torso_milcomp", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR","EXO_TORSO_PLATE" ], + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_TORSO_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, { diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index f27542e23e3c2..95cfda535342a 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -147,8 +147,7 @@ "ripoff": 2, "activity_noise": { "volume": 8, "chance": 10 } } - ], - "flags": [ "BELTED", "WATERPROOF", "ONLY_ONE", "OVERSIZE" ] + ] }, { "id": "exo_medium_storage", From 40e276a3ea08b1d92a40b669c0077c4ad0ddca75 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 10 Dec 2021 16:43:36 -0800 Subject: [PATCH 012/189] Update modular_exoskeleton.json --- .../items/armor/modular_exos/modular_exoskeleton.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 0815d5ff77a16..6b29cbf28b285 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -51,7 +51,7 @@ "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "flag_restriction": ["EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET"], + "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" ], "moves": 60 }, { @@ -60,8 +60,7 @@ "rigid": true, "max_contains_volume": "25 L", "max_contains_weight": "140 kg", - "flag_restriction": ["EXO_PSU", "EXO_LARGE_GADGET", "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" - ], + "flag_restriction": [ "EXO_PSU", "EXO_LARGE_GADGET", "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" ], "moves": 60 }, { @@ -180,7 +179,7 @@ "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "flag_restriction": ["EXO_HELMET_GADGET"], + "flag_restriction": [ "EXO_HELMET_GADGET" ], "moves": 60 } ] From a0f2c9397e25494b43ea3e7d5c324ea6ced66e11 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 10 Dec 2021 18:23:21 -0800 Subject: [PATCH 013/189] Update modular_exoskeleton_plating.json --- .../modular_exoskeleton_plating.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 0ce86fef06516..a8cbbbc561a30 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -191,7 +191,7 @@ "type": "ARMOR", "copy-from": "exo_torso_plastic", "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection just weight.", + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_torso_plastic", "material": [ "plastic" ], "material_thickness": 3, @@ -221,7 +221,7 @@ "type": "ARMOR", "copy-from": "exo_psu_plastic", "name": { "str": "shattered plastic PSU plate" }, - "description": "The remains of a plastic PSU plate after taking a strong impact. No longer provides functional protection just weight.", + "description": "The remains of a plastic PSU plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_psu_plastic", "material": [ "plastic" ], "material_thickness": 3, @@ -291,7 +291,7 @@ "type": "ARMOR", "copy-from": "exo_arm_plastic", "name": { "str": "shattered plastic arm plate" }, - "description": "The remains of a plastic arm plate after taking a strong impact. No longer provides functional protection just weight.", + "description": "The remains of a plastic arm plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_arm_plastic", "material": [ "plastic" ], "material_thickness": 3, @@ -331,7 +331,7 @@ "type": "ARMOR", "copy-from": "exo_leg_plastic", "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection just weight.", + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_leg_plastic", "material": [ "plastic" ], "material_thickness": 3, @@ -421,7 +421,7 @@ "type": "ARMOR", "copy-from": "exo_torso_milcomp", "name": { "str": "shattered military composite torso plate" }, - "description": "The remains of a military composite torso plate after taking a strong impact. No longer provides functional protection just weight.", + "description": "The remains of a military composite torso plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_torso_milcomp", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, @@ -451,7 +451,7 @@ "type": "ARMOR", "copy-from": "exo_psu_milcomp", "name": { "str": "shattered military composite PSU plate" }, - "description": "The remains of a military composite PSU plate after taking a strong impact. No longer provides functional protection just weight.", + "description": "The remains of a military composite PSU plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_psu_milcomp", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, @@ -491,7 +491,7 @@ "type": "ARMOR", "copy-from": "exo_arm_milcomp", "name": { "str": "shattered military composite arm plate" }, - "description": "The remains of a military composite arm plate after taking a strong impact. No longer provides functional protection just weight.", + "description": "The remains of a military composite arm plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_arm_milcomp", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, @@ -561,7 +561,7 @@ "type": "ARMOR", "copy-from": "exo_leg_milcomp", "name": { "str": "shattered military composite leg plate" }, - "description": "The remains of a military composite leg plate after taking a strong impact. No longer provides functional protection just weight.", + "description": "The remains of a military composite leg plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_leg_milcomp", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, From e6d9c779b14e8855d57e039cf5ea461500f34cff Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 10 Dec 2021 18:36:13 -0800 Subject: [PATCH 014/189] Update flags.json --- data/json/flags.json | 84 ++++++++++++++++++++++---------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/data/json/flags.json b/data/json/flags.json index 004796b470341..e3afcc51eecb2 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -1860,73 +1860,73 @@ "name": "gas tank" }, { - "id": "EXO_SMALL", - "type": "json_flag", - "info": "This is meant for a small exoskeleton hardpoint." + "id": "EXO_SMALL", + "type": "json_flag", + "info": "This is meant for a small exoskeleton hardpoint." }, { - "id": "EXO_LARGE", - "type": "json_flag", - "info": "This is meant for a large exoskeleton hardpoint." + "id": "EXO_LARGE", + "type": "json_flag", + "info": "This is meant for a large exoskeleton hardpoint." }, { - "id": "EXO_PSU", - "type": "json_flag", - "info": "This is meant for an exoskeleton PSU hardpoint." + "id": "EXO_PSU", + "type": "json_flag", + "info": "This is meant for an exoskeleton PSU hardpoint." }, { - "id": "EXO_SMALL_GADGET", - "type": "json_flag", - "info": "This is meant for small exoskeleton gadgets, 1 L or less." + "id": "EXO_SMALL_GADGET", + "type": "json_flag", + "info": "This is meant for small exoskeleton gadgets, 1 L or less." }, { - "id": "EXO_HELMET_GADGET", - "type": "json_flag", - "info": "This is meant for helmet-specific gadgets." + "id": "EXO_HELMET_GADGET", + "type": "json_flag", + "info": "This is meant for helmet-specific gadgets." }, { - "id": "EXO_MEDIUM_GADGET", - "type": "json_flag", - "info": "This is meant for medium exoskeleton gadgets, between 1 L and 5 L." + "id": "EXO_MEDIUM_GADGET", + "type": "json_flag", + "info": "This is meant for medium exoskeleton gadgets, between 1 L and 5 L." }, { - "id": "EXO_LARGE_GADGET", - "type": "json_flag", - "info": "This is meant for large exoskeleton gadgets, larger than 5 L." + "id": "EXO_LARGE_GADGET", + "type": "json_flag", + "info": "This is meant for large exoskeleton gadgets, larger than 5 L." }, { - "id": "EXO_HELMET_PLATE", - "type": "json_flag", - "info": "This is meant for exoskeleton helmet plating." + "id": "EXO_HELMET_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton helmet plating." }, { - "id": "EXO_TORSO_PLATE", - "type": "json_flag", - "info": "This is meant for exoskeleton torso plating." + "id": "EXO_TORSO_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton torso plating." }, { - "id": "EXO_PSU_PLATE", - "type": "json_flag", - "info": "This is meant for exoskeleton PSU plating." + "id": "EXO_PSU_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton PSU plating." }, { - "id": "EXO_ARM_PLATE", - "type": "json_flag", - "info": "This is meant for exoskeleton arm plating." + "id": "EXO_ARM_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton arm plating." }, { - "id": "EXO_GLOVE_PLATE", - "type": "json_flag", - "info": "This is meant for exoskeleton arm plating." + "id": "EXO_GLOVE_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton arm plating." }, { - "id": "EXO_LEG_PLATE", - "type": "json_flag", - "info": "This is meant for exoskeleton leg plating." + "id": "EXO_LEG_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton leg plating." }, { - "id": "EXO_BOOT_PLATE", - "type": "json_flag", - "info": "This is meant for exoskeleton foot plating." + "id": "EXO_BOOT_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton foot plating." } ] From 3f700e45821c4c28162e532978e913caf1917dc0 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 10 Dec 2021 18:58:54 -0800 Subject: [PATCH 015/189] Update flag.cpp --- src/flag.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/flag.cpp b/src/flag.cpp index 7accf14aed6f1..b19c2341716f2 100644 --- a/src/flag.cpp +++ b/src/flag.cpp @@ -89,20 +89,20 @@ const flag_id flag_EDIBLE_FROZEN( "EDIBLE_FROZEN" ); const flag_id flag_EFFECT_IMPEDING( "EFFECT_IMPEDING" ); const flag_id flag_ELECTRIC_IMMUNE( "ELECTRIC_IMMUNE" ); const flag_id flag_ETHEREAL_ITEM( "ETHEREAL_ITEM" ); -const flag_id _flag EXO_ARM_PLATE( "EXO_ARM_PLATE" ); -const flag_id _flag EXO_BOOT_PLATE( "EXO_BOOT_PLATE" ); -const flag_id _flag EXO_GLOVE_PLATE( "EXO_GLOVE_PLATE" ); -const flag_id _flag EXO_HELMET_GADGET( "EXO_HELMET_GADGET" ); -const flag_id _flag EXO_HELMET_PLATE( "EXO_HELMET_PLATE" ); -const flag_id _flag EXO_LARGE_GADGET( "EXO_LARGE_GADGET" ); -const flag_id _flag EXO_LARGE( "EXO_LARGE" ); -const flag_id _flag EXO_LEG_PLATE( "EXO_LEG_PLATE" ); -const flag_id _flag EXO_MEDIUM_GADGET( "EXO_MEDIUM_GADGET" ); -const flag_id _flag EXO_PSU_PLATE( "EXO_PSU_PLATE" ); -const flag_id _flag EXO_PSU( "EXO_PSU" ); -const flag_id _flag EXO_SMALL_GADGET( "EXO_SMALL_GADGET" ); -const flag_id _flag EXO_SMALL( "EXO_SMALL" ); -const flag_id _flag EXO_TORSO_PLATE( "EXO_TORSO_PLATE" ); +const flag_id _flag_EXO_ARM_PLATE( "EXO_ARM_PLATE" ); +const flag_id _flag_EXO_BOOT_PLATE( "EXO_BOOT_PLATE" ); +const flag_id _flag_EXO_GLOVE_PLATE( "EXO_GLOVE_PLATE" ); +const flag_id _flag_EXO_HELMET_GADGET( "EXO_HELMET_GADGET" ); +const flag_id _flag_EXO_HELMET_PLATE( "EXO_HELMET_PLATE" ); +const flag_id _flag_EXO_LARGE_GADGET( "EXO_LARGE_GADGET" ); +const flag_id _flag_EXO_LARGE( "EXO_LARGE" ); +const flag_id _flag_EXO_LEG_PLATE( "EXO_LEG_PLATE" ); +const flag_id _flag_EXO_MEDIUM_GADGET( "EXO_MEDIUM_GADGET" ); +const flag_id _flag_EXO_PSU_PLATE( "EXO_PSU_PLATE" ); +const flag_id _flag_EXO_PSU( "EXO_PSU" ); +const flag_id _flag_EXO_SMALL_GADGET( "EXO_SMALL_GADGET" ); +const flag_id _flag_EXO_SMALL( "EXO_SMALL" ); +const flag_id _flag_EXO_TORSO_PLATE( "EXO_TORSO_PLATE" ); const flag_id flag_FAKE_MILL( "FAKE_MILL" ); const flag_id flag_FAKE_SMOKE( "FAKE_SMOKE" ); const flag_id flag_FANCY( "FANCY" ); From e95ecd0b8eab32826936dfefbfa622697c7a076c Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 10 Dec 2021 20:24:48 -0800 Subject: [PATCH 016/189] Update flag.cpp --- src/flag.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/flag.cpp b/src/flag.cpp index b19c2341716f2..d24b93cc1a455 100644 --- a/src/flag.cpp +++ b/src/flag.cpp @@ -89,20 +89,20 @@ const flag_id flag_EDIBLE_FROZEN( "EDIBLE_FROZEN" ); const flag_id flag_EFFECT_IMPEDING( "EFFECT_IMPEDING" ); const flag_id flag_ELECTRIC_IMMUNE( "ELECTRIC_IMMUNE" ); const flag_id flag_ETHEREAL_ITEM( "ETHEREAL_ITEM" ); -const flag_id _flag_EXO_ARM_PLATE( "EXO_ARM_PLATE" ); -const flag_id _flag_EXO_BOOT_PLATE( "EXO_BOOT_PLATE" ); -const flag_id _flag_EXO_GLOVE_PLATE( "EXO_GLOVE_PLATE" ); -const flag_id _flag_EXO_HELMET_GADGET( "EXO_HELMET_GADGET" ); -const flag_id _flag_EXO_HELMET_PLATE( "EXO_HELMET_PLATE" ); -const flag_id _flag_EXO_LARGE_GADGET( "EXO_LARGE_GADGET" ); -const flag_id _flag_EXO_LARGE( "EXO_LARGE" ); -const flag_id _flag_EXO_LEG_PLATE( "EXO_LEG_PLATE" ); -const flag_id _flag_EXO_MEDIUM_GADGET( "EXO_MEDIUM_GADGET" ); -const flag_id _flag_EXO_PSU_PLATE( "EXO_PSU_PLATE" ); -const flag_id _flag_EXO_PSU( "EXO_PSU" ); -const flag_id _flag_EXO_SMALL_GADGET( "EXO_SMALL_GADGET" ); -const flag_id _flag_EXO_SMALL( "EXO_SMALL" ); -const flag_id _flag_EXO_TORSO_PLATE( "EXO_TORSO_PLATE" ); +const flag_id flag_EXO_ARM_PLATE( "EXO_ARM_PLATE" ); +const flag_id flag_EXO_BOOT_PLATE( "EXO_BOOT_PLATE" ); +const flag_id flag_EXO_GLOVE_PLATE( "EXO_GLOVE_PLATE" ); +const flag_id flag_EXO_HELMET_GADGET( "EXO_HELMET_GADGET" ); +const flag_id flag_EXO_HELMET_PLATE( "EXO_HELMET_PLATE" ); +const flag_id flag_EXO_LARGE_GADGET( "EXO_LARGE_GADGET" ); +const flag_id flag_EXO_LARGE( "EXO_LARGE" ); +const flag_id flag_EXO_LEG_PLATE( "EXO_LEG_PLATE" ); +const flag_id flag_EXO_MEDIUM_GADGET( "EXO_MEDIUM_GADGET" ); +const flag_id flag_EXO_PSU_PLATE( "EXO_PSU_PLATE" ); +const flag_id flag_EXO_PSU( "EXO_PSU" ); +const flag_id flag_EXO_SMALL_GADGET( "EXO_SMALL_GADGET" ); +const flag_id flag_EXO_SMALL( "EXO_SMALL" ); +const flag_id flag_EXO_TORSO_PLATE( "EXO_TORSO_PLATE" ); const flag_id flag_FAKE_MILL( "FAKE_MILL" ); const flag_id flag_FAKE_SMOKE( "FAKE_SMOKE" ); const flag_id flag_FANCY( "FANCY" ); From 7d022f27350f910cc0364b6e75dfc975d4c027a6 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sat, 11 Dec 2021 22:43:24 -0800 Subject: [PATCH 017/189] Flag.h updates Updated src\flag.h Minor corrections to json files. --- data/font/terminus.fon | Bin 1351680 -> 0 bytes data/mods - Shortcut.lnk | Bin 1186 -> 0 bytes .../modular_exos/modular_exoskeleton.json | 2 +- .../modular_exoskeleton_modules.json | 4 ++-- src/flag.h | 14 ++++++++++++++ 5 files changed, 17 insertions(+), 3 deletions(-) delete mode 100644 data/font/terminus.fon delete mode 100644 data/mods - Shortcut.lnk diff --git a/data/font/terminus.fon b/data/font/terminus.fon deleted file mode 100644 index 6258a062b84b8c5dcb2432327fa70a19c4ecc84b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1351680 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 z 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�I0tweu&sM@<2Jx?zzcu{ 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 diff --git a/data/mods - Shortcut.lnk b/data/mods - Shortcut.lnk deleted file mode 100644 index 011192b5b533aa82fdd80d27b98ea232197986e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1186 zcmbVLUr1A76#q?4w7*xgu(BM2X{BqzkR>UTP3J^%Y}r3<;MgWAcWt>FWxgdjM8g-2 z3<`^t4^1gbjQ)rP^&kkNuvPRB^p=%KFGVk%b2slML_z2B`@Zv?d+zU?@0@d+0BG{k zXa#1K74-wifrVaN+T+iL)dXeC&1bv!-#BTU}+}o=qU?1Cq{MjzIhWnRVkjy z<=12kR&+onQ!eZ(Q*W67hd1C4;-JdaOI+p==BjOEh9O>3Wb)H%IN(J9egw&$hxPW3-f*TULiQR{CSm>#x_XRkV zh|}dvj|lKk9KPvF4dyBDyGjk_LYd^hfk{)u*8c&X1V3lJ!WME~H45U_pHHSG?WM2%2}2d8t)iOnl1+eEiVoaEG%EB zo31(fB`5qWaPhfan*7)M$8>>gVC*!pRXFX=ullF&&FHs||A=l52iuBTI3`CbBorx! zc+<2fMIDt;OpKbCGA80*TDynINCpWUP`_L}y=2`k+*(d+9lX96*-7@b?7#un5R!EV zw$ND_c@rr(bL0X4fy|h}XZ~V6p`K=6qM6mAjd~_g{$6yEoxk2lfQg{~ucUVqIG5X< z?$YX!S2 Date: Mon, 13 Dec 2021 13:49:38 -0800 Subject: [PATCH 018/189] Recipes and books Adds a set of initial recipes for repairing plating. Will include various plate types and simple modules like the light. Adds a book with above recipes. Adds an arm-mounted header drill, works as a slow powerful mace, adds cut damage when active, works as a digging tool. Adds a vehicle part "exoskeleton maintenance gantry". Todo: Add unique repair quality as a portable toolkit and integrate into vehicle part. Maybe use bionic maintenance kit? --- .../items/armor/modular_exos/exo_book.json | 21 +++++++ .../items/armor/modular_exos/exo_recipe.json | 40 +++++++++++++ .../modular_exos/modular_exoskeleton.json | 7 ++- .../modular_exoskeleton_modules.json | 56 ++++++++++++++++++- data/mods/Aftershock/items/books.json | 19 +++++++ 5 files changed, 137 insertions(+), 6 deletions(-) create mode 100644 data/mods/Aftershock/items/armor/modular_exos/exo_book.json create mode 100644 data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_book.json b/data/mods/Aftershock/items/armor/modular_exos/exo_book.json new file mode 100644 index 0000000000000..264873c40f539 --- /dev/null +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_book.json @@ -0,0 +1,21 @@ +[ + { + "id": "exosuit_maintenance", + "type": "BOOK", + "name": { "str": "Exoskeleton maintenance and repair manual", "str_pl": "copies of Exoskeleton maintenance and repair manual" }, + "description": "TM 7-4350 TECHNICAL MANUAL OPERATOR’S MANUAL FOR TYPE G EXOSKELETON (MODULAR). This is an operator's manual that covers general maintenance and basic repairs to modular exoskeleton systems.", + "weight": "50 g", + "volume": "500 ml", + "price": "5000 cent", + "material": [ "paper" ], + "symbol": "?", + "looks_like": "adv_chemistry", + "color": "light_green", + "skill": "fabrication", + "required_level": 5, + "max_level": 8, + "intelligence": 9, + "fun": -3, + "time": "50 m" + } +] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json b/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json new file mode 100644 index 0000000000000..185bb94c8258c --- /dev/null +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json @@ -0,0 +1,40 @@ +[ + { + "result": "exo_helmet_steel", + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HEAD", + "skill_used": "fabrication", + "difficulty": 7, + "time": "9 h", + "book_learn": [ [ "exosuit_maintenance", 6 ] ], + "using": [ [ "blacksmithing_standard", 56 ], [ "steel_standard", 14 ] ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], + "proficiencies": [ + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_blacksmithing" }, + { "proficiency": "prof_armorsmithing" } + ] + }, + { + "result": "exo_torso_steel", + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_TORSO", + "skill_used": "fabrication", + "difficulty": 8, + "time": "9 h", + "book_learn": [ [ "exosuit_maintenance", 7 ] ], + "using": [ [ "blacksmithing_standard", 32 ], [ "steel_standard", 8 ] ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "swage", -1 ] ] ], + "proficiencies": [ + { "proficiency": "prof_armorsmithing" }, + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_blacksmithing" } + ] + } +] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index c4cc7c8737323..ff3778a3b2d27 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -31,6 +31,7 @@ "volume": "130 L", "material": [ "steel", "plastic" ], "material_thickness": 8, + "power_armor": true, "symbol": "T", "looks_like": "power_armor_basic", "color": "light_gray", @@ -153,7 +154,7 @@ "id": "exoskeleton_helmet", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton helmet" }, + "name": { "str": "exoskeleton helmet", "str_pl": "exoskeleton helmet" }, "description": "This is a helmet offering mounts for specialized equipment and protection.", "weight": "2500 g", "volume": "5 L", @@ -188,7 +189,7 @@ "id": "exoskeleton_boots", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton boots" }, + "name": { "str": "exoskeleton boots", "str_pl": "exoskeleton boots" }, "description": "This is a pair of exoskeleton boots. Has mounting points for protective plate.", "weight": "2000 g", "volume": "3250 ml", @@ -215,7 +216,7 @@ "id": "exoskeleton_gloves", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton gloves" }, + "name": { "str": "exoskeleton gloves", "str_pl": "exoskeleton gloves" }, "description": "This is a pair of exoskeleton gloves. Has mounting points for protective plate.", "weight": "1000 g", "volume": "1500 ml", diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index e63edaf0ba779..9e7bca46a437c 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -102,7 +102,7 @@ "name": { "str": "exoskeleton large load support module (off)" }, "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power cosumption.", "weight": "10 kg", - "volume": "10 L", + "volume": "5 L", "material": [ "plastic", "steel" ], "symbol": "=", "looks_like": "storage_battery", @@ -129,7 +129,7 @@ "name": { "str": "exoskeleton large load support module (on)" }, "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power cosumption. It is turned on and continually drawing power. Use it to turn it off.", "weight": "10 kg", - "volume": "10 L", + "volume": "5 L", "material": [ "plastic", "steel" ], "symbol": "=", "looks_like": "storage_battery", @@ -402,5 +402,55 @@ "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "gasfilter_m": 100 } } ], "ammo": "gasfilter_m", "use_action": [ "GASMASK" ] + }, + { + "id": "exo_mounted_drill", + "type": "TOOL_ARMOR", + "name": { "str": "exoskeleton mounted drill" }, + "category": "clothing", + "description": "A powerful header drill covers most of the exoskeleton's arm, leaving the hand free. While turned off, it still makes a powerful mace.", + "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE" ], + "weight": "40000 g", + "volume": "5 L", + "longest_side": "5 cm", + "bashing": 60, + "to_hit": { "grip": "weapon", "length": "short", "surface": "any", "balance": "clumsy" }, + "material": [ "hardsteel", "diamond" ], + "symbol": ";", + "color": "light_gray", + "techniques": [ "WBLOCK_1", "SWEEP" ], + "sided": true, + "armor": [ + { + "encumbrance": 30, + "coverage": 80, + "covers": [ "arm_l", "hand_l", "arm_r", "hand_r" ] } ], + "use_action": { + "ammo_scale": 0, + "menu_text": "Turn on", + "type": "transform", + "active": true, + "need_charges": 1, + "msg": "You turn on the drill.", + "target": "exo_mounted_drill_on" + } + }, + { + "id": "exo_mounted_drill_on", + "type": "TOOL_ARMOR", + "copy-from": "exo_mounted_drill", + "name": { "str": "exoskeleton mounted drill (on)" }, + "description": "The drill is now rotating and making a low growling noise. Meant to make short work of the toughest rock, it should work on more mobile surfaces as well. Use it to turn it off.", + "flags": [ "USE_UPS", "MESSY", "POWERED", "DURABLE_MELEE", "DIG_TOOL", "POWERARMOR_COMPATIBLE" ], + "bashing": 60, + "cutting": 20, + "power_draw": 2000, + "revert_to": "exo_mounted_drill", + "use_action": { + "menu_text": "Turn off", + "type": "transform", + "msg": "You turn off the drill.", + "target": "exo_mounted_drill" + } } -] +] \ No newline at end of file diff --git a/data/mods/Aftershock/items/books.json b/data/mods/Aftershock/items/books.json index 4afdb3d8c2e7a..1394f69678323 100644 --- a/data/mods/Aftershock/items/books.json +++ b/data/mods/Aftershock/items/books.json @@ -278,5 +278,24 @@ "intelligence": 9, "fun": -2, "time": "50 m" + }, + { + "id": "exosuit_maintenance", + "type": "BOOK", + "name": { "str": "Exoskeleton maintenance and repair manual", "str_pl": "copies of Exoskeleton maintenance and repair manual" }, + "description": "TM 7-4350 TECHNICAL MANUAL OPERATOR’S MANUAL FOR TYPE G EXOSKELETON (MODULAR). This is an operator's manual that covers general maintenance and basic repairs to modular exoskeleton systems.", + "weight": "50 g", + "volume": "500 ml", + "price": "5000 cent", + "material": [ "paper" ], + "symbol": "?", + "looks_like": "adv_chemistry", + "color": "light_green", + "skill": "fabrication", + "required_level": 5, + "max_level": 8, + "intelligence": 9, + "fun": -3, + "time": "50 m" } ] From 961313f1921a666ccf12cd8382d41985b761ecfe Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 13 Dec 2021 16:40:27 -0800 Subject: [PATCH 019/189] Trim file length Updating items with more "copy-from" --- .../items/armor/modular_exos/exo_book.json | 2 +- .../modular_exoskeleton_modules.json | 87 ++++----- .../modular_exoskeleton_plating.json | 6 +- .../modular_exoskeleton_storage.json | 174 ++---------------- 4 files changed, 56 insertions(+), 213 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_book.json b/data/mods/Aftershock/items/armor/modular_exos/exo_book.json index 264873c40f539..0fee09c4386ff 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_book.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_book.json @@ -18,4 +18,4 @@ "fun": -3, "time": "50 m" } -] \ No newline at end of file +] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 9e7bca46a437c..32b1a50b92052 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -33,7 +33,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton ICE power supply" }, - "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS. The large size ", + "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS. This unit is large and occupies the rear hardpoints.", "weight": "20 kg", "volume": "25 L", "material": [ "steel", "plastic" ], @@ -404,53 +404,44 @@ "use_action": [ "GASMASK" ] }, { - "id": "exo_mounted_drill", - "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton mounted drill" }, - "category": "clothing", - "description": "A powerful header drill covers most of the exoskeleton's arm, leaving the hand free. While turned off, it still makes a powerful mace.", - "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE" ], - "weight": "40000 g", - "volume": "5 L", - "longest_side": "5 cm", - "bashing": 60, - "to_hit": { "grip": "weapon", "length": "short", "surface": "any", "balance": "clumsy" }, - "material": [ "hardsteel", "diamond" ], - "symbol": ";", - "color": "light_gray", - "techniques": [ "WBLOCK_1", "SWEEP" ], - "sided": true, - "armor": [ - { - "encumbrance": 30, - "coverage": 80, - "covers": [ "arm_l", "hand_l", "arm_r", "hand_r" ] } ], - "use_action": { - "ammo_scale": 0, - "menu_text": "Turn on", - "type": "transform", - "active": true, - "need_charges": 1, - "msg": "You turn on the drill.", - "target": "exo_mounted_drill_on" - } + "id": "exo_mounted_drill", + "type": "TOOL_ARMOR", + "name": { "str": "exoskeleton mounted drill" }, + "category": "clothing", + "description": "A powerful header drill covers most of the exoskeleton's arm, leaving the hand free. While turned off, it still makes a powerful mace.", + "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE" ], + "weight": "40000 g", + "volume": "5 L", + "longest_side": "5 cm", + "bashing": 60, + "to_hit": { "grip": "weapon", "length": "short", "surface": "any", "balance": "clumsy" }, + "material": [ "hardsteel", "diamond" ], + "symbol": ";", + "color": "light_gray", + "techniques": [ "WBLOCK_1", "SWEEP" ], + "sided": true, + "armor": [ { "encumbrance": 30, "coverage": 80, "covers": [ "arm_l", "hand_l", "arm_r", "hand_r" ] } ], + "use_action": { + "ammo_scale": 0, + "menu_text": "Turn on", + "type": "transform", + "active": true, + "need_charges": 1, + "msg": "You turn on the drill.", + "target": "exo_mounted_drill_on" + } }, { - "id": "exo_mounted_drill_on", - "type": "TOOL_ARMOR", - "copy-from": "exo_mounted_drill", - "name": { "str": "exoskeleton mounted drill (on)" }, - "description": "The drill is now rotating and making a low growling noise. Meant to make short work of the toughest rock, it should work on more mobile surfaces as well. Use it to turn it off.", - "flags": [ "USE_UPS", "MESSY", "POWERED", "DURABLE_MELEE", "DIG_TOOL", "POWERARMOR_COMPATIBLE" ], - "bashing": 60, - "cutting": 20, - "power_draw": 2000, - "revert_to": "exo_mounted_drill", - "use_action": { - "menu_text": "Turn off", - "type": "transform", - "msg": "You turn off the drill.", - "target": "exo_mounted_drill" - } + "id": "exo_mounted_drill_on", + "type": "TOOL_ARMOR", + "copy-from": "exo_mounted_drill", + "name": { "str": "exoskeleton mounted drill (on)" }, + "description": "The drill is now rotating and making a low growling noise. Meant to make short work of the toughest rock, it should work on more mobile surfaces as well. Use it to turn it off.", + "flags": [ "USE_UPS", "MESSY", "POWERED", "DURABLE_MELEE", "DIG_TOOL", "POWERARMOR_COMPATIBLE" ], + "bashing": 60, + "cutting": 20, + "power_draw": 2000, + "revert_to": "exo_mounted_drill", + "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "You turn off the drill.", "target": "exo_mounted_drill" } } -] \ No newline at end of file +] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index a8cbbbc561a30..3df5a6337c8cb 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -48,7 +48,7 @@ "warmth": 0, "material_thickness": 6, "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_PSU_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + "armor": [ { "encumbrance": 20, "coverage": 50, "covers": [ "torso" ] } ] }, { "id": "exo_arm_steel", @@ -214,7 +214,7 @@ "material_thickness": 3, "non_functional": "destroyed_exo_psu_plastic_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + "armor": [ { "encumbrance": 20, "coverage": 50, "covers": [ "torso" ] } ] }, { "id": "destroyed_exo_psu_plastic_plate", @@ -444,7 +444,7 @@ "material_thickness": 8, "non_functional": "destroyed_exo_psu_milcomp_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + "armor": [ { "encumbrance": 20, "coverage": 50, "covers": [ "torso" ] } ] }, { "id": "destroyed_exo_psu_milcomp_plate", diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 95cfda535342a..133970219bb69 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -64,93 +64,23 @@ }, { "id": "exo_large_storage", + "copy-from": "backpack_tactical_large", "repairs_like": "backpack_tactical_large", "type": "ARMOR", "name": { "str": "exoskeleton large storage pack" }, "description": "A large storage pack, mountable on a hardpoint.", "weight": "2291 g", "volume": "15 L", - "material": [ "nylon", "plastic" ], + "material": [ "kevlar", "plastic" ], "flags": [ "WATER_FRIENDLY", "EXO_LARGE_GADGET" ], "symbol": "[", "looks_like": "backpack", - "color": "green", - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "max_contains_volume": "55 L", - "max_contains_weight": "70 kg", - "max_item_length": "70 cm", - "magazine_well": "10 L", - "moves": 300 - }, - { - "pocket_type": "CONTAINER", - "max_contains_volume": "5 L", - "max_contains_weight": "10 kg", - "max_item_length": "40 cm", - "magazine_well": "1 L", - "moves": 200 - }, - { - "pocket_type": "CONTAINER", - "max_contains_volume": "3 L", - "max_contains_weight": "3 kg", - "max_item_length": "30 cm", - "magazine_well": "800 ml", - "moves": 120 - }, - { - "pocket_type": "CONTAINER", - "max_contains_volume": "3 L", - "max_contains_weight": "3 kg", - "max_item_length": "30 cm", - "magazine_well": "800 ml", - "moves": 120 - }, - { - "description": "carabiner pocket", - "pocket_type": "CONTAINER", - "holster": true, - "max_contains_volume": "5 L", - "max_contains_weight": "6 kg", - "max_item_length": "120 cm", - "min_item_length": "40 cm", - "moves": 150, - "extra_encumbrance": 3, - "ripoff": 2, - "activity_noise": { "volume": 8, "chance": 10 } - }, - { - "description": "carabiner pocket", - "pocket_type": "CONTAINER", - "holster": true, - "max_contains_volume": "5 L", - "max_contains_weight": "6 kg", - "max_item_length": "120 cm", - "min_item_length": "40 cm", - "moves": 150, - "extra_encumbrance": 3, - "ripoff": 2, - "activity_noise": { "volume": 8, "chance": 10 } - }, - { - "description": "carabiner pocket", - "pocket_type": "CONTAINER", - "holster": true, - "max_contains_volume": "5 L", - "max_contains_weight": "6 kg", - "max_item_length": "120 cm", - "min_item_length": "40 cm", - "moves": 150, - "extra_encumbrance": 3, - "ripoff": 2, - "activity_noise": { "volume": 8, "chance": 10 } - } - ] + "armor": [ + { "encumbrance": [ 10, 55 ], "coverage": 50, "covers": [ "torso" ] } ] }, { "id": "exo_medium_storage", + "copy-from": "fanny", "repairs_like": "fanny", "type": "ARMOR", "name": { "str": "exoskeleton medium pouch", "str_pl": "exoskeleton medium pouches" }, @@ -161,43 +91,26 @@ "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], "symbol": "[", "looks_like": "holster", - "color": "green", - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "max_contains_volume": "2500 ml", - "max_contains_weight": "5 kg", - "max_item_length": "25 cm", - "magazine_well": "1 L", - "moves": 80 - } - ] + "color": "green" }, { "id": "exo_small_storage", + "copy-from": "leather_pouch", "repairs_like": "fanny", "type": "ARMOR", "name": { "str": "exoskeleton small pouch", "str_pl": "exoskeleton small pouches" }, "description": "A small storage pouch, mountable on a hardpoint.", - "weight": "272 g", + "weight": "125 g", "volume": "1050 ml", "material": [ "nylon", "plastic" ], "symbol": "[", "looks_like": "holster", - "color": "green", - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "max_contains_volume": "2500 ml", - "max_contains_weight": "5 kg", - "max_item_length": "25 cm", - "magazine_well": "1 L", - "moves": 80 - } - ] + "color": "green" }, { "id": "exo_large_ammo_pouch", + "copy-from": "tacvest", + "looks_like": "tacvest", "type": "ARMOR", "name": { "str": "exoskeleton large ammo pouches", "str_pl": "exoskeleton large ammo pouches" }, "description": "A set of pouches that attach to a hardpoint.", @@ -208,72 +121,11 @@ "material": [ "nylon" ], "symbol": "[", "color": "dark_gray", - "pocket_data": [ - { - "magazine_well": "350 ml", - "pocket_type": "CONTAINER", - "holster": true, - "min_item_volume": "300 ml", - "max_contains_volume": "1000 ml", - "max_contains_weight": "2 kg", - "max_item_length": "30 cm", - "moves": 50 - }, - { - "pocket_type": "CONTAINER", - "max_item_length": "300 mm", - "min_item_volume": "250 ml", - "max_contains_volume": "1 L", - "max_contains_weight": "2 kg", - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "max_item_length": "300 mm", - "min_item_volume": "250 ml", - "max_contains_volume": "1 L", - "max_contains_weight": "2 kg", - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "max_item_length": "250 mm", - "min_item_volume": "200 ml", - "max_contains_volume": "800 ml", - "max_contains_weight": "1600 g", - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "max_item_length": "250 mm", - "min_item_volume": "200 ml", - "max_contains_volume": "800 ml", - "max_contains_weight": "1600 g", - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "max_item_length": "250 mm", - "min_item_volume": "200 ml", - "max_contains_volume": "800 ml", - "max_contains_weight": "1600 g", - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "moves": 60 - }, - { "ammo_restriction": { "410shot": 6, "shot": 6, "20x66mm": 6, "signal_flare": 6 }, "moves": 25 } - ], - "material_thickness": 0.2, - "flags": [ "WATER_FRIENDLY", "EXO_LARGE_GADGET" ], + "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], "armor": [ { "encumbrance": [ 2, 5 ], - "coverage": 50, - "covers": [ "leg_l", "leg_r" ], - "specifically_covers": [ "leg_upper_r", "leg_upper_l" ] + "coverage": 0 } ] }, From cf43a4e830c93d4c12972ec6444cdea74b1b7bbb Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 13 Dec 2021 16:56:36 -0800 Subject: [PATCH 020/189] Update modular_exoskeleton_storage.json --- .../modular_exoskeleton_storage.json | 69 ++----------------- 1 file changed, 6 insertions(+), 63 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 133970219bb69..ff65349a1cae8 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -1,40 +1,22 @@ [ { "id": "exo_rifle_storage", + "copy-from": "back_holster", "type": "ARMOR", "name": { "str": "large storage pouch" }, - "description": "A hardpoint for storing a rifle, with an additional small pocket.", + "description": "A hardpoint for storing a rifle. Activate to holster/draw a gun.", "weight": "454 g", "volume": "2 L", - "price": 18000, - "price_postapoc": 800, "material": [ "steel" ], - "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], + "flags": [ "WATER_FRIENDLY", "NO_QUICKDRAW", "EXO_LARGE_GADGET" ], "symbol": "[", "looks_like": "slingpack", "color": "light_gray", - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "max_contains_volume": "6000 ml", - "max_contains_weight": "12000 g", - "max_item_length": "133 cm", - "moves": 100 - }, - { - "pocket_type": "CONTAINER", - "max_contains_volume": "1000 ml", - "max_contains_weight": "5000 g", - "max_item_length": "20 cm", - "magazine_well": "500 ml", - "moves": 80 - } - ], - "material_thickness": 2, "armor": [ { "encumbrance": [ 2, 6 ], "coverage": 20, "covers": [ "torso" ] } ] }, { "id": "exo_melee_storage", + "copy-from": "bscabbard", "type": "ARMOR", "name": { "str": "large storage pouch" }, "description": "A hardpoint for storing a sword. Activate to sheath/draw a sword .", @@ -47,20 +29,7 @@ "symbol": "[", "looks_like": "bscabbard", "color": "light_gray", - "pocket_data": [ - { - "magazine_well": "1750 ml", - "max_contains_volume": "3750 ml", - "max_contains_weight": "5 kg", - "max_item_length": "180 cm", - "holster": true, - "moves": 60, - "flag_restriction": [ "SHEATH_SWORD" ] - } - ], - "use_action": { "type": "holster", "holster_prompt": "Sheath sword", "holster_msg": "You sheath your %s" }, - "material_thickness": 2, - "armor": [ { "encumbrance": [ 2, 6 ], "coverage": 20, "covers": [ "torso" ] } ] + "armor": [ { "encumbrance": [ 6, 10 ], "coverage": 20, "covers": [ "torso" ] } ] }, { "id": "exo_large_storage", @@ -131,42 +100,16 @@ }, { "id": "exo_small_ammo_pouch", + "copy-from": "legrig", "type": "ARMOR", "name": { "str": "exoskeleton small ammo pouches", "str_pl": "exoskeleton small ammo pouches" }, "description": "A set of pouches that attach to a hardpoint.", - "weight": "205 g", - "volume": "1050 ml", - "price": 3000, - "price_postapoc": 250, - "material": [ "nylon" ], "symbol": "[", "color": "dark_gray", - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "max_contains_volume": "2250 ml", - "max_contains_weight": "2 kg", - "max_item_length": "30 cm", - "magazine_well": "500 ml", - "moves": 200, - "flag_restriction": [ "MAG_COMPACT" ] - }, - { - "pocket_type": "CONTAINER", - "max_contains_volume": "2250 ml", - "max_contains_weight": "2 kg", - "max_item_length": "30 cm", - "magazine_well": "500 ml", - "moves": 200, - "flag_restriction": [ "MAG_COMPACT" ] - } - ], - "material_thickness": 0.2, "flags": [ "WATER_FRIENDLY", "EXO_SMALL_GADGET" ], "armor": [ { "encumbrance": [ 2, 5 ], - "coverage": 50, "covers": [ "leg_l", "leg_r" ], "specifically_covers": [ "leg_upper_r", "leg_upper_l" ] } From 7d0a19809ba5f5e188508894950fbb83c8539d96 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 13 Dec 2021 18:44:54 -0800 Subject: [PATCH 021/189] Frame rebalance Changed the frame to thinner material and from steel to titanium. This modifies the defensive values and means that the suit can no longer be repaired with a standard welder. Added exoskeleton tool kit, capable of repairing titanium. Included tool in vehicle repair gantry part. Added alternative gauntlet plate replicating the hydraulic gauntlet. --- .../items/armor/modular_exos/exo_gear.json | 61 +++++++++++++++++++ .../items/armor/modular_exos/exo_tool.json | 30 +++++++++ .../modular_exos/modular_exoskeleton.json | 21 ++++--- .../modular_exoskeleton_modules.json | 45 +------------- .../modular_exoskeleton_storage.json | 34 ++++------- data/mods/Aftershock/items/vehicle_items.json | 7 +++ .../Aftershock/vehicles/vehicle_parts.json | 35 +++++++++++ 7 files changed, 160 insertions(+), 73 deletions(-) create mode 100644 data/mods/Aftershock/items/armor/modular_exos/exo_gear.json create mode 100644 data/mods/Aftershock/items/armor/modular_exos/exo_tool.json diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json new file mode 100644 index 0000000000000..b2e71a9341a40 --- /dev/null +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -0,0 +1,61 @@ +[ + { + "id": "exo_mounted_drill", + "type": "TOOL_ARMOR", + "name": { "str": "exoskeleton mounted drill" }, + "category": "tool", + "description": "A powerful header drill with synthetic diamond covers most of the exoskeleton's arm, leaving the hand free. While turned off, it still makes a powerful mace.", + "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE" ], + "weight": "40000 g", + "volume": "5 L", + "longest_side": "5 cm", + "bashing": 60, + "to_hit": { "grip": "weapon", "length": "short", "surface": "any", "balance": "clumsy" }, + "material": [ "hardsteel", "diamond" ], + "symbol": ";", + "color": "light_gray", + "techniques": [ "WBLOCK_1", "SWEEP" ], + "sided": true, + "armor": [ { "encumbrance": 30, "coverage": 80, "covers": [ "arm_l", "hand_l", "arm_r", "hand_r" ] } ], + "use_action": { + "ammo_scale": 0, + "menu_text": "Turn on", + "type": "transform", + "active": true, + "need_charges": 1, + "msg": "You turn on the drill.", + "target": "exo_mounted_drill_on" + } + }, + { + "id": "exo_mounted_drill_on", + "type": "TOOL_ARMOR", + "copy-from": "exo_mounted_drill", + "name": { "str": "exoskeleton mounted drill (on)" }, + "description": "The drill is now rotating and making a low growling noise. Meant to make short work of the toughest rock, it should work on more mobile surfaces as well. Use it to turn it off.", + "flags": [ "USE_UPS", "MESSY", "POWERED", "DURABLE_MELEE", "DIG_TOOL", "POWERARMOR_COMPATIBLE" ], + "bashing": 60, + "cutting": 20, + "power_draw": 2000, + "revert_to": "exo_mounted_drill", + "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "You turn off the drill.", "target": "exo_mounted_drill" } + }, + { + "id": "exo_hydraulic_gauntlet", + "copy-from": "afs_hydraulic_gauntlet", + "type": "ARMOR", + "name": { "str": "exoskeleton hydraulic gauntlet" }, + "description": "A huge, heavy metal gauntlet lined with tubing and gauges, worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively. ", + "looks_like": "gauntlets_chitin", + "color": "light_gray", + "bashing": 50, + "to_hit": -2, + "sided": true, + "warmth": 20, + "material": "hardsteel", + "material_thickness": 2, + "flags": [ "NONCONDUCTIVE", "SLOW_WIELD", "DURABLE_MELEE", "UNARMED_WEAPON", "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], + "techniques": [ "BRUTAL", "AFS_PRESSURE_CRUNCH" ], + "armor": [ { "encumbrance": 15, "coverage": 100, "covers": [ "hand_l", "hand_r" ] } ] + } +] diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json b/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json new file mode 100644 index 0000000000000..3f63b3b173ea2 --- /dev/null +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json @@ -0,0 +1,30 @@ +[ + { + "id": "exo_repair_kit", + "copy-from": "large_repairkit", + "type": "TOOL", + "name": { "str": "soldering iron" }, + "description": "This is a collection of tools including a high-powered torch for working the titanium frame.", + "longest_side": "25 cm", + "price": 1000, + "price_postapoc": 100, + "bashing": 2, + "cutting": 6, + "material": [ "iron" ], + "symbol": ",", + "color": "light_gray", + "ammo": [ "battery" ], + "charges_per_use": 1, + "use_action": [ + { + "type": "repair_item", + "item_action_type": "repair_metal", + "materials": [ "steel", "hardsteel", "titanium" ], + "skill": "fabrication", + "cost_scaling": 0.1, + "move_cost": 1500 + } + ], + "flags": [ "ALLOWS_REMOTE_USE", "WATER_BREAK", "USE_UPS" ] + } +] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index ff3778a3b2d27..1da66e0832885 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -1,3 +1,8 @@ +Cataclysm: Dark Days Ahead JSON Web Linting Tool +This is a tool to help modders and editors of the open source game Cataclysm: Dark Days Ahead write JSON in the game's expected format. + +Paste some JSON into the field below and click "Lint" to run an autoformatter against it. + [ { "id": "afs_exo_undersuit", @@ -29,8 +34,8 @@ "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs.", "weight": "40 kg", "volume": "130 L", - "material": [ "steel", "plastic" ], - "material_thickness": 8, + "material": [ "titanium" ], + "material_thickness": 2, "power_armor": true, "symbol": "T", "looks_like": "power_armor_basic", @@ -158,7 +163,7 @@ "description": "This is a helmet offering mounts for specialized equipment and protection.", "weight": "2500 g", "volume": "5 L", - "material": [ "steel", "plastic" ], + "material": [ "titanium", "plastic" ], "symbol": "n", "looks_like": "power_armor_helmet_basic", "color": "dark_gray", @@ -193,7 +198,7 @@ "description": "This is a pair of exoskeleton boots. Has mounting points for protective plate.", "weight": "2000 g", "volume": "3250 ml", - "material": [ "steel", "plastic" ], + "material": [ "titanium", "plastic" ], "symbol": "b", "looks_like": "boots_plate", "color": "dark_gray", @@ -218,15 +223,16 @@ "category": "armor", "name": { "str": "exoskeleton gloves", "str_pl": "exoskeleton gloves" }, "description": "This is a pair of exoskeleton gloves. Has mounting points for protective plate.", - "weight": "1000 g", - "volume": "1500 ml", - "material": [ "steel", "plastic" ], + "weight": "500 g", + "volume": "750 ml", + "material": [ "titanium", "plastic" ], "symbol": "g", "looks_like": "gloves_plate", "color": "dark_gray", "power_armor": true, "material_thickness": 8, "environmental_protection": 16, + "sided": true, "armor": [ { "encumbrance": 5, "coverage": 100, "covers": [ "hand_l", "hand_r" ] } ], "flags": [ "WATERPROOF", "STURDY" ], "pocket_data": [ @@ -240,3 +246,4 @@ ] } ] + diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 32b1a50b92052..dc5d08810fdfb 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -353,7 +353,7 @@ "price": 30000, "price_postapoc": 500, "material": [ "plastic", "glass" ], - "flags": [ "ZOOM", "SUN_GLASSES", "FLASH_PROTECTION", "EXO_HELMET_GADGET", "ONLY_ONE" ], + "flags": [ "ZOOM", "USE_UPS", "SUN_GLASSES", "FLASH_PROTECTION", "EXO_HELMET_GADGET", "ONLY_ONE" ], "weight": "500 g", "volume": "500 ml", "bashing": 4, @@ -381,7 +381,7 @@ "msg": "You turn off helmet's optical enhancement.", "target": "exo_optics_off" }, - "flags": [ "USE_UPS", "CANT_WEAR", "IR_EFFECT", "EXO_HELMET_GADGET", "ONLY_ONE" ] + "flags": [ "ZOOM", "USE_UPS", "CANT_WEAR", "IR_EFFECT", "EXO_HELMET_GADGET", "ONLY_ONE" ] }, { "id": "exoskeleton_helmet_filter", @@ -402,46 +402,5 @@ "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "gasfilter_m": 100 } } ], "ammo": "gasfilter_m", "use_action": [ "GASMASK" ] - }, - { - "id": "exo_mounted_drill", - "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton mounted drill" }, - "category": "clothing", - "description": "A powerful header drill covers most of the exoskeleton's arm, leaving the hand free. While turned off, it still makes a powerful mace.", - "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE" ], - "weight": "40000 g", - "volume": "5 L", - "longest_side": "5 cm", - "bashing": 60, - "to_hit": { "grip": "weapon", "length": "short", "surface": "any", "balance": "clumsy" }, - "material": [ "hardsteel", "diamond" ], - "symbol": ";", - "color": "light_gray", - "techniques": [ "WBLOCK_1", "SWEEP" ], - "sided": true, - "armor": [ { "encumbrance": 30, "coverage": 80, "covers": [ "arm_l", "hand_l", "arm_r", "hand_r" ] } ], - "use_action": { - "ammo_scale": 0, - "menu_text": "Turn on", - "type": "transform", - "active": true, - "need_charges": 1, - "msg": "You turn on the drill.", - "target": "exo_mounted_drill_on" - } - }, - { - "id": "exo_mounted_drill_on", - "type": "TOOL_ARMOR", - "copy-from": "exo_mounted_drill", - "name": { "str": "exoskeleton mounted drill (on)" }, - "description": "The drill is now rotating and making a low growling noise. Meant to make short work of the toughest rock, it should work on more mobile surfaces as well. Use it to turn it off.", - "flags": [ "USE_UPS", "MESSY", "POWERED", "DURABLE_MELEE", "DIG_TOOL", "POWERARMOR_COMPATIBLE" ], - "bashing": 60, - "cutting": 20, - "power_draw": 2000, - "revert_to": "exo_mounted_drill", - "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "You turn off the drill.", "target": "exo_mounted_drill" } } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index ff65349a1cae8..32ad9f84ace64 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -1,7 +1,7 @@ [ { "id": "exo_rifle_storage", - "copy-from": "back_holster", + "copy-from": "back_holster", "type": "ARMOR", "name": { "str": "large storage pouch" }, "description": "A hardpoint for storing a rifle. Activate to holster/draw a gun.", @@ -16,7 +16,7 @@ }, { "id": "exo_melee_storage", - "copy-from": "bscabbard", + "copy-from": "bscabbard", "type": "ARMOR", "name": { "str": "large storage pouch" }, "description": "A hardpoint for storing a sword. Activate to sheath/draw a sword .", @@ -33,7 +33,7 @@ }, { "id": "exo_large_storage", - "copy-from": "backpack_tactical_large", + "copy-from": "backpack_tactical_large", "repairs_like": "backpack_tactical_large", "type": "ARMOR", "name": { "str": "exoskeleton large storage pack" }, @@ -44,12 +44,11 @@ "flags": [ "WATER_FRIENDLY", "EXO_LARGE_GADGET" ], "symbol": "[", "looks_like": "backpack", - "armor": [ - { "encumbrance": [ 10, 55 ], "coverage": 50, "covers": [ "torso" ] } ] + "armor": [ { "encumbrance": [ 10, 55 ], "coverage": 50, "covers": [ "torso" ] } ] }, { "id": "exo_medium_storage", - "copy-from": "fanny", + "copy-from": "fanny", "repairs_like": "fanny", "type": "ARMOR", "name": { "str": "exoskeleton medium pouch", "str_pl": "exoskeleton medium pouches" }, @@ -64,7 +63,7 @@ }, { "id": "exo_small_storage", - "copy-from": "leather_pouch", + "copy-from": "leather_pouch", "repairs_like": "fanny", "type": "ARMOR", "name": { "str": "exoskeleton small pouch", "str_pl": "exoskeleton small pouches" }, @@ -78,8 +77,8 @@ }, { "id": "exo_large_ammo_pouch", - "copy-from": "tacvest", - "looks_like": "tacvest", + "copy-from": "tacvest", + "looks_like": "tacvest", "type": "ARMOR", "name": { "str": "exoskeleton large ammo pouches", "str_pl": "exoskeleton large ammo pouches" }, "description": "A set of pouches that attach to a hardpoint.", @@ -91,28 +90,17 @@ "symbol": "[", "color": "dark_gray", "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], - "armor": [ - { - "encumbrance": [ 2, 5 ], - "coverage": 0 - } - ] + "armor": [ { "encumbrance": [ 2, 5 ], "coverage": 0 } ] }, { "id": "exo_small_ammo_pouch", - "copy-from": "legrig", + "copy-from": "legrig", "type": "ARMOR", "name": { "str": "exoskeleton small ammo pouches", "str_pl": "exoskeleton small ammo pouches" }, "description": "A set of pouches that attach to a hardpoint.", "symbol": "[", "color": "dark_gray", "flags": [ "WATER_FRIENDLY", "EXO_SMALL_GADGET" ], - "armor": [ - { - "encumbrance": [ 2, 5 ], - "covers": [ "leg_l", "leg_r" ], - "specifically_covers": [ "leg_upper_r", "leg_upper_l" ] - } - ] + "armor": [ { "encumbrance": [ 2, 5 ], "covers": [ "leg_l", "leg_r" ], "specifically_covers": [ "leg_upper_r", "leg_upper_l" ] } ] } ] diff --git a/data/mods/Aftershock/items/vehicle_items.json b/data/mods/Aftershock/items/vehicle_items.json index 276d63a3a5908..819d204022f61 100644 --- a/data/mods/Aftershock/items/vehicle_items.json +++ b/data/mods/Aftershock/items/vehicle_items.json @@ -15,5 +15,12 @@ "properties": [ [ "creature_size_capacity", "LARGE" ] ], "use_action": "CAPTURE_MONSTER_VEH", "flags": [ "TRADER_AVOID" ] + }, + { + "type": "GENERIC", + "id": "exo_gantry", + "copy-from": "vehicle_rig", + "name": { "str": "exoskeleton maintenance gantry", "str_pl": "exoskeleton maintenance gantry" }, + "description": "A gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active." } ] diff --git a/data/mods/Aftershock/vehicles/vehicle_parts.json b/data/mods/Aftershock/vehicles/vehicle_parts.json index 377859a40a80c..59c93ebdabd84 100644 --- a/data/mods/Aftershock/vehicles/vehicle_parts.json +++ b/data/mods/Aftershock/vehicles/vehicle_parts.json @@ -364,5 +364,40 @@ { "item": "steel_chunk", "count": [ 6, 8 ] }, { "item": "scrap", "count": [ 6, 8 ] } ] + }, + { + "type": "vehicle_part", + "id": "exo_gantry", + "name": { "str": "exoskeleton maintenance gantry" }, + "symbol": "T", + "categories": [ "utility" ], + "color": "light_gray", + "broken_symbol": "x", + "broken_color": "light_gray", + "looks_like": "welding_rig", + "damage_modifier": 10, + "durability": 200, + "description": "A gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active.", + "size": 800, + "bonus": 600, + "item": "afs_metal_rig", + "location": "center", + "requirements": { + "install": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, + "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, + "repair": { "skills": [ [ "mechanics", 4 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } + }, + "flags": [ "CARGO", "OBSTACLE", "COVERED", "RECHARGE" ], + "pseudo_tools": [ + { "id": "welder", "hotkey": "w" }, + { "id": "soldering_iron", "hotkey": "s" }, + { "id": "exo_repair_kit", "hotkey": "e" } + ], + "breaks_into": [ + { "item": "steel_lump", "count": [ 3, 6 ] }, + { "item": "steel_chunk", "count": [ 3, 6 ] }, + { "item": "scrap", "count": [ 3, 6 ] }, + { "item": "welder", "charges": 0, "prob": 50 } + ] } ] From a0ec937642290c5178102d8d60978cf0cf27a62a Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 13 Dec 2021 23:15:22 -0800 Subject: [PATCH 022/189] Clean up plating --- .../items/armor/modular_exos/exo_gear.json | 10 +- .../modular_exos/modular_exoskeleton.json | 8 +- .../modular_exoskeleton_modules.json | 2 +- .../modular_exoskeleton_plating.json | 651 +++++++----------- 4 files changed, 257 insertions(+), 414 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index b2e71a9341a40..54f87d82b1422 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -4,19 +4,19 @@ "type": "TOOL_ARMOR", "name": { "str": "exoskeleton mounted drill" }, "category": "tool", - "description": "A powerful header drill with synthetic diamond covers most of the exoskeleton's arm, leaving the hand free. While turned off, it still makes a powerful mace.", + "description": "A powerful header drill with tough carbide bits, this tool mounts to the exoskeleton's arm and extends past the hand. While turned off, it still makes a powerful mace.", "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE" ], "weight": "40000 g", "volume": "5 L", "longest_side": "5 cm", "bashing": 60, "to_hit": { "grip": "weapon", "length": "short", "surface": "any", "balance": "clumsy" }, - "material": [ "hardsteel", "diamond" ], + "material": [ "hardsteel", "vacuum_carbide" ], "symbol": ";", "color": "light_gray", "techniques": [ "WBLOCK_1", "SWEEP" ], "sided": true, - "armor": [ { "encumbrance": 30, "coverage": 80, "covers": [ "arm_l", "hand_l", "arm_r", "hand_r" ] } ], + "armor": [ { "encumbrance": 20, "coverage": 80, "covers": [ "arm_l", "hand_l", "arm_r", "hand_r" ] } ], "use_action": { "ammo_scale": 0, "menu_text": "Turn on", @@ -49,7 +49,7 @@ "looks_like": "gauntlets_chitin", "color": "light_gray", "bashing": 50, - "to_hit": -2, + "to_hit": { "grip": "weapon", "length": "hand", "surface": "any", "balance": "good" }, "sided": true, "warmth": 20, "material": "hardsteel", @@ -58,4 +58,4 @@ "techniques": [ "BRUTAL", "AFS_PRESSURE_CRUNCH" ], "armor": [ { "encumbrance": 15, "coverage": 100, "covers": [ "hand_l", "hand_r" ] } ] } -] +] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 1da66e0832885..3567ad418329e 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -1,8 +1,3 @@ -Cataclysm: Dark Days Ahead JSON Web Linting Tool -This is a tool to help modders and editors of the open source game Cataclysm: Dark Days Ahead write JSON in the game's expected format. - -Paste some JSON into the field below and click "Lint" to run an autoformatter against it. - [ { "id": "afs_exo_undersuit", @@ -245,5 +240,4 @@ Paste some JSON into the field below and click "Lint" to run an autoformatter ag } ] } -] - +] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index dc5d08810fdfb..a398dd0deeac3 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -403,4 +403,4 @@ "ammo": "gasfilter_m", "use_action": [ "GASMASK" ] } -] +] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 3df5a6337c8cb..481080f545e76 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -16,405 +16,102 @@ "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_HELMET_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] }, - { - "id": "exo_torso_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton torso steel plate" }, - "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", - "weight": "34347 g", - "volume": "8 L", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "cuirass_lightplate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_TORSO_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] - }, - { - "id": "exo_psu_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton PSU steel plate" }, - "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of steel.", - "weight": "42933 g", - "volume": "10 L", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "backpack_tactical_large", - "color": "light_gray", - "warmth": 0, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_PSU_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 50, "covers": [ "torso" ] } ] - }, - { - "id": "exo_arm_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton arm steel plate" }, - "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", - "weight": "25760 g", - "volume": "5500 ml", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "armguard_lightplate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_ARM_PLATE" ], - "armor": [ - { - "covers": [ "arm_l", "arm_r" ], - "encumbrance": 16, - "coverage": 95, - "cover_melee": 95, - "cover_ranged": 95, - "cover_vitals": 90, - "specifically_covers": [ "arm_lower_r", "arm_lower_l", "arm_elbow_r", "arm_elbow_l", "arm_upper_r", "arm_upper_l" ] - } - ] - }, - { - "id": "exo_glove_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton glove steel plate" }, - "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of steel.", - "weight": "4293 g", - "volume": "1 ml", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "gloves_plate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] - }, - { - "id": "exo_leg_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton legs steel plate" }, - "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", - "weight": "30053 g", - "volume": "8 L", - "material": [ "steel" ], - "symbol": "L", - "looks_like": "legguard_lightplate", - "color": "light_gray", - "warmth": 10, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_LEG_PLATE" ], - "armor": [ - { - "covers": [ "leg_l", "leg_r" ], - "encumbrance": 8, - "coverage": 95, - "cover_melee": 95, - "cover_ranged": 95, - "cover_vitals": 90, - "specifically_covers": [ "leg_lower_r", "leg_lower_l", "leg_knee_r", "leg_knee_l", "leg_upper_r", "leg_upper_l" ] - } - ] - }, - { - "id": "exo_boot_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton boot steel plate" }, - "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of steel.", - "weight": "30053 g", - "volume": "3250 ml", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "boots_plate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_BOOT_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] - }, { "id": "exo_helmet_plastic", "type": "ARMOR", "category": "armor", + "copy-from": "exo_helmet_steel", "name": { "str": "exoskeleton helmet plastic plate" }, "description": "Designed to attach to an exoskeleton's helmet, this is a plate of plastic.", "weight": "1287 g", - "volume": "5 L", "material": [ "plastic" ], - "symbol": "[", "looks_like": "power_armor_helmet_basic", - "color": "light_gray", - "warmth": 20, "material_thickness": 3, - "non_functional": "destroyed_exo_helmet_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_HELMET_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] + "non_functional": "destroyed_exo_helmet_plastic_plate" }, { "id": "destroyed_exo_helmet_plastic_plate", "type": "ARMOR", "copy-from": "exo_helmet_plastic", - "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "name": { "str": "shattered helmet plastic plate" }, + "description": "The remains of a plastic helmet plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_helmet_plastic", - "material": [ "plastic" ], - "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_HELMET_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] }, { - "id": "exo_torso_plastic", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton torso plastic plate" }, - "description": "Designed to attach to an exoskeleton's torso, this is a plate of plastic.", - "weight": "3432 g", - "volume": "8 L", - "material": [ "plastic" ], - "symbol": "[", - "looks_like": "cuirass_lightplate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 3, - "non_functional": "destroyed_exo_torso_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_TORSO_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] - }, - { - "id": "destroyed_exo_torso_plastic_plate", - "type": "ARMOR", - "copy-from": "exo_torso_plastic", - "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_torso_plastic", - "material": [ "plastic" ], - "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_TORSO_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] - }, - { - "id": "exo_psu_plastic", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton PSU plastic plate" }, - "description": "Designed to attach to an exoskeleton's power supply unit, this is a plate of plastic.", - "weight": "4290 g", - "volume": "10 L", - "material": [ "plastic" ], - "symbol": "[", - "looks_like": "backpack_tactical_large", - "color": "light_gray", - "warmth": 0, - "material_thickness": 3, - "non_functional": "destroyed_exo_psu_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 50, "covers": [ "torso" ] } ] - }, - { - "id": "destroyed_exo_psu_plastic_plate", - "type": "ARMOR", - "copy-from": "exo_psu_plastic", - "name": { "str": "shattered plastic PSU plate" }, - "description": "The remains of a plastic PSU plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_psu_plastic", - "material": [ "plastic" ], - "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] - }, - { - "id": "exo_arm_plastic", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton arm plastic plate" }, - "description": "Designed to attach to an exoskeleton's arms, these are plates of plastic.", - "weight": "2574 g", - "volume": "5500 ml", - "material": [ "plastic" ], - "symbol": "[", - "looks_like": "armguard_lightplate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 3, - "non_functional": "destroyed_exo_arm_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_ARM_PLATE" ], - "armor": [ - { - "covers": [ "arm_l", "arm_r" ], - "encumbrance": 16, - "coverage": 95, - "cover_melee": 95, - "cover_ranged": 95, - "cover_vitals": 90, - "specifically_covers": [ "arm_lower_r", "arm_lower_l", "arm_elbow_r", "arm_elbow_l", "arm_upper_r", "arm_upper_l" ] - } - ] - }, - { - "id": "exo_glove_plastic", + "id": "exo_helmet_milcomp", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton glove plastic plate" }, - "description": "Designed to attach to an exoskeleton's glove, this is a plate of plastic.", - "weight": "429 g", - "volume": "1 ml", - "material": [ "plastic" ], - "symbol": "[", - "looks_like": "gloves_plate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 3, - "non_functional": "destroyed_exo_glove_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] - }, - { - "id": "destroyed_exo_glove_plastic_plate", - "type": "ARMOR", - "copy-from": "exo_glove_plastic", - "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_glove_plastic", - "material": [ "plastic" ], - "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_GLOVE_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] + "copy-from": "exo_helmet_steel", + "name": { "str": "exoskeleton helmet military composite plate" }, + "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of military composite.", + "weight": "16500 g", + "volume": "5 L", + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, + "non_functional": "destroyed_exo_helmet_milcomp_plate" }, { - "id": "destroyed_exo_arm_plastic_plate", + "id": "destroyed_exo_helmet_milcomp_plate", "type": "ARMOR", - "copy-from": "exo_arm_plastic", - "name": { "str": "shattered plastic arm plate" }, - "description": "The remains of a plastic arm plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_arm_plastic", - "material": [ "plastic" ], - "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_ARM_PLATE" ], - "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] + "copy-from": "exo_helmet_milcomp", + "name": { "str": "shattered military composite helmet plate" }, + "description": "The remains of a military composite helmet plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_helmet_milcomp", + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] }, { - "id": "exo_leg_plastic", + "id": "exo_torso_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton legs plastic plate" }, - "description": "Designed to attach to an exoskeleton's legs, these are plates of plastic.", - "weight": "3003 g", + "name": { "str": "exoskeleton torso steel plate" }, + "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", + "weight": "34347 g", "volume": "8 L", - "material": [ "plastic" ], - "symbol": "L", - "looks_like": "legguard_lightplate", - "color": "light_gray", - "warmth": 10, - "material_thickness": 3, - "non_functional": "destroyed_exo_leg_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_LEG_PLATE" ], - "armor": [ - { - "covers": [ "leg_l", "leg_r" ], - "encumbrance": 8, - "coverage": 95, - "cover_melee": 95, - "cover_ranged": 95, - "cover_vitals": 90, - "specifically_covers": [ "leg_lower_r", "leg_lower_l", "leg_knee_r", "leg_knee_l", "leg_upper_r", "leg_upper_l" ] - } - ] - }, - { - "id": "destroyed_exo_leg_plastic_plate", - "type": "ARMOR", - "copy-from": "exo_leg_plastic", - "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_leg_plastic", - "material": [ "plastic" ], - "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_LEG_PLATE" ], - "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] - }, - { - "id": "exo_boot_plastic", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton boot plastic plate" }, - "description": "Designed to attach to an exoskeleton's boot, this is a plate of plastic.", - "weight": "3003 g", - "volume": "3250 ml", - "material": [ "plastic" ], + "material": [ "steel" ], "symbol": "[", - "looks_like": "boots_plate", + "looks_like": "cuirass_lightplate", "color": "light_gray", "warmth": 20, - "material_thickness": 3, - "non_functional": "destroyed_exo_boot_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_BOOT_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] - }, - { - "id": "destroyed_exo_boot_plastic_plate", - "type": "ARMOR", - "copy-from": "exo_boot_plastic", - "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_boot_plastic", - "material": [ "plastic" ], - "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_BOOT_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] + "material_thickness": 6, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_TORSO_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { - "id": "exo_helmet_milcomp", + "id": "exo_torso_plastic", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton helmet military composite plate" }, - "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of military composite.", - "weight": "16500 g", - "volume": "5 L", - "material": [ "hardsteel", "ceramic" ], - "symbol": "[", - "looks_like": "power_armor_helmet_basic", - "color": "light_gray", - "warmth": 20, - "material_thickness": 8, - "non_functional": "destroyed_exo_helmet_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_HELMET_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] + "copy-from": "exo_torso_steel", + "name": { "str": "exoskeleton torso plastic plate" }, + "description": "Designed to attach to an exoskeleton's torso, this is a plate of plastic.", + "weight": "3432 g", + "volume": "8 L", + "material": [ "plastic" ], + "material_thickness": 3, + "non_functional": "destroyed_exo_torso_plastic_plate" }, { - "id": "destroyed_exo_helmet_milcomp_plate", + "id": "destroyed_exo_torso_plastic_plate", "type": "ARMOR", - "copy-from": "exo_helmet_milcomp", - "name": { "str": "shattered military composite helmet plate" }, - "description": "The remains of a military composite helmet plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_helmet_milcomp", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_HELMET_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] + "copy-from": "exo_torso_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_torso_plastic", + "material_thickness": 3, + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, { "id": "exo_torso_milcomp", "type": "ARMOR", "category": "armor", + "copy-from": "exo_torso_steel", "name": { "str": "exoskeleton torso military composite plate" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of military composite.", "weight": "44000 g", "volume": "8 L", "material": [ "hardsteel", "ceramic" ], - "symbol": "[", - "looks_like": "cuirass_lightplate", - "color": "light_gray", - "warmth": 20, "material_thickness": 8, - "non_functional": "destroyed_exo_torso_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_TORSO_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + "non_functional": "destroyed_exo_torso_milcomp_plate" }, { "id": "destroyed_exo_torso_milcomp_plate", @@ -422,29 +119,59 @@ "copy-from": "exo_torso_milcomp", "name": { "str": "shattered military composite torso plate" }, "description": "The remains of a military composite torso plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_torso_milcomp", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_TORSO_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] + "looks_like": "exo_torso_milcomp" + }, + { + "id": "exo_psu_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton PSU steel plate" }, + "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of steel.", + "weight": "42933 g", + "volume": "10 L", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "backpack_tactical_large", + "color": "light_gray", + "warmth": 0, + "material_thickness": 6, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_PSU_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 50, "covers": [ "torso" ] } ] + }, + { + "id": "exo_psu_plastic", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_psu_steel", + "name": { "str": "exoskeleton PSU plastic plate" }, + "description": "Designed to attach to an exoskeleton's power supply unit, this is a plate of plastic.", + "weight": "4290 g", + "volume": "10 L", + "material": [ "plastic" ], + "material_thickness": 3, + "non_functional": "destroyed_exo_psu_plastic_plate", + }, + { + "id": "destroyed_exo_psu_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_psu_plastic", + "name": { "str": "shattered plastic PSU plate" }, + "description": "The remains of a plastic PSU plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_psu_plastic", + "material_thickness": 3 }, { "id": "exo_psu_milcomp", "type": "ARMOR", "category": "armor", + "copy-from": "exo_psu_steel", "name": { "str": "exoskeleton PSU military composite plate" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of military composite.", "weight": "55000 g", "volume": "10 L", "material": [ "hardsteel", "ceramic" ], - "symbol": "[", - "looks_like": "backpack_tactical_large", - "color": "light_gray", - "warmth": 0, "material_thickness": 8, "non_functional": "destroyed_exo_psu_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 50, "covers": [ "torso" ] } ] }, { "id": "destroyed_exo_psu_milcomp_plate", @@ -453,26 +180,22 @@ "name": { "str": "shattered military composite PSU plate" }, "description": "The remains of a military composite PSU plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_psu_milcomp", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, { - "id": "exo_arm_milcomp", + "id": "exo_arm_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton arm military composite plate" }, - "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of military composite.", - "weight": "33000 g", + "name": { "str": "exoskeleton arm steel plate" }, + "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", + "weight": "25760 g", "volume": "5500 ml", - "material": [ "hardsteel", "ceramic" ], + "material": [ "steel" ], "symbol": "[", "looks_like": "armguard_lightplate", "color": "light_gray", "warmth": 20, - "material_thickness": 8, - "non_functional": "destroyed_exo_arm_milcomp_plate", + "material_thickness": 6, "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_ARM_PLATE" ], "armor": [ { @@ -486,6 +209,42 @@ } ] }, + { + "id": "exo_arm_plastic", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_arm_steel", + "name": { "str": "exoskeleton arm plastic plate" }, + "description": "Designed to attach to an exoskeleton's arms, these are plates of plastic.", + "weight": "2574 g", + "volume": "5500 ml", + "material": [ "plastic" ], + "material_thickness": 3, + "non_functional": "destroyed_exo_arm_plastic_plate", + }, + { + "id": "destroyed_exo_arm_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_arm_plastic", + "name": { "str": "shattered plastic arm plate" }, + "description": "The remains of a plastic arm plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_arm_plastic", + "material_thickness": 3, + "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] + }, + { + "id": "exo_arm_milcomp", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_arm_steel", + "name": { "str": "exoskeleton arm military composite plate" }, + "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of military composite.", + "weight": "33000 g", + "volume": "5500 ml", + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, + "non_functional": "destroyed_exo_arm_milcomp_plate" + }, { "id": "destroyed_exo_arm_milcomp_plate", "type": "ARMOR", @@ -493,28 +252,59 @@ "name": { "str": "shattered military composite arm plate" }, "description": "The remains of a military composite arm plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_arm_milcomp", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_ARM_PLATE" ], "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, + { + "id": "exo_glove_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton glove steel plate" }, + "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of steel.", + "weight": "4293 g", + "volume": "1 ml", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "gloves_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 6, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] + }, + { + "id": "exo_glove_plastic", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_glove_steel", + "name": { "str": "exoskeleton glove plastic plate" }, + "description": "Designed to attach to an exoskeleton's glove, this is a plate of plastic.", + "weight": "429 g", + "volume": "1 ml", + "material": [ "plastic" ], + "material_thickness": 3, + "non_functional": "destroyed_exo_glove_plastic_plate", + }, + { + "id": "destroyed_exo_glove_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_glove_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_glove_plastic + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] + }, { "id": "exo_glove_milcomp", "type": "ARMOR", "category": "armor", + "copy-from": "exo_arm_steel", "name": { "str": "exoskeleton glove military composite plate" }, "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of military composite.", "weight": "5500 g", "volume": "1 ml", "material": [ "hardsteel", "ceramic" ], - "symbol": "[", - "looks_like": "gloves_plate", - "color": "light_gray", - "warmth": 20, "material_thickness": 8, "non_functional": "destroyed_exo_glove_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] }, { "id": "destroyed_exo_glove_milcomp_plate", @@ -523,26 +313,22 @@ "name": { "str": "shattered military composite glove plate" }, "description": "The remains of a military composite glove plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_glove_milcomp", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_GLOVE_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] }, { - "id": "exo_leg_milcomp", + "id": "exo_leg_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton legs military composite plate" }, - "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of military composite.", - "weight": "38500 g", + "name": { "str": "exoskeleton legs steel plate" }, + "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", + "weight": "30053 g", "volume": "8 L", - "material": [ "hardsteel", "ceramic" ], + "material": [ "steel" ], "symbol": "L", "looks_like": "legguard_lightplate", "color": "light_gray", "warmth": 10, - "material_thickness": 8, - "non_functional": "destroyed_exo_leg_milcomp_plate", + "material_thickness": 6, "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_LEG_PLATE" ], "armor": [ { @@ -556,6 +342,42 @@ } ] }, + { + "id": "exo_leg_plastic", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_leg_steel", + "name": { "str": "exoskeleton legs plastic plate" }, + "description": "Designed to attach to an exoskeleton's legs, these are plates of plastic.", + "weight": "3003 g", + "volume": "8 L", + "material": [ "plastic" ], + "material_thickness": 3, + "non_functional": "destroyed_exo_leg_plastic_plate" + }, + { + "id": "destroyed_exo_leg_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_leg_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_leg_plastic", + "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] + }, + { + "id": "exo_leg_milcomp", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_leg_steel", + "name": { "str": "exoskeleton legs military composite plate" }, + "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of military composite.", + "weight": "38500 g", + "volume": "8 L", + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, + "non_functional": "destroyed_exo_leg_milcomp_plate", + ] + }, { "id": "destroyed_exo_leg_milcomp_plate", "type": "ARMOR", @@ -563,28 +385,58 @@ "name": { "str": "shattered military composite leg plate" }, "description": "The remains of a military composite leg plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_leg_milcomp", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_LEG_PLATE" ], "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] }, + { + "id": "exo_boot_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton boot steel plate" }, + "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of steel.", + "weight": "30053 g", + "volume": "3250 ml", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "boots_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 6, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_BOOT_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] + }, + { + "id": "exo_boot_plastic", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_boot_steel", + "name": { "str": "exoskeleton boot plastic plate" }, + "description": "Designed to attach to an exoskeleton's boot, this is a plate of plastic.", + "weight": "3003 g", + "volume": "3250 ml", + "material": [ "plastic" ], + "material_thickness": 3, + "non_functional": "destroyed_exo_boot_plastic_plate", + }, + { + "id": "destroyed_exo_boot_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_boot_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] + }, { "id": "exo_boot_milcomp", "type": "ARMOR", "category": "armor", + "copy-from": "exo_boot_steel", "name": { "str": "exoskeleton boot military composite plate" }, "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of military composite.", "weight": "38500 g", "volume": "3250 ml", "material": [ "hardsteel", "ceramic" ], - "symbol": "[", - "looks_like": "boots_plate", - "color": "light_gray", - "warmth": 20, "material_thickness": 8, "non_functional": "destroyed_exo_boot_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_BOOT_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] }, { "id": "destroyed_exo_boot_milcomp_plate", @@ -593,9 +445,6 @@ "name": { "str": "shattered military composite boot plate" }, "description": "The remains of a military composite boot plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_boot_milcomp", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_BOOT_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] } ] From c07bbba5d668cb648bd3a4691a840a73399be9d0 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Tue, 14 Dec 2021 22:28:48 -0800 Subject: [PATCH 023/189] Vacuum-cast carbide Replaces the military composite plating variations with vacuum-cast carbide. Sets three clear tiers of armor. --- .../items/armor/modular_exos/exo_gear.json | 9 +- .../items/armor/modular_exos/exo_recipe.json | 98 ++++++- .../items/armor/modular_exos/exo_tool.json | 2 +- .../modular_exos/modular_exoskeleton.json | 5 +- .../modular_exoskeleton_plating.json | 245 ++++++++++++++---- 5 files changed, 296 insertions(+), 63 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 54f87d82b1422..967bf8c0a3110 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -5,7 +5,7 @@ "name": { "str": "exoskeleton mounted drill" }, "category": "tool", "description": "A powerful header drill with tough carbide bits, this tool mounts to the exoskeleton's arm and extends past the hand. While turned off, it still makes a powerful mace.", - "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE" ], + "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], "weight": "40000 g", "volume": "5 L", "longest_side": "5 cm", @@ -16,7 +16,7 @@ "color": "light_gray", "techniques": [ "WBLOCK_1", "SWEEP" ], "sided": true, - "armor": [ { "encumbrance": 20, "coverage": 80, "covers": [ "arm_l", "hand_l", "arm_r", "hand_r" ] } ], + "armor": [ { "encumbrance": 20, "coverage": 80, "covers": [ "arm_l", "hand_l" ] } ], "use_action": { "ammo_scale": 0, "menu_text": "Turn on", @@ -50,12 +50,11 @@ "color": "light_gray", "bashing": 50, "to_hit": { "grip": "weapon", "length": "hand", "surface": "any", "balance": "good" }, - "sided": true, "warmth": 20, "material": "hardsteel", "material_thickness": 2, "flags": [ "NONCONDUCTIVE", "SLOW_WIELD", "DURABLE_MELEE", "UNARMED_WEAPON", "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], "techniques": [ "BRUTAL", "AFS_PRESSURE_CRUNCH" ], - "armor": [ { "encumbrance": 15, "coverage": 100, "covers": [ "hand_l", "hand_r" ] } ] + "armor": [ { "encumbrance": 15, "coverage": 100, "covers": [ "hand_r" ] } ] } -] \ No newline at end of file +] diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json b/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json index 185bb94c8258c..1222714f5f789 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json @@ -10,13 +10,13 @@ "time": "9 h", "book_learn": [ [ "exosuit_maintenance", 6 ] ], "using": [ [ "blacksmithing_standard", 56 ], [ "steel_standard", 14 ] ], - "qualities": [ { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], "proficiencies": [ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" }, { "proficiency": "prof_armorsmithing" } - ] + ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ] }, { "result": "exo_torso_steel", @@ -28,13 +28,95 @@ "difficulty": 8, "time": "9 h", "book_learn": [ [ "exosuit_maintenance", 7 ] ], - "using": [ [ "blacksmithing_standard", 32 ], [ "steel_standard", 8 ] ], - "qualities": [ { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "swage", -1 ] ] ], + "using": [ [ "blacksmithing_standard", 32 ], [ "steel_standard", 8 ] ], "proficiencies": [ { "proficiency": "prof_armorsmithing" }, { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" } - ] + ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "swage", -1 ] ] ] + }, + { + "result": "exo_psu_steel", + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_ARMS", + "skill_used": "fabrication", + "difficulty": 7, + "skills_required": [ [ "tailor", 3 ] ], + "time": "900 m", + "book_learn": [ [ "exosuit_maintenance", 6 ] ], + "using": [ [ "blacksmithing_standard", 24 ], [ "steel_standard", 2 ] ], + "proficiencies": [ + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_blacksmithing" }, + { "proficiency": "prof_armorsmithing" }, + { "proficiency": "prof_articulation" } + ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "swage", -1 ] ] ] + }, + { + "result": "exo_glove_steel", + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HANDS", + "skill_used": "fabrication", + "difficulty": 6, + "time": "7 h", + "book_learn": [ [ "exosuit_maintenance", 5 ] ], + "using": [ [ "blacksmithing_standard", 24 ], [ "steel_standard", 6 ], [ "clasps", 2 ] ], + "proficiencies": [ + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_blacksmithing" }, + { "proficiency": "prof_armorsmithing" }, + { "proficiency": "prof_articulation" } + ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "swage", -1 ] ] ] + }, + { + "result": "exo_leg_steel", + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_LEGS", + "skill_used": "fabrication", + "difficulty": 8, + "time": "190 m", + "book_learn": [ [ "exosuit_maintenance", 6 ] ], + "using": [ [ "blacksmithing_standard", 28 ], [ "steel_standard", 7 ], [ "clasps", 4 ] ], + "proficiencies": [ + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_blacksmithing" }, + { "proficiency": "prof_armorsmithing" }, + { "proficiency": "prof_articulation" } + ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "swage", -1 ] ] ] + }, + { + "result": "exo_boot_steel", + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_FEET", + "skill_used": "fabrication", + "difficulty": 6, + "time": "8 h", + "book_learn": [ [ "exosuit_maintenance", 4 ] ], + "using": [ [ "blacksmithing_standard", 32 ], [ "steel_standard", 8 ] ], + "proficiencies": [ + { "proficiency": "prof_cobbling" }, + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_blacksmithing" }, + { "proficiency": "prof_armorsmithing" }, + { "proficiency": "prof_articulation" } + ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "swage", -1 ] ] ] } -] \ No newline at end of file +] diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json b/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json index 3f63b3b173ea2..35908845362bb 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json @@ -3,7 +3,7 @@ "id": "exo_repair_kit", "copy-from": "large_repairkit", "type": "TOOL", - "name": { "str": "soldering iron" }, + "name": { "str": "exoskeleton repair kit" }, "description": "This is a collection of tools including a high-powered torch for working the titanium frame.", "longest_side": "25 cm", "price": 1000, diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 3567ad418329e..ce3764999442c 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -218,8 +218,8 @@ "category": "armor", "name": { "str": "exoskeleton gloves", "str_pl": "exoskeleton gloves" }, "description": "This is a pair of exoskeleton gloves. Has mounting points for protective plate.", - "weight": "500 g", - "volume": "750 ml", + "weight": "1000 g", + "volume": "1500 ml", "material": [ "titanium", "plastic" ], "symbol": "g", "looks_like": "gloves_plate", @@ -227,7 +227,6 @@ "power_armor": true, "material_thickness": 8, "environmental_protection": 16, - "sided": true, "armor": [ { "encumbrance": 5, "coverage": 100, "covers": [ "hand_l", "hand_r" ] } ], "flags": [ "WATERPROOF", "STURDY" ], "pocket_data": [ diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 481080f545e76..60c2bfa08508d 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -3,7 +3,7 @@ "id": "exo_helmet_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton helmet steel plate" }, + "name": { "str": "exoskeleton steel helmet plate" }, "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of steel.", "weight": "12880 g", "volume": "5 L", @@ -20,8 +20,8 @@ "id": "exo_helmet_plastic", "type": "ARMOR", "category": "armor", - "copy-from": "exo_helmet_steel", - "name": { "str": "exoskeleton helmet plastic plate" }, + "copy-from": "exo_helmet_steel", + "name": { "str": "exoskeleton plastic helmet plate" }, "description": "Designed to attach to an exoskeleton's helmet, this is a plate of plastic.", "weight": "1287 g", "material": [ "plastic" ], @@ -33,7 +33,7 @@ "id": "destroyed_exo_helmet_plastic_plate", "type": "ARMOR", "copy-from": "exo_helmet_plastic", - "name": { "str": "shattered helmet plastic plate" }, + "name": { "str": "shattered plastic helmet plate" }, "description": "The remains of a plastic helmet plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_helmet_plastic", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] @@ -42,8 +42,8 @@ "id": "exo_helmet_milcomp", "type": "ARMOR", "category": "armor", - "copy-from": "exo_helmet_steel", - "name": { "str": "exoskeleton helmet military composite plate" }, + "copy-from": "exo_helmet_steel", + "name": { "str": "exoskeleton military composite helmet plate" }, "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of military composite.", "weight": "16500 g", "volume": "5 L", @@ -60,11 +60,33 @@ "looks_like": "exo_helmet_milcomp", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] }, + { + "id": "exo_helmet_vcc", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_helmet_steel", + "name": { "str": "exoskeleton vacuum-cast carbide helmet plate" }, + "description": "Designed to attach to an exoskeleton's helmet, this is a plate of vacuum-cast carbide.", + "weight": "1287 g", + "material": [ "vacuum_carbide" ], + "looks_like": "power_armor_helmet_basic", + "material_thickness": 6, + "non_functional": "destroyed_exo_helmet_vcc_plate" + }, + { + "id": "destroyed_exo_helmet_vcc_plate", + "type": "ARMOR", + "copy-from": "exo_helmet_plastic", + "name": { "str": "shattered vacuum-cast carbide helmet plate" }, + "description": "The remains of a vacuum-cast carbide helmet plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_helmet_vcc", + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] + }, { "id": "exo_torso_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton torso steel plate" }, + "name": { "str": "exoskeleton steel torso plate" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", "weight": "34347 g", "volume": "8 L", @@ -81,8 +103,8 @@ "id": "exo_torso_plastic", "type": "ARMOR", "category": "armor", - "copy-from": "exo_torso_steel", - "name": { "str": "exoskeleton torso plastic plate" }, + "copy-from": "exo_torso_steel", + "name": { "str": "exoskeleton plastic torso plate" }, "description": "Designed to attach to an exoskeleton's torso, this is a plate of plastic.", "weight": "3432 g", "volume": "8 L", @@ -104,8 +126,8 @@ "id": "exo_torso_milcomp", "type": "ARMOR", "category": "armor", - "copy-from": "exo_torso_steel", - "name": { "str": "exoskeleton torso military composite plate" }, + "copy-from": "exo_torso_steel", + "name": { "str": "exoskeleton military composite torso plate" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of military composite.", "weight": "44000 g", "volume": "8 L", @@ -121,11 +143,32 @@ "description": "The remains of a military composite torso plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_torso_milcomp" }, + { + "id": "exo_torso_vcc", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_torso_steel", + "name": { "str": "exoskeleton vacuum carbide torso plate" }, + "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of vacuum-cast carbide.", + "weight": "44000 g", + "volume": "8 L", + "material": [ "vacuum_carbide" ], + "material_thickness": 6, + "non_functional": "destroyed_exo_torso_vcc_plate" + }, + { + "id": "destroyed_exo_torso_vcc_plate", + "type": "ARMOR", + "copy-from": "exo_torso_vcc", + "name": { "str": "shattered vacuum carbide plate" }, + "description": "The remains of a vacuum-cast carbide torso plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_torso_vcc" + }, { "id": "exo_psu_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton PSU steel plate" }, + "name": { "str": "exoskeleton steel PSU plate" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of steel.", "weight": "42933 g", "volume": "10 L", @@ -142,14 +185,14 @@ "id": "exo_psu_plastic", "type": "ARMOR", "category": "armor", - "copy-from": "exo_psu_steel", - "name": { "str": "exoskeleton PSU plastic plate" }, + "copy-from": "exo_psu_steel", + "name": { "str": "exoskeleton plastic PSU plate" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a plate of plastic.", "weight": "4290 g", "volume": "10 L", "material": [ "plastic" ], "material_thickness": 3, - "non_functional": "destroyed_exo_psu_plastic_plate", + "non_functional": "destroyed_exo_psu_plastic_plate" }, { "id": "destroyed_exo_psu_plastic_plate", @@ -164,14 +207,14 @@ "id": "exo_psu_milcomp", "type": "ARMOR", "category": "armor", - "copy-from": "exo_psu_steel", - "name": { "str": "exoskeleton PSU military composite plate" }, + "copy-from": "exo_psu_steel", + "name": { "str": "exoskeleton military composite PSU plate" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of military composite.", "weight": "55000 g", "volume": "10 L", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, - "non_functional": "destroyed_exo_psu_milcomp_plate", + "non_functional": "destroyed_exo_psu_milcomp_plate" }, { "id": "destroyed_exo_psu_milcomp_plate", @@ -182,11 +225,33 @@ "looks_like": "exo_psu_milcomp", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, + { + "id": "exo_psu_vcc", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_psu_steel", + "name": { "str": "exoskeleton vacuum-cast carbide PSU plate" }, + "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of vacuum-cast carbide.", + "weight": "55000 g", + "volume": "10 L", + "material": [ "vacuum_carbide" ], + "material_thickness": 6, + "non_functional": "destroyed_exo_psu_milcomp_plate" + }, + { + "id": "destroyed_exo_psu_vcc", + "type": "ARMOR", + "copy-from": "exo_psu_vcc", + "name": { "str": "shattered military composite PSU plate" }, + "description": "The remains of a vacuum-cast carbide PSU plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_psu_vcc", + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] + }, { "id": "exo_arm_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton arm steel plate" }, + "name": { "str": "exoskeleton steel arm plate" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", "weight": "25760 g", "volume": "5500 ml", @@ -213,14 +278,14 @@ "id": "exo_arm_plastic", "type": "ARMOR", "category": "armor", - "copy-from": "exo_arm_steel", - "name": { "str": "exoskeleton arm plastic plate" }, + "copy-from": "exo_arm_steel", + "name": { "str": "exoskeleton plastic arm plate" }, "description": "Designed to attach to an exoskeleton's arms, these are plates of plastic.", "weight": "2574 g", "volume": "5500 ml", "material": [ "plastic" ], "material_thickness": 3, - "non_functional": "destroyed_exo_arm_plastic_plate", + "non_functional": "destroyed_exo_arm_plastic_plate" }, { "id": "destroyed_exo_arm_plastic_plate", @@ -236,8 +301,8 @@ "id": "exo_arm_milcomp", "type": "ARMOR", "category": "armor", - "copy-from": "exo_arm_steel", - "name": { "str": "exoskeleton arm military composite plate" }, + "copy-from": "exo_arm_steel", + "name": { "str": "exoskeleton military composite arm plate" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of military composite.", "weight": "33000 g", "volume": "5500 ml", @@ -254,11 +319,33 @@ "looks_like": "exo_arm_milcomp", "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, + { + "id": "exo_arm_vcc", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_arm_steel", + "name": { "str": "exoskeleton vacuum-cast carbide arm plate" }, + "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of vacuum-cast carbide.", + "weight": "33000 g", + "volume": "5500 ml", + "material": [ "vacuum_carbide" ], + "material_thickness": 6, + "non_functional": "destroyed_exo_arm_vcc_plate" + }, + { + "id": "destroyed_exo_arm_vcc_plate", + "type": "ARMOR", + "copy-from": "exo_arm_vcc", + "name": { "str": "shattered accuum-cast carbide arm plate" }, + "description": "The remains of a accuum-cast carbide arm plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_arm_vcc", + "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] + }, { "id": "exo_glove_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton glove steel plate" }, + "name": { "str": "exoskeleton steel glove plate" }, "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of steel.", "weight": "4293 g", "volume": "1 ml", @@ -267,6 +354,7 @@ "looks_like": "gloves_plate", "color": "light_gray", "warmth": 20, + "sided": true, "material_thickness": 6, "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] @@ -275,14 +363,14 @@ "id": "exo_glove_plastic", "type": "ARMOR", "category": "armor", - "copy-from": "exo_glove_steel", - "name": { "str": "exoskeleton glove plastic plate" }, + "copy-from": "exo_glove_steel", + "name": { "str": "exoskeleton plastic glove plate" }, "description": "Designed to attach to an exoskeleton's glove, this is a plate of plastic.", "weight": "429 g", "volume": "1 ml", "material": [ "plastic" ], "material_thickness": 3, - "non_functional": "destroyed_exo_glove_plastic_plate", + "non_functional": "destroyed_exo_glove_plastic_plate" }, { "id": "destroyed_exo_glove_plastic_plate", @@ -290,21 +378,21 @@ "copy-from": "exo_glove_plastic", "name": { "str": "shattered plastic leg plate" }, "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_glove_plastic + "looks_like": "exo_glove_plastic", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] }, { "id": "exo_glove_milcomp", "type": "ARMOR", "category": "armor", - "copy-from": "exo_arm_steel", - "name": { "str": "exoskeleton glove military composite plate" }, + "copy-from": "exo_arm_steel", + "name": { "str": "exoskeleton military composite glove plate" }, "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of military composite.", "weight": "5500 g", "volume": "1 ml", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, - "non_functional": "destroyed_exo_glove_milcomp_plate", + "non_functional": "destroyed_exo_glove_milcomp_plate" }, { "id": "destroyed_exo_glove_milcomp_plate", @@ -315,11 +403,33 @@ "looks_like": "exo_glove_milcomp", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] }, + { + "id": "exo_glove_vcc", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_arm_steel", + "name": { "str": "exoskeleton vacuum-cast composite glove plate" }, + "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of vacuum-cast composite.", + "weight": "5500 g", + "volume": "1 ml", + "material": [ "vacuum-cast" ], + "material_thickness": 6, + "non_functional": "destroyed_exo_glove_vcc_plate" + }, + { + "id": "destroyed_exo_glove_vcc_plate", + "type": "ARMOR", + "copy-from": "exo_glove_vcc", + "name": { "str": "shattered vacuum-cast composite glove plate" }, + "description": "The remains of a vacuum-cast composite glove plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_glove_vcc", + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] + }, { "id": "exo_leg_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton legs steel plate" }, + "name": { "str": "exoskeleton steel legs plate" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", "weight": "30053 g", "volume": "8 L", @@ -346,8 +456,8 @@ "id": "exo_leg_plastic", "type": "ARMOR", "category": "armor", - "copy-from": "exo_leg_steel", - "name": { "str": "exoskeleton legs plastic plate" }, + "copy-from": "exo_leg_steel", + "name": { "str": "exoskeleton plastic legs plate" }, "description": "Designed to attach to an exoskeleton's legs, these are plates of plastic.", "weight": "3003 g", "volume": "8 L", @@ -368,15 +478,14 @@ "id": "exo_leg_milcomp", "type": "ARMOR", "category": "armor", - "copy-from": "exo_leg_steel", - "name": { "str": "exoskeleton legs military composite plate" }, + "copy-from": "exo_leg_steel", + "name": { "str": "exoskeleton military composite legs plate" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of military composite.", "weight": "38500 g", "volume": "8 L", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, - "non_functional": "destroyed_exo_leg_milcomp_plate", - ] + "non_functional": "destroyed_exo_leg_milcomp_plate" }, { "id": "destroyed_exo_leg_milcomp_plate", @@ -387,11 +496,33 @@ "looks_like": "exo_leg_milcomp", "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] }, + { + "id": "exo_leg_vcc", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_leg_steel", + "name": { "str": "exoskeleton vacuum-cast carbide legs plate" }, + "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of vacuum-cast carbide.", + "weight": "38500 g", + "volume": "8 L", + "material": [ "vacuum-cast" ], + "material_thickness": 6, + "non_functional": "destroyed_exo_leg_vcc_plate" + }, + { + "id": "destroyed_exo_leg_vcc_plate", + "type": "ARMOR", + "copy-from": "exo_leg_vcc", + "name": { "str": "shattered vacuum-cast carbide leg plate" }, + "description": "The remains of a vacuum-cast carbide leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_leg_vcc", + "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] + }, { "id": "exo_boot_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton boot steel plate" }, + "name": { "str": "exoskeleton steel boot plate" }, "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of steel.", "weight": "30053 g", "volume": "3250 ml", @@ -408,14 +539,14 @@ "id": "exo_boot_plastic", "type": "ARMOR", "category": "armor", - "copy-from": "exo_boot_steel", - "name": { "str": "exoskeleton boot plastic plate" }, + "copy-from": "exo_boot_steel", + "name": { "str": "exoskeleton plastic boot plate" }, "description": "Designed to attach to an exoskeleton's boot, this is a plate of plastic.", "weight": "3003 g", "volume": "3250 ml", "material": [ "plastic" ], "material_thickness": 3, - "non_functional": "destroyed_exo_boot_plastic_plate", + "non_functional": "destroyed_exo_boot_plastic_plate" }, { "id": "destroyed_exo_boot_plastic_plate", @@ -429,14 +560,14 @@ "id": "exo_boot_milcomp", "type": "ARMOR", "category": "armor", - "copy-from": "exo_boot_steel", - "name": { "str": "exoskeleton boot military composite plate" }, + "copy-from": "exo_boot_steel", + "name": { "str": "exoskeleton military composite boot plate" }, "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of military composite.", "weight": "38500 g", "volume": "3250 ml", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, - "non_functional": "destroyed_exo_boot_milcomp_plate", + "non_functional": "destroyed_exo_boot_milcomp_plate" }, { "id": "destroyed_exo_boot_milcomp_plate", @@ -446,5 +577,27 @@ "description": "The remains of a military composite boot plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_boot_milcomp", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] + }, + { + "id": "exo_boot_vcc", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_boot_steel", + "name": { "str": "exoskeleton vacuum-cast carbide boot plate" }, + "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of vacuum-cast carbide.", + "weight": "38500 g", + "volume": "3250 ml", + "material": [ "vacuum_carbide" ], + "material_thickness": 6, + "non_functional": "destroyed_exo_boot_vcc_plate" + }, + { + "id": "destroyed_exo_boot_vcc_plate", + "type": "ARMOR", + "copy-from": "exo_boot_vcc", + "name": { "str": "shattered military composite boot plate" }, + "description": "The remains of a vacuum-cast carbide boot plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_boot_vcc", + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] } ] From 891630443e676c76ad21d3e2048a6b7629dabf52 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 00:59:28 -0800 Subject: [PATCH 024/189] Remove military composite --- .../modular_exos/modular_exoskeleton.json | 2 +- .../modular_exoskeleton_plating.json | 163 +----------------- 2 files changed, 6 insertions(+), 159 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index ce3764999442c..cdc95f3e8ba10 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -239,4 +239,4 @@ } ] } -] \ No newline at end of file +] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 60c2bfa08508d..3d7310d3a2963 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -38,28 +38,6 @@ "looks_like": "exo_helmet_plastic", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] }, - { - "id": "exo_helmet_milcomp", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_helmet_steel", - "name": { "str": "exoskeleton military composite helmet plate" }, - "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of military composite.", - "weight": "16500 g", - "volume": "5 L", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "non_functional": "destroyed_exo_helmet_milcomp_plate" - }, - { - "id": "destroyed_exo_helmet_milcomp_plate", - "type": "ARMOR", - "copy-from": "exo_helmet_milcomp", - "name": { "str": "shattered military composite helmet plate" }, - "description": "The remains of a military composite helmet plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_helmet_milcomp", - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] - }, { "id": "exo_helmet_vcc", "type": "ARMOR", @@ -116,33 +94,12 @@ "id": "destroyed_exo_torso_plastic_plate", "type": "ARMOR", "copy-from": "exo_torso_plastic", - "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "name": { "str": "shattered plastic torso plate" }, + "description": "The remains of a plastic torso plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_torso_plastic", "material_thickness": 3, "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, - { - "id": "exo_torso_milcomp", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_torso_steel", - "name": { "str": "exoskeleton military composite torso plate" }, - "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of military composite.", - "weight": "44000 g", - "volume": "8 L", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "non_functional": "destroyed_exo_torso_milcomp_plate" - }, - { - "id": "destroyed_exo_torso_milcomp_plate", - "type": "ARMOR", - "copy-from": "exo_torso_milcomp", - "name": { "str": "shattered military composite torso plate" }, - "description": "The remains of a military composite torso plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_torso_milcomp" - }, { "id": "exo_torso_vcc", "type": "ARMOR", @@ -160,7 +117,7 @@ "id": "destroyed_exo_torso_vcc_plate", "type": "ARMOR", "copy-from": "exo_torso_vcc", - "name": { "str": "shattered vacuum carbide plate" }, + "name": { "str": "shattered vacuum carbide torso plate" }, "description": "The remains of a vacuum-cast carbide torso plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_torso_vcc" }, @@ -203,28 +160,6 @@ "looks_like": "exo_psu_plastic", "material_thickness": 3 }, - { - "id": "exo_psu_milcomp", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_psu_steel", - "name": { "str": "exoskeleton military composite PSU plate" }, - "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of military composite.", - "weight": "55000 g", - "volume": "10 L", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "non_functional": "destroyed_exo_psu_milcomp_plate" - }, - { - "id": "destroyed_exo_psu_milcomp_plate", - "type": "ARMOR", - "copy-from": "exo_psu_milcomp", - "name": { "str": "shattered military composite PSU plate" }, - "description": "The remains of a military composite PSU plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_psu_milcomp", - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] - }, { "id": "exo_psu_vcc", "type": "ARMOR", @@ -297,28 +232,6 @@ "material_thickness": 3, "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, - { - "id": "exo_arm_milcomp", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_arm_steel", - "name": { "str": "exoskeleton military composite arm plate" }, - "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of military composite.", - "weight": "33000 g", - "volume": "5500 ml", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "non_functional": "destroyed_exo_arm_milcomp_plate" - }, - { - "id": "destroyed_exo_arm_milcomp_plate", - "type": "ARMOR", - "copy-from": "exo_arm_milcomp", - "name": { "str": "shattered military composite arm plate" }, - "description": "The remains of a military composite arm plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_arm_milcomp", - "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] - }, { "id": "exo_arm_vcc", "type": "ARMOR", @@ -381,28 +294,6 @@ "looks_like": "exo_glove_plastic", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] }, - { - "id": "exo_glove_milcomp", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_arm_steel", - "name": { "str": "exoskeleton military composite glove plate" }, - "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of military composite.", - "weight": "5500 g", - "volume": "1 ml", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "non_functional": "destroyed_exo_glove_milcomp_plate" - }, - { - "id": "destroyed_exo_glove_milcomp_plate", - "type": "ARMOR", - "copy-from": "exo_glove_milcomp", - "name": { "str": "shattered military composite glove plate" }, - "description": "The remains of a military composite glove plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_glove_milcomp", - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] - }, { "id": "exo_glove_vcc", "type": "ARMOR", @@ -412,7 +303,7 @@ "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of vacuum-cast composite.", "weight": "5500 g", "volume": "1 ml", - "material": [ "vacuum-cast" ], + "material": [ "vacuum_carbide" ], "material_thickness": 6, "non_functional": "destroyed_exo_glove_vcc_plate" }, @@ -474,28 +365,6 @@ "looks_like": "exo_leg_plastic", "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, - { - "id": "exo_leg_milcomp", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_leg_steel", - "name": { "str": "exoskeleton military composite legs plate" }, - "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of military composite.", - "weight": "38500 g", - "volume": "8 L", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "non_functional": "destroyed_exo_leg_milcomp_plate" - }, - { - "id": "destroyed_exo_leg_milcomp_plate", - "type": "ARMOR", - "copy-from": "exo_leg_milcomp", - "name": { "str": "shattered military composite leg plate" }, - "description": "The remains of a military composite leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_leg_milcomp", - "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] - }, { "id": "exo_leg_vcc", "type": "ARMOR", @@ -505,7 +374,7 @@ "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of vacuum-cast carbide.", "weight": "38500 g", "volume": "8 L", - "material": [ "vacuum-cast" ], + "material": [ "vacuum_carbide" ], "material_thickness": 6, "non_functional": "destroyed_exo_leg_vcc_plate" }, @@ -556,28 +425,6 @@ "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] }, - { - "id": "exo_boot_milcomp", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_boot_steel", - "name": { "str": "exoskeleton military composite boot plate" }, - "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of military composite.", - "weight": "38500 g", - "volume": "3250 ml", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "non_functional": "destroyed_exo_boot_milcomp_plate" - }, - { - "id": "destroyed_exo_boot_milcomp_plate", - "type": "ARMOR", - "copy-from": "exo_boot_milcomp", - "name": { "str": "shattered military composite boot plate" }, - "description": "The remains of a military composite boot plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_boot_milcomp", - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] - }, { "id": "exo_boot_vcc", "type": "ARMOR", From 0c929cf1642072e41a24de365b94122e69e90432 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 10:07:53 -0800 Subject: [PATCH 025/189] Linting --- .../modular_exos/modular_exoskeleton.json | 2 +- .../modular_exoskeleton_plating.json | 44 +++++++++++-------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index cdc95f3e8ba10..ce3764999442c 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -239,4 +239,4 @@ } ] } -] +] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 3d7310d3a2963..7a2e367c62187 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -1,9 +1,14 @@ +Cataclysm: Dark Days Ahead JSON Web Linting Tool +This is a tool to help modders and editors of the open source game Cataclysm: Dark Days Ahead write JSON in the game's expected format. + +Paste some JSON into the field below and click "Lint" to run an autoformatter against it. + [ { "id": "exo_helmet_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton steel helmet plate" }, + "name": { "str": "steel exoskeleton helmet plate" }, "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of steel.", "weight": "12880 g", "volume": "5 L", @@ -21,7 +26,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_helmet_steel", - "name": { "str": "exoskeleton plastic helmet plate" }, + "name": { "str": "plastic exoskeleton helmet plate" }, "description": "Designed to attach to an exoskeleton's helmet, this is a plate of plastic.", "weight": "1287 g", "material": [ "plastic" ], @@ -43,7 +48,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_helmet_steel", - "name": { "str": "exoskeleton vacuum-cast carbide helmet plate" }, + "name": { "str": "vacuum-cast carbide exoskeleton helmet plate" }, "description": "Designed to attach to an exoskeleton's helmet, this is a plate of vacuum-cast carbide.", "weight": "1287 g", "material": [ "vacuum_carbide" ], @@ -64,7 +69,7 @@ "id": "exo_torso_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton steel torso plate" }, + "name": { "str": "steel exoskeleton torso plate" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", "weight": "34347 g", "volume": "8 L", @@ -82,7 +87,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_torso_steel", - "name": { "str": "exoskeleton plastic torso plate" }, + "name": { "str": "plastic exoskeleton torso plate" }, "description": "Designed to attach to an exoskeleton's torso, this is a plate of plastic.", "weight": "3432 g", "volume": "8 L", @@ -125,7 +130,7 @@ "id": "exo_psu_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton steel PSU plate" }, + "name": { "str": "steel exoskeleton PSU plate" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of steel.", "weight": "42933 g", "volume": "10 L", @@ -143,7 +148,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_psu_steel", - "name": { "str": "exoskeleton plastic PSU plate" }, + "name": { "str": "plastic exoskeleton PSU plate" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a plate of plastic.", "weight": "4290 g", "volume": "10 L", @@ -165,7 +170,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_psu_steel", - "name": { "str": "exoskeleton vacuum-cast carbide PSU plate" }, + "name": { "str": "vacuum-cast carbide exoskeleton PSU plate" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of vacuum-cast carbide.", "weight": "55000 g", "volume": "10 L", @@ -186,7 +191,7 @@ "id": "exo_arm_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton steel arm plate" }, + "name": { "str": "steel exoskeleton arm plate" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", "weight": "25760 g", "volume": "5500 ml", @@ -214,7 +219,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_arm_steel", - "name": { "str": "exoskeleton plastic arm plate" }, + "name": { "str": "plastic exoskeleton arm plate" }, "description": "Designed to attach to an exoskeleton's arms, these are plates of plastic.", "weight": "2574 g", "volume": "5500 ml", @@ -237,7 +242,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_arm_steel", - "name": { "str": "exoskeleton vacuum-cast carbide arm plate" }, + "name": { "str": "vacuum-cast carbide exoskeleton arm plate" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of vacuum-cast carbide.", "weight": "33000 g", "volume": "5500 ml", @@ -258,7 +263,7 @@ "id": "exo_glove_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton steel glove plate" }, + "name": { "str": "steel exoskeleton glove plate" }, "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of steel.", "weight": "4293 g", "volume": "1 ml", @@ -277,7 +282,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_glove_steel", - "name": { "str": "exoskeleton plastic glove plate" }, + "name": { "str": "plastic exoskeleton glove plate" }, "description": "Designed to attach to an exoskeleton's glove, this is a plate of plastic.", "weight": "429 g", "volume": "1 ml", @@ -320,7 +325,7 @@ "id": "exo_leg_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton steel legs plate" }, + "name": { "str": "steel exoskeleton legs plate" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", "weight": "30053 g", "volume": "8 L", @@ -348,7 +353,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_leg_steel", - "name": { "str": "exoskeleton plastic legs plate" }, + "name": { "str": "plastic exoskeleton legs plate" }, "description": "Designed to attach to an exoskeleton's legs, these are plates of plastic.", "weight": "3003 g", "volume": "8 L", @@ -370,7 +375,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_leg_steel", - "name": { "str": "exoskeleton vacuum-cast carbide legs plate" }, + "name": { "str": "vacuum-cast carbide exoskeleton legs plate" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of vacuum-cast carbide.", "weight": "38500 g", "volume": "8 L", @@ -391,7 +396,7 @@ "id": "exo_boot_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton steel boot plate" }, + "name": { "str": "steel exoskeleton boot plate" }, "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of steel.", "weight": "30053 g", "volume": "3250 ml", @@ -409,7 +414,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_boot_steel", - "name": { "str": "exoskeleton plastic boot plate" }, + "name": { "str": "plastic exoskeleton boot plate" }, "description": "Designed to attach to an exoskeleton's boot, this is a plate of plastic.", "weight": "3003 g", "volume": "3250 ml", @@ -430,7 +435,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_boot_steel", - "name": { "str": "exoskeleton vacuum-cast carbide boot plate" }, + "name": { "str": "vacuum-cast carbide exoskeleton boot plate" }, "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of vacuum-cast carbide.", "weight": "38500 g", "volume": "3250 ml", @@ -448,3 +453,4 @@ "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] } ] + From 08302e0e626c5d5cb9238d47e0457cd551482dea Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 13:53:17 -0800 Subject: [PATCH 026/189] Remove invalid flags Two flags incorrectly listed --- src/flag.cpp | 2 -- src/flag.h | 2 -- 2 files changed, 4 deletions(-) diff --git a/src/flag.cpp b/src/flag.cpp index d24b93cc1a455..3f7aa91f8e02a 100644 --- a/src/flag.cpp +++ b/src/flag.cpp @@ -95,13 +95,11 @@ const flag_id flag_EXO_GLOVE_PLATE( "EXO_GLOVE_PLATE" ); const flag_id flag_EXO_HELMET_GADGET( "EXO_HELMET_GADGET" ); const flag_id flag_EXO_HELMET_PLATE( "EXO_HELMET_PLATE" ); const flag_id flag_EXO_LARGE_GADGET( "EXO_LARGE_GADGET" ); -const flag_id flag_EXO_LARGE( "EXO_LARGE" ); const flag_id flag_EXO_LEG_PLATE( "EXO_LEG_PLATE" ); const flag_id flag_EXO_MEDIUM_GADGET( "EXO_MEDIUM_GADGET" ); const flag_id flag_EXO_PSU_PLATE( "EXO_PSU_PLATE" ); const flag_id flag_EXO_PSU( "EXO_PSU" ); const flag_id flag_EXO_SMALL_GADGET( "EXO_SMALL_GADGET" ); -const flag_id flag_EXO_SMALL( "EXO_SMALL" ); const flag_id flag_EXO_TORSO_PLATE( "EXO_TORSO_PLATE" ); const flag_id flag_FAKE_MILL( "FAKE_MILL" ); const flag_id flag_FAKE_SMOKE( "FAKE_SMOKE" ); diff --git a/src/flag.h b/src/flag.h index e1438f7a7724b..e1dcc3ea2c60d 100644 --- a/src/flag.h +++ b/src/flag.h @@ -105,13 +105,11 @@ extern const flag_id flag_EXO_GLOVE_PLATE; extern const flag_id flag_EXO_HELMET_GADGET; extern const flag_id flag_EXO_HELMET_PLATE; extern const flag_id flag_EXO_LARGE_GADGET; -extern const flag_id flag_EXO_LARGE; extern const flag_id flag_EXO_LEG_PLATE; extern const flag_id flag_EXO_MEDIUM_GADGET; extern const flag_id flag_EXO_PSU_PLATE; extern const flag_id flag_EXO_PSU; extern const flag_id flag_EXO_SMALL_GADGET; -extern const flag_id flag_EXO_SMALL; extern const flag_id flag_EXO_TORSO_PLATE; extern const flag_id flag_FAKE_MILL; extern const flag_id flag_FAKE_SMOKE; From 588e5b9a37c231e97629a1c244b3d4e5fee7f287 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:02:16 -0800 Subject: [PATCH 027/189] Remove _off Clean up item names --- .../modular_exos/modular_exoskeleton.json | 10 ++-- .../modular_exoskeleton_modules.json | 48 +++++++++---------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index ce3764999442c..e6df3a4cfe9e9 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -23,7 +23,7 @@ "flags": [ "USE_UPS", "SKINTIGHT", "WATERPROOF", "POWERARMOR_COMPATIBLE" ] }, { - "id": "modular_exoskeleton_off", + "id": "modular_exoskeleton", "type": "TOOL_ARMOR", "name": { "str": "exoskeleton frame", "str_pl": "exoskeleton frames" }, "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs.", @@ -138,8 +138,8 @@ }, { "id": "modular_exoskeleton_on", - "copy-from": "modular_exoskeleton_off", - "repairs_like": "modular_exoskeleton_off", + "copy-from": "modular_exoskeleton", + "repairs_like": "modular_exoskeleton", "looks_like": "power_armor_light", "type": "TOOL_ARMOR", "name": { "str": "exoskeleton frame (on)", "str_pl": "exoskeleton frames (on)" }, @@ -147,8 +147,8 @@ "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, "power_draw": 7123, - "revert_to": "modular_exoskeleton_off", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exoskeleton_off" } + "revert_to": "modular_exoskeleton", + "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exoskeleton" } }, { "id": "exoskeleton_helmet", diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index a398dd0deeac3..1175917f72648 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -96,7 +96,7 @@ "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 1000 } } ] }, { - "id": "exo_large_carry_off", + "id": "exo_large_carry", "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton large load support module (off)" }, @@ -140,17 +140,17 @@ "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 30000 } ] } ] }, "power_draw": 1500, - "revert_to": "exo_large_carry_off", + "revert_to": "exo_large_carry", "use_action": { "ammo_scale": 0, - "target": "exo_large_carry_off", + "target": "exo_large_carry", "msg": "You deactivate the module.", "menu_text": "Turn off module", "type": "transform" } }, { - "id": "exo_small_carry_off", + "id": "exo_small_carry", "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton small load support module (off)" }, @@ -194,17 +194,17 @@ "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 20000 } ] } ] }, "power_draw": 1500, - "revert_to": "exo_small_carry_off", + "revert_to": "exo_small_carry", "use_action": { "ammo_scale": 0, - "target": "exo_small_carry_off", + "target": "exo_small_carry", "msg": "You deactivate the module.", "menu_text": "Turn off module", "type": "transform" } }, { - "id": "exo_flashlight_off", + "id": "exo_flashlight", "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "mounted lamp (off)", "str_pl": "mounted lamps (off)" }, @@ -228,11 +228,11 @@ }, { "id": "exo_flashlight_low", - "copy-from": "exo_flashlight_off", + "copy-from": "exo_flashlight", "type": "TOOL", "name": { "str": "mounted lamp (low)", "str_pl": "mounted lamps (low)" }, "power_draw": 1000, - "revert_to": "exo_flashlight_off", + "revert_to": "exo_flashlight", "use_action": { "ammo_scale": 0, "menu_text": "Turn to high", @@ -244,22 +244,22 @@ }, { "id": "exo_flashlight_high", - "copy-from": "exo_flashlight_off", + "copy-from": "exo_flashlight", "type": "TOOL", "name": { "str": "mounted lamp (high)", "str_pl": "mounted lamps (high)" }, "power_draw": 2000, - "revert_to": "exo_flashlight_off", + "revert_to": "exo_flashlight", "use_action": { "ammo_scale": 0, "menu_text": "Turn off", "type": "transform", "msg": "You turn the heavy duty flashlight off.", - "target": "exo_flashlight_off" + "target": "exo_flashlight" }, "flags": [ "LIGHT_500", "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET" ] }, { - "id": "exo_hearing_off", + "id": "exo_hearing", "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "audio protection (off)", "str_pl": "audio protection (off)" }, @@ -283,22 +283,22 @@ }, { "id": "exo_hearing_on", - "copy-from": "exo_hearing_off", + "copy-from": "exo_hearing", "type": "TOOL", "name": { "str": "audio protection (on)", "str_pl": "audio protection (on)" }, "power_draw": 500, - "revert_to": "exo_hearing_off", + "revert_to": "exo_hearing", "use_action": { "ammo_scale": 0, "menu_text": "Turn off", "type": "transform", "msg": "You turn off the helmet's audio protection.", - "target": "exo_hearing_off" + "target": "exo_hearing" }, "flags": [ "PARTIAL_DEAF", "USE_UPS", "CANT_WEAR", "EXO_HELMET_GADGET", "ONLY_ONE" ] }, { - "id": "exo_recoil_off", + "id": "exo_recoil", "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "recoil controller (off)", "str_pl": "recoil controller (off)" }, @@ -325,17 +325,17 @@ }, { "id": "exo_recoil_on", - "copy-from": "exo_recoil_off", + "copy-from": "exo_recoil", "type": "TOOL", "name": { "str": "recoil controller (on)", "str_pl": "recoil controllers (on)" }, "power_draw": 2000, - "revert_to": "exo_recoil_off", + "revert_to": "exo_recoil", "use_action": { "ammo_scale": 0, "menu_text": "Turn off", "type": "transform", "msg": "You turn off the recoil controller.", - "target": "exo_recoil_off" + "target": "exo_recoil" }, "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET", "ONLY_ONE" ], "relic_data": { @@ -343,7 +343,7 @@ } }, { - "id": "exo_optics_off", + "id": "exo_optics", "type": "TOOL_ARMOR", "category": "armor", "symbol": "8", @@ -369,17 +369,17 @@ }, { "id": "exo_optics_on", - "copy-from": "exo_optics_off", + "copy-from": "exo_optics", "type": "TOOL", "name": { "str": "exoskeleton enhanced optics (on)", "str_pl": "exoskeleton enhanced optics (on)" }, "power_draw": 500, - "revert_to": "exo_optics_off", + "revert_to": "exo_optics", "use_action": { "ammo_scale": 0, "menu_text": "Turn off", "type": "transform", "msg": "You turn off helmet's optical enhancement.", - "target": "exo_optics_off" + "target": "exo_optics" }, "flags": [ "ZOOM", "USE_UPS", "CANT_WEAR", "IR_EFFECT", "EXO_HELMET_GADGET", "ONLY_ONE" ] }, From 09226392ebda3264c48bc7619f1bd309017cacd6 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:03:10 -0800 Subject: [PATCH 028/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json Co-authored-by: John Candlebury --- .../items/armor/modular_exos/modular_exoskeleton_modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 1175917f72648..83f63f0b04d9f 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -83,7 +83,7 @@ "id": "exo_small_aux_power", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton small APU" }, + "name": { "str": "exoskeleton small auxiliary battery" }, "description": "This is a small rechargable auxiliary power unit that attaches to an exoskeleton hardpoint.", "weight": "2 kg", "volume": "1 L", From 115528142d651d666b919d38f6abdae1d7a85649 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:04:34 -0800 Subject: [PATCH 029/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: John Candlebury --- .../items/armor/modular_exos/modular_exoskeleton.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index e6df3a4cfe9e9..9f671ac7373d0 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -6,7 +6,7 @@ "copy-from": "jumpsuit", "looks_like": "robofac_enviro_suit", "name": { "str": "exoskeleton undersuit" }, - "description": "A form-fitting suit inlaid with meant to be worn beneath power armor. Although not a requirement for the operation of power armor, it features climate control and haptic feedback systems that offer improved performance and comfort. The suit is not designed for use outside of armor, it has no pockets, offers nearly no protection and damages easily.", + "description": "A form-fitting suit meant to be worn beneath power armor. Although not a requirement for the operation of power armor, it features climate control and haptic feedback systems that offer improved performance and comfort while doing so. The suit is not designed for use outside of armor, it has no pockets, offers nearly no protection and damages easily.", "weight": "610 g", "volume": "3500 ml", "color": "brown", From 47871d93499c9125090106ee6dc8f34386952be6 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:06:01 -0800 Subject: [PATCH 030/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json Co-authored-by: John Candlebury --- .../items/armor/modular_exos/modular_exoskeleton_modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 83f63f0b04d9f..eaa6b0e25334a 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -3,7 +3,7 @@ "id": "exo_back_battery_rechargable", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton rechargable battery power supply" }, + "name": { "str": "exoskeleton power supply unit" }, "description": "Designed to attach to an exoskeleton's back, this is a large rechargable battery with an integrated UPS.", "weight": "15 kg", "volume": "20 L", From 5ba84f184eebe68c7a6385346eecb01299b65e4c Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:06:08 -0800 Subject: [PATCH 031/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json Co-authored-by: John Candlebury --- .../items/armor/modular_exos/modular_exoskeleton_modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index eaa6b0e25334a..fa2471b9f0c6c 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -67,7 +67,7 @@ "id": "exo_large_aux_power", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton large APU" }, + "name": { "str": "exoskeleton auxiliary battery" }, "description": "This is a large rechargable auxiliary power unit that attaches to an exoskeleton hardpoint.", "weight": "5 kg", "volume": "5 L", From fb1392d2d22b7773771e4b0b5dd9c7961e4da34f Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:06:22 -0800 Subject: [PATCH 032/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json Co-authored-by: John Candlebury --- .../items/armor/modular_exos/modular_exoskeleton_modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index fa2471b9f0c6c..c0267a22caa1c 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -386,7 +386,7 @@ { "id": "exoskeleton_helmet_filter", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton filter module" }, + "name": { "str": "exoskeleton filter mask" }, "category": "clothing", "description": "A gas filtration module for an exoskeleton helmet. Provides excellent protection from smoke, teargas, and other contaminants. It must be prepared before use.", "flags": [ "SLEEP_IGNORE", "EXO_HELMET_GADGET", "ONLY_ONE" ], From d9f3f502faf33365c0c4caf7173fb7f945e43b1a Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:06:28 -0800 Subject: [PATCH 033/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json Co-authored-by: John Candlebury --- .../items/armor/modular_exos/modular_exoskeleton_modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index c0267a22caa1c..8ee8dde66a928 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -313,7 +313,7 @@ "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET", "ONLY_ONE" ], "use_action": { "type": "transform", - "msg": "You activate the helmet's audio enhancers.", + "msg": "You activate your suit's recoil dampeners.", "target": "exo_recoil_on", "active": true, "need_charges": 1, From 81c8e8b8c07c3b02e90b1fc527162cafdb1370c6 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:06:33 -0800 Subject: [PATCH 034/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json Co-authored-by: John Candlebury --- .../items/armor/modular_exos/modular_exoskeleton_storage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 32ad9f84ace64..faf530906e659 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -18,7 +18,7 @@ "id": "exo_melee_storage", "copy-from": "bscabbard", "type": "ARMOR", - "name": { "str": "large storage pouch" }, + "name": { "str": "exoskeleton scabbard" }, "description": "A hardpoint for storing a sword. Activate to sheath/draw a sword .", "weight": "454 g", "volume": "2 L", From 0d8b7e4097196e21e0810965201fe9c252c268c8 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:06:38 -0800 Subject: [PATCH 035/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json Co-authored-by: John Candlebury --- .../items/armor/modular_exos/modular_exoskeleton_storage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index faf530906e659..bdf7ba8b5f4a6 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -19,7 +19,7 @@ "copy-from": "bscabbard", "type": "ARMOR", "name": { "str": "exoskeleton scabbard" }, - "description": "A hardpoint for storing a sword. Activate to sheath/draw a sword .", + "description": "A metallic scabbard mountable on an exoskeleton hard point. Can be activated to sheath or draw a sword .", "weight": "454 g", "volume": "2 L", "price": 18000, From c02e1765f7859590f07607c4e87dddb65d9b2ea6 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:06:43 -0800 Subject: [PATCH 036/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json Co-authored-by: John Candlebury --- .../items/armor/modular_exos/modular_exoskeleton_modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 8ee8dde66a928..3b804dc9c824a 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -301,7 +301,7 @@ "id": "exo_recoil", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "recoil controller (off)", "str_pl": "recoil controller (off)" }, + "name": { "str": "recoil mitigation system (off)", "str_pl": "recoil mitigation systems (off)" }, "description": "This module takes partial control of the exoskeleton while firing, damping recoil. Activate before firing.", "weight": "500 g", "volume": "500 ml", From 8f2292e4c639444626d2a218b726afe66ef2f5f7 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 23:41:27 -0800 Subject: [PATCH 037/189] Linting Merged changes from Candlebury, relinted files. --- .../items/armor/modular_exos/modular_exoskeleton.json | 3 ++- .../armor/modular_exos/modular_exoskeleton_modules.json | 2 +- .../armor/modular_exos/modular_exoskeleton_plating.json | 6 ------ 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 9f671ac7373d0..e8e5ada299b8f 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -239,4 +239,5 @@ } ] } -] \ No newline at end of file +] + diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 3b804dc9c824a..fe1d19f0ab2f8 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -403,4 +403,4 @@ "ammo": "gasfilter_m", "use_action": [ "GASMASK" ] } -] \ No newline at end of file +] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 7a2e367c62187..4bfe7d060da5e 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -1,8 +1,3 @@ -Cataclysm: Dark Days Ahead JSON Web Linting Tool -This is a tool to help modders and editors of the open source game Cataclysm: Dark Days Ahead write JSON in the game's expected format. - -Paste some JSON into the field below and click "Lint" to run an autoformatter against it. - [ { "id": "exo_helmet_steel", @@ -453,4 +448,3 @@ Paste some JSON into the field below and click "Lint" to run an autoformatter ag "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] } ] - From 195cbd8df71c97c192c3679e0ba2472295f449f9 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 16 Dec 2021 11:03:55 -0800 Subject: [PATCH 038/189] cpp fixes --- .../items/armor/modular_exos/modular_exoskeleton.json | 3 +-- src/flag.cpp | 2 +- src/flag.h | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index e8e5ada299b8f..9f671ac7373d0 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -239,5 +239,4 @@ } ] } -] - +] \ No newline at end of file diff --git a/src/flag.cpp b/src/flag.cpp index 3f7aa91f8e02a..3cc0513727d8e 100644 --- a/src/flag.cpp +++ b/src/flag.cpp @@ -97,8 +97,8 @@ const flag_id flag_EXO_HELMET_PLATE( "EXO_HELMET_PLATE" ); const flag_id flag_EXO_LARGE_GADGET( "EXO_LARGE_GADGET" ); const flag_id flag_EXO_LEG_PLATE( "EXO_LEG_PLATE" ); const flag_id flag_EXO_MEDIUM_GADGET( "EXO_MEDIUM_GADGET" ); -const flag_id flag_EXO_PSU_PLATE( "EXO_PSU_PLATE" ); const flag_id flag_EXO_PSU( "EXO_PSU" ); +const flag_id flag_EXO_PSU_PLATE( "EXO_PSU_PLATE" ); const flag_id flag_EXO_SMALL_GADGET( "EXO_SMALL_GADGET" ); const flag_id flag_EXO_TORSO_PLATE( "EXO_TORSO_PLATE" ); const flag_id flag_FAKE_MILL( "FAKE_MILL" ); diff --git a/src/flag.h b/src/flag.h index e1dcc3ea2c60d..4740569a49cea 100644 --- a/src/flag.h +++ b/src/flag.h @@ -107,8 +107,8 @@ extern const flag_id flag_EXO_HELMET_PLATE; extern const flag_id flag_EXO_LARGE_GADGET; extern const flag_id flag_EXO_LEG_PLATE; extern const flag_id flag_EXO_MEDIUM_GADGET; -extern const flag_id flag_EXO_PSU_PLATE; extern const flag_id flag_EXO_PSU; +extern const flag_id flag_EXO_PSU_PLATE; extern const flag_id flag_EXO_SMALL_GADGET; extern const flag_id flag_EXO_TORSO_PLATE; extern const flag_id flag_FAKE_MILL; From d348511672cc7669c9471818c8fe81b6c8817ca6 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 16 Dec 2021 13:49:04 -0800 Subject: [PATCH 039/189] Update modular_exoskeleton.json --- .../items/armor/modular_exos/modular_exoskeleton.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 9f671ac7373d0..7c9722d32263a 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -239,4 +239,4 @@ } ] } -] \ No newline at end of file +] From f2965e0e8f546158f7be2d32f89ce7a2d3df8528 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 17 Dec 2021 10:01:18 -0800 Subject: [PATCH 040/189] Restart tests --- data/mods/Aftershock/items/armor/modular_exos/exo_gear.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 967bf8c0a3110..5d5a52cff403b 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -45,7 +45,7 @@ "copy-from": "afs_hydraulic_gauntlet", "type": "ARMOR", "name": { "str": "exoskeleton hydraulic gauntlet" }, - "description": "A huge, heavy metal gauntlet lined with tubing and gauges, worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively. ", + "description": "A huge and heavy metal gauntlet lined with tubing and gauges, worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively. ", "looks_like": "gauntlets_chitin", "color": "light_gray", "bashing": 50, From dc03d26506b47706bafaa5bef055858a43afe5da Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 17 Dec 2021 10:01:31 -0800 Subject: [PATCH 041/189] Update exo_gear.json --- data/mods/Aftershock/items/armor/modular_exos/exo_gear.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 5d5a52cff403b..967bf8c0a3110 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -45,7 +45,7 @@ "copy-from": "afs_hydraulic_gauntlet", "type": "ARMOR", "name": { "str": "exoskeleton hydraulic gauntlet" }, - "description": "A huge and heavy metal gauntlet lined with tubing and gauges, worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively. ", + "description": "A huge, heavy metal gauntlet lined with tubing and gauges, worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively. ", "looks_like": "gauntlets_chitin", "color": "light_gray", "bashing": 50, From 08a178d32f9cf277b024a61295a9f21003e60782 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 17 Dec 2021 10:07:52 -0800 Subject: [PATCH 042/189] Update exo_gear.json --- data/mods/Aftershock/items/armor/modular_exos/exo_gear.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 967bf8c0a3110..878c8766a5dda 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -45,7 +45,7 @@ "copy-from": "afs_hydraulic_gauntlet", "type": "ARMOR", "name": { "str": "exoskeleton hydraulic gauntlet" }, - "description": "A huge, heavy metal gauntlet lined with tubing and gauges, worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively. ", + "description": "A huge, heavy metal gauntlet lined with tubing and gauges, worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively. ", "looks_like": "gauntlets_chitin", "color": "light_gray", "bashing": 50, From 7e06fcf76b6c3ebf5bd17e6a8a593fb238e833f8 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 17 Dec 2021 11:47:40 -0800 Subject: [PATCH 043/189] Update flags.json --- data/json/flags.json | 88 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 79 insertions(+), 9 deletions(-) diff --git a/data/json/flags.json b/data/json/flags.json index e3afcc51eecb2..e52ab90cadedc 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -1847,12 +1847,6 @@ "id": "CHOKE", "type": "json_flag" }, - { - "id": "LASER_SIGHT", - "type": "json_flag", - "info": "Invalid when the target position is too far or too bright.", - "name": "laser sight" - }, { "id": "GAS_TANK", "type": "json_flag", @@ -1860,9 +1854,15 @@ "name": "gas tank" }, { - "id": "EXO_SMALL", - "type": "json_flag", - "info": "This is meant for a small exoskeleton hardpoint." + "id": "LASER_SIGHT", + "type": "json_flag", + "info": "Invalid when the target position is too far or too bright.", + "name": "laser sight" + }, + { + "id": "EXO_SMALL", + "type": "json_flag", + "info": "This is meant for a small exoskeleton hardpoint." }, { "id": "EXO_LARGE", @@ -1928,5 +1928,75 @@ "id": "EXO_BOOT_PLATE", "type": "json_flag", "info": "This is meant for exoskeleton foot plating." + }, + { + "type": "json flag", + "info": "This is meant for a small exoskeleton hardpoint." + }, + { + "id": "EXO_LARGE", + "type": "json flag", + "info": "This is meant for a large exoskeleton hardpoint." + }, + { + "id": "EXO_PSU", + "type": "json flag", + "info": "This is meant for an exoskeleton PSU hardpoint." + }, + { + "id": "EXO_SMALL_GADGET", + "type": "json flag", + "info": "This is meant for small exoskeleton gadgets, 1 L or less." + }, + { + "id": "EXO_HELMET_GADGET", + "type": "json flag", + "info": "This is meant for helmet-specific gadgets." + }, + { + "id": "EXO_MEDIUM_GADGET", + "type": "json flag", + "info": "This is meant for medium exoskeleton gadgets, between 1 L and 5 L." + }, + { + "id": "EXO_LARGE_GADGET", + "type": "json flag", + "info": "This is meant for large exoskeleton gadgets, larger than 5 L." + }, + { + "id": "EXO_HELMET_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton helmet plating." + }, + { + "id": "EXO_TORSO_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton torso plating." + }, + { + "id": "EXO_PSU_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton PSU plating." + }, + { + "id": "EXO_ARM_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton arm plating." + }, + { + { + "id": "EXO_GLOVE_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton arm plating." + }, + { + "id": "EXO_LEG_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton leg plating." + }, + { + "id": "EXO_BOOT_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton foot plating." } ] From d9648b6dee40aa9bcfaf12155e1579d11aaf1052 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 17 Dec 2021 15:03:08 -0800 Subject: [PATCH 044/189] Update flags.json --- data/json/flags.json | 1 - 1 file changed, 1 deletion(-) diff --git a/data/json/flags.json b/data/json/flags.json index e52ab90cadedc..4c506717506de 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -1984,7 +1984,6 @@ "info": "This is meant for exoskeleton arm plating." }, { - { "id": "EXO_GLOVE_PLATE", "type": "json flag", "info": "This is meant for exoskeleton arm plating." From ea8d528cc50d3b776d0e977498815f458483299b Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 17 Dec 2021 16:00:50 -0800 Subject: [PATCH 045/189] Update flags.json --- data/json/flags.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/json/flags.json b/data/json/flags.json index 4c506717506de..e52ab90cadedc 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -1984,6 +1984,7 @@ "info": "This is meant for exoskeleton arm plating." }, { + { "id": "EXO_GLOVE_PLATE", "type": "json flag", "info": "This is meant for exoskeleton arm plating." From 13bf457b98b175e1b781db89874797e9d04f7bdc Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 17 Dec 2021 21:18:55 -0800 Subject: [PATCH 046/189] Update flags.json --- data/json/flags.json | 73 ++++++++++++++++++++++---------------------- 1 file changed, 36 insertions(+), 37 deletions(-) diff --git a/data/json/flags.json b/data/json/flags.json index e52ab90cadedc..eed13b38877e2 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -1939,64 +1939,63 @@ "info": "This is meant for a large exoskeleton hardpoint." }, { - "id": "EXO_PSU", - "type": "json flag", - "info": "This is meant for an exoskeleton PSU hardpoint." + "id": "EXO_PSU", + "type": "json_flag", + "info": "This is meant for an exoskeleton PSU hardpoint." }, { - "id": "EXO_SMALL_GADGET", - "type": "json flag", - "info": "This is meant for small exoskeleton gadgets, 1 L or less." + "id": "EXO_SMALL_GADGET", + "type": "json_flag", + "info": "This is meant for small exoskeleton gadgets, 1 L or less." }, { - "id": "EXO_HELMET_GADGET", - "type": "json flag", - "info": "This is meant for helmet-specific gadgets." + "id": "EXO_HELMET_GADGET", + "type": "json_flag", + "info": "This is meant for helmet-specific gadgets." }, { - "id": "EXO_MEDIUM_GADGET", - "type": "json flag", - "info": "This is meant for medium exoskeleton gadgets, between 1 L and 5 L." + "id": "EXO_MEDIUM_GADGET", + "type": "json_flag", + "info": "This is meant for medium exoskeleton gadgets, between 1 L and 5 L." }, { - "id": "EXO_LARGE_GADGET", - "type": "json flag", - "info": "This is meant for large exoskeleton gadgets, larger than 5 L." + "id": "EXO_LARGE_GADGET", + "type": "json_flag", + "info": "This is meant for large exoskeleton gadgets, larger than 5 L." }, { - "id": "EXO_HELMET_PLATE", - "type": "json flag", - "info": "This is meant for exoskeleton helmet plating." + "id": "EXO_HELMET_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton helmet plating." }, { - "id": "EXO_TORSO_PLATE", - "type": "json flag", - "info": "This is meant for exoskeleton torso plating." + "id": "EXO_TORSO_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton torso plating." }, { - "id": "EXO_PSU_PLATE", - "type": "json flag", - "info": "This is meant for exoskeleton PSU plating." + "id": "EXO_PSU_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton PSU plating." }, { - "id": "EXO_ARM_PLATE", - "type": "json flag", - "info": "This is meant for exoskeleton arm plating." + "id": "EXO_ARM_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton arm plating." }, { - { - "id": "EXO_GLOVE_PLATE", - "type": "json flag", - "info": "This is meant for exoskeleton arm plating." + "id": "EXO_GLOVE_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton arm plating." }, { - "id": "EXO_LEG_PLATE", - "type": "json flag", - "info": "This is meant for exoskeleton leg plating." + "id": "EXO_LEG_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton leg plating." }, { - "id": "EXO_BOOT_PLATE", - "type": "json flag", - "info": "This is meant for exoskeleton foot plating." + "id": "EXO_BOOT_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton foot plating." } ] From e15b7b44a3123220964f966611f0267a36cae24c Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sat, 18 Dec 2021 19:29:37 -0800 Subject: [PATCH 047/189] Text corrections --- .../Aftershock/items/armor/modular_exos/exo_gear.json | 10 +++++----- .../items/armor/modular_exos/modular_exoskeleton.json | 2 +- data/mods/Aftershock/items/vehicle_items.json | 4 ++-- data/mods/Aftershock/vehicles/vehicle_parts.json | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 878c8766a5dda..665c1895ad044 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -2,9 +2,9 @@ { "id": "exo_mounted_drill", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton mounted drill" }, + "name": { "str": "exoskeleton mounted drill", "str_pl": "exoskeleton mounted drills" }, "category": "tool", - "description": "A powerful header drill with tough carbide bits, this tool mounts to the exoskeleton's arm and extends past the hand. While turned off, it still makes a powerful mace.", + "description": "A powerful header drill with tough carbide bits, this tool mounts to the exoskeleton's arm and extends past the hand. While turned off, it still makes a powerful mace.", "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], "weight": "40000 g", "volume": "5 L", @@ -31,8 +31,8 @@ "id": "exo_mounted_drill_on", "type": "TOOL_ARMOR", "copy-from": "exo_mounted_drill", - "name": { "str": "exoskeleton mounted drill (on)" }, - "description": "The drill is now rotating and making a low growling noise. Meant to make short work of the toughest rock, it should work on more mobile surfaces as well. Use it to turn it off.", + "name": { "str": "exoskeleton mounted drill (on)", "str_pl": "exoskeleton mounted drills (on)" }, + "description": "The drill is now rotating and making a low growling noise. Meant to make short work of the toughest rock, it should work on more mobile surfaces as well. Use it to turn it off.", "flags": [ "USE_UPS", "MESSY", "POWERED", "DURABLE_MELEE", "DIG_TOOL", "POWERARMOR_COMPATIBLE" ], "bashing": 60, "cutting": 20, @@ -45,7 +45,7 @@ "copy-from": "afs_hydraulic_gauntlet", "type": "ARMOR", "name": { "str": "exoskeleton hydraulic gauntlet" }, - "description": "A huge, heavy metal gauntlet lined with tubing and gauges, worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively. ", + "description": "A huge, heavy metal gauntlet lined with tubing and gauges, worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively.", "looks_like": "gauntlets_chitin", "color": "light_gray", "bashing": 50, diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 7c9722d32263a..f129274971c08 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -25,7 +25,7 @@ { "id": "modular_exoskeleton", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton frame", "str_pl": "exoskeleton frames" }, + "name": { "str": "exoskeleton frame" }, "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs.", "weight": "40 kg", "volume": "130 L", diff --git a/data/mods/Aftershock/items/vehicle_items.json b/data/mods/Aftershock/items/vehicle_items.json index 819d204022f61..8f4eeed498cbc 100644 --- a/data/mods/Aftershock/items/vehicle_items.json +++ b/data/mods/Aftershock/items/vehicle_items.json @@ -20,7 +20,7 @@ "type": "GENERIC", "id": "exo_gantry", "copy-from": "vehicle_rig", - "name": { "str": "exoskeleton maintenance gantry", "str_pl": "exoskeleton maintenance gantry" }, - "description": "A gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active." + "name": { "str_sp": "exoskeleton maintenance gantry" }, + "description": "A gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active." } ] diff --git a/data/mods/Aftershock/vehicles/vehicle_parts.json b/data/mods/Aftershock/vehicles/vehicle_parts.json index 59c93ebdabd84..ac6377ca841c7 100644 --- a/data/mods/Aftershock/vehicles/vehicle_parts.json +++ b/data/mods/Aftershock/vehicles/vehicle_parts.json @@ -368,7 +368,7 @@ { "type": "vehicle_part", "id": "exo_gantry", - "name": { "str": "exoskeleton maintenance gantry" }, + "name": { "str_sp": "exoskeleton maintenance gantry" }, "symbol": "T", "categories": [ "utility" ], "color": "light_gray", @@ -377,7 +377,7 @@ "looks_like": "welding_rig", "damage_modifier": 10, "durability": 200, - "description": "A gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active.", + "description": "A gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active.", "size": 800, "bonus": 600, "item": "afs_metal_rig", From ea66d23a38fa7004668f8006235bab3d39576b60 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sat, 18 Dec 2021 21:24:45 -0800 Subject: [PATCH 048/189] text updates --- .../items/armor/modular_exos/exo_gear.json | 4 ++-- .../armor/modular_exos/modular_exoskeleton.json | 12 ++++++------ data/mods/Aftershock/items/vehicle_items.json | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 665c1895ad044..16ee9bafce02c 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -2,7 +2,7 @@ { "id": "exo_mounted_drill", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton mounted drill", "str_pl": "exoskeleton mounted drills" }, + "name": { "str": "exoskeleton mounted drill" }, "category": "tool", "description": "A powerful header drill with tough carbide bits, this tool mounts to the exoskeleton's arm and extends past the hand. While turned off, it still makes a powerful mace.", "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], @@ -31,7 +31,7 @@ "id": "exo_mounted_drill_on", "type": "TOOL_ARMOR", "copy-from": "exo_mounted_drill", - "name": { "str": "exoskeleton mounted drill (on)", "str_pl": "exoskeleton mounted drills (on)" }, + "name": { "str": "exoskeleton mounted drill (on)" }, "description": "The drill is now rotating and making a low growling noise. Meant to make short work of the toughest rock, it should work on more mobile surfaces as well. Use it to turn it off.", "flags": [ "USE_UPS", "MESSY", "POWERED", "DURABLE_MELEE", "DIG_TOOL", "POWERARMOR_COMPATIBLE" ], "bashing": 60, diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index f129274971c08..21db98716be89 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -26,7 +26,7 @@ "id": "modular_exoskeleton", "type": "TOOL_ARMOR", "name": { "str": "exoskeleton frame" }, - "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs.", + "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs.", "weight": "40 kg", "volume": "130 L", "material": [ "titanium" ], @@ -143,7 +143,7 @@ "looks_like": "power_armor_light", "type": "TOOL_ARMOR", "name": { "str": "exoskeleton frame (on)", "str_pl": "exoskeleton frames (on)" }, - "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on and continually drawing power. Use it to turn it off.", + "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on and continually drawing power. Use it to turn it off.", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, "power_draw": 7123, @@ -154,7 +154,7 @@ "id": "exoskeleton_helmet", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton helmet", "str_pl": "exoskeleton helmet" }, + "name": { "str": "exoskeleton helmet", "str_pl": "exoskeleton helmets" }, "description": "This is a helmet offering mounts for specialized equipment and protection.", "weight": "2500 g", "volume": "5 L", @@ -189,8 +189,8 @@ "id": "exoskeleton_boots", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton boots", "str_pl": "exoskeleton boots" }, - "description": "This is a pair of exoskeleton boots. Has mounting points for protective plate.", + "name": { "str_sp": "exoskeleton boots" }, + "description": "This is a pair of exoskeleton boots. Has mounting points for protective plate.", "weight": "2000 g", "volume": "3250 ml", "material": [ "titanium", "plastic" ], @@ -217,7 +217,7 @@ "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton gloves", "str_pl": "exoskeleton gloves" }, - "description": "This is a pair of exoskeleton gloves. Has mounting points for protective plate.", + "description": "This is a pair of exoskeleton gloves. Has mounting points for protective plate.", "weight": "1000 g", "volume": "1500 ml", "material": [ "titanium", "plastic" ], diff --git a/data/mods/Aftershock/items/vehicle_items.json b/data/mods/Aftershock/items/vehicle_items.json index 8f4eeed498cbc..0c5cfa9738580 100644 --- a/data/mods/Aftershock/items/vehicle_items.json +++ b/data/mods/Aftershock/items/vehicle_items.json @@ -20,7 +20,7 @@ "type": "GENERIC", "id": "exo_gantry", "copy-from": "vehicle_rig", - "name": { "str_sp": "exoskeleton maintenance gantry" }, + "name": "exoskeleton maintenance gantry", "description": "A gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active." } ] From 49b6d30a67b91b75f26d1c4754890ca6ebaa6b28 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sun, 19 Dec 2021 00:27:20 -0800 Subject: [PATCH 049/189] Restarting tests --- data/mods/Aftershock/items/armor/modular_exos/exo_gear.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 16ee9bafce02c..d5df747efde69 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -45,7 +45,7 @@ "copy-from": "afs_hydraulic_gauntlet", "type": "ARMOR", "name": { "str": "exoskeleton hydraulic gauntlet" }, - "description": "A huge, heavy metal gauntlet lined with tubing and gauges, worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively.", + "description": "A huge, heavy metal gauntlet lined with tubing and gauges worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively.", "looks_like": "gauntlets_chitin", "color": "light_gray", "bashing": 50, From a812c72f31ad481e01097ba442decd0b4d44dfb7 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sun, 19 Dec 2021 11:44:09 -0800 Subject: [PATCH 050/189] Text fixes --- .../items/armor/modular_exos/exo_gear.json | 2 +- .../modular_exos/modular_exoskeleton.json | 4 ++-- .../modular_exoskeleton_modules.json | 22 +++++++++---------- .../Aftershock/vehicles/vehicle_parts.json | 2 +- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index d5df747efde69..6fb7114ab364e 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -2,7 +2,7 @@ { "id": "exo_mounted_drill", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton mounted drill" }, + "name": { "str": "exoskeleton mounted drill", "str_pl": "exoskeleton mounted drills" }, "category": "tool", "description": "A powerful header drill with tough carbide bits, this tool mounts to the exoskeleton's arm and extends past the hand. While turned off, it still makes a powerful mace.", "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 21db98716be89..f937550fb5f25 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -154,7 +154,7 @@ "id": "exoskeleton_helmet", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton helmet", "str_pl": "exoskeleton helmets" }, + "name": { "str": "exoskeleton helmet" }, "description": "This is a helmet offering mounts for specialized equipment and protection.", "weight": "2500 g", "volume": "5 L", @@ -216,7 +216,7 @@ "id": "exoskeleton_gloves", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton gloves", "str_pl": "exoskeleton gloves" }, + "name": { "str_sp": "exoskeleton gloves" }, "description": "This is a pair of exoskeleton gloves. Has mounting points for protective plate.", "weight": "1000 g", "volume": "1500 ml", diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index fe1d19f0ab2f8..d443f09119230 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -33,7 +33,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton ICE power supply" }, - "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS. This unit is large and occupies the rear hardpoints.", + "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS. This unit is large and occupies the rear hardpoints.", "weight": "20 kg", "volume": "25 L", "material": [ "steel", "plastic" ], @@ -99,7 +99,7 @@ "id": "exo_large_carry", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton large load support module (off)" }, + "name": { "str": "exoskeleton large load support module (off)", "str_pl": "exoskeleton large load support modules (off)" }, "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power cosumption.", "weight": "10 kg", "volume": "5 L", @@ -126,8 +126,8 @@ "id": "exo_large_carry_on", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton large load support module (on)" }, - "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power cosumption. It is turned on and continually drawing power. Use it to turn it off.", + "name": { "str": "exoskeleton large load support module (on)", "str_pl": "exoskeleton large load support modules (on)" }, + "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power cosumption. It is turned on and continually drawing power. Use it to turn it off.", "weight": "10 kg", "volume": "5 L", "material": [ "plastic", "steel" ], @@ -153,7 +153,7 @@ "id": "exo_small_carry", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton small load support module (off)" }, + "name": { "str": "exoskeleton small load support module (off)", "str_pl": "exoskeleton small load support modules (off)" }, "description": "This module increases the exoskeleton's weight bearing at the cost of increased power cosumption.", "weight": "2 kg", "volume": "1 L", @@ -180,8 +180,8 @@ "id": "exo_small_carry_on", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton small load support module (on)" }, - "description": "This module increases the exoskeleton's weight bearing at the cost of increased power cosumption. It is turned on and continually drawing power. Use it to turn it off.", + "name": { "str": "exoskeleton small load support module (on)", "str_pl": "exoskeleton small load support modules (on)" }, + "description": "This module increases the exoskeleton's weight bearing at the cost of increased power cosumption. It is turned on and continually drawing power. Use it to turn it off.", "weight": "2 kg", "volume": "1 L", "material": [ "plastic", "steel" ], @@ -208,7 +208,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "mounted lamp (off)", "str_pl": "mounted lamps (off)" }, - "description": "This is a light that can be secured to an exoskeleton hardpoint. It has two levels of brightness.", + "description": "This is a light that can be secured to an exoskeleton hardpoint. It has two levels of brightness.", "weight": "500 g", "volume": "500 ml", "material": [ "steel", "plastic" ], @@ -263,7 +263,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "audio protection (off)", "str_pl": "audio protection (off)" }, - "description": "This is an audio protection exoskeleton module. While active, it also protects your hearing from loud noises.", + "description": "This is an audio protection exoskeleton module. While active, it also protects your hearing from loud noises.", "weight": "500 g", "volume": "500 ml", "material": [ "steel", "plastic" ], @@ -302,7 +302,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "recoil mitigation system (off)", "str_pl": "recoil mitigation systems (off)" }, - "description": "This module takes partial control of the exoskeleton while firing, damping recoil. Activate before firing.", + "description": "This module takes partial control of the exoskeleton while firing, damping recoil. Activate before firing.", "weight": "500 g", "volume": "500 ml", "material": [ "steel", "plastic" ], @@ -349,7 +349,7 @@ "symbol": "8", "color": "light_gray", "name": { "str": "exoskeleton enhanced optics (off)", "str_pl": "exoskeleton enhanced optics (off)" }, - "description": "A set of enhanced optics for an exoskeleton. Provides telescopic vision as well as protection from glare and bright flashes of light. Activate to enable infrared vision.", + "description": "A set of enhanced optics for an exoskeleton. Provides telescopic vision as well as protection from glare and bright flashes of light. Activate to enable infrared vision.", "price": 30000, "price_postapoc": 500, "material": [ "plastic", "glass" ], diff --git a/data/mods/Aftershock/vehicles/vehicle_parts.json b/data/mods/Aftershock/vehicles/vehicle_parts.json index ac6377ca841c7..d73f7c16c9ef8 100644 --- a/data/mods/Aftershock/vehicles/vehicle_parts.json +++ b/data/mods/Aftershock/vehicles/vehicle_parts.json @@ -368,7 +368,7 @@ { "type": "vehicle_part", "id": "exo_gantry", - "name": { "str_sp": "exoskeleton maintenance gantry" }, + "name": { "str: "exoskeleton maintenance gantry" }, "symbol": "T", "categories": [ "utility" ], "color": "light_gray", From 9fa0e656ac2115fbd4b973a5ad672656e329b1d9 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sun, 19 Dec 2021 22:09:12 -0800 Subject: [PATCH 051/189] Update exo_gear.json --- data/mods/Aftershock/items/armor/modular_exos/exo_gear.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 6fb7114ab364e..8baaf4e8b17b0 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -2,7 +2,7 @@ { "id": "exo_mounted_drill", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton mounted drill", "str_pl": "exoskeleton mounted drills" }, + "name": { "str": "exoskeleton mounted drill", "str_pl": "exoskeleton mounted drills" }, "category": "tool", "description": "A powerful header drill with tough carbide bits, this tool mounts to the exoskeleton's arm and extends past the hand. While turned off, it still makes a powerful mace.", "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], From 9eec55eb16fef4c0a1db9fae4f57d19521b3b848 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sun, 19 Dec 2021 22:43:55 -0800 Subject: [PATCH 052/189] Update vehicle_parts.json --- data/mods/Aftershock/vehicles/vehicle_parts.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/vehicles/vehicle_parts.json b/data/mods/Aftershock/vehicles/vehicle_parts.json index d73f7c16c9ef8..8b0469d312eaf 100644 --- a/data/mods/Aftershock/vehicles/vehicle_parts.json +++ b/data/mods/Aftershock/vehicles/vehicle_parts.json @@ -368,7 +368,7 @@ { "type": "vehicle_part", "id": "exo_gantry", - "name": { "str: "exoskeleton maintenance gantry" }, + "name": { "str": "exoskeleton maintenance gantry" }, "symbol": "T", "categories": [ "utility" ], "color": "light_gray", From 83336fa6235956bba284fdd44fc9aeee5f018c40 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 20 Dec 2021 10:05:38 -0800 Subject: [PATCH 053/189] Update exo_gear.json --- data/mods/Aftershock/items/armor/modular_exos/exo_gear.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 8baaf4e8b17b0..a6b12ca58aac0 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -2,7 +2,7 @@ { "id": "exo_mounted_drill", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton mounted drill", "str_pl": "exoskeleton mounted drills" }, + "name": { "str": "exoskeleton mounted drill" }, "category": "tool", "description": "A powerful header drill with tough carbide bits, this tool mounts to the exoskeleton's arm and extends past the hand. While turned off, it still makes a powerful mace.", "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], @@ -31,7 +31,7 @@ "id": "exo_mounted_drill_on", "type": "TOOL_ARMOR", "copy-from": "exo_mounted_drill", - "name": { "str": "exoskeleton mounted drill (on)" }, + "name": { "str": "exoskeleton mounted drill (on)", "str_pl": "exoskeleton mounted drills (on)" }, "description": "The drill is now rotating and making a low growling noise. Meant to make short work of the toughest rock, it should work on more mobile surfaces as well. Use it to turn it off.", "flags": [ "USE_UPS", "MESSY", "POWERED", "DURABLE_MELEE", "DIG_TOOL", "POWERARMOR_COMPATIBLE" ], "bashing": 60, From b1626dc3aa7c56c502dfb63d9dba3419c3202ccb Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 20 Dec 2021 11:02:35 -0800 Subject: [PATCH 054/189] Single/plural fixes --- .../armor/modular_exos/modular_exoskeleton_modules.json | 8 ++++---- .../armor/modular_exos/modular_exoskeleton_storage.json | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index d443f09119230..8c27704dfe75c 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -262,7 +262,7 @@ "id": "exo_hearing", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "audio protection (off)", "str_pl": "audio protection (off)" }, + "name": { "str_sp": "audio protection (off)" }, "description": "This is an audio protection exoskeleton module. While active, it also protects your hearing from loud noises.", "weight": "500 g", "volume": "500 ml", @@ -285,7 +285,7 @@ "id": "exo_hearing_on", "copy-from": "exo_hearing", "type": "TOOL", - "name": { "str": "audio protection (on)", "str_pl": "audio protection (on)" }, + "name": { "str_sp": "audio protection (on)" }, "power_draw": 500, "revert_to": "exo_hearing", "use_action": { @@ -348,7 +348,7 @@ "category": "armor", "symbol": "8", "color": "light_gray", - "name": { "str": "exoskeleton enhanced optics (off)", "str_pl": "exoskeleton enhanced optics (off)" }, + "name": { "str_sp": "exoskeleton enhanced optics (off)" }, "description": "A set of enhanced optics for an exoskeleton. Provides telescopic vision as well as protection from glare and bright flashes of light. Activate to enable infrared vision.", "price": 30000, "price_postapoc": 500, @@ -371,7 +371,7 @@ "id": "exo_optics_on", "copy-from": "exo_optics", "type": "TOOL", - "name": { "str": "exoskeleton enhanced optics (on)", "str_pl": "exoskeleton enhanced optics (on)" }, + "name": { "str_sp": "exoskeleton enhanced optics (on)" }, "power_draw": 500, "revert_to": "exo_optics", "use_action": { diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index bdf7ba8b5f4a6..5d1531c6aaaec 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -4,7 +4,7 @@ "copy-from": "back_holster", "type": "ARMOR", "name": { "str": "large storage pouch" }, - "description": "A hardpoint for storing a rifle. Activate to holster/draw a gun.", + "description": "A hardpoint for storing a rifle. Activate to holster/draw a gun.", "weight": "454 g", "volume": "2 L", "material": [ "steel" ], @@ -19,7 +19,7 @@ "copy-from": "bscabbard", "type": "ARMOR", "name": { "str": "exoskeleton scabbard" }, - "description": "A metallic scabbard mountable on an exoskeleton hard point. Can be activated to sheath or draw a sword .", + "description": "A metallic scabbard mountable on an exoskeleton hard point. Can be activated to sheath or draw a sword.", "weight": "454 g", "volume": "2 L", "price": 18000, @@ -80,7 +80,7 @@ "copy-from": "tacvest", "looks_like": "tacvest", "type": "ARMOR", - "name": { "str": "exoskeleton large ammo pouches", "str_pl": "exoskeleton large ammo pouches" }, + "name": { "str_sp": "exoskeleton large ammo pouches" }, "description": "A set of pouches that attach to a hardpoint.", "weight": "205 g", "volume": "1050 ml", @@ -96,7 +96,7 @@ "id": "exo_small_ammo_pouch", "copy-from": "legrig", "type": "ARMOR", - "name": { "str": "exoskeleton small ammo pouches", "str_pl": "exoskeleton small ammo pouches" }, + "name": { "str_sp": "exoskeleton small ammo pouches"" }, "description": "A set of pouches that attach to a hardpoint.", "symbol": "[", "color": "dark_gray", From 7b55bc866c1938b17ba0829e6a31fc85fa01e605 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 20 Dec 2021 18:13:03 -0800 Subject: [PATCH 055/189] Update modular_exoskeleton_storage.json --- .../items/armor/modular_exos/modular_exoskeleton_storage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 5d1531c6aaaec..ce27c90ea9059 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -96,7 +96,7 @@ "id": "exo_small_ammo_pouch", "copy-from": "legrig", "type": "ARMOR", - "name": { "str_sp": "exoskeleton small ammo pouches"" }, + "name": { "str_sp": "exoskeleton small ammo pouches" }, "description": "A set of pouches that attach to a hardpoint.", "symbol": "[", "color": "dark_gray", From 73e38a9a03eddbdfd1ea422bf6229ec91fa4444c Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Tue, 21 Dec 2021 22:25:38 -0800 Subject: [PATCH 056/189] Update data/mods/Aftershock/items/books.json Co-authored-by: Mom-Bun <43492737+Mom-Bun@users.noreply.github.com> --- data/mods/Aftershock/items/books.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/books.json b/data/mods/Aftershock/items/books.json index 1394f69678323..b97a76e81d3cd 100644 --- a/data/mods/Aftershock/items/books.json +++ b/data/mods/Aftershock/items/books.json @@ -282,7 +282,7 @@ { "id": "exosuit_maintenance", "type": "BOOK", - "name": { "str": "Exoskeleton maintenance and repair manual", "str_pl": "copies of Exoskeleton maintenance and repair manual" }, + "name": { "str": "TsKBEM Exoskeleton user manual", "str_pl": "copies of TsKBEM Exoskeleton user manuals" }, "description": "TM 7-4350 TECHNICAL MANUAL OPERATOR’S MANUAL FOR TYPE G EXOSKELETON (MODULAR). This is an operator's manual that covers general maintenance and basic repairs to modular exoskeleton systems.", "weight": "50 g", "volume": "500 ml", From a770dc864f1c543b9278e389980924b895009e0e Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Tue, 21 Dec 2021 22:58:55 -0800 Subject: [PATCH 057/189] Flavor text Remove duplicate book, update descriptions. --- .../items/armor/modular_exos/exo_book.json | 21 ------------------- data/mods/Aftershock/items/books.json | 2 +- 2 files changed, 1 insertion(+), 22 deletions(-) delete mode 100644 data/mods/Aftershock/items/armor/modular_exos/exo_book.json diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_book.json b/data/mods/Aftershock/items/armor/modular_exos/exo_book.json deleted file mode 100644 index 0fee09c4386ff..0000000000000 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_book.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "id": "exosuit_maintenance", - "type": "BOOK", - "name": { "str": "Exoskeleton maintenance and repair manual", "str_pl": "copies of Exoskeleton maintenance and repair manual" }, - "description": "TM 7-4350 TECHNICAL MANUAL OPERATOR’S MANUAL FOR TYPE G EXOSKELETON (MODULAR). This is an operator's manual that covers general maintenance and basic repairs to modular exoskeleton systems.", - "weight": "50 g", - "volume": "500 ml", - "price": "5000 cent", - "material": [ "paper" ], - "symbol": "?", - "looks_like": "adv_chemistry", - "color": "light_green", - "skill": "fabrication", - "required_level": 5, - "max_level": 8, - "intelligence": 9, - "fun": -3, - "time": "50 m" - } -] diff --git a/data/mods/Aftershock/items/books.json b/data/mods/Aftershock/items/books.json index b97a76e81d3cd..b439570dfbc12 100644 --- a/data/mods/Aftershock/items/books.json +++ b/data/mods/Aftershock/items/books.json @@ -283,7 +283,7 @@ "id": "exosuit_maintenance", "type": "BOOK", "name": { "str": "TsKBEM Exoskeleton user manual", "str_pl": "copies of TsKBEM Exoskeleton user manuals" }, - "description": "TM 7-4350 TECHNICAL MANUAL OPERATOR’S MANUAL FOR TYPE G EXOSKELETON (MODULAR). This is an operator's manual that covers general maintenance and basic repairs to modular exoskeleton systems.", + "description": "A somewhat hefty manual in Russian with accompanying English text which goes in-depth into the proper usage and maintenance of TsKBEM brand Exoskeletons. \n\nWhile it mainly pertains to the old TsKBEM exoskeletons, the knowledge within could still help out with modular exoskeletons in general.", "weight": "50 g", "volume": "500 ml", "price": "5000 cent", From 6b2de45e12ad8df764c72d0be3b349800378c2d3 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 22 Dec 2021 10:10:53 -0800 Subject: [PATCH 058/189] Update books.json --- data/mods/Aftershock/items/books.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/books.json b/data/mods/Aftershock/items/books.json index b439570dfbc12..b58b5e9866c3c 100644 --- a/data/mods/Aftershock/items/books.json +++ b/data/mods/Aftershock/items/books.json @@ -283,7 +283,7 @@ "id": "exosuit_maintenance", "type": "BOOK", "name": { "str": "TsKBEM Exoskeleton user manual", "str_pl": "copies of TsKBEM Exoskeleton user manuals" }, - "description": "A somewhat hefty manual in Russian with accompanying English text which goes in-depth into the proper usage and maintenance of TsKBEM brand Exoskeletons. \n\nWhile it mainly pertains to the old TsKBEM exoskeletons, the knowledge within could still help out with modular exoskeletons in general.", + "description": "A somewhat hefty manual in Russian with accompanying English text which goes in-depth into the proper usage and maintenance of TsKBEM brand Exoskeletons. \n\nWhile it mainly pertains to the old TsKBEM exoskeletons, the knowledge within could still help out with modular exoskeletons in general.", "weight": "50 g", "volume": "500 ml", "price": "5000 cent", From 1cf8e94917ec16ae4937332fb7687e18c68c7f0a Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 27 Dec 2021 22:27:41 -0800 Subject: [PATCH 059/189] Extra spaces, insufficient spaces --- .../items/armor/modular_exos/modular_exoskeleton_modules.json | 2 +- data/mods/Aftershock/items/books.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 8c27704dfe75c..8cc423b21412f 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -46,7 +46,7 @@ "pocket_data": [ { "pocket_type": "MAGAZINE", - "description": "This is a tank for gasoline. Holds up to 10 liters.", + "description": "This is a tank for gasoline. Holds up to 10 liters.", "rigid": true, "watertight": true, "ammo_restriction": { "gasoline": 10000 } diff --git a/data/mods/Aftershock/items/books.json b/data/mods/Aftershock/items/books.json index b58b5e9866c3c..46d566b8271c9 100644 --- a/data/mods/Aftershock/items/books.json +++ b/data/mods/Aftershock/items/books.json @@ -283,7 +283,7 @@ "id": "exosuit_maintenance", "type": "BOOK", "name": { "str": "TsKBEM Exoskeleton user manual", "str_pl": "copies of TsKBEM Exoskeleton user manuals" }, - "description": "A somewhat hefty manual in Russian with accompanying English text which goes in-depth into the proper usage and maintenance of TsKBEM brand Exoskeletons. \n\nWhile it mainly pertains to the old TsKBEM exoskeletons, the knowledge within could still help out with modular exoskeletons in general.", + "description": "A somewhat hefty manual in Russian with accompanying English text which goes in-depth into the proper usage and maintenance of TsKBEM brand Exoskeletons.\n\nWhile it mainly pertains to the old TsKBEM exoskeletons, the knowledge within could still help out with modular exoskeletons in general.", "weight": "50 g", "volume": "500 ml", "price": "5000 cent", From 5f2d8b172e6e7e50c2da5f7dd1eea312e358541d Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 27 Dec 2021 23:10:39 -0800 Subject: [PATCH 060/189] Spelling fixes --- .../modular_exos/modular_exoskeleton_modules.json | 14 +++++++------- .../modular_exos/modular_exoskeleton_plating.json | 4 ++-- .../modular_exos/modular_exoskeleton_storage.json | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 8cc423b21412f..0194ea062ddf4 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -32,7 +32,7 @@ "id": "exo_back_gasoline", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton ICE power supply" }, + "name": { "str": "exoskeleton ICE power supply", "str_pl": "exoskeleton ICE power supplies" }, }, "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS. This unit is large and occupies the rear hardpoints.", "weight": "20 kg", "volume": "25 L", @@ -67,7 +67,7 @@ "id": "exo_large_aux_power", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton auxiliary battery" }, + "name": { "str": "exoskeleton auxiliary battery", "str_pl": "exoskeleton auxiliary batteries" }, "description": "This is a large rechargable auxiliary power unit that attaches to an exoskeleton hardpoint.", "weight": "5 kg", "volume": "5 L", @@ -83,7 +83,7 @@ "id": "exo_small_aux_power", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton small auxiliary battery" }, + "name": { "str": "exoskeleton small auxiliary battery", "str_pl": "exoskeleton small auxiliary batteries" }, "description": "This is a small rechargable auxiliary power unit that attaches to an exoskeleton hardpoint.", "weight": "2 kg", "volume": "1 L", @@ -100,7 +100,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton large load support module (off)", "str_pl": "exoskeleton large load support modules (off)" }, - "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power cosumption.", + "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power consumption.", "weight": "10 kg", "volume": "5 L", "material": [ "plastic", "steel" ], @@ -127,7 +127,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton large load support module (on)", "str_pl": "exoskeleton large load support modules (on)" }, - "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power cosumption. It is turned on and continually drawing power. Use it to turn it off.", + "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power consumption. It is turned on and continually drawing power. Use it to turn it off.", "weight": "10 kg", "volume": "5 L", "material": [ "plastic", "steel" ], @@ -154,7 +154,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton small load support module (off)", "str_pl": "exoskeleton small load support modules (off)" }, - "description": "This module increases the exoskeleton's weight bearing at the cost of increased power cosumption.", + "description": "This module increases the exoskeleton's weight bearing at the cost of increased power consumption.", "weight": "2 kg", "volume": "1 L", "material": [ "plastic", "steel" ], @@ -181,7 +181,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton small load support module (on)", "str_pl": "exoskeleton small load support modules (on)" }, - "description": "This module increases the exoskeleton's weight bearing at the cost of increased power cosumption. It is turned on and continually drawing power. Use it to turn it off.", + "description": "This module increases the exoskeleton's weight bearing at the cost of increased power consumption. It is turned on and continually drawing power. Use it to turn it off.", "weight": "2 kg", "volume": "1 L", "material": [ "plastic", "steel" ], diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 4bfe7d060da5e..420d7a7b35356 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -249,8 +249,8 @@ "id": "destroyed_exo_arm_vcc_plate", "type": "ARMOR", "copy-from": "exo_arm_vcc", - "name": { "str": "shattered accuum-cast carbide arm plate" }, - "description": "The remains of a accuum-cast carbide arm plate after taking a strong impact. No longer provides functional protection, just weight.", + "name": { "str": "shattered vacuum-cast carbide arm plate" }, + "description": "The remains of a vacuum-cast carbide arm plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_arm_vcc", "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index ce27c90ea9059..027a511aae8a1 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -3,7 +3,7 @@ "id": "exo_rifle_storage", "copy-from": "back_holster", "type": "ARMOR", - "name": { "str": "large storage pouch" }, + "name": { "str": "large storage pouch", "str_pl": "large storage pouches" }, "description": "A hardpoint for storing a rifle. Activate to holster/draw a gun.", "weight": "454 g", "volume": "2 L", @@ -18,7 +18,7 @@ "id": "exo_melee_storage", "copy-from": "bscabbard", "type": "ARMOR", - "name": { "str": "exoskeleton scabbard" }, + "name": { "str_sp": "exoskeleton scabbard" }, "description": "A metallic scabbard mountable on an exoskeleton hard point. Can be activated to sheath or draw a sword.", "weight": "454 g", "volume": "2 L", From 5abc2b9b0cca2bd27020282cef6da6d63e2ccef5 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 27 Dec 2021 23:51:29 -0800 Subject: [PATCH 061/189] Update modular_exoskeleton_modules.json --- .../items/armor/modular_exos/modular_exoskeleton_modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 0194ea062ddf4..af3caaee3fecc 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -32,7 +32,7 @@ "id": "exo_back_gasoline", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton ICE power supply", "str_pl": "exoskeleton ICE power supplies" }, }, + "name": { "str": "exoskeleton ICE power supply", "str_pl": "exoskeleton ICE power supplies" }, "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS. This unit is large and occupies the rear hardpoints.", "weight": "20 kg", "volume": "25 L", From bfcbf25d5fc808a81b2493facc7b8cc8ccee3d2f Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Tue, 28 Dec 2021 17:52:46 -0800 Subject: [PATCH 062/189] Update exo_tool.json --- data/mods/Aftershock/items/armor/modular_exos/exo_tool.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json b/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json index 35908845362bb..4d5d084304b45 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json @@ -10,7 +10,7 @@ "price_postapoc": 100, "bashing": 2, "cutting": 6, - "material": [ "iron" ], + "material": [ "steel" ], "symbol": ",", "color": "light_gray", "ammo": [ "battery" ], From 8ba409d749d2dbd9bd0f4861189597508dd06e26 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 30 Dec 2021 10:26:27 -0800 Subject: [PATCH 063/189] Plating naming standards, module bugfix, gantry description. --- .../modular_exoskeleton_modules.json | 26 +------ .../modular_exoskeleton_plating.json | 76 +++++++++---------- data/mods/Aftershock/items/vehicle_items.json | 2 +- 3 files changed, 42 insertions(+), 62 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index af3caaee3fecc..4f58812278cf2 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -13,7 +13,7 @@ "color": "light_gray", "ammo": [ "battery" ], "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS", "EXO_PSU", "ONLY_ONE" ], - "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], + "armor": [ { "encumbrance": 0, "coverage": 20, "covers": [ "torso" ] } ], "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 40000 } }, { @@ -42,7 +42,7 @@ "color": "dark_gray", "ammo": "gasoline", "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS", "EXO_PSU", "ONLY_ONE" ], - "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], + "armor": [ { "encumbrance": 0, "coverage": 40, "covers": [ "torso" ] } ], "pocket_data": [ { "pocket_type": "MAGAZINE", @@ -361,7 +361,7 @@ "use_action": { "type": "transform", "msg": "You activate the helmet's optical enhancement.", - "target": "exo_hearing_on", + "target": "exo_optics_on", "active": true, "need_charges": 1, "need_charges_msg": "There is not enough charge to activate the module." @@ -382,25 +382,5 @@ "target": "exo_optics" }, "flags": [ "ZOOM", "USE_UPS", "CANT_WEAR", "IR_EFFECT", "EXO_HELMET_GADGET", "ONLY_ONE" ] - }, - { - "id": "exoskeleton_helmet_filter", - "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton filter mask" }, - "category": "clothing", - "description": "A gas filtration module for an exoskeleton helmet. Provides excellent protection from smoke, teargas, and other contaminants. It must be prepared before use.", - "flags": [ "SLEEP_IGNORE", "EXO_HELMET_GADGET", "ONLY_ONE" ], - "weight": "1000 g", - "volume": "1 L", - "material": [ "plastic" ], - "symbol": "[", - "color": "dark_gray", - "warmth": 20, - "material_thickness": 2, - "environmental_protection": 1, - "environmental_protection_with_filter": 16, - "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "gasfilter_m": 100 } } ], - "ammo": "gasfilter_m", - "use_action": [ "GASMASK" ] } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 420d7a7b35356..a9725cc5431da 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -3,7 +3,7 @@ "id": "exo_helmet_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "steel exoskeleton helmet plate" }, + "name": { "str": "steel helmet plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of steel.", "weight": "12880 g", "volume": "5 L", @@ -21,7 +21,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_helmet_steel", - "name": { "str": "plastic exoskeleton helmet plate" }, + "name": { "str": "plastic helmet plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's helmet, this is a plate of plastic.", "weight": "1287 g", "material": [ "plastic" ], @@ -33,7 +33,7 @@ "id": "destroyed_exo_helmet_plastic_plate", "type": "ARMOR", "copy-from": "exo_helmet_plastic", - "name": { "str": "shattered plastic helmet plate" }, + "name": { "str": "shattered plastic helmet plate (exosuit)" }, "description": "The remains of a plastic helmet plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_helmet_plastic", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] @@ -43,7 +43,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_helmet_steel", - "name": { "str": "vacuum-cast carbide exoskeleton helmet plate" }, + "name": { "str": "carbide helmet plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's helmet, this is a plate of vacuum-cast carbide.", "weight": "1287 g", "material": [ "vacuum_carbide" ], @@ -55,7 +55,7 @@ "id": "destroyed_exo_helmet_vcc_plate", "type": "ARMOR", "copy-from": "exo_helmet_plastic", - "name": { "str": "shattered vacuum-cast carbide helmet plate" }, + "name": { "str": "shattered carbide helmet plate (exosuit)" }, "description": "The remains of a vacuum-cast carbide helmet plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_helmet_vcc", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] @@ -64,7 +64,7 @@ "id": "exo_torso_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "steel exoskeleton torso plate" }, + "name": { "str": "steel torso plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", "weight": "34347 g", "volume": "8 L", @@ -82,7 +82,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_torso_steel", - "name": { "str": "plastic exoskeleton torso plate" }, + "name": { "str": "plastic torso plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's torso, this is a plate of plastic.", "weight": "3432 g", "volume": "8 L", @@ -94,7 +94,7 @@ "id": "destroyed_exo_torso_plastic_plate", "type": "ARMOR", "copy-from": "exo_torso_plastic", - "name": { "str": "shattered plastic torso plate" }, + "name": { "str": "shattered plastic torso plate (exosuit)" }, "description": "The remains of a plastic torso plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_torso_plastic", "material_thickness": 3, @@ -105,7 +105,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_torso_steel", - "name": { "str": "exoskeleton vacuum carbide torso plate" }, + "name": { "str": "carbide torso plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of vacuum-cast carbide.", "weight": "44000 g", "volume": "8 L", @@ -117,7 +117,7 @@ "id": "destroyed_exo_torso_vcc_plate", "type": "ARMOR", "copy-from": "exo_torso_vcc", - "name": { "str": "shattered vacuum carbide torso plate" }, + "name": { "str": "shattered carbide torso plate (exosuit)" }, "description": "The remains of a vacuum-cast carbide torso plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_torso_vcc" }, @@ -125,7 +125,7 @@ "id": "exo_psu_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "steel exoskeleton PSU plate" }, + "name": { "str": "steel PSU plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of steel.", "weight": "42933 g", "volume": "10 L", @@ -143,7 +143,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_psu_steel", - "name": { "str": "plastic exoskeleton PSU plate" }, + "name": { "str": "plastic PSU plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a plate of plastic.", "weight": "4290 g", "volume": "10 L", @@ -155,7 +155,7 @@ "id": "destroyed_exo_psu_plastic_plate", "type": "ARMOR", "copy-from": "exo_psu_plastic", - "name": { "str": "shattered plastic PSU plate" }, + "name": { "str": "shattered plastic PSU plate (exosuit)" }, "description": "The remains of a plastic PSU plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_psu_plastic", "material_thickness": 3 @@ -165,7 +165,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_psu_steel", - "name": { "str": "vacuum-cast carbide exoskeleton PSU plate" }, + "name": { "str": "carbide PSU plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of vacuum-cast carbide.", "weight": "55000 g", "volume": "10 L", @@ -177,7 +177,7 @@ "id": "destroyed_exo_psu_vcc", "type": "ARMOR", "copy-from": "exo_psu_vcc", - "name": { "str": "shattered military composite PSU plate" }, + "name": { "str": "shattered carbide PSU plate (exosuit)" }, "description": "The remains of a vacuum-cast carbide PSU plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_psu_vcc", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] @@ -186,7 +186,7 @@ "id": "exo_arm_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "steel exoskeleton arm plate" }, + "name": { "str": "steel arm plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", "weight": "25760 g", "volume": "5500 ml", @@ -214,7 +214,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_arm_steel", - "name": { "str": "plastic exoskeleton arm plate" }, + "name": { "str": "plastic arm plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are plates of plastic.", "weight": "2574 g", "volume": "5500 ml", @@ -226,7 +226,7 @@ "id": "destroyed_exo_arm_plastic_plate", "type": "ARMOR", "copy-from": "exo_arm_plastic", - "name": { "str": "shattered plastic arm plate" }, + "name": { "str": "shattered plastic arm plate (exosuit)" }, "description": "The remains of a plastic arm plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_arm_plastic", "material_thickness": 3, @@ -237,7 +237,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_arm_steel", - "name": { "str": "vacuum-cast carbide exoskeleton arm plate" }, + "name": { "str": "carbide arm plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of vacuum-cast carbide.", "weight": "33000 g", "volume": "5500 ml", @@ -249,7 +249,7 @@ "id": "destroyed_exo_arm_vcc_plate", "type": "ARMOR", "copy-from": "exo_arm_vcc", - "name": { "str": "shattered vacuum-cast carbide arm plate" }, + "name": { "str": "shattered carbide arm plate (exosuit)" }, "description": "The remains of a vacuum-cast carbide arm plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_arm_vcc", "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] @@ -258,7 +258,7 @@ "id": "exo_glove_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "steel exoskeleton glove plate" }, + "name": { "str": "steel glove plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of steel.", "weight": "4293 g", "volume": "1 ml", @@ -277,7 +277,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_glove_steel", - "name": { "str": "plastic exoskeleton glove plate" }, + "name": { "str": "plastic glove plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's glove, this is a plate of plastic.", "weight": "429 g", "volume": "1 ml", @@ -289,7 +289,7 @@ "id": "destroyed_exo_glove_plastic_plate", "type": "ARMOR", "copy-from": "exo_glove_plastic", - "name": { "str": "shattered plastic leg plate" }, + "name": { "str": "shattered plastic leg plate (exosuit)" }, "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_glove_plastic", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] @@ -299,8 +299,8 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_arm_steel", - "name": { "str": "exoskeleton vacuum-cast composite glove plate" }, - "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of vacuum-cast composite.", + "name": { "str": "carbide glove plate (exosuit)" }, + "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of vacuum-cast carbide .", "weight": "5500 g", "volume": "1 ml", "material": [ "vacuum_carbide" ], @@ -311,8 +311,8 @@ "id": "destroyed_exo_glove_vcc_plate", "type": "ARMOR", "copy-from": "exo_glove_vcc", - "name": { "str": "shattered vacuum-cast composite glove plate" }, - "description": "The remains of a vacuum-cast composite glove plate after taking a strong impact. No longer provides functional protection, just weight.", + "name": { "str": "shattered carbide glove plate (exosuit)" }, + "description": "The remains of a vacuum-cast carbide glove plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_glove_vcc", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] }, @@ -320,7 +320,7 @@ "id": "exo_leg_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "steel exoskeleton legs plate" }, + "name": { "str": "steel leg plating (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", "weight": "30053 g", "volume": "8 L", @@ -348,7 +348,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_leg_steel", - "name": { "str": "plastic exoskeleton legs plate" }, + "name": { "str": "plastic leg plating (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are plates of plastic.", "weight": "3003 g", "volume": "8 L", @@ -360,7 +360,7 @@ "id": "destroyed_exo_leg_plastic_plate", "type": "ARMOR", "copy-from": "exo_leg_plastic", - "name": { "str": "shattered plastic leg plate" }, + "name": { "str": "shattered plastic leg plate (exosuit)" }, "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_leg_plastic", "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] @@ -370,7 +370,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_leg_steel", - "name": { "str": "vacuum-cast carbide exoskeleton legs plate" }, + "name": { "str": "carbide leg plating (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of vacuum-cast carbide.", "weight": "38500 g", "volume": "8 L", @@ -382,7 +382,7 @@ "id": "destroyed_exo_leg_vcc_plate", "type": "ARMOR", "copy-from": "exo_leg_vcc", - "name": { "str": "shattered vacuum-cast carbide leg plate" }, + "name": { "str": "shattered carbide leg plate (exosuit)" }, "description": "The remains of a vacuum-cast carbide leg plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_leg_vcc", "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] @@ -391,7 +391,7 @@ "id": "exo_boot_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "steel exoskeleton boot plate" }, + "name": { "str": "steel boot plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of steel.", "weight": "30053 g", "volume": "3250 ml", @@ -409,7 +409,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_boot_steel", - "name": { "str": "plastic exoskeleton boot plate" }, + "name": { "str": "plastic boot plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's boot, this is a plate of plastic.", "weight": "3003 g", "volume": "3250 ml", @@ -421,7 +421,7 @@ "id": "destroyed_exo_boot_plastic_plate", "type": "ARMOR", "copy-from": "exo_boot_plastic", - "name": { "str": "shattered plastic leg plate" }, + "name": { "str": "shattered plastic leg plate (exosuit)" }, "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] }, @@ -430,7 +430,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_boot_steel", - "name": { "str": "vacuum-cast carbide exoskeleton boot plate" }, + "name": { "str": "carbide boot plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of vacuum-cast carbide.", "weight": "38500 g", "volume": "3250 ml", @@ -442,8 +442,8 @@ "id": "destroyed_exo_boot_vcc_plate", "type": "ARMOR", "copy-from": "exo_boot_vcc", - "name": { "str": "shattered military composite boot plate" }, - "description": "The remains of a vacuum-cast carbide boot plate after taking a strong impact. No longer provides functional protection, just weight.", + "name": { "str": "shattered carbide boot plate (exosuit)" }, + "description": "The remains of a carbide boot plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_boot_vcc", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] } diff --git a/data/mods/Aftershock/items/vehicle_items.json b/data/mods/Aftershock/items/vehicle_items.json index 0c5cfa9738580..3ac4dc4774a1f 100644 --- a/data/mods/Aftershock/items/vehicle_items.json +++ b/data/mods/Aftershock/items/vehicle_items.json @@ -21,6 +21,6 @@ "id": "exo_gantry", "copy-from": "vehicle_rig", "name": "exoskeleton maintenance gantry", - "description": "A gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active." + "description": "A vehicle-mounted gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when activated from the vehicle's controls." } ] From 9882ffe1c95c872cd970af76578c9d462a9a5b04 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 30 Dec 2021 10:57:09 -0800 Subject: [PATCH 064/189] Remove gloves and boots Change protection of arms/legs to cover hands/feet. Bumped weight and volume accordingly. --- .../items/armor/modular_exos/exo_recipe.json | 41 ----- .../modular_exos/modular_exoskeleton.json | 60 +------ .../modular_exoskeleton_plating.json | 168 +++--------------- 3 files changed, 23 insertions(+), 246 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json b/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json index 1222714f5f789..71f83ebeee057 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json @@ -58,26 +58,6 @@ "qualities": [ { "id": "CHISEL", "level": 3 } ], "tools": [ [ [ "swage", -1 ] ] ] }, - { - "result": "exo_glove_steel", - "type": "recipe", - "activity_level": "BRISK_EXERCISE", - "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_HANDS", - "skill_used": "fabrication", - "difficulty": 6, - "time": "7 h", - "book_learn": [ [ "exosuit_maintenance", 5 ] ], - "using": [ [ "blacksmithing_standard", 24 ], [ "steel_standard", 6 ], [ "clasps", 2 ] ], - "proficiencies": [ - { "proficiency": "prof_metalworking" }, - { "proficiency": "prof_blacksmithing" }, - { "proficiency": "prof_armorsmithing" }, - { "proficiency": "prof_articulation" } - ], - "qualities": [ { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "swage", -1 ] ] ] - }, { "result": "exo_leg_steel", "type": "recipe", @@ -97,26 +77,5 @@ ], "qualities": [ { "id": "CHISEL", "level": 3 } ], "tools": [ [ [ "swage", -1 ] ] ] - }, - { - "result": "exo_boot_steel", - "type": "recipe", - "activity_level": "BRISK_EXERCISE", - "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_FEET", - "skill_used": "fabrication", - "difficulty": 6, - "time": "8 h", - "book_learn": [ [ "exosuit_maintenance", 4 ] ], - "using": [ [ "blacksmithing_standard", 32 ], [ "steel_standard", 8 ] ], - "proficiencies": [ - { "proficiency": "prof_cobbling" }, - { "proficiency": "prof_metalworking" }, - { "proficiency": "prof_blacksmithing" }, - { "proficiency": "prof_armorsmithing" }, - { "proficiency": "prof_articulation" } - ], - "qualities": [ { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "swage", -1 ] ] ] } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index f937550fb5f25..12ee9ece7f5b4 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -27,8 +27,8 @@ "type": "TOOL_ARMOR", "name": { "str": "exoskeleton frame" }, "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs.", - "weight": "40 kg", - "volume": "130 L", + "weight": "43 kg", + "volume": "135 L", "material": [ "titanium" ], "material_thickness": 2, "power_armor": true, @@ -123,7 +123,7 @@ "moves": 60 } ], - "armor": [ { "encumbrance": 20, "coverage": 100, "covers": [ "torso", "arm_l", "arm_r", "leg_l", "leg_r" ] } ], + "armor": [ { "encumbrance": 20, "coverage": 100, "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] } ], "ammo": "battery", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, @@ -184,59 +184,5 @@ "moves": 60 } ] - }, - { - "id": "exoskeleton_boots", - "type": "ARMOR", - "category": "armor", - "name": { "str_sp": "exoskeleton boots" }, - "description": "This is a pair of exoskeleton boots. Has mounting points for protective plate.", - "weight": "2000 g", - "volume": "3250 ml", - "material": [ "titanium", "plastic" ], - "symbol": "b", - "looks_like": "boots_plate", - "color": "dark_gray", - "power_armor": true, - "material_thickness": 8, - "environmental_protection": 16, - "armor": [ { "encumbrance": 5, "coverage": 100, "covers": [ "foot_l", "foot_r" ] } ], - "flags": [ "WATERPROOF", "STURDY" ], - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "description": "This is a mounting point for boot plating.", - "ablative": true, - "flag_restriction": [ "EXO_BOOT_PLATE" ], - "moves": 60 - } - ] - }, - { - "id": "exoskeleton_gloves", - "type": "ARMOR", - "category": "armor", - "name": { "str_sp": "exoskeleton gloves" }, - "description": "This is a pair of exoskeleton gloves. Has mounting points for protective plate.", - "weight": "1000 g", - "volume": "1500 ml", - "material": [ "titanium", "plastic" ], - "symbol": "g", - "looks_like": "gloves_plate", - "color": "dark_gray", - "power_armor": true, - "material_thickness": 8, - "environmental_protection": 16, - "armor": [ { "encumbrance": 5, "coverage": 100, "covers": [ "hand_l", "hand_r" ] } ], - "flags": [ "WATERPROOF", "STURDY" ], - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "description": "This is a mounting point for glove plating.", - "ablative": true, - "flag_restriction": [ "EXO_GLOVE_PLATE" ], - "moves": 60 - } - ] } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index a9725cc5431da..373e13397193c 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -188,8 +188,8 @@ "category": "armor", "name": { "str": "steel arm plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", - "weight": "25760 g", - "volume": "5500 ml", + "weight": "30 g", + "volume": "6500 ml", "material": [ "steel" ], "symbol": "[", "looks_like": "armguard_lightplate", @@ -199,13 +199,12 @@ "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_ARM_PLATE" ], "armor": [ { - "covers": [ "arm_l", "arm_r" ], + "covers": [ "arm_l", "arm_r", "hand_l", "hand_r" ], "encumbrance": 16, "coverage": 95, "cover_melee": 95, "cover_ranged": 95, - "cover_vitals": 90, - "specifically_covers": [ "arm_lower_r", "arm_lower_l", "arm_elbow_r", "arm_elbow_l", "arm_upper_r", "arm_upper_l" ] + "cover_vitals": 90 } ] }, @@ -216,8 +215,8 @@ "copy-from": "exo_arm_steel", "name": { "str": "plastic arm plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are plates of plastic.", - "weight": "2574 g", - "volume": "5500 ml", + "weight": "3000 g", + "volume": "1500 ml", "material": [ "plastic" ], "material_thickness": 3, "non_functional": "destroyed_exo_arm_plastic_plate" @@ -229,8 +228,7 @@ "name": { "str": "shattered plastic arm plate (exosuit)" }, "description": "The remains of a plastic arm plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_arm_plastic", - "material_thickness": 3, - "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] + "material_thickness": 3 }, { "id": "exo_arm_vcc", @@ -239,8 +237,8 @@ "copy-from": "exo_arm_steel", "name": { "str": "carbide arm plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of vacuum-cast carbide.", - "weight": "33000 g", - "volume": "5500 ml", + "weight": "38000 g", + "volume": "1500 ml", "material": [ "vacuum_carbide" ], "material_thickness": 6, "non_functional": "destroyed_exo_arm_vcc_plate" @@ -251,70 +249,7 @@ "copy-from": "exo_arm_vcc", "name": { "str": "shattered carbide arm plate (exosuit)" }, "description": "The remains of a vacuum-cast carbide arm plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_arm_vcc", - "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] - }, - { - "id": "exo_glove_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "steel glove plate (exosuit)" }, - "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of steel.", - "weight": "4293 g", - "volume": "1 ml", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "gloves_plate", - "color": "light_gray", - "warmth": 20, - "sided": true, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] - }, - { - "id": "exo_glove_plastic", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_glove_steel", - "name": { "str": "plastic glove plate (exosuit)" }, - "description": "Designed to attach to an exoskeleton's glove, this is a plate of plastic.", - "weight": "429 g", - "volume": "1 ml", - "material": [ "plastic" ], - "material_thickness": 3, - "non_functional": "destroyed_exo_glove_plastic_plate" - }, - { - "id": "destroyed_exo_glove_plastic_plate", - "type": "ARMOR", - "copy-from": "exo_glove_plastic", - "name": { "str": "shattered plastic leg plate (exosuit)" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_glove_plastic", - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] - }, - { - "id": "exo_glove_vcc", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_arm_steel", - "name": { "str": "carbide glove plate (exosuit)" }, - "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of vacuum-cast carbide .", - "weight": "5500 g", - "volume": "1 ml", - "material": [ "vacuum_carbide" ], - "material_thickness": 6, - "non_functional": "destroyed_exo_glove_vcc_plate" - }, - { - "id": "destroyed_exo_glove_vcc_plate", - "type": "ARMOR", - "copy-from": "exo_glove_vcc", - "name": { "str": "shattered carbide glove plate (exosuit)" }, - "description": "The remains of a vacuum-cast carbide glove plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_glove_vcc", - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] + "looks_like": "exo_arm_vcc" }, { "id": "exo_leg_steel", @@ -322,8 +257,8 @@ "category": "armor", "name": { "str": "steel leg plating (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", - "weight": "30053 g", - "volume": "8 L", + "weight": "33000 g", + "volume": "10 L", "material": [ "steel" ], "symbol": "L", "looks_like": "legguard_lightplate", @@ -333,13 +268,12 @@ "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_LEG_PLATE" ], "armor": [ { - "covers": [ "leg_l", "leg_r" ], + "covers": [ "leg_l", "leg_r", "leg_l", "leg_r" ], "encumbrance": 8, "coverage": 95, "cover_melee": 95, "cover_ranged": 95, - "cover_vitals": 90, - "specifically_covers": [ "leg_lower_r", "leg_lower_l", "leg_knee_r", "leg_knee_l", "leg_upper_r", "leg_upper_l" ] + "cover_vitals": 90 } ] }, @@ -350,8 +284,8 @@ "copy-from": "exo_leg_steel", "name": { "str": "plastic leg plating (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are plates of plastic.", - "weight": "3003 g", - "volume": "8 L", + "weight": "6000 g", + "volume": "10 L", "material": [ "plastic" ], "material_thickness": 3, "non_functional": "destroyed_exo_leg_plastic_plate" @@ -362,8 +296,7 @@ "copy-from": "exo_leg_plastic", "name": { "str": "shattered plastic leg plate (exosuit)" }, "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_leg_plastic", - "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] + "looks_like": "exo_leg_plastic" }, { "id": "exo_leg_vcc", @@ -372,8 +305,8 @@ "copy-from": "exo_leg_steel", "name": { "str": "carbide leg plating (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of vacuum-cast carbide.", - "weight": "38500 g", - "volume": "8 L", + "weight": "41000 g", + "volume": "10 L", "material": [ "vacuum_carbide" ], "material_thickness": 6, "non_functional": "destroyed_exo_leg_vcc_plate" @@ -384,67 +317,6 @@ "copy-from": "exo_leg_vcc", "name": { "str": "shattered carbide leg plate (exosuit)" }, "description": "The remains of a vacuum-cast carbide leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_leg_vcc", - "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] - }, - { - "id": "exo_boot_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "steel boot plate (exosuit)" }, - "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of steel.", - "weight": "30053 g", - "volume": "3250 ml", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "boots_plate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_BOOT_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] - }, - { - "id": "exo_boot_plastic", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_boot_steel", - "name": { "str": "plastic boot plate (exosuit)" }, - "description": "Designed to attach to an exoskeleton's boot, this is a plate of plastic.", - "weight": "3003 g", - "volume": "3250 ml", - "material": [ "plastic" ], - "material_thickness": 3, - "non_functional": "destroyed_exo_boot_plastic_plate" - }, - { - "id": "destroyed_exo_boot_plastic_plate", - "type": "ARMOR", - "copy-from": "exo_boot_plastic", - "name": { "str": "shattered plastic leg plate (exosuit)" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] - }, - { - "id": "exo_boot_vcc", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_boot_steel", - "name": { "str": "carbide boot plate (exosuit)" }, - "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of vacuum-cast carbide.", - "weight": "38500 g", - "volume": "3250 ml", - "material": [ "vacuum_carbide" ], - "material_thickness": 6, - "non_functional": "destroyed_exo_boot_vcc_plate" - }, - { - "id": "destroyed_exo_boot_vcc_plate", - "type": "ARMOR", - "copy-from": "exo_boot_vcc", - "name": { "str": "shattered carbide boot plate (exosuit)" }, - "description": "The remains of a carbide boot plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_boot_vcc", - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] + "looks_like": "exo_leg_vcc" } ] From fb9b28a3140ab55689a0b10a475cc830b5bf7b69 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 30 Dec 2021 11:01:58 -0800 Subject: [PATCH 065/189] Update modular_exoskeleton_storage.json --- .../modular_exos/modular_exoskeleton_storage.json | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 027a511aae8a1..71b6d098fc04f 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -11,8 +11,7 @@ "flags": [ "WATER_FRIENDLY", "NO_QUICKDRAW", "EXO_LARGE_GADGET" ], "symbol": "[", "looks_like": "slingpack", - "color": "light_gray", - "armor": [ { "encumbrance": [ 2, 6 ], "coverage": 20, "covers": [ "torso" ] } ] + "color": "light_gray" }, { "id": "exo_melee_storage", @@ -28,8 +27,7 @@ "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], "symbol": "[", "looks_like": "bscabbard", - "color": "light_gray", - "armor": [ { "encumbrance": [ 6, 10 ], "coverage": 20, "covers": [ "torso" ] } ] + "color": "light_gray" }, { "id": "exo_large_storage", @@ -43,8 +41,7 @@ "material": [ "kevlar", "plastic" ], "flags": [ "WATER_FRIENDLY", "EXO_LARGE_GADGET" ], "symbol": "[", - "looks_like": "backpack", - "armor": [ { "encumbrance": [ 10, 55 ], "coverage": 50, "covers": [ "torso" ] } ] + "looks_like": "backpack" }, { "id": "exo_medium_storage", @@ -89,8 +86,7 @@ "material": [ "nylon" ], "symbol": "[", "color": "dark_gray", - "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], - "armor": [ { "encumbrance": [ 2, 5 ], "coverage": 0 } ] + "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ] }, { "id": "exo_small_ammo_pouch", @@ -100,7 +96,6 @@ "description": "A set of pouches that attach to a hardpoint.", "symbol": "[", "color": "dark_gray", - "flags": [ "WATER_FRIENDLY", "EXO_SMALL_GADGET" ], - "armor": [ { "encumbrance": [ 2, 5 ], "covers": [ "leg_l", "leg_r" ], "specifically_covers": [ "leg_upper_r", "leg_upper_l" ] } ] + "flags": [ "WATER_FRIENDLY", "EXO_SMALL_GADGET" ] } ] From 5850555bc736d8bdb7377b9e8e95256cbec26577 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 30 Dec 2021 11:40:53 -0800 Subject: [PATCH 066/189] Categories Adds "EXOSUIT" category, flagged modules and plating. --- data/json/item_category.json | 7 +++++ .../modular_exoskeleton_modules.json | 24 +++++++-------- .../modular_exoskeleton_plating.json | 30 +++++++++---------- 3 files changed, 34 insertions(+), 27 deletions(-) diff --git a/data/json/item_category.json b/data/json/item_category.json index 4e7ad15750355..5940ada5153b3 100644 --- a/data/json/item_category.json +++ b/data/json/item_category.json @@ -176,6 +176,13 @@ "zone": "LOOT_ARMOR", "sort_rank": 20 }, + { + "id": "exosuit", + "type": "ITEM_CATEGORY", + "name": { "str": "EXOSUIT" }, + "zone": "LOOT_EXOSUIT", + "sort_rank": 20 + }, { "id": "ITEMS_WORN", "type": "ITEM_CATEGORY", diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 4f58812278cf2..59105a0d03bd5 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -2,7 +2,7 @@ { "id": "exo_back_battery_rechargable", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "exoskeleton power supply unit" }, "description": "Designed to attach to an exoskeleton's back, this is a large rechargable battery with an integrated UPS.", "weight": "15 kg", @@ -31,7 +31,7 @@ { "id": "exo_back_gasoline", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "exoskeleton ICE power supply", "str_pl": "exoskeleton ICE power supplies" }, "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS. This unit is large and occupies the rear hardpoints.", "weight": "20 kg", @@ -66,7 +66,7 @@ { "id": "exo_large_aux_power", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "exoskeleton auxiliary battery", "str_pl": "exoskeleton auxiliary batteries" }, "description": "This is a large rechargable auxiliary power unit that attaches to an exoskeleton hardpoint.", "weight": "5 kg", @@ -82,7 +82,7 @@ { "id": "exo_small_aux_power", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "exoskeleton small auxiliary battery", "str_pl": "exoskeleton small auxiliary batteries" }, "description": "This is a small rechargable auxiliary power unit that attaches to an exoskeleton hardpoint.", "weight": "2 kg", @@ -98,7 +98,7 @@ { "id": "exo_large_carry", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "exoskeleton large load support module (off)", "str_pl": "exoskeleton large load support modules (off)" }, "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power consumption.", "weight": "10 kg", @@ -125,7 +125,7 @@ { "id": "exo_large_carry_on", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "exoskeleton large load support module (on)", "str_pl": "exoskeleton large load support modules (on)" }, "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power consumption. It is turned on and continually drawing power. Use it to turn it off.", "weight": "10 kg", @@ -152,7 +152,7 @@ { "id": "exo_small_carry", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "exoskeleton small load support module (off)", "str_pl": "exoskeleton small load support modules (off)" }, "description": "This module increases the exoskeleton's weight bearing at the cost of increased power consumption.", "weight": "2 kg", @@ -179,7 +179,7 @@ { "id": "exo_small_carry_on", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "exoskeleton small load support module (on)", "str_pl": "exoskeleton small load support modules (on)" }, "description": "This module increases the exoskeleton's weight bearing at the cost of increased power consumption. It is turned on and continually drawing power. Use it to turn it off.", "weight": "2 kg", @@ -206,7 +206,7 @@ { "id": "exo_flashlight", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "mounted lamp (off)", "str_pl": "mounted lamps (off)" }, "description": "This is a light that can be secured to an exoskeleton hardpoint. It has two levels of brightness.", "weight": "500 g", @@ -261,7 +261,7 @@ { "id": "exo_hearing", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str_sp": "audio protection (off)" }, "description": "This is an audio protection exoskeleton module. While active, it also protects your hearing from loud noises.", "weight": "500 g", @@ -300,7 +300,7 @@ { "id": "exo_recoil", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "recoil mitigation system (off)", "str_pl": "recoil mitigation systems (off)" }, "description": "This module takes partial control of the exoskeleton while firing, damping recoil. Activate before firing.", "weight": "500 g", @@ -345,7 +345,7 @@ { "id": "exo_optics", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "symbol": "8", "color": "light_gray", "name": { "str_sp": "exoskeleton enhanced optics (off)" }, diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 373e13397193c..6c3c44ef0708a 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -2,7 +2,7 @@ { "id": "exo_helmet_steel", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "steel helmet plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of steel.", "weight": "12880 g", @@ -19,7 +19,7 @@ { "id": "exo_helmet_plastic", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "copy-from": "exo_helmet_steel", "name": { "str": "plastic helmet plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's helmet, this is a plate of plastic.", @@ -41,7 +41,7 @@ { "id": "exo_helmet_vcc", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "copy-from": "exo_helmet_steel", "name": { "str": "carbide helmet plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's helmet, this is a plate of vacuum-cast carbide.", @@ -63,7 +63,7 @@ { "id": "exo_torso_steel", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "steel torso plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", "weight": "34347 g", @@ -80,7 +80,7 @@ { "id": "exo_torso_plastic", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "copy-from": "exo_torso_steel", "name": { "str": "plastic torso plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's torso, this is a plate of plastic.", @@ -103,7 +103,7 @@ { "id": "exo_torso_vcc", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "copy-from": "exo_torso_steel", "name": { "str": "carbide torso plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of vacuum-cast carbide.", @@ -124,7 +124,7 @@ { "id": "exo_psu_steel", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "steel PSU plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of steel.", "weight": "42933 g", @@ -141,7 +141,7 @@ { "id": "exo_psu_plastic", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "copy-from": "exo_psu_steel", "name": { "str": "plastic PSU plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a plate of plastic.", @@ -163,7 +163,7 @@ { "id": "exo_psu_vcc", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "copy-from": "exo_psu_steel", "name": { "str": "carbide PSU plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of vacuum-cast carbide.", @@ -185,7 +185,7 @@ { "id": "exo_arm_steel", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "steel arm plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", "weight": "30 g", @@ -211,7 +211,7 @@ { "id": "exo_arm_plastic", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "copy-from": "exo_arm_steel", "name": { "str": "plastic arm plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are plates of plastic.", @@ -233,7 +233,7 @@ { "id": "exo_arm_vcc", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "copy-from": "exo_arm_steel", "name": { "str": "carbide arm plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of vacuum-cast carbide.", @@ -254,7 +254,7 @@ { "id": "exo_leg_steel", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "steel leg plating (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", "weight": "33000 g", @@ -280,7 +280,7 @@ { "id": "exo_leg_plastic", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "copy-from": "exo_leg_steel", "name": { "str": "plastic leg plating (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are plates of plastic.", @@ -301,7 +301,7 @@ { "id": "exo_leg_vcc", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "copy-from": "exo_leg_steel", "name": { "str": "carbide leg plating (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of vacuum-cast carbide.", From 124644c54a8beacdefb916437acf239359910f79 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 30 Dec 2021 12:04:55 -0800 Subject: [PATCH 067/189] Update modular_exoskeleton.json --- .../items/armor/modular_exos/modular_exoskeleton.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 12ee9ece7f5b4..49b47b7f0bc3a 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -123,7 +123,13 @@ "moves": 60 } ], - "armor": [ { "encumbrance": 20, "coverage": 100, "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] } ], + "armor": [ + { + "encumbrance": 20, + "coverage": 100, + "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] + } + ], "ammo": "battery", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, From b0d5bdbd91adff5f310e27107d1ed47d474d9dbd Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 30 Dec 2021 12:51:43 -0800 Subject: [PATCH 068/189] Update modular_exoskeleton_storage.json --- .../modular_exos/modular_exoskeleton_storage.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 71b6d098fc04f..861bdfd22c803 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -3,7 +3,7 @@ "id": "exo_rifle_storage", "copy-from": "back_holster", "type": "ARMOR", - "name": { "str": "large storage pouch", "str_pl": "large storage pouches" }, + "name": { "str": "large storage pouch (exosuit)", "str_pl": "large storage pouches (exosuit)" }, "description": "A hardpoint for storing a rifle. Activate to holster/draw a gun.", "weight": "454 g", "volume": "2 L", @@ -17,7 +17,7 @@ "id": "exo_melee_storage", "copy-from": "bscabbard", "type": "ARMOR", - "name": { "str_sp": "exoskeleton scabbard" }, + "name": { "str_sp": scabbard (exosuit)" }, "description": "A metallic scabbard mountable on an exoskeleton hard point. Can be activated to sheath or draw a sword.", "weight": "454 g", "volume": "2 L", @@ -34,7 +34,7 @@ "copy-from": "backpack_tactical_large", "repairs_like": "backpack_tactical_large", "type": "ARMOR", - "name": { "str": "exoskeleton large storage pack" }, + "name": { "str": large storage pack (exosuit)" }, "description": "A large storage pack, mountable on a hardpoint.", "weight": "2291 g", "volume": "15 L", @@ -48,7 +48,7 @@ "copy-from": "fanny", "repairs_like": "fanny", "type": "ARMOR", - "name": { "str": "exoskeleton medium pouch", "str_pl": "exoskeleton medium pouches" }, + "name": { "str": medium pouch (exosuit)", "str_pl": medium pouches (exosuit)" }, "description": "A medium storage pouch, mountable on a hardpoint.", "weight": "275 g", "volume": "2500 ml", @@ -63,7 +63,7 @@ "copy-from": "leather_pouch", "repairs_like": "fanny", "type": "ARMOR", - "name": { "str": "exoskeleton small pouch", "str_pl": "exoskeleton small pouches" }, + "name": { "str": small pouch (exosuit)", "str_pl": small pouches (exosuit)" }, "description": "A small storage pouch, mountable on a hardpoint.", "weight": "125 g", "volume": "1050 ml", @@ -77,7 +77,7 @@ "copy-from": "tacvest", "looks_like": "tacvest", "type": "ARMOR", - "name": { "str_sp": "exoskeleton large ammo pouches" }, + "name": { "str_sp": large ammo pouches (exosuit)" }, "description": "A set of pouches that attach to a hardpoint.", "weight": "205 g", "volume": "1050 ml", @@ -92,7 +92,7 @@ "id": "exo_small_ammo_pouch", "copy-from": "legrig", "type": "ARMOR", - "name": { "str_sp": "exoskeleton small ammo pouches" }, + "name": { "str_sp": small ammo pouches (exosuit)" }, "description": "A set of pouches that attach to a hardpoint.", "symbol": "[", "color": "dark_gray", From baa4687120e029b21ba7cd0f4e0b50e2b9c8e87c Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 30 Dec 2021 14:14:20 -0800 Subject: [PATCH 069/189] Update modular_exoskeleton_storage.json --- .../modular_exos/modular_exoskeleton_storage.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 861bdfd22c803..cc6c60d7a797e 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -17,7 +17,7 @@ "id": "exo_melee_storage", "copy-from": "bscabbard", "type": "ARMOR", - "name": { "str_sp": scabbard (exosuit)" }, + "name": { "str_sp": "scabbard (exosuit)" }, "description": "A metallic scabbard mountable on an exoskeleton hard point. Can be activated to sheath or draw a sword.", "weight": "454 g", "volume": "2 L", @@ -34,7 +34,7 @@ "copy-from": "backpack_tactical_large", "repairs_like": "backpack_tactical_large", "type": "ARMOR", - "name": { "str": large storage pack (exosuit)" }, + "name": { "str": "large storage pack (exosuit)" }, "description": "A large storage pack, mountable on a hardpoint.", "weight": "2291 g", "volume": "15 L", @@ -48,7 +48,7 @@ "copy-from": "fanny", "repairs_like": "fanny", "type": "ARMOR", - "name": { "str": medium pouch (exosuit)", "str_pl": medium pouches (exosuit)" }, + "name": { "str": "medium pouch (exosuit)", "str_pl": "medium pouches (exosuit)" }, "description": "A medium storage pouch, mountable on a hardpoint.", "weight": "275 g", "volume": "2500 ml", @@ -63,7 +63,7 @@ "copy-from": "leather_pouch", "repairs_like": "fanny", "type": "ARMOR", - "name": { "str": small pouch (exosuit)", "str_pl": small pouches (exosuit)" }, + "name": { "str": "small pouch (exosuit)", "str_pl": "small pouches (exosuit)" }, "description": "A small storage pouch, mountable on a hardpoint.", "weight": "125 g", "volume": "1050 ml", @@ -77,7 +77,7 @@ "copy-from": "tacvest", "looks_like": "tacvest", "type": "ARMOR", - "name": { "str_sp": large ammo pouches (exosuit)" }, + "name": { "str_sp": "large ammo pouches (exosuit)" }, "description": "A set of pouches that attach to a hardpoint.", "weight": "205 g", "volume": "1050 ml", @@ -92,7 +92,7 @@ "id": "exo_small_ammo_pouch", "copy-from": "legrig", "type": "ARMOR", - "name": { "str_sp": small ammo pouches (exosuit)" }, + "name": { "str_sp": "small ammo pouches (exosuit)" }, "description": "A set of pouches that attach to a hardpoint.", "symbol": "[", "color": "dark_gray", From 5a4e666ee6c0ff228893b81a210edf3cba74405a Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sun, 2 Jan 2022 01:16:58 -0800 Subject: [PATCH 070/189] Add "MANAGE_EXOSUIT" use action. Takes advantage of #53964 to clean up exosuit UI. --- .../items/armor/modular_exos/modular_exoskeleton.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 49b47b7f0bc3a..0ea944593da33 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -133,14 +133,16 @@ "ammo": "battery", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, - "use_action": { + "use_action": [ + { "target": "modular_exoskeleton_on", "msg": "The %s engages.", "active": true, "need_charges": 1, "need_charges_msg": "The suit does not have enough charge.", "type": "transform" - } + }, + {"MANAGE_EXOSUIT"} }, { "id": "modular_exoskeleton_on", From f17ed0b9f08b360586f85656b6daed91f5f29211 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:19:58 -0800 Subject: [PATCH 071/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../Aftershock/items/armor/modular_exos/modular_exoskeleton.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 0ea944593da33..a5463677f2782 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -38,6 +38,7 @@ "pocket_data": [ { "pocket_type": "CONTAINER", + "name": "Torso compartment (Plate)", "description": "This is a mounting point for torso armor.", "ablative": true, "rigid": true, From dca05af5b0e59b85a795657b57a4c93bf8a3ef1b Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:20:04 -0800 Subject: [PATCH 072/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../Aftershock/items/armor/modular_exos/modular_exoskeleton.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index a5463677f2782..37b5fa1c63e47 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -49,6 +49,7 @@ }, { "pocket_type": "CONTAINER", + "name": "Torso compartment (Gadget)", "description": "This is a mount for storing items in the torso.", "rigid": true, "max_contains_volume": "2 L", From 9d808e88b519c171945d29318fdd452050a833e3 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:20:10 -0800 Subject: [PATCH 073/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../Aftershock/items/armor/modular_exos/modular_exoskeleton.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 37b5fa1c63e47..6a3415b9d4690 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -59,6 +59,7 @@ }, { "pocket_type": "CONTAINER", + "name": "PSU compartment", "description": "This is a mounting point for power supply units and large modules.", "rigid": true, "max_contains_volume": "25 L", From 01de1b5645181f79b670d0376139a3800aa9392b Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:20:16 -0800 Subject: [PATCH 074/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../Aftershock/items/armor/modular_exos/modular_exoskeleton.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 6a3415b9d4690..530e57f42ef6e 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -69,6 +69,7 @@ }, { "pocket_type": "CONTAINER", + "name": "Arm compartment (Plate)", "description": "This is a mounting point for arm armor.", "ablative": true, "rigid": true, From 99e963641d22f35fa4d9c82b79db3011dac7f4f4 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:20:23 -0800 Subject: [PATCH 075/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../Aftershock/items/armor/modular_exos/modular_exoskeleton.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 530e57f42ef6e..e11d2c5a07bd7 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -81,6 +81,7 @@ }, { "pocket_type": "CONTAINER", + "name": "Arm compartment 1 (Gadget)", "description": "This is a mount for storing items on the arms.", "rigid": true, "max_contains_volume": "2 L", From 94cf49d82368c0cb34de8e4d35c15ece43180a06 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:20:32 -0800 Subject: [PATCH 076/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../Aftershock/items/armor/modular_exos/modular_exoskeleton.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index e11d2c5a07bd7..6ecac2e4884a4 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -91,6 +91,7 @@ }, { "pocket_type": "CONTAINER", + "name": "Arm compartment 2 (Gadget)", "description": "This is a mount for storing items on the arms.", "rigid": true, "max_contains_volume": "2 L", From a4c68ed189941797899eeed612d3a9777d26ce82 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:22:12 -0800 Subject: [PATCH 077/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../Aftershock/items/armor/modular_exos/modular_exoskeleton.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 6ecac2e4884a4..ecb12337040ca 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -101,6 +101,7 @@ }, { "pocket_type": "CONTAINER", + "name": "Leg compartment (Plate)", "description": "This is a mounting point for leg armor.", "ablative": true, "rigid": true, From 6ea7d8a569c1f354c470e13e87b9600e56c21412 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:22:29 -0800 Subject: [PATCH 078/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../Aftershock/items/armor/modular_exos/modular_exoskeleton.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index ecb12337040ca..2a643dd9cb051 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -113,6 +113,7 @@ }, { "pocket_type": "CONTAINER", + "name": "Leg compartment 1 (Gadget)", "description": "This is a mount for storing items on the legs.", "rigid": true, "max_contains_volume": "2 L", From a8ee7decbb4fedbd9ef7449ee536e19f22ebda29 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:22:39 -0800 Subject: [PATCH 079/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../Aftershock/items/armor/modular_exos/modular_exoskeleton.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 2a643dd9cb051..6dfe0aab2110f 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -123,6 +123,7 @@ }, { "pocket_type": "CONTAINER", + "name": "Leg compartment 2 (Gadget)", "description": "This is a mount for storing items on the legs.", "rigid": true, "max_contains_volume": "2 L", From ba8e5a996c71d298d14286fd078ac53793c0fadd Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:23:15 -0800 Subject: [PATCH 080/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../items/armor/modular_exos/modular_exoskeleton.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 6dfe0aab2110f..e04d33b1f5042 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -142,16 +142,15 @@ "ammo": "battery", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, - "use_action": [ - { + + "use_action": [ { "target": "modular_exoskeleton_on", "msg": "The %s engages.", "active": true, "need_charges": 1, "need_charges_msg": "The suit does not have enough charge.", "type": "transform" - }, - {"MANAGE_EXOSUIT"} + }, "MANAGE_EXOSUIT" ] }, { "id": "modular_exoskeleton_on", From 587ec32731a7e64be3a29f567d9586d3dce49422 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:23:29 -0800 Subject: [PATCH 081/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../items/armor/modular_exos/modular_exoskeleton.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index e04d33b1f5042..ba1db2b401069 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -164,7 +164,12 @@ "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, "power_draw": 7123, "revert_to": "modular_exoskeleton", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exoskeleton" } + "use_action": [ { + "type": "transform", + "menu_text": "Turn off", + "msg": "The %s disengages.", + "target": "modular_exoskeleton" + }, "MANAGE_EXOSUIT" ] }, { "id": "exoskeleton_helmet", From 72f3d3f1d413550132374ad9f38984874127b171 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 10 Jan 2022 15:26:45 -0800 Subject: [PATCH 082/189] Linting --- .../modular_exos/modular_exoskeleton.json | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index ba1db2b401069..694bd6122f720 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -142,6 +142,7 @@ "ammo": "battery", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, +<<<<<<< HEAD "use_action": [ { "target": "modular_exoskeleton_on", @@ -151,6 +152,19 @@ "need_charges_msg": "The suit does not have enough charge.", "type": "transform" }, "MANAGE_EXOSUIT" ] +======= + "use_action": [ + { + "target": "modular_exoskeleton_on", + "msg": "The %s engages.", + "active": true, + "need_charges": 1, + "need_charges_msg": "The suit does not have enough charge.", + "type": "transform" + }, + "MANAGE_EXOSUIT" + ] +>>>>>>> 81e89c11af (Linting) }, { "id": "modular_exoskeleton_on", @@ -164,12 +178,10 @@ "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, "power_draw": 7123, "revert_to": "modular_exoskeleton", - "use_action": [ { - "type": "transform", - "menu_text": "Turn off", - "msg": "The %s disengages.", - "target": "modular_exoskeleton" - }, "MANAGE_EXOSUIT" ] + "use_action": [ + { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exoskeleton" }, + "MANAGE_EXOSUIT" + ] }, { "id": "exoskeleton_helmet", From 9776982e80387cbf127abda810da2aa16bc06f4a Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 13 Jan 2022 11:34:21 -0800 Subject: [PATCH 083/189] Delete exo_recipe.json --- .../items/armor/modular_exos/exo_recipe.json | 81 ------------------- 1 file changed, 81 deletions(-) delete mode 100644 data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json b/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json deleted file mode 100644 index 71f83ebeee057..0000000000000 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json +++ /dev/null @@ -1,81 +0,0 @@ -[ - { - "result": "exo_helmet_steel", - "type": "recipe", - "activity_level": "BRISK_EXERCISE", - "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_HEAD", - "skill_used": "fabrication", - "difficulty": 7, - "time": "9 h", - "book_learn": [ [ "exosuit_maintenance", 6 ] ], - "using": [ [ "blacksmithing_standard", 56 ], [ "steel_standard", 14 ] ], - "proficiencies": [ - { "proficiency": "prof_metalworking" }, - { "proficiency": "prof_blacksmithing" }, - { "proficiency": "prof_armorsmithing" } - ], - "qualities": [ { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ] - }, - { - "result": "exo_torso_steel", - "type": "recipe", - "activity_level": "BRISK_EXERCISE", - "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_TORSO", - "skill_used": "fabrication", - "difficulty": 8, - "time": "9 h", - "book_learn": [ [ "exosuit_maintenance", 7 ] ], - "using": [ [ "blacksmithing_standard", 32 ], [ "steel_standard", 8 ] ], - "proficiencies": [ - { "proficiency": "prof_armorsmithing" }, - { "proficiency": "prof_metalworking" }, - { "proficiency": "prof_blacksmithing" } - ], - "qualities": [ { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "swage", -1 ] ] ] - }, - { - "result": "exo_psu_steel", - "type": "recipe", - "activity_level": "BRISK_EXERCISE", - "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_ARMS", - "skill_used": "fabrication", - "difficulty": 7, - "skills_required": [ [ "tailor", 3 ] ], - "time": "900 m", - "book_learn": [ [ "exosuit_maintenance", 6 ] ], - "using": [ [ "blacksmithing_standard", 24 ], [ "steel_standard", 2 ] ], - "proficiencies": [ - { "proficiency": "prof_metalworking" }, - { "proficiency": "prof_blacksmithing" }, - { "proficiency": "prof_armorsmithing" }, - { "proficiency": "prof_articulation" } - ], - "qualities": [ { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "swage", -1 ] ] ] - }, - { - "result": "exo_leg_steel", - "type": "recipe", - "activity_level": "BRISK_EXERCISE", - "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_LEGS", - "skill_used": "fabrication", - "difficulty": 8, - "time": "190 m", - "book_learn": [ [ "exosuit_maintenance", 6 ] ], - "using": [ [ "blacksmithing_standard", 28 ], [ "steel_standard", 7 ], [ "clasps", 4 ] ], - "proficiencies": [ - { "proficiency": "prof_metalworking" }, - { "proficiency": "prof_blacksmithing" }, - { "proficiency": "prof_armorsmithing" }, - { "proficiency": "prof_articulation" } - ], - "qualities": [ { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "swage", -1 ] ] ] - } -] From 8c0927802e69a6fbd46fcaf34670abd103cc2d02 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 13 Jan 2022 22:11:42 -0800 Subject: [PATCH 084/189] Single/plurals --- .../modular_exoskeleton_plating.json | 20 +++++++++---------- data/mods/Aftershock/items/vehicle_items.json | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 6c3c44ef0708a..c7e1767c6787a 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -3,7 +3,7 @@ "id": "exo_helmet_steel", "type": "ARMOR", "category": "exosuit", - "name": { "str": "steel helmet plate (exosuit)" }, + "name": { "str": "steel helmet plate (exosuit)", "str_pl": "steel helmet plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of steel.", "weight": "12880 g", "volume": "5 L", @@ -21,7 +21,7 @@ "type": "ARMOR", "category": "exosuit", "copy-from": "exo_helmet_steel", - "name": { "str": "plastic helmet plate (exosuit)" }, + "name": { "str": "plastic helmet plate (exosuit)", "str_pl": "plastic helmet plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's helmet, this is a plate of plastic.", "weight": "1287 g", "material": [ "plastic" ], @@ -33,7 +33,7 @@ "id": "destroyed_exo_helmet_plastic_plate", "type": "ARMOR", "copy-from": "exo_helmet_plastic", - "name": { "str": "shattered plastic helmet plate (exosuit)" }, + "name": { "str": "shattered plastic helmet plate (exosuit)", "str_pl": "shattered plastic helmet plates (exosuit)" }, "description": "The remains of a plastic helmet plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_helmet_plastic", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] @@ -43,7 +43,7 @@ "type": "ARMOR", "category": "exosuit", "copy-from": "exo_helmet_steel", - "name": { "str": "carbide helmet plate (exosuit)" }, + "name": { "str": "carbide helmet plate (exosuit)", "str_pl": "carbide helmet plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's helmet, this is a plate of vacuum-cast carbide.", "weight": "1287 g", "material": [ "vacuum_carbide" ], @@ -55,7 +55,7 @@ "id": "destroyed_exo_helmet_vcc_plate", "type": "ARMOR", "copy-from": "exo_helmet_plastic", - "name": { "str": "shattered carbide helmet plate (exosuit)" }, + "name": { "str": "shattered carbide helmet plate (exosuit)", "str_pl": "shattered carbide helmet plates (exosuit)" }, "description": "The remains of a vacuum-cast carbide helmet plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_helmet_vcc", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] @@ -64,7 +64,7 @@ "id": "exo_torso_steel", "type": "ARMOR", "category": "exosuit", - "name": { "str": "steel torso plate (exosuit)" }, + "name": { "str": "steel torso plate (exosuit)", "str_pl": "steel torso plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", "weight": "34347 g", "volume": "8 L", @@ -82,7 +82,7 @@ "type": "ARMOR", "category": "exosuit", "copy-from": "exo_torso_steel", - "name": { "str": "plastic torso plate (exosuit)" }, + "name": { "str": "plastic torso plate (exosuit)", "str_pl": "plastic torso plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's torso, this is a plate of plastic.", "weight": "3432 g", "volume": "8 L", @@ -94,7 +94,7 @@ "id": "destroyed_exo_torso_plastic_plate", "type": "ARMOR", "copy-from": "exo_torso_plastic", - "name": { "str": "shattered plastic torso plate (exosuit)" }, + "name": { "str": "shattered plastic torso plate (exosuit)", "str_pl": "shattered plastic torso plates (exosuit)" }, "description": "The remains of a plastic torso plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_torso_plastic", "material_thickness": 3, @@ -105,7 +105,7 @@ "type": "ARMOR", "category": "exosuit", "copy-from": "exo_torso_steel", - "name": { "str": "carbide torso plate (exosuit)" }, + "name": { "str": "carbide torso plate (exosuit)", "str_pl": "carbide torso plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of vacuum-cast carbide.", "weight": "44000 g", "volume": "8 L", @@ -117,7 +117,7 @@ "id": "destroyed_exo_torso_vcc_plate", "type": "ARMOR", "copy-from": "exo_torso_vcc", - "name": { "str": "shattered carbide torso plate (exosuit)" }, + "name": { "str": "shattered carbide torso plate (exosuit)", "str_pl": "shattered carbide torso plates (exosuit)" }, "description": "The remains of a vacuum-cast carbide torso plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_torso_vcc" }, diff --git a/data/mods/Aftershock/items/vehicle_items.json b/data/mods/Aftershock/items/vehicle_items.json index 3ac4dc4774a1f..5836775d16410 100644 --- a/data/mods/Aftershock/items/vehicle_items.json +++ b/data/mods/Aftershock/items/vehicle_items.json @@ -21,6 +21,6 @@ "id": "exo_gantry", "copy-from": "vehicle_rig", "name": "exoskeleton maintenance gantry", - "description": "A vehicle-mounted gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when activated from the vehicle's controls." + "description": "A vehicle-mounted gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when activated from the vehicle's controls." } ] From 5d812f922f276794e0b90b720013b1805ae8049c Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sat, 15 Jan 2022 01:47:27 -0800 Subject: [PATCH 085/189] Bump tests --- data/mods/Aftershock/items/armor/modular_exos/exo_gear.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index a6b12ca58aac0..12e77f536afe6 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -1,6 +1,6 @@ [ { - "id": "exo_mounted_drill", + "id": "exo_mounted_drill ", "type": "TOOL_ARMOR", "name": { "str": "exoskeleton mounted drill" }, "category": "tool", From 9118b23fc6043f8f20151f46466632c9bd4a83cb Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sat, 15 Jan 2022 01:47:45 -0800 Subject: [PATCH 086/189] Bump tests --- data/mods/Aftershock/items/armor/modular_exos/exo_gear.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 12e77f536afe6..a6b12ca58aac0 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -1,6 +1,6 @@ [ { - "id": "exo_mounted_drill ", + "id": "exo_mounted_drill", "type": "TOOL_ARMOR", "name": { "str": "exoskeleton mounted drill" }, "category": "tool", From 320938ad16d9d2c3597151c08d6ebc6a09d895b7 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 20 Jan 2022 00:25:42 -0800 Subject: [PATCH 087/189] Update modular_exoskeleton_plating.json --- .../modular_exoskeleton_plating.json | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index c7e1767c6787a..1ca7f3207f336 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -125,7 +125,7 @@ "id": "exo_psu_steel", "type": "ARMOR", "category": "exosuit", - "name": { "str": "steel PSU plate (exosuit)" }, + "name": { "str": "steel PSU plate (exosuit)", "str_pl": "steel PSU plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of steel.", "weight": "42933 g", "volume": "10 L", @@ -143,7 +143,7 @@ "type": "ARMOR", "category": "exosuit", "copy-from": "exo_psu_steel", - "name": { "str": "plastic PSU plate (exosuit)" }, + "name": { "str": "plastic PSU plate (exosuit)", "str_pl": "plastic PSU plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a plate of plastic.", "weight": "4290 g", "volume": "10 L", @@ -155,7 +155,7 @@ "id": "destroyed_exo_psu_plastic_plate", "type": "ARMOR", "copy-from": "exo_psu_plastic", - "name": { "str": "shattered plastic PSU plate (exosuit)" }, + "name": { "str": "shattered plastic PSU plate (exosuit)", "str_pl": "shattered plastic PSU plates (exosuit)" }, "description": "The remains of a plastic PSU plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_psu_plastic", "material_thickness": 3 @@ -165,7 +165,7 @@ "type": "ARMOR", "category": "exosuit", "copy-from": "exo_psu_steel", - "name": { "str": "carbide PSU plate (exosuit)" }, + "name": { "str": "carbide PSU plate (exosuit)", "str_pl": "carbide PSU plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of vacuum-cast carbide.", "weight": "55000 g", "volume": "10 L", @@ -177,7 +177,7 @@ "id": "destroyed_exo_psu_vcc", "type": "ARMOR", "copy-from": "exo_psu_vcc", - "name": { "str": "shattered carbide PSU plate (exosuit)" }, + "name": { "str": "shattered carbide PSU plate (exosuit)", "str_pl": "shattered carbide PSU plates (exosuit)" }, "description": "The remains of a vacuum-cast carbide PSU plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_psu_vcc", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] @@ -186,7 +186,7 @@ "id": "exo_arm_steel", "type": "ARMOR", "category": "exosuit", - "name": { "str": "steel arm plate (exosuit)" }, + "name": { "str": "steel arm plate (exosuit)", "str_pl": "steel arm plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", "weight": "30 g", "volume": "6500 ml", @@ -213,7 +213,7 @@ "type": "ARMOR", "category": "exosuit", "copy-from": "exo_arm_steel", - "name": { "str": "plastic arm plate (exosuit)" }, + "name": { "str": "plastic arm plate (exosuit)", "str_pl": "plastic arm plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are plates of plastic.", "weight": "3000 g", "volume": "1500 ml", @@ -225,7 +225,7 @@ "id": "destroyed_exo_arm_plastic_plate", "type": "ARMOR", "copy-from": "exo_arm_plastic", - "name": { "str": "shattered plastic arm plate (exosuit)" }, + "name": { "str": "shattered plastic arm plate (exosuit)", "str_pl": "shattered plastic arm plates (exosuit)" }, "description": "The remains of a plastic arm plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_arm_plastic", "material_thickness": 3 @@ -235,7 +235,7 @@ "type": "ARMOR", "category": "exosuit", "copy-from": "exo_arm_steel", - "name": { "str": "carbide arm plate (exosuit)" }, + "name": { "str": "carbide arm plate (exosuit)", "str_pl": "carbide arm plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of vacuum-cast carbide.", "weight": "38000 g", "volume": "1500 ml", @@ -247,7 +247,7 @@ "id": "destroyed_exo_arm_vcc_plate", "type": "ARMOR", "copy-from": "exo_arm_vcc", - "name": { "str": "shattered carbide arm plate (exosuit)" }, + "name": { "str": "shattered carbide arm plate (exosuit)", "str_pl": "shattered carbide arm plates (exosuit)" }, "description": "The remains of a vacuum-cast carbide arm plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_arm_vcc" }, @@ -255,7 +255,7 @@ "id": "exo_leg_steel", "type": "ARMOR", "category": "exosuit", - "name": { "str": "steel leg plating (exosuit)" }, + "name": { "str": "steel leg plating (exosuit)", "str_pl": "steel leg plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", "weight": "33000 g", "volume": "10 L", @@ -282,7 +282,7 @@ "type": "ARMOR", "category": "exosuit", "copy-from": "exo_leg_steel", - "name": { "str": "plastic leg plating (exosuit)" }, + "name": { "str": "plastic leg plating (exosuit)", "str_pl": "plastic leg plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are plates of plastic.", "weight": "6000 g", "volume": "10 L", @@ -294,7 +294,7 @@ "id": "destroyed_exo_leg_plastic_plate", "type": "ARMOR", "copy-from": "exo_leg_plastic", - "name": { "str": "shattered plastic leg plate (exosuit)" }, + "name": { "str": "shattered plastic leg plate (exosuit)", "str_pl": "shattered plastic leg plates (exosuit)" }, "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_leg_plastic" }, @@ -303,7 +303,7 @@ "type": "ARMOR", "category": "exosuit", "copy-from": "exo_leg_steel", - "name": { "str": "carbide leg plating (exosuit)" }, + "name": { "str": "carbide leg plating (exosuit)", "str_pl": "carbide leg plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of vacuum-cast carbide.", "weight": "41000 g", "volume": "10 L", @@ -315,7 +315,7 @@ "id": "destroyed_exo_leg_vcc_plate", "type": "ARMOR", "copy-from": "exo_leg_vcc", - "name": { "str": "shattered carbide leg plate (exosuit)" }, + "name": { "str": "shattered carbide leg plate (exosuit)", "str_pl": "shattered carbide leg plates (exosuit)" }, "description": "The remains of a vacuum-cast carbide leg plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_leg_vcc" } From 89071a6ffda0be902f47065c3d694a09b7273c99 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 20 Jan 2022 09:58:43 -0800 Subject: [PATCH 088/189] Update modular_exoskeleton_storage.json --- .../items/armor/modular_exos/modular_exoskeleton_storage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index cc6c60d7a797e..2a80934cd1b66 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -34,7 +34,7 @@ "copy-from": "backpack_tactical_large", "repairs_like": "backpack_tactical_large", "type": "ARMOR", - "name": { "str": "large storage pack (exosuit)" }, + "name": { "str": "large storage pack (exosuit)", "str_pl": "large storage packs (exosuit)" }, "description": "A large storage pack, mountable on a hardpoint.", "weight": "2291 g", "volume": "15 L", From e2ecf0248360208e0c023679446548e42909d81e Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 21 Jan 2022 00:51:17 -0800 Subject: [PATCH 089/189] Update modular_exoskeleton_modules.json --- .../items/armor/modular_exos/modular_exoskeleton_modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 59105a0d03bd5..fd17052c36d4d 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -237,7 +237,7 @@ "ammo_scale": 0, "menu_text": "Turn to high", "type": "transform", - "msg": "You turn the heavy duty flashlight off.", + "msg": "You turn the lamp on high.", "target": "exo_flashlight_high" }, "flags": [ "LIGHT_250", "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET" ] From 4c09a1238fe773ab40da6fbcdbfae50c76e2f26d Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sun, 23 Jan 2022 23:21:15 -0800 Subject: [PATCH 090/189] Update pockets and modules --- data/json/flags.json | 21 ++--- .../modular_exos/modular_exoskeleton.json | 87 ++++++++++++++----- .../modular_exoskeleton_modules.json | 4 +- .../modular_exoskeleton_storage.json | 6 +- 4 files changed, 83 insertions(+), 35 deletions(-) diff --git a/data/json/flags.json b/data/json/flags.json index eed13b38877e2..8fb9841921ecb 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -1860,9 +1860,9 @@ "name": "laser sight" }, { - "id": "EXO_SMALL", - "type": "json_flag", - "info": "This is meant for a small exoskeleton hardpoint." + "id": "EXO_SMALL", + "type": "json_flag", + "info": "This is meant for a small exoskeleton hardpoint." }, { "id": "EXO_LARGE", @@ -1928,15 +1928,16 @@ "id": "EXO_BOOT_PLATE", "type": "json_flag", "info": "This is meant for exoskeleton foot plating." - }, - { - "type": "json flag", - "info": "This is meant for a small exoskeleton hardpoint." }, { - "id": "EXO_LARGE", - "type": "json flag", - "info": "This is meant for a large exoskeleton hardpoint." + "id": "EXO_SMALL", + "type": "json_flag", + "info": "This is meant for a small exoskeleton hardpoint." + }, + { + "id": "EXO_LARGE", + "type": "json_flag", + "info": "This is meant for a large exoskeleton hardpoint." }, { "id": "EXO_PSU", diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 694bd6122f720..1df7adaedc17e 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -49,7 +49,7 @@ }, { "pocket_type": "CONTAINER", - "name": "Torso compartment (Gadget)", + "name": "Torso compartment (Large)", "description": "This is a mount for storing items in the torso.", "rigid": true, "max_contains_volume": "2 L", @@ -57,6 +57,26 @@ "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" ], "moves": 60 }, + { + "pocket_type": "CONTAINER", + "name": "Torso compartment (Small)", + "description": "This is a mount for storing items in the torso.", + "rigid": true, + "max_contains_volume": "1500 ml", + "max_contains_weight": "5 kg", + "flag_restriction": [ "EXO_SMALL_GADGET" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "name": "Torso compartment (Small)", + "description": "This is a mount for storing items in the torso.", + "rigid": true, + "max_contains_volume": "1500 ml", + "max_contains_weight": "5 kg", + "flag_restriction": [ "EXO_SMALL_GADGET" ], + "moves": 60 + }, { "pocket_type": "CONTAINER", "name": "PSU compartment", @@ -75,13 +95,12 @@ "rigid": true, "max_contains_volume": "8 L", "max_contains_weight": "35 kg", - "max_item_length": "200 mm", "flag_restriction": [ "EXO_ARM_PLATE" ], "moves": 60 }, { "pocket_type": "CONTAINER", - "name": "Arm compartment 1 (Gadget)", + "name": "Arm hardpoint 1 (Gadget)", "description": "This is a mount for storing items on the arms.", "rigid": true, "max_contains_volume": "2 L", @@ -91,7 +110,7 @@ }, { "pocket_type": "CONTAINER", - "name": "Arm compartment 2 (Gadget)", + "name": "Arm hardpoint 2 (Gadget)", "description": "This is a mount for storing items on the arms.", "rigid": true, "max_contains_volume": "2 L", @@ -99,21 +118,40 @@ "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" ], "moves": 60 }, + { + "pocket_type": "CONTAINER", + "name": "Arm hardpoint 1 (Small)", + "description": "This is a small mount for storing items on the arms.", + "rigid": true, + "max_contains_volume": "1500 ml", + "max_contains_weight": "5 kg", + "flag_restriction": [ "EXO_SMALL_GADGET" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "name": "Arm hardpoint 2 (Small)", + "description": "This is a small mount for storing items on the arms.", + "rigid": true, + "max_contains_volume": "1500 ml", + "max_contains_weight": "5 kg", + "flag_restriction": [ "EXO_SMALL_GADGET" ], + "moves": 60 + }, { "pocket_type": "CONTAINER", "name": "Leg compartment (Plate)", "description": "This is a mounting point for leg armor.", "ablative": true, "rigid": true, - "max_contains_volume": "9 L", + "max_contains_volume": "10 L", "max_contains_weight": "40 kg", - "max_item_length": "200 mm", "flag_restriction": [ "EXO_LEG_PLATE" ], "moves": 60 }, { "pocket_type": "CONTAINER", - "name": "Leg compartment 1 (Gadget)", + "name": "Leg hardpoint 1 (Large)", "description": "This is a mount for storing items on the legs.", "rigid": true, "max_contains_volume": "2 L", @@ -123,13 +161,33 @@ }, { "pocket_type": "CONTAINER", - "name": "Leg compartment 2 (Gadget)", + "name": "Leg hardpoint 2 (Large)", "description": "This is a mount for storing items on the legs.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" ], "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "name": "Leg hardpoint 1 (Small)", + "description": "This is a small mount for storing items on the legs.", + "rigid": true, + "max_contains_volume": "1500 ml", + "max_contains_weight": "5 kg", + "flag_restriction": [ "EXO_SMALL_GADGET" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "name": "Leg hardpoint 2 (Small)", + "description": "This is a small mount for storing items on the legs.", + "rigid": true, + "max_contains_volume": "1500 ml", + "max_contains_weight": "5 kg", + "flag_restriction": [ "EXO_SMALL_GADGET" ], + "moves": 60 } ], "armor": [ @@ -142,17 +200,6 @@ "ammo": "battery", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, -<<<<<<< HEAD - - "use_action": [ { - "target": "modular_exoskeleton_on", - "msg": "The %s engages.", - "active": true, - "need_charges": 1, - "need_charges_msg": "The suit does not have enough charge.", - "type": "transform" - }, "MANAGE_EXOSUIT" ] -======= "use_action": [ { "target": "modular_exoskeleton_on", @@ -164,7 +211,6 @@ }, "MANAGE_EXOSUIT" ] ->>>>>>> 81e89c11af (Linting) }, { "id": "modular_exoskeleton_on", @@ -209,6 +255,7 @@ }, { "pocket_type": "CONTAINER", + "name": "Helmet Hardpoint", "description": "This is a series of mounts for helmet equipment.", "rigid": true, "max_contains_volume": "2 L", diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index fd17052c36d4d..6f26f36dd7b0b 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -327,14 +327,14 @@ "id": "exo_recoil_on", "copy-from": "exo_recoil", "type": "TOOL", - "name": { "str": "recoil controller (on)", "str_pl": "recoil controllers (on)" }, + "name": { "str": "recoil mitigation system (on)", "str_pl": "recoil mitigation systems (on)" }, "power_draw": 2000, "revert_to": "exo_recoil", "use_action": { "ammo_scale": 0, "menu_text": "Turn off", "type": "transform", - "msg": "You turn off the recoil controller.", + "msg": "You turn off the recoil mitigation system.", "target": "exo_recoil" }, "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET", "ONLY_ONE" ], diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 2a80934cd1b66..6f13f358a523b 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -8,7 +8,7 @@ "weight": "454 g", "volume": "2 L", "material": [ "steel" ], - "flags": [ "WATER_FRIENDLY", "NO_QUICKDRAW", "EXO_LARGE_GADGET" ], + "flags": [ "WATER_FRIENDLY", "NO_QUICKDRAW", "EXO_LARGE_GADGET", "BELTED" ], "symbol": "[", "looks_like": "slingpack", "color": "light_gray" @@ -24,7 +24,7 @@ "price": 18000, "price_postapoc": 800, "material": [ "steel" ], - "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], + "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET", "BELTED" ], "symbol": "[", "looks_like": "bscabbard", "color": "light_gray" @@ -39,7 +39,7 @@ "weight": "2291 g", "volume": "15 L", "material": [ "kevlar", "plastic" ], - "flags": [ "WATER_FRIENDLY", "EXO_LARGE_GADGET" ], + "flags": [ "WATER_FRIENDLY", "EXO_LARGE_GADGET", "BELTED" ], "symbol": "[", "looks_like": "backpack" }, From f3a1c26615ec2b50dd62e37497a10e40671159ee Mon Sep 17 00:00:00 2001 From: John Candlebury Date: Sun, 23 Jan 2022 16:15:43 -0600 Subject: [PATCH 091/189] Fix load errors and other outstanding bugs --- .../armor/modular_exos/modular_exoskeleton.json | 13 ++++++------- .../modular_exos/modular_exoskeleton_plating.json | 2 +- .../modular_exos/modular_exoskeleton_storage.json | 8 ++++---- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 1df7adaedc17e..cd4a54955cf65 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -43,7 +43,7 @@ "ablative": true, "rigid": true, "max_contains_volume": "10 L", - "max_contains_weight": "45 kg", + "max_contains_weight": "80 kg", "flag_restriction": [ "EXO_TORSO_PLATE" ], "moves": 60 }, @@ -93,8 +93,8 @@ "description": "This is a mounting point for arm armor.", "ablative": true, "rigid": true, - "max_contains_volume": "8 L", - "max_contains_weight": "35 kg", + "max_contains_volume": "12 L", + "max_contains_weight": "80 kg", "flag_restriction": [ "EXO_ARM_PLATE" ], "moves": 60 }, @@ -144,8 +144,8 @@ "description": "This is a mounting point for leg armor.", "ablative": true, "rigid": true, - "max_contains_volume": "10 L", - "max_contains_weight": "40 kg", + "max_contains_volume": "12 L", + "max_contains_weight": "80 kg", "flag_restriction": [ "EXO_LEG_PLATE" ], "moves": 60 }, @@ -225,8 +225,7 @@ "power_draw": 7123, "revert_to": "modular_exoskeleton", "use_action": [ - { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exoskeleton" }, - "MANAGE_EXOSUIT" + { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exoskeleton" } ] }, { diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 1ca7f3207f336..2c6083bf0e8bc 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -268,7 +268,7 @@ "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_LEG_PLATE" ], "armor": [ { - "covers": [ "leg_l", "leg_r", "leg_l", "leg_r" ], + "covers": [ "leg_l", "leg_r", "foot_l", "foot_r" ], "encumbrance": 8, "coverage": 95, "cover_melee": 95, diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 6f13f358a523b..486bbc1b93999 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -8,7 +8,7 @@ "weight": "454 g", "volume": "2 L", "material": [ "steel" ], - "flags": [ "WATER_FRIENDLY", "NO_QUICKDRAW", "EXO_LARGE_GADGET", "BELTED" ], + "flags": [ "WATER_FRIENDLY", "NO_QUICKDRAW", "BELTED", "EXO_LARGE_GADGET" ], "symbol": "[", "looks_like": "slingpack", "color": "light_gray" @@ -24,7 +24,7 @@ "price": 18000, "price_postapoc": 800, "material": [ "steel" ], - "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET", "BELTED" ], + "flags": [ "WATER_FRIENDLY", "BELTED", "EXO_MEDIUM_GADGET" ], "symbol": "[", "looks_like": "bscabbard", "color": "light_gray" @@ -39,7 +39,7 @@ "weight": "2291 g", "volume": "15 L", "material": [ "kevlar", "plastic" ], - "flags": [ "WATER_FRIENDLY", "EXO_LARGE_GADGET", "BELTED" ], + "flags": [ "WATER_FRIENDLY", "BELTED", "EXO_LARGE_GADGET" ], "symbol": "[", "looks_like": "backpack" }, @@ -53,7 +53,7 @@ "weight": "275 g", "volume": "2500 ml", "material": [ "nylon", "plastic" ], - "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], + "flags": [ "WATER_FRIENDLY", "BELTED", "EXO_MEDIUM_GADGET" ], "symbol": "[", "looks_like": "holster", "color": "green" From f82d89e9f28db1cff12b7925b052ee19f2079659 Mon Sep 17 00:00:00 2001 From: John Candlebury Date: Sun, 23 Jan 2022 18:25:32 -0600 Subject: [PATCH 092/189] Consistently use Exosuit in descriptions/names. Apply spelling suggestions. --- data/json/flags.json | 60 +++++++++---------- .../items/armor/modular_exos/exo_gear.json | 10 ++-- .../items/armor/modular_exos/exo_tool.json | 2 +- .../modular_exos/modular_exoskeleton.json | 28 ++++----- .../modular_exoskeleton_modules.json | 44 +++++++------- .../modular_exoskeleton_plating.json | 30 +++++----- .../modular_exoskeleton_storage.json | 2 +- data/mods/Aftershock/items/vehicle_items.json | 4 +- .../Aftershock/vehicles/vehicle_parts.json | 4 +- tools/spell_checker/dictionary.txt | 4 ++ 10 files changed, 96 insertions(+), 92 deletions(-) diff --git a/data/json/flags.json b/data/json/flags.json index 8fb9841921ecb..28f26bbc74124 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -1854,30 +1854,30 @@ "name": "gas tank" }, { - "id": "LASER_SIGHT", - "type": "json_flag", - "info": "Invalid when the target position is too far or too bright.", - "name": "laser sight" + "id": "LASER_SIGHT", + "type": "json_flag", + "info": "Invalid when the target position is too far or too bright.", + "name": "laser sight" }, { "id": "EXO_SMALL", "type": "json_flag", - "info": "This is meant for a small exoskeleton hardpoint." + "info": "This is meant for a small exosuit hardpoint." }, { "id": "EXO_LARGE", "type": "json_flag", - "info": "This is meant for a large exoskeleton hardpoint." + "info": "This is meant for a large exosuit hardpoint." }, { "id": "EXO_PSU", "type": "json_flag", - "info": "This is meant for an exoskeleton PSU hardpoint." + "info": "This is meant for an exosuit PSU hardpoint." }, { "id": "EXO_SMALL_GADGET", "type": "json_flag", - "info": "This is meant for small exoskeleton gadgets, 1 L or less." + "info": "This is meant for small exosuit gadgets, 1 L or less." }, { "id": "EXO_HELMET_GADGET", @@ -1887,67 +1887,67 @@ { "id": "EXO_MEDIUM_GADGET", "type": "json_flag", - "info": "This is meant for medium exoskeleton gadgets, between 1 L and 5 L." + "info": "This is meant for medium exosuit gadgets, between 1 L and 5 L." }, { "id": "EXO_LARGE_GADGET", "type": "json_flag", - "info": "This is meant for large exoskeleton gadgets, larger than 5 L." + "info": "This is meant for large exosuit gadgets, larger than 5 L." }, { "id": "EXO_HELMET_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton helmet plating." + "info": "This is meant for exosuit helmet plating." }, { "id": "EXO_TORSO_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton torso plating." + "info": "This is meant for exosuit torso plating." }, { "id": "EXO_PSU_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton PSU plating." + "info": "This is meant for exosuit PSU plating." }, { "id": "EXO_ARM_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton arm plating." + "info": "This is meant for exosuit arm plating." }, { "id": "EXO_GLOVE_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton arm plating." + "info": "This is meant for exosuit arm plating." }, { "id": "EXO_LEG_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton leg plating." + "info": "This is meant for exosuit leg plating." }, { "id": "EXO_BOOT_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton foot plating." + "info": "This is meant for exosuit foot plating." }, { "id": "EXO_SMALL", "type": "json_flag", - "info": "This is meant for a small exoskeleton hardpoint." + "info": "This is meant for a small exosuit hardpoint." }, { "id": "EXO_LARGE", "type": "json_flag", - "info": "This is meant for a large exoskeleton hardpoint." + "info": "This is meant for a large exosuit hardpoint." }, { "id": "EXO_PSU", "type": "json_flag", - "info": "This is meant for an exoskeleton PSU hardpoint." + "info": "This is meant for an exosuit PSU hardpoint." }, { "id": "EXO_SMALL_GADGET", "type": "json_flag", - "info": "This is meant for small exoskeleton gadgets, 1 L or less." + "info": "This is meant for small exosuit gadgets, 1 L or less." }, { "id": "EXO_HELMET_GADGET", @@ -1957,46 +1957,46 @@ { "id": "EXO_MEDIUM_GADGET", "type": "json_flag", - "info": "This is meant for medium exoskeleton gadgets, between 1 L and 5 L." + "info": "This is meant for medium exosuit gadgets, between 1 L and 5 L." }, { "id": "EXO_LARGE_GADGET", "type": "json_flag", - "info": "This is meant for large exoskeleton gadgets, larger than 5 L." + "info": "This is meant for large exosuit gadgets, larger than 5 L." }, { "id": "EXO_HELMET_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton helmet plating." + "info": "This is meant for exosuit helmet plating." }, { "id": "EXO_TORSO_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton torso plating." + "info": "This is meant for exosuit torso plating." }, { "id": "EXO_PSU_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton PSU plating." + "info": "This is meant for exosuit PSU plating." }, { "id": "EXO_ARM_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton arm plating." + "info": "This is meant for exosuit arm plating." }, { "id": "EXO_GLOVE_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton arm plating." + "info": "This is meant for exosuit arm plating." }, { "id": "EXO_LEG_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton leg plating." + "info": "This is meant for exosuit leg plating." }, { "id": "EXO_BOOT_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton foot plating." + "info": "This is meant for exosuit foot plating." } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index a6b12ca58aac0..60b31310f9524 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -2,9 +2,9 @@ { "id": "exo_mounted_drill", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton mounted drill" }, + "name": { "str": "exosuit mounted drill" }, "category": "tool", - "description": "A powerful header drill with tough carbide bits, this tool mounts to the exoskeleton's arm and extends past the hand. While turned off, it still makes a powerful mace.", + "description": "A powerful header drill with tough carbide bits, this tool mounts to the exosuit's arm and extends past the hand. While turned off, it still makes a powerful mace.", "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], "weight": "40000 g", "volume": "5 L", @@ -31,7 +31,7 @@ "id": "exo_mounted_drill_on", "type": "TOOL_ARMOR", "copy-from": "exo_mounted_drill", - "name": { "str": "exoskeleton mounted drill (on)", "str_pl": "exoskeleton mounted drills (on)" }, + "name": { "str": "exosuit mounted drill (on)", "str_pl": "exosuit mounted drills (on)" }, "description": "The drill is now rotating and making a low growling noise. Meant to make short work of the toughest rock, it should work on more mobile surfaces as well. Use it to turn it off.", "flags": [ "USE_UPS", "MESSY", "POWERED", "DURABLE_MELEE", "DIG_TOOL", "POWERARMOR_COMPATIBLE" ], "bashing": 60, @@ -44,8 +44,8 @@ "id": "exo_hydraulic_gauntlet", "copy-from": "afs_hydraulic_gauntlet", "type": "ARMOR", - "name": { "str": "exoskeleton hydraulic gauntlet" }, - "description": "A huge, heavy metal gauntlet lined with tubing and gauges worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively.", + "name": { "str": "exosuit hydraulic gauntlet" }, + "description": "A huge, heavy metal gauntlet lined with tubing and gauges worn in place of standard exosuit gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively.", "looks_like": "gauntlets_chitin", "color": "light_gray", "bashing": 50, diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json b/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json index 4d5d084304b45..ada5e4af861c2 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json @@ -3,7 +3,7 @@ "id": "exo_repair_kit", "copy-from": "large_repairkit", "type": "TOOL", - "name": { "str": "exoskeleton repair kit" }, + "name": { "str": "exosuit repair kit" }, "description": "This is a collection of tools including a high-powered torch for working the titanium frame.", "longest_side": "25 cm", "price": 1000, diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index cd4a54955cf65..ccaf084199d47 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -5,7 +5,7 @@ "type": "ARMOR", "copy-from": "jumpsuit", "looks_like": "robofac_enviro_suit", - "name": { "str": "exoskeleton undersuit" }, + "name": { "str": "exosuit undersuit" }, "description": "A form-fitting suit meant to be worn beneath power armor. Although not a requirement for the operation of power armor, it features climate control and haptic feedback systems that offer improved performance and comfort while doing so. The suit is not designed for use outside of armor, it has no pockets, offers nearly no protection and damages easily.", "weight": "610 g", "volume": "3500 ml", @@ -23,10 +23,10 @@ "flags": [ "USE_UPS", "SKINTIGHT", "WATERPROOF", "POWERARMOR_COMPATIBLE" ] }, { - "id": "modular_exoskeleton", + "id": "modular_exosuit", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton frame" }, - "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs.", + "name": { "str": "exosuit frame" }, + "description": "This is a standard exosuit frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs.", "weight": "43 kg", "volume": "135 L", "material": [ "titanium" ], @@ -202,7 +202,7 @@ "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, "use_action": [ { - "target": "modular_exoskeleton_on", + "target": "modular_exosuit_on", "msg": "The %s engages.", "active": true, "need_charges": 1, @@ -213,26 +213,26 @@ ] }, { - "id": "modular_exoskeleton_on", - "copy-from": "modular_exoskeleton", - "repairs_like": "modular_exoskeleton", + "id": "modular_exosuit_on", + "copy-from": "modular_exosuit", + "repairs_like": "modular_exosuit", "looks_like": "power_armor_light", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton frame (on)", "str_pl": "exoskeleton frames (on)" }, - "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on and continually drawing power. Use it to turn it off.", + "name": { "str": "exosuit frame (on)", "str_pl": "exosuit frames (on)" }, + "description": "This is a standard exosuit frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on and continually drawing power. Use it to turn it off.", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, "power_draw": 7123, - "revert_to": "modular_exoskeleton", + "revert_to": "modular_exosuit", "use_action": [ - { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exoskeleton" } + { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exosuit" } ] }, { - "id": "exoskeleton_helmet", + "id": "exosuit_helmet", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton helmet" }, + "name": { "str": "exosuit helmet" }, "description": "This is a helmet offering mounts for specialized equipment and protection.", "weight": "2500 g", "volume": "5 L", diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 6f26f36dd7b0b..dcc00aac9b3c3 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -3,8 +3,8 @@ "id": "exo_back_battery_rechargable", "type": "TOOL_ARMOR", "category": "exosuit", - "name": { "str": "exoskeleton power supply unit" }, - "description": "Designed to attach to an exoskeleton's back, this is a large rechargable battery with an integrated UPS.", + "name": { "str": "exosuit power supply unit" }, + "description": "Designed to attach to an exosuit's back, this is a large rechargable battery with an integrated UPS.", "weight": "15 kg", "volume": "20 L", "material": [ "plastic", "steel" ], @@ -32,8 +32,8 @@ "id": "exo_back_gasoline", "type": "TOOL_ARMOR", "category": "exosuit", - "name": { "str": "exoskeleton ICE power supply", "str_pl": "exoskeleton ICE power supplies" }, - "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS. This unit is large and occupies the rear hardpoints.", + "name": { "str": "exosuit ICE power supply", "str_pl": "exosuit ICE power supplies" }, + "description": "Designed to attach to an exosuit's back, this is an internal combustion engine generator with an integrated UPS. This unit is large and occupies the rear hardpoints.", "weight": "20 kg", "volume": "25 L", "material": [ "steel", "plastic" ], @@ -67,8 +67,8 @@ "id": "exo_large_aux_power", "type": "TOOL_ARMOR", "category": "exosuit", - "name": { "str": "exoskeleton auxiliary battery", "str_pl": "exoskeleton auxiliary batteries" }, - "description": "This is a large rechargable auxiliary power unit that attaches to an exoskeleton hardpoint.", + "name": { "str": "exosuit auxiliary battery", "str_pl": "exosuit auxiliary batteries" }, + "description": "This is a large rechargable auxiliary power unit that attaches to an exosuit hardpoint.", "weight": "5 kg", "volume": "5 L", "material": [ "plastic", "steel" ], @@ -83,8 +83,8 @@ "id": "exo_small_aux_power", "type": "TOOL_ARMOR", "category": "exosuit", - "name": { "str": "exoskeleton small auxiliary battery", "str_pl": "exoskeleton small auxiliary batteries" }, - "description": "This is a small rechargable auxiliary power unit that attaches to an exoskeleton hardpoint.", + "name": { "str": "exosuit small auxiliary battery", "str_pl": "exosuit small auxiliary batteries" }, + "description": "This is a small rechargable auxiliary power unit that attaches to an exosuit hardpoint.", "weight": "2 kg", "volume": "1 L", "material": [ "plastic", "steel" ], @@ -99,8 +99,8 @@ "id": "exo_large_carry", "type": "TOOL_ARMOR", "category": "exosuit", - "name": { "str": "exoskeleton large load support module (off)", "str_pl": "exoskeleton large load support modules (off)" }, - "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power consumption.", + "name": { "str": "exosuit large load support module (off)", "str_pl": "exosuit large load support modules (off)" }, + "description": "This module significantly increases the exosuit's weight bearing at the cost of increased power consumption.", "weight": "10 kg", "volume": "5 L", "material": [ "plastic", "steel" ], @@ -126,8 +126,8 @@ "id": "exo_large_carry_on", "type": "TOOL_ARMOR", "category": "exosuit", - "name": { "str": "exoskeleton large load support module (on)", "str_pl": "exoskeleton large load support modules (on)" }, - "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power consumption. It is turned on and continually drawing power. Use it to turn it off.", + "name": { "str": "exosuit large load support module (on)", "str_pl": "exosuit large load support modules (on)" }, + "description": "This module significantly increases the exosuit's weight bearing at the cost of increased power consumption. It is turned on and continually drawing power. Use it to turn it off.", "weight": "10 kg", "volume": "5 L", "material": [ "plastic", "steel" ], @@ -153,8 +153,8 @@ "id": "exo_small_carry", "type": "TOOL_ARMOR", "category": "exosuit", - "name": { "str": "exoskeleton small load support module (off)", "str_pl": "exoskeleton small load support modules (off)" }, - "description": "This module increases the exoskeleton's weight bearing at the cost of increased power consumption.", + "name": { "str": "exosuit small load support module (off)", "str_pl": "exosuit small load support modules (off)" }, + "description": "This module increases the exosuit's weight bearing at the cost of increased power consumption.", "weight": "2 kg", "volume": "1 L", "material": [ "plastic", "steel" ], @@ -180,8 +180,8 @@ "id": "exo_small_carry_on", "type": "TOOL_ARMOR", "category": "exosuit", - "name": { "str": "exoskeleton small load support module (on)", "str_pl": "exoskeleton small load support modules (on)" }, - "description": "This module increases the exoskeleton's weight bearing at the cost of increased power consumption. It is turned on and continually drawing power. Use it to turn it off.", + "name": { "str": "exosuit small load support module (on)", "str_pl": "exosuit small load support modules (on)" }, + "description": "This module increases the exosuit's weight bearing at the cost of increased power consumption. It is turned on and continually drawing power. Use it to turn it off.", "weight": "2 kg", "volume": "1 L", "material": [ "plastic", "steel" ], @@ -208,7 +208,7 @@ "type": "TOOL_ARMOR", "category": "exosuit", "name": { "str": "mounted lamp (off)", "str_pl": "mounted lamps (off)" }, - "description": "This is a light that can be secured to an exoskeleton hardpoint. It has two levels of brightness.", + "description": "This is a light that can be secured to an exosuit hardpoint. It has two levels of brightness.", "weight": "500 g", "volume": "500 ml", "material": [ "steel", "plastic" ], @@ -263,7 +263,7 @@ "type": "TOOL_ARMOR", "category": "exosuit", "name": { "str_sp": "audio protection (off)" }, - "description": "This is an audio protection exoskeleton module. While active, it also protects your hearing from loud noises.", + "description": "This is an audio protection exosuit module. While active, it also protects your hearing from loud noises.", "weight": "500 g", "volume": "500 ml", "material": [ "steel", "plastic" ], @@ -302,7 +302,7 @@ "type": "TOOL_ARMOR", "category": "exosuit", "name": { "str": "recoil mitigation system (off)", "str_pl": "recoil mitigation systems (off)" }, - "description": "This module takes partial control of the exoskeleton while firing, damping recoil. Activate before firing.", + "description": "This module takes partial control of the exosuit while firing, damping recoil. Activate before firing.", "weight": "500 g", "volume": "500 ml", "material": [ "steel", "plastic" ], @@ -348,8 +348,8 @@ "category": "exosuit", "symbol": "8", "color": "light_gray", - "name": { "str_sp": "exoskeleton enhanced optics (off)" }, - "description": "A set of enhanced optics for an exoskeleton. Provides telescopic vision as well as protection from glare and bright flashes of light. Activate to enable infrared vision.", + "name": { "str_sp": "exosuit enhanced optics (off)" }, + "description": "A set of enhanced optics for an exosuit. Provides telescopic vision as well as protection from glare and bright flashes of light. Activate to enable infrared vision.", "price": 30000, "price_postapoc": 500, "material": [ "plastic", "glass" ], @@ -371,7 +371,7 @@ "id": "exo_optics_on", "copy-from": "exo_optics", "type": "TOOL", - "name": { "str_sp": "exoskeleton enhanced optics (on)" }, + "name": { "str_sp": "exosuit enhanced optics (on)" }, "power_draw": 500, "revert_to": "exo_optics", "use_action": { diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 2c6083bf0e8bc..84ca983d3fd5c 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -4,7 +4,7 @@ "type": "ARMOR", "category": "exosuit", "name": { "str": "steel helmet plate (exosuit)", "str_pl": "steel helmet plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of steel.", + "description": "Designed to attach to an exosuit's helmet, this is a sturdy plate of steel.", "weight": "12880 g", "volume": "5 L", "material": [ "steel" ], @@ -22,7 +22,7 @@ "category": "exosuit", "copy-from": "exo_helmet_steel", "name": { "str": "plastic helmet plate (exosuit)", "str_pl": "plastic helmet plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's helmet, this is a plate of plastic.", + "description": "Designed to attach to an exosuit's helmet, this is a plate of plastic.", "weight": "1287 g", "material": [ "plastic" ], "looks_like": "power_armor_helmet_basic", @@ -44,7 +44,7 @@ "category": "exosuit", "copy-from": "exo_helmet_steel", "name": { "str": "carbide helmet plate (exosuit)", "str_pl": "carbide helmet plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's helmet, this is a plate of vacuum-cast carbide.", + "description": "Designed to attach to an exosuit's helmet, this is a plate of vacuum-cast carbide.", "weight": "1287 g", "material": [ "vacuum_carbide" ], "looks_like": "power_armor_helmet_basic", @@ -65,7 +65,7 @@ "type": "ARMOR", "category": "exosuit", "name": { "str": "steel torso plate (exosuit)", "str_pl": "steel torso plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", + "description": "Designed to attach to an exosuit's torso, this is a sturdy plate of steel.", "weight": "34347 g", "volume": "8 L", "material": [ "steel" ], @@ -83,7 +83,7 @@ "category": "exosuit", "copy-from": "exo_torso_steel", "name": { "str": "plastic torso plate (exosuit)", "str_pl": "plastic torso plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's torso, this is a plate of plastic.", + "description": "Designed to attach to an exosuit's torso, this is a plate of plastic.", "weight": "3432 g", "volume": "8 L", "material": [ "plastic" ], @@ -106,7 +106,7 @@ "category": "exosuit", "copy-from": "exo_torso_steel", "name": { "str": "carbide torso plate (exosuit)", "str_pl": "carbide torso plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of vacuum-cast carbide.", + "description": "Designed to attach to an exosuit's torso, this is a sturdy plate of vacuum-cast carbide.", "weight": "44000 g", "volume": "8 L", "material": [ "vacuum_carbide" ], @@ -126,7 +126,7 @@ "type": "ARMOR", "category": "exosuit", "name": { "str": "steel PSU plate (exosuit)", "str_pl": "steel PSU plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of steel.", + "description": "Designed to attach to an exosuit's power supply unit, this is a sturdy plate of steel.", "weight": "42933 g", "volume": "10 L", "material": [ "steel" ], @@ -144,7 +144,7 @@ "category": "exosuit", "copy-from": "exo_psu_steel", "name": { "str": "plastic PSU plate (exosuit)", "str_pl": "plastic PSU plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's power supply unit, this is a plate of plastic.", + "description": "Designed to attach to an exosuit's power supply unit, this is a plate of plastic.", "weight": "4290 g", "volume": "10 L", "material": [ "plastic" ], @@ -166,7 +166,7 @@ "category": "exosuit", "copy-from": "exo_psu_steel", "name": { "str": "carbide PSU plate (exosuit)", "str_pl": "carbide PSU plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of vacuum-cast carbide.", + "description": "Designed to attach to an exosuit's power supply unit, this is a sturdy plate of vacuum-cast carbide.", "weight": "55000 g", "volume": "10 L", "material": [ "vacuum_carbide" ], @@ -187,7 +187,7 @@ "type": "ARMOR", "category": "exosuit", "name": { "str": "steel arm plate (exosuit)", "str_pl": "steel arm plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", + "description": "Designed to attach to an exosuit's arms, these are sturdy plates of steel.", "weight": "30 g", "volume": "6500 ml", "material": [ "steel" ], @@ -214,7 +214,7 @@ "category": "exosuit", "copy-from": "exo_arm_steel", "name": { "str": "plastic arm plate (exosuit)", "str_pl": "plastic arm plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's arms, these are plates of plastic.", + "description": "Designed to attach to an exosuit's arms, these are plates of plastic.", "weight": "3000 g", "volume": "1500 ml", "material": [ "plastic" ], @@ -236,7 +236,7 @@ "category": "exosuit", "copy-from": "exo_arm_steel", "name": { "str": "carbide arm plate (exosuit)", "str_pl": "carbide arm plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of vacuum-cast carbide.", + "description": "Designed to attach to an exosuit's arms, these are sturdy plates of vacuum-cast carbide.", "weight": "38000 g", "volume": "1500 ml", "material": [ "vacuum_carbide" ], @@ -256,7 +256,7 @@ "type": "ARMOR", "category": "exosuit", "name": { "str": "steel leg plating (exosuit)", "str_pl": "steel leg plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", + "description": "Designed to attach to an exosuit's legs, these are sturdy plates of steel.", "weight": "33000 g", "volume": "10 L", "material": [ "steel" ], @@ -283,7 +283,7 @@ "category": "exosuit", "copy-from": "exo_leg_steel", "name": { "str": "plastic leg plating (exosuit)", "str_pl": "plastic leg plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's legs, these are plates of plastic.", + "description": "Designed to attach to an exosuit's legs, these are plates of plastic.", "weight": "6000 g", "volume": "10 L", "material": [ "plastic" ], @@ -304,7 +304,7 @@ "category": "exosuit", "copy-from": "exo_leg_steel", "name": { "str": "carbide leg plating (exosuit)", "str_pl": "carbide leg plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of vacuum-cast carbide.", + "description": "Designed to attach to an exosuit's legs, these are sturdy plates of vacuum-cast carbide.", "weight": "41000 g", "volume": "10 L", "material": [ "vacuum_carbide" ], diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 486bbc1b93999..c63db8d92e603 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -18,7 +18,7 @@ "copy-from": "bscabbard", "type": "ARMOR", "name": { "str_sp": "scabbard (exosuit)" }, - "description": "A metallic scabbard mountable on an exoskeleton hard point. Can be activated to sheath or draw a sword.", + "description": "A metallic scabbard mountable on an exosuit hard point. Can be activated to sheath or draw a sword.", "weight": "454 g", "volume": "2 L", "price": 18000, diff --git a/data/mods/Aftershock/items/vehicle_items.json b/data/mods/Aftershock/items/vehicle_items.json index 5836775d16410..33d3dbf9a87b4 100644 --- a/data/mods/Aftershock/items/vehicle_items.json +++ b/data/mods/Aftershock/items/vehicle_items.json @@ -20,7 +20,7 @@ "type": "GENERIC", "id": "exo_gantry", "copy-from": "vehicle_rig", - "name": "exoskeleton maintenance gantry", - "description": "A vehicle-mounted gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when activated from the vehicle's controls." + "name": { "str": "exosuit maintenance gantry", "str_pl": "exosuit maintenance gantries"}, + "description": "A vehicle-mounted gantry for supporting an exosuit upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when activated from the vehicle's controls." } ] diff --git a/data/mods/Aftershock/vehicles/vehicle_parts.json b/data/mods/Aftershock/vehicles/vehicle_parts.json index 8b0469d312eaf..c65dd74eff96c 100644 --- a/data/mods/Aftershock/vehicles/vehicle_parts.json +++ b/data/mods/Aftershock/vehicles/vehicle_parts.json @@ -368,7 +368,7 @@ { "type": "vehicle_part", "id": "exo_gantry", - "name": { "str": "exoskeleton maintenance gantry" }, + "name": { "str": "exosuit maintenance gantry" }, "symbol": "T", "categories": [ "utility" ], "color": "light_gray", @@ -377,7 +377,7 @@ "looks_like": "welding_rig", "damage_modifier": 10, "durability": 200, - "description": "A gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active.", + "description": "A gantry for supporting an exosuit upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active.", "size": 800, "bonus": 600, "item": "afs_metal_rig", diff --git a/tools/spell_checker/dictionary.txt b/tools/spell_checker/dictionary.txt index 8699a56508861..057f3099ee9c8 100644 --- a/tools/spell_checker/dictionary.txt +++ b/tools/spell_checker/dictionary.txt @@ -733,6 +733,8 @@ handloading hangry haori hardbound +hardpoint +hardpoints harmonically harries harvestable @@ -1757,6 +1759,8 @@ underbarrel undercovering underprepared underslung +undersuit +undersuits underwelming undulates uneasing From 9b5b1cbd0431c08f62bc25dbe62473969c93bd98 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sun, 23 Jan 2022 23:30:25 -0800 Subject: [PATCH 093/189] Linting --- .../items/armor/modular_exos/modular_exoskeleton.json | 4 +--- data/mods/Aftershock/items/vehicle_items.json | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index ccaf084199d47..e134a707a7acd 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -224,9 +224,7 @@ "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, "power_draw": 7123, "revert_to": "modular_exosuit", - "use_action": [ - { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exosuit" } - ] + "use_action": [ { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exosuit" } ] }, { "id": "exosuit_helmet", diff --git a/data/mods/Aftershock/items/vehicle_items.json b/data/mods/Aftershock/items/vehicle_items.json index 33d3dbf9a87b4..eff193c15724a 100644 --- a/data/mods/Aftershock/items/vehicle_items.json +++ b/data/mods/Aftershock/items/vehicle_items.json @@ -20,7 +20,7 @@ "type": "GENERIC", "id": "exo_gantry", "copy-from": "vehicle_rig", - "name": { "str": "exosuit maintenance gantry", "str_pl": "exosuit maintenance gantries"}, + "name": { "str": "exosuit maintenance gantry", "str_pl": "exosuit maintenance gantries" }, "description": "A vehicle-mounted gantry for supporting an exosuit upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when activated from the vehicle's controls." } ] From 1ed05b6ea50c13d259fdf80b94de370c1115cfe8 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 27 Jan 2022 23:58:51 -0800 Subject: [PATCH 094/189] Bump Tests --- data/mods/Aftershock/items/armor/modular_exos/exo_gear.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 60b31310f9524..bfec8b7f26fad 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -1,6 +1,6 @@ [ { - "id": "exo_mounted_drill", + "id": "exo_mounted_drill", "type": "TOOL_ARMOR", "name": { "str": "exosuit mounted drill" }, "category": "tool", From f321d4708d773d0f6a81b47d91f71e0a470f115b Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 6 Dec 2021 23:12:45 -0800 Subject: [PATCH 095/189] Draft Initial draft adding tool slots and tools for exoskeletons. --- .../Aftershock/items/armor/exoskeletons.json | 102 ++++++++++++++++++ data/mods/Aftershock/items/tools.json | 69 ++++++++++++ 2 files changed, 171 insertions(+) create mode 100644 data/mods/Aftershock/items/armor/exoskeletons.json diff --git a/data/mods/Aftershock/items/armor/exoskeletons.json b/data/mods/Aftershock/items/armor/exoskeletons.json new file mode 100644 index 0000000000000..a182bab890648 --- /dev/null +++ b/data/mods/Aftershock/items/armor/exoskeletons.json @@ -0,0 +1,102 @@ +[ + { + "id": "utility_exoskeleton_off", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "battery powered utility exoskeleton" }, + "//": "This is based on the Sarcos Guardian, a production model with independent battery power, all weather operation, and capable of lifting up to 200 lbs. It uses three 12 lb batteries that provide 8 hours of operation. The battery life in-game is significantly less in order to utilize medium storage batteries, otherwise this would require the unit to be active to reload itself. This can also be changed out to use other battery types.", + "description": "This is a skeletal frame of sturdy metal with attached motors to allow the user to move heavier loads with less strain on the body.", + "weight": "90 kg", + "volume": "130 L", + "price": 11500000, + "price_postapoc": 40000, + "to_hit": 1, + "bashing": 1, + "material": [ "steel", "plastic" ], + "symbol": "[", + "looks_like": "depowered_armor", + "color": "dark_gray", + "pocket_data": [{ "pocket_type": "MAGAZINE_WELL", "item_restriction": [ "medium_storage_battery" ] }, + { "pocket_type": "CONTAINER", "item_restriction": [ "exotool" ] }, + { "pocket_type": "CONTAINER", "item_restriction": [ "powered_exotool" ] }], + "warmth": 0, + "material_thickness": 8, + "environmental_protection": 0, + "ammo": "battery", + "charges_per_use": 1, + "use_action": { "type": "transform", "msg": "The %s engages.", "target": "utility_exoskeleton_on", "active": true }, + "flags": [ "STURDY", "OVERSIZE", "BELTED", "WATER_FRIENDLY", "SLOWS_MOVEMENT" ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 20 } ] } ] }, + "armor": [ + { + "encumbrance": 20, + "coverage": 20, + "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] + } + ] + }, + { + "id": "utility_exoskeleton_on", + "copy-from": "utility_exoskeleton_off", + "repairs_like": "utility_exoskeleton_off", + "looks_like": "power_armor_light", + "type": "TOOL_ARMOR", + "name": { "str": "battery powered utility exoskeleton (on)", "str_pl": "battery powered utility exoskeletons (on)" }, + "description": "This is a skeletal frame of sturdy metal with attached motors to allow the user to move heavier loads with less strain on the body. It is turned on and continually drawing power. Use it to turn it off.", + "flags": [ "STURDY", "OVERSIZE", "BELTED", "WATER_FRIENDLY", "TRADER_AVOID" ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 20 } ] } ] }, + "ammo": "battery", + "power_draw": 972216, + "//": "Battery should last two hours (02:00:07).", + "revert_to": "utility_exoskeleton_off", + "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "utility_exoskeleton_off" } + }, + { + "id": "ice_utility_exoskeleton_off", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "ICE utility exoskeleton" }, + "description": "This is a skeletal frame of sturdy metal with attached motors to allow the user to move heavier loads with less strain on the body. This model uses a compact internal combustion engine for power.", + "weight": "110 kg", + "volume": "130 L", + "price": 11500000, + "price_postapoc": 40000, + "to_hit": 1, + "bashing": 1, + "material": [ "steel", "plastic" ], + "symbol": "[", + "looks_like": "depowered_armor", + "color": "dark_gray", + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "watertight": true, "ammo_restriction": { "gasoline": 10000 } }, { "pocket_type": "CONTAINER", "item_restriction": [ "exotool" ] }, { "pocket_type": "CONTAINER", "item_restriction": [ "powered_exotool" ] } ], + "warmth": 0, + "material_thickness": 8, + "environmental_protection": 0, + "ammo": "gasoline", + "charges_per_use": 1, + "use_action": { "type": "transform", "msg": "The %s engages.", "target": "ice_utility_exoskeleton_on", "active": true }, + "flags": [ "STURDY", "OVERSIZE", "BELTED", "WATER_FRIENDLY", "SLOWS_MOVEMENT" ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 20 } ] } ] }, + "armor": [ + { + "encumbrance": 20, + "coverage": 20, + "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] + } + ] + }, + { + "id": "ice_utility_exoskeleton_on", + "copy-from": "ice_utility_exoskeleton_off", + "repairs_like": "ice_utility_exoskeleton_off", + "looks_like": "power_armor_light", + "type": "TOOL_ARMOR", + "name": { "str": "ICE utility exoskeleton (on)", "str_pl": "ICE utility exoskeletons (on)" }, + "description": "This is a skeletal frame of sturdy metal with attached motors to allow the user to move heavier loads with less strain on the body. This model uses a compact internal combustion engine for power. It is turned on and continually draining gasoline. Use it to turn it off.", + "flags": [ "STURDY", "OVERSIZE", "BELTED", "WATER_FRIENDLY", "TRADER_AVOID" ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 20 } ] } ] }, + "turns_per_charge": 1, + "//": "Full tank lasts a bit under three hours (166.66 minutes).", + "revert_to": "ice_utility_exoskeleton_off", + "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "ice_utility_exoskeleton_off" } + } +] \ No newline at end of file diff --git a/data/mods/Aftershock/items/tools.json b/data/mods/Aftershock/items/tools.json index 033c8adba84dd..e02f01fd06503 100644 --- a/data/mods/Aftershock/items/tools.json +++ b/data/mods/Aftershock/items/tools.json @@ -489,5 +489,74 @@ "symbol": "H", "color": "light_gray", "flags": [ "ALLOWS_REMOTE_USE" ] + }, + { + "id": "exotool", + "type": "TOOL", + "name": { "str": "exoskeleton tool set" }, + "description": "This is a tool module for a powered exoskeleton.", + "weight": "5 kg", + "volume": "5 L", + "longest_side": "75 cm", + "price": 10000, + "price_postapoc": 30000, + "material": [ "aluminum", "steel" ], + "symbol": "=", + "color": "light_gray", + "use_action": [ [ "CROWBAR", 0 ], [ "HAMMER", 0 ] ], + "qualities": [ + [ "HAMMER", 3 ], + [ "HAMMER_FINE", 1 ], + [ "SAW_W", 1 ], + [ "SAW_M", 2 ], + [ "SAW_M_FINE", 1 ], + [ "WRENCH", 2 ], + [ "WRENCH_FINE", 1 ], + [ "WHEEL_FAST", 1 ], + [ "SCREW", 1 ], + [ "SCREW_FINE", 1 ], + [ "CUT", 1 ], + [ "PRY", 1 ], + [ "PRYING_NAIL", 1 ], + [ "DRILL", 3 ], + [ "BUTCHER", -38 ] + ] + }, + { + "id": "powered_exotool", + "type": "TOOL", + "name": { "str": "exoskeleton powered tool set" }, + "description": "This is a tool module for a powered exoskeleton. It includes an arc welder and an electric jackhammer, powered by a heavy battery.", + "weight": "10 kg", + "volume": "5 L", + "longest_side": "75 cm", + "price": 10000, + "price_postapoc": 30000, + "material": [ "aluminum", "steel" ], + "symbol": "=", + "color": "light_gray", + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_HEAVY" ], + "default_magazine": "heavy_battery_cell" + } + ], + "ammo": [ "battery" ], + "charges_per_use": 5, + "qualities": [ [ "WELD", 2 ] ], + "use_action": [ + { + "type": "repair_item", + "item_action_type": "repair_metal", + "materials": [ "iron", "steel", "hardsteel", "aluminum", "copper", "bronze", "silver", "gold", "platinum", "superalloy" ], + "skill": "fabrication", + "tool_quality": 10, + "cost_scaling": 0.1, + "move_cost": 500 + }, + "JACKHAMMER" + ] } ] From afebbd58beac46d68528af84178feb144db3d214 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Tue, 7 Dec 2021 13:14:31 -0800 Subject: [PATCH 096/189] Modular Exos Adds a basic power armor frame with pockets for torso, back, arms, and legs. These pockets are for specific PA plating which uses the "CANT_WEAR" flag. Added draft steel plate for each location to verify functionality. --- data/mods - Shortcut.lnk | Bin 0 -> 1186 bytes .../Aftershock/items/armor/exoskeletons.json | 24 ++++++ .../items/armor/modular_exoskeleton.json | 80 ++++++++++++++++++ .../items/armor/modular_exoskeleton_case.json | 78 +++++++++++++++++ 4 files changed, 182 insertions(+) create mode 100644 data/mods - Shortcut.lnk create mode 100644 data/mods/Aftershock/items/armor/modular_exoskeleton.json create mode 100644 data/mods/Aftershock/items/armor/modular_exoskeleton_case.json diff --git a/data/mods - Shortcut.lnk b/data/mods - Shortcut.lnk new file mode 100644 index 0000000000000000000000000000000000000000..011192b5b533aa82fdd80d27b98ea232197986e2 GIT binary patch literal 1186 zcmbVLUr1A76#q?4w7*xgu(BM2X{BqzkR>UTP3J^%Y}r3<;MgWAcWt>FWxgdjM8g-2 z3<`^t4^1gbjQ)rP^&kkNuvPRB^p=%KFGVk%b2slML_z2B`@Zv?d+zU?@0@d+0BG{k zXa#1K74-wifrVaN+T+iL)dXeC&1bv!-#BTU}+}o=qU?1Cq{MjzIhWnRVkjy z<=12kR&+onQ!eZ(Q*W67hd1C4;-JdaOI+p==BjOEh9O>3Wb)H%IN(J9egw&$hxPW3-f*TULiQR{CSm>#x_XRkV zh|}dvj|lKk9KPvF4dyBDyGjk_LYd^hfk{)u*8c&X1V3lJ!WME~H45U_pHHSG?WM2%2}2d8t)iOnl1+eEiVoaEG%EB zo31(fB`5qWaPhfan*7)M$8>>gVC*!pRXFX=ullF&&FHs||A=l52iuBTI3`CbBorx! zc+<2fMIDt;OpKbCGA80*TDynINCpWUP`_L}y=2`k+*(d+9lX96*-7@b?7#un5R!EV zw$ND_c@rr(bL0X4fy|h}XZ~V6p`K=6qM6mAjd~_g{$6yEoxk2lfQg{~ucUVqIG5X< z?$YX!S2 Date: Wed, 8 Dec 2021 18:38:27 -0800 Subject: [PATCH 097/189] Armor types and power supplies Three different backpack power supplies exist (rechargeable, battery compartment, and gasoline), two types of destructible ablative armor are finished (steel and plastic). Initial sanity pass done on frame and armor balance. Next steps will be adding enhancement modules to increase carry weight, then more armor types like military composite, then pockets for tools/ammo/etc. --- .../items/armor/modular_exoskeleton.json | 163 ++++++++++++----- .../items/armor/modular_exoskeleton_case.json | 166 ++++++++++-------- 2 files changed, 213 insertions(+), 116 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exoskeleton.json index b3bf2651c2ecd..0a2ef6b7415a0 100644 --- a/data/mods/Aftershock/items/armor/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exoskeleton.json @@ -1,11 +1,11 @@ [ - { + { "id": "afs_pa_undersuit", "repairs_like": "thermal_suit", "type": "ARMOR", "copy-from": "jumpsuit", "looks_like": "robofac_enviro_suit", - "name": { "str": "powerframe undersuit" }, + "name": { "str": "exoskeleton undersuit" }, "description": "A form-fitting suit inlaid with meant to be worn beneath power armor. Although not a requirement for the operation of power armor, it features climate control and haptic feedback systems that offer improved performance and comfort. The suit is not designed for use outside of armor, it has no pockets, offers nearly no protection and damages easily.", "color": "brown", "material": [ "nomex", "plastic" ], @@ -19,62 +19,141 @@ ], "pocket_data": [ ], "warmth": 10, - "flags": [ "USE_UPS", "WATERPROOF", "POWERARMOR_COMPATIBLE" ] + "flags": [ "USE_UPS", "SKINTIGHT", "WATERPROOF", "POWERARMOR_COMPATIBLE" ] }, { - "id": "exoskeleton frame", - "type": "ARMOR", - "name": {"str": "exoskeleton frame"}, - "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools.", - "weight": "40 kg", - "volume": "130 L", - "price": 11500000, - "price_postapoc": 40000, - "to_hit": 1, - "bashing": 1, - "material": [ "steel", "plastic" ], + "id": "modular_exoskeleton_off", + "type": "TOOL_ARMOR", + "name": { "str": "exoskeleton frame", "str_pl": "exoskeleton frames" }, + "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs.", + "weight": "40 kg", + "volume": "130 L", + "price": 11500000, + "price_postapoc": 40000, + "to_hit": 1, + "bashing": 1, + "material": [ "steel", "plastic" ], "symbol": "[", "looks_like": "power_armor_basic", "color": "light_gray", "pocket_data": [ - { + { "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "6 L", - "max_contains_weight": "4200 g", + "ablative": true, + "max_contains_volume": "10 L", + "max_contains_weight": "15 kg", "item_restriction": [ "pa_torso_steel" ], "moves": 60 - }, - { + }, + { "pocket_type": "CONTAINER", "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", + "max_contains_volume": "50 L", + "max_contains_weight": "400 kg", "max_item_length": "200 mm", - "holster": true, - "item_restriction": [ "pa_torso_steel" ], + "item_restriction": [ "pa_back_battery" ], "moves": 60 - }, - { + }, + { "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", + "ablative": true, + "max_contains_volume": "10 L", + "max_contains_weight": "15 kg", "max_item_length": "200 mm", - "holster": true, - "item_restriction": [ "pa_torso_steel" ], + "item_restriction": [ "pa_arm_steel" ], "moves": 60 - }, - { + }, + { "pocket_type": "CONTAINER", - "rigid": true, - "max_contains_volume": "750 ml", - "max_contains_weight": "2 kg", + "ablative": true, + "max_contains_volume": "10 L", + "max_contains_weight": "15 kg", "max_item_length": "200 mm", - "holster": true, - "item_restriction": [ "pa_torso_steel" ], + "item_restriction": [ "pa_leg_steel" ], "moves": 60 - } - ] - } -] \ No newline at end of file + }], +"armor": [ + { + "encumbrance": 20, + "coverage": 100, + "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] + } + ], + "ammo": "battery", + "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] }, + "use_action": + { + "target": "modular_exoskeleton_low", + "msg": "You activate the exoskeleton on the lowest setting.", + "menu_text": "Low power", + "active": true, + "need_charges": 1, + "need_charges_msg": "The suit does not have enough charge.", + "type": "transform" + } + }, + { + "id": "modular_exoskeleton_low", + "copy-from": "modular_exoskeleton_off", + "repairs_like": "modular_exoskeleton_off", + "looks_like": "power_armor_light", + "type": "TOOL_ARMOR", + "name": { "str": "exoskeleton frame (on, low)", "str_pl": "exoskeleton frames (on, low)" }, + "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on to low power mode and continually drawing power. Use it to turn it off.", + "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] }, + "power_draw": 7123, + "revert_to": "modular_exoskeleton_off", + "use_action": { + "target": "modular_exoskeleton_med", + "msg": "You activate the exoskeleton on the middle setting.", + "menu_text": "Medium power", + "active": true, + "need_charges": 1, + "need_charges_msg": "The suit does not have enough charge.", + "type": "transform" + } + }, + { + "id": "modular_exoskeleton_med", + "copy-from": "modular_exoskeleton_off", + "repairs_like": "modular_exoskeleton_off", + "looks_like": "power_armor_light", + "type": "TOOL_ARMOR", + "name": { "str": "exoskeleton frame (on, med)", "str_pl": "exoskeleton frames (on, med)" }, + "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on to medium power mode and continually drawing power. Use it to turn it off.", + "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] }, + "power_draw": 8418, + "revert_to": "modular_exoskeleton_off", + "use_action": { +"target": "modular_exoskeleton_high", + "msg": "You activate the exoskeleton on the highest setting.", + "menu_text": "High power", + "active": true, + "need_charges": 1, + "need_charges_msg": "The suit does not have enough charge.", + "type": "transform" + } + }, + { + "id": "modular_exoskeleton_high", + "copy-from": "modular_exoskeleton_off", + "repairs_like": "modular_exoskeleton_off", + "looks_like": "power_armor_light", + "type": "TOOL_ARMOR", + "name": { "str": "exoskeleton frame (on, high)", "str_pl": "exoskeleton frames (on, high)" }, + "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on to high power mode and continually drawing power. Use it to turn it off.", + "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] }, + "power_draw": 8681, + "revert_to": "modular_exoskeleton_off", + "use_action": { + "type": "transform", + "menu_text": "Turn off", + "msg": "The exoskeleton powers off.", + "target": "modular_exoskeleton_off" + } + } +] diff --git a/data/mods/Aftershock/items/armor/modular_exoskeleton_case.json b/data/mods/Aftershock/items/armor/modular_exoskeleton_case.json index 76e5450237a14..379c4e9fcfabf 100644 --- a/data/mods/Aftershock/items/armor/modular_exoskeleton_case.json +++ b/data/mods/Aftershock/items/armor/modular_exoskeleton_case.json @@ -1,78 +1,96 @@ [ - { - "id": "pa_torso_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton torso steel plate"}, - "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", + { + "id": "pa_torso_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton torso steel plate" }, + "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", "weight": "4200 g", "volume": "6 L", - "material": ["steel"], - "symbol":"[", - "looks_like": "cuirass_lightplate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 4, - "flags": ["OUTER", "STURDY", "CANT_WEAR"], - "armor": [ - {"encumbrance": 20,"coverage": 95, "covers": ["torso"]} - ] - }, - { - "id": "pa_arm_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton arm steel plate"}, - "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", - "weight": "4200 g", - "volume": "6 L", - "material": ["steel"], - "symbol":"[", - "looks_like": "cuirass_lightplate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 4, - "flags": ["OUTER", "STURDY", "CANT_WEAR"], - "armor": [ - {"encumbrance": 20,"coverage": 95, "covers": ["arm_l","arm_r"]} - ] - }, - { - "id": "pa_leg_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton legs steel plate"}, - "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", - "weight": "4200 g", - "volume": "6 L", - "material": ["steel"], - "symbol":"[", - "looks_like": "cuirass_lightplate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 4, - "flags": ["OUTER", "STURDY", "CANT_WEAR"], - "armor": [ - {"encumbrance": 20,"coverage": 95, "covers": ["leg_l","leg_r"]} - ] - }, - { - "id": "pa_back_battery", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton battery power supply"}, - "description": "Designed to attach to an exoskeleton's back, this is a heavy battery unit.", - "weight": "4200 g", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "cuirass_lightplate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 4, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + }, + { + "id": "pa_arm_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton arm steel plate" }, + "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", + "weight": "2720 g", + "volume": "5500 ml", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "armguard_lightplate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 3, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ + { + "covers": [ "arm_l", "arm_r" ], + "encumbrance": 16, + "coverage": 95, + "cover_melee": 95, + "cover_ranged": 95, + "cover_vitals": 90, + "specifically_covers": [ "arm_lower_r", "arm_lower_l", "arm_elbow_r", "arm_elbow_l", "arm_upper_r", "arm_upper_l" ] + } + ] + }, + { + "id": "pa_leg_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton legs steel plate" }, + "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", + "weight": "4080 g", "volume": "6 L", - "material": ["steel"], - "symbol":"[", - "looks_like": "cuirass_lightplate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 4, - "flags": ["STURDY", "CANT_WEAR"], - "armor": [ - {"encumbrance": 20,"coverage": 95, "covers": ["torso"]} - ] - } -] \ No newline at end of file + "material": [ "steel" ], + "symbol": "L", + "looks_like": "legguard_lightplate", + "color": "light_gray", + "warmth": 10, + "material_thickness": 4, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ + { + "covers": [ "leg_l", "leg_r" ], + "encumbrance": 8, + "coverage": 95, + "cover_melee": 95, + "cover_ranged": 95, + "cover_vitals": 90, + "specifically_covers": [ "leg_lower_r", "leg_lower_l", "leg_knee_r", "leg_knee_l", "leg_upper_r", "leg_upper_l" ] + } + ] + }, + { + "id": "pa_back_battery", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton battery power supply" }, + "description": "Designed to attach to an exoskeleton's back, this is a heavy duty UPS with a replacable battery.", + "weight": "35000 g", + "volume": "6250 ml", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "UPS_off", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "item_restriction": [ "small_storage_battery", "storage_battery", "medium_storage_battery" ] + } + ] + } +] From 5ba3c207a02f530ddd260096650efbc140d77a3a Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 9 Dec 2021 10:35:23 -0800 Subject: [PATCH 098/189] Additional plating Adds military composite plating. Milcom plating is destroyed like ballistic plates. --- .../items/armor/modular_exoskeleton.json | 114 ++---- .../armor/modular_exoskeleton_modules.json | 165 ++++++++ .../armor/modular_exoskeleton_plating.json | 370 ++++++++++++++++++ 3 files changed, 574 insertions(+), 75 deletions(-) create mode 100644 data/mods/Aftershock/items/armor/modular_exoskeleton_modules.json create mode 100644 data/mods/Aftershock/items/armor/modular_exoskeleton_plating.json diff --git a/data/mods/Aftershock/items/armor/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exoskeleton.json index 0a2ef6b7415a0..584aba342baa7 100644 --- a/data/mods/Aftershock/items/armor/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exoskeleton.json @@ -28,10 +28,6 @@ "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs.", "weight": "40 kg", "volume": "130 L", - "price": 11500000, - "price_postapoc": 40000, - "to_hit": 1, - "bashing": 1, "material": [ "steel", "plastic" ], "symbol": "[", "looks_like": "power_armor_basic", @@ -39,54 +35,71 @@ "pocket_data": [ { "pocket_type": "CONTAINER", + "//": "This is a mounting point for torso armor.", "ablative": true, + "rigid": true, "max_contains_volume": "10 L", - "max_contains_weight": "15 kg", - "item_restriction": [ "pa_torso_steel" ], + "max_contains_weight": "45 kg", + "item_restriction": [ "pa_torso_steel", "pa_torso_plastic" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "//": "This is a hardpoint for storing items in the torso.", + "ablative": true, + "rigid": true, + "max_contains_volume": "2 L", + "max_contains_weight": "5 kg", + "item_restriction": [ "pa_medium_storage" ], "moves": 60 }, + { "pocket_type": "CONTAINER", + "//": "This is a mounting point for power supply units.", + "ablative": true, "rigid": true, - "max_contains_volume": "50 L", - "max_contains_weight": "400 kg", - "max_item_length": "200 mm", - "item_restriction": [ "pa_back_battery" ], + "max_contains_volume": "25 L", + "max_contains_weight": "140 kg", + "item_restriction": [ "pa_back_battery_compartment", "pa_back_battery_rechargable", "pa_back_gasoline" ], "moves": 60 }, { "pocket_type": "CONTAINER", + "//": "This is a mounting point for arm armor.", "ablative": true, - "max_contains_volume": "10 L", - "max_contains_weight": "15 kg", + "rigid": true, + "max_contains_volume": "8 L", + "max_contains_weight": "35 kg", "max_item_length": "200 mm", - "item_restriction": [ "pa_arm_steel" ], + "item_restriction": [ "pa_arm_steel", "pa_arm_plastic" ], "moves": 60 }, { "pocket_type": "CONTAINER", + "//": "This is a mounting point for leg armor.", "ablative": true, - "max_contains_volume": "10 L", - "max_contains_weight": "15 kg", + "rigid": true, + "max_contains_volume": "9 L", + "max_contains_weight": "40 kg", "max_item_length": "200 mm", - "item_restriction": [ "pa_leg_steel" ], + "item_restriction": [ "pa_leg_steel", "pa_leg_plastic" ], "moves": 60 }], "armor": [ { "encumbrance": 20, "coverage": 100, - "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] + "covers": [ "torso", "arm_l", "arm_r", "leg_l", "leg_r" ] } ], "ammo": "battery", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] }, + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 }] } ] }, "use_action": { - "target": "modular_exoskeleton_low", - "msg": "You activate the exoskeleton on the lowest setting.", - "menu_text": "Low power", + "target": "modular_exoskeleton_on", + "msg": "The %s engages.", "active": true, "need_charges": 1, "need_charges_msg": "The suit does not have enough charge.", @@ -94,66 +107,17 @@ } }, { - "id": "modular_exoskeleton_low", + "id": "modular_exoskeleton_on", "copy-from": "modular_exoskeleton_off", "repairs_like": "modular_exoskeleton_off", "looks_like": "power_armor_light", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton frame (on, low)", "str_pl": "exoskeleton frames (on, low)" }, - "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on to low power mode and continually drawing power. Use it to turn it off.", + "name": { "str": "exoskeleton frame (on)", "str_pl": "exoskeleton frames (on)" }, + "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on and continually drawing power. Use it to turn it off.", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] }, + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 }] } ] }, "power_draw": 7123, "revert_to": "modular_exoskeleton_off", - "use_action": { - "target": "modular_exoskeleton_med", - "msg": "You activate the exoskeleton on the middle setting.", - "menu_text": "Medium power", - "active": true, - "need_charges": 1, - "need_charges_msg": "The suit does not have enough charge.", - "type": "transform" - } - }, - { - "id": "modular_exoskeleton_med", - "copy-from": "modular_exoskeleton_off", - "repairs_like": "modular_exoskeleton_off", - "looks_like": "power_armor_light", - "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton frame (on, med)", "str_pl": "exoskeleton frames (on, med)" }, - "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on to medium power mode and continually drawing power. Use it to turn it off.", - "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] }, - "power_draw": 8418, - "revert_to": "modular_exoskeleton_off", - "use_action": { -"target": "modular_exoskeleton_high", - "msg": "You activate the exoskeleton on the highest setting.", - "menu_text": "High power", - "active": true, - "need_charges": 1, - "need_charges_msg": "The suit does not have enough charge.", - "type": "transform" - } - }, - { - "id": "modular_exoskeleton_high", - "copy-from": "modular_exoskeleton_off", - "repairs_like": "modular_exoskeleton_off", - "looks_like": "power_armor_light", - "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton frame (on, high)", "str_pl": "exoskeleton frames (on, high)" }, - "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on to high power mode and continually drawing power. Use it to turn it off.", - "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] }, - "power_draw": 8681, - "revert_to": "modular_exoskeleton_off", - "use_action": { - "type": "transform", - "menu_text": "Turn off", - "msg": "The exoskeleton powers off.", - "target": "modular_exoskeleton_off" + "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exoskeleton_off" } } - } ] diff --git a/data/mods/Aftershock/items/armor/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exoskeleton_modules.json new file mode 100644 index 0000000000000..d54a79777c2fe --- /dev/null +++ b/data/mods/Aftershock/items/armor/modular_exoskeleton_modules.json @@ -0,0 +1,165 @@ +[ + { + "id": "pa_back_battery_compartment", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton swapable battery power supply" }, + "description": "Designed to attach to an exoskeleton's back, this is a large battery compartment with an integrated UPS.", + "weight": "5 kg", + "volume": "25 L", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "it_battery_mount", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "armor": [ { "encumbrance": 0, "coverage": 50, "covers": [ "torso" ] } ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "//": "This is a storage compartment for a battery.", + "rigid": true, + "item_restriction": [ "battery_car", "battery_motorbike", "small_storage_battery", "medium_storage_battery" ] + }, + { + "pocket_type": "CONTAINER", + "//": "This is a mounting point for armor protecting the PSU.", + "ablative": true, + "rigid": true, + "max_contains_volume": "10 L", + "max_contains_weight": "145 kg", + "item_restriction": [ "pa_psu_steel", "pa_psu_plastic" ], + "moves": 60 + } + ] + }, + { + "id": "pa_back_battery_rechargable", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton rechargable battery power supply" }, + "description": "Designed to attach to an exoskeleton's back, this is a large rechargable battery with an integrated UPS.", + "weight": "5 kg", + "volume": "25 L", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "storage_battery", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS" ], + "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 40000 } }, + { + "pocket_type": "CONTAINER", + "//": "This is a mounting point for armor protecting the PSU.", + "rigid": true, + "ablative": true, + "max_contains_volume": "10 L", + "max_contains_weight": "145 kg", + "item_restriction": [ "pa_psu_steel", "pa_psu_plastic" ], + "moves": 60 + } + ] + }, + { + "id": "pa_back_gasoline", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton ICE (gasoline) power supply" }, + "description": "Designed to attach to an exoskeleton's back, this is a gasoline generator with an integrated UPS.", + "weight": "20 kg", + "volume": "25 L", + "material": [ "steel", "plastic" ], + "symbol": "#", + "looks_like": "1cyl_combustion", + "color": "dark_gray", + "ammo": "gasoline", + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE", + "//": "This is a tank for gasoline Holds up to 10 liters.", + "rigid": true, + "watertight": true, + "ammo_restriction": { "gasoline": 10000 }}, + { + "pocket_type": "CONTAINER", + "//": "This is a mounting point for armor protecting the PSU.", + "ablative": true, + "rigid": true, + "max_contains_volume": "10 L", + "max_contains_weight": "145 kg", + "item_restriction": [ "pa_psu_steel", "pa_psu_plastic" ], + "moves": 60 + } + ] + }, + { + "id": "pa_medium_storage", + "repairs_like": "backpack", + "type": "ARMOR", + "name": { "str": "medium storage pouch" }, + "description": "Provides a bit of extra storage, with minimal encumbrance.", + "weight": "272 g", + "volume": "1050 ml", + "material": [ "nylon", "plastic" ], + "symbol": "[", + "looks_like": "holster", + "color": "green", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "2500 ml", + "max_contains_weight": "5 kg", + "max_item_length": "25 cm", + "magazine_well": "1 L", + "moves": 80 + } + ], + "material_thickness": 0.1, + "flags": [ "BELTED", "WATER_FRIENDLY" ], + "armor": [ { "encumbrance": [ 1, 3 ], "coverage": 10, "covers": [ "torso" ], "specifically_covers": [ "torso_lower" ] } ] + }, + { + "id": "legrig", + "type": "ARMOR", + "name": { "str": "pair of drop leg pouches", "str_pl": "pairs of drop leg pouches" }, + "description": "A set of pouches that can be worn on the thighs using buckled straps. This variety is favored by the military.", + "weight": "205 g", + "volume": "1050 ml", + "price": 3000, + "price_postapoc": 250, + "material": [ "nylon" ], + "symbol": "[", + "color": "dark_gray", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "2250 ml", + "max_contains_weight": "2 kg", + "max_item_length": "30 cm", + "magazine_well": "500 ml", + "moves": 200 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "2250 ml", + "max_contains_weight": "2 kg", + "max_item_length": "30 cm", + "magazine_well": "500 ml", + "moves": 200 + } + ], + "material_thickness": 0.2, + "flags": [ "VARSIZE", "WATER_FRIENDLY", "BELTED" ], + "armor": [ + { + "encumbrance": [ 2, 5 ], + "coverage": 50, + "covers": [ "leg_l", "leg_r" ], + "specifically_covers": [ "leg_upper_r", "leg_upper_l" ] + } + ] + } + ] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exoskeleton_plating.json new file mode 100644 index 0000000000000..1a938f42447b4 --- /dev/null +++ b/data/mods/Aftershock/items/armor/modular_exoskeleton_plating.json @@ -0,0 +1,370 @@ +[ + { + "id": "pa_torso_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton torso steel plate" }, + "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", + "weight": "4200 g", + "volume": "8 L", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "cuirass_lightplate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 4, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + }, + { + "id": "pa_psu_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton PSU steel plate" }, + "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of steel.", + "weight": "107333 g", + "volume": "10 L", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "backpack_tactical_large", + "color": "light_gray", + "warmth": 0, + "material_thickness": 4, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + }, + { + "id": "pa_arm_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton arm steel plate" }, + "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", + "weight": "2720 g", + "volume": "5500 ml", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "armguard_lightplate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 3, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ + { + "covers": [ "arm_l", "arm_r" ], + "encumbrance": 16, + "coverage": 95, + "cover_melee": 95, + "cover_ranged": 95, + "cover_vitals": 90, + "specifically_covers": [ "arm_lower_r", "arm_lower_l", "arm_elbow_r", "arm_elbow_l", "arm_upper_r", "arm_upper_l" ] + } + ] + }, + { + "id": "pa_leg_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton legs steel plate" }, + "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", + "weight": "4080 g", + "volume": "8 L", + "material": [ "steel" ], + "symbol": "L", + "looks_like": "legguard_lightplate", + "color": "light_gray", + "warmth": 10, + "material_thickness": 4, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ + { + "covers": [ "leg_l", "leg_r" ], + "encumbrance": 8, + "coverage": 95, + "cover_melee": 95, + "cover_ranged": 95, + "cover_vitals": 90, + "specifically_covers": [ "leg_lower_r", "leg_lower_l", "leg_knee_r", "leg_knee_l", "leg_upper_r", "leg_upper_l" ] + } + ] + }, + { + "id": "pa_torso_plastic", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton torso plastic plate" }, + "description": "Designed to attach to an exoskeleton's torso, this is a plate of plastic.", + "weight": "3432 g", + "volume": "8 L", + "material": [ "plastic" ], + "symbol": "[", + "looks_like": "cuirass_lightplate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 4, + "non_functional": "destroyed_pa_torso_plastic_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + }, + { + "id": "destroyed_pa_torso_plastic_plate", + "type": "ARMOR", + "copy-from": "pa_torso_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection just weight.", + "looks_like": "pa_torso_plastic", + "material": [ "plastic" ], + "material_thickness": 2, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] + }, + { + "id": "pa_psu_plastic", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton PSU plastic plate" }, + "description": "Designed to attach to an exoskeleton's power supply unit, this is a plate of plastic.", + "weight": "4290 g", + "volume": "10 L", + "material": [ "plastic" ], + "symbol": "[", + "looks_like": "backpack_tactical_large", + "color": "light_gray", + "warmth": 0, + "material_thickness": 4, + "non_functional": "destroyed_pa_psu_plastic_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + }, + { + "id": "destroyed_pa_psu_plastic_plate", + "type": "ARMOR", + "copy-from": "pa_psu_plastic", + "name": { "str": "shattered plastic PSU plate" }, + "description": "The remains of a plastic PSU plate after taking a strong impact. No longer provides functional protection just weight.", + "looks_like": "pa_psu_plastic", + "material": [ "plastic" ], + "material_thickness": 2, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] + }, + { + "id": "pa_arm_plastic", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton arm plastic plate" }, + "description": "Designed to attach to an exoskeleton's arms, these are plates of plastic.", + "weight": "2574 g", + "volume": "5500 ml", + "material": [ "plastic" ], + "symbol": "[", + "looks_like": "armguard_lightplate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 3, + "non_functional": "destroyed_pa_arm_plastic_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ + { + "covers": [ "arm_l", "arm_r" ], + "encumbrance": 16, + "coverage": 95, + "cover_melee": 95, + "cover_ranged": 95, + "cover_vitals": 90, + "specifically_covers": [ "arm_lower_r", "arm_lower_l", "arm_elbow_r", "arm_elbow_l", "arm_upper_r", "arm_upper_l" ] + } + ] + }, + { + "id": "destroyed_pa_arm_plastic_plate", + "type": "ARMOR", + "copy-from": "pa_arm_plastic", + "name": { "str": "shattered plastic arm plate" }, + "description": "The remains of a plastic arm plate after taking a strong impact. No longer provides functional protection just weight.", + "looks_like": "pa_arm_plastic", + "material": [ "plastic" ], + "material_thickness": 2, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] + }, + { + "id": "pa_leg_plastic", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton legs plastic plate" }, + "description": "Designed to attach to an exoskeleton's legs, these are plates of plastic.", + "weight": "3003 g", + "volume": "8 L", + "material": [ "plastic" ], + "symbol": "L", + "looks_like": "legguard_lightplate", + "color": "light_gray", + "warmth": 10, + "material_thickness": 4, + "non_functional": "destroyed_pa_leg_plastic_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ + { + "covers": [ "leg_l", "leg_r" ], + "encumbrance": 8, + "coverage": 95, + "cover_melee": 95, + "cover_ranged": 95, + "cover_vitals": 90, + "specifically_covers": [ "leg_lower_r", "leg_lower_l", "leg_knee_r", "leg_knee_l", "leg_upper_r", "leg_upper_l" ] + } + ] + }, + { + "id": "destroyed_pa_leg_plastic_plate", + "type": "ARMOR", + "copy-from": "pa_leg_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection just weight.", + "looks_like": "pa_leg_plastic", + "material": [ "plastic" ], + "material_thickness": 2, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] + }, + { + "id": "pa_torso_milcomp", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton torso military composite plate" }, + "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of military composite.", + "weight": "44000 g", + "volume": "8 L", + "material": [ "military composite", "ceramic" ], + "symbol": "[", + "looks_like": "cuirass_lightplate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 4, + "non_functional": "destroyed_pa_torso_milcomp_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + }, + { + "id": "destroyed_pa_torso_milcomp_plate", + "type": "ARMOR", + "copy-from": "pa_torso_milcomp", + "name": { "str": "shattered military composite torso plate" }, + "description": "The remains of a military composite torso plate after taking a strong impact. No longer provides functional protection just weight.", + "looks_like": "pa_torso_milcomp", + "material": [ "military composite", "ceramic" ], + "material_thickness": 2, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] + }, + { + "id": "pa_psu_milcomp", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton PSU military composite plate" }, + "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of military composite.", + "weight": "55000 g", + "volume": "10 L", + "material": [ "military composite", "ceramic" ], + "symbol": "[", + "looks_like": "backpack_tactical_large", + "color": "light_gray", + "warmth": 0, + "material_thickness": 4, + "non_functional": "destroyed_pa_psu_milcomp_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + }, + { + "id": "destroyed_pa_psu_milcomp_plate", + "type": "ARMOR", + "copy-from": "pa_psu_milcomp", + "name": { "str": "shattered military composite PSU plate" }, + "description": "The remains of a military composite PSU plate after taking a strong impact. No longer provides functional protection just weight.", + "looks_like": "pa_psu_milcomp", + "material": [ "military composite", "ceramic" ], + "material_thickness": 2, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] + }, + { + "id": "pa_arm_milcomp", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton arm military composite plate" }, + "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of military composite.", + "weight": "33000 g", + "volume": "5500 ml", + "material": [ "military composite", "ceramic" ], + "symbol": "[", + "looks_like": "armguard_lightplate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 3, + "non_functional": "destroyed_pa_arm_milcomp_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ + { + "covers": [ "arm_l", "arm_r" ], + "encumbrance": 16, + "coverage": 95, + "cover_melee": 95, + "cover_ranged": 95, + "cover_vitals": 90, + "specifically_covers": [ "arm_lower_r", "arm_lower_l", "arm_elbow_r", "arm_elbow_l", "arm_upper_r", "arm_upper_l" ] + } + ] + }, + { + "id": "destroyed_pa_arm_milcomp_plate", + "type": "ARMOR", + "copy-from": "pa_arm_milcomp", + "name": { "str": "shattered military composite arm plate" }, + "description": "The remains of a military composite arm plate after taking a strong impact. No longer provides functional protection just weight.", + "looks_like": "pa_arm_milcomp", + "material": [ "military composite", "ceramic" ], + "material_thickness": 2, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] + }, + { + "id": "pa_leg_milcomp", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton legs military composite plate" }, + "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of military composite.", + "weight": "38500 g", + "volume": "8 L", + "material": [ "military composite", "ceramic" ], + "symbol": "L", + "looks_like": "legguard_lightplate", + "color": "light_gray", + "warmth": 10, + "material_thickness": 4, + "non_functional": "destroyed_pa_leg_milcomp_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ + { + "covers": [ "leg_l", "leg_r" ], + "encumbrance": 8, + "coverage": 95, + "cover_melee": 95, + "cover_ranged": 95, + "cover_vitals": 90, + "specifically_covers": [ "leg_lower_r", "leg_lower_l", "leg_knee_r", "leg_knee_l", "leg_upper_r", "leg_upper_l" ] + } + ] + }, + { + "id": "destroyed_pa_leg_milcomp_plate", + "type": "ARMOR", + "copy-from": "pa_leg_milcomp", + "name": { "str": "shattered military composite leg plate" }, + "description": "The remains of a military composite leg plate after taking a strong impact. No longer provides functional protection just weight.", + "looks_like": "pa_leg_milcomp", + "material": [ "military composite", "ceramic" ], + "material_thickness": 2, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] + } +] From 5ee66963f539f2f2bc947bebb88d8ee94ac77345 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 9 Dec 2021 12:57:08 -0800 Subject: [PATCH 099/189] Modules Adds two module types in two sizes. APUs as additional battery storage and load bearing modules to reduce the carry weight. --- .../items/armor/modular_exos/exo_gadgets.json | 71 ++++ .../{ => modular_exos}/exoskeletons.json | 0 .../modular_exoskeleton.json | 103 ++++-- .../modular_exoskeleton_modules.json | 226 ++++++++++++ .../modular_exoskeleton_plating.json | 104 +++--- .../modular_exoskeleton_storage.json | 321 ++++++++++++++++++ .../items/armor/modular_exoskeleton_case.json | 96 ------ .../armor/modular_exoskeleton_modules.json | 165 --------- data/mods/Aftershock/items/tools.json | 69 ---- 9 files changed, 736 insertions(+), 419 deletions(-) create mode 100644 data/mods/Aftershock/items/armor/modular_exos/exo_gadgets.json rename data/mods/Aftershock/items/armor/{ => modular_exos}/exoskeletons.json (100%) rename data/mods/Aftershock/items/armor/{ => modular_exos}/modular_exoskeleton.json (59%) create mode 100644 data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json rename data/mods/Aftershock/items/armor/{ => modular_exos}/modular_exoskeleton_plating.json (84%) create mode 100644 data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json delete mode 100644 data/mods/Aftershock/items/armor/modular_exoskeleton_case.json delete mode 100644 data/mods/Aftershock/items/armor/modular_exoskeleton_modules.json diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gadgets.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gadgets.json new file mode 100644 index 0000000000000..028aa07ec691b --- /dev/null +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gadgets.json @@ -0,0 +1,71 @@ +[ + { + "id": "exotool", + "type": "TOOL", + "name": { "str": "exoskeleton tool set" }, + "description": "This is a tool module for a powered exoskeleton.", + "weight": "5 kg", + "volume": "5 L", + "longest_side": "75 cm", + "price": 10000, + "price_postapoc": 30000, + "material": [ "aluminum", "steel" ], + "symbol": "=", + "color": "light_gray", + "use_action": [ [ "CROWBAR", 0 ], [ "HAMMER", 0 ] ], + "qualities": [ + [ "HAMMER", 3 ], + [ "HAMMER_FINE", 1 ], + [ "SAW_W", 1 ], + [ "SAW_M", 2 ], + [ "SAW_M_FINE", 1 ], + [ "WRENCH", 2 ], + [ "WRENCH_FINE", 1 ], + [ "WHEEL_FAST", 1 ], + [ "SCREW", 1 ], + [ "SCREW_FINE", 1 ], + [ "CUT", 1 ], + [ "PRY", 1 ], + [ "PRYING_NAIL", 1 ], + [ "DRILL", 3 ], + [ "BUTCHER", -38 ] + ] + }, + { + "id": "powered_exotool", + "type": "TOOL", + "name": { "str": "exoskeleton powered tool set" }, + "description": "This is a tool module for a powered exoskeleton. It includes an arc welder and an electric jackhammer, powered by a heavy battery.", + "weight": "10 kg", + "volume": "5 L", + "longest_side": "75 cm", + "price": 10000, + "price_postapoc": 30000, + "material": [ "aluminum", "steel" ], + "symbol": "=", + "color": "light_gray", + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_HEAVY" ], + "default_magazine": "heavy_battery_cell" + } + ], + "ammo": [ "battery" ], + "charges_per_use": 5, + "qualities": [ [ "WELD", 2 ] ], + "use_action": [ + { + "type": "repair_item", + "item_action_type": "repair_metal", + "materials": [ "iron", "steel", "hardsteel", "aluminum", "copper", "bronze", "silver", "gold", "platinum", "superalloy" ], + "skill": "fabrication", + "tool_quality": 10, + "cost_scaling": 0.1, + "move_cost": 500 + }, + "JACKHAMMER" + ] + } + ] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/exoskeletons.json b/data/mods/Aftershock/items/armor/modular_exos/exoskeletons.json similarity index 100% rename from data/mods/Aftershock/items/armor/exoskeletons.json rename to data/mods/Aftershock/items/armor/modular_exos/exoskeletons.json diff --git a/data/mods/Aftershock/items/armor/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json similarity index 59% rename from data/mods/Aftershock/items/armor/modular_exoskeleton.json rename to data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 584aba342baa7..0331d8685e51e 100644 --- a/data/mods/Aftershock/items/armor/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -1,6 +1,6 @@ [ { - "id": "afs_pa_undersuit", + "id": "afs_exo_undersuit", "repairs_like": "thermal_suit", "type": "ARMOR", "copy-from": "jumpsuit", @@ -35,77 +35,106 @@ "pocket_data": [ { "pocket_type": "CONTAINER", - "//": "This is a mounting point for torso armor.", - "ablative": true, + "//": "This is a mounting point for torso armor.", + "ablative": true, "rigid": true, "max_contains_volume": "10 L", "max_contains_weight": "45 kg", - "item_restriction": [ "pa_torso_steel", "pa_torso_plastic" ], + "item_restriction": [ "exo_torso_steel", "exo_torso_plastic" ], "moves": 60 }, - { - "pocket_type": "CONTAINER", - "//": "This is a hardpoint for storing items in the torso.", - "ablative": true, + { + "pocket_type": "CONTAINER", + "//": "This is a hardpoint for storing items in the torso.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "item_restriction": [ "pa_medium_storage" ], + "item_restriction": [ + "exo_small_storage", + "exo_medium_storage", + "exo_large_ammo_pouch", + "exo_small_ammo_pouch", + "exo_small_aux_power", + "exo_small_carry_off", + "exo_small_carry_on" + ], "moves": 60 }, - { "pocket_type": "CONTAINER", - "//": "This is a mounting point for power supply units.", - "ablative": true, + "//": "This is a mounting point for power supply units or large modules.", + "ablative": true, "rigid": true, "max_contains_volume": "25 L", "max_contains_weight": "140 kg", - "item_restriction": [ "pa_back_battery_compartment", "pa_back_battery_rechargable", "pa_back_gasoline" ], + "item_restriction": [ + "exo_back_battery_compartment", + "exo_back_battery_rechargable", + "exo_back_gasoline", + "exo_large_storage", + "exo_large_aux_power", + "exo_small_aux_power", + "exo_large_carry_off", + "exo_large_carry_on", + "exo_small_carry_off", + "exo_small_carry_on" + ], "moves": 60 }, { "pocket_type": "CONTAINER", - "//": "This is a mounting point for arm armor.", - "ablative": true, + "//": "This is a mounting point for arm armor.", + "ablative": true, "rigid": true, "max_contains_volume": "8 L", "max_contains_weight": "35 kg", "max_item_length": "200 mm", - "item_restriction": [ "pa_arm_steel", "pa_arm_plastic" ], + "item_restriction": [ "exo_arm_steel", "exo_arm_plastic" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "//": "This is a hardpoint for storing items on the arms.", + "rigid": true, + "max_contains_volume": "1 L", + "max_contains_weight": "5 kg", + "item_restriction": [ "exo_small_storage", "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", "exo_small_carry_on" ], "moves": 60 }, { "pocket_type": "CONTAINER", - "//": "This is a mounting point for leg armor.", - "ablative": true, + "//": "This is a mounting point for leg armor.", + "ablative": true, "rigid": true, "max_contains_volume": "9 L", "max_contains_weight": "40 kg", "max_item_length": "200 mm", - "item_restriction": [ "pa_leg_steel", "pa_leg_plastic" ], + "item_restriction": [ "exo_leg_steel", "exo_leg_plastic" ], "moves": 60 - }], -"armor": [ + }, { - "encumbrance": 20, - "coverage": 100, - "covers": [ "torso", "arm_l", "arm_r", "leg_l", "leg_r" ] + "pocket_type": "CONTAINER", + "//": "This is a hardpoint for storing items on the legs.", + "rigid": true, + "max_contains_volume": "1 L", + "max_contains_weight": "5 kg", + "item_restriction": [ "exo_small_storage", "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", "exo_small_carry_on" ], + "moves": 60 } ], + "armor": [ { "encumbrance": 20, "coverage": 100, "covers": [ "torso", "arm_l", "arm_r", "leg_l", "leg_r" ] } ], "ammo": "battery", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 }] } ] }, - "use_action": - { - "target": "modular_exoskeleton_on", - "msg": "The %s engages.", - "active": true, - "need_charges": 1, - "need_charges_msg": "The suit does not have enough charge.", - "type": "transform" - } - }, + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, + "use_action": { + "target": "modular_exoskeleton_on", + "msg": "The %s engages.", + "active": true, + "need_charges": 1, + "need_charges_msg": "The suit does not have enough charge.", + "type": "transform" + } + }, { "id": "modular_exoskeleton_on", "copy-from": "modular_exoskeleton_off", @@ -115,9 +144,9 @@ "name": { "str": "exoskeleton frame (on)", "str_pl": "exoskeleton frames (on)" }, "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on and continually drawing power. Use it to turn it off.", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 }] } ] }, + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, "power_draw": 7123, "revert_to": "modular_exoskeleton_off", "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exoskeleton_off" } - } + } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json new file mode 100644 index 0000000000000..7089174dfeb19 --- /dev/null +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -0,0 +1,226 @@ +[ + { + "id": "exo_back_battery_compartment", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton swapable battery power supply" }, + "description": "Designed to attach to an exoskeleton's back, this is a large battery compartment with an integrated UPS.", + "weight": "5 kg", + "volume": "25 L", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "it_battery_mount", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "armor": [ { "encumbrance": 0, "coverage": 50, "covers": [ "torso" ] } ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "//": "This is a storage compartment for a battery.", + "rigid": true, + "item_restriction": [ "battery_car", "battery_motorbike", "small_storage_battery", "medium_storage_battery" ] + }, + { + "pocket_type": "CONTAINER", + "//": "This is a mounting point for armor protecting the PSU.", + "ablative": true, + "rigid": true, + "max_contains_volume": "10 L", + "max_contains_weight": "145 kg", + "item_restriction": [ "exo_psu_steel", "exo_psu_plastic" ], + "moves": 60 + } + ] + }, + { + "id": "exo_back_battery_rechargable", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton rechargable battery power supply" }, + "description": "Designed to attach to an exoskeleton's back, this is a large rechargable battery with an integrated UPS.", + "weight": "5 kg", + "volume": "25 L", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "storage_battery", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS" ], + "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], + "pocket_data": [ + { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 40000 } }, + { + "pocket_type": "CONTAINER", + "//": "This is a mounting point for armor protecting the PSU.", + "rigid": true, + "ablative": true, + "max_contains_volume": "10 L", + "max_contains_weight": "145 kg", + "item_restriction": [ "exo_psu_steel", "exo_psu_plastic" ], + "moves": 60 + } + ] + }, + { + "id": "exo_back_gasoline", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton ICE power supply" }, + "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS.", + "weight": "20 kg", + "volume": "25 L", + "material": [ "steel", "plastic" ], + "symbol": "#", + "looks_like": "1cyl_combustion", + "color": "dark_gray", + "ammo": "gasoline", + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE", + "//": "This is a tank for gasoline. Holds up to 10 liters.", + "rigid": true, + "watertight": true, + "ammo_restriction": { "gasoline": 10000 } + }, + { + "pocket_type": "CONTAINER", + "//": "This is a mounting point for armor protecting the PSU.", + "ablative": true, + "rigid": true, + "max_contains_volume": "10 L", + "max_contains_weight": "145 kg", + "item_restriction": [ "exo_psu_steel", "exo_psu_plastic" ], + "moves": 60 + } + ] + }, + { + "id": "exo_large_aux_power", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton large APU" }, + "description": "This is a large rechargable auxiliary power unit that attaches to a hardpoint.", + "weight": "4 kg", + "volume": "5 L", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "storage_battery", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 4000 } } ] + }, + { + "id": "exo_small_aux_power", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton small APU" }, + "description": "This is a small rechargable auxiliary power unit that attaches to a hardpoint.", + "weight": "2 kg", + "volume": "1 L", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "storage_battery", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 1000 } } ] + }, + { + "id": "exo_large_carry_off", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton large APU" }, + "description": "This is a large rechargable auxiliary power unit that attaches to a hardpoint.", + "weight": "4 kg", + "volume": "5 L", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "storage_battery", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "relic_data": { + "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] + }, + "use_action": { + "target": "exo_large_carry_on", + "msg": "The %s engages.", + "active": true, + "need_charges": 1, + "need_charges_msg": "The APU does not have enough charge.", + "type": "transform" + } + }, + { + "id": "exo_large_carry_on", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton large APU" }, + "description": "This is a large rechargable auxiliary power unit that attaches to a hardpoint.", + "weight": "4 kg", + "volume": "5 L", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "storage_battery", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "relic_data": { + "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] + }, + "power_draw": 1500, + "revert_to": "exo_large_carry_off", + "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "exo_large_carry_off" } + }, + { + "id": "exo_small_carry_off", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton small APU" }, + "description": "This is a small rechargable auxiliary power unit that attaches to a hardpoint.", + "weight": "2 kg", + "volume": "1 L", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "storage_battery", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "relic_data": { + "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 50 } ] } ] + }, + "use_action": { + "target": "exo_small_carry_on", + "msg": "The %s engages.", + "active": true, + "need_charges": 1, + "need_charges_msg": "The APU does not have enough charge.", + "type": "transform" + } + }, + { + "id": "exo_small_carry_on", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "exoskeleton large APU" }, + "description": "This is a large rechargable auxiliary power unit that attaches to a hardpoint.", + "weight": "4 kg", + "volume": "5 L", + "material": [ "plastic", "steel" ], + "symbol": "=", + "looks_like": "storage_battery", + "color": "light_gray", + "ammo": [ "battery" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "relic_data": { + "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 50 } ] } ] + }, + "power_draw": 750, + "revert_to": "exo_small_carry_on", + "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "exo_small_carry_on" } + } +] diff --git a/data/mods/Aftershock/items/armor/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json similarity index 84% rename from data/mods/Aftershock/items/armor/modular_exoskeleton_plating.json rename to data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 1a938f42447b4..07a1270b64bf0 100644 --- a/data/mods/Aftershock/items/armor/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -1,6 +1,6 @@ [ { - "id": "pa_torso_steel", + "id": "exo_torso_steel", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton torso steel plate" }, @@ -17,7 +17,7 @@ "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { - "id": "pa_psu_steel", + "id": "exo_psu_steel", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton PSU steel plate" }, @@ -34,7 +34,7 @@ "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { - "id": "pa_arm_steel", + "id": "exo_arm_steel", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton arm steel plate" }, @@ -61,7 +61,7 @@ ] }, { - "id": "pa_leg_steel", + "id": "exo_leg_steel", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton legs steel plate" }, @@ -88,7 +88,7 @@ ] }, { - "id": "pa_torso_plastic", + "id": "exo_torso_plastic", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton torso plastic plate" }, @@ -101,24 +101,24 @@ "color": "light_gray", "warmth": 20, "material_thickness": 4, - "non_functional": "destroyed_pa_torso_plastic_plate", + "non_functional": "destroyed_exo_torso_plastic_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { - "id": "destroyed_pa_torso_plastic_plate", + "id": "destroyed_exo_torso_plastic_plate", "type": "ARMOR", - "copy-from": "pa_torso_plastic", + "copy-from": "exo_torso_plastic", "name": { "str": "shattered plastic leg plate" }, "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection just weight.", - "looks_like": "pa_torso_plastic", + "looks_like": "exo_torso_plastic", "material": [ "plastic" ], "material_thickness": 2, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, { - "id": "pa_psu_plastic", + "id": "exo_psu_plastic", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton PSU plastic plate" }, @@ -131,24 +131,24 @@ "color": "light_gray", "warmth": 0, "material_thickness": 4, - "non_functional": "destroyed_pa_psu_plastic_plate", + "non_functional": "destroyed_exo_psu_plastic_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { - "id": "destroyed_pa_psu_plastic_plate", + "id": "destroyed_exo_psu_plastic_plate", "type": "ARMOR", - "copy-from": "pa_psu_plastic", + "copy-from": "exo_psu_plastic", "name": { "str": "shattered plastic PSU plate" }, "description": "The remains of a plastic PSU plate after taking a strong impact. No longer provides functional protection just weight.", - "looks_like": "pa_psu_plastic", + "looks_like": "exo_psu_plastic", "material": [ "plastic" ], "material_thickness": 2, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, { - "id": "pa_arm_plastic", + "id": "exo_arm_plastic", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton arm plastic plate" }, @@ -161,7 +161,7 @@ "color": "light_gray", "warmth": 20, "material_thickness": 3, - "non_functional": "destroyed_pa_arm_plastic_plate", + "non_functional": "destroyed_exo_arm_plastic_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { @@ -176,19 +176,19 @@ ] }, { - "id": "destroyed_pa_arm_plastic_plate", + "id": "destroyed_exo_arm_plastic_plate", "type": "ARMOR", - "copy-from": "pa_arm_plastic", + "copy-from": "exo_arm_plastic", "name": { "str": "shattered plastic arm plate" }, "description": "The remains of a plastic arm plate after taking a strong impact. No longer provides functional protection just weight.", - "looks_like": "pa_arm_plastic", + "looks_like": "exo_arm_plastic", "material": [ "plastic" ], "material_thickness": 2, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, { - "id": "pa_leg_plastic", + "id": "exo_leg_plastic", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton legs plastic plate" }, @@ -201,7 +201,7 @@ "color": "light_gray", "warmth": 10, "material_thickness": 4, - "non_functional": "destroyed_pa_leg_plastic_plate", + "non_functional": "destroyed_exo_leg_plastic_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { @@ -216,92 +216,92 @@ ] }, { - "id": "destroyed_pa_leg_plastic_plate", + "id": "destroyed_exo_leg_plastic_plate", "type": "ARMOR", - "copy-from": "pa_leg_plastic", + "copy-from": "exo_leg_plastic", "name": { "str": "shattered plastic leg plate" }, "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection just weight.", - "looks_like": "pa_leg_plastic", + "looks_like": "exo_leg_plastic", "material": [ "plastic" ], "material_thickness": 2, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, { - "id": "pa_torso_milcomp", + "id": "exo_torso_milcomp", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton torso military composite plate" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of military composite.", "weight": "44000 g", "volume": "8 L", - "material": [ "military composite", "ceramic" ], + "material": [ "steel", "ceramic" ], "symbol": "[", "looks_like": "cuirass_lightplate", "color": "light_gray", "warmth": 20, "material_thickness": 4, - "non_functional": "destroyed_pa_torso_milcomp_plate", + "non_functional": "destroyed_exo_torso_milcomp_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { - "id": "destroyed_pa_torso_milcomp_plate", + "id": "destroyed_exo_torso_milcomp_plate", "type": "ARMOR", - "copy-from": "pa_torso_milcomp", + "copy-from": "exo_torso_milcomp", "name": { "str": "shattered military composite torso plate" }, "description": "The remains of a military composite torso plate after taking a strong impact. No longer provides functional protection just weight.", - "looks_like": "pa_torso_milcomp", - "material": [ "military composite", "ceramic" ], + "looks_like": "exo_torso_milcomp", + "material": [ "steel", "ceramic" ], "material_thickness": 2, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, { - "id": "pa_psu_milcomp", + "id": "exo_psu_milcomp", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton PSU military composite plate" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of military composite.", "weight": "55000 g", "volume": "10 L", - "material": [ "military composite", "ceramic" ], + "material": [ "steel", "ceramic" ], "symbol": "[", "looks_like": "backpack_tactical_large", "color": "light_gray", "warmth": 0, "material_thickness": 4, - "non_functional": "destroyed_pa_psu_milcomp_plate", + "non_functional": "destroyed_exo_psu_milcomp_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { - "id": "destroyed_pa_psu_milcomp_plate", + "id": "destroyed_exo_psu_milcomp_plate", "type": "ARMOR", - "copy-from": "pa_psu_milcomp", + "copy-from": "exo_psu_milcomp", "name": { "str": "shattered military composite PSU plate" }, "description": "The remains of a military composite PSU plate after taking a strong impact. No longer provides functional protection just weight.", - "looks_like": "pa_psu_milcomp", - "material": [ "military composite", "ceramic" ], + "looks_like": "exo_psu_milcomp", + "material": [ "steel", "ceramic" ], "material_thickness": 2, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, { - "id": "pa_arm_milcomp", + "id": "exo_arm_milcomp", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton arm military composite plate" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of military composite.", "weight": "33000 g", "volume": "5500 ml", - "material": [ "military composite", "ceramic" ], + "material": [ "steel", "ceramic" ], "symbol": "[", "looks_like": "armguard_lightplate", "color": "light_gray", "warmth": 20, "material_thickness": 3, - "non_functional": "destroyed_pa_arm_milcomp_plate", + "non_functional": "destroyed_exo_arm_milcomp_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { @@ -316,32 +316,32 @@ ] }, { - "id": "destroyed_pa_arm_milcomp_plate", + "id": "destroyed_exo_arm_milcomp_plate", "type": "ARMOR", - "copy-from": "pa_arm_milcomp", + "copy-from": "exo_arm_milcomp", "name": { "str": "shattered military composite arm plate" }, "description": "The remains of a military composite arm plate after taking a strong impact. No longer provides functional protection just weight.", - "looks_like": "pa_arm_milcomp", - "material": [ "military composite", "ceramic" ], + "looks_like": "exo_arm_milcomp", + "material": [ "steel", "ceramic" ], "material_thickness": 2, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, { - "id": "pa_leg_milcomp", + "id": "exo_leg_milcomp", "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton legs military composite plate" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of military composite.", "weight": "38500 g", "volume": "8 L", - "material": [ "military composite", "ceramic" ], + "material": [ "steel", "ceramic" ], "symbol": "L", "looks_like": "legguard_lightplate", "color": "light_gray", "warmth": 10, "material_thickness": 4, - "non_functional": "destroyed_pa_leg_milcomp_plate", + "non_functional": "destroyed_exo_leg_milcomp_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { @@ -356,13 +356,13 @@ ] }, { - "id": "destroyed_pa_leg_milcomp_plate", + "id": "destroyed_exo_leg_milcomp_plate", "type": "ARMOR", - "copy-from": "pa_leg_milcomp", + "copy-from": "exo_leg_milcomp", "name": { "str": "shattered military composite leg plate" }, "description": "The remains of a military composite leg plate after taking a strong impact. No longer provides functional protection just weight.", - "looks_like": "pa_leg_milcomp", - "material": [ "military composite", "ceramic" ], + "looks_like": "exo_leg_milcomp", + "material": [ "steel", "ceramic" ], "material_thickness": 2, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json new file mode 100644 index 0000000000000..15d1ecb83d6de --- /dev/null +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -0,0 +1,321 @@ +[ + { + "id": "exo_rifle_storage", + "type": "ARMOR", + "name": { "str": "large storage pouch" }, + "description": "A hardpoint for storing a rifle, with an additional small pocket.", + "weight": "454 g", + "volume": "2 L", + "price": 18000, + "price_postapoc": 800, + "material": [ "steel" ], + "symbol": "[", + "looks_like": "slingpack", + "color": "light_gray", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "6000 ml", + "max_contains_weight": "12000 g", + "max_item_length": "133 cm", + "moves": 100 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "1000 ml", + "max_contains_weight": "5000 g", + "max_item_length": "20 cm", + "magazine_well": "500 ml", + "moves": 80 + } + ], + "material_thickness": 2, + "armor": [ { "encumbrance": [ 2, 6 ], "coverage": 20, "covers": [ "torso" ] } ] + }, + { + "id": "exo_melee_storage", + "type": "ARMOR", + "name": { "str": "large storage pouch" }, + "description": "A hardpoint for storing a sword. Activate to sheath/draw a sword .", + "weight": "454 g", + "volume": "2 L", + "price": 18000, + "price_postapoc": 800, + "material": [ "steel" ], + "symbol": "[", + "looks_like": "bscabbard", + "color": "light_gray", + "pocket_data": [ + { + "magazine_well": "1750 ml", + "max_contains_volume": "3750 ml", + "max_contains_weight": "5 kg", + "max_item_length": "180 cm", + "holster": true, + "moves": 60, + "flag_restriction": [ "SHEATH_SWORD" ] + } + ], + "use_action": { "type": "holster", "holster_prompt": "Sheath sword", "holster_msg": "You sheath your %s" }, + "material_thickness": 2, + "armor": [ { "encumbrance": [ 2, 6 ], "coverage": 20, "covers": [ "torso" ]} ] + }, + { + "id": "exo_large_storage", + "repairs_like": "backpack_tactical_large", + "type": "ARMOR", + "name": { "str": "exoskeleton large storage pack" }, + "description": "A large storage pack, mountable on a hardpoint.", + "weight": "2291 g", + "volume": "15 L", + "material": [ "nylon", "plastic" ], + "symbol": "[", + "looks_like": "backpack", + "color": "green", + + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "55 L", + "max_contains_weight": "70 kg", + "max_item_length": "70 cm", + "magazine_well": "10 L", + "moves": 300 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "5 L", + "max_contains_weight": "10 kg", + "max_item_length": "40 cm", + "magazine_well": "1 L", + "moves": 200 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "3 L", + "max_contains_weight": "3 kg", + "max_item_length": "30 cm", + "magazine_well": "800 ml", + "moves": 120 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "3 L", + "max_contains_weight": "3 kg", + "max_item_length": "30 cm", + "magazine_well": "800 ml", + "moves": 120 + }, + { + "//": "carabiner pocket", + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "5 L", + "max_contains_weight": "6 kg", + "max_item_length": "120 cm", + "min_item_length": "40 cm", + "moves": 150, + "extra_encumbrance": 3, + "ripoff": 2, + "activity_noise": { "volume": 8, "chance": 10 } + }, + { + "//": "carabiner pocket", + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "5 L", + "max_contains_weight": "6 kg", + "max_item_length": "120 cm", + "min_item_length": "40 cm", + "moves": 150, + "extra_encumbrance": 3, + "ripoff": 2, + "activity_noise": { "volume": 8, "chance": 10 } + }, + { + "//": "carabiner pocket", + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "5 L", + "max_contains_weight": "6 kg", + "max_item_length": "120 cm", + "min_item_length": "40 cm", + "moves": 150, + "extra_encumbrance": 3, + "ripoff": 2, + "activity_noise": { "volume": 8, "chance": 10 } + } + ], + "flags": [ "BELTED", "WATERPROOF", "ONLY_ONE", "OVERSIZE" ] + }, + { + "id": "exo_medium_storage", + "repairs_like": "fanny", + "type": "ARMOR", + "name": { "str": "exoskeleton medium pouch", "str_pl": "exoskeleton medium pouches" }, + "description": "A medium storage pouch, mountable on a hardpoint.", + "weight": "275 g", + "volume": "2500 ml", + "material": [ "nylon", "plastic" ], + "symbol": "[", + "looks_like": "holster", + "color": "green", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "2500 ml", + "max_contains_weight": "5 kg", + "max_item_length": "25 cm", + "magazine_well": "1 L", + "moves": 80 + } + ] + }, + { + "id": "exo_small_storage", + "repairs_like": "fanny", + "type": "ARMOR", + "name": { "str": "exoskeleton small pouch", "str_pl": "exoskeleton small pouches" }, + "description": "A small storage pouch, mountable on a hardpoint.", + "weight": "272 g", + "volume": "1050 ml", + "material": [ "nylon", "plastic" ], + "symbol": "[", + "looks_like": "holster", + "color": "green", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "2500 ml", + "max_contains_weight": "5 kg", + "max_item_length": "25 cm", + "magazine_well": "1 L", + "moves": 80 + } + ] + }, + { + "id": "exo_large_ammo_pouch", + "type": "ARMOR", + "name": { "str": "exoskeleton large ammo pouches", "str_pl": "exoskeleton large ammo pouches" }, + "description": "A set of pouches that attach to a hardpoint.", + "weight": "205 g", + "volume": "1050 ml", + "price": 3000, + "price_postapoc": 250, + "material": [ "nylon" ], + "symbol": "[", + "color": "dark_gray", + "pocket_data": [ + { + "magazine_well": "350 ml", + "pocket_type": "CONTAINER", + "holster": true, + "min_item_volume": "300 ml", + "max_contains_volume": "1000 ml", + "max_contains_weight": "2 kg", + "max_item_length": "30 cm", + "moves": 50 + }, + { + "pocket_type": "CONTAINER", + "max_item_length": "300 mm", + "min_item_volume": "250 ml", + "max_contains_volume": "1 L", + "max_contains_weight": "2 kg", + "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "max_item_length": "300 mm", + "min_item_volume": "250 ml", + "max_contains_volume": "1 L", + "max_contains_weight": "2 kg", + "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "max_item_length": "250 mm", + "min_item_volume": "200 ml", + "max_contains_volume": "800 ml", + "max_contains_weight": "1600 g", + "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "max_item_length": "250 mm", + "min_item_volume": "200 ml", + "max_contains_volume": "800 ml", + "max_contains_weight": "1600 g", + "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "max_item_length": "250 mm", + "min_item_volume": "200 ml", + "max_contains_volume": "800 ml", + "max_contains_weight": "1600 g", + "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], + "moves": 60 + }, + { "ammo_restriction": { "410shot": 6, "shot": 6, "20x66mm": 6, "signal_flare": 6 }, "moves": 25 } + ], + "material_thickness": 0.2, + "flags": [ "WATER_FRIENDLY" ], + "armor": [ + { + "encumbrance": [ 2, 5 ], + "coverage": 50, + "covers": [ "leg_l", "leg_r" ], + "specifically_covers": [ "leg_upper_r", "leg_upper_l" ] + } + ] + }, + { + "id": "exo_small_ammo_pouch", + "type": "ARMOR", + "name": { "str": "exoskeleton small ammo pouches", "str_pl": "exoskeleton small ammo pouches" }, + "description": "A set of pouches that attach to a hardpoint.", + "weight": "205 g", + "volume": "1050 ml", + "price": 3000, + "price_postapoc": 250, + "material": [ "nylon" ], + "symbol": "[", + "color": "dark_gray", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "2250 ml", + "max_contains_weight": "2 kg", + "max_item_length": "30 cm", + "magazine_well": "500 ml", + "moves": 200, + "flag_restriction": [ "MAG_COMPACT"] + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "2250 ml", + "max_contains_weight": "2 kg", + "max_item_length": "30 cm", + "magazine_well": "500 ml", + "moves": 200, + "flag_restriction": [ "MAG_COMPACT"] + } + ], + "material_thickness": 0.2, + "flags": [ "WATER_FRIENDLY" ], + "armor": [ + { + "encumbrance": [ 2, 5 ], + "coverage": 50, + "covers": [ "leg_l", "leg_r" ], + "specifically_covers": [ "leg_upper_r", "leg_upper_l" ] + } + ] + } + ] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/modular_exoskeleton_case.json b/data/mods/Aftershock/items/armor/modular_exoskeleton_case.json deleted file mode 100644 index 379c4e9fcfabf..0000000000000 --- a/data/mods/Aftershock/items/armor/modular_exoskeleton_case.json +++ /dev/null @@ -1,96 +0,0 @@ -[ - { - "id": "pa_torso_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton torso steel plate" }, - "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", - "weight": "4200 g", - "volume": "6 L", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "cuirass_lightplate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 4, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] - }, - { - "id": "pa_arm_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton arm steel plate" }, - "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", - "weight": "2720 g", - "volume": "5500 ml", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "armguard_lightplate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 3, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ - { - "covers": [ "arm_l", "arm_r" ], - "encumbrance": 16, - "coverage": 95, - "cover_melee": 95, - "cover_ranged": 95, - "cover_vitals": 90, - "specifically_covers": [ "arm_lower_r", "arm_lower_l", "arm_elbow_r", "arm_elbow_l", "arm_upper_r", "arm_upper_l" ] - } - ] - }, - { - "id": "pa_leg_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton legs steel plate" }, - "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", - "weight": "4080 g", - "volume": "6 L", - "material": [ "steel" ], - "symbol": "L", - "looks_like": "legguard_lightplate", - "color": "light_gray", - "warmth": 10, - "material_thickness": 4, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ - { - "covers": [ "leg_l", "leg_r" ], - "encumbrance": 8, - "coverage": 95, - "cover_melee": 95, - "cover_ranged": 95, - "cover_vitals": 90, - "specifically_covers": [ "leg_lower_r", "leg_lower_l", "leg_knee_r", "leg_knee_l", "leg_upper_r", "leg_upper_l" ] - } - ] - }, - { - "id": "pa_back_battery", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "exoskeleton battery power supply" }, - "description": "Designed to attach to an exoskeleton's back, this is a heavy duty UPS with a replacable battery.", - "weight": "35000 g", - "volume": "6250 ml", - "material": [ "plastic", "steel" ], - "symbol": "=", - "looks_like": "UPS_off", - "color": "light_gray", - "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ], - "pocket_data": [ - { - "pocket_type": "MAGAZINE_WELL", - "rigid": true, - "item_restriction": [ "small_storage_battery", "storage_battery", "medium_storage_battery" ] - } - ] - } -] diff --git a/data/mods/Aftershock/items/armor/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exoskeleton_modules.json deleted file mode 100644 index d54a79777c2fe..0000000000000 --- a/data/mods/Aftershock/items/armor/modular_exoskeleton_modules.json +++ /dev/null @@ -1,165 +0,0 @@ -[ - { - "id": "pa_back_battery_compartment", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "exoskeleton swapable battery power supply" }, - "description": "Designed to attach to an exoskeleton's back, this is a large battery compartment with an integrated UPS.", - "weight": "5 kg", - "volume": "25 L", - "material": [ "plastic", "steel" ], - "symbol": "=", - "looks_like": "it_battery_mount", - "color": "light_gray", - "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], - "armor": [ { "encumbrance": 0, "coverage": 50, "covers": [ "torso" ] } ], - "pocket_data": [ - { - "pocket_type": "MAGAZINE_WELL", - "//": "This is a storage compartment for a battery.", - "rigid": true, - "item_restriction": [ "battery_car", "battery_motorbike", "small_storage_battery", "medium_storage_battery" ] - }, - { - "pocket_type": "CONTAINER", - "//": "This is a mounting point for armor protecting the PSU.", - "ablative": true, - "rigid": true, - "max_contains_volume": "10 L", - "max_contains_weight": "145 kg", - "item_restriction": [ "pa_psu_steel", "pa_psu_plastic" ], - "moves": 60 - } - ] - }, - { - "id": "pa_back_battery_rechargable", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "exoskeleton rechargable battery power supply" }, - "description": "Designed to attach to an exoskeleton's back, this is a large rechargable battery with an integrated UPS.", - "weight": "5 kg", - "volume": "25 L", - "material": [ "plastic", "steel" ], - "symbol": "=", - "looks_like": "storage_battery", - "color": "light_gray", - "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS" ], - "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 40000 } }, - { - "pocket_type": "CONTAINER", - "//": "This is a mounting point for armor protecting the PSU.", - "rigid": true, - "ablative": true, - "max_contains_volume": "10 L", - "max_contains_weight": "145 kg", - "item_restriction": [ "pa_psu_steel", "pa_psu_plastic" ], - "moves": 60 - } - ] - }, - { - "id": "pa_back_gasoline", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "exoskeleton ICE (gasoline) power supply" }, - "description": "Designed to attach to an exoskeleton's back, this is a gasoline generator with an integrated UPS.", - "weight": "20 kg", - "volume": "25 L", - "material": [ "steel", "plastic" ], - "symbol": "#", - "looks_like": "1cyl_combustion", - "color": "dark_gray", - "ammo": "gasoline", - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], - "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], - "pocket_data": [ - { - "pocket_type": "MAGAZINE", - "//": "This is a tank for gasoline Holds up to 10 liters.", - "rigid": true, - "watertight": true, - "ammo_restriction": { "gasoline": 10000 }}, - { - "pocket_type": "CONTAINER", - "//": "This is a mounting point for armor protecting the PSU.", - "ablative": true, - "rigid": true, - "max_contains_volume": "10 L", - "max_contains_weight": "145 kg", - "item_restriction": [ "pa_psu_steel", "pa_psu_plastic" ], - "moves": 60 - } - ] - }, - { - "id": "pa_medium_storage", - "repairs_like": "backpack", - "type": "ARMOR", - "name": { "str": "medium storage pouch" }, - "description": "Provides a bit of extra storage, with minimal encumbrance.", - "weight": "272 g", - "volume": "1050 ml", - "material": [ "nylon", "plastic" ], - "symbol": "[", - "looks_like": "holster", - "color": "green", - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "max_contains_volume": "2500 ml", - "max_contains_weight": "5 kg", - "max_item_length": "25 cm", - "magazine_well": "1 L", - "moves": 80 - } - ], - "material_thickness": 0.1, - "flags": [ "BELTED", "WATER_FRIENDLY" ], - "armor": [ { "encumbrance": [ 1, 3 ], "coverage": 10, "covers": [ "torso" ], "specifically_covers": [ "torso_lower" ] } ] - }, - { - "id": "legrig", - "type": "ARMOR", - "name": { "str": "pair of drop leg pouches", "str_pl": "pairs of drop leg pouches" }, - "description": "A set of pouches that can be worn on the thighs using buckled straps. This variety is favored by the military.", - "weight": "205 g", - "volume": "1050 ml", - "price": 3000, - "price_postapoc": 250, - "material": [ "nylon" ], - "symbol": "[", - "color": "dark_gray", - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "max_contains_volume": "2250 ml", - "max_contains_weight": "2 kg", - "max_item_length": "30 cm", - "magazine_well": "500 ml", - "moves": 200 - }, - { - "pocket_type": "CONTAINER", - "max_contains_volume": "2250 ml", - "max_contains_weight": "2 kg", - "max_item_length": "30 cm", - "magazine_well": "500 ml", - "moves": 200 - } - ], - "material_thickness": 0.2, - "flags": [ "VARSIZE", "WATER_FRIENDLY", "BELTED" ], - "armor": [ - { - "encumbrance": [ 2, 5 ], - "coverage": 50, - "covers": [ "leg_l", "leg_r" ], - "specifically_covers": [ "leg_upper_r", "leg_upper_l" ] - } - ] - } - ] \ No newline at end of file diff --git a/data/mods/Aftershock/items/tools.json b/data/mods/Aftershock/items/tools.json index e02f01fd06503..033c8adba84dd 100644 --- a/data/mods/Aftershock/items/tools.json +++ b/data/mods/Aftershock/items/tools.json @@ -489,74 +489,5 @@ "symbol": "H", "color": "light_gray", "flags": [ "ALLOWS_REMOTE_USE" ] - }, - { - "id": "exotool", - "type": "TOOL", - "name": { "str": "exoskeleton tool set" }, - "description": "This is a tool module for a powered exoskeleton.", - "weight": "5 kg", - "volume": "5 L", - "longest_side": "75 cm", - "price": 10000, - "price_postapoc": 30000, - "material": [ "aluminum", "steel" ], - "symbol": "=", - "color": "light_gray", - "use_action": [ [ "CROWBAR", 0 ], [ "HAMMER", 0 ] ], - "qualities": [ - [ "HAMMER", 3 ], - [ "HAMMER_FINE", 1 ], - [ "SAW_W", 1 ], - [ "SAW_M", 2 ], - [ "SAW_M_FINE", 1 ], - [ "WRENCH", 2 ], - [ "WRENCH_FINE", 1 ], - [ "WHEEL_FAST", 1 ], - [ "SCREW", 1 ], - [ "SCREW_FINE", 1 ], - [ "CUT", 1 ], - [ "PRY", 1 ], - [ "PRYING_NAIL", 1 ], - [ "DRILL", 3 ], - [ "BUTCHER", -38 ] - ] - }, - { - "id": "powered_exotool", - "type": "TOOL", - "name": { "str": "exoskeleton powered tool set" }, - "description": "This is a tool module for a powered exoskeleton. It includes an arc welder and an electric jackhammer, powered by a heavy battery.", - "weight": "10 kg", - "volume": "5 L", - "longest_side": "75 cm", - "price": 10000, - "price_postapoc": 30000, - "material": [ "aluminum", "steel" ], - "symbol": "=", - "color": "light_gray", - "pocket_data": [ - { - "pocket_type": "MAGAZINE_WELL", - "rigid": true, - "flag_restriction": [ "BATTERY_HEAVY" ], - "default_magazine": "heavy_battery_cell" - } - ], - "ammo": [ "battery" ], - "charges_per_use": 5, - "qualities": [ [ "WELD", 2 ] ], - "use_action": [ - { - "type": "repair_item", - "item_action_type": "repair_metal", - "materials": [ "iron", "steel", "hardsteel", "aluminum", "copper", "bronze", "silver", "gold", "platinum", "superalloy" ], - "skill": "fabrication", - "tool_quality": 10, - "cost_scaling": 0.1, - "move_cost": 500 - }, - "JACKHAMMER" - ] } ] From 04131462f7b6a217b01061d38ff1fe4a861a0c14 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 9 Dec 2021 15:13:34 -0800 Subject: [PATCH 100/189] Weight Bearing Modules Weight modules work now. Sacrificing a primary PSU and relying only on APUs, a large and four small weight modules can be worn, allowing the character to move wearing the heavy military composite plating. Plating values need balance. --- .../items/armor/modular_exos/exo_gadgets.json | 71 ---------- .../armor/modular_exos/exoskeletons.json | 126 ------------------ .../modular_exos/modular_exoskeleton.json | 7 +- .../modular_exoskeleton_modules.json | 83 +++++++----- .../modular_exoskeleton_plating.json | 24 ++-- 5 files changed, 63 insertions(+), 248 deletions(-) delete mode 100644 data/mods/Aftershock/items/armor/modular_exos/exo_gadgets.json delete mode 100644 data/mods/Aftershock/items/armor/modular_exos/exoskeletons.json diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gadgets.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gadgets.json deleted file mode 100644 index 028aa07ec691b..0000000000000 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gadgets.json +++ /dev/null @@ -1,71 +0,0 @@ -[ - { - "id": "exotool", - "type": "TOOL", - "name": { "str": "exoskeleton tool set" }, - "description": "This is a tool module for a powered exoskeleton.", - "weight": "5 kg", - "volume": "5 L", - "longest_side": "75 cm", - "price": 10000, - "price_postapoc": 30000, - "material": [ "aluminum", "steel" ], - "symbol": "=", - "color": "light_gray", - "use_action": [ [ "CROWBAR", 0 ], [ "HAMMER", 0 ] ], - "qualities": [ - [ "HAMMER", 3 ], - [ "HAMMER_FINE", 1 ], - [ "SAW_W", 1 ], - [ "SAW_M", 2 ], - [ "SAW_M_FINE", 1 ], - [ "WRENCH", 2 ], - [ "WRENCH_FINE", 1 ], - [ "WHEEL_FAST", 1 ], - [ "SCREW", 1 ], - [ "SCREW_FINE", 1 ], - [ "CUT", 1 ], - [ "PRY", 1 ], - [ "PRYING_NAIL", 1 ], - [ "DRILL", 3 ], - [ "BUTCHER", -38 ] - ] - }, - { - "id": "powered_exotool", - "type": "TOOL", - "name": { "str": "exoskeleton powered tool set" }, - "description": "This is a tool module for a powered exoskeleton. It includes an arc welder and an electric jackhammer, powered by a heavy battery.", - "weight": "10 kg", - "volume": "5 L", - "longest_side": "75 cm", - "price": 10000, - "price_postapoc": 30000, - "material": [ "aluminum", "steel" ], - "symbol": "=", - "color": "light_gray", - "pocket_data": [ - { - "pocket_type": "MAGAZINE_WELL", - "rigid": true, - "flag_restriction": [ "BATTERY_HEAVY" ], - "default_magazine": "heavy_battery_cell" - } - ], - "ammo": [ "battery" ], - "charges_per_use": 5, - "qualities": [ [ "WELD", 2 ] ], - "use_action": [ - { - "type": "repair_item", - "item_action_type": "repair_metal", - "materials": [ "iron", "steel", "hardsteel", "aluminum", "copper", "bronze", "silver", "gold", "platinum", "superalloy" ], - "skill": "fabrication", - "tool_quality": 10, - "cost_scaling": 0.1, - "move_cost": 500 - }, - "JACKHAMMER" - ] - } - ] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/modular_exos/exoskeletons.json b/data/mods/Aftershock/items/armor/modular_exos/exoskeletons.json deleted file mode 100644 index 46b0fc8afb1cd..0000000000000 --- a/data/mods/Aftershock/items/armor/modular_exos/exoskeletons.json +++ /dev/null @@ -1,126 +0,0 @@ -[ - { - "id": "afs_pa_undersuit", - "repairs_like": "thermal_suit", - "type": "ARMOR", - "copy-from": "jumpsuit", - "looks_like": "robofac_enviro_suit", - "name": { "str": "powerframe undersuit" }, - "description": "A form-fitting suit inlaid with meant to be worn beneath power armor. Although not a requirement for the operation of power armor, it features climate control and haptic feedback systems that offer improved performance and comfort. The suit is not designed for use outside of armor, it has no pockets, offers nearly no protection and damages easily.", - "color": "brown", - "material": [ "nomex", "plastic" ], - "armor": [ - { "covers": [ "head" ], "coverage": 100, "encumbrance": 5 }, - { "covers": [ "torso" ], "coverage": 100, "encumbrance": 5 }, - { "covers": [ "leg_l", "leg_r" ], "coverage": 100, "encumbrance": 5 }, - { "covers": [ "arm_l", "arm_r" ], "coverage": 100, "encumbrance": 5 }, - { "covers": [ "hand_l", "hand_r" ], "coverage": 100, "encumbrance": 5 }, - { "covers": [ "foot_l", "foot_r" ], "coverage": 100, "encumbrance": 5 } - ], - "pocket_data": [ ], - "warmth": 10, - "flags": [ "USE_UPS", "WATERPROOF", "POWERARMOR_COMPATIBLE" ] - }, - { - "id": "utility_exoskeleton_off", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "battery powered utility exoskeleton" }, - "//": "This is based on the Sarcos Guardian, a production model with independent battery power, all weather operation, and capable of lifting up to 200 lbs. It uses three 12 lb batteries that provide 8 hours of operation. The battery life in-game is significantly less in order to utilize medium storage batteries, otherwise this would require the unit to be active to reload itself. This can also be changed out to use other battery types.", - "description": "This is a skeletal frame of sturdy metal with attached motors to allow the user to move heavier loads with less strain on the body.", - "weight": "90 kg", - "volume": "130 L", - "price": 11500000, - "price_postapoc": 40000, - "to_hit": 1, - "bashing": 1, - "material": [ "steel", "plastic" ], - "symbol": "[", - "looks_like": "depowered_armor", - "color": "dark_gray", - "pocket_data": [{ "pocket_type": "MAGAZINE_WELL", "item_restriction": [ "medium_storage_battery" ] }, - { "pocket_type": "CONTAINER", "item_restriction": [ "exotool" ] }, - { "pocket_type": "CONTAINER", "item_restriction": [ "powered_exotool" ] }], - "warmth": 0, - "material_thickness": 8, - "environmental_protection": 0, - "power_armor": true, - "ammo": "battery", - "charges_per_use": 1, - "use_action": { "type": "transform", "msg": "The %s engages.", "target": "utility_exoskeleton_on", "active": true }, - "flags": [ "STURDY", "OVERSIZE", "BELTED", "WATER_FRIENDLY", "SLOWS_MOVEMENT" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 20 } ] } ] }, - "armor": [ - { - "encumbrance": 20, - "coverage": 20, - "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] - } - ] - }, - { - "id": "utility_exoskeleton_on", - "copy-from": "utility_exoskeleton_off", - "repairs_like": "utility_exoskeleton_off", - "looks_like": "power_armor_light", - "type": "TOOL_ARMOR", - "name": { "str": "battery powered utility exoskeleton (on)", "str_pl": "battery powered utility exoskeletons (on)" }, - "description": "This is a skeletal frame of sturdy metal with attached motors to allow the user to move heavier loads with less strain on the body. It is turned on and continually drawing power. Use it to turn it off.", - "flags": [ "STURDY", "OVERSIZE", "BELTED", "WATER_FRIENDLY", "TRADER_AVOID" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 20 } ] } ] }, - "ammo": "battery", - "power_draw": 972216, - "//": "Battery should last two hours (02:00:07).", - "revert_to": "utility_exoskeleton_off", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "utility_exoskeleton_off" } - }, - { - "id": "ice_utility_exoskeleton_off", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "ICE utility exoskeleton" }, - "description": "This is a skeletal frame of sturdy metal with attached motors to allow the user to move heavier loads with less strain on the body. This model uses a compact internal combustion engine for power.", - "weight": "110 kg", - "volume": "130 L", - "price": 11500000, - "price_postapoc": 40000, - "to_hit": 1, - "bashing": 1, - "material": [ "steel", "plastic" ], - "symbol": "[", - "looks_like": "depowered_armor", - "color": "dark_gray", - "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "watertight": true, "ammo_restriction": { "gasoline": 10000 } }, { "pocket_type": "CONTAINER", "item_restriction": [ "exotool" ] }, { "pocket_type": "CONTAINER", "item_restriction": [ "powered_exotool" ] } ], - "warmth": 0, - "material_thickness": 8, - "environmental_protection": 0, - "power_armor": true, - "ammo": "gasoline", - "charges_per_use": 1, - "use_action": { "type": "transform", "msg": "The %s engages.", "target": "ice_utility_exoskeleton_on", "active": true }, - "flags": [ "STURDY", "OVERSIZE", "BELTED", "WATER_FRIENDLY", "SLOWS_MOVEMENT" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 20 } ] } ] }, - "armor": [ - { - "encumbrance": 20, - "coverage": 20, - "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] - } - ] - }, - { - "id": "ice_utility_exoskeleton_on", - "copy-from": "ice_utility_exoskeleton_off", - "repairs_like": "ice_utility_exoskeleton_off", - "looks_like": "power_armor_light", - "type": "TOOL_ARMOR", - "name": { "str": "ICE utility exoskeleton (on)", "str_pl": "ICE utility exoskeletons (on)" }, - "description": "This is a skeletal frame of sturdy metal with attached motors to allow the user to move heavier loads with less strain on the body. This model uses a compact internal combustion engine for power. It is turned on and continually draining gasoline. Use it to turn it off.", - "flags": [ "STURDY", "OVERSIZE", "BELTED", "WATER_FRIENDLY", "TRADER_AVOID" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 20 } ] } ] }, - "turns_per_charge": 1, - "//": "Full tank lasts a bit under three hours (166.66 minutes).", - "revert_to": "ice_utility_exoskeleton_off", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "ice_utility_exoskeleton_off" } - } -] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 0331d8685e51e..edb3536fa96f1 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -40,7 +40,7 @@ "rigid": true, "max_contains_volume": "10 L", "max_contains_weight": "45 kg", - "item_restriction": [ "exo_torso_steel", "exo_torso_plastic" ], + "item_restriction": [ "exo_torso_steel", "exo_torso_plastic", "exo_torso_milcomp" ], "moves": 60 }, { @@ -63,7 +63,6 @@ { "pocket_type": "CONTAINER", "//": "This is a mounting point for power supply units or large modules.", - "ablative": true, "rigid": true, "max_contains_volume": "25 L", "max_contains_weight": "140 kg", @@ -89,7 +88,7 @@ "max_contains_volume": "8 L", "max_contains_weight": "35 kg", "max_item_length": "200 mm", - "item_restriction": [ "exo_arm_steel", "exo_arm_plastic" ], + "item_restriction": [ "exo_arm_steel", "exo_arm_plastic", "exo_arm_milcomp" ], "moves": 60 }, { @@ -109,7 +108,7 @@ "max_contains_volume": "9 L", "max_contains_weight": "40 kg", "max_item_length": "200 mm", - "item_restriction": [ "exo_leg_steel", "exo_leg_plastic" ], + "item_restriction": [ "exo_leg_steel", "exo_leg_plastic", "exo_leg_milcomp" ], "moves": 60 }, { diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 7089174dfeb19..054dc8770ac5b 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -28,7 +28,7 @@ "rigid": true, "max_contains_volume": "10 L", "max_contains_weight": "145 kg", - "item_restriction": [ "exo_psu_steel", "exo_psu_plastic" ], + "item_restriction": [ "exo_psu_steel", "exo_psu_plastic", "exo_psu_milcomp" ], "moves": 60 } ] @@ -57,7 +57,7 @@ "ablative": true, "max_contains_volume": "10 L", "max_contains_weight": "145 kg", - "item_restriction": [ "exo_psu_steel", "exo_psu_plastic" ], + "item_restriction": [ "exo_psu_steel", "exo_psu_plastic", "exo_psu_milcomp" ], "moves": 60 } ] @@ -92,7 +92,7 @@ "rigid": true, "max_contains_volume": "10 L", "max_contains_weight": "145 kg", - "item_restriction": [ "exo_psu_steel", "exo_psu_plastic" ], + "item_restriction": [ "exo_psu_steel", "exo_psu_plastic", "exo_psu_milcomp" ], "moves": 60 } ] @@ -133,25 +133,26 @@ "id": "exo_large_carry_off", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton large APU" }, - "description": "This is a large rechargable auxiliary power unit that attaches to a hardpoint.", - "weight": "4 kg", - "volume": "5 L", + "name": { "str": "exoskeleton large load support module (off)" }, + "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power cosumption.", + "weight": "10 kg", + "volume": "10 L", "material": [ "plastic", "steel" ], "symbol": "=", "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], "relic_data": { - "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] + "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 30000 } ] } ] }, "use_action": { "target": "exo_large_carry_on", "msg": "The %s engages.", + "menu_text": "Turn on module", "active": true, - "need_charges": 1, - "need_charges_msg": "The APU does not have enough charge.", + "need_charges": 5, + "need_charges_msg": "There is not enough charge to activate the module.", "type": "transform" } }, @@ -159,29 +160,34 @@ "id": "exo_large_carry_on", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton large APU" }, - "description": "This is a large rechargable auxiliary power unit that attaches to a hardpoint.", - "weight": "4 kg", - "volume": "5 L", + "name": { "str": "exoskeleton large load support module (on)" }, + "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power cosumption. It is turned on and continually drawing power. Use it to turn it off.", + "weight": "10 kg", + "volume": "10 L", "material": [ "plastic", "steel" ], "symbol": "=", "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], "relic_data": { - "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 100 } ] } ] - }, + "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 30000 } ] } ]}, "power_draw": 1500, "revert_to": "exo_large_carry_off", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "exo_large_carry_off" } + "use_action": { + "ammo_scale": 0, + "target": "exo_large_carry_off", + "msg": "You deactivate the module.", + "menu_text": "Turn off module", + "type": "transform" + } }, { "id": "exo_small_carry_off", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton small APU" }, - "description": "This is a small rechargable auxiliary power unit that attaches to a hardpoint.", + "name": { "str": "exoskeleton small load support module (off)" }, + "description": "This module increases the exoskeleton's weight bearing at the cost of increased power cosumption.", "weight": "2 kg", "volume": "1 L", "material": [ "plastic", "steel" ], @@ -189,16 +195,17 @@ "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], "relic_data": { - "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 50 } ] } ] + "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 15000 } ] } ] }, "use_action": { "target": "exo_small_carry_on", "msg": "The %s engages.", + "menu_text": "Turn on module", "active": true, - "need_charges": 1, - "need_charges_msg": "The APU does not have enough charge.", + "need_charges": 5, + "need_charges_msg": "There is not enough charge to activate the module.", "type": "transform" } }, @@ -206,21 +213,27 @@ "id": "exo_small_carry_on", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton large APU" }, - "description": "This is a large rechargable auxiliary power unit that attaches to a hardpoint.", - "weight": "4 kg", - "volume": "5 L", + "name": { "str": "exoskeleton small load support module (on)" }, + "description": "This module increases the exoskeleton's weight bearing at the cost of increased power cosumption. It is turned on and continually drawing power. Use it to turn it off.", + "weight": "2 kg", + "volume": "1 L", "material": [ "plastic", "steel" ], "symbol": "=", "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], "relic_data": { - "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 50 } ] } ] + "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 15000 } ] } ] }, - "power_draw": 750, - "revert_to": "exo_small_carry_on", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "exo_small_carry_on" } - } + "power_draw": 1500, + "revert_to": "exo_small_carry_off", + "use_action": { + "ammo_scale": 0, + "target": "exo_small_carry_off", + "msg": "You deactivate the module.", + "menu_text": "Turn off module", + "type": "transform" + } + } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 07a1270b64bf0..fca1a7c1c8373 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -85,8 +85,8 @@ "cover_vitals": 90, "specifically_covers": [ "leg_lower_r", "leg_lower_l", "leg_knee_r", "leg_knee_l", "leg_upper_r", "leg_upper_l" ] } - ] - }, + ] + }, { "id": "exo_torso_plastic", "type": "ARMOR", @@ -105,7 +105,7 @@ "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, - { + { "id": "destroyed_exo_torso_plastic_plate", "type": "ARMOR", "copy-from": "exo_torso_plastic", @@ -135,7 +135,7 @@ "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, - { + { "id": "destroyed_exo_psu_plastic_plate", "type": "ARMOR", "copy-from": "exo_psu_plastic", @@ -175,7 +175,7 @@ } ] }, - { + { "id": "destroyed_exo_arm_plastic_plate", "type": "ARMOR", "copy-from": "exo_arm_plastic", @@ -215,7 +215,7 @@ } ] }, - { + { "id": "destroyed_exo_leg_plastic_plate", "type": "ARMOR", "copy-from": "exo_leg_plastic", @@ -245,7 +245,7 @@ "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, - { + { "id": "destroyed_exo_torso_milcomp_plate", "type": "ARMOR", "copy-from": "exo_torso_milcomp", @@ -275,7 +275,7 @@ "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, - { + { "id": "destroyed_exo_psu_milcomp_plate", "type": "ARMOR", "copy-from": "exo_psu_milcomp", @@ -315,7 +315,7 @@ } ] }, - { + { "id": "destroyed_exo_arm_milcomp_plate", "type": "ARMOR", "copy-from": "exo_arm_milcomp", @@ -353,9 +353,9 @@ "cover_vitals": 90, "specifically_covers": [ "leg_lower_r", "leg_lower_l", "leg_knee_r", "leg_knee_l", "leg_upper_r", "leg_upper_l" ] } - ] - }, - { + ] + }, + { "id": "destroyed_exo_leg_milcomp_plate", "type": "ARMOR", "copy-from": "exo_leg_milcomp", From c81bd52ca6640ef5e5dca885394a0a41a388174e Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 9 Dec 2021 15:29:53 -0800 Subject: [PATCH 101/189] Update modular_exoskeleton_plating.json --- .../modular_exoskeleton_plating.json | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index fca1a7c1c8373..f1de45868ad91 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -12,7 +12,7 @@ "looks_like": "cuirass_lightplate", "color": "light_gray", "warmth": 20, - "material_thickness": 4, + "material_thickness": 6, "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, @@ -29,7 +29,7 @@ "looks_like": "backpack_tactical_large", "color": "light_gray", "warmth": 0, - "material_thickness": 4, + "material_thickness": 6, "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, @@ -46,7 +46,7 @@ "looks_like": "armguard_lightplate", "color": "light_gray", "warmth": 20, - "material_thickness": 3, + "material_thickness": 6, "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { @@ -73,7 +73,7 @@ "looks_like": "legguard_lightplate", "color": "light_gray", "warmth": 10, - "material_thickness": 4, + "material_thickness": 6, "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { @@ -100,7 +100,7 @@ "looks_like": "cuirass_lightplate", "color": "light_gray", "warmth": 20, - "material_thickness": 4, + "material_thickness": 3, "non_functional": "destroyed_exo_torso_plastic_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] @@ -113,7 +113,7 @@ "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection just weight.", "looks_like": "exo_torso_plastic", "material": [ "plastic" ], - "material_thickness": 2, + "material_thickness": 3, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, @@ -130,7 +130,7 @@ "looks_like": "backpack_tactical_large", "color": "light_gray", "warmth": 0, - "material_thickness": 4, + "material_thickness": 3, "non_functional": "destroyed_exo_psu_plastic_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] @@ -143,7 +143,7 @@ "description": "The remains of a plastic PSU plate after taking a strong impact. No longer provides functional protection just weight.", "looks_like": "exo_psu_plastic", "material": [ "plastic" ], - "material_thickness": 2, + "material_thickness": 3, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, @@ -183,7 +183,7 @@ "description": "The remains of a plastic arm plate after taking a strong impact. No longer provides functional protection just weight.", "looks_like": "exo_arm_plastic", "material": [ "plastic" ], - "material_thickness": 2, + "material_thickness": 3, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, @@ -200,7 +200,7 @@ "looks_like": "legguard_lightplate", "color": "light_gray", "warmth": 10, - "material_thickness": 4, + "material_thickness": 3, "non_functional": "destroyed_exo_leg_plastic_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ @@ -223,7 +223,7 @@ "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection just weight.", "looks_like": "exo_leg_plastic", "material": [ "plastic" ], - "material_thickness": 2, + "material_thickness": 3, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, @@ -235,12 +235,12 @@ "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of military composite.", "weight": "44000 g", "volume": "8 L", - "material": [ "steel", "ceramic" ], + "material": [ "hardsteel", "ceramic" ], "symbol": "[", "looks_like": "cuirass_lightplate", "color": "light_gray", "warmth": 20, - "material_thickness": 4, + "material_thickness": 8, "non_functional": "destroyed_exo_torso_milcomp_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] @@ -252,8 +252,8 @@ "name": { "str": "shattered military composite torso plate" }, "description": "The remains of a military composite torso plate after taking a strong impact. No longer provides functional protection just weight.", "looks_like": "exo_torso_milcomp", - "material": [ "steel", "ceramic" ], - "material_thickness": 2, + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, @@ -265,12 +265,12 @@ "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of military composite.", "weight": "55000 g", "volume": "10 L", - "material": [ "steel", "ceramic" ], + "material": [ "hardsteel", "ceramic" ], "symbol": "[", "looks_like": "backpack_tactical_large", "color": "light_gray", "warmth": 0, - "material_thickness": 4, + "material_thickness": 8, "non_functional": "destroyed_exo_psu_milcomp_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] @@ -282,8 +282,8 @@ "name": { "str": "shattered military composite PSU plate" }, "description": "The remains of a military composite PSU plate after taking a strong impact. No longer provides functional protection just weight.", "looks_like": "exo_psu_milcomp", - "material": [ "steel", "ceramic" ], - "material_thickness": 2, + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, @@ -295,12 +295,12 @@ "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of military composite.", "weight": "33000 g", "volume": "5500 ml", - "material": [ "steel", "ceramic" ], + "material": [ "hardsteel", "ceramic" ], "symbol": "[", "looks_like": "armguard_lightplate", "color": "light_gray", "warmth": 20, - "material_thickness": 3, + "material_thickness": 8, "non_functional": "destroyed_exo_arm_milcomp_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ @@ -322,8 +322,8 @@ "name": { "str": "shattered military composite arm plate" }, "description": "The remains of a military composite arm plate after taking a strong impact. No longer provides functional protection just weight.", "looks_like": "exo_arm_milcomp", - "material": [ "steel", "ceramic" ], - "material_thickness": 2, + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, @@ -335,12 +335,12 @@ "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of military composite.", "weight": "38500 g", "volume": "8 L", - "material": [ "steel", "ceramic" ], + "material": [ "hardsteel", "ceramic" ], "symbol": "L", "looks_like": "legguard_lightplate", "color": "light_gray", "warmth": 10, - "material_thickness": 4, + "material_thickness": 8, "non_functional": "destroyed_exo_leg_milcomp_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], "armor": [ @@ -362,8 +362,8 @@ "name": { "str": "shattered military composite leg plate" }, "description": "The remains of a military composite leg plate after taking a strong impact. No longer provides functional protection just weight.", "looks_like": "exo_leg_milcomp", - "material": [ "steel", "ceramic" ], - "material_thickness": 2, + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] } From 2838340c51e4582a966ca171036039d90c7b097f Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 9 Dec 2021 18:38:54 -0800 Subject: [PATCH 102/189] Polish Removed replaceable battery PSU, reloading anything larger than a car battery or small storage battery is impractical in the field without the suit's own strength. Added additional storage to legs and arms representing a 2L point on each limb. Plastic armor can be worn by a strength 8 character with no weight bearing modules. Steel requires some weight modules, forcing players to choose between protection and cargo. Milcomp requires a significant investment in weight support modules, when using the heavy ICE power supply and maximizing all possible weight support modules a strength 8 character will still be overburdened. May add an archeotech weight module to fit with some other hypertech equipment found in Aftershock. --- .../modular_exos/modular_exoskeleton.json | 30 ++++++++++-- .../modular_exoskeleton_modules.json | 46 +++---------------- .../modular_exoskeleton_plating.json | 8 ++-- 3 files changed, 35 insertions(+), 49 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index edb3536fa96f1..da35ae14d0473 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -17,7 +17,6 @@ { "covers": [ "hand_l", "hand_r" ], "coverage": 100, "encumbrance": 5 }, { "covers": [ "foot_l", "foot_r" ], "coverage": 100, "encumbrance": 5 } ], - "pocket_data": [ ], "warmth": 10, "flags": [ "USE_UPS", "SKINTIGHT", "WATERPROOF", "POWERARMOR_COMPATIBLE" ] }, @@ -67,16 +66,19 @@ "max_contains_volume": "25 L", "max_contains_weight": "140 kg", "item_restriction": [ - "exo_back_battery_compartment", "exo_back_battery_rechargable", "exo_back_gasoline", "exo_large_storage", "exo_large_aux_power", "exo_small_aux_power", + "exo_small_storage", + "exo_medium_storage", "exo_large_carry_off", "exo_large_carry_on", "exo_small_carry_off", - "exo_small_carry_on" + "exo_small_carry_on", + "exo_melee_storage", + "exo_large_storage" ], "moves": 60 }, @@ -95,7 +97,16 @@ "pocket_type": "CONTAINER", "//": "This is a hardpoint for storing items on the arms.", "rigid": true, - "max_contains_volume": "1 L", + "max_contains_volume": "2 L", + "max_contains_weight": "5 kg", + "item_restriction": [ "exo_small_storage", "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", "exo_small_carry_on" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "//": "This is a hardpoint for storing items on the arms.", + "rigid": true, + "max_contains_volume": "2 L", "max_contains_weight": "5 kg", "item_restriction": [ "exo_small_storage", "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", "exo_small_carry_on" ], "moves": 60 @@ -115,7 +126,16 @@ "pocket_type": "CONTAINER", "//": "This is a hardpoint for storing items on the legs.", "rigid": true, - "max_contains_volume": "1 L", + "max_contains_volume": "2 L", + "max_contains_weight": "5 kg", + "item_restriction": [ "exo_small_storage", "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", "exo_small_carry_on" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "//": "This is a hardpoint for storing items on the legs.", + "rigid": true, + "max_contains_volume": "2 L", "max_contains_weight": "5 kg", "item_restriction": [ "exo_small_storage", "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", "exo_small_carry_on" ], "moves": 60 diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 054dc8770ac5b..e852faefff73b 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -1,46 +1,12 @@ [ - { - "id": "exo_back_battery_compartment", - "type": "TOOL_ARMOR", - "category": "armor", - "name": { "str": "exoskeleton swapable battery power supply" }, - "description": "Designed to attach to an exoskeleton's back, this is a large battery compartment with an integrated UPS.", - "weight": "5 kg", - "volume": "25 L", - "material": [ "plastic", "steel" ], - "symbol": "=", - "looks_like": "it_battery_mount", - "color": "light_gray", - "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], - "armor": [ { "encumbrance": 0, "coverage": 50, "covers": [ "torso" ] } ], - "pocket_data": [ - { - "pocket_type": "MAGAZINE_WELL", - "//": "This is a storage compartment for a battery.", - "rigid": true, - "item_restriction": [ "battery_car", "battery_motorbike", "small_storage_battery", "medium_storage_battery" ] - }, - { - "pocket_type": "CONTAINER", - "//": "This is a mounting point for armor protecting the PSU.", - "ablative": true, - "rigid": true, - "max_contains_volume": "10 L", - "max_contains_weight": "145 kg", - "item_restriction": [ "exo_psu_steel", "exo_psu_plastic", "exo_psu_milcomp" ], - "moves": 60 - } - ] - }, { "id": "exo_back_battery_rechargable", "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton rechargable battery power supply" }, "description": "Designed to attach to an exoskeleton's back, this is a large rechargable battery with an integrated UPS.", - "weight": "5 kg", - "volume": "25 L", + "weight": "15 kg", + "volume": "20 L", "material": [ "plastic", "steel" ], "symbol": "=", "looks_like": "storage_battery", @@ -67,7 +33,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton ICE power supply" }, - "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS.", + "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS. The large size ", "weight": "20 kg", "volume": "25 L", "material": [ "steel", "plastic" ], @@ -103,7 +69,7 @@ "category": "armor", "name": { "str": "exoskeleton large APU" }, "description": "This is a large rechargable auxiliary power unit that attaches to a hardpoint.", - "weight": "4 kg", + "weight": "5 kg", "volume": "5 L", "material": [ "plastic", "steel" ], "symbol": "=", @@ -197,7 +163,7 @@ "ammo": [ "battery" ], "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], "relic_data": { - "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 15000 } ] } ] + "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 20000 } ] } ] }, "use_action": { "target": "exo_small_carry_on", @@ -224,7 +190,7 @@ "ammo": [ "battery" ], "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], "relic_data": { - "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 15000 } ] } ] + "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 20000 } ] } ] }, "power_draw": 1500, "revert_to": "exo_small_carry_off", diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index f1de45868ad91..9ee4dcf1228cd 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -5,7 +5,7 @@ "category": "armor", "name": { "str": "exoskeleton torso steel plate" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", - "weight": "4200 g", + "weight": "34347 g", "volume": "8 L", "material": [ "steel" ], "symbol": "[", @@ -22,7 +22,7 @@ "category": "armor", "name": { "str": "exoskeleton PSU steel plate" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of steel.", - "weight": "107333 g", + "weight": "42933 g", "volume": "10 L", "material": [ "steel" ], "symbol": "[", @@ -39,7 +39,7 @@ "category": "armor", "name": { "str": "exoskeleton arm steel plate" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", - "weight": "2720 g", + "weight": "25760 g", "volume": "5500 ml", "material": [ "steel" ], "symbol": "[", @@ -66,7 +66,7 @@ "category": "armor", "name": { "str": "exoskeleton legs steel plate" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", - "weight": "4080 g", + "weight": "30053 g", "volume": "8 L", "material": [ "steel" ], "symbol": "L", From b09e9cce6e57ead832793a5771c64238773f2d11 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 10 Dec 2021 13:47:23 -0800 Subject: [PATCH 103/189] Boots, gloves, helmets, and more modules! Boots, gloves, helmets added, using same modular plating. Added some modules primarily intended for the helmet (sensory enhancements, gas filter) and a torso-specific recoil control module. Also a lamp. --- .../modular_exos/modular_exoskeleton.json | 132 +++++++++- .../modular_exoskeleton_modules.json | 229 +++++++++++++++-- .../modular_exoskeleton_plating.json | 231 ++++++++++++++++++ .../modular_exoskeleton_storage.json | 31 ++- 4 files changed, 580 insertions(+), 43 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index da35ae14d0473..b0209489ca0ee 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -7,6 +7,8 @@ "looks_like": "robofac_enviro_suit", "name": { "str": "exoskeleton undersuit" }, "description": "A form-fitting suit inlaid with meant to be worn beneath power armor. Although not a requirement for the operation of power armor, it features climate control and haptic feedback systems that offer improved performance and comfort. The suit is not designed for use outside of armor, it has no pockets, offers nearly no protection and damages easily.", + "weight": "610 g", + "volume": "3500 ml", "color": "brown", "material": [ "nomex", "plastic" ], "armor": [ @@ -28,13 +30,14 @@ "weight": "40 kg", "volume": "130 L", "material": [ "steel", "plastic" ], - "symbol": "[", + "material_thickness": 8, + "symbol": "T", "looks_like": "power_armor_basic", "color": "light_gray", "pocket_data": [ { "pocket_type": "CONTAINER", - "//": "This is a mounting point for torso armor.", + "description": "This is a mounting point for torso armor.", "ablative": true, "rigid": true, "max_contains_volume": "10 L", @@ -44,7 +47,7 @@ }, { "pocket_type": "CONTAINER", - "//": "This is a hardpoint for storing items in the torso.", + "description": "This is a hardpoint for storing items in the torso.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", @@ -55,13 +58,18 @@ "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", - "exo_small_carry_on" + "exo_small_carry_on", + "exo_flashlight_off", + "exo_flashlight_low", + "exo_flashlight_high", + "exo_recoil_off", + "exo_recoil_on" ], "moves": 60 }, { "pocket_type": "CONTAINER", - "//": "This is a mounting point for power supply units or large modules.", + "description": "This is a mounting point for power supply units or large modules.", "rigid": true, "max_contains_volume": "25 L", "max_contains_weight": "140 kg", @@ -77,14 +85,14 @@ "exo_large_carry_on", "exo_small_carry_off", "exo_small_carry_on", - "exo_melee_storage", - "exo_large_storage" + "exo_melee_storage", + "exo_rifle_storage" ], "moves": 60 }, { "pocket_type": "CONTAINER", - "//": "This is a mounting point for arm armor.", + "description": "This is a mounting point for arm armor.", "ablative": true, "rigid": true, "max_contains_volume": "8 L", @@ -95,7 +103,7 @@ }, { "pocket_type": "CONTAINER", - "//": "This is a hardpoint for storing items on the arms.", + "description": "This is a hardpoint for storing items on the arms.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", @@ -104,7 +112,7 @@ }, { "pocket_type": "CONTAINER", - "//": "This is a hardpoint for storing items on the arms.", + "description": "This is a hardpoint for storing items on the arms.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", @@ -113,7 +121,7 @@ }, { "pocket_type": "CONTAINER", - "//": "This is a mounting point for leg armor.", + "description": "This is a mounting point for leg armor.", "ablative": true, "rigid": true, "max_contains_volume": "9 L", @@ -124,7 +132,7 @@ }, { "pocket_type": "CONTAINER", - "//": "This is a hardpoint for storing items on the legs.", + "description": "This is a hardpoint for storing items on the legs.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", @@ -133,7 +141,7 @@ }, { "pocket_type": "CONTAINER", - "//": "This is a hardpoint for storing items on the legs.", + "description": "This is a hardpoint for storing items on the legs.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", @@ -167,5 +175,103 @@ "power_draw": 7123, "revert_to": "modular_exoskeleton_off", "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exoskeleton_off" } + }, + { + "id": "exoskeleton_helmet", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton helmet" }, + "description": "This is a helmet offering hardpoints for specialized equipment and protection.", + "weight": "2500 g", + "volume": "5 L", + "material": [ "steel", "plastic" ], + "symbol": "n", + "looks_like": "power_armor_helmet_basic", + "color": "dark_gray", + "power_armor": true, + "material_thickness": 8, + "environmental_protection": 16, + "armor": [ { "encumbrance": 20, "coverage": 100, "covers": [ "head", "eyes", "mouth" ] } ], + "flags": [ "WATCH", "WATERPROOF", "STURDY", "THERMOMETER", "SUN_GLASSES", "SWIM_GOGGLES" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "description": "This is a mounting point for helmet plating.", + "ablative": true, + "item_restriction": [ "exo_helmet_steel", "exo_helmet_plastic", "exo_helmet_milcomp" ] + }, + { + "pocket_type": "CONTAINER", + "description": "This is a series of mounts for helmet equipment.", + "rigid": true, + "max_contains_volume": "2 L", + "max_contains_weight": "5 kg", + "item_restriction": [ + "exo_flashlight_off", + "exo_flashlight_low", + "exo_flashlight_high", + "exo_hearing_on", + "exo_hearing_off", + "exo_optics_off", + "exo_optics_on", + "exoskeleton_helmet_filter" + ], + "moves": 60 + } + ] + }, + { + "id": "exoskeleton_boots", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton boots" }, + "description": "This is a pair of exoskeleton boots. Has mounting points for protective plate.", + "weight": "2000 g", + "volume": "3250 ml", + "material": [ "steel", "plastic" ], + "symbol": "b", + "looks_like": "boots_plate", + "color": "dark_gray", + "power_armor": true, + "material_thickness": 8, + "environmental_protection": 16, + "armor": [ { "encumbrance": 5, "coverage": 100, "covers": [ "foot_l", "foot_r" ] } ], + "flags": [ "WATERPROOF", "STURDY" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "description": "This is a mounting point for boot plating.", + "ablative": true, + "item_restriction": [ "exo_boot_steel", "exo_boot_plastic", "exo_boot_milcomp" ], + "moves": 60 + } + ] + }, + { + "id": "exoskeleton_gloves", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton gloves" }, + "description": "This is a pair of exoskeleton gloves. Has mounting points for protective plate.", + "weight": "1000 g", + "volume": "1500 ml", + "material": [ "steel", "plastic" ], + "symbol": "g", + "looks_like": "gloves_plate", + "color": "dark_gray", + "power_armor": true, + "material_thickness": 8, + "environmental_protection": 16, + "armor": [ { "encumbrance": 5, "coverage": 100, "covers": [ "foot_l", "foot_r" ] } ], + "flags": [ "WATERPROOF", "STURDY" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "description": "This is a mounting point for glove plating.", + "ablative": true, + "item_restriction": [ "exo_glove_steel", "exo_glove_plastic", "exo_glove_milcomp" ], + "moves": 60 + } + ] } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index e852faefff73b..8c8b8e7caf505 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -18,7 +18,7 @@ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 40000 } }, { "pocket_type": "CONTAINER", - "//": "This is a mounting point for armor protecting the PSU.", + "description": "This is a mounting point for armor protecting the PSU.", "rigid": true, "ablative": true, "max_contains_volume": "10 L", @@ -46,14 +46,14 @@ "pocket_data": [ { "pocket_type": "MAGAZINE", - "//": "This is a tank for gasoline. Holds up to 10 liters.", + "description": "This is a tank for gasoline. Holds up to 10 liters.", "rigid": true, "watertight": true, "ammo_restriction": { "gasoline": 10000 } }, { "pocket_type": "CONTAINER", - "//": "This is a mounting point for armor protecting the PSU.", + "description": "This is a mounting point for armor protecting the PSU.", "ablative": true, "rigid": true, "max_contains_volume": "10 L", @@ -68,7 +68,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton large APU" }, - "description": "This is a large rechargable auxiliary power unit that attaches to a hardpoint.", + "description": "This is a large rechargable auxiliary power unit that attaches to an exoskeleton hardpoint.", "weight": "5 kg", "volume": "5 L", "material": [ "plastic", "steel" ], @@ -84,7 +84,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton small APU" }, - "description": "This is a small rechargable auxiliary power unit that attaches to a hardpoint.", + "description": "This is a small rechargable auxiliary power unit that attaches to an exoskeleton hardpoint.", "weight": "2 kg", "volume": "1 L", "material": [ "plastic", "steel" ], @@ -115,10 +115,10 @@ "use_action": { "target": "exo_large_carry_on", "msg": "The %s engages.", - "menu_text": "Turn on module", + "menu_text": "Turn on module", "active": true, - "need_charges": 5, - "need_charges_msg": "There is not enough charge to activate the module.", + "need_charges": 5, + "need_charges_msg": "There is not enough charge to activate the module.", "type": "transform" } }, @@ -137,7 +137,8 @@ "ammo": [ "battery" ], "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], "relic_data": { - "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 30000 } ] } ]}, + "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 30000 } ] } ] + }, "power_draw": 1500, "revert_to": "exo_large_carry_off", "use_action": { @@ -153,7 +154,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton small load support module (off)" }, - "description": "This module increases the exoskeleton's weight bearing at the cost of increased power cosumption.", + "description": "This module increases the exoskeleton's weight bearing at the cost of increased power cosumption.", "weight": "2 kg", "volume": "1 L", "material": [ "plastic", "steel" ], @@ -168,10 +169,10 @@ "use_action": { "target": "exo_small_carry_on", "msg": "The %s engages.", - "menu_text": "Turn on module", + "menu_text": "Turn on module", "active": true, - "need_charges": 5, - "need_charges_msg": "There is not enough charge to activate the module.", + "need_charges": 5, + "need_charges_msg": "There is not enough charge to activate the module.", "type": "transform" } }, @@ -201,5 +202,205 @@ "menu_text": "Turn off module", "type": "transform" } - } + }, + { + "id": "exo_flashlight_off", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "mounted lamp (off)", "str_pl": "mounted lamps (off)" }, + "description": "This is a light that can be secured to an exoskeleton hardpoint. It has two levels of brightness.", + "weight": "500 g", + "volume": "500 ml", + "material": [ "steel", "plastic" ], + "symbol": "o", + "color": "white", + "charges_per_use": 1, + "ammo": [ "battery" ], + "flags": [ "USE_UPS", "CANT_WEAR" ], + "use_action": { + "type": "transform", + "msg": "You turn the lamp on low.", + "target": "exo_flashlight_low", + "active": true, + "need_charges": 1, + "need_charges_msg": "There is not enough charge to activate the module." + } + }, + { + "id": "exo_flashlight_low", + "copy-from": "exo_flashlight_off", + "type": "TOOL", + "name": { "str": "mounted lamp (low)", "str_pl": "mounted lamps (low)" }, + "power_draw": 1000, + "revert_to": "exo_flashlight_off", + "use_action": { + "ammo_scale": 0, + "menu_text": "Turn to high", + "type": "transform", + "msg": "You turn the heavy duty flashlight off.", + "target": "exo_flashlight_high" + }, + "flags": [ "LIGHT_250", "USE_UPS", "CANT_WEAR" ] + }, + { + "id": "exo_flashlight_high", + "copy-from": "exo_flashlight_off", + "type": "TOOL", + "name": { "str": "mounted lamp (high)", "str_pl": "mounted lamps (high)" }, + "power_draw": 2000, + "revert_to": "exo_flashlight_off", + "use_action": { + "ammo_scale": 0, + "menu_text": "Turn off", + "type": "transform", + "msg": "You turn the heavy duty flashlight off.", + "target": "exo_flashlight_off" + }, + "flags": [ "LIGHT_500", "USE_UPS", "CANT_WEAR" ] + }, + { + "id": "exo_hearing_off", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "enhanced audio sensor (off)", "str_pl": "enhanced audio sensors (off)" }, + "description": "This is an audio detection array exoskeleton module. While active, it also protects your hearing from loud noises.", + "weight": "500 g", + "volume": "500 ml", + "material": [ "steel", "plastic" ], + "symbol": "o", + "color": "white", + "charges_per_use": 1, + "ammo": [ "battery" ], + "flags": [ "USE_UPS", "CANT_WEAR" ], + "use_action": { + "type": "transform", + "msg": "You activate the helmet's audio enhancers.", + "target": "exo_hearing_on", + "active": true, + "need_charges": 1, + "need_charges_msg": "There is not enough charge to activate the module." + } + }, + { + "id": "exo_hearing_on", + "copy-from": "exo_hearing_off", + "type": "TOOL", + "name": { "str": "enhanced audio sensor (on)", "str_pl": "enhanced audio sensors (on)" }, + "power_draw": 500, + "revert_to": "exo_hearing_off", + "use_action": { + "ammo_scale": 0, + "menu_text": "Turn off", + "type": "transform", + "msg": "You turn off the helmet's audio enhancers.", + "target": "exo_hearing_off" + }, + "flags": [ "PARTIAL_DEAF", "USE_UPS", "CANT_WEAR" ] + }, + { + "id": "exo_recoil_off", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "recoil controller (off)", "str_pl": "recoil controller (off)" }, + "description": "This module takes partial control of the exoskeleton while firing, damping recoil. Activate before firing.", + "weight": "500 g", + "volume": "500 ml", + "material": [ "steel", "plastic" ], + "symbol": "o", + "color": "white", + "charges_per_use": 1, + "ammo": [ "battery" ], + "flags": [ "USE_UPS", "CANT_WEAR" ], + "use_action": { + "type": "transform", + "msg": "You activate the helmet's audio enhancers.", + "target": "exo_recoil_on", + "active": true, + "need_charges": 1, + "need_charges_msg": "There is not enough charge to activate the module." + }, + "relic_data": { + "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "WEAPON_DISPERSION", "add": -50 } ] } ] + } + }, + { + "id": "exo_recoil_on", + "copy-from": "exo_recoil_off", + "type": "TOOL", + "name": { "str": "recoil controller (on)", "str_pl": "recoil controllers (on)" }, + "power_draw": 2000, + "revert_to": "exo_recoil_off", + "use_action": { + "ammo_scale": 0, + "menu_text": "Turn off", + "type": "transform", + "msg": "You turn off the recoil controller.", + "target": "exo_recoil_off" + }, + "flags": [ "USE_UPS", "CANT_WEAR" ], + "relic_data": { + "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "WEAPON_DISPERSION", "add": -50 } ] } ] + } + }, + { + "id": "exo_optics_off", + "type": "TOOL_ARMOR", + "category": "armor", + "symbol": "8", + "color": "light_gray", + "name": { "str": "exoskeleton enhanced optics (off)", "str_pl": "exoskeleton enhanced optics (off)" }, + "description": "A set of enhanced optics for an exoskeleton. Provides telescopic vision as well as protection from glare and bright flashes of light. Activate to enable infrared vision.", + "price": 30000, + "price_postapoc": 500, + "material": [ "plastic", "glass" ], + "flags": [ "ZOOM", "SUN_GLASSES", "FLASH_PROTECTION" ], + "weight": "500 g", + "volume": "500 ml", + "bashing": 4, + "to_hit": -1, + "use_action": { + "type": "transform", + "msg": "You activate the helmet's optical enhancement.", + "target": "exo_hearing_on", + "active": true, + "need_charges": 1, + "need_charges_msg": "There is not enough charge to activate the module." + } + }, + { + "id": "exo_optics_on", + "copy-from": "exo_optics_off", + "type": "TOOL", + "name": { "str": "exoskeleton enhanced optics (on)", "str_pl": "exoskeleton enhanced optics (on)" }, + "power_draw": 500, + "revert_to": "exo_optics_off", + "use_action": { + "ammo_scale": 0, + "menu_text": "Turn off", + "type": "transform", + "msg": "You turn off helmet's optical enhancement.", + "target": "exo_optics_off" + }, + "flags": [ "USE_UPS", "CANT_WEAR", "IR_EFFECT" ] + }, + { + "id": "exoskeleton_helmet_filter", + "type": "TOOL_ARMOR", + "name": { "str": "exoskeleton filter module" }, + "category": "clothing", + "description": "A gas filtration module for an exoskeleton helmet. Provides excellent protection from smoke, teargas, and other contaminants. It must be prepared before use.", + "flags": [ "SLEEP_IGNORE" ], + "weight": "1000 g", + "volume": "1 L", + "material": [ "plastic" ], + "symbol": "[", + "color": "dark_gray", + "warmth": 20, + "material_thickness": 2, + "environmental_protection": 1, + "environmental_protection_with_filter": 16, + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "gasfilter_m": 100 } } ], + "ammo": "gasfilter_m", + "use_action": [ "GASMASK" ] + } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 9ee4dcf1228cd..26d959def83e7 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -366,5 +366,236 @@ "material_thickness": 8, "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] + }, + { + "id": "exo_helmet_plastic", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton helmet plastic plate" }, + "description": "Designed to attach to an exoskeleton's helmet, this is a plate of plastic.", + "weight": "1287 g", + "volume": "5 L", + "material": [ "plastic" ], + "symbol": "[", + "looks_like": "power_armor_helmet_basic", + "color": "light_gray", + "warmth": 20, + "material_thickness": 3, + "non_functional": "destroyed_exo_helmet_plastic_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] + }, + { + "id": "destroyed_exo_helmet_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_helmet_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_helmet_plastic", + "material": [ "plastic" ], + "material_thickness": 3, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] + }, + { + "id": "exo_helmet_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton helmet steel plate" }, + "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of steel.", + "weight": "12880 g", + "volume": "5 L", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "power_armor_helmet_basic", + "color": "light_gray", + "warmth": 20, + "material_thickness": 6, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] + }, + { + "id": "exo_helmet_milcomp", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton helmet military composite plate" }, + "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of military composite.", + "weight": "16500 g", + "volume": "5 L", + "material": [ "hardsteel", "ceramic" ], + "symbol": "[", + "looks_like": "power_armor_helmet_basic", + "color": "light_gray", + "warmth": 20, + "material_thickness": 8, + "non_functional": "destroyed_exo_helmet_milcomp_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] + }, + { + "id": "destroyed_exo_helmet_milcomp_plate", + "type": "ARMOR", + "copy-from": "exo_helmet_milcomp", + "name": { "str": "shattered military composite helmet plate" }, + "description": "The remains of a military composite helmet plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_helmet_milcomp", + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] + }, + { + "id": "exo_boot_plastic", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton boot plastic plate" }, + "description": "Designed to attach to an exoskeleton's boot, this is a plate of plastic.", + "weight": "3003 g", + "volume": "3250 ml", + "material": [ "plastic" ], + "symbol": "[", + "looks_like": "boots_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 3, + "non_functional": "destroyed_exo_boot_plastic_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] + }, + { + "id": "destroyed_exo_boot_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_boot_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_boot_plastic", + "material": [ "plastic" ], + "material_thickness": 3, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] + }, + { + "id": "exo_boot_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton boot steel plate" }, + "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of steel.", + "weight": "30053 g", + "volume": "3250 ml", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "boots_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 6, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] + }, + { + "id": "exo_boot_milcomp", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton boot military composite plate" }, + "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of military composite.", + "weight": "38500 g", + "volume": "3250 ml", + "material": [ "hardsteel", "ceramic" ], + "symbol": "[", + "looks_like": "boots_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 8, + "non_functional": "destroyed_exo_boot_milcomp_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] + }, + { + "id": "destroyed_exo_boot_milcomp_plate", + "type": "ARMOR", + "copy-from": "exo_boot_milcomp", + "name": { "str": "shattered military composite boot plate" }, + "description": "The remains of a military composite boot plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_boot_milcomp", + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] + }, + { + "id": "exo_glove_plastic", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton glove plastic plate" }, + "description": "Designed to attach to an exoskeleton's glove, this is a plate of plastic.", + "weight": "429 g", + "volume": "1 ml", + "material": [ "plastic" ], + "symbol": "[", + "looks_like": "gloves_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 3, + "non_functional": "destroyed_exo_glove_plastic_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] + }, + { + "id": "destroyed_exo_glove_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_glove_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_glove_plastic", + "material": [ "plastic" ], + "material_thickness": 3, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] + }, + { + "id": "exo_glove_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton glove steel plate" }, + "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of steel.", + "weight": "4293 g", + "volume": "1 ml", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "gloves_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 6, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] + }, + { + "id": "exo_glove_milcomp", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton glove military composite plate" }, + "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of military composite.", + "weight": "5500 g", + "volume": "1 ml", + "material": [ "hardsteel", "ceramic" ], + "symbol": "[", + "looks_like": "gloves_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 8, + "non_functional": "destroyed_exo_glove_milcomp_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] + }, + { + "id": "destroyed_exo_glove_milcomp_plate", + "type": "ARMOR", + "copy-from": "exo_glove_milcomp", + "name": { "str": "shattered military composite glove plate" }, + "description": "The remains of a military composite glove plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_glove_milcomp", + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 15d1ecb83d6de..ac3e451a832f8 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -1,5 +1,5 @@ [ - { + { "id": "exo_rifle_storage", "type": "ARMOR", "name": { "str": "large storage pouch" }, @@ -32,7 +32,7 @@ "material_thickness": 2, "armor": [ { "encumbrance": [ 2, 6 ], "coverage": 20, "covers": [ "torso" ] } ] }, - { + { "id": "exo_melee_storage", "type": "ARMOR", "name": { "str": "large storage pouch" }, @@ -58,9 +58,9 @@ ], "use_action": { "type": "holster", "holster_prompt": "Sheath sword", "holster_msg": "You sheath your %s" }, "material_thickness": 2, - "armor": [ { "encumbrance": [ 2, 6 ], "coverage": 20, "covers": [ "torso" ]} ] + "armor": [ { "encumbrance": [ 2, 6 ], "coverage": 20, "covers": [ "torso" ] } ] }, - { + { "id": "exo_large_storage", "repairs_like": "backpack_tactical_large", "type": "ARMOR", @@ -72,7 +72,6 @@ "symbol": "[", "looks_like": "backpack", "color": "green", - "pocket_data": [ { "pocket_type": "CONTAINER", @@ -107,7 +106,7 @@ "moves": 120 }, { - "//": "carabiner pocket", + "description": "carabiner pocket", "pocket_type": "CONTAINER", "holster": true, "max_contains_volume": "5 L", @@ -120,7 +119,7 @@ "activity_noise": { "volume": 8, "chance": 10 } }, { - "//": "carabiner pocket", + "description": "carabiner pocket", "pocket_type": "CONTAINER", "holster": true, "max_contains_volume": "5 L", @@ -133,7 +132,7 @@ "activity_noise": { "volume": 8, "chance": 10 } }, { - "//": "carabiner pocket", + "description": "carabiner pocket", "pocket_type": "CONTAINER", "holster": true, "max_contains_volume": "5 L", @@ -148,7 +147,7 @@ ], "flags": [ "BELTED", "WATERPROOF", "ONLY_ONE", "OVERSIZE" ] }, - { + { "id": "exo_medium_storage", "repairs_like": "fanny", "type": "ARMOR", @@ -171,7 +170,7 @@ } ] }, - { + { "id": "exo_small_storage", "repairs_like": "fanny", "type": "ARMOR", @@ -194,7 +193,7 @@ } ] }, - { + { "id": "exo_large_ammo_pouch", "type": "ARMOR", "name": { "str": "exoskeleton large ammo pouches", "str_pl": "exoskeleton large ammo pouches" }, @@ -206,7 +205,7 @@ "material": [ "nylon" ], "symbol": "[", "color": "dark_gray", - "pocket_data": [ + "pocket_data": [ { "magazine_well": "350 ml", "pocket_type": "CONTAINER", @@ -275,7 +274,7 @@ } ] }, - { + { "id": "exo_small_ammo_pouch", "type": "ARMOR", "name": { "str": "exoskeleton small ammo pouches", "str_pl": "exoskeleton small ammo pouches" }, @@ -295,7 +294,7 @@ "max_item_length": "30 cm", "magazine_well": "500 ml", "moves": 200, - "flag_restriction": [ "MAG_COMPACT"] + "flag_restriction": [ "MAG_COMPACT" ] }, { "pocket_type": "CONTAINER", @@ -304,7 +303,7 @@ "max_item_length": "30 cm", "magazine_well": "500 ml", "moves": 200, - "flag_restriction": [ "MAG_COMPACT"] + "flag_restriction": [ "MAG_COMPACT" ] } ], "material_thickness": 0.2, @@ -318,4 +317,4 @@ } ] } - ] \ No newline at end of file +] From cb8f1c645c6a87761a05297ba2d17632eb523a24 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 10 Dec 2021 16:19:36 -0800 Subject: [PATCH 104/189] Flags Adds a collection of flags for exoskeleton equipment. --- data/font/terminus.fon | Bin 0 -> 1351680 bytes data/json/flags.json | 71 +++ .../modular_exos/modular_exoskeleton.json | 83 +--- .../modular_exoskeleton_modules.json | 50 +- .../modular_exoskeleton_plating.json | 438 +++++++++--------- .../modular_exoskeleton_storage.json | 8 +- src/flag.cpp | 14 + 7 files changed, 355 insertions(+), 309 deletions(-) create mode 100644 data/font/terminus.fon diff --git a/data/font/terminus.fon b/data/font/terminus.fon new file mode 100644 index 0000000000000000000000000000000000000000..6258a062b84b8c5dcb2432327fa70a19c4ecc84b GIT binary patch literal 1351680 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 z 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�I0tweu&sM@<2Jx?zzcu{ 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 literal 0 HcmV?d00001 diff --git a/data/json/flags.json b/data/json/flags.json index d5510ea184fb6..857606933b4b5 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -1858,5 +1858,76 @@ "type": "json_flag", "info": "Airtight tanks for propane, natural gas, etc.", "name": "gas tank" + }, + { + "id": "EXO_SMALL", + "type": "json flag", + "info": "This is meant for a small exoskeleton hardpoint." + }, + { + "id": "EXO_LARGE", + "type": "json flag", + "info": "This is meant for a large exoskeleton hardpoint." + }, + { + "id": "EXO_PSU", + "type": "json flag", + "info": "This is meant for an exoskeleton PSU hardpoint." + }, + { + "id": "EXO_SMALL_GADGET", + "type": "json flag", + "info": "This is meant for small exoskeleton gadgets, 1 L or less." + }, + { + "id": "EXO_HELMET_GADGET", + "type": "json flag", + "info": "This is meant for helmet-specific gadgets." + }, + { + "id": "EXO_MEDIUM_GADGET", + "type": "json flag", + "info": "This is meant for medium exoskeleton gadgets, between 1 L and 5 L." + }, + { + "id": "EXO_LARGE_GADGET", + "type": "json flag", + "info": "This is meant for large exoskeleton gadgets, larger than 5 L." + }, + { + "id": "EXO_HELMET_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton helmet plating." + }, + { + "id": "EXO_TORSO_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton torso plating." + }, + { + "id": "EXO_PSU_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton PSU plating." + }, + { + "id": "EXO_ARM_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton arm plating." + }, + { + { + "id": "EXO_GLOVE_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton arm plating." + }, + { + "id": "EXO_LEG_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton leg plating." + }, + { + "id": "EXO_BOOT_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton foot plating." } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index b0209489ca0ee..2b13acde5d99b 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -40,53 +40,25 @@ "description": "This is a mounting point for torso armor.", "ablative": true, "rigid": true, - "max_contains_volume": "10 L", - "max_contains_weight": "45 kg", - "item_restriction": [ "exo_torso_steel", "exo_torso_plastic", "exo_torso_milcomp" ], + "flag_restriction": [ "EXO_TORSO_PLATE" ], "moves": 60 }, { "pocket_type": "CONTAINER", - "description": "This is a hardpoint for storing items in the torso.", + "description": "This is a mount for storing items in the torso.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "item_restriction": [ - "exo_small_storage", - "exo_medium_storage", - "exo_large_ammo_pouch", - "exo_small_ammo_pouch", - "exo_small_aux_power", - "exo_small_carry_off", - "exo_small_carry_on", - "exo_flashlight_off", - "exo_flashlight_low", - "exo_flashlight_high", - "exo_recoil_off", - "exo_recoil_on" - ], + "flag_restriction": ["EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET"], "moves": 60 }, { "pocket_type": "CONTAINER", - "description": "This is a mounting point for power supply units or large modules.", + "description": "This is a mounting point for power supply units and large modules.", "rigid": true, "max_contains_volume": "25 L", "max_contains_weight": "140 kg", - "item_restriction": [ - "exo_back_battery_rechargable", - "exo_back_gasoline", - "exo_large_storage", - "exo_large_aux_power", - "exo_small_aux_power", - "exo_small_storage", - "exo_medium_storage", - "exo_large_carry_off", - "exo_large_carry_on", - "exo_small_carry_off", - "exo_small_carry_on", - "exo_melee_storage", - "exo_rifle_storage" + "flag_restriction": ["EXO_PSU", "EXO_LARGE_GADGET", "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" ], "moves": 60 }, @@ -95,28 +67,25 @@ "description": "This is a mounting point for arm armor.", "ablative": true, "rigid": true, - "max_contains_volume": "8 L", - "max_contains_weight": "35 kg", - "max_item_length": "200 mm", - "item_restriction": [ "exo_arm_steel", "exo_arm_plastic", "exo_arm_milcomp" ], + "flag_restriction": [ "EXO_ARM_PLATE" ], "moves": 60 }, { "pocket_type": "CONTAINER", - "description": "This is a hardpoint for storing items on the arms.", + "description": "This is a mount for storing items on the arms.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "item_restriction": [ "exo_small_storage", "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", "exo_small_carry_on" ], + "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET", ], "moves": 60 }, { "pocket_type": "CONTAINER", - "description": "This is a hardpoint for storing items on the arms.", + "description": "This is a mount for storing items on the arms.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "item_restriction": [ "exo_small_storage", "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", "exo_small_carry_on" ], + "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET", ], "moves": 60 }, { @@ -124,28 +93,25 @@ "description": "This is a mounting point for leg armor.", "ablative": true, "rigid": true, - "max_contains_volume": "9 L", - "max_contains_weight": "40 kg", - "max_item_length": "200 mm", - "item_restriction": [ "exo_leg_steel", "exo_leg_plastic", "exo_leg_milcomp" ], + "flag_restriction": [ "EXO_LEG_PLATE" ], "moves": 60 }, { "pocket_type": "CONTAINER", - "description": "This is a hardpoint for storing items on the legs.", + "description": "This is a mount for storing items on the legs.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "item_restriction": [ "exo_small_storage", "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", "exo_small_carry_on" ], + "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET", ], "moves": 60 }, { "pocket_type": "CONTAINER", - "description": "This is a hardpoint for storing items on the legs.", + "description": "This is a mount for storing items on the legs.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "item_restriction": [ "exo_small_storage", "exo_small_ammo_pouch", "exo_small_aux_power", "exo_small_carry_off", "exo_small_carry_on" ], + "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET", ], "moves": 60 } ], @@ -181,7 +147,7 @@ "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton helmet" }, - "description": "This is a helmet offering hardpoints for specialized equipment and protection.", + "description": "This is a helmet offering mounts for specialized equipment and protection.", "weight": "2500 g", "volume": "5 L", "material": [ "steel", "plastic" ], @@ -198,7 +164,7 @@ "pocket_type": "CONTAINER", "description": "This is a mounting point for helmet plating.", "ablative": true, - "item_restriction": [ "exo_helmet_steel", "exo_helmet_plastic", "exo_helmet_milcomp" ] + "flag_restriction": [ "EXO_HELMET_PLATE" ] }, { "pocket_type": "CONTAINER", @@ -206,16 +172,7 @@ "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "item_restriction": [ - "exo_flashlight_off", - "exo_flashlight_low", - "exo_flashlight_high", - "exo_hearing_on", - "exo_hearing_off", - "exo_optics_off", - "exo_optics_on", - "exoskeleton_helmet_filter" - ], + "flag_restriction": ["EXO_HELMET_GADGET"], "moves": 60 } ] @@ -242,7 +199,7 @@ "pocket_type": "CONTAINER", "description": "This is a mounting point for boot plating.", "ablative": true, - "item_restriction": [ "exo_boot_steel", "exo_boot_plastic", "exo_boot_milcomp" ], + "flag_restriction": ["EXO_BOOT_PLATE" ], "moves": 60 } ] @@ -269,7 +226,7 @@ "pocket_type": "CONTAINER", "description": "This is a mounting point for glove plating.", "ablative": true, - "item_restriction": [ "exo_glove_steel", "exo_glove_plastic", "exo_glove_milcomp" ], + "flag_restriction": [ "EXO_GLOVE_PLATE" ], "moves": 60 } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 8c8b8e7caf505..00d3ef0ab6089 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -12,7 +12,7 @@ "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS", "EXO_PSU", "ONLY_ONE" ], "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 40000 } }, @@ -23,7 +23,7 @@ "ablative": true, "max_contains_volume": "10 L", "max_contains_weight": "145 kg", - "item_restriction": [ "exo_psu_steel", "exo_psu_plastic", "exo_psu_milcomp" ], + "item_restriction": [ "EXO_PSU_PLATE" ], "moves": 60 } ] @@ -41,7 +41,7 @@ "looks_like": "1cyl_combustion", "color": "dark_gray", "ammo": "gasoline", - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS", "EXO_PSU", "ONLY_ONE" ], "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], "pocket_data": [ { @@ -58,7 +58,7 @@ "rigid": true, "max_contains_volume": "10 L", "max_contains_weight": "145 kg", - "item_restriction": [ "exo_psu_steel", "exo_psu_plastic", "exo_psu_milcomp" ], + "flag_restriction": [ "EXO_PSU_PLATE" ], "moves": 60 } ] @@ -76,7 +76,7 @@ "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS", "EXO_LARGE_GADGET" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 4000 } } ] }, { @@ -92,7 +92,7 @@ "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS", "EXO_SMALL_GADGET" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 1000 } } ] }, { @@ -108,7 +108,7 @@ "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS", "EXO_LARGE_GADGET" ], "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 30000 } ] } ] }, @@ -135,7 +135,7 @@ "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS", "EXO_LARGE_GADGET" ], "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 30000 } ] } ] }, @@ -162,7 +162,7 @@ "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS", "EXO_SMALL_GADGET" ], "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 20000 } ] } ] }, @@ -189,7 +189,7 @@ "looks_like": "storage_battery", "color": "light_gray", "ammo": [ "battery" ], - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS", "EXO_SMALL_GADGET" ], "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 20000 } ] } ] }, @@ -216,7 +216,7 @@ "color": "white", "charges_per_use": 1, "ammo": [ "battery" ], - "flags": [ "USE_UPS", "CANT_WEAR" ], + "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET" ], "use_action": { "type": "transform", "msg": "You turn the lamp on low.", @@ -240,7 +240,7 @@ "msg": "You turn the heavy duty flashlight off.", "target": "exo_flashlight_high" }, - "flags": [ "LIGHT_250", "USE_UPS", "CANT_WEAR" ] + "flags": [ "LIGHT_250", "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET"] }, { "id": "exo_flashlight_high", @@ -256,14 +256,14 @@ "msg": "You turn the heavy duty flashlight off.", "target": "exo_flashlight_off" }, - "flags": [ "LIGHT_500", "USE_UPS", "CANT_WEAR" ] + "flags": [ "LIGHT_500", "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET" ] }, { "id": "exo_hearing_off", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "enhanced audio sensor (off)", "str_pl": "enhanced audio sensors (off)" }, - "description": "This is an audio detection array exoskeleton module. While active, it also protects your hearing from loud noises.", + "name": { "str": "audio protection (off)", "str_pl": "audio protection (off)" }, + "description": "This is an audio protection exoskeleton module. While active, it also protects your hearing from loud noises.", "weight": "500 g", "volume": "500 ml", "material": [ "steel", "plastic" ], @@ -271,10 +271,10 @@ "color": "white", "charges_per_use": 1, "ammo": [ "battery" ], - "flags": [ "USE_UPS", "CANT_WEAR" ], + "flags": [ "USE_UPS", "CANT_WEAR", "EXO_HELMET_GADGET", "ONLY ONE"], "use_action": { "type": "transform", - "msg": "You activate the helmet's audio enhancers.", + "msg": "You activate the helmet's audio protection.", "target": "exo_hearing_on", "active": true, "need_charges": 1, @@ -285,17 +285,17 @@ "id": "exo_hearing_on", "copy-from": "exo_hearing_off", "type": "TOOL", - "name": { "str": "enhanced audio sensor (on)", "str_pl": "enhanced audio sensors (on)" }, + "name": { "str": "audio protection (on)", "str_pl": "audio protection (on)" }, "power_draw": 500, "revert_to": "exo_hearing_off", "use_action": { "ammo_scale": 0, "menu_text": "Turn off", "type": "transform", - "msg": "You turn off the helmet's audio enhancers.", + "msg": "You turn off the helmet's audio protection.", "target": "exo_hearing_off" }, - "flags": [ "PARTIAL_DEAF", "USE_UPS", "CANT_WEAR" ] + "flags": [ "PARTIAL_DEAF", "USE_UPS", "CANT_WEAR", "EXO_HELMET_GADGET", "ONLY ONE" ] }, { "id": "exo_recoil_off", @@ -310,7 +310,7 @@ "color": "white", "charges_per_use": 1, "ammo": [ "battery" ], - "flags": [ "USE_UPS", "CANT_WEAR" ], + "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET", "ONLY ONE" ], "use_action": { "type": "transform", "msg": "You activate the helmet's audio enhancers.", @@ -337,7 +337,7 @@ "msg": "You turn off the recoil controller.", "target": "exo_recoil_off" }, - "flags": [ "USE_UPS", "CANT_WEAR" ], + "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET", "ONLY ONE" ], "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "WEAPON_DISPERSION", "add": -50 } ] } ] } @@ -353,7 +353,7 @@ "price": 30000, "price_postapoc": 500, "material": [ "plastic", "glass" ], - "flags": [ "ZOOM", "SUN_GLASSES", "FLASH_PROTECTION" ], + "flags": [ "ZOOM", "SUN_GLASSES", "FLASH_PROTECTION", "EXO_HELMET_GADGET", "ONLY ONE" ], "weight": "500 g", "volume": "500 ml", "bashing": 4, @@ -381,7 +381,7 @@ "msg": "You turn off helmet's optical enhancement.", "target": "exo_optics_off" }, - "flags": [ "USE_UPS", "CANT_WEAR", "IR_EFFECT" ] + "flags": [ "USE_UPS", "CANT_WEAR", "IR_EFFECT", "EXO_HELMET_GADGET", "ONLY ONE" ] }, { "id": "exoskeleton_helmet_filter", @@ -389,7 +389,7 @@ "name": { "str": "exoskeleton filter module" }, "category": "clothing", "description": "A gas filtration module for an exoskeleton helmet. Provides excellent protection from smoke, teargas, and other contaminants. It must be prepared before use.", - "flags": [ "SLEEP_IGNORE" ], + "flags": [ "SLEEP_IGNORE", "EXO_HELMET_GADGET", "ONLY ONE" ], "weight": "1000 g", "volume": "1 L", "material": [ "plastic" ], diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 26d959def83e7..93a890fa8c090 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -1,4 +1,21 @@ [ + { + "id": "exo_helmet_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton helmet steel plate" }, + "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of steel.", + "weight": "12880 g", + "volume": "5 L", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "power_armor_helmet_basic", + "color": "light_gray", + "warmth": 20, + "material_thickness": 6, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_HELMET_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] + }, { "id": "exo_torso_steel", "type": "ARMOR", @@ -13,7 +30,7 @@ "color": "light_gray", "warmth": 20, "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE","EXO_TORSO_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { @@ -30,7 +47,7 @@ "color": "light_gray", "warmth": 0, "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_PSU_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { @@ -47,7 +64,7 @@ "color": "light_gray", "warmth": 20, "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_ARM_PLATE" ], "armor": [ { "covers": [ "arm_l", "arm_r" ], @@ -60,6 +77,23 @@ } ] }, + { + "id": "exo_glove_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton glove steel plate" }, + "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of steel.", + "weight": "4293 g", + "volume": "1 ml", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "gloves_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 6, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] + }, { "id": "exo_leg_steel", "type": "ARMOR", @@ -74,7 +108,7 @@ "color": "light_gray", "warmth": 10, "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_LEG_PLATE" ], "armor": [ { "covers": [ "leg_l", "leg_r" ], @@ -87,6 +121,53 @@ } ] }, + { + "id": "exo_boot_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton boot steel plate" }, + "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of steel.", + "weight": "30053 g", + "volume": "3250 ml", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "boots_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 6, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_BOOT_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] + }, + { + "id": "exo_helmet_plastic", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton helmet plastic plate" }, + "description": "Designed to attach to an exoskeleton's helmet, this is a plate of plastic.", + "weight": "1287 g", + "volume": "5 L", + "material": [ "plastic" ], + "symbol": "[", + "looks_like": "power_armor_helmet_basic", + "color": "light_gray", + "warmth": 20, + "material_thickness": 3, + "non_functional": "destroyed_exo_helmet_plastic_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_HELMET_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] + }, + { + "id": "destroyed_exo_helmet_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_helmet_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_helmet_plastic", + "material": [ "plastic" ], + "material_thickness": 3, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_HELMET_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] + }, { "id": "exo_torso_plastic", "type": "ARMOR", @@ -102,7 +183,7 @@ "warmth": 20, "material_thickness": 3, "non_functional": "destroyed_exo_torso_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE","EXO_TORSO_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { @@ -114,7 +195,7 @@ "looks_like": "exo_torso_plastic", "material": [ "plastic" ], "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR","EXO_TORSO_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, { @@ -162,7 +243,7 @@ "warmth": 20, "material_thickness": 3, "non_functional": "destroyed_exo_arm_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_ARM_PLATE" ], "armor": [ { "covers": [ "arm_l", "arm_r" ], @@ -175,6 +256,36 @@ } ] }, + { + "id": "exo_glove_plastic", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton glove plastic plate" }, + "description": "Designed to attach to an exoskeleton's glove, this is a plate of plastic.", + "weight": "429 g", + "volume": "1 ml", + "material": [ "plastic" ], + "symbol": "[", + "looks_like": "gloves_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 3, + "non_functional": "destroyed_exo_glove_plastic_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] + }, + { + "id": "destroyed_exo_glove_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_glove_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_glove_plastic", + "material": [ "plastic" ], + "material_thickness": 3, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_GLOVE_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] + }, { "id": "destroyed_exo_arm_plastic_plate", "type": "ARMOR", @@ -184,7 +295,7 @@ "looks_like": "exo_arm_plastic", "material": [ "plastic" ], "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_ARM_PLATE" ], "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, { @@ -202,7 +313,7 @@ "warmth": 10, "material_thickness": 3, "non_functional": "destroyed_exo_leg_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_LEG_PLATE" ], "armor": [ { "covers": [ "leg_l", "leg_r" ], @@ -224,9 +335,69 @@ "looks_like": "exo_leg_plastic", "material": [ "plastic" ], "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_LEG_PLATE" ], "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, + { + "id": "exo_boot_plastic", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton boot plastic plate" }, + "description": "Designed to attach to an exoskeleton's boot, this is a plate of plastic.", + "weight": "3003 g", + "volume": "3250 ml", + "material": [ "plastic" ], + "symbol": "[", + "looks_like": "boots_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 3, + "non_functional": "destroyed_exo_boot_plastic_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_BOOT_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] + }, + { + "id": "destroyed_exo_boot_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_boot_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_boot_plastic", + "material": [ "plastic" ], + "material_thickness": 3, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_BOOT_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] + }, + { + "id": "exo_helmet_milcomp", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton helmet military composite plate" }, + "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of military composite.", + "weight": "16500 g", + "volume": "5 L", + "material": [ "hardsteel", "ceramic" ], + "symbol": "[", + "looks_like": "power_armor_helmet_basic", + "color": "light_gray", + "warmth": 20, + "material_thickness": 8, + "non_functional": "destroyed_exo_helmet_milcomp_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_HELMET_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] + }, + { + "id": "destroyed_exo_helmet_milcomp_plate", + "type": "ARMOR", + "copy-from": "exo_helmet_milcomp", + "name": { "str": "shattered military composite helmet plate" }, + "description": "The remains of a military composite helmet plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_helmet_milcomp", + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_HELMET_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] + }, { "id": "exo_torso_milcomp", "type": "ARMOR", @@ -242,7 +413,7 @@ "warmth": 20, "material_thickness": 8, "non_functional": "destroyed_exo_torso_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE","EXO_TORSO_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { @@ -254,7 +425,7 @@ "looks_like": "exo_torso_milcomp", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR","EXO_TORSO_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, { @@ -302,7 +473,7 @@ "warmth": 20, "material_thickness": 8, "non_functional": "destroyed_exo_arm_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_ARM_PLATE" ], "armor": [ { "covers": [ "arm_l", "arm_r" ], @@ -324,9 +495,39 @@ "looks_like": "exo_arm_milcomp", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_ARM_PLATE" ], "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, + { + "id": "exo_glove_milcomp", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton glove military composite plate" }, + "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of military composite.", + "weight": "5500 g", + "volume": "1 ml", + "material": [ "hardsteel", "ceramic" ], + "symbol": "[", + "looks_like": "gloves_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 8, + "non_functional": "destroyed_exo_glove_milcomp_plate", + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] + }, + { + "id": "destroyed_exo_glove_milcomp_plate", + "type": "ARMOR", + "copy-from": "exo_glove_milcomp", + "name": { "str": "shattered military composite glove plate" }, + "description": "The remains of a military composite glove plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_glove_milcomp", + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_GLOVE_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] + }, { "id": "exo_leg_milcomp", "type": "ARMOR", @@ -342,7 +543,7 @@ "warmth": 10, "material_thickness": 8, "non_functional": "destroyed_exo_leg_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_LEG_PLATE" ], "armor": [ { "covers": [ "leg_l", "leg_r" ], @@ -364,133 +565,9 @@ "looks_like": "exo_leg_milcomp", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_LEG_PLATE" ], "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] }, - { - "id": "exo_helmet_plastic", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton helmet plastic plate" }, - "description": "Designed to attach to an exoskeleton's helmet, this is a plate of plastic.", - "weight": "1287 g", - "volume": "5 L", - "material": [ "plastic" ], - "symbol": "[", - "looks_like": "power_armor_helmet_basic", - "color": "light_gray", - "warmth": 20, - "material_thickness": 3, - "non_functional": "destroyed_exo_helmet_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] - }, - { - "id": "destroyed_exo_helmet_plastic_plate", - "type": "ARMOR", - "copy-from": "exo_helmet_plastic", - "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_helmet_plastic", - "material": [ "plastic" ], - "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] - }, - { - "id": "exo_helmet_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton helmet steel plate" }, - "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of steel.", - "weight": "12880 g", - "volume": "5 L", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "power_armor_helmet_basic", - "color": "light_gray", - "warmth": 20, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] - }, - { - "id": "exo_helmet_milcomp", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton helmet military composite plate" }, - "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of military composite.", - "weight": "16500 g", - "volume": "5 L", - "material": [ "hardsteel", "ceramic" ], - "symbol": "[", - "looks_like": "power_armor_helmet_basic", - "color": "light_gray", - "warmth": 20, - "material_thickness": 8, - "non_functional": "destroyed_exo_helmet_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] - }, - { - "id": "destroyed_exo_helmet_milcomp_plate", - "type": "ARMOR", - "copy-from": "exo_helmet_milcomp", - "name": { "str": "shattered military composite helmet plate" }, - "description": "The remains of a military composite helmet plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_helmet_milcomp", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] - }, - { - "id": "exo_boot_plastic", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton boot plastic plate" }, - "description": "Designed to attach to an exoskeleton's boot, this is a plate of plastic.", - "weight": "3003 g", - "volume": "3250 ml", - "material": [ "plastic" ], - "symbol": "[", - "looks_like": "boots_plate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 3, - "non_functional": "destroyed_exo_boot_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] - }, - { - "id": "destroyed_exo_boot_plastic_plate", - "type": "ARMOR", - "copy-from": "exo_boot_plastic", - "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_boot_plastic", - "material": [ "plastic" ], - "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] - }, - { - "id": "exo_boot_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton boot steel plate" }, - "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of steel.", - "weight": "30053 g", - "volume": "3250 ml", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "boots_plate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] - }, { "id": "exo_boot_milcomp", "type": "ARMOR", @@ -506,7 +583,7 @@ "warmth": 20, "material_thickness": 8, "non_functional": "destroyed_exo_boot_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_BOOT_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] }, { @@ -518,84 +595,7 @@ "looks_like": "exo_boot_milcomp", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_BOOT_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] - }, - { - "id": "exo_glove_plastic", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton glove plastic plate" }, - "description": "Designed to attach to an exoskeleton's glove, this is a plate of plastic.", - "weight": "429 g", - "volume": "1 ml", - "material": [ "plastic" ], - "symbol": "[", - "looks_like": "gloves_plate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 3, - "non_functional": "destroyed_exo_glove_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] - }, - { - "id": "destroyed_exo_glove_plastic_plate", - "type": "ARMOR", - "copy-from": "exo_glove_plastic", - "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_glove_plastic", - "material": [ "plastic" ], - "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] - }, - { - "id": "exo_glove_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton glove steel plate" }, - "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of steel.", - "weight": "4293 g", - "volume": "1 ml", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "gloves_plate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] - }, - { - "id": "exo_glove_milcomp", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton glove military composite plate" }, - "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of military composite.", - "weight": "5500 g", - "volume": "1 ml", - "material": [ "hardsteel", "ceramic" ], - "symbol": "[", - "looks_like": "gloves_plate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 8, - "non_functional": "destroyed_exo_glove_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] - }, - { - "id": "destroyed_exo_glove_milcomp_plate", - "type": "ARMOR", - "copy-from": "exo_glove_milcomp", - "name": { "str": "shattered military composite glove plate" }, - "description": "The remains of a military composite glove plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_glove_milcomp", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index ac3e451a832f8..f27542e23e3c2 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -9,6 +9,7 @@ "price": 18000, "price_postapoc": 800, "material": [ "steel" ], + "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], "symbol": "[", "looks_like": "slingpack", "color": "light_gray", @@ -42,6 +43,7 @@ "price": 18000, "price_postapoc": 800, "material": [ "steel" ], + "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], "symbol": "[", "looks_like": "bscabbard", "color": "light_gray", @@ -69,6 +71,7 @@ "weight": "2291 g", "volume": "15 L", "material": [ "nylon", "plastic" ], + "flags": [ "WATER_FRIENDLY", "EXO_LARGE_GADGET" ], "symbol": "[", "looks_like": "backpack", "color": "green", @@ -156,6 +159,7 @@ "weight": "275 g", "volume": "2500 ml", "material": [ "nylon", "plastic" ], + "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], "symbol": "[", "looks_like": "holster", "color": "green", @@ -264,7 +268,7 @@ { "ammo_restriction": { "410shot": 6, "shot": 6, "20x66mm": 6, "signal_flare": 6 }, "moves": 25 } ], "material_thickness": 0.2, - "flags": [ "WATER_FRIENDLY" ], + "flags": [ "WATER_FRIENDLY", "EXO_LARGE_GADGET" ], "armor": [ { "encumbrance": [ 2, 5 ], @@ -307,7 +311,7 @@ } ], "material_thickness": 0.2, - "flags": [ "WATER_FRIENDLY" ], + "flags": [ "WATER_FRIENDLY", "EXO_SMALL_GADGET" ], "armor": [ { "encumbrance": [ 2, 5 ], diff --git a/src/flag.cpp b/src/flag.cpp index 7366005ec93cb..7accf14aed6f1 100644 --- a/src/flag.cpp +++ b/src/flag.cpp @@ -89,6 +89,20 @@ const flag_id flag_EDIBLE_FROZEN( "EDIBLE_FROZEN" ); const flag_id flag_EFFECT_IMPEDING( "EFFECT_IMPEDING" ); const flag_id flag_ELECTRIC_IMMUNE( "ELECTRIC_IMMUNE" ); const flag_id flag_ETHEREAL_ITEM( "ETHEREAL_ITEM" ); +const flag_id _flag EXO_ARM_PLATE( "EXO_ARM_PLATE" ); +const flag_id _flag EXO_BOOT_PLATE( "EXO_BOOT_PLATE" ); +const flag_id _flag EXO_GLOVE_PLATE( "EXO_GLOVE_PLATE" ); +const flag_id _flag EXO_HELMET_GADGET( "EXO_HELMET_GADGET" ); +const flag_id _flag EXO_HELMET_PLATE( "EXO_HELMET_PLATE" ); +const flag_id _flag EXO_LARGE_GADGET( "EXO_LARGE_GADGET" ); +const flag_id _flag EXO_LARGE( "EXO_LARGE" ); +const flag_id _flag EXO_LEG_PLATE( "EXO_LEG_PLATE" ); +const flag_id _flag EXO_MEDIUM_GADGET( "EXO_MEDIUM_GADGET" ); +const flag_id _flag EXO_PSU_PLATE( "EXO_PSU_PLATE" ); +const flag_id _flag EXO_PSU( "EXO_PSU" ); +const flag_id _flag EXO_SMALL_GADGET( "EXO_SMALL_GADGET" ); +const flag_id _flag EXO_SMALL( "EXO_SMALL" ); +const flag_id _flag EXO_TORSO_PLATE( "EXO_TORSO_PLATE" ); const flag_id flag_FAKE_MILL( "FAKE_MILL" ); const flag_id flag_FAKE_SMOKE( "FAKE_SMOKE" ); const flag_id flag_FANCY( "FANCY" ); From e14a3ad4cff123add9368d6a1b2918449dbc3d18 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 10 Dec 2021 16:42:00 -0800 Subject: [PATCH 105/189] Final draft Last few fixes --- data/json/flags.json | 29 +++++++++---------- .../modular_exos/modular_exoskeleton.json | 18 ++++++++---- .../modular_exoskeleton_modules.json | 20 ++++++------- .../modular_exoskeleton_plating.json | 10 +++---- .../modular_exoskeleton_storage.json | 3 +- 5 files changed, 43 insertions(+), 37 deletions(-) diff --git a/data/json/flags.json b/data/json/flags.json index 857606933b4b5..004796b470341 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -1861,73 +1861,72 @@ }, { "id": "EXO_SMALL", - "type": "json flag", + "type": "json_flag", "info": "This is meant for a small exoskeleton hardpoint." }, { "id": "EXO_LARGE", - "type": "json flag", + "type": "json_flag", "info": "This is meant for a large exoskeleton hardpoint." }, { "id": "EXO_PSU", - "type": "json flag", + "type": "json_flag", "info": "This is meant for an exoskeleton PSU hardpoint." }, { "id": "EXO_SMALL_GADGET", - "type": "json flag", + "type": "json_flag", "info": "This is meant for small exoskeleton gadgets, 1 L or less." }, { "id": "EXO_HELMET_GADGET", - "type": "json flag", + "type": "json_flag", "info": "This is meant for helmet-specific gadgets." }, { "id": "EXO_MEDIUM_GADGET", - "type": "json flag", + "type": "json_flag", "info": "This is meant for medium exoskeleton gadgets, between 1 L and 5 L." }, { "id": "EXO_LARGE_GADGET", - "type": "json flag", + "type": "json_flag", "info": "This is meant for large exoskeleton gadgets, larger than 5 L." }, { "id": "EXO_HELMET_PLATE", - "type": "json flag", + "type": "json_flag", "info": "This is meant for exoskeleton helmet plating." }, { "id": "EXO_TORSO_PLATE", - "type": "json flag", + "type": "json_flag", "info": "This is meant for exoskeleton torso plating." }, { "id": "EXO_PSU_PLATE", - "type": "json flag", + "type": "json_flag", "info": "This is meant for exoskeleton PSU plating." }, { "id": "EXO_ARM_PLATE", - "type": "json flag", + "type": "json_flag", "info": "This is meant for exoskeleton arm plating." }, { - { "id": "EXO_GLOVE_PLATE", - "type": "json flag", + "type": "json_flag", "info": "This is meant for exoskeleton arm plating." }, { "id": "EXO_LEG_PLATE", - "type": "json flag", + "type": "json_flag", "info": "This is meant for exoskeleton leg plating." }, { "id": "EXO_BOOT_PLATE", - "type": "json flag", + "type": "json_flag", "info": "This is meant for exoskeleton foot plating." } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 2b13acde5d99b..0815d5ff77a16 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -40,6 +40,8 @@ "description": "This is a mounting point for torso armor.", "ablative": true, "rigid": true, + "max_contains_volume": "10 L", + "max_contains_weight": "45 kg", "flag_restriction": [ "EXO_TORSO_PLATE" ], "moves": 60 }, @@ -67,6 +69,9 @@ "description": "This is a mounting point for arm armor.", "ablative": true, "rigid": true, + "max_contains_volume": "8 L", + "max_contains_weight": "35 kg", + "max_item_length": "200 mm", "flag_restriction": [ "EXO_ARM_PLATE" ], "moves": 60 }, @@ -76,7 +81,7 @@ "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET", ], + "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" ], "moves": 60 }, { @@ -85,7 +90,7 @@ "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET", ], + "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" ], "moves": 60 }, { @@ -93,6 +98,9 @@ "description": "This is a mounting point for leg armor.", "ablative": true, "rigid": true, + "max_contains_volume": "9 L", + "max_contains_weight": "40 kg", + "max_item_length": "200 mm", "flag_restriction": [ "EXO_LEG_PLATE" ], "moves": 60 }, @@ -102,7 +110,7 @@ "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET", ], + "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" ], "moves": 60 }, { @@ -111,7 +119,7 @@ "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET", ], + "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" ], "moves": 60 } ], @@ -199,7 +207,7 @@ "pocket_type": "CONTAINER", "description": "This is a mounting point for boot plating.", "ablative": true, - "flag_restriction": ["EXO_BOOT_PLATE" ], + "flag_restriction": [ "EXO_BOOT_PLATE" ], "moves": 60 } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 00d3ef0ab6089..31936067a78f0 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -23,7 +23,7 @@ "ablative": true, "max_contains_volume": "10 L", "max_contains_weight": "145 kg", - "item_restriction": [ "EXO_PSU_PLATE" ], + "flag_restriction": [ "EXO_PSU_PLATE" ], "moves": 60 } ] @@ -41,7 +41,7 @@ "looks_like": "1cyl_combustion", "color": "dark_gray", "ammo": "gasoline", - "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS", "EXO_PSU", "ONLY_ONE" ], + "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS", "EXO_PSU", "ONLY_ONE" ], "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], "pocket_data": [ { @@ -240,7 +240,7 @@ "msg": "You turn the heavy duty flashlight off.", "target": "exo_flashlight_high" }, - "flags": [ "LIGHT_250", "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET"] + "flags": [ "LIGHT_250", "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET" ] }, { "id": "exo_flashlight_high", @@ -271,7 +271,7 @@ "color": "white", "charges_per_use": 1, "ammo": [ "battery" ], - "flags": [ "USE_UPS", "CANT_WEAR", "EXO_HELMET_GADGET", "ONLY ONE"], + "flags": [ "USE_UPS", "CANT_WEAR", "EXO_HELMET_GADGET", "ONLY_ONE" ], "use_action": { "type": "transform", "msg": "You activate the helmet's audio protection.", @@ -295,7 +295,7 @@ "msg": "You turn off the helmet's audio protection.", "target": "exo_hearing_off" }, - "flags": [ "PARTIAL_DEAF", "USE_UPS", "CANT_WEAR", "EXO_HELMET_GADGET", "ONLY ONE" ] + "flags": [ "PARTIAL_DEAF", "USE_UPS", "CANT_WEAR", "EXO_HELMET_GADGET", "ONLY_ONE" ] }, { "id": "exo_recoil_off", @@ -310,7 +310,7 @@ "color": "white", "charges_per_use": 1, "ammo": [ "battery" ], - "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET", "ONLY ONE" ], + "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET", "ONLY_ONE" ], "use_action": { "type": "transform", "msg": "You activate the helmet's audio enhancers.", @@ -337,7 +337,7 @@ "msg": "You turn off the recoil controller.", "target": "exo_recoil_off" }, - "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET", "ONLY ONE" ], + "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET", "ONLY_ONE" ], "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "WEAPON_DISPERSION", "add": -50 } ] } ] } @@ -353,7 +353,7 @@ "price": 30000, "price_postapoc": 500, "material": [ "plastic", "glass" ], - "flags": [ "ZOOM", "SUN_GLASSES", "FLASH_PROTECTION", "EXO_HELMET_GADGET", "ONLY ONE" ], + "flags": [ "ZOOM", "SUN_GLASSES", "FLASH_PROTECTION", "EXO_HELMET_GADGET", "ONLY_ONE" ], "weight": "500 g", "volume": "500 ml", "bashing": 4, @@ -381,7 +381,7 @@ "msg": "You turn off helmet's optical enhancement.", "target": "exo_optics_off" }, - "flags": [ "USE_UPS", "CANT_WEAR", "IR_EFFECT", "EXO_HELMET_GADGET", "ONLY ONE" ] + "flags": [ "USE_UPS", "CANT_WEAR", "IR_EFFECT", "EXO_HELMET_GADGET", "ONLY_ONE" ] }, { "id": "exoskeleton_helmet_filter", @@ -389,7 +389,7 @@ "name": { "str": "exoskeleton filter module" }, "category": "clothing", "description": "A gas filtration module for an exoskeleton helmet. Provides excellent protection from smoke, teargas, and other contaminants. It must be prepared before use.", - "flags": [ "SLEEP_IGNORE", "EXO_HELMET_GADGET", "ONLY ONE" ], + "flags": [ "SLEEP_IGNORE", "EXO_HELMET_GADGET", "ONLY_ONE" ], "weight": "1000 g", "volume": "1 L", "material": [ "plastic" ], diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 93a890fa8c090..0ce86fef06516 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -30,7 +30,7 @@ "color": "light_gray", "warmth": 20, "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE","EXO_TORSO_PLATE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_TORSO_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { @@ -183,7 +183,7 @@ "warmth": 20, "material_thickness": 3, "non_functional": "destroyed_exo_torso_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE","EXO_TORSO_PLATE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_TORSO_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { @@ -195,7 +195,7 @@ "looks_like": "exo_torso_plastic", "material": [ "plastic" ], "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR","EXO_TORSO_PLATE" ], + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_TORSO_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, { @@ -413,7 +413,7 @@ "warmth": 20, "material_thickness": 8, "non_functional": "destroyed_exo_torso_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE","EXO_TORSO_PLATE" ], + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_TORSO_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { @@ -425,7 +425,7 @@ "looks_like": "exo_torso_milcomp", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR","EXO_TORSO_PLATE" ], + "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_TORSO_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, { diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index f27542e23e3c2..95cfda535342a 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -147,8 +147,7 @@ "ripoff": 2, "activity_noise": { "volume": 8, "chance": 10 } } - ], - "flags": [ "BELTED", "WATERPROOF", "ONLY_ONE", "OVERSIZE" ] + ] }, { "id": "exo_medium_storage", From 01fab3f8b808da1422c2f355f74a55d96188a33e Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 10 Dec 2021 16:43:36 -0800 Subject: [PATCH 106/189] Update modular_exoskeleton.json --- .../items/armor/modular_exos/modular_exoskeleton.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 0815d5ff77a16..6b29cbf28b285 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -51,7 +51,7 @@ "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "flag_restriction": ["EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET"], + "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" ], "moves": 60 }, { @@ -60,8 +60,7 @@ "rigid": true, "max_contains_volume": "25 L", "max_contains_weight": "140 kg", - "flag_restriction": ["EXO_PSU", "EXO_LARGE_GADGET", "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" - ], + "flag_restriction": [ "EXO_PSU", "EXO_LARGE_GADGET", "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" ], "moves": 60 }, { @@ -180,7 +179,7 @@ "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", - "flag_restriction": ["EXO_HELMET_GADGET"], + "flag_restriction": [ "EXO_HELMET_GADGET" ], "moves": 60 } ] From 780f87e12fc6e2b6b0333eb914bb8eed46378cc0 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 10 Dec 2021 18:23:21 -0800 Subject: [PATCH 107/189] Update modular_exoskeleton_plating.json --- .../modular_exoskeleton_plating.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 0ce86fef06516..a8cbbbc561a30 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -191,7 +191,7 @@ "type": "ARMOR", "copy-from": "exo_torso_plastic", "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection just weight.", + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_torso_plastic", "material": [ "plastic" ], "material_thickness": 3, @@ -221,7 +221,7 @@ "type": "ARMOR", "copy-from": "exo_psu_plastic", "name": { "str": "shattered plastic PSU plate" }, - "description": "The remains of a plastic PSU plate after taking a strong impact. No longer provides functional protection just weight.", + "description": "The remains of a plastic PSU plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_psu_plastic", "material": [ "plastic" ], "material_thickness": 3, @@ -291,7 +291,7 @@ "type": "ARMOR", "copy-from": "exo_arm_plastic", "name": { "str": "shattered plastic arm plate" }, - "description": "The remains of a plastic arm plate after taking a strong impact. No longer provides functional protection just weight.", + "description": "The remains of a plastic arm plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_arm_plastic", "material": [ "plastic" ], "material_thickness": 3, @@ -331,7 +331,7 @@ "type": "ARMOR", "copy-from": "exo_leg_plastic", "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection just weight.", + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_leg_plastic", "material": [ "plastic" ], "material_thickness": 3, @@ -421,7 +421,7 @@ "type": "ARMOR", "copy-from": "exo_torso_milcomp", "name": { "str": "shattered military composite torso plate" }, - "description": "The remains of a military composite torso plate after taking a strong impact. No longer provides functional protection just weight.", + "description": "The remains of a military composite torso plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_torso_milcomp", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, @@ -451,7 +451,7 @@ "type": "ARMOR", "copy-from": "exo_psu_milcomp", "name": { "str": "shattered military composite PSU plate" }, - "description": "The remains of a military composite PSU plate after taking a strong impact. No longer provides functional protection just weight.", + "description": "The remains of a military composite PSU plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_psu_milcomp", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, @@ -491,7 +491,7 @@ "type": "ARMOR", "copy-from": "exo_arm_milcomp", "name": { "str": "shattered military composite arm plate" }, - "description": "The remains of a military composite arm plate after taking a strong impact. No longer provides functional protection just weight.", + "description": "The remains of a military composite arm plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_arm_milcomp", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, @@ -561,7 +561,7 @@ "type": "ARMOR", "copy-from": "exo_leg_milcomp", "name": { "str": "shattered military composite leg plate" }, - "description": "The remains of a military composite leg plate after taking a strong impact. No longer provides functional protection just weight.", + "description": "The remains of a military composite leg plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_leg_milcomp", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, From 807bd1a580b9d429f2343493992805de2e34f197 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 10 Dec 2021 18:36:13 -0800 Subject: [PATCH 108/189] Update flags.json --- data/json/flags.json | 84 ++++++++++++++++++++++---------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/data/json/flags.json b/data/json/flags.json index 004796b470341..e3afcc51eecb2 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -1860,73 +1860,73 @@ "name": "gas tank" }, { - "id": "EXO_SMALL", - "type": "json_flag", - "info": "This is meant for a small exoskeleton hardpoint." + "id": "EXO_SMALL", + "type": "json_flag", + "info": "This is meant for a small exoskeleton hardpoint." }, { - "id": "EXO_LARGE", - "type": "json_flag", - "info": "This is meant for a large exoskeleton hardpoint." + "id": "EXO_LARGE", + "type": "json_flag", + "info": "This is meant for a large exoskeleton hardpoint." }, { - "id": "EXO_PSU", - "type": "json_flag", - "info": "This is meant for an exoskeleton PSU hardpoint." + "id": "EXO_PSU", + "type": "json_flag", + "info": "This is meant for an exoskeleton PSU hardpoint." }, { - "id": "EXO_SMALL_GADGET", - "type": "json_flag", - "info": "This is meant for small exoskeleton gadgets, 1 L or less." + "id": "EXO_SMALL_GADGET", + "type": "json_flag", + "info": "This is meant for small exoskeleton gadgets, 1 L or less." }, { - "id": "EXO_HELMET_GADGET", - "type": "json_flag", - "info": "This is meant for helmet-specific gadgets." + "id": "EXO_HELMET_GADGET", + "type": "json_flag", + "info": "This is meant for helmet-specific gadgets." }, { - "id": "EXO_MEDIUM_GADGET", - "type": "json_flag", - "info": "This is meant for medium exoskeleton gadgets, between 1 L and 5 L." + "id": "EXO_MEDIUM_GADGET", + "type": "json_flag", + "info": "This is meant for medium exoskeleton gadgets, between 1 L and 5 L." }, { - "id": "EXO_LARGE_GADGET", - "type": "json_flag", - "info": "This is meant for large exoskeleton gadgets, larger than 5 L." + "id": "EXO_LARGE_GADGET", + "type": "json_flag", + "info": "This is meant for large exoskeleton gadgets, larger than 5 L." }, { - "id": "EXO_HELMET_PLATE", - "type": "json_flag", - "info": "This is meant for exoskeleton helmet plating." + "id": "EXO_HELMET_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton helmet plating." }, { - "id": "EXO_TORSO_PLATE", - "type": "json_flag", - "info": "This is meant for exoskeleton torso plating." + "id": "EXO_TORSO_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton torso plating." }, { - "id": "EXO_PSU_PLATE", - "type": "json_flag", - "info": "This is meant for exoskeleton PSU plating." + "id": "EXO_PSU_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton PSU plating." }, { - "id": "EXO_ARM_PLATE", - "type": "json_flag", - "info": "This is meant for exoskeleton arm plating." + "id": "EXO_ARM_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton arm plating." }, { - "id": "EXO_GLOVE_PLATE", - "type": "json_flag", - "info": "This is meant for exoskeleton arm plating." + "id": "EXO_GLOVE_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton arm plating." }, { - "id": "EXO_LEG_PLATE", - "type": "json_flag", - "info": "This is meant for exoskeleton leg plating." + "id": "EXO_LEG_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton leg plating." }, { - "id": "EXO_BOOT_PLATE", - "type": "json_flag", - "info": "This is meant for exoskeleton foot plating." + "id": "EXO_BOOT_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton foot plating." } ] From 6d77ead95213f2e92ec91c348c6291e5f26f8d5c Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 10 Dec 2021 18:58:54 -0800 Subject: [PATCH 109/189] Update flag.cpp --- src/flag.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/flag.cpp b/src/flag.cpp index 7accf14aed6f1..b19c2341716f2 100644 --- a/src/flag.cpp +++ b/src/flag.cpp @@ -89,20 +89,20 @@ const flag_id flag_EDIBLE_FROZEN( "EDIBLE_FROZEN" ); const flag_id flag_EFFECT_IMPEDING( "EFFECT_IMPEDING" ); const flag_id flag_ELECTRIC_IMMUNE( "ELECTRIC_IMMUNE" ); const flag_id flag_ETHEREAL_ITEM( "ETHEREAL_ITEM" ); -const flag_id _flag EXO_ARM_PLATE( "EXO_ARM_PLATE" ); -const flag_id _flag EXO_BOOT_PLATE( "EXO_BOOT_PLATE" ); -const flag_id _flag EXO_GLOVE_PLATE( "EXO_GLOVE_PLATE" ); -const flag_id _flag EXO_HELMET_GADGET( "EXO_HELMET_GADGET" ); -const flag_id _flag EXO_HELMET_PLATE( "EXO_HELMET_PLATE" ); -const flag_id _flag EXO_LARGE_GADGET( "EXO_LARGE_GADGET" ); -const flag_id _flag EXO_LARGE( "EXO_LARGE" ); -const flag_id _flag EXO_LEG_PLATE( "EXO_LEG_PLATE" ); -const flag_id _flag EXO_MEDIUM_GADGET( "EXO_MEDIUM_GADGET" ); -const flag_id _flag EXO_PSU_PLATE( "EXO_PSU_PLATE" ); -const flag_id _flag EXO_PSU( "EXO_PSU" ); -const flag_id _flag EXO_SMALL_GADGET( "EXO_SMALL_GADGET" ); -const flag_id _flag EXO_SMALL( "EXO_SMALL" ); -const flag_id _flag EXO_TORSO_PLATE( "EXO_TORSO_PLATE" ); +const flag_id _flag_EXO_ARM_PLATE( "EXO_ARM_PLATE" ); +const flag_id _flag_EXO_BOOT_PLATE( "EXO_BOOT_PLATE" ); +const flag_id _flag_EXO_GLOVE_PLATE( "EXO_GLOVE_PLATE" ); +const flag_id _flag_EXO_HELMET_GADGET( "EXO_HELMET_GADGET" ); +const flag_id _flag_EXO_HELMET_PLATE( "EXO_HELMET_PLATE" ); +const flag_id _flag_EXO_LARGE_GADGET( "EXO_LARGE_GADGET" ); +const flag_id _flag_EXO_LARGE( "EXO_LARGE" ); +const flag_id _flag_EXO_LEG_PLATE( "EXO_LEG_PLATE" ); +const flag_id _flag_EXO_MEDIUM_GADGET( "EXO_MEDIUM_GADGET" ); +const flag_id _flag_EXO_PSU_PLATE( "EXO_PSU_PLATE" ); +const flag_id _flag_EXO_PSU( "EXO_PSU" ); +const flag_id _flag_EXO_SMALL_GADGET( "EXO_SMALL_GADGET" ); +const flag_id _flag_EXO_SMALL( "EXO_SMALL" ); +const flag_id _flag_EXO_TORSO_PLATE( "EXO_TORSO_PLATE" ); const flag_id flag_FAKE_MILL( "FAKE_MILL" ); const flag_id flag_FAKE_SMOKE( "FAKE_SMOKE" ); const flag_id flag_FANCY( "FANCY" ); From 8383c3397678a47a3b75003c29869613f7a30c37 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 10 Dec 2021 20:24:48 -0800 Subject: [PATCH 110/189] Update flag.cpp --- src/flag.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/flag.cpp b/src/flag.cpp index b19c2341716f2..d24b93cc1a455 100644 --- a/src/flag.cpp +++ b/src/flag.cpp @@ -89,20 +89,20 @@ const flag_id flag_EDIBLE_FROZEN( "EDIBLE_FROZEN" ); const flag_id flag_EFFECT_IMPEDING( "EFFECT_IMPEDING" ); const flag_id flag_ELECTRIC_IMMUNE( "ELECTRIC_IMMUNE" ); const flag_id flag_ETHEREAL_ITEM( "ETHEREAL_ITEM" ); -const flag_id _flag_EXO_ARM_PLATE( "EXO_ARM_PLATE" ); -const flag_id _flag_EXO_BOOT_PLATE( "EXO_BOOT_PLATE" ); -const flag_id _flag_EXO_GLOVE_PLATE( "EXO_GLOVE_PLATE" ); -const flag_id _flag_EXO_HELMET_GADGET( "EXO_HELMET_GADGET" ); -const flag_id _flag_EXO_HELMET_PLATE( "EXO_HELMET_PLATE" ); -const flag_id _flag_EXO_LARGE_GADGET( "EXO_LARGE_GADGET" ); -const flag_id _flag_EXO_LARGE( "EXO_LARGE" ); -const flag_id _flag_EXO_LEG_PLATE( "EXO_LEG_PLATE" ); -const flag_id _flag_EXO_MEDIUM_GADGET( "EXO_MEDIUM_GADGET" ); -const flag_id _flag_EXO_PSU_PLATE( "EXO_PSU_PLATE" ); -const flag_id _flag_EXO_PSU( "EXO_PSU" ); -const flag_id _flag_EXO_SMALL_GADGET( "EXO_SMALL_GADGET" ); -const flag_id _flag_EXO_SMALL( "EXO_SMALL" ); -const flag_id _flag_EXO_TORSO_PLATE( "EXO_TORSO_PLATE" ); +const flag_id flag_EXO_ARM_PLATE( "EXO_ARM_PLATE" ); +const flag_id flag_EXO_BOOT_PLATE( "EXO_BOOT_PLATE" ); +const flag_id flag_EXO_GLOVE_PLATE( "EXO_GLOVE_PLATE" ); +const flag_id flag_EXO_HELMET_GADGET( "EXO_HELMET_GADGET" ); +const flag_id flag_EXO_HELMET_PLATE( "EXO_HELMET_PLATE" ); +const flag_id flag_EXO_LARGE_GADGET( "EXO_LARGE_GADGET" ); +const flag_id flag_EXO_LARGE( "EXO_LARGE" ); +const flag_id flag_EXO_LEG_PLATE( "EXO_LEG_PLATE" ); +const flag_id flag_EXO_MEDIUM_GADGET( "EXO_MEDIUM_GADGET" ); +const flag_id flag_EXO_PSU_PLATE( "EXO_PSU_PLATE" ); +const flag_id flag_EXO_PSU( "EXO_PSU" ); +const flag_id flag_EXO_SMALL_GADGET( "EXO_SMALL_GADGET" ); +const flag_id flag_EXO_SMALL( "EXO_SMALL" ); +const flag_id flag_EXO_TORSO_PLATE( "EXO_TORSO_PLATE" ); const flag_id flag_FAKE_MILL( "FAKE_MILL" ); const flag_id flag_FAKE_SMOKE( "FAKE_SMOKE" ); const flag_id flag_FANCY( "FANCY" ); From 9962f298a89df4a9f66a272f112c5ae69420782b Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sat, 11 Dec 2021 22:43:24 -0800 Subject: [PATCH 111/189] Flag.h updates Updated src\flag.h Minor corrections to json files. --- data/font/terminus.fon | Bin 1351680 -> 0 bytes data/mods - Shortcut.lnk | Bin 1186 -> 0 bytes .../modular_exos/modular_exoskeleton.json | 2 +- .../modular_exoskeleton_modules.json | 4 ++-- src/flag.h | 14 ++++++++++++++ 5 files changed, 17 insertions(+), 3 deletions(-) delete mode 100644 data/font/terminus.fon delete mode 100644 data/mods - Shortcut.lnk diff --git a/data/font/terminus.fon b/data/font/terminus.fon deleted file mode 100644 index 6258a062b84b8c5dcb2432327fa70a19c4ecc84b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1351680 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 z zefxsn*@cB=Ufl0wvQj`4biyuP`mTi};OgDyOqb7I;QS81pipqJs1QIEAZDMc(w)BN zA`NiCmOuJ<4$^OhPmy!iB|Uw0@)eYT$ZA9yn}d^1Dk^Y1nk1&VQljCan7sN_La;@^ksi)N98&CS;iW>5I_I>M_qd50jALlZw_c3w% z%9pr(+m`eZ+^4MFUP_%|_s+u15B+@w*jLB1({H}7@aFppct7FI_Z8lJU!nbd1wDz= zYn(?D^iX%6LTb-!!){T&|!p9n1^y?SiBJxlNmX5v+f4)23{_)eVBjhFL$dZNimm zcwFJ%=XV5qLt$O-E5N2tw)e8uI6w0J&Ue1k<9&rK1DF(`9WA(h@p!TMeT9WZL0eqd zv}t+MrdVbnsRiO?OruTq?F4ZXOD}=ykU}!;ADB&rpyobG^xeqeqDK0{!W*l|%3Z!ylsvw$P<>xv5MNjrNBT`D96AAqnj|^I-CPkd z#R?NT4NihCqaipvA?~R1HU!EnxsbYd-{Rt){rli~&Ox-nX;zODcjn~bWcJSl8`Ujgzel6YByzOaDrv&L;ZQ!(ik^l#Ed z`ErD8>S7YKu?xlJ5qmjaT*jbeL@o@#VII8;3Vau)2aHi%H5mdJF;qbI1q0%iK79W{ zH8Ottj{W;AHHiS&g{AU6{Tm)-s`HC(ZiI% zrWtXYVCg2yYKko0K8rbW_V&drvp}o_&`*w)#(bLO6|>41ssxDLWicb7_fzzUK23Ls z2pcptBd$2Pt#0u#ZLW5(|C1!3riKgiw*OyAUF!d zWf6>>Y#d4pWWER>T#_78ZG8(>So^Sv*s&vRx&$}l$w**%;=}_FJ~$p(c1RVkbg5*y zZQG6=`#7rv=SxoE(P(k;_S`Er*tN|jHcqA@k)GZbf@EV)1o8?G#^N8}jaS709vb7a#BOC^fUm42RNzTz6D z`ZhL_o@shPPc96o3-`!wy|B{joXMASt1QaK06s8z1*oIld$VKY_5_w)^L-uCTJP(j zBwh|le>KmrjXCr-edl1x{F}e8fN|HMKZ|tx_TP2*@Ll`&Em~>x3yZ{n|IR}7%*K$t zzpVGuxcXGN5na*0P$e zacPr46Glo~l249p6wIyJdprq8Lrd76R@2%fD|nO^1P^y3rz=!IrKO6VzcCu&Ki|t4 zLScb$KV$-4wsbAVu9lj7Hn00WRwXbLIpA{QguJ_fnu1A@7*#?%u-IQoYmHXt2Sr3% zi~{Ax3T)bBsqhOI4#9*=5|nX_{>z7+{SS_B2tp!} z^?LY{Tr?f)?F?^cJKTEs{$%0eelY8-4k7Tiaf;3+>aA476b+%GmcoQ}>8x_-^E*Q- zD{5FuLa4}M7HP&UEnEHd^zj>azw55M?#k&gdzaMyYU+CUl2%k#l(@<%kFSUCj{|OA z`;Hh^DlD!Y2rg@JRD}IYXkyBKU8FT$rYCSUh@sR!Qb2acah!#vr-lof91iCeB>h!{z_%LLk)&Q zmCdb3cSy5|hS+J3J<5Tp#?c9l$xU4VY0)ve;##mPSc8Sdk3RU|NB`AB4^C}cpls$_ zdcJd*(5C%Z>G3(QF7r}rV_+LR@a0%v@U(5=x!X5v-msxpH5N_YZM^E~+VMC+dYU22 zm#&bDrL5z3y+9&TF!E*}^;JFVafSz6t*dFKu}pPkNK%2jz+N!dL(ZbQqQu5G_$XDG zA`ZTG-^9B3d%{$UNWXpQBirSp0&l(R1okKCW<(h(Ku8X@FGSekktW4 zH}1JLs{`!h=FYpO!dGsM<2r^>x%&+}jFG0M#8SYsW~{MlKII!wVh zSg4|)h3?1q-ns)eWEJj)9A8Q-mJvg&rJicgw|tYX`j)CP`zR5o>BC?>I=P-R-Arb& zzE(rj7j?7P=%46JSG#Jc#l(IqtXTRnvW_vNzfn=R;*4E$U)Y&$j;jlcQJSCWWU6n* zIN{2#GnISk!m{bdh|K;r?`$%Z(gK+uhJ3H{RQ+9Ajuh~-bYfFzV=+&pG-zV)GhIET zz*T*bM?RDOqqAMFY(I0V0;^V;`W{UK#oor>`{CC$KM%$7a`xW;1yj_iiZnv zhiJ-CHYccN$Sc$j9wNk@c78_XARTdg&8a}t=CK0#{GeKC9LZH(-?kmS4?hgu=QZ9q z(694F@$T^6aFMD_vV_49HzGDZ{rYBHE9kxD8@}ndh!XXzP0pE$SZ?4S<9+*Ljw{9D zke5ZjN1_DOMV1oi)o+2M@0l*Yg`mHn;0SM&mnSh)#HUgQa8vhOqyZjO$p7ZU)CxnS z;BJM2<+Yc5*VD&ou4LKfRJy!c3Vq|-=d9RpWy9{y9gU%9jc+BeY1tYpKV3^Td=0SH z+x+Wzx}Uj?y$}i08ed`Rix=E?hRIT<%1u^g5m;nw2RAbZ=X?X(QOxyxN}XZt47duIeap7N5x{A{MZgun z8sGq4>v$M&0k8tN2H3r2+u#AfIlyJWRlw|4&;w2bE&{Fq)&K`?0X^UXU;paE z0$>Gj4X}GZ=mF;dmjPD+v+o2w;56VO;0j<3aNsV`11VSRGTzzX0RVE4~~9&iqD8E_Ra`}3d& zoCaJ3Tmh^B4lIElZ~?FaxCYpL5cGg^fXjfZfZ2OM4>%3D2)F`R0~|O6dcXz13g8-G z_b-6{7w~-rnGTli4KMNI>^7KW=@Xeac)>>&%CCK`#8(!+T9)Iq%Pq%COV2+KGcAO1 znedly-1zpl@r3%IkSojV3P0$gZKZIJdcl866QBYHVBYHa0{Ob8@ls& z(SW=w_*kY$GAT3s`30bD{v?X{B&;YcBv!JoU=b6fC6dj;o)3Z3HnhVR_O#4jX84E< z1}Fr@NHD)}AxbIIPF_~Y2l5F{+9{Vaa48lk=XY)2zH2@Fzx{WA_w9cC=f%uI{LDfu zax(c0w!9E2oohod7`U{sdGj&^6!D8v6o{ykn23P?D1-YdgXmj^7>KB!Nk_|&3Z_UW zh)c<^sQjf<_b$x;zw-Hp zXWKpSPaWk7fco5f3WC|Znbk`2q56!aHDfQ%0ZnkJ8!#N(Yg-uVk5{7MDRIZ72-n_8 z5KZumPm6IP@Fa#5lCd{BK7vn|;ufOnP9_%PXw>#fbC+X!Y_Bx80bd(X$9E|VhITf{ z(-3ocA{F0pK<%N|GlpV*!)FwbwG}4a@zI5)oee*;yOtW0fl1moHfAC)@ezb?*`@q< z-BQVbMy#&Zs*f26^GWlY5=Bv#m^oHGBYjr_^AF}ZpN^SrQkK-8AH*g3=hn-cd5R`C zWT~PxWQhJR3z=La3MnQ+CRa}$4W-lT%`lvHrpMCF)sX3C-igWOA%ykj3*wSVOiY0 zRa;SH;Fq3EsOn~sn4Bsv%cNlPqHC#&-}9dchO&>P?i5%?$-(M59 zw&ak>o$~jVFErm8T5Yf5Tg{XFL(O$hU}6nLg?jkv`j^ ziTJe-vZ5!9$%O%N;lmQ9K$aZ*qSDgPU&O}f^$iyJ)Uahg|L0#4lN4Y2bHASlKD&%= z;_DRTZ+o&>pG^L7K8*UNoW`lmp+2Q#xOy3XNq722{7_gLHb_W&LsC@u3lm%%|A22^ ztp7wqg?b@|h#>}6nvH9~C}Khgg!-Qp{CfQ-lJ4pg_*yd}yO6HtFfLR&-2X zbQ2bM#dPwu%2d;t7sw)hm;MMoFRm?Z{j2)y5JL%`|EWVx{$=D&{!v24zw&ht?*8GF zf5Nu;Ru#u)ITjsoJekx;7V4xBp_WlUW84C+mYLP`EZsGm>A0g`!j>%CP%@pJD7zqI z4xeds|M@Fl|NBXW4{6}AtS&|hatG_p^SgHWuQ?6Ky(oZI6lIy|gWzLtE6(u=_%THT zqLB?t|+)?Q~ySUYG7$ezTJf{b8TpO7L+ZBRM|%@HcsOYu`G=vtq*ve z@#)pDw7;5&_ylkh-?tD>LtJGXxcQA4R8GnjS4PD#W|NzrpP8x3420AXLKDYWoxk$z zfzNU$yoj3!on3@KD^=&ORUemz3S)8j7FbX=crkr~P#I%+Ag@2ArEa2?K^X{zHZUp4 zXKbkANBKDYXC2Z1hrT&Onge3iMfsFchs85Ku6hRbHmaN8D37QcwGGKLr+2XPhsw`4zl1HMhVRX(Lo z(pmC=e6)*`?gu`hh%zIN)OzP)dRst0sQw7_tk7^(Lurm5!xDws6mo;sygLQBzs z((|i^*>CBhyx8}A# zzxw?1&)1S~YQEC5967P8Gc59?pKN{3+cGVNc_I5v%J2&W8WoNP_p!Rr1vwc>+*?f~ zcO27k!$Y?$SNE|G5Ja4Oe}Yph<$<53BMJgowK!@p_otPNE2rLXa#N50NPs<6DPsma z@E;vVu%N|2%xVg(>-RMb-X|)vI$UslL`G#Kuyov>#0n|Ut3+6@4iG~XG zLJat!jsbtH*|>)EN$@qD^N)_(a9xP_MGP^J$K+!oItVf>B9=A?m_z+#Z-E#X_JlFSPa%gPd3;ay%I zoU8p-%ysnv)kM;5K2P`X8zsHKHCMJ$(s{A=h7O47#($!%j_HbL-L)Lk1)ozhU6M~_ zz8XjTNetxybnN^*4iC9(`1=vXLMzG=WhClQ6Z0aofKg~dh#?|1)(tT#n(9Bvs-5tW zOlJ*NcDPC^DiZvd9_0CPNuRDi>puTq?|FVM&vC4$227qQ{h#_gKS+E*%Xjh*6;f}a z9BUf`1`%ys#&qI4 z9g67%LSgnKH#*59esw-)Mj^R&DJ4K$ZL>14^Y8+>sQ4hHj{W>h!u7Ow$nQSrJ_7-1 z30bi6T)s*vqbwxJE=a>{u0J?Iy)AiwbRmif2rS@~BI<;jKTG6A`BeBf$)7x%t05qLppUL#u<>l4UdPYeg^pqRw-BZoR@!- zJ`gd=KkK{f3?lGTZvw8tW$BUs8K=)3{3E{8A2LLJ=)sjJrj!sb_JIx?kCw4&4XD;X zt^pejRs2bel`+IXXcKxNEUO_mrdRkMvPoK|=rkTnBdFkq?(O}XuCdo8An`Z$)%k~t zDKsB{f7Y&8A16!BZ%yNc^ILLd3^vV&%p`tOeK?2a{j01B(pZI@e25?UIQbJlrdRNr z+DrU05g?|{%{|C<`-h0jz{Jqk<-2#5NH_CCe{TujS$Xrlr8nPO!h0)tPwCC~mhj%r zo9`{Py|-jG`{mw3C;0zqdq_yY4sUSOfHnt4`wocX0jQTiSx3 zEoV0A3+ehsx-y@PKZE`aZ!EhqBBokUiZyYVWlF@J3^k7*XW2f9Src$iv6w7|MAD1H zMa-anMjcJb=&ygzkF@-M{7B2c-?S;>tF@lN1WGYlbg5YV^*b$1uPq_3%y2cr_m*m} zExGrW{L?=CP{|2sj($7F*9R35cB4YM>J>J0g6r|s7Leoyo)Z5k8^{UHikOG^=WeI^ z(5jHrp@JAxpMqCLDvq!2)xY3^UoOQ(n*Hb` zgqVRaX*IvM#4an#$;6jn?=8*YBU3*8hw;{ue7PWWfrNbl4PjB`hV=F%QpiVN^qL`- z64PtQX#Mbusat{GDFU*1&0l|^APoy7F$|*#aIIf}p`nkW070M?(HNgzJ|h+lXzp{kolV{)pzganfpT}xH`o`0zr!ai0DX}Z3L71+tA zXu$_2a>?#I6zbutlOt4O3BQj% ztNg1rjJ*uQ%9lzJ@iz>Ck|=UvK%9MGCRo9<Kh8Db8RjV4c+VOW&DY4y)1ojh z5b@gr=_C^zoi(3H;hZC;eJf6e`hk^E%<(ex`W)&RJlDUGl7TYD@U@wb-2b5u8Cgt+ zntevpO)oK>h*lW{vvg%r(u?U``lI-`77^VH71re6FwqK;=YL|qlYbGpt6qm9On<8K z%=j0hSRv)F6KzF*1V@S~B6>2KrAiSq${5N6u9n&O%F>HO!*p~Bc4f2tf=tX{Iy5N8 zEx>fT4}IwVk6=l)lktW);FoKkhs-%zMRL-M}tm>yV z0K+g?TjbaUBo~NuobszU{3y<1#wv=%>0b6>oSyYbAICY7@sIl8#yb(#BOl`D@@GnL zCeOkW)KB~+lrmfJ+xVBUyCf9({F2;UNM=l9pv+<^G9)V1#+|P+SHxa0vtU#lRWs?Q z>uKZ`ih^qyLky6ExQhN;vLC+z-zMEEpQ6Z8G(tXVb1~^Ya}xhT5yKS&QC5J(O21n> zi&}c%B=t{aME)g0u88HP`!AGTMx-*-L=Y*`oxJ$_amNn0DJFR768W?RcIu~Gaq|wh zsb+U1F%|}gPn`H*6Q{g=6^zY1U{Z&cdskqw6*oz#^F;o>{4cumz@Tk{7sZ5F8Y?Uz z@h=&Tu1x$>h*Fw*K2Z7S&Zh9y9Zn74R3vWo5LfK_7f(P0SI0&QbhI%Y&4}r!vz zE{^F4ls;l%hfg|7reB7L`4U~XJP+Rgz&$)N+P?kn_uT)Xz%uj7#l=*_y7`lp?3d~v zCc4&)=sU!!*!c zB7$Wejj=ZTNyG?&_4e=DJNLs?x$vp)&tPV&r>~bkIp|rA41zktB2QW`{~tH}yfxi1 zNQ9q?>PGUpi};|&qAm)d-6h2Wg6#DmVlDU zUwi1mk2JIw4Q_mIsjWtnoIkrO+w@p=%X}-@)C1WQG&H%T$Ymz!$f7X5ezuxow zT%M_(vBDzHl>SeBo*y(O4BVtYWvmbbDQ5cFSDw~Ug75mJ3<=eAQ=DqLYI4EKWG?6L z>Ywp1BhB(ifAPZ%fg5v&A2ApxW6a;2qVHmQ!iY%{z$C@}Pw(?{_W>h*YsfJxVhakF z8u<4<&)0JzUb8P54I*g&U zhiu$2UWS$|elZGB*Jk279m?>->`6v+l1Kc$^Eq*~&B`EKzrZb|j$C!5jP#w?@@QA|K!0h`pQ6K?)2h@{+W^|hDa7wu**21rE|61XT@*>f?IKL>W>4>ZAv7aO(AY1o3zLHLz$ei@;V(4M%-yna%Dgtf+mKJt%gwqE_ z2O3>MmE^YmDg{|Cf@hbgZ{uHMrX{ETEm9Ig5#QBcFp80QN?3$2@b`s+EA^k4LMK$A zNozp9e=8%$oFH%y`W%r4F+E2g*awt!iry3n3L~iChwfef8jycUskJ_fC|B2w?2AJt z9pt78aeiCRcv9c-zc6&eIPz6sIJn#mh7s}*=MkbjK1x4x(q6}e~8Q(C|xD{ z2dnQb{U0zX_Q8*z`K`0R@z}5bo5gp3@I8z7EFFCR;)&mQ;y3=yBWD-?)yJRw_22yX zCl??7_5U7TV=-?VjPdt&%ft7U<_3EPOLGH!y*GYu=>@f1rr%qdgEu#L0dNhl|1EQa zhXKz5t^j5>&kc?M&H^q2UIXmjGBM={a22rQmbt+LfM)e)GAMgxd1@JoH0Dh@`6mSvn3Sf2z$_JbSya2cc*#B0P4|o=E z1u%05$_JbUTn4-b*!?z?54Zq$39tsZ=j|vTa0ze~u;ZstKHwR^3gC6Xft@HHa1rnd zV0IVE2b=@E0JsL&zZ>NPo&{V1%-o6c0cQc10j~je??L&13xJmZYk+&+f${;D09OG! z_M&{iGk_Jq>wp6bC?9YU@Csmd5#^^|<0T%!-0oDNb{0zzmTmoDL?07HA2Rs8<0lW@4@Uti% za1rndVD{%wKHwbS1;91H{+~zrfM)?$05eM{A8;0M8Soll_d%2oxBz$wum-s29+VHb z1h@*=aR}uDo&l@?UI!fb1(XlC2zUiB`->EZ_=Y=6xt1a29YG z@ETzEVU!QJ0C)+o2Ds<_C?9YMa22rQ2+9XM16TpP4mj`uln=NFcm*(f6y+bq_m*Tj zSk7P29Q#)jR#(;Pm0kUJJ%-D8W#_N{iZAZ)%S)wuC225O-MMq;tFPj+^VR2Ykxv+f zxry&F-T3mC`ASVW!6m1=e*OB+ow!`zc^DT@2lA)>@gGUH%r7f#nX$P}{Z$fyqWXCy z=FV(MUu3G%VQs-jnOIa=D5r4U0xK@_TQ+_`-q!fQ#*Opt5u<{wE(T|$$TQf(mWg!Z zMwT`dvfr-IX<=H`rz&(=v5B1zg6~{K5yGJek!KNIMUonUvSBmy^!{w9emWNuX zD=&%CxJRB_=J)K}1FH|n*fYmE?nzpTS^_UTUkA)D5g zw{6Z$1f!(fxdfQ$!3Pq|;R9TLk^~hF$b!pRFn0JI^IMjex6HpI%#|L4a}kCD)Z3>@ zSlTE{SW8n|hM!|Z7S)=%?1tbvhirud%c~@HMw>r%)o2?q@X_`Ck&};o?CGbl(qoxV z1z;vyIj3yR4nL1xJ^#G&Gr{6fF;NY)0lV9eVk&Jh(V_`YDZcD$fQY zFRoBs1>?cy@v7z*gHx|a=|vzc)&NhmGCD2tdF-|9t}f{(1Q{Bc zSR0*|m(ORRywKlyzmtw!0)1B9u-{3FhS|wn*M5hRcP`VjBuWWo<&lP|?A6zO0_C365 zVZBlwW3+7;Eh#&>D4)jV7V`^v#4SZO9yrb+jKWIs<6#~LJ>K;l?^;Xjt6M)O#?tET z^Zbe7;w7ahlg)lq|igLzV(RJO4^5(70WZ{rpie;ndV2GJR_ za75r2la!^QYWw`AFfC$IWh=BQPe1;IX_6TW?0vOQnTZq&DK6J?S4FAoy6U-Xhi^QB)3(H`9iGa> z7E?9g^s}!#g|OOxo^9#}>$;Td$_v4i*G1P=UPWIZ`@}QM@Y+WySweoWRquxE z4`Bt&+9$)njR&4(X3i;>zfTn$Q=-Z~OY%gW^ir!b=#Yb+<+_xWCW|1lG5uB+K%%ic zs*0Q!Rp`P32roYmyIJO;pT=j z*I&I(H3;rz%Tsb4w06K@JjJ&`D+ehl=Vr_MubYmeW^=D`lO)Lywd`i-wr$I`+;f%1 zr1U8%%sUQ0I#P}KW|#z&Fa}d zwtYAbj5qz>8~@wy{oe0c5t)CpZb^h%QqpHZ+`P@ueQhq59>Vl zYAzS!-Br{2{5ijXJ`8uy#=-moUD!Uq2la|Sr#6%ui;IB)%99(1re6!Cyn?$Qt3mST zanQp%sivxu&S(>bgwUmxl=Ve}j=_5*=v|^$6~oBo52PviCZD&73~cbmgsuSEC(l`- zF3C>>CU=vl#W@dJ^^MNo8|n<_AGHcRLDzL2V&zy3s_{V>c{&OW%X}SqC?YL^h{X9? z`y#vVkMp%QCc8hvPYh_rt~4e&zl`bsOL@nj#upm-#)Z7>j%HA|EPb*v;MLb!s6@=>n|Gz7H6LIL+HoGevn?M z9c5Y1n@?`)Qhx_Z*Y8nJV!)`<_{%yxWJmN+T;4t_M}6PE<>l~TLQw6TPMBjP6%xql z!Zt8^p(617cuT1oiu+Id(x{t1(=1q};;uj+csofakGpvsKNIGMXf zW%aa`tbS(d^riQF4Q~D?3z4Y(9)MYFV0vjSwm9k9aT zlYmw-e52DRgX(m0xF|DduBN2Rl+^KLd6h*MnyLs~%o^4)$po2qCKndPN0}iUbFrSH z$`no-5_vtzFm+<2i{-S)WvGwK#1@8tkYNXcdQ8gD#Cmzit^8^ni(@-%Z;%pE#Rc4I zwA6Dlk;Aq#p^5eKNY~VVETE8I7xm^8GH&otB3>Ez`OQMab{#nrF!1Yx!aay({E%W5u9ifSou7v4b0)+Dzmr6sU_ z1OJ0Bf?*AGh<>2stj7i_UzdUxor%bqIa_=uM zO&r}aUeo*ue1Cak$NS5JGPSSz{<5c&y9K^^2PZGTI=aANUBA~tlICvu{pD?2w{F8- zT$3wG80aWmjui&~`ggzgz3;ZZFa4)~T6$lWy|C0}Ql{MNC~K!& z7|7pW=C5@p58XMx<>@W+cOE*K)sq}}PF-9_6PIegx&5f$U)JhbeVsf9u6k16)O2qD zqLa;_YXwSOO4e(x_o_uO-?>*sfI z)39rP?#_c4o#XMr1uG1G!73JL%yT^RTzxLiAyT(kEk`jm_|NhFGRDsqtVNikmTL8r zfp=YIj9Q+wQr57Rrn-5hMl1>B(EGhhWwE{?TPc?1RgyZRH}U>5kMj7N*r~^#;)&;y z(-+KS{C)m;Y82hLOoemaW$mJKbO|ejCMiYt6Np1`I34;aP0C|2MZkA@4LV5-+rWA~ zNyqwD>Iot%DJzT2eA|{*Nhw9hC2T>g_pIE@8hEcQ9U_6J_5>Cj`uIdViT! z<5F7`%E4Vjc}v01>KWzPAQ!`r1jEEMR#1hKwNJ3v>3JX#cZD*#{^LkHkoyq#@+Ql1 zsv;W_*MC|K?LOwv+)N)mxR5pqxHdL}zo^={#k`9AU z9A7KV^ab~E*LBI+xfAa%58V6|`!8ym6eX9~f2&j+x|C<=<~NSNE`7lqLFel!$+_$g1yiFITw<(WK} z@B;H0iKM*Pf5IS_3mTL;-+!^+Vj%G}I*)I;mGVydeU{N#p%Ww+T`Xp~-Va8n<>mbl z$_w2+&ib8nM$hY+waa`j9}+N~oqJR7FP}X5*yFMl zNmX)+f`?lFncrX5YBlaDR@rbrmfU!#yuJ*pb*X)23TntD=@&0m^r!SAU0hu%8 znJu?rPiC>IpKD|_w;rE1Rmj0YoveS#0#NgTk!U#>q(jgrt{+69;~+$=T1gv3(v^vw zgxsL_<3aL37qGMSuZs>vq&iACa4=8HliD_wM{1(_`$l=O#=pM2*_eg(uT1e;sMfw= zLRn=6gIk3k27OJQ<3u7MCr`irVJ^b^%WhtB`dQ(CiLH|27r_DQvQvps7d-hcHA&qvtpx}plex2JYd0s!qmAn>t3RbQE z9Id1C^R;03@-&0%QXW-w_{y*$@EKfeeE&>>q^z?*!38RtZmy0}HqkM~gC(oUKR;p9E8 z(AkPawXW)Xt$l91XYE783zc)Gt$+-Bw;Bgh+HfNu=;Ffr%XW(;l%=O<*d@3bA_S|* z&G9|3_(5m4)0?Z$XRsJoj&eDA>SWjZ%QeC0Wy^__$+RjL%HR6X-Ny~)*=OS$0cwbA657033+ukx`^%&V?$9B7e_0i4(#?Un6u^(*{bj46 z_<60`L_yS{(Mh0%uEM}iozfLO`{D58Pdt&{Uw-0=|MKNjUg-~d&b<2St7lT)&6XE9 z$f%769EmOFx_IgaO-&g$Ti$=&bZ@@D3=JuG3sEFh$wO`&X#up)9-tF!FR18dCIS(Cee94yY)p)un!QsNQxr%>-*cW&Nx=e?&!P`d0P zyX~PEOuj77#vvl{ywyyryR)YF{xY7^R~O2w)Du4;;sxeZ7k|_PRJ_2fd9sel`^$Q7 zEZ5Nc1yN84z39pqvSUx2Uz(DpyeOA2HTnB~LpR@_e+Ig-(R+DDd@F98$}{n$loWzG zXYVij@_>aFLLT6WE`-7*IxEk7PiN&7hHeRnhiOQ5SiG^$=%^=NzZ@M=>0)_fV~%Mg zxK#@*r99J5eSI12a5J09@%cdK<$1H?2vxkP-|=ew;M#}Q0%(|S-<;oEH|QCalU=A zoDgvBTgK^;?plIsdpc!~kyL2N({Vw`oYiF7?|)(cx&HT;^?|qe)LSZ#+d8f$>hkRi zdJK6#(EH2!Y@J&@tt9$+X}P}iov*y?aH6w%7DS$VwBP}$O z3lWf685K-bM;*h0gE3fG68!}Z+Ln4wkdHEB3v1;GT|@toG3ZDR$mD`)0b<3Ib+Y)O zz6-zzZq=`SOp~%FAs1d03dN9;CFJTEDlEx3z7}WuNWVijlGQ*^YhRnbREi#yl?3ox z@9%g&r1zJ5-v>yIMPE4Ot>gV=?YG9~`D|K`;;8mti=IhctTQ0HT0eC4yLF!QVWl5j zd12#}5W329bY4HLo{`CV+IPJi+eoUn&ng9PiLqM(t83DLE%*T!!CHCHK6AD5_|ucD(0)URteXdQ)=V9k_a7`>waKMKfh}^$h7im3 z`?FM(hHM}^@vJ9UeSi7SPyC?YUq;v9Z?{zf-(TK7SR5>EA8dEuUtU2mbmunVg72?x z+CEqTtO1U^1#!R%U=46&Gva_1z#8Dl7Q_K7fHlC8t%w6w0Be9Fw;&E!0jvRz%pwk0 z0jvRz+=@701+WGDej(F(;pGZL+OJhZ}4w5q16CYz=0u0k^`Nh_*X7P1*t>j?%z*P!KA zc2wDx<-k!?mVDI)hE_0KLFfi4SL=GTsaMM_vVjvAnFo)DaRzFu)hdB8Yj_opS8)nA z5CW~nDO}E5g51yV_dDm@bMAZhy=SX~!R+Xe-+RxW-}#;Yf9|=z_q(^?1~pIzqw8^l z8mNQOU&0M)pbkcF#SLnp4o3e0ZcqbtFnSwqPy=-^`VVn~8mNQOe%zo2>R|MC+@J>P zU~~g+Py=-^`f=Q#2I^pR05_PV00^PPy=-^`j2pf8mNQOPvHhNPzR&`8E#MmbujvA+@J>PVDvx74Qikc zMu%~O8mNQOJ8^>=sDshFaDy7CgVDQjgBqxV(O<_6YM>5A{|nrp2I^pR8*WeobujuF z+@J>PU~~jGsDU~dy$3g_fjSr+#SLnp4n{wV8`MA@jE><3HBbkmzkwUnKpl*Z;|4WQ z2cr|XK@HTw=p=4X19dQZFK$o+buhXeH>iO+82ub>Py=-^x&ybH4$!PsFtP52EL&O{ zD46uamlLz{F~zG_xm^B#{)Wr7*$JIz++}fTaP8W)SFdted-Woh!KHZ3Mh&X`F7~HC zl`Ee@=30!ujCt-kxvm`?=bFan!^}&|5_!eG%p5`u zCi?>$Kk1l>hIpdC%wXQ1Ix`Xy)|=9_wAT_Jli`0R_-jnn~2G_0ATny^x zta0WqE2P&^d%p8slTKLZfH^Z1&zXt5606K0Vq(vz{#@;)^LJE#uJ+Qt7{#Xn%*6bo z_|^to<8U8G@6FmT#A@Dto);ze*5aMXV`PA0^LdeU26Kd}@QwJYU%nXGy9?Fkz4e~= zk@8GfgtYD)lWzHvD;-=^RCXtf&4JFOfwhDS*;He=$T)WT$?0X5x*~`4!_&#fp_FuG zMb|!Nc-EnXwDpR-KDaw+f1-;!<`Or5l>l+);Wm16chP1oQ}m79%3*fa7`b~Kt{j$@ zjFG$N;beB>#P2_a`F)-LZ*q4}L1wQlz9N&R-cO%C{fe#wK3wLH&wh4dBgb~yifh+> z;uH5U;&U@_`g`Bwn?SDS7nk08E8V}KK~M}|n@8uJ7#5;Dw#*&s%dB_t>acRrcvNLqR zILz!ia9MgqabsgBU%Y1A%hD?oL9=kJg`kVQkwPoMmhNg}XzC-piY16CO6&7OO&u|3 zvrGDozPV3X`mX=29T*r%>PXy&LjTM8c$?qid4>F2T9WOeEzU*W>vLNi zp2lw+zj>_OmdCgD*I6i<$}C(r9aT@OQ&6(Mv=HmFY0vd>^RDT>aye)^A*YUH$9uk(HoWeu>Z6cjl=l^LDfp7MIp`^Zacq#PiGV%Z}KmE%(s= zi~t)6>HfN*{TYjKd>_l-i-XYT|Jt;T`3xk_CxJS|kGV(n|KyVvzpVUj_!Y|^ z5)Bzi+b@*e$HybiK~a-`@%-ZQW$AITDJh6DB{zlqFE7icCo+Y{C(XYuUehyQq5F!7 z^Vb^>8yiTyakxfEE@}J6v}O-2qE0eAJwwVaY2_5h;lOKrX6EX}i*5+XK#IdP0xW#q z#T|!-`ak{F()5_Q;_#08e_(>8wEyQFAm$&&Zy}ziDW?Av57ItN?jgR*!|A0(MsiM( zr#d_9D2GG9yLj>H%*;5)v2pmJ zLp*$tF3Iv3V7tXQJl{VqEL`SUM5yC%GUXXGtv?D?*nOnWBYw1nJy_UDSt_=Fkp}>u zYC8Vbt@GvccmGWSqfd96;+Oj5nU5c1d|LUPbJ(WkPg4{6)Q1nk7EGMJ?RfK4inhl7 zUZiO1_LbT+5KpVZCZ7Q-MyM7&O5D2Vv!Ph%{}w?9pIbrF_Or^#XMy7SAH~<jYUyh!O4FAeFmVRb=YQR{g>SFg5Q;f3FE23nEH1_q zP#kXdhVrMIa2njoAy={IlTc&*r|XaL_mih_iPM)HC!aEJcz@w{oxTLE)_>zXGBOrE zbtW^PsHvBGZt_h)?sv~;Cni37kGSLfncZ&!8pl(+{fp0aes7ll*;zS5@}@C;IYi1$ zV|d*EKUn=6uZH$7BoVb=-t-YooW8S1q0uTFcb$l$UHZlTM?Z>UXPG~Iu-=#isiWDL zi>Wky8+m2p4|1)ALiuIgTeD_%*6wmG9Dr#u(VWdeRGhNeE#G==n!b%2yOzYK-xA)i z{u_Tn2#0^e`k$xodLIXwjro(5UH^L}ef|mYUz+tlNuM=XPvQ$rrwkg(UzmR+ zeQ(nF$I{mY%WVOgEnZ7YW#>OcGBZBzENS~)yH>R%{IwdjC4OPk5?MT{-1Bjt+v4!? z2`6IhPhZwdjK|@D0~s+BhYn82zCZR!?X=ok&Dtxa;tXzZj49Df;~N5Iy=zCt&>rgna6$*$GdxxTNnqX?0iqjg8<*^)7jAwt{#fDPyx0z=z8y^!8?V8HKUG zl-GZGUF>4waLI1E`lsa=`aFK)x7*YB#wq51z3n$LeemEP+#_u!PY?He_Nk|S`jeP{ zdiMO*^3zW*zZHjHZ~C5>P99A^?JgAg^MmXFd>px7Z~Fgf$G1r@uFurY>mE$%7rUhQ zevr`~#}&Kuxn}E;r?aPK?`piueAqg^aA=HI^kD}6!16Z*9_h4M2*lZX+LVsm7$^2g zr~MFez5RD(|FOpp74cy# z2wS%pe_GqJUY4d8?*V0=w`zyGNdQT+I`Yq+cjg0^T6K`~K7N>*%N7e|K%+^y9kMU(16I z`+J_UPun-V!^^UZr|kupJiwg37-imB(>~J}?)zS2Nbo5<@dSTw@h@_{JKU+iC#3$K zkZWoEJ&h3Kxp$v#sK3CbT@jkj|LZnNCkTfvftj~lz9yX@l}Pkq`Ca>MkiTfmi1ync ze-SNYlDxk5Ph|!IXGva9e$!{R5Keps4QFa4CD8aHK-0VgGXDf#*JY7f^2W_$2|uZ2 zH7ZRI2VI~1Vb00VA-PX#lQu|ws5Z(UBv&I#Oc%OMXoBFQ@oi${8seuO6N#{T z{*r#X^S934AG(3>rUB1Czsus!z<1Mt_m}kZ^~bee;ru3Fe|!t3&%elrXuv0Ukp9Fy zPfo$RF#o7{p!DJ;L`g}qq5kaDN0c2pMmbGc=sd5hd1V5j*zCOeYo7y{L2wi z9!_;-(tf-}-slcbxP|i*9eI~AF~6*Eev;SUhg-jWEPpSa|GWIl5^N1nIKRu|`SF+T zH=@}lDTa42ZYZ;G@PW$_F3f4$>Z6TOc2_l5S; z8jQlarl4e_xGW-!x9*LG@GHd!~7e3G(5DQ?+9h>=Uczfeo?pa9Fi@t-}(6H za*yjTkDuG(@G$=r()BcXET4R_{Bg=+Ps>kyFGA&pP%*xy!~)=lP%*ylUXqK?o7_8i z|DV4?c3k54WVq$~?;wC|$M-6R9LEoW$98=GiijV_;ra8&hkJkT-Wo)yr_Udjth;LJ zY5HmZ`#|fDG$wD$ld8uN-k(c{$Xcxb8Xuan`q%jF>R;sMqFJ!v{jtrwSC_|Rp%gQ= zd^N8BD87kM7RI03zao5!EcXI?u7+_S>8GP0=AXxx;zq_3$s*o-{Zpgk0euw9G zsVZmk{A<$UORjU%kbmJE^@2QpNHWXH>u(~+&-x6wx^S`GPiGF5t^Y#EA&UkkCiXo1-MF!Zc+M8>#tqSXoJ+|D(r%`ru2o((h^#I6O+z^yoH&XntJ?kE>llD!lm#gMt%py8!UZ~ z_5Qn93vXi3AcA@FNxAZq5U!~lo+uD$t;b|+W=0~5eQavVe3Myy6pMU`@KCx=m8lEe2!@dDiuEzvP5J_EQ&;AC{3-Q^5OX_X( zm}Hubbnlbr0h?xHA@TC6CG@_uh$&TLva&L<5i^lQNtoTVrn@^;K#>HK{?ydvmg)by zf7d$wKmF6D>D#XlR`GLm>4%s?|I785jF@7#k@TGwPq5naM>ejb?k6VXRYII~g=zklml-qsl2EQ{2K^JL<3fJ#yyp|^)*#2Z z?i2UiS;)S={8j}PrpH7Sg2c&VkM)?8sVWhgvM^yMdQ2Krl(=+M$BFAXjWp8zE!(~z z;XR7Rm+s$6k4Z8$5kuTAVZDWEO)U7hTOipu@#I5do-EO0vb6MUg9(w5BN*uKM+bqn zy!|c&XFdV&`iw*=!y!p`m}dwy=NHC7&P`?zF}Y7_TXH7$jp|Rk!AT*3MOn&_Sy^S7|!q0C*vSQJ; z(Mwu)36VOQk7K9EL=M!u8{?onQ9?en9ut2KgPti}2Z|}Q(_`}QQ;P|wxUnH?;*4{c zv_Apj&cki==I)}+TBhh5yOqPlgfVjWI9xd_Eg2(s&%?>=x{dds-1E+RbpB^5)w`!4 zv)2|)i;~%??_#*P$vBI*8IA;#)}!wh4#Fir zF&9?-BnIjc`mX=+y(V4eLX5Qk1@B<-`yW(Ge`b7)y$~Cr5Qs(hKL~65 z{KB&~#@GnO;j(^wOdG&o!h0ws)4ESC`H8F$xb&44UQFa^MTY%Xc$c5f!5Uv;uhCVv zdH%`yz+%3U)5PM7B|JQwCan~`aoOF&P#o3o+IDeYuyc1|k#Nj@DIY`$@vRV7Ls6QV+&v$qsugQdb_qxg}T-N%&4>X2bFYtXK4o_3H zoW$W`w^Y-dcp6v#;?z3KYr-g8{afT}L_9#bcvLjTFrcd0k)zj=Z(5hU|hp03Y* z+KLO;M&!Fj!Ss)$dQ3w6$dV@))mAu;PkTWW&1WFlKLqL!Kjt3h&k#2sheoIMCsyBx zh4P1pAtPz~g@XI|c*HqavqpMcY-}R-G%e&1JV|sXH-+|_nX#wpa4kH)YyNfZ8XNzN ze&M{3|9IHgKuYo-${#Fg`$w5`*3csA4qpm-$nSBcrs6nsxUqu=FFgBfsK~VbG})0n z@8VA5yNJ(T_&It^)Deew)c>Qj%lm)c0b>4P{1*C+rzxg?XQBNGxX9-lfGjrk$8<%#|oJ6UE^(9qBP?D1W*M4~xH) zM#_>`Vq^WM>yPEdPo7pAasFiDl!vc;0!`O{nJ{hFX>(_DJ?t?@`8Za7hALAZy6TVU z6c{e~CLnn6)ys_=KYqKoQ*Pq&6G-EDigRvdXw1LQx!vRO>r@?e7`8d(?h;(?>LM`pzDOx>Epa{HF2SrJs%;Wt8xDXAjmHll_m8 zH5+p=15MvXUfKAATx+3_f0LrkH32jnfN3((nMJi(UR=iI)--*qI=hy{r{5CZu>M;q z2_YQr4eP&!OTw=Aae!%l@l{fGo$qw|{Nv;6bEuxbH0yuN81fvfPrvE<@8e4j)L8io z^N*zOO*;Qrd|R+=HEgzcAx9UU!wdE26~ZfiZtTbYd3!O&Sv%PX=pW0eZ8yfZuREge@->NNU>Q@-ouN@e@7+! zT$8V?3=a#m8^q}_W<-yPY&v!0S=3_^&m7hP()No-zV(1Y`^AZ2msYqb*#V~nQk#j7 zYqoXr`qr5{@0{4^X%=~ZCvigci=)88)5=})*lY#yG*ZU&3D1YvT}EN*le%OS#y*ne zboEcyf61);_Bl4?@r_d)F7fjCW{bnGxBUjjw{06A@TbqWfBf#dAATt2Z&Q}9@J2l* z*PFgiOUFP^XW)JPJwL;fvEY5>e!c1crygJWZ(N_Lo!32>)Gu~P><={Btz{h+0*4u4tY(+ z^!bxZzLSW<*}q5@dV9SL0G2qMUm)4@pnGg{PvJ3%d_)8>9u?$i_8|?`VMMxDWd;-@er8MK%ls)u!qwvJ;ubw7*CBr-wPtLZUt2X@6oWTN zk34ZuO}QSEZ8FntYof;_Z*@sdOxk{Vt4nspG@HnD*k6YplQhk!aL(#;(HIhZ3Qs)2 z-&_2PT<;Ed>hB4uzbBq}?BKzI^oJ0s9+++0wq2(llV;UM|B)Jv1lB^X%yRjfv`8wE zSRlcv{Wi#7G}fi|+aP}tWkixEIwAy3o>^fm$?Gf1N+4 z3wlhZm(QK!6ZJF8aruer-=28yX*d2gd04(w?m^yJczV4TeutXZU+6$d`{(KVIW%2#d@O%2&i^ic>HGgY zo@>8C|I2%8Qi|YU+;DEBwd{`A()o*FL#X3ft<4+ib_WR6dj8$3x|M|~t02KQF^^RXn^g7<(7urwG zNR$3oXg`(Za22Vy|IqL6Lu-d6F!*TxLjMU%VDQoK(04d>7K_-j6YMcu}8Na`;i zwJtulxc>6^xh)P4=@L6my>{1H+X3-1o31Tp`l|9!CaN18Kvb7<8U-oHtQ$Xcxb8Xuan`q%jF>R+~> zqKCtuo)_icY~sDJBr~&`k);c9`7OTIf{9QT=1+?+qreW(qgStvjijHBf|!3EUy2(U zPb7MLo*+mK`=7Aouilly)qj8g z;-XN=A;{&3v9mVaKQ@wyPu%|kg)shb@9(X}(;Zx3>ntX@lkeb);i(i?+W(9;R9nOI zn}t*9lmMy^{QlO>pZy#`m9)R55SD-4(HGl4nuQDf$HjKS@8qy)|83WQ(p`Y@jIUAp zUJf`8j-NuBrXR&G&A(?Teffiye|Z_PZEM7)>BmxlKArd;?E)4SkHjHnmr>_T)BK12 zQ&RuE`~=b&_d}%c6s8G8@*}5h4X!4c$QQw;LVTRk`q__186!^O`^337O+VTNG)*7z z055;=*^TnPxL|lP?R7i~@3Up(w_3k=@|sGR73L4A*<}0{>R(!=_4+02Z+ZV~SbrP( zkHq(l&%Kbo#c$RA62H9uEPi?Yr6X7J@xk`bN!@-RM^TT-|In9ZpL^oaR}X*bkw?Eg zwB>WZHgwnUo%amw_|juv`tn1EhaPz1sYieBiKmD5KKi@dnx^#8Y>K~%4|}ESOn26s z4R>eVS+CSEgo4}{R zD7X*o0S|%$;AwCSJO}2$i{K^jDmV|`0PldSpbj`a$ku~FuoZCFooxqS0DHlHa2U*h z6X5IM4EPqPfpg$>@HV&t-UnU$jBYL106q!s0^?v8_#)T`9tTIkGvE|>9?XN6!E4|m zxCGt>?}24d>7o2!6ZkY31^0nH;6ZQzJPnS4=fE6z5xfLm1?RyV;2m%k)Is-0DL)tl zTfsK49ee@o1^dBaFau72uY)t-Tc8Hcf!D#?;0kyjbX6!n*Z@8W?gHar7x*IB2ObAU z!870#cpl7ym%(e`BDe(J1@D1nP`R1%gH7PmU=-X3_J9Y$0q`_92A%_R;6?Bfcom!n zZ-95eRZs`ry_6pef~{a1*bcq`_JaN3Fqi=+z}LYU@GVdS=fLaWZEyv=54t`^`N0P8 zNpKe!2fM%*!9MUfI0~Ktr@-@I9=r@*0~f(1@Gf`{EQ1O^QN9gq0-pw>;6AViJO~be zr@=As9GC+yf|tOn;5>K(yaTR+I_O?U`N1IA3bujm;0s_c*bfea8E^u89h?E*0yS_B zybj(5SHSzAtB>-74d9dDE-(&ufiHr6;PF26m@pkI9#^v{)54LjUHIB}zxy>^qmL|o zcj;>vmTbM=y|}n|=+KbRWJ8A*oek^I*~PO%htwN?0@Ti&e&ooo_{xv&FMJI?7;z8p z+?o4-_q)!2toPPKm;S^`jNx0_`U3hcZn|G91kA-HZA! z9z%!DzHn&ES#5%yXLt7vZFxXb7}~vi=+ToW9~BbItwrw}k}4e1oN~hqOcP5^$ z>@e&b()gDDv)`y55fVvA#)H_e9Y4Q9+4n*R}Lijya&#Q*ro7Zw&?IH~DMN*LvN{LQmxB{iiv{+DOJ;p~!6 zjPlV;5I`$gPlHSbuRvA&%Wu>#dEjMgHRaFqEx2K z=OO80larbs`Wn5=+V_x@v9C}3VIe7|W|2loeGc^;IeuK*!n%XiztyPavqvZ#jrddV zO5e|9eI-y=pw|K#M(-BVM$cS>HA!nF~#$ZT=;toU1v zT0OX$7CzqJX-IbI_K5%Y7HF2L*vOAGz%{YKTJq2@cGm)$f3f@e7dy#1{>QZeVtOeT zy-yloQEdGTM$c22ixK}R8iM+t!n*V9N%8SUTJ*Ta%|>=yo4mGTL_!v&*1W%x+C0#= z#WMZEqy$aILSlPL{kOmUzym(^?xDO* ztarW%DUpOLkaXu-5Yp>nZeLjvnKe>~CX}TfxlZpNXo9BmjPF|yrTK0Cz8me7Y zdJI)6l^mu=zV_X3epA=?;hvG5BbjDW61#QF?iY4%xmDB6n0>YXn#C=x}^mV?H)3VUTqnXd=BsI8}d;PG5fnnOuLDZ?)HtJ$ta1|Wub_gQX@!v z_6_&-ji^iZ5e!_PKqi@|2#n-~9Xodq?fk|TmI<>@eq(b_-`M58sat>6xB2sbJhpnZ z)$^pzpOf@MKj-&F_MzRm|CY$UJF>?#Sw_EIqTimD{K@<;>%|b0VZKK6MfRcHxj##L zSVzbYZHS@1$WO47RS%d^?7TxPd&nO#ai$8r<) zm&5u#IYhV^s;derEjYd|0w@jC%Oj7#^UnHlh?@WwaT9PH#Y*vVP*Jjq`~c=M%CH-8i3+)me5g zH_j)d9%R#m(OnAn8|M?$iSFp!p7h4~#EtU_87JP{IG?z2J|Rz+a_%J0<+=UF`Gl<_ zH_j)hhyNd*PyFfn>y@9VsQiSN?8}g!=*iY*!#x>ip+SD)>m(yaAv*TFZz zOJD(91aE;WU=ehGq$j%-Yy!hz9DE+^1&@NK!Pmek@B;W2cmI@AC&BaJ&p{3RC3pk;HFysoq=D>1Pc{Iyf)Q{ZcmV7J zhrkSY7R-UO;AQZy!0X^LxC)j)82iw7J@E|w{j)LRh>)@N=xP|41ld*1l$K60Q2oI=Bq3 zf+bK{Py2&Uf?o&Q!EW#%IJh4938n*nmu5zPnKpfF{@AhFsbk0V{nhmH8_Ub*t}ZXD zD?2D(Qkfp!g7k}~tv1Qr#+6{Ldxq#8L;4x8BJJt_Vi8Zr-MuY>WE-yHj zs<3_h=j!bL@yyuYjLrPmlGIOJ1PKfMAcg-D1=$o4L{|u9v44NYKW63)%+t4FaE$Gr z8acRs|F(f{%c>CYQ32DYV_aY|BfgHON;XPOsPWa5_4F<;GZ35^np$3-8uG3MG2!=t zoA`i&p`X!^F> z-k3&^CfonUL6H*O_Iny*gQdjwh95Di>DQ%Z*onsX54-S#Bg-Sg z-wbt|#uj#-Gz(?T$;IY1QBF;XYx>-|i*LXG?zwZ?2mLQDt*!~{CO=bFYvLN~?sk;j zYX`UOKPR6~5iZMA?Gkq5GB$-vdcE?5#zbT_V{kbqurReDy4QO|xL~w6p-j%D5j7{& zho%Q5r3(d|5`W35un?Y9wz0x>QF_|Ng&7}qPKTtpmY@`zTXJEPV!`EX@qz@LJ9lAG z!lZnQ5~@iC*FuQ*Hl$iwiDP44!stb2#>6#fqN;Ah!TZf?*WM%@2@~dOG=*c#3aZ*e z!(jRD`)^<5CX`xdl8mNj`Ine+*xS?HI4w+)u&{-N>Ck>FK4;qdgq@mDhI4dh`3ho| zss9_xSI-?Ym-rt%XnFa;4`k91BVp3g(p{{U#;hX`4{O=IXmqz^EF1GeyAswvwqN`j z&2l!Ze3Ovr?iq5Vtx2J^h}M2kO`pTd>V?iIbdFNP&e3jKzQN&P_t6T+*->^A8hC1* zQLYg!o|d5-u{rp5cT;GklooWgYh=(WC485p+r9CIOTqG~JS{KejMUV)GAt~p%jczA zU2k8zOpYvsNmE;JNkXVxE5o4Dxn{C@!3Xxf{nRB{@#zsX;@ZzBrIw`ZnB{!D50HfX zu48yW0<;$NBCbQ&3L8tdnOzQ}w!HT!@5-^|Y=+CO9n_?nQy zGIa>)%$sk%`8IfSMqF_|iMJg0>o_c>%t%XOI}=UC`0T$B7v%1{_j@u=?bmSUPHMYnvrJ^M`-(XaDTa{^Sp( zRmQr<_m5}VJ}y@u-*)iLgWEptTz)Zf&dj$mjr)iH{LlXR|MF+TCHGV^S&BWq-EB>k zR7O~{hXehQ-jUvXnTp%l;%T?O_`ZzQWN)LPuD*=Yu5`<+e}qaH^S)YNN%^F36p@C! zyl?-({^9)>=f;_YoNMZ>mwWriv&+N#w*5SW$;`n26xku`%%9UT+9Y#~o8j2SSc$^u zS&@r&h+HEFM!OC>JSi(I4-xrpbNN~)tbaS<;H zqkl#&8c*i@x2?34AzCS2*`?^zge$vqxw1Q#E4y>KvOAYH4ihF*np&s-BHu3!_Y094 zO~E@PJyP&aT=0xs^oFPmwrttTEISzXMfn#gkIxE-6Lsl2YU@DMjv* z7R+6+J$Tz~Ge7!~A8l^kl+>-(Xc}_uYt6f?*1XH=$-9Uro!NC~S}<}EFLDttb}?sZ z)#wUD8KmeKNjTX-bxjZyFy`vmjIJ%yw6b9aVAmoqAy8>c|79`oy81U=7Dp>Bm(2 zMjnvgA3R`3Zkx?yoAp#^<`m}edJH^9c1#ZM+_7VG|7y#OGM>SR#kjykXM4vJwi+h< zLkj$?VD&QR{oV{sE>8}52fs4FC`a+yynSW6Kc3<=X=G%YDm7ZFcAEOO;)UpHvE=%Q zAS|pTo&x8L{tH`n?x&EVU%&p8*68p2@uTvSnosTdyiiM%4DX`mN0l;32r+v#a+JzD zM1IL3Cdh4XW{)4TEvXcGdU@)vF+RM+qGxk_U&Wh;@3f% zUeCA->sn3PR%=jp4Rm!m$}W1(rtLFbU0p&sL)A`WH!cH1xTM=FPiQPjO&u=V1s0~Z zaR~fFf@U$4$+?Ck3C#%gv05A$N*4-<;8Kr}%`G4xgdRb48g!OINA%2Z!CbLnHgp75KlhbkWqtIGJYd<`s zh?7^$V!&&Z%v zN_Z~G1b6C`@^?*Pb%u{Mq2>jbD}%LQ$cr>!mOVH{GA@LCY70(F04Xu{FHF(a;F+K(~T(=&`?->GNC zFE=!(bed)L8Q3(r$ls;`aoNZqy_uX^ehelJ(YxLk>Eu)%x_R@?+>u#*dOB-A=hB%l znj1Bi{z7wT@`3q3X1eC7kp3Y^C@x~^$@7swCL!kPn~++{jw`9gOt#> z`;Hy-7B{H#bi9r7MZEyKta2x9jqBe$G<1Y9zsco%hioZEY-q!B3;ortR>H!16nvAl zKdB>0G(MjiSv|I6Ec3lsLf3EJd2;7wClo*{b=jbiAdGKi;S$cLa!;iRyCZeUMZ1%x z(!ZHX3G^eY`&Wl$N;_fFzFW-PZnzVMOBzEs0mpa;_^x1C?X9x zHMD7SPv55dP7G2;=NkI_sntD$8NaPs|JNZ*3c&vm*&*x9pEB2Ib2HBRVi#j23ZrL5 zF4`e-^>6NvT$GPCmmgc5d|rw|kW5je$8^EVUF@<{(hEp0a*+mb~q19s8W^mtND_ z6(Tj7f_F%Iq~M*n;2F7Sp{NYDY}v{zn>V__&S|Lk{k9}1rN~!2DMjv*QsgcvMedSP zkl&*9F!C=W72}se!j=hH00XXns-^Pd6(6bchQ2!Om7qUDH zPVl@m2j)QyoClYH$WGNk1-YjUU@I5}yMV||9RNqc2`~rdK@FS-m%tTJ2Nh(UHh`@_ zi3QmAIFb`_rJh%j|fI6rk<0NuYTfr#U1@?ji;3zl&=D<9tf%D)JxB}{+ z!ehV&uoaAgU0^Q|*{Gx71egQ!pa#x^OW+Eqg9f)ij4%!3*@ z4=#Z#pbjd?F>L@M3pEOMfxX}WI0{aHIWP}u;5@hlu7Ela8K@0lD;Nd4z+P|wi2TzD zFbC#A4V(v;z!gvj6~r|*fURH@>;fY9bO0O$C%_z-2Q_dWTmn}>9aNB2+5ol!k$2h! z_JRZ8C^!M;z&xmd^WYM=0_vcGjFQMXZ3UxX7uX99fTQ39m;>{m2F`;^;0maN3bIKX zz*aB{c7eS>WSfqH6JQR^gBmywE`ckc4k}C{8^BgD3Ph%9FE{{>f)ij4%!3*@4=#Z# zpbjd?A#DI6%QOmhfxX}WI0{aHIWP}u;5@hlu7Ela8Kwh#`AJ4L4`Y&p<*5@h*62eP>`cy-Ag2?a7%D3O9h8~tE*>HD?y;j1cY*tDnx}a zxlmPuR255?h&=_lD)uIcWR<#wV!xBEBJo7Jirl0ER(w@#-Ned@7qODk^<#nrlrrNb znU_r}yo*fUw&s(*m$j0z3qLPy<=v8mQHu=|(!)0ux{}RcEOwR2%R!R}ap@(ZSEN97 z=fYPl#jjvs$$ROZq70V2eTk&7WNA(0u!@pc>}GfY9AvSSz00M$@d{XtNeRe1DHC1c zU6D7bOqTF)@3}pJ+!JAdG^&6p z38R*$EL_sdrMD!#Sboc;@7`xij3wv==axcz>2K~WAv!jYuM%T&Tvq;Ek}GmAMDgAG zWbu)>HV0X_e{t(y+ov*JLLW^EZ^Kw-A zcy{#N`uaBTx7YvD*++B^a(m})FB8_SLSY&7kyIG-i<_`~e<2sCWSDEhbB@2}Uo!04 zN9Z;GOK`@43Hj?bcPb-BcrGPI4f^s88ZlR87bL~h9m$G`JC+vHE)dC!h4@xK@C&j- zl0qsqCX<6V5?YWPYa%QZ#X+q=YuYP{brN|O7G8T#po>cE9NhbNz z^^;6muyeZ^92tOui6zQdZA|_omMIhQl^|6{V~CiH$jZ3>m*!t2uhQ|8hBuTql`xa+ z=lxc4no5~vS)-g8MEU;46|PX1`SgrjMZu&edRhZXe}i0R^e~^}j^xf7$|E%x^`F+# zXOb1#$#p1kVQhtWGH9}%r&4HCNhF7+^H(H^Cj6x3?FzTT{s>u)qKQxZpl^^#%d%7| zjUqD#rCjo{O$W)({-~;y&bB8-Kigkee@bQ45FU!9)F@ZlJB*W#AdysCz+KoM8igMW z=5kjNSSv`ZNqxz*=lZrI3{q>jQ^B?1cA{&j`Y8ynCDLm;|I31>gF?7dp2Y2>fI_&F z0}5^@2^8E#Nj4jwxh$J39xR}`e~|LB{>X+&HVisONI!9te&Qy*#7%s^VHlJAr;=^b zylHqU-4^DTx2Xf|8k8@Ra0~S#Evn(JeuCT8PjCl0DM#<>CxlBLvq;*F`iSJ+Bt0Qj zL z+e&(q-@jdM!QX*g@#0JefrunX)32f$Hq0?dJV zPy^?|C2$4QL4~u%4PYx61-rmrZ~z9aK1L+yJ(MQLqc_1qZ-U za01MMc~ArA!6k47)Io)_#tmRA7zMk)UT^>$1t-89mE#w z>;(tFQE&pxfq75^=fNd#1=K->v&IczD;Nd4z+P|w90e!99GC|+a2{L&S3n(9IBVPh zwt`Wx3+x34z)^4l%z=4O1Lwgda0S#sg|o&DU@I5}yTD#>02~D;z#NzdHE9aK1L+yJ(MQLqc_1qZ-Ua01MMc~ArA!6k47)Io)_#tmRA7zMk)UT^>$1t-89 zm}JEzQr z>o})OrR$iKdAYj-88-hKDwVKflHTr0xT8wSm{iIR4>_mI1?}vdG8|JnDLF4|CvTzD z$lEA2g?G})TX&<7tCzWx`VrYZFLmeLc=Z{z*f37EPyJHiJI*N+@w<#yj7~DhIHV$Y z+5(Xf9^3kIF+3Pp@=g*@i|e?0=CL%MkSFqZS(ZxV(blm{p0ZE*rE+;HTA?yb^2X1Z zR5nl3^tI(l#B(Tjr2BgH_c2l_Jst$M$8vfc3MZ0!8Xn2&nR}qCYy0*wOD>hyqorw# zX#^&Gcq+3;cp|l@{I-*az)$Vtk>s8fjih}3y)~3q1xyeSSZ(>?O6j8tNM!gdyF7hY+E#xsBuM3CH#sqey)5{9@lM!J^clc7aH4FvRcD`XPRhArp?N^q|ZO-bg6*LDL5b!X`3= z#E7K`Irxm_2uVyUhYP(UHeTp1mnQ6s#R*vtV|l{NNfb){ta|+X<=k$)Mi!)CV#z|5 zpGMijM7ogtA}*E77Z&p`5_qwUVKKbHok|+A93Z?$o>Ph(Pu$-im&rbtT&Mr$@`nxOks6HpPirYe$qMb{I+V*84VKFy%6gtkBclC2 zl1J3}E0RdG{^_r9EbNc`F3P1PxAdH{Q8uwCok$Gkpojt1d~6H9AfuQDXp}}dMb~As zX%|jaN9+=5MU~@9Qx=zwAdy&{#8KEEO1M_CS>mg%=&9tQZEsWA#ViZbi^NU^7=zo1 zFmg^=5Ms3U9U_ZbDCU2e4Rz2Y?~ot8f7c@GVTf8u8JCgqj-_WKpvF{VNwM@8?zcZe9gh#|paODtsTW z!guj1$Te2@4qk=t-&OeTU4^s33g5Y_@O`@q-?gi74p`wkb``!~S3zf6g)_ej->Iwc zeYy(YrK@nhSK&K!74)!G`0iYVv%Cu5nXB-9xeDKvt8i{tLAP3k@5fd6Zd`>kx(eTk zqujj}z6)33Jg&lb;3|Cot&*JsSHRkjRrtPJ1s!OVA3P6U1Mh;$TFMXhfTzJ6con<@ zy4O*D@C9%fd>z!l+n}qD@`GLAac~N}3@(9Xu;~`c4-SCmz)Ro_PzQtSDL>c`PJnNL z*TMT>!!J>Oun#-~=D|hq9=PpR$`2j{$H0r=Jh%$h{{zYo_JSF32Al&|z}nj=Klmaz z3Z4hAfp2Rsetz^mXL(A`h@!56?`@O4lFZ-cJeDL>c+9tWqu%it1N2Aeie zesBOh2VMeifI1lbIOPZX!3pp!@H%)OY#5;YU>|q}%!7;IJ#gD6C_i`*90M!1eS z23?ydKiCBx2dBWx;1XB{n|_({g9G3>@Dg|f)WP6p$`AH~6X09mb?`pe@GF!b>;un$ zd2kWD2X6Z$XCTU{dW{bxF-=0E(Rv5-%y>rOF1f}0 z;wL}RjAJEx4GfL~rkG_^!CN7eRq?;?6tWr{4Vs#2fk0?$-1V|8#-47-i#msZZ~P$0i1UF*xzq zh0tD7!3)wJN+1`NM_oyddc}7^!h%VKRPoNs?`UW)nyR;#6hmTGqH5rBw=*Kg5d21P+l%qmxFf?4{U?g$JgFe-eiugHdc~ER6{P$l4aNDp{z#0>dPf%!)d1K zEq0eMF-h4qC?;IpebdUyP2H=LxUNXvuWxv2Wo2qOeYh^rh$6?SsXW6zZk*QoyB}Iv zdFXEcQ#B>2MxzT41{mXTcGjy&3~ZqDcE<56V-=xD?*osjw|9KE+7Tu>qcpN~jMS%@ z3!+(}luHP&icK$KVYYY-@y7{z&tnWS@p7Tk?&?BH?Z1B7bQpf-cOP+H4L6m9x#zLJ z_`wez`Hd)0c^D%pRTNTU)r622K+d?kgd~$NH7Hgrqsg*|w+*ZeY zX<#Jt>MG`6B-MP*^A>kGhi28PjjL9zO4G{Xv{v1;=3}?t$>a)|C8DA3Vm`Av0AoIu zK+I?3unbb0>@8Nr&3O>K%Ie5BnQ(}y-FhK~YmsLcOondqk2@~E2{%i`CzU4SU7n`2 zZ&($JOknp-K2nprw1IC23$Ah#IAa`)oA)c;2k*8v?Tz|av4Up5|NS5SUzi^*Eco<% z*+Y6(Kh!qHrQvA;I}J6Gm`|pJE)smC<)^0Nwy>~J(K8QgGF%>>@#XP}dAIf-)5z=6 zs`{Xi=ZI#?0wWqnZTWdb5}a^envXconj0&ZE4$B)+%1+9dS^!H9dvveZfkBb!|ulK zZ5n7O^ZtWJjvU-i9ax}Gfnrt7$0|^-zMgYFj;8wkpZ?vy`K#}%vB1VWQ?4h!`q(2{ z+hsJ=k2iV!cvdb|s~WBCDd(jW&aStd&m$8z*{tBXNU`|$`|w#UytpwrpQ^fLuA7>g zi02Jx5<>V$D>!4Zgd#P*P~2U)^6XR{snEz;nJ?Z#lk%||{;PlUcR&5U3yJtRAK^m( z7`&UYXt8rH-lj>pPULA^baQfLK6O)vpP!@bIO0KBC(V@h!~6#bHCuiYka*qj{fqc75KvhHS znq~AZ-(4H~h9|ORg-)OF(FXA(YuHJ(>xU#9(jr-$7+);qCO;Sn<%(+D6Im1%odK6t zNqfm&BJ)$wP4q~MSh$jw&OkB&g`ldlxw}t@^qMm<@>zWh;o@R*OY@9}Z?8P9Mw(DR z4SaGB&qpR9=j+nSX#yYG*L;0;{eCp_>F(Ru$1if|ek zGjMj9Uc}`6S@NMKP!lW@P_*G7JcODB8m;L@J~<(524%qJ_3YS0+$1kzWSm({mm9e` zRo<&Z((o{l9agqwx>-3svXgI~esdYhK2|u8zpxC|lWc!J3bKEX)c{(XP*i zkDcFX`u(}9#1@Y)Bk>IFLB=ZDN3ME{y9XK;O&{cF>^7J`Ci?JZ_jh0Xxv29Wo_gYc z|6w6~VR8W<<{JiJ+qD}?UE^Bqjb}xC`Y%+5+O>rwkmuD$L-kydh z*igHY)n=werwQb@(<6dIE!EVC>-O7kFVgr9QJ`&k?&oP;4SOf|YGgO-N`p^M^V!FX zfq7UI^0)gR@xRY@zLRo37E!n^)MoA_f<9NtQ*07BbY~QAu zpVspsjm3PS^S6vb;~b_Pb9Q)@*uq0hX%u&IbMRn(ZsVJ)>LPLQH#|Hezev3^FS`p1 z-Q@cZ>k;hu!{7Hw`RJkXwOE7fZ`k1&QHbs1Sbkl$gJ)`Ke-2sf@M-+qH8J`8cfS4Y z?>s*_5&Wu?YO3Zje$&Lm4^I@Hr~_?e>An5#{TKG%eS2Qdu2WPOaw_Hyzl(65x)S6B zV#~9V`g_;J#)7ziUCD@yiqJ{h~yapb{>Jy+ykRl8o{!=P!M;^5sk zwL38G&Z{j-r%x6#WU`9J>1_aPlTuJ{to(e!`jvG4!4-EI@<2AJIV z=S!yjhi?D)`>pxNsSiaS=D4NUNgO+#zgU+sHsc9nOlS$EqD|YKWp7%r)2Yg6rv zej3XAAtZbiu02iYhb{Poei&#Z2WeWN9|ju9K}sV&nR~KQyIrb!v#VGsmz~f5Bs}Xa z1V%zY*)xY!REe&OFOGCNZ(lBYXZFehI*w4pfM{_Ra!pN+-Z&p%#@(J^? zYfK|e-|lQjn!X*4G<`c7Y5J6=N``!0Ti&GUQyTG4X=Dm&M?<9F@9mwIedbq;v#?3` znfQeBsC;dzD!E<5&|qo^{fBVL4_9nr+|X!A*(JYXN@*yU zQM8~T#kTDZO*o57#|{~{EQ^#xNUN-GIMVW4B&*o<_b#W%@2Qbjx*?}{Lr(FAoZ<~R z#g=l4_XaatHd!I3`0~ru>Z_-NoMIMc@v4i2ywYF&)ym5Ee;VWz8)>qK|4!t-X2%D5 zLQ={oxUlpLjL)Vd5?YmuHv{8v_&qrNo_(Og`@_py`6ZO_5t4)^CQ;g!=as}4(}|qo z9hlOMi?R91+nCmJiXZu?{5}N}#P36aoMl{_YrLmt7HtnDW@BF;|7tE9iPUmRJbUlG z{EOLM2+8Ssj^Dp^;O_>u-hVtKCA1z!XmX12FVe+-!2xyDm%X;>{_+5s%v!;Q`;i);j0@f{DM02!CFn7c7R!$VI^LF z2Yl{G#1whRNEk7|7>A8=in0Or35uK|V|5@edLHI!I=EZy2$P&q8cjMz>eI{x(X3F) zrCB(B%og|W+_`g{-g7^LtU1+_zjfHYW%Em$ez`yq`o;ih+}gkSbNAkx^f4{JRf3eN z5W9(!AII8A=6AA9g4IjEry^e@DgOL3iLmKb=8Rj*3T~uiiFu`iY)MV=+p89)bq9+g zmM6DrmDfHnG!#Whtjvd>`_21*>meqx@gyK}1SJXSS`blirT_y*mwdOTH0RK)S~bWS zeT%eK-Sm-<-f{<%Yw;*QN^Mq#;7n^igF`|?rdp)M1nz36ybh&Y_v)p*ek_>B+*Mtr z>kiqsM9Pzr5_+1_zF~Dd#BYMTRz+1(v`QP4wu2BG2jfGXDCBxd_`95=RW z|Cv@!rF9h1OvZ6zyXEH}OJb#CM*{s$A&wi{ncuw`i2Y;xP4q4?`8KH<2dn+wTwBJy z4S~)>OKq3ZvQIv=XV2$9Z$uW&8q}`lL#ZD6t^0qI`T5?`w5T6%O6$ipxh7VY=bX>| z<7K_x@e$1(t@1NDIZh?EXfK(*y(!C&FBJFEatVzrVYl8|KH#l}KmYkXdmfs!w3^j3 zOnO*%7>nikk%TPQWi-sEPBTLJ{5;?`z1&Lsp;tfB)#YE4HKsVAU-!~W2_MQ+TAD_F z>eH;Z@@wJ_4Xr*QO)^nNPg__QViqc+!GGLlpz?O7cWFYc(o#Om3QT0B{bvnpZM%L5 zpODt7Rn1vNQM)880P05xluPxG&DM-HMR+^Sii1bR+g5!)n zhH%NbH`si8m8L}uKXo*(9AoME%#iM@R$BWUo3BT>czKv zsjMD+q%Vsp?axMI^FoXKz(Q-fRsArL-6{jNRXuBFBtK>SkUY$`+aGpIClrk~Jw4rJ zdDc*ODWg#q%1l43*M#iO`|rQ6iFbpS6kF%yl{hF~2M6z%oLtiX{P?13#O_AHeeE#j zV?Isol&$Q!p!=gA4ZUOM&Q_vSaAxt@(KLbBvwVEngN#*l93!>|nzFN$f!0q;p4VT0 z^JhGy4Gm5HH~;6Q?f9E{a3rt^AQ^zp|MA%U8v36O9Xu^O4KbST+|_5NP19II!P})?sU+m3{UAot)7=@ zEZIS}+t)Q_uhB>PkB#IOJ&Bn`PHuRVD?PX2;BRPX8VubLmA#PO0mV3vf52zL` zS}vK%N>g(A4L8prxwk)uY~SIH;rP9$&%E%$nbYyI98dDu;Hr&x+_AB(>>&BQWz&x1 zJ2s&S)|;xc_&ZMKj`Gd3BhOl`$U-xI?<;4{yzle0OZdIYWp7JEe%hWjk)O6StH z-sk8kyQX57(z3Uuq3msGC|6q=CXKf3PS$noxU;yXV+R^}m%C#|Qhew^SK5Y~G=00X z9clV@G}83#Xr$@e(MZ#`qme179SsHjN>9%b*=Oc*idnkPgeIIvmDQme8ncrv&YIlN zXh|dWLqoKraoxTp4f*j$K&4A2`Dsf-e%jKIpY}8Z?a$C?ckPAJ6B|09^KkVnB+bVl zbkP)4O5^IeC7);tD&^zaq9q?$;N>k*n=R0|n}J>pWv>RCS}41uBW5BE$z7D)C|b}^ z_O>*Xt1S(wwrzK4!dYC|*oo6>ajumYvY9QGQ~X~)b-nr&*JV@ug##khr+8~oPVo%M zh>7$mo>`3^Ht-(U@DX&ofdk+ar~%QXSm{Ow8`ukufqC#csDn*wOpoGW?sMQZa0RSK zSK=tx2TlOdp?C>&p(k-G*aMD&GvGXU4~YK6?ce}71!~|OP(erHU0^Q|-HG$ybx;SJ z(2=+c90qgXH6VHu*P|bC6zl^hz)Ro~=t4K*Rve!I0b6p9Z*5m@Gc(O~Q3Pcy;3GfoQ1iH|7xE1UHN5L5&dJx|O8_;*S9UK6sKn=VDD(E^C9f*6u zF)$Ba2X(LsU5C5CVIcYsUjtXbdh{HQf_>lwcnMqrqWf?w*aMD&GvGXU4{Sic;dUT; z4^M#_cn4I_ZFm>h3yy(#AUY50VAHRVJ~#~Kz-!lk#V$d|VnNBGvCJt^gCY7FMHgeNXt79U zOxqo13Li0%AY&6vi3B(Q#!ScpfwRzGT$c%o7?nBq* z4yGvSn1yQdv<*rbBXP&TFz7E#l@nH#iCxvo4{^=3QqBlv{JU1CpfS^u`ipX-X@`T7 z#`anoiK9(zal=(vI+rg;s;to(tO|`ljHi>|n&o~NcB593h6GMt}`W%P^+HD{zgTQQhNkDj#Ap3 zbt_xY_t;9|BMgGhM~TpiVTt0$q*g3Gd9)wNr|hb!Gq@mcldwMY1bT0&dQ0)%x{5kc z1_?)*pNk41X@y{XqLEI>WZm-N{x1By>aj57l$%jh9U*kQY}g2*A9fjCM4e?`KV+mJ zGE)M7ar|awkn0PKoS&s-gpMqW^h7?CJ`|>OEHXh?r0OGZJW>@ED z6rwLFR~l&)37Jw`!?tc-A@p>u`jykcqneT)n5> ztBEVuB^l3Glr^CuJ*Q7HRw$X*OP;pX->la2L!O6Lox3IDU(>-}8Rz8_U)e)?&l9PJzWt6+;9qXX{z9Wc> z;pwEjv2p+*ZAM4^1rx@3MCg)m&mYz*Q{GeQyueEWW%^aYGcPlf^$*RB6SCnPE3wmEVt*RmQ~)<$#~) zEK+@yzPzOCxaBsb6XkSb8bX~1H<`iN2NOxubpbuV;Yo)hnH}vhR5vXD{F18Fb>x238bW9f~5|jzVo>imv zUNlEh!DZ%BOwtv4$s8jo^grVSSyV%!rjLg~GfEHzI=8=RVc{v|_I^>?>J^vQ_dgBr zgf60Vx=wy1e$!1^d&QUVlyn=FU*=`0x^#V-Qs9>T6#6DgFk$G7<0m)YzOBkDbfNyl z;Y}mEz)xmDPv+ANZY+TxeZu?u?8)8xH7dr;>&4T^J^Ua)_N?NFc!_%2P84Jc3%ZJ$ z&{>R?WG&B}(a8iD<{^ojQizZ8D=5os+8m@?RG2Ar%A%OA<*!A5mROC7;sU?S*wROJ z1hr9~2`?LH?kdbnjN@cnOK7sJQIBTxno|bNm1+7a^l3Cvs0qn}1us-RS?KfBpr1`? zv)p*XaHl9Op0{G%n!QfBW|p*8VB{=xnf*n-rtU^1n|brm9?^;(qE~~>TXH(+y=Q2B zM~?!Hj!g@to19BbE(jy9ce8_iiIBHdz6p)$)k+m`W(yKIxkhtZtM)ZLoE_~CI_)o= z(RHGeQ_9r3&k2Q@M%|or5g!=c8})PQ@QElAYrFH}KP*43a=5 zj{)*b5h?kMnFMYw|Lw}r*?D%Shn<>w6Q!Tze^QMvhU)$7Nb#qzY*hZqtY)mL3qs(G zJkx{?lk=l5M0M;bC%mP_y@?{whH`YmN0R7NAE;)BHj}lB@s#AQsxG^Bq8C)iJJ1a( zWGIpPAVxP=iIPw%#v8||!}lqUIt<;;vQfI@=tO6zBw=4O>qK#=P&ZW`N|9Y36cTiU zqCm7eRs1QnLYS)=Aq#Yg5>ZEIx2n>iN3{R;U$p1PTqW~WQ)QxoZLY`B&Ayrh7nd`= ziJwzg7he69(FJ8{ZTJO+Y7t!(rp0ubUnaCuMRbyOk*=U)G(49T>4<9kp+wPWvJ+Ym z{ut7gM@$UQzrJ6E8N*pn#1@|?`f*uR4t7yH_16&{_16&{_0ka?`RnN1k^FT;NB%mZ zBY&OICHhG7{YErAv=-?v(hZVxM=CaMUajXyDWK4YSvVq8exW}LRSUY%pWD!d{v6Rs zhKlKi{v6RshKh9J$K$U()tbXyt9rMqT4j6`6_&~jngc`ri0#PoiizgHmUPsMltD~OI?8KQZRp5LNBsr5aBf>1mlTFzGjY1i zGu}ItHzM_6rT0iyS!lZc-sP25uj&nXW#lz)$SdEFSH2;y+(KUY-rUTVPFOtW<+@da zymCI-=ab)Tu3t6CD>tJqqxINqRZs>HPkogGOR3)`5{X3AV)w@^(<%N4pp9MLu^bxp%luI*f*{#yQw zPr6h)P8KedqTf{&y_QFD+Cp0EdDZAGl)Xy1t1b=I_o`Z^ipmC*#L-D<%QF>+1ii1K z+%*m;*n{rZ*2-TcRwoKzg^oO$vJ7#wH;{+l^OaGz@1#-8)>VWaKvTYp!lfuu(JJ$E zTg9+Migd#k*0+?S@bfANTa^Yn&U^+ziyzX$+UtpJsVEjYevE9oV%zYG^u?C{fLHj5 zN>r`D)?LxoH+M~|B5@go=uK;_JXRuE!?teTn66d7a=M4wDv}j`(q66FOlZ)WEh=eE zqmg)&m|Ul9>z^G@m|odLv8+rNW|%n~f2%*Y^p~V5-ZS(+r(d>>g2#JpU6^d$|8hOE zEfmd?uJ*slHp*rTbd$Kt4CN(%sxPBuKb7K!Em0XW{3BfrEfq3){j;msEBf=bY7@Tq zni5*o!+LL%aPQ?RS#PcSR;-J5(na>YK<~~^O50jVh!MK+Cgd&aPy5TgGnP%4MzdSQ zuUt7T5gos&mI`X2gCA+49%5DN{K*OvOtXwRKP{-cjJKhawZEmpTH;%UOvXxUv*zug zy31~Dskjz?v5vD=OZ%)$kg8sMa3DxDwf8ms)`=d9Aob5TQo zp-ko6coxmuV^u46ZOZ>W#w#HLVoo3O`>h6XIxLplhozSE57LR%x!$ zwO5?$_-Phf^=F}LtuRt3=%ZRAZItLj=c>+b8ngMuaWbyWN$~AdpRO`!u2fea23bjb z8qE~zhHYP7vo8Wn*axE=DDt($^X}JK{}X1~2W^MitagM%KD*_Y7#ZfR#<|jWa1kcT zt1UlwWYUzJUGrQRTd1h4&SG^WIy20E!}Z+qB~fURQiBt4Ie$+o*$h>I!r62!jijG zXK?BBTTrOzR`s%KVLxQgJZSXH@TY#*ji znI%exA)@{|I(MZ0I-;ZgI-;XqI-(`vHZlTmzsz>^aJ7Q}&>r0>MgiiWQCv?(hI-!$3 z(+ORN%8sSTO%xu}W%Nv-D&gLQ^T`(V?AMT4j^j$ln=o`^t}UI^ADyNxof}JS>1bbn z2H5iakNkB+NB%mZBY&OIb)Xno>W}_1;|G(t%S_|AKVc6{lvFMau;!$S`|@zkTg_r%jf zdmsH>ZV4yv=u`d5w|FP|m2b{&%Z6{xZbp@3Hq^yifGm5FWW=a`<(s+PoV^HM2g_jV zM{dr(2#$eoflHvf`(|`2-<&-NPJoxeJ7Ddao3l}{ADjZOf-B&*o}07n;Bhbq&Vl#9 z;74!Hc7dnC8E_HQ!6z#>XM4a5mD2b>1mG&*6~K=Ghu(?y1D*!F2zU*!33%VT(0;&Wz%{^M0d~I|?FW1e z@EO3%fbRhI{VduK_&DIRfHlAyfc>**Kj1OIp8~!LcoT5&0NM|D3h+6=b-+&mhYzCt zfJ=b?4EQGCHsHv8Xg}anfd2xx0oXf-_5*$oa0T#ZfbRjO???LqX93Rv{v2=<@a{us zKj0I9tAJMkKLQ+@NBaR!16~BY2G|6=ZvpKGTn1bN{1ssL186_sV}Q>9UIu&zu0|Hv>$L5@EqXJ0XG5f{s7t!_ypi8;1$4+ z0EdpC{eY(dF9KczYy#f*^JqWdGT<8EuK>G$0qqBT4DcDi%Yg3y_WdH-5BNCXvw$_g z8-V@4g!Tg-1Nu8>Wm!Ob|!8n>KYq=-KSPoIp5t8rSqNQE%$1Z zb_MZjhr77A*ay(XLz#O*pO8X~c4oHrNaP{7!K)HY`{B%}8#th?0Lg{(nVSbR_v&GW zNRnNX^Q&8{^OM=_%R%gj0dd5obBl`ui7PD+fh2IUg*v`Hw#|_{JZl8*nf!nYuZOzU z8hZ0b7Z(p5I|_FI-^@BXAF?Zkyt=69GvS@un9pHc`CD#mTXA@EuM!OU8bc)FionP) zS6L*5+9vvi&H_qFvU|_2t*u>qWN(tVuz%|kwd*ivHqDbV9;Tx>nPug5mclPmM+aM5 zgQIch6pE{QI4p#in8uLr_g7c9whA8ThZ^`USI>6F1Tj6~a>25$DwnatXw)y?I`k7| zgO8YFBeyGq*jv%_STz&kF#^ZKV_?4L`ghA1O;S`fi=hXnwI~1jTNn1q0nEpapFP8J zx}*VMSCR#f??WG-J9+kNn5EJj6-uc#AZtpr5DK;rF!N3EjJR1I@QkzjM!DIky?ghF zgVZC=1`9m+{`*$r#K#JyHGpAq6dLns(pN01W2}e}dwU^3G@hX+?rl<}Qp9k=<{s_0 z#l>{uU+OoH%;VYQoWt{jL7bx05MT>*RYc!AedzdJbN!g@Bef;ScYvp*(GiP-)WXVf z^tcduhI4u;LnS8ZWH6RkjjSq!5In*T{u@du-82EORZ5`?B~6BtcYH4RjB~xW54tDS6_#F_3Lg= z>vZPi&|a`@jInjNsK9bpc{~d~MZpe<2NLSIXxL=nOVpx|m7DK3zk2*`d5UVX!)qnfr@4Q;JV#P8fG+c7j)36z{ z+zhq0+-`d?{K`;!W?|%-_^M4NEJgQxKR6$^z?E^OMygtIjjt+A^WY0^B}v2VVWWzw z7lmPNzr=GCOv)k{dzm?OwfLncO$uI`Q+S6}_k zkN-9e7tgm|F#?Q8VR_$uM>(qmhng#mR#jbx%wAo~Vb|fPn3QX{mcx*yWpia(iYPcCL?Go)x7Regbi0WS$jzz zX4_|H_p@^Jf;!73ip`a7{$+8%tqfH{8ym^aBwO2;`b2TDE25KyR&uQNTm}}AFK54m zD+H7Qk;Iti^{%##i%JMePrg$T_@=eq%b|3X)AW$+SGZ9IamJgAWjyD+-5!)F2r%>Z z;vBpS<4*87(g4W`Yq>#i^w{x}CyyUH8ty@Bo!0(jMzMbG6St9pJhuK)uBYKC$KY4m zGEs6Y7*`J@=(Go6Tt%LY7~e-^nTth1hAL(-;`=QXn6w&N{-ftEVpmOPISgx`h;fby z4vBnRP_H6JWr#GfXlL02=n(}p$w~F_a{Ep4CQPogm@H+s^tr%=J@_2Pk*giI>PsTu z%IAVDCUwj}1D_ja$|~<;FYl;vK~AeS0~az>T1~BioMQ~F=?U2B8ZuxhQcT1lED__- z9xmZ}6IYz{_D(J3IFX@bFP%%*&j}CO%F$90FH2RKTPc$DVeUDq=YM_(1b!8>gNEk;!s?P!!0l z5s@+qkgmy4S{X(P(-0y_$~W9d0-JTEDH;({7GoE_^_{1Aw_Tg= z$;EJRn=b3Oie*);erXzVAuShWEbn&xv#-E?o!%>F`-V4^i2A({VEmXZFdStMlo#d2 zey0Lc^Z)~KbqL4j3xcs_z-i=gR>d}Q2#3iR@ z+RpQSHPeRh1ajg#zU|;mAu-`#!I5u8e#Wpy0*FVCB1B+`6ubC$6@ynWdj`kPmifBPetN zQp}(R%#!$5YSCB4I6Mg%*HwZzPG?%s^vC~QgniL;l(NI=8Q?E{>2oW6k5S>5GP+2I zH{N)#X}=h6q5*J^c!`Oe1uh3Nr@Yh&PH8MoU63K87iymo;vLu}rk)G_l|TE^c5N#O zC0(`V?&y4QaA5Cl(c@DonX5Gw0`TQn&pIJPcL_Nwe5`Mp@`DtPaI7eoHaL9Tje(J{ zC)8Qa4u01QB%%c)A2Z}eu?tnt5a0GALPAdC?X=%)Tv}~nx?;qZ6T&Laf6Q1szitPL zpZ(V}4t1rjIP}$NK5=nXI5qphbN?C>Ys3~*2qBDX#l83{_TPW`Nggb|EnmG^jg1s9 z(~IkQ;T9$4{fBU&r)z;$Mjy3DC%LqpadEltYs0Nt_;QVH;);k3891Lcab-Sh;7;R4 zSQA&8(!fQo?)&uI@mIbsXz+#-Q9teb0$UCU=r`IV*a~_t)2}Kv_*xD>U`kr!)bF^s z)NdPZ)xwuLYvNL8O&PGs=wYplZq)okdB?@2yluFZv_JPKZxgqD&Ej2``J?=e!QYEV z(`aY#YC5LiXlFny?m@Fyu*?%&H!eVujiJgAjjtOQ+v2)$k>OT;Tp&T`#)ZQz#ziHl zvgdL}8OD4uE&{Gn^z4>GNQOWgCAteaWE+0p9J;xr8kTy1&M2q3gc}hNsgx^pW_S!o z;!+9Dqo8)>W%mK-IynCMebFkI&}tX%Ne~Z_T&>W zyO%m7;nLK`y{9WfZp{0?GUQrtQL{)(iA^$^T2qGH)C^aKXM=BQndi$XxXD*IHDq8e z&OM)!eZ(JGZ43n!p;ItYX6|nORb=`O)rK;s!2BMbFwT%|D360{L%GDQRN#y+bw+t} z+^Dk*m-5DY!1E|-y2`S!X=uTX#YBq<%G<^_A~;;i+r$-l$&;=UAD&FX?)Lz_=UAbf zmS9fNPdxr;yjPs|lEiJ=r1cwza~$(POt_UK=vlvwgKPa(;(}YH(jpd|pMsMNeq1D6 z>*Jhn>|?M_xN;pJR{)%Z3Rf3tB(cPuIg5MYPkz^z4OCpmmpWtpbh)huR0PI>Iupb( zaH+F4Tt5XHU+STWOFcAYAWhTGjFW_wPxZl=TarOP&c8@;wW`RxLPA_AgW05)!J!-3 z=+M2hu=}6=eFdDaj%TOeeqZ73_Z9Gd!rSjFy#2mH_xlQZCr%{bY zf3-lBdaE>LOB%QOrza+U6|8@CVxrjlkas0m>P<`t+csPg!{Z9YIKLx=7Zi5(z5>ql ziO<_O0ev*`ee=yX$9P|1vWFuRd5#ubJhZdd{=UNef}kzTPfV;%OvFkn$*qvCV_pwu zvfo1xH?;g3s17M)<2~3F0^Nry!*xa$^H4T1ar(h`O@DIwT@RjiGT^8gAk|o%SAdgT zcwynzdY$q#RyT6wg@y8cg1>? zjod4I%hwfPV#AdZ6>l`*4XC#F6`-#wsh5oPg#~<{HQSG4$|;!=d0ZFu%Mmg$ib~9J z6hc-;?A7S`qM8Zu7=gn)`XCJWK}-)AqwqBw3Rq#Rg6=Cu#4Y~jZynV$vhUr0_yNmJ zDgbt6xjfls|I|AVe+V2JrVhLc$cigkFtTk!oWymPPEa`iy=iJ0J&vlI*ez}XrxayH zZHa|@_hF9Qcke=0SRqvd7$!%dF`p)V#iBaKiU_gCI^SqKLr>h>q)4R_!x_7c!{JlE zd1Njtden2?Z|Jb#686N@J0E1L#QAwAp;Q)?<%;VT&j@lYB-4OnAx=eF!NU-Ta2JV( zk%dwOis~p>)Ova_ags9*vR+*lwvKP5#e!~_xTao!;a;Zo=6Vo}0vCMoyq}#OZ#;-( z@f3<49uVKj(B3x1T3MI}`L6h0qTq@I1%Gq{>j^=svMrWyx3fvr?}D5HA30SqhDer> zu66yZh=P*g8AD~SSmqb)qCG&tFyNwbZ3;%eefacm!kzxGDo&YJE46gxO6}&qpx>~K zvD&?UlO$paIB1?+{6X_71N5vYu>oKwG|c=R3L%5sJ8Ld*Os2#x}2Sp;Jz8;9B=S;&@| zOLmr|^(_><2jKSa-=8*Jf}8PVBJezY`nNy&(ZPxpTTKjWmrIsYQ~UQnz*!|YUvrAD ztSl_td+)w|+C0PM=EdSE>pPvvA^~`b}xZe7~g<#WdgY<2m^&mcy{}i5TaY;E*WB z1(C@XfjXYA8|`e;aKgTdymI3EL_C))Z!^@*Q}INTPTLxO8AUbs-W6(#m;Z7tl&T2%Nast5$Ma5 z%W&25wHos+H-&88=<8V3KwtC#@APSTccYSFS|vtBj5jO}7kQn@a(+-mG{Y!RZxmo+ z!g3K-E*_!@mn5z{;D!J{%kGbNJsehN^yAO{U;iubRxB+1FTeZT|ItK)MwB&%gKolQ z)0OpGkQd#N(~G6&7iBp@NcB&D8ty;P`}FBJHft$WKiv-++a4${?4`Ni>3KOTsRZ8G ze0PM4>%pwEthTn0sH1H*QQbvDOvwJsgjI2b*= zn(wVt@Wk!J&eVj*STC>w_QHh#t;m^N`-OlBGe#)PglERLgEHKzg&O>QS|C>|q)2Lz zW5uyUlf(WO7TV0h4^wOfWJ8CY4EY2Hc0j7&uUJ-817=D5Tehj8f+UtFhsR@eO<^i& z#14)9y9oPYM{a)M-+c5VANj~f|4p&of$7jy#%!J&xdk9)7S^Kz;C#D`0!N}BKF#yk zCoG4dadb*!c3T%fTf&>=x$D5rktp!*ee|Qh_iumqquaDCZ&Jx6Pfue)+wR9oPeHp~ zRpTwBt`#i=;LD*l?`gZ@)A#P$yKC22Vt{2Am#%#6c-%pHhB3pEuE_dh2fynDCQyU1 z8#@F|XA35#sMv|Ix}q zrlb+~XC6F_y+OJd(NUp{YsFnUJuy3R`o!*uckF-gH$7irob$zzyfTsChl6}itE@PX zLX7tx!iAo$1%`ppcp{Ws+RnJR-1m)(%Qd!%tCf~Aa6W6|s?a4a?pRHYiwh3A@7t1n z->3hBvb0;@wI)Nry;1WI=BKf7Det&^Dew5WhtL@xLRU2I#rLRHu?f+!?&W}3+=FIUIm-z>=f(xQ zIlH$Lu>)T>F1E#W<6>J}H!d8m3RueE#)ZRG0ZZH+qk$iwI*(EYSs#>xQUxu=3B=pcwAg^ zco=GxeZ<378^a1cS|ePk;6-P1u%CZfSVfN!y~R#kPJ#KxPX<0PDx!(Ap*#+*4drog zZFr7@OM8g-fJe>0keE~OxVV&eTwKaKKJFpxtf5>u>UYy>3QjWkagk)OJ|2f}PoFu!Zh(_e;p!rdB$l{e zJN=s<89eeiU$zodmhxyjte-Bo^?-`Nu&Faa90Qj+8yA;)7#EkajB97a?SpY2;YvTv zzerXD*R*UI*v=+FJD&6JD}3o!-s<-i_V)((`x&bm-&dIG&Gr_jdU#%L%f7F04b{-e z_Z6lPO!ck-ZUFZE)KqU7@EG7K;5uLva0IWRd<<{}um-pZI5;`g`)$A_z%{@Pz`nac z4|oi46>uG}2{`f&&;zaj)&MsF2ls&wrzb5!_b$7~l$E4R8~1@Mk~|xCFQcxB=MrPS67$16&1M2W$e4ybJVzD}Xh? zO~Ao-gC1}Ra1C$+uuG}2{?i`em@4d0$2mw1ROj7dcY;XHNXwPzJs6# zJO;Q5xDMC^9JvqlfGdDCz)irxInVdV0QTJvdcb3VtAOi(O~4Txc>giL6~G$c zCg9*a=mD1i*8n#F`xZbCcnokAa2>D-IPw7K0apNPfSZ7Whd~dx1h@vc0oeB*&;uR= zTm@VQYyyrv2ztO3z#8Bt;NW{f54Z%l2Dky(_dd`A9s^tjTnB6dj{F?x0apNPfSZ7W z?*~2L65tx(24LR@Ko58fa20SJun9PF1oVI_fHlBPz`>sfJ>U}H8sG+C-!Fh3@EG7K z;5uLvaO4+354ZwY1Kb20{3Xx>E&;9qZUFZEGUx%10j>hB12zFi7C{fV0$2mw1ROjH zdcY;XHNXwPzK1{$cnokAa2>D-IC2d1fGdDCz)irxUjhBE;QI z4=o#q;?(tD|23X|{_Z#Gdcf&ZT|HP_eCZ_|(?S^3mdzIzw%&LHPuLIFvo{y&;rjad z^Xu>c!-U`Ko%myU9v`nH%^s zrFR}KCe|abnFIISb6_X@-}w8#e`7rUGja@8{LDhEaya|~?$Cx8PO6w~2L>+UoP|{= zC>B(;7!Z{|jG2h=gADdj2KQBl9_=kd3`DfgWTSP+1ykY!#HDPUsQk*=?=+loc%F?FzaZ+ApdRHKG4weg@#_e-h2xJKVZ-Fx3>B-d!jHBSxg<}DuDSMKMTd| z-Al2OerP@ep`%#I@dz$;y&l3?K+91F$|_Ox&x$)GRk-#JgK9!xd^!#%0#9N{1sQvz z<0JTVDQz*D?r>-+jz(>-G6xZ|V`CvAL!UtW9S4;Efp-)Iu!!~bhWMC)FrT!) zDN$AYvcr0s8NgBBmB9RidCpgWnQd6t&UAd?*zu%)>5FaX#FATZ)X-WAX!8eFg-ra2 zLW-e~iEsIsl8<8m9Op4F;#)x&UNQ}318nKs<0tg{0SE3o=FZ{sSjo@6KSx>+Ley1Zz_I^$$X4g-0&9RcPXcs9%VZwhOA{D0oO?imP zfw%UB2=`V#4QDtUsB;FCeI#OUKjW1Wb&Lvs$b^0_z7#>$#(3!Q8JES~pAsO34E)-Y z2~}Y2j<{rY5?+=`!K9~asZLd%|4=ZLeH06MdLVFEft`Np4t!vuM7zNE*O0BPIb?FD z{1+{Vh1Srry^3g(C;bP>bx&Yw4cvkpUYuA@TO{F+Vb4MR`3EJiTdf@Da)^ogwGSLt zu>N6|6+SFs29%X?>{dmN=!e)Cy}rSsp9VJeV}tr@uiy~IS6_YQYkofue0CY#&=1R? zf7_GA+B5yf`7qj>avG#I2YG5KaB>-c$#?cf{7_jMHpobOLsAs{g$X>zKj2#s#b%?(3T!W|#lKvxtM20bmE!Pjf_1b^6s$>3wo3Owr z=96nW6fDnYSs;t}qwGiU={fy(^{?8qLku-|{%4Ol{nwE@`9}>I|5Bfxf5Nu;Rt?8y zIaVETJef!&3w1JxAZ4`An6`+MGCPGP%XiIYJ}%i7u_enkl+0%*$}Y&5BV-=ke|_y+ zKO7c(NCSsubsjUhY%!* zH;h!-$1G-3|3-u|vbZSU?!u;Q*RHZm(`-R3$v$eaXFL8-%ipcE)D2Y_)PY!N1GAET28JqO)Q_`&h>{Lv%I`-x z+RDXozaphDc=Wze4Vwfc7f3kP7kTdKNq!8&-N*nBliAx|JRnMR)Md|sd5~jO?^)0f zIU2OJmnA#V5Ak#TGe=$IU)WFLFEK+GdzLOM@VoeF^GAL46{^9^vQ*0 zrwm*}ifTee8Y`?J@gHi1!5JS?+@tbM$(LX_UuXFQHu@Ko?jVfzoi?d zsg!eEm69n|&OcUyMp%^BP=1RQ^AQ>PgvA{`=`5S!FeEI*z0x*uiB-{Scj+q}pZMgr zUTeb{zVy;i@-e8wT&M%x*1HO&p?lRL3iarA3A+Q_IQ5Qn>MD!$`e(kD+?g~M!!5}? z0M$ANo`}K8r?$L(&u$6K>t$->sT+PBdBh-62a>p*qmqgXflEcaQO`5aG{)tud%84Ujamb{& zo!J|H1JW@NMnLL@3f#)|3&zk3*HhW`5sd+DY+I^Ts2%t+r_rp{jX@c1(Q`w<+w_hi z%t1XjkbAh`p<5N-ee44hR;0}LC%9|HE<_LK-3YE2G;mgp&3q(@HOnu|<)StfiMu)shUR7F-y(h|6~?`>)LP_aTl{xWhK%?<1; zMUVdc(OvjZ^e%UwE))^JAre?eN*}3wq9v}w1%B~GK+7Kv2a#%rzb^+mQBLHsg9r#m zZ4vS73l%@+b+4T2jYdJ8g@sl${<`Y04EdOd4uVp2m_Es(o0>bxZ6`Y!pZ@rbn9s-p zQRP~H7zcsk-wpKpj-OrGwP!L>2s$JhkZc(8PoCX7xA*MHvH9yge<)GDE>c|IDNiUQ zG=cYj>{>RgOHmv&RNPPl$)~-w;a4ba!{`3C4IkL8_;R2(u14s*JT>HPsjQU7iD)W2fn_|#_`KK0p#FZLtj(Y$%7on94VDJAw} zs1hnZaS6#)5*7Pt!6&w27=@<99$N6l9t>4N#b3nu2>o>?^p}*Hy&*A_{95s8pG=p( zM-ZR+;xKu_2_HYcq|A*+vuDW<{Qday_^iDR-;XbkFZ!t^M?EKhVV@$WwKq}(d_TUV zEXeQ2m*fY0VFvrQyE!3k!9dW^5X)dF^4J$lGX0znKkcA~z@Pe*`pk3qmL*}pr#`cM zlOOeF`2nB$%&b$xLD51xp8U_fwm&zbVFXG6xVkwjAP98 z7xSSX2E9`Mg3pP!MgN1L5RgnG!LqrBOJauu7DDZ*ZiXX>(fp7XO<)Qtg z-vH*V+9IrCn)0{dCk&#d6yEsRk1<28|Fz(!TxmxSp5C0_zSfzrd~hU8sPLpLW-hp82M12mh0PFb>LH< zZTQq@%$Gr+RZu@M-^oM$#C(TOsy6#nZsu1Ok+4rjG|T+UDm|G_Y8KWJzbTK}b0&|o z=SVn4#J#gb?A`zD?=9gwD{sHI^!9s8cy9&oDZTyP65iW+`@N;E_m=FfPzhJ#>{Vy^ zbpD+u4{$!S=Q zemlm?0}TnD*QOrD$K&{TcAt2TS6ehc;3@I1gK9!xq%%MEn&Mz8445j z4HKSNn+mHc#a&F+FZ)uATkkL!+t(NWv6$>DRgS4ssqp9I)A(Y{3Y^JQM`GYJE{l71 zS_tGJeh4CdWbKYVW?>RuVi8~0QdPg_Un_>Nk76ND*Y~gjJN;B0_`pPoc7gA&n$ia% zB~@SfFIbR@LPJ9k^A*t~@5g*qOz5*JWiuA!@Z#hMMJnNsW6#>PIOHW8yV4qrhh`dInpxnM3~ulR*)|2D zpno~I2^8LnnVt%kUpwhWES4akP_Hr42Vp}f@vnp1WwIf)jpf~u3T+ct?TM*@} zV~mlMGQ_|tVkL~2C6OS%9DLUze=U5fL=*U0Gh#u=SNzy?^e>Dvx%r6S71X^bwe;@g+U;lL@i}^6KFNnFR7xRgj z4hLMx@|8)=Am)#BCO{RphRA9q`S5N_}Sht5mP@ z*NL{UAK@s~RDn4HS*Vji#DY4;@`#f%8(&#|m1vlcF2SyBAHN_I3z!cJifM~5pYGRx z{kJ~yk->^(_q1EZ|H2mr3o)PE!5d$4xp!f~^&`0lq^ipD{l{#)JP|+gW<)G9tiFDJ zs3Bt&G3ywc!A2~(wrlK&s*&x#Y=a$E6^Zavl5^Yf@BF|Gc&9nMzVk210{Olts!VK|YR zV;7KIAkuNluj25dI13r8s1|2?@t`?Uq%LnS3`mFf!Z4A{5c#(JFSz@G!P*2bstKtyR#-#gUo#n9 zo%p91wY2U1f#Rb(6XB~n5Pb!ls>H1s$sH_%e^(D6NU@uOD|}Ka^iAYzO2`={7>~@{ znZ4l-x{iS`0&=yM>lcinhqaW~Q{iKuY5u_=uUP+Ebuy>XtksRdF5IH$hM@T3k6pv8 zREfC5+?`ZhSLdp;Nkxdi!O|c;Ar}DF#j$lC> zuf03^eU1IKb2q>6JNOn5-0$SuH#C#CPykV%^V|!=H9iQWmmn*3`}oDZYJ3%l9|hW- ziD!&6g%ZPelc%Uf|31g!eTx)fRiu%eU-*4A_V<7HqaSH$FB&|?drK``wH|g?w&}6z zJLX#{rX|RpprzrpG6+Er{N=_iIwE)A&kXSx32x?|UT-q{T{aXDKhPMiY-&?t2Qldt zdis6lNNM@?%1X@J;qS|V4jPIab`$~Os4e2e)H|vDF|T`}ep)}bwS~P^($uPB{Zi9! z`>GITEE@#cth;94k6q_Gbi`y|7Q$)+{_HeyijFfe4Zr-lP{2nGq^kq|+~M6*yARJ{ z`fq$;NC^u5`dbH-D3<{FfC((obW}jc`#*Lq8`dQ)psy;jdnl3*DRzX<{q0Wpb3f3A zUsdh$aQQEH(4Vo*|FOg>Liu4|=yCpd_^6e;USswKxoc5#r7fU+GF|>2L44+`s~HG^A74`D$73Zq>VcllkFRm?{rDOO-;Xbk zZ|zlK;8!9JpWZP2Xwf$ED^)Mv%?W7>0^4fEG8l^f!|(5P#(!XQPn3uHj50Ff@U#3% zYoI=}{B7{5&z;~?KRdyPY3}&_9mRu>{EpzLhn2!+ zbwtcjr(7JR9;Y8E2lE>2{C=A{-3dN*x)XfbXd6C-=bBVg9Bf?8u@BntrMzn5a}C%D zKKXnS9rp~c?>_xWt5(9An~Nc$3$>)p3v)_7|FbZdzVEL%N3hFU^e;_y1aXcS6F<%o zW8%j#KPEoqPrm`on+iHZ%D)qQ%D)qQ%D)r*1?b%M7v!dOpsOmI{Aq3gr0Hm%R84T2 z37`11&oV#uFALiGm-(a(F81%3__2S-#Lw0MCr>7SWzy&~sJVVpS!}Pvmn&wuFyd_2 zaCIXG8Q`xgz~J*)@j_j*RhfRMPsyX_E1HnDZn+r_W%bcr+dE( zxB~bpU=#4rUDNo+(sb`dzzx9ucTD$w8}KQ>8sJBOBm1U%9|v3od=s$mr>A?r2Dk)x z8E_MDcnb9co&#J5?7kcI1D*n01AGr~a2oXkt^mFY*aSQ@gZcq40&W2I--G%Ap8~7_ zegrszUur)NxC;0tVBdb!54Z$)8E_MD_-9Z*;5oo`!0vaVe!x?JYk=|u>WUKKj2efe&ei8Kpt^&RZ*!N4QA8-lqGTfZdCzAMh058sK|?gGW(6;0oZYfK9+d521d*i+~$|{l`#0;8TD#z>fe& zeg*Xdt^&RZ*!QcbA8-lqGTAu{74S{KzLTi`B)+#K)4{5Hd6;i*uCCf7f-^$9`7ufGm&_VwrC$tR2gTYeg8>+4_Vnjn2fEH2o&Y#l~}fWGJTP$q{FI4W@>5%cS_sb==y&A;~mwvXAiE+ z_e}Ozhc(^M_xr}i#SIt=dV&@>$hu;_e_k@r_igt|7;A3vMz69%SXHgll}xNn&-n8ARZj$opk!- zSUA6=O`^P&M#YyF2M^7GONG*-!Q*J~Gc5Y_o01D=& zDdSwSQb-BBU@bL_CYLnwkTK}zvsglF5tnkDUPLV!UDAuF#haR=YqZbnGu5QAfGk0y z9~^So4=loik9<8TL>w}slyzgH=sm@mn3`KUzqNIKX>Mwwpwgsom_v{ONH0^0LtwOJ zJdLVPRC?=HTk|l5VjApvRjaDd<@m(Z#>Oo_kwF4`VGHy2q@N}z-K|@)I1DjwS4_WU z=lc)i5N;fnYUk~k95;UCG_ABgvC7B zpHF45O}Glv$Cvr0?)sPG976q#r$NU}qBu`OPsrx6cl;Jrdep3knsVndaF{SYkYElU z;PR6ssH*647ECSOKQp-zr4nMXhI%tfs9SmqM~X0pZe>+3It{U_$MRK|Ii(wUog zbO}pi!(qzN`jEzEWE#_<*AMH1i*u)+(nv=xx({s1DRhyZn9+rrn$xFmobI(FO)qRg zf_Qm-L9QS!_Hta%iiKocshI}f)Jty6to$p)d`XTDGMK6Ia zHmu)ITunf{2_E_*l}U{9<&grRBbm{SJ&r>EEpa2_W*5{EErs=QMJwvn-t#7w5VRA$ ziD?;D=TJ|mH<4(J^>CKSo$8ZjP1VGP3X3qXUY6v7Q+HGJQyEb~8DwNCm6<*lU&5D=C6UUuwa-YL z&)2cvVkGgjag=puikz4-IJ4(RvV7Jhhw?yLW@Dje066YeL}V( ziH^L2d;ax}i%Yq^ur5|~_uaFz*(bwLpDmiaXrWw*CsX`T7cW)Rr84D%opP1(ET;A! zw-niU;5hd~$&ZH_-01Oc-0{Bs=fo&kvwfaFF?^c(&mA%7aI5bArSlqZ`ng3m%Zr?C zrwS~z1<4MR+;r-|$m~|4*Y|_iSRCsu^H~@~FxAYig=ZS{t@Q=z$EM?WFc~#k zv|s8IVO#4XF(|V7_DtfO#eUzNDw}u;wqHzAk;cmQ`AuP3#6)DPwA81cuZ3ySCz_Zl z#F(Q|+ThFX?iy-w2cl6i?Pn|sV!N#Y|++H%b zawnq5>c`Qxa<1CVH{OCPuMQI8 zx=%dA46l8ZvL)sRYf&U)T}MLec)-0+Ug>1*lY!vI1Mg*K&KZ}#P8A$8qGF#VWwfT? z8X|)ZMd(?sOIdBQ2%;F%Z_Db!`e-V0zo?)K3m}60MiJ2r8i}5hF>AQL(v0 zy0C}K>B&QLO>AF}mY%$fy>Sy!a;S)5N10^fmI!WW1cjD*q5hXbANqaQ%sff9wiM3W zR3;2Tf{=D1wvySk8?sWPug?uV=|$fU!Z>fXIEIU*A7O3bI5KF5yr4=KTLT`a3H ze46a2fVQtS5fekAZA=Ig4v8i=%^}ZJ#uoMMrw%5H@!q8iVj7)>i6>)5XCd=2;25;K zs&3B@xl7MH{wEL1y;JNqKlsGs-}rh$&-8G9BQUho!BSar*_=jU$cE-9zsl= z)yveK)OY7}95v&O8M@pa565rA9;hx^l zM?Rl%-*08vC^~Onq&w7a|6Ux+^1DgQ$=yG7eK-zi6VKlIzn^{f*_^;qHVE7HAz=`< z?L&k-+*(xYHij<5B0&}n*I$ie(2qaClZQP-Gqe78pgSE8GRd$L+SYd+gpKu`6L8n{ zG$wW2?@3qUjkeuk21im)?z1vRH#Q?YOfrAW+&nHpGRk^r8`Z^Ool5wFI9c}+`YGc5koK9T$Zx>E*1$6n0zMwya%RcReqAaXRWv-^fZmYep*O1fU zb;t?5d>4B8?sxzC^$xw@VV&n+PkI^k+uP_Fer6th7_Oe3U=pn`bg>gDvtwG!EB>6? zGH=J}I!4fYvof)?Ni6lDx;BYtu-oC4RGX-zGukMeL@O=TFg z;$U?z*^GhGJAB?I@}*W|;*KKNm`rt#OJ#{m73sbm-Oa%L8kxsB#~<~m7QAMb7+3g>M2?NPFy&XN;D>v&o5nk{dxW}mr8X%D7wd8=d>?R7#a&I zk_7L6##<Rj)h(zbEtJr_mZ7EbV z`c{wb3sRc>m+-Yhn?KoqU3BcfE;{yK7ajYdi;n%!MaM<5`~GLu18L?g&GvQCiG6m^ zv3*^1VxJv!Y+o0h*jX1HmJ{puGiRh9bXVW&p>1eixMdbr_;~+?_myP#=E*tL!o%BP8 zoKUwocNf#LV#tN1g3w?Q^BB?o3(qeNhq3=y2IQrSEzd8pA5^^PXLM1MMf=zfkwPPp zj{VR@$A0LdV?T7!QJ-CO)MpnRw-8<9LG)77PtL|IbHaEC?V^3=^B{48oklxjUSA(W z3DeB^i%&etTy^L*G@}k=vPG~WJXp*{5ZgPgIO;PZkSYv7o2R5q21N&*4T?5885A9K zHYnQYWKeX_*`R2nlR?ozXM>`RP8Puqx+*M!ZFE%5pR7*q(S`8)tEZwSH6p(|$;y{K zH!6iT8Or`8^}Cdz9|EVW-?jhv@R@Xdd;g&WL7UUXNv(y>`mc>HPHHW5)_-kuadK** zvwmo!qkX!;H1>{}?dzgr`<(ORPi`uA(XoBbWpr#`7aiN@T$bYHU)JwHw2M|Qg2Bc( z*DxA8@#N~6xT%my%2i_rG;RYD!@MJmhbqP?`xMSE$Xi}un&moI{O zeR=zGIisDm)EDinrM~dYAoqb?*MNS%>NLu^)1K}+zxCa$q}Ri*2et$bYgd*pf_eLh zCL*fWn0KXVZSAYN>GDOesISTvv#dVqv$H-}a+jQJL)Um7&rPa{{Aw)yZH9|%WuEGjQ3aHet-Gx_m@Y%zntbgjbZ&Vx9;X< ziEeRmS{bf%lKh5*aJ2-jy z)zJkGJNmuWy{>%6?=Mf?b=OpRQ#Qy_;dqX0r|awc@jv{-k2~L&{>oPx?@ROcE#5T~ zvw`K*-d;9%J9ZZDF9%!nmEv2{;uiVf%4)u|5<7#biG8_yz?5I!Tu!eqXOI4fT{~M2 z?Ug_-gY{Zi>K)dpbOUwGipNO){xUaxXO7)BGx^Nq%zeksAeHDC<9+IC15I3XH=Pyb zzxVsgDxS&f<#ghSysin-;^6TO0PO0bV}F|Coj1Q9>*L8Eaq*d+NY>j3{8A9hCh^$A z+zg%whr_Fes4-b7qy!#(I^30jS4Bb>+3EYsrWfhPJ#HRkU7_1lEzZ{PON`M$qjXM! zMCUR!s<`TFg$)$RDEon#^7t&@U)Gr5MUQoEY|z?bmPIC}zzvV8EzaKI`^y8b6ys`P zb3l!%PgHa3R$KGlet+3i>OvU_tK!dUkP12C@P$|xSQ+eV{+JBEW1K%ZMKQEuOrR1) zNaxq-lX#(Ry!V%%fBt#b^)m;!Q#dd)ecw@x&cWd5yj6y1xXAA~WB%#dT6j72<_0i1l7pUl7Zx%jygJ zrMQFf`W!0zRyrYIdE5KT6pc%5RVfGOhx!&nn8_LS*`gQ2j|Bb1GzzFn$=WAa?DRa6 zh)2aTy79-6nhN(J?&VF^1IembA6K-P2odc*>%_cNdolE7D#GMq^=Q4RNMo$W*Q>dz zPntDV6B{aps?R133rUB;CyuX`X7++*VMA61czA!g=jNx_f6>yUD)F>F*vvW&hc1;F zx`nOdZI8X0=KITdFwra< zVJee)qKr(XGSep?3^*@|R2KVB802~p`%J{SeFpqN?7+m+=zM=$X;I%9zt1u{t8$18 zql?w7Hv7Tow7$F_LVcmT2U)+9j{I|atx>l-YGUe}B-wP5GDFPNVxhM)YnO#yKg4G~ zJNJ&>Up{l@(Q~pDNg_Ez!9%V8gWq3Pv26E}?J3sTa6gvZcqm?9#;J9weRYaz%w^p1 z`^zOyUmq_6GH1xUC-26d%u;2TTVz? z#E=CyzeS?tg&ks$94{~*KY5(5FI#UJ>o{<8EB7Lbv^$a0zrK9NDhgq^=GVEcDD(C? zD9SqYDOipEbF_}m&)0(C>(h8597Q*(zID?$LX9V$kLtCic2dfgm>a7_Nf_%g60-GA z@E|8bk=C~lzdqxAe(}|V*=4SFsiBKAnyjc1J|w(SIcM4m$hddwaUi7)H_Cx7F1){Nmsmns zdwRxQhMOTmv_x)C&*6MLI=h_SJKp=tXU~j!f4QOfyl%N8WjZbOLj7AGy6d>!4Et=b z6~Lx4WegHTssMQxSUncH`qq8lG2S_*sG+@kwX)H^y}wL~;Eo-$_m|bMhNC&KlnVIo z@cyz%C}A#Dmnw+bH#&)Q&^ZPeZ#j}rRkcqw;!Ecqe>}av{P^R4`SpZS`x`yyUw{4e z^IC>6UTk+T&&+EXmpL2Z4C(xk4cuka#v2?VQ-ZW_g{7u~{uz4@K*KZrRAy!zRbm-H z@k@%B=ot3N_60PXUE=G~SXF7;D=HeptpRj#*~ zqd9TGVZWTHB!=JovFN^w=Wr+(?Dvj@h%MQzRI#5IvitM6^wj*{&zxP8G9qcdw z(C^#0{@@!}+r)jtKaN7O;o|e*0jAfVPrI&pTr%Qac-bU5{YyRQw{=k^^pUG1i9wq_ zaO~`{11&4y^I_kL&Rl#xk!Z{hg0f6&HKQp@d!?KnpA&bR*h^;W&ez0>Dk z&-CKiX7M^p6^R+K=Jre43SEeuNI~I}VqbcH5xFfYl1YgKF@pN^!eQR=2~pNpF<#Tl z-3$zkPf3Lf{j5;vK-&}*-JN0jMCB7*@j-Hr=!BXu#n$NY2hx;%htJzY22^TH+))G@ zld<1l_P;tbDythgGWgJBc0*~`7&hVtAZxelUN4M19fb|B+wsn*ZuXay}!J7>b~P=S73D6Lv}(14w!sF?&UpoX3rr!rg2Kl^uVz*Wqo(y za;=v4m-*9ND%Jg<=$_YeabKP=G)5g!MRdIX8E>J)1zXGLn@Zz-%wT7<>n^%#1Rbwe zy6Eu4L}z{6XLZqWpVcKN*M}}TjMq*&d38&)2t^ip!Dz3#>Z8tVs}x^f{u*=D*)$Z* z(=t#Tq&{O(^q+}mp}(JO^;AY1GT48HZ=ul_SAo2XE*tL! zT{hlBoxXihF9lsT-V3^HyccxYcrWNo1Gqtk2fO%K*TAx3$Z5BN(7=g#j08Eu^Gm~0 zpG*E3A8Q}`A&3_P-w&<}Bx-c*he!}2Mpr?WE;{x@7ajYdi;nv2qN6^$=(vUG8V}T2 zP0zbJC4xRfvj&ZMkeFs~rWfY*RZyE=&Yydfx$4ksaJ7*|yOvTJ6o};&2TBB_S`RI? ziHfB%C=j;MRmkt6lR?ozXM>`xK3N1i=xk85(aE6bptC{IMkkA42VE5w!8SUO^!|ir zcj`)rolNfB{R02os2~MhvbX&DCuPuQVARroGKosx+jxkTvLC_~ak^kZX`0lUbQQ|G z=+dOtq_h5Ot1nGXO*-p`Ho9^VY`<92=GGdhUo3*2j*FmowM(#le(-uaw$D4CV*9%2 z*go%kY8IRMtlx3-2|2E0;{pGKneyiVKhKlib(CWqa zm+$E<^cL^w-Q&K$yoPG%E=|D0_g5$G>8$}a0n0yyG++&|30U5XG++&|30R&)8n6b~ z1T5c$G++&|30Qsy(ttI*HUZ01NCVaYn}FrJkp`>*HUZ1i zNCVaYn}FpRqycMyO~CR!NCVaYn}Fqekp`>*HUZ1~kp`>*HUY~&gEU|bunAaxC(?j5 zz$Re%T}T7g0Goj2cOwm018f48e->%L8ekK!Jc~474X_DVK7ce}4X_DVK8Q464X_DV zz7J`@8ekK!Jcl%34X_DVz8`788ekK!d1J(eWfaMP$4Ojzg0+x>;4Ojzg0+xRsX}}s_6R`XXNCVaYn}FqCL>jOL*aR&9 z64HP*z$Re%myrgn0X6~4i%0|30Goj2qeuhR0Goj2hmZ!W0X6~4$B+iB0X6~4zk)Pi z4X_DV{#B#_Yk*C_@^PdAYk*C_@&}OytN}Iw%S%WD)&QG;n?62};if_IN zZ}|8B4c_`{m^PJuFGD$gg5=>Yw!-;%GN=7qj~H5-{;%0_!KhylKwW_XFp4S z`p_x(IXynieCxKnTB~1X-lNqz|Kw#5!QmsE>%+QoB_WEJVdg1@eA&54kL3-5-D1Tp z^zzEFe5#p3tTw*6TvIWq_RC-Z7GJKa;n0hqZ#=J}dN_Wvx%d`HrL_z7?XQ5mpjTdK zf_yOAbM|qx0B%_OJgG5wXd2wcEuZJ(_~td-eBbAJUO1m}YN~mvY(!}}F$5n>P43pl z4}bjQAC9X3KYrsI|FNz9JdV(RPKy1X+*pV1Z{31d`SO0BT-DbKHvE1ojGuhWczPXweiY{N!Rq1E zXKeb^Nlz}@%?s(%&-}J>UJiL*c;U&Xm*=Ktjvo~7EW>RC1gxZ)!5M4I8A(!b`h{$~Z zkDsLbBZ@p`|m%25ue=L3t#^7`gzm*#;tFEJKw+HP-!}R zZ62S(p~FIys5y5?E@r*g-h76b&%F6sDp&2NbQz=IUf*Ro()ew4QWh5R@IkPdM^B0tfPP$CZ~Nl32IrG#e)InrA*1d#nQ`9A~#D>j&aYWmlHu-xo9Dt#ooja zCFs&!HB0jx@+w>4F*@~mM^lIAtZ~-g%uP96^#}W#o|{|Bbj0-eXn%>1#ccoc`(STIFIJrFX#}PJDKlqxPHu2=;-p(?M3&Qx1Q~fLj4qnrh_RmSETK~(#h!g z94z#t)}txg<%j4eH_}Fq=-!2j&lgn-%A9X|xES)ZwsSM7%kgW{T07?Ea{Zb9jZaB$ zryfT7LjOu9643<2dHF=-WCGF?zTE1+*iRc_UvBkw>Cfns+;;4raxwb3xuCp4e#N5L zWz0*FtUkqjc~0LPzlkcv6211n%tCG|({kB#RE8^4P`1C+677An0mDwAT7lU@$`5m2 ztW_oP<&0~sxg>@Y^p7Nazq$Sf{mby-N>H|+^cefWU3fC}qt>u-YkDuPzjcN9-0h$A zdink{_CE%XtW@w!HinJ<$5`~`MrC0+2u=R=^(CEv3j0a*huVwvQ|MELoCvb{C)I1x z=e<~C%N}Mv36?Id*NGh-oU>NDh%b+Q9xwZ2j-WX*6Cl%H#E$fyd%Au-|KyWO-_?G* zkyErkRvHD#`!BZL=#k+iaEFX?5W?kW1P_O_IPW?dB1|DoA^+{$-1InCTt12XvUojn z`Hx_}bY8wGKWua$P5E*m$h^G&J+8)Mk4O>%KXVy1hpL5>r@;-cQm;W2N_gc8Z=KO2*2eWC|PaOXyNYRe4ZB)|@zOO%Q8@&NnzFhjxdxiaa z)l0mnUr5EgSqkIGz8S9fGq8n&BPRCH{MF34RP~b=u!WO7oGb3p-qd~ewb$OfeEAe^ z$NKW~=W+3YdQmMd19Z3O%hUd`#x`EDeL3nk22qE;9E~b=ANlo&jkdT4D>h-ef8hmy zam~ly%#5|q!hHV8cbnvq=Op3%WsKF8LfnUKZGT=H@$(#f1EX-he%0lV*W({de>-e9HMt%WW0_ zx6b+%bEouLsayQ8k5x|I*ZQRuo%M4E44S$8`d_wf@!P99ggoclw`OWt9l)p`$%E8x9iD~n3@E7Yp<Q0nPE`CD%6O_x8Ut z{VT6V{})xb{!3l&aD4qC?n>P%+}J;iSARZ!#ELThcJo24F)NZp+nDoM(taIzUE>ev zqJ^UUT=ym?S64NpU)%tbYTTTS8&SSyjjP<^x7M%Y#>QVOJ?s|cjrCt~QG#;tZ>;~R z{$PE$k=f+WnuGm)CBOcO^t}9)`!8+w$NI4b%boaq{~zg11={{%{$c&*XbVLr;3^7y z!WN)y@w#=Z>;4aj)SWsNB6UpW@;!5un@DN$YX7Xr+B>laV*cX+z|`dxM)OG{f@ z3UU*~b6?+><9?Boo=kkxbGbZz=1>#J`_GSjwSczqlWJryOireB8KVw;p562EHz6-v zSnV6m#x42H6TKeP-|PfKm5?&FtssWPHnyz*R?bmq@wSko(C4$g_T_cP>3liG%~$`t z{lri78tbN4PNAG#?@`M*7t1oQkzRV{+_^tF!9L^F!-? z)8^XNBg50HW=l0g&WEGv$)QPC=3oZi@$)wY4>N=!J0|mPkJ&M@9eqCSlWhLshfhTE zmdFx*xopYKv$nQQh|6NBtD6BH>YkI5j=r*L!%2or%}>Bz<4M@HNJP4VKumtkbI zS;&E(rh%*oPt33W`1`^AI3NFtxN+-qpXD=XFy_zRzU7JE+W5icpj?DY=Y=UC??@H7 zb^jx#kL4)c!r*X%3-WQP;`1;g@4xuA+(}&PlWL>q`RMqkpPVm89CYDFcrKp$L%c@; zq5TMtXPLf|{{Syf;7}9x3;-gYSf9W_PFS?VRk%kvzcjBu!ZU0c>~l-_@j)Dagz%Jz zd-ZemC3qCCey+X*Uv5fco{t-jX^m+g*YdaY{E^s?)zcD+{j}s4S@>MoqfdN7+!K!$ zUp6BuenEQUCr|SY>!*M6#i;Wr0NQ?X#Qm6dT-xJi|6ZAXv_cR`2eC3U& z8~V%YC=&UVPEjbynRyyPyxGz~8Lra^@+T4-NNTt7`HOt~5nJpwK7ZjBGFC5_efcv3 zu?AKzcYZrs0(w-ANwlK{LeB?iI$Dr_7ClxQBAu&6iKtH%Qd4wcMaYn-WpVN}fiHS% z&mSgEoI6sg8Dk$bbK7&ks`(STLyfGs?U6|k5boF?-m{<#ch;)Bi3Jia%N`NliYMrfcqc5Ko-g2XNRhK<+X2r`TU#T z`SX_gwcn-3z#FdEKT-QK0?Cq+rt2r!df4?>v|F%nwa3e@`1}S~#Bz+E5%e;C?6R$e zUamh!(95OT2zuGSj-Z$Q>j-*kW2F34#Rz&nHa9t<{(6YJbtC9Sjq&<(Yb#!cM*Sk< zE<59es4q|Tv-9E5|9<>R{fR*OUrZuwJ>&k>MG`uU)^@vb2*(^+?5O7-r2iv!lV1AY zRjcx+-~XilN6<_Eji4vLQSyuZkG}t3VcWw0{J>w0{J>w0{J>w0{J> zw0|T$o>Y(a(|mq}Yp>cr4Z^lSY5tJ$C!N;*{DO=>3MsDn{6aDR2&ZEHs@(Vsd{X_Q z|0sVTck^E{|1{`}`KM8TG5<8^i}|NPU(7!ZdS)d3x5$sI(d`cd^}O7*WpmmtU$Dj@ ze^_$~lzX{pcq3-|3(tSz4Tb#ogY}J5hq7lNlm4auOzaqD^pz|*q2(GRdg;GNXOToN z{g=@)k?5uWj4XzUUixnYJ&SPtR=7mZf>H9z(mP`Oancw)e>nYzYP;ueTS(A;@-^2F z&!5>mc=4G(%I-ghS5MA&JwGR%s25*q3aR~81uB!u!we8-i~jTLzm~K88sqr!_M`o;^kPHZ{onrl0yhC+7HOk*{ohKj{oh@`>;G1I z?Z0k%*MIHwa{tYb;>NX1mF~Q7NW1l4RLb^u(`)-lXD+AL_IJ~3`;C@iPOt6nrq}k5 zqUY;sx&5G7@ot7}0^;J&+BglQNm$39%|5IRlcsZS{E=9kD-QQR8})mXD$GAhoT?5u z$^NAB!hXH|34?;(+g}^Kx4$-eZGX4?jrJGylV^+mWBXN~Hu(d&pa-I?LvjmCW05vQ z*!lXik;ck$q(y$+0$kksZWG}rx8rLNMg2N|i00HQ^bcN@UU-W3;I*wE-SpajM$0g# z*Z%9K*Z%9KXGwPdrjVbUN6Sxbb&o%mj-EeQF8bG+;kVA;z!EEf{-r-j2G=3K8^2BY z+l)xL?Zp2VKgZ<%-1Xwy=a{^GjtS1KIE-^E0B@gTf^$2LK_7rkz}x4Tq;pLA?rZgW zs8pN+Wm3C!OAaD-UcQdtSD3+I@QF{r8$9tSyyBM_z6XV0u;h2FpS*!+_Dc+BaJ+%O z`s9=J@k$8%{5qNkh>SkR~u#L9ISWr$D-RGF#{xJ_S(PK=Co6yt&mcs6H zO!P6jJ-hA)1F*P%*RDzI3zOq@3~pz3o@2rne^I+oul_5L7xZ|3p0#gtj!93%z=pcZ zi5PWOYDY^*cxwZ$^B9w@t^Pb*KO@PQ?U~%Wchpny^>8pK4k5^x-P-uae;i%^=ReOXrv@;jA*arTjN7{FWkSkKaE$E0yYN#HMMoP^G9;?Vq6Y->pVBpS_s z)Hx<@Vw&O$YD|ZUCGZF3Eh2|$Uq0V|@)5cxJI*n=b?e!NOZ1a7bF;HJgFrf7xAaJ+ z2>|yFQ5*NtBFB&+cIJse7UK*;mu0%dt>9c1fBZ82i5cvH4f}GZzt(e196dTfT?aj{ zg2ef9qmeL3;LD9h!XSY!kMZti_v8+2_c0R?a3^H`$5bkzVL;gR4LwDPA>0f3 zWn}MA|JbqqA-0>}xSG2Az=5OL{1U%fQ<3NT#`DkT&w=auvvfbsF*zYCSh0R#{9;k# z!yM0kd*eK2kBx6XYtotaQ@V^%+g{&gInxjvi?=#Flb`h-Y*(HmNpzGarFuQA`WXf0 zlVS|ec+muL_%)^S)EbwcVcxdY%gPOr#|m&>S$EN zwlp$bMpym8{_wq~e0|I9&oK&7+yCGbu^&8j5_=(es3hUZ{s%u~{oSk2>KMaDD3#KB zCTH%J4lpmj4=lRRy!@G@P`|JQFHGdQBIEumKFgiY!9q{!Nm+H<<%i^R8)+lw<#!b? zF6LEB5x&Hd+8!>3JiYDQjI`9BNo(zxn#%QO`Zqo$y*>UG=?ncUU63erftOE2PDUU- z;mfUlKEo-KWLy7_(4WyKx$|ezqTEwKd4>Ec3k5G@Udm+kDdx*F`j+vVs8TG^tKG>g z)EIm66L4j?nEkMpTPlUx`(^_v-(qS7W($_fFt1f5@#Tzbt+^zI6ZFrd=rCzQF@pY; zxN6Q{yl#5r%%f+;J$mMm^7@JNq31A&ZvCC!5Le#xWB+6D=pviXKaKu}EhTFHV4_qO zmV+?R&+>OznScuWN%e=?+w3=0$cZ4Ezf!#>ecp@p`VzkHmmIDi>%=a}pPHZ3$37np z16j;?t<_2Xy#Cm7qeq69U~-Zc=bcW(hBM+h8bfg* zq$&FE@@2WUN?vjOF7nITb@J2)4OZf;!cx)nkLoS@3-||q-Xst{b%)uY8&<=^c2<@73~PyMsL8`8W6UP zTsES!wlj=oW09i$UiA_$>K8JxZkA#fjvui+f1#0bV#37gy7uMK=rD_)dGwroV&0bv zy?W0+`|7!KG$CKE-!GMFdHvGZKWdItTjP5W^0m{PUb4s_>d=>?>SFhiUysDmrb{2% z7;}V;OgnxIrzaDod}hYAP@?(%vpH?%IjQ}&1M$-PIIqH013ovejU{=`aF}{XW4`|O z^*-_M+HWL`)>y8>CW=mBT`zqm{Hjjzkullx=};`}U&&9KgIt2;#2g$qt}iu z#*dcUEC6nu^($sM|7}OFmAb_byCJ3VzSb{uS!exIN;!24FXed0VKbi&QAWy_ULNZl zlScdVO*qC(8YPS;B{ub+uRkh_O`gid%SY*X@x@SGzW#I4)Lo}dpWgmGrxfQc)ya_L z)Q7X`FUk}cy|f94S+fW3o1ee$0Mm(+#cTp;jwdg9m;5HVhHdiq`@Dx_&T36zxOo)r zB&U3frB#sqVYw;n*1zI3`ah9M%+aT=cR0TO5O<|%@kIZ((r;IPX@B68@elVN)EHaZ z-!|qv1F2s}Uf1{ox@e)0pO60dlK>hwz@!>?&!TFRB?!)-wf;2v!Yts0M;vspTVOTT ze?>$I%7N8b|FxVI2kXNP%z`)Akqh z59>FV&p%qfE?Bx6wk=+GcCO?84{u+JJA@C|ip!=?oLW|C73LS`nAoi4Lqlblk9|$~ z@iqp%#$$pC9>Z0d3lkI?08DrFD zmJ>P-FM~yQ^k{$Ha5nJ!9ciNanJ8EoEEld5!ekspH2_&Dq`O1NR*}cIFX}q*InD zJUhok_Mf(LglW^ypYjN!%-LjUOIR^~TU{~+_zP@4{6n!m4ar2=sQBD~ZPSb2U$(Yz z!9^EeD9g_YdJFb1!p6~}gBaEob3|wvKWXwq3-a;v7U~z>yj6M*I$_l6;pZN>)*{Iy z^^Qh+!HQR`ZR?St$(q@+pRjVyhokAq!LUb!ckuj8!7X-sk#EVo+buVR&1pZCG1jD? z!EQOn$y2k>zrLR5w506*TuYH;ed?9lfAtDnSGkVZ?){sNTnv6NkSU;b{KtVWqo}nm z4*WC?6e#u-h&~8X6e78C>$9Kv%xB~rlh5Suk-XLMqwUwu*C`-31Qoe;|0AZ434&|j?{L@d)bI|cmKRI8HI0(a!@LW9eAK-}!Li-V(pEAmSfX5m} zJxop6GXRKq{x}OmjXYeowd}w75fMDbBMg(l z_;S-4^L*TJOlwU0xR$@A=Z~m0tEMd!`)Mo4^RR+G`ouYL-RGDb=S+LNILCx{%Gd(A z+AppcSO@!VV*`r+7eB`&x0$?sOxZ5BSrT(vH*bli`CKJ%#6V%@mPdt9^T(SFL zxts%Y{P^+aIVSm?M&jnqUA5)~F*PZ7Pvgy&m~WBcI*lNIBGJlHD0Um4zi8@G>^44s z;T9rR53|Q31TELB;Lqx10_4(Ga7Vs6QZr8b5G)YiJbYVrvkT}%D z$^d;TzSVjrYbGsZq>=C3Di=_sn$cb6y=a z{#h<}`#Q%DYrFGvOz`uZ_6*GsPoF&bNR&QC^dyp3K6~i+*;n`^ZY)4#cIhHToIN1a zZQm)2=a@Wm`;}LwW*0Bt_VoSLM{w!-$SM{s5kQYZaTx5j&wTcUrSosR_PLh&wcp|I z*$duq#r-F0UsevXWJ}ZjNwyw#{l)7JGhw2NtLk{!#dT8^HXcE%a>f zD0;b6v&+5~dfC5@s9*N4Bk0+jQT0jspaWID z`rBQ9ruswgq5u8(mHHDy>3=Z^9B;sj<=E>k64BBBakh>_IOfn|N74WP?7e?*Ugve+ zc?r@G{0gQhMo}q<1tFGE71Zm6q*i4(EC9i*Lt$K%;wqjFCaZy{ly(qFX6THTL0RCI zqiQ%9SJ7}>O@ey0TCStzVl!Hg?9rr{RDCVCjDw{WkEY9UVOymYkLtm=8kNZ?437SPJl91@1mhzHN-+$N944X6tv#lSK%=V8eZP&v1nf)hj8H>Lkpg(Z+ zn%F?b@z?ott&XR(JoD#z9Z#{m&R;C(VzIo=Uo7ZivAoV-O?jQan(~rWXTKq=>)Nlk z-kSBNx89odr?cnB-*sE>-}c)8ATtSIK^E@BY7gzZVNR%R3Zdq@DeoPGY7n zFV>Ve{*DckXj14jK+vczUml{{m)A+GDX)`QQ(h;rro3%pwXfecv2^e%+pj`UQ@;v9 zP5t^1P*YwX0&2?JAdbp+XZ9+rhe>?jH=D&UUWd1A5+x)jLpUi({d7HoX<&*iVEN>rerK`B*T_%q^FS4Y= zgNz${k^lDPt^ZQahhll_fBW**e_vM4#q!qw_T{brb>(>oNbf>6|GJ>0gZdBO=^*0_rKJ@74zwo(V`}{LQQ=j|CoGR=4 zXg1BihR^$ho(sJhPiVbaZY(%c(be4x9lmfhF)dcoVz@R>6DV zGPnjBAL-3*2fM*1z&`LPa2PxWX23Jx6nGvif>*$6;0>?>E`oQ#`(Pcg50GsKgJ2l2 z*_};*hrtv$3XX$0umD~JXThsr8Jq`igLl9h_z?8)8QoSe0PY6&fl)9CJ_C+`r@<_E z4x9lmfhF)dcoVz@R>6DVGPnjBee@sf2A=@?z^A}r@EDi@&wx|ld9Vmx0k45KzzVns z-UaW2bTeTZ-aNh8u$?OH0VDV0C$7? zz$lmmp8-d}(_j`n2hM<(z!G>Jyb0a{tKdCw8C(O6o9RE;4L$+(flq!7!v{)0g<3?2Xz;9)QYj)LQ04lIBd!CCMsSO(|8+u$9r z20jEmAEW;s*MSHUtk58ejvfHm+T=-Ed9!2q}$+y_R%B=`(C0-oN69~0EUmD3uoh*~)D?1g8) z{`F^1X#DEeuReR>s>ZWJSFT(+c5Fz}v!P>GT#V?@xhv;}j%hOKWM~|ndg8>0q{>J4 z7oLR=L9Ry*9*pT<|GG=x-+$XNTA^h%GIV7~s81X`F;2)`{2<|wUJRW(_T6LWh9o`1 zy+ZJ=(7*rc)&2IcPIHEaTuTp0$oNkV<%l=yNZ;@Hru|)>`pxLo$Rz z+EPx0p>fMO#3=hp=vGqbe~!BqU!Toy-;R3@p1#u8CuR9L_XD4PjJTHpvZaC{p@ENzgo~d((bsoO;?hk+jE_rH zY8~39{Ha0zOL8WOuJ171Hl*dP{pWr=KOrPik*o)ae{lLV|4)Bl>GBL>?Z5N_si$AK zB*~6S%c6U8{*^)(kZ*%f7|j(KOxMn1B4Xp?+8$&LDYN-KCVkwtP10c@H5S7aCZ(8itnb9>(>fO> z4mSQaqSnqnp>Q;k&bTZ64wR8^8>?Jt`l#9Qk=kkaw2(-9XyA@M39|af#}6Kwo<4L? z+M*P0ju=I>#kq5mZX;^r;6_^b_;lnz;;!C4iT{3+X~`ulUw-+kKeqI3L+QHk?G$pET!N~s@eh3aY37jRYKRIf%kD{Z={@%x@+5Nh z_bE%$0dd(re#O-#$$$3Ck3Qi8tf8{Ig{*F#SW>3SNaN9kH zUOsfsZ5q$ezAC?Vb;3?O8+`ruzW#g9a(U>Gtu$RnLx+YOft>6%qC=O`48?U9T5YAI z$G`n!StZGR**F=2)E3tGm%j9!4?g(%3tzIVW2Z0q_DkdG0_lZyo$9@G4IVl)%}ALZ z7M&?`EIb(yRht@5^nW_edu6d4Jb3k4h|;k|W{(}?AZ6409sQI0Bm8AXeHO|8ShrRy3^8y4vK4)4;wB!jM1B9N@3OfIo4!`OA zOE0_-=0Zo>^)cvJR|9k4M3f1j4#)HKNS~8!(-unO*Obx3waE&TId$z}256trMA<0n ze47EIk!H#i$d%mreZ6+4H5wtYwTyD4mG=C`Nb3Y7G&;6A15B8u3%QNIn+->!GoYg& z^xtyh?`FWIA3MD_i~}?9V}BQ52ABZjUv>Qde1GDFO&4zLPu$p_xUoNRV}Iht{)B8# z+}NMcS9Bh9{no>c{Rz1<%l^uZ{Rw>{y0JfjJWT6Ty}i5K*q^wuKjGd5^_~01{=|*_ zi5vS9=WgszxL@_`&Hn!n`xF1u_P?zCL__T-oS|QqVL#EAZOumdGIn8t{ltq@BSGya z`Z)Dvr@@QhE8sQI1aE=wgEepk^nRo-yAA9HBVZJK8cc!DfoH(8;0$;fybAsRtbp%= z_rRZlp5DG}8yEy12m8Q5@EPzc;5f*^^We*13H&}d5B>vq7kmJ&f&QENu#f1=?g0;g z1K=>222X>NU;+F#cm;eNya~Po-T^-W>p(V(ZwGt8ePA3s41O8R0NKWR4txom1z!bk zfD2$1{1|))wtTb?JBYq)2z&zU2b16*furCzz$x$ocnSO-SO(t$7r~FfWq^?ewhw*T zPB0Aif=_`*!4Yr_%z-b0MQ{$h4*nf@8(aeKgR7u%GrtmnyTRWE6W|bd3_J;D!D;X! z_zHLpG{IZo`(O=R0lodqKiCaMz$o}Mm;#>z&wyva8SpZA75o8M0pA7hfjUUw02~I>;AwCYEP&qz zuYj+EH^FznJK!f^9rWG8{DVEi9|dODZS#ZZjQ{?btuJF}Ht*UhUYwf5+6u#?+4ea=AmYHgMjl zSCT-s(&?Xq_|M<`=6}|RB<(*sF>zGsBYum>78d#kDg0lepqXMH?>eC@ zjvmeUPnf$%c;)Q zE^VyIlMf%KZPesye{Zj&?A@wgZ1(o{3YTjP?N#E&W&bo+BK69Xk2?F+Pl7fKF6RZ7 zr!h?T`cDWKf_5kL$z5qdZ3*L{^+8GRLIXAHQu0d-!g;r449-0Ts_da~*ElxtIVX^~5z1ltPLoa4?@a^rT(@H5b=tkGbpjArvUKO#s zc+u5h?NpxD7FtGa8eAWmO}+AM>D8-uKDb1SEC;2jGk8^U7+mYapwhW%vT-2=_J02K zN}A&9BWtglKckdUlD-qJ#r3|EDyC%)cS?qif*$1R7%|q^jvdFi_`>(zlC&7M344}- zq&EQ?8ZJw9wF(UCD`%Fy_$i(HfecsucK7yDQY)5ERPhrw0nEQ zv^Ry5Or1X#@BL3c8C0$Hc+4E-xV(0v%ON@PrlrW1DQtbo~reELjTm2>VhnE$`#k4dFw-2 ztA%G9$J9|}^zbB0!)c-yUwjdhm9M_|!iz4SE?$ZKlg`ma$)jtD?vas*x}5ApGf=}` zT^!OsyIZKx$ko+?#uUY)%IB)&73XMF7cGa4Z@RpA|6`S$+q$Z1t_zu<&Kx!MXAAp&S+QxTF%-pDn+5u{wN)ZmLim&kbyw3_(L9|%$3;f_qRk&EcI7EA=`8tn+6=zu%GnJ1JjQG^ju}(l-SVp{FU!dVLx+Yf9l5m)Q$bA8~aoB`%`lhF4z;+b?i@V+j}zXR&Cq6ciW@a zu06Uw&`vP zH=f<2_B(e|iq1{AUL45fa@(0l_rAaP(KB*m&*b}`m1Tg?;xp$7J+wp?Ss--n^` zYvV)y0?Sx}a+IV!6B`qLdy3tpy?akGq(;loo@BhOd!e{Sth#L!5Ej-GPr>D!{uj3F zPn~(;g_GO2pV1Nhl`nlx4E#TS_|rlyQ!+Bi$nR6iLPdPmp+UA%G3e$?4hh?a;WMX2!Q1Nw;*4H;GSLF32Z`jNYCzxxt^XLp`2rAPZBpSJBPRuu~(kZSe4pOxJ(EvPh+DHcuCeKhCaEg zA*n(e!gy?v3j%El9TfY2&6f<}Nf*TwopAEhOJ~oXePuECeV8y|);uUrN?TO2C`T{G zUCT}!kc^3m11E%1`lsK*DVK0HE_qt+VMw*NQpQ$`6*qCfET9ie z2&Gi5L2Ed5e(4Om*aXRg<&ndapW-A}(mxGapS52~rg@Y5d$_c`LkF#f{d8}Cn7?aI zlx?g%%h-nr#MyS8v>9j4ES-04k@P)#tSzTb9XN20a+2C*rbS##UiO+G4-IMG{dY-X z-_E$0l=byV-nM%VNLp){%WM@Ca`yL((%Ml;qtn_&n?Dkyi{sV@gi+`mrRGgAZ#rgM zb=^p_g$uz^_K+KR>R3ZDqTSOz(Dwc~gHqLjgU8(H8X2@o3D2vd;Le;;{%$I4%t)~* z)V6Tt`d~8{+9DH}Wsgl$jmx2(I)f)AgPK_T1n&l2J8R=YHdlWBxH@%8nxf@2Z_f@l ze?}>zBz-5$#r56~^C79BUos?OL9RxaKh{`Z-v}2+&U{hQVqii=Xs$^LR`~mOOF(P& zZOdfoXo%FLlac18d3*L8OfGFaeb;UN+?CgaJ9m#?;ot6^QcSbA?;9DX(D%=&MWG~E4>gYgPh>at!3bR!{f?hY zl$($C9er)m!h?kkhDuLSyYaP|JW}kHrQOpLrhQzPi5&T3@!roE38|=B>wjT?YCp?c zvL^Nm7sB>E2VXe2#~B4=s2^K2mYI1f1}*MS9XJq_vaHnbbmYoNvqX|k%5_nDlRBa+ zz*czZlq;zt@u^u^tA%G9&5m+G4_WK+-1sLRP7jhf-$ z!L*&KYE)>1%gJ#kt=c~kToqouD$dbx;vf>`+WtYb@ z7j%Eaw57kRS!EpYY~|Lwl=oZJ<)6MXHGL2!9)T*k-sT10z1P`W8} zlvd33$W5W&pJEDI?rJ)Jl%@Xq-P+pnOXAr~Vhd{rt=MpXsl#pF&|3?WY#qC#H%0)B^8Ii(m;X zgB7p}#CB>OG_ZRb0K;G(m;_=sH3MeB0$2n~U>U4{Rj>xuK?7T-0Wb{2UTP9dff+Ch z7QiA{0?S|ptb#SL4jR}viJjCi*as%T6qo_CU;!+GC9n)uz$#b+>!87FzyKHq`@kfa z0%99A3l_j4SOUvn1+0QKunrp7G!1}Zun&k$)D)NjvtR)%f+esFR=_G)1M8rH9n%01 zTc~|t5=?;^FbfvIB3J^;U675iEgaumV=W8dwJn z%ryqUFxUqsf!ICGfLX8r7Qqr&1}k6{tbujVz*cDh3=z%U}hpf;F%X8n;m%41;}O5=?=a+pwQP9k`zg&fBla8Sl%f1r^st8!D7o z$&9LCN5unG!IDaTg)G@p!682C>Yh~Gu)=DJ5KXEw&5uS^Eml=RObB*W+yV=hReG(z zf;rnNDlb@9QC-o%D$5EcR?<89vCkWdiBXaSXJrL{`F+FNSxIv$EUg%2XKN*W7k=K_ z%3n(r+IRi!Hm#4;qR|zbLIty{On#6vixA_G6-=+Ff#HtESN!DD-uwy%(h>q^T9|28%7}8lCX%_tDT_ZJpR>`JQI9G#LP~QBWGo7yi+DOZu1EZ)tzg z1=1j+ze-GS{%R;M@)p`#wBxe=$6vCO>t<5^9r(HN5Z0!HEWc)xdNXoi;ElhNH{^V;Y9QCYUT>Gtt43iN^o8HZjhGUS zp8AWHVQvb&JX`x{!O75G*FQL0QfObVT^DV{Xn(X4V+6}~VqOH|cu-klD<=7J&xrLG ze_0RZoe>c86m7<`tY|eRdcg;4Y{7D@!gdUmomh_*?Z@EO#)3@hF@+T=tUiA%+L2|M zS&~UPy?@e3qjc9%gBR?{vaD!P#`v1WRkSH9Se1#oh`Wd-{( z49rRvX0h9$n*}SgENithgEBtfxMEH>c_yiPHr*%fvD}s&y|T?2O)glS73|KW16g5x zwAh~cA#nW$%s3qMLTF7ZTCkb& zR0Vm}@{3k%nKM!1F;VTOKc)lU2Xd@TeTM_}k4=MSn{kNz07I1nk0ubsi%s;7i9qEfUb5dR;;Jr}3 zXg8!8rYa9T>U>}$SQ(y+nf(5V$mcTMt0jppQtb+!7jRRm9 z>;scv3e136umBdp5?BT+U=^%^b4@`n7Fau`60$2n~U>U4{Rj>xuL4&=<0Wb{qfk`k0X22|10E=J=EQ1xW3f90n zXt38f0EWRnFbSr>444HAU=b{VWv~KP!5UZx4fYxbz%bYcCczY#0kdEMEP^Gl3|7D@ zSOe>z(>|s9$!NlU_eRNG_daE6PbY6dsYRV^WR+~{Pqso1djUxJGkb|_{2wTvIC4&>BKC|cQ(P&Bl&eMYXK?c2{|ZL%|wP$P4y(Syr^jW3E%1JY^qPX#`6V4JvGZFLHQ>(ey)GgA2;6CH{lW5C%F@5>BsoU#Yu1LC*_M4B1KyW|06$T z9DgYuZT`e$j1a8;gg&+Vll;{3kMS$m{-I!Oxj5@T>HpA>_$4>{Kk{w)m<1qW)6NEv z-ZEl-)mh)&F|mu#@zo*l^AC*-L9is?=YM{cCyWLjOmVb`Xt4?8J;UgGdSr-TW&EAh z0&+g0I%u!)3-&o%%)C>oj@E(fV>yKt>;rkVHq(R9o&tYTX&=GO57(BD3D39{3GH)+ z4Mkf)+8=F#WL=i*1-%Hw@u0HAW>BVB8hFww<4AU5VG+vP_>iC24zfu{g-p1!9@P5f zieUT-7K9ZxgenpugV&5c*x;$%Tsup`Xml4Tth_%K?Fq&F!*cxa`1ZN$aKFw9c7un7Kp5`U`H9~Z3yB{amZ-3 zM3fY<@*!|fk|k5t$EiJHmIdRzu$W9TgM5~rk6P>!8Ia;W<$jb+!8WmMok$6EP|^pY zacv8~WS_ERrD%^Q#j>)bf~6w*RGKcq>7%lKid_zDbhyM~ah#;m^Pv&>#lTh3Zn1Ko zk|9WJ7n$#9y_nc9I{hf)Rj^8pbUD@LabRS2zVMN39gj;bJ?zLMt~3r1hGXQaPm zruTm|U1HOy^(9t~s_YU=Mzw@ZuE{UhHX?ro>qgn9Ozj($pL^nW?bF%d;AA4Kw+Yu@ z$rs%}9_ZyF&{y8ySqr)tkd>mnqtsu#pZn^~=F!?GYpKVHtlg_Py7eEfo#kB9-yhxh zqq!67$K?L$^7l`q7LZw1w1Gqzq(P|_BvYby@KM+QQhhD9kT%5(k(_&HXjr z|G6&OL`r^Y73qe=KR-l$6ZjYI_oNoBBTWPtmPk+ibTV9*@ApmwLVo%FFH30L%L`OR zTglMgk_g0o%If>Mx0%%PA^@R&n{qe*q}sK&oGjZ;%JYLrfVZ9$5lHPPb$kbVlJ*yE zD0RL%TTxo;%KMc6>pg#2d&;e9PkD>)JpSk!+4gLtA%Ege{L$&KyhJq;)Sj}zslngz zYw-8`8vNZpNI%lx@ANhJ`+N<2%r&r+Z18vZ8vOmeM%LTgz$UW6-`Q*6H?G0o)oWn? z*x>KzHTe5^4gPLk16#)izTg`CeY^&L7q5X`V}rkg*WmBpHTb)C4fX~b{GGc7f8Vab z-?eM757^-E*fse3bq##BHQ4iO@OSDO{C&Cxf0wSo{$7K>L)X9$TZ6wl*I+NN!QYu{ z@b~2!{9U;Q`*sa{t2OxhaSi@%T!THj27f1xe)l){yKoKm;~M-OxCVd!t&yDvYhdfg z8vK2?20qZ}KX?he3El&Zt@Ixp2G4*+@CJAn^xi`M!NcG^gy9ek$m;uj&*T6-v4hHX}|KKQC0I!0#!G~aA zC;bOUz;j>;yag_U+y6TK2akbM;1#d}-Ur(U=|7kPbKopE57xleUGyJ(2F!w&z?Eh+e=r5+ zz*%q}tbwif(0}lmd$6Yzbuj;U2=l5OvOEcvGN0#P`&yp=+n4g()1b;-$Q{kb#)S(T z8_geXYn~|WMBAG*?F8F8`N*Kq+qTTK3`J$2gl}%G)9)t435F!DL6gVKPE+7 z5MH^z=r=x)q%;K*CG8)Kjqzo}Sz1f@(;xm&8%|W4TR0f;;Qe>qWj=;N;UuD5Hhy^F zop&xUJ`xHn^aAo*Huv_AKB2)qHpo;Ye29+ebdB}*&&wav)u8i5EVoN&?!DLjsrnBt zSz0R}=G~_Li9cyZ8fBH+HB)insj ze##tMovcC?%E(e&o2AK4=1I>J5cU0%zHwybVg5LV^gP8P zlO&fb^R8D|sr`4)m=D9h`;R~Cl3Gsc?dlhv`onL2^Rs_1$y6T3NP3mzw25j(Vvp3H zn9P=FB~Js66-!ykej%N!X|v0wL7UxuC)1{sxLGB>s$w<%%G0!!4I5&$^4{zVRh(rG{5)88&Pm{c zaWHN^t$ZH5-{!PGk+Jds&41$?fBYW_f81>P`h4F*eKtOfHo?{5X#zXVHIkH1ri88# zd}QXQr_;HxyfAHZPiQq9o(Qk5zB1oGl^^rS>*~sVR%mlVGi{j(jia{qd{!zPb4l8c zw9VQY>zC`hZ;hO-lryqKBlHhCJ}sx4He2B7#y{J%(9q|jPo6mOe~k^WcWB9U z3Ccp5^}C9k0=B7ifs@M41v8NpF8)z?< zYx@7*U5>_Yel$JNd$0UNJ=#xy{{Q@AN8?Y;@uo%hKY8K8AIqOtxNzaOd?o^9`yhEp z(R&j%FF7#xj@U89j&*Pgm zd9jalS;iY|7~NP?F;*iqf$$C_B3x)BFJ5wW#~pW+X}my`XlwWVJng)XgmWHZK2lg& znpmI-gA?w{acq3k{_N;yOW!Szi(L2`{238a2}g&zMfSX@`WnSUV;+&De@5! zk|*)H`(Qfnu@2w2km5xst}suM2b%f__iAGz55Db{b0DkH;r;=j?j0oi#uK^)JNm>o ze7izREwX7-Ss&6RPaDpvd1OC{5E6@#&ijxEyw=s>T`wCOf9Y#q{p#0V8XpTa`?HYt-*NxZ3rFw2BeuC|EWFYaBA&(lQ-oX+bW$zqkFhB}rFb42 zf8%Rkd*k)5wQDnd@BCiLYek!9xngBZ0uo54(iNR6jUBtFOLrgr<6rw{zeGG-8>+;^ zt&1oAX?WbyA(Vra>S7<;2-}L6WiyQO?1va7&sv$)fip^a-hpVj0axclMv^sL?{47e}JIN| zUJgTZJk4kqZI*|YBTg7y^?K48V?t0tAt?_rAEEmiq+OPlG}{pg4ZI5X0;mcajj1;c zw+NAklyi`78XPy4KoiC}@bQ(!1m)3zkEfBjbtPS+BcG1@evk$g6pG~`<|EP+3GHP=enGV` z79UMo+H+ldGQM&@JYN5h?%I+(j=HM++JVNapt!!ShsNn2_#AUvC6SLbOnAxJg4aM! z|Bxv88azqHG|kB!elDc6Myl6^@QJjdg8m}WKjdgdDUHb3nEW6aiaC;$DCAW|5?jTd zzj8Z8zNf}s>4u%+4Lijfc8WLb6l?7i9}Ho>N=-=`c8agRp673TIoK(Bg^1E~g|Jup zqd(f%_{N_EJH=L-?1?`YyRZ4to$l*d%EBS=P*#0AN9T(qlALRvJM0{V!>_^V*X$2e z_`H-;pYjos0!>Py#cKB}rL}}^>=f@JwB5WgHa~oaP;aOBk&l}7e_{^rJLk@$I$fiE zee-yGXcKmA+s1zlmyD!5$js@35At8aMBau?)_3}$;hlfJbNHdtp(>&Euwv>rvuviA zH7(O03x5wr61n?Z@DzPiBj18jW2nsM`LlBrzB|iygX%E$kc40OsDx??KH(eMu?Jq; z`+Mxq1GJ%&P8zQe2y*$wiu^fbW;|ElDm!B~LEdjo zBTOQrVlk17VoKE&MDs!^hpK$i&=wCJJa}*v>3N7nR!#Nmj~utZW%Dz;|3---$i`0U zxNXOtPd@lyLB_QIHVD$IQt66I{VP4Pl=)`5B3qO6dusWMB*i~9Q6k@c8#?2*b{#ij znuK2IqFFLhe7ji_>IEz**uJ_=o4ogdp`oNeA&Nfye{sVBOkr>E|e=|g$k03d0B#U^?U}0goZ}d)P(|f zBh-EjrC$%~q5b$+Hm{zWdfaD+Nn>NwDrsMpP|3w!3L!TNCKbVMumk^#hY<%o?S;a%r=471p@L=2bPx#2p zkB`^P>B$LUBw@mRBH3D_%8z~o+Fn)@n(Y^^T8t?x<_e`1mM;STkRuzI|xd9^Wa>ZTlrOatpidw)P9& zM)=d8K79D`ajUCpoMF<(eTTK!zCBWrwYnV*`qceZvGy{*)1GgrNH zXay8mTlu+(du=B*XtE4Z91EWO1~pOH`2j zEw{FH`HHBoZC!Aj)7KCVk$X$b&sW>JDB)E{_23vw&u5PIw^ZU1l5yVDj^-a8nuY_R z9RcYgKgeSHd1qYwynCaiDt02v657f$g~&F&P{qKdL8BvGH$JerO%`n3I7?e3@DS9N z)qJPt!(I_W@o3Z6*W0emn(GejXq1IA(?6_NL3Zy$4}Gd4xg|-utvY!l%}VcsIMf-H zy$izKDNTs;$A9!$!bD>{q_>OEw|4IZDXVtHLpnE~1L2}wr2YD`7a1GqcBKPN&0fmj zUE||d^?%&n$&H~qW!aCu@?-h4u0!Mh{lEMlOLYZ1#k~hlpZ=}W8d5v6bSk8%-s9xq zxWp%13WwjiQp1Nq?&divnfJQ_^HRi?gdW?D5PxIQ>z@ZVZK@J``2&$9#x0jMLKA3j zMIypQo5-!V-rAAIiq`J?dG1yBY@g@Ptu(pMlJk5V#8yg2_~U;tiJzM^s92;45=Vqo zf>QaB-4@$UFlv1*D!5xJbICF+Y4Rd32Ygt@L-^heY6$_qew5!(I8yXJ3B# z?3dHqvWie>x;#kWDu))=JoD4fzFT)6IDKF@o?w0OEc}^tp2gcgJo|EOZ=;T2^ua$k zd-e~$a<*NY>3iq*O4((rdkpi9VK(H&sAf;0b6vW*;UE9nSDJ{2uf5{z*2O3PDKk=$ z&4aN%*3|A}Te-I4W!Vg)JVVw#t3UhfzyJ4N`O25R^e?{n&!2UT$;ZcYqSz_A1Wxko zhXkb)7BgK;Wk+PFkdw!&o-UrlRaQH^=fbh$vnYMnvKW&G>p7)s|8AxE zMl@F}9k0648@Jpl+D8NAv8=|Ns_#Z8i1-Zin~H=ImvBknJML%FZNI--{rqf-x1NR? zyLl!_`d(cZe7fA*@l)EC4}JHct)@!u-EH}}DMvzDW-A?M&9BqFqMm#R1xpcYaP57N zpD#ifjY_=8NZ+eE?#cM!sdz_oa+tJdQ?Z746qooK}L9?~||)g|L2L^U)rh7#HiGG&7bs^Md^&b}XF(vGa-zMs_9N&i4& zEv|XS)?ZLLW737;3Ml|SKU4v+(ZS52J-qRRu-z#{Z&;!G3h#Esh#5g{_(%8KgC`-)>+AoB_)~d?_}1@xcbBz$vf<-UjPn_f6(U z@i^y2@FrLT+wqmS4;%ptKzt~!f*$-N4uivB7Muku;4%>Zi4$N3oB_+=UC_Ws;(cHW zi0{ND@HSWnyYZ1Y366tB@FozyiQDmyxDOlw3*a@d3VQI3I1I#R;w(4|R={O2fN#VJ zFayp2@t626Xy6m^J}?DNfhF)ZSO?-OaS|K{i{MSL2Dal5aUVDW#82XDU={S>3vn16 z2D9KSSOMZAaR6V46JQ3M0n6ZB(7@L4J|O-PPk|-yHdqI{@q;)Cj)O%Yz7f~Jc6=c2 z14qCDcnz$A9{eAQU&O;;7Muku;4&D%_u&MX0pb&J8N3S`_&vN2Oo3Bi3A_!&AL4HO z9!`SeU=h3t*1&dr9_|C;3vmIw23A22{tk!1VK58M0`Y@*84Td>a01MLGhi9K3mW)3 z6d#CF;1pN_Z-aHP8()W$;5ZQfhi`&4upK{#`@j*f0A2&DKztt#gTr7JoCPc3G8n+W z;RF!BhiAYtco#JAZFnD;0;j+d5TA$ZVE4~aKR6B+!JA+WY`>fO!4a?kUIVM3=WkL! zI1FZi_&Qtxm%+e2)DLFB8L$lA1&yDlelP`2fhF)ZSO>d@sUI8%i{MSL2Dbk#>IX-_ z0(cFqf}W34KREnx{3(h$@W%L$6Z}Rt?WatRM17gir%rJ|7u(f z(>xts$y%H%qSQ+?!qglircM~ODo7(Qya9V3izO$E#xhdk21EQciZ900(PEiQtDx${ zxt}E!j>1PmV#rwGDY4mfh3cIyLS)Kq0TuYl<9Y^&Ou|QJ@p6Wmho+LaMIY> zOCx1;s;z7|Doc0e`yt)%>y4~jvgII<;OX>RJWG;e9-|iX-|AI3Z7fq)I&Orh%(K#Y zV+9@Gj}VehgtiqqRylEmU2&buSIyOq9Hr(|X2eLc=*&^%rKK04G4+u!e)?H;J6aK` zc6r5gp%lN4>fkZS%83hHsPymXC`4R5U3X3%p;kYSJ6at*%IJ~pI7)9L>$+I*_gLrf z5eC8MqZFuPm}QlY9}A;mXnRUS@B|aew_bs3A&%)2U9t*uuUPh5SLg+S?KN`)9E}_mc?;kR85NTve#li8L z*EJ5yP4UA=%QHepmL+~79}oT2%px5(ncyqZPq9#VKK?BIrA9mYL}iuP(WM!Md3G4>vojw9>M$hUYGQ8ehsvp=n|7sBI+rBtlJ=>u$tb5vbRW8FBg zq*UU=vYiu4s4D$fMj>vk-KDgV{Ofatx0Krz5Hp0 zCv*ix=sG&Lfp+ueth3`w=%n6O2MMvGxvSULDIKnrQ|RaYm-nu$o=W|YG(W#}{S~?} zesbZ1fn4CxhgfgdvA>3s9#?9*BuW5#juG;$t8{+Qd6ypWOb63>|3ILH)! zh>C_FEXGQj78_@Dq5y*)lCnh#Nl|_}BUSv2!j7%Z8HAtamFu`RQh0-5;TtZ=+3EHy-i=t{Xy*E!#$5pb(=z**!Md~kMto=oK>al{Ef z7pPN$Qw4hRBj`!=Y-AaJ8N>bZ@#v5<^3$2?#wVvR>>zWlPW)~nOyR;s@^S*#t^PT+ zVHK2`)M>vsl$#H+7|CNa#5O`KM)DXX=IF#~MTYsS16qFm1%uUOWvo$c+lO1`Fg2IQo=iP3f$K?&gy`6{qzAiSayl`~u?TP3l zR4H|+efzrnJ;m`&ZqbFBk_*OKo{KxZ_c))S|IZJ;|Lt#I@Wq=IUPH-~=VBzV^|_et z_@Z*IbRG(glR+ij+~xZWeL&_#y~O>4EYF2Ui>P+<+%A7|%)k58$$`C7xVwn9*w<*& zmb)~S0Y_Gnze4+zq)aCinUZ;SPH%{^BDgw2rn{C?;$QTMRtKXxI7;2E9Gu z8CElLt*-zg!cMrs_s8Ix@|Yiaj0t z2__6)wAf$QNXJf3PU?gHlf+zeiU;cpy@`*WRbB4t zJ}8_;lvM*J)zDq8?C6s#oH`mwkxX@N*Ao_A2m1MyG_5nO zm$X&~sMU1Rhj}>&BNwXph57JAa(0AilJe?;pQjUf2<0pI$$g&?^{x=-TEdPR<@wMn zKzA*tJc;|LG)+RiTva+qt?ci0@5A|qaCY4d`cJZ4+k*a+G*6eyg$rH>rt9~5>Ae0E zmer0^t!`hZoLilzR=1Bi>*zpL__bSa(ih41p~8`BsMyoUS>&|nOf`@d8K#A*;)$)Y zWcU1)+bgSI)f@K8*lXUfSH5Ade8XP3#$Nfs80M>Vl}k%}tLA|&+!Uhvn~(lggS~QA zL5EpdtCLlyPK(W`cC-plpHJcw$jcFfAoqstGc7U!&Df9gUY3VuxMos{C4)rC4It#D1hZ*S+Q6*7Dz1ZS_2lXFo47Qi6!+iEb#UG)r79h`me(6}l}=nM=yXSV zysi`0)+%SNuxsX)?T_spx%DEl}g^Rr;MfuIleqy-XDyzPhn-bkf_j8SUf2?`xgoSBeMUul3GfrJ`;ezzQ90 zG-nxd(K$dKzUOO4-C0PJlJ!G`A3$@yi^HX)P&q34**hf|EoUaziEr4_{VgFPD*U_) z!n)o-$6o9psQ<9n`-!b}6idDO!S)>NI`B*U#di9jIQWdM6GgkfxnprC3Rgz)plkrv zI**k?HnH{7o6^MCPbgIt~+h$#>}s5!Lh8U z3kzrkSI)-IedgVUmn6?2f6l*bdj|;6!O!jsbgF!j9eQ0sIas1p5Sbt z!!6NzYR5V~E);U_uXR{U8+F3Q$5W@ZS@nFV@5$S09oNFo`>2#|)alcCM6aU*TlghD zY}-4rm9g%|k*)BHzHGO&cUtvR__LKZw9~5H`?Xar9UY)RCG%!7SnuFg7>=3>tko}~ z3WB2(ZAJTotP%8JEkFF-2FIs$av-&YdTadIrTwkbLn3q?om^38PY-`Fx|0K3=%n6m z9Hsa=MeN(lmGrhdXShmd%e>ZUiqOe?NT|~XDZe@TB-iaiG9R1T(MWnX4swM~i97_>vh3(U7iP}wtqf0l zC%Vunfj>wi+63p0S1Cu@&}3P+{&bZ=wNqVv8RSml>cGG1P`zVa2vdi+vhZBl`V(EL zd*4cV)-!Us+%yk#McCev9L0k#T^Z>bc9E`r-z=+gyc-^y^H@WT^WD^5S^V!-Ip8f# zoAT}GgcmCFz}xDGx4=&vsdo81naayuv3D&ouM6Z{H-h+Q4fo3js~z*gyBpuU(u58& z7h2hkk6t0}-cPTx?zCSV>aTke4@5+&=<<{xI^L3TF60z1T7CCA2`G~3RkZ_Oqfg1Z zapEiV)sB2i{JL@G3$KE_q>ZVFdl{^gzlvh5NxOIYdzV4Q;0@A+2%nxaZUH+cpYN)+M8x3RK&3jMkJNQ}O{=C9_FnRJ^+{uBk zusAIas9T%}M;R2Fo-W^K=mP`Xc|SsUcJtgWe|pfr`_#Sn*gHxW`+Bs_->B!L5pBYp z2!S5z-+zNl3EwunB-uN(qvbflx+ZlA-_acNsG{H|wTubX{LlNafA{kS-ZGQyTwiwPzw^5$DF2h?jc;~na? zJ6oswTetV~)K4*gXfd|C9CNR8wGp4auM$kRL)iWJbfoR zUvHC9wmGR^zcLxlhp~5JENzd$RV;Mf@MC^iYr8tGH}z*+a%h~zT65oD+bbEfzjEjk z+nl@E*BkA!ABlhC+TTB z`5MyaVxQLL+|9n86!ki=PX7sAH;#~%PR36+ zezBC7r$h~P%*eA|FmE;QDe|P~eYMv)N|vgwdmpZ%eJtgWD(zDZ7*eVuUbofhKPg#9 zm)1M&w!}KkFVj_WqU_%TQf~4Sh;6ZT;@6EcW$8zSL*-DhNh{EB_zt zP=50B$A0tpuYUG(zcF;rCx3qEzL9%>Vd%iGKJ}}=@%ZtfM?e3C&;8oxpBb9^+&|{z zTT?i1%f!F(tv(I^$~R}XXCpUfH{;4N8|vYyIm=#g8=>l7`DWZK-<-Vy-Uipe@JDXW zJ_AmHSHUXi?Y$Y_$~R|^fd%k7co%HF>E>)7I10{yH^3UWz3=910z3^C!Fg~Q41V z!3=m2yb0b116yy-J_U}0m%s}65bVC?=ImiG3tj{RdOvIq({I2Q+rme{cjm50=4uVEf;o|6m5Z2;Kzm zgMmHt9~=iSffeu}*!^?#AIySRz}w&&7`~hSgHzyDunKzrCjAGGfd%k7co%HFhyH`3 z;0$;JtbyBqp8kWU!6G;hE`z~g`VXD~XTe)w9o+r5=s%bPOW-2t`8fRtQ{Xx98h8gZ z{u}xaj)3REGI$Sc{{;O9GvGz=CU_qV{I~QU90xCf74RY0JwpFS@UJZDV17CYVZ+Ir zf!f(?m9gpO_r6Ece|oFgoDMgKycsz(^FTYl@uMGMe|zb_VmFx3UJ4=7dSA;B7W^6K zR(;@Uyv;#!iBz&6FOsUy<^HE=Mah}65f`ZWB&pi*vhpo+hQZcdyLN5mTo;`E@y36p z(~N@)VFU^h&u8nMx8B(`-ygmIqb~T~A|BI5pHP==!D(OCZ0h5YKI{9+<(nKGbaBYM zk$m0G*b;K+nhCA=<^d9dQ|3%5Baw@VoOxM$Jn&FjcgSOzYUj+<4Gm>;5QFp2-0Gk? zYhEf4N|8-B?V8`1-*wZbSRP+pVIrnOa`anVbkv;XM&eF-fwLA1;;XsEZ;R3U9I5e9sb=SQkBZK$L2h?}mvT4)3yIgWEXPdR+W0B^YjA=AE7=ND-`c`t@ z?E02NC(saRwZT4>bDqRq)PL63U+KiTwMftAO&c4VHtVxV$}O*0Zf%@7BM;5AsKlK* z3d*dI-z;45i`2c-8ynO2h9@VNoi{ICYUTynEn8XgV`KC48ykgmE^=CY=~9wvzMWAJ zTel>sux#del5m~TFuv*^rLM4wV;w;uPpCJ-A<32_9V&NYdHe3$&d&izNfiI$2w%H_(iL2OrLL3A{2 zPH4V<@e#K}96WDsL*$ZiRn@y$1Ff#}4QBL@<05XO#p7d6W)sLc25B_%uuYKB-T zBGjE5L80yhJ#w#VMa(6Jht174ZzChq(>^QCn@^FmxEIs!p^r^Z2Nh+4fGkMJ19|V( z!3TPM7z@d1r0Fk&?=;?>)zxS0VV-bIX=(H=qSMQ5$W`4*n9 z^<_d5M+-S5Ei&o&3TbJMjaNEv#!*Sjd|@pi4-K>DE%($F#<&^siG+&+?X)Ke**-zf zuDzeFY;UOz)>7AoY0pN9!ojEV%o#(JU!Pq#-^9+g2EHN3b%P6+xKH@t)8v6bHI({X zj`}Pasa&Sng05k>1U>sy;b`6qCFWBLq)ngNULHJs z?nyH*VZt@?ZP9v4pYr{?yTT)I?zx(18f(wj1}#*lw7Fj9O`ocKN0ebveuW?@A(wg+ z46`gL5}JA}AFNMyj5;;8HkrXpspMJt&O5hm4ew7%D*{nq?KoVx@Xnw9FfNyrZ*$xi zU_~m+JMX+#w2BMVoLe-{qwF-B>SU+r#5#+#zOAdgQRn9$@Ua z%coYKQ+L+YKXmz)!`B{m>{!cp%ho&Zovx}d3PDw_rL|v0JaDxyR-H43*pA6$j}`Kn z1q(h^NW890^si()+T4@s*{_W#XPRvNi*sVMJQYdM8?C1J+KX+FEa5BKFVboOX#juHS_dl?I{{#2m>-M0nPT&71MxlOrPVCSI;j!^;d!fD%oaQO#+&>|0Mio{8^iJMPz z0^dAMMF*qQ(LmE_s?(HtagMFE*50~xA)MyD1}?QBw`!VpQa{Fwnt8yE?~snlh{8o! z!W!`$s?U3Q-{g%`4!!+*i!_0uChvVRzCTAgMyp5`v*fkZ26H1ON{r#s;8V?CvaZmP zdy9Kljx;w?-o%QV#hybOfehI)5cTh|Mb@Dpk!E^PisSqEj$(s_KvYkOP%e?Rid06z zr_#uV!EeIi>MyCHa*S%)@LIrnoQvrzW2^EvRg4S@=yPVKmS3( z*F~Gt(@me6`r*D%bX@E<lg*fF<9Y=Ugf{XIo!k6do45e3kF3Dl)>&~0LhO(Ubbk4aSjU+9j0~Uh( zO0K7jdM7PY8|Mkj7}}lK-P`g!;c0SiT;zewwLtIPMh|%feRz)R;$52Z{;!$EpK+*? z5fh2$*t7<4EXdBZCd&Y5q2K?y zl*_=Stz5b_#2vtweq$--I!;)iNr&D#QgAs{QgL>3ZG^bq#g7ZzNTW z(N+v-CUginn+U1r&*Dv^8Gh?d{`Vo@E@ZY4l&`zLm1t2r1=7%l>v{Gpj9K7N&G&lubZvL1FmDCM+BXhP z&V(>sZ+RrnJ!zt!I`cJgw4H}Iz9zqsqp@z^2Fp+7SGBa)zd=zojj(joPPrX|4)5Id z^Rc~MT!;?K)Ag1I?u=B|d#~1pv?anOjxMoF}8wAS3X=e`NrvMU$PYq)U5Cs(&YIQsXYPJDG8XSWE$jxza&ItK2&@DF_( zTvJO8wmq(qUHZ5_?P;sqE4kh7>AJtotAiH%mTLvp5{pa1=o385KH*n~lIS7aIZOAq zsDmRd@{?YKc)EwzLEbCw-O5IqOQhHchS+J~P?gZ=vUCMP#@ICW`dpRog%DGq$k(K- z^B!LLoxv(Y1!uz2f~DE9_1#I*ecgG}sO%VY@N}B$xyE~oG*#tYJD8>h z(q@|K^?|~;7EImd&*KG&^BZFsDq>a{i$gSZ8&y} zKP||^)V)Ek`&x4vlKTrilb|X%>R(AF)rFK8mR<7|9n3mT^{=qXjcuN?%|r*Q1`hf+ zAuTm{Oa^#NtY=adzO}{mmQu8hC*Lge{FQ&NfPZytr*C|(aN~OgzE8OEy~2&}721EV zfYEvg;hmPJx+HiVHa4Dr?Q5j}+n4e@+4Rao`SIM7W@Gak7cO8t-TYzty@J=nqBkQg zexv@0`kNlxRj}{PO}(as!hg%wU1RelQb~t-u4jK>tAFd3Eq@2re`m`U?&E0?-g%OM zdp}`YMXSw7X|-54zazL06t3@k1$_Dhdz++zX*BSC|NZy7_+H_r43~-G2Z|8=yH|g& zuxm)khIVb)GQVX@s5IBqoa<&t%kas*O`zeDPj5n+5V>Ueme_w!{9x{B6Cn#}Ea&!4e zOX4_CxskY&UNB=8)FG4Qw>yp<(6HZldny^T7+mV$T|+}Vci%<0bu0c>gHfI@RCyK& zZgJe6A?yTSAoNYTmOiWHN+Cy!5ec-~U=n=DeI%Z(PjW1cnIkC|>Dk1t^`@536VY-N(USd| z%o+RKCuJiCAG+6^jNiI__gy|Y4gu7GSbRur@4s!gc+qGPb?CU`j2j0X1<$PG86R|g zrl9)pOI=Tn=jtuy+H=d6THk=iX6V)iI%uuYKB-TBGfew zJtB2?f*$FsS`l+KR^=Q%&Ra?>w-s~ESDZH{%!Nq3rT?})(kl(A-iai+kLvA8?puAV z{G^A%)Y15}xH#k`eNYT=3$kORNeL-f={;CzVh}P3dcT@ewh7-{^D-s3s2ugaIVaLv z90#Q+(ZUydKU*2mgOm^{b>X1nfQPj*Un4G-F{<&QU2sS}y9t$r0&Av0uHC7S)p8MO zJISPtZ^@s0o-!<4=+q|jYlKQtpz{oky;1pNdE8_iWS;3>p>vFZFA~no+b0hkBpmpp z4V>lV<4qZH`+LEj*p07yjPa?W{A2K`DhfE75+13e6(}JQdQZvUaMsxs%A)Le8h@4& zPQ;Y9#8;RSB42ChoYKZMln^9Zsz5vLc@$`UqHpgnR<^g)23NVAB44HQ2hUh;Dj|pv z*MwkW@gQD3f&;N;WeKOC%;);JC&_(8&f&r})HORL3Gqlf{m3Je2M(0_<|W6HeJQze z4It)I{Rr6Er?!^|Pwy$cJUr+oIi?F`ys}ur_u$W|y0mo9RZF;1UUJn>{kYM|G2xs0 zROLHVp?{SiDZ#bg1j8hI4ox2^oNWZ{7@rAZYttSo)m?<`+qcJESfwrSlnclAz=6p} z9+@8Z*)CO2%_LP=_V;h!ewSz!7t)$ze0+Rp=+;{s4eOq#m4_D}k7rSNt+%4WScOu9 z?iEW<9bN-EyR(n28T5Y4UY-#O@@e~Wf0th*Zd8Io|Y9)xQCb%{Ny3zq1@XHT zy+X_TMdX|1#t}AFH$qCVBm#=xa9QuadRM>x>tAyyfY?gfQbNl|2- zlH}<{DJ~lpr3RNMlFPDwuq?XbX=vn_PJ|wOD(5_jyJ)19B1yiZbtlbGJ#uw?od3x? zWWqKfK62(uzaqO8Lqq@I@R@(1#S4c#*)K``@Spyz0-2lRgfZDF>H4R+inQgc)E|E> zUncE(o~u(i8yYIsYH}9Wv6nDC&wIO0PgRi0Oa?a9>zjHb?^r_8cpu!7PFAFAjR|SJ z%*HZ(B8c(Q#qyRENw_YVH4feU&JgRGkI^KSC-E4qrfo(7iP?Lhn~_i=j;zFdiK}=2 z+@3vq{FOi3`;fm%&)$!JS_;O_ z3o;z!S8_dN9J91cZJZ}8<7s!|PWLu>AoFeLbT7P~cWLg%L%Z~Lv1@2NY4CV%okRJA z)Pn3-vJ61TPa|@NmAx>3PV-9f!LEN7;c3JPu)QA#`OWf#XA<8v^zb8x4jp>r;nL%d z8_9&yo)1rIM*8d+UnNfTVW4Rx7v*U)2+ zJo4D1haai$n~Yhy5wokzC%xW^LhJNnWlAr4Rd)bd`q(rwcj7r&NPVbngKhGK_l6F% zQcaXgtCV9~xpXtnA9s|Pr`M?{%*S>7uIHH0InS={Hx1PaaB0x}Nt!T|-^&8%b?r zv~`Sgr*|9~vu@?V*73L#38}?GoZ&q8X-ecCHp+VnSwR}yJ7Jgmzfm6P;JB|XRO=J; zd<##9K8$bpwxzAjo1Ta9bz6h;o=t&oxR94IezoNncL|nM8MNQAR4Out1wzT9&z{>S<57x5T=LHLrvA5^Gn< zo6Y#%Qr0Eb63^Av(1`;R8p0nl$O>&3_tcW=--kN!)pcy&E0pBHkA>%IKD`gRziV*t z7kzr3HX`?_JQ)&(cG>2NPxU;@z00z0_jHwSm-=`A1V0Q-_|@Ut;Lp+qAGdSV!D)Jl z$YojoOyWDpd)N1FVI4KFt4L2#1E;BD*!U9o+J~qvUD%R0pT&)qLZ6 zlNLsLqmI`SYug6N%;gY6)WI>WXpR%p{n*GH*UO|c;X$LN_B(LOjYl4t5<>_7RC}+H zNf@&x{6n(TRg_1`3bc73B;s{&)W4D|95giL%7+fLLH`Op7o&HfknbAxrNfzqgt$hi zNmX#vzmjYXkfRd011!7dD>|6(6$<)S*w{#z$$3mMtLv;7QqTw z2g5&0d9VPM!5SF2o$_E7EP++f_-m90Ghh*{fORmugYsYjEQ2*La0lhVELZ}opfNys zFas9B3RnljcTyfKfMu`-26j>&%z`Db3L1Z%@?Zumf)%h1hH-d51s1?ESOWvQC=X`A z5?BR|ArC`UQb|RnMOKq~ zD47=TsA{UJX-Zoeg{C{MxM(!g@@&^)cd}*_Rre;oXa2C zoxuRwX%$Il$|H zO`ilk;2ywfz{`LI!0ulFJ>WQC7Vs`$+b+-p9tNBPybjp(i=YSG12_$M8L$A@y&Lp^ z3fOCM?0h>MrdcZw^(}0%&3xM6f40^zEz%1Zhz_w3=9`G>W9N=}p zre6U);2ywfz{`LI!0sW?1C9e`0q+8~-2i&P!+>*u*8!Vu1U=v$z-hqCfCa$rJ)j31 z2h0NA1#J5a=s$z=6{I_u;fGkk&1esSYdgfz(+=@CWTE`?KQD30!YgIj8Vm7dYiQ`1 zXYgqmp;d->e7JD=opoxk~;cUH&0 zS2mps$1DVq?et{HB0;+@&$tL@`>=Yb6VPzG}w3$L9~<7mxPV|Lp*e0sK4eXOOsR2q~QzMW;P_k z)3yQlKfYD@Z~b_d0E?KLtEi722>nU@ml8#R@0QVNSw{M;1o|KJb2c75Te~ca!p5!L zAIm@8y}X{2SaMC08d^;PZGP*FkjXWmkfJSQa`o}(lJ}wk>_zv(24-@s%?sCTtG3}I zU%pAt57>I$o*O(L3@@cG8jzGB9{YM?mygZZuM%6j#GSm64rTCRbgP7GwH&^bj`OeX zhD|8k0T8P=0Rk-JArL$RVfl?Kod*0w{&LL@$+Y}7+oi+vH)eu;d15^-vF(v+?j#9Y zvDBp7sMWR=OOx!DpCqIKdp<-=iS--f;FIyo@9JZ|_^07;6BKbQDd&6gLX?m*!2ODbga39KAF_`6MWseJ81ReWqbG*ehj?%_JIl;r*a|M9H{8Z${w#<{ZFEN2#(1Zw z-fC=GFxvqiQ?4Jsaq&;R=n&sD9Ts?nc=Gki{#d^OA@>Xo$=O{vnd@U8%hNQ> z9E6nQP>b~|@kg-?wF0g6Sevo&xnJ_1MkVcrAL)*xyL%RuZR`U#gppK z(o)w}Wgr7Smj_10@@aWgxrg#G_77F!=Ar3&l%Xw*AL|t{gvO)mMkQ<#5S=4oTOX30 z(|8z$S;znnud}tiu#u^hQ73zL%$*)Hx@N(vi_u$MewnhC@*#d&{)|x<_-FPL`HRn^ zuh~9PtImlp@QDXyv_c#`?IaWfW8^}!G3%>Ll|iLsV#%O5?t#g7V%2r~Xt@_5R0bbC z)6(Pt#}=h7LVf2*s{Jd?CJ*M-SELaH@u7EDS~`>JHYB z8Z0|Wz!Dq=4RvXLqd~U=F%Le73$odP6~4i^_JU#5wnd5%J_W9A@hy8{0j;<`kjV%P z3;5b0RO?~A#Rb!d!alBu!RX8TAD`m$#V~ZXQ!J0dd)o%Q-{6zZNAuox0e{yZcAjjt zF3bN=zgg2q**pBu?@BnH!g25Kym8T^*n9h#XWAjWZ{j@MOT57SUWivuDRVpfdky1t zx`f#Q7EY}zLLmB-?@LSW9x&9C@@L)FJztPpXo~QgtT$5oOvj^W&n-}?qftf|t02bF z*Y@ZQIXEFEB7S{H^X4zfVnS;WKq@stF*mLn^6Rfa`1ingyU;H65U2r&HF2I}TlWb502wg0MpMiIt7 zVjR%vtXFVW zB=aTAm`pJ=Mo>*Dt5IX)|K(fX`qqE>&j08E^tS)PMh zPwqM>>{y;f!q|rf*_kL(lHLG`$4L_qB5yV%@r`L-;Ke|A|}Xd0+6nU3(%qOhg-jkMeh@R2Dwq z@9Vt>L&r+b*V-O6qe*_t7P&~4a}i@GhSfd~vOMeTC$;B-vc&mkWoJV^+9`tKr)<-P z70+Rt@wyaBRp090312YTHPe|Q^_(T%$ZZGBQcu{pozF3oIB}%Zba;$wgPq1Z{{E(s zxVF_-=*@)?kmp#uxgkF@oAnCO4|=;CC>gFOPx@E=`>8?SvKnevfNWAXfp;?6I2;NME)*T8@I{=s#(Mjt)cMEBLd zaN(sOw@flzhIqA4oLZ$X9EA9`;`=Tl#M4776S}P0SUgJCCYm_GtI2Q4)SB`f!+SGs zo&k?3{{kglI0BPjvI*=>f5`YYFEvi{4ECabY%{7m;+bnBBjlkbzcOhu{T{`^*8B*N zNC#(dl{_TzJp4pP02#DnQVD{VUScGCj24&albi`c<3pa%m;_s|}cMmPoShBmZs*=d4`)Zt3cGOZaXD-zi=FZVBJ*T>WmT(|1e$ zGflb2ez#2G%h0vqu$AHu{}8JnUwfh`%t9hoO`{txBL2+f%YXG(_~N0B6G3L;xWP{b zf=l}88-9l$NbozPL*G5>>G#yqlNL%_$j0OLSw!zjj^CKl?=ElNey9MpoeGQrgVzgwz&w$zB< zExAW{LFPdv2VgmRc8t{riUaTR@g>@D%x%u4vrN3+P4hZ~hsY&qma= zv7v$(G@pW31~SJ__o^qjphU$54t_pO6Gb^F$7gMfAFB3xwIrK%Z31%rF zy}AUqYeea;rc6g$3!cKob1e7z3{32{7Dhp(sG$Xr*X8pHcgM8EOL_~m!^GUFW@WBvGI4~t1osWMDWkqUnqQ}YvJ z#^Jn9WgrGV{W7>GJCQ&i;=5bG53I4@jEQVS<;540bSza=%fD0%VIR~&oR05q1UBVU zbifBDQnU(eeU;SS5h+NfEM8#9xg) z%NEA|9GJk#mLYTt@#2x3T~*%f0~{xv%jfV-BHoe3Iw&Iwd@1N^=_SMyF&>=`@y(Nf_#PUC| z!<4_^lLn4rPB-*Lx48jXRz5MKsg>LGb>rhSDtdWuNH zAgTnjvQ0ceCL{=2VGvyk<<|}!YK;ecQ@2k&)oO-#atCjmRI_@8_ckZK-8;qH+Nl$ zf5!uEz;itCT+S17oMM#-Ucosx!ek6rX$QuBBmou0a>Z4GyfEZDH(UOKP%ss)kWjdU zHdf^?IIF=Y+maV?W#CPZ@TXE${;IkWz+*7RVjBy5O8ANpN1VDx-=O8po(u zKI0ncuZ1Uw@oeK^6X9$<%9G{yI0iJ(cywdzqCh8Qog>nA%2RQ8C{8nB6^g~!Uetw! zG??Ib3dF;44x}hG`6a?y%7^%A`7_2j&%f{ydXN0Y7ZW?+cj8};dndlY=bs-$PpB@$ z(NiX&7#Jfi&Bm;+GF6JbU}C|bIF@>}PgB!KEffXUGWh5r2XUGG`)J#K9lq~$b3R3p z#Atwgbi>1F`%H=a3q^ESG(;Hznx>y;lFw&RiFcet|0u)7Chd!SX2L@fe8!cb9Lo^P znKN9!T-U|t@giW*6GMU*F9}v%pkI%2#lt(?hRVJpk+BdDA2{&2Ixfg*hH0?6xWJ?? z%`Xf{n|HGv(0Kq#bIe6Ie=fwUr%*P9hEO)PEiz3La4mzcqlcxm;`%@)BVo3J4362= z6HicCa0wqDfQ@=@a<}<{&UT7r@k$%;euGasAI*E|0{*T+>_9s{z9j!mvmWbOyWk{s zeZ#NadLx&N`uaZki@$b@W0~Aa-B@4aMh`p!_j|m+{a%7d8B+6!0HDZxi6@(+=tT%d zpX0me?g2wRDSy`OTAwdc`)pSDqps*eyaxR>R)LSvdl~T;^YPd8p@pF;NV1m0dWa7T zSlQ%>=$tGC`hdBQcd%iumhLcktMsn&_bJ0I>qtUM8GNay6Mj2IOU8B-b|foJ(cAH8 z;pcY1gHEG;3v*c##7-%D5NAl#EwV%Cqj%b6a3W%niy{#4>xld6VjrHyh|b=?46+**ZFpp zMkeZxCbmBCS;cwhRNkB81$BWo&H{4ma+eYb7?|@&3}QjfZ+Z`I(U%i_b{>u7Fd4 zcqq`ifJ2XGoD?V%qS_2aSF(u5V>tTM2x8d#3h#;c!REg~X8+A?|MHMkU&gMdWXQfEy_W+u`KW)*8DdGueCj@B8fi5xNt0> zX0Fc|Rl&0xrU_np2>6bE`=KdC#mBB|(49RnB^#r1ZurGjGhz}lh zZV+1a?{`A&e}DAKgB9aTUepQmCd@{H8GcdJ(>J zxwpgg@a$3uK6iiR#F#M4776S}cBp z1DI&=S(tVBq*}}KCh_AKFwS6bWfTzN=!pj-ji>REAdM#kLF(j@U})1Wc=6@&tD zbVY)0$ABcE6lA$1@zLJI7t;zyP{b(umeEHLEBe&*|3oYWyLt&~N`9j~hxih{!qd4| z;MhTACnveNiNRGG6y%3kZ})Poy|vLBrSW-HF;(=Z?pb@$zD@LxOgz4zmr4A}_^Cb! zxfSkMmY!ij{)G?e9Wi>YU3#iggQ(6W1jziF_``mrf2g(R5)z7peM80o83AJdPmB_R z)s+ds7?m88WA2i8vUVdt62IC&{@v35Gx}lATl(2X3xC&o1#sTd=Egu{XmbNUQeJMj z^Ol~47&2#&5bVtP6A#Atn1p`7y�I0tweu&sM@<2Jx?zzcu{ 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 diff --git a/data/mods - Shortcut.lnk b/data/mods - Shortcut.lnk deleted file mode 100644 index 011192b5b533aa82fdd80d27b98ea232197986e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1186 zcmbVLUr1A76#q?4w7*xgu(BM2X{BqzkR>UTP3J^%Y}r3<;MgWAcWt>FWxgdjM8g-2 z3<`^t4^1gbjQ)rP^&kkNuvPRB^p=%KFGVk%b2slML_z2B`@Zv?d+zU?@0@d+0BG{k zXa#1K74-wifrVaN+T+iL)dXeC&1bv!-#BTU}+}o=qU?1Cq{MjzIhWnRVkjy z<=12kR&+onQ!eZ(Q*W67hd1C4;-JdaOI+p==BjOEh9O>3Wb)H%IN(J9egw&$hxPW3-f*TULiQR{CSm>#x_XRkV zh|}dvj|lKk9KPvF4dyBDyGjk_LYd^hfk{)u*8c&X1V3lJ!WME~H45U_pHHSG?WM2%2}2d8t)iOnl1+eEiVoaEG%EB zo31(fB`5qWaPhfan*7)M$8>>gVC*!pRXFX=ullF&&FHs||A=l52iuBTI3`CbBorx! zc+<2fMIDt;OpKbCGA80*TDynINCpWUP`_L}y=2`k+*(d+9lX96*-7@b?7#un5R!EV zw$ND_c@rr(bL0X4fy|h}XZ~V6p`K=6qM6mAjd~_g{$6yEoxk2lfQg{~ucUVqIG5X< z?$YX!S2 Date: Mon, 13 Dec 2021 13:49:38 -0800 Subject: [PATCH 112/189] Recipes and books Adds a set of initial recipes for repairing plating. Will include various plate types and simple modules like the light. Adds a book with above recipes. Adds an arm-mounted header drill, works as a slow powerful mace, adds cut damage when active, works as a digging tool. Adds a vehicle part "exoskeleton maintenance gantry". Todo: Add unique repair quality as a portable toolkit and integrate into vehicle part. Maybe use bionic maintenance kit? --- .../items/armor/modular_exos/exo_book.json | 21 +++++++ .../items/armor/modular_exos/exo_recipe.json | 40 +++++++++++++ .../modular_exos/modular_exoskeleton.json | 7 ++- .../modular_exoskeleton_modules.json | 56 ++++++++++++++++++- data/mods/Aftershock/items/books.json | 19 +++++++ 5 files changed, 137 insertions(+), 6 deletions(-) create mode 100644 data/mods/Aftershock/items/armor/modular_exos/exo_book.json create mode 100644 data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_book.json b/data/mods/Aftershock/items/armor/modular_exos/exo_book.json new file mode 100644 index 0000000000000..264873c40f539 --- /dev/null +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_book.json @@ -0,0 +1,21 @@ +[ + { + "id": "exosuit_maintenance", + "type": "BOOK", + "name": { "str": "Exoskeleton maintenance and repair manual", "str_pl": "copies of Exoskeleton maintenance and repair manual" }, + "description": "TM 7-4350 TECHNICAL MANUAL OPERATOR’S MANUAL FOR TYPE G EXOSKELETON (MODULAR). This is an operator's manual that covers general maintenance and basic repairs to modular exoskeleton systems.", + "weight": "50 g", + "volume": "500 ml", + "price": "5000 cent", + "material": [ "paper" ], + "symbol": "?", + "looks_like": "adv_chemistry", + "color": "light_green", + "skill": "fabrication", + "required_level": 5, + "max_level": 8, + "intelligence": 9, + "fun": -3, + "time": "50 m" + } +] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json b/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json new file mode 100644 index 0000000000000..185bb94c8258c --- /dev/null +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json @@ -0,0 +1,40 @@ +[ + { + "result": "exo_helmet_steel", + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HEAD", + "skill_used": "fabrication", + "difficulty": 7, + "time": "9 h", + "book_learn": [ [ "exosuit_maintenance", 6 ] ], + "using": [ [ "blacksmithing_standard", 56 ], [ "steel_standard", 14 ] ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], + "proficiencies": [ + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_blacksmithing" }, + { "proficiency": "prof_armorsmithing" } + ] + }, + { + "result": "exo_torso_steel", + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_TORSO", + "skill_used": "fabrication", + "difficulty": 8, + "time": "9 h", + "book_learn": [ [ "exosuit_maintenance", 7 ] ], + "using": [ [ "blacksmithing_standard", 32 ], [ "steel_standard", 8 ] ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "swage", -1 ] ] ], + "proficiencies": [ + { "proficiency": "prof_armorsmithing" }, + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_blacksmithing" } + ] + } +] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index c4cc7c8737323..ff3778a3b2d27 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -31,6 +31,7 @@ "volume": "130 L", "material": [ "steel", "plastic" ], "material_thickness": 8, + "power_armor": true, "symbol": "T", "looks_like": "power_armor_basic", "color": "light_gray", @@ -153,7 +154,7 @@ "id": "exoskeleton_helmet", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton helmet" }, + "name": { "str": "exoskeleton helmet", "str_pl": "exoskeleton helmet" }, "description": "This is a helmet offering mounts for specialized equipment and protection.", "weight": "2500 g", "volume": "5 L", @@ -188,7 +189,7 @@ "id": "exoskeleton_boots", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton boots" }, + "name": { "str": "exoskeleton boots", "str_pl": "exoskeleton boots" }, "description": "This is a pair of exoskeleton boots. Has mounting points for protective plate.", "weight": "2000 g", "volume": "3250 ml", @@ -215,7 +216,7 @@ "id": "exoskeleton_gloves", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton gloves" }, + "name": { "str": "exoskeleton gloves", "str_pl": "exoskeleton gloves" }, "description": "This is a pair of exoskeleton gloves. Has mounting points for protective plate.", "weight": "1000 g", "volume": "1500 ml", diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index e63edaf0ba779..9e7bca46a437c 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -102,7 +102,7 @@ "name": { "str": "exoskeleton large load support module (off)" }, "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power cosumption.", "weight": "10 kg", - "volume": "10 L", + "volume": "5 L", "material": [ "plastic", "steel" ], "symbol": "=", "looks_like": "storage_battery", @@ -129,7 +129,7 @@ "name": { "str": "exoskeleton large load support module (on)" }, "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power cosumption. It is turned on and continually drawing power. Use it to turn it off.", "weight": "10 kg", - "volume": "10 L", + "volume": "5 L", "material": [ "plastic", "steel" ], "symbol": "=", "looks_like": "storage_battery", @@ -402,5 +402,55 @@ "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "gasfilter_m": 100 } } ], "ammo": "gasfilter_m", "use_action": [ "GASMASK" ] + }, + { + "id": "exo_mounted_drill", + "type": "TOOL_ARMOR", + "name": { "str": "exoskeleton mounted drill" }, + "category": "clothing", + "description": "A powerful header drill covers most of the exoskeleton's arm, leaving the hand free. While turned off, it still makes a powerful mace.", + "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE" ], + "weight": "40000 g", + "volume": "5 L", + "longest_side": "5 cm", + "bashing": 60, + "to_hit": { "grip": "weapon", "length": "short", "surface": "any", "balance": "clumsy" }, + "material": [ "hardsteel", "diamond" ], + "symbol": ";", + "color": "light_gray", + "techniques": [ "WBLOCK_1", "SWEEP" ], + "sided": true, + "armor": [ + { + "encumbrance": 30, + "coverage": 80, + "covers": [ "arm_l", "hand_l", "arm_r", "hand_r" ] } ], + "use_action": { + "ammo_scale": 0, + "menu_text": "Turn on", + "type": "transform", + "active": true, + "need_charges": 1, + "msg": "You turn on the drill.", + "target": "exo_mounted_drill_on" + } + }, + { + "id": "exo_mounted_drill_on", + "type": "TOOL_ARMOR", + "copy-from": "exo_mounted_drill", + "name": { "str": "exoskeleton mounted drill (on)" }, + "description": "The drill is now rotating and making a low growling noise. Meant to make short work of the toughest rock, it should work on more mobile surfaces as well. Use it to turn it off.", + "flags": [ "USE_UPS", "MESSY", "POWERED", "DURABLE_MELEE", "DIG_TOOL", "POWERARMOR_COMPATIBLE" ], + "bashing": 60, + "cutting": 20, + "power_draw": 2000, + "revert_to": "exo_mounted_drill", + "use_action": { + "menu_text": "Turn off", + "type": "transform", + "msg": "You turn off the drill.", + "target": "exo_mounted_drill" + } } -] +] \ No newline at end of file diff --git a/data/mods/Aftershock/items/books.json b/data/mods/Aftershock/items/books.json index 4afdb3d8c2e7a..1394f69678323 100644 --- a/data/mods/Aftershock/items/books.json +++ b/data/mods/Aftershock/items/books.json @@ -278,5 +278,24 @@ "intelligence": 9, "fun": -2, "time": "50 m" + }, + { + "id": "exosuit_maintenance", + "type": "BOOK", + "name": { "str": "Exoskeleton maintenance and repair manual", "str_pl": "copies of Exoskeleton maintenance and repair manual" }, + "description": "TM 7-4350 TECHNICAL MANUAL OPERATOR’S MANUAL FOR TYPE G EXOSKELETON (MODULAR). This is an operator's manual that covers general maintenance and basic repairs to modular exoskeleton systems.", + "weight": "50 g", + "volume": "500 ml", + "price": "5000 cent", + "material": [ "paper" ], + "symbol": "?", + "looks_like": "adv_chemistry", + "color": "light_green", + "skill": "fabrication", + "required_level": 5, + "max_level": 8, + "intelligence": 9, + "fun": -3, + "time": "50 m" } ] From dc30826b3760398a660d1e05bb8bfd2012ad6116 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 13 Dec 2021 16:40:27 -0800 Subject: [PATCH 113/189] Trim file length Updating items with more "copy-from" --- .../items/armor/modular_exos/exo_book.json | 2 +- .../modular_exoskeleton_modules.json | 87 ++++----- .../modular_exoskeleton_plating.json | 6 +- .../modular_exoskeleton_storage.json | 174 ++---------------- 4 files changed, 56 insertions(+), 213 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_book.json b/data/mods/Aftershock/items/armor/modular_exos/exo_book.json index 264873c40f539..0fee09c4386ff 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_book.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_book.json @@ -18,4 +18,4 @@ "fun": -3, "time": "50 m" } -] \ No newline at end of file +] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 9e7bca46a437c..32b1a50b92052 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -33,7 +33,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton ICE power supply" }, - "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS. The large size ", + "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS. This unit is large and occupies the rear hardpoints.", "weight": "20 kg", "volume": "25 L", "material": [ "steel", "plastic" ], @@ -404,53 +404,44 @@ "use_action": [ "GASMASK" ] }, { - "id": "exo_mounted_drill", - "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton mounted drill" }, - "category": "clothing", - "description": "A powerful header drill covers most of the exoskeleton's arm, leaving the hand free. While turned off, it still makes a powerful mace.", - "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE" ], - "weight": "40000 g", - "volume": "5 L", - "longest_side": "5 cm", - "bashing": 60, - "to_hit": { "grip": "weapon", "length": "short", "surface": "any", "balance": "clumsy" }, - "material": [ "hardsteel", "diamond" ], - "symbol": ";", - "color": "light_gray", - "techniques": [ "WBLOCK_1", "SWEEP" ], - "sided": true, - "armor": [ - { - "encumbrance": 30, - "coverage": 80, - "covers": [ "arm_l", "hand_l", "arm_r", "hand_r" ] } ], - "use_action": { - "ammo_scale": 0, - "menu_text": "Turn on", - "type": "transform", - "active": true, - "need_charges": 1, - "msg": "You turn on the drill.", - "target": "exo_mounted_drill_on" - } + "id": "exo_mounted_drill", + "type": "TOOL_ARMOR", + "name": { "str": "exoskeleton mounted drill" }, + "category": "clothing", + "description": "A powerful header drill covers most of the exoskeleton's arm, leaving the hand free. While turned off, it still makes a powerful mace.", + "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE" ], + "weight": "40000 g", + "volume": "5 L", + "longest_side": "5 cm", + "bashing": 60, + "to_hit": { "grip": "weapon", "length": "short", "surface": "any", "balance": "clumsy" }, + "material": [ "hardsteel", "diamond" ], + "symbol": ";", + "color": "light_gray", + "techniques": [ "WBLOCK_1", "SWEEP" ], + "sided": true, + "armor": [ { "encumbrance": 30, "coverage": 80, "covers": [ "arm_l", "hand_l", "arm_r", "hand_r" ] } ], + "use_action": { + "ammo_scale": 0, + "menu_text": "Turn on", + "type": "transform", + "active": true, + "need_charges": 1, + "msg": "You turn on the drill.", + "target": "exo_mounted_drill_on" + } }, { - "id": "exo_mounted_drill_on", - "type": "TOOL_ARMOR", - "copy-from": "exo_mounted_drill", - "name": { "str": "exoskeleton mounted drill (on)" }, - "description": "The drill is now rotating and making a low growling noise. Meant to make short work of the toughest rock, it should work on more mobile surfaces as well. Use it to turn it off.", - "flags": [ "USE_UPS", "MESSY", "POWERED", "DURABLE_MELEE", "DIG_TOOL", "POWERARMOR_COMPATIBLE" ], - "bashing": 60, - "cutting": 20, - "power_draw": 2000, - "revert_to": "exo_mounted_drill", - "use_action": { - "menu_text": "Turn off", - "type": "transform", - "msg": "You turn off the drill.", - "target": "exo_mounted_drill" - } + "id": "exo_mounted_drill_on", + "type": "TOOL_ARMOR", + "copy-from": "exo_mounted_drill", + "name": { "str": "exoskeleton mounted drill (on)" }, + "description": "The drill is now rotating and making a low growling noise. Meant to make short work of the toughest rock, it should work on more mobile surfaces as well. Use it to turn it off.", + "flags": [ "USE_UPS", "MESSY", "POWERED", "DURABLE_MELEE", "DIG_TOOL", "POWERARMOR_COMPATIBLE" ], + "bashing": 60, + "cutting": 20, + "power_draw": 2000, + "revert_to": "exo_mounted_drill", + "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "You turn off the drill.", "target": "exo_mounted_drill" } } -] \ No newline at end of file +] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index a8cbbbc561a30..3df5a6337c8cb 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -48,7 +48,7 @@ "warmth": 0, "material_thickness": 6, "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_PSU_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + "armor": [ { "encumbrance": 20, "coverage": 50, "covers": [ "torso" ] } ] }, { "id": "exo_arm_steel", @@ -214,7 +214,7 @@ "material_thickness": 3, "non_functional": "destroyed_exo_psu_plastic_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + "armor": [ { "encumbrance": 20, "coverage": 50, "covers": [ "torso" ] } ] }, { "id": "destroyed_exo_psu_plastic_plate", @@ -444,7 +444,7 @@ "material_thickness": 8, "non_functional": "destroyed_exo_psu_milcomp_plate", "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + "armor": [ { "encumbrance": 20, "coverage": 50, "covers": [ "torso" ] } ] }, { "id": "destroyed_exo_psu_milcomp_plate", diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 95cfda535342a..133970219bb69 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -64,93 +64,23 @@ }, { "id": "exo_large_storage", + "copy-from": "backpack_tactical_large", "repairs_like": "backpack_tactical_large", "type": "ARMOR", "name": { "str": "exoskeleton large storage pack" }, "description": "A large storage pack, mountable on a hardpoint.", "weight": "2291 g", "volume": "15 L", - "material": [ "nylon", "plastic" ], + "material": [ "kevlar", "plastic" ], "flags": [ "WATER_FRIENDLY", "EXO_LARGE_GADGET" ], "symbol": "[", "looks_like": "backpack", - "color": "green", - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "max_contains_volume": "55 L", - "max_contains_weight": "70 kg", - "max_item_length": "70 cm", - "magazine_well": "10 L", - "moves": 300 - }, - { - "pocket_type": "CONTAINER", - "max_contains_volume": "5 L", - "max_contains_weight": "10 kg", - "max_item_length": "40 cm", - "magazine_well": "1 L", - "moves": 200 - }, - { - "pocket_type": "CONTAINER", - "max_contains_volume": "3 L", - "max_contains_weight": "3 kg", - "max_item_length": "30 cm", - "magazine_well": "800 ml", - "moves": 120 - }, - { - "pocket_type": "CONTAINER", - "max_contains_volume": "3 L", - "max_contains_weight": "3 kg", - "max_item_length": "30 cm", - "magazine_well": "800 ml", - "moves": 120 - }, - { - "description": "carabiner pocket", - "pocket_type": "CONTAINER", - "holster": true, - "max_contains_volume": "5 L", - "max_contains_weight": "6 kg", - "max_item_length": "120 cm", - "min_item_length": "40 cm", - "moves": 150, - "extra_encumbrance": 3, - "ripoff": 2, - "activity_noise": { "volume": 8, "chance": 10 } - }, - { - "description": "carabiner pocket", - "pocket_type": "CONTAINER", - "holster": true, - "max_contains_volume": "5 L", - "max_contains_weight": "6 kg", - "max_item_length": "120 cm", - "min_item_length": "40 cm", - "moves": 150, - "extra_encumbrance": 3, - "ripoff": 2, - "activity_noise": { "volume": 8, "chance": 10 } - }, - { - "description": "carabiner pocket", - "pocket_type": "CONTAINER", - "holster": true, - "max_contains_volume": "5 L", - "max_contains_weight": "6 kg", - "max_item_length": "120 cm", - "min_item_length": "40 cm", - "moves": 150, - "extra_encumbrance": 3, - "ripoff": 2, - "activity_noise": { "volume": 8, "chance": 10 } - } - ] + "armor": [ + { "encumbrance": [ 10, 55 ], "coverage": 50, "covers": [ "torso" ] } ] }, { "id": "exo_medium_storage", + "copy-from": "fanny", "repairs_like": "fanny", "type": "ARMOR", "name": { "str": "exoskeleton medium pouch", "str_pl": "exoskeleton medium pouches" }, @@ -161,43 +91,26 @@ "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], "symbol": "[", "looks_like": "holster", - "color": "green", - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "max_contains_volume": "2500 ml", - "max_contains_weight": "5 kg", - "max_item_length": "25 cm", - "magazine_well": "1 L", - "moves": 80 - } - ] + "color": "green" }, { "id": "exo_small_storage", + "copy-from": "leather_pouch", "repairs_like": "fanny", "type": "ARMOR", "name": { "str": "exoskeleton small pouch", "str_pl": "exoskeleton small pouches" }, "description": "A small storage pouch, mountable on a hardpoint.", - "weight": "272 g", + "weight": "125 g", "volume": "1050 ml", "material": [ "nylon", "plastic" ], "symbol": "[", "looks_like": "holster", - "color": "green", - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "max_contains_volume": "2500 ml", - "max_contains_weight": "5 kg", - "max_item_length": "25 cm", - "magazine_well": "1 L", - "moves": 80 - } - ] + "color": "green" }, { "id": "exo_large_ammo_pouch", + "copy-from": "tacvest", + "looks_like": "tacvest", "type": "ARMOR", "name": { "str": "exoskeleton large ammo pouches", "str_pl": "exoskeleton large ammo pouches" }, "description": "A set of pouches that attach to a hardpoint.", @@ -208,72 +121,11 @@ "material": [ "nylon" ], "symbol": "[", "color": "dark_gray", - "pocket_data": [ - { - "magazine_well": "350 ml", - "pocket_type": "CONTAINER", - "holster": true, - "min_item_volume": "300 ml", - "max_contains_volume": "1000 ml", - "max_contains_weight": "2 kg", - "max_item_length": "30 cm", - "moves": 50 - }, - { - "pocket_type": "CONTAINER", - "max_item_length": "300 mm", - "min_item_volume": "250 ml", - "max_contains_volume": "1 L", - "max_contains_weight": "2 kg", - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "max_item_length": "300 mm", - "min_item_volume": "250 ml", - "max_contains_volume": "1 L", - "max_contains_weight": "2 kg", - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "max_item_length": "250 mm", - "min_item_volume": "200 ml", - "max_contains_volume": "800 ml", - "max_contains_weight": "1600 g", - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "max_item_length": "250 mm", - "min_item_volume": "200 ml", - "max_contains_volume": "800 ml", - "max_contains_weight": "1600 g", - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "max_item_length": "250 mm", - "min_item_volume": "200 ml", - "max_contains_volume": "800 ml", - "max_contains_weight": "1600 g", - "flag_restriction": [ "MAG_COMPACT", "MAG_BULKY" ], - "moves": 60 - }, - { "ammo_restriction": { "410shot": 6, "shot": 6, "20x66mm": 6, "signal_flare": 6 }, "moves": 25 } - ], - "material_thickness": 0.2, - "flags": [ "WATER_FRIENDLY", "EXO_LARGE_GADGET" ], + "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], "armor": [ { "encumbrance": [ 2, 5 ], - "coverage": 50, - "covers": [ "leg_l", "leg_r" ], - "specifically_covers": [ "leg_upper_r", "leg_upper_l" ] + "coverage": 0 } ] }, From af74eef805afd4b101d44b136fb5f8ba25399448 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 13 Dec 2021 16:56:36 -0800 Subject: [PATCH 114/189] Update modular_exoskeleton_storage.json --- .../modular_exoskeleton_storage.json | 69 ++----------------- 1 file changed, 6 insertions(+), 63 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 133970219bb69..ff65349a1cae8 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -1,40 +1,22 @@ [ { "id": "exo_rifle_storage", + "copy-from": "back_holster", "type": "ARMOR", "name": { "str": "large storage pouch" }, - "description": "A hardpoint for storing a rifle, with an additional small pocket.", + "description": "A hardpoint for storing a rifle. Activate to holster/draw a gun.", "weight": "454 g", "volume": "2 L", - "price": 18000, - "price_postapoc": 800, "material": [ "steel" ], - "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], + "flags": [ "WATER_FRIENDLY", "NO_QUICKDRAW", "EXO_LARGE_GADGET" ], "symbol": "[", "looks_like": "slingpack", "color": "light_gray", - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "max_contains_volume": "6000 ml", - "max_contains_weight": "12000 g", - "max_item_length": "133 cm", - "moves": 100 - }, - { - "pocket_type": "CONTAINER", - "max_contains_volume": "1000 ml", - "max_contains_weight": "5000 g", - "max_item_length": "20 cm", - "magazine_well": "500 ml", - "moves": 80 - } - ], - "material_thickness": 2, "armor": [ { "encumbrance": [ 2, 6 ], "coverage": 20, "covers": [ "torso" ] } ] }, { "id": "exo_melee_storage", + "copy-from": "bscabbard", "type": "ARMOR", "name": { "str": "large storage pouch" }, "description": "A hardpoint for storing a sword. Activate to sheath/draw a sword .", @@ -47,20 +29,7 @@ "symbol": "[", "looks_like": "bscabbard", "color": "light_gray", - "pocket_data": [ - { - "magazine_well": "1750 ml", - "max_contains_volume": "3750 ml", - "max_contains_weight": "5 kg", - "max_item_length": "180 cm", - "holster": true, - "moves": 60, - "flag_restriction": [ "SHEATH_SWORD" ] - } - ], - "use_action": { "type": "holster", "holster_prompt": "Sheath sword", "holster_msg": "You sheath your %s" }, - "material_thickness": 2, - "armor": [ { "encumbrance": [ 2, 6 ], "coverage": 20, "covers": [ "torso" ] } ] + "armor": [ { "encumbrance": [ 6, 10 ], "coverage": 20, "covers": [ "torso" ] } ] }, { "id": "exo_large_storage", @@ -131,42 +100,16 @@ }, { "id": "exo_small_ammo_pouch", + "copy-from": "legrig", "type": "ARMOR", "name": { "str": "exoskeleton small ammo pouches", "str_pl": "exoskeleton small ammo pouches" }, "description": "A set of pouches that attach to a hardpoint.", - "weight": "205 g", - "volume": "1050 ml", - "price": 3000, - "price_postapoc": 250, - "material": [ "nylon" ], "symbol": "[", "color": "dark_gray", - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "max_contains_volume": "2250 ml", - "max_contains_weight": "2 kg", - "max_item_length": "30 cm", - "magazine_well": "500 ml", - "moves": 200, - "flag_restriction": [ "MAG_COMPACT" ] - }, - { - "pocket_type": "CONTAINER", - "max_contains_volume": "2250 ml", - "max_contains_weight": "2 kg", - "max_item_length": "30 cm", - "magazine_well": "500 ml", - "moves": 200, - "flag_restriction": [ "MAG_COMPACT" ] - } - ], - "material_thickness": 0.2, "flags": [ "WATER_FRIENDLY", "EXO_SMALL_GADGET" ], "armor": [ { "encumbrance": [ 2, 5 ], - "coverage": 50, "covers": [ "leg_l", "leg_r" ], "specifically_covers": [ "leg_upper_r", "leg_upper_l" ] } From fc3951d7e18f736daeed217bc77a28cca4137140 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 13 Dec 2021 18:44:54 -0800 Subject: [PATCH 115/189] Frame rebalance Changed the frame to thinner material and from steel to titanium. This modifies the defensive values and means that the suit can no longer be repaired with a standard welder. Added exoskeleton tool kit, capable of repairing titanium. Included tool in vehicle repair gantry part. Added alternative gauntlet plate replicating the hydraulic gauntlet. --- .../items/armor/modular_exos/exo_gear.json | 61 +++++++++++++++++++ .../items/armor/modular_exos/exo_tool.json | 30 +++++++++ .../modular_exos/modular_exoskeleton.json | 21 ++++--- .../modular_exoskeleton_modules.json | 45 +------------- .../modular_exoskeleton_storage.json | 34 ++++------- data/mods/Aftershock/items/vehicle_items.json | 7 +++ .../Aftershock/vehicles/vehicle_parts.json | 35 +++++++++++ 7 files changed, 160 insertions(+), 73 deletions(-) create mode 100644 data/mods/Aftershock/items/armor/modular_exos/exo_gear.json create mode 100644 data/mods/Aftershock/items/armor/modular_exos/exo_tool.json diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json new file mode 100644 index 0000000000000..b2e71a9341a40 --- /dev/null +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -0,0 +1,61 @@ +[ + { + "id": "exo_mounted_drill", + "type": "TOOL_ARMOR", + "name": { "str": "exoskeleton mounted drill" }, + "category": "tool", + "description": "A powerful header drill with synthetic diamond covers most of the exoskeleton's arm, leaving the hand free. While turned off, it still makes a powerful mace.", + "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE" ], + "weight": "40000 g", + "volume": "5 L", + "longest_side": "5 cm", + "bashing": 60, + "to_hit": { "grip": "weapon", "length": "short", "surface": "any", "balance": "clumsy" }, + "material": [ "hardsteel", "diamond" ], + "symbol": ";", + "color": "light_gray", + "techniques": [ "WBLOCK_1", "SWEEP" ], + "sided": true, + "armor": [ { "encumbrance": 30, "coverage": 80, "covers": [ "arm_l", "hand_l", "arm_r", "hand_r" ] } ], + "use_action": { + "ammo_scale": 0, + "menu_text": "Turn on", + "type": "transform", + "active": true, + "need_charges": 1, + "msg": "You turn on the drill.", + "target": "exo_mounted_drill_on" + } + }, + { + "id": "exo_mounted_drill_on", + "type": "TOOL_ARMOR", + "copy-from": "exo_mounted_drill", + "name": { "str": "exoskeleton mounted drill (on)" }, + "description": "The drill is now rotating and making a low growling noise. Meant to make short work of the toughest rock, it should work on more mobile surfaces as well. Use it to turn it off.", + "flags": [ "USE_UPS", "MESSY", "POWERED", "DURABLE_MELEE", "DIG_TOOL", "POWERARMOR_COMPATIBLE" ], + "bashing": 60, + "cutting": 20, + "power_draw": 2000, + "revert_to": "exo_mounted_drill", + "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "You turn off the drill.", "target": "exo_mounted_drill" } + }, + { + "id": "exo_hydraulic_gauntlet", + "copy-from": "afs_hydraulic_gauntlet", + "type": "ARMOR", + "name": { "str": "exoskeleton hydraulic gauntlet" }, + "description": "A huge, heavy metal gauntlet lined with tubing and gauges, worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively. ", + "looks_like": "gauntlets_chitin", + "color": "light_gray", + "bashing": 50, + "to_hit": -2, + "sided": true, + "warmth": 20, + "material": "hardsteel", + "material_thickness": 2, + "flags": [ "NONCONDUCTIVE", "SLOW_WIELD", "DURABLE_MELEE", "UNARMED_WEAPON", "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], + "techniques": [ "BRUTAL", "AFS_PRESSURE_CRUNCH" ], + "armor": [ { "encumbrance": 15, "coverage": 100, "covers": [ "hand_l", "hand_r" ] } ] + } +] diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json b/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json new file mode 100644 index 0000000000000..3f63b3b173ea2 --- /dev/null +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json @@ -0,0 +1,30 @@ +[ + { + "id": "exo_repair_kit", + "copy-from": "large_repairkit", + "type": "TOOL", + "name": { "str": "soldering iron" }, + "description": "This is a collection of tools including a high-powered torch for working the titanium frame.", + "longest_side": "25 cm", + "price": 1000, + "price_postapoc": 100, + "bashing": 2, + "cutting": 6, + "material": [ "iron" ], + "symbol": ",", + "color": "light_gray", + "ammo": [ "battery" ], + "charges_per_use": 1, + "use_action": [ + { + "type": "repair_item", + "item_action_type": "repair_metal", + "materials": [ "steel", "hardsteel", "titanium" ], + "skill": "fabrication", + "cost_scaling": 0.1, + "move_cost": 1500 + } + ], + "flags": [ "ALLOWS_REMOTE_USE", "WATER_BREAK", "USE_UPS" ] + } +] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index ff3778a3b2d27..1da66e0832885 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -1,3 +1,8 @@ +Cataclysm: Dark Days Ahead JSON Web Linting Tool +This is a tool to help modders and editors of the open source game Cataclysm: Dark Days Ahead write JSON in the game's expected format. + +Paste some JSON into the field below and click "Lint" to run an autoformatter against it. + [ { "id": "afs_exo_undersuit", @@ -29,8 +34,8 @@ "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs.", "weight": "40 kg", "volume": "130 L", - "material": [ "steel", "plastic" ], - "material_thickness": 8, + "material": [ "titanium" ], + "material_thickness": 2, "power_armor": true, "symbol": "T", "looks_like": "power_armor_basic", @@ -158,7 +163,7 @@ "description": "This is a helmet offering mounts for specialized equipment and protection.", "weight": "2500 g", "volume": "5 L", - "material": [ "steel", "plastic" ], + "material": [ "titanium", "plastic" ], "symbol": "n", "looks_like": "power_armor_helmet_basic", "color": "dark_gray", @@ -193,7 +198,7 @@ "description": "This is a pair of exoskeleton boots. Has mounting points for protective plate.", "weight": "2000 g", "volume": "3250 ml", - "material": [ "steel", "plastic" ], + "material": [ "titanium", "plastic" ], "symbol": "b", "looks_like": "boots_plate", "color": "dark_gray", @@ -218,15 +223,16 @@ "category": "armor", "name": { "str": "exoskeleton gloves", "str_pl": "exoskeleton gloves" }, "description": "This is a pair of exoskeleton gloves. Has mounting points for protective plate.", - "weight": "1000 g", - "volume": "1500 ml", - "material": [ "steel", "plastic" ], + "weight": "500 g", + "volume": "750 ml", + "material": [ "titanium", "plastic" ], "symbol": "g", "looks_like": "gloves_plate", "color": "dark_gray", "power_armor": true, "material_thickness": 8, "environmental_protection": 16, + "sided": true, "armor": [ { "encumbrance": 5, "coverage": 100, "covers": [ "hand_l", "hand_r" ] } ], "flags": [ "WATERPROOF", "STURDY" ], "pocket_data": [ @@ -240,3 +246,4 @@ ] } ] + diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 32b1a50b92052..dc5d08810fdfb 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -353,7 +353,7 @@ "price": 30000, "price_postapoc": 500, "material": [ "plastic", "glass" ], - "flags": [ "ZOOM", "SUN_GLASSES", "FLASH_PROTECTION", "EXO_HELMET_GADGET", "ONLY_ONE" ], + "flags": [ "ZOOM", "USE_UPS", "SUN_GLASSES", "FLASH_PROTECTION", "EXO_HELMET_GADGET", "ONLY_ONE" ], "weight": "500 g", "volume": "500 ml", "bashing": 4, @@ -381,7 +381,7 @@ "msg": "You turn off helmet's optical enhancement.", "target": "exo_optics_off" }, - "flags": [ "USE_UPS", "CANT_WEAR", "IR_EFFECT", "EXO_HELMET_GADGET", "ONLY_ONE" ] + "flags": [ "ZOOM", "USE_UPS", "CANT_WEAR", "IR_EFFECT", "EXO_HELMET_GADGET", "ONLY_ONE" ] }, { "id": "exoskeleton_helmet_filter", @@ -402,46 +402,5 @@ "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "gasfilter_m": 100 } } ], "ammo": "gasfilter_m", "use_action": [ "GASMASK" ] - }, - { - "id": "exo_mounted_drill", - "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton mounted drill" }, - "category": "clothing", - "description": "A powerful header drill covers most of the exoskeleton's arm, leaving the hand free. While turned off, it still makes a powerful mace.", - "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE" ], - "weight": "40000 g", - "volume": "5 L", - "longest_side": "5 cm", - "bashing": 60, - "to_hit": { "grip": "weapon", "length": "short", "surface": "any", "balance": "clumsy" }, - "material": [ "hardsteel", "diamond" ], - "symbol": ";", - "color": "light_gray", - "techniques": [ "WBLOCK_1", "SWEEP" ], - "sided": true, - "armor": [ { "encumbrance": 30, "coverage": 80, "covers": [ "arm_l", "hand_l", "arm_r", "hand_r" ] } ], - "use_action": { - "ammo_scale": 0, - "menu_text": "Turn on", - "type": "transform", - "active": true, - "need_charges": 1, - "msg": "You turn on the drill.", - "target": "exo_mounted_drill_on" - } - }, - { - "id": "exo_mounted_drill_on", - "type": "TOOL_ARMOR", - "copy-from": "exo_mounted_drill", - "name": { "str": "exoskeleton mounted drill (on)" }, - "description": "The drill is now rotating and making a low growling noise. Meant to make short work of the toughest rock, it should work on more mobile surfaces as well. Use it to turn it off.", - "flags": [ "USE_UPS", "MESSY", "POWERED", "DURABLE_MELEE", "DIG_TOOL", "POWERARMOR_COMPATIBLE" ], - "bashing": 60, - "cutting": 20, - "power_draw": 2000, - "revert_to": "exo_mounted_drill", - "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "You turn off the drill.", "target": "exo_mounted_drill" } } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index ff65349a1cae8..32ad9f84ace64 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -1,7 +1,7 @@ [ { "id": "exo_rifle_storage", - "copy-from": "back_holster", + "copy-from": "back_holster", "type": "ARMOR", "name": { "str": "large storage pouch" }, "description": "A hardpoint for storing a rifle. Activate to holster/draw a gun.", @@ -16,7 +16,7 @@ }, { "id": "exo_melee_storage", - "copy-from": "bscabbard", + "copy-from": "bscabbard", "type": "ARMOR", "name": { "str": "large storage pouch" }, "description": "A hardpoint for storing a sword. Activate to sheath/draw a sword .", @@ -33,7 +33,7 @@ }, { "id": "exo_large_storage", - "copy-from": "backpack_tactical_large", + "copy-from": "backpack_tactical_large", "repairs_like": "backpack_tactical_large", "type": "ARMOR", "name": { "str": "exoskeleton large storage pack" }, @@ -44,12 +44,11 @@ "flags": [ "WATER_FRIENDLY", "EXO_LARGE_GADGET" ], "symbol": "[", "looks_like": "backpack", - "armor": [ - { "encumbrance": [ 10, 55 ], "coverage": 50, "covers": [ "torso" ] } ] + "armor": [ { "encumbrance": [ 10, 55 ], "coverage": 50, "covers": [ "torso" ] } ] }, { "id": "exo_medium_storage", - "copy-from": "fanny", + "copy-from": "fanny", "repairs_like": "fanny", "type": "ARMOR", "name": { "str": "exoskeleton medium pouch", "str_pl": "exoskeleton medium pouches" }, @@ -64,7 +63,7 @@ }, { "id": "exo_small_storage", - "copy-from": "leather_pouch", + "copy-from": "leather_pouch", "repairs_like": "fanny", "type": "ARMOR", "name": { "str": "exoskeleton small pouch", "str_pl": "exoskeleton small pouches" }, @@ -78,8 +77,8 @@ }, { "id": "exo_large_ammo_pouch", - "copy-from": "tacvest", - "looks_like": "tacvest", + "copy-from": "tacvest", + "looks_like": "tacvest", "type": "ARMOR", "name": { "str": "exoskeleton large ammo pouches", "str_pl": "exoskeleton large ammo pouches" }, "description": "A set of pouches that attach to a hardpoint.", @@ -91,28 +90,17 @@ "symbol": "[", "color": "dark_gray", "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], - "armor": [ - { - "encumbrance": [ 2, 5 ], - "coverage": 0 - } - ] + "armor": [ { "encumbrance": [ 2, 5 ], "coverage": 0 } ] }, { "id": "exo_small_ammo_pouch", - "copy-from": "legrig", + "copy-from": "legrig", "type": "ARMOR", "name": { "str": "exoskeleton small ammo pouches", "str_pl": "exoskeleton small ammo pouches" }, "description": "A set of pouches that attach to a hardpoint.", "symbol": "[", "color": "dark_gray", "flags": [ "WATER_FRIENDLY", "EXO_SMALL_GADGET" ], - "armor": [ - { - "encumbrance": [ 2, 5 ], - "covers": [ "leg_l", "leg_r" ], - "specifically_covers": [ "leg_upper_r", "leg_upper_l" ] - } - ] + "armor": [ { "encumbrance": [ 2, 5 ], "covers": [ "leg_l", "leg_r" ], "specifically_covers": [ "leg_upper_r", "leg_upper_l" ] } ] } ] diff --git a/data/mods/Aftershock/items/vehicle_items.json b/data/mods/Aftershock/items/vehicle_items.json index 276d63a3a5908..819d204022f61 100644 --- a/data/mods/Aftershock/items/vehicle_items.json +++ b/data/mods/Aftershock/items/vehicle_items.json @@ -15,5 +15,12 @@ "properties": [ [ "creature_size_capacity", "LARGE" ] ], "use_action": "CAPTURE_MONSTER_VEH", "flags": [ "TRADER_AVOID" ] + }, + { + "type": "GENERIC", + "id": "exo_gantry", + "copy-from": "vehicle_rig", + "name": { "str": "exoskeleton maintenance gantry", "str_pl": "exoskeleton maintenance gantry" }, + "description": "A gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active." } ] diff --git a/data/mods/Aftershock/vehicles/vehicle_parts.json b/data/mods/Aftershock/vehicles/vehicle_parts.json index 377859a40a80c..59c93ebdabd84 100644 --- a/data/mods/Aftershock/vehicles/vehicle_parts.json +++ b/data/mods/Aftershock/vehicles/vehicle_parts.json @@ -364,5 +364,40 @@ { "item": "steel_chunk", "count": [ 6, 8 ] }, { "item": "scrap", "count": [ 6, 8 ] } ] + }, + { + "type": "vehicle_part", + "id": "exo_gantry", + "name": { "str": "exoskeleton maintenance gantry" }, + "symbol": "T", + "categories": [ "utility" ], + "color": "light_gray", + "broken_symbol": "x", + "broken_color": "light_gray", + "looks_like": "welding_rig", + "damage_modifier": 10, + "durability": 200, + "description": "A gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active.", + "size": 800, + "bonus": 600, + "item": "afs_metal_rig", + "location": "center", + "requirements": { + "install": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, + "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, + "repair": { "skills": [ [ "mechanics", 4 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } + }, + "flags": [ "CARGO", "OBSTACLE", "COVERED", "RECHARGE" ], + "pseudo_tools": [ + { "id": "welder", "hotkey": "w" }, + { "id": "soldering_iron", "hotkey": "s" }, + { "id": "exo_repair_kit", "hotkey": "e" } + ], + "breaks_into": [ + { "item": "steel_lump", "count": [ 3, 6 ] }, + { "item": "steel_chunk", "count": [ 3, 6 ] }, + { "item": "scrap", "count": [ 3, 6 ] }, + { "item": "welder", "charges": 0, "prob": 50 } + ] } ] From a7fdef73f03d884002cf345c3eaeb1ca00a6d9e8 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 13 Dec 2021 23:15:22 -0800 Subject: [PATCH 116/189] Clean up plating --- .../items/armor/modular_exos/exo_gear.json | 10 +- .../modular_exos/modular_exoskeleton.json | 8 +- .../modular_exoskeleton_modules.json | 2 +- .../modular_exoskeleton_plating.json | 651 +++++++----------- 4 files changed, 257 insertions(+), 414 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index b2e71a9341a40..54f87d82b1422 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -4,19 +4,19 @@ "type": "TOOL_ARMOR", "name": { "str": "exoskeleton mounted drill" }, "category": "tool", - "description": "A powerful header drill with synthetic diamond covers most of the exoskeleton's arm, leaving the hand free. While turned off, it still makes a powerful mace.", + "description": "A powerful header drill with tough carbide bits, this tool mounts to the exoskeleton's arm and extends past the hand. While turned off, it still makes a powerful mace.", "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE" ], "weight": "40000 g", "volume": "5 L", "longest_side": "5 cm", "bashing": 60, "to_hit": { "grip": "weapon", "length": "short", "surface": "any", "balance": "clumsy" }, - "material": [ "hardsteel", "diamond" ], + "material": [ "hardsteel", "vacuum_carbide" ], "symbol": ";", "color": "light_gray", "techniques": [ "WBLOCK_1", "SWEEP" ], "sided": true, - "armor": [ { "encumbrance": 30, "coverage": 80, "covers": [ "arm_l", "hand_l", "arm_r", "hand_r" ] } ], + "armor": [ { "encumbrance": 20, "coverage": 80, "covers": [ "arm_l", "hand_l", "arm_r", "hand_r" ] } ], "use_action": { "ammo_scale": 0, "menu_text": "Turn on", @@ -49,7 +49,7 @@ "looks_like": "gauntlets_chitin", "color": "light_gray", "bashing": 50, - "to_hit": -2, + "to_hit": { "grip": "weapon", "length": "hand", "surface": "any", "balance": "good" }, "sided": true, "warmth": 20, "material": "hardsteel", @@ -58,4 +58,4 @@ "techniques": [ "BRUTAL", "AFS_PRESSURE_CRUNCH" ], "armor": [ { "encumbrance": 15, "coverage": 100, "covers": [ "hand_l", "hand_r" ] } ] } -] +] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 1da66e0832885..3567ad418329e 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -1,8 +1,3 @@ -Cataclysm: Dark Days Ahead JSON Web Linting Tool -This is a tool to help modders and editors of the open source game Cataclysm: Dark Days Ahead write JSON in the game's expected format. - -Paste some JSON into the field below and click "Lint" to run an autoformatter against it. - [ { "id": "afs_exo_undersuit", @@ -245,5 +240,4 @@ Paste some JSON into the field below and click "Lint" to run an autoformatter ag } ] } -] - +] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index dc5d08810fdfb..a398dd0deeac3 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -403,4 +403,4 @@ "ammo": "gasfilter_m", "use_action": [ "GASMASK" ] } -] +] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 3df5a6337c8cb..481080f545e76 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -16,405 +16,102 @@ "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_HELMET_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] }, - { - "id": "exo_torso_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton torso steel plate" }, - "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", - "weight": "34347 g", - "volume": "8 L", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "cuirass_lightplate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_TORSO_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] - }, - { - "id": "exo_psu_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton PSU steel plate" }, - "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of steel.", - "weight": "42933 g", - "volume": "10 L", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "backpack_tactical_large", - "color": "light_gray", - "warmth": 0, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_PSU_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 50, "covers": [ "torso" ] } ] - }, - { - "id": "exo_arm_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton arm steel plate" }, - "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", - "weight": "25760 g", - "volume": "5500 ml", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "armguard_lightplate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_ARM_PLATE" ], - "armor": [ - { - "covers": [ "arm_l", "arm_r" ], - "encumbrance": 16, - "coverage": 95, - "cover_melee": 95, - "cover_ranged": 95, - "cover_vitals": 90, - "specifically_covers": [ "arm_lower_r", "arm_lower_l", "arm_elbow_r", "arm_elbow_l", "arm_upper_r", "arm_upper_l" ] - } - ] - }, - { - "id": "exo_glove_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton glove steel plate" }, - "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of steel.", - "weight": "4293 g", - "volume": "1 ml", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "gloves_plate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] - }, - { - "id": "exo_leg_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton legs steel plate" }, - "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", - "weight": "30053 g", - "volume": "8 L", - "material": [ "steel" ], - "symbol": "L", - "looks_like": "legguard_lightplate", - "color": "light_gray", - "warmth": 10, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_LEG_PLATE" ], - "armor": [ - { - "covers": [ "leg_l", "leg_r" ], - "encumbrance": 8, - "coverage": 95, - "cover_melee": 95, - "cover_ranged": 95, - "cover_vitals": 90, - "specifically_covers": [ "leg_lower_r", "leg_lower_l", "leg_knee_r", "leg_knee_l", "leg_upper_r", "leg_upper_l" ] - } - ] - }, - { - "id": "exo_boot_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton boot steel plate" }, - "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of steel.", - "weight": "30053 g", - "volume": "3250 ml", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "boots_plate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_BOOT_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] - }, { "id": "exo_helmet_plastic", "type": "ARMOR", "category": "armor", + "copy-from": "exo_helmet_steel", "name": { "str": "exoskeleton helmet plastic plate" }, "description": "Designed to attach to an exoskeleton's helmet, this is a plate of plastic.", "weight": "1287 g", - "volume": "5 L", "material": [ "plastic" ], - "symbol": "[", "looks_like": "power_armor_helmet_basic", - "color": "light_gray", - "warmth": 20, "material_thickness": 3, - "non_functional": "destroyed_exo_helmet_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_HELMET_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] + "non_functional": "destroyed_exo_helmet_plastic_plate" }, { "id": "destroyed_exo_helmet_plastic_plate", "type": "ARMOR", "copy-from": "exo_helmet_plastic", - "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "name": { "str": "shattered helmet plastic plate" }, + "description": "The remains of a plastic helmet plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_helmet_plastic", - "material": [ "plastic" ], - "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_HELMET_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] }, { - "id": "exo_torso_plastic", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton torso plastic plate" }, - "description": "Designed to attach to an exoskeleton's torso, this is a plate of plastic.", - "weight": "3432 g", - "volume": "8 L", - "material": [ "plastic" ], - "symbol": "[", - "looks_like": "cuirass_lightplate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 3, - "non_functional": "destroyed_exo_torso_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_TORSO_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] - }, - { - "id": "destroyed_exo_torso_plastic_plate", - "type": "ARMOR", - "copy-from": "exo_torso_plastic", - "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_torso_plastic", - "material": [ "plastic" ], - "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_TORSO_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] - }, - { - "id": "exo_psu_plastic", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton PSU plastic plate" }, - "description": "Designed to attach to an exoskeleton's power supply unit, this is a plate of plastic.", - "weight": "4290 g", - "volume": "10 L", - "material": [ "plastic" ], - "symbol": "[", - "looks_like": "backpack_tactical_large", - "color": "light_gray", - "warmth": 0, - "material_thickness": 3, - "non_functional": "destroyed_exo_psu_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 50, "covers": [ "torso" ] } ] - }, - { - "id": "destroyed_exo_psu_plastic_plate", - "type": "ARMOR", - "copy-from": "exo_psu_plastic", - "name": { "str": "shattered plastic PSU plate" }, - "description": "The remains of a plastic PSU plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_psu_plastic", - "material": [ "plastic" ], - "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] - }, - { - "id": "exo_arm_plastic", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton arm plastic plate" }, - "description": "Designed to attach to an exoskeleton's arms, these are plates of plastic.", - "weight": "2574 g", - "volume": "5500 ml", - "material": [ "plastic" ], - "symbol": "[", - "looks_like": "armguard_lightplate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 3, - "non_functional": "destroyed_exo_arm_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_ARM_PLATE" ], - "armor": [ - { - "covers": [ "arm_l", "arm_r" ], - "encumbrance": 16, - "coverage": 95, - "cover_melee": 95, - "cover_ranged": 95, - "cover_vitals": 90, - "specifically_covers": [ "arm_lower_r", "arm_lower_l", "arm_elbow_r", "arm_elbow_l", "arm_upper_r", "arm_upper_l" ] - } - ] - }, - { - "id": "exo_glove_plastic", + "id": "exo_helmet_milcomp", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton glove plastic plate" }, - "description": "Designed to attach to an exoskeleton's glove, this is a plate of plastic.", - "weight": "429 g", - "volume": "1 ml", - "material": [ "plastic" ], - "symbol": "[", - "looks_like": "gloves_plate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 3, - "non_functional": "destroyed_exo_glove_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] - }, - { - "id": "destroyed_exo_glove_plastic_plate", - "type": "ARMOR", - "copy-from": "exo_glove_plastic", - "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_glove_plastic", - "material": [ "plastic" ], - "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_GLOVE_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] + "copy-from": "exo_helmet_steel", + "name": { "str": "exoskeleton helmet military composite plate" }, + "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of military composite.", + "weight": "16500 g", + "volume": "5 L", + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, + "non_functional": "destroyed_exo_helmet_milcomp_plate" }, { - "id": "destroyed_exo_arm_plastic_plate", + "id": "destroyed_exo_helmet_milcomp_plate", "type": "ARMOR", - "copy-from": "exo_arm_plastic", - "name": { "str": "shattered plastic arm plate" }, - "description": "The remains of a plastic arm plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_arm_plastic", - "material": [ "plastic" ], - "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_ARM_PLATE" ], - "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] + "copy-from": "exo_helmet_milcomp", + "name": { "str": "shattered military composite helmet plate" }, + "description": "The remains of a military composite helmet plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_helmet_milcomp", + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] }, { - "id": "exo_leg_plastic", + "id": "exo_torso_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton legs plastic plate" }, - "description": "Designed to attach to an exoskeleton's legs, these are plates of plastic.", - "weight": "3003 g", + "name": { "str": "exoskeleton torso steel plate" }, + "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", + "weight": "34347 g", "volume": "8 L", - "material": [ "plastic" ], - "symbol": "L", - "looks_like": "legguard_lightplate", - "color": "light_gray", - "warmth": 10, - "material_thickness": 3, - "non_functional": "destroyed_exo_leg_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_LEG_PLATE" ], - "armor": [ - { - "covers": [ "leg_l", "leg_r" ], - "encumbrance": 8, - "coverage": 95, - "cover_melee": 95, - "cover_ranged": 95, - "cover_vitals": 90, - "specifically_covers": [ "leg_lower_r", "leg_lower_l", "leg_knee_r", "leg_knee_l", "leg_upper_r", "leg_upper_l" ] - } - ] - }, - { - "id": "destroyed_exo_leg_plastic_plate", - "type": "ARMOR", - "copy-from": "exo_leg_plastic", - "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_leg_plastic", - "material": [ "plastic" ], - "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_LEG_PLATE" ], - "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] - }, - { - "id": "exo_boot_plastic", - "type": "ARMOR", - "category": "armor", - "name": { "str": "exoskeleton boot plastic plate" }, - "description": "Designed to attach to an exoskeleton's boot, this is a plate of plastic.", - "weight": "3003 g", - "volume": "3250 ml", - "material": [ "plastic" ], + "material": [ "steel" ], "symbol": "[", - "looks_like": "boots_plate", + "looks_like": "cuirass_lightplate", "color": "light_gray", "warmth": 20, - "material_thickness": 3, - "non_functional": "destroyed_exo_boot_plastic_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_BOOT_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] - }, - { - "id": "destroyed_exo_boot_plastic_plate", - "type": "ARMOR", - "copy-from": "exo_boot_plastic", - "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_boot_plastic", - "material": [ "plastic" ], - "material_thickness": 3, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_BOOT_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] + "material_thickness": 6, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_TORSO_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] }, { - "id": "exo_helmet_milcomp", + "id": "exo_torso_plastic", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton helmet military composite plate" }, - "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of military composite.", - "weight": "16500 g", - "volume": "5 L", - "material": [ "hardsteel", "ceramic" ], - "symbol": "[", - "looks_like": "power_armor_helmet_basic", - "color": "light_gray", - "warmth": 20, - "material_thickness": 8, - "non_functional": "destroyed_exo_helmet_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_HELMET_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "head", "eyes", "mouth" ] } ] + "copy-from": "exo_torso_steel", + "name": { "str": "exoskeleton torso plastic plate" }, + "description": "Designed to attach to an exoskeleton's torso, this is a plate of plastic.", + "weight": "3432 g", + "volume": "8 L", + "material": [ "plastic" ], + "material_thickness": 3, + "non_functional": "destroyed_exo_torso_plastic_plate" }, { - "id": "destroyed_exo_helmet_milcomp_plate", + "id": "destroyed_exo_torso_plastic_plate", "type": "ARMOR", - "copy-from": "exo_helmet_milcomp", - "name": { "str": "shattered military composite helmet plate" }, - "description": "The remains of a military composite helmet plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_helmet_milcomp", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_HELMET_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] + "copy-from": "exo_torso_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_torso_plastic", + "material_thickness": 3, + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, { "id": "exo_torso_milcomp", "type": "ARMOR", "category": "armor", + "copy-from": "exo_torso_steel", "name": { "str": "exoskeleton torso military composite plate" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of military composite.", "weight": "44000 g", "volume": "8 L", "material": [ "hardsteel", "ceramic" ], - "symbol": "[", - "looks_like": "cuirass_lightplate", - "color": "light_gray", - "warmth": 20, "material_thickness": 8, - "non_functional": "destroyed_exo_torso_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_TORSO_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] } ] + "non_functional": "destroyed_exo_torso_milcomp_plate" }, { "id": "destroyed_exo_torso_milcomp_plate", @@ -422,29 +119,59 @@ "copy-from": "exo_torso_milcomp", "name": { "str": "shattered military composite torso plate" }, "description": "The remains of a military composite torso plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_torso_milcomp", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_TORSO_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] + "looks_like": "exo_torso_milcomp" + }, + { + "id": "exo_psu_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton PSU steel plate" }, + "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of steel.", + "weight": "42933 g", + "volume": "10 L", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "backpack_tactical_large", + "color": "light_gray", + "warmth": 0, + "material_thickness": 6, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_PSU_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 50, "covers": [ "torso" ] } ] + }, + { + "id": "exo_psu_plastic", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_psu_steel", + "name": { "str": "exoskeleton PSU plastic plate" }, + "description": "Designed to attach to an exoskeleton's power supply unit, this is a plate of plastic.", + "weight": "4290 g", + "volume": "10 L", + "material": [ "plastic" ], + "material_thickness": 3, + "non_functional": "destroyed_exo_psu_plastic_plate", + }, + { + "id": "destroyed_exo_psu_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_psu_plastic", + "name": { "str": "shattered plastic PSU plate" }, + "description": "The remains of a plastic PSU plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_psu_plastic", + "material_thickness": 3 }, { "id": "exo_psu_milcomp", "type": "ARMOR", "category": "armor", + "copy-from": "exo_psu_steel", "name": { "str": "exoskeleton PSU military composite plate" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of military composite.", "weight": "55000 g", "volume": "10 L", "material": [ "hardsteel", "ceramic" ], - "symbol": "[", - "looks_like": "backpack_tactical_large", - "color": "light_gray", - "warmth": 0, "material_thickness": 8, "non_functional": "destroyed_exo_psu_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE" ], - "armor": [ { "encumbrance": 20, "coverage": 50, "covers": [ "torso" ] } ] }, { "id": "destroyed_exo_psu_milcomp_plate", @@ -453,26 +180,22 @@ "name": { "str": "shattered military composite PSU plate" }, "description": "The remains of a military composite PSU plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_psu_milcomp", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, { - "id": "exo_arm_milcomp", + "id": "exo_arm_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton arm military composite plate" }, - "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of military composite.", - "weight": "33000 g", + "name": { "str": "exoskeleton arm steel plate" }, + "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", + "weight": "25760 g", "volume": "5500 ml", - "material": [ "hardsteel", "ceramic" ], + "material": [ "steel" ], "symbol": "[", "looks_like": "armguard_lightplate", "color": "light_gray", "warmth": 20, - "material_thickness": 8, - "non_functional": "destroyed_exo_arm_milcomp_plate", + "material_thickness": 6, "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_ARM_PLATE" ], "armor": [ { @@ -486,6 +209,42 @@ } ] }, + { + "id": "exo_arm_plastic", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_arm_steel", + "name": { "str": "exoskeleton arm plastic plate" }, + "description": "Designed to attach to an exoskeleton's arms, these are plates of plastic.", + "weight": "2574 g", + "volume": "5500 ml", + "material": [ "plastic" ], + "material_thickness": 3, + "non_functional": "destroyed_exo_arm_plastic_plate", + }, + { + "id": "destroyed_exo_arm_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_arm_plastic", + "name": { "str": "shattered plastic arm plate" }, + "description": "The remains of a plastic arm plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_arm_plastic", + "material_thickness": 3, + "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] + }, + { + "id": "exo_arm_milcomp", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_arm_steel", + "name": { "str": "exoskeleton arm military composite plate" }, + "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of military composite.", + "weight": "33000 g", + "volume": "5500 ml", + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, + "non_functional": "destroyed_exo_arm_milcomp_plate" + }, { "id": "destroyed_exo_arm_milcomp_plate", "type": "ARMOR", @@ -493,28 +252,59 @@ "name": { "str": "shattered military composite arm plate" }, "description": "The remains of a military composite arm plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_arm_milcomp", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_ARM_PLATE" ], "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, + { + "id": "exo_glove_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton glove steel plate" }, + "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of steel.", + "weight": "4293 g", + "volume": "1 ml", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "gloves_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 6, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] + }, + { + "id": "exo_glove_plastic", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_glove_steel", + "name": { "str": "exoskeleton glove plastic plate" }, + "description": "Designed to attach to an exoskeleton's glove, this is a plate of plastic.", + "weight": "429 g", + "volume": "1 ml", + "material": [ "plastic" ], + "material_thickness": 3, + "non_functional": "destroyed_exo_glove_plastic_plate", + }, + { + "id": "destroyed_exo_glove_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_glove_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_glove_plastic + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] + }, { "id": "exo_glove_milcomp", "type": "ARMOR", "category": "armor", + "copy-from": "exo_arm_steel", "name": { "str": "exoskeleton glove military composite plate" }, "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of military composite.", "weight": "5500 g", "volume": "1 ml", "material": [ "hardsteel", "ceramic" ], - "symbol": "[", - "looks_like": "gloves_plate", - "color": "light_gray", - "warmth": 20, "material_thickness": 8, "non_functional": "destroyed_exo_glove_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] }, { "id": "destroyed_exo_glove_milcomp_plate", @@ -523,26 +313,22 @@ "name": { "str": "shattered military composite glove plate" }, "description": "The remains of a military composite glove plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_glove_milcomp", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_GLOVE_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] }, { - "id": "exo_leg_milcomp", + "id": "exo_leg_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton legs military composite plate" }, - "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of military composite.", - "weight": "38500 g", + "name": { "str": "exoskeleton legs steel plate" }, + "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", + "weight": "30053 g", "volume": "8 L", - "material": [ "hardsteel", "ceramic" ], + "material": [ "steel" ], "symbol": "L", "looks_like": "legguard_lightplate", "color": "light_gray", "warmth": 10, - "material_thickness": 8, - "non_functional": "destroyed_exo_leg_milcomp_plate", + "material_thickness": 6, "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_LEG_PLATE" ], "armor": [ { @@ -556,6 +342,42 @@ } ] }, + { + "id": "exo_leg_plastic", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_leg_steel", + "name": { "str": "exoskeleton legs plastic plate" }, + "description": "Designed to attach to an exoskeleton's legs, these are plates of plastic.", + "weight": "3003 g", + "volume": "8 L", + "material": [ "plastic" ], + "material_thickness": 3, + "non_functional": "destroyed_exo_leg_plastic_plate" + }, + { + "id": "destroyed_exo_leg_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_leg_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_leg_plastic", + "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] + }, + { + "id": "exo_leg_milcomp", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_leg_steel", + "name": { "str": "exoskeleton legs military composite plate" }, + "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of military composite.", + "weight": "38500 g", + "volume": "8 L", + "material": [ "hardsteel", "ceramic" ], + "material_thickness": 8, + "non_functional": "destroyed_exo_leg_milcomp_plate", + ] + }, { "id": "destroyed_exo_leg_milcomp_plate", "type": "ARMOR", @@ -563,28 +385,58 @@ "name": { "str": "shattered military composite leg plate" }, "description": "The remains of a military composite leg plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_leg_milcomp", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_LEG_PLATE" ], "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] }, + { + "id": "exo_boot_steel", + "type": "ARMOR", + "category": "armor", + "name": { "str": "exoskeleton boot steel plate" }, + "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of steel.", + "weight": "30053 g", + "volume": "3250 ml", + "material": [ "steel" ], + "symbol": "[", + "looks_like": "boots_plate", + "color": "light_gray", + "warmth": 20, + "material_thickness": 6, + "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_BOOT_PLATE" ], + "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] + }, + { + "id": "exo_boot_plastic", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_boot_steel", + "name": { "str": "exoskeleton boot plastic plate" }, + "description": "Designed to attach to an exoskeleton's boot, this is a plate of plastic.", + "weight": "3003 g", + "volume": "3250 ml", + "material": [ "plastic" ], + "material_thickness": 3, + "non_functional": "destroyed_exo_boot_plastic_plate", + }, + { + "id": "destroyed_exo_boot_plastic_plate", + "type": "ARMOR", + "copy-from": "exo_boot_plastic", + "name": { "str": "shattered plastic leg plate" }, + "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] + }, { "id": "exo_boot_milcomp", "type": "ARMOR", "category": "armor", + "copy-from": "exo_boot_steel", "name": { "str": "exoskeleton boot military composite plate" }, "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of military composite.", "weight": "38500 g", "volume": "3250 ml", "material": [ "hardsteel", "ceramic" ], - "symbol": "[", - "looks_like": "boots_plate", - "color": "light_gray", - "warmth": 20, "material_thickness": 8, "non_functional": "destroyed_exo_boot_milcomp_plate", - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_BOOT_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] }, { "id": "destroyed_exo_boot_milcomp_plate", @@ -593,9 +445,6 @@ "name": { "str": "shattered military composite boot plate" }, "description": "The remains of a military composite boot plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_boot_milcomp", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "flags": [ "ABLATIVE_LARGE", "CANT_WEAR", "EXO_BOOT_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] } ] From 82774ceea36d3cb208da2519e4ce8e4671486549 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Tue, 14 Dec 2021 22:28:48 -0800 Subject: [PATCH 117/189] Vacuum-cast carbide Replaces the military composite plating variations with vacuum-cast carbide. Sets three clear tiers of armor. --- .../items/armor/modular_exos/exo_gear.json | 9 +- .../items/armor/modular_exos/exo_recipe.json | 98 ++++++- .../items/armor/modular_exos/exo_tool.json | 2 +- .../modular_exos/modular_exoskeleton.json | 5 +- .../modular_exoskeleton_plating.json | 245 ++++++++++++++---- 5 files changed, 296 insertions(+), 63 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 54f87d82b1422..967bf8c0a3110 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -5,7 +5,7 @@ "name": { "str": "exoskeleton mounted drill" }, "category": "tool", "description": "A powerful header drill with tough carbide bits, this tool mounts to the exoskeleton's arm and extends past the hand. While turned off, it still makes a powerful mace.", - "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE" ], + "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], "weight": "40000 g", "volume": "5 L", "longest_side": "5 cm", @@ -16,7 +16,7 @@ "color": "light_gray", "techniques": [ "WBLOCK_1", "SWEEP" ], "sided": true, - "armor": [ { "encumbrance": 20, "coverage": 80, "covers": [ "arm_l", "hand_l", "arm_r", "hand_r" ] } ], + "armor": [ { "encumbrance": 20, "coverage": 80, "covers": [ "arm_l", "hand_l" ] } ], "use_action": { "ammo_scale": 0, "menu_text": "Turn on", @@ -50,12 +50,11 @@ "color": "light_gray", "bashing": 50, "to_hit": { "grip": "weapon", "length": "hand", "surface": "any", "balance": "good" }, - "sided": true, "warmth": 20, "material": "hardsteel", "material_thickness": 2, "flags": [ "NONCONDUCTIVE", "SLOW_WIELD", "DURABLE_MELEE", "UNARMED_WEAPON", "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], "techniques": [ "BRUTAL", "AFS_PRESSURE_CRUNCH" ], - "armor": [ { "encumbrance": 15, "coverage": 100, "covers": [ "hand_l", "hand_r" ] } ] + "armor": [ { "encumbrance": 15, "coverage": 100, "covers": [ "hand_r" ] } ] } -] \ No newline at end of file +] diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json b/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json index 185bb94c8258c..1222714f5f789 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json @@ -10,13 +10,13 @@ "time": "9 h", "book_learn": [ [ "exosuit_maintenance", 6 ] ], "using": [ [ "blacksmithing_standard", 56 ], [ "steel_standard", 14 ] ], - "qualities": [ { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], "proficiencies": [ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" }, { "proficiency": "prof_armorsmithing" } - ] + ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ] }, { "result": "exo_torso_steel", @@ -28,13 +28,95 @@ "difficulty": 8, "time": "9 h", "book_learn": [ [ "exosuit_maintenance", 7 ] ], - "using": [ [ "blacksmithing_standard", 32 ], [ "steel_standard", 8 ] ], - "qualities": [ { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "swage", -1 ] ] ], + "using": [ [ "blacksmithing_standard", 32 ], [ "steel_standard", 8 ] ], "proficiencies": [ { "proficiency": "prof_armorsmithing" }, { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" } - ] + ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "swage", -1 ] ] ] + }, + { + "result": "exo_psu_steel", + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_ARMS", + "skill_used": "fabrication", + "difficulty": 7, + "skills_required": [ [ "tailor", 3 ] ], + "time": "900 m", + "book_learn": [ [ "exosuit_maintenance", 6 ] ], + "using": [ [ "blacksmithing_standard", 24 ], [ "steel_standard", 2 ] ], + "proficiencies": [ + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_blacksmithing" }, + { "proficiency": "prof_armorsmithing" }, + { "proficiency": "prof_articulation" } + ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "swage", -1 ] ] ] + }, + { + "result": "exo_glove_steel", + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HANDS", + "skill_used": "fabrication", + "difficulty": 6, + "time": "7 h", + "book_learn": [ [ "exosuit_maintenance", 5 ] ], + "using": [ [ "blacksmithing_standard", 24 ], [ "steel_standard", 6 ], [ "clasps", 2 ] ], + "proficiencies": [ + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_blacksmithing" }, + { "proficiency": "prof_armorsmithing" }, + { "proficiency": "prof_articulation" } + ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "swage", -1 ] ] ] + }, + { + "result": "exo_leg_steel", + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_LEGS", + "skill_used": "fabrication", + "difficulty": 8, + "time": "190 m", + "book_learn": [ [ "exosuit_maintenance", 6 ] ], + "using": [ [ "blacksmithing_standard", 28 ], [ "steel_standard", 7 ], [ "clasps", 4 ] ], + "proficiencies": [ + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_blacksmithing" }, + { "proficiency": "prof_armorsmithing" }, + { "proficiency": "prof_articulation" } + ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "swage", -1 ] ] ] + }, + { + "result": "exo_boot_steel", + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_FEET", + "skill_used": "fabrication", + "difficulty": 6, + "time": "8 h", + "book_learn": [ [ "exosuit_maintenance", 4 ] ], + "using": [ [ "blacksmithing_standard", 32 ], [ "steel_standard", 8 ] ], + "proficiencies": [ + { "proficiency": "prof_cobbling" }, + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_blacksmithing" }, + { "proficiency": "prof_armorsmithing" }, + { "proficiency": "prof_articulation" } + ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "swage", -1 ] ] ] } -] \ No newline at end of file +] diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json b/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json index 3f63b3b173ea2..35908845362bb 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json @@ -3,7 +3,7 @@ "id": "exo_repair_kit", "copy-from": "large_repairkit", "type": "TOOL", - "name": { "str": "soldering iron" }, + "name": { "str": "exoskeleton repair kit" }, "description": "This is a collection of tools including a high-powered torch for working the titanium frame.", "longest_side": "25 cm", "price": 1000, diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 3567ad418329e..ce3764999442c 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -218,8 +218,8 @@ "category": "armor", "name": { "str": "exoskeleton gloves", "str_pl": "exoskeleton gloves" }, "description": "This is a pair of exoskeleton gloves. Has mounting points for protective plate.", - "weight": "500 g", - "volume": "750 ml", + "weight": "1000 g", + "volume": "1500 ml", "material": [ "titanium", "plastic" ], "symbol": "g", "looks_like": "gloves_plate", @@ -227,7 +227,6 @@ "power_armor": true, "material_thickness": 8, "environmental_protection": 16, - "sided": true, "armor": [ { "encumbrance": 5, "coverage": 100, "covers": [ "hand_l", "hand_r" ] } ], "flags": [ "WATERPROOF", "STURDY" ], "pocket_data": [ diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 481080f545e76..60c2bfa08508d 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -3,7 +3,7 @@ "id": "exo_helmet_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton helmet steel plate" }, + "name": { "str": "exoskeleton steel helmet plate" }, "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of steel.", "weight": "12880 g", "volume": "5 L", @@ -20,8 +20,8 @@ "id": "exo_helmet_plastic", "type": "ARMOR", "category": "armor", - "copy-from": "exo_helmet_steel", - "name": { "str": "exoskeleton helmet plastic plate" }, + "copy-from": "exo_helmet_steel", + "name": { "str": "exoskeleton plastic helmet plate" }, "description": "Designed to attach to an exoskeleton's helmet, this is a plate of plastic.", "weight": "1287 g", "material": [ "plastic" ], @@ -33,7 +33,7 @@ "id": "destroyed_exo_helmet_plastic_plate", "type": "ARMOR", "copy-from": "exo_helmet_plastic", - "name": { "str": "shattered helmet plastic plate" }, + "name": { "str": "shattered plastic helmet plate" }, "description": "The remains of a plastic helmet plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_helmet_plastic", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] @@ -42,8 +42,8 @@ "id": "exo_helmet_milcomp", "type": "ARMOR", "category": "armor", - "copy-from": "exo_helmet_steel", - "name": { "str": "exoskeleton helmet military composite plate" }, + "copy-from": "exo_helmet_steel", + "name": { "str": "exoskeleton military composite helmet plate" }, "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of military composite.", "weight": "16500 g", "volume": "5 L", @@ -60,11 +60,33 @@ "looks_like": "exo_helmet_milcomp", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] }, + { + "id": "exo_helmet_vcc", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_helmet_steel", + "name": { "str": "exoskeleton vacuum-cast carbide helmet plate" }, + "description": "Designed to attach to an exoskeleton's helmet, this is a plate of vacuum-cast carbide.", + "weight": "1287 g", + "material": [ "vacuum_carbide" ], + "looks_like": "power_armor_helmet_basic", + "material_thickness": 6, + "non_functional": "destroyed_exo_helmet_vcc_plate" + }, + { + "id": "destroyed_exo_helmet_vcc_plate", + "type": "ARMOR", + "copy-from": "exo_helmet_plastic", + "name": { "str": "shattered vacuum-cast carbide helmet plate" }, + "description": "The remains of a vacuum-cast carbide helmet plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_helmet_vcc", + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] + }, { "id": "exo_torso_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton torso steel plate" }, + "name": { "str": "exoskeleton steel torso plate" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", "weight": "34347 g", "volume": "8 L", @@ -81,8 +103,8 @@ "id": "exo_torso_plastic", "type": "ARMOR", "category": "armor", - "copy-from": "exo_torso_steel", - "name": { "str": "exoskeleton torso plastic plate" }, + "copy-from": "exo_torso_steel", + "name": { "str": "exoskeleton plastic torso plate" }, "description": "Designed to attach to an exoskeleton's torso, this is a plate of plastic.", "weight": "3432 g", "volume": "8 L", @@ -104,8 +126,8 @@ "id": "exo_torso_milcomp", "type": "ARMOR", "category": "armor", - "copy-from": "exo_torso_steel", - "name": { "str": "exoskeleton torso military composite plate" }, + "copy-from": "exo_torso_steel", + "name": { "str": "exoskeleton military composite torso plate" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of military composite.", "weight": "44000 g", "volume": "8 L", @@ -121,11 +143,32 @@ "description": "The remains of a military composite torso plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_torso_milcomp" }, + { + "id": "exo_torso_vcc", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_torso_steel", + "name": { "str": "exoskeleton vacuum carbide torso plate" }, + "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of vacuum-cast carbide.", + "weight": "44000 g", + "volume": "8 L", + "material": [ "vacuum_carbide" ], + "material_thickness": 6, + "non_functional": "destroyed_exo_torso_vcc_plate" + }, + { + "id": "destroyed_exo_torso_vcc_plate", + "type": "ARMOR", + "copy-from": "exo_torso_vcc", + "name": { "str": "shattered vacuum carbide plate" }, + "description": "The remains of a vacuum-cast carbide torso plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_torso_vcc" + }, { "id": "exo_psu_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton PSU steel plate" }, + "name": { "str": "exoskeleton steel PSU plate" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of steel.", "weight": "42933 g", "volume": "10 L", @@ -142,14 +185,14 @@ "id": "exo_psu_plastic", "type": "ARMOR", "category": "armor", - "copy-from": "exo_psu_steel", - "name": { "str": "exoskeleton PSU plastic plate" }, + "copy-from": "exo_psu_steel", + "name": { "str": "exoskeleton plastic PSU plate" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a plate of plastic.", "weight": "4290 g", "volume": "10 L", "material": [ "plastic" ], "material_thickness": 3, - "non_functional": "destroyed_exo_psu_plastic_plate", + "non_functional": "destroyed_exo_psu_plastic_plate" }, { "id": "destroyed_exo_psu_plastic_plate", @@ -164,14 +207,14 @@ "id": "exo_psu_milcomp", "type": "ARMOR", "category": "armor", - "copy-from": "exo_psu_steel", - "name": { "str": "exoskeleton PSU military composite plate" }, + "copy-from": "exo_psu_steel", + "name": { "str": "exoskeleton military composite PSU plate" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of military composite.", "weight": "55000 g", "volume": "10 L", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, - "non_functional": "destroyed_exo_psu_milcomp_plate", + "non_functional": "destroyed_exo_psu_milcomp_plate" }, { "id": "destroyed_exo_psu_milcomp_plate", @@ -182,11 +225,33 @@ "looks_like": "exo_psu_milcomp", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, + { + "id": "exo_psu_vcc", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_psu_steel", + "name": { "str": "exoskeleton vacuum-cast carbide PSU plate" }, + "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of vacuum-cast carbide.", + "weight": "55000 g", + "volume": "10 L", + "material": [ "vacuum_carbide" ], + "material_thickness": 6, + "non_functional": "destroyed_exo_psu_milcomp_plate" + }, + { + "id": "destroyed_exo_psu_vcc", + "type": "ARMOR", + "copy-from": "exo_psu_vcc", + "name": { "str": "shattered military composite PSU plate" }, + "description": "The remains of a vacuum-cast carbide PSU plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_psu_vcc", + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] + }, { "id": "exo_arm_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton arm steel plate" }, + "name": { "str": "exoskeleton steel arm plate" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", "weight": "25760 g", "volume": "5500 ml", @@ -213,14 +278,14 @@ "id": "exo_arm_plastic", "type": "ARMOR", "category": "armor", - "copy-from": "exo_arm_steel", - "name": { "str": "exoskeleton arm plastic plate" }, + "copy-from": "exo_arm_steel", + "name": { "str": "exoskeleton plastic arm plate" }, "description": "Designed to attach to an exoskeleton's arms, these are plates of plastic.", "weight": "2574 g", "volume": "5500 ml", "material": [ "plastic" ], "material_thickness": 3, - "non_functional": "destroyed_exo_arm_plastic_plate", + "non_functional": "destroyed_exo_arm_plastic_plate" }, { "id": "destroyed_exo_arm_plastic_plate", @@ -236,8 +301,8 @@ "id": "exo_arm_milcomp", "type": "ARMOR", "category": "armor", - "copy-from": "exo_arm_steel", - "name": { "str": "exoskeleton arm military composite plate" }, + "copy-from": "exo_arm_steel", + "name": { "str": "exoskeleton military composite arm plate" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of military composite.", "weight": "33000 g", "volume": "5500 ml", @@ -254,11 +319,33 @@ "looks_like": "exo_arm_milcomp", "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, + { + "id": "exo_arm_vcc", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_arm_steel", + "name": { "str": "exoskeleton vacuum-cast carbide arm plate" }, + "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of vacuum-cast carbide.", + "weight": "33000 g", + "volume": "5500 ml", + "material": [ "vacuum_carbide" ], + "material_thickness": 6, + "non_functional": "destroyed_exo_arm_vcc_plate" + }, + { + "id": "destroyed_exo_arm_vcc_plate", + "type": "ARMOR", + "copy-from": "exo_arm_vcc", + "name": { "str": "shattered accuum-cast carbide arm plate" }, + "description": "The remains of a accuum-cast carbide arm plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_arm_vcc", + "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] + }, { "id": "exo_glove_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton glove steel plate" }, + "name": { "str": "exoskeleton steel glove plate" }, "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of steel.", "weight": "4293 g", "volume": "1 ml", @@ -267,6 +354,7 @@ "looks_like": "gloves_plate", "color": "light_gray", "warmth": 20, + "sided": true, "material_thickness": 6, "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] @@ -275,14 +363,14 @@ "id": "exo_glove_plastic", "type": "ARMOR", "category": "armor", - "copy-from": "exo_glove_steel", - "name": { "str": "exoskeleton glove plastic plate" }, + "copy-from": "exo_glove_steel", + "name": { "str": "exoskeleton plastic glove plate" }, "description": "Designed to attach to an exoskeleton's glove, this is a plate of plastic.", "weight": "429 g", "volume": "1 ml", "material": [ "plastic" ], "material_thickness": 3, - "non_functional": "destroyed_exo_glove_plastic_plate", + "non_functional": "destroyed_exo_glove_plastic_plate" }, { "id": "destroyed_exo_glove_plastic_plate", @@ -290,21 +378,21 @@ "copy-from": "exo_glove_plastic", "name": { "str": "shattered plastic leg plate" }, "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_glove_plastic + "looks_like": "exo_glove_plastic", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] }, { "id": "exo_glove_milcomp", "type": "ARMOR", "category": "armor", - "copy-from": "exo_arm_steel", - "name": { "str": "exoskeleton glove military composite plate" }, + "copy-from": "exo_arm_steel", + "name": { "str": "exoskeleton military composite glove plate" }, "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of military composite.", "weight": "5500 g", "volume": "1 ml", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, - "non_functional": "destroyed_exo_glove_milcomp_plate", + "non_functional": "destroyed_exo_glove_milcomp_plate" }, { "id": "destroyed_exo_glove_milcomp_plate", @@ -315,11 +403,33 @@ "looks_like": "exo_glove_milcomp", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] }, + { + "id": "exo_glove_vcc", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_arm_steel", + "name": { "str": "exoskeleton vacuum-cast composite glove plate" }, + "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of vacuum-cast composite.", + "weight": "5500 g", + "volume": "1 ml", + "material": [ "vacuum-cast" ], + "material_thickness": 6, + "non_functional": "destroyed_exo_glove_vcc_plate" + }, + { + "id": "destroyed_exo_glove_vcc_plate", + "type": "ARMOR", + "copy-from": "exo_glove_vcc", + "name": { "str": "shattered vacuum-cast composite glove plate" }, + "description": "The remains of a vacuum-cast composite glove plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_glove_vcc", + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] + }, { "id": "exo_leg_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton legs steel plate" }, + "name": { "str": "exoskeleton steel legs plate" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", "weight": "30053 g", "volume": "8 L", @@ -346,8 +456,8 @@ "id": "exo_leg_plastic", "type": "ARMOR", "category": "armor", - "copy-from": "exo_leg_steel", - "name": { "str": "exoskeleton legs plastic plate" }, + "copy-from": "exo_leg_steel", + "name": { "str": "exoskeleton plastic legs plate" }, "description": "Designed to attach to an exoskeleton's legs, these are plates of plastic.", "weight": "3003 g", "volume": "8 L", @@ -368,15 +478,14 @@ "id": "exo_leg_milcomp", "type": "ARMOR", "category": "armor", - "copy-from": "exo_leg_steel", - "name": { "str": "exoskeleton legs military composite plate" }, + "copy-from": "exo_leg_steel", + "name": { "str": "exoskeleton military composite legs plate" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of military composite.", "weight": "38500 g", "volume": "8 L", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, - "non_functional": "destroyed_exo_leg_milcomp_plate", - ] + "non_functional": "destroyed_exo_leg_milcomp_plate" }, { "id": "destroyed_exo_leg_milcomp_plate", @@ -387,11 +496,33 @@ "looks_like": "exo_leg_milcomp", "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] }, + { + "id": "exo_leg_vcc", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_leg_steel", + "name": { "str": "exoskeleton vacuum-cast carbide legs plate" }, + "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of vacuum-cast carbide.", + "weight": "38500 g", + "volume": "8 L", + "material": [ "vacuum-cast" ], + "material_thickness": 6, + "non_functional": "destroyed_exo_leg_vcc_plate" + }, + { + "id": "destroyed_exo_leg_vcc_plate", + "type": "ARMOR", + "copy-from": "exo_leg_vcc", + "name": { "str": "shattered vacuum-cast carbide leg plate" }, + "description": "The remains of a vacuum-cast carbide leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_leg_vcc", + "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] + }, { "id": "exo_boot_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton boot steel plate" }, + "name": { "str": "exoskeleton steel boot plate" }, "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of steel.", "weight": "30053 g", "volume": "3250 ml", @@ -408,14 +539,14 @@ "id": "exo_boot_plastic", "type": "ARMOR", "category": "armor", - "copy-from": "exo_boot_steel", - "name": { "str": "exoskeleton boot plastic plate" }, + "copy-from": "exo_boot_steel", + "name": { "str": "exoskeleton plastic boot plate" }, "description": "Designed to attach to an exoskeleton's boot, this is a plate of plastic.", "weight": "3003 g", "volume": "3250 ml", "material": [ "plastic" ], "material_thickness": 3, - "non_functional": "destroyed_exo_boot_plastic_plate", + "non_functional": "destroyed_exo_boot_plastic_plate" }, { "id": "destroyed_exo_boot_plastic_plate", @@ -429,14 +560,14 @@ "id": "exo_boot_milcomp", "type": "ARMOR", "category": "armor", - "copy-from": "exo_boot_steel", - "name": { "str": "exoskeleton boot military composite plate" }, + "copy-from": "exo_boot_steel", + "name": { "str": "exoskeleton military composite boot plate" }, "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of military composite.", "weight": "38500 g", "volume": "3250 ml", "material": [ "hardsteel", "ceramic" ], "material_thickness": 8, - "non_functional": "destroyed_exo_boot_milcomp_plate", + "non_functional": "destroyed_exo_boot_milcomp_plate" }, { "id": "destroyed_exo_boot_milcomp_plate", @@ -446,5 +577,27 @@ "description": "The remains of a military composite boot plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_boot_milcomp", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] + }, + { + "id": "exo_boot_vcc", + "type": "ARMOR", + "category": "armor", + "copy-from": "exo_boot_steel", + "name": { "str": "exoskeleton vacuum-cast carbide boot plate" }, + "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of vacuum-cast carbide.", + "weight": "38500 g", + "volume": "3250 ml", + "material": [ "vacuum_carbide" ], + "material_thickness": 6, + "non_functional": "destroyed_exo_boot_vcc_plate" + }, + { + "id": "destroyed_exo_boot_vcc_plate", + "type": "ARMOR", + "copy-from": "exo_boot_vcc", + "name": { "str": "shattered military composite boot plate" }, + "description": "The remains of a vacuum-cast carbide boot plate after taking a strong impact. No longer provides functional protection, just weight.", + "looks_like": "exo_boot_vcc", + "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] } ] From adde90c1d43bb2b9c28d3c4e08575f71d20b3b18 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 00:59:28 -0800 Subject: [PATCH 118/189] Remove military composite --- .../modular_exos/modular_exoskeleton.json | 2 +- .../modular_exoskeleton_plating.json | 163 +----------------- 2 files changed, 6 insertions(+), 159 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index ce3764999442c..cdc95f3e8ba10 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -239,4 +239,4 @@ } ] } -] \ No newline at end of file +] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 60c2bfa08508d..3d7310d3a2963 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -38,28 +38,6 @@ "looks_like": "exo_helmet_plastic", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] }, - { - "id": "exo_helmet_milcomp", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_helmet_steel", - "name": { "str": "exoskeleton military composite helmet plate" }, - "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of military composite.", - "weight": "16500 g", - "volume": "5 L", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "non_functional": "destroyed_exo_helmet_milcomp_plate" - }, - { - "id": "destroyed_exo_helmet_milcomp_plate", - "type": "ARMOR", - "copy-from": "exo_helmet_milcomp", - "name": { "str": "shattered military composite helmet plate" }, - "description": "The remains of a military composite helmet plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_helmet_milcomp", - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] - }, { "id": "exo_helmet_vcc", "type": "ARMOR", @@ -116,33 +94,12 @@ "id": "destroyed_exo_torso_plastic_plate", "type": "ARMOR", "copy-from": "exo_torso_plastic", - "name": { "str": "shattered plastic leg plate" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", + "name": { "str": "shattered plastic torso plate" }, + "description": "The remains of a plastic torso plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_torso_plastic", "material_thickness": 3, "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] }, - { - "id": "exo_torso_milcomp", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_torso_steel", - "name": { "str": "exoskeleton military composite torso plate" }, - "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of military composite.", - "weight": "44000 g", - "volume": "8 L", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "non_functional": "destroyed_exo_torso_milcomp_plate" - }, - { - "id": "destroyed_exo_torso_milcomp_plate", - "type": "ARMOR", - "copy-from": "exo_torso_milcomp", - "name": { "str": "shattered military composite torso plate" }, - "description": "The remains of a military composite torso plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_torso_milcomp" - }, { "id": "exo_torso_vcc", "type": "ARMOR", @@ -160,7 +117,7 @@ "id": "destroyed_exo_torso_vcc_plate", "type": "ARMOR", "copy-from": "exo_torso_vcc", - "name": { "str": "shattered vacuum carbide plate" }, + "name": { "str": "shattered vacuum carbide torso plate" }, "description": "The remains of a vacuum-cast carbide torso plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_torso_vcc" }, @@ -203,28 +160,6 @@ "looks_like": "exo_psu_plastic", "material_thickness": 3 }, - { - "id": "exo_psu_milcomp", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_psu_steel", - "name": { "str": "exoskeleton military composite PSU plate" }, - "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of military composite.", - "weight": "55000 g", - "volume": "10 L", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "non_functional": "destroyed_exo_psu_milcomp_plate" - }, - { - "id": "destroyed_exo_psu_milcomp_plate", - "type": "ARMOR", - "copy-from": "exo_psu_milcomp", - "name": { "str": "shattered military composite PSU plate" }, - "description": "The remains of a military composite PSU plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_psu_milcomp", - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] - }, { "id": "exo_psu_vcc", "type": "ARMOR", @@ -297,28 +232,6 @@ "material_thickness": 3, "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, - { - "id": "exo_arm_milcomp", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_arm_steel", - "name": { "str": "exoskeleton military composite arm plate" }, - "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of military composite.", - "weight": "33000 g", - "volume": "5500 ml", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "non_functional": "destroyed_exo_arm_milcomp_plate" - }, - { - "id": "destroyed_exo_arm_milcomp_plate", - "type": "ARMOR", - "copy-from": "exo_arm_milcomp", - "name": { "str": "shattered military composite arm plate" }, - "description": "The remains of a military composite arm plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_arm_milcomp", - "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] - }, { "id": "exo_arm_vcc", "type": "ARMOR", @@ -381,28 +294,6 @@ "looks_like": "exo_glove_plastic", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] }, - { - "id": "exo_glove_milcomp", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_arm_steel", - "name": { "str": "exoskeleton military composite glove plate" }, - "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of military composite.", - "weight": "5500 g", - "volume": "1 ml", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "non_functional": "destroyed_exo_glove_milcomp_plate" - }, - { - "id": "destroyed_exo_glove_milcomp_plate", - "type": "ARMOR", - "copy-from": "exo_glove_milcomp", - "name": { "str": "shattered military composite glove plate" }, - "description": "The remains of a military composite glove plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_glove_milcomp", - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] - }, { "id": "exo_glove_vcc", "type": "ARMOR", @@ -412,7 +303,7 @@ "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of vacuum-cast composite.", "weight": "5500 g", "volume": "1 ml", - "material": [ "vacuum-cast" ], + "material": [ "vacuum_carbide" ], "material_thickness": 6, "non_functional": "destroyed_exo_glove_vcc_plate" }, @@ -474,28 +365,6 @@ "looks_like": "exo_leg_plastic", "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, - { - "id": "exo_leg_milcomp", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_leg_steel", - "name": { "str": "exoskeleton military composite legs plate" }, - "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of military composite.", - "weight": "38500 g", - "volume": "8 L", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "non_functional": "destroyed_exo_leg_milcomp_plate" - }, - { - "id": "destroyed_exo_leg_milcomp_plate", - "type": "ARMOR", - "copy-from": "exo_leg_milcomp", - "name": { "str": "shattered military composite leg plate" }, - "description": "The remains of a military composite leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_leg_milcomp", - "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] - }, { "id": "exo_leg_vcc", "type": "ARMOR", @@ -505,7 +374,7 @@ "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of vacuum-cast carbide.", "weight": "38500 g", "volume": "8 L", - "material": [ "vacuum-cast" ], + "material": [ "vacuum_carbide" ], "material_thickness": 6, "non_functional": "destroyed_exo_leg_vcc_plate" }, @@ -556,28 +425,6 @@ "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] }, - { - "id": "exo_boot_milcomp", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_boot_steel", - "name": { "str": "exoskeleton military composite boot plate" }, - "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of military composite.", - "weight": "38500 g", - "volume": "3250 ml", - "material": [ "hardsteel", "ceramic" ], - "material_thickness": 8, - "non_functional": "destroyed_exo_boot_milcomp_plate" - }, - { - "id": "destroyed_exo_boot_milcomp_plate", - "type": "ARMOR", - "copy-from": "exo_boot_milcomp", - "name": { "str": "shattered military composite boot plate" }, - "description": "The remains of a military composite boot plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_boot_milcomp", - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] - }, { "id": "exo_boot_vcc", "type": "ARMOR", From a5cf997533af3dd805c48242ec0c975a608056cf Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 10:07:53 -0800 Subject: [PATCH 119/189] Linting --- .../modular_exos/modular_exoskeleton.json | 2 +- .../modular_exoskeleton_plating.json | 44 +++++++++++-------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index cdc95f3e8ba10..ce3764999442c 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -239,4 +239,4 @@ } ] } -] +] \ No newline at end of file diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 3d7310d3a2963..7a2e367c62187 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -1,9 +1,14 @@ +Cataclysm: Dark Days Ahead JSON Web Linting Tool +This is a tool to help modders and editors of the open source game Cataclysm: Dark Days Ahead write JSON in the game's expected format. + +Paste some JSON into the field below and click "Lint" to run an autoformatter against it. + [ { "id": "exo_helmet_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton steel helmet plate" }, + "name": { "str": "steel exoskeleton helmet plate" }, "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of steel.", "weight": "12880 g", "volume": "5 L", @@ -21,7 +26,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_helmet_steel", - "name": { "str": "exoskeleton plastic helmet plate" }, + "name": { "str": "plastic exoskeleton helmet plate" }, "description": "Designed to attach to an exoskeleton's helmet, this is a plate of plastic.", "weight": "1287 g", "material": [ "plastic" ], @@ -43,7 +48,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_helmet_steel", - "name": { "str": "exoskeleton vacuum-cast carbide helmet plate" }, + "name": { "str": "vacuum-cast carbide exoskeleton helmet plate" }, "description": "Designed to attach to an exoskeleton's helmet, this is a plate of vacuum-cast carbide.", "weight": "1287 g", "material": [ "vacuum_carbide" ], @@ -64,7 +69,7 @@ "id": "exo_torso_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton steel torso plate" }, + "name": { "str": "steel exoskeleton torso plate" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", "weight": "34347 g", "volume": "8 L", @@ -82,7 +87,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_torso_steel", - "name": { "str": "exoskeleton plastic torso plate" }, + "name": { "str": "plastic exoskeleton torso plate" }, "description": "Designed to attach to an exoskeleton's torso, this is a plate of plastic.", "weight": "3432 g", "volume": "8 L", @@ -125,7 +130,7 @@ "id": "exo_psu_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton steel PSU plate" }, + "name": { "str": "steel exoskeleton PSU plate" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of steel.", "weight": "42933 g", "volume": "10 L", @@ -143,7 +148,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_psu_steel", - "name": { "str": "exoskeleton plastic PSU plate" }, + "name": { "str": "plastic exoskeleton PSU plate" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a plate of plastic.", "weight": "4290 g", "volume": "10 L", @@ -165,7 +170,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_psu_steel", - "name": { "str": "exoskeleton vacuum-cast carbide PSU plate" }, + "name": { "str": "vacuum-cast carbide exoskeleton PSU plate" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of vacuum-cast carbide.", "weight": "55000 g", "volume": "10 L", @@ -186,7 +191,7 @@ "id": "exo_arm_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton steel arm plate" }, + "name": { "str": "steel exoskeleton arm plate" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", "weight": "25760 g", "volume": "5500 ml", @@ -214,7 +219,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_arm_steel", - "name": { "str": "exoskeleton plastic arm plate" }, + "name": { "str": "plastic exoskeleton arm plate" }, "description": "Designed to attach to an exoskeleton's arms, these are plates of plastic.", "weight": "2574 g", "volume": "5500 ml", @@ -237,7 +242,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_arm_steel", - "name": { "str": "exoskeleton vacuum-cast carbide arm plate" }, + "name": { "str": "vacuum-cast carbide exoskeleton arm plate" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of vacuum-cast carbide.", "weight": "33000 g", "volume": "5500 ml", @@ -258,7 +263,7 @@ "id": "exo_glove_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton steel glove plate" }, + "name": { "str": "steel exoskeleton glove plate" }, "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of steel.", "weight": "4293 g", "volume": "1 ml", @@ -277,7 +282,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_glove_steel", - "name": { "str": "exoskeleton plastic glove plate" }, + "name": { "str": "plastic exoskeleton glove plate" }, "description": "Designed to attach to an exoskeleton's glove, this is a plate of plastic.", "weight": "429 g", "volume": "1 ml", @@ -320,7 +325,7 @@ "id": "exo_leg_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton steel legs plate" }, + "name": { "str": "steel exoskeleton legs plate" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", "weight": "30053 g", "volume": "8 L", @@ -348,7 +353,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_leg_steel", - "name": { "str": "exoskeleton plastic legs plate" }, + "name": { "str": "plastic exoskeleton legs plate" }, "description": "Designed to attach to an exoskeleton's legs, these are plates of plastic.", "weight": "3003 g", "volume": "8 L", @@ -370,7 +375,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_leg_steel", - "name": { "str": "exoskeleton vacuum-cast carbide legs plate" }, + "name": { "str": "vacuum-cast carbide exoskeleton legs plate" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of vacuum-cast carbide.", "weight": "38500 g", "volume": "8 L", @@ -391,7 +396,7 @@ "id": "exo_boot_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton steel boot plate" }, + "name": { "str": "steel exoskeleton boot plate" }, "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of steel.", "weight": "30053 g", "volume": "3250 ml", @@ -409,7 +414,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_boot_steel", - "name": { "str": "exoskeleton plastic boot plate" }, + "name": { "str": "plastic exoskeleton boot plate" }, "description": "Designed to attach to an exoskeleton's boot, this is a plate of plastic.", "weight": "3003 g", "volume": "3250 ml", @@ -430,7 +435,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_boot_steel", - "name": { "str": "exoskeleton vacuum-cast carbide boot plate" }, + "name": { "str": "vacuum-cast carbide exoskeleton boot plate" }, "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of vacuum-cast carbide.", "weight": "38500 g", "volume": "3250 ml", @@ -448,3 +453,4 @@ "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] } ] + From 6dc97f65b256cd9537ddc2333cbfb454b43d85e2 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 13:53:17 -0800 Subject: [PATCH 120/189] Remove invalid flags Two flags incorrectly listed --- src/flag.cpp | 2 -- src/flag.h | 2 -- 2 files changed, 4 deletions(-) diff --git a/src/flag.cpp b/src/flag.cpp index d24b93cc1a455..3f7aa91f8e02a 100644 --- a/src/flag.cpp +++ b/src/flag.cpp @@ -95,13 +95,11 @@ const flag_id flag_EXO_GLOVE_PLATE( "EXO_GLOVE_PLATE" ); const flag_id flag_EXO_HELMET_GADGET( "EXO_HELMET_GADGET" ); const flag_id flag_EXO_HELMET_PLATE( "EXO_HELMET_PLATE" ); const flag_id flag_EXO_LARGE_GADGET( "EXO_LARGE_GADGET" ); -const flag_id flag_EXO_LARGE( "EXO_LARGE" ); const flag_id flag_EXO_LEG_PLATE( "EXO_LEG_PLATE" ); const flag_id flag_EXO_MEDIUM_GADGET( "EXO_MEDIUM_GADGET" ); const flag_id flag_EXO_PSU_PLATE( "EXO_PSU_PLATE" ); const flag_id flag_EXO_PSU( "EXO_PSU" ); const flag_id flag_EXO_SMALL_GADGET( "EXO_SMALL_GADGET" ); -const flag_id flag_EXO_SMALL( "EXO_SMALL" ); const flag_id flag_EXO_TORSO_PLATE( "EXO_TORSO_PLATE" ); const flag_id flag_FAKE_MILL( "FAKE_MILL" ); const flag_id flag_FAKE_SMOKE( "FAKE_SMOKE" ); diff --git a/src/flag.h b/src/flag.h index e1438f7a7724b..e1dcc3ea2c60d 100644 --- a/src/flag.h +++ b/src/flag.h @@ -105,13 +105,11 @@ extern const flag_id flag_EXO_GLOVE_PLATE; extern const flag_id flag_EXO_HELMET_GADGET; extern const flag_id flag_EXO_HELMET_PLATE; extern const flag_id flag_EXO_LARGE_GADGET; -extern const flag_id flag_EXO_LARGE; extern const flag_id flag_EXO_LEG_PLATE; extern const flag_id flag_EXO_MEDIUM_GADGET; extern const flag_id flag_EXO_PSU_PLATE; extern const flag_id flag_EXO_PSU; extern const flag_id flag_EXO_SMALL_GADGET; -extern const flag_id flag_EXO_SMALL; extern const flag_id flag_EXO_TORSO_PLATE; extern const flag_id flag_FAKE_MILL; extern const flag_id flag_FAKE_SMOKE; From c12508b60259ba9a56a6b86926ff42e22f40e028 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:02:16 -0800 Subject: [PATCH 121/189] Remove _off Clean up item names --- .../modular_exos/modular_exoskeleton.json | 10 ++-- .../modular_exoskeleton_modules.json | 48 +++++++++---------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index ce3764999442c..e6df3a4cfe9e9 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -23,7 +23,7 @@ "flags": [ "USE_UPS", "SKINTIGHT", "WATERPROOF", "POWERARMOR_COMPATIBLE" ] }, { - "id": "modular_exoskeleton_off", + "id": "modular_exoskeleton", "type": "TOOL_ARMOR", "name": { "str": "exoskeleton frame", "str_pl": "exoskeleton frames" }, "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs.", @@ -138,8 +138,8 @@ }, { "id": "modular_exoskeleton_on", - "copy-from": "modular_exoskeleton_off", - "repairs_like": "modular_exoskeleton_off", + "copy-from": "modular_exoskeleton", + "repairs_like": "modular_exoskeleton", "looks_like": "power_armor_light", "type": "TOOL_ARMOR", "name": { "str": "exoskeleton frame (on)", "str_pl": "exoskeleton frames (on)" }, @@ -147,8 +147,8 @@ "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, "power_draw": 7123, - "revert_to": "modular_exoskeleton_off", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exoskeleton_off" } + "revert_to": "modular_exoskeleton", + "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exoskeleton" } }, { "id": "exoskeleton_helmet", diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index a398dd0deeac3..1175917f72648 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -96,7 +96,7 @@ "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 1000 } } ] }, { - "id": "exo_large_carry_off", + "id": "exo_large_carry", "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton large load support module (off)" }, @@ -140,17 +140,17 @@ "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 30000 } ] } ] }, "power_draw": 1500, - "revert_to": "exo_large_carry_off", + "revert_to": "exo_large_carry", "use_action": { "ammo_scale": 0, - "target": "exo_large_carry_off", + "target": "exo_large_carry", "msg": "You deactivate the module.", "menu_text": "Turn off module", "type": "transform" } }, { - "id": "exo_small_carry_off", + "id": "exo_small_carry", "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton small load support module (off)" }, @@ -194,17 +194,17 @@ "passive_effects": [ { "has": "HELD", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 20000 } ] } ] }, "power_draw": 1500, - "revert_to": "exo_small_carry_off", + "revert_to": "exo_small_carry", "use_action": { "ammo_scale": 0, - "target": "exo_small_carry_off", + "target": "exo_small_carry", "msg": "You deactivate the module.", "menu_text": "Turn off module", "type": "transform" } }, { - "id": "exo_flashlight_off", + "id": "exo_flashlight", "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "mounted lamp (off)", "str_pl": "mounted lamps (off)" }, @@ -228,11 +228,11 @@ }, { "id": "exo_flashlight_low", - "copy-from": "exo_flashlight_off", + "copy-from": "exo_flashlight", "type": "TOOL", "name": { "str": "mounted lamp (low)", "str_pl": "mounted lamps (low)" }, "power_draw": 1000, - "revert_to": "exo_flashlight_off", + "revert_to": "exo_flashlight", "use_action": { "ammo_scale": 0, "menu_text": "Turn to high", @@ -244,22 +244,22 @@ }, { "id": "exo_flashlight_high", - "copy-from": "exo_flashlight_off", + "copy-from": "exo_flashlight", "type": "TOOL", "name": { "str": "mounted lamp (high)", "str_pl": "mounted lamps (high)" }, "power_draw": 2000, - "revert_to": "exo_flashlight_off", + "revert_to": "exo_flashlight", "use_action": { "ammo_scale": 0, "menu_text": "Turn off", "type": "transform", "msg": "You turn the heavy duty flashlight off.", - "target": "exo_flashlight_off" + "target": "exo_flashlight" }, "flags": [ "LIGHT_500", "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET" ] }, { - "id": "exo_hearing_off", + "id": "exo_hearing", "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "audio protection (off)", "str_pl": "audio protection (off)" }, @@ -283,22 +283,22 @@ }, { "id": "exo_hearing_on", - "copy-from": "exo_hearing_off", + "copy-from": "exo_hearing", "type": "TOOL", "name": { "str": "audio protection (on)", "str_pl": "audio protection (on)" }, "power_draw": 500, - "revert_to": "exo_hearing_off", + "revert_to": "exo_hearing", "use_action": { "ammo_scale": 0, "menu_text": "Turn off", "type": "transform", "msg": "You turn off the helmet's audio protection.", - "target": "exo_hearing_off" + "target": "exo_hearing" }, "flags": [ "PARTIAL_DEAF", "USE_UPS", "CANT_WEAR", "EXO_HELMET_GADGET", "ONLY_ONE" ] }, { - "id": "exo_recoil_off", + "id": "exo_recoil", "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "recoil controller (off)", "str_pl": "recoil controller (off)" }, @@ -325,17 +325,17 @@ }, { "id": "exo_recoil_on", - "copy-from": "exo_recoil_off", + "copy-from": "exo_recoil", "type": "TOOL", "name": { "str": "recoil controller (on)", "str_pl": "recoil controllers (on)" }, "power_draw": 2000, - "revert_to": "exo_recoil_off", + "revert_to": "exo_recoil", "use_action": { "ammo_scale": 0, "menu_text": "Turn off", "type": "transform", "msg": "You turn off the recoil controller.", - "target": "exo_recoil_off" + "target": "exo_recoil" }, "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET", "ONLY_ONE" ], "relic_data": { @@ -343,7 +343,7 @@ } }, { - "id": "exo_optics_off", + "id": "exo_optics", "type": "TOOL_ARMOR", "category": "armor", "symbol": "8", @@ -369,17 +369,17 @@ }, { "id": "exo_optics_on", - "copy-from": "exo_optics_off", + "copy-from": "exo_optics", "type": "TOOL", "name": { "str": "exoskeleton enhanced optics (on)", "str_pl": "exoskeleton enhanced optics (on)" }, "power_draw": 500, - "revert_to": "exo_optics_off", + "revert_to": "exo_optics", "use_action": { "ammo_scale": 0, "menu_text": "Turn off", "type": "transform", "msg": "You turn off helmet's optical enhancement.", - "target": "exo_optics_off" + "target": "exo_optics" }, "flags": [ "ZOOM", "USE_UPS", "CANT_WEAR", "IR_EFFECT", "EXO_HELMET_GADGET", "ONLY_ONE" ] }, From 43145ea64cb64136aefa1377286145722f99ffdb Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:03:10 -0800 Subject: [PATCH 122/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json Co-authored-by: John Candlebury --- .../items/armor/modular_exos/modular_exoskeleton_modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 1175917f72648..83f63f0b04d9f 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -83,7 +83,7 @@ "id": "exo_small_aux_power", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton small APU" }, + "name": { "str": "exoskeleton small auxiliary battery" }, "description": "This is a small rechargable auxiliary power unit that attaches to an exoskeleton hardpoint.", "weight": "2 kg", "volume": "1 L", From 5a85bec766871194ce9d8addf37351731d6f9f33 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:04:34 -0800 Subject: [PATCH 123/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: John Candlebury --- .../items/armor/modular_exos/modular_exoskeleton.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index e6df3a4cfe9e9..9f671ac7373d0 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -6,7 +6,7 @@ "copy-from": "jumpsuit", "looks_like": "robofac_enviro_suit", "name": { "str": "exoskeleton undersuit" }, - "description": "A form-fitting suit inlaid with meant to be worn beneath power armor. Although not a requirement for the operation of power armor, it features climate control and haptic feedback systems that offer improved performance and comfort. The suit is not designed for use outside of armor, it has no pockets, offers nearly no protection and damages easily.", + "description": "A form-fitting suit meant to be worn beneath power armor. Although not a requirement for the operation of power armor, it features climate control and haptic feedback systems that offer improved performance and comfort while doing so. The suit is not designed for use outside of armor, it has no pockets, offers nearly no protection and damages easily.", "weight": "610 g", "volume": "3500 ml", "color": "brown", From 95578fcec8a5d901d319f3e1c4eff0be39c00501 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:06:01 -0800 Subject: [PATCH 124/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json Co-authored-by: John Candlebury --- .../items/armor/modular_exos/modular_exoskeleton_modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 83f63f0b04d9f..eaa6b0e25334a 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -3,7 +3,7 @@ "id": "exo_back_battery_rechargable", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton rechargable battery power supply" }, + "name": { "str": "exoskeleton power supply unit" }, "description": "Designed to attach to an exoskeleton's back, this is a large rechargable battery with an integrated UPS.", "weight": "15 kg", "volume": "20 L", From b2235d7998f3104df206d2586b74571711b8576f Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:06:08 -0800 Subject: [PATCH 125/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json Co-authored-by: John Candlebury --- .../items/armor/modular_exos/modular_exoskeleton_modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index eaa6b0e25334a..fa2471b9f0c6c 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -67,7 +67,7 @@ "id": "exo_large_aux_power", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton large APU" }, + "name": { "str": "exoskeleton auxiliary battery" }, "description": "This is a large rechargable auxiliary power unit that attaches to an exoskeleton hardpoint.", "weight": "5 kg", "volume": "5 L", From 23656d9bbd6028db4b9fa7810158c361514ebb59 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:06:22 -0800 Subject: [PATCH 126/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json Co-authored-by: John Candlebury --- .../items/armor/modular_exos/modular_exoskeleton_modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index fa2471b9f0c6c..c0267a22caa1c 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -386,7 +386,7 @@ { "id": "exoskeleton_helmet_filter", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton filter module" }, + "name": { "str": "exoskeleton filter mask" }, "category": "clothing", "description": "A gas filtration module for an exoskeleton helmet. Provides excellent protection from smoke, teargas, and other contaminants. It must be prepared before use.", "flags": [ "SLEEP_IGNORE", "EXO_HELMET_GADGET", "ONLY_ONE" ], From 5283485d0c3ec2b68b95cee007b25883d8ac3ce9 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:06:28 -0800 Subject: [PATCH 127/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json Co-authored-by: John Candlebury --- .../items/armor/modular_exos/modular_exoskeleton_modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index c0267a22caa1c..8ee8dde66a928 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -313,7 +313,7 @@ "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET", "ONLY_ONE" ], "use_action": { "type": "transform", - "msg": "You activate the helmet's audio enhancers.", + "msg": "You activate your suit's recoil dampeners.", "target": "exo_recoil_on", "active": true, "need_charges": 1, From dd16ac5025c3d308bc53ff11975f3797692d9b4e Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:06:33 -0800 Subject: [PATCH 128/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json Co-authored-by: John Candlebury --- .../items/armor/modular_exos/modular_exoskeleton_storage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 32ad9f84ace64..faf530906e659 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -18,7 +18,7 @@ "id": "exo_melee_storage", "copy-from": "bscabbard", "type": "ARMOR", - "name": { "str": "large storage pouch" }, + "name": { "str": "exoskeleton scabbard" }, "description": "A hardpoint for storing a sword. Activate to sheath/draw a sword .", "weight": "454 g", "volume": "2 L", From 5da5234d9cf1890bc1d31596220b702ea42a0ef7 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:06:38 -0800 Subject: [PATCH 129/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json Co-authored-by: John Candlebury --- .../items/armor/modular_exos/modular_exoskeleton_storage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index faf530906e659..bdf7ba8b5f4a6 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -19,7 +19,7 @@ "copy-from": "bscabbard", "type": "ARMOR", "name": { "str": "exoskeleton scabbard" }, - "description": "A hardpoint for storing a sword. Activate to sheath/draw a sword .", + "description": "A metallic scabbard mountable on an exoskeleton hard point. Can be activated to sheath or draw a sword .", "weight": "454 g", "volume": "2 L", "price": 18000, From f956b0c444f32419ea1e360192e44a0bdf07b266 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:06:43 -0800 Subject: [PATCH 130/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json Co-authored-by: John Candlebury --- .../items/armor/modular_exos/modular_exoskeleton_modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 8ee8dde66a928..3b804dc9c824a 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -301,7 +301,7 @@ "id": "exo_recoil", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "recoil controller (off)", "str_pl": "recoil controller (off)" }, + "name": { "str": "recoil mitigation system (off)", "str_pl": "recoil mitigation systems (off)" }, "description": "This module takes partial control of the exoskeleton while firing, damping recoil. Activate before firing.", "weight": "500 g", "volume": "500 ml", From aa4874e2674eeb2bc3b8f16c5947e245ed952412 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 15 Dec 2021 23:41:27 -0800 Subject: [PATCH 131/189] Linting Merged changes from Candlebury, relinted files. --- .../items/armor/modular_exos/modular_exoskeleton.json | 3 ++- .../armor/modular_exos/modular_exoskeleton_modules.json | 2 +- .../armor/modular_exos/modular_exoskeleton_plating.json | 6 ------ 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 9f671ac7373d0..e8e5ada299b8f 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -239,4 +239,5 @@ } ] } -] \ No newline at end of file +] + diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 3b804dc9c824a..fe1d19f0ab2f8 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -403,4 +403,4 @@ "ammo": "gasfilter_m", "use_action": [ "GASMASK" ] } -] \ No newline at end of file +] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 7a2e367c62187..4bfe7d060da5e 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -1,8 +1,3 @@ -Cataclysm: Dark Days Ahead JSON Web Linting Tool -This is a tool to help modders and editors of the open source game Cataclysm: Dark Days Ahead write JSON in the game's expected format. - -Paste some JSON into the field below and click "Lint" to run an autoformatter against it. - [ { "id": "exo_helmet_steel", @@ -453,4 +448,3 @@ Paste some JSON into the field below and click "Lint" to run an autoformatter ag "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] } ] - From f43a28966ae4131406898b2a4a092edf6cb3e432 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 16 Dec 2021 11:03:55 -0800 Subject: [PATCH 132/189] cpp fixes --- .../items/armor/modular_exos/modular_exoskeleton.json | 3 +-- src/flag.cpp | 2 +- src/flag.h | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index e8e5ada299b8f..9f671ac7373d0 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -239,5 +239,4 @@ } ] } -] - +] \ No newline at end of file diff --git a/src/flag.cpp b/src/flag.cpp index 3f7aa91f8e02a..3cc0513727d8e 100644 --- a/src/flag.cpp +++ b/src/flag.cpp @@ -97,8 +97,8 @@ const flag_id flag_EXO_HELMET_PLATE( "EXO_HELMET_PLATE" ); const flag_id flag_EXO_LARGE_GADGET( "EXO_LARGE_GADGET" ); const flag_id flag_EXO_LEG_PLATE( "EXO_LEG_PLATE" ); const flag_id flag_EXO_MEDIUM_GADGET( "EXO_MEDIUM_GADGET" ); -const flag_id flag_EXO_PSU_PLATE( "EXO_PSU_PLATE" ); const flag_id flag_EXO_PSU( "EXO_PSU" ); +const flag_id flag_EXO_PSU_PLATE( "EXO_PSU_PLATE" ); const flag_id flag_EXO_SMALL_GADGET( "EXO_SMALL_GADGET" ); const flag_id flag_EXO_TORSO_PLATE( "EXO_TORSO_PLATE" ); const flag_id flag_FAKE_MILL( "FAKE_MILL" ); diff --git a/src/flag.h b/src/flag.h index e1dcc3ea2c60d..4740569a49cea 100644 --- a/src/flag.h +++ b/src/flag.h @@ -107,8 +107,8 @@ extern const flag_id flag_EXO_HELMET_PLATE; extern const flag_id flag_EXO_LARGE_GADGET; extern const flag_id flag_EXO_LEG_PLATE; extern const flag_id flag_EXO_MEDIUM_GADGET; -extern const flag_id flag_EXO_PSU_PLATE; extern const flag_id flag_EXO_PSU; +extern const flag_id flag_EXO_PSU_PLATE; extern const flag_id flag_EXO_SMALL_GADGET; extern const flag_id flag_EXO_TORSO_PLATE; extern const flag_id flag_FAKE_MILL; From 1eb9e0217243c9e075ed1efd998bdad7a5722fe1 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 16 Dec 2021 13:49:04 -0800 Subject: [PATCH 133/189] Update modular_exoskeleton.json --- .../items/armor/modular_exos/modular_exoskeleton.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 9f671ac7373d0..7c9722d32263a 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -239,4 +239,4 @@ } ] } -] \ No newline at end of file +] From 99db6a3d57ef13ea0549ab1a0d8b9b93cd5c26b1 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 17 Dec 2021 10:01:18 -0800 Subject: [PATCH 134/189] Restart tests --- data/mods/Aftershock/items/armor/modular_exos/exo_gear.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 967bf8c0a3110..5d5a52cff403b 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -45,7 +45,7 @@ "copy-from": "afs_hydraulic_gauntlet", "type": "ARMOR", "name": { "str": "exoskeleton hydraulic gauntlet" }, - "description": "A huge, heavy metal gauntlet lined with tubing and gauges, worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively. ", + "description": "A huge and heavy metal gauntlet lined with tubing and gauges, worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively. ", "looks_like": "gauntlets_chitin", "color": "light_gray", "bashing": 50, From fb7ea8f63807768d0b69d0e9f5fac9d6577f35cc Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 17 Dec 2021 10:01:31 -0800 Subject: [PATCH 135/189] Update exo_gear.json --- data/mods/Aftershock/items/armor/modular_exos/exo_gear.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 5d5a52cff403b..967bf8c0a3110 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -45,7 +45,7 @@ "copy-from": "afs_hydraulic_gauntlet", "type": "ARMOR", "name": { "str": "exoskeleton hydraulic gauntlet" }, - "description": "A huge and heavy metal gauntlet lined with tubing and gauges, worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively. ", + "description": "A huge, heavy metal gauntlet lined with tubing and gauges, worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively. ", "looks_like": "gauntlets_chitin", "color": "light_gray", "bashing": 50, From 304818954fa8400e0dc7dc97d3fa04d6864fd7e1 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 17 Dec 2021 10:07:52 -0800 Subject: [PATCH 136/189] Update exo_gear.json --- data/mods/Aftershock/items/armor/modular_exos/exo_gear.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 967bf8c0a3110..878c8766a5dda 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -45,7 +45,7 @@ "copy-from": "afs_hydraulic_gauntlet", "type": "ARMOR", "name": { "str": "exoskeleton hydraulic gauntlet" }, - "description": "A huge, heavy metal gauntlet lined with tubing and gauges, worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively. ", + "description": "A huge, heavy metal gauntlet lined with tubing and gauges, worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively. ", "looks_like": "gauntlets_chitin", "color": "light_gray", "bashing": 50, From 42676bea326d106cfae72a15dc4d0b54184ce306 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 17 Dec 2021 11:47:40 -0800 Subject: [PATCH 137/189] Update flags.json --- data/json/flags.json | 88 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 79 insertions(+), 9 deletions(-) diff --git a/data/json/flags.json b/data/json/flags.json index e3afcc51eecb2..e52ab90cadedc 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -1847,12 +1847,6 @@ "id": "CHOKE", "type": "json_flag" }, - { - "id": "LASER_SIGHT", - "type": "json_flag", - "info": "Invalid when the target position is too far or too bright.", - "name": "laser sight" - }, { "id": "GAS_TANK", "type": "json_flag", @@ -1860,9 +1854,15 @@ "name": "gas tank" }, { - "id": "EXO_SMALL", - "type": "json_flag", - "info": "This is meant for a small exoskeleton hardpoint." + "id": "LASER_SIGHT", + "type": "json_flag", + "info": "Invalid when the target position is too far or too bright.", + "name": "laser sight" + }, + { + "id": "EXO_SMALL", + "type": "json_flag", + "info": "This is meant for a small exoskeleton hardpoint." }, { "id": "EXO_LARGE", @@ -1928,5 +1928,75 @@ "id": "EXO_BOOT_PLATE", "type": "json_flag", "info": "This is meant for exoskeleton foot plating." + }, + { + "type": "json flag", + "info": "This is meant for a small exoskeleton hardpoint." + }, + { + "id": "EXO_LARGE", + "type": "json flag", + "info": "This is meant for a large exoskeleton hardpoint." + }, + { + "id": "EXO_PSU", + "type": "json flag", + "info": "This is meant for an exoskeleton PSU hardpoint." + }, + { + "id": "EXO_SMALL_GADGET", + "type": "json flag", + "info": "This is meant for small exoskeleton gadgets, 1 L or less." + }, + { + "id": "EXO_HELMET_GADGET", + "type": "json flag", + "info": "This is meant for helmet-specific gadgets." + }, + { + "id": "EXO_MEDIUM_GADGET", + "type": "json flag", + "info": "This is meant for medium exoskeleton gadgets, between 1 L and 5 L." + }, + { + "id": "EXO_LARGE_GADGET", + "type": "json flag", + "info": "This is meant for large exoskeleton gadgets, larger than 5 L." + }, + { + "id": "EXO_HELMET_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton helmet plating." + }, + { + "id": "EXO_TORSO_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton torso plating." + }, + { + "id": "EXO_PSU_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton PSU plating." + }, + { + "id": "EXO_ARM_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton arm plating." + }, + { + { + "id": "EXO_GLOVE_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton arm plating." + }, + { + "id": "EXO_LEG_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton leg plating." + }, + { + "id": "EXO_BOOT_PLATE", + "type": "json flag", + "info": "This is meant for exoskeleton foot plating." } ] From 653068021cd765c8397b57e2e7ffc4d1bdfa4b97 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 17 Dec 2021 15:03:08 -0800 Subject: [PATCH 138/189] Update flags.json --- data/json/flags.json | 1 - 1 file changed, 1 deletion(-) diff --git a/data/json/flags.json b/data/json/flags.json index e52ab90cadedc..4c506717506de 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -1984,7 +1984,6 @@ "info": "This is meant for exoskeleton arm plating." }, { - { "id": "EXO_GLOVE_PLATE", "type": "json flag", "info": "This is meant for exoskeleton arm plating." From e02203116f75783365b66bd76d0d532780c69e2e Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 17 Dec 2021 16:00:50 -0800 Subject: [PATCH 139/189] Update flags.json --- data/json/flags.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/json/flags.json b/data/json/flags.json index 4c506717506de..e52ab90cadedc 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -1984,6 +1984,7 @@ "info": "This is meant for exoskeleton arm plating." }, { + { "id": "EXO_GLOVE_PLATE", "type": "json flag", "info": "This is meant for exoskeleton arm plating." From 96f50889b3f63b71fb7860c47d14f8a6d4a63426 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 17 Dec 2021 21:18:55 -0800 Subject: [PATCH 140/189] Update flags.json --- data/json/flags.json | 73 ++++++++++++++++++++++---------------------- 1 file changed, 36 insertions(+), 37 deletions(-) diff --git a/data/json/flags.json b/data/json/flags.json index e52ab90cadedc..eed13b38877e2 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -1939,64 +1939,63 @@ "info": "This is meant for a large exoskeleton hardpoint." }, { - "id": "EXO_PSU", - "type": "json flag", - "info": "This is meant for an exoskeleton PSU hardpoint." + "id": "EXO_PSU", + "type": "json_flag", + "info": "This is meant for an exoskeleton PSU hardpoint." }, { - "id": "EXO_SMALL_GADGET", - "type": "json flag", - "info": "This is meant for small exoskeleton gadgets, 1 L or less." + "id": "EXO_SMALL_GADGET", + "type": "json_flag", + "info": "This is meant for small exoskeleton gadgets, 1 L or less." }, { - "id": "EXO_HELMET_GADGET", - "type": "json flag", - "info": "This is meant for helmet-specific gadgets." + "id": "EXO_HELMET_GADGET", + "type": "json_flag", + "info": "This is meant for helmet-specific gadgets." }, { - "id": "EXO_MEDIUM_GADGET", - "type": "json flag", - "info": "This is meant for medium exoskeleton gadgets, between 1 L and 5 L." + "id": "EXO_MEDIUM_GADGET", + "type": "json_flag", + "info": "This is meant for medium exoskeleton gadgets, between 1 L and 5 L." }, { - "id": "EXO_LARGE_GADGET", - "type": "json flag", - "info": "This is meant for large exoskeleton gadgets, larger than 5 L." + "id": "EXO_LARGE_GADGET", + "type": "json_flag", + "info": "This is meant for large exoskeleton gadgets, larger than 5 L." }, { - "id": "EXO_HELMET_PLATE", - "type": "json flag", - "info": "This is meant for exoskeleton helmet plating." + "id": "EXO_HELMET_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton helmet plating." }, { - "id": "EXO_TORSO_PLATE", - "type": "json flag", - "info": "This is meant for exoskeleton torso plating." + "id": "EXO_TORSO_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton torso plating." }, { - "id": "EXO_PSU_PLATE", - "type": "json flag", - "info": "This is meant for exoskeleton PSU plating." + "id": "EXO_PSU_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton PSU plating." }, { - "id": "EXO_ARM_PLATE", - "type": "json flag", - "info": "This is meant for exoskeleton arm plating." + "id": "EXO_ARM_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton arm plating." }, { - { - "id": "EXO_GLOVE_PLATE", - "type": "json flag", - "info": "This is meant for exoskeleton arm plating." + "id": "EXO_GLOVE_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton arm plating." }, { - "id": "EXO_LEG_PLATE", - "type": "json flag", - "info": "This is meant for exoskeleton leg plating." + "id": "EXO_LEG_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton leg plating." }, { - "id": "EXO_BOOT_PLATE", - "type": "json flag", - "info": "This is meant for exoskeleton foot plating." + "id": "EXO_BOOT_PLATE", + "type": "json_flag", + "info": "This is meant for exoskeleton foot plating." } ] From cf707346723d8c27386ff47ed4f1fc64706461d9 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sat, 18 Dec 2021 19:29:37 -0800 Subject: [PATCH 141/189] Text corrections --- .../Aftershock/items/armor/modular_exos/exo_gear.json | 10 +++++----- .../items/armor/modular_exos/modular_exoskeleton.json | 2 +- data/mods/Aftershock/items/vehicle_items.json | 4 ++-- data/mods/Aftershock/vehicles/vehicle_parts.json | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 878c8766a5dda..665c1895ad044 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -2,9 +2,9 @@ { "id": "exo_mounted_drill", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton mounted drill" }, + "name": { "str": "exoskeleton mounted drill", "str_pl": "exoskeleton mounted drills" }, "category": "tool", - "description": "A powerful header drill with tough carbide bits, this tool mounts to the exoskeleton's arm and extends past the hand. While turned off, it still makes a powerful mace.", + "description": "A powerful header drill with tough carbide bits, this tool mounts to the exoskeleton's arm and extends past the hand. While turned off, it still makes a powerful mace.", "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], "weight": "40000 g", "volume": "5 L", @@ -31,8 +31,8 @@ "id": "exo_mounted_drill_on", "type": "TOOL_ARMOR", "copy-from": "exo_mounted_drill", - "name": { "str": "exoskeleton mounted drill (on)" }, - "description": "The drill is now rotating and making a low growling noise. Meant to make short work of the toughest rock, it should work on more mobile surfaces as well. Use it to turn it off.", + "name": { "str": "exoskeleton mounted drill (on)", "str_pl": "exoskeleton mounted drills (on)" }, + "description": "The drill is now rotating and making a low growling noise. Meant to make short work of the toughest rock, it should work on more mobile surfaces as well. Use it to turn it off.", "flags": [ "USE_UPS", "MESSY", "POWERED", "DURABLE_MELEE", "DIG_TOOL", "POWERARMOR_COMPATIBLE" ], "bashing": 60, "cutting": 20, @@ -45,7 +45,7 @@ "copy-from": "afs_hydraulic_gauntlet", "type": "ARMOR", "name": { "str": "exoskeleton hydraulic gauntlet" }, - "description": "A huge, heavy metal gauntlet lined with tubing and gauges, worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively. ", + "description": "A huge, heavy metal gauntlet lined with tubing and gauges, worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively.", "looks_like": "gauntlets_chitin", "color": "light_gray", "bashing": 50, diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 7c9722d32263a..f129274971c08 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -25,7 +25,7 @@ { "id": "modular_exoskeleton", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton frame", "str_pl": "exoskeleton frames" }, + "name": { "str": "exoskeleton frame" }, "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs.", "weight": "40 kg", "volume": "130 L", diff --git a/data/mods/Aftershock/items/vehicle_items.json b/data/mods/Aftershock/items/vehicle_items.json index 819d204022f61..8f4eeed498cbc 100644 --- a/data/mods/Aftershock/items/vehicle_items.json +++ b/data/mods/Aftershock/items/vehicle_items.json @@ -20,7 +20,7 @@ "type": "GENERIC", "id": "exo_gantry", "copy-from": "vehicle_rig", - "name": { "str": "exoskeleton maintenance gantry", "str_pl": "exoskeleton maintenance gantry" }, - "description": "A gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active." + "name": { "str_sp": "exoskeleton maintenance gantry" }, + "description": "A gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active." } ] diff --git a/data/mods/Aftershock/vehicles/vehicle_parts.json b/data/mods/Aftershock/vehicles/vehicle_parts.json index 59c93ebdabd84..ac6377ca841c7 100644 --- a/data/mods/Aftershock/vehicles/vehicle_parts.json +++ b/data/mods/Aftershock/vehicles/vehicle_parts.json @@ -368,7 +368,7 @@ { "type": "vehicle_part", "id": "exo_gantry", - "name": { "str": "exoskeleton maintenance gantry" }, + "name": { "str_sp": "exoskeleton maintenance gantry" }, "symbol": "T", "categories": [ "utility" ], "color": "light_gray", @@ -377,7 +377,7 @@ "looks_like": "welding_rig", "damage_modifier": 10, "durability": 200, - "description": "A gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active.", + "description": "A gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active.", "size": 800, "bonus": 600, "item": "afs_metal_rig", From 44f51822719c5144689069aa224f2e873788b857 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sat, 18 Dec 2021 21:24:45 -0800 Subject: [PATCH 142/189] text updates --- .../items/armor/modular_exos/exo_gear.json | 4 ++-- .../armor/modular_exos/modular_exoskeleton.json | 12 ++++++------ data/mods/Aftershock/items/vehicle_items.json | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 665c1895ad044..16ee9bafce02c 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -2,7 +2,7 @@ { "id": "exo_mounted_drill", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton mounted drill", "str_pl": "exoskeleton mounted drills" }, + "name": { "str": "exoskeleton mounted drill" }, "category": "tool", "description": "A powerful header drill with tough carbide bits, this tool mounts to the exoskeleton's arm and extends past the hand. While turned off, it still makes a powerful mace.", "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], @@ -31,7 +31,7 @@ "id": "exo_mounted_drill_on", "type": "TOOL_ARMOR", "copy-from": "exo_mounted_drill", - "name": { "str": "exoskeleton mounted drill (on)", "str_pl": "exoskeleton mounted drills (on)" }, + "name": { "str": "exoskeleton mounted drill (on)" }, "description": "The drill is now rotating and making a low growling noise. Meant to make short work of the toughest rock, it should work on more mobile surfaces as well. Use it to turn it off.", "flags": [ "USE_UPS", "MESSY", "POWERED", "DURABLE_MELEE", "DIG_TOOL", "POWERARMOR_COMPATIBLE" ], "bashing": 60, diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index f129274971c08..21db98716be89 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -26,7 +26,7 @@ "id": "modular_exoskeleton", "type": "TOOL_ARMOR", "name": { "str": "exoskeleton frame" }, - "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs.", + "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs.", "weight": "40 kg", "volume": "130 L", "material": [ "titanium" ], @@ -143,7 +143,7 @@ "looks_like": "power_armor_light", "type": "TOOL_ARMOR", "name": { "str": "exoskeleton frame (on)", "str_pl": "exoskeleton frames (on)" }, - "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on and continually drawing power. Use it to turn it off.", + "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on and continually drawing power. Use it to turn it off.", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, "power_draw": 7123, @@ -154,7 +154,7 @@ "id": "exoskeleton_helmet", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton helmet", "str_pl": "exoskeleton helmet" }, + "name": { "str": "exoskeleton helmet", "str_pl": "exoskeleton helmets" }, "description": "This is a helmet offering mounts for specialized equipment and protection.", "weight": "2500 g", "volume": "5 L", @@ -189,8 +189,8 @@ "id": "exoskeleton_boots", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton boots", "str_pl": "exoskeleton boots" }, - "description": "This is a pair of exoskeleton boots. Has mounting points for protective plate.", + "name": { "str_sp": "exoskeleton boots" }, + "description": "This is a pair of exoskeleton boots. Has mounting points for protective plate.", "weight": "2000 g", "volume": "3250 ml", "material": [ "titanium", "plastic" ], @@ -217,7 +217,7 @@ "type": "ARMOR", "category": "armor", "name": { "str": "exoskeleton gloves", "str_pl": "exoskeleton gloves" }, - "description": "This is a pair of exoskeleton gloves. Has mounting points for protective plate.", + "description": "This is a pair of exoskeleton gloves. Has mounting points for protective plate.", "weight": "1000 g", "volume": "1500 ml", "material": [ "titanium", "plastic" ], diff --git a/data/mods/Aftershock/items/vehicle_items.json b/data/mods/Aftershock/items/vehicle_items.json index 8f4eeed498cbc..0c5cfa9738580 100644 --- a/data/mods/Aftershock/items/vehicle_items.json +++ b/data/mods/Aftershock/items/vehicle_items.json @@ -20,7 +20,7 @@ "type": "GENERIC", "id": "exo_gantry", "copy-from": "vehicle_rig", - "name": { "str_sp": "exoskeleton maintenance gantry" }, + "name": "exoskeleton maintenance gantry", "description": "A gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active." } ] From d9aec253ebb260a6cfaa4ba656182c7ba1da5084 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sun, 19 Dec 2021 00:27:20 -0800 Subject: [PATCH 143/189] Restarting tests --- data/mods/Aftershock/items/armor/modular_exos/exo_gear.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 16ee9bafce02c..d5df747efde69 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -45,7 +45,7 @@ "copy-from": "afs_hydraulic_gauntlet", "type": "ARMOR", "name": { "str": "exoskeleton hydraulic gauntlet" }, - "description": "A huge, heavy metal gauntlet lined with tubing and gauges, worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively.", + "description": "A huge, heavy metal gauntlet lined with tubing and gauges worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively.", "looks_like": "gauntlets_chitin", "color": "light_gray", "bashing": 50, From 1a400ae1ce8f7659ab327399453b015042055d98 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sun, 19 Dec 2021 11:44:09 -0800 Subject: [PATCH 144/189] Text fixes --- .../items/armor/modular_exos/exo_gear.json | 2 +- .../modular_exos/modular_exoskeleton.json | 4 ++-- .../modular_exoskeleton_modules.json | 22 +++++++++---------- .../Aftershock/vehicles/vehicle_parts.json | 2 +- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index d5df747efde69..6fb7114ab364e 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -2,7 +2,7 @@ { "id": "exo_mounted_drill", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton mounted drill" }, + "name": { "str": "exoskeleton mounted drill", "str_pl": "exoskeleton mounted drills" }, "category": "tool", "description": "A powerful header drill with tough carbide bits, this tool mounts to the exoskeleton's arm and extends past the hand. While turned off, it still makes a powerful mace.", "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 21db98716be89..f937550fb5f25 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -154,7 +154,7 @@ "id": "exoskeleton_helmet", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton helmet", "str_pl": "exoskeleton helmets" }, + "name": { "str": "exoskeleton helmet" }, "description": "This is a helmet offering mounts for specialized equipment and protection.", "weight": "2500 g", "volume": "5 L", @@ -216,7 +216,7 @@ "id": "exoskeleton_gloves", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton gloves", "str_pl": "exoskeleton gloves" }, + "name": { "str_sp": "exoskeleton gloves" }, "description": "This is a pair of exoskeleton gloves. Has mounting points for protective plate.", "weight": "1000 g", "volume": "1500 ml", diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index fe1d19f0ab2f8..d443f09119230 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -33,7 +33,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton ICE power supply" }, - "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS. This unit is large and occupies the rear hardpoints.", + "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS. This unit is large and occupies the rear hardpoints.", "weight": "20 kg", "volume": "25 L", "material": [ "steel", "plastic" ], @@ -99,7 +99,7 @@ "id": "exo_large_carry", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton large load support module (off)" }, + "name": { "str": "exoskeleton large load support module (off)", "str_pl": "exoskeleton large load support modules (off)" }, "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power cosumption.", "weight": "10 kg", "volume": "5 L", @@ -126,8 +126,8 @@ "id": "exo_large_carry_on", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton large load support module (on)" }, - "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power cosumption. It is turned on and continually drawing power. Use it to turn it off.", + "name": { "str": "exoskeleton large load support module (on)", "str_pl": "exoskeleton large load support modules (on)" }, + "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power cosumption. It is turned on and continually drawing power. Use it to turn it off.", "weight": "10 kg", "volume": "5 L", "material": [ "plastic", "steel" ], @@ -153,7 +153,7 @@ "id": "exo_small_carry", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton small load support module (off)" }, + "name": { "str": "exoskeleton small load support module (off)", "str_pl": "exoskeleton small load support modules (off)" }, "description": "This module increases the exoskeleton's weight bearing at the cost of increased power cosumption.", "weight": "2 kg", "volume": "1 L", @@ -180,8 +180,8 @@ "id": "exo_small_carry_on", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton small load support module (on)" }, - "description": "This module increases the exoskeleton's weight bearing at the cost of increased power cosumption. It is turned on and continually drawing power. Use it to turn it off.", + "name": { "str": "exoskeleton small load support module (on)", "str_pl": "exoskeleton small load support modules (on)" }, + "description": "This module increases the exoskeleton's weight bearing at the cost of increased power cosumption. It is turned on and continually drawing power. Use it to turn it off.", "weight": "2 kg", "volume": "1 L", "material": [ "plastic", "steel" ], @@ -208,7 +208,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "mounted lamp (off)", "str_pl": "mounted lamps (off)" }, - "description": "This is a light that can be secured to an exoskeleton hardpoint. It has two levels of brightness.", + "description": "This is a light that can be secured to an exoskeleton hardpoint. It has two levels of brightness.", "weight": "500 g", "volume": "500 ml", "material": [ "steel", "plastic" ], @@ -263,7 +263,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "audio protection (off)", "str_pl": "audio protection (off)" }, - "description": "This is an audio protection exoskeleton module. While active, it also protects your hearing from loud noises.", + "description": "This is an audio protection exoskeleton module. While active, it also protects your hearing from loud noises.", "weight": "500 g", "volume": "500 ml", "material": [ "steel", "plastic" ], @@ -302,7 +302,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "recoil mitigation system (off)", "str_pl": "recoil mitigation systems (off)" }, - "description": "This module takes partial control of the exoskeleton while firing, damping recoil. Activate before firing.", + "description": "This module takes partial control of the exoskeleton while firing, damping recoil. Activate before firing.", "weight": "500 g", "volume": "500 ml", "material": [ "steel", "plastic" ], @@ -349,7 +349,7 @@ "symbol": "8", "color": "light_gray", "name": { "str": "exoskeleton enhanced optics (off)", "str_pl": "exoskeleton enhanced optics (off)" }, - "description": "A set of enhanced optics for an exoskeleton. Provides telescopic vision as well as protection from glare and bright flashes of light. Activate to enable infrared vision.", + "description": "A set of enhanced optics for an exoskeleton. Provides telescopic vision as well as protection from glare and bright flashes of light. Activate to enable infrared vision.", "price": 30000, "price_postapoc": 500, "material": [ "plastic", "glass" ], diff --git a/data/mods/Aftershock/vehicles/vehicle_parts.json b/data/mods/Aftershock/vehicles/vehicle_parts.json index ac6377ca841c7..d73f7c16c9ef8 100644 --- a/data/mods/Aftershock/vehicles/vehicle_parts.json +++ b/data/mods/Aftershock/vehicles/vehicle_parts.json @@ -368,7 +368,7 @@ { "type": "vehicle_part", "id": "exo_gantry", - "name": { "str_sp": "exoskeleton maintenance gantry" }, + "name": { "str: "exoskeleton maintenance gantry" }, "symbol": "T", "categories": [ "utility" ], "color": "light_gray", From 02d791ca132d2381e2c024953387d350c0ce47f5 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sun, 19 Dec 2021 22:09:12 -0800 Subject: [PATCH 145/189] Update exo_gear.json --- data/mods/Aftershock/items/armor/modular_exos/exo_gear.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 6fb7114ab364e..8baaf4e8b17b0 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -2,7 +2,7 @@ { "id": "exo_mounted_drill", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton mounted drill", "str_pl": "exoskeleton mounted drills" }, + "name": { "str": "exoskeleton mounted drill", "str_pl": "exoskeleton mounted drills" }, "category": "tool", "description": "A powerful header drill with tough carbide bits, this tool mounts to the exoskeleton's arm and extends past the hand. While turned off, it still makes a powerful mace.", "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], From f27d25e2b4ef453d9f9106487cebc38d485cc4fb Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sun, 19 Dec 2021 22:43:55 -0800 Subject: [PATCH 146/189] Update vehicle_parts.json --- data/mods/Aftershock/vehicles/vehicle_parts.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/vehicles/vehicle_parts.json b/data/mods/Aftershock/vehicles/vehicle_parts.json index d73f7c16c9ef8..8b0469d312eaf 100644 --- a/data/mods/Aftershock/vehicles/vehicle_parts.json +++ b/data/mods/Aftershock/vehicles/vehicle_parts.json @@ -368,7 +368,7 @@ { "type": "vehicle_part", "id": "exo_gantry", - "name": { "str: "exoskeleton maintenance gantry" }, + "name": { "str": "exoskeleton maintenance gantry" }, "symbol": "T", "categories": [ "utility" ], "color": "light_gray", From 8e4abbf30f12e8a60708e19fc4766cf5cce671b6 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 20 Dec 2021 10:05:38 -0800 Subject: [PATCH 147/189] Update exo_gear.json --- data/mods/Aftershock/items/armor/modular_exos/exo_gear.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 8baaf4e8b17b0..a6b12ca58aac0 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -2,7 +2,7 @@ { "id": "exo_mounted_drill", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton mounted drill", "str_pl": "exoskeleton mounted drills" }, + "name": { "str": "exoskeleton mounted drill" }, "category": "tool", "description": "A powerful header drill with tough carbide bits, this tool mounts to the exoskeleton's arm and extends past the hand. While turned off, it still makes a powerful mace.", "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], @@ -31,7 +31,7 @@ "id": "exo_mounted_drill_on", "type": "TOOL_ARMOR", "copy-from": "exo_mounted_drill", - "name": { "str": "exoskeleton mounted drill (on)" }, + "name": { "str": "exoskeleton mounted drill (on)", "str_pl": "exoskeleton mounted drills (on)" }, "description": "The drill is now rotating and making a low growling noise. Meant to make short work of the toughest rock, it should work on more mobile surfaces as well. Use it to turn it off.", "flags": [ "USE_UPS", "MESSY", "POWERED", "DURABLE_MELEE", "DIG_TOOL", "POWERARMOR_COMPATIBLE" ], "bashing": 60, From aa23aef32c8541fae1878913e1a08c50cd50a8b5 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 20 Dec 2021 11:02:35 -0800 Subject: [PATCH 148/189] Single/plural fixes --- .../armor/modular_exos/modular_exoskeleton_modules.json | 8 ++++---- .../armor/modular_exos/modular_exoskeleton_storage.json | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index d443f09119230..8c27704dfe75c 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -262,7 +262,7 @@ "id": "exo_hearing", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "audio protection (off)", "str_pl": "audio protection (off)" }, + "name": { "str_sp": "audio protection (off)" }, "description": "This is an audio protection exoskeleton module. While active, it also protects your hearing from loud noises.", "weight": "500 g", "volume": "500 ml", @@ -285,7 +285,7 @@ "id": "exo_hearing_on", "copy-from": "exo_hearing", "type": "TOOL", - "name": { "str": "audio protection (on)", "str_pl": "audio protection (on)" }, + "name": { "str_sp": "audio protection (on)" }, "power_draw": 500, "revert_to": "exo_hearing", "use_action": { @@ -348,7 +348,7 @@ "category": "armor", "symbol": "8", "color": "light_gray", - "name": { "str": "exoskeleton enhanced optics (off)", "str_pl": "exoskeleton enhanced optics (off)" }, + "name": { "str_sp": "exoskeleton enhanced optics (off)" }, "description": "A set of enhanced optics for an exoskeleton. Provides telescopic vision as well as protection from glare and bright flashes of light. Activate to enable infrared vision.", "price": 30000, "price_postapoc": 500, @@ -371,7 +371,7 @@ "id": "exo_optics_on", "copy-from": "exo_optics", "type": "TOOL", - "name": { "str": "exoskeleton enhanced optics (on)", "str_pl": "exoskeleton enhanced optics (on)" }, + "name": { "str_sp": "exoskeleton enhanced optics (on)" }, "power_draw": 500, "revert_to": "exo_optics", "use_action": { diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index bdf7ba8b5f4a6..5d1531c6aaaec 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -4,7 +4,7 @@ "copy-from": "back_holster", "type": "ARMOR", "name": { "str": "large storage pouch" }, - "description": "A hardpoint for storing a rifle. Activate to holster/draw a gun.", + "description": "A hardpoint for storing a rifle. Activate to holster/draw a gun.", "weight": "454 g", "volume": "2 L", "material": [ "steel" ], @@ -19,7 +19,7 @@ "copy-from": "bscabbard", "type": "ARMOR", "name": { "str": "exoskeleton scabbard" }, - "description": "A metallic scabbard mountable on an exoskeleton hard point. Can be activated to sheath or draw a sword .", + "description": "A metallic scabbard mountable on an exoskeleton hard point. Can be activated to sheath or draw a sword.", "weight": "454 g", "volume": "2 L", "price": 18000, @@ -80,7 +80,7 @@ "copy-from": "tacvest", "looks_like": "tacvest", "type": "ARMOR", - "name": { "str": "exoskeleton large ammo pouches", "str_pl": "exoskeleton large ammo pouches" }, + "name": { "str_sp": "exoskeleton large ammo pouches" }, "description": "A set of pouches that attach to a hardpoint.", "weight": "205 g", "volume": "1050 ml", @@ -96,7 +96,7 @@ "id": "exo_small_ammo_pouch", "copy-from": "legrig", "type": "ARMOR", - "name": { "str": "exoskeleton small ammo pouches", "str_pl": "exoskeleton small ammo pouches" }, + "name": { "str_sp": "exoskeleton small ammo pouches"" }, "description": "A set of pouches that attach to a hardpoint.", "symbol": "[", "color": "dark_gray", From e14d7cbac56eb6773f2031aae6369a44732cb459 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 20 Dec 2021 18:13:03 -0800 Subject: [PATCH 149/189] Update modular_exoskeleton_storage.json --- .../items/armor/modular_exos/modular_exoskeleton_storage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 5d1531c6aaaec..ce27c90ea9059 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -96,7 +96,7 @@ "id": "exo_small_ammo_pouch", "copy-from": "legrig", "type": "ARMOR", - "name": { "str_sp": "exoskeleton small ammo pouches"" }, + "name": { "str_sp": "exoskeleton small ammo pouches" }, "description": "A set of pouches that attach to a hardpoint.", "symbol": "[", "color": "dark_gray", From fbd05c9790156d7b2fd6b455565d30ecc9ae6db6 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Tue, 21 Dec 2021 22:25:38 -0800 Subject: [PATCH 150/189] Update data/mods/Aftershock/items/books.json Co-authored-by: Mom-Bun <43492737+Mom-Bun@users.noreply.github.com> --- data/mods/Aftershock/items/books.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/books.json b/data/mods/Aftershock/items/books.json index 1394f69678323..b97a76e81d3cd 100644 --- a/data/mods/Aftershock/items/books.json +++ b/data/mods/Aftershock/items/books.json @@ -282,7 +282,7 @@ { "id": "exosuit_maintenance", "type": "BOOK", - "name": { "str": "Exoskeleton maintenance and repair manual", "str_pl": "copies of Exoskeleton maintenance and repair manual" }, + "name": { "str": "TsKBEM Exoskeleton user manual", "str_pl": "copies of TsKBEM Exoskeleton user manuals" }, "description": "TM 7-4350 TECHNICAL MANUAL OPERATOR’S MANUAL FOR TYPE G EXOSKELETON (MODULAR). This is an operator's manual that covers general maintenance and basic repairs to modular exoskeleton systems.", "weight": "50 g", "volume": "500 ml", From aa7a2705e32f58ba48c5cb5b7d08573e71edfc07 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Tue, 21 Dec 2021 22:58:55 -0800 Subject: [PATCH 151/189] Flavor text Remove duplicate book, update descriptions. --- .../items/armor/modular_exos/exo_book.json | 21 ------------------- data/mods/Aftershock/items/books.json | 2 +- 2 files changed, 1 insertion(+), 22 deletions(-) delete mode 100644 data/mods/Aftershock/items/armor/modular_exos/exo_book.json diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_book.json b/data/mods/Aftershock/items/armor/modular_exos/exo_book.json deleted file mode 100644 index 0fee09c4386ff..0000000000000 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_book.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "id": "exosuit_maintenance", - "type": "BOOK", - "name": { "str": "Exoskeleton maintenance and repair manual", "str_pl": "copies of Exoskeleton maintenance and repair manual" }, - "description": "TM 7-4350 TECHNICAL MANUAL OPERATOR’S MANUAL FOR TYPE G EXOSKELETON (MODULAR). This is an operator's manual that covers general maintenance and basic repairs to modular exoskeleton systems.", - "weight": "50 g", - "volume": "500 ml", - "price": "5000 cent", - "material": [ "paper" ], - "symbol": "?", - "looks_like": "adv_chemistry", - "color": "light_green", - "skill": "fabrication", - "required_level": 5, - "max_level": 8, - "intelligence": 9, - "fun": -3, - "time": "50 m" - } -] diff --git a/data/mods/Aftershock/items/books.json b/data/mods/Aftershock/items/books.json index b97a76e81d3cd..b439570dfbc12 100644 --- a/data/mods/Aftershock/items/books.json +++ b/data/mods/Aftershock/items/books.json @@ -283,7 +283,7 @@ "id": "exosuit_maintenance", "type": "BOOK", "name": { "str": "TsKBEM Exoskeleton user manual", "str_pl": "copies of TsKBEM Exoskeleton user manuals" }, - "description": "TM 7-4350 TECHNICAL MANUAL OPERATOR’S MANUAL FOR TYPE G EXOSKELETON (MODULAR). This is an operator's manual that covers general maintenance and basic repairs to modular exoskeleton systems.", + "description": "A somewhat hefty manual in Russian with accompanying English text which goes in-depth into the proper usage and maintenance of TsKBEM brand Exoskeletons. \n\nWhile it mainly pertains to the old TsKBEM exoskeletons, the knowledge within could still help out with modular exoskeletons in general.", "weight": "50 g", "volume": "500 ml", "price": "5000 cent", From bf7e389eae4239f9c278e3b928bf88a8ad2853a8 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Wed, 22 Dec 2021 10:10:53 -0800 Subject: [PATCH 152/189] Update books.json --- data/mods/Aftershock/items/books.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/books.json b/data/mods/Aftershock/items/books.json index b439570dfbc12..b58b5e9866c3c 100644 --- a/data/mods/Aftershock/items/books.json +++ b/data/mods/Aftershock/items/books.json @@ -283,7 +283,7 @@ "id": "exosuit_maintenance", "type": "BOOK", "name": { "str": "TsKBEM Exoskeleton user manual", "str_pl": "copies of TsKBEM Exoskeleton user manuals" }, - "description": "A somewhat hefty manual in Russian with accompanying English text which goes in-depth into the proper usage and maintenance of TsKBEM brand Exoskeletons. \n\nWhile it mainly pertains to the old TsKBEM exoskeletons, the knowledge within could still help out with modular exoskeletons in general.", + "description": "A somewhat hefty manual in Russian with accompanying English text which goes in-depth into the proper usage and maintenance of TsKBEM brand Exoskeletons. \n\nWhile it mainly pertains to the old TsKBEM exoskeletons, the knowledge within could still help out with modular exoskeletons in general.", "weight": "50 g", "volume": "500 ml", "price": "5000 cent", From c4e647b6c36f328a248540a5a31d64c53dc6c473 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 27 Dec 2021 22:27:41 -0800 Subject: [PATCH 153/189] Extra spaces, insufficient spaces --- .../items/armor/modular_exos/modular_exoskeleton_modules.json | 2 +- data/mods/Aftershock/items/books.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 8c27704dfe75c..8cc423b21412f 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -46,7 +46,7 @@ "pocket_data": [ { "pocket_type": "MAGAZINE", - "description": "This is a tank for gasoline. Holds up to 10 liters.", + "description": "This is a tank for gasoline. Holds up to 10 liters.", "rigid": true, "watertight": true, "ammo_restriction": { "gasoline": 10000 } diff --git a/data/mods/Aftershock/items/books.json b/data/mods/Aftershock/items/books.json index b58b5e9866c3c..46d566b8271c9 100644 --- a/data/mods/Aftershock/items/books.json +++ b/data/mods/Aftershock/items/books.json @@ -283,7 +283,7 @@ "id": "exosuit_maintenance", "type": "BOOK", "name": { "str": "TsKBEM Exoskeleton user manual", "str_pl": "copies of TsKBEM Exoskeleton user manuals" }, - "description": "A somewhat hefty manual in Russian with accompanying English text which goes in-depth into the proper usage and maintenance of TsKBEM brand Exoskeletons. \n\nWhile it mainly pertains to the old TsKBEM exoskeletons, the knowledge within could still help out with modular exoskeletons in general.", + "description": "A somewhat hefty manual in Russian with accompanying English text which goes in-depth into the proper usage and maintenance of TsKBEM brand Exoskeletons.\n\nWhile it mainly pertains to the old TsKBEM exoskeletons, the knowledge within could still help out with modular exoskeletons in general.", "weight": "50 g", "volume": "500 ml", "price": "5000 cent", From 1c0c3ed3826f8a4c76cbbf9a96c6dd703203780c Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 27 Dec 2021 23:10:39 -0800 Subject: [PATCH 154/189] Spelling fixes --- .../modular_exos/modular_exoskeleton_modules.json | 14 +++++++------- .../modular_exos/modular_exoskeleton_plating.json | 4 ++-- .../modular_exos/modular_exoskeleton_storage.json | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 8cc423b21412f..0194ea062ddf4 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -32,7 +32,7 @@ "id": "exo_back_gasoline", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton ICE power supply" }, + "name": { "str": "exoskeleton ICE power supply", "str_pl": "exoskeleton ICE power supplies" }, }, "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS. This unit is large and occupies the rear hardpoints.", "weight": "20 kg", "volume": "25 L", @@ -67,7 +67,7 @@ "id": "exo_large_aux_power", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton auxiliary battery" }, + "name": { "str": "exoskeleton auxiliary battery", "str_pl": "exoskeleton auxiliary batteries" }, "description": "This is a large rechargable auxiliary power unit that attaches to an exoskeleton hardpoint.", "weight": "5 kg", "volume": "5 L", @@ -83,7 +83,7 @@ "id": "exo_small_aux_power", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton small auxiliary battery" }, + "name": { "str": "exoskeleton small auxiliary battery", "str_pl": "exoskeleton small auxiliary batteries" }, "description": "This is a small rechargable auxiliary power unit that attaches to an exoskeleton hardpoint.", "weight": "2 kg", "volume": "1 L", @@ -100,7 +100,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton large load support module (off)", "str_pl": "exoskeleton large load support modules (off)" }, - "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power cosumption.", + "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power consumption.", "weight": "10 kg", "volume": "5 L", "material": [ "plastic", "steel" ], @@ -127,7 +127,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton large load support module (on)", "str_pl": "exoskeleton large load support modules (on)" }, - "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power cosumption. It is turned on and continually drawing power. Use it to turn it off.", + "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power consumption. It is turned on and continually drawing power. Use it to turn it off.", "weight": "10 kg", "volume": "5 L", "material": [ "plastic", "steel" ], @@ -154,7 +154,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton small load support module (off)", "str_pl": "exoskeleton small load support modules (off)" }, - "description": "This module increases the exoskeleton's weight bearing at the cost of increased power cosumption.", + "description": "This module increases the exoskeleton's weight bearing at the cost of increased power consumption.", "weight": "2 kg", "volume": "1 L", "material": [ "plastic", "steel" ], @@ -181,7 +181,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "exoskeleton small load support module (on)", "str_pl": "exoskeleton small load support modules (on)" }, - "description": "This module increases the exoskeleton's weight bearing at the cost of increased power cosumption. It is turned on and continually drawing power. Use it to turn it off.", + "description": "This module increases the exoskeleton's weight bearing at the cost of increased power consumption. It is turned on and continually drawing power. Use it to turn it off.", "weight": "2 kg", "volume": "1 L", "material": [ "plastic", "steel" ], diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 4bfe7d060da5e..420d7a7b35356 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -249,8 +249,8 @@ "id": "destroyed_exo_arm_vcc_plate", "type": "ARMOR", "copy-from": "exo_arm_vcc", - "name": { "str": "shattered accuum-cast carbide arm plate" }, - "description": "The remains of a accuum-cast carbide arm plate after taking a strong impact. No longer provides functional protection, just weight.", + "name": { "str": "shattered vacuum-cast carbide arm plate" }, + "description": "The remains of a vacuum-cast carbide arm plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_arm_vcc", "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] }, diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index ce27c90ea9059..027a511aae8a1 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -3,7 +3,7 @@ "id": "exo_rifle_storage", "copy-from": "back_holster", "type": "ARMOR", - "name": { "str": "large storage pouch" }, + "name": { "str": "large storage pouch", "str_pl": "large storage pouches" }, "description": "A hardpoint for storing a rifle. Activate to holster/draw a gun.", "weight": "454 g", "volume": "2 L", @@ -18,7 +18,7 @@ "id": "exo_melee_storage", "copy-from": "bscabbard", "type": "ARMOR", - "name": { "str": "exoskeleton scabbard" }, + "name": { "str_sp": "exoskeleton scabbard" }, "description": "A metallic scabbard mountable on an exoskeleton hard point. Can be activated to sheath or draw a sword.", "weight": "454 g", "volume": "2 L", From 6871e3972bbfd9fd5c2a47d2a87b6bac5d12c9b2 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 27 Dec 2021 23:51:29 -0800 Subject: [PATCH 155/189] Update modular_exoskeleton_modules.json --- .../items/armor/modular_exos/modular_exoskeleton_modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 0194ea062ddf4..af3caaee3fecc 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -32,7 +32,7 @@ "id": "exo_back_gasoline", "type": "TOOL_ARMOR", "category": "armor", - "name": { "str": "exoskeleton ICE power supply", "str_pl": "exoskeleton ICE power supplies" }, }, + "name": { "str": "exoskeleton ICE power supply", "str_pl": "exoskeleton ICE power supplies" }, "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS. This unit is large and occupies the rear hardpoints.", "weight": "20 kg", "volume": "25 L", From 0b0344c5c9e284475538fb15dd610d070a415965 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Tue, 28 Dec 2021 17:52:46 -0800 Subject: [PATCH 156/189] Update exo_tool.json --- data/mods/Aftershock/items/armor/modular_exos/exo_tool.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json b/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json index 35908845362bb..4d5d084304b45 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json @@ -10,7 +10,7 @@ "price_postapoc": 100, "bashing": 2, "cutting": 6, - "material": [ "iron" ], + "material": [ "steel" ], "symbol": ",", "color": "light_gray", "ammo": [ "battery" ], From 887a7f9bf7d4f157624bc725d48ef497ae89dac1 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 30 Dec 2021 10:26:27 -0800 Subject: [PATCH 157/189] Plating naming standards, module bugfix, gantry description. --- .../modular_exoskeleton_modules.json | 26 +------ .../modular_exoskeleton_plating.json | 76 +++++++++---------- data/mods/Aftershock/items/vehicle_items.json | 2 +- 3 files changed, 42 insertions(+), 62 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index af3caaee3fecc..4f58812278cf2 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -13,7 +13,7 @@ "color": "light_gray", "ammo": [ "battery" ], "flags": [ "FRAGILE", "CANT_WEAR", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "WATERPROOF", "IS_UPS", "EXO_PSU", "ONLY_ONE" ], - "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], + "armor": [ { "encumbrance": 0, "coverage": 20, "covers": [ "torso" ] } ], "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 40000 } }, { @@ -42,7 +42,7 @@ "color": "dark_gray", "ammo": "gasoline", "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "IS_UPS", "EXO_PSU", "ONLY_ONE" ], - "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "torso" ] } ], + "armor": [ { "encumbrance": 0, "coverage": 40, "covers": [ "torso" ] } ], "pocket_data": [ { "pocket_type": "MAGAZINE", @@ -361,7 +361,7 @@ "use_action": { "type": "transform", "msg": "You activate the helmet's optical enhancement.", - "target": "exo_hearing_on", + "target": "exo_optics_on", "active": true, "need_charges": 1, "need_charges_msg": "There is not enough charge to activate the module." @@ -382,25 +382,5 @@ "target": "exo_optics" }, "flags": [ "ZOOM", "USE_UPS", "CANT_WEAR", "IR_EFFECT", "EXO_HELMET_GADGET", "ONLY_ONE" ] - }, - { - "id": "exoskeleton_helmet_filter", - "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton filter mask" }, - "category": "clothing", - "description": "A gas filtration module for an exoskeleton helmet. Provides excellent protection from smoke, teargas, and other contaminants. It must be prepared before use.", - "flags": [ "SLEEP_IGNORE", "EXO_HELMET_GADGET", "ONLY_ONE" ], - "weight": "1000 g", - "volume": "1 L", - "material": [ "plastic" ], - "symbol": "[", - "color": "dark_gray", - "warmth": 20, - "material_thickness": 2, - "environmental_protection": 1, - "environmental_protection_with_filter": 16, - "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "gasfilter_m": 100 } } ], - "ammo": "gasfilter_m", - "use_action": [ "GASMASK" ] } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 420d7a7b35356..a9725cc5431da 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -3,7 +3,7 @@ "id": "exo_helmet_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "steel exoskeleton helmet plate" }, + "name": { "str": "steel helmet plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of steel.", "weight": "12880 g", "volume": "5 L", @@ -21,7 +21,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_helmet_steel", - "name": { "str": "plastic exoskeleton helmet plate" }, + "name": { "str": "plastic helmet plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's helmet, this is a plate of plastic.", "weight": "1287 g", "material": [ "plastic" ], @@ -33,7 +33,7 @@ "id": "destroyed_exo_helmet_plastic_plate", "type": "ARMOR", "copy-from": "exo_helmet_plastic", - "name": { "str": "shattered plastic helmet plate" }, + "name": { "str": "shattered plastic helmet plate (exosuit)" }, "description": "The remains of a plastic helmet plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_helmet_plastic", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] @@ -43,7 +43,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_helmet_steel", - "name": { "str": "vacuum-cast carbide exoskeleton helmet plate" }, + "name": { "str": "carbide helmet plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's helmet, this is a plate of vacuum-cast carbide.", "weight": "1287 g", "material": [ "vacuum_carbide" ], @@ -55,7 +55,7 @@ "id": "destroyed_exo_helmet_vcc_plate", "type": "ARMOR", "copy-from": "exo_helmet_plastic", - "name": { "str": "shattered vacuum-cast carbide helmet plate" }, + "name": { "str": "shattered carbide helmet plate (exosuit)" }, "description": "The remains of a vacuum-cast carbide helmet plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_helmet_vcc", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] @@ -64,7 +64,7 @@ "id": "exo_torso_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "steel exoskeleton torso plate" }, + "name": { "str": "steel torso plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", "weight": "34347 g", "volume": "8 L", @@ -82,7 +82,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_torso_steel", - "name": { "str": "plastic exoskeleton torso plate" }, + "name": { "str": "plastic torso plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's torso, this is a plate of plastic.", "weight": "3432 g", "volume": "8 L", @@ -94,7 +94,7 @@ "id": "destroyed_exo_torso_plastic_plate", "type": "ARMOR", "copy-from": "exo_torso_plastic", - "name": { "str": "shattered plastic torso plate" }, + "name": { "str": "shattered plastic torso plate (exosuit)" }, "description": "The remains of a plastic torso plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_torso_plastic", "material_thickness": 3, @@ -105,7 +105,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_torso_steel", - "name": { "str": "exoskeleton vacuum carbide torso plate" }, + "name": { "str": "carbide torso plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of vacuum-cast carbide.", "weight": "44000 g", "volume": "8 L", @@ -117,7 +117,7 @@ "id": "destroyed_exo_torso_vcc_plate", "type": "ARMOR", "copy-from": "exo_torso_vcc", - "name": { "str": "shattered vacuum carbide torso plate" }, + "name": { "str": "shattered carbide torso plate (exosuit)" }, "description": "The remains of a vacuum-cast carbide torso plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_torso_vcc" }, @@ -125,7 +125,7 @@ "id": "exo_psu_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "steel exoskeleton PSU plate" }, + "name": { "str": "steel PSU plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of steel.", "weight": "42933 g", "volume": "10 L", @@ -143,7 +143,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_psu_steel", - "name": { "str": "plastic exoskeleton PSU plate" }, + "name": { "str": "plastic PSU plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a plate of plastic.", "weight": "4290 g", "volume": "10 L", @@ -155,7 +155,7 @@ "id": "destroyed_exo_psu_plastic_plate", "type": "ARMOR", "copy-from": "exo_psu_plastic", - "name": { "str": "shattered plastic PSU plate" }, + "name": { "str": "shattered plastic PSU plate (exosuit)" }, "description": "The remains of a plastic PSU plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_psu_plastic", "material_thickness": 3 @@ -165,7 +165,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_psu_steel", - "name": { "str": "vacuum-cast carbide exoskeleton PSU plate" }, + "name": { "str": "carbide PSU plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of vacuum-cast carbide.", "weight": "55000 g", "volume": "10 L", @@ -177,7 +177,7 @@ "id": "destroyed_exo_psu_vcc", "type": "ARMOR", "copy-from": "exo_psu_vcc", - "name": { "str": "shattered military composite PSU plate" }, + "name": { "str": "shattered carbide PSU plate (exosuit)" }, "description": "The remains of a vacuum-cast carbide PSU plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_psu_vcc", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] @@ -186,7 +186,7 @@ "id": "exo_arm_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "steel exoskeleton arm plate" }, + "name": { "str": "steel arm plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", "weight": "25760 g", "volume": "5500 ml", @@ -214,7 +214,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_arm_steel", - "name": { "str": "plastic exoskeleton arm plate" }, + "name": { "str": "plastic arm plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are plates of plastic.", "weight": "2574 g", "volume": "5500 ml", @@ -226,7 +226,7 @@ "id": "destroyed_exo_arm_plastic_plate", "type": "ARMOR", "copy-from": "exo_arm_plastic", - "name": { "str": "shattered plastic arm plate" }, + "name": { "str": "shattered plastic arm plate (exosuit)" }, "description": "The remains of a plastic arm plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_arm_plastic", "material_thickness": 3, @@ -237,7 +237,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_arm_steel", - "name": { "str": "vacuum-cast carbide exoskeleton arm plate" }, + "name": { "str": "carbide arm plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of vacuum-cast carbide.", "weight": "33000 g", "volume": "5500 ml", @@ -249,7 +249,7 @@ "id": "destroyed_exo_arm_vcc_plate", "type": "ARMOR", "copy-from": "exo_arm_vcc", - "name": { "str": "shattered vacuum-cast carbide arm plate" }, + "name": { "str": "shattered carbide arm plate (exosuit)" }, "description": "The remains of a vacuum-cast carbide arm plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_arm_vcc", "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] @@ -258,7 +258,7 @@ "id": "exo_glove_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "steel exoskeleton glove plate" }, + "name": { "str": "steel glove plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of steel.", "weight": "4293 g", "volume": "1 ml", @@ -277,7 +277,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_glove_steel", - "name": { "str": "plastic exoskeleton glove plate" }, + "name": { "str": "plastic glove plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's glove, this is a plate of plastic.", "weight": "429 g", "volume": "1 ml", @@ -289,7 +289,7 @@ "id": "destroyed_exo_glove_plastic_plate", "type": "ARMOR", "copy-from": "exo_glove_plastic", - "name": { "str": "shattered plastic leg plate" }, + "name": { "str": "shattered plastic leg plate (exosuit)" }, "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_glove_plastic", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] @@ -299,8 +299,8 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_arm_steel", - "name": { "str": "exoskeleton vacuum-cast composite glove plate" }, - "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of vacuum-cast composite.", + "name": { "str": "carbide glove plate (exosuit)" }, + "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of vacuum-cast carbide .", "weight": "5500 g", "volume": "1 ml", "material": [ "vacuum_carbide" ], @@ -311,8 +311,8 @@ "id": "destroyed_exo_glove_vcc_plate", "type": "ARMOR", "copy-from": "exo_glove_vcc", - "name": { "str": "shattered vacuum-cast composite glove plate" }, - "description": "The remains of a vacuum-cast composite glove plate after taking a strong impact. No longer provides functional protection, just weight.", + "name": { "str": "shattered carbide glove plate (exosuit)" }, + "description": "The remains of a vacuum-cast carbide glove plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_glove_vcc", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] }, @@ -320,7 +320,7 @@ "id": "exo_leg_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "steel exoskeleton legs plate" }, + "name": { "str": "steel leg plating (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", "weight": "30053 g", "volume": "8 L", @@ -348,7 +348,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_leg_steel", - "name": { "str": "plastic exoskeleton legs plate" }, + "name": { "str": "plastic leg plating (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are plates of plastic.", "weight": "3003 g", "volume": "8 L", @@ -360,7 +360,7 @@ "id": "destroyed_exo_leg_plastic_plate", "type": "ARMOR", "copy-from": "exo_leg_plastic", - "name": { "str": "shattered plastic leg plate" }, + "name": { "str": "shattered plastic leg plate (exosuit)" }, "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_leg_plastic", "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] @@ -370,7 +370,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_leg_steel", - "name": { "str": "vacuum-cast carbide exoskeleton legs plate" }, + "name": { "str": "carbide leg plating (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of vacuum-cast carbide.", "weight": "38500 g", "volume": "8 L", @@ -382,7 +382,7 @@ "id": "destroyed_exo_leg_vcc_plate", "type": "ARMOR", "copy-from": "exo_leg_vcc", - "name": { "str": "shattered vacuum-cast carbide leg plate" }, + "name": { "str": "shattered carbide leg plate (exosuit)" }, "description": "The remains of a vacuum-cast carbide leg plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_leg_vcc", "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] @@ -391,7 +391,7 @@ "id": "exo_boot_steel", "type": "ARMOR", "category": "armor", - "name": { "str": "steel exoskeleton boot plate" }, + "name": { "str": "steel boot plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of steel.", "weight": "30053 g", "volume": "3250 ml", @@ -409,7 +409,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_boot_steel", - "name": { "str": "plastic exoskeleton boot plate" }, + "name": { "str": "plastic boot plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's boot, this is a plate of plastic.", "weight": "3003 g", "volume": "3250 ml", @@ -421,7 +421,7 @@ "id": "destroyed_exo_boot_plastic_plate", "type": "ARMOR", "copy-from": "exo_boot_plastic", - "name": { "str": "shattered plastic leg plate" }, + "name": { "str": "shattered plastic leg plate (exosuit)" }, "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] }, @@ -430,7 +430,7 @@ "type": "ARMOR", "category": "armor", "copy-from": "exo_boot_steel", - "name": { "str": "vacuum-cast carbide exoskeleton boot plate" }, + "name": { "str": "carbide boot plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of vacuum-cast carbide.", "weight": "38500 g", "volume": "3250 ml", @@ -442,8 +442,8 @@ "id": "destroyed_exo_boot_vcc_plate", "type": "ARMOR", "copy-from": "exo_boot_vcc", - "name": { "str": "shattered military composite boot plate" }, - "description": "The remains of a vacuum-cast carbide boot plate after taking a strong impact. No longer provides functional protection, just weight.", + "name": { "str": "shattered carbide boot plate (exosuit)" }, + "description": "The remains of a carbide boot plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_boot_vcc", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] } diff --git a/data/mods/Aftershock/items/vehicle_items.json b/data/mods/Aftershock/items/vehicle_items.json index 0c5cfa9738580..3ac4dc4774a1f 100644 --- a/data/mods/Aftershock/items/vehicle_items.json +++ b/data/mods/Aftershock/items/vehicle_items.json @@ -21,6 +21,6 @@ "id": "exo_gantry", "copy-from": "vehicle_rig", "name": "exoskeleton maintenance gantry", - "description": "A gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active." + "description": "A vehicle-mounted gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when activated from the vehicle's controls." } ] From 20f475f074166446580bd109673bdbcad13a9091 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 30 Dec 2021 10:57:09 -0800 Subject: [PATCH 158/189] Remove gloves and boots Change protection of arms/legs to cover hands/feet. Bumped weight and volume accordingly. --- .../items/armor/modular_exos/exo_recipe.json | 41 ----- .../modular_exos/modular_exoskeleton.json | 60 +------ .../modular_exoskeleton_plating.json | 168 +++--------------- 3 files changed, 23 insertions(+), 246 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json b/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json index 1222714f5f789..71f83ebeee057 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json @@ -58,26 +58,6 @@ "qualities": [ { "id": "CHISEL", "level": 3 } ], "tools": [ [ [ "swage", -1 ] ] ] }, - { - "result": "exo_glove_steel", - "type": "recipe", - "activity_level": "BRISK_EXERCISE", - "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_HANDS", - "skill_used": "fabrication", - "difficulty": 6, - "time": "7 h", - "book_learn": [ [ "exosuit_maintenance", 5 ] ], - "using": [ [ "blacksmithing_standard", 24 ], [ "steel_standard", 6 ], [ "clasps", 2 ] ], - "proficiencies": [ - { "proficiency": "prof_metalworking" }, - { "proficiency": "prof_blacksmithing" }, - { "proficiency": "prof_armorsmithing" }, - { "proficiency": "prof_articulation" } - ], - "qualities": [ { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "swage", -1 ] ] ] - }, { "result": "exo_leg_steel", "type": "recipe", @@ -97,26 +77,5 @@ ], "qualities": [ { "id": "CHISEL", "level": 3 } ], "tools": [ [ [ "swage", -1 ] ] ] - }, - { - "result": "exo_boot_steel", - "type": "recipe", - "activity_level": "BRISK_EXERCISE", - "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_FEET", - "skill_used": "fabrication", - "difficulty": 6, - "time": "8 h", - "book_learn": [ [ "exosuit_maintenance", 4 ] ], - "using": [ [ "blacksmithing_standard", 32 ], [ "steel_standard", 8 ] ], - "proficiencies": [ - { "proficiency": "prof_cobbling" }, - { "proficiency": "prof_metalworking" }, - { "proficiency": "prof_blacksmithing" }, - { "proficiency": "prof_armorsmithing" }, - { "proficiency": "prof_articulation" } - ], - "qualities": [ { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "swage", -1 ] ] ] } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index f937550fb5f25..12ee9ece7f5b4 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -27,8 +27,8 @@ "type": "TOOL_ARMOR", "name": { "str": "exoskeleton frame" }, "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs.", - "weight": "40 kg", - "volume": "130 L", + "weight": "43 kg", + "volume": "135 L", "material": [ "titanium" ], "material_thickness": 2, "power_armor": true, @@ -123,7 +123,7 @@ "moves": 60 } ], - "armor": [ { "encumbrance": 20, "coverage": 100, "covers": [ "torso", "arm_l", "arm_r", "leg_l", "leg_r" ] } ], + "armor": [ { "encumbrance": 20, "coverage": 100, "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] } ], "ammo": "battery", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, @@ -184,59 +184,5 @@ "moves": 60 } ] - }, - { - "id": "exoskeleton_boots", - "type": "ARMOR", - "category": "armor", - "name": { "str_sp": "exoskeleton boots" }, - "description": "This is a pair of exoskeleton boots. Has mounting points for protective plate.", - "weight": "2000 g", - "volume": "3250 ml", - "material": [ "titanium", "plastic" ], - "symbol": "b", - "looks_like": "boots_plate", - "color": "dark_gray", - "power_armor": true, - "material_thickness": 8, - "environmental_protection": 16, - "armor": [ { "encumbrance": 5, "coverage": 100, "covers": [ "foot_l", "foot_r" ] } ], - "flags": [ "WATERPROOF", "STURDY" ], - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "description": "This is a mounting point for boot plating.", - "ablative": true, - "flag_restriction": [ "EXO_BOOT_PLATE" ], - "moves": 60 - } - ] - }, - { - "id": "exoskeleton_gloves", - "type": "ARMOR", - "category": "armor", - "name": { "str_sp": "exoskeleton gloves" }, - "description": "This is a pair of exoskeleton gloves. Has mounting points for protective plate.", - "weight": "1000 g", - "volume": "1500 ml", - "material": [ "titanium", "plastic" ], - "symbol": "g", - "looks_like": "gloves_plate", - "color": "dark_gray", - "power_armor": true, - "material_thickness": 8, - "environmental_protection": 16, - "armor": [ { "encumbrance": 5, "coverage": 100, "covers": [ "hand_l", "hand_r" ] } ], - "flags": [ "WATERPROOF", "STURDY" ], - "pocket_data": [ - { - "pocket_type": "CONTAINER", - "description": "This is a mounting point for glove plating.", - "ablative": true, - "flag_restriction": [ "EXO_GLOVE_PLATE" ], - "moves": 60 - } - ] } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index a9725cc5431da..373e13397193c 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -188,8 +188,8 @@ "category": "armor", "name": { "str": "steel arm plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", - "weight": "25760 g", - "volume": "5500 ml", + "weight": "30 g", + "volume": "6500 ml", "material": [ "steel" ], "symbol": "[", "looks_like": "armguard_lightplate", @@ -199,13 +199,12 @@ "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_ARM_PLATE" ], "armor": [ { - "covers": [ "arm_l", "arm_r" ], + "covers": [ "arm_l", "arm_r", "hand_l", "hand_r" ], "encumbrance": 16, "coverage": 95, "cover_melee": 95, "cover_ranged": 95, - "cover_vitals": 90, - "specifically_covers": [ "arm_lower_r", "arm_lower_l", "arm_elbow_r", "arm_elbow_l", "arm_upper_r", "arm_upper_l" ] + "cover_vitals": 90 } ] }, @@ -216,8 +215,8 @@ "copy-from": "exo_arm_steel", "name": { "str": "plastic arm plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are plates of plastic.", - "weight": "2574 g", - "volume": "5500 ml", + "weight": "3000 g", + "volume": "1500 ml", "material": [ "plastic" ], "material_thickness": 3, "non_functional": "destroyed_exo_arm_plastic_plate" @@ -229,8 +228,7 @@ "name": { "str": "shattered plastic arm plate (exosuit)" }, "description": "The remains of a plastic arm plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_arm_plastic", - "material_thickness": 3, - "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] + "material_thickness": 3 }, { "id": "exo_arm_vcc", @@ -239,8 +237,8 @@ "copy-from": "exo_arm_steel", "name": { "str": "carbide arm plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of vacuum-cast carbide.", - "weight": "33000 g", - "volume": "5500 ml", + "weight": "38000 g", + "volume": "1500 ml", "material": [ "vacuum_carbide" ], "material_thickness": 6, "non_functional": "destroyed_exo_arm_vcc_plate" @@ -251,70 +249,7 @@ "copy-from": "exo_arm_vcc", "name": { "str": "shattered carbide arm plate (exosuit)" }, "description": "The remains of a vacuum-cast carbide arm plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_arm_vcc", - "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] - }, - { - "id": "exo_glove_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "steel glove plate (exosuit)" }, - "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of steel.", - "weight": "4293 g", - "volume": "1 ml", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "gloves_plate", - "color": "light_gray", - "warmth": 20, - "sided": true, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "hand_l", "hand_r" ] } ] - }, - { - "id": "exo_glove_plastic", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_glove_steel", - "name": { "str": "plastic glove plate (exosuit)" }, - "description": "Designed to attach to an exoskeleton's glove, this is a plate of plastic.", - "weight": "429 g", - "volume": "1 ml", - "material": [ "plastic" ], - "material_thickness": 3, - "non_functional": "destroyed_exo_glove_plastic_plate" - }, - { - "id": "destroyed_exo_glove_plastic_plate", - "type": "ARMOR", - "copy-from": "exo_glove_plastic", - "name": { "str": "shattered plastic leg plate (exosuit)" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_glove_plastic", - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] - }, - { - "id": "exo_glove_vcc", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_arm_steel", - "name": { "str": "carbide glove plate (exosuit)" }, - "description": "Designed to attach to an exoskeleton's glove, this is a sturdy plate of vacuum-cast carbide .", - "weight": "5500 g", - "volume": "1 ml", - "material": [ "vacuum_carbide" ], - "material_thickness": 6, - "non_functional": "destroyed_exo_glove_vcc_plate" - }, - { - "id": "destroyed_exo_glove_vcc_plate", - "type": "ARMOR", - "copy-from": "exo_glove_vcc", - "name": { "str": "shattered carbide glove plate (exosuit)" }, - "description": "The remains of a vacuum-cast carbide glove plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_glove_vcc", - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "hand_l", "hand_r" ] } ] + "looks_like": "exo_arm_vcc" }, { "id": "exo_leg_steel", @@ -322,8 +257,8 @@ "category": "armor", "name": { "str": "steel leg plating (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", - "weight": "30053 g", - "volume": "8 L", + "weight": "33000 g", + "volume": "10 L", "material": [ "steel" ], "symbol": "L", "looks_like": "legguard_lightplate", @@ -333,13 +268,12 @@ "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_LEG_PLATE" ], "armor": [ { - "covers": [ "leg_l", "leg_r" ], + "covers": [ "leg_l", "leg_r", "leg_l", "leg_r" ], "encumbrance": 8, "coverage": 95, "cover_melee": 95, "cover_ranged": 95, - "cover_vitals": 90, - "specifically_covers": [ "leg_lower_r", "leg_lower_l", "leg_knee_r", "leg_knee_l", "leg_upper_r", "leg_upper_l" ] + "cover_vitals": 90 } ] }, @@ -350,8 +284,8 @@ "copy-from": "exo_leg_steel", "name": { "str": "plastic leg plating (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are plates of plastic.", - "weight": "3003 g", - "volume": "8 L", + "weight": "6000 g", + "volume": "10 L", "material": [ "plastic" ], "material_thickness": 3, "non_functional": "destroyed_exo_leg_plastic_plate" @@ -362,8 +296,7 @@ "copy-from": "exo_leg_plastic", "name": { "str": "shattered plastic leg plate (exosuit)" }, "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_leg_plastic", - "armor": [ { "encumbrance": 16, "coverage": 0, "covers": [ "torso" ] } ] + "looks_like": "exo_leg_plastic" }, { "id": "exo_leg_vcc", @@ -372,8 +305,8 @@ "copy-from": "exo_leg_steel", "name": { "str": "carbide leg plating (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of vacuum-cast carbide.", - "weight": "38500 g", - "volume": "8 L", + "weight": "41000 g", + "volume": "10 L", "material": [ "vacuum_carbide" ], "material_thickness": 6, "non_functional": "destroyed_exo_leg_vcc_plate" @@ -384,67 +317,6 @@ "copy-from": "exo_leg_vcc", "name": { "str": "shattered carbide leg plate (exosuit)" }, "description": "The remains of a vacuum-cast carbide leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_leg_vcc", - "armor": [ { "encumbrance": 8, "coverage": 0, "covers": [ "torso" ] } ] - }, - { - "id": "exo_boot_steel", - "type": "ARMOR", - "category": "armor", - "name": { "str": "steel boot plate (exosuit)" }, - "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of steel.", - "weight": "30053 g", - "volume": "3250 ml", - "material": [ "steel" ], - "symbol": "[", - "looks_like": "boots_plate", - "color": "light_gray", - "warmth": 20, - "material_thickness": 6, - "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_BOOT_PLATE" ], - "armor": [ { "encumbrance": 20, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] - }, - { - "id": "exo_boot_plastic", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_boot_steel", - "name": { "str": "plastic boot plate (exosuit)" }, - "description": "Designed to attach to an exoskeleton's boot, this is a plate of plastic.", - "weight": "3003 g", - "volume": "3250 ml", - "material": [ "plastic" ], - "material_thickness": 3, - "non_functional": "destroyed_exo_boot_plastic_plate" - }, - { - "id": "destroyed_exo_boot_plastic_plate", - "type": "ARMOR", - "copy-from": "exo_boot_plastic", - "name": { "str": "shattered plastic leg plate (exosuit)" }, - "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] - }, - { - "id": "exo_boot_vcc", - "type": "ARMOR", - "category": "armor", - "copy-from": "exo_boot_steel", - "name": { "str": "carbide boot plate (exosuit)" }, - "description": "Designed to attach to an exoskeleton's boot, this is a sturdy plate of vacuum-cast carbide.", - "weight": "38500 g", - "volume": "3250 ml", - "material": [ "vacuum_carbide" ], - "material_thickness": 6, - "non_functional": "destroyed_exo_boot_vcc_plate" - }, - { - "id": "destroyed_exo_boot_vcc_plate", - "type": "ARMOR", - "copy-from": "exo_boot_vcc", - "name": { "str": "shattered carbide boot plate (exosuit)" }, - "description": "The remains of a carbide boot plate after taking a strong impact. No longer provides functional protection, just weight.", - "looks_like": "exo_boot_vcc", - "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "foot_l", "foot_r" ] } ] + "looks_like": "exo_leg_vcc" } ] From bddaad7220d75d3d074c7a9bcf2516a9a073bb3c Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 30 Dec 2021 11:01:58 -0800 Subject: [PATCH 159/189] Update modular_exoskeleton_storage.json --- .../modular_exos/modular_exoskeleton_storage.json | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 027a511aae8a1..71b6d098fc04f 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -11,8 +11,7 @@ "flags": [ "WATER_FRIENDLY", "NO_QUICKDRAW", "EXO_LARGE_GADGET" ], "symbol": "[", "looks_like": "slingpack", - "color": "light_gray", - "armor": [ { "encumbrance": [ 2, 6 ], "coverage": 20, "covers": [ "torso" ] } ] + "color": "light_gray" }, { "id": "exo_melee_storage", @@ -28,8 +27,7 @@ "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], "symbol": "[", "looks_like": "bscabbard", - "color": "light_gray", - "armor": [ { "encumbrance": [ 6, 10 ], "coverage": 20, "covers": [ "torso" ] } ] + "color": "light_gray" }, { "id": "exo_large_storage", @@ -43,8 +41,7 @@ "material": [ "kevlar", "plastic" ], "flags": [ "WATER_FRIENDLY", "EXO_LARGE_GADGET" ], "symbol": "[", - "looks_like": "backpack", - "armor": [ { "encumbrance": [ 10, 55 ], "coverage": 50, "covers": [ "torso" ] } ] + "looks_like": "backpack" }, { "id": "exo_medium_storage", @@ -89,8 +86,7 @@ "material": [ "nylon" ], "symbol": "[", "color": "dark_gray", - "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], - "armor": [ { "encumbrance": [ 2, 5 ], "coverage": 0 } ] + "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ] }, { "id": "exo_small_ammo_pouch", @@ -100,7 +96,6 @@ "description": "A set of pouches that attach to a hardpoint.", "symbol": "[", "color": "dark_gray", - "flags": [ "WATER_FRIENDLY", "EXO_SMALL_GADGET" ], - "armor": [ { "encumbrance": [ 2, 5 ], "covers": [ "leg_l", "leg_r" ], "specifically_covers": [ "leg_upper_r", "leg_upper_l" ] } ] + "flags": [ "WATER_FRIENDLY", "EXO_SMALL_GADGET" ] } ] From 38dc2e2c8ea52a657939667f0bc8f4c9ae61ec20 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 30 Dec 2021 11:40:53 -0800 Subject: [PATCH 160/189] Categories Adds "EXOSUIT" category, flagged modules and plating. --- data/json/item_category.json | 7 +++++ .../modular_exoskeleton_modules.json | 24 +++++++-------- .../modular_exoskeleton_plating.json | 30 +++++++++---------- 3 files changed, 34 insertions(+), 27 deletions(-) diff --git a/data/json/item_category.json b/data/json/item_category.json index 4e7ad15750355..5940ada5153b3 100644 --- a/data/json/item_category.json +++ b/data/json/item_category.json @@ -176,6 +176,13 @@ "zone": "LOOT_ARMOR", "sort_rank": 20 }, + { + "id": "exosuit", + "type": "ITEM_CATEGORY", + "name": { "str": "EXOSUIT" }, + "zone": "LOOT_EXOSUIT", + "sort_rank": 20 + }, { "id": "ITEMS_WORN", "type": "ITEM_CATEGORY", diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 4f58812278cf2..59105a0d03bd5 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -2,7 +2,7 @@ { "id": "exo_back_battery_rechargable", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "exoskeleton power supply unit" }, "description": "Designed to attach to an exoskeleton's back, this is a large rechargable battery with an integrated UPS.", "weight": "15 kg", @@ -31,7 +31,7 @@ { "id": "exo_back_gasoline", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "exoskeleton ICE power supply", "str_pl": "exoskeleton ICE power supplies" }, "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS. This unit is large and occupies the rear hardpoints.", "weight": "20 kg", @@ -66,7 +66,7 @@ { "id": "exo_large_aux_power", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "exoskeleton auxiliary battery", "str_pl": "exoskeleton auxiliary batteries" }, "description": "This is a large rechargable auxiliary power unit that attaches to an exoskeleton hardpoint.", "weight": "5 kg", @@ -82,7 +82,7 @@ { "id": "exo_small_aux_power", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "exoskeleton small auxiliary battery", "str_pl": "exoskeleton small auxiliary batteries" }, "description": "This is a small rechargable auxiliary power unit that attaches to an exoskeleton hardpoint.", "weight": "2 kg", @@ -98,7 +98,7 @@ { "id": "exo_large_carry", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "exoskeleton large load support module (off)", "str_pl": "exoskeleton large load support modules (off)" }, "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power consumption.", "weight": "10 kg", @@ -125,7 +125,7 @@ { "id": "exo_large_carry_on", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "exoskeleton large load support module (on)", "str_pl": "exoskeleton large load support modules (on)" }, "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power consumption. It is turned on and continually drawing power. Use it to turn it off.", "weight": "10 kg", @@ -152,7 +152,7 @@ { "id": "exo_small_carry", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "exoskeleton small load support module (off)", "str_pl": "exoskeleton small load support modules (off)" }, "description": "This module increases the exoskeleton's weight bearing at the cost of increased power consumption.", "weight": "2 kg", @@ -179,7 +179,7 @@ { "id": "exo_small_carry_on", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "exoskeleton small load support module (on)", "str_pl": "exoskeleton small load support modules (on)" }, "description": "This module increases the exoskeleton's weight bearing at the cost of increased power consumption. It is turned on and continually drawing power. Use it to turn it off.", "weight": "2 kg", @@ -206,7 +206,7 @@ { "id": "exo_flashlight", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "mounted lamp (off)", "str_pl": "mounted lamps (off)" }, "description": "This is a light that can be secured to an exoskeleton hardpoint. It has two levels of brightness.", "weight": "500 g", @@ -261,7 +261,7 @@ { "id": "exo_hearing", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str_sp": "audio protection (off)" }, "description": "This is an audio protection exoskeleton module. While active, it also protects your hearing from loud noises.", "weight": "500 g", @@ -300,7 +300,7 @@ { "id": "exo_recoil", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "recoil mitigation system (off)", "str_pl": "recoil mitigation systems (off)" }, "description": "This module takes partial control of the exoskeleton while firing, damping recoil. Activate before firing.", "weight": "500 g", @@ -345,7 +345,7 @@ { "id": "exo_optics", "type": "TOOL_ARMOR", - "category": "armor", + "category": "exosuit", "symbol": "8", "color": "light_gray", "name": { "str_sp": "exoskeleton enhanced optics (off)" }, diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 373e13397193c..6c3c44ef0708a 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -2,7 +2,7 @@ { "id": "exo_helmet_steel", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "steel helmet plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of steel.", "weight": "12880 g", @@ -19,7 +19,7 @@ { "id": "exo_helmet_plastic", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "copy-from": "exo_helmet_steel", "name": { "str": "plastic helmet plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's helmet, this is a plate of plastic.", @@ -41,7 +41,7 @@ { "id": "exo_helmet_vcc", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "copy-from": "exo_helmet_steel", "name": { "str": "carbide helmet plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's helmet, this is a plate of vacuum-cast carbide.", @@ -63,7 +63,7 @@ { "id": "exo_torso_steel", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "steel torso plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", "weight": "34347 g", @@ -80,7 +80,7 @@ { "id": "exo_torso_plastic", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "copy-from": "exo_torso_steel", "name": { "str": "plastic torso plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's torso, this is a plate of plastic.", @@ -103,7 +103,7 @@ { "id": "exo_torso_vcc", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "copy-from": "exo_torso_steel", "name": { "str": "carbide torso plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of vacuum-cast carbide.", @@ -124,7 +124,7 @@ { "id": "exo_psu_steel", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "steel PSU plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of steel.", "weight": "42933 g", @@ -141,7 +141,7 @@ { "id": "exo_psu_plastic", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "copy-from": "exo_psu_steel", "name": { "str": "plastic PSU plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a plate of plastic.", @@ -163,7 +163,7 @@ { "id": "exo_psu_vcc", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "copy-from": "exo_psu_steel", "name": { "str": "carbide PSU plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of vacuum-cast carbide.", @@ -185,7 +185,7 @@ { "id": "exo_arm_steel", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "steel arm plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", "weight": "30 g", @@ -211,7 +211,7 @@ { "id": "exo_arm_plastic", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "copy-from": "exo_arm_steel", "name": { "str": "plastic arm plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are plates of plastic.", @@ -233,7 +233,7 @@ { "id": "exo_arm_vcc", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "copy-from": "exo_arm_steel", "name": { "str": "carbide arm plate (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of vacuum-cast carbide.", @@ -254,7 +254,7 @@ { "id": "exo_leg_steel", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "name": { "str": "steel leg plating (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", "weight": "33000 g", @@ -280,7 +280,7 @@ { "id": "exo_leg_plastic", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "copy-from": "exo_leg_steel", "name": { "str": "plastic leg plating (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are plates of plastic.", @@ -301,7 +301,7 @@ { "id": "exo_leg_vcc", "type": "ARMOR", - "category": "armor", + "category": "exosuit", "copy-from": "exo_leg_steel", "name": { "str": "carbide leg plating (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of vacuum-cast carbide.", From c2737ad4391935104028c47a00145d67b84d9d1b Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 30 Dec 2021 12:04:55 -0800 Subject: [PATCH 161/189] Update modular_exoskeleton.json --- .../items/armor/modular_exos/modular_exoskeleton.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 12ee9ece7f5b4..49b47b7f0bc3a 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -123,7 +123,13 @@ "moves": 60 } ], - "armor": [ { "encumbrance": 20, "coverage": 100, "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] } ], + "armor": [ + { + "encumbrance": 20, + "coverage": 100, + "covers": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] + } + ], "ammo": "battery", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, From b992bbebd0e29be050db334f289b0b60517d7c95 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 30 Dec 2021 12:51:43 -0800 Subject: [PATCH 162/189] Update modular_exoskeleton_storage.json --- .../modular_exos/modular_exoskeleton_storage.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 71b6d098fc04f..861bdfd22c803 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -3,7 +3,7 @@ "id": "exo_rifle_storage", "copy-from": "back_holster", "type": "ARMOR", - "name": { "str": "large storage pouch", "str_pl": "large storage pouches" }, + "name": { "str": "large storage pouch (exosuit)", "str_pl": "large storage pouches (exosuit)" }, "description": "A hardpoint for storing a rifle. Activate to holster/draw a gun.", "weight": "454 g", "volume": "2 L", @@ -17,7 +17,7 @@ "id": "exo_melee_storage", "copy-from": "bscabbard", "type": "ARMOR", - "name": { "str_sp": "exoskeleton scabbard" }, + "name": { "str_sp": scabbard (exosuit)" }, "description": "A metallic scabbard mountable on an exoskeleton hard point. Can be activated to sheath or draw a sword.", "weight": "454 g", "volume": "2 L", @@ -34,7 +34,7 @@ "copy-from": "backpack_tactical_large", "repairs_like": "backpack_tactical_large", "type": "ARMOR", - "name": { "str": "exoskeleton large storage pack" }, + "name": { "str": large storage pack (exosuit)" }, "description": "A large storage pack, mountable on a hardpoint.", "weight": "2291 g", "volume": "15 L", @@ -48,7 +48,7 @@ "copy-from": "fanny", "repairs_like": "fanny", "type": "ARMOR", - "name": { "str": "exoskeleton medium pouch", "str_pl": "exoskeleton medium pouches" }, + "name": { "str": medium pouch (exosuit)", "str_pl": medium pouches (exosuit)" }, "description": "A medium storage pouch, mountable on a hardpoint.", "weight": "275 g", "volume": "2500 ml", @@ -63,7 +63,7 @@ "copy-from": "leather_pouch", "repairs_like": "fanny", "type": "ARMOR", - "name": { "str": "exoskeleton small pouch", "str_pl": "exoskeleton small pouches" }, + "name": { "str": small pouch (exosuit)", "str_pl": small pouches (exosuit)" }, "description": "A small storage pouch, mountable on a hardpoint.", "weight": "125 g", "volume": "1050 ml", @@ -77,7 +77,7 @@ "copy-from": "tacvest", "looks_like": "tacvest", "type": "ARMOR", - "name": { "str_sp": "exoskeleton large ammo pouches" }, + "name": { "str_sp": large ammo pouches (exosuit)" }, "description": "A set of pouches that attach to a hardpoint.", "weight": "205 g", "volume": "1050 ml", @@ -92,7 +92,7 @@ "id": "exo_small_ammo_pouch", "copy-from": "legrig", "type": "ARMOR", - "name": { "str_sp": "exoskeleton small ammo pouches" }, + "name": { "str_sp": small ammo pouches (exosuit)" }, "description": "A set of pouches that attach to a hardpoint.", "symbol": "[", "color": "dark_gray", From 847cf6910d1f8dcc5ea1acd9d256491c484ca9d6 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 30 Dec 2021 14:14:20 -0800 Subject: [PATCH 163/189] Update modular_exoskeleton_storage.json --- .../modular_exos/modular_exoskeleton_storage.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 861bdfd22c803..cc6c60d7a797e 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -17,7 +17,7 @@ "id": "exo_melee_storage", "copy-from": "bscabbard", "type": "ARMOR", - "name": { "str_sp": scabbard (exosuit)" }, + "name": { "str_sp": "scabbard (exosuit)" }, "description": "A metallic scabbard mountable on an exoskeleton hard point. Can be activated to sheath or draw a sword.", "weight": "454 g", "volume": "2 L", @@ -34,7 +34,7 @@ "copy-from": "backpack_tactical_large", "repairs_like": "backpack_tactical_large", "type": "ARMOR", - "name": { "str": large storage pack (exosuit)" }, + "name": { "str": "large storage pack (exosuit)" }, "description": "A large storage pack, mountable on a hardpoint.", "weight": "2291 g", "volume": "15 L", @@ -48,7 +48,7 @@ "copy-from": "fanny", "repairs_like": "fanny", "type": "ARMOR", - "name": { "str": medium pouch (exosuit)", "str_pl": medium pouches (exosuit)" }, + "name": { "str": "medium pouch (exosuit)", "str_pl": "medium pouches (exosuit)" }, "description": "A medium storage pouch, mountable on a hardpoint.", "weight": "275 g", "volume": "2500 ml", @@ -63,7 +63,7 @@ "copy-from": "leather_pouch", "repairs_like": "fanny", "type": "ARMOR", - "name": { "str": small pouch (exosuit)", "str_pl": small pouches (exosuit)" }, + "name": { "str": "small pouch (exosuit)", "str_pl": "small pouches (exosuit)" }, "description": "A small storage pouch, mountable on a hardpoint.", "weight": "125 g", "volume": "1050 ml", @@ -77,7 +77,7 @@ "copy-from": "tacvest", "looks_like": "tacvest", "type": "ARMOR", - "name": { "str_sp": large ammo pouches (exosuit)" }, + "name": { "str_sp": "large ammo pouches (exosuit)" }, "description": "A set of pouches that attach to a hardpoint.", "weight": "205 g", "volume": "1050 ml", @@ -92,7 +92,7 @@ "id": "exo_small_ammo_pouch", "copy-from": "legrig", "type": "ARMOR", - "name": { "str_sp": small ammo pouches (exosuit)" }, + "name": { "str_sp": "small ammo pouches (exosuit)" }, "description": "A set of pouches that attach to a hardpoint.", "symbol": "[", "color": "dark_gray", From 88088f788ccd09128e70ad8d56055c3f2fcaa6d5 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sun, 2 Jan 2022 01:16:58 -0800 Subject: [PATCH 164/189] Add "MANAGE_EXOSUIT" use action. Takes advantage of #53964 to clean up exosuit UI. --- .../items/armor/modular_exos/modular_exoskeleton.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 49b47b7f0bc3a..0ea944593da33 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -133,14 +133,16 @@ "ammo": "battery", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, - "use_action": { + "use_action": [ + { "target": "modular_exoskeleton_on", "msg": "The %s engages.", "active": true, "need_charges": 1, "need_charges_msg": "The suit does not have enough charge.", "type": "transform" - } + }, + {"MANAGE_EXOSUIT"} }, { "id": "modular_exoskeleton_on", From 6a42cfe565c621017dbd7ce6a03643a988ed7d01 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:19:58 -0800 Subject: [PATCH 165/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../Aftershock/items/armor/modular_exos/modular_exoskeleton.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 0ea944593da33..a5463677f2782 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -38,6 +38,7 @@ "pocket_data": [ { "pocket_type": "CONTAINER", + "name": "Torso compartment (Plate)", "description": "This is a mounting point for torso armor.", "ablative": true, "rigid": true, From 4914edd78615359a19e6d713546af94b13ed1033 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:20:04 -0800 Subject: [PATCH 166/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../Aftershock/items/armor/modular_exos/modular_exoskeleton.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index a5463677f2782..37b5fa1c63e47 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -49,6 +49,7 @@ }, { "pocket_type": "CONTAINER", + "name": "Torso compartment (Gadget)", "description": "This is a mount for storing items in the torso.", "rigid": true, "max_contains_volume": "2 L", From d5a1b0fb864d696cf79fe1ca5575f2d8cefd8a29 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:20:10 -0800 Subject: [PATCH 167/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../Aftershock/items/armor/modular_exos/modular_exoskeleton.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 37b5fa1c63e47..6a3415b9d4690 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -59,6 +59,7 @@ }, { "pocket_type": "CONTAINER", + "name": "PSU compartment", "description": "This is a mounting point for power supply units and large modules.", "rigid": true, "max_contains_volume": "25 L", From 17b606883347ab000907a135fc6f1276293b1965 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:20:16 -0800 Subject: [PATCH 168/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../Aftershock/items/armor/modular_exos/modular_exoskeleton.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 6a3415b9d4690..530e57f42ef6e 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -69,6 +69,7 @@ }, { "pocket_type": "CONTAINER", + "name": "Arm compartment (Plate)", "description": "This is a mounting point for arm armor.", "ablative": true, "rigid": true, From b55cec89da1dc9faeff4c5b1086d8c28982f66af Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:20:23 -0800 Subject: [PATCH 169/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../Aftershock/items/armor/modular_exos/modular_exoskeleton.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 530e57f42ef6e..e11d2c5a07bd7 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -81,6 +81,7 @@ }, { "pocket_type": "CONTAINER", + "name": "Arm compartment 1 (Gadget)", "description": "This is a mount for storing items on the arms.", "rigid": true, "max_contains_volume": "2 L", From d7075d50ec3ae969063d0037e05342da926b9b50 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:20:32 -0800 Subject: [PATCH 170/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../Aftershock/items/armor/modular_exos/modular_exoskeleton.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index e11d2c5a07bd7..6ecac2e4884a4 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -91,6 +91,7 @@ }, { "pocket_type": "CONTAINER", + "name": "Arm compartment 2 (Gadget)", "description": "This is a mount for storing items on the arms.", "rigid": true, "max_contains_volume": "2 L", From 8225eb6a2251a1a357eaf8c2777c76e8cdc2b64e Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:22:12 -0800 Subject: [PATCH 171/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../Aftershock/items/armor/modular_exos/modular_exoskeleton.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 6ecac2e4884a4..ecb12337040ca 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -101,6 +101,7 @@ }, { "pocket_type": "CONTAINER", + "name": "Leg compartment (Plate)", "description": "This is a mounting point for leg armor.", "ablative": true, "rigid": true, From b606b1aade1d54eb85182adc8e5b25495d337914 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:22:29 -0800 Subject: [PATCH 172/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../Aftershock/items/armor/modular_exos/modular_exoskeleton.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index ecb12337040ca..2a643dd9cb051 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -113,6 +113,7 @@ }, { "pocket_type": "CONTAINER", + "name": "Leg compartment 1 (Gadget)", "description": "This is a mount for storing items on the legs.", "rigid": true, "max_contains_volume": "2 L", From fedbf2a54f075b0a8d5dc4ed3303f6bc7f168245 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:22:39 -0800 Subject: [PATCH 173/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../Aftershock/items/armor/modular_exos/modular_exoskeleton.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 2a643dd9cb051..6dfe0aab2110f 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -123,6 +123,7 @@ }, { "pocket_type": "CONTAINER", + "name": "Leg compartment 2 (Gadget)", "description": "This is a mount for storing items on the legs.", "rigid": true, "max_contains_volume": "2 L", From da6efad94b1f68f89d69bb3bfe1ed3e8d4aa2b41 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:23:15 -0800 Subject: [PATCH 174/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../items/armor/modular_exos/modular_exoskeleton.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 6dfe0aab2110f..e04d33b1f5042 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -142,16 +142,15 @@ "ammo": "battery", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, - "use_action": [ - { + + "use_action": [ { "target": "modular_exoskeleton_on", "msg": "The %s engages.", "active": true, "need_charges": 1, "need_charges_msg": "The suit does not have enough charge.", "type": "transform" - }, - {"MANAGE_EXOSUIT"} + }, "MANAGE_EXOSUIT" ] }, { "id": "modular_exoskeleton_on", From 0016199b953be843037c533241b958badbfffcfb Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:23:29 -0800 Subject: [PATCH 175/189] Update data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json Co-authored-by: David Seguin --- .../items/armor/modular_exos/modular_exoskeleton.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index e04d33b1f5042..ba1db2b401069 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -164,7 +164,12 @@ "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, "power_draw": 7123, "revert_to": "modular_exoskeleton", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exoskeleton" } + "use_action": [ { + "type": "transform", + "menu_text": "Turn off", + "msg": "The %s disengages.", + "target": "modular_exoskeleton" + }, "MANAGE_EXOSUIT" ] }, { "id": "exoskeleton_helmet", From 13de2bbffa80ca607cffbcbcc09b858ad5f32a15 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Mon, 10 Jan 2022 15:26:45 -0800 Subject: [PATCH 176/189] Linting --- .../modular_exos/modular_exoskeleton.json | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index ba1db2b401069..694bd6122f720 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -142,6 +142,7 @@ "ammo": "battery", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, +<<<<<<< HEAD "use_action": [ { "target": "modular_exoskeleton_on", @@ -151,6 +152,19 @@ "need_charges_msg": "The suit does not have enough charge.", "type": "transform" }, "MANAGE_EXOSUIT" ] +======= + "use_action": [ + { + "target": "modular_exoskeleton_on", + "msg": "The %s engages.", + "active": true, + "need_charges": 1, + "need_charges_msg": "The suit does not have enough charge.", + "type": "transform" + }, + "MANAGE_EXOSUIT" + ] +>>>>>>> 81e89c11af (Linting) }, { "id": "modular_exoskeleton_on", @@ -164,12 +178,10 @@ "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, "power_draw": 7123, "revert_to": "modular_exoskeleton", - "use_action": [ { - "type": "transform", - "menu_text": "Turn off", - "msg": "The %s disengages.", - "target": "modular_exoskeleton" - }, "MANAGE_EXOSUIT" ] + "use_action": [ + { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exoskeleton" }, + "MANAGE_EXOSUIT" + ] }, { "id": "exoskeleton_helmet", From 3eeaa00572f92e3dd73dba5c23c3175f64c00c47 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 13 Jan 2022 11:34:21 -0800 Subject: [PATCH 177/189] Delete exo_recipe.json --- .../items/armor/modular_exos/exo_recipe.json | 81 ------------------- 1 file changed, 81 deletions(-) delete mode 100644 data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json b/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json deleted file mode 100644 index 71f83ebeee057..0000000000000 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_recipe.json +++ /dev/null @@ -1,81 +0,0 @@ -[ - { - "result": "exo_helmet_steel", - "type": "recipe", - "activity_level": "BRISK_EXERCISE", - "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_HEAD", - "skill_used": "fabrication", - "difficulty": 7, - "time": "9 h", - "book_learn": [ [ "exosuit_maintenance", 6 ] ], - "using": [ [ "blacksmithing_standard", 56 ], [ "steel_standard", 14 ] ], - "proficiencies": [ - { "proficiency": "prof_metalworking" }, - { "proficiency": "prof_blacksmithing" }, - { "proficiency": "prof_armorsmithing" } - ], - "qualities": [ { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ] - }, - { - "result": "exo_torso_steel", - "type": "recipe", - "activity_level": "BRISK_EXERCISE", - "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_TORSO", - "skill_used": "fabrication", - "difficulty": 8, - "time": "9 h", - "book_learn": [ [ "exosuit_maintenance", 7 ] ], - "using": [ [ "blacksmithing_standard", 32 ], [ "steel_standard", 8 ] ], - "proficiencies": [ - { "proficiency": "prof_armorsmithing" }, - { "proficiency": "prof_metalworking" }, - { "proficiency": "prof_blacksmithing" } - ], - "qualities": [ { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "swage", -1 ] ] ] - }, - { - "result": "exo_psu_steel", - "type": "recipe", - "activity_level": "BRISK_EXERCISE", - "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_ARMS", - "skill_used": "fabrication", - "difficulty": 7, - "skills_required": [ [ "tailor", 3 ] ], - "time": "900 m", - "book_learn": [ [ "exosuit_maintenance", 6 ] ], - "using": [ [ "blacksmithing_standard", 24 ], [ "steel_standard", 2 ] ], - "proficiencies": [ - { "proficiency": "prof_metalworking" }, - { "proficiency": "prof_blacksmithing" }, - { "proficiency": "prof_armorsmithing" }, - { "proficiency": "prof_articulation" } - ], - "qualities": [ { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "swage", -1 ] ] ] - }, - { - "result": "exo_leg_steel", - "type": "recipe", - "activity_level": "BRISK_EXERCISE", - "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_LEGS", - "skill_used": "fabrication", - "difficulty": 8, - "time": "190 m", - "book_learn": [ [ "exosuit_maintenance", 6 ] ], - "using": [ [ "blacksmithing_standard", 28 ], [ "steel_standard", 7 ], [ "clasps", 4 ] ], - "proficiencies": [ - { "proficiency": "prof_metalworking" }, - { "proficiency": "prof_blacksmithing" }, - { "proficiency": "prof_armorsmithing" }, - { "proficiency": "prof_articulation" } - ], - "qualities": [ { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "swage", -1 ] ] ] - } -] From 79ddcf1ade088ca41a701e77fa161931aa63439b Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 13 Jan 2022 22:11:42 -0800 Subject: [PATCH 178/189] Single/plurals --- .../modular_exoskeleton_plating.json | 20 +++++++++---------- data/mods/Aftershock/items/vehicle_items.json | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 6c3c44ef0708a..c7e1767c6787a 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -3,7 +3,7 @@ "id": "exo_helmet_steel", "type": "ARMOR", "category": "exosuit", - "name": { "str": "steel helmet plate (exosuit)" }, + "name": { "str": "steel helmet plate (exosuit)", "str_pl": "steel helmet plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of steel.", "weight": "12880 g", "volume": "5 L", @@ -21,7 +21,7 @@ "type": "ARMOR", "category": "exosuit", "copy-from": "exo_helmet_steel", - "name": { "str": "plastic helmet plate (exosuit)" }, + "name": { "str": "plastic helmet plate (exosuit)", "str_pl": "plastic helmet plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's helmet, this is a plate of plastic.", "weight": "1287 g", "material": [ "plastic" ], @@ -33,7 +33,7 @@ "id": "destroyed_exo_helmet_plastic_plate", "type": "ARMOR", "copy-from": "exo_helmet_plastic", - "name": { "str": "shattered plastic helmet plate (exosuit)" }, + "name": { "str": "shattered plastic helmet plate (exosuit)", "str_pl": "shattered plastic helmet plates (exosuit)" }, "description": "The remains of a plastic helmet plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_helmet_plastic", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] @@ -43,7 +43,7 @@ "type": "ARMOR", "category": "exosuit", "copy-from": "exo_helmet_steel", - "name": { "str": "carbide helmet plate (exosuit)" }, + "name": { "str": "carbide helmet plate (exosuit)", "str_pl": "carbide helmet plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's helmet, this is a plate of vacuum-cast carbide.", "weight": "1287 g", "material": [ "vacuum_carbide" ], @@ -55,7 +55,7 @@ "id": "destroyed_exo_helmet_vcc_plate", "type": "ARMOR", "copy-from": "exo_helmet_plastic", - "name": { "str": "shattered carbide helmet plate (exosuit)" }, + "name": { "str": "shattered carbide helmet plate (exosuit)", "str_pl": "shattered carbide helmet plates (exosuit)" }, "description": "The remains of a vacuum-cast carbide helmet plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_helmet_vcc", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "head", "eyes", "mouth" ] } ] @@ -64,7 +64,7 @@ "id": "exo_torso_steel", "type": "ARMOR", "category": "exosuit", - "name": { "str": "steel torso plate (exosuit)" }, + "name": { "str": "steel torso plate (exosuit)", "str_pl": "steel torso plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", "weight": "34347 g", "volume": "8 L", @@ -82,7 +82,7 @@ "type": "ARMOR", "category": "exosuit", "copy-from": "exo_torso_steel", - "name": { "str": "plastic torso plate (exosuit)" }, + "name": { "str": "plastic torso plate (exosuit)", "str_pl": "plastic torso plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's torso, this is a plate of plastic.", "weight": "3432 g", "volume": "8 L", @@ -94,7 +94,7 @@ "id": "destroyed_exo_torso_plastic_plate", "type": "ARMOR", "copy-from": "exo_torso_plastic", - "name": { "str": "shattered plastic torso plate (exosuit)" }, + "name": { "str": "shattered plastic torso plate (exosuit)", "str_pl": "shattered plastic torso plates (exosuit)" }, "description": "The remains of a plastic torso plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_torso_plastic", "material_thickness": 3, @@ -105,7 +105,7 @@ "type": "ARMOR", "category": "exosuit", "copy-from": "exo_torso_steel", - "name": { "str": "carbide torso plate (exosuit)" }, + "name": { "str": "carbide torso plate (exosuit)", "str_pl": "carbide torso plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of vacuum-cast carbide.", "weight": "44000 g", "volume": "8 L", @@ -117,7 +117,7 @@ "id": "destroyed_exo_torso_vcc_plate", "type": "ARMOR", "copy-from": "exo_torso_vcc", - "name": { "str": "shattered carbide torso plate (exosuit)" }, + "name": { "str": "shattered carbide torso plate (exosuit)", "str_pl": "shattered carbide torso plates (exosuit)" }, "description": "The remains of a vacuum-cast carbide torso plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_torso_vcc" }, diff --git a/data/mods/Aftershock/items/vehicle_items.json b/data/mods/Aftershock/items/vehicle_items.json index 3ac4dc4774a1f..5836775d16410 100644 --- a/data/mods/Aftershock/items/vehicle_items.json +++ b/data/mods/Aftershock/items/vehicle_items.json @@ -21,6 +21,6 @@ "id": "exo_gantry", "copy-from": "vehicle_rig", "name": "exoskeleton maintenance gantry", - "description": "A vehicle-mounted gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when activated from the vehicle's controls." + "description": "A vehicle-mounted gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when activated from the vehicle's controls." } ] From e683d6bf34552eb38bbfa0de0a7c207182aee3fc Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sat, 15 Jan 2022 01:47:27 -0800 Subject: [PATCH 179/189] Bump tests --- data/mods/Aftershock/items/armor/modular_exos/exo_gear.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index a6b12ca58aac0..12e77f536afe6 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -1,6 +1,6 @@ [ { - "id": "exo_mounted_drill", + "id": "exo_mounted_drill ", "type": "TOOL_ARMOR", "name": { "str": "exoskeleton mounted drill" }, "category": "tool", From 836ff2dbebea1d0c9b9bee95f8b6cb18654ee3b9 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sat, 15 Jan 2022 01:47:45 -0800 Subject: [PATCH 180/189] Bump tests --- data/mods/Aftershock/items/armor/modular_exos/exo_gear.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 12e77f536afe6..a6b12ca58aac0 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -1,6 +1,6 @@ [ { - "id": "exo_mounted_drill ", + "id": "exo_mounted_drill", "type": "TOOL_ARMOR", "name": { "str": "exoskeleton mounted drill" }, "category": "tool", From 9845e713d1876db9ce22f082a527064cdea9af35 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 20 Jan 2022 00:25:42 -0800 Subject: [PATCH 181/189] Update modular_exoskeleton_plating.json --- .../modular_exoskeleton_plating.json | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index c7e1767c6787a..1ca7f3207f336 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -125,7 +125,7 @@ "id": "exo_psu_steel", "type": "ARMOR", "category": "exosuit", - "name": { "str": "steel PSU plate (exosuit)" }, + "name": { "str": "steel PSU plate (exosuit)", "str_pl": "steel PSU plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of steel.", "weight": "42933 g", "volume": "10 L", @@ -143,7 +143,7 @@ "type": "ARMOR", "category": "exosuit", "copy-from": "exo_psu_steel", - "name": { "str": "plastic PSU plate (exosuit)" }, + "name": { "str": "plastic PSU plate (exosuit)", "str_pl": "plastic PSU plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a plate of plastic.", "weight": "4290 g", "volume": "10 L", @@ -155,7 +155,7 @@ "id": "destroyed_exo_psu_plastic_plate", "type": "ARMOR", "copy-from": "exo_psu_plastic", - "name": { "str": "shattered plastic PSU plate (exosuit)" }, + "name": { "str": "shattered plastic PSU plate (exosuit)", "str_pl": "shattered plastic PSU plates (exosuit)" }, "description": "The remains of a plastic PSU plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_psu_plastic", "material_thickness": 3 @@ -165,7 +165,7 @@ "type": "ARMOR", "category": "exosuit", "copy-from": "exo_psu_steel", - "name": { "str": "carbide PSU plate (exosuit)" }, + "name": { "str": "carbide PSU plate (exosuit)", "str_pl": "carbide PSU plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of vacuum-cast carbide.", "weight": "55000 g", "volume": "10 L", @@ -177,7 +177,7 @@ "id": "destroyed_exo_psu_vcc", "type": "ARMOR", "copy-from": "exo_psu_vcc", - "name": { "str": "shattered carbide PSU plate (exosuit)" }, + "name": { "str": "shattered carbide PSU plate (exosuit)", "str_pl": "shattered carbide PSU plates (exosuit)" }, "description": "The remains of a vacuum-cast carbide PSU plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_psu_vcc", "armor": [ { "encumbrance": 20, "coverage": 0, "covers": [ "torso" ] } ] @@ -186,7 +186,7 @@ "id": "exo_arm_steel", "type": "ARMOR", "category": "exosuit", - "name": { "str": "steel arm plate (exosuit)" }, + "name": { "str": "steel arm plate (exosuit)", "str_pl": "steel arm plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", "weight": "30 g", "volume": "6500 ml", @@ -213,7 +213,7 @@ "type": "ARMOR", "category": "exosuit", "copy-from": "exo_arm_steel", - "name": { "str": "plastic arm plate (exosuit)" }, + "name": { "str": "plastic arm plate (exosuit)", "str_pl": "plastic arm plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are plates of plastic.", "weight": "3000 g", "volume": "1500 ml", @@ -225,7 +225,7 @@ "id": "destroyed_exo_arm_plastic_plate", "type": "ARMOR", "copy-from": "exo_arm_plastic", - "name": { "str": "shattered plastic arm plate (exosuit)" }, + "name": { "str": "shattered plastic arm plate (exosuit)", "str_pl": "shattered plastic arm plates (exosuit)" }, "description": "The remains of a plastic arm plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_arm_plastic", "material_thickness": 3 @@ -235,7 +235,7 @@ "type": "ARMOR", "category": "exosuit", "copy-from": "exo_arm_steel", - "name": { "str": "carbide arm plate (exosuit)" }, + "name": { "str": "carbide arm plate (exosuit)", "str_pl": "carbide arm plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of vacuum-cast carbide.", "weight": "38000 g", "volume": "1500 ml", @@ -247,7 +247,7 @@ "id": "destroyed_exo_arm_vcc_plate", "type": "ARMOR", "copy-from": "exo_arm_vcc", - "name": { "str": "shattered carbide arm plate (exosuit)" }, + "name": { "str": "shattered carbide arm plate (exosuit)", "str_pl": "shattered carbide arm plates (exosuit)" }, "description": "The remains of a vacuum-cast carbide arm plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_arm_vcc" }, @@ -255,7 +255,7 @@ "id": "exo_leg_steel", "type": "ARMOR", "category": "exosuit", - "name": { "str": "steel leg plating (exosuit)" }, + "name": { "str": "steel leg plating (exosuit)", "str_pl": "steel leg plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", "weight": "33000 g", "volume": "10 L", @@ -282,7 +282,7 @@ "type": "ARMOR", "category": "exosuit", "copy-from": "exo_leg_steel", - "name": { "str": "plastic leg plating (exosuit)" }, + "name": { "str": "plastic leg plating (exosuit)", "str_pl": "plastic leg plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are plates of plastic.", "weight": "6000 g", "volume": "10 L", @@ -294,7 +294,7 @@ "id": "destroyed_exo_leg_plastic_plate", "type": "ARMOR", "copy-from": "exo_leg_plastic", - "name": { "str": "shattered plastic leg plate (exosuit)" }, + "name": { "str": "shattered plastic leg plate (exosuit)", "str_pl": "shattered plastic leg plates (exosuit)" }, "description": "The remains of a plastic leg plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_leg_plastic" }, @@ -303,7 +303,7 @@ "type": "ARMOR", "category": "exosuit", "copy-from": "exo_leg_steel", - "name": { "str": "carbide leg plating (exosuit)" }, + "name": { "str": "carbide leg plating (exosuit)", "str_pl": "carbide leg plates (exosuit)" }, "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of vacuum-cast carbide.", "weight": "41000 g", "volume": "10 L", @@ -315,7 +315,7 @@ "id": "destroyed_exo_leg_vcc_plate", "type": "ARMOR", "copy-from": "exo_leg_vcc", - "name": { "str": "shattered carbide leg plate (exosuit)" }, + "name": { "str": "shattered carbide leg plate (exosuit)", "str_pl": "shattered carbide leg plates (exosuit)" }, "description": "The remains of a vacuum-cast carbide leg plate after taking a strong impact. No longer provides functional protection, just weight.", "looks_like": "exo_leg_vcc" } From 9730be6896f67f17fb71e9a29ce623a5fe0dbd65 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 20 Jan 2022 09:58:43 -0800 Subject: [PATCH 182/189] Update modular_exoskeleton_storage.json --- .../items/armor/modular_exos/modular_exoskeleton_storage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index cc6c60d7a797e..2a80934cd1b66 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -34,7 +34,7 @@ "copy-from": "backpack_tactical_large", "repairs_like": "backpack_tactical_large", "type": "ARMOR", - "name": { "str": "large storage pack (exosuit)" }, + "name": { "str": "large storage pack (exosuit)", "str_pl": "large storage packs (exosuit)" }, "description": "A large storage pack, mountable on a hardpoint.", "weight": "2291 g", "volume": "15 L", From 41ebfbd122b78822f5d5df41a0753c19d771e8d5 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Fri, 21 Jan 2022 00:51:17 -0800 Subject: [PATCH 183/189] Update modular_exoskeleton_modules.json --- .../items/armor/modular_exos/modular_exoskeleton_modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 59105a0d03bd5..fd17052c36d4d 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -237,7 +237,7 @@ "ammo_scale": 0, "menu_text": "Turn to high", "type": "transform", - "msg": "You turn the heavy duty flashlight off.", + "msg": "You turn the lamp on high.", "target": "exo_flashlight_high" }, "flags": [ "LIGHT_250", "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET" ] From 69d7dfb74ee2faecffc471488bf1c0c97b055df1 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sun, 23 Jan 2022 23:21:15 -0800 Subject: [PATCH 184/189] Update pockets and modules --- data/json/flags.json | 21 ++--- .../modular_exos/modular_exoskeleton.json | 87 ++++++++++++++----- .../modular_exoskeleton_modules.json | 4 +- .../modular_exoskeleton_storage.json | 6 +- 4 files changed, 83 insertions(+), 35 deletions(-) diff --git a/data/json/flags.json b/data/json/flags.json index eed13b38877e2..8fb9841921ecb 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -1860,9 +1860,9 @@ "name": "laser sight" }, { - "id": "EXO_SMALL", - "type": "json_flag", - "info": "This is meant for a small exoskeleton hardpoint." + "id": "EXO_SMALL", + "type": "json_flag", + "info": "This is meant for a small exoskeleton hardpoint." }, { "id": "EXO_LARGE", @@ -1928,15 +1928,16 @@ "id": "EXO_BOOT_PLATE", "type": "json_flag", "info": "This is meant for exoskeleton foot plating." - }, - { - "type": "json flag", - "info": "This is meant for a small exoskeleton hardpoint." }, { - "id": "EXO_LARGE", - "type": "json flag", - "info": "This is meant for a large exoskeleton hardpoint." + "id": "EXO_SMALL", + "type": "json_flag", + "info": "This is meant for a small exoskeleton hardpoint." + }, + { + "id": "EXO_LARGE", + "type": "json_flag", + "info": "This is meant for a large exoskeleton hardpoint." }, { "id": "EXO_PSU", diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 694bd6122f720..1df7adaedc17e 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -49,7 +49,7 @@ }, { "pocket_type": "CONTAINER", - "name": "Torso compartment (Gadget)", + "name": "Torso compartment (Large)", "description": "This is a mount for storing items in the torso.", "rigid": true, "max_contains_volume": "2 L", @@ -57,6 +57,26 @@ "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" ], "moves": 60 }, + { + "pocket_type": "CONTAINER", + "name": "Torso compartment (Small)", + "description": "This is a mount for storing items in the torso.", + "rigid": true, + "max_contains_volume": "1500 ml", + "max_contains_weight": "5 kg", + "flag_restriction": [ "EXO_SMALL_GADGET" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "name": "Torso compartment (Small)", + "description": "This is a mount for storing items in the torso.", + "rigid": true, + "max_contains_volume": "1500 ml", + "max_contains_weight": "5 kg", + "flag_restriction": [ "EXO_SMALL_GADGET" ], + "moves": 60 + }, { "pocket_type": "CONTAINER", "name": "PSU compartment", @@ -75,13 +95,12 @@ "rigid": true, "max_contains_volume": "8 L", "max_contains_weight": "35 kg", - "max_item_length": "200 mm", "flag_restriction": [ "EXO_ARM_PLATE" ], "moves": 60 }, { "pocket_type": "CONTAINER", - "name": "Arm compartment 1 (Gadget)", + "name": "Arm hardpoint 1 (Gadget)", "description": "This is a mount for storing items on the arms.", "rigid": true, "max_contains_volume": "2 L", @@ -91,7 +110,7 @@ }, { "pocket_type": "CONTAINER", - "name": "Arm compartment 2 (Gadget)", + "name": "Arm hardpoint 2 (Gadget)", "description": "This is a mount for storing items on the arms.", "rigid": true, "max_contains_volume": "2 L", @@ -99,21 +118,40 @@ "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" ], "moves": 60 }, + { + "pocket_type": "CONTAINER", + "name": "Arm hardpoint 1 (Small)", + "description": "This is a small mount for storing items on the arms.", + "rigid": true, + "max_contains_volume": "1500 ml", + "max_contains_weight": "5 kg", + "flag_restriction": [ "EXO_SMALL_GADGET" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "name": "Arm hardpoint 2 (Small)", + "description": "This is a small mount for storing items on the arms.", + "rigid": true, + "max_contains_volume": "1500 ml", + "max_contains_weight": "5 kg", + "flag_restriction": [ "EXO_SMALL_GADGET" ], + "moves": 60 + }, { "pocket_type": "CONTAINER", "name": "Leg compartment (Plate)", "description": "This is a mounting point for leg armor.", "ablative": true, "rigid": true, - "max_contains_volume": "9 L", + "max_contains_volume": "10 L", "max_contains_weight": "40 kg", - "max_item_length": "200 mm", "flag_restriction": [ "EXO_LEG_PLATE" ], "moves": 60 }, { "pocket_type": "CONTAINER", - "name": "Leg compartment 1 (Gadget)", + "name": "Leg hardpoint 1 (Large)", "description": "This is a mount for storing items on the legs.", "rigid": true, "max_contains_volume": "2 L", @@ -123,13 +161,33 @@ }, { "pocket_type": "CONTAINER", - "name": "Leg compartment 2 (Gadget)", + "name": "Leg hardpoint 2 (Large)", "description": "This is a mount for storing items on the legs.", "rigid": true, "max_contains_volume": "2 L", "max_contains_weight": "5 kg", "flag_restriction": [ "EXO_MEDIUM_GADGET", "EXO_SMALL_GADGET" ], "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "name": "Leg hardpoint 1 (Small)", + "description": "This is a small mount for storing items on the legs.", + "rigid": true, + "max_contains_volume": "1500 ml", + "max_contains_weight": "5 kg", + "flag_restriction": [ "EXO_SMALL_GADGET" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "name": "Leg hardpoint 2 (Small)", + "description": "This is a small mount for storing items on the legs.", + "rigid": true, + "max_contains_volume": "1500 ml", + "max_contains_weight": "5 kg", + "flag_restriction": [ "EXO_SMALL_GADGET" ], + "moves": 60 } ], "armor": [ @@ -142,17 +200,6 @@ "ammo": "battery", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, -<<<<<<< HEAD - - "use_action": [ { - "target": "modular_exoskeleton_on", - "msg": "The %s engages.", - "active": true, - "need_charges": 1, - "need_charges_msg": "The suit does not have enough charge.", - "type": "transform" - }, "MANAGE_EXOSUIT" ] -======= "use_action": [ { "target": "modular_exoskeleton_on", @@ -164,7 +211,6 @@ }, "MANAGE_EXOSUIT" ] ->>>>>>> 81e89c11af (Linting) }, { "id": "modular_exoskeleton_on", @@ -209,6 +255,7 @@ }, { "pocket_type": "CONTAINER", + "name": "Helmet Hardpoint", "description": "This is a series of mounts for helmet equipment.", "rigid": true, "max_contains_volume": "2 L", diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index fd17052c36d4d..6f26f36dd7b0b 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -327,14 +327,14 @@ "id": "exo_recoil_on", "copy-from": "exo_recoil", "type": "TOOL", - "name": { "str": "recoil controller (on)", "str_pl": "recoil controllers (on)" }, + "name": { "str": "recoil mitigation system (on)", "str_pl": "recoil mitigation systems (on)" }, "power_draw": 2000, "revert_to": "exo_recoil", "use_action": { "ammo_scale": 0, "menu_text": "Turn off", "type": "transform", - "msg": "You turn off the recoil controller.", + "msg": "You turn off the recoil mitigation system.", "target": "exo_recoil" }, "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET", "ONLY_ONE" ], diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 2a80934cd1b66..6f13f358a523b 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -8,7 +8,7 @@ "weight": "454 g", "volume": "2 L", "material": [ "steel" ], - "flags": [ "WATER_FRIENDLY", "NO_QUICKDRAW", "EXO_LARGE_GADGET" ], + "flags": [ "WATER_FRIENDLY", "NO_QUICKDRAW", "EXO_LARGE_GADGET", "BELTED" ], "symbol": "[", "looks_like": "slingpack", "color": "light_gray" @@ -24,7 +24,7 @@ "price": 18000, "price_postapoc": 800, "material": [ "steel" ], - "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], + "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET", "BELTED" ], "symbol": "[", "looks_like": "bscabbard", "color": "light_gray" @@ -39,7 +39,7 @@ "weight": "2291 g", "volume": "15 L", "material": [ "kevlar", "plastic" ], - "flags": [ "WATER_FRIENDLY", "EXO_LARGE_GADGET" ], + "flags": [ "WATER_FRIENDLY", "EXO_LARGE_GADGET", "BELTED" ], "symbol": "[", "looks_like": "backpack" }, From bb8c41606fd86730844af3f526a07265d4b6851f Mon Sep 17 00:00:00 2001 From: John Candlebury Date: Sun, 23 Jan 2022 16:15:43 -0600 Subject: [PATCH 185/189] Fix load errors and other outstanding bugs --- .../armor/modular_exos/modular_exoskeleton.json | 13 ++++++------- .../modular_exos/modular_exoskeleton_plating.json | 2 +- .../modular_exos/modular_exoskeleton_storage.json | 8 ++++---- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index 1df7adaedc17e..cd4a54955cf65 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -43,7 +43,7 @@ "ablative": true, "rigid": true, "max_contains_volume": "10 L", - "max_contains_weight": "45 kg", + "max_contains_weight": "80 kg", "flag_restriction": [ "EXO_TORSO_PLATE" ], "moves": 60 }, @@ -93,8 +93,8 @@ "description": "This is a mounting point for arm armor.", "ablative": true, "rigid": true, - "max_contains_volume": "8 L", - "max_contains_weight": "35 kg", + "max_contains_volume": "12 L", + "max_contains_weight": "80 kg", "flag_restriction": [ "EXO_ARM_PLATE" ], "moves": 60 }, @@ -144,8 +144,8 @@ "description": "This is a mounting point for leg armor.", "ablative": true, "rigid": true, - "max_contains_volume": "10 L", - "max_contains_weight": "40 kg", + "max_contains_volume": "12 L", + "max_contains_weight": "80 kg", "flag_restriction": [ "EXO_LEG_PLATE" ], "moves": 60 }, @@ -225,8 +225,7 @@ "power_draw": 7123, "revert_to": "modular_exoskeleton", "use_action": [ - { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exoskeleton" }, - "MANAGE_EXOSUIT" + { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exoskeleton" } ] }, { diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 1ca7f3207f336..2c6083bf0e8bc 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -268,7 +268,7 @@ "flags": [ "CANT_WEAR", "ABLATIVE_LARGE", "EXO_LEG_PLATE" ], "armor": [ { - "covers": [ "leg_l", "leg_r", "leg_l", "leg_r" ], + "covers": [ "leg_l", "leg_r", "foot_l", "foot_r" ], "encumbrance": 8, "coverage": 95, "cover_melee": 95, diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 6f13f358a523b..486bbc1b93999 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -8,7 +8,7 @@ "weight": "454 g", "volume": "2 L", "material": [ "steel" ], - "flags": [ "WATER_FRIENDLY", "NO_QUICKDRAW", "EXO_LARGE_GADGET", "BELTED" ], + "flags": [ "WATER_FRIENDLY", "NO_QUICKDRAW", "BELTED", "EXO_LARGE_GADGET" ], "symbol": "[", "looks_like": "slingpack", "color": "light_gray" @@ -24,7 +24,7 @@ "price": 18000, "price_postapoc": 800, "material": [ "steel" ], - "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET", "BELTED" ], + "flags": [ "WATER_FRIENDLY", "BELTED", "EXO_MEDIUM_GADGET" ], "symbol": "[", "looks_like": "bscabbard", "color": "light_gray" @@ -39,7 +39,7 @@ "weight": "2291 g", "volume": "15 L", "material": [ "kevlar", "plastic" ], - "flags": [ "WATER_FRIENDLY", "EXO_LARGE_GADGET", "BELTED" ], + "flags": [ "WATER_FRIENDLY", "BELTED", "EXO_LARGE_GADGET" ], "symbol": "[", "looks_like": "backpack" }, @@ -53,7 +53,7 @@ "weight": "275 g", "volume": "2500 ml", "material": [ "nylon", "plastic" ], - "flags": [ "WATER_FRIENDLY", "EXO_MEDIUM_GADGET" ], + "flags": [ "WATER_FRIENDLY", "BELTED", "EXO_MEDIUM_GADGET" ], "symbol": "[", "looks_like": "holster", "color": "green" From 9f7d85935bc7694b584c5a257481925aa6fe83dc Mon Sep 17 00:00:00 2001 From: John Candlebury Date: Sun, 23 Jan 2022 18:25:32 -0600 Subject: [PATCH 186/189] Consistently use Exosuit in descriptions/names. Apply spelling suggestions. --- data/json/flags.json | 60 +++++++++---------- .../items/armor/modular_exos/exo_gear.json | 10 ++-- .../items/armor/modular_exos/exo_tool.json | 2 +- .../modular_exos/modular_exoskeleton.json | 28 ++++----- .../modular_exoskeleton_modules.json | 44 +++++++------- .../modular_exoskeleton_plating.json | 30 +++++----- .../modular_exoskeleton_storage.json | 2 +- data/mods/Aftershock/items/vehicle_items.json | 4 +- .../Aftershock/vehicles/vehicle_parts.json | 4 +- tools/spell_checker/dictionary.txt | 4 ++ 10 files changed, 96 insertions(+), 92 deletions(-) diff --git a/data/json/flags.json b/data/json/flags.json index 8fb9841921ecb..28f26bbc74124 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -1854,30 +1854,30 @@ "name": "gas tank" }, { - "id": "LASER_SIGHT", - "type": "json_flag", - "info": "Invalid when the target position is too far or too bright.", - "name": "laser sight" + "id": "LASER_SIGHT", + "type": "json_flag", + "info": "Invalid when the target position is too far or too bright.", + "name": "laser sight" }, { "id": "EXO_SMALL", "type": "json_flag", - "info": "This is meant for a small exoskeleton hardpoint." + "info": "This is meant for a small exosuit hardpoint." }, { "id": "EXO_LARGE", "type": "json_flag", - "info": "This is meant for a large exoskeleton hardpoint." + "info": "This is meant for a large exosuit hardpoint." }, { "id": "EXO_PSU", "type": "json_flag", - "info": "This is meant for an exoskeleton PSU hardpoint." + "info": "This is meant for an exosuit PSU hardpoint." }, { "id": "EXO_SMALL_GADGET", "type": "json_flag", - "info": "This is meant for small exoskeleton gadgets, 1 L or less." + "info": "This is meant for small exosuit gadgets, 1 L or less." }, { "id": "EXO_HELMET_GADGET", @@ -1887,67 +1887,67 @@ { "id": "EXO_MEDIUM_GADGET", "type": "json_flag", - "info": "This is meant for medium exoskeleton gadgets, between 1 L and 5 L." + "info": "This is meant for medium exosuit gadgets, between 1 L and 5 L." }, { "id": "EXO_LARGE_GADGET", "type": "json_flag", - "info": "This is meant for large exoskeleton gadgets, larger than 5 L." + "info": "This is meant for large exosuit gadgets, larger than 5 L." }, { "id": "EXO_HELMET_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton helmet plating." + "info": "This is meant for exosuit helmet plating." }, { "id": "EXO_TORSO_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton torso plating." + "info": "This is meant for exosuit torso plating." }, { "id": "EXO_PSU_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton PSU plating." + "info": "This is meant for exosuit PSU plating." }, { "id": "EXO_ARM_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton arm plating." + "info": "This is meant for exosuit arm plating." }, { "id": "EXO_GLOVE_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton arm plating." + "info": "This is meant for exosuit arm plating." }, { "id": "EXO_LEG_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton leg plating." + "info": "This is meant for exosuit leg plating." }, { "id": "EXO_BOOT_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton foot plating." + "info": "This is meant for exosuit foot plating." }, { "id": "EXO_SMALL", "type": "json_flag", - "info": "This is meant for a small exoskeleton hardpoint." + "info": "This is meant for a small exosuit hardpoint." }, { "id": "EXO_LARGE", "type": "json_flag", - "info": "This is meant for a large exoskeleton hardpoint." + "info": "This is meant for a large exosuit hardpoint." }, { "id": "EXO_PSU", "type": "json_flag", - "info": "This is meant for an exoskeleton PSU hardpoint." + "info": "This is meant for an exosuit PSU hardpoint." }, { "id": "EXO_SMALL_GADGET", "type": "json_flag", - "info": "This is meant for small exoskeleton gadgets, 1 L or less." + "info": "This is meant for small exosuit gadgets, 1 L or less." }, { "id": "EXO_HELMET_GADGET", @@ -1957,46 +1957,46 @@ { "id": "EXO_MEDIUM_GADGET", "type": "json_flag", - "info": "This is meant for medium exoskeleton gadgets, between 1 L and 5 L." + "info": "This is meant for medium exosuit gadgets, between 1 L and 5 L." }, { "id": "EXO_LARGE_GADGET", "type": "json_flag", - "info": "This is meant for large exoskeleton gadgets, larger than 5 L." + "info": "This is meant for large exosuit gadgets, larger than 5 L." }, { "id": "EXO_HELMET_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton helmet plating." + "info": "This is meant for exosuit helmet plating." }, { "id": "EXO_TORSO_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton torso plating." + "info": "This is meant for exosuit torso plating." }, { "id": "EXO_PSU_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton PSU plating." + "info": "This is meant for exosuit PSU plating." }, { "id": "EXO_ARM_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton arm plating." + "info": "This is meant for exosuit arm plating." }, { "id": "EXO_GLOVE_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton arm plating." + "info": "This is meant for exosuit arm plating." }, { "id": "EXO_LEG_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton leg plating." + "info": "This is meant for exosuit leg plating." }, { "id": "EXO_BOOT_PLATE", "type": "json_flag", - "info": "This is meant for exoskeleton foot plating." + "info": "This is meant for exosuit foot plating." } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index a6b12ca58aac0..60b31310f9524 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -2,9 +2,9 @@ { "id": "exo_mounted_drill", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton mounted drill" }, + "name": { "str": "exosuit mounted drill" }, "category": "tool", - "description": "A powerful header drill with tough carbide bits, this tool mounts to the exoskeleton's arm and extends past the hand. While turned off, it still makes a powerful mace.", + "description": "A powerful header drill with tough carbide bits, this tool mounts to the exosuit's arm and extends past the hand. While turned off, it still makes a powerful mace.", "flags": [ "USE_UPS", "DURABLE_MELEE", "POWERARMOR_COMPATIBLE", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], "weight": "40000 g", "volume": "5 L", @@ -31,7 +31,7 @@ "id": "exo_mounted_drill_on", "type": "TOOL_ARMOR", "copy-from": "exo_mounted_drill", - "name": { "str": "exoskeleton mounted drill (on)", "str_pl": "exoskeleton mounted drills (on)" }, + "name": { "str": "exosuit mounted drill (on)", "str_pl": "exosuit mounted drills (on)" }, "description": "The drill is now rotating and making a low growling noise. Meant to make short work of the toughest rock, it should work on more mobile surfaces as well. Use it to turn it off.", "flags": [ "USE_UPS", "MESSY", "POWERED", "DURABLE_MELEE", "DIG_TOOL", "POWERARMOR_COMPATIBLE" ], "bashing": 60, @@ -44,8 +44,8 @@ "id": "exo_hydraulic_gauntlet", "copy-from": "afs_hydraulic_gauntlet", "type": "ARMOR", - "name": { "str": "exoskeleton hydraulic gauntlet" }, - "description": "A huge, heavy metal gauntlet lined with tubing and gauges worn in place of standard exoskeleton gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively.", + "name": { "str": "exosuit hydraulic gauntlet" }, + "description": "A huge, heavy metal gauntlet lined with tubing and gauges worn in place of standard exosuit gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively.", "looks_like": "gauntlets_chitin", "color": "light_gray", "bashing": 50, diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json b/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json index 4d5d084304b45..ada5e4af861c2 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json @@ -3,7 +3,7 @@ "id": "exo_repair_kit", "copy-from": "large_repairkit", "type": "TOOL", - "name": { "str": "exoskeleton repair kit" }, + "name": { "str": "exosuit repair kit" }, "description": "This is a collection of tools including a high-powered torch for working the titanium frame.", "longest_side": "25 cm", "price": 1000, diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index cd4a54955cf65..ccaf084199d47 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -5,7 +5,7 @@ "type": "ARMOR", "copy-from": "jumpsuit", "looks_like": "robofac_enviro_suit", - "name": { "str": "exoskeleton undersuit" }, + "name": { "str": "exosuit undersuit" }, "description": "A form-fitting suit meant to be worn beneath power armor. Although not a requirement for the operation of power armor, it features climate control and haptic feedback systems that offer improved performance and comfort while doing so. The suit is not designed for use outside of armor, it has no pockets, offers nearly no protection and damages easily.", "weight": "610 g", "volume": "3500 ml", @@ -23,10 +23,10 @@ "flags": [ "USE_UPS", "SKINTIGHT", "WATERPROOF", "POWERARMOR_COMPATIBLE" ] }, { - "id": "modular_exoskeleton", + "id": "modular_exosuit", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton frame" }, - "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs.", + "name": { "str": "exosuit frame" }, + "description": "This is a standard exosuit frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs.", "weight": "43 kg", "volume": "135 L", "material": [ "titanium" ], @@ -202,7 +202,7 @@ "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, "use_action": [ { - "target": "modular_exoskeleton_on", + "target": "modular_exosuit_on", "msg": "The %s engages.", "active": true, "need_charges": 1, @@ -213,26 +213,26 @@ ] }, { - "id": "modular_exoskeleton_on", - "copy-from": "modular_exoskeleton", - "repairs_like": "modular_exoskeleton", + "id": "modular_exosuit_on", + "copy-from": "modular_exosuit", + "repairs_like": "modular_exosuit", "looks_like": "power_armor_light", "type": "TOOL_ARMOR", - "name": { "str": "exoskeleton frame (on)", "str_pl": "exoskeleton frames (on)" }, - "description": "This is a standard exoskeleton frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on and continually drawing power. Use it to turn it off.", + "name": { "str": "exosuit frame (on)", "str_pl": "exosuit frames (on)" }, + "description": "This is a standard exosuit frame. Designed to be modular, it can accept a variety of power supplies, defensive and offensive systems, and utility tools. Slots exist for the torso, back, arms, and legs. It is turned on and continually drawing power. Use it to turn it off.", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER" ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, "power_draw": 7123, - "revert_to": "modular_exoskeleton", + "revert_to": "modular_exosuit", "use_action": [ - { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exoskeleton" } + { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exosuit" } ] }, { - "id": "exoskeleton_helmet", + "id": "exosuit_helmet", "type": "ARMOR", "category": "armor", - "name": { "str": "exoskeleton helmet" }, + "name": { "str": "exosuit helmet" }, "description": "This is a helmet offering mounts for specialized equipment and protection.", "weight": "2500 g", "volume": "5 L", diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index 6f26f36dd7b0b..dcc00aac9b3c3 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -3,8 +3,8 @@ "id": "exo_back_battery_rechargable", "type": "TOOL_ARMOR", "category": "exosuit", - "name": { "str": "exoskeleton power supply unit" }, - "description": "Designed to attach to an exoskeleton's back, this is a large rechargable battery with an integrated UPS.", + "name": { "str": "exosuit power supply unit" }, + "description": "Designed to attach to an exosuit's back, this is a large rechargable battery with an integrated UPS.", "weight": "15 kg", "volume": "20 L", "material": [ "plastic", "steel" ], @@ -32,8 +32,8 @@ "id": "exo_back_gasoline", "type": "TOOL_ARMOR", "category": "exosuit", - "name": { "str": "exoskeleton ICE power supply", "str_pl": "exoskeleton ICE power supplies" }, - "description": "Designed to attach to an exoskeleton's back, this is an internal combustion engine generator with an integrated UPS. This unit is large and occupies the rear hardpoints.", + "name": { "str": "exosuit ICE power supply", "str_pl": "exosuit ICE power supplies" }, + "description": "Designed to attach to an exosuit's back, this is an internal combustion engine generator with an integrated UPS. This unit is large and occupies the rear hardpoints.", "weight": "20 kg", "volume": "25 L", "material": [ "steel", "plastic" ], @@ -67,8 +67,8 @@ "id": "exo_large_aux_power", "type": "TOOL_ARMOR", "category": "exosuit", - "name": { "str": "exoskeleton auxiliary battery", "str_pl": "exoskeleton auxiliary batteries" }, - "description": "This is a large rechargable auxiliary power unit that attaches to an exoskeleton hardpoint.", + "name": { "str": "exosuit auxiliary battery", "str_pl": "exosuit auxiliary batteries" }, + "description": "This is a large rechargable auxiliary power unit that attaches to an exosuit hardpoint.", "weight": "5 kg", "volume": "5 L", "material": [ "plastic", "steel" ], @@ -83,8 +83,8 @@ "id": "exo_small_aux_power", "type": "TOOL_ARMOR", "category": "exosuit", - "name": { "str": "exoskeleton small auxiliary battery", "str_pl": "exoskeleton small auxiliary batteries" }, - "description": "This is a small rechargable auxiliary power unit that attaches to an exoskeleton hardpoint.", + "name": { "str": "exosuit small auxiliary battery", "str_pl": "exosuit small auxiliary batteries" }, + "description": "This is a small rechargable auxiliary power unit that attaches to an exosuit hardpoint.", "weight": "2 kg", "volume": "1 L", "material": [ "plastic", "steel" ], @@ -99,8 +99,8 @@ "id": "exo_large_carry", "type": "TOOL_ARMOR", "category": "exosuit", - "name": { "str": "exoskeleton large load support module (off)", "str_pl": "exoskeleton large load support modules (off)" }, - "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power consumption.", + "name": { "str": "exosuit large load support module (off)", "str_pl": "exosuit large load support modules (off)" }, + "description": "This module significantly increases the exosuit's weight bearing at the cost of increased power consumption.", "weight": "10 kg", "volume": "5 L", "material": [ "plastic", "steel" ], @@ -126,8 +126,8 @@ "id": "exo_large_carry_on", "type": "TOOL_ARMOR", "category": "exosuit", - "name": { "str": "exoskeleton large load support module (on)", "str_pl": "exoskeleton large load support modules (on)" }, - "description": "This module significantly increases the exoskeleton's weight bearing at the cost of increased power consumption. It is turned on and continually drawing power. Use it to turn it off.", + "name": { "str": "exosuit large load support module (on)", "str_pl": "exosuit large load support modules (on)" }, + "description": "This module significantly increases the exosuit's weight bearing at the cost of increased power consumption. It is turned on and continually drawing power. Use it to turn it off.", "weight": "10 kg", "volume": "5 L", "material": [ "plastic", "steel" ], @@ -153,8 +153,8 @@ "id": "exo_small_carry", "type": "TOOL_ARMOR", "category": "exosuit", - "name": { "str": "exoskeleton small load support module (off)", "str_pl": "exoskeleton small load support modules (off)" }, - "description": "This module increases the exoskeleton's weight bearing at the cost of increased power consumption.", + "name": { "str": "exosuit small load support module (off)", "str_pl": "exosuit small load support modules (off)" }, + "description": "This module increases the exosuit's weight bearing at the cost of increased power consumption.", "weight": "2 kg", "volume": "1 L", "material": [ "plastic", "steel" ], @@ -180,8 +180,8 @@ "id": "exo_small_carry_on", "type": "TOOL_ARMOR", "category": "exosuit", - "name": { "str": "exoskeleton small load support module (on)", "str_pl": "exoskeleton small load support modules (on)" }, - "description": "This module increases the exoskeleton's weight bearing at the cost of increased power consumption. It is turned on and continually drawing power. Use it to turn it off.", + "name": { "str": "exosuit small load support module (on)", "str_pl": "exosuit small load support modules (on)" }, + "description": "This module increases the exosuit's weight bearing at the cost of increased power consumption. It is turned on and continually drawing power. Use it to turn it off.", "weight": "2 kg", "volume": "1 L", "material": [ "plastic", "steel" ], @@ -208,7 +208,7 @@ "type": "TOOL_ARMOR", "category": "exosuit", "name": { "str": "mounted lamp (off)", "str_pl": "mounted lamps (off)" }, - "description": "This is a light that can be secured to an exoskeleton hardpoint. It has two levels of brightness.", + "description": "This is a light that can be secured to an exosuit hardpoint. It has two levels of brightness.", "weight": "500 g", "volume": "500 ml", "material": [ "steel", "plastic" ], @@ -263,7 +263,7 @@ "type": "TOOL_ARMOR", "category": "exosuit", "name": { "str_sp": "audio protection (off)" }, - "description": "This is an audio protection exoskeleton module. While active, it also protects your hearing from loud noises.", + "description": "This is an audio protection exosuit module. While active, it also protects your hearing from loud noises.", "weight": "500 g", "volume": "500 ml", "material": [ "steel", "plastic" ], @@ -302,7 +302,7 @@ "type": "TOOL_ARMOR", "category": "exosuit", "name": { "str": "recoil mitigation system (off)", "str_pl": "recoil mitigation systems (off)" }, - "description": "This module takes partial control of the exoskeleton while firing, damping recoil. Activate before firing.", + "description": "This module takes partial control of the exosuit while firing, damping recoil. Activate before firing.", "weight": "500 g", "volume": "500 ml", "material": [ "steel", "plastic" ], @@ -348,8 +348,8 @@ "category": "exosuit", "symbol": "8", "color": "light_gray", - "name": { "str_sp": "exoskeleton enhanced optics (off)" }, - "description": "A set of enhanced optics for an exoskeleton. Provides telescopic vision as well as protection from glare and bright flashes of light. Activate to enable infrared vision.", + "name": { "str_sp": "exosuit enhanced optics (off)" }, + "description": "A set of enhanced optics for an exosuit. Provides telescopic vision as well as protection from glare and bright flashes of light. Activate to enable infrared vision.", "price": 30000, "price_postapoc": 500, "material": [ "plastic", "glass" ], @@ -371,7 +371,7 @@ "id": "exo_optics_on", "copy-from": "exo_optics", "type": "TOOL", - "name": { "str_sp": "exoskeleton enhanced optics (on)" }, + "name": { "str_sp": "exosuit enhanced optics (on)" }, "power_draw": 500, "revert_to": "exo_optics", "use_action": { diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json index 2c6083bf0e8bc..84ca983d3fd5c 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_plating.json @@ -4,7 +4,7 @@ "type": "ARMOR", "category": "exosuit", "name": { "str": "steel helmet plate (exosuit)", "str_pl": "steel helmet plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's helmet, this is a sturdy plate of steel.", + "description": "Designed to attach to an exosuit's helmet, this is a sturdy plate of steel.", "weight": "12880 g", "volume": "5 L", "material": [ "steel" ], @@ -22,7 +22,7 @@ "category": "exosuit", "copy-from": "exo_helmet_steel", "name": { "str": "plastic helmet plate (exosuit)", "str_pl": "plastic helmet plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's helmet, this is a plate of plastic.", + "description": "Designed to attach to an exosuit's helmet, this is a plate of plastic.", "weight": "1287 g", "material": [ "plastic" ], "looks_like": "power_armor_helmet_basic", @@ -44,7 +44,7 @@ "category": "exosuit", "copy-from": "exo_helmet_steel", "name": { "str": "carbide helmet plate (exosuit)", "str_pl": "carbide helmet plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's helmet, this is a plate of vacuum-cast carbide.", + "description": "Designed to attach to an exosuit's helmet, this is a plate of vacuum-cast carbide.", "weight": "1287 g", "material": [ "vacuum_carbide" ], "looks_like": "power_armor_helmet_basic", @@ -65,7 +65,7 @@ "type": "ARMOR", "category": "exosuit", "name": { "str": "steel torso plate (exosuit)", "str_pl": "steel torso plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of steel.", + "description": "Designed to attach to an exosuit's torso, this is a sturdy plate of steel.", "weight": "34347 g", "volume": "8 L", "material": [ "steel" ], @@ -83,7 +83,7 @@ "category": "exosuit", "copy-from": "exo_torso_steel", "name": { "str": "plastic torso plate (exosuit)", "str_pl": "plastic torso plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's torso, this is a plate of plastic.", + "description": "Designed to attach to an exosuit's torso, this is a plate of plastic.", "weight": "3432 g", "volume": "8 L", "material": [ "plastic" ], @@ -106,7 +106,7 @@ "category": "exosuit", "copy-from": "exo_torso_steel", "name": { "str": "carbide torso plate (exosuit)", "str_pl": "carbide torso plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's torso, this is a sturdy plate of vacuum-cast carbide.", + "description": "Designed to attach to an exosuit's torso, this is a sturdy plate of vacuum-cast carbide.", "weight": "44000 g", "volume": "8 L", "material": [ "vacuum_carbide" ], @@ -126,7 +126,7 @@ "type": "ARMOR", "category": "exosuit", "name": { "str": "steel PSU plate (exosuit)", "str_pl": "steel PSU plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of steel.", + "description": "Designed to attach to an exosuit's power supply unit, this is a sturdy plate of steel.", "weight": "42933 g", "volume": "10 L", "material": [ "steel" ], @@ -144,7 +144,7 @@ "category": "exosuit", "copy-from": "exo_psu_steel", "name": { "str": "plastic PSU plate (exosuit)", "str_pl": "plastic PSU plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's power supply unit, this is a plate of plastic.", + "description": "Designed to attach to an exosuit's power supply unit, this is a plate of plastic.", "weight": "4290 g", "volume": "10 L", "material": [ "plastic" ], @@ -166,7 +166,7 @@ "category": "exosuit", "copy-from": "exo_psu_steel", "name": { "str": "carbide PSU plate (exosuit)", "str_pl": "carbide PSU plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's power supply unit, this is a sturdy plate of vacuum-cast carbide.", + "description": "Designed to attach to an exosuit's power supply unit, this is a sturdy plate of vacuum-cast carbide.", "weight": "55000 g", "volume": "10 L", "material": [ "vacuum_carbide" ], @@ -187,7 +187,7 @@ "type": "ARMOR", "category": "exosuit", "name": { "str": "steel arm plate (exosuit)", "str_pl": "steel arm plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of steel.", + "description": "Designed to attach to an exosuit's arms, these are sturdy plates of steel.", "weight": "30 g", "volume": "6500 ml", "material": [ "steel" ], @@ -214,7 +214,7 @@ "category": "exosuit", "copy-from": "exo_arm_steel", "name": { "str": "plastic arm plate (exosuit)", "str_pl": "plastic arm plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's arms, these are plates of plastic.", + "description": "Designed to attach to an exosuit's arms, these are plates of plastic.", "weight": "3000 g", "volume": "1500 ml", "material": [ "plastic" ], @@ -236,7 +236,7 @@ "category": "exosuit", "copy-from": "exo_arm_steel", "name": { "str": "carbide arm plate (exosuit)", "str_pl": "carbide arm plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's arms, these are sturdy plates of vacuum-cast carbide.", + "description": "Designed to attach to an exosuit's arms, these are sturdy plates of vacuum-cast carbide.", "weight": "38000 g", "volume": "1500 ml", "material": [ "vacuum_carbide" ], @@ -256,7 +256,7 @@ "type": "ARMOR", "category": "exosuit", "name": { "str": "steel leg plating (exosuit)", "str_pl": "steel leg plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of steel.", + "description": "Designed to attach to an exosuit's legs, these are sturdy plates of steel.", "weight": "33000 g", "volume": "10 L", "material": [ "steel" ], @@ -283,7 +283,7 @@ "category": "exosuit", "copy-from": "exo_leg_steel", "name": { "str": "plastic leg plating (exosuit)", "str_pl": "plastic leg plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's legs, these are plates of plastic.", + "description": "Designed to attach to an exosuit's legs, these are plates of plastic.", "weight": "6000 g", "volume": "10 L", "material": [ "plastic" ], @@ -304,7 +304,7 @@ "category": "exosuit", "copy-from": "exo_leg_steel", "name": { "str": "carbide leg plating (exosuit)", "str_pl": "carbide leg plates (exosuit)" }, - "description": "Designed to attach to an exoskeleton's legs, these are sturdy plates of vacuum-cast carbide.", + "description": "Designed to attach to an exosuit's legs, these are sturdy plates of vacuum-cast carbide.", "weight": "41000 g", "volume": "10 L", "material": [ "vacuum_carbide" ], diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json index 486bbc1b93999..c63db8d92e603 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_storage.json @@ -18,7 +18,7 @@ "copy-from": "bscabbard", "type": "ARMOR", "name": { "str_sp": "scabbard (exosuit)" }, - "description": "A metallic scabbard mountable on an exoskeleton hard point. Can be activated to sheath or draw a sword.", + "description": "A metallic scabbard mountable on an exosuit hard point. Can be activated to sheath or draw a sword.", "weight": "454 g", "volume": "2 L", "price": 18000, diff --git a/data/mods/Aftershock/items/vehicle_items.json b/data/mods/Aftershock/items/vehicle_items.json index 5836775d16410..33d3dbf9a87b4 100644 --- a/data/mods/Aftershock/items/vehicle_items.json +++ b/data/mods/Aftershock/items/vehicle_items.json @@ -20,7 +20,7 @@ "type": "GENERIC", "id": "exo_gantry", "copy-from": "vehicle_rig", - "name": "exoskeleton maintenance gantry", - "description": "A vehicle-mounted gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when activated from the vehicle's controls." + "name": { "str": "exosuit maintenance gantry", "str_pl": "exosuit maintenance gantries"}, + "description": "A vehicle-mounted gantry for supporting an exosuit upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when activated from the vehicle's controls." } ] diff --git a/data/mods/Aftershock/vehicles/vehicle_parts.json b/data/mods/Aftershock/vehicles/vehicle_parts.json index 8b0469d312eaf..c65dd74eff96c 100644 --- a/data/mods/Aftershock/vehicles/vehicle_parts.json +++ b/data/mods/Aftershock/vehicles/vehicle_parts.json @@ -368,7 +368,7 @@ { "type": "vehicle_part", "id": "exo_gantry", - "name": { "str": "exoskeleton maintenance gantry" }, + "name": { "str": "exosuit maintenance gantry" }, "symbol": "T", "categories": [ "utility" ], "color": "light_gray", @@ -377,7 +377,7 @@ "looks_like": "welding_rig", "damage_modifier": 10, "durability": 200, - "description": "A gantry for supporting an exoskeleton upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active.", + "description": "A gantry for supporting an exosuit upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active.", "size": 800, "bonus": 600, "item": "afs_metal_rig", diff --git a/tools/spell_checker/dictionary.txt b/tools/spell_checker/dictionary.txt index 8699a56508861..057f3099ee9c8 100644 --- a/tools/spell_checker/dictionary.txt +++ b/tools/spell_checker/dictionary.txt @@ -733,6 +733,8 @@ handloading hangry haori hardbound +hardpoint +hardpoints harmonically harries harvestable @@ -1757,6 +1759,8 @@ underbarrel undercovering underprepared underslung +undersuit +undersuits underwelming undulates uneasing From 47426fd1a6030232089fb717a0b64f683ab8ceb9 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Sun, 23 Jan 2022 23:30:25 -0800 Subject: [PATCH 187/189] Linting --- .../items/armor/modular_exos/modular_exoskeleton.json | 4 +--- data/mods/Aftershock/items/vehicle_items.json | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json index ccaf084199d47..e134a707a7acd 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton.json @@ -224,9 +224,7 @@ "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, "power_draw": 7123, "revert_to": "modular_exosuit", - "use_action": [ - { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exosuit" } - ] + "use_action": [ { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exosuit" } ] }, { "id": "exosuit_helmet", diff --git a/data/mods/Aftershock/items/vehicle_items.json b/data/mods/Aftershock/items/vehicle_items.json index 33d3dbf9a87b4..eff193c15724a 100644 --- a/data/mods/Aftershock/items/vehicle_items.json +++ b/data/mods/Aftershock/items/vehicle_items.json @@ -20,7 +20,7 @@ "type": "GENERIC", "id": "exo_gantry", "copy-from": "vehicle_rig", - "name": { "str": "exosuit maintenance gantry", "str_pl": "exosuit maintenance gantries"}, + "name": { "str": "exosuit maintenance gantry", "str_pl": "exosuit maintenance gantries" }, "description": "A vehicle-mounted gantry for supporting an exosuit upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when activated from the vehicle's controls." } ] From 0253d77bff22391fe0962d43b676ec43d1a77c13 Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Thu, 27 Jan 2022 23:58:51 -0800 Subject: [PATCH 188/189] Bump Tests --- data/mods/Aftershock/items/armor/modular_exos/exo_gear.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index 60b31310f9524..bfec8b7f26fad 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -1,6 +1,6 @@ [ { - "id": "exo_mounted_drill", + "id": "exo_mounted_drill", "type": "TOOL_ARMOR", "name": { "str": "exosuit mounted drill" }, "category": "tool", From 0ba6c111bf70c8e03fd163a327d93502e82f485e Mon Sep 17 00:00:00 2001 From: Drew4484 <57647637+Drew4484@users.noreply.github.com> Date: Tue, 1 Feb 2022 00:07:38 -0800 Subject: [PATCH 189/189] Remove modules and hydraulic gauntlet --- .../items/armor/modular_exos/exo_gear.json | 19 +---- .../items/armor/modular_exos/exo_tool.json | 7 ++ .../modular_exoskeleton_modules.json | 80 ------------------- 3 files changed, 8 insertions(+), 98 deletions(-) diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json index bfec8b7f26fad..3245525c5f899 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_gear.json @@ -1,6 +1,6 @@ [ { - "id": "exo_mounted_drill", + "id": "exo_mounted_drill", "type": "TOOL_ARMOR", "name": { "str": "exosuit mounted drill" }, "category": "tool", @@ -39,22 +39,5 @@ "power_draw": 2000, "revert_to": "exo_mounted_drill", "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "You turn off the drill.", "target": "exo_mounted_drill" } - }, - { - "id": "exo_hydraulic_gauntlet", - "copy-from": "afs_hydraulic_gauntlet", - "type": "ARMOR", - "name": { "str": "exosuit hydraulic gauntlet" }, - "description": "A huge, heavy metal gauntlet lined with tubing and gauges worn in place of standard exosuit gauntlets. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively.", - "looks_like": "gauntlets_chitin", - "color": "light_gray", - "bashing": 50, - "to_hit": { "grip": "weapon", "length": "hand", "surface": "any", "balance": "good" }, - "warmth": 20, - "material": "hardsteel", - "material_thickness": 2, - "flags": [ "NONCONDUCTIVE", "SLOW_WIELD", "DURABLE_MELEE", "UNARMED_WEAPON", "CANT_WEAR", "ABLATIVE_LARGE", "EXO_GLOVE_PLATE" ], - "techniques": [ "BRUTAL", "AFS_PRESSURE_CRUNCH" ], - "armor": [ { "encumbrance": 15, "coverage": 100, "covers": [ "hand_r" ] } ] } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json b/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json index ada5e4af861c2..535632751466b 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json +++ b/data/mods/Aftershock/items/armor/modular_exos/exo_tool.json @@ -25,6 +25,13 @@ "move_cost": 1500 } ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "flag_restriction": [ "BATTERY_HEAVY" ], + "default_magazine": "heavy_plus_battery_cell" + } + ], "flags": [ "ALLOWS_REMOTE_USE", "WATER_BREAK", "USE_UPS" ] } ] diff --git a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json index dcc00aac9b3c3..afd4dcdf92120 100644 --- a/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json +++ b/data/mods/Aftershock/items/armor/modular_exos/modular_exoskeleton_modules.json @@ -258,45 +258,6 @@ }, "flags": [ "LIGHT_500", "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET" ] }, - { - "id": "exo_hearing", - "type": "TOOL_ARMOR", - "category": "exosuit", - "name": { "str_sp": "audio protection (off)" }, - "description": "This is an audio protection exosuit module. While active, it also protects your hearing from loud noises.", - "weight": "500 g", - "volume": "500 ml", - "material": [ "steel", "plastic" ], - "symbol": "o", - "color": "white", - "charges_per_use": 1, - "ammo": [ "battery" ], - "flags": [ "USE_UPS", "CANT_WEAR", "EXO_HELMET_GADGET", "ONLY_ONE" ], - "use_action": { - "type": "transform", - "msg": "You activate the helmet's audio protection.", - "target": "exo_hearing_on", - "active": true, - "need_charges": 1, - "need_charges_msg": "There is not enough charge to activate the module." - } - }, - { - "id": "exo_hearing_on", - "copy-from": "exo_hearing", - "type": "TOOL", - "name": { "str_sp": "audio protection (on)" }, - "power_draw": 500, - "revert_to": "exo_hearing", - "use_action": { - "ammo_scale": 0, - "menu_text": "Turn off", - "type": "transform", - "msg": "You turn off the helmet's audio protection.", - "target": "exo_hearing" - }, - "flags": [ "PARTIAL_DEAF", "USE_UPS", "CANT_WEAR", "EXO_HELMET_GADGET", "ONLY_ONE" ] - }, { "id": "exo_recoil", "type": "TOOL_ARMOR", @@ -341,46 +302,5 @@ "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "WEAPON_DISPERSION", "add": -50 } ] } ] } - }, - { - "id": "exo_optics", - "type": "TOOL_ARMOR", - "category": "exosuit", - "symbol": "8", - "color": "light_gray", - "name": { "str_sp": "exosuit enhanced optics (off)" }, - "description": "A set of enhanced optics for an exosuit. Provides telescopic vision as well as protection from glare and bright flashes of light. Activate to enable infrared vision.", - "price": 30000, - "price_postapoc": 500, - "material": [ "plastic", "glass" ], - "flags": [ "ZOOM", "USE_UPS", "SUN_GLASSES", "FLASH_PROTECTION", "EXO_HELMET_GADGET", "ONLY_ONE" ], - "weight": "500 g", - "volume": "500 ml", - "bashing": 4, - "to_hit": -1, - "use_action": { - "type": "transform", - "msg": "You activate the helmet's optical enhancement.", - "target": "exo_optics_on", - "active": true, - "need_charges": 1, - "need_charges_msg": "There is not enough charge to activate the module." - } - }, - { - "id": "exo_optics_on", - "copy-from": "exo_optics", - "type": "TOOL", - "name": { "str_sp": "exosuit enhanced optics (on)" }, - "power_draw": 500, - "revert_to": "exo_optics", - "use_action": { - "ammo_scale": 0, - "menu_text": "Turn off", - "type": "transform", - "msg": "You turn off helmet's optical enhancement.", - "target": "exo_optics" - }, - "flags": [ "ZOOM", "USE_UPS", "CANT_WEAR", "IR_EFFECT", "EXO_HELMET_GADGET", "ONLY_ONE" ] } ]