This commit is contained in:
Fox McCloud
2020-07-02 08:34:59 -04:00
parent 773190d262
commit 2fa1217d5c
5 changed files with 48 additions and 47 deletions
+7 -7
View File
@@ -196,7 +196,7 @@
*/
/area/proc/atmosalert(danger_level, obj/source)
if(danger_level != atmosalm)
if (danger_level==2)
if(danger_level == 2)
for(var/item in GLOB.silicon_mob_list)
var/mob/living/silicon/aiPlayer = item
@@ -208,7 +208,7 @@
var/datum/computer_file/program/alarm_monitor/p = item
p.triggerAlarm("Atmosphere", src, cameras, source) */
else if(src.atmosalm == 2)
else if(atmosalm == 2)
for(var/item in GLOB.silicon_mob_list)
var/mob/living/silicon/aiPlayer = item
aiPlayer.cancelAlarm("Atmosphere", src, source)
@@ -219,9 +219,9 @@
var/datum/computer_file/program/alarm_monitor/p = item
p.cancelAlarm("Atmosphere", src, source) */
src.atmosalm = danger_level
return 1
return 0
atmosalm = danger_level
return TRUE
return FALSE
/**
* Try to close all the firedoors in the area
@@ -252,7 +252,7 @@
* Also starts the area processing on SSobj
*/
/area/proc/firealert(obj/source)
if(always_unpowered == 1) //no fire alarms in space/asteroid
if(always_unpowered) //no fire alarms in space/asteroid
return
if(!fire)
@@ -363,7 +363,7 @@
var/mob/living/silicon/SILICON = i
if(SILICON.triggerAlarm("Burglar", src, cameras, trigger))
//Cancel silicon alert after 1 minute
addtimer(CALLBACK(SILICON, /mob/living/silicon.proc/cancelAlarm,"Burglar",src,trigger), 600)
addtimer(CALLBACK(SILICON, /mob/living/silicon.proc/cancelAlarm, "Burglar", src, trigger), 600)
/**
* Trigger the fire alarm visual affects in an area
@@ -79,8 +79,8 @@
return
var/list/L = alarms[class]
var/cleared = FALSE
for (var/I in L)
if (I == A.name)
for(var/I in L)
if(I == A.name)
var/list/alarm = L[I]
var/list/srcs = alarm[3]
if(origin in srcs)
+19 -19
View File
@@ -256,7 +256,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
dat += "<NOBR>"
if(C && istype(C, /list))
var/dat2 = ""
for (var/obj/machinery/camera/I in C)
for(var/obj/machinery/camera/I in C)
dat2 += text("[]<A HREF=?src=[UID()];switchcamera=[I.UID()]>[]</A>", (dat2=="") ? "" : " | ", I.c_tag)
dat += text("-- [] ([])", A.name, (dat2!="") ? dat2 : "No Camera")
else if(C && istype(C, /obj/machinery/camera))
@@ -641,7 +641,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
src << browse(null, t1)
if(href_list["switchcamera"])
switchCamera(locate(href_list["switchcamera"])) in GLOB.cameranet.cameras
if (href_list["showalerts"])
if(href_list["showalerts"])
ai_alerts()
if(href_list["show_paper"])
if(last_paper_seen)
@@ -821,29 +821,29 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
if(alarmsource.z != z)
return
var/list/L = alarms[class]
for (var/I in L)
if (I == A.name)
for(var/I in L)
if(I == A.name)
var/list/alarm = L[I]
var/list/sources = alarm[3]
if (!(alarmsource in sources))
if(!(alarmsource in sources))
sources += alarmsource
return 1
return TRUE
var/obj/machinery/camera/C = null
var/list/CL = null
if (O && istype(O, /list))
if(O && istype(O, /list))
CL = O
if (CL.len == 1)
if(CL.len == 1)
C = CL[1]
else if (O && istype(O, /obj/machinery/camera))
else if(O && istype(O, /obj/machinery/camera))
C = O
L[A.name] = list(A, (C) ? C : O, list(alarmsource))
if (O)
if (C && C.can_use())
if(O)
if(C && C.can_use())
queueAlarm("--- [class] alarm detected in [A.name]! (<A HREF=?src=[UID()];switchcamera=[C.UID()]>[C.c_tag]</A>)", class)
else if (CL && CL.len)
else if(CL && CL.len)
var/foo = 0
var/dat2 = ""
for (var/obj/machinery/camera/I in CL)
for(var/obj/machinery/camera/I in CL)
dat2 += text("[]<A HREF=?src=[UID()];switchcamera=[I.UID()]>[]</A>", (!foo) ? "" : " | ", I.c_tag) //I'm not fixing this shit...
foo = 1
queueAlarm(text ("--- [] alarm detected in []! ([])", class, A.name, dat2), class)
@@ -853,23 +853,23 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
queueAlarm(text("--- [] alarm detected in []! (No Camera)", class, A.name), class)
if(viewalerts)
ai_alerts()
return 1
return TRUE
/mob/living/silicon/ai/cancelAlarm(class, area/A, obj/origin)
var/list/L = alarms[class]
var/cleared = 0
for (var/I in L)
if (I == A.name)
for(var/I in L)
if(I == A.name)
var/list/alarm = L[I]
var/list/srcs = alarm[3]
if (origin in srcs)
if(origin in srcs)
srcs -= origin
if (srcs.len == 0)
if(srcs.len == 0)
cleared = 1
L -= I
if(cleared)
queueAlarm("--- [class] alarm in [A.name] has been cleared.", class, 0)
if (viewalerts)
if(viewalerts)
ai_alerts()
return !cleared
+12 -11
View File
@@ -553,8 +553,8 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
for(var/cat in alarms)
dat += text("<B>[cat]</B><BR>\n")
var/list/L = alarms[cat]
if (L.len)
for (var/alarm in L)
if(L.len)
for(var/alarm in L)
var/list/alm = L[alarm]
var/area/A = alm[1]
dat += "<NOBR>"
@@ -633,37 +633,37 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
if(alarmsource.z != z)
return
if(stat == DEAD)
return 1
return TRUE
var/list/L = alarms[class]
for(var/I in L)
if (I == A.name)
if(I == A.name)
var/list/alarm = L[I]
var/list/sources = alarm[3]
if (!(alarmsource in sources))
if(!(alarmsource in sources))
sources += alarmsource
return 1
return TRUE
var/obj/machinery/camera/C = null
var/list/CL = null
if(O && istype(O, /list))
CL = O
if (CL.len == 1)
if(CL.len == 1)
C = CL[1]
else if(O && istype(O, /obj/machinery/camera))
C = O
L[A.name] = list(A, (C) ? C : O, list(alarmsource))
queueAlarm(text("--- [class] alarm detected in [A.name]!"), class)
return 1
return TRUE
/mob/living/silicon/robot/cancelAlarm(class, area/A, obj/origin)
var/list/L = alarms[class]
var/cleared = 0
for(var/I in L)
if (I == A.name)
if(I == A.name)
var/list/alarm = L[I]
var/list/srcs = alarm[3]
if (origin in srcs)
if(origin in srcs)
srcs -= origin
if (srcs.len == 0)
if(srcs.len == 0)
cleared = 1
L -= I
if(cleared)
@@ -1106,6 +1106,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
//Show alerts window if user clicked on "Show alerts" in chat
if(href_list["showalerts"])
robot_alerts()
return TRUE
if(href_list["deact"])
var/obj/item/O = locate(href_list["deact"])
@@ -48,17 +48,17 @@
var/list/L = alarms[class]
for(var/I in L)
if (I == A.name)
if(I == A.name)
var/list/alarm = L[I]
var/list/sources = alarm[3]
if (!(source in sources))
if(!(source in sources))
sources += source
return 1
return TRUE
var/obj/machinery/camera/C = null
var/list/CL = null
if(O && istype(O, /list))
CL = O
if (CL.len == 1)
if(CL.len == 1)
C = CL[1]
else if(O && istype(O, /obj/machinery/camera))
C = O
@@ -66,23 +66,23 @@
update_alarm_display()
return 1
return TRUE
/datum/computer_file/program/alarm_monitor/proc/cancelAlarm(class, area/A, obj/origin)
var/list/L = alarms[class]
var/cleared = 0
var/arealevelalarm = FALSE // set to TRUE for alarms that set/clear whole areas
if(class=="Fire")
if(class == "Fire")
arealevelalarm = TRUE
for(var/I in L)
if(I == A.name)
if(!arealevelalarm) // the traditional behaviour
var/list/alarm = L[I]
var/list/srcs = alarm[3]
if (origin in srcs)
if(origin in srcs)
srcs -= origin
if (srcs.len == 0)
if(srcs.len == 0)
cleared = 1
L -= I
else