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"