diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index 0c1c96a4d53..72c2c5a935a 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -62,9 +62,10 @@ /obj/machinery/computer/aifixer/proc/Fix() use_power(1000) - occupier.adjustOxyLoss(-5, 0, FALSE) - occupier.adjustFireLoss(-5, 0, FALSE) - occupier.adjustBruteLoss(-5, 0) + occupier.adjustOxyLoss(-5, FALSE) + occupier.adjustFireLoss(-5, FALSE) + occupier.adjustBruteLoss(-5, FALSE) + occupier.updatehealth() if(occupier.health >= 0 && occupier.stat == DEAD) occupier.revive(full_heal = FALSE, admin_revive = FALSE) if(!occupier.radio_enabled) diff --git a/code/modules/modular_computers/file_system/programs/airestorer.dm b/code/modules/modular_computers/file_system/programs/airestorer.dm index c1bb40d1b89..b86d2785277 100644 --- a/code/modules/modular_computers/file_system/programs/airestorer.dm +++ b/code/modules/modular_computers/file_system/programs/airestorer.dm @@ -71,12 +71,18 @@ ai_slot.locked = FALSE restoring = FALSE return - ai_slot.locked =TRUE - A.adjustOxyLoss(-5, 0, FALSE) - A.adjustFireLoss(-5, 0, FALSE) - A.adjustBruteLoss(-5, 0) + ai_slot.locked = TRUE + A.adjustOxyLoss(-5, FALSE) + A.adjustFireLoss(-5, FALSE) + A.adjustBruteLoss(-5, FALSE) + + // Please don't forget to update health, otherwise the below if statements will probably always fail. + A.updatehealth() + if(A.health >= 0 && A.stat == DEAD) A.revive(full_heal = FALSE, admin_revive = FALSE) + cardhold.update_icon() + // Finished restoring if(A.health >= 100) ai_slot.locked = FALSE