prevents the overcharged smes from runtiming when SSprocessing falls behind

This commit is contained in:
Majkl-J
2024-12-05 04:27:46 -08:00
parent 016c3ed21a
commit 8f715046e2
@@ -125,6 +125,7 @@
/obj/lightning_thrower/Destroy()
. = ..()
clear_signals()
signal_turfs = null
STOP_PROCESSING(SSprocessing, src)
@@ -132,6 +133,8 @@
var/list/dirs = throw_diagonals ? GLOB.diagonals : GLOB.cardinals
throw_diagonals = !throw_diagonals
playsound(src, 'sound/effects/magic/lightningbolt.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE, ignore_walls = FALSE)
if(length(signal_turfs))
clear_signals()
for(var/direction in dirs)
var/victim_turf = get_step(src, direction)
if(isclosedturf(victim_turf))
@@ -143,8 +146,7 @@
shock_victim(null, victim)
addtimer(CALLBACK(src, PROC_REF(clear_signals)), shock_duration)
/obj/lightning_thrower/proc/clear_signals(datum/source)
SIGNAL_HANDLER
/obj/lightning_thrower/proc/clear_signals()
for(var/turf in signal_turfs)
UnregisterSignal(turf, COMSIG_ATOM_ENTERED)
signal_turfs -= turf