Files
Aurora.3/code/modules/heavy_vehicle/premade/light.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

168 lines
6.1 KiB
Plaintext

/mob/living/heavy_vehicle/premade/light
name = "light exosuit"
desc = "A light and agile exosuit."
icon_state = "odysseus"
e_head = /obj/item/mech_component/sensors/light
e_body = /obj/item/mech_component/chassis/light/cell
e_arms = /obj/item/mech_component/manipulators/light
e_legs = /obj/item/mech_component/propulsion/light
e_color = COLOR_OFF_WHITE
h_back = /obj/item/mecha_equipment/sleeper
h_l_hand = /obj/item/mecha_equipment/catapult
/obj/item/mech_component/manipulators/light
name = "light arms"
exosuit_desc_string = "lightweight, segmented manipulators"
icon_state = "light_arms"
melee_damage = 15
action_delay = 15
max_damage = 150
power_use = 1500
desc = "As flexible as they are fragile, these Bishop Cybernetics manipulators can follow a pilot's movements in close to real time."
punch_sound = 'sound/mecha/mech_punch_fast.ogg'
/obj/item/mech_component/propulsion/light
name = "light legs"
exosuit_desc_string = "aerodynamic electromechanic legs"
icon_state = "light_legs"
move_delay = 2
turn_delay = 2
damaged_delay = 4
max_damage = 100
power_use = 1500
desc = "The electrical systems driving these legs are almost totally silent. Unfortunately slamming a plate of metal against the ground is not."
/obj/item/mech_component/sensors/light
name = "light sensors"
gender = PLURAL
exosuit_desc_string = "advanced sensor array"
icon_state = "light_head"
max_damage = 80
power_use = 12000
desc = "A series of high resolution optical sensors."
vision_flags = SEE_TURFS
lighting_alpha = LIGHTING_PLANE_ALPHA_SOMEWHAT_INVISIBLE
/obj/item/mech_component/sensors/light/prebuild()
..()
software = new(src)
software.installed_software = list(MECH_SOFTWARE_UTILITY, MECH_SOFTWARE_MEDICAL)
/obj/item/mech_component/chassis/light
name = "light exosuit chassis"
pilot_coverage = 100
transparent_cabin = TRUE
hatch_descriptor = "canopy"
exosuit_desc_string = "an open and light chassis"
icon_state = "light_body"
max_damage = 150
power_use = 300
desc = "The Veymed Odysseus series cockpits combine ultralight materials and clear aluminum laminates to provide an optimized cockpit experience."
/obj/item/mech_component/chassis/light/prebuild()
. = ..()
mech_armor = new /obj/item/robot_parts/robot_component/armor/mech/radproof(src)
/obj/item/mech_component/chassis/light/Initialize()
pilot_positions = list(
list(
"[NORTH]" = list("x" = 8, "y" = -2),
"[SOUTH]" = list("x" = 8, "y" = -2),
"[EAST]" = list("x" = 1, "y" = -2),
"[WEST]" = list("x" = 9, "y" = -2)
)
)
. = ..()
/obj/item/mech_component/chassis/light/nuclear
cell_type = /obj/item/cell/mecha/nuclear
/obj/item/mech_component/chassis/light/cell
cell_type = /obj/item/cell/mecha
/mob/living/heavy_vehicle/premade/light/legion
name = "legion support exosuit"
desc = "A light and agile exosuit painted in the colours of the Tau Ceti Foreign Legion."
icon_state = "odysseus"
e_color = COLOR_TCFL
e_body = /obj/item/mech_component/chassis/light/nuclear
h_head = /obj/item/mecha_equipment/light
h_back = /obj/item/mecha_equipment/sleeper
h_l_shoulder = /obj/item/mecha_equipment/crisis_drone
h_r_shoulder = /obj/item/mecha_equipment/mounted_system/flarelauncher
h_l_hand = /obj/item/mecha_equipment/mounted_system/medanalyzer
h_r_hand = /obj/item/mecha_equipment/clamp
/mob/living/heavy_vehicle/premade/light/iac
name = "medical exosuit"
desc = "A light and agile medical oriented exosuit."
icon_state = "odysseus"
e_color = COLOR_IAC
e_body = /obj/item/mech_component/chassis/light/nuclear
h_head = /obj/item/mecha_equipment/light
h_back = /obj/item/mecha_equipment/sleeper
h_l_shoulder = /obj/item/mecha_equipment/crisis_drone
h_r_shoulder = /obj/item/mecha_equipment/mounted_system/flarelauncher
h_l_hand = /obj/item/mecha_equipment/mounted_system/medanalyzer
h_r_hand = /obj/item/mecha_equipment/clamp
/mob/living/heavy_vehicle/premade/light/kataphract
name = "kataphract exosuit"
desc = "A light and nimble exosuit, bearing the colour scheme of the Unathi Kataphracts."
e_color = COLOR_CHESTNUT
e_body = /obj/item/mech_component/chassis/light/nuclear
h_back = /obj/item/mecha_equipment/quick_enter
h_l_hand = /obj/item/mecha_equipment/clamp
h_r_hand = /obj/item/mecha_equipment/catapult
h_l_shoulder = /obj/item/mecha_equipment/mounted_system/flarelauncher
/mob/living/heavy_vehicle/premade/light/recon
name = "gremlin exosuit"
desc = "A light and nimble recon exosuit, bearing the colour scheme of the Solarian Armed Forces."
e_color = COLOR_DARK_GREEN_GRAY
e_head = /obj/item/mech_component/sensors/combat
e_body = /obj/item/mech_component/chassis/light/nuclear
e_arms = /obj/item/mech_component/manipulators/combat
e_legs = /obj/item/mech_component/propulsion/hover/light
h_back = /obj/item/mecha_equipment/quick_enter
h_l_shoulder = /obj/item/mecha_equipment/mounted_system/flarelauncher
h_r_shoulder = /obj/item/mecha_equipment/mounted_system/combat/smg
/mob/living/heavy_vehicle/premade/light/coalition
name = "tomahawk recon exosuit"
desc = "A reconnaissance exosuit pioneered by dNA Defense & Aerospace in partnership with Zavodskoi Interstellar for use in Coalition of Colonies mechanized military operations. Based off of the Solarian gremlin-type exosuit design."
e_color = COLOR_COALITION
e_arms = /obj/item/mech_component/manipulators/combat
e_head = /obj/item/mech_component/sensors/combat
e_legs = /obj/item/mech_component/propulsion/combat
h_back = /obj/item/mecha_equipment/quick_enter
h_r_shoulder = /obj/item/mecha_equipment/mounted_system/flarelauncher
h_l_shoulder = /obj/item/mecha_equipment/mounted_system/combat/smg
/mob/living/heavy_vehicle/premade/light/salvage
name = "exo-stellar salvage exosuit"
desc = "An exosuit designed for zero-gravity salvage and recon."
e_color = COLOR_BROWN_ORANGE
e_arms = /obj/item/mech_component/manipulators/ripley
e_head = /obj/item/mech_component/sensors/light
e_legs = /obj/item/mech_component/propulsion/hover
h_head = /obj/item/mecha_equipment/light
h_back = /obj/item/mecha_equipment/autolathe
h_l_hand = /obj/item/mecha_equipment/mounted_system/plasmacutter
h_r_hand = /obj/item/mecha_equipment/clamp
h_r_shoulder = /obj/item/mecha_equipment/mounted_system/flarelauncher