mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-06-26 07:43:42 +01:00
1895ea77cb
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>
37 lines
1.4 KiB
Plaintext
37 lines
1.4 KiB
Plaintext
/datum/event/grid_check
|
|
name = "Grid Check"
|
|
nominal_severity = EVENT_LEVEL_MODERATE
|
|
endWhen = 60 // In process ticks
|
|
|
|
/datum/event/grid_check/announce(false_alarm)
|
|
GLOB.minor_announcement.Announce("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Electrical Grid Check")
|
|
return
|
|
|
|
/datum/event/grid_check/start()
|
|
. = ..()
|
|
addtimer(CALLBACK(src, PROC_REF(toggle_power)), rand(10 SECONDS, 15 SECONDS))
|
|
|
|
/datum/event/grid_check/proc/toggle_power(state = TRUE)
|
|
var/list/skipped_areas_apc = list(
|
|
/area/station/turret_protected/ai,
|
|
/area/station/command/office/ce)
|
|
skipped_areas_apc += subtypesof(/area/station/engineering)
|
|
skipped_areas_apc += subtypesof(/area/station/telecomms)
|
|
for(var/obj/machinery/power/apc/power_controller in GLOB.apcs)
|
|
var/area/current_area = get_area(power_controller)
|
|
if((current_area.type in skipped_areas_apc) || !is_station_level(power_controller.z))
|
|
continue
|
|
if(power_controller.operating == state)
|
|
power_controller.toggle_breaker()
|
|
for(var/mob/M in GLOB.player_list)
|
|
var/turf/T = get_turf(M)
|
|
if(!M.client || !is_station_level(T.z) || isnewplayer(M))
|
|
continue
|
|
if(state)
|
|
SEND_SOUND(M, sound('sound/effects/powerloss.ogg'))
|
|
else
|
|
SEND_SOUND(M, sound('sound/mecha/powerup.ogg'))
|
|
|
|
if(state)
|
|
addtimer(CALLBACK(src, PROC_REF(toggle_power), FALSE), rand(30 SECONDS, 120 SECONDS))
|