From 44a3c41e198312976dd22e5ddfdb3ff2457615a5 Mon Sep 17 00:00:00 2001 From: Timberpoes Date: Fri, 24 Jul 2020 20:06:38 +0100 Subject: [PATCH] Fixes AI integrity restorer functionality broken in #52265 (#52466) * Update AI health after healing damage in integrity restorer * Also feex legacy AI inegrity restorer. * Update IntelliCard icon when AI is successfully revived. * Clean up proc arguments * Feex --- code/game/machinery/computer/aifixer.dm | 7 ++++--- .../file_system/programs/airestorer.dm | 14 ++++++++++---- 2 files changed, 14 insertions(+), 7 deletions(-) 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