From 4540d41d4e8b4178fd4835cfe3be4427d52ad8fa Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Thu, 16 Jun 2022 13:58:49 +0200 Subject: [PATCH] [MIRROR] Fixes Reagent Dispensers Not Removing Reagents [MDB IGNORE] (#14345) * Fixes Reagent Dispensers Not Removing Reagents (#67611) * Fixes Reagent Dispensers Not Removing Reagents Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com> --- code/modules/reagents/reagent_dispenser.dm | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index ca1c3fcfcea..7c85af6f83d 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -19,6 +19,8 @@ var/openable = FALSE ///Is this dispenser slowly leaking its reagent? var/leaking = FALSE + ///How much reagent to leak + var/amount_to_leak = 10 /obj/structure/reagent_dispensers/Initialize(mapload) . = ..() @@ -81,6 +83,13 @@ else qdel(src) +/obj/structure/reagent_dispensers/proc/tank_leak() + if(leaking && reagents && reagents.total_volume >= amount_to_leak) + reagents.expose(get_turf(src), TOUCH, amount_to_leak / max(amount_to_leak, reagents.total_volume)) + reagents.remove_reagent(reagent_id, amount_to_leak) + return TRUE + return FALSE + /obj/structure/reagent_dispensers/wrench_act(mob/living/user, obj/item/tool) . = ..() if(!openable) @@ -88,14 +97,12 @@ leaking = !leaking balloon_alert(user, "[leaking ? "opened" : "closed"] [src]'s tap") log_game("[key_name(user)] [leaking ? "opened" : "closed"] [src]") - if(leaking && reagents) - reagents.expose(get_turf(src), TOUCH, 10 / max(10, reagents.total_volume)) + tank_leak() return TOOL_ACT_TOOLTYPE_SUCCESS /obj/structure/reagent_dispensers/Moved(atom/OldLoc, Dir) . = ..() - if(leaking && reagents) - reagents.expose(get_turf(src), TOUCH, 10 / max(10, reagents.total_volume)) + tank_leak() /obj/structure/reagent_dispensers/watertank name = "water tank"