/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