mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-23 13:05:44 +01:00
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" />
168 lines
6.1 KiB
Plaintext
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
|