mirror of
https://github.com/KabKebab/GS13.git
synced 2026-02-09 23:27:37 +00:00
42 lines
1.4 KiB
Plaintext
42 lines
1.4 KiB
Plaintext
/datum/round_event_control/electrical_storm
|
|
name = "Electrical Storm"
|
|
typepath = /datum/round_event/electrical_storm
|
|
earliest_start = 10 MINUTES
|
|
min_players = 5
|
|
weight = 40
|
|
alertadmins = 0
|
|
|
|
/datum/round_event/electrical_storm
|
|
var/lightsoutAmount = 1
|
|
var/lightsoutRange = 25
|
|
announceWhen = 1
|
|
|
|
/datum/round_event/electrical_storm/announce(fake)
|
|
if(prob(50))
|
|
priority_announce("An electrical storm has been detected in your area, please repair potential electronic overloads.", "Electrical Storm Alert")
|
|
else
|
|
priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak
|
|
for(var/obj/machinery/computer/communications/C in GLOB.machines)
|
|
if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z))
|
|
var/obj/item/paper/P = new(C.loc)
|
|
P.name = "Electrical Storm"
|
|
P.info = "An electrical storm has been detected in your area, please repair potential electronic overloads."
|
|
P.update_icon()
|
|
|
|
/datum/round_event/electrical_storm/start()
|
|
var/list/epicentreList = list()
|
|
|
|
for(var/i=1, i <= lightsoutAmount, i++)
|
|
var/turf/T = find_safe_turf()
|
|
if(istype(T))
|
|
epicentreList += T
|
|
|
|
if(!epicentreList.len)
|
|
return
|
|
|
|
for(var/centre in epicentreList)
|
|
for(var/a in GLOB.apcs_list)
|
|
var/obj/machinery/power/apc/A = a
|
|
if(get_dist(centre, A) <= lightsoutRange)
|
|
A.overload_lighting()
|