mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-25 09:01:40 +00:00
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may not be viewable. --> <!-- You can view Contributing.MD for a detailed description of the pull request process. --> ## About The Pull Request Adds the Ablative Insulation. A type of mech armor. The armor module protects the mech from energy weapons (such as thermal pistols), and also protects the wires from EMPs (only the wires, not the mech itself). However, it makes it weaker against melee and ballistic weapons. The Dark Gygax and Mauler both obtain a version of this module as part of their default loadout that does not have any disadvantages against melee and ballistic weapons. ## Why It's Good For The Game This is a complimentary PR to this one. https://github.com/tgstation/tgstation/pull/90830 Wire scrambling for mechs is an extremely irritable system, but it does force mech pilots out of the mech to repair some of the effects attached. or at least to a standstill. This can often feel a bit like a knowledge check to resolve for some pilots, since the optimal solutions for this typically involve pulsing the wires in some way, utilizing assemblies like voice analyzers, circuits or signalers. While I would like a more obvious way for pilots to resolve these problems without having to set up signal networks, I do think it should come at some expense in other defenses so that it isn't such a catchall solution compared to the other armor booster modules. There would otherwise be no reason not to use this armor booster if there was no downside, since it completely negates a weakness. Therefore, we're aiming for a slight upside/downside exchange. You get a very good upside, but you now need to compensate for weaker defenses elsewhere (such as risking internal damage effects due to lower armor, see this PR https://github.com/tgstation/tgstation/pull/90844) We've given nuclear operatives an improved version because their mechs are A) expensive as shit, and B) meant to be a huge all-in but have suffered immensely from many years of refactors, rebalances and gear availability changes that definitely have left them underperforming for their promised value. I would much rather nuclear operative mechs feel like they are less beholden to the weaknesses that crew mechs need to contend with if only because they exist for what might be a fraction of the time, if they are even spawned at all due to their price. ## Changelog <!-- If your PR modifies aspects of the game that can be concretely observed by players or admins you should add a changelog. If your change does NOT meet this description, remove this section. Be sure to properly mark your PRs to prevent unnecessary GBP loss. You can read up on GBP and its effects on PRs in the tgstation guides for contributors. Please note that maintainers freely reserve the right to remove and add tags should they deem it appropriate. You can attempt to finagle the system all you want, but it's best to shoot for clear communication right off the bat. --> 🆑 add: Adds the Exosuit Ablative Insulation armor booster module. Protects the mech from energy-based attacks and its wires from EMPs (only the wires, not the mech). However, the armor booster makes the mech weaker to ballistic and melee weapons. add: The Dark Gygax and Mauler now come pre-packaged with a special version that has no weakness to ballistic and melee weapons. /🆑 <!-- Both 🆑's are required for the changelog to work! You can put your name to the right of the first 🆑 if you want to overwrite your GitHub username as author ingame. --> <!-- You can use multiple of the same prefix (they're only used for the icon ingame) and delete the unneeded ones. Despite some of the tags, changelogs should generally represent how a player might be affected by the changes rather than a summary of the PR's contents. -->
281 lines
8.9 KiB
Plaintext
281 lines
8.9 KiB
Plaintext
/datum/techweb_node/mech_assembly
|
|
id = TECHWEB_NODE_MECH_ASSEMBLY
|
|
starting_node = TRUE
|
|
display_name = "Exosuit Assembly"
|
|
description = "Development of mechanical exosuits designed to contend with artificial gravity while transporting cargo."
|
|
prereq_ids = list(TECHWEB_NODE_ROBOTICS)
|
|
design_ids = list(
|
|
"mechapower",
|
|
"mech_recharger",
|
|
"ripley_chassis",
|
|
"ripley_torso",
|
|
"ripley_left_arm",
|
|
"ripley_right_arm",
|
|
"ripley_left_leg",
|
|
"ripley_right_leg",
|
|
"ripley_main",
|
|
"ripley_peri",
|
|
"mech_hydraulic_clamp",
|
|
)
|
|
|
|
/datum/techweb_node/mech_equipment
|
|
id = TECHWEB_NODE_MECH_EQUIPMENT
|
|
display_name = "Expedition Equipment"
|
|
description = "Specialized exosuit gear tailored for navigating space and celestial bodies, ensuring durability and functionality in the harshest conditions."
|
|
prereq_ids = list(TECHWEB_NODE_MECH_ASSEMBLY)
|
|
design_ids = list(
|
|
"mechacontrol",
|
|
"botpad",
|
|
"botpad_remote",
|
|
"ripleyupgrade",
|
|
"mech_air_tank",
|
|
"mech_thrusters",
|
|
"mech_extinguisher",
|
|
"mecha_camera",
|
|
"mecha_tracking",
|
|
"mech_radio",
|
|
)
|
|
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
|
|
announce_channels = list(RADIO_CHANNEL_SCIENCE)
|
|
|
|
/datum/techweb_node/mech_clown
|
|
id = TECHWEB_NODE_MECH_CLOWN
|
|
display_name = "Funny Robots"
|
|
description = "Fueled by laughter."
|
|
prereq_ids = list(TECHWEB_NODE_MECH_ASSEMBLY)
|
|
design_ids = list(
|
|
"honk_chassis",
|
|
"honk_torso",
|
|
"honk_head",
|
|
"honk_left_arm",
|
|
"honk_right_arm",
|
|
"honk_left_leg",
|
|
"honk_right_leg",
|
|
"honker_main",
|
|
"honker_peri",
|
|
"honker_targ",
|
|
"mech_banana_mortar",
|
|
"mech_honker",
|
|
"mech_mousetrap_mortar",
|
|
"mech_punching_face",
|
|
"borg_transform_clown",
|
|
)
|
|
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
|
|
announce_channels = list(RADIO_CHANNEL_SCIENCE, RADIO_CHANNEL_SECURITY) //The dread upon security when they hear this...
|
|
|
|
/datum/techweb_node/mech_medical
|
|
id = TECHWEB_NODE_MECH_MEDICAL
|
|
display_name = "Medical Exosuit"
|
|
description = "Advanced robotic unit equipped with syringe guns and healing beams, revolutionizing medical assistance in hazardous environments."
|
|
prereq_ids = list(TECHWEB_NODE_MECH_ASSEMBLY, TECHWEB_NODE_CHEM_SYNTHESIS)
|
|
design_ids = list(
|
|
"odysseus_chassis",
|
|
"odysseus_torso",
|
|
"odysseus_head",
|
|
"odysseus_left_arm",
|
|
"odysseus_right_arm",
|
|
"odysseus_left_leg",
|
|
"odysseus_right_leg",
|
|
"odysseus_main",
|
|
"odysseus_peri",
|
|
"mech_medi_beam",
|
|
"mech_syringe_gun",
|
|
)
|
|
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
|
|
|
|
/datum/techweb_node/mech_mining
|
|
id = TECHWEB_NODE_MECH_MINING
|
|
display_name = "Mining Exosuit"
|
|
description = "Robust exosuit engineered to withstand lava and storms for continuous off-station mining operations."
|
|
prereq_ids = list(TECHWEB_NODE_MECH_EQUIPMENT, TECHWEB_NODE_MINING)
|
|
design_ids = list(
|
|
"clarke_chassis",
|
|
"clarke_torso",
|
|
"clarke_head",
|
|
"clarke_left_arm",
|
|
"clarke_right_arm",
|
|
"clarke_main",
|
|
"clarke_peri",
|
|
"mecha_kineticgun",
|
|
)
|
|
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
|
|
announce_channels = list(RADIO_CHANNEL_SCIENCE, RADIO_CHANNEL_SUPPLY)
|
|
|
|
/datum/techweb_node/mech_combat
|
|
id = TECHWEB_NODE_MECH_COMBAT
|
|
display_name = "Combat Exosuits"
|
|
description = "Modular armor upgrades and specialized equipment for security exosuits."
|
|
prereq_ids = list(TECHWEB_NODE_MECH_EQUIPMENT)
|
|
design_ids = list(
|
|
"mech_ccw_armor",
|
|
"mech_proj_armor",
|
|
"mech_emp_armor",
|
|
"paddyupgrade",
|
|
"mech_hydraulic_claw",
|
|
"mech_disabler",
|
|
"mech_repair_droid",
|
|
)
|
|
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
|
|
required_experiments = list(/datum/experiment/scanning/random/mecha_equipped_scan)
|
|
announce_channels = list(RADIO_CHANNEL_SCIENCE)
|
|
|
|
/datum/techweb_node/mech_assault
|
|
id = TECHWEB_NODE_MECH_ASSAULT
|
|
display_name = "Assault Exosuits"
|
|
description = "Heavy battle exosuits boasting robust armor but sacrificing speed for enhanced durability."
|
|
prereq_ids = list(TECHWEB_NODE_MECH_COMBAT)
|
|
design_ids = list(
|
|
"durand_armor",
|
|
"durand_chassis",
|
|
"durand_torso",
|
|
"durand_head",
|
|
"durand_left_arm",
|
|
"durand_right_arm",
|
|
"durand_left_leg",
|
|
"durand_right_leg",
|
|
"durand_main",
|
|
"durand_peri",
|
|
"durand_targ",
|
|
)
|
|
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
|
|
announce_channels = list(RADIO_CHANNEL_SCIENCE)
|
|
|
|
/datum/techweb_node/mech_light
|
|
id = TECHWEB_NODE_MECH_LIGHT
|
|
display_name = "Light Combat Exosuits"
|
|
description = "Agile combat exosuits equipped with overclocking capabilities for temporary speed boosts, prioritizing speed over durability on the battlefield."
|
|
prereq_ids = list(TECHWEB_NODE_MECH_COMBAT)
|
|
design_ids = list(
|
|
"gygax_armor",
|
|
"gygax_chassis",
|
|
"gygax_torso",
|
|
"gygax_head",
|
|
"gygax_left_arm",
|
|
"gygax_right_arm",
|
|
"gygax_left_leg",
|
|
"gygax_right_leg",
|
|
"gygax_main",
|
|
"gygax_peri",
|
|
"gygax_targ",
|
|
)
|
|
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
|
|
announce_channels = list(RADIO_CHANNEL_SCIENCE)
|
|
|
|
/datum/techweb_node/mech_heavy
|
|
id = TECHWEB_NODE_MECH_HEAVY
|
|
display_name = "Heavy Exosuits"
|
|
description = "Advanced heavy mechanized unit with dual pilot capability, designed for robust battlefield performance and increased tactical versatility."
|
|
prereq_ids = list(TECHWEB_NODE_MECH_ASSAULT)
|
|
design_ids = list(
|
|
"savannah_ivanov_armor",
|
|
"savannah_ivanov_chassis",
|
|
"savannah_ivanov_torso",
|
|
"savannah_ivanov_head",
|
|
"savannah_ivanov_left_arm",
|
|
"savannah_ivanov_right_arm",
|
|
"savannah_ivanov_left_leg",
|
|
"savannah_ivanov_right_leg",
|
|
"savannah_ivanov_main",
|
|
"savannah_ivanov_peri",
|
|
"savannah_ivanov_targ",
|
|
)
|
|
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS)
|
|
announce_channels = list(RADIO_CHANNEL_SCIENCE)
|
|
|
|
/datum/techweb_node/mech_infiltrator
|
|
id = TECHWEB_NODE_MECH_INFILTRATOR
|
|
display_name = "Infiltration Exosuits"
|
|
description = "Advanced exosuit with phasing capabilities, allowing it to move through walls and obstacles, ideal for covert and special operations."
|
|
prereq_ids = list(TECHWEB_NODE_MECH_LIGHT, TECHWEB_NODE_ANOMALY_RESEARCH)
|
|
design_ids = list(
|
|
"phazon_armor",
|
|
"phazon_chassis",
|
|
"phazon_torso",
|
|
"phazon_head",
|
|
"phazon_left_arm",
|
|
"phazon_right_arm",
|
|
"phazon_left_leg",
|
|
"phazon_right_leg",
|
|
"phazon_main",
|
|
"phazon_peri",
|
|
"phazon_targ",
|
|
)
|
|
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS)
|
|
announce_channels = list(RADIO_CHANNEL_SCIENCE)
|
|
|
|
/datum/techweb_node/justice
|
|
id = "mecha_justice"
|
|
display_name = "EXOSUIT: Justice"
|
|
description = "Justice exosuit designs"
|
|
design_ids = list(
|
|
"justice_armor",
|
|
"justice_chassis",
|
|
"justice_left_arm",
|
|
"justice_left_leg",
|
|
"justice_right_arm",
|
|
"justice_right_leg",
|
|
"justice_torso",
|
|
)
|
|
hidden = TRUE
|
|
illegal_mech_node = TRUE
|
|
|
|
/datum/techweb_node/mech_energy_guns
|
|
id = TECHWEB_NODE_MECH_ENERGY_GUNS
|
|
display_name = "Exosuit Energy Guns"
|
|
description = "Scaled-up versions of electric weapons optimized for exosuit deployment."
|
|
prereq_ids = list(TECHWEB_NODE_MECH_COMBAT, TECHWEB_NODE_ELECTRIC_WEAPONS)
|
|
design_ids = list(
|
|
"mech_laser",
|
|
"mech_laser_heavy",
|
|
"mech_ion",
|
|
"mech_tesla",
|
|
)
|
|
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS)
|
|
discount_experiments = list(/datum/experiment/scanning/random/mecha_damage_scan = TECHWEB_TIER_4_POINTS)
|
|
announce_channels = list(RADIO_CHANNEL_SCIENCE)
|
|
|
|
/datum/techweb_node/mech_firearms
|
|
id = TECHWEB_NODE_MECH_FIREARMS
|
|
display_name = "Exosuit Firearms"
|
|
description = "Mounted ballistic weaponry, enhancing combat capabilities for mechanized units."
|
|
prereq_ids = list(TECHWEB_NODE_MECH_ENERGY_GUNS, TECHWEB_NODE_EXOTIC_AMMO)
|
|
design_ids = list(
|
|
"mech_lmg",
|
|
"mech_lmg_ammo",
|
|
"mech_scattershot",
|
|
"mech_scattershot_ammo",
|
|
"mech_carbine",
|
|
"mech_carbine_ammo",
|
|
)
|
|
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS)
|
|
announce_channels = list(RADIO_CHANNEL_SCIENCE)
|
|
|
|
/datum/techweb_node/mech_heavy_arms
|
|
id = TECHWEB_NODE_MECH_HEAVY_ARMS
|
|
display_name = "Heavy Exosuit Firearms"
|
|
description = "High-impact weaponry integrated into mechs, optimized for maximum firepower."
|
|
prereq_ids = list(TECHWEB_NODE_MECH_HEAVY, TECHWEB_NODE_EXOTIC_AMMO)
|
|
design_ids = list(
|
|
"clusterbang_launcher",
|
|
"clusterbang_launcher_ammo",
|
|
"mech_grenade_launcher",
|
|
"mech_grenade_launcher_ammo",
|
|
"mech_missile_rack",
|
|
"mech_missile_rack_ammo",
|
|
)
|
|
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS)
|
|
announce_channels = list(RADIO_CHANNEL_SCIENCE)
|
|
|
|
/datum/techweb_node/mech_equip_bluespace
|
|
id = TECHWEB_NODE_MECH_EQUIP_BLUESPACE
|
|
display_name = "Bluespace Exosuit Equipment"
|
|
description = "An array of equipment empowered by bluespace, providing unmatched mobility and utility."
|
|
prereq_ids = list(TECHWEB_NODE_MECH_INFILTRATOR, TECHWEB_NODE_BLUESPACE_TRAVEL)
|
|
design_ids = list(
|
|
"mech_gravcatapult",
|
|
"mech_teleporter",
|
|
"mech_wormhole_gen",
|
|
)
|
|
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS)
|
|
announce_channels = list(RADIO_CHANNEL_SCIENCE)
|