mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-26 18:21:56 +00:00
33 lines
1.0 KiB
Plaintext
33 lines
1.0 KiB
Plaintext
/proc/empulse(turf/epicenter, heavy_range, light_range, log=0, cause = null)
|
|
if(!epicenter) return
|
|
|
|
if(!istype(epicenter, /turf))
|
|
epicenter = get_turf(epicenter.loc)
|
|
|
|
if(log)
|
|
message_admins("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] [cause ? "(Cause: [cause])": ""] [ADMIN_COORDJMP(epicenter)]</a>")
|
|
log_game("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] [cause ? "(Cause: [cause])" : ""] [COORD(epicenter)]")
|
|
|
|
if(heavy_range > 1)
|
|
new/obj/effect/temp_visual/emp/pulse(epicenter)
|
|
|
|
if(heavy_range > light_range)
|
|
light_range = heavy_range
|
|
|
|
for(var/mob/M in range(heavy_range, epicenter))
|
|
M << 'sound/effects/empulse.ogg'
|
|
for(var/atom/T in range(light_range, epicenter))
|
|
var/distance = get_dist(epicenter, T)
|
|
if(distance < 0)
|
|
distance = 0
|
|
if(distance < heavy_range)
|
|
T.emp_act(1)
|
|
else if(distance == heavy_range)
|
|
if(prob(50))
|
|
T.emp_act(1)
|
|
else
|
|
T.emp_act(2)
|
|
else if(distance <= light_range)
|
|
T.emp_act(2)
|
|
return 1
|