Files
2020-08-16 15:17:37 -03:00

62 lines
1.5 KiB
Plaintext

/datum/wires/firealarm
holder_type = /obj/machinery/firealarm
proper_name = "Fire alarm's"
req_knowledge = JOB_SKILL_MASTER
/datum/wires/firealarm/New(atom/holder)
wires = list(
WIRE_FIRE_TOGGLE,
WIRE_FIRE_DETECT,
WIRE_FIRE_TRIGGER
)
add_duds(2)
..()
/datum/wires/firealarm/interactable(mob/user)
var/obj/machinery/firealarm/A = holder
if(A.panel_open)
return TRUE
/datum/wires/firealarm/get_status()
var/obj/machinery/firealarm/A = holder
var/list/status = list()
status += "The alarm light is [A.alarm_active ? "blinking red" : "green"]."
status += "The fire detection light is [A.detecting ? "on" : "off"]."
status += "The button wire is [A.button_wire_cut ? "cut" : "connected"]."
return status
/datum/wires/firealarm/on_pulse(wire)
var/obj/machinery/firealarm/A = holder
switch(wire)
if(WIRE_FIRE_TOGGLE) // ohno, fire!
if(A.alarm_active && !A.wire_override)
A.reset()
else if(!A.alarm_active)
A.alarm() //no wire_override here, it's just a pulse.
if(WIRE_FIRE_DETECT)
A.detecting = !A.detecting
if(WIRE_FIRE_TRIGGER)
A.alarm()
addtimer(CALLBACK(A, /obj/machinery/firealarm.proc/reset, wire), 1000)
/datum/wires/firealarm/on_cut(index, mend)
var/obj/machinery/firealarm/A = holder
switch(index)
if(WIRE_FIRE_TOGGLE)
if(mend)
A.wire_override = FALSE
A.reset()
else
A.wire_override = TRUE
A.alarm()
if(WIRE_FIRE_DETECT)
if(mend)
A.detecting = TRUE
else
A.detecting = FALSE
if(WIRE_FIRE_TRIGGER)
if(mend)
A.button_wire_cut = FALSE
else
A.button_wire_cut = TRUE