From f35ac06d66e3c3689fd356df4efc6f685770caa8 Mon Sep 17 00:00:00 2001 From: Luc <89928798+lewcc@users.noreply.github.com> Date: Sun, 1 Oct 2023 09:25:58 -0400 Subject: [PATCH] Modsuit flashlights are now properly extinguished (#22557) * pREVE * No more force --- code/modules/mod/mod_control.dm | 5 +++++ code/modules/mod/modules/modules_general.dm | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/code/modules/mod/mod_control.dm b/code/modules/mod/mod_control.dm index 747d9890f7f..3019f00c71d 100644 --- a/code/modules/mod/mod_control.dm +++ b/code/modules/mod/mod_control.dm @@ -744,3 +744,8 @@ if(ishuman(loc)) var/mob/living/carbon/human/H = loc H.regenerate_icons() + +/obj/item/mod/control/extinguish_light(force) + . = ..() + for(var/obj/item/mod/module/module as anything in modules) + module.extinguish_light(force) diff --git a/code/modules/mod/modules/modules_general.dm b/code/modules/mod/modules/modules_general.dm index e9c216d2ca0..f926956a6aa 100644 --- a/code/modules/mod/modules/modules_general.dm +++ b/code/modules/mod/modules/modules_general.dm @@ -223,11 +223,19 @@ var/min_range = 2 /// Maximum range we can set. var/max_range = 5 + /// The cooldown before we can re-activate this after having it forcefully extinguished + COOLDOWN_DECLARE(activation_cooldown) /obj/item/mod/module/flashlight/on_activation() + if(!COOLDOWN_FINISHED(src, activation_cooldown)) + to_chat(mod.wearer, "[src] isn't ready after being shut down!") + return . = ..() if(!.) return + + COOLDOWN_RESET(src, activation_cooldown) + active_power_cost = base_power * mod_light_range mod.set_light(mod_light_range, mod_light_power, light_color) @@ -263,6 +271,13 @@ mod_color_overide = light_color on_deactivation() +/obj/item/mod/module/flashlight/extinguish_light(force) + . = ..() + on_deactivation(FALSE) + COOLDOWN_START(src, activation_cooldown, 20 SECONDS) + + to_chat(mod.wearer, "Your [name] shuts off!") + ///Dispenser - Dispenses an item after a time passes. /obj/item/mod/module/dispenser name = "MOD burger dispenser module"