From edeea0af27eb18492bef0a2140c64d943253022e Mon Sep 17 00:00:00 2001 From: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com> Date: Fri, 22 Aug 2025 11:19:49 -0400 Subject: [PATCH] Fixes electrocution effect (#30204) * Fixes electrocution effect * Purges spare effect --- .../objects/effects/temporary_visuals/misc_visuals.dm | 8 -------- code/modules/mob/living/carbon/carbon_procs.dm | 11 +++++++---- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/code/game/objects/effects/temporary_visuals/misc_visuals.dm b/code/game/objects/effects/temporary_visuals/misc_visuals.dm index 603a094c207..75327f09252 100644 --- a/code/game/objects/effects/temporary_visuals/misc_visuals.dm +++ b/code/game/objects/effects/temporary_visuals/misc_visuals.dm @@ -517,14 +517,6 @@ animate(get_filter("ray"), offset = 10, time = 10 SECONDS, loop = -1) animate(offset = 0, time = 10 SECONDS) -/obj/effect/temp_visual/electrocution - name = "electrocution" - icon_state = "electrocution" - -/obj/effect/temp_visual/electrocution/Initialize(mapload, set_duration) - duration = set_duration - . = ..() - /obj/effect/temp_visual/warning name = "warning" icon = 'icons/effects/96x96.dmi' diff --git a/code/modules/mob/living/carbon/carbon_procs.dm b/code/modules/mob/living/carbon/carbon_procs.dm index 22b4f4d8a55..1b21e72ae56 100644 --- a/code/modules/mob/living/carbon/carbon_procs.dm +++ b/code/modules/mob/living/carbon/carbon_procs.dm @@ -188,6 +188,7 @@ // Moderate shock - Stun, knockdown, funny effect var/should_stun = FALSE var/stun_dur = 0 SECONDS + var/icon/overlay_icon = null if(shock_damage >= SHOCK_MODERATE) should_stun = (!(flags & SHOCK_TESLA) || siemens_coeff > 0.5) && !(flags & SHOCK_NOSTUN) if(should_stun) @@ -196,8 +197,8 @@ if(shock_damage >= SHOCK_FLASH) // Arc flash explosion is instant, don't wait for the secondary shock and bypass the effect stun_dur = 0 else - var/obj/effect/temp_visual/electrocution/shock_effect = new /obj/effect/temp_visual/electrocution(loc, stun_dur) - shock_effect.setDir(dir) + overlay_icon = new('icons/effects/effects.dmi', "electrocution") + overlays += overlay_icon emote("scream") AdjustStuttering(4 SECONDS) @@ -212,13 +213,15 @@ throw_dir = get_dir(shock_source.loc, src) throw_distance = round(shock_damage / 10) - addtimer(CALLBACK(src, PROC_REF(secondary_shock), jitter_amount, should_stun, throw_dir, throw_distance), stun_dur) + addtimer(CALLBACK(src, PROC_REF(secondary_shock), jitter_amount, should_stun, throw_dir, throw_distance, overlay_icon), stun_dur) return shock_damage /// Called after electrocute_act to apply secondary effects -/mob/living/carbon/proc/secondary_shock(jitter_amount, should_stun, throw_dir, throw_distance) +/mob/living/carbon/proc/secondary_shock(jitter_amount, should_stun, throw_dir, throw_distance, overlay_icon) if(jitter_amount) AdjustJitter(jitter_amount) + if(overlay_icon) + overlays -= overlay_icon if(should_stun) KnockDown(6 SECONDS) if(throw_dir && throw_distance && !HAS_TRAIT(src, TRAIT_MAGPULSE)) // Don't yeet if they're wearing magboots