From eb012c4fbc23d64b4f570fbc85bdb8694334c6cb Mon Sep 17 00:00:00 2001 From: Marc Date: Tue, 21 Jan 2025 22:52:29 -0700 Subject: [PATCH] [Aftershock] Introduce Combat EVA suits to the spawn groups. Small audit to EVA suit spawning. (#79283) * End tail tyranny, add mutant EVA gear * Mutant Cryosuits for the masses * Small Fix * UICA soldiers wear EVA gear * Enforcers use Combat suits. Port Augostmoon Outfitter sells Combat Suits. * Realize Candlebury beat me to it by making most EVA gear soft and thus tail compatible opps * Actually just remove the Mutan Magellan suit. Maybe better for another PR or maybe they just don't make ones for mutants. * Forgot one * Combat suit is guaranteed to be sold by the outfitter * Lint --- .../itemgroups/clothing/winter_outfits.json | 26 ++++++-- .../itemgroups/weapons/armories.json | 1 + .../Aftershock/items/armor/winter_suits.json | 64 ++++++++++++++++++ data/mods/Aftershock/items/tool_armor.json | 66 ------------------- .../Aftershock/maps/mapgen/gene_clinic_1.json | 2 +- .../mapgen_pallete/afs_habitat_structure.json | 2 +- .../augustmoon_outfitter.json | 1 + .../npcs/UICA/GENERIC/nc_ground_engineer.json | 2 + .../npcs/UICA/GENERIC/nc_ground_soldier.json | 2 + 9 files changed, 94 insertions(+), 72 deletions(-) delete mode 100644 data/mods/Aftershock/items/tool_armor.json diff --git a/data/mods/Aftershock/itemgroups/clothing/winter_outfits.json b/data/mods/Aftershock/itemgroups/clothing/winter_outfits.json index 0745032b45990..f8c571a40f256 100644 --- a/data/mods/Aftershock/itemgroups/clothing/winter_outfits.json +++ b/data/mods/Aftershock/itemgroups/clothing/winter_outfits.json @@ -13,12 +13,26 @@ "subtype": "distribution", "items": [ { "group": "afs_frontier_cryo_g", "prob": 20 }, { "group": "afs_cryopod_g", "prob": 1 } ] }, + { + "//": "A group for any generic-flavour basic civillian EVA gear", + "id": "afs_wintersuit_generic_basic", + "type": "item_group", + "subtype": "distribution", + "items": [ { "group": "afs_frontier_cryo_g", "prob": 20 } ] + }, + { + "//": "A group for any generic-flavor combat EVA Gear", + "id": "afs_wintersuit_generic_combat", + "type": "item_group", + "subtype": "distribution", + "items": [ { "group": "afs_combat_gryo_g", "prob": 80 } ] + }, { "//": "A group for any police-flavour advanced civilian piece of clothing", "id": "afs_wintersuit_police_advanced", "type": "item_group", "subtype": "distribution", - "items": [ { "group": "afs_magellan_g", "prob": 2 } ] + "items": [ { "group": "afs_wintersuit_generic_combat", "prob": 2 } ] }, { "//": "A group for any science-flavour advanced civilian piece of clothing", @@ -53,10 +67,14 @@ "entries": [ { "item": "afs_magellan_suit" }, { "item": "afs_magellan_suit_helmet", "prob": 90 } ] }, { - "id": "afs_mutant_colonist_eva_g", + "id": "afs_combat_gryo_g", "type": "item_group", - "//": "Colonist grade EVA gear modified to accomadate mutant anatonmy. Should include suit and mask, and possible future accesories. TODO: this gear does not yet exist so spawn a bodyglove instead, remove this TODO when the group has been filled.", + "//": "The matching combat-cryosuit set. Includes suit, mask and possible future accessories", "subtype": "collection", - "entries": [ { "item": "afs_cryopod_bodyglove" } ] + "entries": [ + { "item": "afs_combat_cryo" }, + { "item": "afs_frontier_cryomask", "prob": 90 }, + { "item": "afs_heavy_suit_battery_cell", "count": [ 1, 2 ], "prob": 25, "charges": [ 0, 1000 ] } + ] } ] diff --git a/data/mods/Aftershock/itemgroups/weapons/armories.json b/data/mods/Aftershock/itemgroups/weapons/armories.json index 4becd450d89b6..ca2997bc2ebdf 100644 --- a/data/mods/Aftershock/itemgroups/weapons/armories.json +++ b/data/mods/Aftershock/itemgroups/weapons/armories.json @@ -161,6 +161,7 @@ "type": "item_group", "subtype": "collection", "items": [ + { "group": "afs_wintersuit_generic_combat", "prob": 60 }, { "item": "afs_military_vest", "prob": 60 }, { "group": "afs_uica_armor_locker_helmets", "prob": 60 }, { "item": "afs_military_cloak", "prob": 30 }, diff --git a/data/mods/Aftershock/items/armor/winter_suits.json b/data/mods/Aftershock/items/armor/winter_suits.json index b381816662c35..c43df643a936e 100644 --- a/data/mods/Aftershock/items/armor/winter_suits.json +++ b/data/mods/Aftershock/items/armor/winter_suits.json @@ -196,5 +196,69 @@ "msg": "Your %s deactivates.", "target": "afs_combat_cryo" } + }, + { + "id": "afs_cryopod_bodyglove", + "type": "TOOL_ARMOR", + "category": "clothing", + "symbol": "[", + "color": "light_gray", + "name": { "str": "cryopod bodyglove" }, + "looks_like": "jumpsuit", + "description": "A dark orange bodyglove, hundreds of tubes curl over its surface, tracing the contours of human musculature. Meant to control body temperature during prolonged cryopreservation, it could easily keep you comfortable in any earthly climate. Use it to activate its climate control functionality.", + "price": "15 kUSD", + "price_postapoc": "1 kUSD 500 USD", + "material": [ "graphene_weave" ], + "weight": "1250 g", + "volume": "4500 ml", + "charges_per_use": 5, + "ammo": "battery", + "relic_data": { "passive_effects": [ { "id": "ench_climate_control_all" } ] }, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_HEAVY" ], + "default_magazine": "afs_heavy_suit_battery_cell" + } + ], + "use_action": { + "type": "transform", + "msg": "You activate your %s.", + "target": "afs_cryopod_bodyglove_on", + "active": true, + "need_charges": 5, + "need_charges_msg": "The %s's batteries are dead." + }, + "warmth": 20, + "environmental_protection": 10, + "material_thickness": 1, + "flags": [ "VARSIZE", "SKINTIGHT", "RAINPROOF", "STURDY", "WATERPROOF", "PADDED" ], + "armor": [ + { + "encumbrance": 5, + "coverage": 100, + "covers": [ "head", "mouth", "eyes", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] + } + ] + }, + { + "id": "afs_cryopod_bodyglove_on", + "copy-from": "afs_cryopod_bodyglove", + "repairs_like": "afs_cryopod_bodyglove", + "type": "TOOL_ARMOR", + "name": { "str": "cryopod bodyglove (on)", "str_pl": "cryopod bodygloves (on)" }, + "looks_like": "afs_cryopod_bodyglove", + "description": "A dark orange bodyglove, hundreds of tubes curl over its surface, tracing the contours of human musculature. Meant to control body temperature during prolonged cryopreservation, it could easily keep you comfortable in any earthly climate. The temperature control units of this high-tech garment are currently active, and continuously draining battery power. Use it to turn them off.", + "power_draw": "90 W", + "revert_to": "afs_cryopod_bodyglove", + "use_action": { + "type": "transform", + "ammo_scale": 0, + "menu_text": "Turn off", + "msg": "Your %s deactivates.", + "target": "afs_cryopod_bodyglove" + }, + "flags": [ "VARSIZE", "SKINTIGHT", "RAINPROOF", "STURDY", "WATERPROOF", "PADDED", "THERMOMETER", "HYGROMETER" ] } ] diff --git a/data/mods/Aftershock/items/tool_armor.json b/data/mods/Aftershock/items/tool_armor.json deleted file mode 100644 index c6a362a63741b..0000000000000 --- a/data/mods/Aftershock/items/tool_armor.json +++ /dev/null @@ -1,66 +0,0 @@ -[ - { - "id": "afs_cryopod_bodyglove", - "type": "TOOL_ARMOR", - "category": "clothing", - "symbol": "[", - "color": "light_gray", - "name": { "str": "cryopod bodyglove" }, - "looks_like": "jumpsuit", - "description": "A dark orange bodyglove, hundreds of tubes curl over its surface, tracing the contours of human musculature. Meant to control body temperature during prolonged cryopreservation, it could easily keep you comfortable in any earthly climate. Use it to activate its climate control functionality.", - "price": "15 kUSD", - "price_postapoc": "1 kUSD 500 USD", - "material": [ "graphene_weave" ], - "weight": "1250 g", - "volume": "4500 ml", - "charges_per_use": 5, - "ammo": "battery", - "relic_data": { "passive_effects": [ { "id": "ench_climate_control_all" } ] }, - "pocket_data": [ - { - "pocket_type": "MAGAZINE_WELL", - "rigid": true, - "flag_restriction": [ "BATTERY_HEAVY" ], - "default_magazine": "afs_heavy_suit_battery_cell" - } - ], - "use_action": { - "type": "transform", - "msg": "You activate your %s.", - "target": "afs_cryopod_bodyglove_on", - "active": true, - "need_charges": 5, - "need_charges_msg": "The %s's batteries are dead." - }, - "warmth": 20, - "environmental_protection": 10, - "material_thickness": 1, - "flags": [ "VARSIZE", "SKINTIGHT", "RAINPROOF", "STURDY", "WATERPROOF", "PADDED" ], - "armor": [ - { - "encumbrance": 5, - "coverage": 100, - "covers": [ "head", "mouth", "eyes", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] - } - ] - }, - { - "id": "afs_cryopod_bodyglove_on", - "copy-from": "afs_cryopod_bodyglove", - "repairs_like": "afs_cryopod_bodyglove", - "type": "TOOL_ARMOR", - "name": { "str": "cryopod bodyglove (on)", "str_pl": "cryopod bodygloves (on)" }, - "looks_like": "afs_cryopod_bodyglove", - "description": "A dark orange bodyglove, hundreds of tubes curl over its surface, tracing the contours of human musculature. Meant to control body temperature during prolonged cryopreservation, it could easily keep you comfortable in any earthly climate. The temperature control units of this high-tech garment are currently active, and continuously draining battery power. Use it to turn them off.", - "power_draw": "90 W", - "revert_to": "afs_cryopod_bodyglove", - "use_action": { - "type": "transform", - "ammo_scale": 0, - "menu_text": "Turn off", - "msg": "Your %s deactivates.", - "target": "afs_cryopod_bodyglove" - }, - "flags": [ "VARSIZE", "SKINTIGHT", "RAINPROOF", "STURDY", "WATERPROOF", "PADDED", "THERMOMETER", "HYGROMETER" ] - } -] diff --git a/data/mods/Aftershock/maps/mapgen/gene_clinic_1.json b/data/mods/Aftershock/maps/mapgen/gene_clinic_1.json index f3e57095edf17..1a5996cd0f927 100644 --- a/data/mods/Aftershock/maps/mapgen/gene_clinic_1.json +++ b/data/mods/Aftershock/maps/mapgen/gene_clinic_1.json @@ -44,7 +44,7 @@ "3": { "signage": "Mercurial Gene Clinic: Welcome to the better you. Genetech: Embrace the next evolution." } }, "items": { - "q": { "item": "afs_mutant_colonist_eva_g", "chance": 60, "repeat": [ 1, 2 ] }, + "q": { "item": "afs_wintersuit_generic_basic", "chance": 60, "repeat": [ 1, 2 ] }, "k": { "item": "office", "chance": 60 } }, "place_monster": [ { "group": "AFS_GROUP_RUIN_MOXIE", "x": [ 3, 20 ], "y": [ 8, 16 ], "pack_size": [ 2, 5 ], "chance": 60 } ], diff --git a/data/mods/Aftershock/maps/mapgen_pallete/afs_habitat_structure.json b/data/mods/Aftershock/maps/mapgen_pallete/afs_habitat_structure.json index 1294c9fe53b44..6ccf0c286dd53 100644 --- a/data/mods/Aftershock/maps/mapgen_pallete/afs_habitat_structure.json +++ b/data/mods/Aftershock/maps/mapgen_pallete/afs_habitat_structure.json @@ -117,7 +117,7 @@ "o": { "item": "afs_kitchenette", "chance": 60 }, "U": { "item": "afs_old_food_storage", "chance": 60 }, "F": { "item": "afs_old_food_storage", "chance": 60 }, - "l": { "item": "afs_frontier_cryo_g", "chance": 50 } + "l": { "item": "afs_wintersuit_generic_basic", "chance": 30 } } }, { diff --git a/data/mods/Aftershock/npcs/Augustmoon_Salvors/augustmoon_outfitter.json b/data/mods/Aftershock/npcs/Augustmoon_Salvors/augustmoon_outfitter.json index b0a5f50a167fd..9496a392e16b6 100644 --- a/data/mods/Aftershock/npcs/Augustmoon_Salvors/augustmoon_outfitter.json +++ b/data/mods/Aftershock/npcs/Augustmoon_Salvors/augustmoon_outfitter.json @@ -39,6 +39,7 @@ "items": [ { "group": "afs_wintersuit_generic_advanced", "count": [ 1, 3 ] }, { "group": "afs_frontier_cryo_g_full_combo", "count": 1 }, + { "group": "afs_wintersuit_generic_combat", "count": [ 1, 2 ], "prob": 60 }, { "group": "afs_basic_armor", "count": [ 0, 3 ] }, { "group": "afs_colonist_outfit", "count": [ 1, 3 ] }, { "group": "afs_civilian_hazard_outfit", "count": [ 1, 3 ], "prob": 60 }, diff --git a/data/mods/Aftershock/npcs/UICA/GENERIC/nc_ground_engineer.json b/data/mods/Aftershock/npcs/UICA/GENERIC/nc_ground_engineer.json index edfbd6da5593c..a552d61d98ee4 100644 --- a/data/mods/Aftershock/npcs/UICA/GENERIC/nc_ground_engineer.json +++ b/data/mods/Aftershock/npcs/UICA/GENERIC/nc_ground_engineer.json @@ -34,6 +34,8 @@ "items": [ { "item": "tac_fullhelmet_uicas" }, { "item": "afs_military_vest" }, + { "item": "afs_combat_cryo" }, + { "item": "afs_frontier_cryomask" }, { "item": "afs_ammo_satchel" }, { "item": "afs_jumpsuit_military" }, { "item": "afs_military_cloak" }, diff --git a/data/mods/Aftershock/npcs/UICA/GENERIC/nc_ground_soldier.json b/data/mods/Aftershock/npcs/UICA/GENERIC/nc_ground_soldier.json index 24d73869f048a..c0c245f0a78f0 100644 --- a/data/mods/Aftershock/npcs/UICA/GENERIC/nc_ground_soldier.json +++ b/data/mods/Aftershock/npcs/UICA/GENERIC/nc_ground_soldier.json @@ -31,6 +31,8 @@ "items": [ { "item": "tac_fullhelmet_uicas" }, { "item": "afs_military_vest" }, + { "item": "afs_combat_cryo" }, + { "item": "afs_frontier_cryomask" }, { "item": "afs_ammo_satchel" }, { "item": "afs_jumpsuit_military" }, { "item": "afs_military_cloak" },