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" />
117 lines
4.6 KiB
Plaintext
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
|