diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 16e1709d75e..c6daf402629 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -62,3 +62,6 @@ #define SOUND_AREA_LARGE_METALLIC SOUND_ENVIRONMENT_QUARRY #define SOUND_AREA_SMALL_METALLIC SOUND_ENVIRONMENT_BATHROOM #define SOUND_AREA_ASTEROID SOUND_ENVIRONMENT_CAVE + +#define EMP_DEFAULT 'sound/effects/EMPulse.ogg' +#define EMP_SEBB 'sound/effects/sound_effects_sebb_explode.ogg' diff --git a/code/datums/spells/emplosion.dm b/code/datums/spells/emplosion.dm index 2b3d0ed588c..e2830ddad87 100644 --- a/code/datums/spells/emplosion.dm +++ b/code/datums/spells/emplosion.dm @@ -8,6 +8,6 @@ /obj/effect/proc_holder/spell/targeted/emplosion/cast(list/targets) for(var/mob/living/target in targets) - empulse(target.loc, emp_heavy, emp_light) + empulse(target.loc, emp_heavy, emp_light, custom_effects = EMP_SEBB) return diff --git a/code/game/gamemodes/modes_gameplays/ninja/suit/n_suit_verbs/ninja_empulse.dm b/code/game/gamemodes/modes_gameplays/ninja/suit/n_suit_verbs/ninja_empulse.dm index 092a611ada6..381fa084b57 100644 --- a/code/game/gamemodes/modes_gameplays/ninja/suit/n_suit_verbs/ninja_empulse.dm +++ b/code/game/gamemodes/modes_gameplays/ninja/suit/n_suit_verbs/ninja_empulse.dm @@ -12,7 +12,7 @@ if(!ninjacost(C,0)) // EMP's now cost 1,000Energy about 30% var/mob/living/carbon/human/U = affecting playsound(U, 'sound/effects/EMPulse.ogg', VOL_EFFECTS_MASTER) - empulse(U, 2, 3) //Procs sure are nice. Slightly weaker than wizard's disable tch. + empulse(U, 2, 3, custom_effects = EMP_SEBB) //Procs sure are nice. Slightly weaker than wizard's disable tch. s_coold = 2 cell.use(C*10) return diff --git a/code/game/objects/empulse.dm b/code/game/objects/empulse.dm index 180d73f640a..5628d0a90fc 100644 --- a/code/game/objects/empulse.dm +++ b/code/game/objects/empulse.dm @@ -1,4 +1,12 @@ -/proc/empulse(turf/epicenter, heavy_range, light_range, log=0) +/obj/effect/overlay/temp/heavy_emp + icon = 'icons/effects/sebb.dmi' + icon_state = "sebb_explode" + layer = ABOVE_LIGHTING_PLANE + pixel_x = -175 // We need these offsets to force center the sprite because BYOND is dumb + pixel_y = -175 + appearance_flags = RESET_COLOR + +/proc/empulse(turf/epicenter, heavy_range, light_range, log=0, custom_effects = EMP_DEFAULT) if(!epicenter) return if(!istype(epicenter, /turf)) @@ -12,19 +20,22 @@ SEND_SIGNAL(SSexplosions, COMSIG_EXPLOSIONS_EMPULSE, epicenter, heavy_range, light_range) - if(heavy_range > 1) + if(custom_effects == EMP_SEBB) + var/obj/effect/overlay/temp/heavy_emp/S = new(epicenter) + S.anchored = TRUE + QDEL_IN(S, 1 SECOND) + else if(heavy_range > 1) var/obj/effect/overlay/pulse = new /obj/effect/overlay(epicenter) pulse.icon = 'icons/effects/effects.dmi' pulse.icon_state = "emppulse" pulse.name = "emp pulse" pulse.anchored = TRUE - QDEL_IN(pulse, 20) + QDEL_IN(pulse, 2 SECONDS) if(heavy_range > light_range) light_range = heavy_range - for(var/mob/M in range(heavy_range, epicenter)) - M.playsound_local(null, 'sound/effects/EMPulse.ogg', VOL_EFFECTS_MASTER, null, FALSE) + M.playsound_local(null, custom_effects, VOL_EFFECTS_MASTER, null, FALSE) for(var/atom/T in range(light_range, epicenter)) var/distance = get_dist(epicenter, T) diff --git a/code/game/objects/items/mines.dm b/code/game/objects/items/mines.dm index 515f097c24e..c3d260cb203 100644 --- a/code/game/objects/items/mines.dm +++ b/code/game/objects/items/mines.dm @@ -128,7 +128,7 @@ icon_state = "empmine" /obj/item/mine/emp/trigger_act(obj) - empulse(src, 2, 3) + empulse(src, 2, 3, custom_effects = EMP_SEBB) /obj/item/mine/emp/anchored anchored = TRUE diff --git a/code/game/objects/items/weapons/grenades/emgrenade.dm b/code/game/objects/items/weapons/grenades/emgrenade.dm index 5001a911ac9..5ad913b5b73 100644 --- a/code/game/objects/items/weapons/grenades/emgrenade.dm +++ b/code/game/objects/items/weapons/grenades/emgrenade.dm @@ -3,10 +3,11 @@ icon_state = "emp" item_state = "emp" origin_tech = "materials=2;magnets=3" + activate_sound = 'sound/weapons/sound_effects_sebb_beep.ogg' /obj/item/weapon/grenade/empgrenade/prime() ..() - if(empulse(src, 4, 10)) + if(empulse(src, 4, 10, custom_effects = EMP_SEBB)) qdel(src) return diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index 1db6c432ae1..886ffd8b00e 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -361,7 +361,7 @@ /datum/action/item_action/implant/emp_implant/Activate() var/obj/item/weapon/implant/emp/S = target if (S.uses > 0) - empulse(S.imp_in, 3, 5) + empulse(S.imp_in, 3, 5, custom_effects = EMP_SEBB) S.uses-- if (!S.uses) qdel(S) diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index 33e21da5f3b..4e939d3baac 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -175,7 +175,7 @@ damage = 10 /obj/item/projectile/missile/emp/on_hit(atom/target, def_zone = BP_CHEST, blocked = 0) - empulse(target, 4, 10) + empulse(target, 4, 10, custom_effects = EMP_SEBB) return 1 /obj/item/projectile/anti_singulo diff --git a/code/modules/research/xenoarchaeology/artifact/effects/emp.dm b/code/modules/research/xenoarchaeology/artifact/effects/emp.dm index fee571b8da0..588b431f2c4 100644 --- a/code/modules/research/xenoarchaeology/artifact/effects/emp.dm +++ b/code/modules/research/xenoarchaeology/artifact/effects/emp.dm @@ -13,4 +13,4 @@ empulse(get_turf(holder), range / 2, range) /datum/artifact_effect/emp/DoEffectDestroy() - empulse(get_turf(holder), 7, range) + empulse(get_turf(holder), 7, range, custom_effects = EMP_SEBB) diff --git a/icons/effects/sebb.dmi b/icons/effects/sebb.dmi new file mode 100644 index 00000000000..288a1023ce3 Binary files /dev/null and b/icons/effects/sebb.dmi differ diff --git a/sound/effects/sound_effects_sebb_explode.ogg b/sound/effects/sound_effects_sebb_explode.ogg new file mode 100644 index 00000000000..999385d9f06 Binary files /dev/null and b/sound/effects/sound_effects_sebb_explode.ogg differ diff --git a/sound/weapons/sound_effects_sebb_beep.ogg b/sound/weapons/sound_effects_sebb_beep.ogg new file mode 100644 index 00000000000..16c9347d0be Binary files /dev/null and b/sound/weapons/sound_effects_sebb_beep.ogg differ