From 397e054209eaac642ef2ce4cbaae02b85496d4d4 Mon Sep 17 00:00:00 2001 From: Hatterhat <31829017+Hatterhat@users.noreply.github.com> Date: Sat, 28 Mar 2026 20:09:37 -0500 Subject: [PATCH] integrated circuit shells are no longer doomed to explode (#95523) ## About The Pull Request Integrated circuit shells now have an early return for setting their `power_used_cooldown` if the cooldown already exists, allowing the power usage cap to reset itself properly and not doom all circuit shells to an explosive fate, as reported by @Acer202 et al. ## Why It's Good For The Game Perhaps we shouldn't be making our circuit shells out of explosive composite alloys like BattleTech missiles. ## Changelog :cl: fix: Integrated circuit shells now only explode if they draw too much power in a minute, rather than being doomed to explode if it uses too much power over its entire lifetime, following complaints from at least one guy. Nanotrasen representatives claim that this is entirely unrelated to missing shipments of explosive alloys. /:cl: --------- Co-authored-by: Hatterhat --- code/datums/components/shell.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/datums/components/shell.dm b/code/datums/components/shell.dm index 4c649a68b7d..2c35c2ca2dc 100644 --- a/code/datums/components/shell.dm +++ b/code/datums/components/shell.dm @@ -284,6 +284,7 @@ /datum/component/shell/proc/override_power_usage(datum/source, power_to_use) SIGNAL_HANDLER if(COOLDOWN_FINISHED(src, power_used_cooldown)) + COOLDOWN_START(src, power_used_cooldown, 1 MINUTES) power_used_in_minute = 0 var/area/location = get_area(parent) @@ -297,7 +298,7 @@ return location.apc?.terminal?.use_energy(power_to_use, channel = AREA_USAGE_EQUIP) power_used_in_minute += power_to_use - COOLDOWN_START(src, power_used_cooldown, 1 MINUTES) + return COMPONENT_OVERRIDE_POWER_USAGE /**