diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index f99937ca2eb3..a9e6debcf958 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -527,6 +527,8 @@ target = safepick(oview(1,src)) if(!melee_can_hit || !istype(target, /atom)) return + if(equipment_disabled) + return target.mech_melee_attack(src) melee_can_hit = 0 spawn(melee_cooldown) @@ -669,11 +671,12 @@ if(..()) //mech was thrown return if(bumpsmash && occupant) //Need a pilot to push the PUNCH button. - if(nextsmash < world.time) - obstacle.mech_melee_attack(src) - nextsmash = world.time + smashcooldown - if(!obstacle || obstacle.CanPass(src,newloc)) - step(src,dir) + if(!equipment_disabled) + if(nextsmash < world.time) + obstacle.mech_melee_attack(src) + nextsmash = world.time + smashcooldown + if(!obstacle || obstacle.CanPass(src,newloc)) + step(src,dir) if(isobj(obstacle)) var/obj/O = obstacle if(!O.anchored) diff --git a/code/game/mecha/mecha_actions.dm b/code/game/mecha/mecha_actions.dm index 30d5b8266fa6..5d3131a162f6 100644 --- a/code/game/mecha/mecha_actions.dm +++ b/code/game/mecha/mecha_actions.dm @@ -191,6 +191,8 @@ button_icon_state = "mech_overload_off" /datum/action/innate/mecha/mech_overload_mode/Activate(forced_state = null) + if(chassis.equipment_disabled) + return if(!owner || !chassis || chassis.occupant != owner) return if(!isnull(forced_state)) @@ -207,7 +209,7 @@ chassis.occupant_message("You enable leg actuators overload.") else chassis.leg_overload_mode = 0 - chassis.bumpsmash = 0 + chassis.bumpsmash = initial(chassis.bumpsmash) chassis.step_in = initial(chassis.step_in) chassis.step_energy_drain = chassis.normal_step_energy_drain chassis.occupant_message("You disable leg actuators overload.") diff --git a/code/game/mecha/mecha_defense.dm b/code/game/mecha/mecha_defense.dm index 0ae356f905c6..eacbeaf79e70 100644 --- a/code/game/mecha/mecha_defense.dm +++ b/code/game/mecha/mecha_defense.dm @@ -157,6 +157,7 @@ occupant?.update_mouse_pointer() if(!equipment_disabled && occupant) //prevent spamming this message with back-to-back EMPs to_chat(occupant, "Error -- Connection to equipment control unit has been lost.") + overload_action.Activate(0) addtimer(CALLBACK(src, /obj/mecha/proc/restore_equipment), 3 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) equipment_disabled = 1 @@ -375,4 +376,4 @@ WR.crowbar_salvage += internal_tank internal_tank.forceMove(WR) cell = null - . = ..() \ No newline at end of file + . = ..()