From f6c9fd95993cf928e42cb5fc2fe77eeb3bd205e5 Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Fri, 11 Jun 2021 00:50:32 +0200 Subject: [PATCH] [MIRROR] Fixes defibrillator paddles and wall mounts not detecting charge changes. (#6227) * - fixed various charge-related bugs of defib and defib wall mounts (#59366) Co-authored-by: norill <4> * Fixes defibrillator paddles and wall mounts not detecting charge changes. Co-authored-by: norill --- code/game/machinery/_machinery.dm | 4 ++-- code/game/machinery/defibrillator_mount.dm | 2 +- code/game/objects/items/defib.dm | 13 +++++++++++-- code/modules/power/cell.dm | 1 + 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index 9d73bc16bc2..32d2c4884be 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -317,9 +317,9 @@ /obj/machinery/proc/auto_use_power() if(!powered(power_channel)) return FALSE - if(use_power == 1) + if(use_power == IDLE_POWER_USE) use_power(idle_power_usage,power_channel) - else if(use_power >= 2) + else if(use_power >= ACTIVE_POWER_USE) use_power(active_power_usage,power_channel) return TRUE diff --git a/code/game/machinery/defibrillator_mount.dm b/code/game/machinery/defibrillator_mount.dm index 87e8a4e76c5..ed31fb8f9e9 100644 --- a/code/game/machinery/defibrillator_mount.dm +++ b/code/game/machinery/defibrillator_mount.dm @@ -232,7 +232,7 @@ if(C.charge < C.maxcharge) use_power(50 * delta_time) C.give(40 * delta_time) - update_appearance() + defib.update_power() //wallframe, for attaching the mounts easily /obj/item/wallframe/defib_mount diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index af3bb2a6809..597caefb8cf 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -41,6 +41,13 @@ update_power() return +/obj/item/defibrillator/examine(mob/user) + . = ..() + if(cell) + . += "Use a screwdriver to remove the cell." + else + . += "It has no power cell!" + /obj/item/defibrillator/fire_act(exposed_temperature, exposed_volume) . = ..() if(paddles?.loc == src) @@ -60,6 +67,8 @@ else powered = FALSE update_appearance() + if(istype(loc, /obj/machinery/defibrillator_mount)) + loc.update_appearance() /obj/item/defibrillator/update_overlays() . = ..() @@ -128,7 +137,6 @@ cell = W to_chat(user, "You install a cell in [src].") update_power() - else if(W.tool_behaviour == TOOL_SCREWDRIVER) if(cell) cell.update_appearance() @@ -415,8 +423,9 @@ /obj/item/shockpaddles/attack(mob/M, mob/living/user, params) if(busy) return + defib?.update_power() if(req_defib && !defib.powered) - user.visible_message("[defib] beeps: Unit is unpowered.") + user.visible_message("[defib] beeps: Not enough charge!") playsound(src, 'sound/machines/defib_failed.ogg', 50, FALSE) return if(!wielded) diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 31503d9a86f..dcf58d3ea4b 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -204,6 +204,7 @@ /obj/item/stock_parts/cell/empty/Initialize() . = ..() charge = 0 + update_appearance() /obj/item/stock_parts/cell/crap name = "\improper Nanotrasen brand rechargeable AA battery"