From e1aa20fda50c704cad54f1b54283530653a591f3 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Sat, 22 Aug 2015 12:03:20 +0200 Subject: [PATCH 1/6] Radio changes. Removes the radio free range option. Instead all users can move within the standard radio frequency range, while authorized users can also select department channels. --- code/_helpers/unsorted.dm | 6 +- code/controllers/communications.dm | 38 ++++++----- code/game/antagonist/station/traitor.dm | 2 +- code/game/jobs/access_datum.dm | 6 ++ code/game/machinery/telecomms/broadcaster.dm | 12 +--- code/game/machinery/telecomms/presets.dm | 6 +- code/game/mecha/mecha.dm | 2 +- code/game/objects/items/devices/PDA/radio.dm | 2 +- .../objects/items/devices/radio/headset.dm | 3 +- .../objects/items/devices/radio/intercom.dm | 8 +-- .../game/objects/items/devices/radio/radio.dm | 24 ++++--- code/modules/assembly/signaler.dm | 2 +- .../living/silicon/pai/software_modules.dm | 2 +- maps/exodus-1.dmm | 64 +++++++++---------- maps/exodus-2.dmm | 26 ++++---- maps/exodus-3.dmm | 2 +- maps/exodus-5.dmm | 10 +-- 17 files changed, 106 insertions(+), 109 deletions(-) diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index 366fcbbbc10..85f1c2e1df1 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -243,10 +243,10 @@ Turf and target are seperate in case you want to teleport some distance from a t return 1 //Ensure the frequency is within bounds of what it should be sending/recieving at -/proc/sanitize_frequency(var/f) +/proc/sanitize_frequency(var/f, var/low = PUBLIC_LOW_FREQ, var/high = PUBLIC_HIGH_FREQ) f = round(f) - f = max(1441, f) // 144.1 - f = min(1489, f) // 148.9 + f = max(high, f) + f = min(low, f) if ((f % 2) == 0) //Ensure the last digit is an odd number f += 1 return f diff --git a/code/controllers/communications.dm b/code/controllers/communications.dm index c1594665a1b..6412cf711f1 100644 --- a/code/controllers/communications.dm +++ b/code/controllers/communications.dm @@ -97,11 +97,16 @@ On the map: 1455 for AI access */ -var/const/BOT_FREQ = 1447 +var/const/RADIO_LOW_FREQ = 1200 +var/const/PUBLIC_LOW_FREQ = 1441 +var/const/PUBLIC_HIGH_FREQ = 1489 +var/const/RADIO_HIGH_FREQ = 1600 + +var/const/BOT_FREQ = 1447 var/const/COMM_FREQ = 1353 -var/const/ERT_FREQ = 1345 -var/const/AI_FREQ = 1343 -var/const/DTH_FREQ = 1341 +var/const/ERT_FREQ = 1345 +var/const/AI_FREQ = 1343 +var/const/DTH_FREQ = 1341 var/const/SYND_FREQ = 1213 // department channels @@ -134,8 +139,8 @@ var/list/CENT_FREQS = list(ERT_FREQ, DTH_FREQ) // Antag channels, i.e. Syndicate var/list/ANTAG_FREQS = list(SYND_FREQ) -//depenging helpers -var/list/DEPT_FREQS = list(SCI_FREQ, MED_FREQ, ENG_FREQ, SEC_FREQ, SUP_FREQ, SRV_FREQ, ERT_FREQ, SYND_FREQ, DTH_FREQ) +//Department channels, arranged lexically +var/list/DEPT_FREQS = list(AI_FREQ, ENG_FREQ, MED_FREQ, SEC_FREQ, SCI_FREQ, SRV_FREQ, SUP_FREQ) #define TRANSMISSION_WIRE 0 #define TRANSMISSION_RADIO 1 @@ -145,29 +150,28 @@ var/list/DEPT_FREQS = list(SCI_FREQ, MED_FREQ, ENG_FREQ, SEC_FREQ, SUP_FREQ, SRV if (frequency in ANTAG_FREQS) return "syndradio" // centcomm channels (deathsquid and ert) - else if(frequency in CENT_FREQS) + if(frequency in CENT_FREQS) return "centradio" // command channel - else if(frequency == COMM_FREQ) + if(frequency == COMM_FREQ) return "comradio" // AI private channel - else if(frequency == AI_FREQ) + if(frequency == AI_FREQ) return "airadio" // department radio formatting (poorly optimized, ugh) - else if(frequency == SEC_FREQ) + if(frequency == SEC_FREQ) return "secradio" - else if (frequency == ENG_FREQ) + if (frequency == ENG_FREQ) return "engradio" - else if(frequency == SCI_FREQ) + if(frequency == SCI_FREQ) return "sciradio" - else if(frequency == MED_FREQ) + if(frequency == MED_FREQ) return "medradio" - else if(frequency == SUP_FREQ) // cargo + if(frequency == SUP_FREQ) // cargo return "supradio" - else if(frequency == SRV_FREQ) // service + if(frequency == SRV_FREQ) // service return "srvradio" - // If all else fails and it's a dept_freq, color me purple! - else if(frequency in DEPT_FREQS) + if(frequency in DEPT_FREQS) return "deptradio" return "radio" diff --git a/code/game/antagonist/station/traitor.dm b/code/game/antagonist/station/traitor.dm index a4f14dccf8e..35f55692f81 100644 --- a/code/game/antagonist/station/traitor.dm +++ b/code/game/antagonist/station/traitor.dm @@ -141,7 +141,7 @@ var/datum/antagonist/traitor/traitors var/obj/item/device/radio/target_radio = R var/freq = 1441 var/list/freqlist = list() - while (freq <= 1489) + while (freq <= PUBLIC_HIGH_FREQ) if (freq < 1451 || freq > PUB_FREQ) freqlist += freq freq += 2 diff --git a/code/game/jobs/access_datum.dm b/code/game/jobs/access_datum.dm index 5e1cb90f1f2..7292f23d4b5 100644 --- a/code/game/jobs/access_datum.dm +++ b/code/game/jobs/access_datum.dm @@ -447,6 +447,12 @@ /******* * Misc * *******/ +/var/const/access_synth = 199 +/datum/access/synthetic + id = access_synth + desc = "Synthetic" + access_type = ACCESS_TYPE_NONE + /var/const/access_crate_cash = 200 /datum/access/crate_cash id = access_crate_cash diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm index 820d09045b8..90f36d3742e 100644 --- a/code/game/machinery/telecomms/broadcaster.dm +++ b/code/game/machinery/telecomms/broadcaster.dm @@ -518,7 +518,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept if (length(heard_normal) || length(heard_garbled) || length(heard_gibberish)) /* --- Some miscellaneous variables to format the string output --- */ - var/part_a = "" // goes in the actual output + var/part_a = "" // goes in the actual output var/freq_text = get_frequency_name(display_freq) // --- Some more pre-message formatting --- @@ -533,16 +533,6 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept var/part_b = " \icon[radio]\[[freq_text]\][part_b_extra] " // Tweaked for security headsets -- TLE var/part_c = "" - part_a = "" - // --- This following recording is intended for research and feedback in the use of department radio channels --- var/part_blackbox_b = " \[[freq_text]\] " // Tweaked for security headsets -- TLE diff --git a/code/game/machinery/telecomms/presets.dm b/code/game/machinery/telecomms/presets.dm index dcb555b7552..ca35f592360 100644 --- a/code/game/machinery/telecomms/presets.dm +++ b/code/game/machinery/telecomms/presets.dm @@ -60,7 +60,7 @@ //Common and other radio frequencies for people to freely use New() - for(var/i = 1441, i < 1489, i += 2) + for(var/i = PUBLIC_LOW_FREQ, i < PUBLIC_HIGH_FREQ, i += 2) freq_listening |= i ..() @@ -87,7 +87,7 @@ autolinkers = list("processor2", "supply", "service", "unused") /obj/machinery/telecomms/bus/preset_two/New() - for(var/i = 1441, i < 1489, i += 2) + for(var/i = PUBLIC_LOW_FREQ, i < PUBLIC_HIGH_FREQ, i += 2) if(i == PUB_FREQ) continue freq_listening |= i @@ -178,7 +178,7 @@ autolinkers = list("unused") /obj/machinery/telecomms/server/presets/unused/New() - for(var/i = 1441, i < 1489, i += 2) + for(var/i = PUBLIC_LOW_FREQ, i < PUBLIC_HIGH_FREQ, i += 2) if(i == AI_FREQ || i == PUB_FREQ) continue freq_listening |= i diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 573ede3fb0f..270227a2fc5 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -1455,7 +1455,7 @@ if(href_list["rfreq"]) if(usr != src.occupant) return var/new_frequency = (radio.frequency + filter.getNum("rfreq")) - if (!radio.freerange || (radio.frequency < 1200 || radio.frequency > 1600)) + if ((radio.frequency < PUBLIC_LOW_FREQ || radio.frequency > PUBLIC_HIGH_FREQ)) new_frequency = sanitize_frequency(new_frequency) radio.set_frequency(new_frequency) send_byjax(src.occupant,"exosuit.browser","rfreq","[format_frequency(radio.frequency)]") diff --git a/code/game/objects/items/devices/PDA/radio.dm b/code/game/objects/items/devices/PDA/radio.dm index 94fb81fc77c..7ad2b002009 100644 --- a/code/game/objects/items/devices/PDA/radio.dm +++ b/code/game/objects/items/devices/PDA/radio.dm @@ -221,7 +221,7 @@ if(!radio_controller) return - if (src.frequency < 1441 || src.frequency > 1489) + if (src.frequency < PUBLIC_LOW_FREQ || src.frequency > PUBLIC_HIGH_FREQ) src.frequency = sanitize_frequency(src.frequency) set_frequency(frequency) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 43a4c5bf568..8323145e88f 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -13,7 +13,6 @@ var/translate_hive = 0 var/obj/item/device/encryptionkey/keyslot1 = null var/obj/item/device/encryptionkey/keyslot2 = null - maxf = 1489 var/ks1type = /obj/item/device/encryptionkey var/ks2type = null @@ -209,8 +208,8 @@ desc = "The headset of the boss's boss." icon_state = "com_headset" item_state = "headset" - freerange = 1 ks2type = /obj/item/device/encryptionkey/ert + req_access = list(access_cent_general) /obj/item/device/radio/headset/ia name = "internal affair's headset" diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 1abccb5e77d..647583b5c1c 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -69,8 +69,8 @@ icon_state = "intercom" /obj/item/device/radio/intercom/locked - freerange = 1 var/locked_frequency - -/obj/item/device/radio/intercom/locked/set_frequency() - ..(locked_frequency) + +/obj/item/device/radio/intercom/locked/set_frequency(var/frequency) + if(frequency == locked_frequency) + ..(locked_frequency) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 0353c25f59a..3b5f3e54111 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -4,6 +4,8 @@ suffix = "\[3\]" icon_state = "walkietalkie" item_state = "walkietalkie" + req_access = list(access_synth) + var/on = 1 // 0 for off var/last_transmission var/frequency = PUB_FREQ //common chat @@ -14,11 +16,9 @@ var/b_stat = 0 var/broadcasting = 0 var/listening = 1 - var/freerange = 0 // 0 - Sanitize frequencies, 1 - Full range var/list/channels = list() //see communications.dm for full list. First channes is a "default" for :h var/subspace_transmission = 0 - var/syndie = 0//Holder to see if it's a syndicate encrpyed radio - var/maxf = 1499 + var/syndie = 0//Holder to see if it's a syndicate encrypted radio // "Example" = FREQ_LISTENING|FREQ_BROADCASTING flags = CONDUCT slot_flags = SLOT_BELT @@ -55,14 +55,8 @@ /obj/item/device/radio/initialize() - if(freerange) - if(frequency < 1200 || frequency > 1600) - frequency = sanitize_frequency(frequency, maxf) - // The max freq is higher than a regular headset to decrease the chance of people listening in, if you use the higher channels. - else if (frequency < 1441 || frequency > maxf) - //world.log << "[src] ([type]) has a frequency of [frequency], sanitizing." - frequency = sanitize_frequency(frequency, maxf) - + if(frequency < RADIO_LOW_FREQ || frequency > RADIO_HIGH_FREQ) + frequency = sanitize_frequency(frequency, RADIO_LOW_FREQ, RADIO_HIGH_FREQ) set_frequency(frequency) for (var/ch_name in channels) @@ -97,6 +91,10 @@ for (var/ch_name in channels) dat+=text_sec_channel(ch_name, channels[ch_name]) + + if(allowed(user)) + dat+= "Channel Name: [(frequency in DEPT_FREQS) ? get_frequency_name(frequency) : "Unknown"]
" + dat+={"[text_wires()]"} user << browse(dat, "window=radio") onclose(user, "radio") @@ -136,8 +134,8 @@ else if (href_list["freq"]) var/new_frequency = (frequency + text2num(href_list["freq"])) - if (!freerange || (frequency < 1200 || frequency > 1600)) - new_frequency = sanitize_frequency(new_frequency, maxf) + if ((frequency < RADIO_LOW_FREQ || frequency > RADIO_HIGH_FREQ) || !allowed(usr)) + new_frequency = sanitize_frequency(new_frequency) set_frequency(new_frequency) if(hidden_uplink) if(hidden_uplink.check_trigger(usr, frequency, traitor_frequency)) diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 5a6faa7fe90..18bb1b6f1f1 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -79,7 +79,7 @@ if (href_list["freq"]) var/new_frequency = (frequency + text2num(href_list["freq"])) - if(new_frequency < 1200 || new_frequency > 1600) + if(new_frequency < PUBLIC_LOW_FREQ || new_frequency > PUBLIC_HIGH_FREQ) new_frequency = sanitize_frequency(new_frequency) set_frequency(new_frequency) diff --git a/code/modules/mob/living/silicon/pai/software_modules.dm b/code/modules/mob/living/silicon/pai/software_modules.dm index f7434ebe915..52c075552db 100644 --- a/code/modules/mob/living/silicon/pai/software_modules.dm +++ b/code/modules/mob/living/silicon/pai/software_modules.dm @@ -510,7 +510,7 @@ else if(href_list["freq"]) var/new_frequency = (P.sradio.frequency + text2num(href_list["freq"])) - if(new_frequency < 1200 || new_frequency > 1600) + if(new_frequency < PUBLIC_LOW_FREQ || new_frequency > PUBLIC_HIGH_FREQ) new_frequency = sanitize_frequency(new_frequency) P.sradio.set_frequency(new_frequency) return 1 diff --git a/maps/exodus-1.dmm b/maps/exodus-1.dmm index 4a52a10c812..b1cda29a4ca 100644 --- a/maps/exodus-1.dmm +++ b/maps/exodus-1.dmm @@ -87,7 +87,7 @@ "abI" = (/obj/machinery/light,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/security/range) "abJ" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled,/area/security/range) "abK" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled,/area/security/range) -"abL" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1475; listening = 1; name = "Station Intercom (Security)"; pixel_x = 0; pixel_y = 22},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/tiled,/area/security/range) +"abL" = (/obj/item/device/radio/intercom{broadcasting = 0; frequency = 1475; listening = 1; name = "Station Intercom (Security)"; pixel_x = 0; pixel_y = 22},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/tiled,/area/security/range) "abM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/security/range) "abN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/maintenance/security_starboard) "abO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/security_starboard) @@ -239,7 +239,7 @@ "aeE" = (/obj/structure/bed/chair/office/dark{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/security/main) "aeF" = (/turf/simulated/wall,/area/security/warden) "aeG" = (/obj/structure/table/standard,/obj/item/weapon/book/manual/security_space_law,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/security/main) -"aeH" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1475; listening = 1; name = "Station Intercom (Security)"; pixel_x = 30; pixel_y = 0},/obj/machinery/camera/network/security{c_tag = "Security - Briefing"; dir = 8},/obj/effect/floor_decal/corner/red{dir = 4},/turf/simulated/floor/tiled,/area/security/main) +"aeH" = (/obj/item/device/radio/intercom{broadcasting = 0; frequency = 1475; listening = 1; name = "Station Intercom (Security)"; pixel_x = 30; pixel_y = 0},/obj/machinery/camera/network/security{c_tag = "Security - Briefing"; dir = 8},/obj/effect/floor_decal/corner/red{dir = 4},/turf/simulated/floor/tiled,/area/security/main) "aeI" = (/obj/structure/bed/chair/office/dark{dir = 8},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/security/main) "aeJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable/green,/turf/simulated/floor/plating,/area/security/main) "aeK" = (/obj/machinery/deployable/barrier,/obj/structure/sign/securearea{name = "\improper ARMORY"; pixel_y = 32},/obj/machinery/camera/network/security{c_tag = "Armoury"},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/security/warden) @@ -330,7 +330,7 @@ "agr" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_3_hatch"; locked = 1; name = "Escape Pod Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod3/station) "ags" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod{frequency = 1380; id_tag = "escape_pod_3"; pixel_x = 0; pixel_y = -25; tag_door = "escape_pod_3_hatch"},/obj/machinery/light/small{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod3/station) "agt" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/tiled,/area/security/main) -"agu" = (/obj/machinery/light{dir = 8},/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1475; listening = 0; name = "Station Intercom (Security)"; pixel_x = -30; pixel_y = 0},/turf/simulated/floor/tiled,/area/security/main) +"agu" = (/obj/machinery/light{dir = 8},/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1475; listening = 0; name = "Station Intercom (Security)"; pixel_x = -30; pixel_y = 0},/turf/simulated/floor/tiled,/area/security/main) "agv" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/hos) "agw" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/security_starboard) "agx" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Prison Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access = list(1)},/turf/simulated/floor/plating,/area/security/brig) @@ -464,7 +464,7 @@ "aiV" = (/obj/structure/closet{name = "Evidence Closet"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/dark,/area/security/brig) "aiW" = (/obj/structure/table/standard,/obj/item/weapon/folder/red{pixel_x = 2; pixel_y = 4},/obj/item/weapon/pen,/obj/item/weapon/hand_labeler,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/camera/network/security{c_tag = "Security - Evidence Storage"; dir = 8},/turf/simulated/floor/tiled/dark,/area/security/brig) "aiX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/security/brig) -"aiY" = (/obj/structure/table/standard,/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1475; listening = 0; name = "Station Intercom (Security)"; pixel_x = -30; pixel_y = 0},/obj/item/weapon/hand_labeler,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/security/brig) +"aiY" = (/obj/structure/table/standard,/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1475; listening = 0; name = "Station Intercom (Security)"; pixel_x = -30; pixel_y = 0},/obj/item/weapon/hand_labeler,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/security/brig) "aiZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/security/brig) "aja" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/evidence,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/security/brig) "ajb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled,/area/security/brig) @@ -476,7 +476,7 @@ "ajh" = (/obj/machinery/computer/prisoner,/turf/simulated/floor/tiled/dark,/area/security/warden) "aji" = (/obj/structure/table/standard,/obj/item/weapon/book/manual/security_space_law{pixel_x = -3; pixel_y = 5},/turf/simulated/floor/tiled/dark,/area/security/warden) "ajj" = (/obj/structure/table/rack,/obj/item/weapon/crowbar,/obj/item/device/radio/off,/obj/item/weapon/wrench,/turf/simulated/floor/tiled/dark,/area/security/warden) -"ajk" = (/obj/structure/closet/secure_closet/warden,/obj/item/device/megaphone,/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1475; listening = 1; name = "Station Intercom (Security)"; pixel_x = 30; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/dark,/area/security/warden) +"ajk" = (/obj/structure/closet/secure_closet/warden,/obj/item/device/megaphone,/obj/item/device/radio/intercom{broadcasting = 0; frequency = 1475; listening = 1; name = "Station Intercom (Security)"; pixel_x = 30; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/dark,/area/security/warden) "ajl" = (/obj/machinery/light/small{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/security_port) "ajm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/corner/red{dir = 8},/turf/simulated/floor/tiled,/area/security/main) "ajn" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/camera/network/security{c_tag = "Security - Equipment South"; dir = 4},/obj/effect/floor_decal/corner/red{dir = 8},/turf/simulated/floor/tiled,/area/security/main) @@ -867,7 +867,7 @@ "aqI" = (/obj/structure/bed/chair/office/light,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/security/detectives_office) "aqJ" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "dorm_pump"},/obj/machinery/light/small{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/plating,/area/maintenance/dormitory) "aqK" = (/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "dorm_sensor"; pixel_x = 25; pixel_y = -8},/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/plating,/area/maintenance/dormitory) -"aqL" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/camera/network/security{c_tag = "Security - Brig West"; dir = 4},/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/tiled,/area/security/brig) +"aqL" = (/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/camera/network/security{c_tag = "Security - Brig West"; dir = 4},/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/tiled,/area/security/brig) "aqM" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/obj/machinery/librarycomp{pixel_y = 0},/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/security/prison) "aqN" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/security/prison) "aqO" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/security/prison) @@ -968,7 +968,7 @@ "asF" = (/obj/machinery/light{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/plating,/area/maintenance/dormitory) "asG" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/effect/decal/cleanable/cobweb2,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/plating,/area/maintenance/dormitory) "asH" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "dorm_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = 25; req_access = list(13)},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/plating,/area/maintenance/dormitory) -"asI" = (/obj/structure/table/standard,/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1475; listening = 0; name = "Station Intercom (Security)"; pixel_x = 0; pixel_y = -30},/obj/item/device/radio/headset,/obj/item/device/radio/headset,/obj/item/device/radio/headset,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/corner/red/full,/turf/simulated/floor/tiled,/area/security/brig) +"asI" = (/obj/structure/table/standard,/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1475; listening = 0; name = "Station Intercom (Security)"; pixel_x = 0; pixel_y = -30},/obj/item/device/radio/headset,/obj/item/device/radio/headset,/obj/item/device/radio/headset,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/corner/red/full,/turf/simulated/floor/tiled,/area/security/brig) "asJ" = (/obj/item/device/radio/intercom{pixel_x = 30},/obj/machinery/door_timer/cell_1{pixel_x = 32; pixel_y = -32},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/simulated/floor/tiled,/area/security/brig) "asK" = (/obj/structure/bed/padded,/obj/machinery/flasher{id = "Cell 1"; pixel_x = 0; pixel_y = -28},/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/tiled,/area/security/prison) "asL" = (/obj/machinery/portable_atmospherics/powered/scrubber/huge,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/security/brig) @@ -1641,7 +1641,7 @@ "aFC" = (/turf/simulated/wall,/area/maintenance/substation/civilian_west) "aFD" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plating,/area/maintenance/arrivals) "aFE" = (/obj/structure/sign/biohazard{pixel_x = 32},/obj/structure/closet/wardrobe/xenos,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/dark,/area/gateway) -"aFF" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/table/reinforced,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva) +"aFF" = (/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/table/reinforced,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva) "aFG" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva) "aFH" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_command{name = "E.V.A."; req_one_access = list(18)},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva) "aFI" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/dark,/area/ai_monitored/storage/eva) @@ -1696,7 +1696,7 @@ "aGF" = (/turf/simulated/wall,/area/chapel/office) "aGG" = (/turf/simulated/wall,/area/chapel/main) "aGH" = (/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) -"aGI" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/machinery/vending/cola,/turf/simulated/floor/tiled/dark,/area/gateway) +"aGI" = (/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/machinery/vending/cola,/turf/simulated/floor/tiled/dark,/area/gateway) "aGJ" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/landmark{name = "blobstart"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/library) "aGK" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled,/area/gateway) "aGL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/library) @@ -2798,7 +2798,7 @@ "bbP" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/plating,/area/maintenance/locker) "bbQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/plating,/area/maintenance/locker) "bbR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/central_one) -"bbS" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/turf/simulated/floor/tiled,/area/hallway/primary/central_one) +"bbS" = (/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/turf/simulated/floor/tiled,/area/hallway/primary/central_one) "bbT" = (/obj/machinery/light,/obj/machinery/camera/network/exodus{c_tag = "Bridge West Entrance"; dir = 1},/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/central_one) "bbU" = (/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled,/area/hallway/primary/central_one) "bbV" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/corner/blue/full{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_one) @@ -2985,7 +2985,7 @@ "bfu" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/wood,/area/bridge/meeting_room) "bfv" = (/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bfw" = (/obj/machinery/camera/network/civilian_east{c_tag = "Bar South"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bfx" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/aft) +"bfx" = (/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/aft) "bfy" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/light/small,/obj/machinery/camera/network/civilian_east{c_tag = "Library South"; dir = 1},/turf/simulated/floor/wood,/area/library) "bfz" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable/green,/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bfA" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/aft) @@ -3209,12 +3209,12 @@ "bjK" = (/obj/machinery/light/small{dir = 4},/obj/machinery/porta_turret{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bjL" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/bridge/meeting_room) "bjM" = (/obj/structure/reagent_dispensers/water_cooler,/turf/simulated/floor/wood,/area/bridge/meeting_room) -"bjN" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = 20},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1343; name = "Private Channel"; pixel_x = 0; pixel_y = -26},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 1; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = -25; pixel_y = -4},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"bjN" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = 20},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; frequency = 1343; name = "Private Channel"; pixel_x = 0; pixel_y = -26},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 1; listening = 1; name = "Common Channel"; pixel_x = -25; pixel_y = -4},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bjO" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/wall,/area/maintenance/locker) "bjP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/starboard) "bjQ" = (/obj/machinery/camera/network/exodus{c_tag = "Primary Hallway Starboard - Central East"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/starboard) "bjR" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/effect/floor_decal/corner/red,/turf/simulated/floor/tiled,/area/hallway/secondary/exit) -"bjS" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = 19},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1343; name = "Private Channel"; pixel_x = 0; pixel_y = -26},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 1; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = 27; pixel_y = -3},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"bjS" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = 19},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; frequency = 1343; name = "Private Channel"; pixel_x = 0; pixel_y = -26},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 1; listening = 1; name = "Common Channel"; pixel_x = 27; pixel_y = -3},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bjT" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/wood,/area/crew_quarters/captain) "bjU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/captain) "bjV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "heads_meeting"; name = "Meeting Room Window Shutters"; opacity = 0},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/bridge/meeting_room) @@ -3259,7 +3259,7 @@ "bkI" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/corner/purple{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/starboard) "bkJ" = (/obj/machinery/light{dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/aft) "bkK" = (/obj/machinery/door/window{dir = 4; name = "AI Core Door"; req_access = list(16)},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bkL" = (/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1343; name = "Private Channel"; pixel_x = 28; pixel_y = 5},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_x = -27; pixel_y = 4},/obj/effect/landmark/start{name = "AI"},/obj/item/device/radio/intercom{broadcasting = 1; freerange = 1; listening = 1; name = "Common Channel"; pixel_y = 25},/obj/machinery/newscaster/security_unit{pixel_x = 32; pixel_y = 32},/obj/machinery/requests_console{department = "AI"; departmentType = 5; pixel_x = -32; pixel_y = 32},/obj/structure/cable/cyan{d2 = 2; icon_state = "0-2"},/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for the AI core maintenance door."; id = "AICore"; name = "AI Maintenance Hatch"; pixel_x = 17; pixel_y = 25; req_access = list(109)},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"bkL" = (/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; frequency = 1343; name = "Private Channel"; pixel_x = 28; pixel_y = 5},/obj/item/device/radio/intercom{anyai = 1; listening = 0; name = "Custom Channel"; pixel_x = -27; pixel_y = 4},/obj/effect/landmark/start{name = "AI"},/obj/item/device/radio/intercom{broadcasting = 1; listening = 1; name = "Common Channel"; pixel_y = 25},/obj/machinery/newscaster/security_unit{pixel_x = 32; pixel_y = 32},/obj/machinery/requests_console{department = "AI"; departmentType = 5; pixel_x = -32; pixel_y = 32},/obj/structure/cable/cyan{d2 = 2; icon_state = "0-2"},/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for the AI core maintenance door."; id = "AICore"; name = "AI Maintenance Hatch"; pixel_x = 17; pixel_y = 25; req_access = list(109)},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bkM" = (/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "AI Core Door"; req_access = list(16)},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bkN" = (/obj/structure/table/woodentable,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/camera/network/command{c_tag = "Bridge - Captain's Office"; dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/captain) "bkO" = (/obj/machinery/door/airlock{name = "Unit 4"},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/locker/locker_toilet) @@ -3457,7 +3457,7 @@ "boy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "boz" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "boA" = (/obj/item/weapon/stool,/turf/simulated/floor/plating,/area/maintenance/disposal) -"boB" = (/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; listening = 1; name = "Captain's Intercom"; pixel_x = -27; pixel_y = -3},/obj/structure/closet/secure_closet/captains,/turf/simulated/floor/wood,/area/crew_quarters/captain) +"boB" = (/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; listening = 1; name = "Captain's Intercom"; pixel_x = -27; pixel_y = -3},/obj/structure/closet/secure_closet/captains,/turf/simulated/floor/wood,/area/crew_quarters/captain) "boC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/crew_quarters/captain) "boD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/aft) "boE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/aft) @@ -3520,7 +3520,7 @@ "bpJ" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 6},/obj/item/device/mass_spectrometer/adv,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/machinery/button/remote/blast_door{id = "chemwindow"; name = "Pharmacy Windows Shutter Control"; pixel_x = -22; pixel_y = -10; pixel_z = 0},/obj/structure/table/glass,/turf/simulated/floor/tiled/white,/area/medical/chemistry) "bpK" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/tiled/white,/area/medical/chemistry) "bpL" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/chemistry) -"bpM" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 28},/obj/item/weapon/packageWrap,/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/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table/glass,/turf/simulated/floor/tiled/white,/area/medical/chemistry) +"bpM" = (/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = 28},/obj/item/weapon/packageWrap,/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/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table/glass,/turf/simulated/floor/tiled/white,/area/medical/chemistry) "bpN" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/medical/reception) "bpO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/cable/cyan{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/turret_protected/ai_upload) "bpP" = (/obj/effect/floor_decal/corner/paleblue{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/reception) @@ -3626,9 +3626,9 @@ "brL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/quartermaster/storage) "brM" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/computer/med_data/laptop,/obj/structure/table/standard{name = "plastic table frame"},/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled,/area/medical/reception) "brN" = (/obj/structure/filingcabinet/chestdrawer{name = "Medical Forms"},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/corner/paleblue/full{dir = 1},/turf/simulated/floor/tiled,/area/medical/reception) -"brO" = (/obj/machinery/door/window/northright{name = "Medbay Lobby"; req_access = list(5)},/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = 3},/obj/structure/table/standard{name = "plastic table frame"},/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled,/area/medical/reception) +"brO" = (/obj/machinery/door/window/northright{name = "Medbay Lobby"; req_access = list(5)},/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = 3},/obj/structure/table/standard{name = "plastic table frame"},/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled,/area/medical/reception) "brP" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/office) -"brQ" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/obj/effect/floor_decal/corner/paleblue{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/reception) +"brQ" = (/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/obj/effect/floor_decal/corner/paleblue{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/reception) "brR" = (/obj/structure/closet/secure_closet/medical_wall{name = "Pill Cabinet"; pixel_y = -32},/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/tramadol,/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor/tiled/white,/area/medical/exam_room) "brS" = (/obj/item/weapon/cane,/obj/item/weapon/cane{pixel_x = -3; pixel_y = 2},/obj/item/weapon/cane{pixel_x = -6; pixel_y = 4},/obj/item/weapon/storage/box/rxglasses,/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor/tiled/white,/area/medical/exam_room) "brT" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/medical/exam_room) @@ -3657,7 +3657,7 @@ "bsq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/disposal) "bsr" = (/obj/machinery/camera/network/civilian_west{c_tag = "Waste Disposal"; dir = 8},/obj/item/weapon/material/ashtray/plastic{pixel_x = 5; pixel_y = -5},/obj/effect/decal/cleanable/ash,/obj/item/weapon/cigbutt/cigarbutt,/turf/simulated/floor/plating,/area/maintenance/disposal) "bss" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/white,/area/rnd/lab) -"bst" = (/obj/structure/table/standard,/obj/item/weapon/hand_labeler,/obj/item/weapon/pen,/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor/tiled/white,/area/rnd/lab) +"bst" = (/obj/structure/table/standard,/obj/item/weapon/hand_labeler,/obj/item/weapon/pen,/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor/tiled/white,/area/rnd/lab) "bsu" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "admin_shuttle_dock_pump"},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/aft) "bsv" = (/obj/structure/table/standard,/obj/item/weapon/deck{pixel_y = 4},/turf/simulated/floor/plating,/area/maintenance/disposal) "bsw" = (/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "admin_shuttle_dock_sensor"; pixel_x = -30; pixel_y = 8},/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/aft) @@ -3748,7 +3748,7 @@ "bud" = (/obj/effect/landmark/start{name = "Roboticist"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled,/area/assembly/robotics) "bue" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/white,/area/assembly/robotics) "buf" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/assembly/robotics) -"bug" = (/obj/structure/table/standard,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor/tiled/white,/area/assembly/robotics) +"bug" = (/obj/structure/table/standard,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor/tiled/white,/area/assembly/robotics) "buh" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/assembly/robotics) "bui" = (/obj/structure/closet/firecloset,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled/white,/area/rnd/research) "buj" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled/white,/area/rnd/research) @@ -4150,7 +4150,7 @@ "bBP" = (/obj/machinery/message_server,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_server_room) "bBQ" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled/white,/area/medical/medbay) "bBR" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/medbay3) -"bBS" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/storage/box/syringes{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/syringes,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 28},/turf/simulated/floor/tiled/white,/area/medical/medbay3) +"bBS" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/storage/box/syringes{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/syringes,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = 28},/turf/simulated/floor/tiled/white,/area/medical/medbay3) "bBT" = (/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor/plating,/area/medical/genetics) "bBU" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/medical/medbay2) "bBV" = (/obj/machinery/computer/aifixer,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_cyborg_station) @@ -4388,7 +4388,7 @@ "bGt" = (/turf/simulated/wall,/area/quartermaster/miningdock) "bGu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/medbay) "bGv" = (/turf/simulated/wall,/area/quartermaster/qm) -"bGw" = (/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = 21},/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/medbay3) +"bGw" = (/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = 21},/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/medbay3) "bGx" = (/obj/machinery/light{dir = 1},/obj/machinery/door/firedoor,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/medbay) "bGy" = (/obj/structure/noticeboard{pixel_y = 28},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/medbay3) "bGz" = (/obj/machinery/light{dir = 1},/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 0; pixel_y = 30; pixel_z = 0},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/medbay2) @@ -4510,7 +4510,7 @@ "bIL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/corner/grey/diagonal,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/hor) "bIM" = (/obj/effect/floor_decal/corner/grey/diagonal,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/hor) "bIN" = (/obj/machinery/computer/area_atmos,/obj/effect/floor_decal/corner/grey/diagonal,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/hor) -"bIO" = (/obj/structure/table/standard,/obj/item/device/taperecorder{pixel_x = -3},/obj/item/device/paicard{pixel_x = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/item/weapon/circuitboard/teleporter,/obj/item/weapon/circuitboard/aicore{pixel_x = -2; pixel_y = 4},/obj/effect/floor_decal/corner/grey/diagonal,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/hor) +"bIO" = (/obj/structure/table/standard,/obj/item/device/taperecorder{pixel_x = -3},/obj/item/device/paicard{pixel_x = 4},/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/item/weapon/circuitboard/teleporter,/obj/item/weapon/circuitboard/aicore{pixel_x = -2; pixel_y = 4},/obj/effect/floor_decal/corner/grey/diagonal,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/hor) "bIP" = (/obj/structure/bed/chair/office/dark{dir = 8},/obj/effect/landmark/start{name = "Shaft Miner"},/turf/simulated/floor/tiled,/area/quartermaster/miningdock) "bIQ" = (/obj/structure/table/standard,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = -30; pixel_y = 0},/turf/simulated/floor/tiled,/area/quartermaster/miningdock) "bIR" = (/obj/structure/table/rack{dir = 1},/obj/item/weapon/pickaxe{pixel_x = 5},/obj/item/weapon/shovel{pixel_x = -5},/turf/simulated/floor/tiled,/area/quartermaster/miningdock) @@ -4692,10 +4692,10 @@ "bMl" = (/obj/machinery/door/airlock{name = "Custodial Closet"; req_access = list(26)},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled,/area/hallway/primary/central_three) "bMm" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/tiled,/area/hallway/primary/central_two) "bMn" = (/obj/effect/landmark/start{name = "Paramedic"},/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/white,/area/medical/sleeper) -"bMo" = (/obj/structure/closet/secure_closet/medical1,/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -31},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/random/medical,/turf/simulated/floor/tiled/white,/area/medical/sleeper) +"bMo" = (/obj/structure/closet/secure_closet/medical1,/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -31},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/random/medical,/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bMp" = (/obj/machinery/button/remote/blast_door{id = "acutesep"; name = "Acute Separation Shutters"; pixel_y = -25; req_access = list(5)},/obj/effect/landmark/start{name = "Paramedic"},/obj/machinery/camera/network/medbay{c_tag = "Medbay EMT Storage"; dir = 1},/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bMq" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/closet/fireaxecabinet{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/medical/sleeper) -"bMr" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 28},/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/corner/paleblue{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/medbay) +"bMr" = (/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = 28},/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/corner/paleblue{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/medbay) "bMs" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/mining/station) "bMt" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/photocopier/faxmachine{department = "CMO's Office"},/obj/structure/table/glass,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) "bMu" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) @@ -4911,7 +4911,7 @@ "bQw" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = "HoP Office"; name = "HoP Office"},/turf/simulated/floor/plating,/area/maintenance/cargo) "bQx" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/cargo) "bQy" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/storage/tech) -"bQz" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/corner/yellow{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/aft) +"bQz" = (/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/corner/yellow{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/aft) "bQA" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/corner/yellow,/turf/simulated/floor/tiled,/area/hallway/primary/aft) "bQB" = (/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/machinery/requests_console{department = "Janitorial"; departmentType = 1; pixel_y = -29},/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table/steel,/turf/simulated/floor/tiled,/area/janitor) "bQC" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/storage/tech) @@ -5004,7 +5004,7 @@ "bSl" = (/obj/item/device/aicard,/obj/item/weapon/aiModule/reset,/obj/structure/table/steel,/turf/simulated/floor/plating,/area/storage/tech) "bSm" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/effect/landmark/start{name = "Chemist"},/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/grey/diagonal,/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak) "bSn" = (/obj/machinery/light,/obj/machinery/vending/snack,/obj/effect/floor_decal/corner/grey/diagonal,/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak) -"bSo" = (/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay Lobby)"; pixel_x = 0; pixel_y = -30},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/corner/grey/diagonal,/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak) +"bSo" = (/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; frequency = 1485; listening = 1; name = "Station Intercom (Medbay Lobby)"; pixel_x = 0; pixel_y = -30},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/corner/grey/diagonal,/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak) "bSp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "staffroom"; name = "Staff Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) "bSq" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/structure/bed/chair/office/dark,/obj/effect/floor_decal/corner/pink{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/patient_a) "bSr" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/medical,/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 25; pixel_y = 0},/obj/machinery/camera/network/medbay{c_tag = "Medbay Patient A"; dir = 8},/obj/effect/floor_decal/corner/pink{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/patient_a) @@ -5935,7 +5935,7 @@ "ckg" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner"},/obj/effect/floor_decal/corner/pink{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/surgery2) "ckh" = (/obj/machinery/computer/operating,/turf/simulated/floor/tiled/white,/area/medical/surgery2) "cki" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/medical/surgery2) -"ckj" = (/obj/structure/table/standard,/obj/item/weapon/FixOVein,/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/obj/item/weapon/surgicaldrill,/turf/simulated/floor/tiled/white,/area/medical/surgery2) +"ckj" = (/obj/structure/table/standard,/obj/item/weapon/FixOVein,/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/obj/item/weapon/surgicaldrill,/turf/simulated/floor/tiled/white,/area/medical/surgery2) "ckk" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/effect/landmark{name = "blobstart"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/virologyaccess) "ckl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/virologyaccess) "ckm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/virologyaccess) @@ -6313,11 +6313,11 @@ "cru" = (/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "virology_airlock_exterior"; locked = 1; name = "Virology Exterior Airlock"; req_access = list(39)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -24; pixel_y = 0; req_access = list(39)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/black,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/medical/virology) "crv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/engineering) "crw" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/effect/floor_decal/corner/lime{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/virology) -"crx" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/bed/padded,/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/obj/effect/floor_decal/corner/lime{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/virology) +"crx" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/bed/padded,/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/obj/effect/floor_decal/corner/lime{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/virology) "cry" = (/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/corner/lime{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/virology) "crz" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/light{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology) "crA" = (/turf/simulated/floor/tiled/white,/area/rnd/xenobiology) -"crB" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology) +"crB" = (/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology) "crC" = (/obj/structure/cable/yellow,/turf/simulated/floor/airless,/area/solar/starboard) "crD" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/visible/yellow{dir = 8},/turf/simulated/floor/tiled,/area/engineering/atmos) "crE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/plating,/area/maintenance/medbay) @@ -6421,7 +6421,7 @@ "cty" = (/obj/machinery/smartfridge/secure/virology,/obj/structure/sign/deathsposal{pixel_y = 32},/turf/simulated/floor/tiled/white,/area/medical/virology) "ctz" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/medbay) "ctA" = (/obj/machinery/light/small{dir = 1},/obj/item/weapon/cigbutt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/medbay) -"ctB" = (/obj/machinery/disease2/isolator,/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/turf/simulated/floor/tiled/white,/area/medical/virology) +"ctB" = (/obj/machinery/disease2/isolator,/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/turf/simulated/floor/tiled/white,/area/medical/virology) "ctC" = (/obj/machinery/light{dir = 1},/obj/machinery/computer/centrifuge,/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = 29},/turf/simulated/floor/tiled/white,/area/medical/virology) "ctD" = (/obj/machinery/door/window/southright{dir = 1; name = "Virology Isolation Room One"; req_access = list(39)},/obj/machinery/atmospherics/pipe/simple/hidden/black,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/corner/lime{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/virology) "ctE" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/bed/chair,/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/camera/network/medbay{c_tag = "Virology Monkey Pen"},/turf/simulated/floor/tiled/white,/area/medical/virology) @@ -6772,7 +6772,7 @@ "cAl" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/effect/floor_decal/corner/lime{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/virology) "cAm" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet,/obj/effect/floor_decal/corner/lime{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/virology) "cAn" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 10},/obj/effect/floor_decal/corner/lime{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/virology) -"cAo" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet,/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/obj/effect/floor_decal/corner/lime{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/virology) +"cAo" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet,/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/obj/effect/floor_decal/corner/lime{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/virology) "cAp" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/airless,/area/rnd/xenobiology) "cAq" = (/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology) "cAr" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/engineering/atmos) diff --git a/maps/exodus-2.dmm b/maps/exodus-2.dmm index 298951e2953..4c7ff04c1cf 100644 --- a/maps/exodus-2.dmm +++ b/maps/exodus-2.dmm @@ -554,14 +554,14 @@ "kH" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "kI" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/handcuffs,/obj/item/device/flash,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "kJ" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/turf/simulated/floor/airless,/area/shuttle/syndicate_elite/mothership) -"kK" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; freerange = 1; frequency = 1213; listening = 1; name = "Syndicate Ops Intercom"; pixel_y = 0; subspace_transmission = 1; syndie = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) +"kK" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1213; listening = 1; name = "Syndicate Ops Intercom"; pixel_y = 0; subspace_transmission = 1; syndie = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "kL" = (/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "kM" = (/obj/machinery/door/airlock/hatch{name = "Cockpit"; req_access = list(109)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) "kN" = (/mob/living/silicon/decoy{icon_state = "ai-malf"; name = "GLaDOS"},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership/control) "kO" = (/obj/machinery/computer/pod{id = "syndicate_elite"; name = "Hull Door Control"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "kP" = (/obj/effect/landmark{name = "Syndicate-Commando"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "kQ" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"kR" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; freerange = 1; frequency = 1213; listening = 0; name = "Syndicate Ops Intercom"; pixel_y = 28; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) +"kR" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1213; listening = 0; name = "Syndicate Ops Intercom"; pixel_y = 28; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) "kS" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "kT" = (/obj/structure/urinal{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "kU" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) @@ -733,7 +733,7 @@ "oe" = (/obj/structure/table/rack,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "of" = (/obj/structure/closet/secure_closet/freezer/kitchen{req_access = list(150)},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "og" = (/obj/item/stack/material/glass{amount = 15},/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"oh" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_y = -32; subspace_transmission = 1; syndie = 1},/obj/machinery/light,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"oh" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_y = -32; subspace_transmission = 1; syndie = 1},/obj/machinery/light,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "oi" = (/obj/structure/bed,/obj/item/weapon/bedsheet/hos,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) "oj" = (/obj/structure/mirror{dir = 4; pixel_x = -32; pixel_y = 0},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "ok" = (/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) @@ -759,7 +759,7 @@ "oE" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/void/merc,/obj/item/clothing/mask/gas/syndicate,/obj/item/clothing/head/helmet/space/void/merc,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "oF" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/lattice,/turf/space,/area/space) "oG" = (/obj/structure/closet/secure_closet/medical_wall{pixel_x = -32; pixel_y = 0; req_access = list(150)},/obj/item/stack/medical/splint,/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"oH" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 0; pixel_y = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"oH" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 0; pixel_y = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "oI" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/space) "oJ" = (/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "oK" = (/obj/structure/table/rack,/obj/item/weapon/storage/belt/utility/full,/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) @@ -802,7 +802,7 @@ "pv" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/skipjack_station/start) "pw" = (/obj/structure/bed,/obj/item/weapon/bedsheet/rainbow,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) "px" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"py" = (/obj/machinery/door/window{dir = 1; name = "Cell"; req_access = list(150)},/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"py" = (/obj/machinery/door/window{dir = 1; name = "Cell"; req_access = list(150)},/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "pz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "pA" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "pB" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) @@ -886,8 +886,8 @@ "rb" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 4; start_pressure = 740.5},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "rc" = (/obj/structure/table/rack,/obj/item/clothing/suit/storage/vest/heavy/merc{pixel_x = 2; pixel_y = 2},/obj/item/clothing/suit/storage/vest/heavy/merc{pixel_x = -2; pixel_y = -2},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "rd" = (/obj/structure/table/standard,/obj/item/roller{pixel_y = 8},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) -"re" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"rf" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"re" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"rf" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "rg" = (/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "rh" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "ri" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/weapon/storage/fancy/cigarettes = 10, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2)},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) @@ -939,7 +939,7 @@ "sc" = (/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor,/area/supply/dock) "sd" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters_infirmary"; name = "remote shutter control"; pixel_x = -25},/obj/structure/mopbucket,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "se" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/structure/sign/nosmoking_1{pixel_y = 32},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) -"sf" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"sf" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "sg" = (/obj/machinery/door/window/northright{icon_state = "right"; dir = 2},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) "sh" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "si" = (/obj/structure/table/rack,/obj/item/weapon/storage/belt/utility/full,/obj/item/device/multitool,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) @@ -1017,7 +1017,7 @@ "tC" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/space,/area/supply/dock) "tD" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "supply_shuttle"; pixel_x = 25; pixel_y = 0; req_one_access = list(13,31); tag_door = "supply_shuttle_hatch"},/turf/simulated/shuttle/floor,/area/supply/dock) "tE" = (/obj/item/pizzabox/meat,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) -"tF" = (/obj/structure/table/standard,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/weapon/retractor,/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"tF" = (/obj/structure/table/standard,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/weapon/retractor,/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "tG" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) "tH" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "tI" = (/obj/machinery/telecomms/receiver/preset_cent,/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) @@ -1752,7 +1752,7 @@ "HJ" = (/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) "HK" = (/obj/structure/simple_door/iron,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) "HL" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station) -"HM" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{on = 0; pixel_x = -3; pixel_y = 8},/obj/item/weapon/reagent_containers/food/drinks/flask/barflask,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) +"HM" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{on = 0; pixel_x = -3; pixel_y = 8},/obj/item/weapon/reagent_containers/food/drinks/flask/barflask,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station) "HN" = (/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "HO" = (/obj/structure/bed/chair{dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/camera/network/crescent{c_tag = "Shuttle West"; dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "HP" = (/obj/item/weapon/beach_ball,/turf/unsimulated/beach/sand,/area/beach) @@ -1779,13 +1779,13 @@ "Ik" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "Il" = (/obj/structure/simple_door/wood{tag = "icon-wood"; icon_state = "wood"},/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "Im" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/item/weapon/material/harpoon,/obj/item/clothing/suit/space/void/merc,/obj/item/clothing/head/helmet/space/void/merc,/obj/item/clothing/head/helmet/space/void/engineering,/obj/item/clothing/suit/space/void/engineering,/obj/item/weapon/tank/oxygen,/obj/item/weapon/tank/oxygen,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/weapon/rig/light/stealth,/turf/simulated/shuttle/plating,/area/skipjack_station/start) -"In" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) +"In" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "Io" = (/obj/structure/table/woodentable,/obj/item/clothing/glasses/monocle,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "Ip" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/backpack/cultpack,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "Iq" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"}) "Ir" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/backpack,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "Is" = (/obj/structure/bookcase{name = "bookcase (Tactics)"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"It" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/structure/closet/coffin,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"It" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/structure/closet/coffin,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "Iu" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/shoes/sandal/marisa{desc = "A set of fancy shoes that are as functional as they are comfortable."; name = "Gentlemans Shoes"},/obj/item/clothing/under/gentlesuit,/obj/item/clothing/suit/wizrobe/gentlecoat,/obj/item/clothing/head/wizard/cap,/obj/item/weapon/staff/gentcane,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "Iv" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/under/psysuit,/obj/item/clothing/suit/wizrobe/psypurple,/obj/item/clothing/head/wizard/amp,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "Iw" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) @@ -1836,7 +1836,7 @@ "JQ" = (/obj/structure/table/woodentable,/obj/item/weapon/spacecash/c1,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "JR" = (/obj/machinery/computer/shuttle_control/multi/vox,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"}) "JS" = (/obj/machinery/computer/station_alert,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"}) -"JT" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/wizard_station) +"JT" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/wizard_station) "JU" = (/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/area/centcom/holding) "JW" = (/obj/structure/bed/chair{dir = 4},/obj/structure/closet/walllocker/emerglocker{pixel_x = -28},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "JX" = (/obj/structure/bed/chair{dir = 8},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 30},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) diff --git a/maps/exodus-3.dmm b/maps/exodus-3.dmm index 7eb06ed1e01..a675af89885 100644 --- a/maps/exodus-3.dmm +++ b/maps/exodus-3.dmm @@ -162,7 +162,7 @@ "df" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"},/turf/simulated/floor/tiled,/area/tcommsat/computer) "dg" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"},/turf/simulated/floor/tiled,/area/tcommsat/computer) "dh" = (/obj/machinery/atmospherics/pipe/simple/hidden{icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled,/area/tcommsat/computer) -"di" = (/obj/machinery/computer/telecomms/monitor{network = "tcommsat"},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; name = "General Listening Channel"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled,/area/tcommsat/computer) +"di" = (/obj/machinery/computer/telecomms/monitor{network = "tcommsat"},/obj/item/device/radio/intercom{anyai = 1; name = "General Listening Channel"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled,/area/tcommsat/computer) "dj" = (/obj/structure/bed,/obj/item/weapon/bedsheet/orange,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/tcommsat/computer) "dk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled,/area/tcommsat/computer) "dl" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/tcommsat/computer) diff --git a/maps/exodus-5.dmm b/maps/exodus-5.dmm index 494d6315971..93b02f1df77 100644 --- a/maps/exodus-5.dmm +++ b/maps/exodus-5.dmm @@ -153,7 +153,7 @@ "cW" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_x = 32; pixel_y = 0},/obj/structure/lattice,/turf/simulated/floor/asteroid,/area/mine/explored) "cX" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access = list(65)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/outpost/research/hallway) "cY" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Sample Preparation"; req_access = list(65)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/outpost/research/hallway) -"cZ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/purple{dir = 6},/turf/simulated/floor/tiled/white,/area/outpost/research/lab) +"cZ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/purple{dir = 6},/turf/simulated/floor/tiled/white,/area/outpost/research/lab) "da" = (/obj/machinery/artifact_analyser,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/outpost/research/lab) "db" = (/turf/simulated/floor/wood,/area/outpost/research/kitchen) "dc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/research/hallway) @@ -728,16 +728,16 @@ "nZ" = (/turf/simulated/wall/r_wall,/area/outpost/research/isolation_c) "oa" = (/obj/machinery/door/airlock/external{name = "Mining Bridge"; req_one_access = list(54,65)},/turf/simulated/floor/tiled/airless,/area/mine/explored) "ob" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/turf/simulated/floor/plating,/area/outpost/research/power) -"oc" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/turf/simulated/floor/tiled/dark,/area/outpost/research/isolation_a) +"oc" = (/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/turf/simulated/floor/tiled/dark,/area/outpost/research/isolation_a) "od" = (/obj/machinery/camera/network/research_outpost{c_tag = "Research Outpost Isolation Cell A"; dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/dark,/area/outpost/research/isolation_a) "oe" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/research/eva) "of" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/research/eva) "og" = (/turf/simulated/floor/tiled/dark,/area/outpost/research/isolation_a) -"oh" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/turf/simulated/floor/tiled/dark,/area/outpost/research/isolation_b) +"oh" = (/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/turf/simulated/floor/tiled/dark,/area/outpost/research/isolation_b) "oi" = (/obj/machinery/camera/network/research_outpost{c_tag = "Research Outpost Isolation Cell B"; dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/dark,/area/outpost/research/isolation_b) "oj" = (/obj/machinery/atmospherics/valve/digital/open,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/outpost/research/isolation_monitoring) "ok" = (/obj/effect/landmark{name = "bluespacerift"},/turf/simulated/floor/tiled/dark,/area/outpost/research/isolation_b) -"ol" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/turf/simulated/floor/tiled/dark,/area/outpost/research/isolation_c) +"ol" = (/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/turf/simulated/floor/tiled/dark,/area/outpost/research/isolation_c) "om" = (/obj/machinery/camera/network/research_outpost{c_tag = "Research Outpost Isolation Cell C"; dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/dark,/area/outpost/research/isolation_c) "on" = (/turf/simulated/floor/tiled/dark,/area/outpost/research/isolation_c) "oo" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille/broken,/obj/item/weapon/material/shard{icon_state = "small"},/obj/item/stack/rods,/turf/simulated/floor/airless,/area/outpost/abandoned) @@ -1528,7 +1528,7 @@ "Dt" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/closet/crate,/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "Du" = (/turf/simulated/floor/tiled,/area/outpost/mining_main/refinery) "Dv" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor,/area/outpost/mining_main/refinery) -"Dw" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/outpost/mining_main/east_hall) +"Dw" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/outpost/mining_main/east_hall) "Dx" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/outpost/mining_main/east_hall) "Dy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/outpost/mining_main/east_hall) "Dz" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) From c730a67d79b84ba418f2c0b19b7c17198209aa92 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Sat, 29 Aug 2015 18:47:20 +0200 Subject: [PATCH 2/6] Makes it possible to select department channels on intercoms. --- code/_helpers/unsorted.dm | 6 +- code/game/antagonist/station/traitor.dm | 2 +- code/game/jobs/access.dm | 16 ++-- code/game/machinery/telecomms/broadcaster.dm | 7 +- .../objects/items/devices/radio/intercom.dm | 74 ++++++++++++++++++- .../game/objects/items/devices/radio/radio.dm | 49 ++++++------ code/game/objects/items/weapons/cards_ids.dm | 8 +- 7 files changed, 118 insertions(+), 44 deletions(-) diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index 85f1c2e1df1..9f5b3ed69d1 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -245,8 +245,8 @@ Turf and target are seperate in case you want to teleport some distance from a t //Ensure the frequency is within bounds of what it should be sending/recieving at /proc/sanitize_frequency(var/f, var/low = PUBLIC_LOW_FREQ, var/high = PUBLIC_HIGH_FREQ) f = round(f) - f = max(high, f) - f = min(low, f) + f = max(low, f) + f = min(high, f) if ((f % 2) == 0) //Ensure the last digit is an odd number f += 1 return f @@ -569,7 +569,7 @@ proc/GaussRandRound(var/sigma,var/roundto) var/turf/current = get_turf(source) var/turf/target_turf = get_turf(target) var/steps = 0 - + if(!current || !target_turf) return 0 diff --git a/code/game/antagonist/station/traitor.dm b/code/game/antagonist/station/traitor.dm index 35f55692f81..d0dd2500589 100644 --- a/code/game/antagonist/station/traitor.dm +++ b/code/game/antagonist/station/traitor.dm @@ -139,7 +139,7 @@ var/datum/antagonist/traitor/traitors if(istype(R,/obj/item/device/radio)) // generate list of radio freqs var/obj/item/device/radio/target_radio = R - var/freq = 1441 + var/freq = PUBLIC_LOW_FREQ var/list/freqlist = list() while (freq <= PUBLIC_HIGH_FREQ) if (freq < 1451 || freq > PUB_FREQ) diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index 8ace5314300..55f603f3620 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -28,12 +28,15 @@ if(!req_one_access) req_one_access = list() if(!L) return 0 if(!istype(L, /list)) return 0 - for(var/req in src.req_access) - if(!(req in L)) //doesn't have this access + return has_access(req_access, req_one_access, L) + +/proc/has_access(var/list/req_access, var/list/req_one_access, var/list/accesses) + for(var/req in req_access) + if(!(req in accesses)) //doesn't have this access return 0 - if(src.req_one_access.len) - for(var/req in src.req_one_access) - if(req in L) //has an access from the single access list + if(req_one_access.len) + for(var/req in req_one_access) + if(req in accesses) //has an access from the single access list return 1 return 0 return 1 @@ -219,13 +222,12 @@ proc/get_all_job_icons() //For all existing HUD icons if(I) var/job_icons = get_all_job_icons() - var/centcom = get_all_centcom_jobs() - if(I.assignment in job_icons) //Check if the job has a hud icon return I.assignment if(I.rank in job_icons) return I.rank + var/centcom = get_all_centcom_jobs() if(I.assignment in centcom) //Return with the NT logo if it is a Centcom job return "Centcom" if(I.rank in centcom) diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm index 90f36d3742e..61be05870b2 100644 --- a/code/game/machinery/telecomms/broadcaster.dm +++ b/code/game/machinery/telecomms/broadcaster.dm @@ -353,7 +353,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept // --- This following recording is intended for research and feedback in the use of department radio channels --- var/part_blackbox_b = "
\[[freq_text]\] " // Tweaked for security headsets -- TLE - var/blackbox_msg = "[part_a][name][part_blackbox_b][quotedmsg][part_c]" + var/blackbox_msg = "[part_a][name][part_blackbox_b][quotedmsg][part_c]" //var/blackbox_admin_msg = "[part_a][M.name] (Real name: [M.real_name])[part_blackbox_b][quotedmsg][part_c]" //BR.messages_admin += blackbox_admin_msg @@ -531,13 +531,10 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept var/obj/item/device/radio/headset/radio = new var/part_b = "
\icon[radio]\[[freq_text]\][part_b_extra] " // Tweaked for security headsets -- TLE + var/part_blackbox_b = " \[[freq_text]\] " // Tweaked for security headsets -- TLE var/part_c = "
" - // --- This following recording is intended for research and feedback in the use of department radio channels --- - - var/part_blackbox_b = "
\[[freq_text]\] " // Tweaked for security headsets -- TLE var/blackbox_msg = "[part_a][source][part_blackbox_b]\"[text]\"[part_c]" - //var/blackbox_admin_msg = "[part_a][M.name] (Real name: [M.real_name])[part_blackbox_b][quotedmsg][part_c]" //BR.messages_admin += blackbox_admin_msg if(istype(blackbox)) diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 647583b5c1c..a8f25912599 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -1,3 +1,17 @@ +// Access check is of the type requires one. These have been carefully selected to avoid allowing the janitor to see channels he shouldn't +var/global/list/default_intercom_channels = list( + num2text(PUB_FREQ) = list(), + num2text(AI_FREQ) = list(access_synth), + num2text(ERT_FREQ) = list(access_cent_specops), + num2text(COMM_FREQ) = list(access_heads), + num2text(ENG_FREQ) = list(access_engine_equip, access_atmospherics), + num2text(MED_FREQ) = list(access_medical_equip), + num2text(SEC_FREQ) = list(access_security), + num2text(SCI_FREQ) = list(access_tox,access_robotics,access_xenobiology), + num2text(SUP_FREQ) = list(access_cargo), + num2text(SRV_FREQ) = list(access_janitor, access_hydroponics) +) + /obj/item/device/radio/intercom name = "station intercom" desc = "Talk through this." @@ -11,9 +25,39 @@ var/mob/living/silicon/ai/ai = list() var/last_tick //used to delay the powercheck + var/list/intercom_channels + /obj/item/device/radio/intercom/New() ..() processing_objects += src + intercom_channels = default_intercom_channels + +/obj/item/device/radio/intercom/syndicate + name = "illicit intercom" + +/obj/item/device/radio/intercom/syndicate/New() + ..() + intercom_channels = list( + num2text(PUB_FREQ) = list(), + num2text(SYND_FREQ) = list(access_syndicate), + num2text(COMM_FREQ) = list(access_syndicate), + num2text(ENG_FREQ) = list(access_syndicate), + num2text(MED_FREQ) = list(access_syndicate), + num2text(SEC_FREQ) = list(access_syndicate), + num2text(SCI_FREQ) = list(access_syndicate), + num2text(SUP_FREQ) = list(access_syndicate), + num2text(SRV_FREQ) = list(access_syndicate) + ) + +/obj/item/device/radio/intercom/proc/has_channel_access(var/mob/user, var/freq) + if(!user) + return 0 + + if(!(freq in intercom_channels)) + return 0 + + var/obj/item/weapon/card/id/I = user.GetIdCard() + return has_access(list(), intercom_channels[freq], I ? I.GetAccess() : list()) /obj/item/device/radio/intercom/Destroy() processing_objects -= src @@ -29,6 +73,16 @@ spawn (0) attack_self(user) +/obj/item/device/radio/intercom/list_channels(var/mob/user) + var/dat = "" + for (var/priv_chan in intercom_channels) + if(has_channel_access(user, priv_chan)) + dat+="[get_frequency_name(text2num(priv_chan))]
" + + if(dat) + dat = "
Available Channels
" + dat + return dat + /obj/item/device/radio/intercom/receive_range(freq, level) if (!on) return -1 @@ -57,8 +111,8 @@ if(!src.loc) on = 0 else - var/area/A = src.loc.loc - if(!A || !isarea(A)) + var/area/A = get_area(src) + if(!A) on = 0 else on = A.powered(EQUIP) // set "on" to the power status @@ -68,9 +122,25 @@ else icon_state = "intercom" +/obj/item/device/radio/intercom/Topic(href, href_list) + if(..()) + return 1 + + if(href_list["spec_freq"]) + var freq = href_list["spec_freq"] + if(has_channel_access(usr, freq)) + set_frequency(text2num(freq)) + . = 1 + + if(.) + interact(usr) + /obj/item/device/radio/intercom/locked var/locked_frequency /obj/item/device/radio/intercom/locked/set_frequency(var/frequency) if(frequency == locked_frequency) ..(locked_frequency) + +/obj/item/device/radio/intercom/locked/list_channels() + return "" diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 3b5f3e54111..ad68b5e8eeb 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -4,7 +4,6 @@ suffix = "\[3\]" icon_state = "walkietalkie" item_state = "walkietalkie" - req_access = list(access_synth) var/on = 1 // 0 for off var/last_transmission @@ -89,17 +88,19 @@ +
"} - for (var/ch_name in channels) - dat+=text_sec_channel(ch_name, channels[ch_name]) - - if(allowed(user)) - dat+= "Channel Name: [(frequency in DEPT_FREQS) ? get_frequency_name(frequency) : "Unknown"]
" + dat+=list_channels(user) dat+={"[text_wires()]"} user << browse(dat, "window=radio") onclose(user, "radio") return +/obj/item/device/radio/proc/list_channels(var/mob/user) + var/dat = "" + for (var/ch_name in channels) + dat+=text_sec_channel(ch_name, channels[ch_name]) + return dat + /obj/item/device/radio/proc/text_wires() if (b_stat) return wires.GetInteractWindow() @@ -122,7 +123,7 @@ /obj/item/device/radio/Topic(href, href_list) if(..() || !on) usr << browse(null, "window=radio") - return + return 1 usr.set_machine(src) if (href_list["track"]) @@ -130,20 +131,20 @@ var/mob/living/silicon/ai/A = locate(href_list["track2"]) if(A && target) A.ai_actual_track(target) - return + . = 1 else if (href_list["freq"]) var/new_frequency = (frequency + text2num(href_list["freq"])) - if ((frequency < RADIO_LOW_FREQ || frequency > RADIO_HIGH_FREQ) || !allowed(usr)) + if ((new_frequency < PUBLIC_LOW_FREQ || new_frequency > PUBLIC_HIGH_FREQ)) new_frequency = sanitize_frequency(new_frequency) set_frequency(new_frequency) if(hidden_uplink) if(hidden_uplink.check_trigger(usr, frequency, traitor_frequency)) usr << browse(null, "window=radio") - return - + . = 1 else if (href_list["talk"]) ToggleBroadcast() + . = 1 else if (href_list["listen"]) var/chan_name = href_list["ch_name"] if (!chan_name) @@ -153,11 +154,12 @@ channels[chan_name] &= ~FREQ_LISTENING else channels[chan_name] |= FREQ_LISTENING - + . = 1 if(href_list["nowindow"]) // here for pAIs, maybe others will want it, idk - return + return 1 - interact(usr) + if(.) + interact(usr) /obj/item/device/radio/proc/autosay(var/message, var/from, var/channel) //BS12 EDIT var/datum/radio_frequency/connection = null @@ -501,12 +503,16 @@ /obj/item/device/radio/borg var/mob/living/silicon/robot/myborg = null // Cyborg which owns this radio. Used for power checks var/obj/item/device/encryptionkey/keyslot = null//Borg radios can handle a single encryption key - var/shut_up = 0 + var/shut_up = 1 icon = 'icons/obj/robot_component.dmi' // Cyborgs radio icons should look like the component. icon_state = "radio" - canhear_range = 3 + canhear_range = 0 subspace_transmission = 1 +/obj/item/device/radio/borg/Destroy() + myborg = null + return ..() + /obj/item/device/radio/borg/talk_into() . = ..() if (isrobot(src.loc)) @@ -588,8 +594,8 @@ return /obj/item/device/radio/borg/Topic(href, href_list) - if(usr.stat || !on) - return + if(..()) + return 1 if (href_list["mode"]) if(subspace_transmission != 1) subspace_transmission = 1 @@ -601,14 +607,14 @@ channels = list() else recalculateChannels() + return 1 if (href_list["shutup"]) // Toggle loudspeaker mode, AKA everyone around you hearing your radio. shut_up = !shut_up if(shut_up) canhear_range = 0 else canhear_range = 3 - - ..() + return 1 /obj/item/device/radio/borg/interact(mob/user as mob) if(!on) @@ -628,8 +634,7 @@ "} if(subspace_transmission)//Don't even bother if subspace isn't turned on - for (var/ch_name in channels) - dat+=text_sec_channel(ch_name, channels[ch_name]) + dat+=list_channels(user) dat+={"[text_wires()]"} user << browse(dat, "window=radio") onclose(user, "radio") diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index dbac808c049..93bc14399d4 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -149,7 +149,7 @@ id_card.dna_hash = dna.unique_enzymes id_card.fingerprint_hash= md5(dna.uni_identity) id_card.update_name() - + /mob/living/carbon/human/set_id_info(var/obj/item/weapon/card/id/id_card) ..() id_card.age = age @@ -221,16 +221,16 @@ /obj/item/weapon/card/id/captains_spare/New() access = get_all_station_access() ..() - + /obj/item/weapon/card/id/synthetic name = "\improper Synthetic ID" desc = "Access module for NanoTrasen Synthetics" icon_state = "id-robot" item_state = "tdgreen" assignment = "Synthetic" - + /obj/item/weapon/card/id/synthetic/New() - access = get_all_station_access() + access = get_all_station_access() + access_synth ..() /obj/item/weapon/card/id/centcom From 13780eba094d055ca201f56b31f3a29c657f4978 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Wed, 2 Sep 2015 13:54:24 +0200 Subject: [PATCH 3/6] Rotates and otherwise cleans up map intercom usage. --- code/controllers/communications.dm | 8 +- .../objects/items/devices/radio/headset.dm | 1 - .../objects/items/devices/radio/intercom.dm | 86 ++- code/modules/mob/transform_procs.dm | 2 - icons/obj/radio.dmi | Bin 8429 -> 8688 bytes maps/exodus-1.dmm | 573 +++++++++--------- maps/exodus-2.dmm | 106 ++-- maps/exodus-3.dmm | 20 +- maps/exodus-5.dmm | 118 ++-- 9 files changed, 485 insertions(+), 429 deletions(-) diff --git a/code/controllers/communications.dm b/code/controllers/communications.dm index 6412cf711f1..0f590f56805 100644 --- a/code/controllers/communications.dm +++ b/code/controllers/communications.dm @@ -118,6 +118,10 @@ var/const/SCI_FREQ = 1351 var/const/SRV_FREQ = 1349 var/const/SUP_FREQ = 1347 +// internal department channels +var/const/MED_I_FREQ = 1485 +var/const/SEC_I_FREQ = 1475 + var/list/radiochannels = list( "Common" = PUB_FREQ, "Science" = SCI_FREQ, @@ -130,7 +134,9 @@ var/list/radiochannels = list( "Mercenary" = SYND_FREQ, "Supply" = SUP_FREQ, "Service" = SRV_FREQ, - "AI Private" = AI_FREQ + "AI Private" = AI_FREQ, + "Medical (I)" = MED_I_FREQ, + "Security (I)" = SEC_I_FREQ ) // central command channels, i.e deathsquid & response teams diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 8323145e88f..4f45fc1b27f 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -209,7 +209,6 @@ icon_state = "com_headset" item_state = "headset" ks2type = /obj/item/device/encryptionkey/ert - req_access = list(access_cent_general) /obj/item/device/radio/headset/ia name = "internal affair's headset" diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index a8f25912599..e3e6807cecb 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -1,9 +1,9 @@ // Access check is of the type requires one. These have been carefully selected to avoid allowing the janitor to see channels he shouldn't var/global/list/default_intercom_channels = list( num2text(PUB_FREQ) = list(), - num2text(AI_FREQ) = list(access_synth), + num2text(AI_FREQ) = list(access_synth), num2text(ERT_FREQ) = list(access_cent_specops), - num2text(COMM_FREQ) = list(access_heads), + num2text(COMM_FREQ)= list(access_heads), num2text(ENG_FREQ) = list(access_engine_equip, access_atmospherics), num2text(MED_FREQ) = list(access_medical_equip), num2text(SEC_FREQ) = list(access_security), @@ -13,7 +13,7 @@ var/global/list/default_intercom_channels = list( ) /obj/item/device/radio/intercom - name = "station intercom" + name = "station intercom (General)" desc = "Talk through this." icon_state = "intercom" anchored = 1 @@ -21,34 +21,70 @@ var/global/list/default_intercom_channels = list( canhear_range = 2 flags = CONDUCT | NOBLOODY var/number = 0 - var/anyai = 1 - var/mob/living/silicon/ai/ai = list() var/last_tick //used to delay the powercheck var/list/intercom_channels +/obj/item/device/radio/intercom/custom + name = "station intercom (Custom)" + broadcasting = 0 + listening = 0 + +/obj/item/device/radio/intercom/interrogation + name = "station intercom (Interrogation)" + frequency = 1449 + +/obj/item/device/radio/intercom/private + name = "station intercom (Private)" + frequency = AI_FREQ + +/obj/item/device/radio/intercom/specops + name = "\improper Spec Ops intercom" + frequency = ERT_FREQ + +/obj/item/device/radio/intercom/department + canhear_range = 5 + broadcasting = 0 + listening = 1 + +/obj/item/device/radio/intercom/department/medbay + name = "station intercom (Medbay)" + frequency = MED_I_FREQ + +/obj/item/device/radio/intercom/department/security + name = "station intercom (Security)" + frequency = SEC_I_FREQ + /obj/item/device/radio/intercom/New() ..() processing_objects += src - intercom_channels = default_intercom_channels + intercom_channels = default_intercom_channels.Copy() -/obj/item/device/radio/intercom/syndicate - name = "illicit intercom" - -/obj/item/device/radio/intercom/syndicate/New() +/obj/item/device/radio/intercom/department/medbay/New() ..() intercom_channels = list( num2text(PUB_FREQ) = list(), - num2text(SYND_FREQ) = list(access_syndicate), - num2text(COMM_FREQ) = list(access_syndicate), - num2text(ENG_FREQ) = list(access_syndicate), - num2text(MED_FREQ) = list(access_syndicate), - num2text(SEC_FREQ) = list(access_syndicate), - num2text(SCI_FREQ) = list(access_syndicate), - num2text(SUP_FREQ) = list(access_syndicate), - num2text(SRV_FREQ) = list(access_syndicate) + num2text(MED_I_FREQ) = list(access_medical_equip) ) +/obj/item/device/radio/intercom/department/security/New() + ..() + intercom_channels = list( + num2text(PUB_FREQ) = list(), + num2text(SEC_I_FREQ) = list(access_security) + ) + +/obj/item/device/radio/intercom/syndicate + name = "illicit intercom" + desc = "Talk through this. Evilly" + frequency = SYND_FREQ + subspace_transmission = 1 + syndie = 1 + +/obj/item/device/radio/intercom/syndicate/New() + ..() + intercom_channels[num2text(SYND_FREQ)] = list(access_syndicate) + /obj/item/device/radio/intercom/proc/has_channel_access(var/mob/user, var/freq) if(!user) return 0 @@ -98,12 +134,6 @@ var/global/list/default_intercom_channels = list( return canhear_range - -/obj/item/device/radio/intercom/hear_talk(mob/M as mob, msg) - if(!src.anyai && !(M in src.ai)) - return - ..() - /obj/item/device/radio/intercom/process() if(((world.timeofday - last_tick) > 30) || ((world.timeofday - last_tick) < 0)) last_tick = world.timeofday @@ -144,3 +174,11 @@ var/global/list/default_intercom_channels = list( /obj/item/device/radio/intercom/locked/list_channels() return "" + +/obj/item/device/radio/intercom/locked/ai_private + name = "\improper AI intercom" + frequency = AI_FREQ + +/obj/item/device/radio/intercom/locked/confessional + name = "confessional intercom" + frequency = 1480 diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 05417c22d78..10b9d0ebbf7 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -98,8 +98,6 @@ loc_landmark = sloc O.loc = loc_landmark.loc - for (var/obj/item/device/radio/intercom/comm in O.loc) - comm.ai += O O.on_mob_init() diff --git a/icons/obj/radio.dmi b/icons/obj/radio.dmi index 2398058e44ef39268b2f77062ae2ddb4ba9fbe05..8446ea61d083e2f2216f4b6c7c7458a944dc04ec 100644 GIT binary patch literal 8688 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 Z45D=%CNhaG;BO2dMOihOGAYx5{{t