diff --git a/code/ATMOSPHERICS/components/valve.dm b/code/ATMOSPHERICS/components/valve.dm
index 0120590d2d3..e8b99a9fb99 100644
--- a/code/ATMOSPHERICS/components/valve.dm
+++ b/code/ATMOSPHERICS/components/valve.dm
@@ -302,7 +302,7 @@
/obj/machinery/atmospherics/valve/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
if (!istype(W, /obj/item/weapon/wrench))
return ..()
- if (istype(src, /obj/machinery/atmospherics/valve/digital))
+ if (istype(src, /obj/machinery/atmospherics/valve/digital) && src:frequency)
user << "\red You cannot unwrench this [src], it's too complicated."
return 1
var/datum/gas_mixture/int_air = return_air()
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index 08fedbd7c32..146b7b318ff 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -177,6 +177,12 @@ datum/mind
text += "employee|headrev|REV"
else
text += "EMPLOYEE|headrev|rev"
+
+ if(current && current.client && current.client.prefs.be_special & BE_REV)
+ text += "|Enabled in Prefs"
+ else
+ text += "|Disabled in Prefs"
+
sections["revolution"] = text
/** CULT ***/
@@ -195,6 +201,13 @@ datum/mind
*/
else
text += "EMPLOYEE|cultist"
+
+
+ if(current && current.client && current.client.prefs.be_special & BE_CULTIST)
+ text += "|Enabled in Prefs"
+ else
+ text += "|Disabled in Prefs"
+
sections["cult"] = text
/** WIZARD ***/
@@ -209,6 +222,12 @@ datum/mind
text += "
Objectives are empty! Randomize!"
else
text += "yes|NO"
+
+ if(current && current.client && current.client.prefs.be_special & BE_WIZARD)
+ text += "|Enabled in Prefs"
+ else
+ text += "|Disabled in Prefs"
+
sections["wizard"] = text
/** CHANGELING ***/
@@ -224,12 +243,15 @@ datum/mind
text += "
Transform to initial appearance."
else
text += "yes|NO"
-// var/datum/game_mode/changeling/changeling = ticker.mode
-// if (istype(changeling) && changeling.changelingdeath)
-// text += "
All the changelings are dead! Restart in [round((changeling.TIME_TO_GET_REVIVED-(world.time-changeling.changelingdeathtime))/10)] seconds."
+
+ if(current && current.client && current.client.prefs.be_special & BE_CHANGELING)
+ text += "|Enabled in Prefs"
+ else
+ text += "|Disabled in Prefs"
+
sections["changeling"] = text
- /** NINJA ***/
+ /** NINJA ***/
text = "ninja"
if (ticker.mode.config_tag=="ninja")
text = uppertext(text)
@@ -241,26 +263,13 @@ datum/mind
//text += "
Objectives are empty! Randomize!"
else
text += "yes|NO"
- sections["ninja"] = text
-
- /** CHANGELING ***/
- text = "changeling"
- if (ticker.mode.config_tag=="changeling" || ticker.mode.config_tag=="traitorchan")
- text = uppertext(text)
- text = "[text]: "
- if (src in ticker.mode.changelings)
- text += "YES|no"
- if (objectives.len==0)
- text += "
Objectives are empty! Randomize!"
- if( changeling && changeling.absorbed_dna.len && (current.real_name != changeling.absorbed_dna[1]) )
- text += "
Transform to initial appearance."
+
+ if(current && current.client && current.client.prefs.be_special & BE_NINJA)
+ text += "|Enabled in Prefs"
else
- text += "yes|NO"
-// var/datum/game_mode/changeling/changeling = ticker.mode
-// if (istype(changeling) && changeling.changelingdeath)
-// text += "
All the changelings are dead! Restart in [round((changeling.TIME_TO_GET_REVIVED-(world.time-changeling.changelingdeathtime))/10)] seconds."
- sections["changeling"] = text
-
+ text += "|Disabled in Prefs"
+
+ sections["ninja"] = text
/** VAMPIRE ***/
text = "vampire"
@@ -273,12 +282,15 @@ datum/mind
text += "
Objectives are empty! Randomize!"
else
text += "yes|NO"
+
+ if(src in ticker.mode.enthralled)
+ text += "YES|no"
+ else
+ text += "yes|NO"
+
/** Enthralled ***/
text += "
enthralled"
- if(src in ticker.mode.enthralled)
- text += " YES | no"
- else
- text += " yes | NO"
+
sections["vampire"] = text
@@ -299,6 +311,12 @@ datum/mind
text += " Code is [code]. tell the code."
else
text += "operative|NANOTRASEN"
+
+ if(current && current.client && current.client.prefs.be_special & BE_OPERATIVE)
+ text += "|Enabled in Prefs"
+ else
+ text += "|Disabled in Prefs"
+
sections["nuclear"] = text
/** TRAITOR ***/
@@ -315,6 +333,12 @@ datum/mind
text += "
Objectives are empty! Randomize!"
else
text += "traitor|EMPLOYEE"
+
+ if(current && current.client && current.client.prefs.be_special & BE_TRAITOR)
+ text += "|Enabled in Prefs"
+ else
+ text += "|Disabled in Prefs"
+
sections["traitor"] = text
/** MONKEY ***/
@@ -335,6 +359,12 @@ datum/mind
else
text += "healthy|infected|human|OTHER"
+
+ /*if(current && current.client && current.client.prefs.be_special & BE_MONKEY)
+ text += "|Enabled in Prefs"
+ else
+ text += "|Disabled in Prefs"*/
+
sections["monkey"] = text
diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm
index ce93498919c..a0b777d75dd 100644
--- a/code/game/gamemodes/nuclear/pinpointer.dm
+++ b/code/game/gamemodes/nuclear/pinpointer.dm
@@ -342,5 +342,67 @@
icon_state = "pinonmedium"
if(16 to INFINITY)
icon_state = "pinonfar"
+ spawn(5)
+ .()
+
+/obj/item/weapon/pinpointer/operative
+ name = "operative pinpointer"
+ icon = 'icons/obj/device.dmi'
+ desc = "A pinpointer that leads to the first Syndicate operative detected."
+ var/mob/living/carbon/nearest_op = null
+
+/obj/item/weapon/pinpointer/operative/attack_self()
+ if(!active)
+ active = 1
+ workop()
+ usr << "You activate the pinpointer."
+ else
+ active = 0
+ icon_state = "pinoff"
+ usr << "You deactivate the pinpointer."
+
+/obj/item/weapon/pinpointer/operative/proc/scan_for_ops()
+ if(!nearest_op)
+ for(var/mob/living/carbon/M in mob_list)
+ if(M.mind in ticker.mode.syndicates)
+ nearest_op = M
+
+/obj/item/weapon/pinpointer/operative/proc/workop()
+ scan_for_ops()
+ point_at(nearest_op, 0)
+ spawn(5)
+ .()
+
+/obj/item/weapon/pinpointer/operative/examine(mob/user)
+ ..()
+ if(nearest_op != null)
+ user << "Nearest operative: [nearest_op]."
+ if(nearest_op == null && active)
+ user << "No operatives detected within scanning range."
+
+/obj/item/weapon/pinpointer/operative/proc/point_at(atom/target, spawnself = 1)
+ if(!active)
+ return
+ if(!target)
+ icon_state = "pinonnull"
+ return
+
+ var/turf/T = get_turf(target)
+ var/turf/L = get_turf(src)
+
+ if(T.z != L.z)
+ icon_state = "pinonnull"
+ else
+ dir = get_dir(L, T)
+ switch(get_dist(L, T))
+ if(-1)
+ icon_state = "pinondirect"
+ if(1 to 8)
+ icon_state = "pinonclose"
+ if(9 to 16)
+ icon_state = "pinonmedium"
+ if(16 to INFINITY)
+ icon_state = "pinonfar"
+ if(spawnself)
spawn(5)
.()
\ No newline at end of file
diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm
index 876dca62e30..4a6a299f318 100644
--- a/code/game/jobs/job/medical.dm
+++ b/code/game/jobs/job/medical.dm
@@ -216,6 +216,8 @@
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/psych(H), slot_w_uniform)
if("Psychologist")
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/psych/turtleneck(H), slot_w_uniform)
+ if("Therapist")
+ H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform)
else
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(H), slot_wear_suit)
diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm
index 6de87e93a12..0ab30e69690 100644
--- a/code/game/machinery/alarm.dm
+++ b/code/game/machinery/alarm.dm
@@ -691,7 +691,7 @@
}
if (!ui)
// the ui does not exist, so we'll create a new one
- ui = new(user, src, ui_key, "air_alarm.tmpl", name, 550, 410)
+ ui = new(user, src, ui_key, "air_alarm.tmpl", name, 570, 410)
// When the UI is first opened this is the data it will use
ui.set_initial_data(data)
ui.open()
@@ -758,7 +758,8 @@
"n2o_scrub",
"o2_scrub",
"panic_siphon",
- "scrubbing")
+ "scrubbing",
+ "direction")
var/val
if(href_list["val"])
val=text2num(href_list["val"])
diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm
index 017856952ca..0a29da013ab 100644
--- a/code/game/machinery/pipe/construction.dm
+++ b/code/game/machinery/pipe/construction.dm
@@ -104,7 +104,7 @@ Buildable meters
src.pipe_type = PIPE_UVENT
else if(istype(make_from, /obj/machinery/atmospherics/valve))
src.pipe_type = PIPE_MVALVE
- else if(istype(make_from, /obj/machinery/atmospherics/binary/volume_pump))
+ else if(istype(make_from, /obj/machinery/atmospherics/binary/pump))
src.pipe_type = PIPE_PUMP
else if(istype(make_from, /obj/machinery/atmospherics/trinary/filter/m_filter))
src.pipe_type = PIPE_GAS_FILTER_M
@@ -709,7 +709,7 @@ Buildable meters
V.node2.build_network()
if(PIPE_PUMP) //gas pump
- var/obj/machinery/atmospherics/binary/volume_pump/P = new(src.loc)
+ var/obj/machinery/atmospherics/binary/pump/P = new(src.loc)
P.dir = dir
P.initialize_directions = pipe_dir
if (pipename)
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index a9bafc2e71e..f4b35c40ba2 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -68,6 +68,7 @@ var/global/nologevent = 0
if(M.client)
body += "| Prison | "
+ body += "\ Send back to Lobby | "
var/muted = M.client.prefs.muted
body += {"
Mute:
\[IC |
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index ce09a172a00..01f003bfd95 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1141,6 +1141,30 @@
M << "\red You have been sent to the prison station!"
log_admin("[key_name(usr)] sent [key_name(M)] to the prison station.")
message_admins("\blue [key_name_admin(usr)] sent [key_name_admin(M)] to the prison station.", 1)
+
+ else if(href_list["sendbacktolobby"])
+ if(!check_rights(R_ADMIN))
+ return
+
+ var/mob/M = locate(href_list["sendbacktolobby"])
+
+ if(!isobserver(M))
+ usr << "You can only send ghost players back to the Lobby."
+ return
+
+ if(!M.client)
+ usr << "[M] doesn't seem to have an active client."
+ return
+
+ if(alert(usr, "Send [key_name(M)] back to Lobby?", "Message", "Yes", "No") != "Yes")
+ return
+
+ log_admin("[key_name(usr)] has sent [key_name(M)] back to the Lobby.")
+ message_admins("[key_name(usr)] has sent [key_name(M)] back to the Lobby.")
+
+ var/mob/new_player/NP = new()
+ NP.ckey = M.ckey
+ qdel(M)
else if(href_list["tdome1"])
if(!check_rights(R_SERVER|R_EVENT)) return
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index af5790222ed..4be7623c8ff 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -23,10 +23,11 @@
universal_speak = 1
var/atom/movable/following = null
var/medHUD = 0
+ var/secHUD = 0
/mob/dead/observer/New(var/mob/body=null, var/flags=1)
sight |= SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF
- see_invisible = SEE_INVISIBLE_OBSERVER
+ see_invisible = SEE_INVISIBLE_OBSERVER_AI_EYE
see_in_dark = 100
verbs += /mob/dead/observer/proc/dead_tele
@@ -103,6 +104,8 @@ Works together with spawning an observer, noted above.
assess_targets(target_list, src)
if(medHUD)
process_medHUD(src)
+ if(secHUD)
+ process_secHUD(src)
/mob/dead/proc/process_medHUD(var/mob/M)
@@ -110,6 +113,13 @@ Works together with spawning an observer, noted above.
for(var/mob/living/carbon/human/patient in oview(M, 14))
C.images += patient.hud_list[HEALTH_HUD]
C.images += patient.hud_list[STATUS_HUD_OOC]
+
+/mob/dead/proc/process_secHUD(var/mob/M)
+ var/client/C = M.client
+ for(var/mob/living/carbon/human/target in oview(M, 14))
+ C.images += target.hud_list[IMPTRACK_HUD]
+ C.images += target.hud_list[IMPLOYAL_HUD]
+ C.images += target.hud_list[IMPCHEM_HUD]
/mob/dead/proc/assess_targets(list/target_list, mob/dead/observer/U)
var/client/C = U.client
@@ -258,7 +268,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
/mob/dead/observer/verb/toggle_medHUD()
set category = "Ghost"
set name = "Toggle MedicHUD"
- set desc = "Toggles Medical HUD allowing you to see how everyone is doing"
+ set desc = "Toggles the medical HUD."
if(!client)
return
if(medHUD)
@@ -450,14 +460,20 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
src << "\blue Heat Capacity: [round(environment.heat_capacity(),0.1)]"
-/mob/dead/observer/verb/toggle_darkness()
- set name = "Toggle Darkness"
+/mob/dead/observer/verb/toggle_sight()
+ set name = "Toggle Sight"
set category = "Ghost"
- if (see_invisible == SEE_INVISIBLE_OBSERVER_NOLIGHTING)
- see_invisible = SEE_INVISIBLE_OBSERVER
- else
- see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING
+ switch(see_invisible)
+ if(SEE_INVISIBLE_OBSERVER_AI_EYE)
+ see_invisible = SEE_INVISIBLE_OBSERVER_NOOBSERVERS
+ usr << "You no longer see other observers or the AI eye."
+ if(SEE_INVISIBLE_OBSERVER_NOOBSERVERS)
+ see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING
+ usr << "You no longer see darkness."
+ else
+ see_invisible = SEE_INVISIBLE_OBSERVER_AI_EYE
+ usr << "You again see everything."
/mob/dead/observer/verb/view_manfiest()
set name = "View Crew Manifest"
diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm
index 3d833c8de21..c2c23b02188 100644
--- a/code/modules/mob/living/silicon/ai/freelook/eye.dm
+++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm
@@ -1,17 +1,19 @@
// AI EYE
//
-// An invisible (no icon) mob that the AI controls to look around the station with.
+// A mob that the AI controls to look around the station with.
// It streams chunks as it moves around, which will show it what the AI can and cannot see.
/mob/aiEye
name = "Inactive AI Eye"
- icon = 'icons/obj/status_display.dmi' // For AI friend secret shh :o
+ icon = 'icons/mob/AI.dmi'
+ icon_state = "eye"
+ alpha = 127
var/mob/living/silicon/ai/ai = null
density = 0
status_flags = GODMODE // You can't damage it.
mouse_opacity = 0
see_in_dark = 7
- invisibility = INVISIBILITY_MAXIMUM
+ invisibility = INVISIBILITY_AI_EYE
/mob/aiEye/New()
..()
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index 3c8710caf1a..294e5859bb8 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -343,6 +343,7 @@
src.modules += new /obj/item/weapon/card/emag(src)
src.modules += new /obj/item/weapon/tank/jetpack/carbondioxide(src)
src.modules += new /obj/item/weapon/crowbar(src)
+ src.modules += new /obj/item/weapon/pinpointer/operative(src)
src.emag = null
return
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index acea2b9849c..9697509e5e1 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -1206,7 +1206,6 @@
update()
else if (last_ch != charging)
queue_icon_update()
- src.updateDialog()
// val 0=off, 1=off(auto) 2=on 3=on(auto)
// on 0=off, 1=on, 2=autooff
diff --git a/code/setup.dm b/code/setup.dm
index 8584fbf24b4..ce7ec7b3d02 100644
--- a/code/setup.dm
+++ b/code/setup.dm
@@ -596,8 +596,11 @@ var/list/liftable_structures = list(\
#define INVISIBILITY_SPIRIT 50
#define SEE_SPIRITS 50
+#define SEE_INVISIBLE_OBSERVER_NOOBSERVERS 59
#define INVISIBILITY_OBSERVER 60
#define SEE_INVISIBLE_OBSERVER 60
+#define INVISIBILITY_AI_EYE 61
+#define SEE_INVISIBLE_OBSERVER_AI_EYE 61
#define INVISIBILITY_MAXIMUM 100
diff --git a/icons/mob/AI.dmi b/icons/mob/AI.dmi
index b8cb5064aae..c13a97fa50d 100644
Binary files a/icons/mob/AI.dmi and b/icons/mob/AI.dmi differ
diff --git a/maps/cyberiad.dmm b/maps/cyberiad.dmm
index d718966739a..53bf50e7e66 100644
--- a/maps/cyberiad.dmm
+++ b/maps/cyberiad.dmm
@@ -236,7 +236,7 @@
"aeB" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/unary/vent_pump,/obj/effect/decal/warning_stripes/yellow/hollow,/obj/effect/decal/warning_stripes/northeastcorner,/turf/simulated/floor,/area/security/podbay)
"aeC" = (/obj/effect/decal/warning_stripes/north,/turf/simulated/floor,/area/security/podbay)
"aeD" = (/turf/simulated/floor{tag = "icon-stage_stairs"; icon_state = "stage_stairs"},/area/security/podbay)
-"aeE" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/table,/obj/item/device/modkit/unathi,/obj/item/device/modkit/tajaran,/obj/effect/decal/warning_stripes/north,/turf/simulated/floor,/area/security/podbay)
+"aeE" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/effect/decal/warning_stripes/north,/turf/simulated/floor,/area/security/podbay)
"aeF" = (/obj/effect/decal/warning_stripes/northwest,/turf/simulated/floor,/area/security/range)
"aeG" = (/obj/machinery/light{dir = 1; on = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/range)
"aeH" = (/obj/effect/decal/warning_stripes/northeast,/turf/simulated/floor,/area/security/range)
@@ -280,7 +280,7 @@
"aft" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/security/securearmoury)
"afu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/door/window/brigdoor{dir = 2; name = "Secure Armory"; req_access_txt = "3"},/obj/machinery/door/window/brigdoor{dir = 1; name = "Secure Armory"; req_access_txt = "3"},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "dark"},/area/security/securearmoury)
"afv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/security/securearmoury)
-"afw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/securehallway)
+"afw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/vending/eva,/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/securehallway)
"afx" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/securehallway)
"afy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/securehallway)
"afz" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/securehallway)
@@ -595,7 +595,7 @@
"alw" = (/obj/structure/reagent_dispensers/peppertank{pixel_y = -30},/obj/machinery/light,/turf/simulated/floor{icon_state = "red"},/area/security/main)
"alx" = (/obj/structure/closet/secure_closet/security,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{icon_state = "red"; dir = 6},/area/security/main)
"aly" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable,/turf/simulated/floor/plating,/area/security/main)
-"alz" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/structure/table/reinforced,/obj/item/stack/medical/bruise_pack{pixel_x = 10; pixel_y = 2},/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment{pixel_y = 4},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{name = "Security Office APC"; pixel_y = -24},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{dir = 2; icon_state = "redfull"; tag = "icon-redfull (NORTHWEST)"},/area/security/main)
+"alz" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/structure/table/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{name = "Security Office APC"; pixel_y = -24},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/item/stack/medical/advanced/bruise_pack,/turf/simulated/floor{dir = 2; icon_state = "redfull"; tag = "icon-redfull (NORTHWEST)"},/area/security/main)
"alA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = -32; req_access_txt = "0"},/turf/simulated/floor,/area/security/main)
"alB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/security/main)
"alC" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark/start{name = "Security Officer"},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor,/area/security/main)
@@ -3284,7 +3284,7 @@
"blh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/starboard/east)
"bli" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/power/apc{dir = 1; name = "Starboard Hall East APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/hallway/primary/starboard/east)
"blj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor,/area/hallway/primary/starboard/east)
-"blk" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/machinery/camera{c_tag = "Starboard Primary Hallway 6"; dir = 2; network = list("SS13")},/turf/simulated/floor,/area/hallway/primary/starboard/east)
+"blk" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/machinery/camera{c_tag = "Starboard Primary Hallway 7"; dir = 2; network = list("SS13")},/turf/simulated/floor,/area/hallway/primary/starboard/east)
"bll" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/starboard/east)
"blm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor{dir = 4; icon_state = "whitecorner"},/area/hallway/secondary/exit)
"bln" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/secondary/exit)
@@ -3405,7 +3405,7 @@
"bny" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/starboard/west)
"bnz" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/primary/starboard/east)
"bnA" = (/obj/machinery/light,/turf/simulated/floor,/area/hallway/primary/starboard/east)
-"bnB" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/camera{c_tag = "Starboard Primary Hallway 5"; dir = 1; network = list("SS13")},/turf/simulated/floor,/area/hallway/primary/starboard/east)
+"bnB" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/camera{c_tag = "Starboard Primary Hallway 6"; dir = 1; network = list("SS13")},/turf/simulated/floor,/area/hallway/primary/starboard/east)
"bnC" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -29; pixel_y = -29},/turf/simulated/floor,/area/hallway/primary/starboard/east)
"bnD" = (/obj/machinery/light,/turf/simulated/floor{dir = 2; icon_state = "purple"},/area/hallway/primary/starboard/east)
"bnE" = (/turf/simulated/floor{dir = 2; icon_state = "purple"},/area/hallway/primary/starboard/east)
@@ -3703,7 +3703,7 @@
"btk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry)
"btl" = (/obj/structure/table/reinforced,/obj/item/weapon/hand_labeler,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the 'Space' from Space Cleaner and written in Chemistry. Scrawled on the back is, 'Okay, whoever filled this with polytrinic acid, it was only funny the first time. It was hard enough replacing the CMO's first cat!'"; name = "Chemistry Cleaner"},/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry)
"btm" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/airless{icon_state = "white"},/area/medical/reception)
-"btn" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera{c_tag = "Medbay Psych Office Corridor"; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2)
+"btn" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera{c_tag = "Medbay Psych Office Corridor West"; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2)
"bto" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2)
"btp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/disposalpipe/segment,/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2)
"btq" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/apmaint)
@@ -5418,7 +5418,7 @@
"caj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2)
"cak" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2)
"cal" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2)
-"cam" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/power/apc{dir = 2; name = "Medbay APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2)
+"cam" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/power/apc{dir = 2; name = "Medbay APC"; pixel_y = -24},/obj/structure/cable,/obj/machinery/camera{c_tag = "Medbay Psych Office Corridor East"; dir = 1; network = list("SS13")},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2)
"can" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2)
"cao" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/light/small{dir = 4},/obj/machinery/vending/medical,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2)
"cap" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
@@ -6704,7 +6704,7 @@
"cyV" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow{dir = 1; level = 2},/turf/simulated/floor,/area/atmos)
"cyW" = (/obj/machinery/atmospherics/pipe/simple/visible/green{level = 2},/obj/machinery/atmospherics/binary/pump{dir = 8; name = "N2O to Pure"; on = 0},/turf/simulated/floor,/area/atmos)
"cyX" = (/obj/machinery/atmospherics/valve/digital{color = ""; dir = 4; name = "N2O Outlet Valve"},/turf/simulated/floor{icon_state = "escape"; dir = 5},/area/atmos)
-"cyY" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = "n2o_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/obj/machinery/bot/secbot/buzzsky,/turf/simulated/floor/engine,/area/atmos)
+"cyY" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = "n2o_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine,/area/atmos)
"cyZ" = (/turf/simulated/floor/engine,/area/atmos)
"cza" = (/obj/machinery/light,/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{dir = 10; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/virology/lab)
"czb" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/light,/obj/machinery/camera{c_tag = "Virology Decontamination West"; dir = 1; network = list("SS13")},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/structure/sign/biohazard{pixel_x = 0; pixel_y = -32},/turf/simulated/floor{dir = 6; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/virology/lab)
@@ -6898,7 +6898,7 @@
"cCH" = (/turf/simulated/floor/plating/airless,/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk3"; icon_state = "catwalk3"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk0"; icon_state = "catwalk0"},/area/solar/starboard)
"cCI" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk1"; icon_state = "catwalk1"},/area/solar/port)
"cCJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering)
-"cCK" = (/obj/machinery/door/airlock/maintenance{name = "Engineering Shuttle"; req_access_txt = "10;24"; req_one_access_txt = null},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle)
+"cCK" = (/obj/machinery/door/airlock/maintenance{name = "Engineering Shuttle"; req_access_txt = "0"; req_one_access_txt = "10;24"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle)
"cCL" = (/obj/structure/table,/turf/simulated/floor/plating,/area/maintenance/engi_shuttle)
"cCM" = (/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Engineering Shuttle Access APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle)
"cCN" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor,/area/engine/engineering)
@@ -7064,7 +7064,7 @@
"cFR" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering)
"cFS" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering)
"cFT" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/machinery/door/airlock/external{name = "Engineering Escape Pod"; req_access = null; req_access_txt = "10"},/turf/simulated/floor/plating,/area/engine/engineering)
-"cFU" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor,/area/atmos)
+"cFU" = (/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor,/area/atmos)
"cFV" = (/obj/machinery/portable_atmospherics/pump,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/atmos)
"cFW" = (/obj/machinery/atmospherics/binary/pump{dir = 0; name = "Port to Filter"; on = 0},/turf/simulated/floor,/area/atmos)
"cFX" = (/obj/machinery/camera{c_tag = "Atmospherics Central"; dir = 8; network = list("SS13")},/turf/simulated/floor,/area/atmos)
@@ -7561,6 +7561,7 @@
"cPu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/research_outpost/gearstore)
"cPv" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
"cPw" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/autoinjectors,/obj/item/weapon/storage/box/gloves,/obj/item/weapon/storage/firstaid/adv,/obj/item/bodybag/cryobag,/obj/item/weapon/reagent_containers/hypospray/CMO,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops)
+"cPx" = (/obj/machinery/bot/secbot/buzzsky,/turf/simulated/floor,/area/derelict/bridge)
"cPy" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/effect/decal/warning_stripes/north,/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/aisat/maintenance)
"cPz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/effect/decal/warning_stripes/northwestcorner,/turf/simulated/floor,/area/aisat/maintenance)
"cPA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor,/area/aisat/maintenance)
@@ -13906,7 +13907,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabesuesuesuesueszesuesAesuesBesCesDesuesuesuesuesuesuaabaabaaaaaaaaaaaaaaaespaaaaaaaaaaaiaaiaaierRerUerUerYerUerUesEesFesGesHesIesJesKesHesLesMcLOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaesuesuesuesNesOesPesQesNesCesResResSesResNesPesNesuesuesuaabaaaaaaaaaaaaaaaaaaaaaespaaaaaaaaaaaaerResqerUesrerUerUesEesTesTesUesTesTesTesTesVesWcLOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaesuesuesXesYesZetaesZesNetbesBetcesResSetdesNesNesNeteetfesuaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaerResveswetgesvesvethesTesTesUesTesTesTesUesTetietjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaesuesuetketketketketlesRetmesuesSetnesuesRetoesPetoetoesResuaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaerRerUesgetperUerUetqesTesTesTesTetresTesTetsettcLOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaesuesuetketketketketlesRetmesuesSetnesuesRetoesPetoetoesResuaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaerRerUesgetperUerUetqesTesTcPxesTetresTesTetsettcLOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaesuesuesRetoetoetoetuesOesNetvetoesRetoetoesNesOesOetoetoesuaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaberRerUerUetwetxetyetzetAetAetBetCesUesTesTesTeticLOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabesuesuetoesOesPesNetDesNesPesNesResRetoesNesNesNesNesPesNesuaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaberRerUerUetperUerUetEesHesHesTetFetGesTetGetHesWaacetIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabesuesuesNesPesNetJetKetLetMesRetNesResRetOetPetQetoesOesPesuaaiaabaaaaaaaaaaaaaaaespaaaaaaaabaabaaberRerRerRerYerRerUesEetRetSetTetUetVesFesFesHesWetjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/nano/templates/air_alarm.tmpl b/nano/templates/air_alarm.tmpl
index 4f4b425cbb0..5d5437390f5 100644
--- a/nano/templates/air_alarm.tmpl
+++ b/nano/templates/air_alarm.tmpl
@@ -127,24 +127,24 @@ Used In File(s): /code/game/machinery/alarm.dm
{{for data.vents}}