From e987448930998f0728a06c636db9d0290b908583 Mon Sep 17 00:00:00 2001 From: S34N <12197162+S34NW@users.noreply.github.com> Date: Fri, 15 Oct 2021 10:58:34 +0100 Subject: [PATCH] Fixes negative integrity mechs (#16939) * adds something to hopefully fix negative mech HP * destroys destroy * makes it do it here for more logic! * fixes the core issue at hand also * reverts this change to obj_defense --- code/game/mecha/equipment/tools/other_tools.dm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/code/game/mecha/equipment/tools/other_tools.dm b/code/game/mecha/equipment/tools/other_tools.dm index af5c3039ad6..6e25908862c 100644 --- a/code/game/mecha/equipment/tools/other_tools.dm +++ b/code/game/mecha/equipment/tools/other_tools.dm @@ -243,18 +243,20 @@ set_ready_state(1) return var/h_boost = health_boost - var/repaired = 0 + var/repaired = FALSE if(chassis.internal_damage & MECHA_INT_SHORT_CIRCUIT) - h_boost *= -2 + h_boost = 0 + chassis.take_damage(2, BURN) //short circuiting droids do damage + repaired = TRUE else if(chassis.internal_damage && prob(15)) for(var/int_dam_flag in repairable_damage) if(chassis.internal_damage & int_dam_flag) chassis.clearInternalDamage(int_dam_flag) - repaired = 1 + repaired = TRUE break - if(h_boost<0 || chassis.obj_integrity < chassis.max_integrity) + if(chassis.obj_integrity < chassis.max_integrity && h_boost > 0) chassis.obj_integrity += min(h_boost, chassis.max_integrity-chassis.obj_integrity) - repaired = 1 + repaired = TRUE if(repaired) if(!chassis.use_power(energy_drain)) STOP_PROCESSING(SSobj, src)