From acc78a80001b18374ef96fac964fc593fdcc43e0 Mon Sep 17 00:00:00 2001 From: Kelenius Date: Sat, 20 Feb 2016 15:36:05 +0300 Subject: [PATCH 01/61] Changes types of ghosts and eyes ``/mob/dead/observer`` -> ``/mob/observer/dead`` ``/mob/eye`` -> ``/mob/observer/eye`` Reason being that they are similar in that they both don't interact with the world in any way. Some procs were shared, some checks as well, and it overall makes more sense this way. Plus, there were no ``/mob/dead`` mobs. --- code/ZAS/Airflow.dm | 4 +- code/_helpers/game.dm | 6 +- code/_helpers/unsorted.dm | 10 +- code/_macros.dm | 4 +- code/_onclick/observer.dm | 8 +- code/controllers/Processes/inactivity.dm | 2 +- code/defines/procs/hud.dm | 2 +- code/game/antagonist/antagonist.dm | 4 +- code/game/antagonist/antagonist_add.dm | 2 +- code/game/dna/dna_modifier.dm | 2 +- code/game/gamemodes/cult/cultify/mob.dm | 4 +- code/game/gamemodes/cult/narsie.dm | 2 +- code/game/gamemodes/cult/ritual.dm | 4 +- code/game/gamemodes/cult/runes.dm | 8 +- .../endgame/supermatter_cascade/blob.dm | 2 +- code/game/gamemodes/game_mode.dm | 2 +- code/game/gamemodes/gameticker.dm | 4 +- code/game/machinery/atmoalter/meter.dm | 2 +- code/game/machinery/cloning.dm | 2 +- code/game/machinery/telecomms/broadcaster.dm | 2 +- code/game/machinery/teleporter.dm | 2 +- code/game/objects/effects/step_triggers.dm | 2 +- .../devices/communicator/communicator.dm | 20 +-- .../game/objects/items/devices/radio/radio.dm | 2 +- code/game/objects/items/robot/robot_parts.dm | 2 +- .../objects/items/robot/robot_upgrades.dm | 2 +- code/game/response_team.dm | 2 +- code/game/verbs/who.dm | 2 +- code/modules/admin/admin.dm | 2 +- code/modules/admin/admin_verbs.dm | 6 +- code/modules/admin/topic.dm | 4 +- code/modules/admin/verbs/adminjump.dm | 2 +- code/modules/admin/verbs/adminpm.dm | 2 +- code/modules/admin/verbs/debug.dm | 6 +- code/modules/admin/verbs/randomverbs.dm | 24 ++-- code/modules/clothing/clothing.dm | 2 +- code/modules/clothing/masks/miscellaneous.dm | 2 +- code/modules/ghosttrap/trap.dm | 6 +- code/modules/hydroponics/trays/tray.dm | 2 +- code/modules/mob/dead/death.dm | 4 +- code/modules/mob/dead/observer/login.dm | 2 +- code/modules/mob/dead/observer/logout.dm | 2 +- code/modules/mob/dead/observer/observer.dm | 122 +++++++++--------- code/modules/mob/dead/observer/say.dm | 4 +- code/modules/mob/freelook/ai/eye.dm | 8 +- code/modules/mob/freelook/chunk.dm | 8 +- code/modules/mob/freelook/eye.dm | 25 ++-- code/modules/mob/freelook/life.dm | 2 +- code/modules/mob/freelook/mask/eye.dm | 4 +- code/modules/mob/freelook/visualnet.dm | 2 +- code/modules/mob/hear_say.dm | 10 +- code/modules/mob/language/language.dm | 2 +- .../mob/living/carbon/brain/posibrain.dm | 2 +- .../mob/living/carbon/human/examine.dm | 2 +- code/modules/mob/living/carbon/human/human.dm | 2 +- .../mob/living/carbon/human/human_powers.dm | 2 +- .../mob/living/carbon/metroid/items.dm | 10 +- code/modules/mob/living/silicon/ai/examine.dm | 2 +- .../modules/mob/living/silicon/pai/recruit.dm | 4 +- .../mob/living/silicon/robot/drone/drone.dm | 2 +- .../silicon/robot/drone/drone_manufacturer.dm | 6 +- .../mob/living/simple_animal/borer/borer.dm | 2 +- .../mob/living/simple_animal/friendly/cat.dm | 2 +- .../simple_animal/friendly/spiderbot.dm | 2 +- code/modules/mob/mob.dm | 4 +- code/modules/mob/mob_helpers.dm | 6 +- code/modules/mob/new_player/new_player.dm | 4 +- code/modules/nano/interaction/default.dm | 2 +- code/modules/nano/interaction/physical.dm | 2 +- code/modules/organs/organ_external.dm | 2 +- code/modules/paperwork/clipboard.dm | 2 +- code/modules/paperwork/folders.dm | 2 +- code/modules/paperwork/paper.dm | 4 +- code/modules/paperwork/paper_bundle.dm | 2 +- code/modules/power/apc.dm | 2 +- code/modules/power/singularity/act.dm | 5 +- code/modules/random_map/drop/droppod.dm | 4 +- .../Chemistry-Reagents-Other.dm | 2 +- code/modules/spells/spellbook.dm | 2 +- code/modules/spells/targeted/mind_transfer.dm | 2 +- 80 files changed, 224 insertions(+), 224 deletions(-) diff --git a/code/ZAS/Airflow.dm b/code/ZAS/Airflow.dm index 8831f8aa40..01a84fdf5d 100644 --- a/code/ZAS/Airflow.dm +++ b/code/ZAS/Airflow.dm @@ -43,7 +43,7 @@ mob/check_airflow_movable(n) return 0 return 1 -mob/dead/observer/check_airflow_movable() +mob/observer/check_airflow_movable() return 0 mob/living/silicon/check_airflow_movable() @@ -247,6 +247,6 @@ zone/proc/movables() . = list() for(var/turf/T in contents) for(var/atom/movable/A in T) - if(!A.simulated || A.anchored || istype(A, /obj/effect) || istype(A, /mob/eye)) + if(!A.simulated || A.anchored || istype(A, /obj/effect) || istype(A, /mob/observer)) continue . += A diff --git a/code/_helpers/game.dm b/code/_helpers/game.dm index 79b3aa6540..3964ddeeba 100644 --- a/code/_helpers/game.dm +++ b/code/_helpers/game.dm @@ -244,7 +244,7 @@ var/turf/ear = get_turf(M) if(ear) // Ghostship is magic: Ghosts can hear radio chatter from anywhere - if(speaker_coverage[ear] || (istype(M, /mob/dead/observer) && (M.client) && (M.client.prefs.toggles & CHAT_GHOSTRADIO))) + if(speaker_coverage[ear] || (istype(M, /mob/observer/dead) && (M.client) && (M.client.prefs.toggles & CHAT_GHOSTRADIO))) . |= M // Since we're already looping through mobs, why bother using |= ? This only slows things down. return . @@ -323,7 +323,7 @@ proc/isInSight(var/atom/A, var/atom/B) var/list/candidates = list() //List of candidate KEYS to assume control of the new larva ~Carn var/i = 0 while(candidates.len <= 0 && i < 5) - for(var/mob/dead/observer/G in player_list) + for(var/mob/observer/dead/G in player_list) if(((G.client.inactivity/10)/60) <= buffer + i) // the most active players are more likely to become an alien if(!(G.mind && G.mind.current && G.mind.current.stat != DEAD)) candidates += G.key @@ -337,7 +337,7 @@ proc/isInSight(var/atom/A, var/atom/B) var/list/candidates = list() //List of candidate KEYS to assume control of the new larva ~Carn var/i = 0 while(candidates.len <= 0 && i < 5) - for(var/mob/dead/observer/G in player_list) + for(var/mob/observer/dead/G in player_list) if(G.client.prefs.be_special & BE_ALIEN) if(((G.client.inactivity/10)/60) <= ALIEN_SELECT_AFK_BUFFER + i) // the most active players are more likely to become an alien if(!(G.mind && G.mind.current && G.mind.current.stat != DEAD)) diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index bd6f014e0b..8057d65f96 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -462,7 +462,7 @@ Turf and target are seperate in case you want to teleport some distance from a t if (M.real_name && M.real_name != M.name) name += " \[[M.real_name]\]" if (M.stat == 2) - if(istype(M, /mob/dead/observer/)) + if(istype(M, /mob/observer/dead/)) name += " \[ghost\]" else name += " \[dead\]" @@ -474,7 +474,7 @@ Turf and target are seperate in case you want to teleport some distance from a t /proc/sortmobs() var/list/moblist = list() var/list/sortmob = sortAtom(mob_list) - for(var/mob/eye/M in sortmob) + for(var/mob/observer/eye/M in sortmob) moblist.Add(M) for(var/mob/living/silicon/ai/M in sortmob) moblist.Add(M) @@ -488,7 +488,7 @@ Turf and target are seperate in case you want to teleport some distance from a t moblist.Add(M) for(var/mob/living/carbon/alien/M in sortmob) moblist.Add(M) - for(var/mob/dead/observer/M in sortmob) + for(var/mob/observer/dead/M in sortmob) moblist.Add(M) for(var/mob/new_player/M in sortmob) moblist.Add(M) @@ -861,7 +861,7 @@ proc/GaussRandRound(var/sigma,var/roundto) if(!istype(O,/obj)) continue O.loc = X for(var/mob/M in T) - if(!istype(M,/mob) || istype(M, /mob/eye)) continue // If we need to check for more mobs, I'll add a variable + if(!istype(M,/mob) || istype(M, /mob/observer/eye)) continue // If we need to check for more mobs, I'll add a variable M.loc = X // var/area/AR = X.loc @@ -995,7 +995,7 @@ proc/DuplicateObject(obj/original, var/perfectcopy = 0 , var/sameloc = 0) for(var/mob/M in T) - if(!istype(M,/mob) || istype(M, /mob/eye)) continue // If we need to check for more mobs, I'll add a variable + if(!istype(M,/mob) || istype(M, /mob/observer/eye)) continue // If we need to check for more mobs, I'll add a variable mobs += M for(var/mob/M in mobs) diff --git a/code/_macros.dm b/code/_macros.dm index b6ddf4f12c..7e8d581b90 100644 --- a/code/_macros.dm +++ b/code/_macros.dm @@ -13,7 +13,7 @@ #define iscorgi(A) istype(A, /mob/living/simple_animal/corgi) -#define isEye(A) istype(A, /mob/eye) +#define isEye(A) istype(A, /mob/observer/eye) #define ishuman(A) istype(A, /mob/living/carbon/human) @@ -23,7 +23,7 @@ #define isnewplayer(A) istype(A, /mob/new_player) -#define isobserver(A) istype(A, /mob/dead/observer) +#define isobserver(A) istype(A, /mob/observer/dead) #define isorgan(A) istype(A, /obj/item/organ/external) diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm index 55fe373301..9b539e3738 100644 --- a/code/_onclick/observer.dm +++ b/code/_onclick/observer.dm @@ -1,5 +1,5 @@ /client/var/inquisitive_ghost = 1 -/mob/dead/observer/verb/toggle_inquisition() // warning: unexpected inquisition +/mob/observer/dead/verb/toggle_inquisition() // warning: unexpected inquisition set name = "Toggle Inquisitiveness" set desc = "Sets whether your ghost examines everything on click by default" set category = "Ghost" @@ -10,7 +10,7 @@ else src << "You will no longer examine things you click on." -/mob/dead/observer/DblClickOn(var/atom/A, var/params) +/mob/observer/dead/DblClickOn(var/atom/A, var/params) if(client.buildmode) build_click(src, client.buildmode, params, A) return @@ -28,7 +28,7 @@ following = null forceMove(get_turf(A)) -/mob/dead/observer/ClickOn(var/atom/A, var/params) +/mob/observer/dead/ClickOn(var/atom/A, var/params) if(client.buildmode) build_click(src, client.buildmode, params, A) return @@ -39,7 +39,7 @@ A.attack_ghost(src) // Oh by the way this didn't work with old click code which is why clicking shit didn't spam you -/atom/proc/attack_ghost(mob/dead/observer/user as mob) +/atom/proc/attack_ghost(mob/observer/dead/user as mob) if(user.client && user.client.inquisitive_ghost) user.examinate(src) return diff --git a/code/controllers/Processes/inactivity.dm b/code/controllers/Processes/inactivity.dm index cd01e24829..e61c2d4dc1 100644 --- a/code/controllers/Processes/inactivity.dm +++ b/code/controllers/Processes/inactivity.dm @@ -6,7 +6,7 @@ if(config.kick_inactive) for(var/client/C in clients) if(!C.holder && C.is_afk(config.kick_inactive MINUTES)) - if(!istype(C.mob, /mob/dead)) + if(!istype(C.mob, /mob/observer/dead)) log_access("AFK: [key_name(C)]") C << "You have been inactive for more than [config.kick_inactive] minute\s and have been disconnected." del(C) // Don't qdel, cannot override finalize_qdel behaviour for clients. diff --git a/code/defines/procs/hud.dm b/code/defines/procs/hud.dm index e5560e5ce0..78fdb6dc7b 100644 --- a/code/defines/procs/hud.dm +++ b/code/defines/procs/hud.dm @@ -72,7 +72,7 @@ mob/proc/handle_regular_hud_updates() //Used in the life.dm of mobs that can use mob/proc/in_view(var/turf/T) return view(T) -/mob/eye/in_view(var/turf/T) +/mob/observer/eye/in_view(var/turf/T) var/list/viewed = new for(var/mob/living/carbon/human/H in mob_list) if(get_dist(H, T) <= 7) diff --git a/code/game/antagonist/antagonist.dm b/code/game/antagonist/antagonist.dm index 6d3e7d0b28..2db2ab8f5a 100644 --- a/code/game/antagonist/antagonist.dm +++ b/code/game/antagonist/antagonist.dm @@ -92,7 +92,7 @@ // Prune restricted status. Broke it up for readability. // Note that this is done before jobs are handed out. for(var/datum/mind/player in ticker.mode.get_players_for_role(role_type, id)) - if(ghosts_only && !istype(player.current, /mob/dead)) + if(ghosts_only && !istype(player.current, /mob/observer/dead)) log_debug("[key_name(player)] is not eligible to become a [role_text]: Only ghosts may join as this role!") else if(player.special_role) log_debug("[key_name(player)] is not eligible to become a [role_text]: They already have a special role ([player.special_role])!") @@ -124,7 +124,7 @@ return 0 player.current << "You have been selected this round as an antagonist!" message_admins("[uppertext(ticker.mode.name)]: Selected [player] as a [role_text].") - if(istype(player.current, /mob/dead)) + if(istype(player.current, /mob/observer/dead)) create_default(player.current) else add_antagonist(player,0,0,0,1,1) diff --git a/code/game/antagonist/antagonist_add.dm b/code/game/antagonist/antagonist_add.dm index 1598aacfe8..9f594f9b63 100644 --- a/code/game/antagonist/antagonist_add.dm +++ b/code/game/antagonist/antagonist_add.dm @@ -8,7 +8,7 @@ player.assigned_role = role_text player.special_role = role_text - if(istype(player.current, /mob/dead)) + if(istype(player.current, /mob/observer/dead)) create_default(player.current) else create_antagonist(player, move_to_spawn, do_not_announce, preserve_appearance) diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index 29d519355e..b37342ced5 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -159,7 +159,7 @@ || locate(/obj/machinery/computer/cloning, get_step(src, WEST))) if(!M.client && M.mind) - for(var/mob/dead/observer/ghost in player_list) + for(var/mob/observer/dead/ghost in player_list) if(ghost.mind == M.mind) ghost << "Your corpse has been placed into a cloning scanner. Return to your body if you want to be resurrected/cloned! (Verbs -> Ghost -> Re-enter corpse)" break diff --git a/code/game/gamemodes/cult/cultify/mob.dm b/code/game/gamemodes/cult/cultify/mob.dm index 154078de3d..14bb380a19 100644 --- a/code/game/gamemodes/cult/cultify/mob.dm +++ b/code/game/gamemodes/cult/cultify/mob.dm @@ -6,7 +6,7 @@ /mob/proc/cultify() return -/mob/dead/cultify() +/mob/observer/dead/cultify() if(icon_state != "ghost-narsie") icon = 'icons/mob/mob.dmi' icon_state = "ghost-narsie" @@ -21,7 +21,7 @@ C << "The Geometer of Blood is overjoyed to be reunited with its followers, and accepts your body in sacrifice. As reward, you have been gifted with the shell of an Harvester.
Your tendrils can use and draw runes without need for a tome, your eyes can see beings through walls, and your mind can open any door. Use these assets to serve Nar-Sie and bring him any remaining living human in the world.
You can teleport yourself back to Nar-Sie along with any being under yourself at any time using your \"Harvest\" spell.
" dust() else if(client) - var/mob/dead/G = (ghostize()) + var/mob/observer/dead/G = (ghostize()) G.icon = 'icons/mob/mob.dmi' G.icon_state = "ghost-narsie" G.overlays = 0 diff --git a/code/game/gamemodes/cult/narsie.dm b/code/game/gamemodes/cult/narsie.dm index a3248a07e5..f746e70297 100644 --- a/code/game/gamemodes/cult/narsie.dm +++ b/code/game/gamemodes/cult/narsie.dm @@ -298,7 +298,7 @@ var/global/list/narsie_list = list() acquire(pick(cultists)) return //no living cultists, pick a living human instead. - for(var/mob/dead/observer/ghost in player_list) + for(var/mob/observer/dead/ghost in player_list) if(!ghost.client) continue var/turf/pos = get_turf(ghost) diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index d8c41eea42..569d034cad 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -343,8 +343,8 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa"," user.attack_log += text("\[[time_stamp()]\] Used [name] on [M.name] ([M.ckey])") msg_admin_attack("[user.name] ([user.ckey]) used [name] on [M.name] ([M.ckey]) (JMP)") - if(istype(M,/mob/dead)) - var/mob/dead/D = M + if(istype(M,/mob/observer/dead)) + var/mob/observer/dead/D = M D.manifest(user) return if(!istype(M)) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 06eb8fd7c2..02acb8d3ab 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -342,8 +342,8 @@ var/list/sacrificed = list() usr << "The sacrifical corpse is not dead. You must free it from this world of illusions before it may be used." return fizzle() - var/mob/dead/observer/ghost - for(var/mob/dead/observer/O in loc) + var/mob/observer/dead/ghost + for(var/mob/observer/dead/O in loc) if(!O.client) continue if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue ghost = O @@ -437,8 +437,8 @@ var/list/sacrificed = list() src = null if(usr.loc!=this_rune.loc) return this_rune.fizzle() - var/mob/dead/observer/ghost - for(var/mob/dead/observer/O in this_rune.loc) + var/mob/observer/dead/ghost + for(var/mob/observer/dead/O in this_rune.loc) if(!O.client) continue if(!O.MayRespawn()) continue if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue diff --git a/code/game/gamemodes/endgame/supermatter_cascade/blob.dm b/code/game/gamemodes/endgame/supermatter_cascade/blob.dm index 2f12370f58..c25e3c5567 100644 --- a/code/game/gamemodes/endgame/supermatter_cascade/blob.dm +++ b/code/game/gamemodes/endgame/supermatter_cascade/blob.dm @@ -112,7 +112,7 @@ /turf/unsimulated/wall/supermatter/proc/Consume(var/mob/living/user) - if(istype(user,/mob/dead/observer)) + if(istype(user,/mob/observer)) return qdel(user) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 2eb359da87..4964984394 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -537,7 +537,7 @@ proc/display_roundstart_logout_report() continue //Dead continue //Happy connected client - for(var/mob/dead/observer/D in mob_list) + for(var/mob/observer/dead/D in mob_list) if(D.mind && (D.mind.original == L || D.mind.current == L)) if(L.stat == DEAD) if(L.suiciding) //Suicider diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index ea15bb327d..b33bdf2612 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -387,8 +387,8 @@ var/global/datum/controller/gameticker/ticker else Player << "You missed the crew transfer after the events on [station_name()] as [Player.real_name]." else - if(istype(Player,/mob/dead/observer)) - var/mob/dead/observer/O = Player + if(istype(Player,/mob/observer/dead)) + var/mob/observer/dead/O = Player if(!O.started_as_observer) Player << "You did not survive the events on [station_name()]..." else diff --git a/code/game/machinery/atmoalter/meter.dm b/code/game/machinery/atmoalter/meter.dm index e2a0aed826..5f0860606b 100644 --- a/code/game/machinery/atmoalter/meter.dm +++ b/code/game/machinery/atmoalter/meter.dm @@ -68,7 +68,7 @@ /obj/machinery/meter/examine(mob/user) var/t = "A gas flow meter. " - if(get_dist(user, src) > 3 && !(istype(user, /mob/living/silicon/ai) || istype(user, /mob/dead))) + if(get_dist(user, src) > 3 && !(istype(user, /mob/living/silicon/ai) || istype(user, /mob/observer/dead))) t += "You are too far away to read it." else if(stat & (NOPOWER|BROKEN)) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 7d77de761f..a06b22927d 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -87,7 +87,7 @@ if(ckey(clonemind.key) != R.ckey) return 0 else - for(var/mob/dead/observer/G in player_list) + for(var/mob/observer/dead/G in player_list) if(G.ckey == R.ckey) if(G.can_reenter_corpse) break diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm index 6a61a082b9..b64f5923c8 100644 --- a/code/game/machinery/telecomms/broadcaster.dm +++ b/code/game/machinery/telecomms/broadcaster.dm @@ -298,7 +298,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept continue // Ghosts hearing all radio chat don't want to hear syndicate intercepts, they're duplicates - if(data == 3 && istype(R, /mob/dead/observer) && R.client && R.client.prefs && (R.client.prefs.toggles & CHAT_GHOSTRADIO)) + if(data == 3 && istype(R, /mob/observer/dead) && R.client && R.client.prefs && (R.client.prefs.toggles & CHAT_GHOSTRADIO)) continue // --- Check for compression --- diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index d5d03749be..b107dcc42d 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -85,7 +85,7 @@ if(..()) return /* Ghosts can't use this one because it's a direct selection */ - if(istype(user, /mob/dead/observer)) return + if(istype(user, /mob/observer/dead)) return var/list/L = list() var/list/areaindex = list() diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm index 59a71ddaa8..fa521c104a 100644 --- a/code/game/objects/effects/step_triggers.dm +++ b/code/game/objects/effects/step_triggers.dm @@ -13,7 +13,7 @@ ..() if(!H) return - if(istype(H, /mob/dead/observer) && !affect_ghosts) + if(istype(H, /mob/observer) && !affect_ghosts) return Trigger(H) diff --git a/code/game/objects/items/devices/communicator/communicator.dm b/code/game/objects/items/devices/communicator/communicator.dm index 4e552cc513..2906cb756d 100644 --- a/code/game/objects/items/devices/communicator/communicator.dm +++ b/code/game/objects/items/devices/communicator/communicator.dm @@ -109,7 +109,7 @@ var/global/list/obj/item/device/communicator/all_communicators = list() if(!comm || !comm.exonet || !comm.exonet.address || comm.exonet.address == src.exonet.address) //Don't add addressless devices, and don't add ourselves. continue src.known_devices |= comm - for(var/mob/dead/observer/O in dead_mob_list) + for(var/mob/observer/dead/O in dead_mob_list) if(!O.client || O.client.prefs.communicator_visibility == 0) continue src.known_devices |= O @@ -157,13 +157,13 @@ var/global/list/obj/item/device/communicator/all_communicators = list() populate_known_devices() //Update the devices so ghosts can see the list on NanoUI. ..() -/mob/dead/observer +/mob/observer/dead var/datum/exonet_protocol/exonet = null // Proc: New() // Parameters: None // Description: Gives ghosts an exonet address based on their key and ghost name. -/mob/dead/observer/New() +/mob/observer/dead/New() . = ..() spawn(20) exonet = new(src) @@ -175,7 +175,7 @@ var/global/list/obj/item/device/communicator/all_communicators = list() // Proc: Destroy() // Parameters: None // Description: Removes the ghost's address and nulls the exonet datum, to allow qdel()ing. -/mob/dead/observer/Destroy() +/mob/observer/dead/Destroy() . = ..() if(exonet) exonet.remove_address() @@ -200,7 +200,7 @@ var/global/list/obj/item/device/communicator/all_communicators = list() communicators[++communicators.len] = list("name" = sanitize(comm.name), "address" = comm.exonet.address) //Now for ghosts who we pretend have communicators. - for(var/mob/dead/observer/O in known_devices) + for(var/mob/observer/dead/O in known_devices) if(O.client && O.client.prefs.communicator_visibility == 1 && O.exonet) communicators[++communicators.len] = list("name" = sanitize("[O.client.prefs.real_name]'s communicator"), "address" = O.exonet.address) @@ -210,7 +210,7 @@ var/global/list/obj/item/device/communicator/all_communicators = list() invites[++invites.len] = list("name" = sanitize(comm.name), "address" = comm.exonet.address) //Ghosts we invited. - for(var/mob/dead/observer/O in voice_invites) + for(var/mob/observer/dead/O in voice_invites) if(O.exonet && O.client) invites[++invites.len] = list("name" = sanitize("[O.client.prefs.real_name]'s communicator"), "address" = O.exonet.address) @@ -220,7 +220,7 @@ var/global/list/obj/item/device/communicator/all_communicators = list() requests[++requests.len] = list("name" = sanitize(comm.name), "address" = comm.exonet.address) //Ghosts that want to talk to us. - for(var/mob/dead/observer/O in voice_requests) + for(var/mob/observer/dead/O in voice_requests) if(O.exonet && O.client) requests[++requests.len] = list("name" = sanitize("[O.client.prefs.real_name]'s communicator"), "address" = O.exonet.address) @@ -342,7 +342,7 @@ var/global/list/obj/item/device/communicator/all_communicators = list() // Proc: receive_exonet_message() // Parameters: 3 (origin atom - the source of the message's holder, origin_address - where the message came from, message - the message received) // Description: Handles voice requests and invite messages originating from both real communicators and ghosts. Also includes a ping response. -/mob/dead/observer/receive_exonet_message(origin_atom, origin_address, message) +/mob/observer/dead/receive_exonet_message(origin_atom, origin_address, message) if(message == "voice") if(istype(origin_atom, /obj/item/device/communicator)) var/obj/item/device/communicator/comm = origin_atom @@ -600,7 +600,7 @@ var/global/list/obj/item/device/communicator/all_communicators = list() // Verb: join_as_voice() // Parameters: None // Description: Allows ghosts to call communicators, if they meet all the requirements. -/mob/dead/verb/join_as_voice() +/mob/observer/dead/verb/join_as_voice() set category = "Ghost" set name = "Call Communicator" set desc = "If there is a communicator available, send a request to speak through it. This will reset your respawn timer, if someone picks up." @@ -643,7 +643,7 @@ var/global/list/obj/item/device/communicator/all_communicators = list() var/choice = input(src,"Send a voice request to whom?") as null|anything in choices if(choice) var/obj/item/device/communicator/chosen_communicator = choice - var/mob/dead/observer/O = src + var/mob/observer/dead/O = src if(O.exonet) O.exonet.send_message(chosen_communicator.exonet.address, "voice") diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index da19137043..e1332dda1e 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -156,7 +156,7 @@ var/global/list/default_medbay_channels = list( var/obj/item/weapon/card/id/I = GetIdCard() return has_access(list(), req_one_accesses, I ? I.GetAccess() : list()) -/mob/dead/observer/has_internal_radio_channel_access(var/list/req_one_accesses) +/mob/observer/dead/has_internal_radio_channel_access(var/list/req_one_accesses) return can_admin_interact() /obj/item/device/radio/proc/text_wires() diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 7cccb0eb10..11c312048d 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -185,7 +185,7 @@ if(!M.brainmob.key) var/ghost_can_reenter = 0 if(M.brainmob.mind) - for(var/mob/dead/observer/G in player_list) + for(var/mob/observer/dead/G in player_list) if(G.can_reenter_corpse && G.mind == M.brainmob.mind) ghost_can_reenter = 1 break diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index ccd6ab0adb..a13df854cb 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -67,7 +67,7 @@ return 0 if(!R.key) - for(var/mob/dead/observer/ghost in player_list) + for(var/mob/observer/dead/ghost in player_list) if(ghost.mind && ghost.mind.current == R) R.key = ghost.key diff --git a/code/game/response_team.dm b/code/game/response_team.dm index 7a536cd6ca..fd7fbe1b9b 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -46,7 +46,7 @@ client/verb/JoinResponseTeam() usr << "You cannot join the response team at this time." return - if(istype(usr,/mob/dead/observer) || istype(usr,/mob/new_player)) + if(istype(usr,/mob/observer/dead) || istype(usr,/mob/new_player)) if(!send_emergency_team) usr << "No emergency response team is currently being sent." return diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm index f12d774137..f1e52a1b05 100644 --- a/code/game/verbs/who.dm +++ b/code/game/verbs/who.dm @@ -18,7 +18,7 @@ entry += " - Unconscious" if(DEAD) if(isobserver(C.mob)) - var/mob/dead/observer/O = C.mob + var/mob/observer/dead/O = C.mob if(O.started_as_observer) entry += " - Observing" else diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 108fd45f27..c77c5c4656 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -1257,7 +1257,7 @@ proc/admin_notice(var/message, var/rights) //Returns 1 to let the dragdrop code know we are trapping this event //Returns 0 if we don't plan to trap the event -/datum/admins/proc/cmd_ghost_drag(var/mob/dead/observer/frommob, var/mob/living/tomob) +/datum/admins/proc/cmd_ghost_drag(var/mob/observer/dead/frommob, var/mob/living/tomob) if(!istype(frommob)) return //Extra sanity check to make sure only observers are shoved into things diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 4358d2f1cb..b2e747dafd 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -399,9 +399,9 @@ var/list/admin_verbs_mentor = list( set category = "Admin" set name = "Aghost" if(!holder) return - if(istype(mob,/mob/dead/observer)) + if(istype(mob,/mob/observer/dead)) //re-enter - var/mob/dead/observer/ghost = mob + var/mob/observer/dead/ghost = mob if(!is_mentor(usr.client)) ghost.can_reenter_corpse = 1 if(ghost.can_reenter_corpse) @@ -417,7 +417,7 @@ var/list/admin_verbs_mentor = list( else //ghostize var/mob/body = mob - var/mob/dead/observer/ghost = body.ghostize(1) + var/mob/observer/dead/ghost = body.ghostize(1) ghost.admin_ghosted = 1 if(body) body.teleop = ghost diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 40f10e3f44..c17ef6486e 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -262,7 +262,7 @@ message_admins("\blue [key_name_admin(usr)] has used rudimentary transformation on [key_name_admin(M)]. Transforming to [href_list["simplemake"]]; deletemob=[delmob]", 1) switch(href_list["simplemake"]) - if("observer") M.change_mob_type( /mob/dead/observer , null, null, delmob ) + if("observer") M.change_mob_type( /mob/observer/dead , null, null, delmob ) if("larva") M.change_mob_type( /mob/living/carbon/alien/larva , null, null, delmob ) if("nymph") M.change_mob_type( /mob/living/carbon/alien/diona , null, null, delmob ) if("human") M.change_mob_type( /mob/living/carbon/human , null, null, delmob, href_list["species"]) @@ -1927,7 +1927,7 @@ mob/living/silicon/ai/can_centcom_reply() if(client && eyeobj) return "|EYE" -/mob/dead/observer/extra_admin_link(var/source) +/mob/observer/dead/extra_admin_link(var/source) if(mind && mind.current) return "|BDY" diff --git a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm index e579ca1544..e57720bb62 100644 --- a/code/modules/admin/verbs/adminjump.dm +++ b/code/modules/admin/verbs/adminjump.dm @@ -1,7 +1,7 @@ /mob/proc/on_mob_jump() return -/mob/dead/observer/on_mob_jump() +/mob/observer/dead/on_mob_jump() following = null /client/proc/Jump(var/area/A in return_sorted_areas()) diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index 61050526d5..f031bc2835 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -21,7 +21,7 @@ if(T.mob) if(istype(T.mob, /mob/new_player)) targets["(New Player) - [T]"] = T - else if(istype(T.mob, /mob/dead/observer)) + else if(istype(T.mob, /mob/observer/dead)) targets["[T.mob.name](Ghost) - [T]"] = T else targets["[T.mob.real_name](as [T.mob.name]) - [T]"] = T diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 3db3cfbca6..509d09a5c8 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -85,7 +85,7 @@ var/mob/choice = input("Choose a player to play the pAI", "Spawn pAI") in available if(!choice) return 0 - if(!istype(choice, /mob/dead/observer)) + if(!istype(choice, /mob/observer/dead)) var/confirm = input("[choice.key] isn't ghosting right now. Are you sure you want to yank them out of them out of their body and place them in this pAI?", "Spawn pAI Confirmation", "No") in list("Yes", "No") if(confirm != "Yes") return 0 @@ -231,7 +231,7 @@ set name = "Del-All" // to prevent REALLY stupid deletions - var/blocked = list(/obj, /mob, /mob/living, /mob/living/carbon, /mob/living/carbon/human, /mob/dead, /mob/dead/observer, /mob/living/silicon, /mob/living/silicon/robot, /mob/living/silicon/ai) + var/blocked = list(/obj, /mob, /mob/living, /mob/living/carbon, /mob/living/carbon/human, /mob/observer/dead, /mob/living/silicon, /mob/living/silicon/robot, /mob/living/silicon/ai) var/hsbitem = input(usr, "Choose an object to delete.", "Delete:") as null|anything in typesof(/obj) + typesof(/mob) - blocked if(hsbitem) for(var/atom/O in world) @@ -299,7 +299,7 @@ if(alert("This mob is being controlled by [M.ckey]. Are you sure you wish to assume control of it? [M.ckey] will be made a ghost.",,"Yes","No") != "Yes") return else - var/mob/dead/observer/ghost = new/mob/dead/observer(M,1) + var/mob/observer/dead/ghost = new/mob/observer/dead(M,1) ghost.ckey = M.ckey message_admins("\blue [key_name_admin(usr)] assumed direct control of [M].", 1) log_admin("[key_name(usr)] assumed direct control of [M].") diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index c1cde11dad..cd911cf799 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -236,7 +236,7 @@ Ccomp's first proc. var/list/ghosts = list() var/list/sortmob = sortAtom(mob_list) // get the mob list. /var/any=0 - for(var/mob/dead/observer/M in sortmob) + for(var/mob/observer/dead/M in sortmob) mobs.Add(M) //filter it where it's only ghosts any = 1 //if no ghosts show up, any will just be 0 if(!any) @@ -266,7 +266,7 @@ Ccomp's first proc. src << "Hrm, appears you didn't select a ghost" // Sanity check, if no ghosts in the list we don't want to edit a null variable and cause a runtime error. return - var/mob/dead/observer/G = ghosts[target] + var/mob/observer/dead/G = ghosts[target] if(G.has_enabled_antagHUD && config.antag_hud_restricted) var/response = alert(src, "Are you sure you wish to allow this individual to play?","Ghost has used AntagHUD","Yes","No") if(response == "No") return @@ -291,9 +291,9 @@ Ccomp's first proc. src << "Only administrators may use this command." var/action="" if(config.antag_hud_allowed) - for(var/mob/dead/observer/g in get_ghosts()) + for(var/mob/observer/dead/g in get_ghosts()) if(!g.client.holder) //Remove the verb from non-admin ghosts - g.verbs -= /mob/dead/observer/verb/toggle_antagHUD + g.verbs -= /mob/observer/dead/verb/toggle_antagHUD if(g.antagHUD) g.antagHUD = 0 // Disable it on those that have it enabled g.has_enabled_antagHUD = 2 // We'll allow them to respawn @@ -302,9 +302,9 @@ Ccomp's first proc. src << "\red AntagHUD usage has been disabled" action = "disabled" else - for(var/mob/dead/observer/g in get_ghosts()) + for(var/mob/observer/dead/g in get_ghosts()) if(!g.client.holder) // Add the verb back for all non-admin ghosts - g.verbs += /mob/dead/observer/verb/toggle_antagHUD + g.verbs += /mob/observer/dead/verb/toggle_antagHUD g << "\blue The Administrator has enabled AntagHUD " // Notify all observers they can now use AntagHUD config.antag_hud_allowed = 1 action = "enabled" @@ -324,13 +324,13 @@ Ccomp's first proc. src << "Only administrators may use this command." var/action="" if(config.antag_hud_restricted) - for(var/mob/dead/observer/g in get_ghosts()) + for(var/mob/observer/dead/g in get_ghosts()) g << "\blue The administrator has lifted restrictions on joining the round if you use AntagHUD" action = "lifted restrictions" config.antag_hud_restricted = 0 src << "\blue AntagHUD restrictions have been lifted" else - for(var/mob/dead/observer/g in get_ghosts()) + for(var/mob/observer/dead/g in get_ghosts()) g << "\red The administrator has placed restrictions on joining the round if you use AntagHUD" g << "\red Your AntagHUD has been disabled, you may choose to re-enabled it but will be under restrictions " g.antagHUD = 0 @@ -358,8 +358,8 @@ Traitors and the like can also be revived with the previous role mostly intact. if(!input) return - var/mob/dead/observer/G_found - for(var/mob/dead/observer/G in player_list) + var/mob/observer/dead/G_found + for(var/mob/observer/dead/G in player_list) if(G.ckey == input) G_found = G break @@ -627,7 +627,7 @@ Traitors and the like can also be revived with the previous role mostly intact. log_admin("[key_name(usr)] has gibbed [key_name(M)]") message_admins("[key_name_admin(usr)] has gibbed [key_name_admin(M)]", 1) - if(istype(M, /mob/dead/observer)) + if(istype(M, /mob/observer/dead)) gibs(M.loc) return @@ -640,7 +640,7 @@ Traitors and the like can also be revived with the previous role mostly intact. var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No") if(confirm == "Yes") - if (istype(mob, /mob/dead/observer)) // so they don't spam gibs everywhere + if (istype(mob, /mob/observer/dead)) // so they don't spam gibs everywhere return else mob.gib() diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 78da7f8b52..075506ecee 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -663,7 +663,7 @@ /obj/item/clothing/under/proc/set_sensors(mob/usr as mob) var/mob/M = usr - if (istype(M, /mob/dead/)) return + if (istype(M, /mob/observer)) return if (usr.stat || usr.restrained()) return if(has_sensor >= 2) usr << "The controls are locked." diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index f4cd0dbbc8..214f63c223 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -129,7 +129,7 @@ item_state = "s-ninja" flags_inv = HIDEFACE body_parts_covered = 0 - var/mob/eye/aiEye/eye + var/mob/observer/eye/aiEye/eye /obj/item/clothing/mask/ai/New() eye = new(src) diff --git a/code/modules/ghosttrap/trap.dm b/code/modules/ghosttrap/trap.dm index 97fa843ce1..a3de9fe145 100644 --- a/code/modules/ghosttrap/trap.dm +++ b/code/modules/ghosttrap/trap.dm @@ -22,7 +22,7 @@ proc/populate_ghost_traps() var/ghost_trap_role = "Positronic Brain" // Check for bans, proper atom types, etc. -/datum/ghosttrap/proc/assess_candidate(var/mob/dead/observer/candidate) +/datum/ghosttrap/proc/assess_candidate(var/mob/observer/dead/candidate) if(!istype(candidate) || !candidate.client || !candidate.ckey) return 0 if(!candidate.MayRespawn()) @@ -39,7 +39,7 @@ proc/populate_ghost_traps() /datum/ghosttrap/proc/request_player(var/mob/target, var/request_string) if(!target) return - for(var/mob/dead/observer/O in player_list) + for(var/mob/observer/dead/O in player_list) if(!O.MayRespawn()) continue if(islist(ban_checks)) @@ -56,7 +56,7 @@ proc/populate_ghost_traps() if(..()) return 1 if(href_list["candidate"] && href_list["target"]) - var/mob/dead/observer/candidate = locate(href_list["candidate"]) // BYOND magic. + var/mob/observer/dead/candidate = locate(href_list["candidate"]) // BYOND magic. var/mob/target = locate(href_list["target"]) // So much BYOND magic. if(!target || !candidate) return diff --git a/code/modules/hydroponics/trays/tray.dm b/code/modules/hydroponics/trays/tray.dm index 36d0101e1e..d49680bd41 100644 --- a/code/modules/hydroponics/trays/tray.dm +++ b/code/modules/hydroponics/trays/tray.dm @@ -129,7 +129,7 @@ return 1 return ..() -/obj/machinery/portable_atmospherics/hydroponics/attack_ghost(var/mob/dead/observer/user) +/obj/machinery/portable_atmospherics/hydroponics/attack_ghost(var/mob/observer/dead/user) if(!(harvest && seed && seed.has_mob_product)) return diff --git a/code/modules/mob/dead/death.dm b/code/modules/mob/dead/death.dm index 48a04a834c..1be552886b 100644 --- a/code/modules/mob/dead/death.dm +++ b/code/modules/mob/dead/death.dm @@ -1,5 +1,5 @@ -/mob/dead/dust() //ghosts can't be vaporised. +/mob/observer/dust() //ghosts can't be vaporised. return -/mob/dead/gib() //ghosts can't be gibbed. +/mob/observer/gib() //ghosts can't be gibbed. return diff --git a/code/modules/mob/dead/observer/login.dm b/code/modules/mob/dead/observer/login.dm index bf9b607a38..73605d1328 100644 --- a/code/modules/mob/dead/observer/login.dm +++ b/code/modules/mob/dead/observer/login.dm @@ -1,4 +1,4 @@ -/mob/dead/observer/Login() +/mob/observer/dead/Login() ..() if (ghostimage) ghostimage.icon_state = src.icon_state diff --git a/code/modules/mob/dead/observer/logout.dm b/code/modules/mob/dead/observer/logout.dm index 11c6c3c834..573c44f468 100644 --- a/code/modules/mob/dead/observer/logout.dm +++ b/code/modules/mob/dead/observer/logout.dm @@ -1,4 +1,4 @@ -/mob/dead/observer/Logout() +/mob/observer/dead/Logout() ..() spawn(0) if(src && !key) //we've transferred to another mob. This ghost should be deleted. diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 714b001f69..68c631101d 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -1,14 +1,18 @@ var/global/list/image/ghost_darkness_images = list() //this is a list of images for things ghosts should still be able to see when they toggle darkness var/global/list/image/ghost_sightless_images = list() //this is a list of images for things ghosts should still be able to see even without ghost sight -/mob/dead/observer +/mob/observer + name = "observer" + desc = "This shouldn't appear" + density = 0 + +/mob/observer/dead name = "ghost" desc = "It's a g-g-g-g-ghooooost!" //jinkies! icon = 'icons/mob/mob.dmi' icon_state = "ghost" layer = 4 stat = DEAD - density = 0 canmove = 0 blinded = 0 anchored = 1 // don't get pushed around @@ -31,11 +35,11 @@ var/global/list/image/ghost_sightless_images = list() //this is a list of images var/seedarkness = 1 incorporeal_move = 1 -/mob/dead/observer/New(mob/body) +/mob/observer/dead/New(mob/body) sight |= SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF see_invisible = SEE_INVISIBLE_OBSERVER see_in_dark = 100 - verbs += /mob/dead/observer/proc/dead_tele + verbs += /mob/observer/dead/proc/dead_tele stat = DEAD @@ -81,7 +85,7 @@ var/global/list/image/ghost_sightless_images = list() //this is a list of images real_name = name ..() -/mob/dead/observer/Destroy() +/mob/observer/dead/Destroy() if (ghostimage) ghost_darkness_images -= ghostimage qdel(ghostimage) @@ -89,7 +93,7 @@ var/global/list/image/ghost_sightless_images = list() //this is a list of images updateallghostimages() ..() -/mob/dead/observer/Topic(href, href_list) +/mob/observer/dead/Topic(href, href_list) if (href_list["track"]) var/mob/target = locate(href_list["track"]) in mob_list if(target) @@ -97,19 +101,19 @@ var/global/list/image/ghost_sightless_images = list() //this is a list of images -/mob/dead/attackby(obj/item/W, mob/user) +/mob/observer/dead/attackby(obj/item/W, mob/user) if(istype(W,/obj/item/weapon/book/tome)) - var/mob/dead/M = src + var/mob/observer/dead/M = src M.manifest(user) -/mob/dead/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) +/mob/observer/dead/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) return 1 /* Transfer_mind is there to check if mob is being deleted/not going to have a body. Works together with spawning an observer, noted above. */ -/mob/dead/observer/Life() +/mob/observer/dead/Life() ..() if(!loc) return if(!client) return 0 @@ -131,13 +135,13 @@ Works together with spawning an observer, noted above. process_medHUD(src) -/mob/dead/proc/process_medHUD(var/mob/M) +/mob/observer/dead/proc/process_medHUD(var/mob/M) var/client/C = M.client for(var/mob/living/carbon/human/patient in oview(M, 14)) C.images += patient.hud_list[HEALTH_HUD] C.images += patient.hud_list[STATUS_HUD_OOC] -/mob/dead/proc/assess_targets(list/target_list, mob/dead/observer/U) +/mob/observer/dead/proc/assess_targets(list/target_list, mob/observer/dead/U) var/client/C = U.client for(var/mob/living/carbon/human/target in target_list) C.images += target.hud_list[SPECIALROLE_HUD] @@ -147,14 +151,14 @@ Works together with spawning an observer, noted above. /mob/proc/ghostize(var/can_reenter_corpse = 1) if(key) - var/mob/dead/observer/ghost = new(src) //Transfer safety to observer spawning proc. + var/mob/observer/dead/ghost = new(src) //Transfer safety to observer spawning proc. ghost.can_reenter_corpse = can_reenter_corpse ghost.timeofdeath = src.timeofdeath //BS12 EDIT ghost.key = key if(ghost.client) ghost.client.time_died_as_mouse = ghost.timeofdeath if(ghost.client && !ghost.client.holder && !config.antag_hud_allowed) // For new ghosts we remove the verb from even showing up if it's not allowed. - ghost.verbs -= /mob/dead/observer/verb/toggle_antagHUD // Poor guys, don't know what they are missing! + ghost.verbs -= /mob/observer/dead/verb/toggle_antagHUD // Poor guys, don't know what they are missing! return ghost /* @@ -183,14 +187,14 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/turf/location = get_turf(src) message_admins("[key_name_admin(usr)] has ghosted. (JMP)") log_game("[key_name_admin(usr)] has ghosted.") - var/mob/dead/observer/ghost = ghostize(0) //0 parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3 + var/mob/observer/dead/ghost = ghostize(0) //0 parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3 ghost.timeofdeath = world.time // Because the living mob won't have a time of death and we want the respawn timer to work properly. announce_ghost_joinleave(ghost) -/mob/dead/observer/can_use_hands() return 0 -/mob/dead/observer/is_active() return 0 +/mob/observer/dead/can_use_hands() return 0 +/mob/observer/dead/is_active() return 0 -/mob/dead/observer/Stat() +/mob/observer/dead/Stat() ..() if(statpanel("Status")) if(emergency_shuttle) @@ -198,7 +202,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(eta_status) stat(null, eta_status) -/mob/dead/observer/verb/reenter_corpse() +/mob/observer/dead/verb/reenter_corpse() set category = "Ghost" set name = "Re-enter Corpse" if(!client) return @@ -224,7 +228,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp announce_ghost_joinleave(mind, 0, "They now occupy their body again.") return 1 -/mob/dead/observer/verb/toggle_medHUD() +/mob/observer/dead/verb/toggle_medHUD() set category = "Ghost" set name = "Toggle MedicHUD" set desc = "Toggles Medical HUD allowing you to see how everyone is doing" @@ -237,7 +241,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp medHUD = 1 src << "\blue Medical HUD Enabled" -/mob/dead/observer/verb/toggle_antagHUD() +/mob/observer/dead/verb/toggle_antagHUD() set category = "Ghost" set name = "Toggle AntagHUD" set desc = "Toggles AntagHUD allowing you to see who is the antagonist" @@ -248,7 +252,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(!config.antag_hud_allowed && (!client.holder || mentor)) src << "\red Admins have disabled this for this round." return - var/mob/dead/observer/M = src + var/mob/observer/dead/M = src if(jobban_isbanned(M, "AntagHUD")) src << "\red You have been banned from using this feature" return @@ -265,16 +269,16 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp M.antagHUD = 1 src << "\blue AntagHUD Enabled" -/mob/dead/observer/proc/dead_tele(A in ghostteleportlocs) +/mob/observer/dead/proc/dead_tele(A in ghostteleportlocs) set category = "Ghost" set name = "Teleport" set desc= "Teleport to a location" - if(!istype(usr, /mob/dead/observer)) + if(!istype(usr, /mob/observer/dead)) usr << "Not when you're not dead!" return - usr.verbs -= /mob/dead/observer/proc/dead_tele + usr.verbs -= /mob/observer/dead/proc/dead_tele spawn(30) - usr.verbs += /mob/dead/observer/proc/dead_tele + usr.verbs += /mob/observer/dead/proc/dead_tele var/area/thearea = ghostteleportlocs[A] if(!thearea) return @@ -300,7 +304,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp usr.forceMove(pick(L)) following = null -/mob/dead/observer/verb/follow(input in getmobs()) +/mob/observer/dead/verb/follow(input in getmobs()) set category = "Ghost" set name = "Follow" // "Haunt" set desc = "Follow and haunt a mob." @@ -310,7 +314,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp ManualFollow(target) // This is the ghost's follow verb with an argument -/mob/dead/observer/proc/ManualFollow(var/atom/movable/target) +/mob/observer/dead/proc/ManualFollow(var/atom/movable/target) if(!target) return @@ -340,7 +344,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp /mob/proc/update_following() . = get_turf(src) - for(var/mob/dead/observer/M in following_mobs) + for(var/mob/observer/dead/M in following_mobs) if(M.following != src) following_mobs -= M else @@ -351,12 +355,12 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/list/following_mobs = list() /mob/Destroy() - for(var/mob/dead/observer/M in following_mobs) + for(var/mob/observer/dead/M in following_mobs) M.following = null following_mobs = null return ..() -/mob/dead/observer/Destroy() +/mob/observer/dead/Destroy() if(ismob(following)) var/mob/M = following M.following_mobs -= src @@ -376,18 +380,18 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp /mob/proc/check_holy(var/turf/T) return 0 -/mob/dead/observer/check_holy(var/turf/T) +/mob/observer/dead/check_holy(var/turf/T) if(check_rights(R_ADMIN|R_FUN, 0, src)) return 0 return (T && T.holy) && (invisibility <= SEE_INVISIBLE_LIVING || (mind in cult.current_antagonists)) -/mob/dead/observer/verb/jumptomob(target in getmobs()) //Moves the ghost instead of just changing the ghosts's eye -Nodrak +/mob/observer/dead/verb/jumptomob(target in getmobs()) //Moves the ghost instead of just changing the ghosts's eye -Nodrak set category = "Ghost" set name = "Jump to Mob" set desc = "Teleport to a mob" - if(istype(usr, /mob/dead/observer)) //Make sure they're an observer! + if(istype(usr, /mob/observer/dead)) //Make sure they're an observer! if (!target)//Make sure we actually have a target return @@ -401,7 +405,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp else src << "This mob is not located in the game world." /* -/mob/dead/observer/verb/boo() +/mob/observer/dead/verb/boo() set category = "Ghost" set name = "Boo!" set desc= "Scare your crew members because of boredom!" @@ -416,22 +420,22 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp return */ -/mob/dead/observer/memory() +/mob/observer/dead/memory() set hidden = 1 src << "\red You are dead! You have no mind to store memory!" -/mob/dead/observer/add_memory() +/mob/observer/dead/add_memory() set hidden = 1 src << "\red You are dead! You have no mind to store memory!" -/mob/dead/observer/Post_Incorpmove() +/mob/observer/dead/Post_Incorpmove() following = null -/mob/dead/observer/verb/analyze_air() +/mob/observer/dead/verb/analyze_air() set name = "Analyze Air" set category = "Ghost" - if(!istype(usr, /mob/dead/observer)) return + if(!istype(usr, /mob/observer/dead)) return // Shamelessly copied from the Gas Analyzers if (!( istype(usr.loc, /turf) )) @@ -453,7 +457,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp src << "\blue Temperature: [round(environment.temperature-T0C,0.1)]°C ([round(environment.temperature,0.1)]K)" src << "\blue Heat Capacity: [round(environment.heat_capacity(),0.1)]" -/mob/dead/observer/verb/become_mouse() +/mob/observer/dead/verb/become_mouse() set name = "Become mouse" set category = "Ghost" @@ -500,7 +504,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp host.ckey = src.ckey host << "You are now a mouse. Try to avoid interaction with players, and do not give hints away that you are more than a simple rodent." -/mob/dead/observer/verb/view_manfiest() +/mob/observer/dead/verb/view_manfiest() set name = "Show Crew Manifest" set category = "Ghost" @@ -511,7 +515,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp src << browse(dat, "window=manifest;size=370x420;can_close=1") //This is called when a ghost is drag clicked to something. -/mob/dead/observer/MouseDrop(atom/over) +/mob/observer/dead/MouseDrop(atom/over) if(!usr || !over) return if (isobserver(usr) && usr.client && usr.client.holder && isliving(over)) if (usr.client.holder.cmd_ghost_drag(src,over)) @@ -520,7 +524,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp return ..() //Used for drawing on walls with blood puddles as a spooky ghost. -/mob/dead/verb/bloody_doodle() +/mob/observer/dead/verb/bloody_doodle() set category = "Ghost" set name = "Write in blood" @@ -594,17 +598,17 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp W.add_hiddenprint(src) W.visible_message("\red Invisible fingers crudely paint something in blood on [T]...") -/mob/dead/observer/pointed(atom/A as mob|obj|turf in view()) +/mob/observer/dead/pointed(atom/A as mob|obj|turf in view()) if(!..()) return 0 usr.visible_message("[src] points to [A]") return 1 -/mob/dead/proc/manifest(mob/user) +/mob/observer/dead/proc/manifest(mob/user) var/is_manifest = 0 if(!is_manifest) is_manifest = 1 - verbs += /mob/dead/proc/toggle_visibility + verbs += /mob/observer/dead/proc/toggle_visibility if(src.invisibility != 0) user.visible_message( \ @@ -618,7 +622,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp "You get the feeling that the ghost can't become any more visible." \ ) -/mob/dead/proc/toggle_icon(var/icon) +/mob/observer/dead/proc/toggle_icon(var/icon) if(!client) return @@ -632,7 +636,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/image/J = image('icons/mob/mob.dmi', loc = src, icon_state = icon) client.images += J -/mob/dead/proc/toggle_visibility(var/forced = 0) +/mob/observer/dead/proc/toggle_visibility(var/forced = 0) set category = "Ghost" set name = "Toggle Visibility" set desc = "Allows you to turn (in)visible (almost) at will." @@ -652,7 +656,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp // Give the ghost a cult icon which should be visible only to itself toggle_icon("cult") -/mob/dead/observer/verb/toggle_anonsay() +/mob/observer/dead/verb/toggle_anonsay() set category = "Ghost" set name = "Toggle Anonymous Chat" set desc = "Toggles showing your key in dead chat." @@ -663,13 +667,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp else src << "Your key will be publicly visible again." -/mob/dead/observer/canface() +/mob/observer/dead/canface() return 1 -/mob/dead/observer/proc/can_admin_interact() +/mob/observer/dead/proc/can_admin_interact() return check_rights(R_ADMIN, 0, src) -/mob/dead/observer/verb/toggle_ghostsee() +/mob/observer/dead/verb/toggle_ghostsee() set name = "Toggle Ghost Vision" set desc = "Toggles your ability to see things only ghosts can see, like other ghosts" set category = "Ghost" @@ -677,13 +681,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp updateghostsight() usr << "You [(ghostvision?"now":"no longer")] have ghost vision." -/mob/dead/observer/verb/toggle_darkness() +/mob/observer/dead/verb/toggle_darkness() set name = "Toggle Darkness" set category = "Ghost" seedarkness = !(seedarkness) updateghostsight() -/mob/dead/observer/proc/updateghostsight() +/mob/observer/dead/proc/updateghostsight() if (!seedarkness) see_invisible = SEE_INVISIBLE_NOLIGHTING else @@ -693,10 +697,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp updateghostimages() /proc/updateallghostimages() - for (var/mob/dead/observer/O in player_list) + for (var/mob/observer/dead/O in player_list) O.updateghostimages() -/mob/dead/observer/proc/updateghostimages() +/mob/observer/dead/proc/updateghostimages() if (!client) return if (seedarkness || !ghostvision) @@ -709,7 +713,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if (ghostimage) client.images -= ghostimage //remove ourself -mob/dead/observer/MayRespawn(var/feedback = 0) +mob/observer/dead/MayRespawn(var/feedback = 0) if(!client) return 0 if(mind && mind.current && mind.current.stat != DEAD && can_reenter_corpse) @@ -729,7 +733,7 @@ mob/dead/observer/MayRespawn(var/feedback = 0) if(client && eyeobj) return "|eye" -/mob/dead/observer/extra_ghost_link(var/atom/ghost) +/mob/observer/dead/extra_ghost_link(var/atom/ghost) if(mind && mind.current) return "|body" diff --git a/code/modules/mob/dead/observer/say.dm b/code/modules/mob/dead/observer/say.dm index 6f7d99c616..9dfd3deb44 100644 --- a/code/modules/mob/dead/observer/say.dm +++ b/code/modules/mob/dead/observer/say.dm @@ -1,4 +1,4 @@ -/mob/dead/observer/say(var/message) +/mob/observer/dead/say(var/message) message = sanitize(message) if (!message) @@ -17,7 +17,7 @@ . = src.say_dead(message) -/mob/dead/observer/emote(var/act, var/type, var/message) +/mob/observer/dead/emote(var/act, var/type, var/message) //message = sanitize(message) - already sanitized in verb/me_verb() if(!message) diff --git a/code/modules/mob/freelook/ai/eye.dm b/code/modules/mob/freelook/ai/eye.dm index dce53bb3ca..270c29d653 100644 --- a/code/modules/mob/freelook/ai/eye.dm +++ b/code/modules/mob/freelook/ai/eye.dm @@ -3,15 +3,15 @@ // A mob that the AI controls to look around the station with. // It streams chunks as it moves around, which will show it what the AI can and cannot see. -/mob/eye/aiEye +/mob/observer/eye/aiEye name = "Inactive AI Eye" icon_state = "AI-eye" -/mob/eye/aiEye/New() +/mob/observer/eye/aiEye/New() ..() visualnet = cameranet -/mob/eye/aiEye/setLoc(var/T, var/cancel_tracking = 1) +/mob/observer/eye/aiEye/setLoc(var/T, var/cancel_tracking = 1) if(..()) var/mob/living/silicon/ai/ai = owner if(cancel_tracking) @@ -43,7 +43,7 @@ /mob/living/silicon/ai/proc/create_eyeobj(var/newloc) if(eyeobj) destroy_eyeobj() if(!newloc) newloc = src.loc - eyeobj = PoolOrNew(/mob/eye/aiEye, newloc) + eyeobj = PoolOrNew(/mob/observer/eye/aiEye, newloc) eyeobj.owner = src eyeobj.name = "[src.name] (AI Eye)" // Give it a name if(client) client.eye = eyeobj diff --git a/code/modules/mob/freelook/chunk.dm b/code/modules/mob/freelook/chunk.dm index 9b6b562df3..626a79e28f 100644 --- a/code/modules/mob/freelook/chunk.dm +++ b/code/modules/mob/freelook/chunk.dm @@ -25,7 +25,7 @@ // Add an eye to the chunk, then update if changed. -/datum/chunk/proc/add(mob/eye/eye) +/datum/chunk/proc/add(mob/observer/eye/eye) if(!eye.owner) return eye.visibleChunks += src @@ -38,7 +38,7 @@ // Remove an eye from the chunk, then update if changed. -/datum/chunk/proc/remove(mob/eye/eye) +/datum/chunk/proc/remove(mob/observer/eye/eye) if(!eye.owner) return eye.visibleChunks -= src @@ -91,7 +91,7 @@ if(t.obfuscations[obfuscation.type]) obscured -= t.obfuscations[obfuscation.type] for(var/eye in seenby) - var/mob/eye/m = eye + var/mob/observer/eye/m = eye if(!m || !m.owner) continue if(m.owner.client) @@ -105,7 +105,7 @@ obscured += t.obfuscations[obfuscation.type] for(var/eye in seenby) - var/mob/eye/m = eye + var/mob/observer/eye/m = eye if(!m || !m.owner) seenby -= m continue diff --git a/code/modules/mob/freelook/eye.dm b/code/modules/mob/freelook/eye.dm index 437b2979dc..0c38ad8033 100644 --- a/code/modules/mob/freelook/eye.dm +++ b/code/modules/mob/freelook/eye.dm @@ -3,12 +3,11 @@ // A mob that another mob controls to look around the station with. // It streams chunks as it moves around, which will show it what the controller can and cannot see. -/mob/eye +/mob/observer/eye name = "Eye" icon = 'icons/mob/eye.dmi' icon_state = "default-eye" alpha = 127 - density = 0 var/sprint = 10 var/cooldown = 0 @@ -25,14 +24,14 @@ var/ghostimage = null var/datum/visualnet/visualnet -/mob/eye/New() +/mob/observer/eye/New() ghostimage = image(src.icon,src,src.icon_state) ghost_darkness_images |= ghostimage //so ghosts can see the eye when they disable darkness ghost_sightless_images |= ghostimage //so ghosts can see the eye when they disable ghost sight updateallghostimages() ..() -mob/eye/Destroy() +mob/observer/eye/Destroy() if (ghostimage) ghost_darkness_images -= ghostimage ghost_sightless_images -= ghostimage @@ -41,30 +40,30 @@ mob/eye/Destroy() updateallghostimages() ..() -/mob/eye/Move(n, direct) +/mob/observer/eye/Move(n, direct) if(owner == src) return EyeMove(n, direct) return 0 -/mob/eye/airflow_hit(atom/A) +/mob/observer/eye/airflow_hit(atom/A) airflow_speed = 0 airflow_dest = null -/mob/eye/examinate() +/mob/observer/eye/examinate() set popup_menu = 0 set src = usr.contents return 0 -/mob/eye/pointed() +/mob/observer/eye/pointed() set popup_menu = 0 set src = usr.contents return 0 -/mob/eye/examine(mob/user) +/mob/observer/eye/examine(mob/user) // Use this when setting the eye's location. // It will also stream the chunk that the new loc is in. -/mob/eye/proc/setLoc(var/T) +/mob/observer/eye/proc/setLoc(var/T) if(owner) T = get_turf(T) if(T != loc) @@ -82,13 +81,13 @@ mob/eye/Destroy() return 1 return 0 -/mob/eye/proc/getLoc() +/mob/observer/eye/proc/getLoc() if(owner) if(!isturf(owner.loc) || !owner.client) return return loc /mob - var/mob/eye/eyeobj + var/mob/observer/eye/eyeobj /mob/proc/EyeMove(n, direct) if(!eyeobj) @@ -96,7 +95,7 @@ mob/eye/Destroy() return eyeobj.EyeMove(n, direct) -/mob/eye/EyeMove(n, direct) +/mob/observer/eye/EyeMove(n, direct) var/initial = initial(sprint) var/max_sprint = 50 diff --git a/code/modules/mob/freelook/life.dm b/code/modules/mob/freelook/life.dm index 1d1248e872..f3994f9a7e 100644 --- a/code/modules/mob/freelook/life.dm +++ b/code/modules/mob/freelook/life.dm @@ -1,4 +1,4 @@ -/mob/eye/Life() +/mob/observer/eye/Life() ..() // If we lost our client, reset the list of visible chunks so they update properly on return if(owner == src && !client) diff --git a/code/modules/mob/freelook/mask/eye.dm b/code/modules/mob/freelook/mask/eye.dm index a0a9960322..b3abb922ab 100644 --- a/code/modules/mob/freelook/mask/eye.dm +++ b/code/modules/mob/freelook/mask/eye.dm @@ -3,11 +3,11 @@ // A mob that a cultists controls to look around the station with. // It streams chunks as it moves around, which will show it what the cultist can and cannot see. -/mob/eye/maskEye +/mob/observer/eye/maskEye name = "Eye of Nar-Sie" acceleration = 0 owner_follows_eye = 1 -/mob/eye/maskEye/New() +/mob/observer/eye/maskEye/New() ..() visualnet = cultnet diff --git a/code/modules/mob/freelook/visualnet.dm b/code/modules/mob/freelook/visualnet.dm index 38cb5bb3d2..24ad252eda 100644 --- a/code/modules/mob/freelook/visualnet.dm +++ b/code/modules/mob/freelook/visualnet.dm @@ -36,7 +36,7 @@ // Updates what the aiEye can see. It is recommended you use this when the aiEye moves or it's location is set. -/datum/visualnet/proc/visibility(mob/eye/eye) +/datum/visualnet/proc/visibility(mob/observer/eye/eye) // 0xf = 15 var/x1 = max(0, eye.x - 16) & ~0xf var/y1 = max(0, eye.y - 16) & ~0xf diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm index f925c32b79..56a9c80082 100644 --- a/code/modules/mob/hear_say.dm +++ b/code/modules/mob/hear_say.dm @@ -4,14 +4,14 @@ if(!client) return - if(speaker && !speaker.client && istype(src,/mob/dead/observer) && client.prefs.toggles & CHAT_GHOSTEARS && !speaker in view(src)) + if(speaker && !speaker.client && istype(src,/mob/observer/dead) && client.prefs.toggles & CHAT_GHOSTEARS && !speaker in view(src)) //Does the speaker have a client? It's either random stuff that observers won't care about (Experiment 97B says, 'EHEHEHEHEHEHEHE') //Or someone snoring. So we make it where they won't hear it. return //make sure the air can transmit speech - hearer's side var/turf/T = get_turf(src) - if ((T) && (!(istype(src, /mob/dead/observer)))) //Ghosts can hear even in vacuum. + if ((T) && (!(istype(src, /mob/observer/dead)))) //Ghosts can hear even in vacuum. var/datum/gas_mixture/environment = T.return_air() var/pressure = (environment)? environment.return_pressure() : 0 if(pressure < SOUND_MINIMUM_PRESSURE && get_dist(speaker, src) > 1) @@ -50,7 +50,7 @@ message = "[message]" var/track = null - if(istype(src, /mob/dead/observer)) + if(istype(src, /mob/observer/dead)) if(italics && client.prefs.toggles & CHAT_GHOSTRADIO) return if(speaker_name != speaker.real_name && speaker.real_name) @@ -177,7 +177,7 @@ else track = "[speaker_name] ([jobname])" - if(istype(src, /mob/dead/observer)) + if(istype(src, /mob/observer/dead)) if(speaker_name != speaker.real_name && !isAI(speaker)) //Announce computer and various stuff that broadcasts doesn't use it's real name but AI's can't pretend to be other mobs. speaker_name = "[speaker.real_name] ([speaker_name])" track = "[speaker_name] ([ghost_follow_link(speaker, src)])" @@ -199,7 +199,7 @@ /mob/proc/on_hear_radio(part_a, speaker_name, track, part_b, formatted) src << "[part_a][speaker_name][part_b][formatted]" -/mob/dead/observer/on_hear_radio(part_a, speaker_name, track, part_b, formatted) +/mob/observer/dead/on_hear_radio(part_a, speaker_name, track, part_b, formatted) src << "[part_a][track][part_b][formatted]" /mob/living/silicon/on_hear_radio(part_a, speaker_name, track, part_b, formatted) diff --git a/code/modules/mob/language/language.dm b/code/modules/mob/language/language.dm index c8474871a7..cc0a1d2016 100644 --- a/code/modules/mob/language/language.dm +++ b/code/modules/mob/language/language.dm @@ -114,7 +114,7 @@ /mob/new_player/hear_broadcast(var/datum/language/language, var/mob/speaker, var/speaker_name, var/message) return -/mob/dead/observer/hear_broadcast(var/datum/language/language, var/mob/speaker, var/speaker_name, var/message) +/mob/observer/dead/hear_broadcast(var/datum/language/language, var/mob/speaker, var/speaker_name, var/message) if(speaker.name == speaker_name || antagHUD) src << "[language.name], [speaker_name] ([ghost_follow_link(speaker, src)]) [message]" else diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm index ada1041753..c065cbdc54 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/carbon/brain/posibrain.dm @@ -23,7 +23,7 @@ spawn(600) reset_search() /obj/item/device/mmi/digital/posibrain/proc/request_player() - for(var/mob/dead/observer/O in player_list) + for(var/mob/observer/dead/O in player_list) if(!O.MayRespawn()) continue if(jobban_isbanned(O, "AI") && jobban_isbanned(O, "Cyborg")) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index f22aecce45..0abdc6ef9a 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -210,7 +210,7 @@ msg += "[T.He] [T.is] small halfling!\n" var/distance = get_dist(usr,src) - if(istype(usr, /mob/dead/observer) || usr.stat == 2) // ghosts can see anything + if(istype(usr, /mob/observer/dead) || usr.stat == 2) // ghosts can see anything distance = 1 if (src.stat) msg += "[T.He] [T.is]n't responding to anything around [T.him] and seems to be asleep.\n" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 94ee52c822..f0ca2d5d96 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -841,7 +841,7 @@ target.show_message("\blue You hear a voice that seems to echo around the room: [say]") usr.show_message("\blue You project your mind into [target.real_name]: [say]") log_say("[key_name(usr)] sent a telepathic message to [key_name(target)]: [say]") - for(var/mob/dead/observer/G in world) + for(var/mob/observer/dead/G in world) G.show_message("Telepathic message from [src] to [target]: [say]") /mob/living/carbon/human/proc/remoteobserve() diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm index 50f46b4bb4..428cc24d5e 100644 --- a/code/modules/mob/living/carbon/human/human_powers.dm +++ b/code/modules/mob/living/carbon/human/human_powers.dm @@ -181,7 +181,7 @@ var/mob/M = targets[target] - if(istype(M, /mob/dead/observer) || M.stat == DEAD) + if(istype(M, /mob/observer/dead) || M.stat == DEAD) src << "Not even a [src.species.name] can speak to the dead." return diff --git a/code/modules/mob/living/carbon/metroid/items.dm b/code/modules/mob/living/carbon/metroid/items.dm index 0080e0a0fc..15455f375e 100644 --- a/code/modules/mob/living/carbon/metroid/items.dm +++ b/code/modules/mob/living/carbon/metroid/items.dm @@ -244,8 +244,8 @@ processing_objects.Add(src) process() - var/mob/dead/observer/ghost - for(var/mob/dead/observer/O in src.loc) + var/mob/observer/dead/ghost + for(var/mob/observer/dead/O in src.loc) if(!O.client) continue if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue ghost = O @@ -256,8 +256,8 @@ icon_state = "golem" attack_hand(mob/living/user as mob) - var/mob/dead/observer/ghost - for(var/mob/dead/observer/O in src.loc) + var/mob/observer/dead/ghost + for(var/mob/observer/dead/O in src.loc) if(!O.client) continue if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue ghost = O @@ -273,7 +273,7 @@ proc/announce_to_ghosts() - for(var/mob/dead/observer/G in player_list) + for(var/mob/observer/dead/G in player_list) if(G.client) var/area/A = get_area(src) if(A) diff --git a/code/modules/mob/living/silicon/ai/examine.dm b/code/modules/mob/living/silicon/ai/examine.dm index 58433a0b28..d00ba6d8d7 100644 --- a/code/modules/mob/living/silicon/ai/examine.dm +++ b/code/modules/mob/living/silicon/ai/examine.dm @@ -39,6 +39,6 @@ /mob/proc/showLaws(var/mob/living/silicon/S) return -/mob/dead/observer/showLaws(var/mob/living/silicon/S) +/mob/observer/dead/showLaws(var/mob/living/silicon/S) if(antagHUD || is_admin(src)) S.laws.show_laws(src) diff --git a/code/modules/mob/living/silicon/pai/recruit.dm b/code/modules/mob/living/silicon/pai/recruit.dm index 91a10bf3e5..ba6a4353bc 100644 --- a/code/modules/mob/living/silicon/pai/recruit.dm +++ b/code/modules/mob/living/silicon/pai/recruit.dm @@ -233,7 +233,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates for(var/datum/paiCandidate/c in paiController.pai_candidates) if(c.ready) var/found = 0 - for(var/mob/dead/observer/o in player_list) + for(var/mob/observer/dead/o in player_list) if(o.key == c.key && o.MayRespawn()) found = 1 if(found) @@ -346,7 +346,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates /datum/paiController/proc/requestRecruits(var/mob/user) inquirer = user - for(var/mob/dead/observer/O in player_list) + for(var/mob/observer/dead/O in player_list) if(!O.MayRespawn()) continue if(jobban_isbanned(O, "pAI")) diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 5356ca9b21..8c0ec04900 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -278,7 +278,7 @@ var/list/mob_hat_cache = list() //Reboot procs. /mob/living/silicon/robot/drone/proc/request_player() - for(var/mob/dead/observer/O in player_list) + for(var/mob/observer/dead/O in player_list) if(jobban_isbanned(O, "Cyborg")) continue if(O.client) diff --git a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm index da1f91e4a3..3f4f43fddc 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm @@ -59,7 +59,7 @@ /obj/machinery/drone_fabricator/examine(mob/user) ..(user) - if(produce_drones && drone_progress >= 100 && istype(user,/mob/dead) && config.allow_drone_spawn && count_drones() < config.max_maint_drones) + if(produce_drones && drone_progress >= 100 && istype(user,/mob/observer/dead) && config.allow_drone_spawn && count_drones() < config.max_maint_drones) user << "
A drone is prepared. Select 'Join As Drone' from the Ghost tab to spawn as a maintenance drone." /obj/machinery/drone_fabricator/proc/create_drone(var/client/player) @@ -70,7 +70,7 @@ if(!produce_drones || !config.allow_drone_spawn || count_drones() >= config.max_maint_drones) return - if(!player || !istype(player.mob,/mob/dead)) + if(!player || !istype(player.mob,/mob/observer/dead)) return announce_ghost_joinleave(player, 0, "They have taken control over a maintenance drone.") @@ -85,7 +85,7 @@ drone_progress = 0 -/mob/dead/verb/join_as_drone() +/mob/observer/dead/verb/join_as_drone() set category = "Ghost" set name = "Join As Drone" diff --git a/code/modules/mob/living/simple_animal/borer/borer.dm b/code/modules/mob/living/simple_animal/borer/borer.dm index ba09c9e5d6..f59f6444e0 100644 --- a/code/modules/mob/living/simple_animal/borer/borer.dm +++ b/code/modules/mob/living/simple_animal/borer/borer.dm @@ -173,7 +173,7 @@ //Procs for grabbing players. /mob/living/simple_animal/borer/proc/request_player() - for(var/mob/dead/observer/O in player_list) + for(var/mob/observer/dead/O in player_list) if(jobban_isbanned(O, "Borer")) continue if(O.client) diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index c4a238f870..6e827565f7 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -57,7 +57,7 @@ handle_movement_target() if(prob(2)) //spooky - var/mob/dead/observer/spook = locate() in range(src,5) + var/mob/observer/dead/spook = locate() in range(src,5) if(spook) var/turf/T = spook.loc var/list/visible = list() diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm index a69c288837..db6eb8f4b7 100644 --- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm +++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm @@ -61,7 +61,7 @@ if(!B.brainmob.key) var/ghost_can_reenter = 0 if(B.brainmob.mind) - for(var/mob/dead/observer/G in player_list) + for(var/mob/observer/dead/G in player_list) if(G.can_reenter_corpse && G.mind == B.brainmob.mind) ghost_can_reenter = 1 break diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 01a0e9105a..55778cce0b 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -388,8 +388,8 @@ return else var/deathtime = world.time - src.timeofdeath - if(istype(src,/mob/dead/observer)) - var/mob/dead/observer/G = src + if(istype(src,/mob/observer/dead)) + var/mob/observer/dead/G = src if(G.has_enabled_antagHUD == 1 && config.antag_hud_restricted) usr << "\blue Upon using the antagHUD you forfeighted the ability to join the round." return diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index bc5b609b89..a6a1ccfdc0 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -266,7 +266,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp var/atom/oldeye=M.client.eye var/aiEyeFlag = 0 - if(istype(oldeye, /mob/eye/aiEye)) + if(istype(oldeye, /mob/observer/eye/aiEye)) aiEyeFlag = 1 var/x @@ -399,8 +399,8 @@ proc/is_blind(A) follow = "([ghost_follow_link(subject, M)]) " if(M.stat != DEAD && M.client.holder) follow = "([admin_jump_link(subject, M.client.holder)]) " - var/mob/dead/observer/DM - if(istype(subject, /mob/dead/observer)) + var/mob/observer/dead/DM + if(istype(subject, /mob/observer/dead)) DM = subject if(M.client.holder) // What admins see lname = "[keyname][(DM && DM.anonsay) ? "*" : (DM ? "" : "^")] ([name])" diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 26b83e30bb..80a3eb5553 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -105,7 +105,7 @@ if(alert(src,"Are you sure you wish to observe? You will have to wait 15 minutes before being able to respawn!","Player Setup","Yes","No") == "Yes") if(!client) return 1 - var/mob/dead/observer/observer = new() + var/mob/observer/dead/observer = new() spawning = 1 src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // MAD JAMS cant last forever yo @@ -131,7 +131,7 @@ observer.real_name = client.prefs.real_name observer.name = observer.real_name if(!client.holder && !config.antag_hud_allowed) // For new ghosts we remove the verb from even showing up if it's not allowed. - observer.verbs -= /mob/dead/observer/verb/toggle_antagHUD // Poor guys, don't know what they are missing! + observer.verbs -= /mob/observer/dead/verb/toggle_antagHUD // Poor guys, don't know what they are missing! observer.key = key qdel(src) diff --git a/code/modules/nano/interaction/default.dm b/code/modules/nano/interaction/default.dm index e682ea5528..157e0e9de1 100644 --- a/code/modules/nano/interaction/default.dm +++ b/code/modules/nano/interaction/default.dm @@ -9,7 +9,7 @@ /mob/proc/default_can_use_topic(var/src_object) return STATUS_CLOSE // By default no mob can do anything with NanoUI -/mob/dead/observer/default_can_use_topic(var/src_object) +/mob/observer/dead/default_can_use_topic(var/src_object) if(can_admin_interact()) return STATUS_INTERACTIVE // Admins are more equal if(!client || get_dist(src_object, src) > client.view) // Preventing ghosts from having a million windows open by limiting to objects in range diff --git a/code/modules/nano/interaction/physical.dm b/code/modules/nano/interaction/physical.dm index 36f9a20971..0571008481 100644 --- a/code/modules/nano/interaction/physical.dm +++ b/code/modules/nano/interaction/physical.dm @@ -8,7 +8,7 @@ /mob/proc/check_physical_distance(var/src_object) return STATUS_CLOSE -/mob/dead/observer/check_physical_distance(var/src_object) +/mob/observer/dead/check_physical_distance(var/src_object) return default_can_use_topic(src_object) /mob/living/check_physical_distance(var/src_object) diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 8def5e7eef..7c38475c26 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -121,7 +121,7 @@ /obj/item/organ/external/examine() ..() - if(in_range(usr, src) || istype(usr, /mob/dead/observer)) + if(in_range(usr, src) || istype(usr, /mob/observer/dead)) for(var/obj/item/I in contents) if(istype(I, /obj/item/organ)) continue diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm index 2253e049a5..891fd809fe 100644 --- a/code/modules/paperwork/clipboard.dm +++ b/code/modules/paperwork/clipboard.dm @@ -147,7 +147,7 @@ if(P && (P.loc == src) && istype(P, /obj/item/weapon/paper) ) - if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon))) + if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/observer/dead) || istype(usr, /mob/living/silicon))) usr << browse("[P.name][stars(P.info)][P.stamps]", "window=[P.name]") onclose(usr, "[P.name]") else diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index 8289b291ad..cfb662a340 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -102,7 +102,7 @@ else if(href_list["read"]) var/obj/item/weapon/paper/P = locate(href_list["read"]) if(P && (P.loc == src) && istype(P)) - if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon))) + if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/observer/dead) || istype(usr, /mob/living/silicon))) usr << browse("[P.name][stars(P.info)][P.stamps]", "window=[P.name]") onclose(usr, "[P.name]") else diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 9cb37d98a9..cc8feae5b2 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -73,14 +73,14 @@ /obj/item/weapon/paper/examine(mob/user) ..() - if(in_range(user, src) || istype(user, /mob/dead/observer)) + if(in_range(user, src) || istype(user, /mob/observer/dead)) show_content(usr) else user << "You have to go closer if you want to read it." return /obj/item/weapon/paper/proc/show_content(var/mob/user, var/forceshow=0) - if(!(istype(user, /mob/living/carbon/human) || istype(user, /mob/dead/observer) || istype(user, /mob/living/silicon)) && !forceshow) + if(!(istype(user, /mob/living/carbon/human) || istype(user, /mob/observer/dead) || istype(user, /mob/living/silicon)) && !forceshow) user << browse("[name][stars(info)][stamps]", "window=[name]") onclose(user, "[name]") else diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index db7a088216..53110bed0f 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -122,7 +122,7 @@ if(istype(pages[page], /obj/item/weapon/paper)) var/obj/item/weapon/paper/P = W - if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon))) + if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/observer/dead) || istype(usr, /mob/living/silicon))) dat+= "[P.name][stars(P.info)][P.stamps]" else dat+= "[P.name][P.info][P.stamps]" diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 128cc62560..1d19b0fd6b 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -866,7 +866,7 @@ if(locked && !issilicon(usr) ) if(isobserver(usr) ) - var/mob/dead/observer/O = usr //Added to allow admin nanoUI interactions. + var/mob/observer/dead/O = usr //Added to allow admin nanoUI interactions. if(!O.can_admin_interact() ) //NanoUI /should/ make this not needed, but better safe than sorry. usr << "Try as you might, your ghostly fingers can't press the buttons." return 1 diff --git a/code/modules/power/singularity/act.dm b/code/modules/power/singularity/act.dm index 23774d526e..d244c4eeaa 100644 --- a/code/modules/power/singularity/act.dm +++ b/code/modules/power/singularity/act.dm @@ -134,10 +134,7 @@ /atom/proc/singuloCanEat() return 1 -/mob/dead/singuloCanEat() - return 0 - -/mob/eye/singuloCanEat() +/mob/observer/singuloCanEat() return 0 /mob/new_player/singuloCanEat() diff --git a/code/modules/random_map/drop/droppod.dm b/code/modules/random_map/drop/droppod.dm index 625568bbf1..da346d2eb7 100644 --- a/code/modules/random_map/drop/droppod.dm +++ b/code/modules/random_map/drop/droppod.dm @@ -112,7 +112,7 @@ // Splatter anything under us that survived the explosion. if(value != SD_EMPTY_TILE && T.contents.len) for(var/atom/movable/AM in T) - if(AM.simulated && !istype(AM, /mob/dead)) + if(AM.simulated && !istype(AM, /mob/observer)) qdel(AM) // Also spawn doors and loot. @@ -173,7 +173,7 @@ else var/list/candidates = list() for(var/client/player in clients) - if(player.mob && istype(player.mob, /mob/dead/observer)) + if(player.mob && istype(player.mob, /mob/observer/dead)) candidates |= player if(!candidates.len) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm index 2e8c8990d0..c3cb7b4d2b 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm @@ -66,7 +66,7 @@ O.color = color /datum/reagent/paint/touch_mob(var/mob/M) - if(istype(M) && !istype(M, /mob/dead)) //painting ghosts: not allowed + if(istype(M) && !istype(M, /mob/observer)) //painting ghosts: not allowed M.color = color //maybe someday change this to paint only clothes and exposed body parts for human mobs. /datum/reagent/paint/get_data() diff --git a/code/modules/spells/spellbook.dm b/code/modules/spells/spellbook.dm index 16cc137654..822bc8da7c 100644 --- a/code/modules/spells/spellbook.dm +++ b/code/modules/spells/spellbook.dm @@ -361,7 +361,7 @@ for(var/V in stored_swap.mind.special_verbs) stored_swap.verbs -= V - var/mob/dead/observer/ghost = stored_swap.ghostize(0) + var/mob/observer/dead/ghost = stored_swap.ghostize(0) ghost.spell_list = stored_swap.spell_list user.mind.transfer_to(stored_swap) diff --git a/code/modules/spells/targeted/mind_transfer.dm b/code/modules/spells/targeted/mind_transfer.dm index 1f20e6afbf..375328016f 100644 --- a/code/modules/spells/targeted/mind_transfer.dm +++ b/code/modules/spells/targeted/mind_transfer.dm @@ -47,7 +47,7 @@ for(var/V in victim.mind.special_verbs) victim.verbs -= V - var/mob/dead/observer/ghost = victim.ghostize(0) + var/mob/observer/dead/ghost = victim.ghostize(0) ghost.spell_list += victim.spell_list//If they have spells, transfer them. Now we basically have a backup mob. caster.mind.transfer_to(victim) From 969636a0f5594501c53c4220ec5131f7b04962bb Mon Sep 17 00:00:00 2001 From: Yoshax Date: Tue, 23 Feb 2016 17:52:41 +0000 Subject: [PATCH 02/61] Adds even more underwear --- code/_helpers/global_lists.dm | 3 ++- icons/mob/human.dmi | Bin 39855 -> 42769 bytes 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm index abb5bd4de6..484e53ef65 100644 --- a/code/_helpers/global_lists.dm +++ b/code/_helpers/global_lists.dm @@ -52,7 +52,8 @@ var/global/list/underwear_m = list( var/global/list/underwear_f = list( "Red" = "f1", "White" = "f2", "Yellow" = "f3", "Blue" = "f4", "Black" = "f5", "Thong" = "f6", "Black Sports" = "f7","White Sports" = "f8", "Black Sports Alt" = "f9", "White Sports Alt" = "f10", "Baby Blue" = "f11", "Green" = "f12", "Pink" = "f13", - "Violet" = "f14", "Thong Alt" = "f15", "Thong Alt Violet" = "f16", "None") + "Violet" = "f14", "Thong Alt" = "f15", "Thong Alt Violet" = "f16", "None", "Halterneck Black" = "f17", "Halterneck Blue" = "f18", "Halterneck Green" = "f19", "Halterneck Purple" = "f20", + "Halterneck Red" = "f21", "Halterneck Teal" = "f22", "Halterneck Violet" = "f23", "Halterneck White" = "14") //undershirt var/global/list/undershirt_t = list( "White tank top" = "u1", "Black tank top" = "u2", "Black shirt" = "u3", diff --git a/icons/mob/human.dmi b/icons/mob/human.dmi index 11183bb3101173e61c4b78411866c50e25292fac..885baf8778437e7f25dd4a37b316837f470267e9 100644 GIT binary patch literal 42769 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 literal 39855 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%0A4);4rI5>wI}fyX??TE?*J*E1fy2Sxc^DgHDarPh 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 Date: Thu, 25 Feb 2016 15:08:30 +0300 Subject: [PATCH 03/61] Removes unused code - old turrets Removes /obj/machinery/turret (by the looks of if they wouldn't fire anyway) Removes /obj/machinery/turretcover Removes /area/turret_protected (new turrets don't use it), its associated procs, changes areas from /area/turret_protected/x to area/x --- code/game/area/Space Station 13 areas.dm | 42 +- code/game/gamemodes/events/power_failure.dm | 4 +- .../gamemodes/malfunction/malf_hardware.dm | 5 - code/game/machinery/turrets.dm | 523 ------------------ maps/overmap/example_sector1.dmm | 232 ++++---- maps/polaris-1.dmm | 214 +++---- maps/polaris-3.dmm | 220 ++++---- polaris.dme | 1 - 8 files changed, 355 insertions(+), 886 deletions(-) delete mode 100644 code/game/machinery/turrets.dm diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index 8ab1944f5e..4b9d257a46 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -77,7 +77,7 @@ var/list/ghostteleportlocs = list() /hook/startup/proc/setupGhostTeleportLocs() for(var/area/AR in world) if(ghostteleportlocs.Find(AR.name)) continue - if(istype(AR, /area/turret_protected/aisat) || istype(AR, /area/derelict) || istype(AR, /area/tdome) || istype(AR, /area/shuttle/specops/centcom)) + if(istype(AR, /area/aisat) || istype(AR, /area/derelict) || istype(AR, /area/tdome) || istype(AR, /area/shuttle/specops/centcom)) ghostteleportlocs += AR.name ghostteleportlocs[AR.name] = AR var/turf/picked = pick(get_area_turfs(AR.type)) @@ -122,8 +122,6 @@ area/space/atmosalert() /area/space/partyalert() return -/area/turret_protected/ - /area/arrival requires_power = 0 @@ -2422,65 +2420,65 @@ area/space/atmosalert() name = "Emergency Storage" icon_state = "storage" -/area/turret_protected/ai_upload +/area/ai_upload name = "\improper AI Upload Chamber" icon_state = "ai_upload" ambience = list('sound/ambience/ambimalf.ogg') -/area/turret_protected/ai_upload_foyer +/area/ai_upload_foyer name = "AI Upload Access" icon_state = "ai_foyer" ambience = list('sound/ambience/ambimalf.ogg') sound_env = SMALL_ENCLOSED -/area/turret_protected/ai_server_room +/area/ai_server_room name = "Messaging Server Room" icon_state = "ai_server" sound_env = SMALL_ENCLOSED -/area/turret_protected/ai +/area/ai name = "\improper AI Chamber" icon_state = "ai_chamber" ambience = list('sound/ambience/ambimalf.ogg') -/area/turret_protected/ai_cyborg_station +/area/ai_cyborg_station name = "\improper Cyborg Station" icon_state = "ai_cyborg" sound_env = SMALL_ENCLOSED -/area/turret_protected/aisat +/area/aisat name = "\improper AI Satellite" icon_state = "ai" -/area/turret_protected/aisat_interior +/area/aisat_interior name = "\improper AI Satellite" icon_state = "ai" -/area/turret_protected/AIsatextFP +/area/AIsatextFP name = "\improper AI Sat Ext" icon_state = "storage" luminosity = 1 lighting_use_dynamic = 0 -/area/turret_protected/AIsatextFS +/area/AIsatextFS name = "\improper AI Sat Ext" icon_state = "storage" luminosity = 1 lighting_use_dynamic = 0 -/area/turret_protected/AIsatextAS +/area/AIsatextAS name = "\improper AI Sat Ext" icon_state = "storage" luminosity = 1 lighting_use_dynamic = 0 -/area/turret_protected/AIsatextAP +/area/AIsatextAP name = "\improper AI Sat Ext" icon_state = "storage" luminosity = 1 lighting_use_dynamic = 0 -/area/turret_protected/NewAIMain +/area/NewAIMain name = "\improper AI Main New" icon_state = "storage" @@ -2524,22 +2522,22 @@ area/space/atmosalert() name = "\improper Telecoms Central Compartment" icon_state = "tcomsatcham" -/area/turret_protected/tcomsat +/area/tcomsat name = "\improper Telecoms Satellite" icon_state = "tcomsatlob" ambience = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') -/area/turret_protected/tcomfoyer +/area/tcomfoyer name = "\improper Telecoms Foyer" icon_state = "tcomsatentrance" ambience = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') -/area/turret_protected/tcomwest +/area/tcomwest name = "\improper Telecommunications Satellite West Wing" icon_state = "tcomsatwest" ambience = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') -/area/turret_protected/tcomeast +/area/tcomeast name = "\improper Telecommunications Satellite East Wing" icon_state = "tcomsateast" ambience = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') @@ -2762,9 +2760,9 @@ var/list/the_station_areas = list ( /area/ai_monitored/storage/eva, //do not try to simplify to "/area/ai_monitored" --rastaf0 /area/ai_monitored/storage/secure, /area/ai_monitored/storage/emergency, - /area/turret_protected/ai_upload, //do not try to simplify to "/area/turret_protected" --rastaf0 - /area/turret_protected/ai_upload_foyer, - /area/turret_protected/ai, + /area/ai_upload, //do not try to simplify to "/area" --rastaf0 + /area/ai_upload_foyer, + /area/ai, ) diff --git a/code/game/gamemodes/events/power_failure.dm b/code/game/gamemodes/events/power_failure.dm index 0f7d6149d3..04404573e8 100644 --- a/code/game/gamemodes/events/power_failure.dm +++ b/code/game/gamemodes/events/power_failure.dm @@ -3,7 +3,7 @@ if(announce) command_announcement.Announce("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure", new_sound = 'sound/AI/poweroff.ogg') - var/list/skipped_areas = list(/area/turret_protected/ai) + var/list/skipped_areas = list(/area/ai) for(var/obj/machinery/power/smes/S in world) var/area/current_area = get_area(S) @@ -24,7 +24,7 @@ C.cell.charge = 0 /proc/power_restore(var/announce = 1) - var/list/skipped_areas = list(/area/turret_protected/ai) + var/list/skipped_areas = list(/area/ai) if(announce) command_announcement.Announce("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg') diff --git a/code/game/gamemodes/malfunction/malf_hardware.dm b/code/game/gamemodes/malfunction/malf_hardware.dm index b33a5e49d8..864ba0722d 100644 --- a/code/game/gamemodes/malfunction/malf_hardware.dm +++ b/code/game/gamemodes/malfunction/malf_hardware.dm @@ -60,11 +60,6 @@ /datum/malf_hardware/strong_turrets/install() ..() - for(var/obj/machinery/turret/T in machines) - T.maxhealth = round(initial(T.maxhealth) * 1.4) - T.shot_delay = round(initial(T.shot_delay) / 2) - T.auto_repair = 1 - T.active_power_usage = round(initial(T.active_power_usage) * 5) for(var/obj/machinery/porta_turret/T in machines) T.maxhealth = round(initial(T.maxhealth) * 1.4) T.shot_delay = round(initial(T.shot_delay) / 2) diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm deleted file mode 100644 index d324f3dd9c..0000000000 --- a/code/game/machinery/turrets.dm +++ /dev/null @@ -1,523 +0,0 @@ -/area/turret_protected - name = "Turret Protected Area" - var/list/turretTargets = list() - -/area/turret_protected/proc/subjectDied(target) - if( isliving(target) ) - if( !issilicon(target) ) - var/mob/living/L = target - if( L.stat ) - if( L in turretTargets ) - src.Exited(L) - - -/area/turret_protected/Entered(O) - ..() - if( iscarbon(O) ) - turretTargets |= O - else if( istype(O, /obj/mecha) ) - var/obj/mecha/Mech = O - if( Mech.occupant ) - turretTargets |= Mech - else if(istype(O,/mob/living/simple_animal)) - turretTargets |= O - return 1 - -/area/turret_protected/Exited(O) - if( ismob(O) && !issilicon(O) ) - turretTargets -= O - else if( istype(O, /obj/mecha) ) - turretTargets -= O - ..() - return 1 - - -/obj/machinery/turret - name = "turret" - icon = 'icons/obj/turrets.dmi' - icon_state = "grey_target_prism" - var/raised = 0 - var/enabled = 1 - anchored = 1 - layer = 3 - invisibility = INVISIBILITY_LEVEL_TWO - density = 1 - var/lasers = 0 - var/lasertype = 1 - // 1 = lasers - // 2 = cannons - // 3 = pulse - // 4 = change (HONK) - // 5 = bluetag - // 6 = redtag - var/health = 80 - var/maxhealth = 80 - var/auto_repair = 0 - var/obj/machinery/turretcover/cover = null - var/popping = 0 - var/wasvalid = 0 - var/lastfired = 0 - var/shot_delay = 30 //3 seconds between shots - var/datum/effect/effect/system/spark_spread/spark_system - use_power = 1 - idle_power_usage = 50 - active_power_usage = 300 -// var/list/targets - var/atom/movable/cur_target - var/targeting_active = 0 - var/area/turret_protected/protected_area - -/obj/machinery/turret/proc/take_damage(damage) - src.health -= damage - if(src.health<=0) - qdel(src) - return - -/obj/machinery/turret/attack_hand(var/mob/living/carbon/human/user) - - if(!istype(user)) - return ..() - - if(user.species.can_shred(user) && !(stat & BROKEN)) - playsound(src.loc, 'sound/weapons/slash.ogg', 25, 1, -1) - visible_message("[user] has slashed at [src]!") - src.take_damage(15) - return - -/obj/machinery/turret/bullet_act(var/obj/item/projectile/Proj) - if(!(Proj.damage_type == BRUTE || Proj.damage_type == BURN)) - return - take_damage(Proj.damage) - ..() - return - -/obj/machinery/turret/New() - maxhealth = health - spark_system = new /datum/effect/effect/system/spark_spread - spark_system.set_up(5, 0, src) - spark_system.attach(src) -// targets = new - ..() - return - -/obj/machinery/turret/proc/update_health() - if(src.health<=0) - qdel(src) - return - -/obj/machinery/turretcover - name = "pop-up turret cover" - icon = 'icons/obj/turrets.dmi' - icon_state = "turretCover" - anchored = 1 - layer = 3.5 - density = 0 - var/obj/machinery/turret/host = null - -/obj/machinery/turret/proc/isPopping() - return (popping!=0) - -/obj/machinery/turret/power_change() - ..() - if(stat & BROKEN) - icon_state = "grey_target_prism" - else - if( !(stat & NOPOWER) ) - if (src.enabled) - if (src.lasers) - icon_state = "orange_target_prism" - else - icon_state = "target_prism" - else - icon_state = "grey_target_prism" - stat &= ~NOPOWER - else - spawn(rand(0, 15)) - src.icon_state = "grey_target_prism" - stat |= NOPOWER - -/obj/machinery/turret/proc/setState(var/enabled, var/lethal) - src.enabled = enabled - src.lasers = lethal - src.power_change() - - -/obj/machinery/turret/proc/get_protected_area() - var/area/turret_protected/TP = get_area(src) - if(istype(TP)) - return TP - return - -/obj/machinery/turret/proc/check_target(var/atom/movable/T as mob|obj) - if( T && T in protected_area.turretTargets ) - var/area/area_T = get_area(T) - if( !area_T || (area_T.type != protected_area.type) ) - protected_area.Exited(T) - return 0 //If the guy is somehow not in the turret's area (teleportation), get them out the damn list. --NEO - if( iscarbon(T) ) - var/mob/living/carbon/MC = T - if( !MC.stat ) - if( !MC.lying || lasers ) - return 1 - else if( istype(T, /obj/mecha) ) - var/obj/mecha/ME = T - if( ME.occupant ) - return 1 - else if(istype(T,/mob/living/simple_animal)) - var/mob/living/simple_animal/A = T - if( !A.stat ) - if(lasers) - return 1 - return 0 - -/obj/machinery/turret/proc/get_new_target() - var/list/new_targets = new - var/new_target - for(var/mob/living/carbon/M in protected_area.turretTargets) - if(!M.stat) - if(!M.lying || lasers) - new_targets += M - for(var/obj/mecha/M in protected_area.turretTargets) - if(M.occupant) - new_targets += M - for(var/mob/living/simple_animal/M in protected_area.turretTargets) - if(!M.stat) - new_targets += M - if(new_targets.len) - new_target = pick(new_targets) - return new_target - - -/obj/machinery/turret/process() - if(stat & (NOPOWER|BROKEN)) - return - if(src.cover==null) - src.cover = new /obj/machinery/turretcover(src.loc) - src.cover.host = src - protected_area = get_protected_area() - if(!enabled || !protected_area || protected_area.turretTargets.len<=0) - if(!isDown() && !isPopping()) - popDown() - return - if(!check_target(cur_target)) //if current target fails target check - cur_target = get_new_target() //get new target - - if(cur_target) //if it's found, proceed -// world << "[cur_target]" - if(!isPopping()) - if(isDown()) - popUp() - use_power = 2 - else - spawn() - if(!targeting_active) - targeting_active = 1 - target() - targeting_active = 0 - - if(prob(15)) - if(prob(50)) - playsound(src.loc, 'sound/effects/turret/move1.wav', 60, 1) - else - playsound(src.loc, 'sound/effects/turret/move2.wav', 60, 1) - else if(!isPopping())//else, pop down - if(!isDown()) - popDown() - use_power = 1 - - // Auto repair requires massive amount of power, but slowly regenerates the turret's health. - // Currently only used by malfunction hardware, but may be used as admin-settable option too. - if(auto_repair) - if(health < maxhealth) - use_power(20000) - health = min(health + 1, maxhealth) - return - - -/obj/machinery/turret/proc/target() - while(src && enabled && !stat && check_target(cur_target)) - src.set_dir(get_dir(src, cur_target)) - shootAt(cur_target) - sleep(shot_delay) - return - -/obj/machinery/turret/proc/shootAt(var/atom/movable/target) - var/turf/T = get_turf(src) - var/turf/U = get_turf(target) - if (!T || !U) - return - var/obj/item/projectile/A - if (src.lasers) - switch(lasertype) - if(1) - A = new /obj/item/projectile/beam( loc ) - if(2) - A = new /obj/item/projectile/beam/heavylaser( loc ) - if(3) - A = new /obj/item/projectile/beam/pulse( loc ) - if(4) - A = new /obj/item/projectile/change( loc ) - if(5) - A = new /obj/item/projectile/beam/lastertag/blue( loc ) - if(6) - A = new /obj/item/projectile/beam/lastertag/red( loc ) - A.original = target - use_power(500) - else - A = new /obj/item/projectile/energy/electrode( loc ) - use_power(200) - - //Turrets aim for the center of mass by default. - //If the target is grabbing someone then the turret smartly aims for extremities - var/obj/item/weapon/grab/G = locate() in target - if(G && G.state >= GRAB_NECK) //works because mobs are currently not allowed to upgrade to NECK if they are grabbing two people. - A.def_zone = pick(BP_HEAD, BP_L_HAND, BP_R_HAND, BP_L_FOOT, BP_R_FOOT, BP_L_ARM, BP_R_ARM, BP_L_LEG, BP_R_LEG) - else - A.def_zone = pick(BP_TORSO, BP_GROIN) - - A.current = T - A.starting = T - A.yo = U.y - T.y - A.xo = U.x - T.x - spawn( 0 ) - A.process() - return - - -/obj/machinery/turret/proc/isDown() - return (invisibility!=0) - -/obj/machinery/turret/proc/popUp() - if ((!isPopping()) || src.popping==-1) - invisibility = 0 - popping = 1 - playsound(src.loc, 'sound/effects/turret/open.wav', 60, 1) - if (src.cover!=null) - flick("popup", src.cover) - src.cover.icon_state = "openTurretCover" - spawn(10) - if (popping==1) popping = 0 - -/obj/machinery/turret/proc/popDown() - if ((!isPopping()) || src.popping==1) - popping = -1 - playsound(src.loc, 'sound/effects/turret/open.wav', 60, 1) - if (src.cover!=null) - flick("popdown", src.cover) - src.cover.icon_state = "turretCover" - spawn(10) - if (popping==-1) - invisibility = INVISIBILITY_LEVEL_TWO - popping = 0 - -/obj/machinery/turret/bullet_act(var/obj/item/projectile/Proj) - if(!(Proj.damage_type == BRUTE || Proj.damage_type == BURN)) - return - src.health -= Proj.damage - ..() - if(prob(45) && Proj.damage > 0) src.spark_system.start() - qdel (Proj) - if (src.health <= 0) - src.die() - return - -/obj/machinery/turret/attackby(obj/item/weapon/W, mob/user)//I can't believe no one added this before/N - ..() - playsound(src.loc, 'sound/weapons/smash.ogg', 60, 1) - src.spark_system.start() - src.health -= W.force * 0.5 - if (src.health <= 0) - src.die() - return - -/obj/machinery/turret/emp_act(severity) - switch(severity) - if(1) - enabled = 0 - lasers = 0 - power_change() - ..() - -/obj/machinery/turret/ex_act(severity) - if(severity < 3) - src.die() - -/obj/machinery/turret/proc/die() - src.health = 0 - src.density = 0 - src.stat |= BROKEN - src.icon_state = "destroyed_target_prism" - if (cover!=null) - qdel(cover) - sleep(3) - flick("explosion", src) - spawn(13) - qdel(src) - -/obj/machinery/turret/attack_generic(var/mob/user, var/damage, var/attack_message) - if(!damage) - return 0 - if(stat & BROKEN) - user << "That object is useless to you." - return 0 - user.do_attack_animation(src) - visible_message("[user] [attack_message] the [src]!") - user.attack_log += text("\[[time_stamp()]\] attacked [src.name]") - src.health -= damage - if (src.health <= 0) - src.die() - return 1 - -/obj/structure/turret/gun_turret - name = "Gun Turret" - density = 1 - anchored = 1 - var/cooldown = 20 - var/projectiles = 100 - var/projectiles_per_shot = 2 - var/deviation = 0.3 - var/list/exclude = list() - var/atom/cur_target - var/scan_range = 7 - var/health = 40 - var/list/scan_for = list("human"=0,"cyborg"=0,"mecha"=0,"alien"=1) - var/on = 0 - icon = 'icons/obj/turrets.dmi' - icon_state = "gun_turret" - - proc/take_damage(damage) - src.health -= damage - if(src.health<=0) - qdel(src) - return - - - bullet_act(var/obj/item/projectile/Proj) - if(Proj.damage_type == HALLOSS) - return - take_damage(Proj.damage) - ..() - return - - - ex_act() - qdel(src) - return - - emp_act() - qdel(src) - return - - attack_hand(mob/user as mob) - user.set_machine(src) - var/dat = {" - [src] Control - - Power: [on?"on":"off"]
- Scan Range: - [scan_range] +
- Scan for: "} - for(var/scan in scan_for) - dat += "" - - dat += {"Ammo: [max(0, projectiles)]
- - "} - user << browse(dat, "window=turret") - onclose(user, "turret") - return - - attack_ai(mob/user as mob) - return attack_hand(user) - - Topic(href, href_list) - if(href_list["power"]) - src.on = !src.on - if(src.on) - spawn(50) - if(src) - src.process() - if(href_list["scan_range"]) - src.scan_range = between(1,src.scan_range+text2num(href_list["scan_range"]),8) - if(href_list["scan_for"]) - if(href_list["scan_for"] in scan_for) - scan_for[href_list["scan_for"]] = !scan_for[href_list["scan_for"]] - src.updateUsrDialog() - return - - - proc/validate_target(atom/target) - if(get_dist(target, src)>scan_range) - return 0 - if(istype(target, /mob)) - var/mob/M = target - if(!M.stat && !M.lying)//ninjas can't catch you if you're lying - return 1 - else if(istype(target, /obj/mecha)) - return 1 - return 0 - - - process() - spawn while(on) - if(projectiles<=0) - on = 0 - return - if(cur_target && !validate_target(cur_target)) - cur_target = null - if(!cur_target) - cur_target = get_target() - fire(cur_target) - sleep(cooldown) - return - - proc/get_target() - var/list/pos_targets = list() - var/target = null - if(scan_for["human"]) - for(var/mob/living/carbon/human/M in oview(scan_range,src)) - if(M.stat || M.lying || M in exclude) - continue - pos_targets += M - if(scan_for["cyborg"]) - for(var/mob/living/silicon/M in oview(scan_range,src)) - if(M.stat || M.lying || M in exclude) - continue - pos_targets += M - if(scan_for["mecha"]) - for(var/obj/mecha/M in oview(scan_range, src)) - if(M in exclude) - continue - pos_targets += M - if(scan_for["alien"]) - for(var/mob/living/carbon/alien/M in oview(scan_range,src)) - if(M.stat || M.lying || M in exclude) - continue - pos_targets += M - if(pos_targets.len) - target = pick(pos_targets) - return target - - - proc/fire(atom/target) - if(!target) - cur_target = null - return - src.set_dir(get_dir(src,target)) - var/turf/targloc = get_turf(target) - var/target_x = targloc.x - var/target_y = targloc.y - var/target_z = targloc.z - targloc = null - spawn for(var/i=1 to min(projectiles, projectiles_per_shot)) - if(!src) break - var/turf/curloc = get_turf(src) - targloc = locate(target_x+GaussRandRound(deviation,1),target_y+GaussRandRound(deviation,1),target_z) - if (!targloc || !curloc) - continue - if (targloc == curloc) - continue - playsound(src, 'sound/weapons/Gunshot.ogg', 50, 1) - var/obj/item/projectile/A = new /obj/item/projectile(curloc) - src.projectiles-- - A.launch(target) - return diff --git a/maps/overmap/example_sector1.dmm b/maps/overmap/example_sector1.dmm index ec4ff9bf07..8621c5f558 100644 --- a/maps/overmap/example_sector1.dmm +++ b/maps/overmap/example_sector1.dmm @@ -2,16 +2,16 @@ "ab" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area) "ac" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area) "ad" = (/turf/simulated/wall/r_wall,/area) -"ae" = (/turf/simulated/wall/r_wall,/area/turret_protected/tcomsat) +"ae" = (/turf/simulated/wall/r_wall,/area/tcomsat) "af" = (/turf/simulated/wall/r_wall,/area/tcommsat/computer) -"ag" = (/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) -"ah" = (/turf/space,/area/turret_protected/tcomsat) -"ai" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/camera{c_tag = "West Wing North"; dir = 2; network = list("Tcomsat")},/turf/space,/area/turret_protected/tcomsat) -"aj" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"ak" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"al" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"am" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"an" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) +"ag" = (/obj/structure/lattice,/turf/space,/area/tcomsat) +"ah" = (/turf/space,/area/tcomsat) +"ai" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/camera{c_tag = "West Wing North"; dir = 2; network = list("Tcomsat")},/turf/space,/area/tcomsat) +"aj" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/tcomsat) +"ak" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plating,/area/tcomsat) +"al" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/tcomsat) +"am" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/plating,/area/tcomsat) +"an" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/tcomsat) "ao" = (/turf/simulated/floor/engine,/area/tcommsat/computer) "ap" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/green,/turf/simulated/floor,/area/tcommsat/computer) "aq" = (/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/tcommsat/computer) @@ -19,36 +19,36 @@ "as" = (/obj/machinery/camera{c_tag = "Lounge"; dir = 2; network = list("Tcomsat")},/turf/simulated/floor,/area/tcommsat/computer) "at" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/red,/turf/simulated/floor,/area/tcommsat/computer) "au" = (/turf/simulated/floor,/area/tcommsat/computer) -"av" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/turret_protected/tcomsat) -"aw" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"ax" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/meter,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"ay" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"az" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"aA" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"aB" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomsat) +"av" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/tcomsat) +"aw" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plating,/area/tcomsat) +"ax" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/meter,/turf/simulated/floor/plating,/area/tcomsat) +"ay" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/tcomsat) +"az" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/tcomsat) +"aA" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/tcomsat) +"aB" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat) "aC" = (/obj/structure/filingcabinet,/turf/simulated/floor,/area/tcommsat/computer) "aD" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 140; on = 1; pressure_checks = 0},/obj/machinery/camera{c_tag = "Main Computer Room"; dir = 2; network = list("Tcomsat")},/obj/structure/table/standard,/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/tcommsat/computer) "aE" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue{pixel_x = -3; pixel_y = 2},/turf/simulated/floor,/area/tcommsat/computer) "aF" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp,/turf/simulated/floor,/area/tcommsat/computer) "aG" = (/obj/item/weapon/syntiflesh{name = "Cuban Pete-Meat"},/turf/simulated/floor/engine,/area/tcommsat/computer) "aH" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -29; pixel_y = 0},/turf/simulated/floor,/area/tcommsat/computer) -"aI" = (/obj/structure/window/reinforced{dir = 4},/turf/space,/area/turret_protected/tcomsat) -"aJ" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"aK" = (/obj/machinery/atmospherics/valve/digital{pipe_color = "cyan"; icon_state = "valve1"; name = "Mixed Air Outlet Valve"; open = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"aL" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"aM" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"aN" = (/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomsat) +"aI" = (/obj/structure/window/reinforced{dir = 4},/turf/space,/area/tcomsat) +"aJ" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/tcomsat) +"aK" = (/obj/machinery/atmospherics/valve/digital{pipe_color = "cyan"; icon_state = "valve1"; name = "Mixed Air Outlet Valve"; open = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcomsat) +"aL" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcomsat) +"aM" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet,/turf/simulated/floor/plating,/area/tcomsat) +"aN" = (/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat) "aO" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor,/area/tcommsat/computer) "aP" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/turf/simulated/floor,/area/tcommsat/computer) "aQ" = (/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,/area/tcommsat/computer) "aR" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/orange,/obj/machinery/light{dir = 8},/turf/simulated/floor,/area/tcommsat/computer) "aS" = (/obj/structure/lattice,/turf/space,/area) -"aT" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) -"aU" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/space,/area/turret_protected/tcomsat) -"aV" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"aW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/turret_protected/tcomsat) -"aX" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/space,/area/turret_protected/tcomsat) -"aY" = (/obj/structure/window/reinforced,/turf/space,/area/turret_protected/tcomsat) +"aT" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/lattice,/turf/space,/area/tcomsat) +"aU" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/space,/area/tcomsat) +"aV" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/tcomsat) +"aW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat) +"aX" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat) +"aY" = (/obj/structure/window/reinforced,/turf/space,/area/tcomsat) "aZ" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/wall/r_wall,/area/tcommsat/computer) "ba" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/tcommsat/computer) "bb" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/tcommsat/computer) @@ -60,10 +60,10 @@ "bh" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor,/area/tcommsat/computer) "bi" = (/obj/structure/table/standard,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor,/area/tcommsat/computer) "bj" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor,/area/tcommsat/computer) -"bk" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"bl" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"bm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"bn" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) +"bk" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"bl" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"bm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"bn" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) "bo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/hatch{name = "Telecoms Control Room"; req_access_txt = "61"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor,/area/tcommsat/computer) "bp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor,/area/tcommsat/computer) "bq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden{tag = "icon-manifold-f (NORTH)"; icon_state = "manifold-f"; dir = 1},/turf/simulated/floor,/area/tcommsat/computer) @@ -80,10 +80,10 @@ "bB" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area) "bC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area) "bD" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless,/area) -"bE" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"bF" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/turret_protected/tcomsat) -"bG" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/light,/turf/space,/area/turret_protected/tcomsat) -"bH" = (/obj/structure/window/reinforced{dir = 1},/turf/space,/area/turret_protected/tcomsat) +"bE" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"bF" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat) +"bG" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/light,/turf/space,/area/tcomsat) +"bH" = (/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat) "bI" = (/obj/machinery/light{dir = 8},/obj/structure/table/standard,/obj/item/device/multitool,/obj/structure/sign/electricshock{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/tcommsat/computer) "bJ" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 80; dir = 1; on = 1},/turf/simulated/floor,/area/tcommsat/computer) "bK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/tcommsat/computer) @@ -92,8 +92,8 @@ "bN" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcommsat/chamber) "bO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/tcommsat/computer) "bP" = (/obj/machinery/door/airlock/hatch{name = "Telecoms Lounge"; req_access_txt = "61"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcommsat/computer) -"bQ" = (/obj/machinery/turret{lasers = 1; lasertype = 2},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) -"bR" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) +"bQ" = (/obj/machinery/turret{lasers = 1; lasertype = 2},/turf/simulated/floor/plating/airless,/area/tcomsat) +"bR" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/space,/area/tcomsat) "bS" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/tcommsat/chamber) "bT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/tcommsat/chamber) "bU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/tcommsat/chamber) @@ -101,11 +101,11 @@ "bW" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (SOUTHWEST)"; icon_state = "intact-f"; dir = 10},/turf/simulated/wall/r_wall,/area/tcommsat/chamber) "bX" = (/obj/machinery/door/airlock/maintenance_hatch{name = "Telecoms Server Access"; req_access_txt = "61"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcommsat/chamber) "bY" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/tcommsat/chamber) -"bZ" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) -"ca" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"cb" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) -"cc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"cd" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/space,/area/turret_protected/tcomsat) +"bZ" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/lattice,/turf/space,/area/tcomsat) +"ca" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"cb" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/tcomsat) +"cc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"cd" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/space,/area/tcomsat) "ce" = (/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cf" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) @@ -114,37 +114,37 @@ "cj" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "ck" = (/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cl" = (/turf/simulated/floor/plating/airless,/area) -"cm" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"cn" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/space,/area/turret_protected/tcomsat) +"cm" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"cn" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/space,/area/tcomsat) "co" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"cq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"ct" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"cu" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/space,/area/turret_protected/tcomsat) +"cq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/tcomsat) +"cr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/tcomsat) +"cs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/tcomsat) +"ct" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"cu" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/space,/area/tcomsat) "cv" = (/obj/machinery/telecomms/server/presets/supply,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cx" = (/obj/machinery/telecomms/server/presets/common,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cy" = (/obj/machinery/telecomms/server/presets/engineering,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"cz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cA" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/turf/simulated/floor,/area/turret_protected/tcomsat) -"cB" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/camera{c_tag = "Telecoms Storage"; network = list("Tcomsat")},/turf/simulated/floor,/area/turret_protected/tcomsat) -"cC" = (/obj/structure/rack,/obj/item/weapon/circuitboard/telecomms/processor,/obj/item/weapon/circuitboard/telecomms/processor,/obj/item/weapon/circuitboard/telecomms/receiver,/obj/item/weapon/circuitboard/telecomms/server,/obj/item/weapon/circuitboard/telecomms/server,/obj/item/weapon/circuitboard/telecomms/bus,/obj/item/weapon/circuitboard/telecomms/bus,/obj/item/weapon/circuitboard/telecomms/broadcaster,/turf/simulated/floor,/area/turret_protected/tcomsat) +"cz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/tcomsat) +"cA" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/turf/simulated/floor,/area/tcomsat) +"cB" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/camera{c_tag = "Telecoms Storage"; network = list("Tcomsat")},/turf/simulated/floor,/area/tcomsat) +"cC" = (/obj/structure/rack,/obj/item/weapon/circuitboard/telecomms/processor,/obj/item/weapon/circuitboard/telecomms/processor,/obj/item/weapon/circuitboard/telecomms/receiver,/obj/item/weapon/circuitboard/telecomms/server,/obj/item/weapon/circuitboard/telecomms/server,/obj/item/weapon/circuitboard/telecomms/bus,/obj/item/weapon/circuitboard/telecomms/bus,/obj/item/weapon/circuitboard/telecomms/broadcaster,/turf/simulated/floor,/area/tcomsat) "cD" = (/obj/machinery/camera{c_tag = "West Solars"; dir = 8; network = list("Tcomsat")},/turf/space,/area) -"cE" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"cF" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/camera{c_tag = "West Wing Middle"; dir = 8; network = list("Tcomsat")},/turf/space,/area/turret_protected/tcomsat) +"cE" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"cF" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/camera{c_tag = "West Wing Middle"; dir = 8; network = list("Tcomsat")},/turf/space,/area/tcomsat) "cG" = (/obj/machinery/telecomms/broadcaster/preset_left,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cH" = (/obj/machinery/telecomms/broadcaster/preset_right,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"cI" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/space,/area/turret_protected/tcomsat) -"cJ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"cK" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomsat) -"cL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cM" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/turf/simulated/floor,/area/turret_protected/tcomsat) -"cN" = (/turf/simulated/floor,/area/turret_protected/tcomsat) -"cO" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/turf/simulated/floor,/area/turret_protected/tcomsat) +"cI" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/space,/area/tcomsat) +"cJ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"cK" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat) +"cL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/tcomsat) +"cM" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/turf/simulated/floor,/area/tcomsat) +"cN" = (/turf/simulated/floor,/area/tcomsat) +"cO" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/turf/simulated/floor,/area/tcomsat) "cP" = (/turf/simulated/floor/plating,/area) -"cQ" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 4},/turf/space,/area/turret_protected/tcomsat) +"cQ" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 4},/turf/space,/area/tcomsat) "cR" = (/obj/structure/sign/nosmoking_2{pixel_x = -32; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cS" = (/obj/machinery/telecomms/processor/preset_two,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cT" = (/obj/machinery/telecomms/bus/preset_two,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) @@ -154,75 +154,75 @@ "cX" = (/obj/machinery/telecomms/processor/preset_four,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cY" = (/obj/machinery/telecomms/bus/preset_four,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cZ" = (/obj/structure/sign/nosmoking_2{pixel_x = 32; pixel_y = 0},/obj/machinery/light{dir = 4},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"da" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/lattice,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/turret_protected/tcomsat) -"db" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"dc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"dd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/door/airlock/maintenance_hatch{name = "Telecoms Storage"; req_access_txt = "61"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"de" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 29; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/turret_protected/tcomsat) +"da" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/lattice,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/tcomsat) +"db" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"dc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"dd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/door/airlock/maintenance_hatch{name = "Telecoms Storage"; req_access_txt = "61"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"de" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 29; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/tcomsat) "df" = (/obj/machinery/telecomms/bus/preset_one,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dg" = (/obj/machinery/telecomms/processor/preset_one,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dh" = (/obj/machinery/telecomms/receiver/preset_left,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "di" = (/obj/machinery/telecomms/receiver/preset_right,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dj" = (/obj/machinery/telecomms/bus/preset_three,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dk" = (/obj/machinery/telecomms/processor/preset_three,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"dl" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomsat) -"dm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"dn" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/turret_protected/tcomsat) -"do" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/turf/simulated/floor,/area/turret_protected/tcomsat) -"dp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"dq" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/turf/simulated/floor,/area/turret_protected/tcomsat) -"dr" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/turf/simulated/floor,/area/turret_protected/tcomsat) -"ds" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/turf/simulated/floor,/area/turret_protected/tcomsat) +"dl" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat) +"dm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/tcomsat) +"dn" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/tcomsat) +"do" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/turf/simulated/floor,/area/tcomsat) +"dp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/tcomsat) +"dq" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/turf/simulated/floor,/area/tcomsat) +"dr" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/turf/simulated/floor,/area/tcomsat) +"ds" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/turf/simulated/floor,/area/tcomsat) "dt" = (/obj/machinery/telecomms/server/presets/science,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "du" = (/obj/machinery/telecomms/server/presets/medical,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dv" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dw" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (NORTHWEST)"; icon_state = "intact-f"; dir = 9},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dx" = (/obj/machinery/telecomms/server/presets/command,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dy" = (/obj/machinery/telecomms/server/presets/security,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"dz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"dA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"dB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) +"dz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcomsat) +"dA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcomsat) +"dB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcomsat) "dC" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 140; on = 1; pressure_checks = 0},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dD" = (/obj/machinery/camera{c_tag = "Central Compartment South"; dir = 1; network = list("Tcomsat")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dE" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 120; icon_state = "in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/tcommsat/chamber) -"dG" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"dH" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/space,/area/turret_protected/tcomsat) -"dI" = (/obj/structure/window/reinforced,/obj/structure/lattice,/obj/machinery/light{dir = 1},/turf/space,/area/turret_protected/tcomsat) -"dJ" = (/turf/simulated/wall/r_wall,/area/turret_protected/tcomfoyer) -"dK" = (/obj/machinery/turret{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/turret_protected/tcomfoyer) -"dL" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/turret_protected/tcomfoyer) -"dM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "warningcorner"; dir = 8},/area/turret_protected/tcomfoyer) -"dN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/turretid{ailock = 1; control_area = "\improper Telecoms Satellite"; desc = "A firewall prevents AIs from interacting with this device."; icon_state = "motion1"; lethal = 1; name = "Telecoms lethal turret control"; pixel_y = 29; req_access = list(61)},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/camera{c_tag = "Telecoms Foyer"; dir = 2; network = list("Tcomsat")},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/turret_protected/tcomfoyer) -"dO" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/turret_protected/tcomfoyer) -"dP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor{icon_state = "warningcorner"; dir = 8},/area/turret_protected/tcomfoyer) -"dQ" = (/obj/machinery/turret{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/turret_protected/tcomfoyer) -"dR" = (/obj/structure/window/reinforced,/obj/machinery/light{dir = 1},/turf/space,/area/turret_protected/tcomsat) -"dS" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/space,/area/turret_protected/tcomsat) -"dT" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"dU" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"dV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/hatch{name = "Telecoms West Wing"; req_access_txt = "61"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomfoyer) -"dW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/turret_protected/tcomfoyer) -"dX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/turret_protected/tcomfoyer) -"dY" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor,/area/turret_protected/tcomfoyer) -"dZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/turret_protected/tcomfoyer) -"ea" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/turret_protected/tcomfoyer) -"eb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor,/area/turret_protected/tcomfoyer) -"ec" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/turret_protected/tcomfoyer) -"ed" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/hatch{name = "Telecoms East Wing"; req_access_txt = "61"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomfoyer) -"ee" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"ef" = (/obj/machinery/camera{c_tag = "East Wing South"; dir = 8; network = list("Tcomsat")},/turf/space,/area/turret_protected/tcomsat) -"eg" = (/obj/machinery/camera{c_tag = "West Wing South"; dir = 4; network = list("Tcomsat")},/turf/space,/area/turret_protected/tcomsat) -"eh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) -"ei" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/turret_protected/tcomfoyer) -"ej" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "warningcorner"; dir = 1},/area/turret_protected/tcomfoyer) -"ek" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/floor,/area/turret_protected/tcomfoyer) -"el" = (/turf/simulated/floor,/area/turret_protected/tcomfoyer) -"em" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "warningcorner"; dir = 2},/area/turret_protected/tcomfoyer) -"en" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/turret_protected/tcomfoyer) +"dG" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"dH" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/space,/area/tcomsat) +"dI" = (/obj/structure/window/reinforced,/obj/structure/lattice,/obj/machinery/light{dir = 1},/turf/space,/area/tcomsat) +"dJ" = (/turf/simulated/wall/r_wall,/area/tcomfoyer) +"dK" = (/obj/machinery/turret{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/tcomfoyer) +"dL" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/tcomfoyer) +"dM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "warningcorner"; dir = 8},/area/tcomfoyer) +"dN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/turretid{ailock = 1; control_area = "\improper Telecoms Satellite"; desc = "A firewall prevents AIs from interacting with this device."; icon_state = "motion1"; lethal = 1; name = "Telecoms lethal turret control"; pixel_y = 29; req_access = list(61)},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/camera{c_tag = "Telecoms Foyer"; dir = 2; network = list("Tcomsat")},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/tcomfoyer) +"dO" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/tcomfoyer) +"dP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor{icon_state = "warningcorner"; dir = 8},/area/tcomfoyer) +"dQ" = (/obj/machinery/turret{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/tcomfoyer) +"dR" = (/obj/structure/window/reinforced,/obj/machinery/light{dir = 1},/turf/space,/area/tcomsat) +"dS" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/space,/area/tcomsat) +"dT" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"dU" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"dV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/hatch{name = "Telecoms West Wing"; req_access_txt = "61"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomfoyer) +"dW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/tcomfoyer) +"dX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/tcomfoyer) +"dY" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor,/area/tcomfoyer) +"dZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/tcomfoyer) +"ea" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/tcomfoyer) +"eb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor,/area/tcomfoyer) +"ec" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/tcomfoyer) +"ed" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/hatch{name = "Telecoms East Wing"; req_access_txt = "61"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomfoyer) +"ee" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"ef" = (/obj/machinery/camera{c_tag = "East Wing South"; dir = 8; network = list("Tcomsat")},/turf/space,/area/tcomsat) +"eg" = (/obj/machinery/camera{c_tag = "West Wing South"; dir = 4; network = list("Tcomsat")},/turf/space,/area/tcomsat) +"eh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/tcomsat) +"ei" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/tcomfoyer) +"ej" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "warningcorner"; dir = 1},/area/tcomfoyer) +"ek" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/floor,/area/tcomfoyer) +"el" = (/turf/simulated/floor,/area/tcomfoyer) +"em" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "warningcorner"; dir = 2},/area/tcomfoyer) +"en" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/tcomfoyer) "eo" = (/turf/simulated/wall/r_wall,/area/tcommsat/entrance) -"ep" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/wall/r_wall,/area/turret_protected/tcomfoyer) -"eq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/hatch{name = "Telecoms Satellite"; req_access_txt = "61"},/turf/simulated/floor,/area/turret_protected/tcomfoyer) +"ep" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/wall/r_wall,/area/tcomfoyer) +"eq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/hatch{name = "Telecoms Satellite"; req_access_txt = "61"},/turf/simulated/floor,/area/tcomfoyer) "er" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/tcommsat/entrance) "es" = (/obj/machinery/power/smes/magical,/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/tcommsat/entrance) "et" = (/obj/machinery/power/terminal{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/tcommsat/entrance) diff --git a/maps/polaris-1.dmm b/maps/polaris-1.dmm index 91d28db88f..a6768838a4 100644 --- a/maps/polaris-1.dmm +++ b/maps/polaris-1.dmm @@ -2678,10 +2678,10 @@ "aZz" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "aZA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "aZB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) -"aZC" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai_server_room) -"aZD" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload_foyer) -"aZE" = (/obj/machinery/door/airlock/highsecurity{name = "AI Upload Access"; req_access = list(16)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"aZF" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai_cyborg_station) +"aZC" = (/turf/simulated/wall/r_wall,/area/ai_server_room) +"aZD" = (/turf/simulated/wall/r_wall,/area/ai_upload_foyer) +"aZE" = (/obj/machinery/door/airlock/highsecurity{name = "AI Upload Access"; req_access = list(16)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"aZF" = (/turf/simulated/wall/r_wall,/area/ai_cyborg_station) "aZG" = (/turf/simulated/floor,/area/maintenance/central) "aZH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/maintenance/central) "aZI" = (/turf/simulated/wall,/area/hydroponics/garden) @@ -2715,15 +2715,15 @@ "bak" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bal" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bam" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/primary/central_four) -"ban" = (/obj/machinery/message_server,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_server_room) -"bao" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_server_room) -"bap" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/cyan{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_server_room) -"baq" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/camera/network/command{c_tag = "AI - Upload Foyer"; dir = 2},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bar" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bas" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/structure/sign/kiddieplaque{pixel_y = 32},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bat" = (/obj/structure/bed/chair/office/light{dir = 4},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/cyan{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_cyborg_station) -"bau" = (/obj/structure/table/standard,/obj/item/weapon/phone,/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_cyborg_station) -"bav" = (/obj/machinery/computer/aifixer,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_cyborg_station) +"ban" = (/obj/machinery/message_server,/turf/simulated/floor/bluegrid,/area/ai_server_room) +"bao" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid,/area/ai_server_room) +"bap" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/cyan{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/dark,/area/ai_server_room) +"baq" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/camera/network/command{c_tag = "AI - Upload Foyer"; dir = 2},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bar" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bas" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/structure/sign/kiddieplaque{pixel_y = 32},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bat" = (/obj/structure/bed/chair/office/light{dir = 4},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/cyan{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/dark,/area/ai_cyborg_station) +"bau" = (/obj/structure/table/standard,/obj/item/weapon/phone,/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid,/area/ai_cyborg_station) +"bav" = (/obj/machinery/computer/aifixer,/turf/simulated/floor/bluegrid,/area/ai_cyborg_station) "baw" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 2},/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/grass,/area/hydroponics/garden) "bax" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/maintenance/central) "bay" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hydroponics/garden) @@ -2772,17 +2772,17 @@ "bbp" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bbq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bbr" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) -"bbs" = (/obj/machinery/computer/message_monitor,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_server_room) -"bbt" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_server_room) -"bbu" = (/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_server_room) -"bbv" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/highsecurity{name = "Messaging Server"; req_access = list(16)},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bbw" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bbx" = (/obj/machinery/hologram/holopad,/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bby" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bbz" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/highsecurity{name = "AI Upload Access"; req_access = list(16)},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bbA" = (/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_cyborg_station) -"bbB" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_cyborg_station) -"bbC" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_cyborg_station) +"bbs" = (/obj/machinery/computer/message_monitor,/turf/simulated/floor/tiled/dark,/area/ai_server_room) +"bbt" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai_server_room) +"bbu" = (/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled/dark,/area/ai_server_room) +"bbv" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/highsecurity{name = "Messaging Server"; req_access = list(16)},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bbw" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bbx" = (/obj/machinery/hologram/holopad,/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bby" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bbz" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/highsecurity{name = "AI Upload Access"; req_access = list(16)},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bbA" = (/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/dark,/area/ai_cyborg_station) +"bbB" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/dark,/area/ai_cyborg_station) +"bbC" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled/dark,/area/ai_cyborg_station) "bbD" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/hydroponics/garden) "bbE" = (/obj/machinery/portable_atmospherics/hydroponics/soil,/turf/simulated/floor/grass,/area/hydroponics/garden) "bbF" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 6},/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/grass,/area/hydroponics/garden) @@ -2821,15 +2821,15 @@ "bcm" = (/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j2"},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bcn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bco" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) -"bcp" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_server_room) -"bcq" = (/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_server_room) -"bcr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_server_room) -"bcs" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/obj/machinery/turretid/stun{control_area = "\improper AI Upload Chamber"; name = "AI Upload turret control"; pixel_x = 6; pixel_y = -24},/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; name = "Private AI Channel"; pixel_x = -12; pixel_y = -21},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bct" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bcu" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bcv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_cyborg_station) -"bcw" = (/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_cyborg_station) -"bcx" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_cyborg_station) +"bcp" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/dark,/area/ai_server_room) +"bcq" = (/turf/simulated/floor/tiled/dark,/area/ai_server_room) +"bcr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai_server_room) +"bcs" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/obj/machinery/turretid/stun{control_area = "\improper AI Upload Chamber"; name = "AI Upload turret control"; pixel_x = 6; pixel_y = -24},/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; name = "Private AI Channel"; pixel_x = -12; pixel_y = -21},/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bct" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bcu" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bcv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai_cyborg_station) +"bcw" = (/turf/simulated/floor/tiled/dark,/area/ai_cyborg_station) +"bcx" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/ai_cyborg_station) "bcy" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/hydroponics/garden) "bcz" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/hydroponics/garden) "bcA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hydroponics/garden) @@ -2866,14 +2866,14 @@ "bdf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bdg" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bdh" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) -"bdi" = (/obj/machinery/blackbox_recorder,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_server_room) -"bdj" = (/obj/machinery/camera/network/command{c_tag = "AI - Messaging Server"; dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_server_room) -"bdk" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_server_room) -"bdl" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload) -"bdm" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/highsecurity{name = "AI Upload"; req_access = list(16)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) -"bdn" = (/obj/structure/closet/crate{name = "Camera Assembly Crate"},/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_cyborg_station) -"bdo" = (/obj/machinery/recharge_station,/obj/machinery/camera/network/command{c_tag = "AI - Cyborg Station"; dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_cyborg_station) -"bdp" = (/obj/machinery/recharge_station,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_cyborg_station) +"bdi" = (/obj/machinery/blackbox_recorder,/turf/simulated/floor/bluegrid,/area/ai_server_room) +"bdj" = (/obj/machinery/camera/network/command{c_tag = "AI - Messaging Server"; dir = 1},/turf/simulated/floor/bluegrid,/area/ai_server_room) +"bdk" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/dark,/area/ai_server_room) +"bdl" = (/turf/simulated/wall/r_wall,/area/ai_upload) +"bdm" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/highsecurity{name = "AI Upload"; req_access = list(16)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai_upload) +"bdn" = (/obj/structure/closet/crate{name = "Camera Assembly Crate"},/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/dark,/area/ai_cyborg_station) +"bdo" = (/obj/machinery/recharge_station,/obj/machinery/camera/network/command{c_tag = "AI - Cyborg Station"; dir = 1},/turf/simulated/floor/bluegrid,/area/ai_cyborg_station) +"bdp" = (/obj/machinery/recharge_station,/turf/simulated/floor/bluegrid,/area/ai_cyborg_station) "bdq" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hydroponics/garden) "bdr" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/machinery/portable_atmospherics/hydroponics/soil,/obj/machinery/camera/network/civilian{c_tag = "CIV - Park Port"; dir = 4},/turf/simulated/floor/grass,/area/hydroponics/garden) "bds" = (/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (SOUTHWEST)"; icon_state = "spline_fancy"; dir = 10},/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/grass,/area/hydroponics/garden) @@ -2916,9 +2916,9 @@ "bed" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/firealarm{dir = 4; layer = 3.3; pixel_x = 26},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bee" = (/turf/simulated/wall/r_wall,/area/hallway/primary/central_four) "bef" = (/turf/simulated/wall/r_wall,/area/teleporter) -"beg" = (/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) -"beh" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) -"bei" = (/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) +"beg" = (/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/tiled/dark,/area/ai_upload) +"beh" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/dark,/area/ai_upload) +"bei" = (/turf/simulated/floor/tiled/dark,/area/ai_upload) "bej" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hydroponics/garden) "bek" = (/obj/structure/table/glass,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/camera/network/research{c_tag = "SCI - Break Room"; dir = 4},/turf/simulated/floor/wood,/area/rnd/research) "bel" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled,/area/hydroponics/garden) @@ -2954,9 +2954,9 @@ "beP" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/tiled/dark,/area/teleporter) "beQ" = (/obj/machinery/teleport/station,/turf/simulated/floor/tiled/dark,/area/teleporter) "beR" = (/obj/machinery/teleport/hub,/turf/simulated/floor/tiled/dark,/area/teleporter) -"beS" = (/obj/machinery/porta_turret{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"beT" = (/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"beU" = (/obj/structure/cable/cyan{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/tiled/dark,/area/turret_protected/ai_upload) +"beS" = (/obj/machinery/porta_turret{dir = 8},/turf/simulated/floor/bluegrid,/area/ai_upload) +"beT" = (/turf/simulated/floor/bluegrid,/area/ai_upload) +"beU" = (/obj/structure/cable/cyan{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/tiled/dark,/area/ai_upload) "beV" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/beach/water,/area/hydroponics/garden) "beW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/beach/water,/area/hydroponics/garden) "beX" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/flora/ausbushes/reedbush,/turf/simulated/floor/beach/water,/area/hydroponics/garden) @@ -2994,11 +2994,11 @@ "bfD" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/teleporter) "bfE" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/teleporter) "bfF" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/teleporter) -"bfG" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/protectStation,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"bfH" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) -"bfI" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) -"bfJ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) -"bfK" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/reset,/obj/machinery/light{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) +"bfG" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/protectStation,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/ai_upload) +"bfH" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai_upload) +"bfI" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai_upload) +"bfJ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/dark,/area/ai_upload) +"bfK" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/reset,/obj/machinery/light{dir = 4},/turf/simulated/floor/bluegrid,/area/ai_upload) "bfL" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/brflowers,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/newscaster{pixel_x = -30},/turf/simulated/floor/grass,/area/hydroponics/garden) "bfM" = (/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/simulated/floor/tiled,/area/hydroponics/garden) "bfN" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/flora/ausbushes/reedbush,/turf/simulated/floor/beach/water,/area/hydroponics/garden) @@ -3038,9 +3038,9 @@ "bgv" = (/turf/simulated/floor/tiled,/area/teleporter) "bgw" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled,/area/teleporter) "bgx" = (/obj/structure/dispenser{phorontanks = 0},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/dark,/area/teleporter) -"bgy" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/freeform,/obj/machinery/camera/network/command{c_tag = "AI - Upload"; dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"bgz" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) -"bgA" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/nanotrasen,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) +"bgy" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/freeform,/obj/machinery/camera/network/command{c_tag = "AI - Upload"; dir = 4},/turf/simulated/floor/bluegrid,/area/ai_upload) +"bgz" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai_upload) +"bgA" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/nanotrasen,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/bluegrid,/area/ai_upload) "bgB" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/structure/flora/ausbushes/pointybush,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/grass,/area/hydroponics/garden) "bgC" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/beach/water,/area/hydroponics/garden) "bgD" = (/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (NORTHWEST)"; icon_state = "spline_fancy"; dir = 9},/obj/structure/flora/ausbushes/ppflowers,/turf/simulated/floor/grass,/area/hydroponics/garden) @@ -3087,10 +3087,10 @@ "bhs" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bht" = (/obj/machinery/light_switch{pixel_x = -26},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/camera/network/command{c_tag = "COM - Teleporter"; dir = 4},/turf/simulated/floor/tiled,/area/teleporter) "bhu" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/floor/tiled/dark,/area/teleporter) -"bhv" = (/obj/machinery/porta_turret{dir = 8},/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"bhw" = (/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) -"bhx" = (/obj/structure/cable/cyan{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/bluegrid,/area/turret_protected/ai_upload) -"bhy" = (/obj/machinery/porta_turret{dir = 8},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) +"bhv" = (/obj/machinery/porta_turret{dir = 8},/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/ai_upload) +"bhw" = (/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/ai_upload) +"bhx" = (/obj/structure/cable/cyan{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/bluegrid,/area/ai_upload) +"bhy" = (/obj/machinery/porta_turret{dir = 8},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/ai_upload) "bhz" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/obj/machinery/portable_atmospherics/hydroponics/soil,/obj/machinery/camera/network/civilian{c_tag = "CIV - Park Aft"; dir = 1},/turf/simulated/floor/grass,/area/hydroponics/garden) "bhA" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/grass,/area/hydroponics/garden) "bhB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hydroponics/garden) @@ -3142,11 +3142,11 @@ "biv" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/command{name = "Teleport Access"; req_access = list(17)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/teleporter) "biw" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/teleporter) "bix" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/hologram/holopad,/obj/item/device/radio/beacon,/turf/simulated/floor/tiled,/area/teleporter) -"biy" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/asimov,/obj/item/weapon/aiModule/freeformcore,/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Core Modules"; req_access = list(20)},/obj/item/weapon/aiModule/corp,/obj/item/weapon/aiModule/paladin,/obj/item/weapon/aiModule/robocop,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"biz" = (/obj/machinery/computer/aiupload,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"biA" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/flasher{id = "AI"; pixel_x = 22; pixel_y = -24},/obj/item/device/radio/intercom/locked{frequency = 1343; locked_frequency = 1343; name = "Private AI Channel"; pixel_x = 38; pixel_y = -21},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"biB" = (/obj/machinery/computer/borgupload,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"biC" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/oxygen,/obj/item/weapon/aiModule/oneHuman,/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "High-Risk Modules"; req_access = list(20)},/obj/item/weapon/aiModule/purge,/obj/item/weapon/aiModule/antimov,/obj/item/weapon/aiModule/teleporterOffline,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) +"biy" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/asimov,/obj/item/weapon/aiModule/freeformcore,/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Core Modules"; req_access = list(20)},/obj/item/weapon/aiModule/corp,/obj/item/weapon/aiModule/paladin,/obj/item/weapon/aiModule/robocop,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/ai_upload) +"biz" = (/obj/machinery/computer/aiupload,/turf/simulated/floor/bluegrid,/area/ai_upload) +"biA" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/flasher{id = "AI"; pixel_x = 22; pixel_y = -24},/obj/item/device/radio/intercom/locked{frequency = 1343; locked_frequency = 1343; name = "Private AI Channel"; pixel_x = 38; pixel_y = -21},/turf/simulated/floor/bluegrid,/area/ai_upload) +"biB" = (/obj/machinery/computer/borgupload,/turf/simulated/floor/bluegrid,/area/ai_upload) +"biC" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/oxygen,/obj/item/weapon/aiModule/oneHuman,/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "High-Risk Modules"; req_access = list(20)},/obj/item/weapon/aiModule/purge,/obj/item/weapon/aiModule/antimov,/obj/item/weapon/aiModule/teleporterOffline,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/ai_upload) "biD" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/maintenance/central) "biE" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/obj/machinery/portable_atmospherics/hydroponics/soil,/turf/simulated/floor/grass,/area/hydroponics/garden) "biF" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/grass,/area/hydroponics/garden) @@ -3218,8 +3218,8 @@ "bjT" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/teleporter) "bjU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/teleporter) "bjV" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/teleporter) -"bjW" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai) -"bjX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/vault/bolted{name = "AI core"; req_access = list(16)},/obj/machinery/door/blast/regular{id = "AICore"; name = "AI core maintenance hatch"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) +"bjW" = (/turf/simulated/wall/r_wall,/area/ai) +"bjX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/vault/bolted{name = "AI core"; req_access = list(16)},/obj/machinery/door/blast/regular{id = "AICore"; name = "AI core maintenance hatch"},/turf/simulated/floor/bluegrid,/area/ai_upload) "bjY" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor,/area/maintenance/central) "bjZ" = (/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (SOUTHWEST)"; icon_state = "spline_fancy"; dir = 10},/obj/structure/flora/ausbushes/ppflowers,/turf/simulated/floor/grass,/area/hydroponics/garden) "bka" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 6},/obj/structure/flora/ausbushes/ppflowers,/turf/simulated/floor/grass,/area/hydroponics/garden) @@ -3291,13 +3291,13 @@ "blo" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "blp" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/teleporter) "blq" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/dark,/area/teleporter) -"blr" = (/obj/structure/flora/pottedplant{icon_state = "plant-09"; name = "Steve"; pixel_y = 15; tag = "icon-plant-09"},/obj/structure/table/standard,/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bls" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"blt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"blu" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"blv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"blw" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"blx" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"blr" = (/obj/structure/flora/pottedplant{icon_state = "plant-09"; name = "Steve"; pixel_y = 15; tag = "icon-plant-09"},/obj/structure/table/standard,/turf/simulated/floor/bluegrid,/area/ai) +"bls" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/bluegrid,/area/ai) +"blt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/bluegrid,/area/ai) +"blu" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/bluegrid,/area/ai) +"blv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/bluegrid,/area/ai) +"blw" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/bluegrid,/area/ai) +"blx" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/bluegrid,/area/ai) "bly" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/structure/flora/ausbushes/palebush,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/grass,/area/hydroponics/garden) "blz" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/beach/water,/area/hydroponics/garden) "blA" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 2},/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/grass,/area/hydroponics/garden) @@ -3365,12 +3365,12 @@ "bmK" = (/obj/machinery/shieldwallgen,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/teleporter) "bmL" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/teleporter) "bmM" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/closet/crate,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled,/area/teleporter) -"bmN" = (/obj/machinery/porta_turret{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bmO" = (/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) -"bmP" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bmQ" = (/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/ai_slipper{icon_state = "motion0"},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) -"bmR" = (/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) -"bmS" = (/obj/machinery/porta_turret{dir = 4},/obj/machinery/light{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"bmN" = (/obj/machinery/porta_turret{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/ai) +"bmO" = (/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/ai) +"bmP" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/bluegrid,/area/ai) +"bmQ" = (/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/ai_slipper{icon_state = "motion0"},/turf/simulated/floor/tiled/dark,/area/ai) +"bmR" = (/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/ai) +"bmS" = (/obj/machinery/porta_turret{dir = 4},/obj/machinery/light{dir = 4},/turf/simulated/floor/bluegrid,/area/ai) "bmT" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/structure/flora/ausbushes/sparsegrass,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/grass,/area/hydroponics/garden) "bmU" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/hydroponics/garden) "bmV" = (/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (NORTHWEST)"; icon_state = "spline_fancy"; dir = 9},/obj/structure/flora/ausbushes/sunnybush,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/grass,/area/hydroponics/garden) @@ -3442,12 +3442,12 @@ "boj" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bok" = (/obj/structure/closet/crate,/obj/item/weapon/crowbar,/turf/simulated/floor/tiled,/area/teleporter) "bol" = (/obj/structure/closet/crate,/turf/simulated/floor/tiled,/area/teleporter) -"bom" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bon" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"boo" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bop" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/door/window/northright{name = "AI Core Door"; req_access = list(16)},/obj/machinery/flasher{id = "AI"; pixel_x = -22; pixel_y = -24},/obj/machinery/turretid/stun{check_synth = 1; name = "AI Chamber turret control"; pixel_x = -38; pixel_y = -24},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"boq" = (/obj/machinery/power/apc/super/critical{dir = 2; is_critical = 1; name = "south bump"; pixel_y = -24},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bor" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"bom" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/ai) +"bon" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/bluegrid,/area/ai) +"boo" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/ai) +"bop" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/door/window/northright{name = "AI Core Door"; req_access = list(16)},/obj/machinery/flasher{id = "AI"; pixel_x = -22; pixel_y = -24},/obj/machinery/turretid/stun{check_synth = 1; name = "AI Chamber turret control"; pixel_x = -38; pixel_y = -24},/turf/simulated/floor/bluegrid,/area/ai) +"boq" = (/obj/machinery/power/apc/super/critical{dir = 2; is_critical = 1; name = "south bump"; pixel_y = -24},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/ai) +"bor" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/bluegrid,/area/ai) "bos" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/corner/paleblue{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/reception) "bot" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/central_two) "bou" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/disposalpipe/segment,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 26},/turf/simulated/floor/tiled,/area/hallway/primary/central_two) @@ -3515,14 +3515,14 @@ "bpE" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/white,/area/rnd/lab) "bpF" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/white,/area/rnd/lab) "bpG" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/micro_laser,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/effect/floor_decal/corner/purple{dir = 6},/turf/simulated/floor/tiled/white,/area/rnd/lab) -"bpH" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{dir = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = 20},/obj/item/device/radio/intercom{broadcasting = 0; dir = 2; frequency = 1343; name = "Private Channel"; pixel_x = 0; pixel_y = -21},/obj/item/device/radio/intercom{broadcasting = 1; dir = 8; listening = 1; name = "Common Channel"; pixel_x = -21; pixel_y = 0},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bpI" = (/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) -"bpJ" = (/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) -"bpK" = (/turf/simulated/wall,/area/turret_protected/ai) -"bpL" = (/obj/effect/landmark/start{name = "AI"},/obj/structure/cable/cyan,/obj/item/device/radio/intercom{broadcasting = 1; listening = 1; name = "Common Channel"; pixel_y = -21},/obj/item/device/radio/intercom{dir = 4; listening = 0; name = "Custom Channel"; pixel_x = 21; pixel_y = -10},/obj/item/device/radio/intercom{broadcasting = 0; dir = 8; frequency = 1343; name = "Private Channel"; pixel_x = -21; pixel_y = -10},/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(16)},/obj/machinery/requests_console{department = "AI"; departmentType = 5; pixel_x = 30; pixel_y = -32},/obj/machinery/newscaster/security_unit{pixel_x = -32; pixel_y = -32},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bpM" = (/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) -"bpN" = (/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"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bpO" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{dir = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = 21},/obj/item/device/radio/intercom{broadcasting = 0; frequency = 1343; name = "Private Channel"; pixel_x = 0; pixel_y = -21},/obj/item/device/radio/intercom{broadcasting = 1; dir = 4; listening = 1; name = "Common Channel"; pixel_x = 21; pixel_y = 0},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"bpH" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{dir = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = 20},/obj/item/device/radio/intercom{broadcasting = 0; dir = 2; frequency = 1343; name = "Private Channel"; pixel_x = 0; pixel_y = -21},/obj/item/device/radio/intercom{broadcasting = 1; dir = 8; listening = 1; name = "Common Channel"; pixel_x = -21; pixel_y = 0},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/bluegrid,/area/ai) +"bpI" = (/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/ai) +"bpJ" = (/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/dark,/area/ai) +"bpK" = (/turf/simulated/wall,/area/ai) +"bpL" = (/obj/effect/landmark/start{name = "AI"},/obj/structure/cable/cyan,/obj/item/device/radio/intercom{broadcasting = 1; listening = 1; name = "Common Channel"; pixel_y = -21},/obj/item/device/radio/intercom{dir = 4; listening = 0; name = "Custom Channel"; pixel_x = 21; pixel_y = -10},/obj/item/device/radio/intercom{broadcasting = 0; dir = 8; frequency = 1343; name = "Private Channel"; pixel_x = -21; pixel_y = -10},/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(16)},/obj/machinery/requests_console{department = "AI"; departmentType = 5; pixel_x = 30; pixel_y = -32},/obj/machinery/newscaster/security_unit{pixel_x = -32; pixel_y = -32},/turf/simulated/floor/bluegrid,/area/ai) +"bpM" = (/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled/dark,/area/ai) +"bpN" = (/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"},/turf/simulated/floor/bluegrid,/area/ai) +"bpO" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{dir = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = 21},/obj/item/device/radio/intercom{broadcasting = 0; frequency = 1343; name = "Private Channel"; pixel_x = 0; pixel_y = -21},/obj/item/device/radio/intercom{broadcasting = 1; dir = 4; listening = 1; name = "Common Channel"; pixel_x = 21; pixel_y = 0},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/bluegrid,/area/ai) "bpP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/primary/central_two) "bpQ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/medical/surgeryobs) "bpR" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/bed/chair{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/medical/surgeryobs) @@ -3608,10 +3608,10 @@ "brt" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/disposalpipe/segment,/obj/machinery/camera/network/northern_star{c_tag = "Hall - Central Primary Port Fore 2"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bru" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "brv" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) -"brw" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"brx" = (/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) -"bry" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) -"brz" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"brw" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/bluegrid,/area/ai) +"brx" = (/turf/simulated/floor/tiled/dark,/area/ai) +"bry" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/dark,/area/ai) +"brz" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/bluegrid,/area/ai) "brA" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/flora/pottedplant{icon_state = "plant-22"},/turf/simulated/floor/wood,/area/rnd/research) "brB" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 5},/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/grass,/area/hydroponics/garden) "brC" = (/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (NORTHWEST)"; icon_state = "spline_fancy"; dir = 9},/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/grass,/area/hydroponics/garden) @@ -3680,11 +3680,11 @@ "bsN" = (/obj/machinery/r_n_d/circuit_imprinter,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/simulated/floor/tiled,/area/rnd/lab) "bsO" = (/obj/effect/floor_decal/corner/purple{dir = 6},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/white,/area/rnd/lab) "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/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/lab) -"bsQ" = (/obj/machinery/porta_turret{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bsR" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bsS" = (/obj/machinery/power/smes/buildable{charge = 5e+006; input_attempt = 1; input_level = 200000; output_level = 200000},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/machinery/camera/xray/command{c_tag = "AI - Core"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bsT" = (/obj/machinery/power/sensor{name = "Powernet Sensor - AI Subgrid"; name_tag = "AI Subgrid"},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bsU" = (/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) +"bsQ" = (/obj/machinery/porta_turret{dir = 4},/turf/simulated/floor/bluegrid,/area/ai) +"bsR" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/bluegrid,/area/ai) +"bsS" = (/obj/machinery/power/smes/buildable{charge = 5e+006; input_attempt = 1; input_level = 200000; output_level = 200000},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/machinery/camera/xray/command{c_tag = "AI - Core"},/turf/simulated/floor/bluegrid,/area/ai) +"bsT" = (/obj/machinery/power/sensor{name = "Powernet Sensor - AI Subgrid"; name_tag = "AI Subgrid"},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/bluegrid,/area/ai) +"bsU" = (/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/dark,/area/ai) "bsV" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 5},/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/grass,/area/hydroponics/garden) "bsW" = (/obj/machinery/door/airlock/medical{id_tag = "surgery_observation"; name = "Observation Room"; req_access = newlist()},/obj/machinery/holosign/surgery,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/medical/surgeryobs) "bsX" = (/turf/simulated/wall,/area/medical/medbay_primary_storage) @@ -3751,10 +3751,10 @@ "bug" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled/white,/area/rnd/lab) "buh" = (/obj/effect/floor_decal/corner/purple{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/rnd/lab) "bui" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/lab) -"buj" = (/obj/machinery/light,/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"buk" = (/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bul" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bum" = (/obj/machinery/porta_turret{dir = 4},/obj/machinery/flasher{id = "AI"; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"buj" = (/obj/machinery/light,/turf/simulated/floor/bluegrid,/area/ai) +"buk" = (/turf/simulated/floor/bluegrid,/area/ai) +"bul" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/bluegrid,/area/ai) +"bum" = (/obj/machinery/porta_turret{dir = 4},/obj/machinery/flasher{id = "AI"; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/bluegrid,/area/ai) "bun" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_two) "buo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "medbayquar"; name = "Medbay Emergency Lockdown Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/reception) "bup" = (/obj/structure/table/standard,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/crew_quarters/cafeteria) @@ -3823,7 +3823,7 @@ "bvA" = (/obj/effect/floor_decal/corner/purple{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/lab) "bvB" = (/obj/structure/bed/chair/office/light,/obj/effect/floor_decal/corner/purple{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor/tiled/white,/area/rnd/lab) "bvC" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/clipboard,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/effect/floor_decal/corner/purple/full{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/rnd/lab) -"bvD" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/turret_protected/ai) +"bvD" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/ai) "bvE" = (/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/crew_quarters/cafeteria) "bvF" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/flora/pottedplant{icon_state = "plant-22"},/turf/simulated/floor/tiled/dark,/area/hallway/primary/central_two) "bvG" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/obj/structure/flora/ausbushes/brflowers,/obj/machinery/light,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/grass,/area/hydroponics/garden) diff --git a/maps/polaris-3.dmm b/maps/polaris-3.dmm index 86a1985ede..6f62e83d81 100644 --- a/maps/polaris-3.dmm +++ b/maps/polaris-3.dmm @@ -113,16 +113,16 @@ "ci" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/camera/network/telecom{c_tag = "Telecoms - Solar North"; dir = 1},/turf/simulated/floor/airless,/area/space) "cj" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/space) "ck" = (/turf/simulated/wall/r_wall,/area/space) -"cl" = (/turf/simulated/wall/r_wall,/area/turret_protected/tcomsat) +"cl" = (/turf/simulated/wall/r_wall,/area/tcomsat) "cm" = (/turf/simulated/wall/r_wall,/area/tcommsat/computer) -"cn" = (/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) -"co" = (/turf/space,/area/turret_protected/tcomsat) -"cp" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/camera/network/telecom{c_tag = "Telecoms West Wing North"},/turf/space,/area/turret_protected/tcomsat) -"cq" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cr" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 6; icon_state = "intact"; tag = "icon-intact-f (SOUTHEAST)"},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cs" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/valve/digital/open{dir = 4; name = "Mixed Air Outlet Valve"},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"ct" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/meter,/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cu" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) +"cn" = (/obj/structure/lattice,/turf/space,/area/tcomsat) +"co" = (/turf/space,/area/tcomsat) +"cp" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/camera/network/telecom{c_tag = "Telecoms West Wing North"},/turf/space,/area/tcomsat) +"cq" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/plating,/area/tcomsat) +"cr" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 6; icon_state = "intact"; tag = "icon-intact-f (SOUTHEAST)"},/turf/simulated/floor/plating,/area/tcomsat) +"cs" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/valve/digital/open{dir = 4; name = "Mixed Air Outlet Valve"},/turf/simulated/floor/plating,/area/tcomsat) +"ct" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/meter,/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/turf/simulated/floor/plating,/area/tcomsat) +"cu" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/tcomsat) "cv" = (/turf/simulated/floor/airless,/area/tcommsat/computer) "cw" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/tcommsat/computer) "cx" = (/obj/structure/bed,/obj/item/weapon/bedsheet/green,/turf/simulated/floor/tiled,/area/tcommsat/computer) @@ -130,13 +130,13 @@ "cz" = (/obj/structure/bed,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor/tiled,/area/tcommsat/computer) "cA" = (/obj/structure/bed,/obj/item/weapon/bedsheet/red,/turf/simulated/floor/tiled,/area/tcommsat/computer) "cB" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) -"cC" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/turret_protected/tcomsat) -"cD" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cE" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cG" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cH" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cI" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomsat) +"cC" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/tcomsat) +"cD" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/plating,/area/tcomsat) +"cE" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor/plating,/area/tcomsat) +"cF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/tcomsat) +"cG" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating,/area/tcomsat) +"cH" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/tcomsat) +"cI" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat) "cJ" = (/obj/structure/table/standard,/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/obj/machinery/light{dir = 1},/obj/machinery/camera/network/telecom{c_tag = "Telecoms Main Computer Room"},/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) "cK" = (/obj/structure/filingcabinet,/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) "cL" = (/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) @@ -145,13 +145,13 @@ "cO" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp,/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) "cP" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -29; pixel_y = 0},/turf/simulated/floor/tiled,/area/tcommsat/computer) "cQ" = (/obj/machinery/computer/telecomms/monitor{network = "tcommsat"},/obj/item/device/radio/intercom{name = "General Listening Channel"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) -"cR" = (/obj/structure/window/reinforced{dir = 4},/turf/space,/area/turret_protected/tcomsat) -"cS" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cT" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cV" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cX" = (/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomsat) +"cR" = (/obj/structure/window/reinforced{dir = 4},/turf/space,/area/tcomsat) +"cS" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/tcomsat) +"cT" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/plating,/area/tcomsat) +"cU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/tcomsat) +"cV" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcomsat) +"cW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet,/turf/simulated/floor/plating,/area/tcomsat) +"cX" = (/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat) "cY" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/turf/simulated/floor/tiled,/area/tcommsat/computer) "cZ" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/tiled,/area/tcommsat/computer) "da" = (/obj/structure/bed/chair/office/dark{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/tiled,/area/tcommsat/computer) @@ -159,12 +159,12 @@ "dc" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/turf/simulated/floor/tiled,/area/tcommsat/computer) "dd" = (/obj/structure/bed,/obj/item/weapon/bedsheet/orange,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/tcommsat/computer) "de" = (/obj/machinery/firealarm{dir = 4; pixel_x = 26},/turf/simulated/floor/tiled,/area/tcommsat/computer) -"df" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) -"dg" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) -"dh" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"di" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/turret_protected/tcomsat) -"dj" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/space,/area/turret_protected/tcomsat) -"dk" = (/obj/structure/window/reinforced,/turf/space,/area/turret_protected/tcomsat) +"df" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/tcomsat) +"dg" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/tcomsat) +"dh" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/tcomsat) +"di" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat) +"dj" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat) +"dk" = (/obj/structure/window/reinforced,/turf/space,/area/tcomsat) "dl" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/tcommsat/computer) "dm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled,/area/tcommsat/computer) "dn" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/tcommsat/computer) @@ -176,11 +176,11 @@ "dt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled,/area/tcommsat/computer) "du" = (/obj/structure/bed/chair{dir = 8},/obj/structure/sign/deathsposal{pixel_x = 32},/turf/simulated/floor/tiled,/area/tcommsat/computer) "dv" = (/obj/structure/table/standard,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor/tiled,/area/tcommsat/computer) -"dw" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"dx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"dy" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"dz" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"dA" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) +"dw" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/tcomsat) +"dx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/tcomsat) +"dy" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/tcomsat) +"dz" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/tcomsat) +"dA" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/tcomsat) "dB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/hatch{name = "Telecoms Control Room"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcommsat/computer) "dC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/tcommsat/computer) "dD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/tcommsat/computer) @@ -198,10 +198,10 @@ "dP" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/space) "dQ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/airless,/area/space) "dR" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/airless,/area/space) -"dS" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"dT" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/turret_protected/tcomsat) -"dU" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/light,/turf/space,/area/turret_protected/tcomsat) -"dV" = (/obj/structure/window/reinforced{dir = 1},/turf/space,/area/turret_protected/tcomsat) +"dS" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat) +"dT" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat) +"dU" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/light,/turf/space,/area/tcomsat) +"dV" = (/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat) "dW" = (/obj/machinery/light{dir = 8},/obj/structure/table/standard,/obj/item/device/multitool,/obj/structure/sign/electricshock{pixel_x = -32},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) "dX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) "dY" = (/obj/machinery/atmospherics/unary/freezer{dir = 2; icon_state = "freezer_1"; set_temperature = 73; use_power = 1},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) @@ -210,19 +210,19 @@ "eb" = (/obj/machinery/airlock_sensor{frequency = 1381; id_tag = "server_access_sensor"; pixel_x = 12; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1381; id_tag = "server_access_pump"},/obj/machinery/embedded_controller/radio/airlock/advanced_airlock_controller{frequency = 1381; id_tag = "server_access_airlock"; name = "Server Access Airlock"; pixel_x = 0; pixel_y = 25; tag_airpump = "server_access_pump"; tag_chamber_sensor = "server_access_sensor"; tag_exterior_door = "server_access_outer"; tag_exterior_sensor = "server_access_ex_sensor"; tag_interior_door = "server_access_inner"; tag_interior_sensor = "server_access_in_sensor"; tag_secure = 1},/turf/simulated/floor/plating,/area/tcommsat/chamber) "ec" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/tcommsat/chamber) "ed" = (/obj/machinery/door/airlock/hatch{name = "Telecoms Lounge"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcommsat/computer) -"ee" = (/obj/machinery/porta_turret/stationary,/turf/simulated/floor/airless,/area/turret_protected/tcomsat) -"ef" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) +"ee" = (/obj/machinery/porta_turret/stationary,/turf/simulated/floor/airless,/area/tcomsat) +"ef" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/space,/area/tcomsat) "eg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 6},/turf/simulated/floor/plating,/area/tcommsat/chamber) "eh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/black,/turf/simulated/floor/plating,/area/tcommsat/chamber) "ei" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/chamber) "ej" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/chamber) "ek" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 10},/turf/simulated/floor/plating,/area/tcommsat/chamber) "el" = (/obj/machinery/door/airlock/maintenance_hatch{frequency = 1381; icon_state = "door_locked"; id_tag = "server_access_inner"; locked = 1; name = "Telecoms Server Access"; req_access = list(61)},/turf/simulated/floor/plating,/area/tcommsat/chamber) -"em" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"en" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) +"em" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/tcomsat) +"en" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/tcomsat) "eo" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/space) -"ep" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"eq" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/space,/area/turret_protected/tcomsat) +"ep" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat) +"eq" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/space,/area/tcomsat) "er" = (/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "es" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "et" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/black,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) @@ -234,42 +234,42 @@ "ez" = (/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "eA" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 32},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "eB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/space) -"eC" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"eD" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/space,/area/turret_protected/tcomsat) +"eC" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat) +"eD" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/space,/area/tcomsat) "eE" = (/obj/machinery/atmospherics/pipe/simple/hidden/black,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"eF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"eG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"eH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"eI" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) +"eF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat) +"eG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat) +"eH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat) +"eI" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat) "eJ" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/space) "eK" = (/obj/machinery/power/solar,/obj/structure/cable/yellow,/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/space) -"eL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"eM" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/space,/area/turret_protected/tcomsat) +"eL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat) +"eM" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/space,/area/tcomsat) "eN" = (/obj/machinery/telecomms/server/presets/service,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "eO" = (/obj/machinery/telecomms/server/presets/supply,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "eP" = (/obj/machinery/telecomms/server/presets/unused,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"eQ" = (/obj/structure/table/rack,/obj/item/weapon/circuitboard/telecomms/processor,/obj/item/weapon/circuitboard/telecomms/processor,/obj/item/weapon/circuitboard/telecomms/receiver,/obj/item/weapon/circuitboard/telecomms/server,/obj/item/weapon/circuitboard/telecomms/server,/obj/item/weapon/circuitboard/telecomms/bus,/obj/item/weapon/circuitboard/telecomms/bus,/obj/item/weapon/circuitboard/telecomms/broadcaster,/obj/item/weapon/circuitboard/telecomms/exonet_node,/turf/simulated/floor,/area/turret_protected/tcomsat) +"eQ" = (/obj/structure/table/rack,/obj/item/weapon/circuitboard/telecomms/processor,/obj/item/weapon/circuitboard/telecomms/processor,/obj/item/weapon/circuitboard/telecomms/receiver,/obj/item/weapon/circuitboard/telecomms/server,/obj/item/weapon/circuitboard/telecomms/server,/obj/item/weapon/circuitboard/telecomms/bus,/obj/item/weapon/circuitboard/telecomms/bus,/obj/item/weapon/circuitboard/telecomms/broadcaster,/obj/item/weapon/circuitboard/telecomms/exonet_node,/turf/simulated/floor,/area/tcomsat) "eR" = (/obj/machinery/telecomms/server/presets/common,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "eS" = (/obj/machinery/telecomms/server/presets/engineering,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"eT" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/space,/area/turret_protected/tcomsat) -"eU" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"eV" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"eW" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/turf/simulated/floor,/area/turret_protected/tcomsat) -"eX" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/camera/network/telecom{c_tag = "Telecoms Storage"},/turf/simulated/floor,/area/turret_protected/tcomsat) +"eT" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/space,/area/tcomsat) +"eU" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/tcomsat) +"eV" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat) +"eW" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/turf/simulated/floor,/area/tcomsat) +"eX" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/camera/network/telecom{c_tag = "Telecoms Storage"},/turf/simulated/floor,/area/tcomsat) "eY" = (/obj/machinery/exonet_node,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"eZ" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/camera/network/telecom{c_tag = "Telecoms West Wing Central"; dir = 8},/turf/space,/area/turret_protected/tcomsat) -"fa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"fb" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/space,/area/turret_protected/tcomsat) -"fc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"fd" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomsat) -"fe" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/machinery/firealarm{dir = 4; pixel_x = 26},/turf/simulated/floor,/area/turret_protected/tcomsat) -"ff" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/turf/simulated/floor,/area/turret_protected/tcomsat) -"fg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/turret_protected/tcomsat) +"eZ" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/camera/network/telecom{c_tag = "Telecoms West Wing Central"; dir = 8},/turf/space,/area/tcomsat) +"fa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat) +"fb" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/space,/area/tcomsat) +"fc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/tcomsat) +"fd" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat) +"fe" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/machinery/firealarm{dir = 4; pixel_x = 26},/turf/simulated/floor,/area/tcomsat) +"ff" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/turf/simulated/floor,/area/tcomsat) +"fg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/tcomsat) "fh" = (/obj/machinery/telecomms/hub/preset,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fi" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/airless,/area/space) "fj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/space) "fk" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/camera/network/telecom{c_tag = "Telecoms - Solar West"; dir = 8},/turf/simulated/floor/airless,/area/space) -"fl" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 4},/turf/space,/area/turret_protected/tcomsat) +"fl" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 4},/turf/space,/area/tcomsat) "fm" = (/obj/structure/sign/nosmoking_2{pixel_x = -32; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fn" = (/obj/machinery/telecomms/bus/preset_two,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fo" = (/obj/machinery/telecomms/processor/preset_two,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) @@ -279,27 +279,27 @@ "fs" = (/obj/machinery/telecomms/relay/preset/station,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "ft" = (/obj/machinery/telecomms/processor/preset_four,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fu" = (/obj/structure/sign/nosmoking_2{pixel_x = 32; pixel_y = 0},/obj/machinery/light{dir = 4},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"fv" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/space,/area/turret_protected/tcomsat) -"fw" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) +"fv" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/space,/area/tcomsat) +"fw" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled,/area/tcomsat) "fx" = (/obj/machinery/telecomms/receiver/preset_right,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"fy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/turret_protected/tcomsat) -"fz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor,/area/turret_protected/tcomsat) -"fA" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 29; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/turret_protected/tcomsat) +"fy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/tcomsat) +"fz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor,/area/tcomsat) +"fA" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 29; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/tcomsat) "fB" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/camera/network/telecom{c_tag = "Telecoms - Solar East"; dir = 4},/turf/simulated/floor/airless,/area/space) "fC" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/space) "fD" = (/obj/machinery/telecomms/processor/preset_one,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fE" = (/obj/machinery/telecomms/bus/preset_one,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fF" = (/obj/machinery/telecomms/processor/preset_three,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fG" = (/obj/machinery/telecomms/bus/preset_three,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"fH" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomsat) -"fI" = (/obj/machinery/door/airlock/maintenance_hatch{name = "Telecoms Storage"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"fJ" = (/turf/simulated/floor,/area/turret_protected/tcomsat) -"fK" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/turret_protected/tcomsat) -"fL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"fM" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/machinery/alarm{dir = 8; pixel_x = 25; pixel_y = 0},/turf/simulated/floor,/area/turret_protected/tcomsat) -"fN" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/turf/simulated/floor,/area/turret_protected/tcomsat) -"fO" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/turf/simulated/floor,/area/turret_protected/tcomsat) -"fP" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/turf/simulated/floor,/area/turret_protected/tcomsat) +"fH" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat) +"fI" = (/obj/machinery/door/airlock/maintenance_hatch{name = "Telecoms Storage"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcomsat) +"fJ" = (/turf/simulated/floor,/area/tcomsat) +"fK" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/tcomsat) +"fL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat) +"fM" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/machinery/alarm{dir = 8; pixel_x = 25; pixel_y = 0},/turf/simulated/floor,/area/tcomsat) +"fN" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/turf/simulated/floor,/area/tcomsat) +"fO" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/turf/simulated/floor,/area/tcomsat) +"fP" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/turf/simulated/floor,/area/tcomsat) "fQ" = (/obj/machinery/telecomms/server/presets/medical,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fR" = (/obj/machinery/telecomms/server/presets/science,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fS" = (/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 9},/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) @@ -308,43 +308,43 @@ "fV" = (/obj/machinery/telecomms/server/presets/command,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fW" = (/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 10},/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fX" = (/obj/machinery/telecomms/server/presets/security,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"fY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) +"fY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat) "fZ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 140; external_pressure_bound_default = 140; icon_state = "map_vent_out"; use_power = 1; pressure_checks = 0; pressure_checks_default = 0},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "ga" = (/obj/machinery/light,/obj/machinery/camera/network/telecom{c_tag = "Telecoms Central Compartment South"; dir = 1},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "gb" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; external_pressure_bound_default = 0; icon_state = "map_vent_in"; initialize_directions = 1; internal_pressure_bound = 4000; internal_pressure_bound_default = 4000; use_power = 1; pressure_checks = 2; pressure_checks_default = 2; pump_direction = 0},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"gc" = (/obj/machinery/porta_turret{dir = 6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled/dark,/area/turret_protected/tcomfoyer) -"gd" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/space,/area/turret_protected/tcomsat) -"ge" = (/obj/structure/window/reinforced,/obj/structure/lattice,/obj/machinery/light{dir = 1},/turf/space,/area/turret_protected/tcomsat) -"gf" = (/turf/simulated/wall/r_wall,/area/turret_protected/tcomfoyer) -"gg" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/tcomfoyer) -"gh" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/turretid/lethal{ailock = 1; check_synth = 1; control_area = "\improper Telecoms Satellite"; desc = "A firewall prevents AIs from interacting with this device."; name = "Telecoms lethal turret control"; pixel_y = 29; req_access = list(61)},/obj/machinery/camera/network/telecom{c_tag = "Telecoms Foyer"},/turf/simulated/floor/tiled/dark,/area/turret_protected/tcomfoyer) -"gi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled/dark,/area/turret_protected/tcomfoyer) -"gj" = (/obj/machinery/porta_turret{dir = 10},/turf/simulated/floor/tiled/dark,/area/turret_protected/tcomfoyer) -"gk" = (/turf/simulated/floor/tiled,/area/turret_protected/tcomfoyer) -"gl" = (/turf/simulated/floor/tiled/dark,/area/turret_protected/tcomfoyer) -"gm" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/tiled/dark,/area/turret_protected/tcomfoyer) -"gn" = (/obj/structure/window/reinforced,/obj/machinery/light{dir = 1},/turf/space,/area/turret_protected/tcomsat) -"go" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/space,/area/turret_protected/tcomsat) -"gp" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"gq" = (/obj/machinery/door/airlock/hatch{name = "Telecoms West Wing"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/turret_protected/tcomfoyer) -"gr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/turret_protected/tcomfoyer) -"gs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/turret_protected/tcomfoyer) -"gt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/turret_protected/tcomfoyer) -"gu" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"gv" = (/obj/machinery/camera/network/telecom{c_tag = "Telecoms East Wing South"; dir = 8},/turf/space,/area/turret_protected/tcomsat) -"gw" = (/obj/machinery/camera/network/telecom{c_tag = "Telecoms West Wing South"; dir = 4},/turf/space,/area/turret_protected/tcomsat) -"gx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) -"gy" = (/obj/machinery/door/airlock/hatch{name = "Telecoms East Wing"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/turret_protected/tcomfoyer) -"gz" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/dark,/area/turret_protected/tcomfoyer) -"gA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/turret_protected/tcomfoyer) +"gc" = (/obj/machinery/porta_turret{dir = 6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled/dark,/area/tcomfoyer) +"gd" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/space,/area/tcomsat) +"ge" = (/obj/structure/window/reinforced,/obj/structure/lattice,/obj/machinery/light{dir = 1},/turf/space,/area/tcomsat) +"gf" = (/turf/simulated/wall/r_wall,/area/tcomfoyer) +"gg" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/tiled/dark,/area/tcomfoyer) +"gh" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/turretid/lethal{ailock = 1; check_synth = 1; control_area = "\improper Telecoms Satellite"; desc = "A firewall prevents AIs from interacting with this device."; name = "Telecoms lethal turret control"; pixel_y = 29; req_access = list(61)},/obj/machinery/camera/network/telecom{c_tag = "Telecoms Foyer"},/turf/simulated/floor/tiled/dark,/area/tcomfoyer) +"gi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled/dark,/area/tcomfoyer) +"gj" = (/obj/machinery/porta_turret{dir = 10},/turf/simulated/floor/tiled/dark,/area/tcomfoyer) +"gk" = (/turf/simulated/floor/tiled,/area/tcomfoyer) +"gl" = (/turf/simulated/floor/tiled/dark,/area/tcomfoyer) +"gm" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/tiled/dark,/area/tcomfoyer) +"gn" = (/obj/structure/window/reinforced,/obj/machinery/light{dir = 1},/turf/space,/area/tcomsat) +"go" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/space,/area/tcomsat) +"gp" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/tcomsat) +"gq" = (/obj/machinery/door/airlock/hatch{name = "Telecoms West Wing"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcomfoyer) +"gr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/tcomfoyer) +"gs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/tcomfoyer) +"gt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/tcomfoyer) +"gu" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/tcomsat) +"gv" = (/obj/machinery/camera/network/telecom{c_tag = "Telecoms East Wing South"; dir = 8},/turf/space,/area/tcomsat) +"gw" = (/obj/machinery/camera/network/telecom{c_tag = "Telecoms West Wing South"; dir = 4},/turf/space,/area/tcomsat) +"gx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/tcomsat) +"gy" = (/obj/machinery/door/airlock/hatch{name = "Telecoms East Wing"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcomfoyer) +"gz" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/dark,/area/tcomfoyer) +"gA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/tcomfoyer) "gB" = (/turf/simulated/wall/r_wall,/area/tcommsat/entrance) -"gC" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark,/area/turret_protected/tcomfoyer) -"gD" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/turret_protected/tcomfoyer) +"gC" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark,/area/tcomfoyer) +"gD" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/tcomfoyer) "gE" = (/turf/simulated/floor/tiled,/area/tcommsat/entrance) "gF" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/tiled,/area/tcommsat/entrance) "gG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/tcommsat/entrance) "gH" = (/obj/machinery/turretid/stun{ailock = 1; check_synth = 1; control_area = "\improper Telecoms Foyer"; desc = "A firewall prevents AIs from interacting with this device."; name = "Telecoms Foyer turret control"; pixel_y = 29; req_access = list(61)},/turf/simulated/floor/tiled,/area/tcommsat/entrance) -"gI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/hatch{name = "Telecoms Satellite"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/turret_protected/tcomfoyer) +"gI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/hatch{name = "Telecoms Satellite"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcomfoyer) "gJ" = (/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance) "gK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcommsat/entrance) "gL" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/tcommsat/entrance) diff --git a/polaris.dme b/polaris.dme index d29063995c..e8d08c4d96 100644 --- a/polaris.dme +++ b/polaris.dme @@ -406,7 +406,6 @@ #include "code\game\machinery\syndicatebeacon.dm" #include "code\game\machinery\teleporter.dm" #include "code\game\machinery\turret_control.dm" -#include "code\game\machinery\turrets.dm" #include "code\game\machinery\vending.dm" #include "code\game\machinery\wall_frames.dm" #include "code\game\machinery\washing_machine.dm" From 64501e9937cb1994e214d3b582a7340319f4228a Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Mon, 7 Mar 2016 20:18:14 +0100 Subject: [PATCH 04/61] Fixes two bar recipes --- code/modules/reagents/Chemistry-Recipes.dm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 7c19f42565..6b268785f8 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -321,9 +321,9 @@ /datum/chemical_reaction/dexalin name = "Dexalin" id = "dexalin" - result = "dexalin" + result = "dexalin" required_reagents = list("oxygen" = 2, "phoron" = 0.1) - catalysts = list("phoron" = 1) + catalysts = list("phoron" = 1) inhibitors = list("water" = 1) // Messes with cryox result_amount = 1 @@ -1484,15 +1484,15 @@ name = "Iced Tea" id = "icetea" result = "icetea" - required_reagents = list("ice" = 1, "tea" = 4) - result_amount = 4 + required_reagents = list("ice" = 1, "tea" = 2) + result_amount = 3 /datum/chemical_reaction/icecoffee name = "Iced Coffee" id = "icecoffee" result = "icecoffee" - required_reagents = list("ice" = 1, "coffee" = 4) - result_amount = 4 + required_reagents = list("ice" = 1, "coffee" = 2) + result_amount = 3 /datum/chemical_reaction/nuka_cola name = "Nuka Cola" From f122902b840c009cfd070cf62d1c9928ab64ae3f Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Mon, 5 Oct 2015 17:35:48 +0200 Subject: [PATCH 05/61] Adds laundry basket Conflicts: icons/mob/items/lefthand.dmi icons/mob/items/righthand.dmi --- .../items/weapons/storage/laundry_basket.dm | 87 ++++++++++++++++++ .../structures/crates_lockers/closets.dm | 9 ++ .../closets/secure/secure_closets.dm | 2 + icons/mob/items/lefthand.dmi | Bin 119598 -> 120052 bytes icons/mob/items/righthand.dmi | Bin 121038 -> 121554 bytes icons/obj/janitor.dmi | Bin 10662 -> 11231 bytes polaris.dme | 1 + 7 files changed, 99 insertions(+) create mode 100644 code/game/objects/items/weapons/storage/laundry_basket.dm diff --git a/code/game/objects/items/weapons/storage/laundry_basket.dm b/code/game/objects/items/weapons/storage/laundry_basket.dm new file mode 100644 index 0000000000..92dd28c61a --- /dev/null +++ b/code/game/objects/items/weapons/storage/laundry_basket.dm @@ -0,0 +1,87 @@ +// ----------------------------- +// Laundry Basket +// ----------------------------- +// An item designed for hauling the belongings of a character. +// So this cannot be abused for other uses, we make it two-handed and inable to have its storage looked into. +/obj/item/weapon/storage/laundry_basket + name = "laundry basket" + icon = 'icons/obj/janitor.dmi' + icon_state = "laundry-empty" + item_state = "laundry" + desc = "The peak of thousands of years of laundry evolution." + + w_class = 5 + max_w_class = 4 + max_storage_space = 25 //20 for clothes + a bit of additional space for non-clothing items that were worn on body + storage_slots = 14 + use_to_pickup = 1 + allow_quick_empty = 1 + allow_quick_gather = 1 + collection_mode = 1 + var/linked + + +/obj/item/weapon/storage/laundry_basket/attack_hand(mob/user as mob) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + var/obj/item/organ/external/temp = H.get_organ("r_hand") + if (user.hand) + temp = H.get_organ("l_hand") + if(!temp) + user << "You need two hands to pick this up!" + return + + if(user.get_inactive_hand()) + user << "You need your other hand to be empty" + return + return ..() + +/obj/item/weapon/storage/laundry_basket/attack_self(mob/user as mob) + var/turf/T = get_turf(user) + user << "You dump the [src]'s contents onto \the [T]." + return ..() + +/obj/item/weapon/storage/laundry_basket/pickup(mob/user) + var/obj/item/weapon/storage/laundry_basket/offhand/O = new(user) + O.name = "[name] - second hand" + O.desc = "Your second grip on the [name]." + O.linked = src + user.put_in_inactive_hand(O) + linked = O + return + +/obj/item/weapon/storage/laundry_basket/update_icon() + if(contents.len) + icon_state = "laundry-full" + else + icon_state = "laundry-empty" + return + + +/obj/item/weapon/storage/laundry_basket/MouseDrop(obj/over_object as obj) + if(over_object == usr) + return + else + return ..() + +/obj/item/weapon/storage/laundry_basket/dropped(mob/user as mob) + qdel(linked) + return ..() + +/obj/item/weapon/storage/laundry_basket/show_to(mob/user as mob) + return + +/obj/item/weapon/storage/laundry_basket/open(mob/user as mob) + + +//Offhand +/obj/item/weapon/storage/laundry_basket/offhand + icon = 'icons/obj/weapons.dmi' + icon_state = "offhand" + name = "second hand" + use_to_pickup = 0 + +/obj/item/weapon/storage/laundry_basket/offhand/dropped(mob/user as mob) + user.drop_from_inventory(linked) + return + diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 546621024e..5029e166d2 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -217,6 +217,15 @@ M.show_message("\The [src] has been cut apart by [user] with \the [WT].", 3, "You hear welding.", 2) qdel(src) return + if(istype(W, /obj/item/weapon/storage/laundry_basket) && W.contents.len) + var/obj/item/weapon/storage/laundry_basket/LB = W + var/turf/T = get_turf(src) + for(var/obj/item/I in LB.contents) + LB.remove_from_storage(I, T) + user.visible_message("[user] empties \the [LB] into \the [src].", \ + "You empty \the [LB] into \the [src].", \ + "You hear rustling of clothes.") + return if(isrobot(user)) return if(W.loc != user) // This should stop mounted modules ending up outside the module. diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm index e3ea31375e..1ce97a64a7 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm @@ -65,6 +65,8 @@ /obj/structure/closet/secure_closet/attackby(obj/item/weapon/W as obj, mob/user as mob) if(src.opened) + if(istype(W, /obj/item/weapon/storage/laundry_basket)) + return ..(W,user) if(istype(W, /obj/item/weapon/grab)) var/obj/item/weapon/grab/G = W if(src.large) diff --git a/icons/mob/items/lefthand.dmi b/icons/mob/items/lefthand.dmi index 61b297f9cc5d73ec81f3b854e69dbc8039017d39..728255c84172d2f19c7887cb81d555c6b83003cf 100644 GIT binary patch delta 21546 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 MHqt4(^)U4R03sQ`nE(I) delta 21119 zcmZ7d1z1$i`#%mZtstQyog!k;NOy{&v~+iO!*al&QxK$6y1SQfssg=L?E z@6Y#t{jO)=)Xdq5*W7c@UFWnAuPhHQ<_U&fEHgj0nR}RBtPwNtLWd8LG6Gz=L2KVy zIlICxcMg#+s@_%7q9^4d`4K7fZPzDP9O$bxGV88~dUYe>ebQ<`c{)d1) z+u6*YAgXW0K;CFDH$rnKFW0vWs@G(+{)9P#WZbRSyj{aaVI#>8?SDN=HY5I4iL7qi zFn2p1nfatzjawoWpFxq?UX#m+yeRbT0#eMyITpXBBrvXOi7+)}U^yQmZE9AD z!1K3L&6BmkPT&eVQ6{(6&sAv;$kDRLF6bd}Dpu72wmyb0^FiZXIz$o&0vNx%J`+M~y)e!lks;WF$akvA`8SU(rAm^#ZZnTA7co|541PxKuHC6%1< zjy?-HSGlg(mn1AvkbIAAl~BZQ@Ts4!A&#oQ)8nmr;0}{(^PQAN6|_*a78cHc`ZGph z-9o~LoL6t{AtE#PgD)<8IG;Zx&M^AT7I96P=nZt7HcZl1pyk-PF4B`BO1Xtk^P@jG zXYjWg5vP7FgU}GiXykaezgx1=^E1pR%3Ps-XznoPW{x$vOW0Dbd)fz0I_B-Nca)ICIpFeldcpjJ)6OVUJcqc~pB4$UQdFm1sLL9%>e9`yZkh9&^`pu1AOo6gO zaWWwBJKaJ*fFjWv?^&7BI~)}!?;@2zekP?niJz&pBdbg6o{*!nnpb0DQ(jt~ZXU)f zjUAz1r|+~(hwe(;9ks%x#aBW(h34N4*~lw&B=So3my*c1ue?&-LSdIk7NB2#_uf!M zp(Jh}i~azKu~{VkpY~5Zszg{dm~d30gP1Zf4Bgrxdt;nH`R2{Xz^okHmZvO21uBB* z++_)_R&fi@u+!&$Su8unb%ab4kTDo26j*b^3 zaIvYvYuLPYV%6j--DB&{l6k(}?8qrn;=&vzn4bim5CJE~bgw1z4p0oA_cdOW(&Nnl zN!MJ_f_^Ev;sy6(!d>!w5^&P`xW7KHTMJ|$HqfkveC8d>%JVoOCCzW=s~P1jJDK7El{0lISo(I(AgcIGC~7fdT;jcR)dpkH8L<;b zJSRaT`P-NeZgQ%~pLITOc@S};sdG=++ki8^TpS^=WmjNC<}BNyPrOZn3_a{OAd@9w`povOUpkpy^jMhKM3K3 zOqKQBY51dk-=yso{T#0H(?jR@8uf8=;63Zd+<*i8QTi3XRn{xu` z(7E=>$04QFV;F_jjB}+z8Jku>{`q@Ib2~3SOTd{J)|H2Ce%T>eZikt5sLg>A>Rw9> zp+$1)t~J~0`JlB!csw5FC-bECCsIj4@?;Wnp{CWOjWQmh@eJgBhMPN>Ya^C;bKG&( z7tf%mEddg}32AW7o^J{cc~Ro3zlyKoFP*~RrB#x(k;WenwRwoX6Vn2Gv5a$R%XEKK zJEgs_TQ3;dr){!9HC~| zj}BaRwUw>5&QI*}vpUp~IZ3=>3P=+iRUk8IYV9h^k)@GG=J-y4n`dGJo++2u7ZrNbreT=vP1 z`IDbtTu)X_6C@Bo>Hns_lQJn&L4EWiF;foQ9{DmDklJTug~kEc-me)fIIhI1%&MIP z3>o0pKGPDlnIz2&@O+|ctw=E1f0Qsi+v7I-h|)VCjLiMpR*nMcC?So? z0a8lj)AM_%8hiDnK=+QM+*d@><}gUYQ?A;+icZ0a+RWAd3r?9S$Rtd3$X?O}SBXae zx+T}IvS+wQPz3;mXw=9I56;<$<8|i{^$I5?dG5`tr$zUxj3ce(Y(99)Z9g68!qZOY zcV*#IS*xDMM6*kAf^Chx|70J2yzzhnhKN3II_t1-oD(~HU#Gfg~y4<@Q76P$^E66<`A@t`$0eB>?~0#C`01& zHiY>xn5tg3a(v9~O^sOpESOyA>*5JBw8O@27TMXEEN&{7X?LGOtZqJa`}67YuD8d621p{OlO6JYov@R}TDp zr>t9g^?%(93F)h)xE*(_Z5sN9jBZ!z_6^eQe|g=p?GmFy7{-UAcxD~LGp1BsLuZV) zlO0BWPXer9U8X{!!f1Q1j}{rQC)I{pxskza4~g&Kirkn+lH5Ys{SY@3tk0Q2ouNQX z6VVKGD-B<#oTGzex%9hdO8-|I%YU^=6i6sT%MLw15sG^&B_1lZr~R*-|6jRYS*?UJ zn`X3YlVLfU7Q%q|^+dnNRTugX=5<0WWw2w3wrnKo15+D|Ml!#Q?jhlyzY_tPi(2%z zozC{^gaGj&A{_IIjpES8La~3?oP=OJ1JMZoLVc&`YRReF zm8tV>{0$eQ6IjxhYQC7|cXs@?K4)_CL+zD-EGVtrO9;ypjwyYNlLm|6OE1dq2( zZl~(E>KN`vIlNFgttzk3lH%en>Vaj>+^dPihr89*H=dgjD=5KioxzKxj4u}hvo=e_|IS6qOca>-V_3+ue#Brp#V@OkzP)?pXMKvJx<^z4RXP_MQw4ms39+w-3 zJ0Z7}u>R;DeB>@tiP`CcyEp3ldWI{9BmLnwj#|7b(XK9i^qYX9MOOPCON#~eXCY52OdDpZ9^7fz7S-ybHY zJk^^~%mZxbZm%&I`&Y=Q@f$?mms%+cN!+v)d_?@vh}B32dgC&|QQ?VS*Mjl_)j>ns z8AbqF-*;T4HtWLZXXEn&zcvM%s(-U2doqK%Yn7Fov{!99N;9Gl#DIgbU$$b}w7Q#g zfQBok@Xz;AyE@9K$MHGV+=n<^h$)d0V5|nsGX9Qi-dmK*VTct7@X{f0Uzg<|ZR zRd1Bs%R(PLpYl7xMUIH#ky$R&%^!%cYdXsxm*VLhZOGl1Fmv6wCMGRU%L=EX;_@~Z zy^Fh$Hriw#_bP7S`U#8n#b2o`OV4bzG9ShBdz*`4`k5y~MEaT8T3}C}{3ODt>_Bg) zfwwZwX5v`=V}E-h1;?*wDkbksu7mw@f<}>MYw69{9xCQ~wz{)a|A;{jGU{3=^x3t+ za2U0ytCE5b5AA06#`-EtA8xuA-*GvY%t=S$=(Qy`6M4`r z^$TE?n8uiaGs`rh%M#rK2Bl`R^r$mVT8IcjTmttl9~5AfS!P8(BjZ0^B+4IcUX~+y z7AQj|6CsYkzoUJRK{ww!Nw)mBzS~_w{%*U2V@8o5BKPgkw16?W}1N%L1j<>xcJN0&&mx2-dDFOPM+t&$+QQi+0e3osu zP9dL(RzH5p><}Y5pPlZhOPR)8k#F_z^_&}>B)MNDCZ39t_CDMFFtC>^)u7cS&?$mFn%FnZi--*xf>>1X?k88BlXrS zshV8{(>iBfb&cLsQ&>iXKY+-JY! z+f4h4!!9dnU{_FapvXcL%ru{0gs^3{_?*4)7q|*84ay``U9VkeR>=S2yJqwJI8x(N zd;@Y2jqi<48CW6BSIX#_D%LbL&@2&K`di3;^`_i8!s1M13Yp=3PN@Je@a0Iy>1PfN zrSWLaXR*ttCFj-c+b9R$~0a>`p z>p$C@9yowb%VBFKLSw~x+IROT!{C)=|TXXQOhSWG_V7UAYxu-sz`dY`d z53!kerL65e_+5K17c5a7;$bT#e_=ap3ci9Z{7!WG>~m3c>>gqF|3JU+swlpu@%WYj zcL0t+Ue)4GH^+}rG~uB;;@cX{I{|{|j6Ah&X}lhaS@~Wr28XRud%aM^M|3`7J&v?U z-G+%VLo)xK=+%&6!WysNSFYw0uwHdo^{+GkjeSkmvD)$Jr1c2Ov0L`4_5bMmwC%4i z=RPLkFp>M*D|GWXNYujag7ZMEKBh@d)BVyzm)z0$eQeyz)XTR|d7&bIY!7an-axXQ zMY0Z@8RL?hMDgSV(y4c}9dl$Kek=+YDG*FzOgOG*_9z>oJrH83mBur>Hm7epyV&Tv z7!b?#_!A&J?;c{4+FMMtt{W{L1zthilZMmVo(!cHFWJ62tW5m*1yJDcB*MfhJcf7v zpr$~~D%AP426NvQWqS^Xv!r{KP1zIAW9Voi2zN&`HU^V;dIm?0EQeDiQFAsFQ?*n@ zVshpD6t~=gnrC)nql05vn4#{hg&f?wkZi>Ff|}3YcGsmN*2#}(InN?ZJCw*n5;~Qp z7la;k#>aiu5_BE-tdfz(Y1{lOdYBLzfeQM~*F?Kb6FUEYbXWWT0hh zP}!ssYNhIg^ZqJf@6p#BCcR%b>wKz}*YbBsK6J3Gwm5OJfHM(gLhd1ga`yMrL+tFW5B^S%}<~q^Bg9dDuMv(UwajriEF7C&?f?O=D zT&^JMVG{}T*Ydu40>B2Uf@hxY`i{JVaZ6WZaPM9f22qY@Yv}3Z!Cd1pjrgZlTA_B= z>w8V2!ZYK}gC^a2Y05eBO^g_9*M94v+ZBJ(;GNcK8Dn>l@ArT9zc>o=+?yuEBiesm z@31tO@`3c@(1fS(>7))cLdTI)&W$-pIPYkKDXo4Y^4u?SEFCDX%t3k_iPsJ~V0Mit zM_0QxkQXL^!<=hW)NgW=Ok~$@$TT0a6FqHU1hK5F zq4PBAMzq-%AL0G>$Aahn;ZqH(JHoWTc}P+_kG5aIX^Mw8(xt4zD6M$jSXd==@faT51QpBD=U_(#b_kQ{?*kzby??MRd6X> z+U*wS{11^ybFS_>k)1n1*a3#6FbeXHd>1tZ&t;c^Aps{NaUu8dn|huV@2AX5fk>o6 zP&rS9m_;dn%q|~|utfz<;@m2|??qn-n9mywtt_ zzKWU#3@Uu6Nb?>3Ou7p&DE*QR&?8-cdxQmF=f6Jvp$U?KQ`6cDrzWfyC;Y1?fQ{a~ zhAv&V!1izV)yg@6yQ?iBel$GaXn8!#6ie>&&X_=uL;Q)OJAA~y5C^1C9=SKEuWWT< z;kWDH`$XVabn0MHQ%TwYg8!n|5Hln5mZd5W9l5!GBws)!y%@T1{RA-3w~Rm?pzRcssw`>Z4F|kZ)<|(_{CzuU{YNMw*fpZ|&6x?d;rYEsI&i-^ULc%uXI? zpEo}!VMC3c8_rlvfBC2Jb+SD9NIw)a&NSs4oU~mN@l6{}q!&%Q%Zp5!TNd2cs?x*u zFYEnYITRBTvS@Oc+F0eYr=rsJsUNIWexzYJk8X>ep!z?3S7wdiKjpvniRT}z@d(JI zwQ=^t?RWo_J&S*;)W0@CWqDpp6ysJ+`!D5iCT=HVJWkZ9!VpZ<&BGuA#3?^<=T5nT zO2#Vk%HG#@{W-%^gbwP^ zCN?9H150|?>+Xe=Jz#r&u)^YTv>X{BN$Ik3gIbOe=-my3p{hdb7yk+>hm|!UZ)R!t zY|k0)RpU)e^-BJ&1QB?)q34J3F5w-SPQufC!p*L_S_#42tyc;%J9+&Q-;@8D2O?AY=~-Xq{^_2!XvFg-x*^;fo($GL;S zxX-Y_Kf`{oLD5vB^{j672afR&&tk7&_s2xCzMYBuJ)y1Boe5e^mO}s~V2|G3-W-U_ zSHy@h@i0)VR^+fxB4trZlkzucGp&0G(3FA@TWoKJz^J)NtKn^*-aLHTRK(}O%S3G= z$A_Ki&SG2s2HrL@+!v&r|8}$~DD6bFEi`5YeS=x@OpmcvdI8UP=iPPb(+Gz!OQ+2dubJH|FbCOo^r@+l17k*kJnDBlH@83NgqBuh5ge zu4sW%Tk$6QsLvC7(!b5!F$bs}eHPU%O?J#s=ocshzTaxnUoSN|GE!pCrmxP&6*&5H zUPlMGcZUW92~soo1T=E#LdAma=u{xv##F5Rn0!t z1)RRWL%NRNyuAVMzrKjPWSy%{ljl4rR)O@H@)8sMp5(CDsgxW6O@SuXPMr5428hMdHw~${|sS@J+&z z`GWW#9=L^it9yneDPxRUCv9uJ@Oa9@-JdAO#i2v@WC6ffN*%+Me7B-diUd=lrerfOnRxK(`CC8kME2rxfH_h(OoVYsI&MB)#WloMUsdAt8hC${MmI(?;hRs8PrF6^E_Z?U;6j_J+D<#)YYA-w{Dj|RyfV%f@!lo0_d;nY;fdCU>?3K0t4Mu~1pmn_f|<d(!nlw&bb zesF9xiyZt)EOHDXYir@$6=e6a4!i~zrb<=u&$La)VKt8sD9Zj@Dn)USrR2cIKjvH(>`3tqJZ{3 ziej|PJoWpI7vb|mU5Ef-z0X#| z-Be*zz@O19NU|d=7Sj;RqcOS3qxR#>O~q7BmAw4? zjTzWw?Xmv!c&Z+G04BsN^mAX>3VHFH1;-Dw);P_0{*!toYZ3Zgw9O{1CFbs^QUjRE z)A!$>rICFUnEI>x@b^Bv6#XviqxjMGn;8hCZH*}t=WCm>^(rc>CxUOW_Jx5qaySwzOC9D0J=k2#V8W0%a$af=@p&j4j#1!!EArIauWXgRS#do3 zwrTiHSC#3JKjtxk1PpzOFqf5;?K9%rl3oQkYr_v7Ox~d2CFvi3s7|=N(^hKvoB?S+ zo}lz2?v3P)IDxj&62ogBHh(shJ78hi2ZAzs1VEw&h|lZ-(`%EUH-1{tYQdk20oyv7 z2OXV5;6#LukE=RrS~i%<@n8Mc zXNc(e&vKnHdQJ#OIJ-7T%al^53TmDISzdAu?n(}~WgVs`O{bY=2O?7q($`OCt2ttAXOGg9|4dVf@Kog-ST(ih<{VB@w5j54lX zXdl5)c*H#-TQ{HZD%Z9t`%=_`t}%RGZb`v*cGP%$kmJ1@^-1ot?-D9FnQdtq11qpTCx&77o$>D7=b(|F zQjT_cfFxHC_vdd94Lrb4u>$Olu`Hg|SkU8>DNRG;IZJD=bMXN4j2~-#u}oa8KhRUw!jNva_^)SJ3=54>+rpMdjtMq0rWYUbm*8AY46|zvyqMMNx5aIFgHB zwyElNW;49j1xxqfY4REGZ%y$c=Dq{i=Q^SUzAwOqfD4#b)C^3uho0Vo5{S|m`S|hq zyz&#dbgCV~d{1cO%PmA^J6B=o{j;Z!ubQ1VaLWu~QFZnUxUD1aLPJAmYi-G0TwN8wlU1=yuW=7ZA_X9*DP%b2UQT-P^FhVTe+F|(ER)AoVfPtnKDCZ&QD?0FD~MuyJf8M4e;-YLlY0?YhV8Pwrbjj?kbxZoNXdPMlg129Dglw` zn7~Pl$itujMmq(=^G%wzGkguou7}<>{^fu9e&O7!?6#iR1jZ zj;9yoVuAPd#K7@Z6NL zUy+%Ax%U6dl>u`*>VTy%_a24TTL>0E-@1D4$A0=wiJj~{mgR))&`b%he(c4Z{pW)@ zQQg!PS(5GIP`wknm&+g3TR+`)^99?G9^^gW{Z`D9zJC4qtym+heKSRD{)v=mbcnpt zh&ZB!M!<;y_a4RV2(njqFqc+!a}-UwRLW&|$}*#0l~x=C~7JcmK`<_)KfL6(iN z9IfAseQ#56&I{LycT2it@WnH#-g{j^L~*`v5#Pl$g{Q5+ZuFHVwuO2t`b3)I7N5gt zZGV;n@YzbaYoz1hQy!KLK2VH_-`Ux@ICJ!8^Gk$Y_xDD5IV;=cMILcnA>MWlI69KI z4NL=ef>L%MI>HhOW226!(=ifZaSMyH>|vF&FnfVafA9 zfSrfWe8#s@=g(cvN~P^ml2|zZ2Gf2%Q>q&rOy|>AE-JL{D6*Kmo^U8mu` zV;*%jb=pB4Pot&MGVg}Ai8{9PSt}a;YQQvd7}(R5D1`Pn^9WCe7^1f-O(QSPR`mL$ zS6LLl_f3zI6&&*@`}j1O*QW5b!TfgmxwxIQYfN`|UV5soS!Uj}eq}9O`hE3u;NuR? z(6sPnTffQ>^DG=ckG#*S*EJrvG`E-h~1l7E{+!(}2mwlh8# zTGO7W`*_53G8F(89+BNShjLAA#m43PDUWDM;hu8#zy*h&i&H+(8N{eGF>i4r?H-w9 zRdrSCmC^qe*6C!WQr_O`hRvYod+LxDf_-qg}*8i^IV+9 z367dVvcWd$*z98cUFtvzCgtd<_ z-Ngbe0WapX=TuQVF0@%<^+j@vXsSc>?3P)teKkb6h>;3lap)K^mu2ywNT5Th1 zSxZza$W$@k`w|m3N;po)ec454UGgK-p(1T?o}E!hcUV_Bh(X_J`i>;=6p>{MNFl0e z8>(sWD$9{{5HG$*z@tapJ+i=~Xz=LyW9q%n9J|&H1Tf zT`1eu*0#d6G#y#XarTPqTf{+ErzU{=Sukqha{772vc*iHHUmP<{<4xb&0IBwZCQdn zRk|A5D^!tO zu`oICvt|S|t~wg&y-mNIp;i^=_9bcgSYJ`3BuoJ!;kf;RCBvZ1+oAzx1hNx`$O4R`-%+XRyUc*)L(t31)b#P z0YgPj59QT2a6EkJ1YMpKoh({hRIF8XH4^<&HmBdL zQ={*QgPQHBUN;W50kB-p#5Idri+b3PI$3WFBlx3z8fBiUDRI?98$82ee)jxdT)lEoFF4_~?zokn; z1T5$Zb{7G=+|Xj4M;(y|)R7&=Zry60yMBd%`sp@F+H3hBm$x;IwHQi}mP+H`0c3aJIvc^6HU1z2c ziTF|*Vf|7b+n)BRV)1tFJzgS+W4@`tMnjsx+4Lu{ja99E2;p$OBAaMW$t8)(brNz_ zy|7Fif{kWYw%$pU1id6*$KX|_kqzh+C$uY?x<86{{l@XZK}#~=9#BVm7%RH-ZwBV# zZez~&ooeEid_BU~x`GA>srfQ(XUhIe7CzkF+p9G0!kwI%=?a@K(QnoH4Kn1F(ZA_j zrYAe+_RCi}w0Ktdm+PX}>Ze8Zbf@=zcT$Ff25NUuqneza_9>@B3|r(=g`3s3|UjK1x}u2T&Y3wHa92qxDGP`@;*`H$hIP?2V%aFolP zOEmOU?PfP7Zv_i~K<*JIL!yIwd{ulEW ztBXx|8`1T@w3rz=^$;{+|1WXlC)!nEu-qEBsepgsN&o2`GG*>@|KEFI8hoGC>B*(> zi+e)wN*>-9d?fr|jWi{mK8|z3t@U=O*kLVVl_ynm(iEWdpp{4=aScF9!^ z)T@z9Ti!^@0-F$gUZ1H7wfpS@F;aDq{Go3vd1AZ#l82$Hn)B#e56LTE+1ZhyVS_-H zd5eX54HVAoMHQ{5S_GynLo9+WZh@KksA^8C|D zdZ~dCFKK^3@|BHVePy;{U`NK0IK$t}vL7c=8Z?hyzl@qkDv!Kr#OaQ6A(*BRxJkaf zmy1*)jkLR?t@j-#K3;;XtUWC0AJGtd5UHc%q*&WmY*ti1J}J4yT=vztr-O!C zZNe9wKaHm>u`|h_N`XeB1tUj%BcxW6@|FE5`v6!I^%P67bQ{YF&24DiZ!P+FPj0j`Drkir5BHu|S=vZ$Mz9*mzBx55eP&IyaS+K|cjvr{(X7I|plsBe z8W>73Ezk*0X1X6c)<&lswcwESxg0NkBM`WGUE+0cC$Ik4i_!R!zV4QkOzKM1EHAHA zaw;|_X1hjD5D|&<0#fXIlXqQrIpB%H^fy@*F%_$cV62&9#&B;bq^I!s0i^R_@gDc` z^rLXY>mP~}yzfl6cd2TJUSX@Sc>i~u~?L{=qcpi zDa34lq%CFe#zrUtD*NUlEp(2=CCEdaf0BadZOt~atjmrKCmeiF@Mw*d6(t?I#%N_U zyQ^FNhtRHTnclWRWv1~RC?I_{~lcK-14Sqzz76t>dz?1H*}RT9q;ot9qm|RC z1k9JyRHM7@V1O-l?EoWEhE!ZcRD_#{=V3Y>UDB1`7trOojivAIsXB^~rNdML=_u+4 zk%HlLVRfn+@n9j0b@K9A&JOk&^zg#BXW+G`M`vnJW^`~nzY1XNw7E5OVYDm#H-nG9 zwnTxCA$|ehD3yI zdWu<&Y=F$w_M;36%+hn-B^^896kmQQU6QZ zU$y1-J{*n@daiPNJsNBIeiMOe{5voYwJoMnhL+loO0WI% z1jfGf<8*&Pr$;Q}yH~1`QSLgBulo~Ejs7bz&v=|+qMfe@@wyq2ATBdxsTpmg8{l)S zJ0-;s>sYkApt+&5SKj{F)y!Y6FIcLUulNVF|0o*|3Vn@>b6)Gjxkxu?$GsT`g>3@~ zIEr|c1L7mgJsZ}|k%v$;r1Y?|AwOwCZ`;S4&_Q0Mhr7sXoEm51znjWBf^cF%?11GZ zD~;nn)OAGx6d|lud=sF|XEt;=-PN2t!E5qATaD1JZ5uNfx?{VjMeUL(9Zc+Pm;&=P z|NfJ{NCo5}@9l#{-3cW#HhxL39?|*M?@u&Gvjc>C;HAZPf2mG*pOKVjyVx@A%*}c- zt!enp(Mg2Gv|pMAc^EN(O0Z$6qkH9~{H|Q-%#Sx+?K`hw>uyPY&6~JPqJ9Iv8^1|S zW_plUHeOtN+g+ZjK~!_!C+EW7ElGb#2bX=gd76;!UmfKRB^MX&$+aU;GXOVxHFe2I zs*xFe&t+yFT=UtjTDo^&ag+OA5CJ(mMO_ql&eW}UkXHm0`Rr(8$9>TV#Ur*x^rz~L z8^j0BRtZG|U5ph#I=|lS`Msghoe5OBbk-y3FcbNcQQg>?xp%Qa9)^cEsu2`oozsRJ zYvaNdZff>@OF`F4Y)B7W@c(?0*J!V?PLkeI3-3=uies!U2h(;B73ekXt(#$Lln|@1zO4`a!?-ZmugI#xeYsG%L#J$U}N(Fvf4Ms^mv{~c12k! za+}m*NHbb!?+u9EYv2*;4mJC?9ihV@1#^lIr%WNvt*k3OP86bsIlDB)ggZZLCZiGy`rFhZ3rhEVB`9O>O08^yXmn+wbqc1Kg_WAbY z%*LlewaSa@%Yt66lsVe(Hqc$P;rXHcn^GGa8>g*7N;d!u)IU2rD=05V;PS=>8MbX) zR{37wSOs6r%*?#59a<|YER+OI*!II1_hl8hr45>%38h&V*bfWEbG}Hby_aJ&oz5|bw4B6^_yobx@}*BZiZEB zfEFqo?4PwWBcXEv4+&YL~#(*WNRg9P}akUQMzRIej# zJwd#Wg!VT3Vx{{o6%)!Hhpt;F=6Xj zT&b>K#+N7-hU_oZ&z$;P;);X9lZDbRHm!#W$~ir**Op}mkzBNVlR%d~@bI>tS;rt1K5>9poCgH!87!NaC zVBl8)SVm})Nf7N1mP}TGsU89z_V)Ha0~ZsN>hDZp2;E$Jt9$IS1}@_cOB;B{qTLys#|4E`ydv=>F}3n z21A4p;u(b=J`+csz<~K1#De2HVSQhr{h1#}UW#h&*>7|6a(`v>ewhd$hev1y^VQX{ zGxbDIk3W|h_7xzIxVyYO>s3hy22ejAolTMQVqRm9SZ&He)5R`Q)j#pw4HEdm1ajoYU>zpnbQ*t4idE9j+0pluqY zRZS~$@g_V_=UgrM;B%$y5cKq@!MsA5un4SZ{gj(wZcSl{5$-vrRjwI{LC3^XcGX zAgR`U;>zB!Y3HfT1Akl~YI|pl^fS`m&Jq-TKZ9RcjBWIq?9eB7Dlyc(%psQ!tLL{d z)#)x`sAPuoy{$YYX4XOmKY$^N%5;xR?ZyQaWKK+vmRpyPR*G+Y-qyI?@dE+7)i2*c zor*;KuR-=bTVV_d=n5t_U0m8|adb%=oAZ_52hHl)ss8&wQBjc_eYvaU!gWXUhyNJG zn$x9mpvzU1<*Vu~+nFYcN2=V{_lBd~3(Lx;p)FCg!n;Cwv4hFw%kI+(_V#QyJAYJI z>3Cm&uG$mC;wNCf@geM$O}5Y#h@qF;_Ha-514>}_=0C~v@aIuZNp}VW0tw&e#_DTJas<2ZE-t^^-xHfg=0?Yi|U8^TR zhm>|RPOS{7p%gTFS#1U)@;jDk=5mGpobh;1T#Lg`sm$l%*!bRskwkSbXb{Z&v5hl% z^=sQhsD^{aVrZuC<>15nvK!!T8v^(%FcOb^Vn0&4BHkxQB}g5PS&QT(-R|XfpS7eK zTd&T;1|#0xDm?-7I<5H@A@lP(*Hxa5PcVW&BmM+DvDFugEI1=fiL?IEyz#M5WO&!P0Dy=4l*!_P@shQ5UWi}py%+Vw9b zPcEed1L){>sK4Te9yd=OrMP8)909%uA^g37vFq#q?_(k+a|^Ryxw*ODn;)D}1xL&X zw?4m6TT4Cajm34(>d~#7{SJSz`(|jVz-j!?N$6=dQ5O+^O!(=EMa4#{&U($|0~Nop zXOJ||yrZqJe?Taq+X+CxPpCo$bWgyLL=l1u2zhbvM|MLzHLFYsl z6S#O6OxS;c45_svu_$TEHC{U)AcmWOgjq*|MZs*=72mH-Kjamox%tI{F>dUpp(P|F zcl!UUz9f@2)Ahf=Cr}mok{m}{Lm&TTkv^j%y$Lto5chBSAyC(H^$?=0g;^@?|Xmm@BLj9>z>-- zL;Gx0f-JA_keW7W{wH`*(LrtFgY8o&UJ%s|@Mt!U7Sh34v&XWvb5HrR)_JLWGk?`_ z9@8D@?V50Pa!IUCy(r=8G`a<|OU%BG$!L)Ki-=g6)+Gsl%+~11s4`NV(EsxkyRDho{9%1jkuE38 zqE1I6ZpTKC{BI3qCScWA&*Yvb?OtS(J04lsD*FErJmiE9Y~lMn+HLR?P7Hx4p@C}8 z5PY;{s8qI{6o0>~;2z5U9pU(-#2494o@EPqaxb~8>#Kfd1_<-rWbH!tIp3+vl5z%5 zh(%5;J2(nNpH2&gJ8g3%MK2==@e_h_ouJWdkk&R2bdO@KxaBkPq5O2lW(iYn}gz^uGSHfV&xL zjxvjZf<*SGgWa2Jxx@+klK@>?qNWNw^kxwXeTmPerdU%N5FrkhZyWBm6D?+9ed5Aq zn14nP8tYdJOEA|S=BryR%1iS9o9erIbj_)J!o)vLUheE!Z#qjs`A_4gU3^ncK9P}moysO7mB%&V(T)R51mQ#@Zw{Tl~e|bl&6U-w<=klDRx+e9_1Rj{Putt&LNLAm*i8mYp-+EbsDVULG}g`PVyn5HrF);?Z%NF4ID0e#cvmH#_w=q)_RZ& zGr;PL%Tf`jGwe#FkG|A^{fBzLCZXk>e_u_^hnUuTzP@H{op{h1Vcp7opIwW|2PH2X zVf0sNiQk<&Ip+zXc$;5dqcl~;_Vyv-0IztiVWK5f3OI?y=|7ta4r<4HzIg)r#qOi} zU-nbu;x6dTfsP(3Gi-PU0%`SMVzsi>kdo*BsLzK=z(x}~HCj^t>1DOk#Kv8hj`nA{ zf}&dX9gh6`JMi~i=Pz0>%@OO zHPl$Rb9dr%&Lmglz<%E;MU$Az=U}hMnS(yH)?PA$aFmkyU2|7bvJ8xv1{~5Qi~~y> z!d*L;ZOqu(0aphQrTQl$BEqoKV&U?!N~hMT#*e$XR-0#Qkd|8o*R2*kSs#os;lu3N zvXADKTeoa9!FkYxR@64b!N{z7~Y>!WH%K z@r#3b%ABK)HpTIUyitGf`%L~lMjfFwsJgFQRP~8K=~2xZakr0Szg8TcEL~c10f7KT zO`gyfC^DXy)c^2++0N=H0E21(Ii!Om%d7K5?9uv3RK%n2CC15(Sc0Zf861pHUize0)z)9)u|?^vazo7S#T>M@wq|xrXK(Gvf*?K zi#gpyD89`d6<_z8w1yRkQLY^j$MW&<1#vDjEG{6RR!lFu^M}HSC!;bx4SfF1rIRcf zV?7BPBr&ilNG62S?3A_In+g6)38c~WMX=0dizXZkZrSiMtVBx48d^DyVwuz1FQ7;Z%%srICy|+-3%Y+(ylo9RFLM$XXD->ru<>A8gAc| zb1tT#sk&U)7FCw+1r0eN`~r;p`#3@0dbPKY!vmMvwD?b}t${O_$O_kckD0&NIzQ+~g)leJM zI*gXv>4RZaN;rJv=C{+^-IIq5o3o{NR`~&*NAcCXEh{roOnhIIWcbdH(ltxT^Glm4 zxQx8KpMPkRpu^ckqEBIu(uVSmb!?WyzU_+5)pyOOMI0$QKM4N3?^SWbDDlfaR((AJ z&z_tt(MS735~lX(>(!64Q!oJ%Dugv57VrwY?{Q^{N6{t3kaJAh+QsKIF@=C{~)YaAmk3tb5zI-Fc;v2o0AOwS ziF1KKXljb8-u>seLn0yzeM+|!tYI#ndecfuN;-bn))kdaF}6rYv`)@h z$Todrk*-zMM!_A*K%^&|c>B`D4Tj;G_pw96Q8hNu4G%2Mg0+$~rOuWWS@~@Px^Uyh z@h;$cif748L)jYo7tUWeo5`uG8c%YJ^E&JUF=i1r`u>~PW*CA%YN-HPAQdOaaB)`v zo(M2k?K^kwSTL3G*WPe@Uv6EsFx?!OFlf8Bw=T1O{rdPiYk|zYB&+Bt#nu7r*s5N7oKf{2PO39XZUy|6e~9O1lb`OOqka^A zHn-=HJ*L^hQgEx6plTjp0823eS>xXCd91B=&Q;N$h=H8TAn0o@!;3h99e zCD7v0y`Wz5s+%&W_L>)x^M%2sL{RPEpAZqjwb+7VF;|Q!BYX~^;9Z%D5fIFgMG9A= zs8&>S{=q~R_p2-I;_cHWR$|SM&*8qNPwg!;Ljoo>(?wy_Y7`igN4d-YST(3b=-CBNtHS+c{dVsz$aLA>_V^h6eS1^%U zg2l&9$fNQbENN1zsrZf;d4gWG7!jN_yfhW^W!YIiqyv*7YMEQY_u|D1r^I}UDj3Q8 zTPqDWOomMvcnE^_7CyC@3Dif-I`lJ=`oDOopklG-XrR^`_$?vv85=2iqwSK()Mr_h zM>ChGU19!y_K5;gMY^W1)pRWBrS_#$iKs7KUwg1es_D(HQU@zu-FwMN72TswO4eWp z)DO&6ZPnRq324ztS%HR>9yV;*tJUl)nw}S}p7&$uk^HNsAt?;bl{~ z=Wbt@cg^9NZ@g5)x%H{_UNl0qdjb+I0-2nfix;8qrTmg8!FPs5W$as_j&>gPqhxxX z8)AR2vZMVGPa=+XNXXX`EP(^Y_XbL-v#OZOY@qUsjkRk@!1u&XnXyH(Me!}oE|ae{ zzy3-G@i{q^9|>eGu3B-Un?>50%@u3jG>x@HMC_Orc*&0&?+UC494J?aPml4>F|Eq1 z%N*2GWY$9(f-J&!J@!y{GV{b=FcP>q@eFyNT2_#7&q5;f8a0A9%N#%M_I{A44NvDr z{`kF+gk|RGSSvCtyaaU-bR(LO$n$GE9i`8#%^ZRyf27`KgxzKl4EY&g8dfIJNzPfo z5W#z7@U(Ape|+1_zlCOu5_p35=luMx$(#O9#*2I#>!IQFwEHx_;R?OE(^3Bk^YE(j u{GU^hlytj;8z3Cs)yEic#D9l9^@z!L7(S@8y#E~n4nuw8>sZ};vHt@cAbN2C diff --git a/icons/mob/items/righthand.dmi b/icons/mob/items/righthand.dmi index 6e6d8bdac57d988f7541c8d6938147eedf85b6d3..a47ee5d686bb8dc58a51ada68503d08723f6481e 100644 GIT binary patch delta 20255 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 N@|fFE@{!=Qe*p!@-%!SmR4FPdy>~)FZz8>f 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 AQ2+n{ literal 10662 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 X&F-EbHxiNcmw Date: Wed, 9 Mar 2016 16:28:31 +0100 Subject: [PATCH 06/61] Maps laundry basket into map --- maps/polaris-1.dmm | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/maps/polaris-1.dmm b/maps/polaris-1.dmm index 3a5a873e8d..6afe4b11af 100644 --- a/maps/polaris-1.dmm +++ b/maps/polaris-1.dmm @@ -1268,13 +1268,14 @@ "ayt" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 28},/turf/simulated/floor/tiled,/area/security/security_equiptment_storage) "ayu" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/seccarts{pixel_x = 3; pixel_y = 2},/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs{pixel_x = -2; pixel_y = -2},/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled,/area/security/security_equiptment_storage) "ayv" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/table/rack,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/turf/simulated/floor/tiled/dark,/area/security/armoury) +"ayw" = (/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/structure/table/standard,/obj/item/weapon/storage/laundry_basket,/turf/simulated/floor/tiled/white,/area/crew_quarters/locker) "ayx" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/dark,/area/security/interrogation) "ayy" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/tiled/dark,/area/security/interrogation) "ayz" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled/dark,/area/security/interrogation) "ayA" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/red{dir = 8},/turf/simulated/floor/tiled,/area/security/brig) "ayB" = (/obj/structure/filingcabinet/filingcabinet,/obj/machinery/light_switch{pixel_x = 0; pixel_y = -26},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/dark,/area/security/evidence_storage) "ayC" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/dark,/area/security/evidence_storage) -"ayD" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/table/standard,/obj/item/weapon/folder/red{pixel_x = 2; pixel_y = 4},/obj/item/weapon/pen,/obj/machinery/camera/network/security{c_tag = "SEC - Evidence Storage"; dir = 8},/turf/simulated/floor/tiled/dark,/area/security/evidence_storage) +"ayD" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/table/standard,/obj/machinery/camera/network/security{c_tag = "SEC - Evidence Storage"; dir = 8},/obj/item/weapon/storage/laundry_basket,/turf/simulated/floor/tiled/dark,/area/security/evidence_storage) "ayE" = (/obj/structure/closet/secure_closet/personal,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/storage/backpack/dufflebag,/turf/simulated/floor/tiled,/area/crew_quarters/locker) "ayF" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/green,/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/hos) "ayG" = (/obj/structure/bed/chair/comfy/black{dir = 1},/obj/effect/landmark/start{name = "Head of Security"},/obj/machinery/button/remote/airlock{id = "HoSdoor"; name = "Office Door"; pixel_x = -36; pixel_y = 29},/obj/machinery/button/windowtint{pixel_x = -26; pixel_y = 30},/obj/machinery/button/remote/blast_door{id = "security_lockdown"; name = "Brig Lockdown"; pixel_x = -36; pixel_y = 39; req_access = list(2)},/turf/simulated/floor/carpet,/area/crew_quarters/heads/hos) @@ -1469,6 +1470,11 @@ "aCn" = (/obj/machinery/door/airlock/glass{name = "Recreation Area"},/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/crew_quarters/recreation_area_hallway) "aCo" = (/obj/machinery/door/airlock/glass{name = "Recreation Area"},/obj/machinery/door/firedoor/glass,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/crew_quarters/recreation_area_hallway) "aCp" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/maintenance/chapel) +"aCq" = (/obj/effect/floor_decal/corner/mauve/full{dir = 1},/obj/machinery/light{dir = 1},/obj/structure/table/standard,/obj/item/weapon/storage/laundry_basket,/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) +"aCr" = (/obj/effect/landmark/start{name = "Geneticist"},/obj/effect/floor_decal/corner/mauve{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) +"aCs" = (/obj/effect/floor_decal/corner/mauve{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) +"aCt" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) +"aCu" = (/obj/effect/floor_decal/corner/mauve{dir = 5},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) "aCv" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled,/area/security/security_equiptment_storage) "aCw" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/security/security_equiptment_storage) "aCx" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled,/area/security/security_equiptment_storage) @@ -1522,6 +1528,7 @@ "aDt" = (/turf/simulated/wall,/area/maintenance/pool) "aDu" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/maintenance/pool) "aDv" = (/obj/structure/closet/crate,/obj/item/weapon/tank/emergency_oxygen/engi,/obj/item/weapon/tank/emergency_oxygen/double,/obj/effect/decal/cleanable/cobweb2,/obj/effect/landmark{name = "blobstart"},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/plating,/area/maintenance/pool) +"aDw" = (/obj/effect/floor_decal/corner/mauve/full{dir = 1},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal,/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) "aDx" = (/turf/simulated/floor/tiled/dark,/area/security/armoury) "aDy" = (/obj/machinery/door/airlock/highsecurity{name = "Secure Armoury Section"; req_access = list(3)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/dark,/area/security/armoury) "aDz" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/security/security_equiptment_storage) @@ -1575,6 +1582,7 @@ "aEv" = (/turf/simulated/wall,/area/crew_quarters/pool) "aEw" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/maintenance/pool) "aEx" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/maintenance/pool) +"aEy" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/white{dir = 4},/obj/machinery/camera/network/civilian{c_tag = "CIV - Visitor's Dinning"; dir = 2},/obj/item/weapon/storage/laundry_basket,/turf/simulated/floor/tiled,/area/crew_quarters/visitor_laundry) "aEB" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/dark,/area/security/armoury) "aEC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/security/security_equiptment_storage) "aED" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/security_equiptment_storage) @@ -3503,7 +3511,6 @@ "bqm" = (/obj/effect/floor_decal/corner/paleblue{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bqn" = (/obj/machinery/recharge_station,/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bqo" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/bodybags{pixel_x = 1; pixel_y = 2},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/effect/floor_decal/corner/mauve{dir = 5},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/light_switch{pixel_x = -36; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) -"bqp" = (/obj/machinery/disposal,/obj/effect/floor_decal/corner/mauve/full{dir = 1},/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) "bqq" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/medical/genetics_cloning) "bqr" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/camera/network/medbay{c_tag = "MED - Cloning"; dir = 2},/turf/simulated/floor/tiled,/area/medical/genetics_cloning) "bqs" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/medical/genetics_cloning) @@ -3595,7 +3602,6 @@ "bsa" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/junction{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bsb" = (/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Cloning Laboratory"; req_access = list(66)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/glass,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) "bsc" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) -"bsd" = (/obj/effect/landmark/start{name = "Geneticist"},/obj/effect/floor_decal/corner/mauve{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) "bse" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/medical/genetics_cloning) "bsf" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/medical/genetics_cloning) "bsg" = (/obj/structure/window/reinforced,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/medical/genetics_cloning) @@ -3658,10 +3664,7 @@ "btl" = (/obj/effect/floor_decal/corner/paleblue{dir = 2},/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/medical/sleeper) "btm" = (/obj/machinery/vending/medical,/obj/effect/floor_decal/corner/paleblue{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "btn" = (/obj/effect/floor_decal/corner/mauve{dir = 8},/obj/machinery/button/remote/airlock{desc = "A remote control switch for the medbay foyer."; id = "GeneticsDoor"; name = "Door Control"; pixel_x = -26; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) -"bto" = (/obj/effect/floor_decal/corner/mauve{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) -"btp" = (/obj/effect/floor_decal/corner/mauve{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) "btq" = (/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) -"btr" = (/obj/effect/floor_decal/corner/mauve/full{dir = 1},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/white,/area/medical/genetics_cloning) "bts" = (/obj/structure/table/standard,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/effect/floor_decal/corner/lime{dir = 9},/obj/machinery/light,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/virology) "btt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/virology) "btu" = (/obj/machinery/door/window/westright{name = "Virology Isolation Room One"; req_access = list(39)},/obj/machinery/door/firedoor/glass,/obj/effect/floor_decal/corner/lime{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/virology) @@ -7519,7 +7522,6 @@ "cPy" = (/obj/machinery/washing_machine,/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/white{dir = 4},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_laundry) "cPz" = (/obj/machinery/washing_machine,/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/white{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_laundry) "cPA" = (/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/white{dir = 4},/obj/structure/undies_wardrobe,/turf/simulated/floor/tiled,/area/crew_quarters/visitor_laundry) -"cPB" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/white{dir = 4},/obj/machinery/camera/network/civilian{c_tag = "CIV - Visitor's Dinning"; dir = 2},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_laundry) "cPC" = (/obj/machinery/recharge_station,/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/white{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_laundry) "cPD" = (/obj/structure/closet/wardrobe/pjs,/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/white{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_laundry) "cPE" = (/obj/structure/closet/wardrobe/pjs,/obj/effect/floor_decal/corner/blue/diagonal,/obj/effect/floor_decal/corner/white{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_laundry) @@ -9807,7 +9809,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadaeDaeEaeEaeEaeEaeFaejaeGaeHaeHaeHaeHaeIaadacAaaaaaaaddaddaddaddaddaeJaeKaeLaeMaeMaeMaeMaeNaeMaeMaeMaeMaeOaePaddaeQabYaeRaeSaeTabTaeUacuaeVacuaeWaegacuaeXaeYaaSabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadaeZaeZaeZaeZaeZaadaejaadaeZaeZaeZaeZaeZaadacAaaaaaaaahaahaahaahaddaddaeKaeMaeMafaafbafcafdafeafbaffaeMaeMaddaddaaNafgafhafiaaNabTafjacuafkaflaflafmaflaflaflaaSabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaaaaaaaaaaadaaaaaaaaaaejaaaaaaaaaaadaaaaaaaaaacOaaaaaaaahaahaahaahaahaddafnaeMafoafcafpafqafrafsaftaftafuaeMaahaahaaNabYafvafwaaNafxafyafyafzaflafAafBafCafDafEaaSabtaaSaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadaeiaeiaeiaeiaeiaadaejaadaeiaeiaeiaeiaeiaadacAaaaaahaahaahaahaahaahaddafnaeMafFafGafHafIafJafKafLafMafNaeMaahaahaaNabYaeRafOaaNafxafyafyafyaflafPafQafRaflaflaaSabtabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadaeiaeiaeiaeiaeiaadaejaadaeiaeiaeiaeiaeiaadacAaaaaahaahaahaahaahaahaddafnaeMafFafGafHafIafJafKafLafMafNaeMaahaahaaNabYaeRafOaaNafxafyafyaywaflafPafQafRaflaflaaSabtabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadaeDaeEaeEaeEaeEaeFaejaeGaeHaeHaeHaeHaeIaadacAaaaaahaahaahaahaahaddaddafnaeMafSafTafUafVafWafXafYafcafZaeMaahaahaaNagaafvagbaaNafxagcagdageaflagfaggaggaghafEaaSabtabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadaeZaeZaeZaeZaeZaadaejaadaeZaeZaeZaeZaeZaadacAaaaaahaahaahaahaahaddagiagjaeMafcafcagkaglaglaglagmafcafcaeMaahaahaaNagnagoagpaaNabTabTabTabTaflaflagqaflaflaflaaSaaSabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaaaaaaaaaaadaaaaaaaaaaejaaaaaaaaaaadaaaaaaaaaaczaaaaahaahaahaahaahaddagragsaeMagtaguagkafcagvafcagwaguagxaeMaahaahaaNabYafvafwaaNaahaahaahaahaflagyaggagzaflagAagBaaSabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9886,9 +9888,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbb aaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkObkPbkRbkQbkSbkPbkPahyaahaahaahaahaahaahaahaahaahbilbkTbkUbkVbkWbkXbkYbkZblablbblcbldbleblfblgblhbhoblibljblkblkbhobllbllbllbllahyahyahyahyahybbobboblmblnblobeebefblpbjVbgwblqbefaahaahaahaahbjWblrblsbltblublvblwblxbjWaahaahaahaZdaZdaZHaZdahyaZIblydCwbeqbbGblzbbGbbGdCrbjZblAbkabfMbbGbbGblzbbGblBdCHdCIaZIaZfaToaZjblDaZlaToaToaahbeZblEblFblGbeZblHblIblJblKblLblMblNbhOblWbgYbgYblPblQbpabgYblSblTblUblVbgZbrKbhZbhYblXbhYbhYblYbhfblZbmabhfbmbbhfbmcaZWaZmaahbgmbgmbifbmdbkHbmebmfbmgbmhbmibmfbmgbmjbkJbmkbmlbmibmmbmgbmnbgmbgmaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkPbmobmpbmqbmpbmobkRahyahyaahbkPbkPbkPbkPaahaahaahbilbmrbmsbjAbmtbmubmvbmwbilbmxbfubmybdTbrebdTbrebhoblibmAbmBbmCblkbmDbmEbmFbllbmGbmHbmIbllahyahyaZyaZzbcnbhrbeebmJbmKbmLbmMbefbefaahaahaahaahbjWbmNbmObmPbmQbmPbmRbmSbjWaahaahaahaahaZdaZHaZdahyaZIbmTdCJbbJbbGbfPbfQbmUbbGbdCbdCbdCbbGbmUbeVbfNbbGbbGdCKbmVaZIahyaZPaYGaYHaUwaToaahaahbeZbmWbmXbmYbmZbnabnbbncbncbndbnebnfbngbnhbnibgYbnjbnkbnlbgYbnmbnnbnobnpbgZbnqbnrbhYbnsbhYbntbnubhfbnvbnwbhfbnxbhfbnyaZWaZmaahbgmbnzbnAbnBbnCbnDbnEbnDbnFbnDbnGbihbnHbkJbnIbnJbnKbnLbihbnMbnNbgmaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnObnPbnQbnRbnRbnPbnSbnTbkPbkPbkPbnUbnVbkPbkPbkPbkPbkPbkPbkPbkPbkPbkPbkPbkPbkPbftbfubnWbdTbnXbnYbnZblkblkboabobbocblkbodboeboebofbogbohboibllahyahybamaZzbcnbojbeebmKbmKbokbolbefaahaahaahaahbjWbjWbombonboobopboqbonborbjWbjWaahaahaahaZdaZHaZdahybdqbiHdCBbfRbbGbbGbfPbfQbbGbbGbbGbbGbbGbembeWbbGbbGbbGdCxbdxbdqahybaNbbObotbouaToaahaahbeZbgLbovbgNbowboxboybozboAboBboCbgVbhOboDboEbgYboFboGboFbgYboHboIbTzboKbgZbgkboLboMbdAboLboMboOboOboOboOboOboOboOboOaZWaZmaahbgmboPboQboRbkHboSbmfboTboUboVboWbmmbmgbkHbmibmmboXboYboSboZbuPbgmaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkQbmqbpbbpcbpcbmqbpdbpebpfbpgbphbpibpjbpkbplbpmbpnbpobppbpqbprbprbpsbprbptbpubpvbpwbpxbMKbpzbpzbpzbpAblkblkbpBblkblkbpCbpDbpEbpEbpEbpFbpGbllahyahybamaZzbcnbfBbeebefbefbefbefbefaahaahaahaahbjWbpHbpIbpJbpKbpLbpKbpMbpNbpObjWaahaahaahaZdaZHaZdahybejbiHdCDdCLbbGbelbbGbfPbenbbGbbGbbGbeobeWbbGbelbbGdCHdCMbdxbejahybbNaYGaYHaUwbpPahyaahbeZbpQbpRbgNbpSbpTbpUbpVbpVbpWbpXbpYbpZbqabqabqbbqcbqdbqcbqebqcbqfbqgbqhbqibqjbqkbqhbqlbqmbqnboObqobqpbqqbqrbqsbqtboOaZWaZmaahbgmbqubqvbqwbkJbqxbqybqzbgmbqAbqBbqCbqCbqDbsnbqCbqEbqFbqGboZbqHbgmaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaacAacOacAacAacAacAacAacAacAacOacAacAacAacAaaaaaaacAacAacAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqIaadahybkQbnPbqJbpcbpcbqKbqLbqMbqNbqObqPbqQbqRbqSbqTbqUbqVbqTbqWbqXbqTbqYbqZbrabrbbrcbrdbgqbinbMNbrfbrgbpzbrhbrebribrjbrkbrlbrmbrnbrobrpbrqbrrbrsbllahyahybambrtbrubrvaZyahyahyahyahyahyahyaahaahaahbjWbjWbrwbrxbpKbpKbpKbrybrzbjWbjWaahaahaahaZdaZHaZdahybcyaTsbrBdCDdCLbbGbbGbbGbbGbbGbbGbbGbbGbbGbbGbbGdCHdCCbrCbdBbcyahyaTobrEaYHbrFbrGahyahybeZbfTblFbrHbeZbrIbrJbvUbrLbrMblMbrNbrObrPbrQbrRbrSbrTbrSbrSbrSbrUbrVbrWbrXbrYbrZbrYbsabrYbrYbsbbscbsdbsebsfbsgbsgboOaZWaZmaahbgmboPbshboRbkHbmibsibsjbskbslbmmbmmbsmbkHbuYbmmbsobspbmiboZbsqbgmaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaacAaaaaadaaaaaaaaaaaaaadaadaaaaadaadaadaaaaadaadaadaaaacAaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsrahyahybssbmqbstbpcbpcbmqbsubsvbswbsxbsybszbsAbkPbkPbkPbkPbkPbkPbkPbkPbkPbkPbkPbkPbkPbsBbfubsCbdTbekbsEbsFbsFbsGbsHbsIbsJbrlbsKbrnbsLbsMbsNbrrbsObsPahyahybamaZzbcnbhrbamahyahyahyahyahyahyaahaahaahaahbjWbsQbrxbsRbsSbsTbsUbsQbjWaahaahaahaahaZdaZHaZdahyaZIbdqbbEbsVdCDdCLbbIbbJbbKbbGbbGbbGbbIbbJbbKdCHdCCbrCbbEbdqaZIahyaZPaYGbetaUwbrGahyahybeZbeZbsWbeZbeZblMblMblMbsXbsXbsXbsXbsYbsZbsXbsXbtabtbbtcbtdbtdbtebtfbtbbtgbthbtibtjbtkbtlbtmboObtnbtobtpbtqbtpbtrboOaZWaZmaahbgmbtsbttbnBbtubnDbtvbnDbtwbmmbtxbmmbtybkJbyTbijbtzbtAbtBbtCbtDbgmaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkQbmqbpbbpcbpcbmqbpdbpebpfbpgbphbpibpjbpkbplbpmbpnbpobppbpqbprbprbpsbprbptbpubpvbpwbpxbMKbpzbpzbpzbpAblkblkbpBblkblkbpCbpDbpEbpEbpEbpFbpGbllahyahybamaZzbcnbfBbeebefbefbefbefbefaahaahaahaahbjWbpHbpIbpJbpKbpLbpKbpMbpNbpObjWaahaahaahaZdaZHaZdahybejbiHdCDdCLbbGbelbbGbfPbenbbGbbGbbGbeobeWbbGbelbbGdCHdCMbdxbejahybbNaYGaYHaUwbpPahyaahbeZbpQbpRbgNbpSbpTbpUbpVbpVbpWbpXbpYbpZbqabqabqbbqcbqdbqcbqebqcbqfbqgbqhbqibqjbqkbqhbqlbqmbqnboObqoaCqbqqbqrbqsbqtboOaZWaZmaahbgmbqubqvbqwbkJbqxbqybqzbgmbqAbqBbqCbqCbqDbsnbqCbqEbqFbqGboZbqHbgmaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaacAacOacAacAacAacAacAacAacAacOacAacAacAacAaaaaaaacAacAacAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqIaadahybkQbnPbqJbpcbpcbqKbqLbqMbqNbqObqPbqQbqRbqSbqTbqUbqVbqTbqWbqXbqTbqYbqZbrabrbbrcbrdbgqbinbMNbrfbrgbpzbrhbrebribrjbrkbrlbrmbrnbrobrpbrqbrrbrsbllahyahybambrtbrubrvaZyahyahyahyahyahyahyaahaahaahbjWbjWbrwbrxbpKbpKbpKbrybrzbjWbjWaahaahaahaZdaZHaZdahybcyaTsbrBdCDdCLbbGbbGbbGbbGbbGbbGbbGbbGbbGbbGbbGdCHdCCbrCbdBbcyahyaTobrEaYHbrFbrGahyahybeZbfTblFbrHbeZbrIbrJbvUbrLbrMblMbrNbrObrPbrQbrRbrSbrTbrSbrSbrSbrUbrVbrWbrXbrYbrZbrYbsabrYbrYbsbbscaCrbsebsfbsgbsgboOaZWaZmaahbgmboPbshboRbkHbmibsibsjbskbslbmmbmmbsmbkHbuYbmmbsobspbmiboZbsqbgmaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaacAaaaaadaaaaaaaaaaaaaadaadaaaaadaadaadaaaaadaadaadaaaacAaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsrahyahybssbmqbstbpcbpcbmqbsubsvbswbsxbsybszbsAbkPbkPbkPbkPbkPbkPbkPbkPbkPbkPbkPbkPbkPbsBbfubsCbdTbekbsEbsFbsFbsGbsHbsIbsJbrlbsKbrnbsLbsMbsNbrrbsObsPahyahybamaZzbcnbhrbamahyahyahyahyahyahyaahaahaahaahbjWbsQbrxbsRbsSbsTbsUbsQbjWaahaahaahaahaZdaZHaZdahyaZIbdqbbEbsVdCDdCLbbIbbJbbKbbGbbGbbGbbIbbJbbKdCHdCCbrCbbEbdqaZIahyaZPaYGbetaUwbrGahyahybeZbeZbsWbeZbeZblMblMblMbsXbsXbsXbsXbsYbsZbsXbsXbtabtbbtcbtdbtdbtebtfbtbbtgbthbtibtjbtkbtlbtmboObtnaCsaCuaCtaCuaDwboOaZWaZmaahbgmbtsbttbnBbtubnDbtvbnDbtwbmmbtxbmmbtybkJbyTbijbtzbtAbtBbtCbtDbgmaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaacAaaabtEbtFbtGaaabtEbtFbtGaaabtEbtFbtGaaabtEbtFbtGaaaacAaadaadaaaaaaaaaaaaaaaaaabtHbtIbtJbtKaaaaaabtLbtMbtNbtLbtLbtObnPbnQbtPbtQbnPbtRbnTbkPbkPbkPbtSbnTbkPaahaahaahaahaahaahaahaahaahaahaahbdTbtTbtUbtVbMKbtWbtXbtYbpzbtZbeEbuabubbucbudbuebufbufbufbugbuhbuiahyahybamaZzbcnbhrbamahyahyahyahyahyaahaahaahaahaahbjWbujbukbulbumbukbukbujbjWaahaahaahaahaZdaZHaZdahyahybbMbaMbbEbsVdCDdCNdCPdCOdCzdCzdCzdCNdCPdCOdCCbrCbbEbaybbDahyahybaNbdubdvbunbrGahyahybuoberbuqburbusbutbuubuvbsXbuwbuxbuybuzbuAbuBbuCbuDbuEbuFbuGbuHbuIbtfbuJbuKbuLbuMbuNbuObuLbuNboObwxbuQbuRbuSbuTbuUboOaZWaZmaahbgmbgmbifbuVbkHboSbuWbmmbmfbmmbmmbtCbuXbkJbCQbwubuZbvabsmbvbbgmbgmaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaacAaadbtEbvcbtGaadbtEbvcbtGaadbtEbvcbtGaadbtEbvcbtGaadacOaaaaadaadaaaaaaaaaaaaaaabtHbtHbvdbvebtHbvfbvgbvhbvibvjbvkbkPbmobmpbmqbmpbmobkRahyahyahyahyahyahyahyaahaahaahaahaahaahaahaahaahaahaahbdTbvlbvmbvnbMNbvobvpbvqbvrbMKbvsbvtbvubvvbvwbvxbvybvzbvAbvBbvCbllahyahybaiaZzbMObhrbaiahyahyahyaahaahaahaahaahaahaahbjWbjWbjWbvDbjWbjWbjWbjWbjWaahaahaahaahaZdaZHaZdahyahyahybbMaZLbaJbgEbgEbvGbvHbiEbhzbiEbvKbvLbgEbgEbiGaZJbbDahyahyahybbNaYGbRLaUwbvNahyahybvObosbuqbvQboNbvSbvTbxbbsXbvVbvWbvXbvYbvYbvZbwabwbbwcbwdbwebwebwfbwgbwhbwibwjbwkbwlbwmbwnbwoboObwpbwqbwrbtqbwsbwtboOaZWaZmaahaahbgmbgmbgmbgmbAQbwvbwwbmfbyUbwybwzbkJbkJbGRbkJbwAbwBbwCbgmbgmaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaabtEbvcbtGaaabtEbvcbtGaaabtEbvcbtGaaabtEbvcbtGaaaaadaaaaaaaadaadaaaaaaaaaaaabtHbwDbwEbwFbtHbwGbwHbwIbwJbwKbwLbkObkPbkRbkQbkSbkPbkPaahaahahyahyahyahyahyahyaahaahbwMbwMbwMbwMbwMbwMbwMbwMbwMbwNbwObwPbdTbrAbwRbwSbwTbMNbwUbuabsCbucbwVbwWbwXbllbwYbwZbwYbllahybeebeeblmblnblobboahyahyaahaahaahaahaahaahaahaahaahaahaahbxaaahaahaahaahaahaahaahaahaZdaZdaZHaZdaZdahyahyahyaZIaZJaZKaZLaZIaZIaZJaZKaZLaZIaZIaZJaZKaZLaZIahyahyahyahyaToaZjblDaZlaToaToahybxcbxdbxebvSbxfbxgbxhbxibsXbxjbxkbxlbxmbvYbvYbxnbqhbxpbxqbthbthbxrbtfbxsbxtbxubxvbxwbxxbADbxzboOboOboOboObxAboOboOboOaZWaZmaahaahaahaahaahbgmbxBbxCbkJbxDbkJbxBbxEbkJbxFbxGbkJbxHbxIbkJbgmaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9945,7 +9947,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaaaaadbkQaahaahaahaahaahcuScuScuScuScCtcCtcCtcCtcCtcCtaahahycIccJccJccJccIcahyahyaahcJecKgcKhcKicJecKjcKjcKjcBIcBIcKkcKlcBIcKmcKncKocKpcKqcKrcKscKtcKqcKucGedeccKvcEwcKwcKwcKwcCKahyahycwhczRcwhaahaahaahaahaahcxzcKxczecHScKyczecKzczgcKAcHScKBcKBcxzaahaahaahaahaahaahaahczicAbcziaahcKCcKCcNYcKEcKFcKCcKCcKCcKGcKHcKIcKCcKCcKCcKCcKCcKCcKCcKCaahcBgcHqcBgaahaahcrQcrQcQAcQBcQCcrQcQDcQEdDydDxcsYcsYcQGdDzcQGdDAcQGaahaahaahcHycKOcKPcKQcKRcKQcMzcMycKUcDAcwIcKVcMBcMAcKYcKZcKYcLacLbcHEcLccLdcLecLfcLecMCcMDcLicwWcHNcLjcLkcLlcLmcLncLmcLocLpcHOaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaahyaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahahycIccLqcLrcLscIcahyaahaahcJecLtcLudEXcJecLwcLxcLycLzcBIcLAcBIcCGcCGcLBcCGcLCcKqcLDcLEcLFcKqcLGcLGcLGcLGcLGcLGcLGcLGahyahyahycwhczRcwhcziaahaahaahaahcxzcxzcxzcxzcLHcLIcLJcLKcLLcxzcxzcxzcxzaahaahaahaahaahaahcziczicAbczicKCcKCcLMcLNcLOcLPcLQcLRcLScLTcLUcLVcLWcLXcLYcLZcMacMbcMccKCcKCcBgcHqcBgahyaahaahcrQcrQcrQcrQcrQcrQcrQcrQcrQdDCdDBcQGcQGcQGcQGcQGaahaahaahcHycMidEYcMkcMlcMmcMndBWcHycyccydcHEdBYdBXdCadBZdCcdEZdCedCddCgdFadCidChdCkdCjdClcHIcysdCmdCodCncMEcMFcMGcMHdFbcMJcHOaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahahyahyahybkQcIccMKcNZcMMcIcbkQcMNcMNcMNcMNcMPcMOcKjcMQcMRcMScMTcMUcMVcMWdDDcoucMZcNacMUcNbcNccNdcNecrVcOpcNhcNicNjcQncLGcNlcLGcLGahyahycwhcNmcNncziczicziczicziczicNocNpcxzcNqcxzcNrcxzcNqcxzcEDcEDcziczicziczicziczicziczicUqcXxcUucKCcNucLPcLPcNvcNwcNwcNxcNycNzcNAcNBcNCcNDcNEcNEcNEcNFcLPcNGcKCcZgdDEcBgahyahyaahaahaahaahaahaahaahaahcWudDFdbMdbMdDGcWuaahaahaahaahaahaahcHycHycHycHycHycHycHycHycHyczpcuAcHEcHEcHEcHEcHEcHEcHEcHEcHEcHIcHIcHIcHIcHIcHIcHIcHIcuLczqcHOcHOcHOcHOcHOcHOcHOcHOcHOaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahahyahyahybkQbkQcOsahycOMbkQbkQcMNcOacObcOccOdcOecOfcOgcOhcOicMTcOjcOkcOlcOlcOmcOncOocPFcOqcNccNdcNecOrcPPcOtcOtcOudDHcOvcOtcOwcLGahyahycwhcOxcOycOzcOAcOBcOCcOCcOCcOCcOAcOAcOAcODcOEcOFcOAcOCcOCcOGcOCcOCcOCcOCcOCcOCcOCcOCdlDdBIdBHcKCcOKcLPcLPcOLcLPcLPcPYcONcOOcOPcOQcONcPYcLPcLPcLPcORcLPcLPcKCdBJcHqcBgahyahyahyaahaahaahaahaahaahaahcWudDIdbMdbMdDJcWuaahaahaahaahaahaahcPdcPecPfcPgcPhcPicPjcPkcPdcPlcPmcPncuscPpcPpcPqcPpcutcPrcPscPpcPtcPpcPucPpcPpcvkcPncPwcPlcPxcPycPzcPAcPBcPCcPDcPEcPxaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahahyahyahybkQbkQcOsahycOMbkQbkQcMNcOacObcOccOdcOecOfcOgcOhcOicMTcOjcOkcOlcOlcOmcOncOocPFcOqcNccNdcNecOrcPPcOtcOtcOudDHcOvcOtcOwcLGahyahycwhcOxcOycOzcOAcOBcOCcOCcOCcOCcOAcOAcOAcODcOEcOFcOAcOCcOCcOGcOCcOCcOCcOCcOCcOCcOCcOCdlDdBIdBHcKCcOKcLPcLPcOLcLPcLPcPYcONcOOcOPcOQcONcPYcLPcLPcLPcORcLPcLPcKCdBJcHqcBgahyahyahyaahaahaahaahaahaahaahcWudDIdbMdbMdDJcWuaahaahaahaahaahaahcPdcPecPfcPgcPhcPicPjcPkcPdcPlcPmcPncuscPpcPpcPqcPpcutcPrcPscPpcPtcPpcPucPpcPpcvkcPncPwcPlcPxcPycPzcPAaEycPCcPDcPEcPxaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahahyahyahycQscPGcPGcPHcPGcPIcPJcPKcMNcPLcPMcPMcPNcPOcRfcPQcPRcPScMTcPTcPUcOocPVcPWcOocPXcRucPZcNccQacQbcQccxUdDKdDMdDLdDNcQicQjcQkcLGahyahycwhcQlczQczicziczicziczicziczicziczicEDcEDcEEcNscEDczicziczicziczicziczicziczicziczicQmcEDdBKcKCcQocQocLPcQpcQqcQrcRJcQtcOOcQucQvcQwcRJcQxcQocLPcQycQqcQocKCdCRcHqcBgahyahyahyahyaahaahaahaahaahaahcWucWudDPdDOcWucWuaahaahaahaahaahaahcPdcQJcQKcQKcQLcQKcQKcQMcQNcQOcQPcQQcQRcQRcQRcQScQRcQTcQUcQVcQWcQXcQRcQYcQRcQRcQRcQQcQZcRacRbcRccRccRccRdcRccRccRecPxaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbLjbLjaahaahaahaahaahaahaahaahaahaahaahaahaahaahahyahycSAcRgcRhcRicRjcRkcRlcRmcRncRocRpcRqcRrcRscRtcSLcRvcRwcRxcMTcRycPUcRzcRAcRBcRCcOlcRDcREcRFcRGcRHcRIcTadDQcRKcRLcRMcRNcROcRPcLGahyahycwhcRQcwhcziahyahyahyahyahyahyahycziczicziczicziczicziaahaahaahaahaahaahaahaahaahcziczicRRdCScKCcRTcRWcRVcLPcRWcRXcRJcRYcOOcOPcOQcRZcRJcRTcRWcLPcRVcRWcSacKCdCTcSccBgahyahyahyahyahyaahaahaahaahaahahydDRdbMdDScWuaahaahaahaahaahaahaahcPdcSdcSecSfcSgcShcSicSjcSjcSkcSlcSmcSlcSlcSlcSncSlcSlcSlcSocSpcSqcSqcSrcSqcSqcSqcSscStcSkcSucSucSvcSwcSxcSycSycSzcPxaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahbLjbLjaahaahaahaahaahaahaahaahaahbkQbkQahyahyahybkQbkQcTZcSBcSCcPMcSDcPMcSEcSFcSGcSHcPMcPMcSIcSJcSKcUlcSMcSNcSOcMTcSPcSQcSRcSScSTcSUcSVcSWcSXcSYcSZcNecRIcUscTbcOtcTccTdcTecTfcTgcLGahyahycwhcRQcwhahyahyahyahyahyahyahyahyahyahyahyahyaahaahaahaahaahaahaahaahaahaahaahaahaahczicThcRScKCcTicTjcTkcLPcTlcTjcRJcTmcTncTocOQcTmcRJcTjcTjcTpcLPcTlcTqcKCcSbcTrcBgahyahyahyahyahyahyahyahyahyahyahydDTdbMdDUcWuaahaahaahaahaahaahaahcPdcPdcTscTtcTucTvcTwcTxcPdcPncPncPncTycTzcTzcTAcTBcTCcTDcTEcTFcTGdCUcTHcTzcTzcTIcPncPncPncPxcTJcTKcTLcTMcTNcTOcPxcPxaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 6ea7295e872d7086ef7c5bc011d2f1d200ad286c Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Wed, 9 Mar 2016 17:40:11 +0100 Subject: [PATCH 07/61] Updates price list --- code/modules/economy/price_list.dm | 168 ++++++++++++++++++++++++++--- 1 file changed, 155 insertions(+), 13 deletions(-) diff --git a/code/modules/economy/price_list.dm b/code/modules/economy/price_list.dm index 6c1ebe8308..df6bc8e8f9 100644 --- a/code/modules/economy/price_list.dm +++ b/code/modules/economy/price_list.dm @@ -18,6 +18,9 @@ // Juices, soda and similar // +/datum/reagent/water + price_tag = 2 + /datum/reagent/drink/juice price_tag = 2 @@ -49,7 +52,6 @@ price_tag = 2 - // Hot Drinks // /datum/reagent/drink/rewriter @@ -64,6 +66,15 @@ /datum/reagent/drink/hot_coco price_tag = 3 +/obj/item/weapon/reagent_containers/food/drinks/coffee + price_tag = 3 + +/obj/item/weapon/reagent_containers/food/drinks/tea + price_tag = 3 + +/obj/item/weapon/reagent_containers/food/drinks/h_chocolate + price_tag = 3 + // Spirituous liquors // @@ -103,6 +114,15 @@ /datum/reagent/ethanol/whiskey price_tag = 5 +/datum/reagent/ethanol/specialwhiskey + price_tag = 5 + +/datum/reagent/ethanol/patron + price_tag = 5 + +/datum/reagent/ethanol/goldschlager + price_tag = 5 + /datum/reagent/ethanol/coffee/brave_bull // Not an original liquor in its own. But since it's a mix of purely Tequila price_tag = 5 // and Kahlua, it's basically just another one and gets the same price. @@ -202,15 +222,12 @@ /datum/reagent/ethanol/erikasurprise price_tag = 4 -/datum/reagent/ethanol/gargleblaster +/datum/reagent/ethanol/gargle_blaster price_tag = 4 /datum/reagent/ethanol/gintonic price_tag = 4 -/datum/reagent/ethanol/goldschlager - price_tag = 4 - /datum/reagent/ethanol/hippies_delight price_tag = 4 @@ -250,9 +267,6 @@ /datum/reagent/ethanol/neurotoxin price_tag = 4 -/datum/reagent/ethanol/patron - price_tag = 4 - /datum/reagent/ethanol/red_mead price_tag = 4 @@ -301,9 +315,6 @@ /datum/reagent/ethanol/whiskeysoda price_tag = 4 -/datum/reagent/ethanol/specialwhiskey - price_tag = 4 - // Cocktails without alcohol // @@ -339,9 +350,105 @@ //***************// -//---Foodstuff---// +//----Bottles----// //***************// +// Juices, soda and similar // + +/obj/item/weapon/reagent_containers/food/drinks/bottle/cola + price_tag = 6 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/space_up + price_tag = 6 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/space_mountain_wind + price_tag = 6 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice + price_tag = 6 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream + price_tag = 6 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice + price_tag = 6 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice + price_tag = 6 + + +// Beer // + +/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer + price_tag = 3 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/small/ale + price_tag = 3 + + +// Spirituous Liquors // + +/obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe + price_tag = 15 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/bluecuracao + price_tag = 15 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/gin + price_tag = 15 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua + price_tag = 15 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/melonliquor + price_tag = 15 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/rum + price_tag = 15 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/tequilla + price_tag = 15 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka + price_tag = 15 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey + price_tag = 15 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/specialwhiskey + price_tag = 15 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/patron + price_tag = 15 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager + price_tag = 15 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing + price_tag = 15 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/grenadine + price_tag = 15 + + +// Wines // + +/obj/item/weapon/reagent_containers/food/drinks/bottle/wine + price_tag = 25 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac + price_tag = 25 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth + price_tag = 25 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/pwine + price_tag = 25 + + +//***************// +//---Foodstuff---// +//***************// // Snacks // @@ -811,4 +918,39 @@ /obj/item/pizzabox get_item_cost() - return get_item_cost(pizza) \ No newline at end of file + return get_item_cost(pizza) + + +//***************// +//----Smokes-----// +//***************// + +/obj/item/weapon/storage/fancy/cigarettes + price_tag = 15 + +/obj/item/weapon/storage/fancy/cigarettes/luckystars + price_tag = 17 + +/obj/item/weapon/storage/fancy/cigarettes/jerichos + price_tag = 22 + +/obj/item/weapon/storage/fancy/cigarettes/menthols + price_tag = 18 + +/obj/item/weapon/storage/fancy/cigar + price_tag = 27 + +/obj/item/weapon/storage/fancy/cigarettes/carcinomas + price_tag = 23 + +/obj/item/weapon/storage/fancy/cigarettes/professionals + price_tag = 25 + +/obj/item/weapon/storage/box/matches + price_tag = 1 + +/obj/item/weapon/flame/lighter + price_tag = 2 + +/obj/item/weapon/flame/lighter/zippo + price_tag = 5 \ No newline at end of file From 2c815af5267e24eb58a88c49537a466cb7d75eb1 Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Wed, 9 Mar 2016 19:06:58 +0100 Subject: [PATCH 08/61] Adjusts price cumulation and logs --- code/modules/economy/cash_register.dm | 42 ++++++++++++++++---------- code/modules/economy/retail_scanner.dm | 22 ++++++++++---- 2 files changed, 42 insertions(+), 22 deletions(-) diff --git a/code/modules/economy/cash_register.dm b/code/modules/economy/cash_register.dm index 07d49030f7..f3c9087215 100644 --- a/code/modules/economy/cash_register.dm +++ b/code/modules/economy/cash_register.dm @@ -123,7 +123,7 @@ transaction_amount += t_amount price_list += t_amount playsound(src, 'sound/machines/twobeep.ogg', 25) - src.visible_message("\icon[src][transaction_purpose]: [transaction_amount] Thaler\s.") + src.visible_message("\icon[src][transaction_purpose]: [t_amount] Thaler\s.") if("reset_log") transaction_logs.Cut() usr << "\icon[src]Transaction log reset." @@ -180,18 +180,18 @@ if (!transaction_amount) return - if(!confirm(I)) + if (cash_open) + playsound(src, 'sound/machines/buzz-sigh.ogg', 25) + usr << "\icon[src]The cash box is open." + return + + if((item_list.len > 1 || item_list[item_list[1]] > 1) && !confirm(I)) return if (!linked_account) usr.visible_message("\icon[src]Unable to connect to linked account.") return - if (cash_open) - playsound(src, 'sound/machines/buzz-sigh.ogg', 25) - usr << "\icon[src]The cash box is open." - return - // Access account for transaction if(check_account()) var/datum/money_account/D = get_account(I.associated_account_number) @@ -245,14 +245,14 @@ if (!transaction_amount) return - if(!confirm(E)) - return - if (cash_open) playsound(src, 'sound/machines/buzz-sigh.ogg', 25) usr << "\icon[src]The cash box is open." return + if((item_list.len > 1 || item_list[item_list[1]] > 1) && !confirm(E)) + return + // Access account for transaction if(check_account()) if(transaction_amount > E.worth) @@ -283,14 +283,14 @@ if (!transaction_amount) return - if(!confirm(SC)) - return - if (cash_open) playsound(src, 'sound/machines/buzz-sigh.ogg', 25) usr << "\icon[src]The cash box is open." return + if((item_list.len > 1 || item_list[item_list[1]] > 1) && !confirm(SC)) + return + if(transaction_amount > SC.worth) src.visible_message("\icon[src]Not enough money.") else @@ -313,6 +313,9 @@ /obj/machinery/cash_register/proc/scan_item_price(obj/O) if(!istype(O)) return + if(item_list.len > 10) + src.visible_message("\icon[src]Only up to ten different items allowed per purchase.") + return if (cash_open) playsound(src, 'sound/machines/buzz-sigh.ogg', 25) usr << "\icon[src]The cash box is open." @@ -330,8 +333,13 @@ transaction_purpose += "
" transaction_purpose += "[O]: [price] Thaler\s" transaction_amount += price - item_list += "[O]" - price_list += price + for(var/obj/previously_scanned in item_list) + if(O == previously_scanned || istype(O, previously_scanned.type)) + . = item_list[previously_scanned]++ + if(!.) + item_list[O] = 1 + price_list += price + . = 1 // Animation and sound playsound(src, 'sound/machines/twobeep.ogg', 25) // Reset confirmation @@ -356,8 +364,10 @@ "} + var/obj/O for(var/i=1, i<=item_list.len, i++) - dat += "" + O = item_list[i] + dat += "" dat += "" dat += "
[item_list[i]][price_list[i]] þ
[item_list[O]] x [O.name][price_list[i] * item_list[O]] þ
Total Amount: [transaction_amount] þ
" diff --git a/code/modules/economy/retail_scanner.dm b/code/modules/economy/retail_scanner.dm index 88fd72acf2..dc07574494 100644 --- a/code/modules/economy/retail_scanner.dm +++ b/code/modules/economy/retail_scanner.dm @@ -116,7 +116,7 @@ transaction_amount += t_amount price_list += t_amount playsound(src, 'sound/machines/twobeep.ogg', 25) - src.visible_message("\icon[src][transaction_purpose]: [transaction_amount] Thaler\s.") + src.visible_message("\icon[src][transaction_purpose]: [t_amount] Thaler\s.") if("reset_log") transaction_logs.Cut() usr << "\icon[src]Transaction log reset." @@ -161,7 +161,7 @@ if (!transaction_amount) return - if(!confirm(I)) + if((item_list.len > 1 || item_list[item_list[1]] > 1) && !confirm(I)) return if (!linked_account) @@ -221,7 +221,7 @@ if (!transaction_amount) return - if(!confirm(E)) + if((item_list.len > 1 || item_list[item_list[1]] > 1) && !confirm(E)) return // Access account for transaction @@ -252,6 +252,9 @@ /obj/item/device/retail_scanner/proc/scan_item_price(var/obj/O) if(!istype(O)) return + if(item_list.len > 10) + src.visible_message("\icon[src]Only up to ten different items allowed per purchase.") + return // First check if item has a valid price var/price = O.get_item_cost() if(isnull(price)) @@ -264,8 +267,13 @@ transaction_purpose += "
" transaction_purpose += "[O]: [price] Thaler\s" transaction_amount += price - item_list += "[O]" - price_list += price + for(var/obj/previously_scanned in item_list) + if(O == previously_scanned || istype(O, previously_scanned.type)) + . = item_list[previously_scanned]++ + if(!.) + item_list[O] = 1 + price_list += price + . = 1 // Animation and sound flick("retail_scan", src) playsound(src, 'sound/machines/twobeep.ogg', 25) @@ -290,8 +298,10 @@ "} + var/obj/O for(var/i=1, i<=item_list.len, i++) - dat += "" + O = item_list[i] + dat += "" dat += "" dat += "
[item_list[i]][price_list[i]] þ
[item_list[O]] x [O.name][price_list[i] * item_list[O]] þ
Total Amount: [transaction_amount] þ
" From 0331ca9242ee1cd4f9a2519541cb57b965723f0b Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Wed, 9 Mar 2016 20:35:39 +0100 Subject: [PATCH 09/61] Extensive Interface Improvement --- code/modules/economy/cash_register.dm | 84 +++++++++++++++++++----- code/modules/economy/retail_scanner.dm | 88 +++++++++++++++++++++----- 2 files changed, 140 insertions(+), 32 deletions(-) diff --git a/code/modules/economy/cash_register.dm b/code/modules/economy/cash_register.dm index f3c9087215..109572ffc0 100644 --- a/code/modules/economy/cash_register.dm +++ b/code/modules/economy/cash_register.dm @@ -51,10 +51,6 @@ overlays -= "register_cash" else open_cash_box() - // Reset if necessary - else if(transaction_amount) - reset_memory() - user << "You reset the machine's memory." else user.set_machine(src) interact(user) @@ -76,7 +72,12 @@ dat += "Linked account: [linked_account ? linked_account.owner_name : "None"]
" dat += "[cash_locked? "Unlock" : "Lock"] Cash Box | " dat += "Custom Order
" - for(var/i=1, i<=transaction_logs.len, i++) + + if(item_list.len) + dat += get_current_transaction() + dat += "
" + + for(var/i=transaction_logs.len, i>=1, i--) dat += "[transaction_logs[i]]
" if(transaction_logs.len) @@ -118,12 +119,46 @@ if (!t_purpose || !Adjacent(usr)) return transaction_purpose = t_purpose item_list += t_purpose - var/t_amount = input("Enter price", "New price") as num + var/t_amount = round(input("Enter price", "New price") as num) if (!t_amount || !Adjacent(usr)) return transaction_amount += t_amount price_list += t_amount playsound(src, 'sound/machines/twobeep.ogg', 25) src.visible_message("\icon[src][transaction_purpose]: [t_amount] Thaler\s.") + if("set_amount") + var/item_name = locate(href_list["item"]) + var/n_amount = round(input("Enter amount", "New amount") as num) + n_amount = Clamp(n_amount, 0, 20) + if (!item_list[item_name] || !Adjacent(usr)) return + transaction_amount += (n_amount - item_list[item_name]) * price_list[item_name] + if(!n_amount) + item_list -= item_name + price_list -= item_name + else + item_list[item_name] = n_amount + if("subtract") + var/item_name = locate(href_list["item"]) + if(item_name) + transaction_amount -= price_list[item_name] + item_list[item_name]-- + if(item_list[item_name] <= 0) + item_list -= item_name + price_list -= item_name + if("add") + var/item_name = locate(href_list["item"]) + if(item_list[item_name] >= 20) return + transaction_amount += price_list[item_name] + item_list[item_name]++ + if("clear") + var/item_name = locate(href_list["item"]) + if(item_name) + transaction_amount -= price_list[item_name] * item_list[item_name] + item_list -= item_name + price_list -= item_name + else + transaction_amount = 0 + item_list.Cut() + price_list.Cut() if("reset_log") transaction_logs.Cut() usr << "\icon[src]Transaction log reset." @@ -333,24 +368,43 @@ transaction_purpose += "
" transaction_purpose += "[O]: [price] Thaler\s" transaction_amount += price - for(var/obj/previously_scanned in item_list) - if(O == previously_scanned || istype(O, previously_scanned.type)) + for(var/previously_scanned in item_list) + if(price == price_list[previously_scanned] && O.name == previously_scanned) . = item_list[previously_scanned]++ if(!.) - item_list[O] = 1 - price_list += price + item_list[O.name] = 1 + price_list[O.name] = price . = 1 // Animation and sound playsound(src, 'sound/machines/twobeep.ogg', 25) // Reset confirmation confirm_item = null + updateDialog() + + +/obj/machinery/cash_register/proc/get_current_transaction() + var/dat = {" + + + + "} + var/item_name + for(var/i=1, i<=item_list.len, i++) + item_name = item_list[i] + dat += "" + dat += "
New Entry
[item_list[item_name] ? "- Set + [item_list[item_name]] x " : ""][item_name] Remove[price_list[item_name] * item_list[item_name]] þ
" + dat += "" + dat += "
Clear EntryTotal Amount: [transaction_amount] þ
" + return dat /obj/machinery/cash_register/proc/add_transaction_log(var/c_name, var/p_method, var/t_amount) var/dat = {" - + + + "} + var/item_name + for(var/i=1, i<=item_list.len, i++) + item_name = item_list[i] + dat += "" + dat += "
New Entry
[item_list[item_name] ? "- Set + [item_list[item_name]] x " : ""][item_name] Remove[price_list[item_name] * item_list[item_name]] þ
" + dat += "" + dat += "
Clear EntryTotal Amount: [transaction_amount] þ
" + return dat + + /obj/item/device/retail_scanner/proc/add_transaction_log(var/c_name, var/p_method, var/t_amount) var/dat = {"