38 lines
1.2 KiB
Plaintext
38 lines
1.2 KiB
Plaintext
/datum/round_event_control/electrical_storm
|
|
name = "Electrical Storm"
|
|
typepath = /datum/round_event/electrical_storm
|
|
earliest_start = 30 MINUTES //GS13 Edit: Reducing pain for normal station ongoings.
|
|
min_players = 5
|
|
weight = 40
|
|
max_occurrences = 2 //GS13 Edit: Limiting this.
|
|
category = EVENT_CATEGORY_ENGINEERING
|
|
description = "Destroys all lights in a large area."
|
|
|
|
/datum/round_event/electrical_storm
|
|
var/lightsoutAmount = 1
|
|
var/lightsoutRange = 10 //GS13 Edit: 25 down to 10
|
|
announce_when = 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
|
|
print_command_report("An electrical storm has been detected in your area, please repair potential electronic overloads.", "Electrical Storm")
|
|
|
|
/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()
|