mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-25 17:42:26 +00:00
71 lines
2.6 KiB
Plaintext
71 lines
2.6 KiB
Plaintext
/proc/power_failure()
|
|
command_alert("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure")
|
|
world << sound('poweroff.ogg')
|
|
for(var/obj/machinery/power/apc/C in world)
|
|
if(C.cell && C.z == 1)
|
|
C.cell.charge = 0
|
|
for(var/obj/machinery/power/smes/S in world)
|
|
if(istype(get_area(S), /area/turret_protected) || S.z != 1)
|
|
continue
|
|
S.charge = 0
|
|
S.output = 0
|
|
S.online = 0
|
|
S.updateicon()
|
|
S.power_change()
|
|
for(var/area/A in world)
|
|
if(A.name != "Space" && A.name != "Engine Walls" && A.name != "Chemical Lab Test Chamber" && A.name != "Escape Shuttle" && A.name != "Arrival Area" && A.name != "Arrival Shuttle" && A.name != "start area" && A.name != "Engine Combustion Chamber")
|
|
A.power_light = 0
|
|
A.power_equip = 0
|
|
A.power_environ = 0
|
|
A.power_change()
|
|
|
|
/proc/power_restore()
|
|
command_alert("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal")
|
|
world << sound('poweron.ogg')
|
|
for(var/obj/machinery/power/apc/C in world)
|
|
if(C.cell && C.z == 1)
|
|
C.cell.charge = C.cell.maxcharge
|
|
for(var/obj/machinery/power/smes/S in world)
|
|
if(S.z != 1)
|
|
continue
|
|
S.charge = S.capacity
|
|
S.output = 200000
|
|
S.online = 1
|
|
S.updateicon()
|
|
S.power_change()
|
|
for(var/area/A in world)
|
|
if(A.name != "Space" && A.name != "Engine Walls" && A.name != "Chemical Lab Test Chamber" && A.name != "space" && A.name != "Escape Shuttle" && A.name != "Arrival Area" && A.name != "Arrival Shuttle" && A.name != "start area" && A.name != "Engine Combustion Chamber")
|
|
A.power_light = 1
|
|
A.power_equip = 1
|
|
A.power_environ = 1
|
|
A.power_change()
|
|
|
|
/proc/lightsout(isEvent = 0, lightsoutAmount = 1,lightsoutRange = 10) //leave lightsoutAmount as 0 to break ALL lights
|
|
if(isEvent)
|
|
command_alert("An Electrical storm has been detected in your area, please repair potential electronic overloads.","Electrical Storm Alert")
|
|
|
|
if(lightsoutAmount)
|
|
var/list/epicentreList = list()
|
|
|
|
for(var/i=1,i<=lightsoutAmount,i++)
|
|
var/list/possibleEpicentres = list()
|
|
for(var/obj/effect/landmark/newEpicentre in world)
|
|
if(newEpicentre.name == "lightsout" && !(newEpicentre in epicentreList))
|
|
possibleEpicentres += newEpicentre
|
|
if(possibleEpicentres.len)
|
|
epicentreList += pick(possibleEpicentres)
|
|
else
|
|
break
|
|
|
|
if(!epicentreList.len)
|
|
return
|
|
|
|
for(var/obj/effect/landmark/epicentre in epicentreList)
|
|
for(var/obj/machinery/power/apc/apc in range(epicentre,lightsoutRange))
|
|
apc.overload_lighting()
|
|
|
|
else
|
|
for(var/obj/machinery/power/apc/apc in world)
|
|
apc.overload_lighting()
|
|
|
|
return |