Files
Aurora.3/code/modules/heavy_vehicle/premade/combat.dm
VMSolidusandGitHub a436fa65a6 More Mech Damage Feedback (#22118)
This PR adds some new "Damage Feedback" interactions to mechs, which I'm
adding in response to what I think is player perception of mechs being
invincible. Previously mech manipulators and torsos had no actual
mechanics for damage states, and having 0 damage on a mechs arms was
functionally the same thing as having 100 damage, so long as the arm
wasn't completely destroyed.

This PR changes that by making it so that mech manipulators have a
chance to fail (loudly and visibly) on use with a probability that
varies based on how much damage the arms have taken. Additionally,
there's also now a mechanic for mech ejections and hatch opening to fail
if the torso has taken sufficient damage, with chances that also vary
based on how much damage said torso has taken. In both cases, the mech
plays audible and visual effects to indicate to the players involved
that it is being hindered by damage.


https://github.com/user-attachments/assets/934e4561-1fda-4c47-9770-438960834aa9

Yes this does mean that you can smash someone's hatch closed, to a point
you'll need a welder to get them out.

<img width="772" height="181" alt="image"
src="https://github.com/user-attachments/assets/75f98060-7c4c-468b-bd31-e6c4ec4c0be2"
/>
2026-04-04 22:27:01 +00:00

117 lines
4.6 KiB
Plaintext

/mob/living/heavy_vehicle/premade/combat
name = "combat exosuit"
desc = "A sleek, modern combat exosuit."
icon_state = "durand"
e_head = /obj/item/mech_component/sensors/combat
e_body = /obj/item/mech_component/chassis/combat/cell
e_arms = /obj/item/mech_component/manipulators/combat
e_legs = /obj/item/mech_component/propulsion/combat
e_color = COLOR_DARK_GUNMETAL
h_r_shoulder = /obj/item/mecha_equipment/mounted_system/combat/smg
h_l_shoulder = /obj/item/mecha_equipment/mounted_system/combat/smg
/obj/item/mech_component/manipulators/combat
name = "combat arms"
exosuit_desc_string = "flexible, advanced manipulators"
desc = "Extremely fast and responsive weapon mounts for combat mechas. These seem sturdy, but their short nature only permits access to shoulder-mounted weapons."
icon_state = "combat_arms"
melee_damage = 30
action_delay = 5
max_damage = 195
power_use = 2500
has_hardpoints = list(HARDPOINT_LEFT_SHOULDER, HARDPOINT_RIGHT_SHOULDER)
/obj/item/mech_component/propulsion/combat
name = "combat legs"
exosuit_desc_string = "sleek hydraulic legs"
desc = "Complex armor provides excellent protective coverage over the internals of these combat-oriented legs."
icon_state = "combat_legs"
move_delay = 3
turn_delay = 3
max_damage = 100
power_use = 2500
trample_damage = 35
// Dedicated combat chassis is highly resistant to mobility loss until a full "mobility kill"
damaged_delay = 3
damaged_delay_slope = 0.5
/obj/item/mech_component/sensors/combat
name = "combat sensors"
gender = PLURAL
exosuit_desc_string = "high-resolution sensors"
desc = "A highly advanced cockpit with high-resolution thermal optics installed on its faces. Poorly armored with excellent situational awareness."
icon_state = "combat_head"
max_damage = 50
power_use = 50000
vision_flags = SEE_MOBS
lighting_alpha = LIGHTING_PLANE_ALPHA_SOMEWHAT_INVISIBLE
/obj/item/mech_component/sensors/combat/prebuild()
..()
software = new(src)
software.installed_software = list(MECH_SOFTWARE_WEAPONS, MECH_SOFTWARE_UTILITY)
/obj/item/mech_component/chassis/combat
name = "sealed exosuit chassis"
hatch_descriptor = "canopy"
pilot_coverage = 100
exosuit_desc_string = "an armored chassis"
desc = "A lightweight composite frame keeps the armor of this chassis respectable, but the interior spacious."
icon_state = "combat_body"
max_damage = 200
power_use = 250
transparent_cabin = TRUE
/obj/item/mech_component/chassis/combat/prebuild()
. = ..()
mech_armor = new /obj/item/robot_parts/robot_component/armor/mech/combat(src)
/obj/item/mech_component/chassis/combat/Initialize()
pilot_positions = list(
list(
"[NORTH]" = list("x" = 8, "y" = 8),
"[SOUTH]" = list("x" = 8, "y" = 8),
"[EAST]" = list("x" = 4, "y" = 8),
"[WEST]" = list("x" = 12, "y" = 8)
)
)
. = ..()
/obj/item/mech_component/chassis/combat/cell
cell_type = /obj/item/cell/mecha
/obj/item/mech_component/chassis/combat/nuclear
cell_type = /obj/item/cell/mecha/nuclear
/mob/living/heavy_vehicle/premade/combat/tcaf
name = "\improper Vigilance combat exosuit"
desc = "A heavy-duty combat exosuit manufactured by Zavodskoi Interstellar, and issued to the Tau Ceti Armed Forces."
e_head = /obj/item/mech_component/sensors/combat
e_body = /obj/item/mech_component/chassis/combat/nuclear
e_arms = /obj/item/mech_component/manipulators/heavy
e_legs = /obj/item/mech_component/propulsion/combat
e_color = COLOR_TCFL
h_l_shoulder = /obj/item/mecha_equipment/mounted_system/combat/grenadesmoke
h_r_shoulder = /obj/item/mecha_equipment/mounted_system/flarelauncher
h_l_hand = /obj/item/mecha_equipment/mounted_system/combat/blaster
h_r_hand = /obj/item/mecha_equipment/mounted_system/combat/gauss
h_head = /obj/item/mecha_equipment/light
/mob/living/heavy_vehicle/premade/combat/coalition
name = "\improper Vigilance-C combat exosuit"
desc = "A heavy combat exosuit manufactured by Zavodskoi Interstellar, licensed to and slightly modified by the All-Xanu Armed Forces. Used by proponents of the combined Coalition of Colonies military."
e_head = /obj/item/mech_component/sensors/combat
e_body = /obj/item/mech_component/chassis/combat/nuclear
e_arms = /obj/item/mech_component/manipulators/heavy
e_legs = /obj/item/mech_component/propulsion/combat
e_color = COLOR_COALITION
h_l_shoulder = /obj/item/mecha_equipment/mounted_system/combat/grenadestinger
h_r_shoulder = /obj/item/mecha_equipment/mounted_system/flarelauncher
h_l_hand = /obj/item/mecha_equipment/mounted_system/combat/blaster
h_r_hand = /obj/item/mecha_equipment/mounted_system/combat/gauss
h_back = /obj/item/mecha_equipment/quick_enter
h_head = /obj/item/mecha_equipment/light