mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-21 11:07:12 +01:00
* I AM NOT A KING. I AM NOT A GOD. I AM LUNACY. * THE SCOPE CREEP * This was done in vi. No langserver. Send help. * Progress * Some issues fixed * The code builds, but the maps dont * CC builds, I doubt anything else does * Do this now * Safety * The map compiles * THE MAPPING HELL * Airlock controllers dont work * Fixed bombs * AND THATS FIXED * Phantom edit * Restores LL I think * The mapmerge hooks are actually retarded * Fixes spawners * Half working air control * Picky * Hyper efficient tank monitor * Sanity * Laying the framework * Improved alert console * Dont think this is actually done anywhere * Metering * ONE HUNDRED AND ~~EIGHTY~~ TWENTY SEVEN * WE ARE READY FOR BOX TO BUILD * One map done * Well that was easy * Another one * I think this is done * I should have removed this * I would make a russian joke but <current event> * Delta WIP * Makes delta work * Early review * TM safeguard * oops * METAAAAAAAAAAAAAAAAAAAAAAAAA * Fix #4213 * Trailing * oh for piss sake * Shutter fix * Roundstart ATs can go away * Review pass 1 * What could go wrong * BOOM BOOM BOOM * Not needed * Fix seed vault * Oops * Review changes
35 lines
1.1 KiB
Plaintext
35 lines
1.1 KiB
Plaintext
// why is this an SS if it has no fire or init
|
|
// this should be a global datum for piss sake
|
|
// AND YES I KNOW AN SS IS A GLOBAL DATUM, THATS NOT THE POINT
|
|
SUBSYSTEM_DEF(alarm)
|
|
name = "Alarm"
|
|
flags = SS_NO_INIT | SS_NO_FIRE
|
|
var/list/alarms = list("Motion" = list(), "Fire" = list(), "Atmosphere" = list(), "Power" = list(), "Burglar" = list())
|
|
|
|
/datum/controller/subsystem/alarm/proc/triggerAlarm(class, area/A, list/O, obj/alarmsource)
|
|
var/list/L = alarms[class]
|
|
for(var/I in L)
|
|
if(I == A.name)
|
|
var/list/alarm = L[I]
|
|
var/list/sources = alarm[3]
|
|
if(!(alarmsource.UID() in sources))
|
|
sources += alarmsource.UID()
|
|
return TRUE
|
|
L[A.name] = list(get_area_name(A, TRUE), O, list(alarmsource.UID()))
|
|
SEND_SIGNAL(SSalarm, COMSIG_TRIGGERED_ALARM, class, A, O, alarmsource)
|
|
return TRUE
|
|
|
|
/datum/controller/subsystem/alarm/proc/cancelAlarm(class, area/A, obj/origin)
|
|
var/list/L = alarms[class]
|
|
var/cleared = FALSE
|
|
for(var/I in L)
|
|
if(I == A.name)
|
|
var/list/alarm = L[I]
|
|
var/list/srcs = alarm[3]
|
|
srcs -= origin.UID()
|
|
if(!length(srcs))
|
|
cleared = TRUE
|
|
L -= I
|
|
|
|
SEND_SIGNAL(SSalarm, COMSIG_CANCELLED_ALARM, class, A, origin, cleared)
|