[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>
This commit is contained in:
SkyratBot
2022-06-16 12:58:49 +01:00
committed by GitHub
co-authored by 13spacemen
parent 5e0e7c5241
commit 4540d41d4e
+11 -4
View File
@@ -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"