mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 04:30:44 +01:00
Adds the exosuit ablative insulation module. A module that protects a mech from energy attacks and their wires from EMPs. But makes it weaker to ballistics and melee weapons. Adds a special version for nukie mechs. (#90845)
<!-- 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. -->
This commit is contained in:
@@ -615,7 +615,7 @@
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/mech_ccw_armor
|
||||
name = "Reactive Armor Booster Module"
|
||||
name = "Exosuit Impact Cushion Plates"
|
||||
desc = "Exosuit-mounted melee armor booster."
|
||||
id = "mech_ccw_armor"
|
||||
build_type = MECHFAB
|
||||
@@ -636,7 +636,7 @@
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/mech_proj_armor
|
||||
name = "Reflective Armor Booster Module"
|
||||
name = "Exosuit Projectile Shielding"
|
||||
desc = "Exosuit-mounted ranged armor booster."
|
||||
id = "mech_proj_armor"
|
||||
build_type = MECHFAB
|
||||
@@ -656,6 +656,27 @@
|
||||
)
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/mech_emp_armor
|
||||
name = "Exosuit Ablative Insulation"
|
||||
desc = "Exosuit-mounted energy and EMP armor booster. WARNING: This retrofit compromises exosuit hull plating stress points."
|
||||
id = "mech_emp_armor"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/mecha_equipment/armor/antiemp_armor_booster
|
||||
materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT*10,/datum/material/gold=SHEET_MATERIAL_AMOUNT * 2.5)
|
||||
construction_time = 10 SECONDS
|
||||
category = list(
|
||||
RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MODULES,
|
||||
RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT,
|
||||
RND_CATEGORY_MECHFAB_ODYSSEUS + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT,
|
||||
RND_CATEGORY_MECHFAB_PADDY + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT,
|
||||
RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT,
|
||||
RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT,
|
||||
RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT,
|
||||
RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT,
|
||||
RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT
|
||||
)
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/mech_diamond_drill
|
||||
name = "Diamond Mining Drill"
|
||||
desc = "An upgraded version of the standard drill."
|
||||
|
||||
@@ -109,6 +109,7 @@
|
||||
design_ids = list(
|
||||
"mech_ccw_armor",
|
||||
"mech_proj_armor",
|
||||
"mech_emp_armor",
|
||||
"paddyupgrade",
|
||||
"mech_hydraulic_claw",
|
||||
"mech_disabler",
|
||||
|
||||
@@ -54,14 +54,14 @@
|
||||
MECHA_R_ARM = 1,
|
||||
MECHA_UTILITY = 4,
|
||||
MECHA_POWER = 1,
|
||||
MECHA_ARMOR = 0,
|
||||
MECHA_ARMOR = 1,
|
||||
)
|
||||
equip_by_category = list(
|
||||
MECHA_L_ARM = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot,
|
||||
MECHA_R_ARM = null,
|
||||
MECHA_UTILITY = list(/obj/item/mecha_parts/mecha_equipment/radio, /obj/item/mecha_parts/mecha_equipment/air_tank/full, /obj/item/mecha_parts/mecha_equipment/thrusters/ion),
|
||||
MECHA_POWER = list(),
|
||||
MECHA_ARMOR = list(),
|
||||
MECHA_ARMOR = list(/obj/item/mecha_parts/mecha_equipment/armor/antiemp_armor_booster/clandestine),
|
||||
)
|
||||
destruction_sleep_duration = 20
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
MECHA_R_ARM = 1,
|
||||
MECHA_UTILITY = 5,
|
||||
MECHA_POWER = 1,
|
||||
MECHA_ARMOR = 0,
|
||||
MECHA_ARMOR = 1,
|
||||
)
|
||||
bumpsmash = TRUE
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
MECHA_R_ARM = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack,
|
||||
MECHA_UTILITY = list(/obj/item/mecha_parts/mecha_equipment/radio, /obj/item/mecha_parts/mecha_equipment/air_tank/full, /obj/item/mecha_parts/mecha_equipment/thrusters/ion),
|
||||
MECHA_POWER = list(),
|
||||
MECHA_ARMOR = list(),
|
||||
MECHA_ARMOR = list(/obj/item/mecha_parts/mecha_equipment/armor/antiemp_armor_booster/clandestine),
|
||||
)
|
||||
|
||||
/obj/vehicle/sealed/mecha/marauder/loaded/populate_parts()
|
||||
@@ -105,14 +105,14 @@
|
||||
MECHA_R_ARM = 1,
|
||||
MECHA_UTILITY = 5,
|
||||
MECHA_POWER = 1,
|
||||
MECHA_ARMOR = 0,
|
||||
MECHA_ARMOR = 1,
|
||||
)
|
||||
equip_by_category = list(
|
||||
MECHA_L_ARM = /obj/item/mecha_parts/mecha_equipment/weapon/energy/pulse,
|
||||
MECHA_R_ARM = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack,
|
||||
MECHA_UTILITY = list(/obj/item/mecha_parts/mecha_equipment/radio, /obj/item/mecha_parts/mecha_equipment/air_tank/full, /obj/item/mecha_parts/mecha_equipment/thrusters/ion),
|
||||
MECHA_POWER = list(),
|
||||
MECHA_ARMOR = list(),
|
||||
MECHA_ARMOR = list(/obj/item/mecha_parts/mecha_equipment/armor/antiemp_armor_booster/clandestine),
|
||||
)
|
||||
|
||||
/datum/armor/mecha_seraph
|
||||
@@ -140,7 +140,7 @@
|
||||
MECHA_R_ARM = 1,
|
||||
MECHA_UTILITY = 4,
|
||||
MECHA_POWER = 1,
|
||||
MECHA_ARMOR = 0,
|
||||
MECHA_ARMOR = 1,
|
||||
)
|
||||
equip_by_category = list(
|
||||
MECHA_L_ARM = null,
|
||||
@@ -166,7 +166,7 @@
|
||||
MECHA_R_ARM = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack,
|
||||
MECHA_UTILITY = list(/obj/item/mecha_parts/mecha_equipment/radio, /obj/item/mecha_parts/mecha_equipment/air_tank/full, /obj/item/mecha_parts/mecha_equipment/thrusters/ion),
|
||||
MECHA_POWER = list(),
|
||||
MECHA_ARMOR = list(),
|
||||
MECHA_ARMOR = list(/obj/item/mecha_parts/mecha_equipment/armor/antiemp_armor_booster/clandestine),
|
||||
)
|
||||
|
||||
/obj/vehicle/sealed/mecha/marauder/mauler/loaded/Initialize(mapload)
|
||||
|
||||
@@ -165,7 +165,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/armor/anticcw_armor_booster
|
||||
name = "Impact Cushion Plates"
|
||||
name = "exosuit impact cushion plates"
|
||||
desc = "Boosts exosuit armor against melee attacks"
|
||||
icon_state = "mecha_abooster_ccw"
|
||||
iconstate_name = "melee"
|
||||
@@ -176,7 +176,7 @@
|
||||
melee = 20
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/armor/antiproj_armor_booster
|
||||
name = "Projectile Shielding"
|
||||
name = "exosuit projectile shielding"
|
||||
desc = "Boosts exosuit armor against ranged kinetic and energy projectiles. Completely blocks taser shots."
|
||||
icon_state = "mecha_abooster_proj"
|
||||
iconstate_name = "range"
|
||||
@@ -187,6 +187,36 @@
|
||||
bullet = 15
|
||||
laser = 15
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/armor/antiemp_armor_booster
|
||||
name = "exosuit ablative insulation"
|
||||
desc = "Boosts exosuit armor against energy-based attacks. Also shields the exosuit's internal wiring from hostile EMP attacks. However, this may leave the \
|
||||
exosuit slightly more vulnerable to kinetic blows due to taking up valuable hull cushioning."
|
||||
icon_state = "mecha_abooster_emp"
|
||||
iconstate_name = "range"
|
||||
protect_name = "EMP and Energy Armor"
|
||||
armor_mod = /datum/armor/mecha_equipment_energy_boost
|
||||
|
||||
/datum/armor/mecha_equipment_energy_boost
|
||||
melee = -5
|
||||
bullet = -10
|
||||
energy = 15
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/armor/antiemp_armor_booster/attach(obj/vehicle/sealed/mecha/new_mecha, attach_right)
|
||||
. = ..()
|
||||
chassis.AddElement(/datum/element/empprotection, EMP_PROTECT_WIRES)
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/armor/antiemp_armor_booster/detach(atom/moveto)
|
||||
chassis.RemoveElement(/datum/element/empprotection, EMP_PROTECT_WIRES)
|
||||
return ..()
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/armor/antiemp_armor_booster/clandestine
|
||||
name = "exosuit hardened ablative insulation"
|
||||
desc = "Boosts exosuit armor against energy-based attacks. Also shields the exosuit's internal wiring from hostile EMP attacks."
|
||||
armor_mod = /datum/armor/mecha_equipment_improved_energy_boost
|
||||
|
||||
/datum/armor/mecha_equipment_improved_energy_boost
|
||||
energy = 20
|
||||
|
||||
////////////////////////////////// REPAIR DROID //////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
Reference in New Issue
Block a user