/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()