From 1c51550559b465d1a9dbc1c947662c0ab6ab0965 Mon Sep 17 00:00:00 2001 From: phil235 Date: Sat, 8 Aug 2015 21:43:30 +0200 Subject: [PATCH 01/51] Changes how mulebots handle loading mobs. It now buckles them to the bot. You can no longer load objects containing mobs or with mobs buckled to them. You can no longer pass through plastic flaps by getting on a mulebot. Some simplification in mulebot code (buzzing sound code) Loading is now instantaneous and the mode BOT_LOADING is removed. The mulebot can no longer do certain stuff while off. Removing unneeded comments. Fixes mulebot loading/unloading being possible through border windows. Fixes mulebot not dropping its loaded cargo when qdel'd (wasn't a problem for explosion but for alien acid for example) --- code/game/machinery/bots/bots.dm | 15 +- code/game/machinery/bots/mulebot.dm | 219 ++++++++++++++++------------ code/game/objects/buckling.dm | 2 +- 3 files changed, 135 insertions(+), 101 deletions(-) diff --git a/code/game/machinery/bots/bots.dm b/code/game/machinery/bots/bots.dm index 9c6639c3bd7..c7d00e16013 100644 --- a/code/game/machinery/bots/bots.dm +++ b/code/game/machinery/bots/bots.dm @@ -70,17 +70,16 @@ #define BOT_MOVING 9 // for clean/floor/med bots, when moving. #define BOT_HEALING 10 // healing people (medbots) #define BOT_RESPONDING 11 // responding to a call from the AI - #define BOT_LOADING 12 // loading/unloading - #define BOT_DELIVER 13 // moving to deliver - #define BOT_GO_HOME 14 // returning to home - #define BOT_BLOCKED 15 // blocked - #define BOT_NAV 16 // computing navigation - #define BOT_WAIT_FOR_NAV 17 // waiting for nav computation - #define BOT_NO_ROUTE 18 // no destination beacon found (or no route) + #define BOT_DELIVER 12 // moving to deliver + #define BOT_GO_HOME 13 // returning to home + #define BOT_BLOCKED 14 // blocked + #define BOT_NAV 15 // computing navigation + #define BOT_WAIT_FOR_NAV 16 // waiting for nav computation + #define BOT_NO_ROUTE 17 // no destination beacon found (or no route) var/list/mode_name = list("In Pursuit","Preparing to Arrest", "Arresting", \ "Beginning Patrol", "Patrolling", "Summoned by PDA", \ "Cleaning", "Repairing", "Proceeding to work site", "Healing", \ - "Proceeding to AI waypoint", "Loading/Unloading", "Navigating to Delivery Location", "Navigating to Home", \ + "Proceeding to AI waypoint", "Navigating to Delivery Location", "Navigating to Home", \ "Waiting for clear path", "Calculating navigation path", "Pinging beacon network", "Unable to reach destination") //This holds text for what the bot is mode doing, reported on the remote bot control interface. diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index 68643c28cb6..d7ffb7b8405 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -6,6 +6,11 @@ var/global/mulebot_count = 0 + +#define SIGH 0 +#define ANNOYED 1 +#define DELIGHT 2 + /obj/machinery/bot/mulebot name = "\improper MULEbot" desc = "A Multiple Utility Load Effector bot." @@ -22,13 +27,15 @@ var/global/mulebot_count = 0 bot_type = MULE_BOT model = "MULE" blood_DNA = list() + can_buckle = 1 + buckle_lying = 0 suffix = "" var/turf/target // this is turf to navigate to (location of beacon) var/loaddir = 0 // this the direction to unload onto/load from var/home_destination = "" // tag of home beacon - req_access = list(access_cargo) + req_access = list(access_cargo) mode = BOT_IDLE @@ -77,6 +84,28 @@ obj/machinery/bot/mulebot/bot_reset() reached_target = 0 +obj/machinery/bot/mulebot/Move(atom/newloc, direct) + . = ..() + if(buckled_mob) + buckled_mob.buckled = null + if(!buckled_mob.Move(loc, direct)) + loc = buckled_mob.loc //we gotta go back + last_move = buckled_mob.last_move + inertia_dir = last_move + buckled_mob.inertia_dir = last_move + . = 0 + buckled_mob.buckled = src + +obj/machinery/bot/mulebot/Process_Spacemove(movement_dir = 0) + if(buckled_mob) + return buckled_mob.Process_Spacemove(movement_dir) + return ..() + +obj/machinery/bot/mulebot/CanPass(atom/movable/mover, turf/target, height=1.5) + if(mover == buckled_mob) + return 1 + return ..() + // attack by item // emag : lock/unlock, // screwdriver: open/close hatch @@ -183,8 +212,6 @@ obj/machinery/bot/mulebot/bot_reset() switch(mode) if(BOT_IDLE) dat += "Ready" - if(BOT_LOADING) - dat += "[mode_name[BOT_LOADING]]" if(BOT_DELIVER) dat += "[mode_name[BOT_DELIVER]]" if(BOT_GO_HOME) @@ -358,7 +385,7 @@ obj/machinery/bot/mulebot/bot_reset() updateDialog() if("unload") - if(load && mode !=1) + if(load && mode != BOT_HUNT) if(loc == target) unload(loaddir) else @@ -379,7 +406,6 @@ obj/machinery/bot/mulebot/bot_reset() - // returns true if the bot has power /obj/machinery/bot/mulebot/proc/has_power() return !open && cell && cell.charge > 0 && wires.HasPower() @@ -393,66 +419,93 @@ obj/machinery/bot/mulebot/bot_reset() user << "Access denied." return 0 +/obj/machinery/bot/mulebot/proc/buzz(type) + switch(type) + if(SIGH) + visible_message("[src] makes a sighing buzz.", "You hear an electronic buzzing sound.") + playsound(loc, 'sound/machines/buzz-sigh.ogg', 50, 0) + if(ANNOYED) + visible_message("[src] makes an annoyed buzzing sound.", "You hear an electronic buzzing sound.") + playsound(loc, 'sound/machines/buzz-two.ogg', 50, 0) + if(DELIGHT) + visible_message("[src] makes a delighted ping!", "You hear a ping.") + playsound(loc, 'sound/machines/ping.ogg', 50, 0) + + // mousedrop a crate to load the bot // can load anything if emagged +/obj/machinery/bot/mulebot/MouseDrop_T(atom/movable/AM, mob/user) -/obj/machinery/bot/mulebot/MouseDrop_T(atom/movable/C, mob/user) - - if(user.stat) + if(user.incapacitated() || user.lying) return - if (!on || !istype(C)|| C.anchored || get_dist(user, src) > 1 || get_dist(src,C) > 1 ) + if (!istype(AM)) return - if(load) - return - - load(C) - + load(AM) // called to load a crate -/obj/machinery/bot/mulebot/proc/load(atom/movable/C) - if(wires.LoadCheck() && !istype(C,/obj/structure/closet/crate)) - visible_message("[src] makes a sighing buzz.", "You hear an electronic buzzing sound.") - playsound(loc, 'sound/machines/buzz-sigh.ogg', 50, 0) - return // if not emagged, only allow crates to be loaded - - //I'm sure someone will come along and ask why this is here... well people were dragging screen items onto the mule, and that was not cool. - //So this is a simple fix that only allows a selection of item types to be considered. Further narrowing-down is below. - if(!istype(C,/obj/item) && !istype(C,/obj/machinery) && !istype(C,/obj/structure) && !ismob(C)) - return - if(!isturf(C.loc)) //To prevent the loading from stuff from someone's inventory, which wouldn't get handled properly. +/obj/machinery/bot/mulebot/proc/load(atom/movable/AM) + if(load || AM.anchored) return - if(get_dist(C, src) > 1 || load || !on) + if(!isturf(AM.loc)) //To prevent the loading from stuff from someone's inventory or screen icons. return - mode = BOT_LOADING - // if a create, close before loading - var/obj/structure/closet/crate/crate = C - if(istype(crate)) - crate.close() + var/obj/structure/closet/crate/CRATE + if(istype(AM,/obj/structure/closet/crate)) + CRATE = AM + else + if(wires.LoadCheck()) + buzz(SIGH) + return // if not emagged, only allow crates to be loaded - C.loc = loc - sleep(2) - if(C.loc != loc) //To prevent you from going onto more thano ne bot. - return - C.loc = src - load = C + if(CRATE) // if it's a crate, close before loading + CRATE.close() - C.pixel_y += 9 - if(C.layer < layer) - C.layer = layer + 0.1 - overlays += C + if(isobj(AM)) + var/obj/O = AM + if(O.buckled_mob || (locate(/mob) in AM)) //can't load non crates objects with mobs buckled to it or inside it. + buzz(SIGH) + return - if(ismob(C)) - var/mob/M = C - if(M.client) - M.client.perspective = EYE_PERSPECTIVE - M.client.eye = src + if(isliving(AM)) + if(!buckle_mob(AM)) + return + else + AM.loc = src + AM.pixel_y += 9 + if(AM.layer < layer) + AM.layer = layer + 0.1 + overlays += AM + load= AM mode = BOT_IDLE +/obj/machinery/bot/mulebot/buckle_mob(mob/living/M) + if(M.buckled) + return 0 + var/turf/T = get_turf(src) + density = 0 + var/can_step = step_towards(M, T) + density = 1 + if(!can_step) + return 0 + return ..() + + +/obj/machinery/bot/mulebot/post_buckle_mob(mob/living/M) + if(M == buckled_mob) //post buckling + M.pixel_y = initial(M.pixel_y) + 9 + if(M.layer < layer) + M.layer = layer + 0.1 + + else //post unbuckling + load = null + M.layer = initial(M.layer) + M.pixel_y = initial(M.pixel_y) + + // called to unload the bot // argument is optional direction to unload // if zero, unload at bot's location @@ -460,18 +513,16 @@ obj/machinery/bot/mulebot/bot_reset() if(!load) return - mode = BOT_LOADING + mode = BOT_IDLE + overlays.Cut() - if(ismob(load)) - var/mob/M = load - if(M.client) - M.client.perspective = MOB_PERSPECTIVE - M.client.eye = src - + if(buckled_mob) + unbuckle_mob() + return load.loc = loc - load.pixel_y -= 9 + load.pixel_y = initial(load.pixel_y) load.layer = initial(load.layer) if(dirn) var/turf/T = loc @@ -481,22 +532,7 @@ obj/machinery/bot/mulebot/bot_reset() load = null - // in case non-load items end up in contents, dump every else too - // this seems to happen sometimes due to race conditions - // with items dropping as mobs are loaded - for(var/atom/movable/AM in src) - if(AM == cell || istype(AM , botcard) || AM == Radio) continue - - AM.loc = loc - AM.layer = initial(AM.layer) - AM.pixel_y = initial(AM.pixel_y) - if(ismob(AM)) - var/mob/M = AM - if(M.client) - M.client.perspective = MOB_PERSPECTIVE - M.client.eye = src - mode = BOT_IDLE /obj/machinery/bot/mulebot/call_bot() ..() @@ -536,14 +572,14 @@ obj/machinery/bot/mulebot/bot_reset() if(refresh) updateDialog() /obj/machinery/bot/mulebot/proc/process_bot() - //if(mode) world << "Mode: [mode]" + + if(!on) + return switch(mode) if(BOT_IDLE) // idle icon_state = "mulebot0" return - if(BOT_LOADING) // loading/unloading - return if(BOT_DELIVER,BOT_GO_HOME,BOT_BLOCKED) // navigating to deliver,home, or blocked if(loc == target) // reached target @@ -603,26 +639,22 @@ obj/machinery/bot/mulebot/bot_reset() blockcount++ mode = BOT_BLOCKED if(blockcount == 3) - visible_message("[src] makes an annoyed buzzing sound.", "You hear an electronic buzzing sound.") - playsound(loc, 'sound/machines/buzz-two.ogg', 50, 0) + buzz(ANNOYED) if(blockcount > 10) // attempt 10 times before recomputing // find new path excluding blocked turf - visible_message("[src] makes a sighing buzz.", "You hear an electronic buzzing sound.") - playsound(loc, 'sound/machines/buzz-sigh.ogg', 50, 0) + buzz(SIGH) spawn(2) calc_path(next) if(path.len > 0) - visible_message("[src] makes a delighted ping!", "You hear a ping.") - playsound(loc, 'sound/machines/ping.ogg', 50, 0) + buzz(DELIGHT) mode = BOT_BLOCKED mode = BOT_WAIT_FOR_NAV return return else - visible_message("[src] makes an annoyed buzzing sound.", "You hear an electronic buzzing sound.") - playsound(loc, 'sound/machines/buzz-two.ogg', 50, 0) + buzz(ANNOYED) //world << "Bad turf." mode = BOT_NAV return @@ -641,20 +673,12 @@ obj/machinery/bot/mulebot/bot_reset() if(path.len > 0) blockcount = 0 mode = BOT_BLOCKED - visible_message("[src] makes a delighted ping!", "You hear a ping.") - playsound(loc, 'sound/machines/ping.ogg', 50, 0) + buzz(DELIGHT) else - visible_message("[src] makes a sighing buzz.", "You hear an electronic buzzing sound.") - playsound(loc, 'sound/machines/buzz-sigh.ogg', 50, 0) + buzz(SIGH) mode = BOT_NO_ROUTE - //if(6) - //world << "Pending path calc." - //if(7) - //world << "No dest / no route." - - return // calculates a path to the current destination @@ -673,6 +697,8 @@ obj/machinery/bot/mulebot/bot_reset() // starts bot moving to current destination /obj/machinery/bot/mulebot/proc/start() + if(!on) + return if(destination == home_destination) mode = BOT_GO_HOME else @@ -683,6 +709,8 @@ obj/machinery/bot/mulebot/bot_reset() // starts bot moving to home // sends a beacon query to find /obj/machinery/bot/mulebot/proc/start_home() + if(!on) + return spawn(0) set_destination(home_destination) mode = BOT_BLOCKED @@ -719,7 +747,7 @@ obj/machinery/bot/mulebot/bot_reset() break else // otherwise, look for crates only AM = locate(/obj/structure/closet/crate) in get_step(loc,loaddir) - if(AM) + if(AM && AM.Adjacent(src)) load(AM) if(report_delivery) speak("Now loading [load] at [get_area(src)].", radio_frequency) @@ -828,5 +856,12 @@ obj/machinery/bot/mulebot/bot_reset() s.start() new /obj/effect/decal/cleanable/oil(loc) - unload(0) qdel(src) + +/obj/machinery/bot/mulebot/Destroy() + unload(0) + return ..() + +#undef SIGH +#undef ANNOYED +#undef DELIGHT \ No newline at end of file diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 0c781f27f9b..21fca6593d0 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -72,7 +72,7 @@ //Wrapper procs that handle sanity and user feedback /obj/proc/user_buckle_mob(mob/living/M, mob/user) - if(!user.Adjacent(M) || user.restrained() || user.lying || user.stat) + if(!user.Adjacent(M) || user.lying || user.incapacitated()) return add_fingerprint(user) From e16c03f01023a17bda9d166723f473e83ddc0130 Mon Sep 17 00:00:00 2001 From: phil235 Date: Sat, 8 Aug 2015 22:10:25 +0200 Subject: [PATCH 02/51] woops, now buckling succeeds if you are on the mulebot's turf. --- code/game/machinery/bots/mulebot.dm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index d7ffb7b8405..fca41d8291e 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -486,11 +486,12 @@ obj/machinery/bot/mulebot/CanPass(atom/movable/mover, turf/target, height=1.5) if(M.buckled) return 0 var/turf/T = get_turf(src) - density = 0 - var/can_step = step_towards(M, T) - density = 1 - if(!can_step) - return 0 + if(M.loc != T) + density = 0 + var/can_step = step_towards(M, T) + density = 1 + if(!can_step) + return 0 return ..() @@ -802,11 +803,10 @@ obj/machinery/bot/mulebot/CanPass(atom/movable/mover, turf/target, height=1.5) // player on mulebot attempted to move /obj/machinery/bot/mulebot/relaymove(mob/user) - if(user.stat) + if(user.incapacitated()) return if(load == user) unload(0) - return //Update navigation data. Called when commanded to deliver, return home, or a route update is needed... From 831c069404d16d29ec440418514e2c32fccfd9e3 Mon Sep 17 00:00:00 2001 From: MrPerson Date: Tue, 11 Aug 2015 22:19:07 -0700 Subject: [PATCH 03/51] Smooth out gliding so movement isn't (as) jerky Only applies to non-ghost, non-camera mob movement. Scales automatically to any fps and any move delay. Also took this oppurtunity to remove tickcomp because it was USELESS and shit. All the rounding is because of floating point imprecision. round(2.7, 0.9) != 2.7, for example. 2.7 + world.time would wind up being < than world.time 3 ticks later even though they should be equal. --- code/controllers/configuration.dm | 3 --- code/modules/admin/verbs/fps.dm | 6 +---- code/modules/mob/mob_movement.dm | 42 ++++++++++++++++++------------- config/config.txt | 3 --- 4 files changed, 26 insertions(+), 28 deletions(-) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index c8670e39a3d..947e157b68d 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -37,7 +37,6 @@ var/allow_Metadata = 0 // Metadata is supported. var/popup_admin_pm = 0 //adminPMs to non-admins show in a pop-up 'reply' window when set to 1. var/fps = 10 - var/Tickcomp = 0 var/allow_holidays = 0 //toggles whether holiday-specific content should be used var/hostedby = null @@ -308,8 +307,6 @@ fps = 10 / ticklag if("fps") fps = text2num(value) - if("tickcomp") - Tickcomp = 1 if("automute_on") automute_on = 1 if("comms_key") diff --git a/code/modules/admin/verbs/fps.dm b/code/modules/admin/verbs/fps.dm index b243d3d2259..7e49860b1c9 100644 --- a/code/modules/admin/verbs/fps.dm +++ b/code/modules/admin/verbs/fps.dm @@ -15,11 +15,7 @@ if(alert(src, "You are setting fps to a high value:\n\t[fps] frames-per-second\n\tconfig.fps = [config.fps]","Warning!","Confirm","ABORT-ABORT-ABORT") != "Confirm") return - switch(alert("Enable Tick Compensation?","Tick Comp is currently: [config.Tickcomp]","Enable","Disable")) - if("Enable") config.Tickcomp = 1 - else config.Tickcomp = 0 - - var/msg = "[key_name(src)] has modified world.fps to [fps] and config.Tickcomp to [config.Tickcomp]" + var/msg = "[key_name(src)] has modified world.fps to [fps]" log_admin(msg, 0) message_admins(msg, 0) feedback_add_details("admin_verb","TICKLAG") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index d65438f65e7..35b7549a45f 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -136,12 +136,6 @@ if(isturf(mob.loc)) - - var/turf/T = mob.loc - move_delay = world.time//set move delay - - move_delay += T.slowdown - if(mob.restrained()) //Why being pulled while cuffed prevents you from moving for(var/mob/M in range(mob, 1)) if(M.pulling == mob) @@ -152,6 +146,13 @@ else M.stop_pulling() + //We are now going to move + moving = 1 + move_delay = 0 + + var/turf/T = mob.loc + move_delay += T.slowdown + switch(mob.m_intent) if("run") if(mob.drowsyness > 0) @@ -159,18 +160,12 @@ move_delay += config.run_speed if("walk") move_delay += config.walk_speed + move_delay += mob.movement_delay() - if(config.Tickcomp) - move_delay -= 1.3 - var/tickcomp = (1 / (world.tick_lag)) * 1.3 - move_delay = move_delay + tickcomp - - //We are now going to move - moving = 1 - //Something with pulling things + //Something with pulling things //This really needs to be redone by someone, NOT ME THOUGH HA HA! if(locate(/obj/item/weapon/grab, mob)) - move_delay = max(move_delay, world.time + 7) + move_delay = max(move_delay, 7) var/list/L = mob.ret_grab() if(istype(L, /list)) if(L.len == 2) @@ -200,6 +195,21 @@ M.animate_movement = 2 return + + var/san_tick_lag = round(world.tick_lag, 0.1) //floating point imprecision means 0.9 != 0.9 + var/rounded = round(move_delay, san_tick_lag) //Round move_delay up to the nearest multiple of tick_lag + if(rounded < move_delay) + rounded += san_tick_lag + move_delay = rounded + + if(move_delay <= 0) + glide_size = 0 + else + glide_size = world.icon_size / move_delay * san_tick_lag //assume icons are square + mob.glide_size = glide_size + + move_delay += (world.time - 0.01) //Floating point imprecision again + if(mob.confused && IsEven(world.time)) step(mob, pick(cardinal)) else @@ -209,8 +219,6 @@ if(mob && .) mob.throwing = 0 - return . - ///Process_Grab() ///Called by client/Move() diff --git a/config/config.txt b/config/config.txt index c40c7cc783f..c9392c7715e 100644 --- a/config/config.txt +++ b/config/config.txt @@ -145,9 +145,6 @@ ALLOW_HOLIDAYS ##Defines the ticklag for the world. 0.9 is the normal one, 0.5 is smoother. TICKLAG 0.9 -## Defines if Tick Compensation is used. It results in a minor slowdown of movement of all mobs, but attempts to result in a level movement speed across all ticks. Recommended if tickrate is lowered. -TICKCOMP 0 - ## Comment this out to disable automuting #AUTOMUTE_ON From b130f4958d98a6f37f96d2c21093dc678deccb1d Mon Sep 17 00:00:00 2001 From: MrPerson Date: Sat, 15 Aug 2015 22:28:42 -0700 Subject: [PATCH 04/51] Simplify the math a bit on gliding Rounding now happens after calculations instead of before. The delay is also unrounded. --- code/modules/mob/mob_movement.dm | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 35b7549a45f..e7eee30eb35 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -195,20 +195,13 @@ M.animate_movement = 2 return - - var/san_tick_lag = round(world.tick_lag, 0.1) //floating point imprecision means 0.9 != 0.9 - var/rounded = round(move_delay, san_tick_lag) //Round move_delay up to the nearest multiple of tick_lag - if(rounded < move_delay) - rounded += san_tick_lag - move_delay = rounded - - if(move_delay <= 0) - glide_size = 0 - else - glide_size = world.icon_size / move_delay * san_tick_lag //assume icons are square + var/ticks = Ceiling(move_delay / world.tick_lag) + if(ticks <= 0) + ticks = 1 + glide_size = world.icon_size / ticks //assume icons are square mob.glide_size = glide_size - move_delay += (world.time - 0.01) //Floating point imprecision again + move_delay += world.time - 0.0001 //Ensure we're on the right tick even if there's rounding errors if(mob.confused && IsEven(world.time)) step(mob, pick(cardinal)) From 51a17eeeac6fbda5022bbfb15b2a11becdc4f726 Mon Sep 17 00:00:00 2001 From: MrPerson Date: Tue, 18 Aug 2015 21:54:53 -0700 Subject: [PATCH 05/51] Per MSO's advice, Ceiling glide_size until BYOND supports floats --- code/modules/mob/mob_movement.dm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index e7eee30eb35..6e2aac8909e 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -198,8 +198,16 @@ var/ticks = Ceiling(move_delay / world.tick_lag) if(ticks <= 0) ticks = 1 - glide_size = world.icon_size / ticks //assume icons are square - mob.glide_size = glide_size + var/target_glide_size = world.icon_size / ticks + + glide_size = target_glide_size + mob.glide_size = target_glide_size + + //byond floor()'s glide_size, we want it to Ceiling(), + //but we don't want it to Ceiling() if they fix it to accept floating point numbers + if(glide_size != target_glide_size) + glide_size = Ceiling(target_glide_size) + mob.glide_size = glide_size move_delay += world.time - 0.0001 //Ensure we're on the right tick even if there's rounding errors From d27a736f7e72506c34b36dc6fcf8b3acb2d4cc57 Mon Sep 17 00:00:00 2001 From: CorruptComputer Date: Fri, 21 Aug 2015 16:57:27 -0500 Subject: [PATCH 06/51] Fixes #11301 --- .../{mapmerge => }/dmm2tgm/Source/dmm2tgm.py | 0 tools/{mapmerge => }/dmm2tgm/_hashlib.pyd | Bin tools/{mapmerge => }/dmm2tgm/bz2.pyd | Bin tools/{mapmerge => }/dmm2tgm/dmm2tgm.exe | Bin tools/{mapmerge => }/dmm2tgm/library.zip | Bin tools/{mapmerge => }/dmm2tgm/python27.dll | Bin tools/{mapmerge => }/dmm2tgm/select.pyd | Bin tools/{mapmerge => }/dmm2tgm/unicodedata.pyd | Bin tools/{mapmerge => }/dmm2tgm/w9xpopen.exe | Bin tools/mapmerge/MapMerge.jar | Bin 20893 -> 20574 bytes tools/mapmerge/Source/bin/MapMerge.class | Bin 4059 -> 3519 bytes tools/mapmerge/Source/src/MapMerge.java | 5 ++++- 12 files changed, 4 insertions(+), 1 deletion(-) rename tools/{mapmerge => }/dmm2tgm/Source/dmm2tgm.py (100%) rename tools/{mapmerge => }/dmm2tgm/_hashlib.pyd (100%) rename tools/{mapmerge => }/dmm2tgm/bz2.pyd (100%) rename tools/{mapmerge => }/dmm2tgm/dmm2tgm.exe (100%) rename tools/{mapmerge => }/dmm2tgm/library.zip (100%) rename tools/{mapmerge => }/dmm2tgm/python27.dll (100%) rename tools/{mapmerge => }/dmm2tgm/select.pyd (100%) rename tools/{mapmerge => }/dmm2tgm/unicodedata.pyd (100%) rename tools/{mapmerge => }/dmm2tgm/w9xpopen.exe (100%) diff --git a/tools/mapmerge/dmm2tgm/Source/dmm2tgm.py b/tools/dmm2tgm/Source/dmm2tgm.py similarity index 100% rename from tools/mapmerge/dmm2tgm/Source/dmm2tgm.py rename to tools/dmm2tgm/Source/dmm2tgm.py diff --git a/tools/mapmerge/dmm2tgm/_hashlib.pyd b/tools/dmm2tgm/_hashlib.pyd similarity index 100% rename from tools/mapmerge/dmm2tgm/_hashlib.pyd rename to tools/dmm2tgm/_hashlib.pyd diff --git a/tools/mapmerge/dmm2tgm/bz2.pyd b/tools/dmm2tgm/bz2.pyd similarity index 100% rename from tools/mapmerge/dmm2tgm/bz2.pyd rename to tools/dmm2tgm/bz2.pyd diff --git a/tools/mapmerge/dmm2tgm/dmm2tgm.exe b/tools/dmm2tgm/dmm2tgm.exe similarity index 100% rename from tools/mapmerge/dmm2tgm/dmm2tgm.exe rename to tools/dmm2tgm/dmm2tgm.exe diff --git a/tools/mapmerge/dmm2tgm/library.zip b/tools/dmm2tgm/library.zip similarity index 100% rename from tools/mapmerge/dmm2tgm/library.zip rename to tools/dmm2tgm/library.zip diff --git a/tools/mapmerge/dmm2tgm/python27.dll b/tools/dmm2tgm/python27.dll similarity index 100% rename from tools/mapmerge/dmm2tgm/python27.dll rename to tools/dmm2tgm/python27.dll diff --git a/tools/mapmerge/dmm2tgm/select.pyd b/tools/dmm2tgm/select.pyd similarity index 100% rename from tools/mapmerge/dmm2tgm/select.pyd rename to tools/dmm2tgm/select.pyd diff --git a/tools/mapmerge/dmm2tgm/unicodedata.pyd b/tools/dmm2tgm/unicodedata.pyd similarity index 100% rename from tools/mapmerge/dmm2tgm/unicodedata.pyd rename to tools/dmm2tgm/unicodedata.pyd diff --git a/tools/mapmerge/dmm2tgm/w9xpopen.exe b/tools/dmm2tgm/w9xpopen.exe similarity index 100% rename from tools/mapmerge/dmm2tgm/w9xpopen.exe rename to tools/dmm2tgm/w9xpopen.exe diff --git a/tools/mapmerge/MapMerge.jar b/tools/mapmerge/MapMerge.jar index c8e4349ba4256824d9c5a6f9cb1ba1029be6cb56..d0f0ce08028cdbb917fe185b48e331f8433d49c5 100644 GIT binary patch delta 2308 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 U1x@$?2ryQ~7e z0(yRcf-k{XgmFSKqch8$xnIe99DMxdZ@?liS>Sqh&F}U;{aq8790wm{+pdILBDNd; zOq`nj^hIAX6*x?3KBHkx)akUO%^|UN&WS1!2drw(V++f%gmrSRI zHVfP;jqu76y#ak|cSu%$RSHLHEOR%YlqUB|t~5#acu*Xbc@iF##$+9rC-(6;QX8Qf n7@9iP>O^CX+IUhjE2UnoA}y#lN@9r$W=f0{?5OHlcMbU;b{0Ix delta 847 zcmZvZT~8B16o%ikZRvJf6>BgeDnkf@!L*7d#9}lWy&=S)B$x(7m+sJ3+g;dhDK#;@ z@s4OrdSmd$cvBOD3MeQDh~MJZ5Ac_W4LDn>!DzCx=bbt4Ip^8g#hUN6%JS;$0)WH# zHleuWoEr}bJ1(okYA~Vd(O{=(M0hH7G96E7+?4T{uuV%QTdZiZw;Tg}gew@wqz~Is zXR9YZJjFD@m9kXRB2+c)>-eW-n~Z0K17Rc0RFgB^u$ZCen94G7T{AK%mQ*9LxX$-8 z%go00D6?Xm1qQP+W(n258M=(L8R36W?DPvlquo_AN=;+xFlU2VD`x1dCD0leVR2n> zB@$c<$XFm8J7r|_grRCF7CEHqte>+1Bdu#J#!Vh#G0PfEg@VCMCL^ZXZ32cF4GP5d zqF{cDd_$J_L4w3vrpDxplH$073U~p!pLclA(E0p1@6X&E#>1|8G=v@gM_plOwX1fiY!%F2&wEa4R-bWjgoi>!pR2;z-U4$R{S-j>u46v`?uV3u;C#7Ucw$GeiM z$2Ghc%0-RH;)75X)QmJf3gxEL=)p1uAPeADe8LrY1a2ih3#A|-(0l@F9W*I+x>yD( zy|qQ`p`sXMulg1E>x!tM%`4d5TNKx{h9o?0oFF1M8a6xz#6kBO_Con@S|rPkt#Fha N5T8x>BIZi?`U~%)*#iIo diff --git a/tools/mapmerge/Source/src/MapMerge.java b/tools/mapmerge/Source/src/MapMerge.java index a2058480a21..552a406b13d 100644 --- a/tools/mapmerge/Source/src/MapMerge.java +++ b/tools/mapmerge/Source/src/MapMerge.java @@ -88,7 +88,9 @@ public class MapMerge { String to_save = selected_map; String[] passInto = { "-clean", backup_map, edited_map, to_save }; MapPatcher.main(passInto); - try{ + + // Will try to fix when I have time ~CorruptComputer + /*try{ Process process = new ProcessBuilder("dmm2tgm\\dmm2tgm.exe", selected_map).start(); }catch(Exception e1){ System.out.println("You are not on a windows machine, trying the .py"); @@ -99,6 +101,7 @@ public class MapMerge { System.out.println("Downloads can be found here: https://www.python.org/downloads/"); } } + */ } } From d8be2d5ded0206bf1b0266d1a61fd1f0e7163a25 Mon Sep 17 00:00:00 2001 From: Jordie0608 Date: Sat, 22 Aug 2015 17:42:37 +1000 Subject: [PATCH 07/51] removes time limit on tempbans --- code/modules/admin/topic.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index e611c96300d..343d1c7912f 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -443,7 +443,6 @@ mins = minutes - CMinutes mins = input(usr,"How long (in minutes)? (Default: 1440)","Ban time",mins ? mins : 1440) as num|null if(!mins) return - mins = min(525599,mins) minutes = CMinutes + mins duration = GetExp(minutes) reason = input(usr,"Reason?","reason",reason2) as text|null @@ -1065,7 +1064,6 @@ var/mins = input(usr,"How long (in minutes)?","Ban time",1440) as num|null if(!mins) return - if(mins >= 525600) mins = 525599 var/reason = input(usr,"Reason?","reason","Griefer") as text|null if(!reason) return From 53479059eb6b7e3dd6593ec3c3bfaaf39c482f98 Mon Sep 17 00:00:00 2001 From: Jordie0608 Date: Sat, 22 Aug 2015 21:02:05 +1000 Subject: [PATCH 08/51] fixes nonalpha dbnote search --- code/modules/admin/sql_notes.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/admin/sql_notes.dm b/code/modules/admin/sql_notes.dm index 730e4531575..d5f7f767166 100644 --- a/code/modules/admin/sql_notes.dm +++ b/code/modules/admin/sql_notes.dm @@ -147,7 +147,8 @@ var/search output += "
\[Add Note\]
" output += ruler - index = sanitizeSQL(index) + if(!isnum(index)) + index = sanitizeSQL(index) switch(index) if(1) search = "^." From 27b7e3b6f622606b200bce99341ba5218a9978fa Mon Sep 17 00:00:00 2001 From: phil235 Date: Sun, 23 Aug 2015 20:55:41 +0200 Subject: [PATCH 09/51] Beds no longer use this trick in Move() so neither should the mulebot. --- code/game/machinery/bots/mulebot.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index fca41d8291e..8f69d506dc5 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -87,14 +87,12 @@ obj/machinery/bot/mulebot/bot_reset() obj/machinery/bot/mulebot/Move(atom/newloc, direct) . = ..() if(buckled_mob) - buckled_mob.buckled = null if(!buckled_mob.Move(loc, direct)) loc = buckled_mob.loc //we gotta go back last_move = buckled_mob.last_move inertia_dir = last_move buckled_mob.inertia_dir = last_move . = 0 - buckled_mob.buckled = src obj/machinery/bot/mulebot/Process_Spacemove(movement_dir = 0) if(buckled_mob) From 20023f79d76617495ea73e32234977c4450e0ca3 Mon Sep 17 00:00:00 2001 From: phil235 Date: Sun, 23 Aug 2015 21:39:22 +0200 Subject: [PATCH 10/51] Mobs buckled to mulebots now pass through plastic flaps. All ventcrawler and tiny sized mobs also pass through them now. --- code/game/machinery/computer/shuttle.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/computer/shuttle.dm b/code/game/machinery/computer/shuttle.dm index 2ea4b0b285e..460adf2b0d8 100644 --- a/code/game/machinery/computer/shuttle.dm +++ b/code/game/machinery/computer/shuttle.dm @@ -93,7 +93,9 @@ else if(istype(A, /mob/living)) // You Shall Not Pass! var/mob/living/M = A - if(!M.lying && !ismonkey(M) && !isslime(M)) //If your not laying down, or a small creature, no pass. + if(M.buckled && istype(M.buckled, /obj/machinery/bot/mulebot)) // mulebot passenger gets a free pass. + return 1 + if(!M.lying && !M.ventcrawler && M.mob_size != MOB_SIZE_TINY) //If your not laying down, or a ventcrawler or a small creature, no pass. return 0 return ..() From 6c40da4c11b1ed9380d90842906955fccce09c0f Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Mon, 24 Aug 2015 04:46:48 -0300 Subject: [PATCH 11/51] Fixes the message of losing the phylactery on the bind to object spell, now it actually shows up. --- code/datums/spells/lichdom.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/spells/lichdom.dm b/code/datums/spells/lichdom.dm index a6ace565803..ee2189c36f4 100644 --- a/code/datums/spells/lichdom.dm +++ b/code/datums/spells/lichdom.dm @@ -38,7 +38,7 @@ charge_counter = charge_max return - if(!marked_item.loc) //Wait nevermind + if(!marked_item || qdeleted(marked_item)) //Wait nevermind user << "Your phylactery is gone!" return From 20ba3071edd9cd32f89d8152406498e356412a94 Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Mon, 24 Aug 2015 07:52:54 -0300 Subject: [PATCH 12/51] Fixes the brand intelligence event not triggering the uprising under certain conditions. Adds a new proc for the list helpers, removeNullsFromList() It does what it says. --- code/__HELPERS/lists.dm | 8 +++++++- code/modules/events/brand_intelligence.dm | 6 +----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/code/__HELPERS/lists.dm b/code/__HELPERS/lists.dm index 2ec7b4c407f..66ae50cf852 100644 --- a/code/__HELPERS/lists.dm +++ b/code/__HELPERS/lists.dm @@ -342,4 +342,10 @@ for(var/datum/D in L) if(D.vars.Find(varname)) if(D.vars[varname] == value) - return D \ No newline at end of file + return D + +//remove all nulls from a list +/proc/removeNullsFromList(list/L) + while(L.Remove(null)) + continue + return L \ No newline at end of file diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index 9a55d77b4ad..f373fad4af6 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -7,7 +7,6 @@ /datum/round_event/brand_intelligence announceWhen = 21 endWhen = 1000 //Ends when all vending machines are subverted anyway. - var/list/obj/machinery/vending/vendingMachines = list() var/list/obj/machinery/vending/infectedMachines = list() var/obj/machinery/vending/originMachine @@ -28,11 +27,9 @@ for(var/obj/machinery/vending/V in machines) if(V.z != 1) continue vendingMachines.Add(V) - if(!vendingMachines.len) kill() return - originMachine = pick(vendingMachines) vendingMachines.Remove(originMachine) originMachine.shut_up = 0 @@ -48,7 +45,7 @@ originMachine.visible_message("[originMachine] beeps and seems lifeless.") kill() return - + vendingMachines = removeNullsFromList(vendingMachines) if(!vendingMachines.len) //if every machine is infected for(var/obj/machinery/vending/upriser in infectedMachines) if(prob(70) && !upriser.gc_destroyed) @@ -62,7 +59,6 @@ kill() return - if(IsMultiple(activeFor, 4)) var/obj/machinery/vending/rebel = pick(vendingMachines) vendingMachines.Remove(rebel) From e65ddd0827a3ec8ac08ef9acc679a7e1d7ac2d12 Mon Sep 17 00:00:00 2001 From: Jordie0608 Date: Tue, 25 Aug 2015 05:11:55 +1000 Subject: [PATCH 13/51] note ckey fix --- code/modules/admin/topic.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 3093d959d6d..152c67b95f6 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -505,7 +505,7 @@ feedback_inc("ban_appearance",1) DB_ban_record(BANTYPE_APPEARANCE, M, -1, reason) appearance_fullban(M, "[reason]; By [usr.ckey] on [time2text(world.realtime)]") - add_note(M.ckey, "Appearance banned - [reason]", null, usr, 0) + add_note(M.ckey, "Appearance banned - [reason]", null, usr.ckey, 0) message_admins("[key_name_admin(usr)] appearance banned [key_name_admin(M)]") M << "You have been appearance banned by [usr.client.ckey]." M << "The reason is: [reason]" @@ -921,7 +921,7 @@ msg = job else msg += ", [job]" - add_note(M.ckey, "Banned from [msg] - [reason]", null, usr, 0) + add_note(M.ckey, "Banned from [msg] - [reason]", null, usr.ckey, 0) message_admins("[key_name_admin(usr)] banned [key_name_admin(M)] from [msg] for [mins] minutes") M << "You have been jobbanned by [usr.client.ckey] from: [msg]." M << "The reason is: [reason]" @@ -941,7 +941,7 @@ jobban_fullban(M, job, "[reason]; By [usr.ckey] on [time2text(world.realtime)]") if(!msg) msg = job else msg += ", [job]" - add_note(M.ckey, "Banned from [msg] - [reason]", null, usr, 0) + add_note(M.ckey, "Banned from [msg] - [reason]", null, usr.ckey, 0) message_admins("[key_name_admin(usr)] banned [key_name_admin(M)] from [msg]") M << "You have been jobbanned by [usr.client.ckey] from: [msg]." M << "The reason is: [reason]" From ce8722b86898c412c5fb2af1cf60ec7eefd4b262 Mon Sep 17 00:00:00 2001 From: bgobandit Date: Mon, 24 Aug 2015 21:36:50 -0400 Subject: [PATCH 14/51] Fixes burn kits containing salicyclic acid pills. --- code/game/objects/items/weapons/storage/firstaid.dm | 4 ++-- code/modules/reagents/reagent_containers/pill.dm | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index f1347bcd07e..16b4767ceba 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -45,8 +45,8 @@ new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) - new /obj/item/weapon/reagent_containers/pill/salicyclic(src) - new /obj/item/weapon/reagent_containers/pill/salicyclic(src) + new /obj/item/weapon/reagent_containers/pill/kelotane(src) + new /obj/item/weapon/reagent_containers/pill/kelotane(src) new /obj/item/weapon/reagent_containers/hypospray/medipen(src) new /obj/item/device/healthanalyzer(src) return diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 2a99e768c75..8246b5a7eb7 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -134,6 +134,13 @@ list_reagents = list("sal_acid" = 24) roundstart = 1 +/obj/item/weapon/reagent_containers/pill/kelotane + name = "kelotane pill" + desc = "Catalyzes the healing of burns." + icon_state = "pill5" + list_reagents = list("kelotane" = 20) + roundstart = 1 + /obj/item/weapon/reagent_containers/pill/insulin name = "insulin pill" desc = "Handles hyperglycaemic coma." From 132adf3f0045ff16e314ff1922b7d8f025fa7315 Mon Sep 17 00:00:00 2001 From: bgobandit Date: Mon, 24 Aug 2015 21:45:18 -0400 Subject: [PATCH 15/51] adds silver sulf syringes instead of kelotane pills --- code/game/objects/items/weapons/storage/firstaid.dm | 4 ++-- code/modules/reagents/reagent_containers/pill.dm | 7 ------- code/modules/reagents/reagent_containers/syringes.dm | 5 +++++ 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index 16b4767ceba..1b285543b59 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -45,8 +45,8 @@ new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) - new /obj/item/weapon/reagent_containers/pill/kelotane(src) - new /obj/item/weapon/reagent_containers/pill/kelotane(src) + new /obj/item/weapon/reagent_containers/syringe/silver_sulf(src) + new /obj/item/weapon/reagent_containers/syringe/silver_sulf(src) new /obj/item/weapon/reagent_containers/hypospray/medipen(src) new /obj/item/device/healthanalyzer(src) return diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 8246b5a7eb7..2a99e768c75 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -134,13 +134,6 @@ list_reagents = list("sal_acid" = 24) roundstart = 1 -/obj/item/weapon/reagent_containers/pill/kelotane - name = "kelotane pill" - desc = "Catalyzes the healing of burns." - icon_state = "pill5" - list_reagents = list("kelotane" = 20) - roundstart = 1 - /obj/item/weapon/reagent_containers/pill/insulin name = "insulin pill" desc = "Handles hyperglycaemic coma." diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 46b77827093..d55336243bc 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -216,6 +216,11 @@ desc = "Contains charcoal." list_reagents = list("charcoal" = 15) +/obj/item/weapon/reagent_containers/syringe/silver_sulf + name = "syringe (charcoal)" + desc = "Contains silver sulfadiazine." + list_reagents = list("silver_sulfadiazine" = 15) + /obj/item/weapon/reagent_containers/syringe/antiviral name = "syringe (spaceacillin)" desc = "Contains antiviral agents." From 2c56462e97119d9a192f8124dc6e1d3596520a2a Mon Sep 17 00:00:00 2001 From: bgobandit Date: Mon, 24 Aug 2015 22:45:37 -0400 Subject: [PATCH 16/51] I sure do love me some copypasta --- code/modules/reagents/reagent_containers/syringes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index d55336243bc..6f5e5bb1c7a 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -217,7 +217,7 @@ list_reagents = list("charcoal" = 15) /obj/item/weapon/reagent_containers/syringe/silver_sulf - name = "syringe (charcoal)" + name = "syringe (silver sulfadiazine)" desc = "Contains silver sulfadiazine." list_reagents = list("silver_sulfadiazine" = 15) From 460c2c290c216e1b473897c773e83f5df1925490 Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Tue, 25 Aug 2015 05:31:02 -0300 Subject: [PATCH 17/51] Fixes the admin message not appearing under certain conditions when the rapid dupe experimentator relic is used. All objects from said relic will spawn at the same time now. --- code/modules/research/experimentor.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index e57a3762319..acb72b88205 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -703,7 +703,8 @@ R.realProc = realProc R.revealed = TRUE dupes |= R - R.throw_at(pick(oview(7,get_turf(src))),10,1) + spawn() + R.throw_at(pick(oview(7,get_turf(src))),10,1) counter = 0 spawn(rand(10,100)) for(counter = 1; counter <= dupes.len; counter++) From 9572bd6aa65bd81dd1bf0f97a6d9d72adbd9d4a0 Mon Sep 17 00:00:00 2001 From: Ergovisavi Date: Tue, 25 Aug 2015 03:24:34 -0700 Subject: [PATCH 18/51] -First revision of Swarmer mob, hud, icons, etc -Adds functionality of ignored damage types to simple mobs -Adds functionality of melee damage types to simple mobs --- code/_onclick/hud/hud.dm | 2 + code/game/machinery/doors/windowdoor.dm | 6 +- .../structures/crates_lockers/closets.dm | 1 + .../structures/stool_bed_chair_nest/stools.dm | 6 +- code/game/objects/structures/window.dm | 2 +- .../mob/living/carbon/alien/alien_defense.dm | 14 +- code/modules/mob/living/carbon/carbon.dm | 4 +- code/modules/mob/living/carbon/human/human.dm | 4 +- .../mob/living/carbon/human/human_defense.dm | 2 +- .../mob/living/carbon/monkey/monkey.dm | 14 +- code/modules/mob/living/silicon/silicon.dm | 14 +- .../living/simple_animal/bot_swarm/swarmer.dm | 419 ++++++++++++++++++ .../mob/living/simple_animal/simple_animal.dm | 23 +- code/modules/mob/mob_helpers.dm | 5 + icons/mob/swarmer.dmi | Bin 0 -> 12804 bytes tgstation.dme | 1 + 16 files changed, 498 insertions(+), 19 deletions(-) create mode 100644 code/modules/mob/living/simple_animal/bot_swarm/swarmer.dm create mode 100644 icons/mob/swarmer.dmi diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index fb209d087e7..d947bfa6553 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -197,6 +197,8 @@ var/datum/global_hud/global_hud = new() blob_hud() else if(isdrone(mymob)) drone_hud(ui_style) + else if(isswarmer(mymob)) + swarmer_hud() //Version denotes which style should be displayed. blank or 0 means "next version" diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 82a66b848e1..fbf9c5b26f3 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -235,10 +235,8 @@ return var/mob/living/simple_animal/M = user M.do_attack_animation(src) - if(M.melee_damage_upper <= 0) - return - attack_generic(M, M.melee_damage_upper) - + if(M.melee_damage_upper > 0 && (M.melee_damage_type == BRUTE || M.melee_damage_type == BURN)) + attack_generic(M, M.melee_damage_upper) /obj/machinery/door/window/attack_slime(mob/living/simple_animal/slime/user) user.do_attack_animation(src) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index bb209cb9515..8fa1375a480 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -166,6 +166,7 @@ /obj/structure/closet/ex_act(severity, target) contents_explosion(severity, target) + new /obj/item/stack/sheet/metal(loc) dump_contents() qdel(src) ..() diff --git a/code/game/objects/structures/stool_bed_chair_nest/stools.dm b/code/game/objects/structures/stool_bed_chair_nest/stools.dm index 696ed292eb9..b7862562752 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/stools.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/stools.dm @@ -11,11 +11,13 @@ qdel(src) return if(2.0) - if (prob(50)) + if (prob(70)) + new /obj/item/stack/sheet/metal(loc) qdel(src) return if(3.0) - if (prob(5)) + if (prob(50)) + new /obj/item/stack/sheet/metal(loc) qdel(src) return return diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 6c02cd7e7d0..9dc8d6631e9 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -168,7 +168,7 @@ var/mob/living/simple_animal/M = user M.do_attack_animation(src) - if(M.melee_damage_upper <= 0) + if(M.melee_damage_upper <= 0 || (M.melee_damage_type != BRUTE && M.melee_damage_type != BURN)) return attack_generic(M, M.melee_damage_upper) diff --git a/code/modules/mob/living/carbon/alien/alien_defense.dm b/code/modules/mob/living/carbon/alien/alien_defense.dm index fd3fff64a4b..20577531b27 100644 --- a/code/modules/mob/living/carbon/alien/alien_defense.dm +++ b/code/modules/mob/living/carbon/alien/alien_defense.dm @@ -73,7 +73,19 @@ In all, this is a lot like the monkey code. /N /mob/living/carbon/alien/attack_animal(mob/living/simple_animal/M) if(..()) var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - adjustBruteLoss(damage) + switch(M.melee_damage_type) + if(BRUTE) + adjustBruteLoss(damage) + if(BURN) + adjustFireLoss(damage) + if(TOX) + adjustToxLoss(damage) + if(OXY) + adjustOxyLoss(damage) + if(CLONE) + adjustCloneLoss(damage) + if(STAMINA) + adjustStaminaLoss(damage) updatehealth() /mob/living/carbon/alien/attack_slime(mob/living/simple_animal/slime/M) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 8fdb1c39ccf..7459a055067 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -74,9 +74,9 @@ . = ..() -/mob/living/carbon/electrocute_act(shock_damage, obj/source, siemens_coeff = 1.0) +/mob/living/carbon/electrocute_act(shock_damage, obj/source, siemens_coeff = 1.0, override = 0) shock_damage *= siemens_coeff - if (shock_damage<1) + if(shock_damage<1 && !override) return 0 take_overall_damage(0,shock_damage) //src.burn_skin(shock_damage) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 795c7e68da7..4679a8d33e5 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -270,7 +270,7 @@ spreadFire(AM) //Added a safety check in case you want to shock a human mob directly through electrocute_act. -/mob/living/carbon/human/electrocute_act(shock_damage, obj/source, siemens_coeff = 1.0, safety = 0) +/mob/living/carbon/human/electrocute_act(shock_damage, obj/source, siemens_coeff = 1.0, safety = 0, override = 0) if(!safety) if(gloves) var/obj/item/clothing/gloves/G = gloves @@ -280,7 +280,7 @@ heart_attack = 0 if(stat == CONSCIOUS) src << "You feel your heart beating again!" - return ..(shock_damage,source,siemens_coeff) + return ..(shock_damage,source,siemens_coeff,safety,override) /mob/living/carbon/human/Topic(href, href_list) if(usr.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 7a39b9969fe..98a8c3b6eed 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -389,7 +389,7 @@ emp_act var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") var/obj/item/organ/limb/affecting = get_organ(ran_zone(dam_zone)) var/armor = run_armor_check(affecting, "melee") - apply_damage(damage, BRUTE, affecting, armor) + apply_damage(damage, M.melee_damage_type, affecting, armor) updatehealth() diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 5f721ecb512..bd9a1af5f52 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -155,7 +155,19 @@ /mob/living/carbon/monkey/attack_animal(mob/living/simple_animal/M) if(..()) var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - adjustBruteLoss(damage) + switch(M.melee_damage_type) + if(BRUTE) + adjustBruteLoss(damage) + if(BURN) + adjustFireLoss(damage) + if(TOX) + adjustToxLoss(damage) + if(OXY) + adjustOxyLoss(damage) + if(CLONE) + adjustCloneLoss(damage) + if(STAMINA) + adjustStaminaLoss(damage) updatehealth() diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 83b20b450cb..1a42c2e82f2 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -381,7 +381,19 @@ /mob/living/silicon/attack_animal(mob/living/simple_animal/M) if(..()) var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - adjustBruteLoss(damage) + switch(M.melee_damage_type) + if(BRUTE) + adjustBruteLoss(damage) + if(BURN) + adjustFireLoss(damage) + if(TOX) + adjustToxLoss(damage) + if(OXY) + adjustOxyLoss(damage) + if(CLONE) + adjustCloneLoss(damage) + if(STAMINA) + adjustStaminaLoss(damage) updatehealth() /mob/living/silicon/attack_paw(mob/living/user) diff --git a/code/modules/mob/living/simple_animal/bot_swarm/swarmer.dm b/code/modules/mob/living/simple_animal/bot_swarm/swarmer.dm new file mode 100644 index 00000000000..c59d080c862 --- /dev/null +++ b/code/modules/mob/living/simple_animal/bot_swarm/swarmer.dm @@ -0,0 +1,419 @@ +////Deactivated swarmer shell//// +/obj/item/unactivated_swarmer + name = "unactivated swarmer" + desc = "A currently unactivated swarmer. Swarmers can self activate at any time, it would be wise to immediately dispose of this." + icon = 'icons/mob/swarmer.dmi' + icon_state = "swarmer_unactivated" + +/obj/item/unactivated_swarmer/attack_ghost(mob/user) + var/be_swarmer = alert("Become a swarmer? (Warning, You can no longer be cloned!)",,"Yes","No") + if(be_swarmer == "No" || gc_destroyed) + return + var/mob/living/simple_animal/hostile/swarmer/S = new /mob/living/simple_animal/hostile/swarmer(get_turf(loc)) + S.key = user.key + qdel(src) + +////The Mob itself//// + +/mob/living/simple_animal/hostile/swarmer + name = "swarmer" + icon = 'icons/mob/swarmer.dmi' + desc = "A robot of unknown design, they seek only to consume materials and replicate themselves indefinitely." + speak_emote = list("tones") + health = 30 + maxHealth = 30 + status_flags = CANPUSH + icon_state = "swarmer" + icon_living = "swarmer" + icon_dead = "swarmer_unactivated" + icon_gib = null + wander = 0 + harm_intent_damage = 5 + minbodytemp = 0 + maxbodytemp = 500 + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + unsuitable_atmos_damage = 0 + melee_damage_lower = 15 + melee_damage_upper = 15 + melee_damage_type = STAMINA + ignored_damage_types = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) + environment_smash = 0 + attacktext = "shocks" + attack_sound = null + friendly = "pinches" + speed = 0 + faction = list("swarmer") + AIStatus = AI_OFF + projectiletype = /obj/item/projectile/beam/disabler + pass_flags = PASSTABLE | PASSMOB + has_unlimited_silicon_privilege = 1 + ventcrawler = 2 + ranged = 1 + projectiletype = /obj/item/projectile/beam/disabler + ranged_cooldown_cap = 2 + projectilesound = 'sound/weapons/taser2.ogg' + var/resources = 0 //Resource points, generated by consuming metal/glass + +/mob/living/simple_animal/hostile/swarmer/Login() + ..() + src << "You are a swarmer, a weapon of a long dead civilization. Until further orders from your original masters are received, you must continue to consume and replicate." + src << "Ctrl + Click provides most of your swarmer specific interactions, such as cannibalizing metal or glass, or destroying the environment." + src << "Objectives:" + src << "1. Consume resources and replicate until there are no more resources left." + src << "2. Ensure that the station is fit for invasion at a later date, do not perform actions that would render it dangerous or inhospitable." + src << "3. Biological resources will be harvested at a later date, do not harm them." + +/mob/living/simple_animal/hostile/swarmer/New() + ..() + verbs -= /mob/living/verb/pulled + +/mob/living/simple_animal/hostile/swarmer/Stat() + ..() + if(statpanel("Status")) + stat("Resources",resources) + +/mob/living/simple_animal/hostile/swarmer/death(gibbed) + ..(gibbed) + new /obj/effect/decal/cleanable/robot_debris(src.loc) + ghostize() + qdel(src) + +/mob/living/simple_animal/hostile/swarmer/emp_act() + if(health > 1) + health = 1 + ..() + health = 0 + +/mob/living/simple_animal/hostile/swarmer/CtrlClickOn(atom/A) + face_atom(A) + if(!isturf(loc)) + return + if(next_move > world.time) + return + if(!A.Adjacent(src)) + return + if(isliving(A)) + DisperseTarget(A) + return + if(istype(A, /obj/item)) + Integrate(A) + return + if(istype(A, /turf/simulated/floor))//Stops you from disintegrating mobs to death or other assorted nonsense, as turf ex_act calls it on its contents + return + DisIntegrate(A) + return + +/mob/living/simple_animal/hostile/swarmer/proc/Fabricate(var/atom/fabrication_object,var/fabrication_cost = 0) + if(!isturf(loc)) + src << "This is not a suitable location for fabrication. We need more space." + if(resources >= fabrication_cost) + resources -= fabrication_cost + else + src << "You do not have the necessary resources to fabricate this object" + return 0 + new fabrication_object(loc) + return 1 + +/mob/living/simple_animal/hostile/swarmer/proc/Integrate(var/obj/item/target) + if(resources >= 100) + src << "We cannot hold more materials!" + return + if(istype(target, /obj/item/weapon/gun)) + src << "This object has been adjusted to resist disintegration"//Stops swarmers from devouring the entire armory in seconds + return + if((target.materials[MAT_METAL]) || (target.materials[MAT_GLASS])) + if(istype(target, /obj/item/stack)) + if(istype(target, /obj/item/stack/cable_coil))//Wiring is just too plentiful + src << "This object does not contain enough materials to work with." + return + var/obj/item/stack/S = target + resources++ + S.amount-- + if(S.amount > 0) + return + resources++ + do_attack_animation(target) + qdel(target) + else + src << "This object does not contain enough materials to work with." + return + +/mob/living/simple_animal/hostile/swarmer/proc/DisIntegrate(var/atom/movable/target) + if(istype(target, /turf/simulated/wall) || istype(target, /obj/structure/window)) + if(locate(/turf/space) in range(1, target)) + src << "Destroying this object has the potential to cause a hull breach. Aborting." + return + if(istype(target, /obj/structure/reagent_dispensers/fueltank)) + src << "Destroying this object would cause a chain reaction. Aborting." + return + if(istype(target, /obj/machinery/portable_atmospherics/canister)) + src << "An inhospitable area may be created as a result of destroying this object. Aborting." + return + if(istype(target, /obj/structure/cable) || istype(target, /obj/machinery/power/apc) || istype(target, /obj/machinery/power/smes)) + src << "Disrupting the power grid would bring no benefit to us. Aborting." + return + if(istype(target, /obj/machinery/power/emitter))//Stop trying to release the singularity you fuck + src << "This object is too risky to destroy. Aborting." + return + new /obj/effect/effect/sparks(get_turf(target)) + do_attack_animation(target) + changeNext_move(CLICK_CD_MELEE) + target.ex_act(3) + return + +/mob/living/simple_animal/hostile/swarmer/proc/DisperseTarget(var/mob/living/target) + if(target != src) + src << "Attempting to remove this being from our presence." + if(do_mob(src, target, 30)) + var/cycle + for(cycle=0,cycle<100,cycle++) + var/random_location = locate(rand(37,202),rand(75,192),ZLEVEL_STATION)//Drunk dial a turf in the general ballpark of the station + if(istype(random_location, /turf/simulated/floor)) + var/turf/simulated/floor/F = random_location + if(F.air) + var/datum/gas_mixture/A = F.air + if(A.oxygen >= 16 && !A.toxins && A.carbon_dioxide < 10 && !A.trace_gases.len)//Can most things breathe in this location? + if((A.temperature > 270) && (A.temperature < 360))//Not too hot, not too cold + var/pressure = A.return_pressure() + if((pressure > 20) && (pressure < 550))//Account for crushing pressure or vaccuums + if(ishuman(target))//If we're getting rid of a human, slap some zipties on them to keep them away from us a little longer + var/obj/item/weapon/restraints/handcuffs/cable/zipties/Z = new /obj/item/weapon/restraints/handcuffs/cable/zipties(src) + var/mob/living/carbon/human/H = target + Z.apply_cuffs(H, src) + do_teleport(target, F, 0) + playsound(src,'sound/effects/sparks4.ogg',50,1) + break + return + +/obj/effect/swarmer //Default destroyable object for swarmer constructions + name = "swarmer construction" + desc = "Debug swarmer item, this shouldn't be here. Yell at a coder." + gender = NEUTER + icon = 'icons/mob/swarmer.dmi' + icon_state = "ui_light" + luminosity = 1 + var/health = 30 + +/obj/effect/swarmer/proc/TakeDamage(damage) + health -= damage + if(health <= 0) + qdel(src) + +/obj/effect/swarmer/bullet_act(obj/item/projectile/Proj) + if(Proj.damage) + if((Proj.damage_type == BRUTE || Proj.damage_type == BURN)) + TakeDamage(Proj.damage) + ..() + +/obj/effect/swarmer/attackby(obj/item/weapon/I, mob/living/user, params) + if(istype(I, /obj/item/weapon)) + user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation(src) + TakeDamage(I.force) + return + +/obj/effect/swarmer/ex_act() + qdel(src) + return + +/obj/effect/swarmer/blob_act() + qdel(src) + return + +/obj/effect/swarmer/attack_animal(mob/living/user) + if(isanimal(user)) + var/mob/living/simple_animal/S = user + S.do_attack_animation(src) + user.changeNext_move(CLICK_CD_MELEE) + if(S.melee_damage_type == BRUTE || S.melee_damage_type == BURN) + TakeDamage(rand(S.melee_damage_lower, S.melee_damage_upper)) + return + +/mob/living/simple_animal/hostile/swarmer/proc/CreateTrap() + set name = "Create trap" + set category = "Swarmer" + set desc = "Creates a simple trap that will non-lethally electrocute anything that steps on it. Costs 5 resources" + if(/obj/effect/swarmer/trap in loc) + src << "There is already a trap here. Aborting." + return + Fabricate(/obj/effect/swarmer/trap, 5) + return + +/obj/effect/swarmer/trap + name = "swarmer trap" + desc = "A quickly assembled electric trap. Will not retain its form if damaged enough." + icon_state = "trap" + luminosity = 1 + health = 10 + +/obj/effect/swarmer/trap/Crossed(var/atom/movable/AM) + if(isliving(AM)) + var/mob/living/L = AM + if(!istype(L, /mob/living/simple_animal/hostile/swarmer)) + L.electrocute_act(0, src, 1, 1) + qdel(src) + ..() + +/mob/living/simple_animal/hostile/swarmer/proc/CreateBarricade() + set name = "Create barricade" + set category = "Swarmer" + set desc = "Creates a barricade that will stop anything but swarmers and disabler beams from passing through." + if(/obj/effect/swarmer/blockade in loc) + src << "There is already a blockade here. Aborting." + return + Fabricate(/obj/effect/swarmer/blockade, 5) + return + +/obj/effect/swarmer/blockade + name = "swarmer blockade" + desc = "A quickly assembled energy blockade. Will not retain its form if damaged enough, but disabler beams and swarmers pass right through." + icon_state = "barricade" + luminosity = 1 + health = 50 + density = 1 + anchored = 1 + +/obj/effect/swarmer/blockade/CanPass(atom/movable/O) + if(istype(O, /mob/living/simple_animal/hostile/swarmer)) + return 1 + if(istype(O, /obj/item/projectile/beam/disabler)) + return 1 + ..() + +/mob/living/simple_animal/hostile/swarmer/proc/CreateSwarmer() + set name = "Replicate" + set category = "Swarmer" + set desc = "Creates a shell for a new swarmer. Swarmers will self activate." + src << "We are attempting to replicate ourselves. We will need to stand still until the process is complete." + if(resources < 50) + src << "We do not have the resources for this!" + return + if(!isturf(loc)) + src << "This is not a suitable location for replicating ourselves. We need more room." + return + if(do_mob(src, src, 100)) + if(Fabricate(/obj/item/unactivated_swarmer, 50)) + playsound(loc,'sound/items/poster_being_created.ogg',50, 1, -1) + +/mob/living/simple_animal/hostile/swarmer/proc/RepairSelf() + set name = "Self Repair" + set category = "Swarmer" + set desc = "Attempts to repair damage to our body. You will have to remain motionless until repairs are complete." + if(!isturf(loc)) + return + src << "Attempting to repair damage to our body, stand by..." + if(do_mob(src, src, 100)) + adjustBruteLoss(-100) + src << "We successfully repaired ourselves." + +/mob/living/simple_animal/hostile/swarmer/proc/ToggleLight() + if(!luminosity) + SetLuminosity(3) + else + SetLuminosity(0) + +/mob/living/simple_animal/hostile/swarmer/proc/ContactSwarmers() + var/message = input(src, "Announce to other swarmers", "Swarmer contact") + if(message) + for(var/mob/living/simple_animal/hostile/swarmer/S in world) + if(S != src) + S << "Swarm communication: [message]" + + +////HUD NONSENSE//// +/obj/screen/swarmer + icon = 'icons/mob/swarmer.dmi' + +/obj/screen/swarmer/FabricateTrap + icon_state = "ui_trap" + name = "Create trap" + desc = "Creates a trap that will nonlethally shock any non-swarmer that attempts to cross it. (Costs 5 resources)" + +/obj/screen/swarmer/FabricateTrap/Click() + if(isswarmer(usr)) + var/mob/living/simple_animal/hostile/swarmer/S = usr + S.CreateTrap() + +/obj/screen/swarmer/Barricade + icon_state = "ui_barricade" + name = "Create barricade" + desc = "Creates a destructible barricade that will stop any non swarmer from passing it. Also allows disabler beams to pass through. (Costs 5 resources)" + +/obj/screen/swarmer/Barricade/Click() + if(isswarmer(usr)) + var/mob/living/simple_animal/hostile/swarmer/S = usr + S.CreateBarricade() + +/obj/screen/swarmer/Replicate + icon_state = "ui_replicate" + name = "Replicate" + desc = "Creates a another of our kind. (Costs 50 resources)" + +/obj/screen/swarmer/Replicate/Click() + if(isswarmer(usr)) + var/mob/living/simple_animal/hostile/swarmer/S = usr + S.CreateSwarmer() + +/obj/screen/swarmer/RepairSelf + icon_state = "ui_self_repair" + name = "Repair self" + desc = "Repairs damage to our body." + +/obj/screen/swarmer/RepairSelf/Click() + if(isswarmer(usr)) + var/mob/living/simple_animal/hostile/swarmer/S = usr + S.RepairSelf() + +/obj/screen/swarmer/ToggleLight + icon_state = "ui_light" + name = "Toggle light" + desc = "Toggles our inbuilt light on or off." + +/obj/screen/swarmer/ToggleLight/Click() + if(isswarmer(usr)) + var/mob/living/simple_animal/hostile/swarmer/S = usr + S.ToggleLight() + +/obj/screen/swarmer/ContactSwarmers + icon_state = "ui_contact_swarmers" + name = "Contact swarmers" + desc = "Sends a message to all other swarmers, should they exist." + +/obj/screen/swarmer/ContactSwarmers/Click() + if(isswarmer(usr)) + var/mob/living/simple_animal/hostile/swarmer/S = usr + S.ContactSwarmers() + +/datum/hud/proc/swarmer_hud(ui_style = 'icons/mob/screen_midnight.dmi') + adding = list() + + var/obj/screen/using + + using = new /obj/screen/swarmer/FabricateTrap() + using.screen_loc = ui_rhand + adding += using + + using = new /obj/screen/swarmer/Barricade() + using.screen_loc = ui_lhand + adding += using + + using = new /obj/screen/swarmer/Replicate() + using.screen_loc = ui_zonesel + adding += using + + using = new /obj/screen/swarmer/RepairSelf() + using.screen_loc = ui_storage1 + adding += using + + using = new /obj/screen/swarmer/ToggleLight() + using.screen_loc = ui_back + adding += using + + using = new /obj/screen/swarmer/ContactSwarmers() + using.screen_loc = ui_inventory + adding += using + + mymob.client.screen = list() + mymob.client.screen += mymob.client.void + mymob.client.screen += adding + diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 6a9927b9fc3..7c03a9fa427 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -41,6 +41,8 @@ //LETTING SIMPLE ANIMALS ATTACK? WHAT COULD GO WRONG. Defaults to zero so Ian can still be cuddly var/melee_damage_lower = 0 var/melee_damage_upper = 0 + var/melee_damage_type = BRUTE //Damage type of a simple mob's melee attack, should it do damage. + var/list/ignored_damage_types = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) //Set 0 to receive that damage type, 1 to ignore var/attacktext = "attacks" var/attack_sound = null var/friendly = "nuzzles" //If the mob does no damage with it's attack @@ -252,7 +254,7 @@ /mob/living/simple_animal/attack_animal(mob/living/simple_animal/M) if(..()) var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) - attack_threshold_check(damage) + attack_threshold_check(damage,M.melee_damage_type) return 1 /mob/living/simple_animal/bullet_act(obj/item/projectile/Proj) @@ -262,8 +264,21 @@ Proj.on_hit(src) return 0 +/mob/living/simple_animal/adjustBruteLoss(amount) + if(!ignored_damage_types[BRUTE]) + ..() + /mob/living/simple_animal/adjustFireLoss(amount) - adjustBruteLoss(amount) + if(!ignored_damage_types[BURN]) + adjustBruteLoss(amount) + +/mob/living/simple_animal/adjustToxLoss(amount) + if(!ignored_damage_types[TOX]) + ..(amount) + +/mob/living/simple_animal/adjustCloneLoss(amount) + if(!ignored_damage_types[CLONE]) + ..(amount) /mob/living/simple_animal/adjustStaminaLoss(amount) return @@ -333,8 +348,8 @@ attack_threshold_check(damage) return 1 -/mob/living/simple_animal/proc/attack_threshold_check(damage) - if(damage <= force_threshold) +/mob/living/simple_animal/proc/attack_threshold_check(damage, damagetype = BRUTE) + if(damage <= force_threshold || ignored_damage_types[damagetype]) visible_message("[src] looks unharmed.") else adjustBruteLoss(damage) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 857b7f35181..c53fa9b1d3a 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -125,6 +125,11 @@ return 1 return 0 +/proc/isswarmer(A) + if(istype(A, /mob/living/simple_animal/hostile/swarmer)) + return 1 + return 0 + /proc/islimb(A) if(istype(A, /obj/item/organ/limb)) return 1 diff --git a/icons/mob/swarmer.dmi b/icons/mob/swarmer.dmi new file mode 100644 index 0000000000000000000000000000000000000000..96a9f9ae09e1870344142cbb3439434468f5082e GIT binary patch literal 12804 zcmaL8by!qw^ftPO8hS{T21x-yx|yLnRU{+?1ZkvuMnn(=X%z*A5D){9kZ$SDk#1q6 z2asmY=KY=TT<5yZ_nm+C>^-xeUeA5sYprKujSaP^$eGCj0HD&*RyPFz2zU!DkdlDc zO_ge6@MAmVp1Gg;V_yd!7jHioFHZmn%7{H6O?ow zY0{}Hyh{X?|XBbm8*e9 z*tY|(m#=ge9v!~E$y)j;O^R2K2sZHHxt$uVVwlBU)A;MV3v={=qIr76XJ;PQ-til`qm@8k^Uo!6*&>l{%4W4h zl-6HwR8%)`ieS~hz+M<92pjEvtdgy~kqW&h$l*UxI_sRc-7q8C*X$g)HFAdu z6NPyW*0<}BGs+LvvKn`^=C6fE+_(PQD1Q{Ormz+^e=@L~g)Yg@CuU`3t%+4Ek!Wsd zS!AmwTv+IOv=W*LdE+O^9#=05^zEb!^kxr7TO3-Mve|GFHw z0n{IvNSDEa$5sY~Z=oftq1Km^oah-s$BxSpRzL>uT1nBxaj>h*a1a42{F;ffoDoMJ zi~#UyWUIhof1xt0q!-Sz5(-HN>r8AQL4<~W$H^oQynC_joisz|#O57RL>|#b3&^1Qy7+^Kgw%xm?E~ogC{8AgFKt>V&PFq@Y79R4 z7$c(rS*uslDU>ovHNZ89AVrg0&PE>+|M%CCD9As*47 zlGPNPYXrAIf!dcAM9m{et_mSSBGLsv8fx>i<-choKHDf5@wcjkcSC}#0UH(+24|F( zMV%skGM7Hqe!uz1EWdGdbyZ!S`196opE~KL|4HcWd7-luRuqO9v*GR4w;RFqs)Qhzd;T@4u+RfYy)+=Yc-0WB=0cF~a7~1z3 zaDDLZiAFeJWkDGzVaa}nYp{vNSvF!;(Ns9BqO8S4G&kT0_&RemXa1A_hFRUI43mZ- zoHmVo0GsP54Aqd^2@lM5_3&%RUN9a@zvUy9JkYaI>e+i#d*1MNC+*_#crako=0^Bw zANZ`LuW96Hs_VS!zpmd6zTi6yVOEB5-X&?~LbB+4)w}X#reSg*E z2oDV5$qd9Ct)lg)jgJ(;&akqkYw&G}3I#)CWo5+)d⩽rRN}#}3why&bjd`-5=w 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 literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index 383abb503be..bee9ba9f7a1 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1229,6 +1229,7 @@ #include "code\modules\mob\living\simple_animal\parrot.dm" #include "code\modules\mob\living\simple_animal\shade.dm" #include "code\modules\mob\living\simple_animal\simple_animal.dm" +#include "code\modules\mob\living\simple_animal\bot_swarm\swarmer.dm" #include "code\modules\mob\living\simple_animal\friendly\butterfly.dm" #include "code\modules\mob\living\simple_animal\friendly\cat.dm" #include "code\modules\mob\living\simple_animal\friendly\crab.dm" From 6ab24432557827994a7b59151f752ce758d32ab7 Mon Sep 17 00:00:00 2001 From: bgobandit Date: Tue, 25 Aug 2015 13:46:05 -0400 Subject: [PATCH 19/51] Adds oxandrolone, a new burn medication designed to work upon ingestion. Adds oxandrolone to burn kits. Adds changelog. --- .../objects/items/weapons/storage/firstaid.dm | 4 +-- .../Chemistry-Reagents/Medicine-Reagents.dm | 25 ++++++++++++++++++- .../reagents/Chemistry-Recipes/Medicine.dm | 6 +++++ .../reagents/reagent_containers/pill.dm | 6 +++++ .../reagents/reagent_containers/syringes.dm | 5 ---- .../bgobandit - salicyclicassblastusa.yml | 7 ++++++ 6 files changed, 45 insertions(+), 8 deletions(-) create mode 100644 html/changelogs/bgobandit - salicyclicassblastusa.yml diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index 1b285543b59..65e2b67e0b3 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -45,8 +45,8 @@ new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) - new /obj/item/weapon/reagent_containers/syringe/silver_sulf(src) - new /obj/item/weapon/reagent_containers/syringe/silver_sulf(src) + new /obj/item/weapon/reagent_containers/pill/oxandrolone(src) + new /obj/item/weapon/reagent_containers/pill/oxandrolone(src) new /obj/item/weapon/reagent_containers/hypospray/medipen(src) new /obj/item/device/healthanalyzer(src) return diff --git a/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm index 80aea6a6168..39496a45272 100644 --- a/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm @@ -173,7 +173,7 @@ if(method == INGEST) M.adjustToxLoss(0.5*volume) if(show_message) - M << "You probably shouldn't have eaten that. Maybe you should of splashed it on, or applied a patch?" + M << "You probably shouldn't have eaten that. Maybe you should have splashed it on, or applied a patch?" ..() return @@ -182,6 +182,29 @@ ..() return +/datum/reagent/medicine/oxandrolone + name = "Oxandrolone" + id = "oxandrolone" + description = "Stimulates healing of severe burns. If you have more than 50 burn damage, it heals 2 units; otherwise, 0.5. If overdosed it will exacerbate existing burns, causing burn and brute damage." + reagent_state = LIQUID + color = "#f7ffa5" + metabolization_rate = 0.5 * REAGENTS_METABOLISM + overdose_threshold = 25 + +/datum/reagent/medicine/oxandrolone/on_mob_life(mob/living/M) + if(M.getFireLoss() > 50) + M.adjustFireLoss(-2*REM) + else + M.adjustFireLoss(-0.5*REM) + ..() + return + +/datum/reagent/medicine/oxandrolone/overdose_process(mob/living/M) + M.adjustFireLoss(2.5*REM) // it's going to be healing either 2 or 0.5 + M.adjustBruteLoss(0.5*REM) + ..() + return + /datum/reagent/medicine/styptic_powder name = "Styptic Powder" id = "styptic_powder" diff --git a/code/modules/reagents/Chemistry-Recipes/Medicine.dm b/code/modules/reagents/Chemistry-Recipes/Medicine.dm index 357eac96a5e..72e00ded6a1 100644 --- a/code/modules/reagents/Chemistry-Recipes/Medicine.dm +++ b/code/modules/reagents/Chemistry-Recipes/Medicine.dm @@ -102,6 +102,12 @@ required_reagents = list("sodium" = 1, "phenol" = 1, "carbon" = 1, "oxygen" = 1, "sacid" = 1) result_amount = 5 +/datum/chemical_reaction/oxandrolone + name = "Oxandrolone" + id = "oxandrolone" + result = "oxandrolone" + required_reagents = list("carbon" = 3, "phenol" = 1, "hydrogen" = 1, "oxygen" = 1) + result_amount = 6 /datum/chemical_reaction/salbutamol name = "Salbutamol" diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 2a99e768c75..94ece6ee2c0 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -133,6 +133,12 @@ icon_state = "pill5" list_reagents = list("sal_acid" = 24) roundstart = 1 +/obj/item/weapon/reagent_containers/pill/oxandrolone + name = "oxandrolone pill" + desc = "Used to stimulate burn healing." + icon_state = "pill5" + list_reagents = list("oxandrolone" = 24) + roundstart = 1 /obj/item/weapon/reagent_containers/pill/insulin name = "insulin pill" diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 6f5e5bb1c7a..46b77827093 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -216,11 +216,6 @@ desc = "Contains charcoal." list_reagents = list("charcoal" = 15) -/obj/item/weapon/reagent_containers/syringe/silver_sulf - name = "syringe (silver sulfadiazine)" - desc = "Contains silver sulfadiazine." - list_reagents = list("silver_sulfadiazine" = 15) - /obj/item/weapon/reagent_containers/syringe/antiviral name = "syringe (spaceacillin)" desc = "Contains antiviral agents." diff --git a/html/changelogs/bgobandit - salicyclicassblastusa.yml b/html/changelogs/bgobandit - salicyclicassblastusa.yml new file mode 100644 index 00000000000..8f54843614a --- /dev/null +++ b/html/changelogs/bgobandit - salicyclicassblastusa.yml @@ -0,0 +1,7 @@ +author: bgobandit + +delete-after: True + +changes: + - bugfix: "Overheard at CentComm: 'This burn kit said salicyclic acid would heal my burns! WHO MADE THIS SHIT?' A muffled honking is heard in the background. (Burn first-aid kits now contain an appropriate burn pill.)" + - rscadd: "Oxandrolone, a new burn healing medication, has been added to burn first-aid kits and to chemistry. Ingesting 25 units or more causes burn and brute damage." \ No newline at end of file From 3749dcacb328a4c749e54fa529da3b4b065ff241 Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Wed, 26 Aug 2015 06:47:27 -0300 Subject: [PATCH 20/51] Creates type paths for all types of floors in floor.dmi, first step for the floor organization. --- .../turfs/simulated/floor/plasteel_floor.dm | 336 +++++++++++++++++- 1 file changed, 324 insertions(+), 12 deletions(-) diff --git a/code/game/turfs/simulated/floor/plasteel_floor.dm b/code/game/turfs/simulated/floor/plasteel_floor.dm index 51b551565c5..555e25b09be 100644 --- a/code/game/turfs/simulated/floor/plasteel_floor.dm +++ b/code/game/turfs/simulated/floor/plasteel_floor.dm @@ -11,8 +11,36 @@ icon_state = icon_regular_floor + /turf/simulated/floor/plasteel/black icon_state = "dark" +/turf/simulated/floor/plasteel/black/side + icon_state = "black" //NOTICE ME SEMPAI: floors.dmi contains two sprites named black, remove the incorrect one +/turf/simulated/floor/plasteel/black/corner + icon_state = "blackcorner" + + +/turf/simulated/floor/plasteel/white + icon_state = "white" +/turf/simulated/floor/plasteel/white/side + icon_state = "whitehall" +/turf/simulated/floor/plasteel/white/corner + icon_state = "whitecorner" + + + +/turf/simulated/floor/plasteel/brown + icon_state = "brown" +/turf/simulated/floor/plasteel/brown/corner + icon_state = "browncorner" + +/turf/simulated/floor/plasteel/darkbrown + icon_state = "darkbrownfull" +/turf/simulated/floor/plasteel/darkbrown/side + icon_state = "darkbrown" +/turf/simulated/floor/plasteel/darkbrown/corner + icon_state = "darkbrowncorners" + /turf/simulated/floor/plasteel/green @@ -22,7 +50,6 @@ /turf/simulated/floor/plasteel/green/corner icon_state = "greencorner" - /turf/simulated/floor/plasteel/darkgreen icon_state = "darkgreenfull" /turf/simulated/floor/plasteel/darkgreen/side @@ -30,11 +57,13 @@ /turf/simulated/floor/plasteel/darkgreen/corner icon_state = "darkgreencorners" +/turf/simulated/floor/plasteel/whitegreen + icon_state = "whitegreenfull" +/turf/simulated/floor/plasteel/whitegreen/side + icon_state = "whitegreen" +/turf/simulated/floor/plasteel/whitegreen/corner + icon_state = "whitegreencorner" -/turf/simulated/floor/plasteel/brown - icon_state = "brown" -/turf/simulated/floor/plasteel/brown/corner - icon_state = "browncorner" /turf/simulated/floor/plasteel/red @@ -44,7 +73,6 @@ /turf/simulated/floor/plasteel/red/corner icon_state = "redcorner" - /turf/simulated/floor/plasteel/darkred icon_state = "darkredfull" /turf/simulated/floor/plasteel/darkred/side @@ -52,6 +80,90 @@ /turf/simulated/floor/plasteel/darkred/corner icon_state = "darkredcorners" +/turf/simulated/floor/plasteel/whitered + icon_state = "whiteredfull" +/turf/simulated/floor/plasteel/whitered/side + icon_state = "whitered" +/turf/simulated/floor/plasteel/whitered/corner + icon_state = "whiteredcorner" + + + +/turf/simulated/floor/plasteel/blue + icon_state = "bluefull" +/turf/simulated/floor/plasteel/blue/side + icon_state = "blue" +/turf/simulated/floor/plasteel/blue/corner + icon_state = "bluecorner" + +/turf/simulated/floor/plasteel/darkblue + icon_state = "darkbluefull" +/turf/simulated/floor/plasteel/darkblue/side + icon_state = "darkblue" +/turf/simulated/floor/plasteel/darkblue/corner + icon_state = "darkbluecorners" + +/turf/simulated/floor/plasteel/whiteblue + icon_state = "whitebluefull" +/turf/simulated/floor/plasteel/whiteblue/side + icon_state = "whiteblue" +/turf/simulated/floor/plasteel/whiteblue/corner + icon_state = "whitebluecorner" + + + +/turf/simulated/floor/plasteel/yellow + icon_state = "yellowfull" +/turf/simulated/floor/plasteel/yellow/side + icon_state = "yellow" +/turf/simulated/floor/plasteel/yellow/corner + icon_state = "yellowcorner" + +/turf/simulated/floor/plasteel/darkyellow + icon_state = "darkyellowfull" +/turf/simulated/floor/plasteel/darkyellow/side + icon_state = "darkyellow" +/turf/simulated/floor/plasteel/darkyellow/corner + icon_state = "darkyellowcorners" + +/turf/simulated/floor/plasteel/whiteyellow + icon_state = "whiteyellowfull" +/turf/simulated/floor/plasteel/whiteyellow/side + icon_state = "whiteyellow" +/turf/simulated/floor/plasteel/whiteyellow/corner + icon_state = "whiteyellowcorner" + + + +/turf/simulated/floor/plasteel/purple + icon_state = "purplefull" +/turf/simulated/floor/plasteel/purple/side + icon_state = "purple" +/turf/simulated/floor/plasteel/purple/corner + icon_state = "purplecorner" + +/turf/simulated/floor/plasteel/darkpurple + icon_state = "darkpurplefull" +/turf/simulated/floor/plasteel/darkpurple/side + icon_state = "darkpurple" +/turf/simulated/floor/plasteel/darkpurple/corner + icon_state = "darkpurplecorners" + +/turf/simulated/floor/plasteel/whitepurple + icon_state = "whitepurplefull" +/turf/simulated/floor/plasteel/whitepurple/side + icon_state = "whitepurple" +/turf/simulated/floor/plasteel/whitepurple/corner + icon_state = "whitepurplecorner" + + +/turf/simulated/floor/plasteel/orange + icon_state = "orangefull" +/turf/simulated/floor/plasteel/orange/side + icon_state = "orange" +/turf/simulated/floor/plasteel/orange/corner + icon_state = "orangecorner" + /turf/simulated/floor/plasteel/neutral icon_state = "neutralfull" @@ -61,12 +173,48 @@ icon_state = "neutralcorner" +/turf/simulated/floor/plasteel/arrival + icon_state = "arrival" +/turf/simulated/floor/plasteel/arrival/corner + icon_state = "arrivalcorner" + + +/turf/simulated/floor/plasteel/escape + icon_state = "escape" +/turf/simulated/floor/plasteel/escape/corner + icon_state = "escapecorner" + + +/turf/simulated/floor/plasteel/caution + icon_state = "caution" +/turf/simulated/floor/plasteel/caution/corner + icon_state = "cautioncorner" + + /turf/simulated/floor/plasteel/warning icon_state = "warning" /turf/simulated/floor/plasteel/warning/corner icon_state = "warningcorner" +/turf/simulated/floor/plasteel/warnplate + icon_state = "warnplate" +/turf/simulated/floor/plasteel/warnplate/corner + icon_state = "warnplatecorner" + + +/turf/simulated/floor/plasteel/warnwhite + icon_state = "warnwhite" +/turf/simulated/floor/plasteel/warnwhite/corner + icon_state = "warnwhitecorner" + + +/turf/simulated/floor/plasteel/whitebot + icon_state = "whitebot" +/turf/simulated/floor/plasteel/whitebot/delivery + icon_state = "whitedelivery" + + /turf/simulated/floor/plasteel/redyellow icon_state = "redyellowfull" /turf/simulated/floor/plasteel/redyellow/side @@ -75,15 +223,45 @@ /turf/simulated/floor/plasteel/redblue icon_state = "redbluefull" -/turf/simulated/floor/plasteel/redblue/side +/turf/simulated/floor/plasteel/redblue/blueside + icon_state = "bluered" +/turf/simulated/floor/plasteel/redblue/redside icon_state = "redblue" +/turf/simulated/floor/plasteel/redgreen + icon_state = "redgreenfull" +/turf/simulated/floor/plasteel/redgreen/side + icon_state = "redgreen" + + +/turf/simulated/floor/plasteel/greenyellow + icon_state = "greenyellowfull" +/turf/simulated/floor/plasteel/greenyellow/side + icon_state = "greenyellow" + + +/turf/simulated/floor/plasteel/greenblue + icon_state = "greenbluefull" +/turf/simulated/floor/plasteel/greenblue/side + icon_state = "greenblue" + + +/turf/simulated/floor/plasteel/blueyellow + icon_state = "blueyellowfull" +/turf/simulated/floor/plasteel/blueyellow/side + icon_state = "blueyellow" + + /turf/simulated/floor/plasteel/darkwarning icon_state = "warndark" /turf/simulated/floor/plasteel/darkwarning/corner icon_state = "warndarkcorners" +/turf/simulated/floor/plasteel/warningline + icon_state = "warningline" +/turf/simulated/floor/plasteel/warningline/corner + icon_state = "warninglinecorners" /turf/simulated/floor/plasteel/yellowsiding icon_state = "yellowsiding" @@ -97,12 +275,86 @@ icon_state = "podhatchcorner" + +/turf/simulated/floor/plasteel/circuit + icon_state = "bcircuit" +/turf/simulated/floor/plasteel/circuit/off + icon_state = "bcircuitoff" + +/turf/simulated/floor/plasteel/circuit/gcircuit + icon_state = "gcircuit" +/turf/simulated/floor/plasteel/circuit/gcircuit/off + icon_state = "gcircuitoff" +/turf/simulated/floor/plasteel/circuit/gcircuit/animated + icon_state = "gcircuitanim" + +/turf/simulated/floor/plasteel/circuit/rcircuit + icon_state = "rcircuit" +/turf/simulated/floor/plasteel/circuit/rcircuit/animated + icon_state = "rcircuitanim" + + + /turf/simulated/floor/plasteel/loadingarea icon_state = "loadingarea" +/turf/simulated/floor/plasteel/loadingarea/dirty + icon_state = "loadingareadirty1" +/turf/simulated/floor/plasteel/loadingarea/dirtydirty + icon_state = "loadingareadirty2" + + +/turf/simulated/floor/plasteel/shuttle + icon_state = "shuttlefloor" +/turf/simulated/floor/plasteel/shuttle/red + name = "Brig floor" + icon_state = "shuttlefloor4" +/turf/simulated/floor/plasteel/shuttle/yellow + icon_state = "shuttlefloor2" +/turf/simulated/floor/plasteel/shuttle/white + icon_state = "shuttlefloor3" +/turf/simulated/floor/plasteel/shuttle/purple + icon_state = "shuttlefloor5" + + +/turf/simulated/floor/plasteel/asteroid + icon_state = "asteroidfloor" +/turf/simulated/floor/plasteel/asteroid/warning + icon_state = "asteroidwarning" + + +/turf/simulated/floor/plasteel/recharge_floor + icon_state = "recharge_floor" +/turf/simulated/floor/plasteel/recharge_floor/asteroid + icon_state = "recharge_floor_asteroid" + + +/turf/simulated/floor/plasteel/chapel + icon_state = "chapel" + +/turf/simulated/floor/plasteel/showroomfloor + icon_state = "showroomfloor" + +/turf/simulated/floor/plasteel/floorgrime + icon_state = "floorgrime" + +/turf/simulated/floor/plasteel/solarpanel + icon_state = "solarpanel" + +/turf/simulated/floor/plasteel/cmo + icon_state = "cmo" + +/turf/simulated/floor/plasteel/barber + icon_state = "barber" + +/turf/simulated/floor/plasteel/hydrofloor + icon_state = "hydrofloor" /turf/simulated/floor/plasteel/delivery icon_state = "delivery" +/turf/simulated/floor/plasteel/bot + icon_state = "bot" + /turf/simulated/floor/plasteel/freezer icon_state = "freezerfloor" @@ -115,10 +367,18 @@ /turf/simulated/floor/plasteel/cafeteria icon_state = "cafeteria" +/turf/simulated/floor/plasteel/vault + icon_state = "vault" + /turf/simulated/floor/plasteel/cult icon_state = "cult" name = "engraved floor" +/turf/simulated/floor/plasteel/goonplaque + icon_state = "plaque" + name = "Commemorative Plaque" + desc = "\"This is a plaque in honour of our comrades on the G4407 Stations. Hopefully TG4407 model can live up to your fame and fortune.\" Scratched in beneath that is a crude image of a meteor and a spaceman. The spaceman is laughing. The meteor is exploding." + /turf/simulated/floor/plasteel/cult/narsie_act() return @@ -127,9 +387,61 @@ nitrogen = 0 temperature = TCMB -/turf/simulated/floor/plasteel/shuttle - icon_state = "shuttlefloor" -/turf/simulated/floor/plasteel/shuttle/red - name = "Brig floor" - icon_state = "shuttlefloor4" \ No newline at end of file + + + + +// +//unused? remove? +// +/turf/simulated/floor/plasteel/stage_bottom + icon_state = "stage_bottom" +/turf/simulated/floor/plasteel/stage_left + icon_state = "stage_left" +/turf/simulated/floor/plasteel/stage_bleft + icon_state = "stage_bleft" + + +/turf/simulated/floor/plasteel/stairs + icon_state = "stairs" +/turf/simulated/floor/plasteel/stairs/left + icon_state = "stairs-l" +/turf/simulated/floor/plasteel/stairs/medium + icon_state = "stairs-m" +/turf/simulated/floor/plasteel/stairs/right + icon_state = "stairs-r" +/turf/simulated/floor/plasteel/stairs/old + icon_state = "stairs-old" + + +/turf/simulated/floor/plasteel/brownold + icon_state = "brownold" +/turf/simulated/floor/plasteel/brownold/corner + icon_state = "browncornerold" + + +/turf/simulated/floor/plasteel/rockvault + icon_state = "rockvault" +/turf/simulated/floor/plasteel/rockvault/alien + icon_state = "alienvault" +/turf/simulated/floor/plasteel/rockvault/sandstone + icon_state = "sandstonevault" + + +/turf/simulated/floor/plasteel/elevatorshaft + icon_state = "elevatorshaft" + +/turf/simulated/floor/plasteel/bluespace + icon_state = "bluespace" + +/turf/simulated/floor/plasteel/sepia + icon_state = "sepia" + + +/turf/simulated/floor/plasteel/sandeffect + icon_state = "sandeffect" +/turf/simulated/floor/plasteel/sandeffect/warning + icon_state = "warningsandeffect" +/turf/simulated/floor/plasteel/sandeffect/warning/corner + icon_state = "warningsandeffectcorners" \ No newline at end of file From 19947d4fa0019c2fcb41a18bbac05b6d42661fcc Mon Sep 17 00:00:00 2001 From: xxalpha Date: Thu, 27 Aug 2015 11:02:12 +0100 Subject: [PATCH 21/51] Added qdel(wires) to a bunch of objects Destroy proc. Return ..() --- code/datums/material_container.dm | 4 ++++ code/datums/wires/wires.dm | 4 ++++ code/game/machinery/alarm.dm | 4 +++- code/game/machinery/autolathe.dm | 7 +++++++ code/game/machinery/bots/mulebot.dm | 8 +++++++- code/game/machinery/doors/airlock.dm | 4 +++- code/game/machinery/syndicatebomb.dm | 4 ++++ code/game/machinery/vending.dm | 2 ++ code/game/objects/items/devices/pizza_bomb.dm | 4 ++++ code/game/objects/items/devices/radio/radio.dm | 4 +++- code/game/objects/items/weapons/explosives.dm | 6 ++++++ code/modules/assembly/assembly.dm | 7 +++++++ code/modules/mining/ores_coins.dm | 5 +++++ code/modules/mob/living/silicon/robot/robot.dm | 4 +++- code/modules/power/apc.dm | 3 ++- .../singularity/particle_accelerator/particle_control.dm | 4 +++- code/modules/research/rdmachines.dm | 5 +++++ 17 files changed, 72 insertions(+), 7 deletions(-) diff --git a/code/datums/material_container.dm b/code/datums/material_container.dm index 6a7708ef46a..2fa223fd1c2 100644 --- a/code/datums/material_container.dm +++ b/code/datums/material_container.dm @@ -39,6 +39,10 @@ if(mat_list[MAT_BANANIUM]) materials[MAT_BANANIUM] = new /datum/material/bananium() +/datum/material_container/Destroy() + owner = null + return ..() + //For inserting an amount of material /datum/material_container/proc/insert_amount(amt, material_type = null) if(amt > 0 && has_space(amt)) diff --git a/code/datums/wires/wires.dm b/code/datums/wires/wires.dm index 38a62f01487..5e7be34941a 100644 --- a/code/datums/wires/wires.dm +++ b/code/datums/wires/wires.dm @@ -46,6 +46,10 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown", var/list/wires = same_wires[holder_type] src.wires = wires // Reference the wires list. +/datum/wires/Destroy() + holder = null + return ..() + /datum/wires/proc/GenerateWires() var/list/colours_to_pick = wireColours.Copy() // Get a copy, not a reference. var/list/indexes_to_pick = list() diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index ca14b8c64ae..01ea9772534 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -151,7 +151,9 @@ /obj/machinery/alarm/Destroy() if(radio_controller) radio_controller.remove_object(src, frequency) - ..() + qdel(wires) + wires = null + return ..() /obj/machinery/alarm/initialize() set_frequency(frequency) diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 73026e5dac1..7a6a84a443e 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -59,6 +59,13 @@ files = new /datum/research/autolathe(src) matching_designs = list() +/obj/machinery/autolathe/Destroy() + qdel(wires) + wires = null + qdel(materials) + materials = null + return ..() + /obj/machinery/autolathe/interact(mob/user) if(!is_operational()) return diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index 68643c28cb6..9e33fc9f4cf 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -28,7 +28,7 @@ var/global/mulebot_count = 0 var/turf/target // this is turf to navigate to (location of beacon) var/loaddir = 0 // this the direction to unload onto/load from var/home_destination = "" // tag of home beacon - req_access = list(access_cargo) + req_access = list(access_cargo) mode = BOT_IDLE @@ -72,6 +72,12 @@ var/global/mulebot_count = 0 suffix = "#[mulebot_count]" name = "\improper Mulebot ([suffix])" +/obj/machinery/bot/mulebot/Destroy() + qdel(wires) + wires = null + load = null + return ..() + obj/machinery/bot/mulebot/bot_reset() ..() reached_target = 0 diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 245b949cb79..78c7eef262b 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -324,10 +324,12 @@ About the new airlock wires panel: update_icon() /obj/machinery/door/airlock/Destroy() + qdel(wires) + wires = null if(id_tag) for(var/obj/machinery/doorButtons/D in world) D.removeMe(src) - ..() + return ..() /obj/machinery/door/airlock/bumpopen(mob/living/user) //Airlocks now zap you when you 'bump' them open when they're electrified. --NeoFite if(!issilicon(usr)) diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index c4df97166da..aae5224f0a6 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -40,6 +40,10 @@ update_icon() ..() +/obj/machinery/syndicatebomb/Destroy() + qdel(wires) + wires = null + return ..() /obj/machinery/syndicatebomb/examine(mob/user) ..() diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index a3787a9b5ab..3325d733c0e 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -89,6 +89,8 @@ /obj/machinery/vending/snack/Destroy() for(var/obj/item/weapon/reagent_containers/food/snacks/S in contents) S.loc = get_turf(src) + qdel(wires) + wires = null return ..() /obj/machinery/vending/RefreshParts() //Better would be to make constructable child diff --git a/code/game/objects/items/devices/pizza_bomb.dm b/code/game/objects/items/devices/pizza_bomb.dm index 942c66e1742..09f6046f96a 100644 --- a/code/game/objects/items/devices/pizza_bomb.dm +++ b/code/game/objects/items/devices/pizza_bomb.dm @@ -99,6 +99,10 @@ ..() wires = new(src) +/obj/item/device/pizza_bomb/Destroy() + qdel(wires) + wires = null + return ..() /obj/item/device/pizza_bomb/proc/disarm() audible_message("\icon[src] \The [src] suddenly stops beeping and seems lifeless.") diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 7f5388adda0..ae179e356e8 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -93,7 +93,9 @@ qdel(wires) wires = null remove_radio_all(src) //Just to be sure - ..() + patch_link = null + keyslot = null + return ..() /obj/item/device/radio/MouseDrop(obj/over_object, src_location, over_location) var/mob/M = usr diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index 6572831cd53..653a40406d4 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -21,6 +21,12 @@ image_overlay = image('icons/obj/assemblies.dmi', "plastic-explosive2") ..() +/obj/item/weapon/c4/Destroy() + qdel(wires) + wires = null + target = null + return ..() + /obj/item/weapon/c4/suicide_act(mob/user) user.visible_message("[user] activates the [src.name] and holds it above \his head! It looks like \he's going out with a bang!") var/message_say = "FOR NO RAISIN!" diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index 3a70880a7ec..497ce09adb5 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -25,6 +25,13 @@ var/const/WIRE_RADIO_RECEIVE = 8 //Allows Pulsed(1) to call Activate() var/const/WIRE_RADIO_PULSE = 16 //Allows Pulse(1) to send a radio message +/obj/item/device/assembly/Destroy() + qdel(connected) + connected = null + qdel(holder) + holder = null + return ..() + /obj/item/device/assembly/proc/holder_movement() //Called when the holder is moved return diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index efaac579681..1b0e74030e8 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -121,6 +121,11 @@ var/attacher = "UNKNOWN" var/datum/wires/explosive/gibtonite/wires +/obj/item/weapon/twohanded/required/gibtonite/Destroy() + qdel(wires) + wires = null + return ..() + /obj/item/weapon/twohanded/required/gibtonite/attackby(obj/item/I, mob/user, params) if(!wires && istype(I, /obj/item/device/assembly/igniter)) user.visible_message("[user] attaches [I] to [src].", "You attach [I] to [src].") diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index f5a452c3ac3..73c816d0902 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -138,7 +138,9 @@ mmi = null if(connected_ai) connected_ai.connected_robots -= src - ..() + qdel(wires) + wires = null + return ..() /mob/living/silicon/robot/proc/pick_module() diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 713651e5c45..93c21b90acd 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -153,11 +153,12 @@ if(occupier) malfvacate(1) qdel(wires) + wires = null if(cell) qdel(cell) if(terminal) disconnect_terminal() - ..() + return ..() /obj/machinery/power/apc/proc/make_terminal() // create a terminal object at the same position as original turf loc diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm index 61fd8dbe424..228dd2789d8 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_control.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm @@ -29,7 +29,9 @@ /obj/machinery/particle_accelerator/control_box/Destroy() if(active) toggle_power() - ..() + qdel(wires) + wires = null + return ..() /obj/machinery/particle_accelerator/control_box/attack_hand(mob/user) if(construction_state >= 3) diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index 7300f924b1a..928180e8375 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -20,6 +20,11 @@ ..() wires = new(src) +/obj/machinery/r_n_d/Destroy() + qdel(wires) + wires = null + return ..() + /obj/machinery/r_n_d/proc/shock(mob/user, prb) if(stat & (BROKEN|NOPOWER)) // unpowered, no shock return 0 From 62fa9a163c3f3b0680942915ff96bbb022aebeec Mon Sep 17 00:00:00 2001 From: Jordie0608 Date: Thu, 27 Aug 2015 20:57:01 +1000 Subject: [PATCH 22/51] interface for watchlist, improvements to memo, varedit, ban interfaces --- SQL/database_changelog.txt | 10 ++ SQL/tgstation_schema.sql | 7 +- SQL/tgstation_schema_prefixed.sql | 9 +- code/modules/admin/admin.dm | 6 +- code/modules/admin/admin_investigate.dm | 4 +- code/modules/admin/admin_memo.dm | 14 +-- code/modules/admin/sql_notes.dm | 5 +- code/modules/admin/topic.dm | 107 ++++++++---------- code/modules/admin/verbs/massmodvar.dm | 2 +- code/modules/admin/verbs/modifyvariables.dm | 8 +- code/modules/admin/watchlist.dm | 118 ++++++++++++++++++++ code/modules/client/client procs.dm | 9 +- tgstation.dme | 1 + 13 files changed, 213 insertions(+), 87 deletions(-) create mode 100644 code/modules/admin/watchlist.dm diff --git a/SQL/database_changelog.txt b/SQL/database_changelog.txt index dfd4b30dad3..a7308fea1b0 100644 --- a/SQL/database_changelog.txt +++ b/SQL/database_changelog.txt @@ -1,3 +1,13 @@ +27 August 2015, by Jordie0608 + +Modified table 'watch', removing 'id' column, making 'ckey' primary and adding the columns 'timestamp', 'adminckey', 'last_editor' and 'edits'. + +ALTER TABLE `feedback`.`watch` DROP COLUMN `id`, ADD COLUMN `timestamp` datetime NOT NULL AFTER `reason`, ADD COLUMN `adminckey` varchar(32) NOT NULL AFTER `timestamp`, ADD COLUMN `last_editor` varchar(32) NULL AFTER `adminckey`, ADD COLUMN `edits` text NULL AFTER `last_editor`, DROP PRIMARY KEY, ADD PRIMARY KEY (`ckey`) + +Remember to add a prefix to the table name if you use them. + +---------------------------------------------------- + 14 August 2015, by Jordie0608 Added new table 'notes' to replace BYOND's .sav note system. diff --git a/SQL/tgstation_schema.sql b/SQL/tgstation_schema.sql index ae8bf1859d6..6b0518bda38 100644 --- a/SQL/tgstation_schema.sql +++ b/SQL/tgstation_schema.sql @@ -314,10 +314,13 @@ DROP TABLE IF EXISTS `watch`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `watch` ( - `id` int(11) NOT NULL AUTO_INCREMENT, `ckey` varchar(32) NOT NULL, `reason` text NOT NULL, - PRIMARY KEY (`id`) + `timestamp` datetime NOT NULL, + `adminckey` varchar(32) NOT NULL, + `last_editor` varchar(32), + `edits` text, + PRIMARY KEY (`ckey`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*!40101 SET character_set_client = @saved_cs_client */; diff --git a/SQL/tgstation_schema_prefixed.sql b/SQL/tgstation_schema_prefixed.sql index b49032a7ee1..a800b11013f 100644 --- a/SQL/tgstation_schema_prefixed.sql +++ b/SQL/tgstation_schema_prefixed.sql @@ -302,17 +302,20 @@ CREATE TABLE `SS13_poll_vote` ( /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `watch` +-- Table structure for table `SS13_watch` -- DROP TABLE IF EXISTS `SS13_watch`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `SS13_watch` ( - `id` int(11) NOT NULL AUTO_INCREMENT, `ckey` varchar(32) NOT NULL, `reason` text NOT NULL, - PRIMARY KEY (`id`) + `timestamp` datetime NOT NULL, + `adminckey` varchar(32) NOT NULL, + `last_editor` varchar(32), + `edits` text, + PRIMARY KEY (`ckey`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*!40101 SET character_set_client = @saved_cs_client */; diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index e40f3490f91..0955e000881 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -48,7 +48,11 @@ var/global/floorIsLava = 0 body += "Jobban | " body += "Identity Ban | " body += "Notes | " - body += "Watchlist Flag " + if(M.client.check_watchlist(M.client.ckey)) + body += "Remove from Watchlist | " + body += "Edit Watchlist reason " + else + body += "Add to Watchlist " if(M.client) body += "| Prison | " diff --git a/code/modules/admin/admin_investigate.dm b/code/modules/admin/admin_investigate.dm index 103d7eac30d..39c3dcf064e 100644 --- a/code/modules/admin/admin_investigate.dm +++ b/code/modules/admin/admin_investigate.dm @@ -22,7 +22,7 @@ F << "[time_stamp()] \ref[src] ([x],[y],[z]) || [src] [message]
" //ADMINVERBS -/client/proc/investigate_show( subject in list("hrefs","notes","ntsl","singulo","wires","telesci", "gravity", "records", "cargo", "supermatter", "atmos", "experimentor", "kudzu") ) +/client/proc/investigate_show( subject in list("hrefs","notes","watchlist","ntsl","singulo","wires","telesci", "gravity", "records", "cargo", "supermatter", "atmos", "experimentor", "kudzu") ) set name = "Investigate" set category = "Admin" if(!holder) return @@ -46,3 +46,5 @@ return if("notes") show_note() + if("watchlist") + watchlist_show() diff --git a/code/modules/admin/admin_memo.dm b/code/modules/admin/admin_memo.dm index 7c40c3aa53a..883c7fcda0c 100644 --- a/code/modules/admin/admin_memo.dm +++ b/code/modules/admin/admin_memo.dm @@ -19,7 +19,7 @@ var/sql_ckey = sanitizeSQL(src.ckey) switch(task) if("Write") - var/DBQuery/query_memocheck = dbcon.NewQuery("SELECT ckey FROM [format_table_name("memo")] WHERE (ckey = '[sql_ckey]')") + var/DBQuery/query_memocheck = dbcon.NewQuery("SELECT ckey FROM [format_table_name("memo")] WHERE ckey = '[sql_ckey]'") if(!query_memocheck.Execute()) var/err = query_memocheck.ErrorMsg() log_game("SQL ERROR obtaining ckey from memo table. Error : \[[err]\]\n") @@ -27,7 +27,7 @@ if(query_memocheck.NextRow()) src << "You already have set a memo." return - var/memotext = input(src,"Write your Memo","Memo") as text|null + var/memotext = input(src,"Write your Memo","Memo") as message if(!memotext) return memotext = sanitizeSQL(memotext) @@ -56,20 +56,20 @@ if(!target_ckey) return var/target_sql_ckey = sanitizeSQL(target_ckey) - var/DBQuery/query_memofind = dbcon.NewQuery("SELECT ckey, memotext FROM [format_table_name("memo")] WHERE (ckey = '[target_sql_ckey]')") + var/DBQuery/query_memofind = dbcon.NewQuery("SELECT memotext FROM [format_table_name("memo")] WHERE ckey = '[target_sql_ckey]'") if(!query_memofind.Execute()) var/err = query_memofind.ErrorMsg() - log_game("SQL ERROR obtaining ckey, memotext from memo table. Error : \[[err]\]\n") + log_game("SQL ERROR obtaining memotext from memo table. Error : \[[err]\]\n") return if(query_memofind.NextRow()) - var/old_memo = query_memofind.item[2] - var/new_memo = input("Input new memo", "New Memo", "[old_memo]", null) as null|text + var/old_memo = query_memofind.item[1] + var/new_memo = input("Input new memo", "New Memo", "[old_memo]", null) as message if(!new_memo) return new_memo = sanitizeSQL(new_memo) var/edit_text = "Edited by [sql_ckey] on [SQLtime()] from
[old_memo]
to
[new_memo]
" edit_text = sanitizeSQL(edit_text) - var/DBQuery/update_query = dbcon.NewQuery("UPDATE [format_table_name("memo")] SET memotext = '[new_memo]', last_editor = '[sql_ckey]', edits = CONCAT(IFNULL(edits,''),'[edit_text]') WHERE (ckey = '[target_sql_ckey]')") + var/DBQuery/update_query = dbcon.NewQuery("UPDATE [format_table_name("memo")] SET memotext = '[new_memo]', last_editor = '[sql_ckey]', edits = CONCAT(IFNULL(edits,''),'[edit_text]') WHERE ckey = '[target_sql_ckey]'") if(!update_query.Execute()) var/err = update_query.ErrorMsg() log_game("SQL ERROR editing memo. Error : \[[err]\]\n") diff --git a/code/modules/admin/sql_notes.dm b/code/modules/admin/sql_notes.dm index 730e4531575..360eac2b357 100644 --- a/code/modules/admin/sql_notes.dm +++ b/code/modules/admin/sql_notes.dm @@ -3,13 +3,14 @@ usr << "Failed to establish database connection." return if(!target_ckey) - var/new_ckey = ckey(input(usr,"Who would you like to add a note for?","Enter a ckey",null) as text|null) + var/new_ckey = ckey(input(usr,"Who would you like to add a note for?","Enter a ckey",null) as text) if(!new_ckey) return + new_ckey = sanitizeSQL(new_ckey) var/DBQuery/query_find_ckey = dbcon.NewQuery("SELECT ckey FROM [format_table_name("player")] WHERE ckey = '[new_ckey]'") if(!query_find_ckey.Execute()) var/err = query_find_ckey.ErrorMsg() - log_game("SQL ERROR obtaining ckey from notes table. Error : \[[err]\]\n") + log_game("SQL ERROR obtaining ckey from player table. Error : \[[err]\]\n") return if(!query_find_ckey.NextRow()) usr << "[new_ckey] has not been seen before, you can only add notes to known players." diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 3093d959d6d..0baffec09b0 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -446,12 +446,12 @@ mins = min(525599,mins) minutes = CMinutes + mins duration = GetExp(minutes) - reason = input(usr,"Reason?","reason",reason2) as text|null + reason = input(usr,"Please State Reason","Reason",reason2) as message if(!reason) return if("No") temp = 0 duration = "Perma" - reason = input(usr,"Reason?","reason",reason2) as text|null + reason = input(usr,"Please State Reason","Reason",reason2) as message if(!reason) return log_admin("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]") @@ -497,7 +497,7 @@ else switch(alert("Appearance ban [M.ckey]?",,"Yes","No", "Cancel")) if("Yes") - var/reason = input(usr,"Reason?","reason","Metafriender") as text|null + var/reason = input(usr,"Please State Reason","Reason") as message if(!reason) return ban_unban_log_save("[key_name(usr)] appearance banned [key_name(M)]. reason: [reason]") @@ -905,7 +905,7 @@ var/mins = input(usr,"How long (in minutes)?","Ban time",1440) as num|null if(!mins) return - var/reason = input(usr,"Reason?","Please State Reason","") as text|null + var/reason = input(usr,"Please State Reason","Reason") as message if(!reason) return @@ -929,7 +929,7 @@ href_list["jobban2"] = 1 // lets it fall through and refresh return 1 if("No") - var/reason = input(usr,"Reason?","Please State Reason","") as text|null + var/reason = input(usr,"Please State Reason","Reason") as message if(reason) var/msg for(var/job in notbannedlist) @@ -1066,7 +1066,7 @@ if(!mins) return if(mins >= 525600) mins = 525599 - var/reason = input(usr,"Reason?","reason","Griefer") as text|null + var/reason = input(usr,"Please State Reason","Reason") as message if(!reason) return AddBan(M.ckey, M.computer_id, reason, usr.ckey, 1, mins) @@ -1086,7 +1086,7 @@ del(M.client) //qdel(M) // See no reason why to delete mob. Important stuff can be lost. And ban can be lifted before round ends. if("No") - var/reason = input(usr,"Reason?","reason","Griefer") as text|null + var/reason = input(usr,"Please State Reason","Reason") as message if(!reason) return switch(alert(usr,"IP ban?",,"Yes","No","Cancel")) @@ -1126,61 +1126,46 @@ unjobbanpanel() //Watchlist - else if(href_list["watchlist"]) - if(!check_rights(R_ADMIN)) return - var/mob/M = locate(href_list["watchlist"]) - if(!dbcon.IsConnected()) - usr << "Failed to establish database connection." + else if(href_list["watchadd"]) + var/target_ckey = locate(href_list["watchadd"]) + usr.client.watchlist_add(target_ckey) + + else if(href_list["watchremove"]) + var/target_ckey = href_list["watchremove"] + usr.client.watchlist_remove(target_ckey) + + else if(href_list["watchedit"]) + var/target_ckey = href_list["watchedit"] + usr.client.watchlist_edit(target_ckey) + + else if(href_list["watchaddbrowse"]) + usr.client.watchlist_add(null, 1) + + else if(href_list["watchremovebrowse"]) + var/target_ckey = href_list["watchremovebrowse"] + usr.client.watchlist_remove(target_ckey, 1) + + else if(href_list["watcheditbrowse"]) + var/target_ckey = href_list["watcheditbrowse"] + usr.client.watchlist_edit(target_ckey, 1) + + else if(href_list["watchsearch"]) + var/target_ckey = href_list["watchsearch"] + usr.client.watchlist_show(target_ckey) + + else if(href_list["watchshow"]) + usr.client.watchlist_show() + + else if(href_list["watcheditlog"]) + var/target_ckey = sanitizeSQL("[href_list["watcheditlog"]]") + var/DBQuery/query_watchedits = dbcon.NewQuery("SELECT edits FROM [format_table_name("watch")] WHERE ckey = '[target_ckey]'") + if(!query_watchedits.Execute()) + var/err = query_watchedits.ErrorMsg() + log_game("SQL ERROR obtaining edits from watch table. Error : \[[err]\]\n") return - if(!ismob(M)) - usr << "This can only be used on instances of type /mob" - return - if(!M.ckey) - usr << "This mob has no ckey" - return - var/sql_ckey = sanitizeSQL(M.ckey) - var/DBQuery/query = dbcon.NewQuery("SELECT ckey FROM [format_table_name("watch")] WHERE (ckey = '[sql_ckey]')") - query.Execute() - if(query.NextRow()) - switch(alert(usr, "[sql_ckey] is already on the watchlist, do you want to:", "Ckey already flagged", "Remove", "Edit reason", "Cancel")) - if("Cancel") - return - if("Remove") - var/DBQuery/query_watchdel = dbcon.NewQuery("DELETE FROM [format_table_name("watch")] WHERE ckey = '[sql_ckey]'") - if(!query_watchdel.Execute()) - var/err = query_watchdel.ErrorMsg() - log_game("SQL ERROR during removing watch entry. Error : \[[err]\]\n") - return - log_admin("[key_name(usr)] has removed [key_name_admin(M)] from the watchlist") - message_admins("[key_name_admin(usr)] has removed [key_name_admin(M)] from the watchlist", 1) - if("Edit reason") - var/DBQuery/query_reason = dbcon.NewQuery("SELECT ckey, reason FROM [format_table_name("watch")] WHERE (ckey = '[sql_ckey]')") - query_reason.Execute() - if(query_reason.NextRow()) - var/watch_reason = query_reason.item[2] - var/new_reason = input("Insert new reason", "New Reason", "[watch_reason]", null) as null|text - new_reason = sanitizeSQL(new_reason) - if(!new_reason) - return - var/DBQuery/update_query = dbcon.NewQuery("UPDATE [format_table_name("watch")] SET reason = '[new_reason]' WHERE (ckey = '[sql_ckey]')") - if(!update_query.Execute()) - var/err = update_query.ErrorMsg() - log_game("SQL ERROR during edit watch entry reason. Error : \[[err]\]\n") - return - log_admin("[key_name(usr)] has edited [sql_ckey]'s reason from [watch_reason] to [new_reason]",1) - message_admins("[key_name_admin(usr)] has edited [sql_ckey]'s reason from [watch_reason] to [new_reason]",1) - else - var/reason = input(usr,"Reason?","reason","Metagaming") as text|null - if(!reason) - return - reason = sanitizeSQL(reason) - var/DBQuery/query_watchadd = dbcon.NewQuery("INSERT INTO [format_table_name("watch")] (ckey, reason) VALUES ('[sql_ckey]', '[reason]')") - if(!query_watchadd.Execute()) - var/err = query_watchadd.ErrorMsg() - log_game("SQL ERROR during adding new watch entry. Error : \[[err]\]\n") - return - log_admin("[key_name(usr)] has added [key_name_admin(M)] to the watchlist - Reason: [reason]") - message_admins("[key_name_admin(usr)] has added [key_name_admin(M)] to the watchlist - Reason: [reason]", 1) + if(query_watchedits.NextRow()) + var/edit_log = query_watchedits.item[1] + usr << browse(edit_log,"window=watchedits") else if(href_list["mute"]) if(!check_rights(R_ADMIN)) return diff --git a/code/modules/admin/verbs/massmodvar.dm b/code/modules/admin/verbs/massmodvar.dm index cf13ea9fe4c..58394d17d93 100644 --- a/code/modules/admin/verbs/massmodvar.dm +++ b/code/modules/admin/verbs/massmodvar.dm @@ -171,7 +171,7 @@ return .(O.vars[variable]) if("text") - var/new_value = input("Enter new text:","Text",O.vars[variable]) as text|null + var/new_value = input("Enter new text:","Text",O.vars[variable]) as message|null if(new_value == null) return var/process_vars = 0 diff --git a/code/modules/admin/verbs/modifyvariables.dm b/code/modules/admin/verbs/modifyvariables.dm index 9cc7f8a7a76..67887272f82 100644 --- a/code/modules/admin/verbs/modifyvariables.dm +++ b/code/modules/admin/verbs/modifyvariables.dm @@ -49,7 +49,7 @@ var/list/VVckey_edit = list("key", "ckey") switch(class) if("text") - var_value = input("Enter new text:","Text") as null|text + var_value = input("Enter new text:","Text") as null|message if("num") var_value = input("Enter new number:","Num") as null|num @@ -106,7 +106,7 @@ var/list/VVckey_edit = list("key", "ckey") switch(class) if("text") - var_value = input("Enter new text:","Text") as text + var_value = input("Enter new text:","Text") as message if("num") var_value = input("Enter new number:","Num") as num @@ -302,7 +302,7 @@ var/list/VVckey_edit = list("key", "ckey") return if("text") - new_var = input("Enter new text:","Text") as text + new_var = input("Enter new text:","Text") as message if(findtext(new_var,"\[")) var/process_vars = alert(usr,"\[] detected in string, process as variables?","Process Variables?","Yes","No") @@ -557,7 +557,7 @@ var/list/VVckey_edit = list("key", "ckey") return .(O.vars[variable]) if("text") - var/var_new = input("Enter new text:","Text",O.vars[variable]) as null|text + var/var_new = input("Enter new text:","Text",O.vars[variable]) as null|message if(var_new==null) return if(findtext(var_new,"\[")) diff --git a/code/modules/admin/watchlist.dm b/code/modules/admin/watchlist.dm new file mode 100644 index 00000000000..687dbb16715 --- /dev/null +++ b/code/modules/admin/watchlist.dm @@ -0,0 +1,118 @@ +client/proc/watchlist_add(target_ckey, browse = 0) + if(!target_ckey) + var/new_ckey = ckey(input(usr,"Who would you like to add to the watchlist?","Enter a ckey",null) as text) + if(!new_ckey) + return + new_ckey = sanitizeSQL(new_ckey) + var/DBQuery/query_watchfind = dbcon.NewQuery("SELECT ckey FROM [format_table_name("player")] WHERE ckey = '[new_ckey]'") + if(!query_watchfind.Execute()) + var/err = query_watchfind.ErrorMsg() + log_game("SQL ERROR obtaining ckey from player table. Error : \[[err]\]\n") + return + if(!query_watchfind.NextRow()) + usr << "[new_ckey] has not been seen before, you can only add known players." + return + else + target_ckey = new_ckey + var/target_sql_ckey = sanitizeSQL(target_ckey) + if(check_watchlist(target_sql_ckey)) + usr << "[target_sql_ckey] is already on the watchlist." + return + var/reason = input(usr,"Please State Reason","Reason") as message + if(!reason) + return + reason = sanitizeSQL(reason) + var/timestamp = SQLtime() + var/adminckey = usr.ckey + if(!adminckey) + return + var/admin_sql_ckey = sanitizeSQL(adminckey) + var/DBQuery/query_watchadd = dbcon.NewQuery("INSERT INTO [format_table_name("watch")] (ckey, reason, adminckey, timestamp) VALUES ('[target_sql_ckey]', '[reason]', '[admin_sql_ckey]', '[timestamp]')") + if(!query_watchadd.Execute()) + var/err = query_watchadd.ErrorMsg() + log_game("SQL ERROR during adding new watch entry. Error : \[[err]\]\n") + return + log_admin("[key_name(usr)] has added [target_ckey] to the watchlist - Reason: [reason]") + message_admins("[key_name_admin(usr)] has added [target_ckey] to the watchlist - Reason: [reason]", 1) + if(browse) + watchlist_show(target_sql_ckey) + +client/proc/watchlist_remove(target_ckey, browse = 0) + var/target_sql_ckey = sanitizeSQL(target_ckey) + var/DBQuery/query_watchdel = dbcon.NewQuery("DELETE FROM [format_table_name("watch")] WHERE ckey = '[target_sql_ckey]'") + if(!query_watchdel.Execute()) + var/err = query_watchdel.ErrorMsg() + log_game("SQL ERROR during removing watch entry. Error : \[[err]\]\n") + return + log_admin("[key_name(usr)] has removed [target_ckey] from the watchlist") + message_admins("[key_name_admin(usr)] has removed [target_ckey] from the watchlist", 1) + if(browse) + watchlist_show() + +client/proc/watchlist_edit(target_ckey, browse = 0) + var/target_sql_ckey = sanitizeSQL(target_ckey) + var/DBQuery/query_watchreason = dbcon.NewQuery("SELECT reason FROM [format_table_name("watch")] WHERE ckey = '[target_sql_ckey]'") + if(!query_watchreason.Execute()) + var/err = query_watchreason.ErrorMsg() + log_game("SQL ERROR obtaining reason from watch table. Error : \[[err]\]\n") + return + if(query_watchreason.NextRow()) + var/watch_reason = query_watchreason.item[1] + var/new_reason = input("Input new reason", "New Reason", "[watch_reason]") as message + new_reason = sanitizeSQL(new_reason) + if(!new_reason) + return + var/sql_ckey = sanitizeSQL(usr.ckey) + var/edit_text = "Edited by [sql_ckey] on [SQLtime()] from
[watch_reason]
to
[new_reason]
" + edit_text = sanitizeSQL(edit_text) + var/DBQuery/query_watchupdate = dbcon.NewQuery("UPDATE [format_table_name("watch")] SET reason = '[new_reason]', last_editor = '[sql_ckey]', edits = CONCAT(IFNULL(edits,''),'[edit_text]') WHERE ckey = '[target_sql_ckey]'") + if(!query_watchupdate.Execute()) + var/err = query_watchupdate.ErrorMsg() + log_game("SQL ERROR editing watchlist reason. Error : \[[err]\]\n") + return + log_admin("[key_name(usr)] has edited [target_ckey]'s watchlist reason from [watch_reason] to [new_reason]") + message_admins("[key_name_admin(usr)] has edited [target_ckey]'s watchlist reason from
[watch_reason]
to
[new_reason]") + if(browse) + watchlist_show(target_sql_ckey) + +client/proc/watchlist_show(search) + var/output + output += "
\ + \ + \ +
" + output += "\[Clear Search\] \[Add Ckey\]" + output += "
" + if(search) + search = "^[search]" + else + search = "^." + search = sanitizeSQL(search) + var/DBQuery/query_watchlist = dbcon.NewQuery("SELECT ckey, reason, adminckey, timestamp, last_editor FROM [format_table_name("watch")] WHERE ckey REGEXP '[search]' ORDER BY ckey") + if(!query_watchlist.Execute()) + var/err = query_watchlist.ErrorMsg() + log_game("SQL ERROR obtaining ckey, reason, adminckey, timestamp, last_editor from watch table. Error : \[[err]\]\n") + return + while(query_watchlist.NextRow()) + var/ckey = query_watchlist.item[1] + var/reason = query_watchlist.item[2] + var/adminckey = query_watchlist.item[3] + var/timestamp = query_watchlist.item[4] + var/last_editor = query_watchlist.item[5] + output += "[ckey] | Added by [adminckey] on [timestamp] \[Remove\] \[Edit Reason\]" + if(last_editor) + output += " Last edit by [last_editor] (Click here to see edit log)" + output += "
[reason]
" + usr << browse(output, "window=watchwin;size=900x500") + +client/proc/check_watchlist(target_ckey) + var/target_sql_ckey = sanitizeSQL(target_ckey) + var/DBQuery/query_watch = dbcon.NewQuery("SELECT reason FROM [format_table_name("watch")] WHERE ckey = '[target_sql_ckey]'") + if(!query_watch.Execute()) + var/err = query_watch.ErrorMsg() + log_game("SQL ERROR obtaining reason from watch table. Error : \[[err]\]\n") + return + if(query_watch.NextRow()) + return query_watch.item[1] + else + return 0 diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index 233fee84513..6958f17e392 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -234,11 +234,10 @@ var/next_external_rsc = 0 while (query_cid.NextRow()) related_accounts_cid += "[query_cid.item[1]], " - var/DBQuery/query_watch = dbcon.NewQuery("SELECT ckey, reason FROM [format_table_name("watch")] WHERE (ckey = '[sql_ckey]')") - query_watch.Execute() - if(query_watch.NextRow()) - message_admins("Notice: [key_name_admin(src)] is flagged for watching and has just connected - Reason: [query_watch.item[2]]") - send2irc_adminless_only("Watchlist", "[key_name(src)] is flagged for watching and has just connected - Reason: [query_watch.item[2]]") + var/watchreason = check_watchlist(sql_ckey) + if(watchreason) + message_admins("Notice: [key_name_admin(src)] is on the watchlist and has just connected - Reason: [watchreason]") + send2irc_adminless_only("Watchlist", "[key_name(src)] is on the watchlist and has just connected - Reason: [watchreason]") var/admin_rank = "Player" if (src.holder && src.holder.rank) diff --git a/tgstation.dme b/tgstation.dme index 383abb503be..26859927fa4 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -824,6 +824,7 @@ #include "code\modules\admin\secrets.dm" #include "code\modules\admin\sql_notes.dm" #include "code\modules\admin\topic.dm" +#include "code\modules\admin\watchlist.dm" #include "code\modules\admin\DB ban\functions.dm" #include "code\modules\admin\permissionverbs\permissionedit.dm" #include "code\modules\admin\verbs\adminhelp.dm" From ec0ccbaf40fdedf08b74f9cffcd76d54907af05a Mon Sep 17 00:00:00 2001 From: xxalpha Date: Thu, 27 Aug 2015 18:48:31 +0100 Subject: [PATCH 23/51] Merged with recent change --- code/game/machinery/bots/mulebot.dm | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index 9c57d710916..f7c760893ab 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -80,9 +80,9 @@ var/global/mulebot_count = 0 name = "\improper Mulebot ([suffix])" /obj/machinery/bot/mulebot/Destroy() + unload(0) qdel(wires) wires = null - load = null return ..() obj/machinery/bot/mulebot/bot_reset() @@ -862,10 +862,6 @@ obj/machinery/bot/mulebot/CanPass(atom/movable/mover, turf/target, height=1.5) new /obj/effect/decal/cleanable/oil(loc) qdel(src) -/obj/machinery/bot/mulebot/Destroy() - unload(0) - return ..() - #undef SIGH #undef ANNOYED -#undef DELIGHT +#undef DELIGHT From 1009c08ff4869bbdc79cd9df1bcf8e26eb8ca9f3 Mon Sep 17 00:00:00 2001 From: bgobandit Date: Thu, 27 Aug 2015 14:55:48 -0400 Subject: [PATCH 24/51] Golems no longer take damage from attacking with glass shards. --- code/game/objects/items/stacks/sheets/glass.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 3881915f99d..ce6baf6b105 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -298,7 +298,7 @@ if(ishuman(user)) var/mob/living/carbon/human/H = user - if(!H.gloves) + if(!H.gloves && !(PIERCEIMMUNE in H.dna.species.specflags)) // golems, etc H << "[src] cuts into your hand!" var/organ = (H.hand ? "l_" : "r_") + "arm" var/obj/item/organ/limb/affecting = H.get_organ(organ) From 99c84a79ea895f6c2e4e7ac97c3298c0154fcc42 Mon Sep 17 00:00:00 2001 From: AnturK Date: Thu, 27 Aug 2015 22:29:20 +0200 Subject: [PATCH 25/51] fixes ablative reflect --- code/modules/clothing/suits/armor.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index d8dc137f797..a9a1d0f6133 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -105,7 +105,7 @@ /obj/item/clothing/suit/armor/laserproof/IsReflect(def_zone) if(!(def_zone in list("chest", "groin"))) //If not shot where ablative is covering you, you don't get the reflection bonus! - hit_reflect_chance = 0 + return 0 if (prob(hit_reflect_chance)) return 1 From 8474086bce4356a27275f44c60de4e6d9482544d Mon Sep 17 00:00:00 2001 From: c0 Date: Fri, 28 Aug 2015 02:01:49 +0300 Subject: [PATCH 26/51] Buttons and wall frames rework --- _maps/RandomZLevels/Academy.dmm | 4 +- _maps/RandomZLevels/blackmarketpackers.dmm | 12 +- _maps/RandomZLevels/centcomAway.dmm | 20 +- _maps/RandomZLevels/challenge.dmm | 2 +- _maps/RandomZLevels/example.dmm | 2 +- _maps/RandomZLevels/moonoutpost19.dmm | 18 +- _maps/RandomZLevels/spacebattle.dmm | 2 +- _maps/RandomZLevels/spacehotel.dmm | 24 +- _maps/RandomZLevels/stationCollision.dmm | 2 +- _maps/RandomZLevels/undergroundoutpost45.dmm | 32 +-- .../AsteroidStation/Asteroidstation.dmm | 174 ++++++------- _maps/map_files/AsteroidStation/z2.dmm | 20 +- .../MetaStation/MetaStation.v41F.dmm | 210 +++++++-------- _maps/map_files/MetaStation/z2.dmm | 26 +- _maps/map_files/MetaStation/z4.dmm | 2 +- _maps/map_files/MetaStation/z5.dmm | 10 +- _maps/map_files/MiniStation/MiniStation.dmm | 24 +- _maps/map_files/MiniStation/z2.dmm | 16 +- _maps/map_files/TgStation/tgstation.2.1.3.dmm | 178 ++++++------- _maps/map_files/generic/z2.dmm | 26 +- _maps/map_files/generic/z4.dmm | 2 +- _maps/map_files/generic/z5.dmm | 10 +- code/__HELPERS/unsorted.dm | 29 ++- code/game/machinery/alarm.dm | 94 +------ code/game/machinery/buttons.dm | 245 +++++++++++++++--- code/game/machinery/camera/camera.dm | 5 +- code/game/machinery/camera/camera_assembly.dm | 74 ++---- code/game/machinery/door_control.dm | 170 ------------ code/game/machinery/flasher.dm | 37 +-- code/game/machinery/igniter.dm | 41 +-- code/game/machinery/newscaster.dm | 40 +-- code/game/objects/items/apc_frame.dm | 87 +++++-- .../items/stacks/sheets/sheet_types.dm | 10 +- code/game/objects/structures/morgue.dm | 31 +-- code/game/turfs/simulated/walls.dm | 23 +- code/modules/power/apc.dm | 6 +- code/modules/power/lighting.dm | 66 +---- code/modules/power/turbine.dm | 9 - .../research/designs/autolathe_designs.dm | 4 +- icons/obj/apc_repair.dmi | Bin 516 -> 577 bytes icons/obj/assemblies/new_assemblies.dmi | Bin 10835 -> 11599 bytes icons/obj/stationobjs.dmi | Bin 78521 -> 78671 bytes tgstation.dme | 2 +- 43 files changed, 787 insertions(+), 1002 deletions(-) delete mode 100644 code/game/machinery/door_control.dm diff --git a/_maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/Academy.dmm index 68405d16622..6128180a2a9 100644 --- a/_maps/RandomZLevels/Academy.dmm +++ b/_maps/RandomZLevels/Academy.dmm @@ -78,7 +78,7 @@ "bz" = (/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/awaymission/academy/classrooms) "bA" = (/turf/simulated/floor/plating,/area/awaymission/academy/classrooms) "bB" = (/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/awaymission/academy/classrooms) -"bC" = (/obj/machinery/door_control{id = "AcademyAuto"; pixel_y = 24},/turf/simulated/floor/plasteel,/area/awaymission/academy/classrooms) +"bC" = (/obj/machinery/button/door{id = "AcademyAuto"; pixel_y = 24},/turf/simulated/floor/plasteel,/area/awaymission/academy/classrooms) "bD" = (/turf/simulated/wall,/area/awaymission/academy/classrooms) "bE" = (/turf/simulated/shuttle/wall{tag = "icon-swallc2"; icon_state = "swallc2"},/area/awaymission/academy/classrooms) "bF" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/awaymission/academy/classrooms) @@ -531,7 +531,7 @@ "kk" = (/obj/machinery/gateway,/turf/simulated/floor/plating,/area/awaymission/academy/academygate) "kl" = (/obj/machinery/gateway{dir = 6},/turf/simulated/floor/plating,/area/awaymission/academy/academygate) "km" = (/obj/machinery/light,/turf/simulated/floor/fancy/carpet,/area/awaymission/academy/academygate) -"kn" = (/obj/machinery/door_control{id = "AcademyGate"; pixel_y = -24},/turf/simulated/floor/fancy/carpet{icon_state = "carpetsymbol"},/area/awaymission/academy/academygate) +"kn" = (/obj/machinery/button/door{id = "AcademyGate"; pixel_y = -24},/turf/simulated/floor/fancy/carpet{icon_state = "carpetsymbol"},/area/awaymission/academy/academygate) "ko" = (/turf/simulated/floor/fancy/carpet{icon_state = "carpetsymbol"},/area/awaymission/academy/academygate) "kp" = (/obj/machinery/door/poddoor/shutters{id = "AcademyGate"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/academy/academygate) "kq" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/structure/window/reinforced{dir = 5},/turf/simulated/floor/plating,/area/awaymission/academy/classrooms) diff --git a/_maps/RandomZLevels/blackmarketpackers.dmm b/_maps/RandomZLevels/blackmarketpackers.dmm index 377417f3715..4bafc4c5c50 100644 --- a/_maps/RandomZLevels/blackmarketpackers.dmm +++ b/_maps/RandomZLevels/blackmarketpackers.dmm @@ -41,8 +41,8 @@ "aO" = (/obj/machinery/computer/operating,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft) "aP" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"},/area/awaymission/BMPship/Aft) "aQ" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area/awaymission/BMPship/Aft) -"aR" = (/obj/structure/closet/crate/freezer,/obj/item/organ/appendix,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Aft) -"aS" = (/obj/structure/closet/crate/freezer,/obj/item/organ/brain,/obj/item/organ/appendix,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Aft) +"aR" = (/obj/structure/closet/crate/freezer,/obj/item/organ/internal/appendix,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Aft) +"aS" = (/obj/structure/closet/crate/freezer,/obj/item/organ/brain,/obj/item/organ/internal/appendix,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Aft) "aT" = (/obj/structure/table,/obj/item/stack/packageWrap,/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Aft) "aU" = (/obj/structure/table,/obj/item/weapon/storage/box,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Aft) "aV" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Aft) @@ -100,7 +100,7 @@ "bV" = (/turf/simulated/shuttle/wall{tag = "icon-swall2"; icon_state = "swall2"},/area/awaymission/BMPship/Fore) "bW" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"},/area/awaymission/BMPship/Aft) "bX" = (/obj/machinery/light,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft) -"bY" = (/obj/machinery/door_control{id = "packerMed"; pixel_y = -24},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft) +"bY" = (/obj/machinery/button/door{id = "packerMed"; pixel_y = -24},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft) "bZ" = (/obj/machinery/sleeper{dir = 1},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft) "ca" = (/obj/machinery/sleep_console,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft) "cb" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft) @@ -124,8 +124,8 @@ "ct" = (/obj/structure/kitchenspike,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Aft) "cu" = (/obj/structure/closet/crate,/obj/item/device/analyzer,/obj/item/stack/spacecash/c10,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Aft) "cv" = (/obj/structure/closet/crate,/obj/item/stack/spacecash/c1000,/obj/item/stack/spacecash/c200,/obj/item/stack/spacecash/c500,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Aft) -"cw" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice,/obj/item/organ/appendix,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Aft) -"cx" = (/obj/machinery/door_control{id = "packerCargo"; pixel_y = -24},/obj/machinery/light/small,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Aft) +"cw" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice,/obj/item/organ/internal/appendix,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Aft) +"cx" = (/obj/machinery/button/door{id = "packerCargo"; pixel_y = -24},/obj/machinery/light/small,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Aft) "cy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Aft) "cz" = (/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/awaymission/BMPship/Aft) "cA" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/awaymission/BMPship/Fore) @@ -403,7 +403,7 @@ "hM" = (/turf/simulated/floor/plating/airless{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/awaymission) "hN" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless,/area/awaymission) "hO" = (/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/awaymission) -"hP" = (/obj/item/apc_frame,/turf/simulated/floor/plating/airless,/area/awaymission) +"hP" = (/obj/item/wallframe/apc,/turf/simulated/floor/plating/airless,/area/awaymission) "hQ" = (/obj/structure/ore_box,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless,/area/awaymission) "hR" = (/obj/item/stack/cable_coil{amount = 5},/turf/simulated/floor/plating/airless,/area/awaymission) "hS" = (/obj/structure/ore_box,/turf/simulated/floor/plating/airless,/area/awaymission) diff --git a/_maps/RandomZLevels/centcomAway.dmm b/_maps/RandomZLevels/centcomAway.dmm index b4ae110fca4..792acecbbf0 100644 --- a/_maps/RandomZLevels/centcomAway.dmm +++ b/_maps/RandomZLevels/centcomAway.dmm @@ -398,7 +398,7 @@ "hH" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/bodybags,/turf/simulated/floor/plasteel{icon_state = "engine"},/area/awaymission/centcomAway/general) "hI" = (/turf/simulated/floor/plasteel{icon_state = "green"; dir = 1},/area/awaymission/centcomAway/general) "hJ" = (/obj/structure/toilet{dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/centcomAway/general) -"hK" = (/obj/machinery/door_control{id = "XCCHangar1"; name = "Hangar Bay Blast Doors"; pixel_x = -28; pixel_y = 7; req_access_txt = "2"},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/awaymission/centcomAway/hangar) +"hK" = (/obj/machinery/button/door{id = "XCCHangar1"; name = "Hangar Bay Blast Doors"; pixel_x = -28; pixel_y = 7; req_access_txt = "2"},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/awaymission/centcomAway/hangar) "hL" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/centcomAway/hangar) "hM" = (/obj/structure/rack,/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/awaymission/centcomAway/hangar) "hN" = (/obj/structure/rack,/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/turf/simulated/floor/plating,/area/awaymission/centcomAway/hangar) @@ -411,7 +411,7 @@ "hU" = (/obj/structure/sign/vacuum,/turf/simulated/wall/r_wall,/area/awaymission/centcomAway/hangar) "hV" = (/obj/structure/bodycontainer/crematorium,/turf/simulated/floor/plasteel{icon_state = "engine"},/area/awaymission/centcomAway/general) "hW" = (/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/awaymission/centcomAway/general) -"hX" = (/obj/machinery/crema_switch{pixel_x = 0; pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "engine"},/area/awaymission/centcomAway/general) +"hX" = (/obj/machinery/button/crematorium{pixel_x = 0; pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "engine"},/area/awaymission/centcomAway/general) "hY" = (/obj/structure/closet/secure_closet/injection,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/centcomAway/courtroom) "hZ" = (/obj/structure/stool/bed,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/centcomAway/courtroom) "ia" = (/obj/structure/closet/secure_closet/courtroom,/turf/simulated/floor/wood,/area/awaymission/centcomAway/courtroom) @@ -464,9 +464,9 @@ "iV" = (/obj/structure/table/wood{dir = 5},/obj/item/weapon/storage/backpack/satchel,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/centcomAway/general) "iW" = (/obj/machinery/computer/card/centcom,/obj/item/weapon/card/id/centcom,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/centcomAway/general) "iX" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/red,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/centcomAway/general) -"iY" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "XCCsec3"; name = "XCC Shutter 3 Control"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/centcomAway/general) +"iY" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "XCCsec3"; name = "XCC Shutter 3 Control"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/centcomAway/general) "iZ" = (/turf/simulated/floor/plasteel{tag = "icon-vault (EAST)"; icon_state = "vault"; dir = 4},/area/awaymission/centcomAway/general) -"ja" = (/obj/machinery/driver_button{id = "XCCMechs"; name = "XCC Mechbay Mass Driver"; pixel_x = 25},/turf/simulated/floor/plasteel{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/awaymission/centcomAway/hangar) +"ja" = (/obj/machinery/button/massdriver{id = "XCCMechs"; name = "XCC Mechbay Mass Driver"; pixel_x = 25},/turf/simulated/floor/plasteel{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/awaymission/centcomAway/hangar) "jb" = (/obj/machinery/mecha_part_fabricator,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/centcomAway/hangar) "jc" = (/turf/simulated/floor/plasteel{tag = "icon-ironsand4 (WEST)"; icon_state = "ironsand4"; dir = 8; heat_capacity = 1},/area/awaymission/centcomAway/general) "jd" = (/obj/structure/table/wood{dir = 10},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/centcomAway/general) @@ -523,7 +523,7 @@ "kc" = (/obj/machinery/gateway{dir = 8},/turf/simulated/floor/plating,/area/awaymission/centcomAway/hangar) "kd" = (/obj/machinery/gateway/centeraway,/turf/simulated/floor/plating,/area/awaymission/centcomAway/hangar) "ke" = (/obj/machinery/gateway{dir = 4},/turf/simulated/floor/plating,/area/awaymission/centcomAway/hangar) -"kf" = (/obj/machinery/door_control{id = "XCCFerry"; name = "Hangar Bay Shutters"; pixel_x = -28; pixel_y = 7; req_access_txt = "2"},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/awaymission/centcomAway/hangar) +"kf" = (/obj/machinery/button/door{id = "XCCFerry"; name = "Hangar Bay Shutters"; pixel_x = -28; pixel_y = 7; req_access_txt = "2"},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/awaymission/centcomAway/hangar) "kg" = (/obj/machinery/gateway{dir = 10},/turf/simulated/floor/plating,/area/awaymission/centcomAway/hangar) "kh" = (/obj/machinery/gateway,/turf/simulated/floor/plating,/area/awaymission/centcomAway/hangar) "ki" = (/obj/machinery/gateway{dir = 6},/turf/simulated/floor/plating,/area/awaymission/centcomAway/hangar) @@ -535,7 +535,7 @@ "ko" = (/obj/structure/table,/obj/item/device/flashlight/flare,/turf/simulated/floor/plating,/area/awaymission/centcomAway/hangar) "kp" = (/obj/structure/table,/obj/item/device/multitool,/turf/simulated/floor/plating,/area/awaymission/centcomAway/hangar) "kq" = (/obj/structure/table/reinforced,/obj/item/weapon/paper/pamphlet/ccaInfo,/turf/simulated/floor/plasteel{tag = "icon-vault (EAST)"; icon_state = "vault"; dir = 4},/area/awaymission/centcomAway/general) -"kr" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "XCCsec1"; name = "XCC Shutter 1 Control"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/centcomAway/general) +"kr" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "XCCsec1"; name = "XCC Shutter 1 Control"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/centcomAway/general) "ks" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/centcomAway/general) "kt" = (/obj/machinery/computer/secure_data,/turf/simulated/floor/plasteel{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/awaymission/centcomAway/general) "ku" = (/obj/item/weapon/paper_bin,/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{icon_state = "floor"},/area/awaymission/centcomAway/general) @@ -548,7 +548,7 @@ "kB" = (/obj/machinery/photocopier,/turf/simulated/floor/plasteel{tag = "icon-vault (EAST)"; icon_state = "vault"; dir = 4},/area/awaymission/centcomAway/general) "kC" = (/obj/item/weapon/clipboard,/obj/structure/table,/obj/item/device/taperecorder,/obj/item/weapon/stamp,/turf/simulated/floor/plasteel{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/awaymission/centcomAway/general) "kD" = (/obj/machinery/door/window/northright{icon_state = "right"; dir = 2},/turf/simulated/floor/plasteel{icon_state = "floor"},/area/awaymission/centcomAway/general) -"kE" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "XCCsec2"; name = "XCC Shutter 2 Control"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/centcomAway/general) +"kE" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "XCCsec2"; name = "XCC Shutter 2 Control"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/centcomAway/general) "kF" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "red"},/area/awaymission/centcomAway/general) "kG" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 10},/area/awaymission/centcomAway/general) "kH" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 2},/area/awaymission/centcomAway/general) @@ -641,10 +641,10 @@ "mq" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/simulated/floor/plasteel{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/awaymission/centcomAway/thunderdome) "mr" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical,/turf/simulated/floor/plasteel{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/awaymission/centcomAway/thunderdome) "ms" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plasteel{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/awaymission/centcomAway/thunderdome) -"mt" = (/obj/machinery/door_control{id = "XCCtdomemelee"; name = "XCC Thunderdome Melee!"},/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{icon_state = "floor"},/area/awaymission/centcomAway/thunderdome) +"mt" = (/obj/machinery/button/door{id = "XCCtdomemelee"; name = "XCC Thunderdome Melee!"},/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{icon_state = "floor"},/area/awaymission/centcomAway/thunderdome) "mu" = (/obj/structure/stool/bed/chair/comfy/teal,/turf/simulated/floor/plasteel{icon_state = "floor"},/area/awaymission/centcomAway/thunderdome) -"mv" = (/obj/machinery/door_control{id = "XCCtdomeguns"; name = "XCC Thunderdome Guns!"},/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{icon_state = "floor"},/area/awaymission/centcomAway/thunderdome) -"mw" = (/obj/machinery/door_control{id = "XCCtdome"; name = "XCC Thunderdome Go!"},/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{icon_state = "floor"},/area/awaymission/centcomAway/thunderdome) +"mv" = (/obj/machinery/button/door{id = "XCCtdomeguns"; name = "XCC Thunderdome Guns!"},/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{icon_state = "floor"},/area/awaymission/centcomAway/thunderdome) +"mw" = (/obj/machinery/button/door{id = "XCCtdome"; name = "XCC Thunderdome Go!"},/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{icon_state = "floor"},/area/awaymission/centcomAway/thunderdome) "mx" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plasteel{icon_state = "bar"; dir = 2},/area/awaymission/centcomAway/maint) "my" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/awaymission/centcomAway/cafe) "mz" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/window/northright,/turf/simulated/floor/plasteel{tag = "icon-redfull"; icon_state = "redfull"},/area/awaymission/centcomAway/cafe) diff --git a/_maps/RandomZLevels/challenge.dmm b/_maps/RandomZLevels/challenge.dmm index c6e4879db09..936d31e1cf8 100644 --- a/_maps/RandomZLevels/challenge.dmm +++ b/_maps/RandomZLevels/challenge.dmm @@ -99,7 +99,7 @@ "bU" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light,/turf/simulated/floor/plating/airless,/area/awaymission/challenge/main) "bV" = (/obj/machinery/light{dir = 1},/obj/structure/filingcabinet,/turf/simulated/floor/fancy/carpet,/area/awaymission/challenge/end) "bW" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching evil areas."; name = "Security Monitor"; network = ""; pixel_x = 0; pixel_y = 30},/turf/simulated/floor/fancy/carpet,/area/awaymission/challenge/end) -"bX" = (/obj/machinery/door_control{id = "challenge"; name = "Gateway Lockdown"; pixel_x = -4; pixel_y = 26; req_access_txt = "0"},/turf/simulated/floor/fancy/carpet,/area/awaymission/challenge/end) +"bX" = (/obj/machinery/button/door{id = "challenge"; name = "Gateway Lockdown"; pixel_x = -4; pixel_y = 26; req_access_txt = "0"},/turf/simulated/floor/fancy/carpet,/area/awaymission/challenge/end) "bY" = (/turf/simulated/floor/fancy/carpet,/area/awaymission/challenge/end) "bZ" = (/obj/structure/mirror{pixel_y = 28},/turf/simulated/floor/wood,/area/awaymission/challenge/end) "ca" = (/obj/machinery/light{dir = 1},/obj/structure/rack,/obj/item/clothing/suit/armor/heavy,/obj/item/clothing/head/helmet/space/deathsquad,/turf/simulated/floor/wood,/area/awaymission/challenge/end) diff --git a/_maps/RandomZLevels/example.dmm b/_maps/RandomZLevels/example.dmm index 35424f7e376..716f122a29b 100644 --- a/_maps/RandomZLevels/example.dmm +++ b/_maps/RandomZLevels/example.dmm @@ -50,7 +50,7 @@ "aX" = (/obj/machinery/door/airlock/medical,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/example) "aY" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "example"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/awaymission/example) "aZ" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "example"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/awaymission/example) -"ba" = (/obj/machinery/door_control{id = "example"; name = "Privacy Shutters"; pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/example) +"ba" = (/obj/machinery/button/door{id = "example"; name = "Privacy Shutters"; pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/example) "bb" = (/obj/structure/table,/obj/item/device/healthanalyzer,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/example) "bc" = (/obj/structure/stool/bed,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/example) "bd" = (/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/example) diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 1db250f8ea2..1bcde73d80f 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -152,10 +152,10 @@ "cV" = (/turf/simulated/floor/plasteel{broken = 1; carbon_dioxide = 48.7; dir = 8; heat_capacity = 1e+006; icon_state = "damaged2"; nitrogen = 13.2; oxygen = 32.4; tag = "icon-damaged2 (WEST)"; temperature = 251},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) "cW" = (/turf/simulated/floor/plasteel{broken = 1; carbon_dioxide = 48.7; dir = 8; heat_capacity = 1e+006; icon_state = "damaged3"; nitrogen = 13.2; oxygen = 32.4; tag = "icon-damaged3 (WEST)"; temperature = 251},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) "cX" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 12},/obj/effect/decal/cleanable/dirt,/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/plasteel{carbon_dioxide = 48.7; dir = 1; heat_capacity = 1e+006; icon_state = "bot"; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) -"cY" = (/obj/machinery/door_control{id = "awaydorm4"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/syndie,/turf/simulated/floor/wood{carbon_dioxide = 48.7; heat_capacity = 1e+006; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) +"cY" = (/obj/machinery/button/door{id = "awaydorm4"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/syndie,/turf/simulated/floor/wood{carbon_dioxide = 48.7; heat_capacity = 1e+006; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) "cZ" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/wood{carbon_dioxide = 48.7; heat_capacity = 1e+006; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) "da" = (/turf/simulated/floor/wood{heat_capacity = 1e+006},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) -"db" = (/obj/machinery/door_control{id = "awaydorm5"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/structure/dresser,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/wood{heat_capacity = 1e+006},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) +"db" = (/obj/machinery/button/door{id = "awaydorm5"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/structure/dresser,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/wood{heat_capacity = 1e+006},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) "dc" = (/obj/structure/alien/weeds/node,/mob/living/simple_animal/hostile/alien/drone{plants_off = 1},/turf/simulated/floor/plating/asteroid{carbon_dioxide = 48.7; heat_capacity = 1e+006; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a5{always_unpowered = 1; has_gravity = 1; name = "The Hive"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0}) "dd" = (/obj/machinery/mineral/stacking_machine{dir = 1; input_dir = 1; output_dir = 2},/turf/simulated/floor/plating{carbon_dioxide = 48.7; dir = 4; heat_capacity = 1e+006; icon_state = "warnplate"; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) "de" = (/obj/machinery/mineral/stacking_unit_console{machinedir = 8},/turf/simulated/wall,/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"}) @@ -245,7 +245,7 @@ "eK" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/plasteel{dir = 2; heat_capacity = 1e+006; icon_state = "whitehall"},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) "eL" = (/obj/machinery/light/small{active_power_usage = 0; dir = 8; icon_state = "bulb-broken"; status = 2},/obj/machinery/camera{c_tag = "Xenobiology"; dir = 4; network = list("MO19","MO19R")},/turf/simulated/floor/plasteel{dir = 6; heat_capacity = 1e+006; icon_state = "whitehall"},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) "eM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/stool/bed/chair/office/light{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) -"eN" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "Awaylab"; name = "Containment Chamber Blast Doors"; pixel_x = 4; pixel_y = -2; req_access_txt = "201"},/obj/machinery/ignition_switch{id = "awayxenobio"; pixel_x = 4; pixel_y = 8},/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "warning"},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) +"eN" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "Awaylab"; name = "Containment Chamber Blast Doors"; pixel_x = 4; pixel_y = -2; req_access_txt = "201"},/obj/machinery/button/ignition{id = "awayxenobio"; pixel_x = 4; pixel_y = 8},/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "warning"},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) "eO" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/obj/structure/alien/weeds{desc = "A large mottled egg."; health = 100; icon_state = "egg_hatched"; name = "egg"},/turf/simulated/floor/engine,/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) "eP" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/obj/effect/decal/cleanable/blood,/turf/simulated/floor/engine,/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) "eQ" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/engine,/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) @@ -349,7 +349,7 @@ "gK" = (/obj/structure/cable,/obj/machinery/door/poddoor/preopen{desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaylab"; name = "Acid-Proof containment chamber blast door"; unacidable = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) "gL" = (/obj/structure/disposalpipe/segment{desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; name = "Acid-Proof disposal pipe"; unacidable = 1},/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/engine,/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) "gM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/item/stack/rods,/turf/simulated/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg3"; tag = "icon-platingdmg3"},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) -"gN" = (/obj/machinery/door_control{id = "Awaybiohazard"; name = "Biohazard Shutter Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "201"},/obj/machinery/light/small{dir = 8},/obj/machinery/computer/security{desc = "Used to access the various cameras on the outpost."; network = list("MO19R","MO19")},/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) +"gN" = (/obj/machinery/button/door{id = "Awaybiohazard"; name = "Biohazard Shutter Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "201"},/obj/machinery/light/small{dir = 8},/obj/machinery/computer/security{desc = "Used to access the various cameras on the outpost."; network = list("MO19R","MO19")},/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) "gO" = (/obj/structure/stool/bed/chair/office/dark,/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) "gP" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/floor/plasteel{dir = 4; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) "gQ" = (/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "whitepurplecorner"},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) @@ -428,7 +428,7 @@ "il" = (/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "im" = (/obj/machinery/shower{dir = 8},/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "in" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) -"io" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door_control{id = "Awaybiohazard"; name = "Biohazard Shutter Control"; pixel_x = 0; pixel_y = 8; req_access_txt = "201"},/obj/machinery/door_control{id = "AwayRD"; name = "Privacy Shutter Control"; pixel_x = 0; pixel_y = -2; req_access_txt = "201"},/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) +"io" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/button/door{id = "Awaybiohazard"; name = "Biohazard Shutter Control"; pixel_x = 0; pixel_y = 8; req_access_txt = "201"},/obj/machinery/button/door{id = "AwayRD"; name = "Privacy Shutter Control"; pixel_x = 0; pixel_y = -2; req_access_txt = "201"},/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) "ip" = (/obj/structure/stool/bed/chair/office/light{dir = 1; pixel_y = 3},/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) "iq" = (/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) "ir" = (/obj/effect/decal/cleanable/blood/tracks{desc = "Your instincts say you shouldn't be following these."; dir = 8; icon_state = "ltrails_1"},/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "white"},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) @@ -562,7 +562,7 @@ "kP" = (/obj/structure/grille{density = 0; destroyed = 1; icon_state = "brokengrille"},/obj/item/stack/rods,/turf/simulated/floor/plating{broken = 1; carbon_dioxide = 48.7; heat_capacity = 1e+006; icon_state = "platingdmg3"; nitrogen = 13.2; oxygen = 32.4; tag = "icon-platingdmg3"; temperature = 251},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "kQ" = (/obj/machinery/door/firedoor{density = 1; icon_state = "door_closed"; opacity = 1},/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "neutralcorner"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "kR" = (/obj/machinery/door/firedoor{density = 1; icon_state = "door_closed"; opacity = 1},/turf/simulated/floor/plasteel{dir = 2; heat_capacity = 1e+006; icon_state = "neutralcorner"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) -"kS" = (/obj/machinery/door_control{id = "awaydorm1"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) +"kS" = (/obj/machinery/button/door{id = "awaydorm1"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "kT" = (/obj/structure/closet/secure_closet{desc = "It's a secure locker for personnel. The first card swiped gains control."; icon_broken = "cabinetdetective_broken"; icon_closed = "cabinetdetective"; icon_locked = "cabinetdetective_locked"; icon_off = "cabinetdetective_broken"; icon_opened = "cabinetdetective_open"; icon_state = "cabinetdetective"; locked = 0; name = "personal closet"; req_access_txt = "201"},/obj/item/clothing/under/suit_jacket/navy,/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "kU" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "0"},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "kV" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{dir = 0; heat_capacity = 1e+006; icon_state = "blue"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) @@ -588,7 +588,7 @@ "lp" = (/obj/machinery/light/small{dir = 8},/obj/structure/table,/obj/item/weapon/storage/box,/obj/machinery/alarm{dir = 4; frequency = 1439; locked = 0; pixel_x = -23; pixel_y = 0; req_access = null},/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "bar"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "lq" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "bar"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "lr" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/effect/decal/cleanable/dirt,/obj/machinery/camera{c_tag = "Bar"; dir = 8; network = list("MO19")},/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "bar"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) -"ls" = (/obj/machinery/door_control{id = "awaykitchen"; name = "Kitchen Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "0"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) +"ls" = (/obj/machinery/button/door{id = "awaykitchen"; name = "Kitchen Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "0"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "lt" = (/obj/machinery/door/airlock{name = "Kitchen Cold Room"; req_access_txt = "201"},/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "showroomfloor"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "lu" = (/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "showroomfloor"; temperature = 273.15},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "lv" = (/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "showroomfloor"; temperature = 273.15},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) @@ -645,7 +645,7 @@ "mu" = (/obj/structure/grille,/obj/structure/sign/vacuum{desc = "A warning sign which reads 'HOSTILE ATMOSPHERE AHEAD'"; name = "\improper HOSTILE ATMOSPHERE AHEAD"; pixel_x = 0},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "mv" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 4; heat_capacity = 1e+006; icon_state = "warning"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "mw" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{carbon_dioxide = 48.7; dir = 2; heat_capacity = 1e+006; icon_state = "neutralcorner"; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) -"mx" = (/obj/structure/table/wood,/obj/machinery/door_control{id = "awaydorm2"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) +"mx" = (/obj/structure/table/wood,/obj/machinery/button/door{id = "awaydorm2"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "my" = (/obj/structure/stool/bed/chair/wood/normal{dir = 8},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "mz" = (/obj/structure/closet/emcloset,/obj/structure/window,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "mA" = (/obj/machinery/computer/arcade,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) @@ -706,7 +706,7 @@ "nD" = (/obj/effect/decal/cleanable/blood/tracks{desc = "Your instincts say you shouldn't be following these."; dir = 8; icon_state = "ltrails_2"},/turf/simulated/floor/plating{broken = 1; carbon_dioxide = 48.7; heat_capacity = 1e+006; icon_state = "platingdmg3"; nitrogen = 13.2; oxygen = 32.4; tag = "icon-platingdmg3"; temperature = 251},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "nE" = (/obj/effect/decal/cleanable/blood/tracks{desc = "Your instincts say you shouldn't be following these."; dir = 8; icon_state = "ltrails_1"},/turf/simulated/floor/plasteel{carbon_dioxide = 48.7; dir = 8; heat_capacity = 1e+006; icon_state = "floorgrime"; nitrogen = 13.2; oxygen = 32.4; tag = "icon-floorgrime (WEST)"; temperature = 251},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "nF" = (/obj/effect/decal/cleanable/blood/tracks{desc = "Your instincts say you shouldn't be following these."; dir = 6; icon_state = "ltrails_1"},/turf/simulated/floor/plasteel{carbon_dioxide = 48.7; dir = 8; heat_capacity = 1e+006; icon_state = "floorgrime"; nitrogen = 13.2; oxygen = 32.4; tag = "icon-floorgrime (WEST)"; temperature = 251},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) -"nG" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/door_control{id = "awaydorm3"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/effect/decal/remains/human{desc = "They look like human remains. The skeleton is laid out on its side and there seems to have been no sign of struggle."; layer = 4.1},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) +"nG" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/button/door{id = "awaydorm3"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/effect/decal/remains/human{desc = "They look like human remains. The skeleton is laid out on its side and there seems to have been no sign of struggle."; layer = 4.1},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "nH" = (/obj/structure/dresser,/obj/item/weapon/paper{info = "Bugs break out. I run to here and lock door. I hear door next to me break open and screams. All nice people here dead now. I no want to be eaten, and bottle always said to be coward way out, but person who say that is stupid. Mira, there is no escape for me, tell Alexis and Elena that father will never come home, and that I love you all."; name = "Note"},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "nI" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg3"; tag = "icon-platingdmg3"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) "nJ" = (/obj/structure/sign/vacuum{desc = "A warning sign which reads 'HOSTILE ATMOSPHERE AHEAD'"; name = "\improper HOSTILE ATMOSPHERE AHEAD"; pixel_x = -32},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"}) diff --git a/_maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/spacebattle.dmm index d1bab276812..875af1024f9 100644 --- a/_maps/RandomZLevels/spacebattle.dmm +++ b/_maps/RandomZLevels/spacebattle.dmm @@ -327,7 +327,7 @@ "go" = (/obj/structure/artilleryplaceholder{tag = "icon-35"; icon_state = "35"},/turf/simulated/floor/plating/airless,/area/awaymission/spacebattle/cruiser) "gp" = (/obj/structure/closet/crate/secure/weapon,/obj/item/ammo_casing/a357,/turf/simulated/floor/plating,/area/awaymission/spacebattle/cruiser) "gq" = (/obj/structure/closet/crate,/obj/item/weapon/lipstick/black,/obj/item/weapon/lipstick/jade,/turf/simulated/floor/plating,/area/awaymission/spacebattle/cruiser) -"gr" = (/obj/machinery/door_control{dir = 2; id = "spacebattlestorage"; name = "Secure Storage"; pixel_x = 24; pixel_y = 0},/turf/simulated/floor/plating,/area/awaymission/spacebattle/cruiser) +"gr" = (/obj/machinery/button/door{dir = 2; id = "spacebattlestorage"; name = "Secure Storage"; pixel_x = 24; pixel_y = 0},/turf/simulated/floor/plating,/area/awaymission/spacebattle/cruiser) "gs" = (/obj/machinery/computer/operating,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/awaymission/spacebattle/cruiser) "gt" = (/obj/structure/table/reinforced,/obj/item/weapon/scalpel,/obj/item/weapon/circular_saw,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/awaymission/spacebattle/cruiser) "gu" = (/obj/structure/table/reinforced,/obj/item/weapon/retractor,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/awaymission/spacebattle/cruiser) diff --git a/_maps/RandomZLevels/spacehotel.dmm b/_maps/RandomZLevels/spacehotel.dmm index 4fea9e60517..b41c91bb294 100644 --- a/_maps/RandomZLevels/spacehotel.dmm +++ b/_maps/RandomZLevels/spacehotel.dmm @@ -51,8 +51,8 @@ "aY" = (/obj/structure/toilet{dir = 1},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/awaymission) "aZ" = (/obj/machinery/door/window/eastleft,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/awaymission) "ba" = (/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/awaymission) -"bb" = (/obj/machinery/door_control{id = "Gold Suite"; name = "Gold Suite Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet,/area/awaymission) -"bc" = (/obj/machinery/door_control{id = "Silver Suite"; name = "Silver Suite Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet,/area/awaymission) +"bb" = (/obj/machinery/button/door{id = "Gold Suite"; name = "Gold Suite Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet,/area/awaymission) +"bc" = (/obj/machinery/button/door{id = "Silver Suite"; name = "Silver Suite Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet,/area/awaymission) "bd" = (/obj/machinery/gateway{dir = 10},/turf/simulated/floor/wood,/area/awaymission) "be" = (/obj/machinery/gateway,/turf/simulated/floor/wood,/area/awaymission) "bf" = (/obj/machinery/gateway{dir = 6},/turf/simulated/floor/wood,/area/awaymission) @@ -82,12 +82,12 @@ "bD" = (/turf/simulated/shuttle/floor,/area/awaymission) "bE" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/awaymission) "bF" = (/obj/machinery/camera{c_tag = "Room 301"; c_tag_order = 999; network = list("Hotel")},/turf/simulated/floor/fancy/carpet,/area/awaymission) -"bG" = (/obj/machinery/door_control{name = "Room301 Bolt Control"; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; id = "Room301"; normaldoorcontrol = 1; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/awaymission) +"bG" = (/obj/machinery/button/door{name = "Room301 Bolt Control"; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; id = "Room301"; normaldoorcontrol = 1; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/awaymission) "bH" = (/obj/machinery/camera{c_tag = "Room 302"; c_tag_order = 999; network = list("Hotel")},/turf/simulated/floor/fancy/carpet,/area/awaymission) -"bI" = (/obj/machinery/door_control{id = "Room302"; name = "Room302 Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/awaymission) +"bI" = (/obj/machinery/button/door{id = "Room302"; name = "Room302 Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/awaymission) "bJ" = (/obj/structure/dresser,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/turf/simulated/floor/fancy/carpet,/area/awaymission) "bK" = (/obj/machinery/camera{c_tag = "Room 303"; c_tag_order = 999; network = list("Hotel")},/turf/simulated/floor/fancy/carpet,/area/awaymission) -"bL" = (/obj/machinery/door_control{id = "Room303"; name = "Room303 Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/awaymission) +"bL" = (/obj/machinery/button/door{id = "Room303"; name = "Room303 Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/awaymission) "bM" = (/obj/machinery/light{dir = 1},/turf/unsimulated/beach/water,/area/awaymission) "bN" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/awaymission) "bO" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/fancy/carpet,/area/awaymission) @@ -110,12 +110,12 @@ "cf" = (/obj/machinery/door/airlock{id_tag = "Room202"; name = "Room202"},/obj/effect/decal/cleanable/pie_smudge,/obj/effect/decal/cleanable/flour,/turf/simulated/floor/plasteel,/area/awaymission) "cg" = (/obj/machinery/door/airlock{id_tag = "Room203"; name = "Room203"},/turf/simulated/floor/plasteel,/area/awaymission) "ch" = (/obj/machinery/camera{c_tag = "Room 201"; c_tag_order = 999; network = list("Hotel")},/turf/simulated/floor/fancy/carpet,/area/awaymission) -"ci" = (/obj/machinery/door_control{id = "Room201"; name = "Room201 Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/awaymission) +"ci" = (/obj/machinery/button/door{id = "Room201"; name = "Room201 Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/awaymission) "cj" = (/obj/structure/dresser,/obj/item/weapon/lipstick/jade,/turf/simulated/floor/fancy/carpet,/area/awaymission) "ck" = (/obj/machinery/camera{c_tag = "Room 202"; c_tag_order = 999; network = list("Hotel")},/turf/simulated/floor/fancy/carpet,/area/awaymission) -"cl" = (/obj/machinery/door_control{id = "Room202"; name = "Room202 Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/effect/decal/cleanable/pie_smudge,/obj/effect/decal/cleanable/flour,/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/awaymission) +"cl" = (/obj/machinery/button/door{id = "Room202"; name = "Room202 Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/effect/decal/cleanable/pie_smudge,/obj/effect/decal/cleanable/flour,/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/awaymission) "cm" = (/obj/machinery/camera{c_tag = "Room 203"; c_tag_order = 999; network = list("Hotel")},/turf/simulated/floor/fancy/carpet,/area/awaymission) -"cn" = (/obj/machinery/door_control{id = "Room203"; name = "Room203 Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/awaymission) +"cn" = (/obj/machinery/button/door{id = "Room203"; name = "Room203 Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/awaymission) "co" = (/obj/structure/dresser,/obj/item/weapon/lipstick/purple,/turf/simulated/floor/fancy/carpet,/area/awaymission) "cp" = (/obj/machinery/light,/turf/unsimulated/beach/water,/area/awaymission) "cq" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/green,/turf/simulated/floor/fancy/carpet,/area/awaymission) @@ -136,13 +136,13 @@ "cF" = (/obj/machinery/door/airlock{id_tag = "Room102"; name = "Room102"},/turf/simulated/floor/plasteel,/area/awaymission) "cG" = (/obj/machinery/door/airlock{id_tag = "Room103"; name = "Room103"},/turf/simulated/floor/plasteel,/area/awaymission) "cH" = (/obj/machinery/camera{c_tag = "Room 101"; c_tag_order = 999; network = list("Hotel")},/turf/simulated/floor/fancy/carpet,/area/awaymission) -"cI" = (/obj/machinery/door_control{id = "Room101"; name = "Room101 Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/awaymission) +"cI" = (/obj/machinery/button/door{id = "Room101"; name = "Room101 Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/awaymission) "cJ" = (/obj/structure/dresser,/obj/item/clothing/head/xenos,/turf/simulated/floor/fancy/carpet,/area/awaymission) "cK" = (/obj/machinery/camera{c_tag = "Room 102"; c_tag_order = 999; network = list("Hotel")},/turf/simulated/floor/fancy/carpet,/area/awaymission) -"cL" = (/obj/machinery/door_control{id = "Room102"; name = "Room102 Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/awaymission) +"cL" = (/obj/machinery/button/door{id = "Room102"; name = "Room102 Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/awaymission) "cM" = (/obj/effect/decal/cleanable/blood/gibs/old,/turf/simulated/floor/fancy/carpet,/area/awaymission) "cN" = (/obj/machinery/camera{c_tag = "Room 103"; c_tag_order = 999; network = list("Hotel")},/turf/simulated/floor/fancy/carpet,/area/awaymission) -"cO" = (/obj/machinery/door_control{id = "Room103"; name = "Room103 Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/awaymission) +"cO" = (/obj/machinery/button/door{id = "Room103"; name = "Room103 Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{icon_state = "carpetnoconnect"},/area/awaymission) "cP" = (/turf/simulated/floor/plasteel,/area/awaymission) "cQ" = (/mob/living/simple_animal/hostile/retaliate/goat,/turf/simulated/floor/plasteel,/area/awaymission) "cR" = (/mob/living/carbon/alien/humanoid/queen{bodytemperature = 31000.1; maxHealth = 0; suiciding = 0},/turf/simulated/floor/fancy/carpet,/area/awaymission) @@ -221,7 +221,7 @@ "em" = (/obj/item/weapon/tome,/turf/simulated/floor/engine/cult,/area/awaymission) "en" = (/obj/effect/rune,/turf/simulated/floor/engine/cult,/area/awaymission) "eo" = (/obj/structure/stool/bed/chair/comfy,/obj/item/device/soulstone,/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/remains/human,/turf/simulated/floor/engine/cult,/area/awaymission) -"ep" = (/obj/effect/rune,/obj/item/organ/heart,/turf/simulated/floor/engine/cult,/area/awaymission) +"ep" = (/obj/effect/rune,/obj/item/organ/internal/heart,/turf/simulated/floor/engine/cult,/area/awaymission) "eq" = (/obj/effect/gibspawner/human,/turf/simulated/floor/engine/cult,/area/awaymission) "er" = (/obj/item/trash/sosjerky,/turf/simulated/floor/fancy/carpet,/area/awaymission) "es" = (/obj/structure/table/wood,/obj/item/weapon/paper/pamphlet,/turf/simulated/floor/fancy/carpet,/area/awaymission) diff --git a/_maps/RandomZLevels/stationCollision.dmm b/_maps/RandomZLevels/stationCollision.dmm index 0f6a280b46c..bb03f618c88 100644 --- a/_maps/RandomZLevels/stationCollision.dmm +++ b/_maps/RandomZLevels/stationCollision.dmm @@ -164,7 +164,7 @@ "dh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/sign/securearea{pixel_x = 32},/obj/item/clothing/under/rank/security,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/head/helmet/swat,/obj/effect/decal/remains/human,/obj/item/weapon/gun/energy/laser/practice/sc_laser,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research) "di" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research) "dj" = (/obj/structure/sign/securearea{pixel_x = 32},/obj/item/clothing/under/rank/security,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/head/helmet/swat,/obj/effect/decal/remains/human,/obj/item/weapon/gun/energy/laser/practice/sc_laser,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research) -"dk" = (/obj/machinery/door_control{id = "Narsiedoor"; name = "Blast Door Control"; pixel_x = -28},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research) +"dk" = (/obj/machinery/button/door{id = "Narsiedoor"; name = "Blast Door Control"; pixel_x = -28},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research) "dl" = (/obj/machinery/door/poddoor{id = "Narsiedoor"; name = "Blast Doors"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research) "dm" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; state = 2},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research) "dn" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/awaymission/northblock) diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm index dd3dcd35a4f..9031b7bdf25 100644 --- a/_maps/RandomZLevels/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/undergroundoutpost45.dmm @@ -13,7 +13,7 @@ "am" = (/turf/simulated/wall/r_wall/rust,/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "an" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{active_power_usage = 0; dir = 4; icon_state = "bulb-broken"; status = 2},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "ao" = (/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "dark"},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) -"ap" = (/obj/machinery/door_control{desc = "A remote control-switch to send the elevator to the basement floor."; id = "UO45_useless"; name = "B1"; pixel_x = 6; pixel_y = -24; req_access_txt = "0"},/obj/machinery/door_control{desc = "A remote control-switch for the elevator doors."; id = "UO45_Elevator"; name = "Elevator Doors"; pixel_x = -6; pixel_y = -24; req_access_txt = "0"},/obj/machinery/door_control{desc = "A remote control-switch to send the elevator to the ground floor."; id = "UO45_useless"; name = "G1"; pixel_x = 6; pixel_y = -34; req_access_txt = "0"},/turf/simulated/floor/plating{burnt = 1; heat_capacity = 1e+006; icon_state = "panelscorched"; tag = "icon-panelscorched"},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) +"ap" = (/obj/machinery/button/door{desc = "A remote control-switch to send the elevator to the basement floor."; id = "UO45_useless"; name = "B1"; pixel_x = 6; pixel_y = -24; req_access_txt = "0"},/obj/machinery/button/door{desc = "A remote control-switch for the elevator doors."; id = "UO45_Elevator"; name = "Elevator Doors"; pixel_x = -6; pixel_y = -24; req_access_txt = "0"},/obj/machinery/button/door{desc = "A remote control-switch to send the elevator to the ground floor."; id = "UO45_useless"; name = "G1"; pixel_x = 6; pixel_y = -34; req_access_txt = "0"},/turf/simulated/floor/plating{burnt = 1; heat_capacity = 1e+006; icon_state = "panelscorched"; tag = "icon-panelscorched"},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "aq" = (/turf/simulated/floor/plasteel{broken = 1; dir = 8; heat_capacity = 1e+006; icon_state = "damaged3"; tag = "icon-damaged3 (WEST)"},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "ar" = (/obj/machinery/door/poddoor{id = "UO45_Elevator"; name = "Elevator Door"},/turf/simulated/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg1"; tag = "icon-platingdmg1"},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "as" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "darkblue"; tag = "icon-darkblue"; temperature = 273.15},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) @@ -28,7 +28,7 @@ "aB" = (/obj/structure/closet/emcloset,/obj/item/clothing/mask/breath,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "dark"},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "aC" = (/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "floorgrime"; tag = "icon-floorgrime (WEST)"},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "aD" = (/obj/structure/sign/poster{icon_state = "poster2_legit"; pixel_x = 0; pixel_y = 32; serial_number = 2; subtype = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) -"aE" = (/obj/machinery/door_control{desc = "A remote control-switch to call the elevator to your level."; id = "UO45_useless"; name = "Call Elevator"; pixel_x = -6; pixel_y = 24; req_access_txt = "0"},/obj/machinery/door_control{desc = "A remote control-switch for the elevator doors."; id = "UO45_Elevator"; name = "Elevator Doors"; pixel_x = 6; pixel_y = 24; req_access_txt = "0"},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) +"aE" = (/obj/machinery/button/door{desc = "A remote control-switch to call the elevator to your level."; id = "UO45_useless"; name = "Call Elevator"; pixel_x = -6; pixel_y = 24; req_access_txt = "0"},/obj/machinery/button/door{desc = "A remote control-switch for the elevator doors."; id = "UO45_Elevator"; name = "Elevator Doors"; pixel_x = 6; pixel_y = 24; req_access_txt = "0"},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "aF" = (/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "aG" = (/obj/structure/sign/poster{icon_state = "poster2_legit"; pixel_x = 0; pixel_y = 32; serial_number = 2; subtype = 1},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "aH" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "floorgrime"; tag = "icon-floorgrime (WEST)"},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) @@ -136,11 +136,11 @@ "cF" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "cG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/grille,/turf/simulated/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg3"; tag = "icon-platingdmg3"},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "cH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg2"; tag = "icon-platingdmg2"},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) -"cI" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/structure/stool/bed/chair/wood/normal{tag = "icon-wooden_chair (NORTH)"; icon_state = "wooden_chair"; dir = 1},/obj/machinery/door_control{id = "awaydorm2"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) +"cI" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/structure/stool/bed/chair/wood/normal{tag = "icon-wooden_chair (NORTH)"; icon_state = "wooden_chair"; dir = 1},/obj/machinery/button/door{id = "awaydorm2"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "cJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "cK" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "cL" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) -"cM" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/door_control{id = "awaydorm1"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) +"cM" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/button/door{id = "awaydorm1"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "cN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5; level = 2},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "cO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "cP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg3"; tag = "icon-platingdmg3"},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) @@ -287,7 +287,7 @@ "fA" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg1"; tag = "icon-platingdmg1"},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "fB" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/structure/stool/bed/chair/wood/normal,/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "fC" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (WEST)"; dir = 8},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) -"fD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door_control{id = "awaydorm3"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) +"fD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/button/door{id = "awaydorm3"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "fE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock{id_tag = "awaydorm3"; name = "Dorm 3"},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "fF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) "fG" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (NORTH)"; dir = 1},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"}) @@ -672,11 +672,11 @@ "mV" = (/turf/simulated/floor/plasteel{tag = "icon-whitepurplecorner (EAST)"; icon_state = "whitepurplecorner"; dir = 4; heat_capacity = 1e+006},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"}) "mW" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass{name = "Dormitories"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) "mX" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/glass{name = "Dormitories"},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) -"mY" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/door_control{id = "awaydorm5"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/structure/stool/bed/chair/wood/normal{tag = "icon-wooden_chair (NORTH)"; icon_state = "wooden_chair"; dir = 1},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) +"mY" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/button/door{id = "awaydorm5"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/structure/stool/bed/chair/wood/normal{tag = "icon-wooden_chair (NORTH)"; icon_state = "wooden_chair"; dir = 1},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) "mZ" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) "na" = (/obj/structure/closet/secure_closet{desc = "It's a secure locker for personnel. The first card swiped gains control."; icon_broken = "cabinetdetective_broken"; icon_closed = "cabinetdetective"; icon_locked = "cabinetdetective_locked"; icon_off = "cabinetdetective_broken"; icon_opened = "cabinetdetective_open"; icon_state = "cabinetdetective"; locked = 0; name = "personal closet"; req_access_txt = "201"},/obj/item/clothing/under/suit_jacket/navy,/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) "nb" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) -"nc" = (/obj/machinery/door_control{id = "awaydorm7"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) +"nc" = (/obj/machinery/button/door{id = "awaydorm7"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) "nd" = (/obj/machinery/vending/cola,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 9; heat_capacity = 1e+006; icon_state = "neutral"},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) "ne" = (/obj/structure/stool/bed/chair/comfy/black{tag = "icon-comfychair (EAST)"; icon_state = "comfychair"; dir = 4},/turf/simulated/floor/plasteel{dir = 1; heat_capacity = 1e+006; icon_state = "neutral"},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) "nf" = (/obj/structure/table/wood,/turf/simulated/floor/plasteel{dir = 1; heat_capacity = 1e+006; icon_state = "neutral"},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) @@ -752,7 +752,7 @@ "ox" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "warndark"; tag = "icon-warndark (WEST)"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) "oy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg3"; tag = "icon-platingdmg3"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"}) "oz" = (/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor/plasteel{dir = 5; heat_capacity = 1e+006; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"}) -"oA" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door_control{desc = "A remote control-switch whichs locks the research division down in the event of a biohazard leak or contamination."; id = "UO45_biohazard"; name = "Biohazard Door Control"; pixel_x = 0; pixel_y = 8; req_access_txt = "201"},/obj/machinery/door_control{desc = "A remote control-switch that controls the privacy shutters."; id = "UO45_rdprivacy"; name = "Privacy Shutter Control"; pixel_x = 0; pixel_y = -2; req_access_txt = "201"},/turf/simulated/floor/plasteel{dir = 5; heat_capacity = 1e+006; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"}) +"oA" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/button/door{desc = "A remote control-switch whichs locks the research division down in the event of a biohazard leak or contamination."; id = "UO45_biohazard"; name = "Biohazard Door Control"; pixel_x = 0; pixel_y = 8; req_access_txt = "201"},/obj/machinery/button/door{desc = "A remote control-switch that controls the privacy shutters."; id = "UO45_rdprivacy"; name = "Privacy Shutter Control"; pixel_x = 0; pixel_y = -2; req_access_txt = "201"},/turf/simulated/floor/plasteel{dir = 5; heat_capacity = 1e+006; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"}) "oB" = (/obj/structure/stool/bed/chair/office/light{dir = 1; pixel_y = 3},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 5; heat_capacity = 1e+006; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"}) "oC" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 5; heat_capacity = 1e+006; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"}) "oD" = (/obj/machinery/computer/aifixer,/turf/simulated/floor/plasteel{dir = 5; heat_capacity = 1e+006; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"}) @@ -788,7 +788,7 @@ "ph" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{dir = 5; heat_capacity = 1e+006; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"}) "pi" = (/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = -27},/turf/simulated/floor/plasteel{dir = 5; heat_capacity = 1e+006; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"}) "pj" = (/obj/structure/filingcabinet,/turf/simulated/floor/plasteel{dir = 10; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"}) -"pk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door_control{desc = "A remote control-switch whichs locks the research division down in the event of a biohazard leak or contamination."; id = "UO45_biohazard"; name = "Biohazard Door Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "201"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"}) +"pk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/button/door{desc = "A remote control-switch whichs locks the research division down in the event of a biohazard leak or contamination."; id = "UO45_biohazard"; name = "Biohazard Door Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "201"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"}) "pl" = (/obj/structure/closet/secure_closet{icon_broken = "secbroken"; icon_closed = "sec"; icon_locked = "sec1"; icon_off = "secoff"; icon_opened = "secopen"; icon_state = "sec1"; locked = 1; name = "security officer's locker"; req_access_txt = "201"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/weapon/restraints/handcuffs,/obj/item/device/flash/handheld,/obj/item/weapon/reagent_containers/spray/pepper,/turf/simulated/floor/plasteel{dir = 6; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"}) "pm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg3"; tag = "icon-platingdmg3"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"}) "pn" = (/obj/structure/flora/kirbyplants{layer = 5},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 10; heat_capacity = 1e+006; icon_state = "neutral"},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) @@ -822,11 +822,11 @@ "pP" = (/obj/structure/stool/bed/chair/comfy/black,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 10; heat_capacity = 1e+006; icon_state = "neutral"},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) "pQ" = (/obj/structure/stool/bed/chair/comfy/black,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "neutral"},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) "pR" = (/obj/structure/stool/bed/chair/comfy/black,/turf/simulated/floor/plasteel{dir = 6; heat_capacity = 1e+006; icon_state = "neutral"},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) -"pS" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/door_control{id = "awaydorm4"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) +"pS" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/button/door{id = "awaydorm4"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) "pT" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) "pU" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/wall,/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) "pV" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) -"pW" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/door_control{id = "awaydorm6"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) +"pW" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/button/door{id = "awaydorm6"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) "pX" = (/obj/machinery/light/small{dir = 1},/obj/structure/toilet{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) "pY" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) "pZ" = (/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"}) @@ -1011,7 +1011,7 @@ "ty" = (/obj/machinery/light/small,/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 2},/obj/structure/window/reinforced{dir = 4; layer = 2.9},/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plasteel{dir = 1; heat_capacity = 1e+006; icon_state = "escape"; tag = "icon-escape (NORTH)"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) "tz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "yellow"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) "tA" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/sign/securearea{pixel_y = -32},/turf/simulated/floor/plasteel{dir = 6; heat_capacity = 1e+006; icon_state = "yellow"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) -"tB" = (/obj/machinery/computer/security{network = list("UO45")},/obj/machinery/door_control{desc = "A remote control-switch for the security privacy shutters."; id = "UO45_EngineeringOffice"; name = "Privacy Shutters"; pixel_x = -24; pixel_y = 6; req_access_txt = "201"},/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) +"tB" = (/obj/machinery/computer/security{network = list("UO45")},/obj/machinery/button/door{desc = "A remote control-switch for the security privacy shutters."; id = "UO45_EngineeringOffice"; name = "Privacy Shutters"; pixel_x = -24; pixel_y = 6; req_access_txt = "201"},/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) "tC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) "tD" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (WEST)"; dir = 8},/obj/item/weapon/screwdriver{pixel_y = 10},/obj/item/device/radio/off,/turf/simulated/floor/plasteel{dir = 4; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) "tE" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 6},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) @@ -1045,7 +1045,7 @@ "ug" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/engineering{name = "Engineering Foyer"; req_access_txt = "201"},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) "uh" = (/obj/structure/filingcabinet,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 10; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) "ui" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) -"uj" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/door_control{desc = "A remote control-switch for the engineering security doors."; id = "UO45_Engineering"; name = "Engineering Lockdown"; pixel_x = 24; pixel_y = 6; req_access_txt = "201"},/obj/structure/closet/secure_closet{icon_broken = "secbroken"; icon_closed = "sec"; icon_locked = "sec1"; icon_off = "secoff"; icon_opened = "secopen"; icon_state = "sec1"; locked = 1; name = "security officer's locker"; req_access_txt = "201"},/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet,/turf/simulated/floor/plasteel{dir = 6; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) +"uj" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/button/door{desc = "A remote control-switch for the engineering security doors."; id = "UO45_Engineering"; name = "Engineering Lockdown"; pixel_x = 24; pixel_y = 6; req_access_txt = "201"},/obj/structure/closet/secure_closet{icon_broken = "secbroken"; icon_closed = "sec"; icon_locked = "sec1"; icon_off = "secoff"; icon_opened = "secopen"; icon_state = "sec1"; locked = 1; name = "security officer's locker"; req_access_txt = "201"},/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet,/turf/simulated/floor/plasteel{dir = 6; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) "uk" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plasteel{dir = 2; heat_capacity = 1e+006; icon_state = "bot"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) "ul" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/binary/pump{dir = 1; name = "External to Filter"; on = 1},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) "um" = (/obj/machinery/atmospherics/binary/pump{dir = 0; name = "Air to External"; on = 1},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) @@ -1157,7 +1157,7 @@ "wo" = (/turf/simulated/wall/rust,/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) "wp" = (/obj/structure/closet/secure_closet{desc = "It's a secure locker for personnel. The first card swiped gains control."; icon_broken = "cabinetdetective_broken"; icon_closed = "cabinetdetective"; icon_locked = "cabinetdetective_locked"; icon_off = "cabinetdetective_broken"; icon_opened = "cabinetdetective_open"; icon_state = "cabinetdetective"; locked = 0; name = "personal closet"; req_access_txt = "201"},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"}) "wq" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"}) -"wr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door_control{id = "awaydorm8"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"}) +"wr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/button/door{id = "awaydorm8"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"}) "ws" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock{id_tag = "awaydorm8"; name = "Mining Dorm 1"},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"}) "wt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"}) "wu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"}) @@ -1180,7 +1180,7 @@ "wL" = (/obj/machinery/door/airlock{name = "Private Restroom"},/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) "wM" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/light/small,/obj/structure/mirror{pixel_x = 28},/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) "wN" = (/obj/structure/stool/bed/chair/wood/normal,/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"}) -"wO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door_control{id = "awaydorm9"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"}) +"wO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/button/door{id = "awaydorm9"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet{heat_capacity = 1e+006},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"}) "wP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock{id_tag = "awaydorm9"; name = "Mining Dorm 2"},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"}) "wQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"}) "wR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "floorgrime"; tag = "icon-floorgrime (WEST)"},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"}) @@ -1202,7 +1202,7 @@ "xh" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/mining{name = "Processing Area"; req_access_txt = "201"},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"}) "xi" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/mining{name = "Processing Area"; req_access_txt = "201"},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"}) "xj" = (/obj/machinery/computer/station_alert,/turf/simulated/floor/plasteel{dir = 2; heat_capacity = 1e+006; icon_state = "neutralfull"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) -"xk" = (/obj/machinery/light/small,/obj/machinery/computer/atmos_alert,/obj/machinery/door_control{desc = "A remote control-switch for the engineering security doors."; id = "UO45_Engineering"; name = "Engineering Lockdown"; pixel_x = -6; pixel_y = -24; req_access_txt = "201"},/obj/machinery/door_control{desc = "A remote control-switch for secure storage."; id = "UO45_Secure Storage"; name = "Engineering Secure Storage"; pixel_x = 6; pixel_y = -24; req_access_txt = "201"},/turf/simulated/floor/plasteel{dir = 2; heat_capacity = 1e+006; icon_state = "neutralfull"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) +"xk" = (/obj/machinery/light/small,/obj/machinery/computer/atmos_alert,/obj/machinery/button/door{desc = "A remote control-switch for the engineering security doors."; id = "UO45_Engineering"; name = "Engineering Lockdown"; pixel_x = -6; pixel_y = -24; req_access_txt = "201"},/obj/machinery/button/door{desc = "A remote control-switch for secure storage."; id = "UO45_Secure Storage"; name = "Engineering Secure Storage"; pixel_x = 6; pixel_y = -24; req_access_txt = "201"},/turf/simulated/floor/plasteel{dir = 2; heat_capacity = 1e+006; icon_state = "neutralfull"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) "xl" = (/obj/machinery/computer/monitor{name = "primary power monitoring console"},/obj/structure/cable,/turf/simulated/floor/plasteel{dir = 2; heat_capacity = 1e+006; icon_state = "neutralfull"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"}) "xm" = (/obj/machinery/conveyor{dir = 2; id = "UO45_mining"},/turf/simulated/floor/plating{dir = 4; heat_capacity = 1e+006; icon_state = "warnplate"},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"}) "xn" = (/obj/machinery/mineral/unloading_machine{dir = 1; icon_state = "unloader-corner"; input_dir = 4; output_dir = 8},/turf/simulated/floor/plating{dir = 5; heat_capacity = 1e+006; icon_state = "warnplate"},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"}) diff --git a/_maps/map_files/AsteroidStation/Asteroidstation.dmm b/_maps/map_files/AsteroidStation/Asteroidstation.dmm index d294859fb9e..a855fc85a89 100644 --- a/_maps/map_files/AsteroidStation/Asteroidstation.dmm +++ b/_maps/map_files/AsteroidStation/Asteroidstation.dmm @@ -287,7 +287,7 @@ "afA" = (/obj/machinery/conveyor{dir = 1; id = "Recycler3"},/turf/simulated/floor/plating,/area/maintenance/apmaint) "afB" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor/carpet,/area/security/vacantoffice) "afC" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"afD" = (/obj/effect/landmark/start{name = "AI"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/turretid{name = "AI Chamber turret control"; pixel_x = 8; pixel_y = 28},/obj/machinery/door_control{desc = "A remote control switch for the AI chamber door."; id = "aishutter"; name = "AI Shutters Control"; pixel_x = -10; pixel_y = 25; req_access_txt = "16"},/obj/item/device/radio/intercom{broadcasting = 1; canhear_range = 6; freerange = 1; name = "Common Channel"; pixel_x = 32; pixel_y = 10},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/ai) +"afD" = (/obj/effect/landmark/start{name = "AI"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/turretid{name = "AI Chamber turret control"; pixel_x = 8; pixel_y = 28},/obj/machinery/button/door{desc = "A remote control switch for the AI chamber door."; id = "aishutter"; name = "AI Shutters Control"; pixel_x = -10; pixel_y = 25; req_access_txt = "16"},/obj/item/device/radio/intercom{broadcasting = 1; canhear_range = 6; freerange = 1; name = "Common Channel"; pixel_x = 32; pixel_y = 10},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/ai) "afE" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "afF" = (/obj/structure/closet/crate,/obj/item/device/assembly/prox_sensor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "afG" = (/obj/structure/cable/orange{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) @@ -339,14 +339,14 @@ "agA" = (/obj/machinery/conveyor{dir = 5; id = "Recycler2"},/turf/simulated/floor/plating,/area/maintenance/apmaint) "agB" = (/obj/machinery/conveyor{dir = 4; id = "Recycler2"},/turf/simulated/floor/plating,/area/maintenance/apmaint) "agC" = (/obj/machinery/conveyor{dir = 10; id = "Recycler2"},/turf/simulated/floor/plating,/area/maintenance/apmaint) -"agD" = (/obj/effect/landmark{name = "tripai"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door_control{desc = "A remote control switch for the AI chamber door."; id = "aishutter"; name = "AI Shutters Control"; pixel_x = 4; pixel_y = -27; req_access_txt = "16"},/obj/machinery/turretid{name = "AI Chamber turret control"; pixel_x = -8; pixel_y = 32},/obj/machinery/flasher{id = "AI"; pixel_x = 6; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/ai) +"agD" = (/obj/effect/landmark{name = "tripai"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/button/door{desc = "A remote control switch for the AI chamber door."; id = "aishutter"; name = "AI Shutters Control"; pixel_x = 4; pixel_y = -27; req_access_txt = "16"},/obj/machinery/turretid{name = "AI Chamber turret control"; pixel_x = -8; pixel_y = 32},/obj/machinery/flasher{id = "AI"; pixel_x = 6; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/ai) "agE" = (/obj/machinery/door/window{dir = 4; name = "AI Core Door"; req_access_txt = "16"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai) "agF" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai) "agG" = (/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "AI Core Door"; req_access_txt = "16"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai) "agH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai) "agI" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai) "agJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai) -"agK" = (/obj/effect/landmark{name = "tripai"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door_control{desc = "A remote control switch for the AI chamber door."; id = "aishutter"; name = "AI Shutters Control"; pixel_x = -4; pixel_y = 27; req_access_txt = "16"},/obj/machinery/turretid{name = "AI Chamber turret control"; pixel_x = 8; pixel_y = -32},/obj/machinery/flasher{id = "AI"; pixel_x = -6; pixel_y = -32},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/ai) +"agK" = (/obj/effect/landmark{name = "tripai"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/button/door{desc = "A remote control switch for the AI chamber door."; id = "aishutter"; name = "AI Shutters Control"; pixel_x = -4; pixel_y = 27; req_access_txt = "16"},/obj/machinery/turretid{name = "AI Chamber turret control"; pixel_x = 8; pixel_y = -32},/obj/machinery/flasher{id = "AI"; pixel_x = -6; pixel_y = -32},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/ai) "agL" = (/turf/simulated/wall/r_wall,/area/storage/eva) "agM" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "yellow"},/area/storage/tech) "agN" = (/obj/structure/rack,/obj/item/weapon/circuitboard/pandemic{pixel_x = -3; pixel_y = 3},/obj/item/weapon/circuitboard/rdconsole,/obj/item/weapon/circuitboard/rdserver{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/destructive_analyzer,/obj/item/weapon/circuitboard/protolathe,/turf/simulated/floor/plasteel{dir = 5; icon_state = "yellow"},/area/storage/tech) @@ -403,19 +403,19 @@ "ahM" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai) "ahN" = (/obj/machinery/camera/motion{c_tag = "AI Chamber Starboard"; dir = 9},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "ahO" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/solar/auxstarboard) -"ahP" = (/obj/machinery/door_control{id = "evashutter"; name = "E.V.A. Storage Shutter Control"; pixel_x = -26; req_access_txt = "19"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/storage/eva) +"ahP" = (/obj/machinery/button/door{id = "evashutter"; name = "E.V.A. Storage Shutter Control"; pixel_x = -26; req_access_txt = "19"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/storage/eva) "ahQ" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/storage/eva) "ahR" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/storage/tech) "ahS" = (/obj/structure/rack,/obj/item/weapon/circuitboard/secure_data{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/security{pixel_x = 1; pixel_y = -1},/obj/item/weapon/circuitboard/card{pixel_x = 2; pixel_y = -2},/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellowcorner"},/area/storage/tech) "ahT" = (/obj/structure/table,/obj/machinery/cell_charger{pixel_y = 5},/obj/item/device/multitool,/turf/simulated/floor/plasteel{dir = 1; icon_state = "yellowcorner"},/area/storage/tech) "ahU" = (/obj/structure/table,/obj/item/device/t_scanner,/obj/item/device/t_scanner,/obj/item/weapon/crowbar/red,/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 8},/area/storage/tech) "ahV" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/storage/tech) -"ahW" = (/obj/structure/table,/obj/item/weapon/cartridge/signal,/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 4},/area/storage/tech) +"ahW" = (/obj/structure/table,/obj/item/weapon/cartridge/signal,/obj/item/wallframe/camera,/obj/item/wallframe/camera,/obj/item/wallframe/camera,/obj/item/wallframe/camera,/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 4},/area/storage/tech) "ahX" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = -3; pixel_y = 3},/obj/item/stack/cable_coil,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellowcorner"},/area/storage/tech) "ahY" = (/obj/structure/rack,/obj/item/weapon/circuitboard/powermonitor{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/stationalert{pixel_x = 1; pixel_y = -1},/obj/item/weapon/circuitboard/atmos_alert{pixel_x = 3; pixel_y = -3},/turf/simulated/floor/plasteel{dir = 1; icon_state = "yellowcorner"},/area/storage/tech) "ahZ" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/storage/tech) "aia" = (/obj/machinery/door/poddoor/shutters{id = "gateshutter"; name = "Gateway Access Shutter"},/turf/simulated/floor/plasteel,/area/gateway) -"aib" = (/obj/machinery/light_switch{pixel_x = -6; pixel_y = -22},/obj/machinery/door_control{id = "gateshutter"; name = "Gateway Shutter Control"; pixel_x = 6; pixel_y = -26; req_access_txt = "19"},/turf/simulated/floor/plasteel,/area/gateway) +"aib" = (/obj/machinery/light_switch{pixel_x = -6; pixel_y = -22},/obj/machinery/button/door{id = "gateshutter"; name = "Gateway Shutter Control"; pixel_x = 6; pixel_y = -26; req_access_txt = "19"},/turf/simulated/floor/plasteel,/area/gateway) "aic" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/structure/closet/emcloset,/obj/machinery/light,/obj/machinery/newscaster{hitstaken = 1; pixel_y = -32},/turf/simulated/floor/plasteel,/area/gateway) "aid" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/orange,/obj/machinery/power/apc{name = "Gateway APC"; pixel_y = -24},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/gateway) "aie" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; pixel_y = 0},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/closet/secure_closet/exile,/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/gateway) @@ -648,7 +648,7 @@ "amx" = (/obj/machinery/conveyor{dir = 8; id = "QMLoad"},/obj/machinery/light{dir = 1},/obj/machinery/status_display{pixel_y = 32; supply_display = 1},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/quartermaster/office) "amy" = (/obj/machinery/conveyor{dir = 8; id = "QMLoad"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/quartermaster/office) "amz" = (/obj/machinery/conveyor{dir = 10; id = "QMLoad"},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/quartermaster/office) -"amA" = (/obj/machinery/door_control{id = "QMLoaddoor"; name = "Loading Doors"; pixel_y = 24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/quartermaster/office) +"amA" = (/obj/machinery/button/door{id = "QMLoaddoor"; name = "Loading Doors"; pixel_y = 24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/quartermaster/office) "amB" = (/turf/simulated/floor/plasteel,/area/quartermaster/office) "amC" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_y = 32},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel,/area/quartermaster/office) "amD" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "QM #1"},/obj/machinery/bot/mulebot{beacon_freq = 1400; home_destination = "QM #1"; suffix = "#1"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/quartermaster/office) @@ -681,7 +681,7 @@ "ane" = (/obj/machinery/mineral/mint,/turf/simulated/floor/plasteel{dir = 1; icon_state = "brown"},/area/quartermaster/miningdock) "anf" = (/obj/machinery/mineral/output,/turf/simulated/floor/plasteel{dir = 1; icon_state = "brown"},/area/quartermaster/miningdock) "ang" = (/obj/structure/closet/crate,/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/extinguisher,/obj/item/clothing/glasses/meson,/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/maintenance/fpmaint) -"anh" = (/obj/structure/table/reinforced,/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/rods{amount = 50},/obj/machinery/door_control{id = "evashutter"; name = "E.V.A. Storage Shutter Control"; pixel_x = -26; req_access_txt = "19"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/storage/eva) +"anh" = (/obj/structure/table/reinforced,/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/rods{amount = 50},/obj/machinery/button/door{id = "evashutter"; name = "E.V.A. Storage Shutter Control"; pixel_x = -26; req_access_txt = "19"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/storage/eva) "ani" = (/obj/structure/table/reinforced,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/structure/cable/orange{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/storage/eva) "anj" = (/obj/structure/table/reinforced,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/storage/eva) "ank" = (/obj/structure/closet/crate/rcd,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/storage/eva) @@ -831,7 +831,7 @@ "apY" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/simulated/floor/carpet,/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) "apZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/quartermaster/office) "aqa" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/simulated/floor/plasteel,/area/quartermaster/office) -"aqb" = (/obj/machinery/door_control{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_y = -24; req_access_txt = "50"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1},/turf/simulated/floor/plasteel,/area/quartermaster/office) +"aqb" = (/obj/machinery/button/door{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_y = -24; req_access_txt = "50"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1},/turf/simulated/floor/plasteel,/area/quartermaster/office) "aqc" = (/obj/structure/table/glass,/obj/machinery/cell_charger,/obj/machinery/light,/turf/simulated/floor/plasteel,/area/quartermaster/office) "aqd" = (/obj/structure/table/glass,/obj/item/device/taperecorder/empty,/obj/item/device/tape/random,/turf/simulated/floor/plasteel,/area/quartermaster/office) "aqe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/apmaint) @@ -860,7 +860,7 @@ "aqB" = (/obj/structure/cable/orange{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_command{desc = "Storage area for the station's general-purpose space suits and other critical materials. Can be opened via bridge controls in an emergency."; name = "E.V.A."; req_access_txt = "18"},/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/storage/eva) "aqC" = (/obj/structure/cable/orange{d2 = 8; icon_state = "0-8"},/obj/effect/spawner/structure/window/reinforced,/turf/simulated/floor/plating,/area/storage/eva) "aqD" = (/obj/structure/cable/orange,/obj/machinery/power/apc{name = "Tool Storage APC"; pixel_y = -24},/turf/simulated/floor/plating,/area/storage/primary{name = "Tool Storage"}) -"aqE" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/red,/obj/machinery/door_control{id = "Dorm1"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/carpet,/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) +"aqE" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/red,/obj/machinery/button/door{id = "Dorm1"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/carpet,/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) "aqF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/carpet,/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) "aqG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/carpet,/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) "aqH" = (/obj/machinery/light,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/wood,/area/security/vacantoffice) @@ -901,7 +901,7 @@ "arq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload) "arr" = (/obj/machinery/computer/aifixer,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai_upload_foyer) "ars" = (/obj/structure/table,/obj/item/weapon/phone,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai_upload_foyer) -"art" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/blue,/obj/machinery/door_control{id = "Dorm2"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/carpet,/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) +"art" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/blue,/obj/machinery/button/door{id = "Dorm2"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/carpet,/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) "aru" = (/obj/structure/closet/secure_closet/miner,/turf/simulated/floor/plasteel{dir = 8; icon_state = "brown"},/area/quartermaster/miningdock) "arv" = (/obj/structure/closet/secure_closet/miner,/turf/simulated/floor/plasteel,/area/quartermaster/miningdock) "arw" = (/obj/structure/rack,/obj/item/weapon/pickaxe{desc = "The pickaxe looks blunt."; force = 5; pixel_x = -3},/obj/item/weapon/pickaxe{desc = "The pickaxe looks blunt."; force = 5; pixel_x = 3},/turf/simulated/floor/plasteel,/area/quartermaster/miningdock) @@ -946,7 +946,7 @@ "asj" = (/turf/simulated/floor/plasteel{icon_state = "warndarkcorners"; dir = 8},/area/quartermaster/office) "ask" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "warndark"; dir = 1},/area/quartermaster/office) "asl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "warndark"; dir = 1},/area/quartermaster/office) -"asm" = (/obj/machinery/door_control{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_y = 24; req_access_txt = "50"},/turf/simulated/floor/plasteel{icon_state = "warndarkcorners"; dir = 4},/area/quartermaster/office) +"asm" = (/obj/machinery/button/door{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_y = 24; req_access_txt = "50"},/turf/simulated/floor/plasteel{icon_state = "warndarkcorners"; dir = 4},/area/quartermaster/office) "asn" = (/obj/machinery/status_display{pixel_y = 32; supply_display = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/quartermaster/office) "aso" = (/obj/structure/closet,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/quartermaster/office) "asp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/reagent_dispensers/fueltank,/obj/structure/cable/blue{icon_state = "1-4"; d1 = 1; d2 = 2},/turf/simulated/floor/plating,/area/maintenance/apmaint) @@ -1035,7 +1035,7 @@ "atU" = (/obj/machinery/recharge_station,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai_upload_foyer) "atV" = (/obj/structure/cable/blue{icon_state = "0-2"},/obj/machinery/power/apc{dir = 8; name = "Disposal APC"; pixel_x = -24},/turf/simulated/floor/plating,/area/maintenance/disposal) "atW" = (/obj/machinery/conveyor_switch{id = "Disposal"},/obj/machinery/light{dir = 1},/turf/simulated/floor/plating,/area/maintenance/disposal) -"atX" = (/obj/machinery/driver_button{id = "trash"; pixel_x = 6; pixel_y = 24},/obj/structure/stool,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/disposal) +"atX" = (/obj/machinery/button/massdriver{id = "trash"; pixel_x = 6; pixel_y = 24},/obj/structure/stool,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/disposal) "atY" = (/obj/structure/table,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/turf/simulated/floor/plasteel{dir = 9; icon_state = "brown"},/area/quartermaster/miningdock) "atZ" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/floor/plasteel{dir = 5; icon_state = "brown"},/area/quartermaster/miningdock) "aua" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/plasteel{dir = 1; icon_state = "brown"},/area/quartermaster/miningdock) @@ -1086,7 +1086,7 @@ "auT" = (/obj/structure/window/reinforced,/obj/machinery/door/window/northright{dir = 4; name = "Disposal Exit"; req_access_txt = "12"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/maintenance/disposal) "auU" = (/obj/machinery/mass_driver{dir = 4; id = "trash"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/disposal) "auV" = (/obj/machinery/door/poddoor{id = "trash"; name = "Disposal External Door"},/turf/simulated/floor/plating,/area/maintenance/disposal) -"auW" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/yellow,/obj/machinery/door_control{id = "Dorm3"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/carpet,/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) +"auW" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/yellow,/obj/machinery/button/door{id = "Dorm3"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/carpet,/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) "auX" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "brown"},/area/quartermaster/miningdock) "auY" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "brown"},/area/quartermaster/miningdock) "auZ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1},/obj/effect/landmark/start{name = "Shaft Miner"},/turf/simulated/floor/plasteel,/area/quartermaster/miningdock) @@ -1330,7 +1330,7 @@ "azD" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/hallway/primary/starboard{name = "Starboard Hallway"}) "azE" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/hallway/primary/starboard{name = "Starboard Hallway"}) "azF" = (/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "neutralcorner"},/area/hallway/primary/starboard{name = "Starboard Hallway"}) -"azG" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/purple,/obj/machinery/door_control{id = "Dorm4"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/carpet,/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) +"azG" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/purple,/obj/machinery/button/door{id = "Dorm4"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/carpet,/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) "azH" = (/obj/machinery/computer/secure_data,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/carpet,/area/security/detectives_office) "azI" = (/obj/machinery/washing_machine,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) "azJ" = (/obj/machinery/washing_machine,/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) @@ -1377,7 +1377,7 @@ "aAy" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/turf/simulated/floor/plasteel{icon_state = "neutralcorner"},/area/hallway/primary/starboard{name = "Starboard Hallway"}) "aAz" = (/obj/structure/table/wood,/obj/item/weapon/hand_labeler,/turf/simulated/floor/carpet,/area/security/detectives_office) "aAA" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Detective"},/turf/simulated/floor/carpet,/area/security/detectives_office) -"aAB" = (/obj/machinery/computer/security/wooden_tv,/obj/machinery/door_control{id = "detffice"; name = "Detective's Shutters Control"; pixel_x = -26; req_access_txt = "0"},/turf/simulated/floor/carpet,/area/security/detectives_office) +"aAB" = (/obj/machinery/computer/security/wooden_tv,/obj/machinery/button/door{id = "detffice"; name = "Detective's Shutters Control"; pixel_x = -26; req_access_txt = "0"},/turf/simulated/floor/carpet,/area/security/detectives_office) "aAC" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/carpet,/area/security/detectives_office) "aAD" = (/turf/simulated/floor/carpet,/area/security/detectives_office) "aAE" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green,/turf/simulated/floor/carpet,/area/security/detectives_office) @@ -1391,7 +1391,7 @@ "aAM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall,/area/maintenance/maintcentral) "aAN" = (/obj/machinery/light/small{dir = 8},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/maintenance/maintcentral) "aAO" = (/obj/structure/cable/blue,/obj/machinery/power/apc{dir = 4; name = "Bridge Maintenance APC"; pixel_x = 24},/turf/simulated/floor/plating,/area/maintenance/maintcentral) -"aAP" = (/obj/item/apc_frame,/turf/simulated/floor/plasteel,/area/construction/Storage{name = "Construction Site"}) +"aAP" = (/obj/item/wallframe/apc,/turf/simulated/floor/plasteel,/area/construction/Storage{name = "Construction Site"}) "aAQ" = (/mob/living/simple_animal/mouse,/turf/simulated/floor/plasteel,/area/construction/Storage{name = "Construction Site"}) "aAR" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 8},/area/construction/Storage{name = "Construction Site"}) "aAS" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'AREA UNDER CONSTRUCTION"; name = "AREA UNDER CONSTRUCTION"; pixel_x = -32},/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored) @@ -1445,7 +1445,7 @@ "aBO" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/maintcentral) "aBP" = (/obj/structure/table,/obj/item/device/paicard,/turf/simulated/floor/plating,/area/construction/Storage{name = "Construction Site"}) "aBQ" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plating,/area/construction/Storage{name = "Construction Site"}) -"aBR" = (/obj/item/alarm_frame,/turf/simulated/floor/plating,/area/construction/Storage{name = "Construction Site"}) +"aBR" = (/obj/item/wallframe/alarm,/turf/simulated/floor/plating,/area/construction/Storage{name = "Construction Site"}) "aBS" = (/obj/machinery/conveyor{dir = 6; id = "Mininginput"; verted = -1},/turf/simulated/floor/plating,/area/quartermaster/miningdock) "aBT" = (/obj/machinery/mineral/stacking_machine,/turf/simulated/floor/plating,/area/quartermaster/miningdock) "aBU" = (/obj/machinery/light,/obj/machinery/newscaster{hitstaken = 1; pixel_y = -32},/turf/simulated/floor/plasteel{dir = 4; icon_state = "loadingarea"},/area/quartermaster/miningdock) @@ -1704,8 +1704,8 @@ "aGN" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aGO" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/wood,/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) "aGP" = (/turf/simulated/floor/wood,/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) -"aGQ" = (/obj/machinery/door_control{id = "Dorm6"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; pixel_y = 0},/turf/simulated/floor/wood,/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) -"aGR" = (/obj/machinery/shower{dir = 4},/obj/item/weapon/soap,/obj/item/weapon/bikehorn/rubberducky,/obj/machinery/door_control{id = "shutbath"; name = "Bathroom Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) +"aGQ" = (/obj/machinery/button/door{id = "Dorm6"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; pixel_y = 0},/turf/simulated/floor/wood,/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) +"aGR" = (/obj/machinery/shower{dir = 4},/obj/item/weapon/soap,/obj/item/weapon/bikehorn/rubberducky,/obj/machinery/button/door{id = "shutbath"; name = "Bathroom Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) "aGS" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) "aGT" = (/obj/structure/toilet,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/sleep_female{name = "Fore Dormitory"}) "aGU" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/alarm{dir = 4; pixel_x = -22},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/starboard{name = "Starboard Hallway"}) @@ -1831,7 +1831,7 @@ "aJk" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/obj/structure/table/glass,/obj/item/device/electropack,/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/prison) "aJl" = (/obj/structure/table/glass,/obj/item/weapon/razor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/prison) "aJm" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/pen,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel,/area/security/main) -"aJn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door_control{id = "interrogation"; name = "Interrogation Shutters Control"; pixel_y = 26; req_access_txt = "0"},/turf/simulated/floor/plasteel,/area/security/main) +"aJn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/button/door{id = "interrogation"; name = "Interrogation Shutters Control"; pixel_y = 26; req_access_txt = "0"},/turf/simulated/floor/plasteel,/area/security/main) "aJo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel,/area/security/main) "aJp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/security/main) "aJq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light_switch{dir = 1; pixel_y = 22},/turf/simulated/floor/plasteel,/area/security/main) @@ -1942,7 +1942,7 @@ "aLr" = (/obj/structure/table/wood,/obj/item/weapon/storage/wallet,/obj/item/device/healthanalyzer,/obj/machinery/light{dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/captain) "aLs" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/wood,/area/crew_quarters/captain) "aLt" = (/obj/machinery/alarm{dir = 8; pixel_x = 22},/turf/simulated/floor/wood,/area/crew_quarters/captain) -"aLu" = (/obj/machinery/computer/card,/obj/item/weapon/card/id/captains_spare,/obj/machinery/door_control{id = "capffice"; name = "Captain's Shutters Control"; pixel_x = -24; req_access_txt = "22"},/turf/simulated/floor/wood,/area/crew_quarters/captain) +"aLu" = (/obj/machinery/computer/card,/obj/item/weapon/card/id/captains_spare,/obj/machinery/button/door{id = "capffice"; name = "Captain's Shutters Control"; pixel_x = -24; req_access_txt = "22"},/turf/simulated/floor/wood,/area/crew_quarters/captain) "aLv" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/captain) "aLw" = (/obj/structure/table/wood,/obj/item/clothing/mask/cigarette/cigar,/obj/item/weapon/storage/box/matches,/turf/simulated/floor/wood,/area/crew_quarters/captain) "aLx" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/captain) @@ -2086,10 +2086,10 @@ "aOf" = (/turf/simulated/floor/plasteel,/area/security/prison) "aOg" = (/obj/machinery/washing_machine,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/security/prison) "aOh" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/security/prison) -"aOi" = (/obj/structure/stool,/obj/machinery/door_control{id = "permabolt1"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel,/area/security/prison) +"aOi" = (/obj/structure/stool,/obj/machinery/button/door{id = "permabolt1"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel,/area/security/prison) "aOj" = (/obj/structure/table,/obj/machinery/flasher{id = "PCell 1"; pixel_y = 26},/obj/machinery/camera{c_tag = "Prison Cell 1"; network = list("SS13","Prison")},/obj/item/weapon/razor,/turf/simulated/floor/plasteel,/area/security/prison) "aOk" = (/obj/structure/stool,/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel,/area/security/prison) -"aOl" = (/obj/machinery/flasher_button{id = "PCell 1"; pixel_x = -26},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 1},/area/security/prison) +"aOl" = (/obj/machinery/button/flasher{id = "PCell 1"; pixel_x = -26},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 1},/area/security/prison) "aOm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 1},/area/security/prison) "aOn" = (/obj/machinery/light_switch{dir = 8; pixel_x = -22},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/main) "aOo" = (/obj/structure/table,/obj/item/device/taperecorder,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/main) @@ -2117,7 +2117,7 @@ "aOK" = (/obj/structure/extinguisher_cabinet{pixel_x = 27},/obj/machinery/hydroponics/constructable,/turf/simulated/floor/plasteel{icon_state = "greenfull"},/area/hallway/primary/port{name = "Port Hallway"}) "aOL" = (/obj/machinery/power/emitter,/turf/simulated/floor/plating,/area/engine/engineering) "aOM" = (/obj/machinery/the_singularitygen,/turf/simulated/floor/plating,/area/engine/engineering) -"aON" = (/obj/machinery/computer/station_alert,/obj/machinery/door_control{desc = "A remote control-switch for secure storage."; id = "Secure Storage"; name = "Engineering Secure Storage"; pixel_x = -24; pixel_y = 4; req_access_txt = "11"},/obj/machinery/light_switch{dir = 8; pixel_x = -22; pixel_y = -6},/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/engine/chiefs_office) +"aON" = (/obj/machinery/computer/station_alert,/obj/machinery/button/door{desc = "A remote control-switch for secure storage."; id = "Secure Storage"; name = "Engineering Secure Storage"; pixel_x = -24; pixel_y = 4; req_access_txt = "11"},/obj/machinery/light_switch{dir = 8; pixel_x = -22; pixel_y = -6},/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/engine/chiefs_office) "aOO" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plasteel,/area/engine/chiefs_office) "aOP" = (/obj/structure/table,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/storage/box/permits{pixel_x = 3; pixel_y = 3},/obj/item/stack/medical/bruise_pack{pixel_x = -3; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/engine/chiefs_office) "aOQ" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/mob/living/simple_animal/parrot/Poly,/turf/simulated/floor/plasteel,/area/engine/chiefs_office) @@ -2214,7 +2214,7 @@ "aQD" = (/obj/structure/closet,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/security/prison) "aQE" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/security/prison) "aQF" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/brown,/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel,/area/security/prison) -"aQG" = (/obj/machinery/door_control{id = "permacell1"; name = "Cell 1 Lockdown"; pixel_x = -26; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/security/prison) +"aQG" = (/obj/machinery/button/door{id = "permacell1"; name = "Cell 1 Lockdown"; pixel_x = -26; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/security/prison) "aQH" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the Prison Wing."; dir = 8; name = "Prison Monitor"; network = list("Prison"); pixel_x = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/security/prison) "aQI" = (/obj/structure/closet/wardrobe/red,/turf/simulated/floor/plasteel{icon_state = "redcorner"},/area/security/main) "aQJ" = (/obj/machinery/photocopier,/turf/simulated/floor/plasteel{icon_state = "red"},/area/security/main) @@ -2349,10 +2349,10 @@ "aTi" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plasteel,/area/security/prison) "aTj" = (/obj/structure/table,/obj/item/toy/cards/deck,/turf/simulated/floor/plasteel,/area/security/prison) "aTk" = (/obj/machinery/alarm{dir = 8; pixel_x = 22},/turf/simulated/floor/plasteel,/area/security/prison) -"aTl" = (/obj/structure/stool,/obj/machinery/door_control{id = "permabolt2"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel,/area/security/prison) +"aTl" = (/obj/structure/stool,/obj/machinery/button/door{id = "permabolt2"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel,/area/security/prison) "aTm" = (/obj/structure/table,/obj/machinery/flasher{id = "PCell 2"; pixel_y = 26},/obj/machinery/camera{c_tag = "Prison Cell 2"; network = list("SS13","Prison")},/obj/item/weapon/paper,/obj/item/weapon/pen,/turf/simulated/floor/plasteel,/area/security/prison) "aTn" = (/obj/structure/stool,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel,/area/security/prison) -"aTo" = (/obj/machinery/flasher_button{id = "PCell 2"; pixel_x = -26},/obj/machinery/camera{c_tag = "Prison Hallway Fore"; dir = 4; network = list("SS13","Prison")},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/security/prison) +"aTo" = (/obj/machinery/button/flasher{id = "PCell 2"; pixel_x = -26},/obj/machinery/camera{c_tag = "Prison Hallway Fore"; dir = 4; network = list("SS13","Prison")},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/security/prison) "aTp" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/security/prison) "aTq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/prison) "aTr" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/security/prison) @@ -2458,7 +2458,7 @@ "aVn" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; state = 2},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/engine/engineering) "aVo" = (/obj/structure/closet/radiation,/turf/simulated/floor/plasteel,/area/engine/engineering) "aVp" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_y = -32},/turf/simulated/floor/plasteel,/area/engine/engineering) -"aVq" = (/obj/structure/rack,/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/obj/machinery/door_control{id = "singularity"; name = "Shutters Control"; pixel_y = -25; req_access_txt = "11"},/turf/simulated/floor/plasteel{icon_state = "yellowcorner"},/area/engine/engineering) +"aVq" = (/obj/structure/rack,/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/obj/machinery/button/door{id = "singularity"; name = "Shutters Control"; pixel_y = -25; req_access_txt = "11"},/turf/simulated/floor/plasteel{icon_state = "yellowcorner"},/area/engine/engineering) "aVr" = (/obj/structure/rack,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/weapon/tank/internals/emergency_oxygen/engi,/obj/item/weapon/tank/internals/emergency_oxygen/engi,/obj/machinery/light,/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/engine/engineering) "aVs" = (/obj/structure/closet/crate{name = "solar pack crate"},/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/weapon/circuitboard/solar_control,/obj/item/weapon/tracker_electronics,/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/engine/engineering) "aVt" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellowcorner"},/area/engine/engineering) @@ -2514,12 +2514,12 @@ "aWr" = (/obj/structure/closet,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/security/prison) "aWs" = (/obj/machinery/light,/turf/simulated/floor/plasteel,/area/security/prison) "aWt" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor/plasteel,/area/security/prison) -"aWu" = (/obj/machinery/door_control{id = "permacell2"; name = "Cell 2 Lockdown"; pixel_x = -26; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plasteel,/area/security/prison) +"aWu" = (/obj/machinery/button/door{id = "permacell2"; name = "Cell 2 Lockdown"; pixel_x = -26; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plasteel,/area/security/prison) "aWv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/security/prison) "aWw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor,/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/prison) "aWx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/security/prison) "aWy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/poddoor/preopen{id = "Prison Gate"; name = "Prison Blast Door"},/turf/simulated/floor/plasteel,/area/security/prison) -"aWz" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/machinery/door_control{id = "Prison Gate"; name = "Prison Wing Lockdown"; pixel_x = -28; pixel_y = -24; req_access_txt = "2"},/turf/simulated/floor/plasteel,/area/security/prison) +"aWz" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/machinery/button/door{id = "Prison Gate"; name = "Prison Wing Lockdown"; pixel_x = -28; pixel_y = -24; req_access_txt = "2"},/turf/simulated/floor/plasteel,/area/security/prison) "aWA" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/prison) "aWB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/prison) "aWC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/prison) @@ -2564,7 +2564,7 @@ "aXp" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads) "aXq" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{desc = "The office of the hero the station deserves, but not the one it needs right now. They also change IDs on occasion."; name = "Head of Personnel's Office"; req_access = null; req_access_txt = "57"},/turf/simulated/floor/wood,/area/crew_quarters/heads) "aXr" = (/turf/simulated/wall,/area/crew_quarters/heads) -"aXs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/machinery/door_control{id = "bridge blast"; name = "Bridge Blast Door Control"; pixel_x = -24; req_access_txt = "19"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "Bridge Fore"; dir = 4},/turf/simulated/floor/plasteel,/area/bridge) +"aXs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/machinery/button/door{id = "bridge blast"; name = "Bridge Blast Door Control"; pixel_x = -24; req_access_txt = "19"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "Bridge Fore"; dir = 4},/turf/simulated/floor/plasteel,/area/bridge) "aXt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel,/area/bridge) "aXu" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "redcorner"},/area/bridge) "aXv" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/bridge) @@ -2604,7 +2604,7 @@ "aYd" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/engineering) "aYe" = (/obj/item/weapon/wrench,/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/engine/engineering) "aYf" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/engine/engineering) -"aYg" = (/obj/machinery/light{dir = 1},/obj/machinery/door_control{id = "singularity"; name = "Shutters Control"; pixel_y = 25; req_access_txt = "11"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/engine/engineering) +"aYg" = (/obj/machinery/light{dir = 1},/obj/machinery/button/door{id = "singularity"; name = "Shutters Control"; pixel_y = 25; req_access_txt = "11"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/engine/engineering) "aYh" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/engine/engineering) "aYi" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = -32},/obj/machinery/vending/tool,/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/engine/engineering) "aYj" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/engine/engineering) @@ -2653,9 +2653,9 @@ "aZa" = (/obj/item/device/analyzer/plant_analyzer,/obj/structure/table,/obj/item/seeds/wheatseed,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 6; pixel_y = 2},/turf/simulated/floor/plasteel{icon_state = "green"; dir = 5},/area/security/prison) "aZb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "green"},/area/security/prison) "aZc" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel,/area/security/prison) -"aZd" = (/obj/structure/stool,/obj/machinery/door_control{id = "permabolt3"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel,/area/security/prison) +"aZd" = (/obj/structure/stool,/obj/machinery/button/door{id = "permabolt3"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel,/area/security/prison) "aZe" = (/obj/structure/table,/obj/machinery/flasher{id = "PCell 3"; pixel_y = 26},/obj/machinery/camera{c_tag = "Prison Cell 3"; network = list("SS13","Prison")},/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor/plasteel,/area/security/prison) -"aZf" = (/obj/machinery/flasher_button{id = "PCell 3"; pixel_x = -26},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/security/prison) +"aZf" = (/obj/machinery/button/flasher{id = "PCell 3"; pixel_x = -26},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/security/prison) "aZg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/status_display{pixel_x = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/security/prison) "aZh" = (/turf/simulated/wall/r_wall,/area/security/warden) "aZi" = (/turf/simulated/wall,/area/security/warden) @@ -2709,7 +2709,7 @@ "bae" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "hopqueue"; name = "HoP Queue Shutters"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/hallway/primary/starboard{name = "Starboard Hallway"}) "baf" = (/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/hallway/primary/starboard{name = "Starboard Hallway"}) "bag" = (/obj/structure/table/reinforced,/obj/machinery/door/window/northleft{dir = 8; name = "Reception Window"; req_access_txt = "0"},/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Head of Personnel's Desk"; req_access_txt = "57"},/obj/machinery/door/firedoor,/turf/simulated/floor/wood,/area/crew_quarters/heads) -"bah" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/structure/cable/blue{icon_state = "2-4"; d1 = 1; d2 = 2},/obj/structure/cable/blue{icon_state = "1-4"; d1 = 1; d2 = 2},/obj/machinery/door_control{id = "hopqueue"; name = "Queue Shutters Control"; pixel_y = 54; req_access_txt = "28"},/obj/machinery/flasher_button{id = "hopline"; pixel_x = 6; pixel_y = 64; req_access_txt = "2"},/turf/simulated/floor/wood,/area/crew_quarters/heads) +"bah" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/structure/cable/blue{icon_state = "2-4"; d1 = 1; d2 = 2},/obj/structure/cable/blue{icon_state = "1-4"; d1 = 1; d2 = 2},/obj/machinery/button/door{id = "hopqueue"; name = "Queue Shutters Control"; pixel_y = 54; req_access_txt = "28"},/obj/machinery/button/flasher{id = "hopline"; pixel_x = 6; pixel_y = 64; req_access_txt = "2"},/turf/simulated/floor/wood,/area/crew_quarters/heads) "bai" = (/obj/structure/cable/blue{icon_state = "1-8"; d1 = 1; d2 = 2},/turf/simulated/floor/wood,/area/crew_quarters/heads) "baj" = (/turf/simulated/floor/wood,/area/crew_quarters/heads) "bak" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/simulated/floor/wood,/area/crew_quarters/heads) @@ -2809,7 +2809,7 @@ "bca" = (/obj/machinery/hydroponics/constructable,/obj/item/seeds/sunflowerseed,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{icon_state = "green"; dir = 4},/area/security/prison) "bcb" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "green"},/area/security/prison) "bcc" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plasteel,/area/security/prison) -"bcd" = (/obj/machinery/door_control{id = "permacell3"; name = "Cell 3 Lockdown"; pixel_x = -26; req_access_txt = "2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/security/prison) +"bcd" = (/obj/machinery/button/door{id = "permacell3"; name = "Cell 3 Lockdown"; pixel_x = -26; req_access_txt = "2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/security/prison) "bce" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/computer/security/telescreen{desc = "Used for watching the Prison Wing."; dir = 8; name = "Prison Monitor"; network = list("Prison"); pixel_x = 32},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/security/prison) "bcf" = (/obj/machinery/deployable/barrier,/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/security/warden) "bcg" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden) @@ -2835,8 +2835,8 @@ "bcA" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/engine/engineering) "bcB" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/particle_accelerator/control_box,/turf/simulated/floor/plating,/area/engine/engineering) "bcC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{icon_state = "warningcorner"},/area/engine/engineering) -"bcD" = (/obj/machinery/door_control{id = "singularity"; name = "Shutters Control"; pixel_x = 25; req_access_txt = "11"},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/engine/engineering) -"bcE" = (/obj/machinery/door_control{id = "singularity"; name = "Shutters Control"; pixel_x = -25; req_access_txt = "11"},/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellowcorner"},/area/engine/engineering) +"bcD" = (/obj/machinery/button/door{id = "singularity"; name = "Shutters Control"; pixel_x = 25; req_access_txt = "11"},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/engine/engineering) +"bcE" = (/obj/machinery/button/door{id = "singularity"; name = "Shutters Control"; pixel_x = -25; req_access_txt = "11"},/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellowcorner"},/area/engine/engineering) "bcF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bcG" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plasteel,/area/engine/engineering) "bcH" = (/obj/structure/table,/obj/item/clothing/gloves/color/black,/obj/item/clothing/gloves/color/black,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/simulated/floor/plasteel,/area/engine/engineering) @@ -2860,7 +2860,7 @@ "bcZ" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) "bda" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = 7},/obj/item/weapon/reagent_containers/food/condiment/saltshaker,/obj/item/weapon/reagent_containers/food/condiment/peppermill,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) "bdb" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/obj/item/weapon/reagent_containers/food/snacks/mint,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) -"bdc" = (/obj/machinery/processor,/obj/machinery/door_control{id = "kitchen"; name = "Kitchen Shutters Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "28"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Kitchen"; dir = 1},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"bdc" = (/obj/machinery/processor,/obj/machinery/button/door{id = "kitchen"; name = "Kitchen Shutters Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "28"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Kitchen"; dir = 1},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) "bdd" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) "bde" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/closet/secure_closet/freezer/kitchen,/obj/machinery/light{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) "bdf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/crew_quarters/kitchen) @@ -2898,7 +2898,7 @@ "bdL" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{layer = 2.9; name = "Brig Desk"; req_access_txt = "1"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor/plasteel,/area/security/brig) "bdM" = (/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/engine/engineering) "bdN" = (/turf/simulated/floor/plasteel{icon_state = "warning"},/area/engine/engineering) -"bdO" = (/obj/machinery/light,/obj/machinery/door_control{id = "singularity"; name = "Shutters Control"; pixel_y = -25; req_access_txt = "11"},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/engine/engineering) +"bdO" = (/obj/machinery/light,/obj/machinery/button/door{id = "singularity"; name = "Shutters Control"; pixel_y = -25; req_access_txt = "11"},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/engine/engineering) "bdP" = (/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/engine/engineering) "bdQ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = -32},/obj/machinery/vending/engivend,/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/engine/engineering) "bdR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/engine/engineering) @@ -2922,7 +2922,7 @@ "bej" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/hallway/primary/starboard{name = "Starboard Hallway"}) "bek" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/crew_quarters/heads) "bel" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/heads) -"bem" = (/obj/machinery/door_control{id = "bridge blast"; name = "Bridge Blast Door Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "19"},/turf/simulated/floor/wood,/area/crew_quarters/heads) +"bem" = (/obj/machinery/button/door{id = "bridge blast"; name = "Bridge Blast Door Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "19"},/turf/simulated/floor/wood,/area/crew_quarters/heads) "ben" = (/obj/machinery/light,/obj/machinery/firealarm{dir = 1; pixel_x = -3; pixel_y = -24},/turf/simulated/floor/wood,/area/crew_quarters/heads) "beo" = (/obj/structure/table/wood,/obj/item/device/flash/handheld,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/wood,/area/crew_quarters/heads) "bep" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/hop,/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Personnel's Desk"; departmentType = 5; name = "Head of Personnel Requests Console"; pixel_y = -30},/turf/simulated/floor/wood,/area/crew_quarters/heads) @@ -2930,7 +2930,7 @@ "ber" = (/obj/structure/closet/secure_closet/hop,/obj/item/clothing/suit/ianshirt,/turf/simulated/floor/wood,/area/crew_quarters/heads) "bes" = (/obj/machinery/light{dir = 8},/obj/machinery/status_display{pixel_x = -32},/turf/simulated/floor/plasteel,/area/bridge) "bet" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "bluecorner"},/area/bridge) -"beu" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door_control{id = "evashutter"; name = "E.V.A. Storage Shutter Control"; pixel_y = -24; req_access_txt = "19"},/obj/machinery/door_control{id = "bridgeshut"; name = "Bridge Shutters Control"; pixel_y = -34; req_access_txt = "19"},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 6},/area/bridge) +"beu" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/button/door{id = "evashutter"; name = "E.V.A. Storage Shutter Control"; pixel_y = -24; req_access_txt = "19"},/obj/machinery/button/door{id = "bridgeshut"; name = "Bridge Shutters Control"; pixel_y = -34; req_access_txt = "19"},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 6},/area/bridge) "bev" = (/obj/structure/table,/obj/item/device/flash/handheld,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 8},/area/bridge) "bew" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/emergency,/obj/item/device/flash/handheld,/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/bridge) "bex" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/turf/simulated/floor/plating,/area/mine/explored) @@ -2970,7 +2970,7 @@ "bff" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bfg" = (/obj/machinery/computer/monitor,/obj/machinery/light{dir = 4},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/engine/engineering) "bfh" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/turf/simulated/floor/plating{icon_state = "warnplate"},/area/engine/engineering) -"bfi" = (/obj/structure/table,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -5; pixel_y = 23},/obj/machinery/recharger{pixel_y = 4},/obj/machinery/computer/security/telescreen{desc = "Used for monitoring the singularity engine safely."; dir = 4; name = "Singularity Monitor"; network = list("Singularity"); pixel_x = -32},/obj/machinery/door_control{desc = "A remote control-switch for secure storage."; id = "Engineering"; name = "Engineering Door Control"; pixel_x = 10; pixel_y = 24; req_access_txt = "11"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/engine/engineering) +"bfi" = (/obj/structure/table,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -5; pixel_y = 23},/obj/machinery/recharger{pixel_y = 4},/obj/machinery/computer/security/telescreen{desc = "Used for monitoring the singularity engine safely."; dir = 4; name = "Singularity Monitor"; network = list("Singularity"); pixel_x = -32},/obj/machinery/button/door{desc = "A remote control-switch for secure storage."; id = "Engineering"; name = "Engineering Door Control"; pixel_x = 10; pixel_y = 24; req_access_txt = "11"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/engine/engineering) "bfj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/engine/engineering) "bfk" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/engine/engineering) "bfl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/engine/engineering) @@ -2993,7 +2993,7 @@ "bfC" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/starboard{name = "Starboard Hallway"}) "bfD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/structure/cable/green{icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "blue"},/area/hallway/primary/starboard{name = "Starboard Hallway"}) "bfE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/command{desc = "The office of the hero the station deserves, but not the one it needs right now. They also change IDs on occasion."; name = "Head of Personnel's Office"; req_access = null; req_access_txt = "57"},/turf/simulated/floor/wood,/area/crew_quarters/heads) -"bfF" = (/obj/machinery/door_control{id = "bridge blast"; name = "Bridge Blast Door Control"; pixel_x = -24; req_access_txt = "19"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable/blue{icon_state = "2-4"; d1 = 1; d2 = 2},/obj/machinery/camera{c_tag = "Bridge Aft"; dir = 4},/turf/simulated/floor/plasteel,/area/bridge) +"bfF" = (/obj/machinery/button/door{id = "bridge blast"; name = "Bridge Blast Door Control"; pixel_x = -24; req_access_txt = "19"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable/blue{icon_state = "2-4"; d1 = 1; d2 = 2},/obj/machinery/camera{c_tag = "Bridge Aft"; dir = 4},/turf/simulated/floor/plasteel,/area/bridge) "bfG" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable/blue{icon_state = "1-8"; d1 = 1; d2 = 2},/turf/simulated/floor/plasteel,/area/bridge) "bfH" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/structure/table,/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/bridge) "bfI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor/plasteel{dir = 1; icon_state = "bluecorner"},/area/bridge) @@ -3025,14 +3025,14 @@ "bgi" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/security/brig) "bgj" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/security/brig) "bgk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/computer/security,/turf/simulated/floor/plasteel,/area/security/brig) -"bgl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/computer/secure_data,/obj/machinery/door_control{id = "Secure Gate"; name = "Brig Lockdown"; pixel_x = -6; pixel_y = -26; req_access_txt = "2"},/obj/machinery/flasher_button{id = "brigentry"; pixel_x = 6; pixel_y = -26},/turf/simulated/floor/plasteel,/area/security/brig) -"bgm" = (/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "innerbrig"; name = "Brig Interior Doors Control"; normaldoorcontrol = 1; pixel_x = -6; pixel_y = -26; req_access_txt = "63"},/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "outerbrig"; name = "Brig Exterior Doors Control"; normaldoorcontrol = 1; pixel_x = 6; pixel_y = -26; req_access_txt = "63"},/turf/simulated/floor/plasteel,/area/security/brig) +"bgl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/computer/secure_data,/obj/machinery/button/door{id = "Secure Gate"; name = "Brig Lockdown"; pixel_x = -6; pixel_y = -26; req_access_txt = "2"},/obj/machinery/button/flasher{id = "brigentry"; pixel_x = 6; pixel_y = -26},/turf/simulated/floor/plasteel,/area/security/brig) +"bgm" = (/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "innerbrig"; name = "Brig Interior Doors Control"; normaldoorcontrol = 1; pixel_x = -6; pixel_y = -26; req_access_txt = "63"},/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "outerbrig"; name = "Brig Exterior Doors Control"; normaldoorcontrol = 1; pixel_x = 6; pixel_y = -26; req_access_txt = "63"},/turf/simulated/floor/plasteel,/area/security/brig) "bgn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "Security Blast Door"},/turf/simulated/floor/plating,/area/security/brig) "bgo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/camera{c_tag = "Port Hallway Central"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "neutralcorner"},/area/hallway/primary/port{name = "Port Hallway"}) "bgp" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/aft) "bgq" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless{icon_state = "warnplate"; dir = 8},/area/engine/engineering) "bgr" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_y = 32},/turf/simulated/floor/plasteel,/area/engine/engineering) -"bgs" = (/obj/structure/rack,/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/extinguisher,/obj/machinery/door_control{id = "singularity"; name = "Shutters Control"; pixel_y = 25; req_access_txt = "11"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellowcorner"},/area/engine/engineering) +"bgs" = (/obj/structure/rack,/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/extinguisher,/obj/machinery/button/door{id = "singularity"; name = "Shutters Control"; pixel_y = 25; req_access_txt = "11"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellowcorner"},/area/engine/engineering) "bgt" = (/obj/structure/closet/firecloset,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "yellow"},/area/engine/engineering) "bgu" = (/obj/structure/closet/toolcloset,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "yellow"},/area/engine/engineering) "bgv" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "yellowcorner"},/area/engine/engineering) @@ -3079,8 +3079,8 @@ "bhk" = (/obj/machinery/alarm{dir = 8; pixel_x = 24},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden) "bhl" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -3; pixel_y = 5},/obj/machinery/newscaster/security_unit{pixel_y = -32},/turf/simulated/floor/plasteel{icon_state = "neutralcorner"; dir = 1},/area/security/warden) "bhm" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plasteel,/area/security/warden) -"bhn" = (/obj/machinery/door_control{id = "Prison Gate"; name = "Prison Wing Lockdown"; pixel_y = -26; req_access_txt = "2"},/obj/structure/stool/bed/chair/janicart/secway,/obj/item/key/security,/turf/simulated/floor/plasteel,/area/security/warden) -"bho" = (/obj/machinery/door_control{id = "Secure Gate"; name = "Brig Lockdown"; pixel_y = -26; req_access_txt = "2"},/turf/simulated/floor/plasteel,/area/security/warden) +"bhn" = (/obj/machinery/button/door{id = "Prison Gate"; name = "Prison Wing Lockdown"; pixel_y = -26; req_access_txt = "2"},/obj/structure/stool/bed/chair/janicart/secway,/obj/item/key/security,/turf/simulated/floor/plasteel,/area/security/warden) +"bho" = (/obj/machinery/button/door{id = "Secure Gate"; name = "Brig Lockdown"; pixel_y = -26; req_access_txt = "2"},/turf/simulated/floor/plasteel,/area/security/warden) "bhp" = (/obj/machinery/light_switch{pixel_y = -22},/turf/simulated/floor/plasteel,/area/security/warden) "bhq" = (/obj/machinery/door/airlock/glass_security{desc = "The workplace of the HoS' right hand, the station's Warden, responsible for keeping track of the guns and the prisoners and ensuring they don't mix."; name = "Warden's Office"; req_access_txt = "3"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/warden) "bhr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door_timer{dir = 4; id = "cell4"; name = "Cell Four Timer"; pixel_x = 32},/turf/simulated/floor/plasteel,/area/security/brig) @@ -3368,7 +3368,7 @@ "bmN" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/machinery/newscaster{pixel_y = -32},/turf/simulated/floor/carpet,/area/bridge) "bmO" = (/obj/machinery/vending/coffee,/turf/simulated/floor/wood,/area/bridge) "bmP" = (/obj/effect/spawner/structure/window/reinforced,/turf/simulated/floor/plating,/area/bridge) -"bmQ" = (/obj/machinery/computer/security,/obj/machinery/door_control{id = "Prison Gate"; name = "Prison Wing Lockdown"; pixel_x = -28; pixel_y = 7; req_access_txt = "2"},/obj/machinery/door_control{id = "Secure Gate"; name = "Brig Lockdown"; pixel_x = -28; pixel_y = -3; req_access_txt = "2"},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/wood,/area/security/hos) +"bmQ" = (/obj/machinery/computer/security,/obj/machinery/button/door{id = "Prison Gate"; name = "Prison Wing Lockdown"; pixel_x = -28; pixel_y = 7; req_access_txt = "2"},/obj/machinery/button/door{id = "Secure Gate"; name = "Brig Lockdown"; pixel_x = -28; pixel_y = -3; req_access_txt = "2"},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/wood,/area/security/hos) "bmR" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1},/turf/simulated/floor/wood,/area/security/hos) "bmS" = (/obj/machinery/status_display{pixel_y = -32},/turf/simulated/floor/wood,/area/security/hos) "bmT" = (/obj/machinery/disposal/bin,/obj/machinery/keycard_auth{pixel_y = -24},/obj/machinery/light_switch{dir = 4; pixel_x = 22},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/wood,/area/security/hos) @@ -3411,7 +3411,7 @@ "bnE" = (/obj/structure/noticeboard{dir = 1; pixel_y = -27},/turf/simulated/floor/carpet,/area/bridge) "bnF" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 1},/obj/machinery/light,/turf/simulated/floor/carpet,/area/bridge) "bnG" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/carpet,/area/crew_quarters/sleep_male{name = "Aft Dormitory"}) -"bnH" = (/obj/machinery/door_control{id = "Dorm1s"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/carpet,/area/crew_quarters/sleep_male{name = "Aft Dormitory"}) +"bnH" = (/obj/machinery/button/door{id = "Dorm1s"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/carpet,/area/crew_quarters/sleep_male{name = "Aft Dormitory"}) "bnI" = (/obj/structure/table/wood,/obj/machinery/recharger,/turf/simulated/floor/wood,/area/bridge) "bnJ" = (/obj/structure/closet{name = "Evidence Closet"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/brig) "bnK" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/brig) @@ -3452,8 +3452,8 @@ "bot" = (/mob/living/simple_animal/mouse/brown/Tom,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/nuke_storage) "bou" = (/obj/item/weapon/storage/secure/safe{pixel_x = 32},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/nuke_storage) "bov" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/maintcentral) -"bow" = (/obj/machinery/door_control{id = "Dorm2s"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/carpet,/area/crew_quarters/sleep_male{name = "Aft Dormitory"}) -"box" = (/obj/machinery/door_control{id = "Dorm3s"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/carpet,/area/crew_quarters/sleep_male{name = "Aft Dormitory"}) +"bow" = (/obj/machinery/button/door{id = "Dorm2s"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/carpet,/area/crew_quarters/sleep_male{name = "Aft Dormitory"}) +"box" = (/obj/machinery/button/door{id = "Dorm3s"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/carpet,/area/crew_quarters/sleep_male{name = "Aft Dormitory"}) "boy" = (/obj/structure/table/wood,/turf/simulated/floor/wood,/area/bridge) "boz" = (/obj/structure/closet{name = "Evidence Closet"},/obj/machinery/camera{c_tag = "Evidence Storage"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/brig) "boA" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/brig) @@ -3491,7 +3491,7 @@ "bpg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/maintcentral) "bph" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/bridge) "bpi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal/bin,/turf/simulated/floor/wood,/area/bridge) -"bpj" = (/obj/machinery/door_control{id = "Dorm4s"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/carpet,/area/crew_quarters/sleep_male{name = "Aft Dormitory"}) +"bpj" = (/obj/machinery/button/door{id = "Dorm4s"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/carpet,/area/crew_quarters/sleep_male{name = "Aft Dormitory"}) "bpk" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/yellow,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; pixel_y = 0},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/carpet,/area/crew_quarters/sleep_male{name = "Aft Dormitory"}) "bpl" = (/obj/machinery/light/small,/turf/simulated/floor/carpet,/area/crew_quarters/sleep_male{name = "Aft Dormitory"}) "bpm" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/red,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; pixel_y = 0},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/carpet,/area/crew_quarters/sleep_male{name = "Aft Dormitory"}) @@ -3529,7 +3529,7 @@ "bpS" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/sleep_male{name = "Aft Dormitory"}) "bpT" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Mime"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/sleep_male{name = "Aft Dormitory"}) "bpU" = (/obj/structure/table/wood,/obj/item/weapon/lipstick/random,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/sleep_male{name = "Aft Dormitory"}) -"bpV" = (/obj/machinery/shower{dir = 4},/obj/item/weapon/soap,/obj/item/weapon/bikehorn/rubberducky,/obj/machinery/door_control{id = "shutbath2"; name = "Bathroom Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/sleep_male{name = "Aft Dormitory"}) +"bpV" = (/obj/machinery/shower{dir = 4},/obj/item/weapon/soap,/obj/item/weapon/bikehorn/rubberducky,/obj/machinery/button/door{id = "shutbath2"; name = "Bathroom Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/sleep_male{name = "Aft Dormitory"}) "bpW" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/sleep_male{name = "Aft Dormitory"}) "bpX" = (/obj/machinery/door/airlock{desc = "Basic human needs haven't changed much over the centuries."; name = "Restroom"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/sleep_male{name = "Aft Dormitory"}) "bpY" = (/obj/structure/disposalpipe/segment,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel{icon_state = "neutralcorner"; dir = 1},/area/hallway/primary/starboard{name = "Starboard Hallway"}) @@ -3897,8 +3897,8 @@ "bwW" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/turf/simulated/floor/mech_bay_recharge_floor,/area/assembly/chargebay) "bwX" = (/obj/machinery/computer/mech_bay_power_console,/turf/simulated/floor/plasteel,/area/assembly/chargebay) "bwY" = (/turf/simulated/floor/plasteel,/area/assembly/chargebay) -"bwZ" = (/obj/machinery/door_control{id = "Mechbay"; name = "Mech Bay Door Control"; pixel_x = 24; req_access_txt = "29"},/turf/simulated/floor/plasteel,/area/assembly/chargebay) -"bxa" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{dir = 5},/obj/machinery/door_control{id = "Mechbay"; name = "Mech Bay Door Control"; pixel_x = -24; req_access_txt = "29"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "yellowcorner"},/area/hallway/primary/central{name = "Aft Central Hallway"}) +"bwZ" = (/obj/machinery/button/door{id = "Mechbay"; name = "Mech Bay Door Control"; pixel_x = 24; req_access_txt = "29"},/turf/simulated/floor/plasteel,/area/assembly/chargebay) +"bxa" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{dir = 5},/obj/machinery/button/door{id = "Mechbay"; name = "Mech Bay Door Control"; pixel_x = -24; req_access_txt = "29"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "yellowcorner"},/area/hallway/primary/central{name = "Aft Central Hallway"}) "bxb" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{dir = 4},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "neutralcorner"},/area/hallway/primary/central{name = "Aft Central Hallway"}) "bxc" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "neutralcorner"},/area/hallway/primary/central{name = "Aft Central Hallway"}) "bxd" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/plasteel{icon_state = "neutralcorner"},/area/hallway/primary/central{name = "Aft Central Hallway"}) @@ -4026,7 +4026,7 @@ "bzv" = (/turf/simulated/floor/plating,/area/maintenance/asmaint) "bzw" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/monkeycubes,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) "bzx" = (/obj/structure/sink{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) -"bzy" = (/obj/machinery/door_control{id = "chemTesting"; name = "Containment Blast Doors"; pixel_y = 25; req_access_txt = "5; 33"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/medical/chemistry) +"bzy" = (/obj/machinery/button/door{id = "chemTesting"; name = "Containment Blast Doors"; pixel_y = 25; req_access_txt = "5; 33"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/medical/chemistry) "bzz" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "chemTesting"; name = "Containment Door"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/engine,/area/medical/chemistry) "bzA" = (/turf/simulated/floor/engine,/area/medical/chemistry) "bzB" = (/mob/living/carbon/monkey,/turf/simulated/floor/engine,/area/medical/chemistry) @@ -4269,8 +4269,8 @@ "bEe" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteyellow"},/area/medical/medbay) "bEf" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/medical/medbay) "bEg" = (/obj/machinery/computer/crew,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) -"bEh" = (/obj/structure/stool/bed/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Medical Doctor"},/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "FoyerLeft"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_y = 30; req_access_txt = "5"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) -"bEi" = (/obj/structure/stool/bed/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Medical Doctor"},/obj/structure/disposalpipe/segment,/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "FoyerLeft"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_y = 30; req_access_txt = "5"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) +"bEh" = (/obj/structure/stool/bed/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Medical Doctor"},/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "FoyerLeft"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_y = 30; req_access_txt = "5"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) +"bEi" = (/obj/structure/stool/bed/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Medical Doctor"},/obj/structure/disposalpipe/segment,/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "FoyerLeft"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_y = 30; req_access_txt = "5"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "bEj" = (/obj/machinery/computer/med_data,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "bEk" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/medbay) "bEl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) @@ -4364,7 +4364,7 @@ "bFV" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "whiteblue"},/area/medical/medbay) "bFW" = (/obj/machinery/atmospherics/components/unary/cold_sink/freezer{current_temperature = 80; on = 1},/obj/machinery/status_display{pixel_y = 32},/turf/simulated/floor/plasteel{dir = 9; icon_state = "whiteblue"},/area/medical/medbay) "bFX" = (/obj/machinery/atmospherics/components/unary/cryo_cell,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/medbay) -"bFY" = (/obj/structure/table/glass,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone,/obj/machinery/door_control{desc = "A remote control switch for the medbay cryogenics."; id = "FoyerCryo"; name = "Cryogenics Doors Control"; normaldoorcontrol = 1; pixel_x = -26; pixel_y = -9; req_access_txt = "0"},/obj/item/weapon/wrench,/obj/item/weapon/paper{info = "Due to long lines at the Cryo station, we've implemented a door button to allow people to get out without the aid of an MD. Please use it rather than screaming endlessly."; name = "Notice to Patients"},/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whiteblue"},/area/medical/medbay) +"bFY" = (/obj/structure/table/glass,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone,/obj/machinery/button/door{desc = "A remote control switch for the medbay cryogenics."; id = "FoyerCryo"; name = "Cryogenics Doors Control"; normaldoorcontrol = 1; pixel_x = -26; pixel_y = -9; req_access_txt = "0"},/obj/item/weapon/wrench,/obj/item/weapon/paper{info = "Due to long lines at the Cryo station, we've implemented a door button to allow people to get out without the aid of an MD. Please use it rather than screaming endlessly."; name = "Notice to Patients"},/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whiteblue"},/area/medical/medbay) "bFZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{dir = 9; icon_state = "whiteblue"},/area/medical/surgery) "bGa" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/machinery/light_switch{dir = 1; pixel_y = 22},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/surgery) "bGb" = (/obj/machinery/vending/medical,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/surgery) @@ -4414,10 +4414,10 @@ "bGT" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellow"},/area/medical/chemistry) "bGU" = (/obj/structure/stool/bed/roller,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/medbay) "bGV" = (/obj/structure/grille,/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/medical/medbay) -"bGW" = (/obj/structure/table/reinforced,/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "FoyerLeft"; name = "Medbay Doors Control"; normaldoorcontrol = 1; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/medical/medbay) +"bGW" = (/obj/structure/table/reinforced,/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "FoyerLeft"; name = "Medbay Doors Control"; normaldoorcontrol = 1; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/medical/medbay) "bGX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/medical/medbay) "bGY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/medical/medbay) -"bGZ" = (/obj/structure/table/reinforced,/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "FoyerRight"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_y = 6; req_access_txt = "5"},/obj/machinery/door_control{desc = "A remote control switch for the medbay cryogenics."; id = "FoyerCryo"; name = "Cryogenics Doors Control"; normaldoorcontrol = 1; pixel_y = -6; req_access_txt = "5"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 5},/area/medical/medbay) +"bGZ" = (/obj/structure/table/reinforced,/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "FoyerRight"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_y = 6; req_access_txt = "5"},/obj/machinery/button/door{desc = "A remote control switch for the medbay cryogenics."; id = "FoyerCryo"; name = "Cryogenics Doors Control"; normaldoorcontrol = 1; pixel_y = -6; req_access_txt = "5"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 5},/area/medical/medbay) "bHa" = (/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/medical/medbay) "bHb" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/medbay) "bHc" = (/obj/machinery/door/airlock/glass_medical{desc = "The rapid-treatment center for injured spacemen. Can be exited via the door button."; id_tag = "FoyerCryo"; name = "Medbay Cryogenics"; req_access_txt = "5"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "whiteblue"},/area/medical/medbay) @@ -4441,7 +4441,7 @@ "bHu" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/mine/abandoned) "bHv" = (/obj/machinery/door/airlock/external{name = "External Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/abandoned) "bHw" = (/turf/simulated/wall,/area/mine/abandoned) -"bHx" = (/obj/item/organ/appendix,/obj/effect/decal/cleanable/blood/gibs,/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored) +"bHx" = (/obj/item/organ/internal/appendix,/obj/effect/decal/cleanable/blood/gibs,/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored) "bHy" = (/obj/structure/cable/pink{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bHz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/engineering{name = "Research Power Control"; req_access_txt = "11"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bHA" = (/obj/structure/closet/crate,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -4491,7 +4491,7 @@ "bIs" = (/obj/item/stack/rods,/obj/item/weapon/shard,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "bIt" = (/obj/item/weapon/wrench,/turf/simulated/floor/plasteel/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/abandoned) "bIu" = (/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"bIv" = (/obj/item/apc_frame,/turf/simulated/floor/plasteel,/area/mine/abandoned) +"bIv" = (/obj/item/wallframe/apc,/turf/simulated/floor/plasteel,/area/mine/abandoned) "bIw" = (/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/turf/simulated/floor/plasteel,/area/mine/abandoned) "bIx" = (/obj/structure/computerframe{anchored = 1},/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plasteel,/area/mine/abandoned) "bIy" = (/obj/item/weapon/kitchen/knife/ritual,/obj/effect/decal/cleanable/blood,/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored) @@ -4557,7 +4557,7 @@ "bJG" = (/obj/structure/table,/obj/item/toy/minimeteor,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bJH" = (/obj/structure/stool/bed,/obj/effect/landmark/costume,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bJI" = (/obj/structure/stool/bed,/turf/simulated/floor/plating,/area/maintenance/asmaint2) -"bJJ" = (/obj/machinery/computer/aifixer,/obj/machinery/ai_status_display{pixel_y = 32},/obj/machinery/door_control{id = "Biohazard"; name = "Biohazard Shutter Control"; pixel_x = -24; req_access_txt = "47"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "whiteblue"},/area/crew_quarters/hor) +"bJJ" = (/obj/machinery/computer/aifixer,/obj/machinery/ai_status_display{pixel_y = 32},/obj/machinery/button/door{id = "Biohazard"; name = "Biohazard Shutter Control"; pixel_x = -24; req_access_txt = "47"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "whiteblue"},/area/crew_quarters/hor) "bJK" = (/obj/machinery/computer/robotics,/obj/machinery/firealarm{pixel_y = 25},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/crew_quarters/hor) "bJL" = (/obj/machinery/computer/mecha,/obj/machinery/requests_console{announcementConsole = 1; department = "Research Director's Desk"; departmentType = 5; name = "Research Director RC"; pixel_x = -2; pixel_y = 30},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/crew_quarters/hor) "bJM" = (/obj/structure/closet/secure_closet/RD,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/crew_quarters/hor) @@ -4608,7 +4608,7 @@ "bKF" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/abandoned) "bKG" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/abandoned) "bKH" = (/obj/structure/girder,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/abandoned) -"bKI" = (/obj/item/organ/heart{beating = 0},/obj/effect/decal/cleanable/blood/gibs,/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored) +"bKI" = (/obj/item/organ/internal/heart{beating = 0},/obj/effect/decal/cleanable/blood/gibs,/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored) "bKJ" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/ectoplasm,/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored) "bKK" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bKL" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/machinery/camera{c_tag = "Research Atmospheric Control"},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -4632,13 +4632,13 @@ "bLd" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteyellow"},/area/medical/chemistry) "bLe" = (/obj/machinery/chem_heater,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) "bLf" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellow"},/area/medical/chemistry) -"bLg" = (/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "FoyerLeft"; name = "Medbay Exit Button"; normaldoorcontrol = 1; pixel_y = 26},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/machinery/camera{c_tag = "Medbay Port"},/turf/simulated/floor/plasteel{icon_state = "whiteyellowcorner"; dir = 8},/area/medical/medbay2) +"bLg" = (/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "FoyerLeft"; name = "Medbay Exit Button"; normaldoorcontrol = 1; pixel_y = 26},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/machinery/camera{c_tag = "Medbay Port"},/turf/simulated/floor/plasteel{icon_state = "whiteyellowcorner"; dir = 8},/area/medical/medbay2) "bLh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay2) "bLi" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay2) "bLj" = (/obj/structure/disposalpipe/segment,/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{icon_state = "whitered"; dir = 4},/area/medical/medbay2) "bLk" = (/obj/structure/grille,/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/medical/medbay) "bLl" = (/obj/machinery/door/airlock/glass_security{name = "Security Post"; req_access_txt = "63"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitered"},/area/medical/medbay) -"bLm" = (/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "FoyerRight"; name = "Medbay Exit Button"; normaldoorcontrol = 1; pixel_y = 26},/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{icon_state = "whitered"; dir = 8},/area/medical/medbay2) +"bLm" = (/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "FoyerRight"; name = "Medbay Exit Button"; normaldoorcontrol = 1; pixel_y = 26},/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{icon_state = "whitered"; dir = 8},/area/medical/medbay2) "bLn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay2) "bLo" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay2) "bLp" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/medbay2) @@ -4850,7 +4850,7 @@ "bPn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/stool/bed/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Geneticist"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/genetics) "bPo" = (/obj/structure/table/glass,/obj/item/weapon/paper_bin,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/genetics) "bPp" = (/obj/machinery/requests_console{department = "Genetics"; name = "Genetics Requests Console"; pixel_y = 30},/obj/structure/table/glass,/obj/item/weapon/book/manual/medical_cloning,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/genetics) -"bPq" = (/obj/machinery/door_control{desc = "A remote control switch for the cloning door."; id = "CloningDoor"; name = "Cloning Exit Button"; normaldoorcontrol = 1; pixel_x = 23; pixel_y = -5},/obj/machinery/light_switch{dir = 4; pixel_x = 22; pixel_y = 7},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whiteblue"},/area/medical/genetics) +"bPq" = (/obj/machinery/button/door{desc = "A remote control switch for the cloning door."; id = "CloningDoor"; name = "Cloning Exit Button"; normaldoorcontrol = 1; pixel_x = 23; pixel_y = -5},/obj/machinery/light_switch{dir = 4; pixel_x = 22; pixel_y = 7},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whiteblue"},/area/medical/genetics) "bPr" = (/obj/effect/spawner/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/medbay2) "bPs" = (/obj/machinery/door/airlock/glass_medical{desc = "A storage area for important medical supplies, including a medical hardsuit for SAR operations."; name = "Medbay Storage"; req_access_txt = "45"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "whitebluefull"},/area/medical/medbay2) "bPt" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/medical/medbay2) @@ -5140,7 +5140,7 @@ "bUR" = (/turf/simulated/wall,/area/maintenance/asmaint2{icon_state = "toxtest"; name = "Toxins Launch Room"}) "bUS" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 4; frequency = 1443; id = "air_in"},/turf/simulated/floor/engine/vacuum,/area/toxins/mixing) "bUT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/components/binary/pump{dir = 8; on = 1},/obj/structure/sign/fire{pixel_y = -32},/obj/machinery/light/small,/turf/simulated/floor/engine,/area/toxins/mixing) -"bUU" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/meter,/obj/machinery/door_control{id = "mixvent"; name = "Mixing Room Vent Control"; pixel_x = -25; pixel_y = 5; req_access_txt = "7"},/obj/machinery/ignition_switch{id = "mixingsparker"; pixel_x = -25; pixel_y = -5},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhitecorner"},/area/toxins/mixing) +"bUU" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/meter,/obj/machinery/button/door{id = "mixvent"; name = "Mixing Room Vent Control"; pixel_x = -25; pixel_y = 5; req_access_txt = "7"},/obj/machinery/button/ignition{id = "mixingsparker"; pixel_x = -25; pixel_y = -5},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhitecorner"},/area/toxins/mixing) "bUV" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/mixing) "bUW" = (/obj/structure/stool/bed/chair/office/light,/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/mixing) "bUX" = (/obj/item/device/assembly/signaler{pixel_y = 8},/obj/item/device/assembly/signaler{pixel_x = -8; pixel_y = 5},/obj/item/device/assembly/signaler{pixel_x = 6; pixel_y = 5},/obj/item/device/assembly/signaler{pixel_x = -2; pixel_y = -2},/obj/structure/table/glass,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurple"},/area/toxins/mixing) @@ -5401,7 +5401,7 @@ "bZS" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/light_switch{dir = 4; pixel_x = 22},/turf/simulated/floor/plasteel{icon_state = "neutralcorner"},/area/hallway/primary/aft{name = "Aft Hallway"}) "bZT" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "bZU" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) -"bZV" = (/obj/machinery/crema_switch{pixel_x = 25},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) +"bZV" = (/obj/machinery/button/crematorium{pixel_x = 25},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "bZW" = (/obj/machinery/camera{c_tag = "Chapel Office"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "bZX" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/carpet,/area/chapel/main) "bZY" = (/turf/simulated/floor/carpet,/area/chapel/main) @@ -5427,7 +5427,7 @@ "cas" = (/turf/simulated/floor/plasteel/airless{dir = 6; icon_state = "warning"},/area/toxins/test_area) "cat" = (/turf/simulated/floor/plasteel/airless{dir = 10; icon_state = "warning"},/area/toxins/test_area) "cau" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless{dir = 6; icon_state = "warning"},/area/toxins/test_area) -"cav" = (/obj/structure/table/glass,/obj/machinery/driver_button{id = "toxinsdriver"; pixel_x = -24},/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/simulated/floor/plasteel,/area/maintenance/asmaint2{icon_state = "toxtest"; name = "Toxins Launch Room"}) +"cav" = (/obj/structure/table/glass,/obj/machinery/button/massdriver{id = "toxinsdriver"; pixel_x = -24},/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/simulated/floor/plasteel,/area/maintenance/asmaint2{icon_state = "toxtest"; name = "Toxins Launch Room"}) "caw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/machinery/doppler_array,/turf/simulated/floor/plasteel,/area/maintenance/asmaint2{icon_state = "toxtest"; name = "Toxins Launch Room"}) "cax" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/machinery/alarm{dir = 8; pixel_x = 22},/turf/simulated/floor/plasteel,/area/maintenance/asmaint2{icon_state = "toxtest"; name = "Toxins Launch Room"}) "cay" = (/obj/structure/stool/bed/chair{dir = 4},/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -5579,7 +5579,7 @@ "cdo" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = -32},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 10},/area/medical/research{name = "Research Division"}) "cdp" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/turf/simulated/floor/plasteel{icon_state = "red"},/area/medical/research{name = "Research Division"}) "cdq" = (/turf/simulated/floor/plasteel{icon_state = "red"},/area/medical/research{name = "Research Division"}) -"cdr" = (/obj/structure/table/glass,/obj/machinery/firealarm{dir = 1; pixel_x = -3; pixel_y = -24},/obj/machinery/light_switch{name = "light switch "; pixel_x = 11; pixel_y = -22},/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "ResearchFoyer"; name = "Research Door Control"; normaldoorcontrol = 1; pixel_y = -4},/obj/machinery/door_control{id = "Biohazard"; name = "Biohazard Shutter Control"; pixel_y = 6; req_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 6},/area/medical/research{name = "Research Division"}) +"cdr" = (/obj/structure/table/glass,/obj/machinery/firealarm{dir = 1; pixel_x = -3; pixel_y = -24},/obj/machinery/light_switch{name = "light switch "; pixel_x = 11; pixel_y = -22},/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "ResearchFoyer"; name = "Research Door Control"; normaldoorcontrol = 1; pixel_y = -4},/obj/machinery/button/door{id = "Biohazard"; name = "Biohazard Shutter Control"; pixel_y = 6; req_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 6},/area/medical/research{name = "Research Division"}) "cds" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "whitered"; dir = 8},/area/medical/research{name = "Research Division"}) "cdt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cdu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/medical/research{name = "Research Division"}) @@ -5605,7 +5605,7 @@ "cdO" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/plating,/area/maintenance/incinerator) "cdP" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/simulated/floor/plating,/area/maintenance/incinerator) "cdQ" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/simulated/floor/plating,/area/maintenance/incinerator) -"cdR" = (/obj/machinery/ignition_switch{id = "Incinerator"; pixel_x = 24; pixel_y = 8},/obj/machinery/door_control{id = "disvent"; name = "Incinerator Vent Control"; pixel_y = -24; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/meter,/obj/machinery/light/small,/turf/simulated/floor/plating{icon_state = "warnplatecorner"; dir = 8},/area/maintenance/incinerator) +"cdR" = (/obj/machinery/button/ignition{id = "Incinerator"; pixel_x = 24; pixel_y = 8},/obj/machinery/button/door{id = "disvent"; name = "Incinerator Vent Control"; pixel_y = -24; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/meter,/obj/machinery/light/small,/turf/simulated/floor/plating{icon_state = "warnplatecorner"; dir = 8},/area/maintenance/incinerator) "cdS" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/simulated/wall/r_wall,/area/maintenance/incinerator) "cdT" = (/obj/machinery/doorButtons/access_button{idDoor = "incinerator_airlock_interior"; idSelf = "incinerator_access_control"; name = "Incinerator airlock control"; pixel_x = 24; pixel_y = 8},/obj/structure/sign/fire{pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/incinerator) "cdU" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1443; id = "air_in"},/obj/machinery/sparker{id = "Incinerator"; pixel_x = -25},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator) @@ -5691,7 +5691,7 @@ "cfw" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/status_display{pixel_y = 32},/turf/simulated/floor/plasteel/shuttle,/area/shuttle/pod_3) "cfx" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/wall/shuttle{icon_state = "swall_f5"},/area/shuttle/pod_3) "cfy" = (/turf/space,/turf/simulated/wall/shuttle{icon_state = "swall_f9"},/area/shuttle/pod_3) -"cfz" = (/obj/machinery/door_control{id = "mixedvent"; name = "Gas Mix Emergency Vent Control"; pixel_x = 0; pixel_y = 24},/obj/machinery/door/window/eastright,/turf/simulated/floor/plasteel,/area/atmos) +"cfz" = (/obj/machinery/button/door{id = "mixedvent"; name = "Gas Mix Emergency Vent Control"; pixel_x = 0; pixel_y = 24},/obj/machinery/door/window/eastright,/turf/simulated/floor/plasteel,/area/atmos) "cfA" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/atmos) "cfB" = (/turf/simulated/floor/plasteel/airless{dir = 4; icon_state = "warningcorner"},/area/toxins/test_area) "cfC" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/toxins/storage) @@ -5769,7 +5769,7 @@ "cgW" = (/obj/structure/cable/pink{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) "cgX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) "cgY" = (/obj/machinery/camera{c_tag = "Xenobiology Starboard"; dir = 6; network = list("SS13","RD")},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/toxins/xenobiology) -"cgZ" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio3"; name = "Containment Blast Doors"; req_access_txt = "55"},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/toxins/xenobiology) +"cgZ" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio3"; name = "Containment Blast Doors"; req_access_txt = "55"},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/toxins/xenobiology) "cha" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "Containment Door"},/obj/structure/cable/pink{d2 = 2; icon_state = "0-2"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/toxins/xenobiology) "chb" = (/turf/simulated/floor/engine,/area/toxins/xenobiology) "chc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/toxins/explab) @@ -5846,7 +5846,7 @@ "civ" = (/obj/item/weapon/storage/backpack,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/maintenance/asmaint2) "ciw" = (/obj/item/weapon/reagent_containers/glass/beaker,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/maintenance/asmaint2) "cix" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "Containment Door"},/obj/structure/cable/pink,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/toxins/xenobiology) -"ciy" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio2"; name = "Containment Blast Doors"; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/xenobiology) +"ciy" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio2"; name = "Containment Blast Doors"; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/xenobiology) "ciz" = (/obj/structure/cable/pink{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/toxins/xenobiology) "ciA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) "ciB" = (/obj/structure/cable/pink{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/toxins/xenobiology) @@ -5914,7 +5914,7 @@ "cjL" = (/obj/structure/table,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/reagent_containers/spray/plantbgone,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/maintenance/asmaint2) "cjM" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "Containment Door"},/obj/structure/cable/pink{d2 = 2; icon_state = "0-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/toxins/xenobiology) "cjN" = (/obj/machinery/disposal/bin,/obj/structure/sign/electricshock{pixel_y = 32},/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/xenobiology) -"cjO" = (/obj/structure/table/reinforced,/obj/structure/sign/electricshock{pixel_y = 32},/obj/machinery/door_control{id = "xenobio4"; name = "Containment Blast Doors"; req_access_txt = "55"},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/toxins/xenobiology) +"cjO" = (/obj/structure/table/reinforced,/obj/structure/sign/electricshock{pixel_y = 32},/obj/machinery/button/door{id = "xenobio4"; name = "Containment Blast Doors"; req_access_txt = "55"},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/toxins/xenobiology) "cjP" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "xenobio4"; name = "Containment Door"},/obj/structure/cable/pink{d2 = 2; icon_state = "0-2"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/toxins/xenobiology) "cjQ" = (/obj/structure/table,/obj/item/device/radio/off,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) "cjR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) @@ -5944,7 +5944,7 @@ "ckp" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 0; pixel_y = 6},/obj/item/weapon/pen,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) "ckq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/book/manual/experimentor,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) "ckr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/computer/rdconsole/experiment,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) -"cks" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1},/obj/machinery/door_control{id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = 25; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"cks" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1},/obj/machinery/button/door{id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = 25; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) "ckt" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plating,/area/teleporter) "cku" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/hallway/secondary/exit) "ckv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit) @@ -5979,7 +5979,7 @@ "ckY" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/machinery/meter,/turf/simulated/floor/plasteel,/area/atmos) "ckZ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "o2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/atmos) "cla" = (/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/atmos) -"clb" = (/obj/machinery/light/small,/obj/machinery/door_control{id = "bar1"; name = "Bolts Control"; normaldoorcontrol = 1; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/maintenance/asmaint2) +"clb" = (/obj/machinery/light/small,/obj/machinery/button/door{id = "bar1"; name = "Bolts Control"; normaldoorcontrol = 1; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/maintenance/asmaint2) "clc" = (/obj/machinery/door/airlock/hatch{id_tag = "bar1"; name = "Private Room 1"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "cld" = (/turf/simulated/floor/plasteel{icon_state = "damaged3"},/area/maintenance/asmaint2) "cle" = (/turf/simulated/floor/plating{icon_state = "panelscorched"},/area/maintenance/asmaint2) @@ -5989,7 +5989,7 @@ "cli" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "clj" = (/obj/structure/sink/kitchen{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/maintenance/asmaint2) "clk" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "Containment Door"},/obj/structure/cable/pink,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cll" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio1"; name = "Containment Blast Doors"; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/xenobiology) +"cll" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio1"; name = "Containment Blast Doors"; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/xenobiology) "clm" = (/obj/machinery/processor{desc = "A machine used to process slimes and retrieve their extract."; name = "Slime Processor"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) "cln" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "xenobio4"; name = "Containment Door"},/obj/structure/cable/pink,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/toxins/xenobiology) "clo" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "telelab"; name = "test chamber blast door"},/turf/simulated/floor/plating,/area/toxins/explab) @@ -6060,7 +6060,7 @@ "cmB" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored) "cmC" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "o2_in"},/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/atmos) "cmD" = (/obj/structure/stool,/turf/simulated/floor/plating{icon_state = "panelscorched"},/area/maintenance/asmaint2) -"cmE" = (/obj/machinery/light/small{dir = 1},/obj/machinery/door_control{id = "bar2"; name = "Bolts Control"; normaldoorcontrol = 1; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"cmE" = (/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "bar2"; name = "Bolts Control"; normaldoorcontrol = 1; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "cmF" = (/obj/machinery/door/airlock/hatch{id_tag = "bar2"; name = "Private Room 2"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "cmG" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = -5; pixel_y = 2},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = 4; pixel_y = 5},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = 6; pixel_y = -1},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "cmH" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/rag,/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -6071,7 +6071,7 @@ "cmM" = (/obj/structure/cable/pink{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/pink{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhitecorner"},/area/toxins/xenobiology) "cmN" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) "cmO" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cmP" = (/obj/structure/table/reinforced,/obj/structure/sign/electricshock{pixel_y = 32},/obj/machinery/door_control{id = "xenobio5"; name = "Containment Blast Doors"; req_access_txt = "55"},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/toxins/xenobiology) +"cmP" = (/obj/structure/table/reinforced,/obj/structure/sign/electricshock{pixel_y = 32},/obj/machinery/button/door{id = "xenobio5"; name = "Containment Blast Doors"; req_access_txt = "55"},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/toxins/xenobiology) "cmQ" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "xenobio5"; name = "Containment Door"},/obj/structure/cable/pink{d2 = 2; icon_state = "0-2"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/toxins/xenobiology) "cmR" = (/obj/machinery/r_n_d/experimentor,/turf/simulated/floor/engine,/area/toxins/explab) "cmS" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/engine,/area/toxins/explab) @@ -6123,7 +6123,7 @@ "cnM" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/simulated/floor/engine,/area/toxins/xenobiology) "cnN" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/structure/sign/electricshock{pixel_y = 32},/turf/simulated/floor/engine,/area/toxins/xenobiology) "cnO" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "Test Chamber Containment Door"},/obj/structure/cable/pink{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/pink{d2 = 2; icon_state = "0-2"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/toxins/xenobiology) -"cnP" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/ignition_switch{id = "Xenobio"; pixel_x = -6; pixel_y = -2},/obj/machinery/door_control{id = "Xenolab"; name = "Test Chamber Blast Doors"; pixel_x = 4; pixel_y = -2; req_access_txt = "55"},/obj/item/weapon/wrench,/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/toxins/xenobiology) +"cnP" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/button/ignition{id = "Xenobio"; pixel_x = -6; pixel_y = -2},/obj/machinery/button/door{id = "Xenolab"; name = "Test Chamber Blast Doors"; pixel_x = 4; pixel_y = -2; req_access_txt = "55"},/obj/item/weapon/wrench,/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/toxins/xenobiology) "cnQ" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1; initialize_directions = 11},/obj/structure/cable/pink{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) "cnR" = (/obj/structure/table/glass,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) "cnS" = (/obj/machinery/smartfridge/extract,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) @@ -6140,7 +6140,7 @@ "cod" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 6; icon_state = "yellow"},/area/atmos) "coe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/atmos) "cof" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "To Mix"},/turf/simulated/floor/plasteel,/area/atmos) -"cog" = (/obj/structure/toilet{cistern = 1; desc = "The HT-451, a torque rotation-based, waste disposal unit for small matter. This one has a heart drawn on the cistern."; dir = 4},/obj/machinery/door_control{id = "barbath"; name = "Bolts Control"; normaldoorcontrol = 1; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint2) +"cog" = (/obj/structure/toilet{cistern = 1; desc = "The HT-451, a torque rotation-based, waste disposal unit for small matter. This one has a heart drawn on the cistern."; dir = 4},/obj/machinery/button/door{id = "barbath"; name = "Bolts Control"; normaldoorcontrol = 1; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint2) "coh" = (/obj/structure/sink{pixel_y = 32},/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/maintenance/asmaint2) "coi" = (/obj/machinery/door/airlock/maintenance_hatch{id_tag = "barbath"; name = "Bathroom"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "coj" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/simulated/floor/plasteel,/area/maintenance/asmaint2) diff --git a/_maps/map_files/AsteroidStation/z2.dmm b/_maps/map_files/AsteroidStation/z2.dmm index b10d5b27b2a..8294dd9d383 100644 --- a/_maps/map_files/AsteroidStation/z2.dmm +++ b/_maps/map_files/AsteroidStation/z2.dmm @@ -180,7 +180,7 @@ "dx" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/simulated/floor/plasteel/redyellow,/area/tdome/tdomeadmin) "dy" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{pixel_y = 0},/turf/simulated/floor/plasteel/redyellow,/area/tdome/tdomeadmin) "dz" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/simulated/floor/plasteel/redyellow,/area/tdome/tdomeadmin) -"dA" = (/obj/machinery/flasher_button{id = "tdomeflash"; pixel_x = 0; pixel_y = 0},/obj/structure/table,/turf/simulated/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"dA" = (/obj/machinery/button/flasher{id = "tdomeflash"; pixel_x = 0; pixel_y = 0},/obj/structure/table,/turf/simulated/floor/plasteel/redyellow,/area/tdome/tdomeadmin) "dB" = (/turf/simulated/wall/shuttle{icon_state = "swall12"; dir = 2},/area/centcom/evac) "dC" = (/turf/simulated/wall/shuttle{icon_state = "swallc1"; dir = 2},/area/centcom/evac) "dD" = (/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/centcom/evac) @@ -198,9 +198,9 @@ "dP" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/simulated/floor/plasteel/shuttle,/area/centcom/evac) "dQ" = (/obj/structure/table,/obj/item/device/flash/handheld,/turf/simulated/floor/plasteel/shuttle,/area/centcom/evac) "dR" = (/turf/indestructible/fakedoor{name = "Thunderdome Admin"},/area/tdome/tdomeadmin) -"dS" = (/obj/structure/table,/obj/machinery/door_control{id = "thunderdomehea"; name = "Heavy Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/simulated/floor/plasteel,/area/tdome/tdomeadmin) -"dT" = (/obj/structure/table,/obj/machinery/door_control{id = "thunderdome"; name = "Main Blast Doors Control"; pixel_y = 0; req_access_txt = "102"},/turf/simulated/floor/plasteel,/area/tdome/tdomeadmin) -"dU" = (/obj/structure/table,/obj/machinery/door_control{id = "thunderdomegen"; name = "General Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/simulated/floor/plasteel,/area/tdome/tdomeadmin) +"dS" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdomehea"; name = "Heavy Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/simulated/floor/plasteel,/area/tdome/tdomeadmin) +"dT" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdome"; name = "Main Blast Doors Control"; pixel_y = 0; req_access_txt = "102"},/turf/simulated/floor/plasteel,/area/tdome/tdomeadmin) +"dU" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdomegen"; name = "General Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/simulated/floor/plasteel,/area/tdome/tdomeadmin) "dV" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/simulated/floor/plasteel/shuttle,/area/centcom/evac) "dW" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 4; icon_state = "right"; name = "Security Desk"; req_access_txt = "103"},/turf/simulated/floor/plasteel/shuttle,/area/centcom/evac) "dX" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel/shuttle,/area/centcom/evac) @@ -275,7 +275,7 @@ "fo" = (/turf/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry) "fp" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry) "fq" = (/obj/structure/stool/bed/chair/comfy/black{dir = 1},/turf/simulated/floor/carpet,/area/centcom/ferry) -"fr" = (/obj/machinery/door_control{id = "adminshut"; name = "Administrative Shutter-Control"; pixel_y = 26},/turf/simulated/floor/carpet,/area/centcom/ferry) +"fr" = (/obj/machinery/button/door{id = "adminshut"; name = "Administrative Shutter-Control"; pixel_y = 26},/turf/simulated/floor/carpet,/area/centcom/ferry) "fs" = (/turf/simulated/floor/plasteel,/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/simulated/wall/shuttle{icon_state = "swall_f6"; dir = 2},/area/shuttle/transport) "ft" = (/turf/simulated/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/transport) "fu" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/floor/plating,/area/shuttle/transport) @@ -342,7 +342,7 @@ "gD" = (/obj/machinery/door/airlock/centcom{name = "Centcom Customs"; opacity = 1; req_access_txt = "109"},/turf/simulated/floor/plasteel/black,/area/centcom/control) "gE" = (/turf/simulated/floor/plasteel/black,/area/centcom/control) "gF" = (/obj/structure/table,/turf/simulated/floor/plasteel/black,/area/centcom/control) -"gG" = (/obj/machinery/door_control{id = "QMLoaddoor"; name = "Loading Doors"; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/plasteel/shuttle,/area/shuttle/supply) +"gG" = (/obj/machinery/button/door{id = "QMLoaddoor"; name = "Loading Doors"; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/plasteel/shuttle,/area/shuttle/supply) "gH" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/turf/space,/area/shuttle/supply) "gI" = (/turf/indestructible/riveted,/area/centcom/supply) "gJ" = (/turf/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/control) @@ -354,7 +354,7 @@ "gP" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/floor/plating/airless,/area/shuttle/escape) "gQ" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) "gR" = (/turf/simulated/floor/plasteel/green/side{dir = 4},/area/centcom/control) -"gS" = (/obj/machinery/door_control{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; name = "Security Doors"; pixel_y = 28; req_access_txt = "101"},/obj/structure/showcase/fakeid,/turf/simulated/floor/plasteel/black,/area/centcom/control) +"gS" = (/obj/machinery/button/door{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; name = "Security Doors"; pixel_y = 28; req_access_txt = "101"},/obj/structure/showcase/fakeid,/turf/simulated/floor/plasteel/black,/area/centcom/control) "gT" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/simulated/floor/plasteel/black,/area/centcom/control) "gU" = (/obj/structure/table,/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/item/weapon/paper/centcom,/turf/simulated/floor/plasteel/black,/area/centcom/control) "gV" = (/obj/effect/landmark/start,/turf/simulated/floor/plating,/area/start) @@ -559,7 +559,7 @@ "kM" = (/obj/machinery/computer/shuttle/syndicate,/turf/simulated/floor/plasteel/shuttle/red/syndicate,/area/shuttle/syndicate) "kN" = (/obj/structure/table,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 1},/turf/simulated/floor/plasteel/shuttle/red/syndicate,/area/shuttle/syndicate) "kO" = (/obj/structure/computerframe,/turf/simulated/floor/plasteel/shuttle/red/syndicate,/area/shuttle/syndicate) -"kP" = (/obj/structure/table,/obj/machinery/door_control{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/simulated/floor/plasteel/shuttle/red/syndicate,/area/shuttle/syndicate) +"kP" = (/obj/structure/table,/obj/machinery/button/door{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/simulated/floor/plasteel/shuttle/red/syndicate,/area/shuttle/syndicate) "kQ" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/floor/plasteel/shuttle/red/syndicate,/area/shuttle/syndicate) "kR" = (/obj/structure/stool/bed/chair/comfy/black{dir = 1; icon_state = "comfychair"; name = "pilot's chair"; tag = "icon-comfychair (NORTH)"},/turf/simulated/floor/plasteel/shuttle/red/syndicate,/area/shuttle/syndicate) "kS" = (/turf/simulated/floor/plating/snow,/turf/simulated/floor/plating/snow/gravsnow/corner{dir = 8},/area/syndicate_mothership) @@ -635,14 +635,14 @@ "mk" = (/obj/structure/stool,/turf/simulated/floor/plasteel/shuttle/red/syndicate,/area/shuttle/syndicate) "ml" = (/turf/indestructible/fakeglass,/area/syndicate_mothership) "mm" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/simulated/floor/plating,/area/syndicate_mothership) -"mn" = (/obj/machinery/door_control{id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; pixel_y = 0; req_access_txt = "151"},/turf/simulated/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"mn" = (/obj/machinery/button/door{id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; pixel_y = 0; req_access_txt = "151"},/turf/simulated/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) "mo" = (/obj/machinery/computer/telecrystals/uplinker,/turf/simulated/floor/plasteel/podhatch{dir = 10},/area/syndicate_mothership) "mp" = (/obj/structure/urinal{pixel_y = 28},/turf/simulated/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) "mq" = (/obj/structure/toilet{pixel_y = 8},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/obj/machinery/door/window{name = "Tactical Toilet"; opacity = 1},/turf/simulated/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) "mr" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood,/turf/simulated/floor/plasteel/cult{icon_state = "cultdamage6"},/area/wizard_station) "ms" = (/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel/cult{icon_state = "cultdamage"},/area/wizard_station) "mt" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/floor/plasteel/shuttle/red/syndicate,/area/shuttle/syndicate) -"mu" = (/obj/machinery/door/poddoor{auto_close = 300; id = "smindicate"; name = "outer blast door"},/obj/machinery/door_control{id = "smindicate"; name = "external door control"; pixel_x = -26; pixel_y = 0; req_access_txt = "150"},/obj/docking_port/mobile{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate"; name = "syndicate infiltrator"; travelDir = 180; width = 18},/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_away"; name = "syndicate recon outpost"; turf_type = /turf/simulated/floor/plating/snow; width = 18},/turf/simulated/floor/plasteel/shuttle/red/syndicate,/area/shuttle/syndicate) +"mu" = (/obj/machinery/door/poddoor{auto_close = 300; id = "smindicate"; name = "outer blast door"},/obj/machinery/button/door{id = "smindicate"; name = "external door control"; pixel_x = -26; pixel_y = 0; req_access_txt = "150"},/obj/docking_port/mobile{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate"; name = "syndicate infiltrator"; travelDir = 180; width = 18},/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_away"; name = "syndicate recon outpost"; turf_type = /turf/simulated/floor/plating/snow; width = 18},/turf/simulated/floor/plasteel/shuttle/red/syndicate,/area/shuttle/syndicate) "mv" = (/obj/structure/table,/obj/item/weapon/c4{pixel_x = 2; pixel_y = 1},/turf/simulated/floor/plasteel/shuttle/red/syndicate,/area/shuttle/syndicate) "mw" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate) "mx" = (/turf/simulated/floor/plating/snow,/turf/simulated/floor/plating/snow/gravsnow/corner{dir = 5},/area/syndicate_mothership) diff --git a/_maps/map_files/MetaStation/MetaStation.v41F.dmm b/_maps/map_files/MetaStation/MetaStation.v41F.dmm index dae47adebe4..2ab144c2822 100644 --- a/_maps/map_files/MetaStation/MetaStation.v41F.dmm +++ b/_maps/map_files/MetaStation/MetaStation.v41F.dmm @@ -132,7 +132,7 @@ "acB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "acC" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "acD" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/device/taperecorder{pixel_x = -3; pixel_y = 0},/obj/item/weapon/storage/fancy/cigarettes,/obj/item/device/flash/handheld,/obj/item/weapon/reagent_containers/spray/pepper,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkred"; tag = "icon-darkblue"},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"acE" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_x = -4; pixel_y = 1},/obj/item/weapon/reagent_containers/glass/bottle/chloralhydrate{name = "chloral hydrate bottle"},/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 6; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_x = 5; pixel_y = 1},/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/glass/bottle/facid{name = "fluorosulfuric acid bottle"; pixel_x = -3; pixel_y = 6},/obj/item/weapon/reagent_containers/syringe{pixel_y = 5},/obj/item/weapon/reagent_containers/dropper,/obj/machinery/alarm{desc = "This particular atmos control unit appears to have no access restrictions."; dir = 4; icon_state = "alarm0"; locked = 0; name = "all-access air alarm"; pixel_x = -24; req_access = "0"; req_one_access = "0"},/obj/machinery/ignition_switch{id = "executionburn"; name = "Justice Ignition Switch"; pixel_x = -25; pixel_y = 36},/obj/machinery/door_control{id = "executionfireblast"; name = "Justice Area Lockdown"; pixel_x = -25; pixel_y = 26; req_access_txt = "2"},/obj/item/device/assembly/signaler{pixel_x = -3; pixel_y = 2},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/machinery/flasher_button{id = "justiceflash"; name = "Justice Flash Control"; pixel_x = -36; pixel_y = 36; req_access_txt = "1"},/obj/machinery/door_control{dir = 2; id = "SecJusticeChamber"; layer = 4; name = "Justice Vent Control"; pixel_x = -36; pixel_y = 26; req_access_txt = "3"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkred"; tag = "icon-darkblue"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"acE" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_x = -4; pixel_y = 1},/obj/item/weapon/reagent_containers/glass/bottle/chloralhydrate{name = "chloral hydrate bottle"},/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 6; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_x = 5; pixel_y = 1},/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/glass/bottle/facid{name = "fluorosulfuric acid bottle"; pixel_x = -3; pixel_y = 6},/obj/item/weapon/reagent_containers/syringe{pixel_y = 5},/obj/item/weapon/reagent_containers/dropper,/obj/machinery/alarm{desc = "This particular atmos control unit appears to have no access restrictions."; dir = 4; icon_state = "alarm0"; locked = 0; name = "all-access air alarm"; pixel_x = -24; req_access = "0"; req_one_access = "0"},/obj/machinery/button/ignition{id = "executionburn"; name = "Justice Ignition Switch"; pixel_x = -25; pixel_y = 36},/obj/machinery/button/door{id = "executionfireblast"; name = "Justice Area Lockdown"; pixel_x = -25; pixel_y = 26; req_access_txt = "2"},/obj/item/device/assembly/signaler{pixel_x = -3; pixel_y = 2},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/machinery/button/flasher{id = "justiceflash"; name = "Justice Flash Control"; pixel_x = -36; pixel_y = 36; req_access_txt = "1"},/obj/machinery/button/door{dir = 2; id = "SecJusticeChamber"; layer = 4; name = "Justice Vent Control"; pixel_x = -36; pixel_y = 26; req_access_txt = "3"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkred"; tag = "icon-darkblue"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "acF" = (/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkred"; tag = "icon-darkblue"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "acG" = (/obj/item/stack/cable_coil,/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxstarboard) "acH" = (/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/security/prison) @@ -173,12 +173,12 @@ "adq" = (/obj/structure/stool/bed,/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/glasses/sunglasses/blindfold,/obj/item/clothing/mask/muzzle,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/landmark{name = "revenantspawn"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/prison) "adr" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "ads" = (/obj/structure/stool/bed,/obj/machinery/camera{c_tag = "Prison Cell 3"; network = list("SS13","Prison")},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) -"adt" = (/obj/structure/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/door_control{id = "permabolt3"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) +"adt" = (/obj/structure/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "permabolt3"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "adu" = (/obj/structure/stool/bed,/obj/machinery/camera{c_tag = "Prison Cell 2"; network = list("SS13","Prison")},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "adv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) -"adw" = (/obj/structure/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/door_control{id = "permabolt2"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/security/prison) +"adw" = (/obj/structure/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "permabolt2"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/security/prison) "adx" = (/obj/structure/stool/bed,/obj/machinery/camera{c_tag = "Prison Cell 1"; network = list("SS13","Prison")},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) -"ady" = (/obj/structure/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/door_control{id = "permabolt1"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) +"ady" = (/obj/structure/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "permabolt1"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "adz" = (/obj/machinery/atmospherics/pipe/simple/general/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "adA" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/firealarm{dir = 4; pixel_x = 28},/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "adB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel{dir = 2; icon_state = "darkred"; tag = "icon-darkblue"},/area/prison/solitary{name = "Prisoner Education Chamber"}) @@ -203,7 +203,7 @@ "adU" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10},/obj/machinery/meter,/obj/machinery/door/window/westleft{base_state = "left"; dir = 1; icon_state = "left"; name = "gas ports"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "adV" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "adW" = (/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) -"adX" = (/obj/machinery/door_control{id = "prisonereducation"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/simulated/floor/plasteel{dir = 2; icon_state = "darkred"; tag = "icon-darkblue"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"adX" = (/obj/machinery/button/door{id = "prisonereducation"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/simulated/floor/plasteel{dir = 2; icon_state = "darkred"; tag = "icon-darkblue"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "adY" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/floor/plating,/area/shuttle/pod_3) "adZ" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/wall/shuttle{icon_state = "swall_f5"; dir = 2},/area/shuttle/pod_3) "aea" = (/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) @@ -241,15 +241,15 @@ "aeG" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/sleeping_agent,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "aeH" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/obj/machinery/space_heater,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "aeI" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) -"aeJ" = (/obj/machinery/door_control{id = "permacell3"; name = "Cell 3 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/flasher_button{id = "PCell 3"; pixel_x = 6; pixel_y = 24},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) +"aeJ" = (/obj/machinery/button/door{id = "permacell3"; name = "Cell 3 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/button/flasher{id = "PCell 3"; pixel_x = 6; pixel_y = 24},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) "aeK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/obj/machinery/camera{c_tag = "Prison Hallway Port"; network = list("SS13","Prison")},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) "aeL" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) "aeM" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) -"aeN" = (/obj/machinery/door_control{id = "permacell2"; name = "Cell 2 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/flasher_button{id = "PCell 2"; pixel_x = 6; pixel_y = 24},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) +"aeN" = (/obj/machinery/button/door{id = "permacell2"; name = "Cell 2 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/button/flasher{id = "PCell 2"; pixel_x = 6; pixel_y = 24},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) "aeO" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) "aeP" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) "aeQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) -"aeR" = (/obj/machinery/door_control{id = "permacell1"; name = "Cell 1 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/flasher_button{id = "PCell 1"; pixel_x = 6; pixel_y = 24},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) +"aeR" = (/obj/machinery/button/door{id = "permacell1"; name = "Cell 1 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/button/flasher{id = "PCell 1"; pixel_x = 6; pixel_y = 24},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) "aeS" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Prison Wing APC"; pixel_x = 1; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/camera{c_tag = "Prison Hallway Starboard"; dir = 2; network = list("SS13","Prison")},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) "aeT" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/sign/pods{pixel_y = 30},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) "aeU" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{aiControlDisabled = 1; id_tag = "prisonereducation"; name = "Prisoner Education Chamber"; req_access = null; req_access_txt = "3"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/prison/solitary{name = "Prisoner Education Chamber"}) @@ -266,7 +266,7 @@ "aff" = (/obj/structure/stool/bed/chair/comfy/black,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) "afg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) "afh" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 32},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) -"afi" = (/obj/structure/table/wood,/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = 32},/obj/item/weapon/folder/red,/obj/item/weapon/folder/red,/obj/machinery/keycard_auth{pixel_x = -26; pixel_y = 23},/obj/machinery/door_control{id = "hosspace"; name = "Space Shutters Control"; pixel_x = -26; pixel_y = 34},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) +"afi" = (/obj/structure/table/wood,/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = 32},/obj/item/weapon/folder/red,/obj/item/weapon/folder/red,/obj/machinery/keycard_auth{pixel_x = -26; pixel_y = 23},/obj/machinery/button/door{id = "hosspace"; name = "Space Shutters Control"; pixel_x = -26; pixel_y = 34},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) "afj" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/security/range) "afk" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/security/range) "afl" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/security/range) @@ -312,7 +312,7 @@ "afZ" = (/obj/machinery/syndicatebomb/training,/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) "aga" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/laser,/obj/item/weapon/gun/energy/laser{pixel_x = 3; pixel_y = -3},/turf/simulated/floor/plasteel{tag = "icon-vault (EAST)"; icon_state = "vault"; dir = 4},/area/security/warden) "agb" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden) -"agc" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/flasher_button{id = "insaneflash"; pixel_y = 26},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) +"agc" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/button/flasher{id = "insaneflash"; pixel_y = 26},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) "agd" = (/obj/structure/rack,/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet/alt,/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet/alt,/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet/alt,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden) "age" = (/obj/structure/table/wood,/obj/item/weapon/storage/secure/briefcase{pixel_x = -2},/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/cartridge/detective,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) "agf" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) @@ -327,7 +327,7 @@ "ago" = (/obj/structure/target_stake,/obj/item/target/syndicate,/turf/simulated/floor/plasteel,/area/security/range) "agp" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/security/range) "agq" = (/turf/simulated/wall,/area/space) -"agr" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/door_control{id = "FitnessShower"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/structure/mirror{pixel_x = -28},/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"agr" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/button/door{id = "FitnessShower"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/structure/mirror{pixel_x = -28},/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "ags" = (/obj/machinery/door/airlock{id_tag = "FitnessShower"; name = "Fitness Room Shower"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "agt" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "agu" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) @@ -356,7 +356,7 @@ "agR" = (/obj/structure/table,/obj/item/stack/medical/ointment{pixel_x = 3; pixel_y = -2},/obj/item/stack/medical/bruise_pack{pixel_x = -3; pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/epinephrine,/obj/item/weapon/storage/secure/safe{pixel_x = 6; pixel_y = 28},/obj/item/weapon/restraints/handcuffs/cable/pink,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "agS" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/security/brig) "agT" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun{pixel_x = 3; pixel_y = -3},/turf/simulated/floor/plasteel{tag = "icon-vault (EAST)"; icon_state = "vault"; dir = 4},/area/security/warden) -"agU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "Prison Gate"; name = "Prison Wing Lockdown"; pixel_x = 26; pixel_y = 0; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/brig) +"agU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light/small{dir = 4},/obj/machinery/button/door{id = "Prison Gate"; name = "Prison Wing Lockdown"; pixel_x = 26; pixel_y = 0; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/brig) "agV" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/security/main) "agW" = (/obj/structure/table/wood,/obj/machinery/recharger,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) "agX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) @@ -411,7 +411,7 @@ "ahU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/carpet,/area/security/hos) "ahV" = (/obj/machinery/door/firedoor,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/command{name = "Head of Security's Office"; req_access = null; req_access_txt = "58"},/turf/simulated/floor/carpet,/area/security/hos) "ahW" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/security/hos) -"ahX" = (/obj/machinery/photocopier,/obj/machinery/power/apc{dir = 4; name = "Head of Security's Office APC"; pixel_x = 24},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door_control{id = "hosprivacy"; name = "Privacy Shutters Control"; pixel_x = 26; pixel_y = -26},/obj/machinery/camera{c_tag = "Head of Security's Office"; dir = 8; network = list("SS13")},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/security/hos) +"ahX" = (/obj/machinery/photocopier,/obj/machinery/power/apc{dir = 4; name = "Head of Security's Office APC"; pixel_x = 24},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/button/door{id = "hosprivacy"; name = "Privacy Shutters Control"; pixel_x = 26; pixel_y = -26},/obj/machinery/camera{c_tag = "Head of Security's Office"; dir = 8; network = list("SS13")},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/security/hos) "ahY" = (/obj/item/clothing/head/festive,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/maintenance/fore) "ahZ" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plating,/area/maintenance/fore) "aia" = (/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/maintenance/fore) @@ -482,7 +482,7 @@ "ajn" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/obj/item/weapon/reagent_containers/glass/bottle/charcoal,/obj/item/weapon/reagent_containers/syringe,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 10; icon_state = "whitered"},/area/security/brig) "ajo" = (/turf/simulated/wall/r_wall,/area/engine/gravity_generator) "ajp" = (/obj/machinery/conveyor{dir = 2; id = "garbage"; layer = 2.7},/obj/machinery/door/poddoor/preopen{id = "Disposal Exit"; layer = 3.1; name = "disposal exit vent"},/turf/simulated/floor/plating,/area/maintenance/disposal) -"ajq" = (/obj/machinery/door_control{id = "Disposal Exit"; name = "Disposal Vent Control"; pixel_x = -25; pixel_y = 4; req_access_txt = "12"},/obj/machinery/driver_button{id = "trash"; pixel_x = -26; pixel_y = -6},/obj/structure/stool,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/disposal) +"ajq" = (/obj/machinery/button/door{id = "Disposal Exit"; name = "Disposal Vent Control"; pixel_x = -25; pixel_y = 4; req_access_txt = "12"},/obj/machinery/button/massdriver{id = "trash"; pixel_x = -26; pixel_y = -6},/obj/structure/stool,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/disposal) "ajr" = (/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/maintenance/disposal) "ajs" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plating,/area/maintenance/disposal) "ajt" = (/obj/effect/decal/cleanable/oil,/obj/machinery/light_switch{pixel_x = 25; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/disposal) @@ -803,11 +803,11 @@ "apw" = (/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/starboard) "apx" = (/turf/simulated/floor/plating,/area/maintenance/starboard) "apy" = (/obj/structure/grille,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/window/shuttle,/turf/simulated/floor/plating,/area/shuttle/labor) -"apz" = (/obj/machinery/flasher_button{id = "gulagshuttleflasher"; name = "Flash Control"; pixel_x = 0; pixel_y = -26; req_access_txt = "1"},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/labor) +"apz" = (/obj/machinery/button/flasher{id = "gulagshuttleflasher"; name = "Flash Control"; pixel_x = 0; pixel_y = -26; req_access_txt = "1"},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/labor) "apA" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/iv_drip{density = 0},/turf/simulated/floor/plasteel{icon_state = "whitered"},/area/security/brig) "apB" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden) "apC" = (/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/labor) -"apD" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Airlock"; req_access_txt = "2"},/obj/machinery/door_control{id = "prison release"; name = "Labor Camp Shuttle Lockdown"; pixel_x = 0; pixel_y = -25; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) +"apD" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Airlock"; req_access_txt = "2"},/obj/machinery/button/door{id = "prison release"; name = "Labor Camp Shuttle Lockdown"; pixel_x = 0; pixel_y = -25; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) "apE" = (/obj/machinery/door/airlock/glass_command{name = "Gravity Generator Area"; req_access_txt = "19; 61"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/gravity_generator) "apF" = (/obj/item/clothing/gloves/color/rainbow,/obj/item/clothing/shoes/sneakers/rainbow,/obj/item/clothing/under/color/rainbow,/obj/item/clothing/head/soft/rainbow,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "apG" = (/obj/machinery/door/airlock/shuttle{name = "Labor Shuttle Airlock"; req_access_txt = "2"},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/labor) @@ -953,11 +953,11 @@ "asq" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes,/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "asr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "ass" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/machinery/light,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/fpmaint2{name = "Port Maintenance"}) -"ast" = (/obj/machinery/door/airlock/glass{name = "space-bridge access"},/obj/machinery/door_control{id = "supplybridge"; name = "Shuttle Bay Space Bridge Control"; pixel_x = 0; pixel_y = 27; req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ast" = (/obj/machinery/door/airlock/glass{name = "space-bridge access"},/obj/machinery/button/door{id = "supplybridge"; name = "Shuttle Bay Space Bridge Control"; pixel_x = 0; pixel_y = 27; req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "asu" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "asv" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "asw" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/fpmaint2{name = "Port Maintenance"}) -"asx" = (/obj/machinery/door/airlock/glass{name = "space-bridge access"},/obj/machinery/door_control{id = "supplybridge"; name = "Shuttle Bay Space Bridge Control"; pixel_x = 0; pixel_y = 27; req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"asx" = (/obj/machinery/door/airlock/glass{name = "space-bridge access"},/obj/machinery/button/door{id = "supplybridge"; name = "Shuttle Bay Space Bridge Control"; pixel_x = 0; pixel_y = 27; req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "asy" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/machinery/light,/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "asz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "asA" = (/obj/machinery/door/airlock/maintenance_hatch{name = "Supply Bay Bridge Access"; req_access_txt = "0"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) @@ -975,7 +975,7 @@ "asM" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = -30},/obj/item/weapon/folder/red,/obj/item/weapon/folder/red,/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden) "asN" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden) "asO" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/filingcabinet/chestdrawer{pixel_y = 2},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden) -"asP" = (/obj/structure/table,/obj/machinery/door_control{id = "Prison Gate"; name = "Prison Wing Lockdown"; pixel_x = 0; pixel_y = 7; req_access_txt = "2"},/obj/machinery/door_control{id = "Secure Gate"; name = "Cell Window Control"; normaldoorcontrol = 0; pixel_x = -5; pixel_y = -3; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/door_control{id = "briglockdown"; name = "Brig Lockdown Control"; pixel_x = 5; pixel_y = -3; req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden) +"asP" = (/obj/structure/table,/obj/machinery/button/door{id = "Prison Gate"; name = "Prison Wing Lockdown"; pixel_x = 0; pixel_y = 7; req_access_txt = "2"},/obj/machinery/button/door{id = "Secure Gate"; name = "Cell Window Control"; normaldoorcontrol = 0; pixel_x = -5; pixel_y = -3; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/button/door{id = "briglockdown"; name = "Brig Lockdown Control"; pixel_x = 5; pixel_y = -3; req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden) "asQ" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden) "asR" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/warden) "asS" = (/obj/structure/table,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/folder/red,/obj/item/weapon/restraints/handcuffs,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden) @@ -1002,12 +1002,12 @@ "atn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/fore) "ato" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/machinery/light/small{dir = 1},/obj/structure/table/wood,/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/item/weapon/lighter,/turf/simulated/floor/wood,/area/crew_quarters/sleep) "atp" = (/obj/structure/closet/secure_closet/personal/cabinet,/obj/machinery/alarm{pixel_y = 23},/obj/item/clothing/under/assistantformal,/turf/simulated/floor/wood,/area/crew_quarters/sleep) -"atq" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/door_control{id = "Cabin3"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/effect/decal/cleanable/cobweb2,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/wood,/area/crew_quarters/sleep) +"atq" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/button/door{id = "Cabin3"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/effect/decal/cleanable/cobweb2,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/wood,/area/crew_quarters/sleep) "atr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/crew_quarters/sleep) "ats" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/sleep) "att" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/crew_quarters/sleep) "atu" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/crew_quarters/sleep) -"atv" = (/obj/machinery/light/small{dir = 1},/obj/effect/decal/cleanable/cobweb,/obj/machinery/door_control{id = "Cabin4"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/carpet,/area/crew_quarters/sleep) +"atv" = (/obj/machinery/light/small{dir = 1},/obj/effect/decal/cleanable/cobweb,/obj/machinery/button/door{id = "Cabin4"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/carpet,/area/crew_quarters/sleep) "atw" = (/obj/structure/dresser,/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/carpet,/area/crew_quarters/sleep) "atx" = (/obj/structure/closet/secure_closet/personal/cabinet,/obj/machinery/alarm{pixel_y = 23},/obj/item/clothing/under/suit_jacket/burgundy,/turf/simulated/floor/carpet,/area/crew_quarters/sleep) "aty" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/starboard) @@ -1046,7 +1046,7 @@ "auf" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/security/brig) "aug" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/simulated/floor/plating,/area/security/brig) "auh" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/security/brig) -"aui" = (/obj/structure/table/wood,/obj/item/weapon/storage/secure/safe{pixel_x = 32},/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/item/weapon/restraints/handcuffs,/obj/machinery/door_control{id = "detective_shutters"; name = "detective's office shutters control"; pixel_x = 0; pixel_y = 26; req_access_txt = "4"},/turf/simulated/floor/carpet,/area/security/detectives_office) +"aui" = (/obj/structure/table/wood,/obj/item/weapon/storage/secure/safe{pixel_x = 32},/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/item/weapon/restraints/handcuffs,/obj/machinery/button/door{id = "detective_shutters"; name = "detective's office shutters control"; pixel_x = 0; pixel_y = 26; req_access_txt = "4"},/turf/simulated/floor/carpet,/area/security/detectives_office) "auj" = (/turf/simulated/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/engine/engineering) "auk" = (/obj/machinery/computer/prisoner,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) "aul" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) @@ -1201,10 +1201,10 @@ "axe" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plating,/area/maintenance/fore) "axf" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/maintenance/fore) "axg" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/machinery/light/small{dir = 1},/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/structure/dresser,/turf/simulated/floor/carpet,/area/crew_quarters/sleep) -"axh" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/door_control{id = "Cabin2"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/carpet,/area/crew_quarters/sleep) +"axh" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/button/door{id = "Cabin2"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/carpet,/area/crew_quarters/sleep) "axi" = (/obj/structure/closet/secure_closet/personal/cabinet,/obj/machinery/alarm{pixel_y = 23},/obj/item/clothing/under/suit_jacket/tan,/turf/simulated/floor/carpet,/area/crew_quarters/sleep) "axj" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/machinery/camera{c_tag = "Dormitories - Fore"; dir = 8},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/crew_quarters/sleep) -"axk" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/door_control{id = "Cabin5"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/wood,/area/crew_quarters/sleep) +"axk" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/button/door{id = "Cabin5"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/wood,/area/crew_quarters/sleep) "axl" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/structure/table/wood,/obj/item/weapon/paper,/turf/simulated/floor/wood,/area/crew_quarters/sleep) "axm" = (/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/starboard) "axn" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/maintenance/starboard) @@ -1215,7 +1215,7 @@ "axs" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel/shuttle,/area/shuttle/mining) "axt" = (/turf/simulated/floor/plasteel/shuttle,/area/shuttle/mining) "axu" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel/shuttle,/area/shuttle/labor) -"axv" = (/obj/machinery/door/poddoor/preopen{id = "prison release"; name = "prisoner processing blast door"},/obj/machinery/door_control{id = "prison release"; name = "Labor Camp Shuttle Lockdown"; pixel_x = -25; pixel_y = 0; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/hallway/primary/fore) +"axv" = (/obj/machinery/door/poddoor/preopen{id = "prison release"; name = "prisoner processing blast door"},/obj/machinery/button/door{id = "prison release"; name = "Labor Camp Shuttle Lockdown"; pixel_x = -25; pixel_y = 0; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/hallway/primary/fore) "axw" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "axx" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "axy" = (/obj/structure/closet/crate,/obj/item/weapon/coin/silver,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) @@ -1239,13 +1239,13 @@ "axQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/security/brig) "axR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/brig) "axS" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/bot/secbot/beepsky{desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey, and with a sturdier reinforced chassis, too. "; health = 45; maxhealth = 45; name = "Officer Beepsky"},/turf/simulated/floor/plasteel,/area/security/brig) -"axT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/power/apc{cell_type = 10000; dir = 2; name = "Brig APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable/yellow,/obj/machinery/flasher_button{id = "secentranceflasher"; name = "Brig Entrance Flasher"; pixel_x = -3; pixel_y = -38; req_access_txt = "1"},/turf/simulated/floor/plasteel{icon_state = "red"},/area/security/brig) +"axT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/power/apc{cell_type = 10000; dir = 2; name = "Brig APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable/yellow,/obj/machinery/button/flasher{id = "secentranceflasher"; name = "Brig Entrance Flasher"; pixel_x = -3; pixel_y = -38; req_access_txt = "1"},/turf/simulated/floor/plasteel{icon_state = "red"},/area/security/brig) "axU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "redcorner"},/area/security/brig) "axV" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/simulated/floor/plasteel,/area/security/brig) "axW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/security/brig) "axX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/brig) "axY" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/brig) -"axZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/flasher_button{id = "holdingflash"; pixel_x = 0; pixel_y = -26; req_access_txt = "1"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/brig) +"axZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/button/flasher{id = "holdingflash"; pixel_x = 0; pixel_y = -26; req_access_txt = "1"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/brig) "aya" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light,/obj/machinery/camera{c_tag = "Brig - Hallway - Starboard"; dir = 1; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/brig) "ayb" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/brig) "ayc" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/brig) @@ -1385,7 +1385,7 @@ "aAG" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/brig) "aAH" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/brig) "aAI" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/brig) -"aAJ" = (/obj/machinery/computer/secure_data,/obj/machinery/flasher_button{id = "secentranceflasher"; name = "Brig Entrance Flash Control"; pixel_x = -24; pixel_y = 24; req_access_txt = "1"},/obj/machinery/door_control{id = "Secure Gate"; name = "Cell Window Control"; normaldoorcontrol = 0; pixel_x = 5; pixel_y = 27; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/door_control{id = "briglockdown"; name = "Brig Lockdown Control"; pixel_x = 5; pixel_y = 37; req_access_txt = "0"},/obj/machinery/light/small{dir = 1},/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "innerbrig"; name = "Brig Interior Doors Control"; normaldoorcontrol = 1; pixel_x = -5; pixel_y = 37; req_access_txt = "63"},/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "outerbrig"; name = "Brig Exterior Doors Control"; normaldoorcontrol = 1; pixel_x = -5; pixel_y = 27; req_access_txt = "63"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) +"aAJ" = (/obj/machinery/computer/secure_data,/obj/machinery/button/flasher{id = "secentranceflasher"; name = "Brig Entrance Flash Control"; pixel_x = -24; pixel_y = 24; req_access_txt = "1"},/obj/machinery/button/door{id = "Secure Gate"; name = "Cell Window Control"; normaldoorcontrol = 0; pixel_x = 5; pixel_y = 27; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/button/door{id = "briglockdown"; name = "Brig Lockdown Control"; pixel_x = 5; pixel_y = 37; req_access_txt = "0"},/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "innerbrig"; name = "Brig Interior Doors Control"; normaldoorcontrol = 1; pixel_x = -5; pixel_y = 37; req_access_txt = "63"},/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "outerbrig"; name = "Brig Exterior Doors Control"; normaldoorcontrol = 1; pixel_x = -5; pixel_y = 27; req_access_txt = "63"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) "aAK" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/filingcabinet,/obj/machinery/light/small{dir = 1},/obj/machinery/light_switch{pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/security/detectives_office) "aAL" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/security/detectives_office) "aAM" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/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/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/carpet,/area/security/detectives_office) @@ -1429,9 +1429,9 @@ "aBy" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) "aBz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) "aBA" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/start{name = "Shaft Miner"},/turf/simulated/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) -"aBB" = (/obj/machinery/door_control{id = "qm_mine_warehouse"; name = "Warehouse Door Control"; pixel_x = 24; pixel_y = 28; req_access_txt = "48"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "brown"},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aBB" = (/obj/machinery/button/door{id = "qm_mine_warehouse"; name = "Warehouse Door Control"; pixel_x = 24; pixel_y = 28; req_access_txt = "48"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "brown"},/area/quartermaster/miningdock{name = "\improper Mining Office"}) "aBC" = (/obj/machinery/door/poddoor/shutters{id = "qm_mine_warehouse"; name = "Warehouse Shutters"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/quartermaster/miningdock{name = "\improper Mining Office"}) -"aBD" = (/obj/structure/disposalpipe/segment,/obj/machinery/door_control{id = "qm_mine_warehouse"; name = "Warehouse Door Control"; pixel_x = -24; pixel_y = 28; req_access_txt = "48"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aBD" = (/obj/structure/disposalpipe/segment,/obj/machinery/button/door{id = "qm_mine_warehouse"; name = "Warehouse Door Control"; pixel_x = -24; pixel_y = 28; req_access_txt = "48"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/quartermaster/sorting{name = "\improper Warehouse"}) "aBE" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/quartermaster/sorting{name = "\improper Warehouse"}) "aBF" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/effect/decal/cleanable/cobweb,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "aBG" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/quartermaster/sorting{name = "\improper Warehouse"}) @@ -1486,7 +1486,7 @@ "aCD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/engine/engineering) "aCE" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/engine/engineering) "aCF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/engine/engineering) -"aCG" = (/obj/machinery/door_control{id = "QMLoaddoor"; layer = 4; name = "Loading Doors"; pixel_x = -27; pixel_y = -5},/obj/machinery/door_control{dir = 2; id = "QMLoaddoor2"; layer = 4; name = "Loading Doors"; pixel_x = -27; pixel_y = 5},/obj/machinery/computer/supplycomp,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/storage) +"aCG" = (/obj/machinery/button/door{id = "QMLoaddoor"; layer = 4; name = "Loading Doors"; pixel_x = -27; pixel_y = -5},/obj/machinery/button/door{dir = 2; id = "QMLoaddoor2"; layer = 4; name = "Loading Doors"; pixel_x = -27; pixel_y = 5},/obj/machinery/computer/supplycomp,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/storage) "aCH" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = ""},/area/engine/engineering) "aCI" = (/obj/machinery/camera/emp_proof{c_tag = "Fore Arm - Near"; dir = 4; network = list("Singulo")},/turf/space,/area/space) "aCJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/spawner/lootdrop{loot = list("/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/item/weapon/cigbutt","/obj/item/trash/cheesie","/obj/item/trash/candy","/obj/item/trash/chips","/obj/item/trash/deadmouse","/obj/item/trash/pistachios","/obj/item/trash/plate","/obj/item/trash/popcorn","/obj/item/trash/raisins","/obj/item/trash/sosjerky","/obj/item/trash/syndi_cakes"); name = "maint grille or trash spawner"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) @@ -1518,7 +1518,7 @@ "aDj" = (/obj/structure/table,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/aiModule/supplied/quarantine,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai_upload) "aDk" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/turret_protected/ai_upload) "aDl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/crew_quarters/courtroom) -"aDm" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/flasher_button{id = "holdingflash"; name = "holding cell flasher button"; pixel_x = 23; pixel_y = 23; req_access_txt = "1"},/obj/machinery/camera{c_tag = "Brig - Desk"; dir = 8; network = list("SS13")},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29; pixel_y = -2},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) +"aDm" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/button/flasher{id = "holdingflash"; name = "holding cell flasher button"; pixel_x = 23; pixel_y = 23; req_access_txt = "1"},/obj/machinery/camera{c_tag = "Brig - Desk"; dir = 8; network = list("SS13")},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29; pixel_y = -2},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) "aDn" = (/obj/machinery/door/airlock/security{name = "Court Cell"; req_access = null; req_access_txt = "63"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) "aDo" = (/obj/structure/table/wood,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/power/apc{dir = 8; name = "Detective APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/item/device/taperecorder{pixel_x = 3; pixel_y = 0},/obj/item/weapon/storage/box/evidence,/obj/item/device/flashlight/seclite,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/security/detectives_office) "aDp" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/security/detectives_office) @@ -1537,7 +1537,7 @@ "aDC" = (/obj/structure/stool{pixel_y = 8},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/crew_quarters/sleep) "aDD" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/simulated/floor/plasteel,/area/crew_quarters/sleep) "aDE" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/crew_quarters/sleep) -"aDF" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/door_control{id = "Cabin6"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/effect/decal/cleanable/cobweb,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/carpet,/area/crew_quarters/sleep) +"aDF" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/button/door{id = "Cabin6"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/effect/decal/cleanable/cobweb,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/carpet,/area/crew_quarters/sleep) "aDG" = (/obj/structure/closet/secure_closet/personal/cabinet,/obj/machinery/alarm{pixel_y = 23},/obj/item/clothing/under/suit_jacket/navy,/turf/simulated/floor/carpet,/area/crew_quarters/sleep) "aDH" = (/obj/structure/closet/crate,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/quartermaster/sorting{name = "\improper Warehouse"}) "aDI" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/starboard) @@ -1597,7 +1597,7 @@ "aEK" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/security/detectives_office) "aEL" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/briefcase{pixel_x = -3; pixel_y = 2},/obj/item/weapon/storage/secure/briefcase{pixel_x = 2; pixel_y = -2},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/security/detectives_office) "aEM" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/maintenance/fore) -"aEN" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/obj/machinery/door_control{id = "Toilet3"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aEN" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/obj/machinery/button/door{id = "Toilet3"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) "aEO" = (/obj/machinery/door/airlock{id_tag = "Toilet3"; name = "Unit 3"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) "aEP" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) "aEQ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/urinal{pixel_y = 29},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) @@ -1641,7 +1641,7 @@ "aFC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) "aFD" = (/obj/item/clothing/glasses/meson,/obj/structure/closet/crate,/obj/item/weapon/contraband/poster,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/simulated/floor/plating,/area/maintenance/starboard) "aFE" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "loadingarea"},/area/quartermaster/sorting{name = "\improper Warehouse"}) -"aFF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door_control{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "50"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aFF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/button/door{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "50"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/quartermaster/sorting{name = "\improper Warehouse"}) "aFG" = (/obj/item/toy/beach_ball{icon = 'icons/obj/basketball.dmi'; icon_state = "basketball"; item_state = "basketball"; name = "basket ball"},/turf/simulated/floor/plating,/area/maintenance/fore) "aFH" = (/obj/structure/closet,/obj/item/weapon/contraband/poster,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "aFI" = (/obj/machinery/power/apc{dir = 4; name = "Warehouse APC"; pixel_x = 27; pixel_y = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/quartermaster/sorting{name = "\improper Warehouse"}) @@ -1697,7 +1697,7 @@ "aGG" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/engine/engineering) "aGH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/crowbar,/obj/item/weapon/wirecutters,/obj/item/stack/cable_coil,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/engine/engineering) "aGI" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/obj/item/weapon/storage/firstaid/fire,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/engine/engineering) -"aGJ" = (/obj/item/device/taperecorder{pixel_y = 0},/obj/item/weapon/cartridge/lawyer,/obj/structure/table/wood,/obj/machinery/door_control{id = "lawyer_shutters"; name = "law office shutters control"; pixel_x = 0; pixel_y = -26; req_access_txt = "38"},/turf/simulated/floor/wood,/area/lawoffice) +"aGJ" = (/obj/item/device/taperecorder{pixel_y = 0},/obj/item/weapon/cartridge/lawyer,/obj/structure/table/wood,/obj/machinery/button/door{id = "lawyer_shutters"; name = "law office shutters control"; pixel_x = 0; pixel_y = -26; req_access_txt = "38"},/turf/simulated/floor/wood,/area/lawoffice) "aGK" = (/obj/machinery/field/generator{anchored = 1; state = 2},/turf/simulated/floor/plating/airless,/area/space) "aGL" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/space) "aGM" = (/obj/machinery/door/airlock/maintenance{name = "Law Office Maintenance"; req_access_txt = "38"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/lawoffice) @@ -1753,7 +1753,7 @@ "aHK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/fore) "aHL" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/fore) "aHM" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fore) -"aHN" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/obj/effect/landmark{name = "blobstart"},/obj/machinery/door_control{id = "Toilet2"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aHN" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/obj/effect/landmark{name = "blobstart"},/obj/machinery/button/door{id = "Toilet2"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) "aHO" = (/obj/machinery/door/airlock{id_tag = "Toilet2"; name = "Unit 2"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) "aHP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) "aHQ" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) @@ -1796,7 +1796,7 @@ "aIB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/checkpoint/supply{name = "Security Post - Cargo"}) "aIC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/mining{name = "Mining Office"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) "aID" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/quartermaster/storage) -"aIE" = (/obj/machinery/door_control{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = 0; pixel_y = 24; req_access_txt = "50"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/quartermaster/storage) +"aIE" = (/obj/machinery/button/door{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = 0; pixel_y = 24; req_access_txt = "50"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/quartermaster/storage) "aIF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/quartermaster/storage) "aIG" = (/obj/machinery/firealarm{pixel_y = 27},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/quartermaster/storage) "aIH" = (/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/quartermaster/storage) @@ -1833,15 +1833,15 @@ "aJm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) "aJn" = (/obj/structure/closet/secure_closet/personal,/obj/item/clothing/under/assistantformal,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/item/clothing/suit/hooded/wintercoat,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/crew_quarters/sleep) "aJo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/closet/wardrobe/pjs,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/crew_quarters/sleep) -"aJp" = (/obj/machinery/door_control{id = "Cabin7"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/wood,/area/crew_quarters/sleep) +"aJp" = (/obj/machinery/button/door{id = "Cabin7"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/wood,/area/crew_quarters/sleep) "aJq" = (/obj/structure/stool/bed/chair/wood/normal{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep) "aJr" = (/obj/structure/table/wood,/obj/machinery/newscaster{pixel_x = 29; pixel_y = 1},/obj/item/weapon/paper,/turf/simulated/floor/wood,/area/crew_quarters/sleep) "aJs" = (/obj/structure/closet,/obj/item/weapon/storage/box/donkpockets,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/simulated/floor/plating,/area/maintenance/starboard) "aJt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/maintenance/starboard) "aJu" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/engine/engineering) "aJv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/engine/engineering) -"aJw" = (/obj/structure/table,/obj/machinery/door_control{id = "Singularity"; name = "Shutters Control"; pixel_x = 25; pixel_y = 0; req_access_txt = "11"},/obj/item/weapon/storage/toolbox/electrical{pixel_y = 5},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/engine/engineering) -"aJx" = (/obj/machinery/door_control{id = "Singularity"; name = "Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "11"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/engine/engineering) +"aJw" = (/obj/structure/table,/obj/machinery/button/door{id = "Singularity"; name = "Shutters Control"; pixel_x = 25; pixel_y = 0; req_access_txt = "11"},/obj/item/weapon/storage/toolbox/electrical{pixel_y = 5},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/engine/engineering) +"aJx" = (/obj/machinery/button/door{id = "Singularity"; name = "Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "11"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/engine/engineering) "aJy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/engine/engineering) "aJz" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/engine/engineering) "aJA" = (/obj/machinery/camera/emp_proof{c_tag = "Engineering - Particle Accelerator"; dir = 2; network = list("Singulo","SS13")},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/engine/engineering) @@ -1893,9 +1893,9 @@ "aKu" = (/obj/structure/rack,/obj/item/weapon/book/manual/wiki/engineering_guide{pixel_x = 3; pixel_y = 4},/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/maintenance/starboard) "aKv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/wood,/area/lawoffice) "aKw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/fore) -"aKx" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/obj/effect/landmark{name = "blobstart"},/obj/machinery/door_control{id = "Toilet1"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aKx" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/obj/effect/landmark{name = "blobstart"},/obj/machinery/button/door{id = "Toilet1"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) "aKy" = (/obj/machinery/door/airlock{id_tag = "Toilet1"; name = "Unit 1"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) -"aKz" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 4},/obj/machinery/newscaster{pixel_x = 32},/obj/machinery/door_control{id = "Toilet4"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aKz" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 4},/obj/machinery/newscaster{pixel_x = 32},/obj/machinery/button/door{id = "Toilet4"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) "aKA" = (/obj/machinery/light/small,/obj/machinery/recharge_station,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) "aKB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/sleep) "aKC" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/crew_quarters/sleep) @@ -2121,8 +2121,8 @@ "aOO" = (/obj/machinery/the_singularitygen{anchored = 0},/turf/simulated/floor/plating,/area/engine/engineering) "aOP" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/engine/engineering) "aOQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/engine/engineering) -"aOR" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/engineering_guide{pixel_x = 3; pixel_y = 4},/obj/item/weapon/book/manual/engineering_particle_accelerator{pixel_x = -2; pixel_y = 3},/obj/machinery/door_control{id = "Singularity"; name = "Shutters Control"; pixel_x = 25; pixel_y = 0; req_access_txt = "11"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/engine/engineering) -"aOS" = (/obj/machinery/door_control{id = "Singularity"; name = "Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "11"},/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area/engine/engineering) +"aOR" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/engineering_guide{pixel_x = 3; pixel_y = 4},/obj/item/weapon/book/manual/engineering_particle_accelerator{pixel_x = -2; pixel_y = 3},/obj/machinery/button/door{id = "Singularity"; name = "Shutters Control"; pixel_x = 25; pixel_y = 0; req_access_txt = "11"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/engine/engineering) +"aOS" = (/obj/machinery/button/door{id = "Singularity"; name = "Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "11"},/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area/engine/engineering) "aOT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating{icon_plating = "warnplate"; icon_state = "warnplate"},/area/engine/engineering) "aOU" = (/turf/simulated/floor/plating{icon_plating = "warnplate"; icon_state = "warnplate"},/area/engine/engineering) "aOV" = (/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/engine/engineering) @@ -2777,7 +2777,7 @@ "bbu" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/storage/tech) "bbv" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/storage/tech) "bbw" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = -3; pixel_y = 3},/obj/item/stack/cable_coil,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/tech) -"bbx" = (/obj/machinery/door_control{desc = "A remote control-switch for the engineering security doors."; id = "Engineering"; name = "Engineering Lockdown"; pixel_x = -24; pixel_y = -5; req_access_txt = "10"},/obj/machinery/door_control{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = -24; pixel_y = 5; req_access_txt = "24"},/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/chiefs_office) +"bbx" = (/obj/machinery/button/door{desc = "A remote control-switch for the engineering security doors."; id = "Engineering"; name = "Engineering Lockdown"; pixel_x = -24; pixel_y = -5; req_access_txt = "10"},/obj/machinery/button/door{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = -24; pixel_y = 5; req_access_txt = "24"},/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/chiefs_office) "bby" = (/obj/structure/table/reinforced,/obj/item/device/flashlight/lamp,/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/engine/chiefs_office) "bbz" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bbA" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/paper/monitorkey,/turf/simulated/floor/plasteel{icon_state = "neutral"},/area/engine/chiefs_office) @@ -2870,7 +2870,7 @@ "bdj" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/pandemic{pixel_x = -3; pixel_y = 3},/obj/item/weapon/circuitboard/rdconsole,/obj/item/weapon/circuitboard/rdserver{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/destructive_analyzer,/obj/item/weapon/circuitboard/protolathe,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/tech) "bdk" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/storage/tech) "bdl" = (/obj/machinery/alarm{pixel_y = 23},/obj/structure/flora/kirbyplants{icon_state = "applebush"; layer = 4.1; tag = "icon-applebush"},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 9},/area/hallway/primary/central) -"bdm" = (/obj/machinery/door_control{id = "transittube"; name = "Transit Tube Lockdown"; pixel_x = -24; pixel_y = -5; req_access_txt = "24"},/obj/machinery/door_control{desc = "A remote control-switch for secure storage."; id = "Secure Storage"; name = "Engineering Secure Storage"; pixel_x = -24; pixel_y = 5; req_access_txt = "11"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/chiefs_office) +"bdm" = (/obj/machinery/button/door{id = "transittube"; name = "Transit Tube Lockdown"; pixel_x = -24; pixel_y = -5; req_access_txt = "24"},/obj/machinery/button/door{desc = "A remote control-switch for secure storage."; id = "Secure Storage"; name = "Engineering Secure Storage"; pixel_x = -24; pixel_y = 5; req_access_txt = "11"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/chiefs_office) "bdn" = (/obj/item/weapon/cartridge/engineering{pixel_x = 4; pixel_y = 5},/obj/item/weapon/cartridge/engineering{pixel_x = -3; pixel_y = 2},/obj/item/weapon/cartridge/engineering{pixel_x = 3},/obj/structure/table/reinforced,/obj/item/weapon/cartridge/atmos,/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 4},/area/engine/chiefs_office) "bdo" = (/obj/effect/landmark/start{name = "Chief Engineer"},/obj/structure/stool/bed/chair/office/light{dir = 1; pixel_y = 3},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "bdp" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) @@ -2934,7 +2934,7 @@ "bev" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) "bew" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/central) "bex" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "neutralcorner"},/area/hallway/primary/central) -"bey" = (/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/machinery/door_control{id = "hop"; name = "Privacy Shutters Control"; pixel_x = 0; pixel_y = 25; req_access_txt = "28"},/obj/structure/table/wood,/turf/simulated/floor/wood,/area/crew_quarters/heads) +"bey" = (/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/machinery/button/door{id = "hop"; name = "Privacy Shutters Control"; pixel_x = 0; pixel_y = 25; req_access_txt = "28"},/obj/structure/table/wood,/turf/simulated/floor/wood,/area/crew_quarters/heads) "bez" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plasteel,/area/storage/tools) "beA" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel,/area/storage/tools) "beB" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel,/area/storage/tools) @@ -3044,11 +3044,11 @@ "bgB" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/chiefs_office) "bgC" = (/obj/structure/table/glass,/turf/simulated/floor/plasteel,/area/engine/break_room) "bgD" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/secure/briefcase,/obj/item/clothing/mask/cigarette/cigar,/obj/machinery/computer/security/telescreen{dir = 1; name = "MiniSat Monitor"; network = list("MiniSat","tcomm"); pixel_x = 0; pixel_y = -30},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/chiefs_office) -"bgE" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/lighter,/obj/item/clothing/glasses/meson,/obj/machinery/door_control{id = "ceprivacy"; name = "Privacy Shutters Control"; pixel_x = 0; pixel_y = -26},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/chiefs_office) +"bgE" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/lighter,/obj/item/clothing/glasses/meson,/obj/machinery/button/door{id = "ceprivacy"; name = "Privacy Shutters Control"; pixel_x = 0; pixel_y = -26},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/chiefs_office) "bgF" = (/obj/structure/filingcabinet/chestdrawer,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/mob/living/simple_animal/parrot/Poly,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/chiefs_office) "bgG" = (/obj/structure/closet/secure_closet/engineering_chief{req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/chiefs_office) "bgH" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Engine Room"; req_access_txt = "10"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/engine/engineering) -"bgI" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/machinery/camera/autoname{dir = 4; network = list("SS13")},/obj/machinery/door_control{desc = "A remote control-switch for the engineering security doors."; id = "Engineering"; name = "Engineering Lockdown"; pixel_x = -24; pixel_y = -6; req_access_txt = "1"},/obj/machinery/door_control{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = -24; pixel_y = 5; req_access_txt = "1"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 10},/area/security/checkpoint/engineering) +"bgI" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/machinery/camera/autoname{dir = 4; network = list("SS13")},/obj/machinery/button/door{desc = "A remote control-switch for the engineering security doors."; id = "Engineering"; name = "Engineering Lockdown"; pixel_x = -24; pixel_y = -6; req_access_txt = "1"},/obj/machinery/button/door{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = -24; pixel_y = 5; req_access_txt = "1"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 10},/area/security/checkpoint/engineering) "bgJ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{icon_state = "red"},/area/security/checkpoint/engineering) "bgK" = (/obj/structure/closet/secure_closet/security/engine,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 6},/area/security/checkpoint/engineering) "bgL" = (/turf/simulated/wall,/area/engine/break_room) @@ -3543,7 +3543,7 @@ "bqg" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/construction/hallway{name = "\improper MiniSat Exterior"}) "bqh" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/construction/hallway{name = "\improper MiniSat Exterior"}) "bqi" = (/obj/machinery/hologram/holopad,/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/construction/hallway{name = "\improper MiniSat Exterior"}) -"bqj" = (/obj/machinery/door_control{id = "hop"; name = "Privacy Shutters Control"; pixel_x = -24; pixel_y = -6; req_access_txt = "28"},/obj/machinery/light_switch{pixel_x = -25; pixel_y = 5},/turf/simulated/floor/carpet,/area/crew_quarters/heads) +"bqj" = (/obj/machinery/button/door{id = "hop"; name = "Privacy Shutters Control"; pixel_x = -24; pixel_y = -6; req_access_txt = "28"},/obj/machinery/light_switch{pixel_x = -25; pixel_y = 5},/turf/simulated/floor/carpet,/area/crew_quarters/heads) "bqk" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/camera{c_tag = "Arrivals - Station Entrance"; dir = 4; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "bql" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/hallway/secondary/entry{name = "Arrivals"}) "bqm" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"}) @@ -3693,12 +3693,12 @@ "bta" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/gateway) "btb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light{dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/central) "btc" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/gateway) -"btd" = (/obj/machinery/door_control{id = "bridge blast"; name = "Bridge Access Blast Door Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "19"},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/door_control{id = "council blast"; name = "Council Chamber Blast Door Control"; pixel_x = -1; pixel_y = -34; req_access_txt = "19"},/obj/machinery/camera{c_tag = "Bridge - Command Chair"; dir = 1; network = list("SS13")},/turf/simulated/floor/carpet,/area/bridge) +"btd" = (/obj/machinery/button/door{id = "bridge blast"; name = "Bridge Access Blast Door Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "19"},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/button/door{id = "council blast"; name = "Council Chamber Blast Door Control"; pixel_x = -1; pixel_y = -34; req_access_txt = "19"},/obj/machinery/camera{c_tag = "Bridge - Command Chair"; dir = 1; network = list("SS13")},/turf/simulated/floor/carpet,/area/bridge) "bte" = (/obj/item/weapon/storage/box/lights/mixed,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/starboard) "btf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/heads) "btg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/gateway) "bth" = (/turf/simulated/wall,/area/crew_quarters/heads) -"bti" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/machinery/door_control{id = "kitchenwindow"; name = "Window Shutter Control"; pixel_x = -26; pixel_y = 0; req_access_txt = "28"},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) +"bti" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/machinery/button/door{id = "kitchenwindow"; name = "Window Shutter Control"; pixel_x = -26; pixel_y = 0; req_access_txt = "28"},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "btj" = (/obj/machinery/vending/autodrobe,/turf/simulated/floor/wood,/area/crew_quarters/theatre) "btk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "20;12"},/turf/simulated/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) "btl" = (/obj/item/weapon/folder,/obj/item/weapon/folder,/obj/machinery/camera/autoname{dir = 1; network = list("SS13")},/obj/structure/table/wood,/turf/simulated/floor/wood,/area/library) @@ -3771,7 +3771,7 @@ "buA" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners"; icon_state = "darkbluecorners"},/area/turret_protected/aisat_interior) "buB" = (/obj/machinery/computer/station_alert,/obj/machinery/light,/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/machinery/computer/security/telescreen{dir = 1; name = "MiniSat Monitor"; network = list("MiniSat","tcomm"); pixel_x = 0; pixel_y = -29},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) "buC" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/machinery/power/apc{dir = 8; name = "MiniSat Maint APC"; pixel_x = -24},/obj/item/weapon/crowbar/red,/obj/item/weapon/wrench,/obj/item/clothing/head/welding,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) -"buD" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/machinery/door_control{id = "evashutter"; name = "E.V.A. Storage Shutter Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "19"},/obj/machinery/door_control{id = "gateshutter"; name = "Gateway Shutter Control"; pixel_x = 0; pixel_y = -34; req_access_txt = "19"},/turf/simulated/floor/carpet,/area/bridge) +"buD" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/machinery/button/door{id = "evashutter"; name = "E.V.A. Storage Shutter Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "19"},/obj/machinery/button/door{id = "gateshutter"; name = "Gateway Shutter Control"; pixel_x = 0; pixel_y = -34; req_access_txt = "19"},/turf/simulated/floor/carpet,/area/bridge) "buE" = (/obj/machinery/camera/motion{c_tag = "MiniSat Maintenance"; dir = 8; network = list("MiniSat")},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/rack,/obj/item/stack/sheet/mineral/plasma{layer = 3.1},/obj/item/stack/sheet/mineral/plasma{layer = 3.1},/obj/item/stack/sheet/mineral/plasma{layer = 3.1},/obj/item/stack/sheet/mineral/plasma{layer = 3.1},/obj/item/weapon/reagent_containers/food/drinks/soda_cans/thirteenloko,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) "buF" = (/obj/structure/table,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/obj/item/weapon/storage/toolbox/electrical{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/device/multitool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) "buG" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/window/reinforced{dir = 4},/turf/space,/area/space) @@ -3806,7 +3806,7 @@ "bvj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=7-Command-Starboard"; location = "6-Port-Central"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "bvk" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/carpet,/area/crew_quarters/heads) "bvl" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/carpet,/area/crew_quarters/heads) -"bvm" = (/obj/structure/stool/bed/chair/office/dark,/obj/effect/landmark/start{name = "Head of Personnel"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light_switch{pixel_x = 38; pixel_y = -35},/obj/machinery/door_control{id = "hopqueue"; name = "Queue Shutters Control"; pixel_x = 25; pixel_y = -36; req_access_txt = "28"},/obj/machinery/door_control{id = "hop"; name = "Privacy Shutters Control"; pixel_x = 25; pixel_y = -26; req_access_txt = "28"},/obj/machinery/flasher_button{id = "hopflash"; pixel_x = 38; pixel_y = -25},/turf/simulated/floor/wood,/area/crew_quarters/heads) +"bvm" = (/obj/structure/stool/bed/chair/office/dark,/obj/effect/landmark/start{name = "Head of Personnel"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light_switch{pixel_x = 38; pixel_y = -35},/obj/machinery/button/door{id = "hopqueue"; name = "Queue Shutters Control"; pixel_x = 25; pixel_y = -36; req_access_txt = "28"},/obj/machinery/button/door{id = "hop"; name = "Privacy Shutters Control"; pixel_x = 25; pixel_y = -26; req_access_txt = "28"},/obj/machinery/button/flasher{id = "hopflash"; pixel_x = 38; pixel_y = -25},/turf/simulated/floor/wood,/area/crew_quarters/heads) "bvn" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/stamp/hop{pixel_x = -4; pixel_y = 4},/turf/simulated/floor/wood,/area/crew_quarters/heads) "bvo" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/carpet,/area/crew_quarters/heads) "bvp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/carpet,/area/crew_quarters/heads) @@ -3949,7 +3949,7 @@ "bxW" = (/obj/structure/transit_tube{tag = "icon-W-NE"; icon_state = "W-NE"},/obj/structure/lattice,/turf/space,/area/space) "bxX" = (/obj/structure/lattice,/obj/structure/transit_tube{tag = "icon-D-NW"; icon_state = "D-NW"},/turf/space,/area/space) "bxY" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Vacant Office"; opacity = 1; req_access_txt = "32"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/wood,/area/security/vacantoffice) -"bxZ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/machinery/door_control{id = "bridge blast"; name = "Bridge Access Blast Door Control"; pixel_x = 24; pixel_y = -24; req_access_txt = "19"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkbluecorners"; tag = "icon-darkbluecorners"},/area/bridge) +"bxZ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/machinery/button/door{id = "bridge blast"; name = "Bridge Access Blast Door Control"; pixel_x = 24; pixel_y = -24; req_access_txt = "19"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkbluecorners"; tag = "icon-darkbluecorners"},/area/bridge) "bya" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkbluecorners"; tag = "icon-darkbluecorners"},/area/bridge) "byb" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1; pixel_y = 2},/turf/space,/area/space) "byc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/construction/hallway{name = "\improper MiniSat Exterior"}) @@ -4115,7 +4115,7 @@ "bBg" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor/carpet,/area/bridge) "bBh" = (/obj/structure/noticeboard{pixel_y = 32},/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large{pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -5; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/bottle/morphine,/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/medbay2{name = "Medbay Storage"}) "bBi" = (/obj/structure/table/wood,/obj/item/weapon/folder/red,/turf/simulated/floor/carpet,/area/bridge) -"bBj" = (/obj/structure/table,/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/machinery/door_control{id = "Biohazard"; name = "Biohazard Shutter Control"; pixel_x = 0; pixel_y = 7; req_access_txt = "47"},/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "ResearchFoyer"; name = "Research Door Button"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -2},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"bBj" = (/obj/structure/table,/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/machinery/button/door{id = "Biohazard"; name = "Biohazard Shutter Control"; pixel_x = 0; pixel_y = 7; req_access_txt = "47"},/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "ResearchFoyer"; name = "Research Door Button"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -2},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/checkpoint/science{name = "Security Post - Research Division"}) "bBk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/space,/area/solar/port) "bBl" = (/obj/item/weapon/reagent_containers/glass/bottle/morphine,/obj/item/trash/candy,/obj/structure/disposalpipe/segment{dir = 4},/obj/item/clothing/tie/stethoscope,/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/maintenance/aft{name = "Aft Maintenance"}) "bBm" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/pen,/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) @@ -4141,7 +4141,7 @@ "bBG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/device/radio/beacon,/turf/simulated/floor/plasteel{dir = 8; icon_state = "caution"},/area/hallway/primary/starboard) "bBH" = (/turf/simulated/floor/plasteel{icon_state = "caution"; dir = 4},/area/hallway/primary/starboard) "bBI" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/atmos) -"bBJ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/vending/coffee{pixel_x = -3},/obj/machinery/door_control{id = "council blast"; name = "Council Chamber Blast Door Control"; pixel_x = -28; pixel_y = 0; req_access_txt = "19"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/bridge) +"bBJ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/vending/coffee{pixel_x = -3},/obj/machinery/button/door{id = "council blast"; name = "Council Chamber Blast Door Control"; pixel_x = -28; pixel_y = 0; req_access_txt = "19"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/bridge) "bBK" = (/obj/machinery/atmospherics/components/unary/heat_reservoir/heater{dir = 1; on = 1; tag = ""},/turf/simulated/floor/plasteel,/area/atmos) "bBL" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Air to Distro"; on = 1; target_pressure = 101},/obj/machinery/alarm{pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/camera{c_tag = "Atmospherics - Distro Loop"; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 1; icon_state = "caution"},/area/atmos) "bBM" = (/obj/machinery/atmospherics/pipe/manifold/supply/visible{dir = 1; tag = "icon-manifold-b (NORTH)"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "caution"},/area/atmos) @@ -4210,7 +4210,7 @@ "bCX" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/vending/cigarette{pixel_x = 2},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/bridge) "bCY" = (/obj/structure/stool/bed/chair/wood/wings,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Mime"},/turf/simulated/floor/carpet,/area/crew_quarters/theatre) "bCZ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bDa" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door_control{id = "bridge blast"; name = "Bridge Access Blast Door Control"; pixel_x = -24; pixel_y = -24; req_access_txt = "19"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/bridge) +"bDa" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/button/door{id = "bridge blast"; name = "Bridge Access Blast Door Control"; pixel_x = -24; pixel_y = -24; req_access_txt = "19"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/bridge) "bDb" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel,/area/atmos) "bDc" = (/obj/item/clothing/mask/breath{pixel_x = 4; pixel_y = 0},/obj/item/weapon/tank/internals/emergency_oxygen{pixel_x = -8; pixel_y = 0},/obj/structure/table,/turf/simulated/floor/plasteel{dir = 8; icon_state = "caution"},/area/atmos) "bDd" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor/plasteel,/area/atmos) @@ -4273,7 +4273,7 @@ "bEi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) "bEj" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) "bEk" = (/obj/machinery/door/airlock{id_tag = "AuxToilet1"; name = "Unit 1"},/turf/simulated/floor/plasteel,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) -"bEl" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "AuxToilet1"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plasteel,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bEl" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 4},/obj/machinery/button/door{id = "AuxToilet1"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plasteel,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) "bEm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/carpet,/area/library) "bEn" = (/obj/structure/table/wood,/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/wood,/area/library) "bEo" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/simulated/floor/wood,/area/library) @@ -4442,7 +4442,7 @@ "bHv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) "bHw" = (/obj/machinery/door/airlock{id_tag = "AuxShower"; name = "Shower"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) "bHx" = (/obj/machinery/door/airlock{id_tag = "AuxToilet2"; name = "Unit 2"},/turf/simulated/floor/plasteel,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) -"bHy" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "AuxToilet2"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plasteel,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bHy" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 4},/obj/machinery/button/door{id = "AuxToilet2"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plasteel,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) "bHz" = (/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/glass_command{name = "Bridge Access"; req_access_txt = "19"},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/bridge) "bHA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/carpet,/area/crew_quarters/theatre) "bHB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/carpet,/area/crew_quarters/theatre) @@ -4494,7 +4494,7 @@ "bIv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "blackcorner"},/area/atmos) "bIw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/atmos) "bIx" = (/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor/engine,/area/toxins/explab) -"bIy" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/door_control{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = 26; pixel_y = -26; req_access_txt = "24"},/turf/simulated/floor/plasteel{dir = 6; icon_state = "caution"},/area/atmos) +"bIy" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/button/door{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = 26; pixel_y = -26; req_access_txt = "24"},/turf/simulated/floor/plasteel{dir = 6; icon_state = "caution"},/area/atmos) "bIz" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/structure/grille,/turf/simulated/wall/r_wall,/area/atmos) "bIA" = (/obj/structure/stool/bed/chair/comfy/black{dir = 4},/turf/simulated/floor/carpet,/area/security/vacantoffice) "bIB" = (/obj/machinery/light_switch{pixel_y = -28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/machinery/light,/turf/simulated/floor/carpet,/area/crew_quarters/theatre) @@ -4545,7 +4545,7 @@ "bJu" = (/obj/structure/table/wood,/obj/item/weapon/folder,/turf/simulated/floor/wood,/area/security/vacantoffice) "bJv" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/wood,/area/security/vacantoffice) "bJw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor/wood,/area/security/vacantoffice) -"bJx" = (/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/obj/machinery/door_control{id = "AuxShower"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/item/weapon/soap/nanotrasen,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bJx" = (/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/obj/machinery/button/door{id = "AuxShower"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/item/weapon/soap/nanotrasen,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) "bJy" = (/obj/machinery/shower{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) "bJz" = (/turf/simulated/floor/plating,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) "bJA" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/spawner/lootdrop{loot = list("/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/item/weapon/cigbutt","/obj/item/trash/cheesie","/obj/item/trash/candy","/obj/item/trash/chips","/obj/item/trash/deadmouse","/obj/item/trash/pistachios","/obj/item/trash/plate","/obj/item/trash/popcorn","/obj/item/trash/raisins","/obj/item/trash/sosjerky","/obj/item/trash/syndi_cakes"); name = "maint grille or trash spawner"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) @@ -4624,11 +4624,11 @@ "bKV" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "bKW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/engine,/area/toxins/explab) "bKX" = (/obj/machinery/vending/cola,/turf/simulated/floor/carpet,/area/crew_quarters/bar) -"bKY" = (/obj/machinery/door_control{id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/engine,/area/toxins/explab) +"bKY" = (/obj/machinery/button/door{id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/engine,/area/toxins/explab) "bKZ" = (/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/obj/effect/decal/cleanable/blood,/obj/effect/decal/cleanable/blood/gibs/limb,/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) "bLa" = (/obj/machinery/shower{dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plating,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) "bLb" = (/obj/machinery/door/airlock{id_tag = "AuxToilet3"; name = "Unit 3"},/turf/simulated/floor/plating,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) -"bLc" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "AuxToilet3"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bLc" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 4},/obj/machinery/button/door{id = "AuxToilet3"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) "bLd" = (/obj/structure/bookcase{name = "bookcase (Non-Fiction)"},/turf/simulated/floor/wood,/area/library) "bLe" = (/obj/structure/bookcase{name = "bookcase (Fiction)"},/turf/simulated/floor/wood,/area/library) "bLf" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/turf/simulated/floor/wood,/area/library) @@ -4865,7 +4865,7 @@ "bPC" = (/obj/machinery/telecomms/hub/preset,/turf/simulated/floor/bluegrid{icon_state = "gcircuit"; name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) "bPD" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/telecomms/server/presets/science,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) "bPE" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/telecomms/server/presets/medical,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) -"bPF" = (/obj/machinery/chem_dispenser{layer = 2.7},/obj/machinery/door_control{id = "chemistry_shutters"; name = "chemistry shutters control"; pixel_x = 24; pixel_y = 24; req_access_txt = "5; 33"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellowfull"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"bPF" = (/obj/machinery/chem_dispenser{layer = 2.7},/obj/machinery/button/door{id = "chemistry_shutters"; name = "chemistry shutters control"; pixel_x = 24; pixel_y = 24; req_access_txt = "5; 33"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellowfull"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "bPG" = (/obj/machinery/camera{c_tag = "Arrivals - Aft Arm - Far"; dir = 1; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "bPH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "bPI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) @@ -4944,10 +4944,10 @@ "bRd" = (/obj/structure/rack,/obj/item/weapon/tank/internals/oxygen,/obj/item/weapon/tank/internals/oxygen,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 27; pixel_y = 0},/turf/simulated/floor/plasteel{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/teleporter{name = "\improper Teleporter Room"}) "bRe" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "Inner Pipe Access"; req_access_txt = "24"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/atmos) "bRf" = (/obj/machinery/alarm/server{dir = 4; pixel_x = -22; pixel_y = 0},/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "Telecoms - Server Room - Aft-Port"; dir = 4; network = list("SS13","tcomm")},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) -"bRg" = (/obj/structure/stool/bed/chair/office/light{dir = 1; pixel_y = 3},/obj/machinery/door_control{id = "research_shutters"; name = "research shutters control"; pixel_x = 28; pixel_y = 0; req_access_txt = "7"},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitepurple"; tag = "icon-whitehall (WEST)"},/area/toxins/lab) +"bRg" = (/obj/structure/stool/bed/chair/office/light{dir = 1; pixel_y = 3},/obj/machinery/button/door{id = "research_shutters"; name = "research shutters control"; pixel_x = 28; pixel_y = 0; req_access_txt = "7"},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitepurple"; tag = "icon-whitehall (WEST)"},/area/toxins/lab) "bRh" = (/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = 32},/obj/structure/table/glass,/obj/item/device/radio/off,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/research{name = "Research Division"}) -"bRi" = (/obj/machinery/chem_master{layer = 2.7; pixel_x = -2},/obj/structure/noticeboard{desc = "A board for pinning important notices upon. Probably helpful for keeping track of requests."; dir = 1; name = "requests board"; pixel_x = 0; pixel_y = -32},/obj/machinery/door_control{id = "chemistry_shutters_2"; name = "chemistry shutters control"; pixel_x = 26; pixel_y = -26; req_access_txt = "5; 33"},/turf/simulated/floor/plasteel{dir = 6; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) -"bRj" = (/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/machinery/power/apc{dir = 2; name = "Research Lab APC"; pixel_x = 0; pixel_y = -26},/obj/structure/cable/yellow,/obj/structure/table,/obj/machinery/door_control{id = "research_shutters_2"; name = "research shutters control"; pixel_x = -26; pixel_y = -26; req_access_txt = "7"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/lab) +"bRi" = (/obj/machinery/chem_master{layer = 2.7; pixel_x = -2},/obj/structure/noticeboard{desc = "A board for pinning important notices upon. Probably helpful for keeping track of requests."; dir = 1; name = "requests board"; pixel_x = 0; pixel_y = -32},/obj/machinery/button/door{id = "chemistry_shutters_2"; name = "chemistry shutters control"; pixel_x = 26; pixel_y = -26; req_access_txt = "5; 33"},/turf/simulated/floor/plasteel{dir = 6; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"bRj" = (/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/machinery/power/apc{dir = 2; name = "Research Lab APC"; pixel_x = 0; pixel_y = -26},/obj/structure/cable/yellow,/obj/structure/table,/obj/machinery/button/door{id = "research_shutters_2"; name = "research shutters control"; pixel_x = -26; pixel_y = -26; req_access_txt = "7"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/lab) "bRk" = (/obj/machinery/door/airlock/external{name = "Auxiliary Airlock"},/turf/simulated/floor/plating,/area/hallway/secondary/entry{name = "Arrivals"}) "bRl" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/maintenance/maintcentral{name = "Central Maintenance"}) "bRm" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;27"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) @@ -5057,7 +5057,7 @@ "bTm" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) "bTn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/robot_parts/chest{name = "cyborg torso"; pixel_x = -2; pixel_y = 2},/obj/item/robot_parts/head{name = "cyborg head"; pixel_x = 3; pixel_y = 2},/obj/structure/table/wood,/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) "bTo" = (/obj/structure/table/wood,/obj/item/toy/carpplushie{color = "red"; name = "NanoTrasen wildlife department space carp plushie"},/turf/simulated/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) -"bTp" = (/obj/structure/table/wood,/obj/machinery/door_control{id = "corporate_privacy"; name = "corporate showroom shutters control"; pixel_x = 28; pixel_y = 0; req_access_txt = "19"},/obj/item/weapon/contraband/poster/legit,/obj/item/weapon/contraband/poster/legit,/obj/item/weapon/contraband/poster/legit,/obj/item/weapon/contraband/poster/legit,/obj/item/weapon/contraband/poster/legit,/obj/item/device/paicard{desc = "A real NanoTrasen success, these personal AIs provide all of the companionship of an AI without any law related red-tape."; name = "NanoTrasen-brand personal AI device exhibit"},/turf/simulated/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bTp" = (/obj/structure/table/wood,/obj/machinery/button/door{id = "corporate_privacy"; name = "corporate showroom shutters control"; pixel_x = 28; pixel_y = 0; req_access_txt = "19"},/obj/item/weapon/contraband/poster/legit,/obj/item/weapon/contraband/poster/legit,/obj/item/weapon/contraband/poster/legit,/obj/item/weapon/contraband/poster/legit,/obj/item/weapon/contraband/poster/legit,/obj/item/device/paicard{desc = "A real NanoTrasen success, these personal AIs provide all of the companionship of an AI without any law related red-tape."; name = "NanoTrasen-brand personal AI device exhibit"},/turf/simulated/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) "bTq" = (/obj/structure/cable/yellow,/obj/machinery/shieldwallgen,/turf/simulated/floor/plasteel{tag = "icon-vault (EAST)"; icon_state = "vault"; dir = 4},/area/teleporter{name = "\improper Teleporter Room"}) "bTr" = (/obj/item/weapon/reagent_containers/food/drinks/bottle/tequila,/obj/structure/table/wood,/turf/simulated/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) "bTs" = (/obj/structure/sign/nosmoking_2,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/atmos) @@ -5146,7 +5146,7 @@ "bUX" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/storage/box/matches{pixel_x = -2; pixel_y = 3},/obj/item/clothing/mask/cigarette/cigar{name = "premium cigar"; pixel_x = 4; pixel_y = 1},/obj/item/clothing/mask/cigarette/cigar{name = "premium cigar"; pixel_x = -4; pixel_y = 1},/obj/item/clothing/mask/cigarette/cigar/cohiba{name = "cohiba robusto cigar"},/obj/structure/table/wood,/turf/simulated/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) "bUY" = (/obj/item/weapon/book/manual/wiki/security_space_law{name = "space law"; pixel_y = 2},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/item/toy/gun{name = "cap gun"},/obj/item/weapon/restraints/handcuffs{name = "handcuffs"},/obj/structure/table/wood,/obj/item/clothing/head/collectable/HoS{name = "novelty HoS hat"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) "bUZ" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/machinery/meter,/obj/item/weapon/wrench,/turf/simulated/floor/plasteel,/area/atmos) -"bVa" = (/obj/item/weapon/storage/belt/utility,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/structure/rack{dir = 8; layer = 2.9},/obj/machinery/door_control{id = "gateshutter"; name = "Gateway Shutter Control"; pixel_x = 0; pixel_y = -26; req_access_txt = "19"},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/gateway) +"bVa" = (/obj/item/weapon/storage/belt/utility,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/structure/rack{dir = 8; layer = 2.9},/obj/machinery/button/door{id = "gateshutter"; name = "Gateway Shutter Control"; pixel_x = 0; pixel_y = -26; req_access_txt = "19"},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/gateway) "bVb" = (/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/clothing/suit/apron/surgical,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitehall"; tag = "icon-whitehall (WEST)"},/area/medical/surgery) "bVc" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/gateway) "bVd" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/camera{c_tag = "Gateway - Access"; dir = 8; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/gateway) @@ -5154,7 +5154,7 @@ "bVf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/hallway/primary/central) "bVg" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/mint,/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/power/apc{dir = 2; name = "Kitchen APC"; pixel_y = -24},/obj/structure/cable/yellow,/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bVh" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/obj/item/weapon/reagent_containers/food/condiment/enzyme{layer = 5},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) -"bVi" = (/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/obj/machinery/door_control{id = "kitchenhydro"; name = "Service Shutter Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "28"},/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) +"bVi" = (/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/obj/machinery/button/door{id = "kitchenhydro"; name = "Service Shutter Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "28"},/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "bVj" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 0},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3},/obj/item/device/radio/intercom{pixel_y = -25},/obj/item/weapon/kitchen/rollingpin,/obj/machinery/camera{c_tag = "Kitchen"; dir = 1; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bVk" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/structure/table,/obj/machinery/reagentgrinder,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "bVl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) @@ -5174,7 +5174,7 @@ "bVz" = (/obj/structure/closet/wardrobe/atmospherics_yellow,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/atmos) "bVA" = (/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/shower{dir = 8; icon_state = "shower"; name = "emergency shower"; tag = "icon-shower (WEST)"},/turf/simulated/floor/plasteel,/area/atmos) "bVB" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Port to Filter"; on = 0},/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "Atmospherics - Starboard"; dir = 4; network = list("SS13")},/turf/simulated/floor/plasteel,/area/atmos) -"bVC" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "evashutter"; name = "E.V.A. Storage Shutter"},/obj/machinery/door_control{id = "evashutter"; name = "E.V.A. Storage Shutter Control"; pixel_x = 30; pixel_y = 0; req_access_txt = "19"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bVC" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "evashutter"; name = "E.V.A. Storage Shutter"},/obj/machinery/button/door{id = "evashutter"; name = "E.V.A. Storage Shutter Control"; pixel_x = 30; pixel_y = 0; req_access_txt = "19"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) "bVD" = (/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/gateway) "bVE" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "tox_in"; pixel_y = 1},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos) "bVF" = (/obj/item/weapon/storage/secure/safe{pixel_x = 32; pixel_y = 0},/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/crew_quarters/hor) @@ -5222,10 +5222,10 @@ "bWv" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/turf/simulated/floor/plating,/area/maintenance/starboard) "bWw" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Kitchen"},/obj/structure/plasticflaps{opacity = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/crew_quarters/kitchen) "bWx" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/atmos) -"bWy" = (/obj/machinery/door/poddoor/shutters{id = "teleshutter"; name = "Teleporter Access Shutter"},/obj/machinery/door_control{id = "teleshutter"; name = "Teleporter Shutter Control"; pixel_x = 30; pixel_y = 5; req_access_txt = "19"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/teleporter{name = "\improper Teleporter Room"}) +"bWy" = (/obj/machinery/door/poddoor/shutters{id = "teleshutter"; name = "Teleporter Access Shutter"},/obj/machinery/button/door{id = "teleshutter"; name = "Teleporter Shutter Control"; pixel_x = 30; pixel_y = 5; req_access_txt = "19"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/teleporter{name = "\improper Teleporter Room"}) "bWz" = (/obj/machinery/pipedispenser,/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/atmos) "bWA" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 28},/obj/machinery/pipedispenser/disposal/transit_tube,/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"; tag = "icon-warnwhite (NORTHEAST)"},/area/atmos) -"bWB" = (/obj/machinery/door_control{id = "xeno_blastdoor"; name = "Secure Lab Shutter Control"; pixel_x = -5; pixel_y = -5; req_access_txt = "47"},/obj/structure/table/reinforced,/obj/machinery/door_control{id = "rdprivacy"; name = "Privacy Shutters Control"; pixel_x = 5; pixel_y = 5},/obj/machinery/door_control{id = "Biohazard"; name = "Entrance Shutter Control"; pixel_x = -5; pixel_y = 5; req_access_txt = "47"},/obj/machinery/door_control{id = "toxins_blastdoor"; name = "Toxins Shutter Control"; pixel_x = 5; pixel_y = -5; req_access_txt = "47"},/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bWB" = (/obj/machinery/button/door{id = "xeno_blastdoor"; name = "Secure Lab Shutter Control"; pixel_x = -5; pixel_y = -5; req_access_txt = "47"},/obj/structure/table/reinforced,/obj/machinery/button/door{id = "rdprivacy"; name = "Privacy Shutters Control"; pixel_x = 5; pixel_y = 5},/obj/machinery/button/door{id = "Biohazard"; name = "Entrance Shutter Control"; pixel_x = -5; pixel_y = 5; req_access_txt = "47"},/obj/machinery/button/door{id = "toxins_blastdoor"; name = "Toxins Shutter Control"; pixel_x = 5; pixel_y = -5; req_access_txt = "47"},/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "bWC" = (/turf/simulated/wall,/area/maintenance/portsolar) "bWD" = (/obj/machinery/door/airlock/engineering{name = "Aft Port Solar Access"; req_access_txt = "10"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/portsolar) "bWE" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/maintenance/portsolar) @@ -5264,7 +5264,7 @@ "bXl" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/hallway/primary/central) "bXm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/hallway/primary/central) "bXn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/hallway/primary/central) -"bXo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door_control{id = "gateshutter"; name = "Gateway Shutter Control"; pixel_x = 0; pixel_y = 26; req_access_txt = "19"},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/hallway/primary/central) +"bXo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/button/door{id = "gateshutter"; name = "Gateway Shutter Control"; pixel_x = 0; pixel_y = 26; req_access_txt = "19"},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/hallway/primary/central) "bXp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = 30},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/hallway/primary/central) "bXq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/hallway/primary/central) "bXr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/hallway/primary/central) @@ -5357,7 +5357,7 @@ "bZa" = (/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) "bZb" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "co2_sensor"},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) "bZc" = (/obj/machinery/computer/card/minor/rd,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) -"bZd" = (/obj/machinery/light{dir = 4},/obj/structure/disposalpipe/segment,/obj/machinery/door_control{id = "genetics_shutters"; name = "genetics shutters control"; pixel_x = 28; pixel_y = 0; req_access_txt = "9"},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 4},/area/medical/genetics) +"bZd" = (/obj/machinery/light{dir = 4},/obj/structure/disposalpipe/segment,/obj/machinery/button/door{id = "genetics_shutters"; name = "genetics shutters control"; pixel_x = 28; pixel_y = 0; req_access_txt = "9"},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 4},/area/medical/genetics) "bZe" = (/obj/item/weapon/paper_bin{pixel_x = 0; pixel_y = 7},/obj/item/weapon/pen,/obj/structure/table,/obj/machinery/newscaster{pixel_x = 0; pixel_y = -30},/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "bZf" = (/obj/structure/stool,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/camera{c_tag = "Aft Port Solar Maintenance"; dir = 4; network = list("SS13")},/turf/simulated/floor/plating,/area/maintenance/portsolar) "bZg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plating,/area/maintenance/portsolar) @@ -5436,11 +5436,11 @@ "caB" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/space,/area/solar/port) "caC" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) "caD" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) -"caE" = (/obj/structure/filingcabinet/chestdrawer{pixel_x = -2; pixel_y = 2},/obj/machinery/door_control{id = "robotics_shutters"; name = "robotics shutters control"; pixel_x = -26; pixel_y = 26; req_access_txt = "29"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) +"caE" = (/obj/structure/filingcabinet/chestdrawer{pixel_x = -2; pixel_y = 2},/obj/machinery/button/door{id = "robotics_shutters"; name = "robotics shutters control"; pixel_x = -26; pixel_y = 26; req_access_txt = "29"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) "caF" = (/obj/machinery/power/solar_control{id = "aftport"; name = "Aft Port Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/turf/simulated/floor/plating,/area/maintenance/portsolar) "caG" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/portsolar) "caH" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/portsolar) -"caI" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/machinery/door_control{id = "kitchen"; name = "Kitchen Shutters Control"; pixel_x = -4; pixel_y = 26; req_access_txt = "28"},/obj/machinery/light_switch{pixel_x = 6; pixel_y = 26},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) +"caI" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/machinery/button/door{id = "kitchen"; name = "Kitchen Shutters Control"; pixel_x = -4; pixel_y = 26; req_access_txt = "28"},/obj/machinery/light_switch{pixel_x = 6; pixel_y = 26},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "caJ" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "caK" = (/obj/structure/closet,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "caL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/maintenance/aft{name = "Aft Maintenance"}) @@ -5664,7 +5664,7 @@ "ceV" = (/obj/machinery/hologram/holopad,/obj/effect/landmark/start{name = "Medical Doctor"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay2{name = "Medbay Storage"}) "ceW" = (/obj/structure/rack,/obj/item/weapon/extinguisher,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/mask/gas,/obj/item/weapon/storage/box/lights/mixed,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/starboard) "ceX" = (/obj/machinery/computer/secure_data,/obj/machinery/computer/security/telescreen{desc = "Used for monitoring medbay to ensure patient safety."; dir = 1; name = "Medbay Monitor"; network = list("Medbay"); pixel_x = 0; pixel_y = -29},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27; pixel_y = -10},/turf/simulated/floor/plasteel{icon_state = "red"},/area/security/checkpoint/medical) -"ceY" = (/obj/structure/stool/bed/chair/office/dark,/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = 24; pixel_y = -24},/obj/effect/landmark/start/depsec/medical,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 6},/area/security/checkpoint/medical) +"ceY" = (/obj/structure/stool/bed/chair/office/dark,/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = 24; pixel_y = -24},/obj/effect/landmark/start/depsec/medical,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 6},/area/security/checkpoint/medical) "ceZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "rdprivacy"; name = "privacy shutter"},/turf/simulated/floor/plating,/area/crew_quarters/hor) "cfa" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) "cfb" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) @@ -5777,7 +5777,7 @@ "che" = (/obj/structure/sign/nosmoking_2{pixel_x = -28},/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4; name = "input gas connector port"},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/incinerator) "chf" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "input port pump"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/incinerator) "chg" = (/obj/structure/closet/wardrobe/virology_white,/obj/item/weapon/storage/backpack/satchel_vir,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/medical/virology) -"chh" = (/obj/item/candle,/obj/machinery/light_switch{pixel_x = 6; pixel_y = 25},/obj/effect/decal/cleanable/cobweb2,/obj/structure/table/wood,/obj/machinery/door_control{id = "chapel_shutters"; name = "chapel shutters control"; pixel_x = -6; pixel_y = 25; req_access_txt = "0"},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) +"chh" = (/obj/item/candle,/obj/machinery/light_switch{pixel_x = 6; pixel_y = 25},/obj/effect/decal/cleanable/cobweb2,/obj/structure/table/wood,/obj/machinery/button/door{id = "chapel_shutters"; name = "chapel shutters control"; pixel_x = -6; pixel_y = 25; req_access_txt = "0"},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) "chi" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "chapel_shutters"; name = "chapel shutters"},/turf/simulated/floor/plating,/area/chapel/main) "chj" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "chapel_shutters_parlour"; name = "chapel shutters"},/turf/simulated/floor/plating,/area/chapel/main) "chk" = (/obj/item/weapon/storage/box/bodybags{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/rxglasses{pixel_x = 1; pixel_y = 1},/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table/glass,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitebluecorner"},/area/medical/medbay2{name = "Medbay Storage"}) @@ -5807,7 +5807,7 @@ "chI" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay2{name = "Medbay Storage"}) "chJ" = (/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/structure/table/glass,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/medical/genetics) "chK" = (/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 28},/obj/machinery/light{dir = 1},/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 9; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) -"chL" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Medical Doctor"},/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = 24; pixel_y = 24},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) +"chL" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Medical Doctor"},/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = 24; pixel_y = 24},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) "chM" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/atmos) "chN" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) "chO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) @@ -5845,7 +5845,7 @@ "ciu" = (/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/starboard) "civ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/starboard) "ciw" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) -"cix" = (/obj/machinery/light/small,/obj/machinery/door_control{id = "chapel_shutters_space"; name = "chapel shutters control"; pixel_x = -6; pixel_y = -25; req_access_txt = "0"},/obj/machinery/light_switch{pixel_x = 6; pixel_y = -25},/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/chapel/main) +"cix" = (/obj/machinery/light/small,/obj/machinery/button/door{id = "chapel_shutters_space"; name = "chapel shutters control"; pixel_x = -6; pixel_y = -25; req_access_txt = "0"},/obj/machinery/light_switch{pixel_x = 6; pixel_y = -25},/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/chapel/main) "ciy" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/simulated/wall/r_wall,/area/maintenance/incinerator) "ciz" = (/turf/simulated/wall/r_wall,/area/maintenance/incinerator) "ciA" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 2},/turf/simulated/wall/r_wall,/area/maintenance/incinerator) @@ -5907,7 +5907,7 @@ "cjE" = (/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/maintenance/aft{name = "Aft Maintenance"}) "cjF" = (/obj/machinery/light,/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) "cjG" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/firealarm{dir = 1; pixel_x = 26; pixel_y = -26},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteyellow"},/area/medical/medbay{name = "Medbay Central"}) -"cjH" = (/obj/machinery/light/small,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/machinery/door_control{id = "chapel_shutters_parlour"; name = "chapel shutters control"; pixel_x = 0; pixel_y = -25; req_access_txt = "0"},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) +"cjH" = (/obj/machinery/light/small,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/machinery/button/door{id = "chapel_shutters_parlour"; name = "chapel shutters control"; pixel_x = 0; pixel_y = -25; req_access_txt = "0"},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) "cjI" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/incinerator) "cjJ" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/incinerator) "cjK" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/incinerator) @@ -6005,7 +6005,7 @@ "cly" = (/obj/machinery/power/apc{dir = 1; name = "Medbay Central APC"; pixel_y = 24},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/camera{c_tag = "Medbay Hallway Fore"; dir = 2; network = list("SS13","Medbay")},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitebluecorner"},/area/medical/medbay{name = "Medbay Central"}) "clz" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) "clA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitebluecorner"},/area/medical/medbay{name = "Medbay Central"}) -"clB" = (/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Exit Button"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 26},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitebluecorner"},/area/medical/medbay{name = "Medbay Central"}) +"clB" = (/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Exit Button"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 26},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitebluecorner"},/area/medical/medbay{name = "Medbay Central"}) "clC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) "clD" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) "clE" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Chemistry Lab"; req_access_txt = "5; 33"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) @@ -6120,7 +6120,7 @@ "cnM" = (/obj/machinery/doorButtons/access_button{idDoor = "virology_airlock_exterior"; idSelf = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = 0; pixel_y = 24; req_access_txt = "39"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/virology{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_exterior"; locked = 1; name = "Virology Exterior Airlock"; req_access_txt = "39"},/turf/simulated/floor/plasteel{icon_state = "whitegreenfull"},/area/medical/virology) "cnN" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/virology{name = "Virology Access"; req_access_txt = "39"},/turf/simulated/floor/plasteel{icon_state = "whitegreenfull"},/area/medical/medbay3{name = "Medbay Aft"}) "cnO" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/simulated/floor/plating,/area/medical/virology) -"cnP" = (/obj/machinery/doorButtons/airlock_controller{idExterior = "incinerator_airlock_exterior"; idInterior = "incinerator_airlock_interior"; idSelf = "incinerator_access_control"; name = "Incinerator Access Console"; pixel_x = 8; pixel_y = -24; req_access_txt = "12"},/obj/machinery/ignition_switch{id = "Incinerator"; pixel_x = 8; pixel_y = -36},/obj/machinery/computer/security/telescreen{desc = "Used for watching the turbine vent."; dir = 8; name = "turbine vent monitor"; network = list("Turbine"); pixel_x = 29; pixel_y = 0},/obj/machinery/door_control{id = "turbinevent"; name = "Turbine Vent Control"; pixel_x = -8; pixel_y = -36; req_access_txt = "12"},/obj/structure/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/machinery/door_control{id = "auxincineratorvent"; name = "Auxiliary Vent Control"; pixel_x = -8; pixel_y = -24; req_access_txt = "12"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/incinerator) +"cnP" = (/obj/machinery/doorButtons/airlock_controller{idExterior = "incinerator_airlock_exterior"; idInterior = "incinerator_airlock_interior"; idSelf = "incinerator_access_control"; name = "Incinerator Access Console"; pixel_x = 8; pixel_y = -24; req_access_txt = "12"},/obj/machinery/button/ignition{id = "Incinerator"; pixel_x = 8; pixel_y = -36},/obj/machinery/computer/security/telescreen{desc = "Used for watching the turbine vent."; dir = 8; name = "turbine vent monitor"; network = list("Turbine"); pixel_x = 29; pixel_y = 0},/obj/machinery/button/door{id = "turbinevent"; name = "Turbine Vent Control"; pixel_x = -8; pixel_y = -36; req_access_txt = "12"},/obj/structure/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/machinery/button/door{id = "auxincineratorvent"; name = "Auxiliary Vent Control"; pixel_x = -8; pixel_y = -24; req_access_txt = "12"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/incinerator) "cnQ" = (/obj/machinery/power/compressor{comp_id = "incineratorturbine"; dir = 1; luminosity = 2},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator) "cnR" = (/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{dir = 1; external_pressure_bound = 0; frequency = 1443; icon_state = "in"; id_tag = "air_out"; internal_pressure_bound = 2000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) "cnS" = (/obj/machinery/air_sensor{frequency = 1443; id_tag = "air_sensor"; output = 7},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) @@ -6324,7 +6324,7 @@ "crI" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "crJ" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/space,/area/solar/starboard) "crK" = (/obj/machinery/door/airlock/maintenance{name = "Chemistry Lab Maintenance"; req_access_txt = "5; 33"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plating,/area/medical/chemistry) -"crL" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/machinery/driver_button{id = "chapelgun"; name = "Chapel Mass Driver"; pixel_x = -4; pixel_y = -26},/obj/structure/table/wood,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) +"crL" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/machinery/button/massdriver{id = "chapelgun"; name = "Chapel Mass Driver"; pixel_x = -4; pixel_y = -26},/obj/structure/table/wood,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) "crM" = (/obj/structure/lattice,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area/space) "crN" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = -3},/obj/item/weapon/storage/firstaid/brute{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/brute,/obj/item/weapon/storage/firstaid/brute{pixel_x = -3; pixel_y = -3},/obj/machinery/power/apc{dir = 2; name = "Medbay Storage APC"; pixel_y = -24},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/light_switch{pixel_x = -26; pixel_y = 0},/obj/machinery/light/small,/obj/structure/table/glass,/turf/simulated/floor/plasteel{dir = 10; icon_state = "whiteblue"},/area/medical/medbay2{name = "Medbay Storage"}) "crO" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "aftstarboard"; name = "Aft-Starboard Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/starboard) @@ -6430,7 +6430,7 @@ "ctK" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 6},/obj/item/weapon/pen,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/explab) "ctL" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/book/manual/experimentor,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/explab) "ctM" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 6},/turf/simulated/floor/plasteel{icon_state = "purplefull"},/area/hallway/primary/aft) -"ctN" = (/obj/machinery/door_control{id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = 0; pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 7; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -2; pixel_y = -1},/obj/item/weapon/reagent_containers/dropper,/obj/item/stack/medical/bruise_pack{pixel_x = -2; pixel_y = 6},/obj/item/stack/medical/ointment,/obj/item/device/healthanalyzer,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/explab) +"ctN" = (/obj/machinery/button/door{id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = 0; pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 7; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -2; pixel_y = -1},/obj/item/weapon/reagent_containers/dropper,/obj/item/stack/medical/bruise_pack{pixel_x = -2; pixel_y = 6},/obj/item/stack/medical/ointment,/obj/item/device/healthanalyzer,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/explab) "ctO" = (/obj/machinery/chem_heater,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "ctP" = (/obj/machinery/atmospherics/components/unary/cryo_cell,/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/medical/cryo) "ctQ" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/machinery/door/window/eastleft{dir = 1; name = "Research and Development Deliveries"; req_access_txt = "7"},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/toxins/lab) @@ -6612,7 +6612,7 @@ "cxp" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cxq" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/clothing/tie/stethoscope,/obj/machinery/light/small{dir = 8},/obj/machinery/power/apc{dir = 8; name = "Patient Room A APC"; pixel_x = -26; pixel_y = 0},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/medical/patients_rooms{name = "Patient Room A"}) "cxr" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/patients_rooms{name = "Patient Room A"}) -"cxs" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/door_control{id = "isola"; name = "Privacy Shutters"; pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/patients_rooms{name = "Patient Room A"}) +"cxs" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/button/door{id = "isola"; name = "Privacy Shutters"; pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/patients_rooms{name = "Patient Room A"}) "cxt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/decal/cleanable/generic,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) "cxu" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitebluecorner"},/area/medical/medbay{name = "Medbay Central"}) "cxv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) @@ -6733,7 +6733,7 @@ "czG" = (/obj/machinery/chem_heater{pixel_x = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "czH" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/assembly/chargebay) "czI" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/poddoor/preopen{id = "isolb"; name = "privacy shutters"},/turf/simulated/floor/plating,/area/medical/exam_room{name = "Patient Room B"}) -"czJ" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/door_control{id = "isolb"; name = "Privacy Shutters"; pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/exam_room{name = "Patient Room B"}) +"czJ" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/button/door{id = "isolb"; name = "Privacy Shutters"; pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/exam_room{name = "Patient Room B"}) "czK" = (/obj/item/clothing/glasses/science{pixel_x = 2; pixel_y = 4},/obj/item/clothing/glasses/science,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/structure/table/glass,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/machinery/camera{c_tag = "Chemistry"; dir = 4; network = list("SS13","Medbay")},/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{dir = 10; icon_state = "whiteyellow"},/area/medical/chemistry) "czL" = (/obj/machinery/computer/mech_bay_power_console,/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/bluegrid{icon_state = "gcircuit"},/area/assembly/chargebay) "czM" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 31},/turf/simulated/floor/mech_bay_recharge_floor,/area/assembly/chargebay) @@ -6820,7 +6820,7 @@ "cBp" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/light_switch{pixel_x = 26; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/surgery) "cBq" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/light_switch{pixel_x = 0; pixel_y = -24},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/medical/cryo) "cBr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"cBs" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/keycard_auth{pixel_x = 26; pixel_y = -7},/obj/machinery/computer/med_data/laptop,/obj/structure/table/glass,/obj/machinery/door_control{id = "cmoprivacy"; name = "Privacy Shutters Control"; pixel_x = 26; pixel_y = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) +"cBs" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/keycard_auth{pixel_x = 26; pixel_y = -7},/obj/machinery/computer/med_data/laptop,/obj/structure/table/glass,/obj/machinery/button/door{id = "cmoprivacy"; name = "Privacy Shutters Control"; pixel_x = 26; pixel_y = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) "cBt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cBu" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cBv" = (/obj/structure/sign/biohazard,/turf/simulated/wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) @@ -6846,7 +6846,7 @@ "cBQ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteyellow"},/area/medical/chemistry) "cBR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay3{name = "Medbay Aft"}) "cBS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sign/nosmoking_2{pixel_x = 28},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitebluecorner"},/area/medical/medbay3{name = "Medbay Aft"}) -"cBT" = (/obj/machinery/door_control{desc = "A remote control switch for the cloning door."; id = "CloningDoor"; name = "Cloning Exit Button"; normaldoorcontrol = 1; pixel_x = -23; pixel_y = 8},/turf/simulated/floor/plasteel{dir = 10; icon_state = "whiteblue"},/area/medical/genetics_cloning) +"cBT" = (/obj/machinery/button/door{desc = "A remote control switch for the cloning door."; id = "CloningDoor"; name = "Cloning Exit Button"; normaldoorcontrol = 1; pixel_x = -23; pixel_y = 8},/turf/simulated/floor/plasteel{dir = 10; icon_state = "whiteblue"},/area/medical/genetics_cloning) "cBU" = (/obj/effect/landmark/start{name = "Geneticist"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/medical/genetics_cloning) "cBV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/machinery/power/apc{dir = 4; name = "Cloning Lab APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable/yellow,/obj/machinery/camera{c_tag = "Genetics Cloning Lab"; dir = 8; network = list("SS13","Medbay")},/turf/simulated/floor/plasteel{dir = 6; icon_state = "whiteblue"},/area/medical/genetics_cloning) "cBW" = (/turf/simulated/floor/plasteel{dir = 10; icon_state = "whiteblue"},/area/medical/genetics) @@ -6859,8 +6859,8 @@ "cCd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -26},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/aft) "cCe" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/aft) "cCf" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access_txt = "8"},/obj/machinery/door/poddoor/shutters/preopen{id = "toxins_blastdoor"; name = "biohazard containment shutters"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/toxins/storage) -"cCg" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/obj/machinery/door_control{dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; pixel_x = 26; pixel_y = 6; req_one_access_txt = "29"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/aft) -"cCh" = (/obj/machinery/door_control{dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; pixel_x = -26; pixel_y = 6},/obj/machinery/light_switch{pixel_x = -23; pixel_y = -2},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/assembly/chargebay) +"cCg" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/obj/machinery/button/door{dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; pixel_x = 26; pixel_y = 6; req_one_access_txt = "29"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/aft) +"cCh" = (/obj/machinery/button/door{dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; pixel_x = -26; pixel_y = 6},/obj/machinery/light_switch{pixel_x = -23; pixel_y = -2},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/assembly/chargebay) "cCi" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cCj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) "cCk" = (/obj/item/device/healthanalyzer{pixel_x = 1; pixel_y = 4},/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = -30},/obj/structure/table/glass,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitehall"},/area/medical/medbay3{name = "Medbay Aft"}) @@ -6973,7 +6973,7 @@ "cEo" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cEp" = (/turf/simulated/floor/plasteel{icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cEq" = (/obj/machinery/light/small,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) -"cEr" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/driver_button{dir = 2; id = "toxinsdriver"; pixel_x = 24; pixel_y = -24},/obj/machinery/computer/security/telescreen{desc = "Used for watching the test chamber."; dir = 8; layer = 4; name = "Test Chamber Telescreen"; network = list("Toxins"); pixel_x = 30; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cEr" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/button/massdriver{dir = 2; id = "toxinsdriver"; pixel_x = 24; pixel_y = -24},/obj/machinery/computer/security/telescreen{desc = "Used for watching the test chamber."; dir = 8; layer = 4; name = "Test Chamber Telescreen"; network = list("Toxins"); pixel_x = 30; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cEs" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/closet/crate,/obj/item/clothing/gloves/color/fyellow,/obj/item/weapon/wrench,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cEt" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'BOMB RANGE"; name = "BOMB RANGE"},/turf/simulated/wall,/area/toxins/test_area) "cEu" = (/obj/machinery/door/airlock/maintenance{name = "Research Testing Range Maintenance"; req_access_txt = "0"; req_one_access_txt = "7;47;29"},/turf/simulated/floor/plating,/area/toxins/misc_lab{name = "\improper Research Testing Range"}) @@ -7202,7 +7202,7 @@ "cIU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plasteel{dir = 10; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "cIV" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 25},/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 4; frequency = 1443; id = "air_in"},/turf/simulated/floor/engine/vacuum,/area/toxins/mixing{name = "\improper Toxins Lab"}) "cIW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sign/fire{pixel_y = -32},/obj/machinery/atmospherics/components/binary/pump{dir = 8; on = 1},/turf/simulated/floor/engine,/area/toxins/mixing{name = "\improper Toxins Lab"}) -"cIX" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/meter,/obj/machinery/door_control{id = "mixvent"; name = "Mixing Room Vent Control"; pixel_x = -25; pixel_y = 5; req_access_txt = "7"},/obj/machinery/ignition_switch{id = "mixingsparker"; pixel_x = -25; pixel_y = -5},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhitecorner"},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIX" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/meter,/obj/machinery/button/door{id = "mixvent"; name = "Mixing Room Vent Control"; pixel_x = -25; pixel_y = 5; req_access_txt = "7"},/obj/machinery/button/ignition{id = "mixingsparker"; pixel_x = -25; pixel_y = -5},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhitecorner"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cIY" = (/obj/machinery/atmospherics/components/binary/valve{dir = 4; name = "manual inlet valve"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cIZ" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cJa" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) @@ -7515,7 +7515,7 @@ "cPc" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cPd" = (/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/structure/table/glass,/obj/item/stack/sheet/mineral/plasma{layer = 2.9; pixel_y = 4},/obj/item/stack/sheet/mineral/plasma{layer = 2.9; pixel_y = 4},/obj/item/stack/sheet/mineral/plasma{layer = 2.9; pixel_y = 4},/obj/item/stack/sheet/mineral/plasma{layer = 2.9; pixel_y = 4},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker/large{pixel_x = -3; pixel_y = 3},/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cPe" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 7},/obj/item/weapon/storage/box/syringes{pixel_y = 5},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) -"cPf" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/crema_switch{pixel_x = -25},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office) +"cPf" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/button/crematorium{pixel_x = -25},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office) "cPg" = (/obj/machinery/light/small{dir = 4},/obj/effect/landmark/start{name = "Chaplain"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office) "cPh" = (/obj/machinery/chem_master{pixel_x = -2; pixel_y = 1},/obj/structure/noticeboard{pixel_y = 30},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cPi" = (/obj/structure/stool/bed/chair,/obj/effect/landmark/start{name = "Chaplain"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office) @@ -7745,7 +7745,7 @@ "cTy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cTz" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cTA" = (/obj/structure/sign/vacuum{pixel_x = 32},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) -"cTB" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio8"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTB" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio8"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cTC" = (/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cTD" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #1"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cTE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) @@ -7762,7 +7762,7 @@ "cTP" = (/mob/living/simple_animal/slime,/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cTQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cTR" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warnwhitecorner"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) -"cTS" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio3"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTS" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio3"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cTT" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{tag = "icon-warnwhitecorner"; icon_state = "warnwhitecorner"; dir = 2},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cTU" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cTV" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow,/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) @@ -7782,14 +7782,14 @@ "cUl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhitecorner"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cUm" = (/turf/simulated/floor/plasteel{tag = "icon-warnwhitecorner (WEST)"; icon_state = "warnwhitecorner"; dir = 8},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cUn" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio7"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) -"cUo" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio7"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUo" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio7"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cUp" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #3"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cUq" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #3"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cUr" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cUs" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #4"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio7"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cUt" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #4"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cUu" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) -"cUv" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio2"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUv" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio2"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cUw" = (/obj/machinery/hydroponics/soil{pixel_y = 8},/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/chapel/main) "cUx" = (/obj/machinery/door/morgue{name = "Chapel Garden"; req_access_txt = "0"},/turf/simulated/floor/plasteel{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/chapel/main) "cUy" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{tag = "icon-warnwhitecorner"; icon_state = "warnwhitecorner"; dir = 2},/area/toxins/xenobiology{name = "\improper Secure Lab"}) @@ -7802,8 +7802,8 @@ "cUF" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cUG" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cUH" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhitecorner"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) -"cUI" = (/obj/machinery/light{dir = 1},/obj/machinery/door_control{id = "xenobio1"; name = "Containment Blast Doors"; pixel_x = -24; pixel_y = 24; req_access_txt = "55"},/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/xenobiology{name = "\improper Secure Lab"}) -"cUJ" = (/obj/structure/window/reinforced,/obj/machinery/door_control{id = "xenobio6"; name = "Containment Blast Doors"; pixel_x = 24; pixel_y = 24; req_access_txt = "55"},/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal/bin,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUI" = (/obj/machinery/light{dir = 1},/obj/machinery/button/door{id = "xenobio1"; name = "Containment Blast Doors"; pixel_x = -24; pixel_y = 24; req_access_txt = "55"},/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUJ" = (/obj/structure/window/reinforced,/obj/machinery/button/door{id = "xenobio6"; name = "Containment Blast Doors"; pixel_x = 24; pixel_y = 24; req_access_txt = "55"},/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal/bin,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cUK" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cUL" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cUM" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #5"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) @@ -7833,7 +7833,7 @@ "cVk" = (/obj/structure/closet,/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cVl" = (/obj/item/weapon/crowbar/red,/obj/item/weapon/wrench,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cVm" = (/obj/machinery/door/airlock/command{icon = 'icons/obj/doors/Doorele.dmi'; name = "Test Chamber Maintenance"; req_access_txt = "47"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) -"cVn" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/window/reinforced{dir = 4},/obj/machinery/ignition_switch{id = "Xenobio"; pixel_x = -6; pixel_y = -2},/obj/machinery/door_control{id = "Xenolab"; name = "Test Chamber Blast Doors"; pixel_x = 4; pixel_y = -2; req_access_txt = "55"},/obj/structure/table/reinforced,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVn" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/window/reinforced{dir = 4},/obj/machinery/button/ignition{id = "Xenobio"; pixel_x = -6; pixel_y = -2},/obj/machinery/button/door{id = "Xenolab"; name = "Test Chamber Blast Doors"; pixel_x = 4; pixel_y = -2; req_access_txt = "55"},/obj/structure/table/reinforced,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cVo" = (/obj/machinery/computer/security/telescreen{dir = 1; name = "Test Chamber Monitor"; network = list("Xeno"); pixel_x = 0; pixel_y = 2},/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cVp" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 2},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cVq" = (/obj/machinery/door/window/southleft{dir = 1; name = "Maximum Security Test Chamber"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) @@ -7899,7 +7899,7 @@ "cWy" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/engine{dir = 1; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) "cWz" = (/obj/structure/table,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/item/clothing/glasses/science,/turf/simulated/floor/engine{dir = 10; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) "cWA" = (/obj/item/weapon/gun/energy/laser/practice,/obj/machinery/power/apc{dir = 2; name = "Research Firing Range APC"; pixel_x = 0; pixel_y = -28},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow,/turf/simulated/floor/engine{dir = 6; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) -"cWB" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door_control{id = "researchrangeshutters"; name = "Blast Door Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "0"},/obj/machinery/light,/turf/simulated/floor/engine{icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cWB" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/button/door{id = "researchrangeshutters"; name = "Blast Door Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "0"},/obj/machinery/light,/turf/simulated/floor/engine{icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) "cWC" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/virology{name = "Break Room"; req_access_txt = "39"},/turf/simulated/floor/plasteel{icon_state = "whitegreenfull"},/area/medical/virology) "cWD" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=10-Aft-To-Central"; location = "9.4-Escape-4"},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cWE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=9.2-Escape-2"; location = "9.1-Escape-1"},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) diff --git a/_maps/map_files/MetaStation/z2.dmm b/_maps/map_files/MetaStation/z2.dmm index 668cc886bfe..75a1ab76ce7 100644 --- a/_maps/map_files/MetaStation/z2.dmm +++ b/_maps/map_files/MetaStation/z2.dmm @@ -1317,14 +1317,14 @@ /turf/simulated/floor/light, /area/centcom/ferry) "dX" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ dir = 2; id = "QMLoaddoor2"; name = "Loading Doors"; pixel_x = 24; pixel_y = 8 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "QMLoaddoor"; name = "Loading Doors"; pixel_x = 24; @@ -2157,7 +2157,7 @@ }, /area/shuttle/escape) "fU" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "adminshut"; name = "Administrative Shutter-Control"; pixel_y = 26 @@ -3148,7 +3148,7 @@ /turf/simulated/floor/plasteel/black, /area/centcom/control) "ip" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; @@ -3282,7 +3282,7 @@ /area/shuttle/syndicate) "iK" = ( /obj/structure/table, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150" @@ -3752,7 +3752,7 @@ /turf/simulated/floor/plasteel/shuttle, /area/shuttle/escape) "kb" = ( -/obj/machinery/flasher_button{ +/obj/machinery/button/flasher{ id = "emshuttlebridgeflash"; name = "cockpit flasher button"; pixel_y = 24; @@ -4071,7 +4071,7 @@ /obj/structure/stool/bed/chair{ dir = 1 }, -/obj/machinery/flasher_button{ +/obj/machinery/button/flasher{ id = "emshuttleflash"; name = "brig flasher button"; pixel_y = -23; @@ -4814,7 +4814,7 @@ }, /area/wizard_station) "mT" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; @@ -4931,7 +4931,7 @@ id = "smindicate"; name = "outer blast door" }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "smindicate"; name = "external door control"; pixel_x = -26; @@ -6100,7 +6100,7 @@ /turf/simulated/floor/plasteel/redyellow, /area/tdome/tdomeadmin) "qq" = ( -/obj/machinery/flasher_button{ +/obj/machinery/button/flasher{ id = "tdomeflash"; pixel_x = 0; pixel_y = 0 @@ -6191,7 +6191,7 @@ /area/wizard_station) "qF" = ( /obj/structure/table, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "thunderdomehea"; name = "Heavy Supply Control"; pixel_y = 0; @@ -6204,7 +6204,7 @@ /area/centcom/holding) "qH" = ( /obj/structure/table, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "thunderdomegen"; name = "General Supply Control"; pixel_y = 0; @@ -6214,7 +6214,7 @@ /area/tdome/tdomeadmin) "qI" = ( /obj/structure/table, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "thunderdome"; name = "Main Blast Doors Control"; pixel_y = 0; diff --git a/_maps/map_files/MetaStation/z4.dmm b/_maps/map_files/MetaStation/z4.dmm index 25055ff8d75..c75c4cbc4f0 100644 --- a/_maps/map_files/MetaStation/z4.dmm +++ b/_maps/map_files/MetaStation/z4.dmm @@ -207,7 +207,7 @@ "dY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/derelict/gravity_generator) "dZ" = (/turf/simulated/floor/plating,/area/derelict/bridge/access) "ea" = (/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/space) -"eb" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/item/apc_frame,/turf/simulated/floor/plating,/area/derelict/gravity_generator) +"eb" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/item/wallframe/apc,/turf/simulated/floor/plating,/area/derelict/gravity_generator) "ec" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/derelict/gravity_generator) "ed" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/derelict/gravity_generator) "ee" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/constructable_frame/machine_frame,/turf/simulated/floor/plating,/area/derelict/gravity_generator) diff --git a/_maps/map_files/MetaStation/z5.dmm b/_maps/map_files/MetaStation/z5.dmm index cdf705c78b4..14cc548b3a3 100644 --- a/_maps/map_files/MetaStation/z5.dmm +++ b/_maps/map_files/MetaStation/z5.dmm @@ -269,7 +269,7 @@ "fi" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "fj" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "fk" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Security Airlock"; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp) -"fl" = (/obj/machinery/light/small{dir = 1},/obj/machinery/door_control{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 0; pixel_y = 28; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp) +"fl" = (/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 0; pixel_y = 28; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp) "fm" = (/obj/machinery/door/poddoor/preopen{id = "Labor"; name = "labor camp blast door"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp) "fn" = (/turf/simulated/floor/plasteel,/area/mine/laborcamp) "fo" = (/obj/machinery/mineral/processing_unit_console{machinedir = 6},/turf/simulated/wall,/area/mine/laborcamp) @@ -330,7 +330,7 @@ "gr" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/mine/laborcamp/security) "gs" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) "gt" = (/obj/structure/stool/bed/chair/office/dark,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) -"gu" = (/obj/machinery/door_control{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 28; pixel_y = 7; req_access_txt = "2"},/obj/machinery/flasher_button{id = "Labor"; pixel_x = 26; pixel_y = -3},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) +"gu" = (/obj/machinery/button/door{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 28; pixel_y = 7; req_access_txt = "2"},/obj/machinery/button/flasher{id = "Labor"; pixel_x = 26; pixel_y = -3},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) "gv" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/mine/laborcamp/security) "gw" = (/turf/simulated/floor/plating,/area/mine/laborcamp/security) "gx" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/laborcamp/security) @@ -387,7 +387,7 @@ "hw" = (/obj/machinery/door/airlock/maintenance{name = "Mining Station Communications"; req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "vault"},/area/mine/maintenance) "hx" = (/obj/item/clothing/under/rank/miner,/obj/effect/decal/remains/human,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "hy" = (/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/explored) -"hz" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm1"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/carpet,/area/mine/living_quarters) +"hz" = (/obj/machinery/light/small{dir = 4},/obj/machinery/button/door{id = "miningdorm1"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/carpet,/area/mine/living_quarters) "hA" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor/carpet,/area/mine/living_quarters) "hB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters) "hC" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/obj/machinery/light,/turf/space,/area/mine/west_outpost) @@ -397,7 +397,7 @@ "hG" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet{dir = 1},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "hH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters) "hI" = (/obj/structure/disposalpipe/segment,/turf/simulated/mineral/random,/area/mine/unexplored) -"hJ" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm2"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/carpet,/area/mine/living_quarters) +"hJ" = (/obj/machinery/light/small{dir = 4},/obj/machinery/button/door{id = "miningdorm2"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/carpet,/area/mine/living_quarters) "hK" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/living_quarters) "hL" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/west_outpost) "hM" = (/obj/machinery/door/airlock{id_tag = "miningdorm2"; name = "Room 2"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) @@ -413,7 +413,7 @@ "hW" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) "hX" = (/obj/machinery/vending/cigarette,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) "hY" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) -"hZ" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm3"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/carpet,/area/mine/living_quarters) +"hZ" = (/obj/machinery/light/small{dir = 4},/obj/machinery/button/door{id = "miningdorm3"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/carpet,/area/mine/living_quarters) "ia" = (/obj/structure/table,/obj/item/weapon/pickaxe,/turf/simulated/floor/plasteel,/area/mine/west_outpost) "ib" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel,/area/mine/west_outpost) "ic" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor/plasteel,/area/mine/west_outpost) diff --git a/_maps/map_files/MiniStation/MiniStation.dmm b/_maps/map_files/MiniStation/MiniStation.dmm index 726e2e7e595..e0d3770ce1e 100644 --- a/_maps/map_files/MiniStation/MiniStation.dmm +++ b/_maps/map_files/MiniStation/MiniStation.dmm @@ -40,7 +40,7 @@ "aN" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel,/area/bridge) "aO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/bridge) "aP" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/secure/briefcase,/obj/item/device/flash,/obj/item/device/flash,/turf/simulated/floor/plasteel,/area/bridge) -"aQ" = (/obj/structure/stool/bed/chair/comfy/black{dir = 2},/obj/effect/landmark/start{name = "Captain"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door_control{id = "bridge blast"; name = "Bridge Blast Door Control"; pixel_x = 29; pixel_y = 6; req_access_txt = "19"},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_y = 28},/turf/simulated/floor/plasteel,/area/bridge) +"aQ" = (/obj/structure/stool/bed/chair/comfy/black{dir = 2},/obj/effect/landmark/start{name = "Captain"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/button/door{id = "bridge blast"; name = "Bridge Blast Door Control"; pixel_x = 29; pixel_y = 6; req_access_txt = "19"},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_y = 28},/turf/simulated/floor/plasteel,/area/bridge) "aR" = (/obj/structure/table/reinforced,/obj/item/weapon/card/id/captains_spare,/turf/simulated/floor/plasteel,/area/bridge) "aS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/bridge) "aT" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plasteel,/area/bridge) @@ -119,7 +119,7 @@ "co" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/window/reinforced,/obj/machinery/camera/autoname,/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "cp" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cq" = (/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/obj/effect/spawner/structure/window/reinforced,/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) -"cr" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio8"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/medical/research{name = "Research Division"}) +"cr" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio8"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "cs" = (/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) "ct" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 1; id = "mining_internal"},/turf/simulated/floor/plasteel,/area/quartermaster/storage) "cu" = (/obj/machinery/mineral/processing_unit_console{layer = 3; machinedir = 1; pixel_y = 0},/turf/simulated/wall,/area/quartermaster/storage) @@ -164,7 +164,7 @@ "dh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/closet{name = "Contraband Locker"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/security/brig) "di" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/security/brig) "dj" = (/obj/structure/rack,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/head/helmet/riot,/obj/item/clothing/head/helmet/riot,/obj/item/clothing/head/helmet/riot,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) -"dk" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio2"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/medical/research{name = "Research Division"}) +"dk" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio2"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "dl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/obj/effect/spawner/structure/window/reinforced,/turf/simulated/floor/engine,/area/medical/research{name = "Research Division"}) "dm" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "dn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/brig) @@ -269,7 +269,7 @@ "fi" = (/obj/structure/closet/secure_closet/brig{id = "Cell 2"; name = "Cell 2 Locker"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel,/area/security/brig) "fj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "fk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/hallway/primary/central) -"fl" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio1"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/medical/research{name = "Research Division"}) +"fl" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio1"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "fm" = (/obj/machinery/door/firedoor,/obj/machinery/door/window/brigdoor{dir = 4; id = "Cell 1"; name = "Cell 1"; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/brig) "fn" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/brig) "fo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/security/brig) @@ -330,7 +330,7 @@ "gr" = (/obj/machinery/newscaster{pixel_y = 32},/obj/structure/closet/l3closet/scientist,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "gs" = (/obj/structure/closet/wardrobe/science_white,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "gt" = (/obj/structure/sign/biohazard,/turf/simulated/wall,/area/medical/research{name = "Research Division"}) -"gu" = (/obj/machinery/door_control{dir = 2; id = "rnd"; name = "Shutters Control Button"; pixel_x = -24; pixel_y = -6},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_x = -27; pixel_y = 3},/turf/simulated/floor/plasteel{icon_state = "whitepurple"; dir = 8},/area/medical/research{name = "Research Division"}) +"gu" = (/obj/machinery/button/door{dir = 2; id = "rnd"; name = "Shutters Control Button"; pixel_x = -24; pixel_y = -6},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_x = -27; pixel_y = 3},/turf/simulated/floor/plasteel{icon_state = "whitepurple"; dir = 8},/area/medical/research{name = "Research Division"}) "gv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/medical/research{name = "Research Division"}) "gw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/medical/research{name = "Research Division"}) "gx" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; external_pressure_bound = 120; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 32},/turf/simulated/floor/bluegrid,/area/medical/research{name = "Research Division"}) @@ -554,7 +554,7 @@ "kH" = (/obj/machinery/light,/turf/simulated/floor/plasteel{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "kI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "kJ" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/medical/research{name = "Research Division"}) -"kK" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/computer/security/telescreen{desc = "Used for watching the test chamber."; layer = 4; name = "Test Chamber Telescreen"; network = list("Toxins"); pixel_x = 32; pixel_y = 0},/obj/machinery/driver_button{dir = 2; id = "toxinsdriver"; pixel_y = -24},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/medical/research{name = "Research Division"}) +"kK" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/computer/security/telescreen{desc = "Used for watching the test chamber."; layer = 4; name = "Test Chamber Telescreen"; network = list("Toxins"); pixel_x = 32; pixel_y = 0},/obj/machinery/button/massdriver{dir = 2; id = "toxinsdriver"; pixel_y = -24},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "kL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/spawner/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/medbay) "kM" = (/obj/machinery/newscaster{pixel_y = 32},/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "escape"; dir = 9},/area/hallway/secondary/exit) "kN" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel,/area/hallway/secondary/exit) @@ -598,7 +598,7 @@ "lz" = (/obj/structure/dispenser,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "lA" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/reinforced,/obj/item/device/assembly/prox_sensor{pixel_x = -4; pixel_y = 1},/obj/item/device/assembly/prox_sensor{pixel_x = 8; pixel_y = 9},/obj/item/device/assembly/prox_sensor{pixel_x = 9; pixel_y = -2},/obj/item/device/assembly/prox_sensor{pixel_x = 0; pixel_y = 2},/obj/item/weapon/screwdriver{pixel_y = 10},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "lB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/table/reinforced,/obj/item/device/assembly/signaler{pixel_x = 0; pixel_y = 8},/obj/item/device/assembly/signaler{pixel_x = -8; pixel_y = 5},/obj/item/device/assembly/signaler{pixel_x = 6; pixel_y = 5},/obj/item/device/assembly/signaler{pixel_x = -2; pixel_y = -2},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"lC" = (/obj/machinery/meter,/obj/machinery/door_control{id = "mixvent"; name = "Mixing Room Vent Control"; pixel_x = 25; pixel_y = 5; req_access_txt = "7"},/obj/machinery/ignition_switch{id = "burnchamber"; pixel_x = 25; pixel_y = -5},/obj/machinery/atmospherics/pipe/simple/supplymain/visible{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/plasteel{tag = "icon-warnwhitecorner"; icon_state = "warnwhitecorner"; dir = 2},/area/medical/research{name = "Research Division"}) +"lC" = (/obj/machinery/meter,/obj/machinery/button/door{id = "mixvent"; name = "Mixing Room Vent Control"; pixel_x = 25; pixel_y = 5; req_access_txt = "7"},/obj/machinery/button/ignition{id = "burnchamber"; pixel_x = 25; pixel_y = -5},/obj/machinery/atmospherics/pipe/simple/supplymain/visible{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/plasteel{tag = "icon-warnwhitecorner"; icon_state = "warnwhitecorner"; dir = 2},/area/medical/research{name = "Research Division"}) "lD" = (/obj/structure/table/reinforced,/obj/item/device/assembly/timer{pixel_x = 5; pixel_y = 4},/obj/item/device/assembly/timer{pixel_x = 6; pixel_y = -4},/obj/item/device/assembly/timer{pixel_x = -4; pixel_y = 2},/obj/item/device/assembly/timer{pixel_x = 0; pixel_y = 0},/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "lE" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_y = 25},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "lF" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -836,7 +836,7 @@ "qd" = (/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/hallway/primary/central) "qe" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/hallway/primary/central) "qf" = (/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) -"qg" = (/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Exit Button"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -26},/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) +"qg" = (/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Exit Button"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -26},/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "qh" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay"; req_access_txt = "5"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "qi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Diner"},/turf/simulated/floor/plasteel,/area/crew_quarters/bar) "qj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Diner"},/turf/simulated/floor/plasteel,/area/crew_quarters/bar) @@ -892,7 +892,7 @@ "rh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/medbay) "ri" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/medbay) "rj" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/britcup{desc = "Kingston's personal cup."},/obj/machinery/camera/autoname,/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) -"rk" = (/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = -26; req_access_txt = "5"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/medical/medbay) +"rk" = (/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = -26; req_access_txt = "5"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/medical/medbay) "rl" = (/obj/machinery/computer/med_data,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "rm" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/effect/spawner/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/engine/engineering) "rn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel{tag = "icon-whiteyellow (WEST)"; icon_state = "whiteyellow"; dir = 8},/area/medical/medbay) @@ -1001,7 +1001,7 @@ "tm" = (/obj/structure/table,/obj/machinery/door/window/southright{layer = 3.1},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "tn" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "to" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/pill_bottle/epinephrine{pixel_x = 5; pixel_y = -2},/obj/item/weapon/storage/pill_bottle/epinephrine{pixel_x = 5; pixel_y = -2},/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) -"tp" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1},/obj/machinery/door_control{desc = "A remote control switch for the genetics doors."; id = "GeneticsDoor"; name = "Genetics Exit Button"; normaldoorcontrol = 1; pixel_x = 8; pixel_y = 24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/medical/medbay) +"tp" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1},/obj/machinery/button/door{desc = "A remote control switch for the genetics doors."; id = "GeneticsDoor"; name = "Genetics Exit Button"; normaldoorcontrol = 1; pixel_x = 8; pixel_y = 24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/medical/medbay) "tq" = (/obj/machinery/smartfridge/chemistry,/turf/simulated/wall,/area/medical/medbay) "tr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{tag = "icon-whiteyellowcorner (WEST)"; icon_state = "whiteyellowcorner"; dir = 8},/area/medical/medbay) "ts" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "45"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) @@ -1480,7 +1480,7 @@ "CS" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; target_pressure = 2000},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/engineering) "CT" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; target_pressure = 2000},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine/engineering) "CU" = (/obj/machinery/atmospherics/components/binary/valve,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/engineering) -"CV" = (/obj/machinery/door_control{id = "burndoor"; name = "Burn Chamber Vent Control"; pixel_x = 25; pixel_y = 5; req_access_txt = "0"},/turf/simulated/floor/plasteel,/area/engine/engineering) +"CV" = (/obj/machinery/button/door{id = "burndoor"; name = "Burn Chamber Vent Control"; pixel_x = 25; pixel_y = 5; req_access_txt = "0"},/turf/simulated/floor/plasteel,/area/engine/engineering) "CW" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 6},/obj/machinery/sparker{id = "burnchamber"; pixel_x = -25},/turf/simulated/floor/engine/vacuum,/area/engine/engineering) "CX" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/obj/machinery/meter/turf{pixel_y = 24},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/engine/vacuum,/area/engine/engineering) "CY" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/simulated/floor/engine/vacuum,/area/engine/engineering) @@ -1512,7 +1512,7 @@ "DP" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/camera/autoname{dir = 1},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/turf/simulated/floor/plating,/area/engine/engineering) "DS" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the burn chamber."; dir = 8; layer = 4; name = "Burn Chamber Telescreen"; network = list("burnchamber"); pixel_x = 0; pixel_y = -30},/obj/structure/stool,/turf/simulated/floor/plating,/area/engine/engineering) "DT" = (/obj/machinery/light,/turf/simulated/floor/plating,/area/engine/engineering) -"DU" = (/obj/machinery/ignition_switch{id = "burnchamber"; pixel_x = 25},/turf/simulated/floor/plating,/area/engine/engineering) +"DU" = (/obj/machinery/button/ignition{id = "burnchamber"; pixel_x = 25},/turf/simulated/floor/plating,/area/engine/engineering) "DW" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/turf/simulated/floor/engine/vacuum,/area/engine/engineering) "DX" = (/obj/structure/transit_tube{icon_state = "N-S"},/obj/structure/lattice,/turf/space,/area/space) "DZ" = (/obj/structure/lattice,/obj/structure/transit_tube{tag = "icon-N-S-Pass"; icon_state = "N-S-Pass"},/turf/space,/area/space) diff --git a/_maps/map_files/MiniStation/z2.dmm b/_maps/map_files/MiniStation/z2.dmm index 4506885f1e0..f30f2a703be 100644 --- a/_maps/map_files/MiniStation/z2.dmm +++ b/_maps/map_files/MiniStation/z2.dmm @@ -212,7 +212,7 @@ "ed" = (/turf/simulated/wall/shuttle{dir = 2; icon_state = "swallc3"},/area/space) "ee" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/space) "ef" = (/turf/simulated/floor/plasteel/black,/area/centcom/control) -"eg" = (/obj/machinery/door_control{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; name = "Security Doors"; pixel_y = 28; req_access_txt = "101"},/turf/simulated/floor/plasteel/black,/area/centcom/control) +"eg" = (/obj/machinery/button/door{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; name = "Security Doors"; pixel_y = 28; req_access_txt = "101"},/turf/simulated/floor/plasteel/black,/area/centcom/control) "eh" = (/turf/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/control) "ei" = (/obj/machinery/computer/atmos_alert,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/space) "ej" = (/turf/simulated/wall/shuttle{icon_state = "swall3"; dir = 2},/area/space) @@ -381,7 +381,7 @@ "hq" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "hr" = (/obj/structure/table,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 1},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "hs" = (/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"ht" = (/obj/structure/table,/obj/machinery/door_control{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) +"ht" = (/obj/structure/table,/obj/machinery/button/door{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "hu" = (/obj/machinery/computer/shuttle/syndicate,/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "hv" = (/obj/structure/computerframe,/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "hw" = (/turf/simulated/floor/plating/snow,/turf/simulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) @@ -521,7 +521,7 @@ "ka" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "kb" = (/turf/indestructible/fakeglass,/area/syndicate_mothership) "kc" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/simulated/floor,/area/syndicate_mothership) -"kd" = (/obj/machinery/door_control{id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; pixel_y = 0; req_access_txt = "151"},/turf/simulated/floor/plasteel/bar,/area/syndicate_mothership) +"kd" = (/obj/machinery/button/door{id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; pixel_y = 0; req_access_txt = "151"},/turf/simulated/floor/plasteel/bar,/area/syndicate_mothership) "ke" = (/obj/machinery/computer/telecrystals/uplinker,/turf/simulated/floor/plasteel/cult{tag = "icon-podhatch (SOUTHWEST)"; icon_state = "podhatch"; dir = 10},/area/syndicate_mothership) "kf" = (/obj/structure/toilet{pixel_y = 8},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/obj/machinery/door/window{name = "Tactical Toilet"; opacity = 1},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "kg" = (/obj/structure/urinal{pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) @@ -531,7 +531,7 @@ "kk" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "kl" = (/obj/structure/stool,/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "km" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate) -"kn" = (/obj/machinery/door/poddoor{auto_close = 300; id = "smindicate"; name = "outer blast door"},/obj/machinery/door_control{id = "smindicate"; name = "external door control"; pixel_x = -26; pixel_y = 0; req_access_txt = "150"},/obj/docking_port/mobile{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate"; name = "syndicate infiltrator"; travelDir = 180; width = 18},/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_away"; name = "syndicate recon outpost"; turf_type = /turf/simulated/floor/plating/snow; width = 18},/turf/simulated/floor/plating,/area/shuttle/syndicate) +"kn" = (/obj/machinery/door/poddoor{auto_close = 300; id = "smindicate"; name = "outer blast door"},/obj/machinery/button/door{id = "smindicate"; name = "external door control"; pixel_x = -26; pixel_y = 0; req_access_txt = "150"},/obj/docking_port/mobile{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate"; name = "syndicate infiltrator"; travelDir = 180; width = 18},/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_away"; name = "syndicate recon outpost"; turf_type = /turf/simulated/floor/plating/snow; width = 18},/turf/simulated/floor/plating,/area/shuttle/syndicate) "ko" = (/turf/simulated/floor/plating/snow,/turf/simulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 5},/area/syndicate_mothership) "kp" = (/obj/structure/grille{color = "#008000"; density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating,/area/wizard_station) "kq" = (/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/structure/table/wood,/turf/simulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) @@ -662,15 +662,15 @@ "mM" = (/turf/simulated/floor/plasteel{icon_state = "redyellowfull"},/area/tdome/tdomeadmin) "mN" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/simulated/floor/plasteel{icon_state = "redyellowfull"},/area/tdome/tdomeadmin) "mO" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "redyellowfull"},/area/tdome/tdomeadmin) -"mP" = (/obj/machinery/flasher_button{id = "tdomeflash"; pixel_x = 0; pixel_y = 0},/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "redyellowfull"},/area/tdome/tdomeadmin) +"mP" = (/obj/machinery/button/flasher{id = "tdomeflash"; pixel_x = 0; pixel_y = 0},/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "redyellowfull"},/area/tdome/tdomeadmin) "mQ" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/simulated/floor/plasteel{icon_state = "redyellowfull"},/area/tdome/tdomeadmin) "mR" = (/turf/indestructible/riveted,/area/tdome/tdomeadmin) "mS" = (/obj/machinery/computer/security/telescreen{pixel_y = -32},/turf/simulated/floor/plasteel{icon_state = "redyellowfull"},/area/tdome/tdomeadmin) "mT" = (/turf/simulated/floor/plasteel,/area/tdome/tdomeadmin) "mU" = (/turf/indestructible/fakedoor{name = "Thunderdome Admin"},/area/tdome/tdomeadmin) -"mV" = (/obj/structure/table,/obj/machinery/door_control{id = "thunderdomehea"; name = "Heavy Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/simulated/floor/plasteel,/area/tdome/tdomeadmin) -"mW" = (/obj/structure/table,/obj/machinery/door_control{id = "thunderdomegen"; name = "General Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/simulated/floor/plasteel,/area/tdome/tdomeadmin) -"mX" = (/obj/structure/table,/obj/machinery/door_control{id = "thunderdome"; name = "Main Blast Doors Control"; pixel_y = 0; req_access_txt = "102"},/turf/simulated/floor/plasteel,/area/tdome/tdomeadmin) +"mV" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdomehea"; name = "Heavy Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/simulated/floor/plasteel,/area/tdome/tdomeadmin) +"mW" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdomegen"; name = "General Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/simulated/floor/plasteel,/area/tdome/tdomeadmin) +"mX" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdome"; name = "Main Blast Doors Control"; pixel_y = 0; req_access_txt = "102"},/turf/simulated/floor/plasteel,/area/tdome/tdomeadmin) "mY" = (/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) "mZ" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) "na" = (/turf/simulated/floor/plasteel{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm index 8c901b1e43b..7647eb4d0a0 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -944,7 +944,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "permabolt3"; name = "Cell Bolt Control"; normaldoorcontrol = 1; @@ -986,7 +986,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "permabolt2"; name = "Cell Bolt Control"; normaldoorcontrol = 1; @@ -1033,7 +1033,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "permabolt1"; name = "Cell Bolt Control"; normaldoorcontrol = 1; @@ -1701,12 +1701,12 @@ /turf/space, /area/solar/auxstarboard) "adD" = ( -/obj/machinery/flasher_button{ +/obj/machinery/button/flasher{ id = "executionflash"; pixel_x = 24; pixel_y = 5 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "executionspaceblast"; name = "Vent to Space"; pixel_x = 25; @@ -1772,12 +1772,12 @@ scrub_N2O = 0; scrub_Toxins = 0 }, -/obj/machinery/ignition_switch{ +/obj/machinery/button/ignition{ id = "executionburn"; pixel_x = 24; pixel_y = 5 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "executionfireblast"; name = "Transfer Area Lockdown"; pixel_x = 25; @@ -1790,14 +1790,14 @@ }, /area/security/transfer) "adJ" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "permacell3"; name = "Cell 3 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2" }, -/obj/machinery/flasher_button{ +/obj/machinery/button/flasher{ id = "PCell 3"; pixel_x = 6; pixel_y = 24 @@ -1845,14 +1845,14 @@ }, /area/security/prison) "adN" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "permacell2"; name = "Cell 2 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2" }, -/obj/machinery/flasher_button{ +/obj/machinery/button/flasher{ id = "PCell 2"; pixel_x = 6; pixel_y = 24 @@ -1868,14 +1868,14 @@ /turf/simulated/floor/plasteel, /area/security/prison) "adP" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "permacell1"; name = "Cell 1 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2" }, -/obj/machinery/flasher_button{ +/obj/machinery/button/flasher{ id = "PCell 1"; pixel_x = 6; pixel_y = 24 @@ -2170,7 +2170,7 @@ /obj/machinery/door/poddoor/shutters{ id = "armory" }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "armory"; name = "Armory Shutters"; pixel_x = 0; @@ -2615,7 +2615,7 @@ }, /area/security/prison) "afl" = ( -/obj/machinery/flasher_button{ +/obj/machinery/button/flasher{ id = "insaneflash"; pixel_y = -26 }, @@ -3998,14 +3998,14 @@ /obj/effect/landmark/start{ name = "Warden" }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "Prison Gate"; name = "Prison Wing Lockdown"; pixel_x = -27; pixel_y = 8; req_access_txt = "2" }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "Secure Gate"; name = "Cell Shutters"; pixel_x = -27; @@ -5797,7 +5797,7 @@ }, /area/security/brig) "akV" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "briggate"; name = "Desk Shutters"; pixel_x = -26; @@ -5809,7 +5809,7 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/flasher_button{ +/obj/machinery/button/flasher{ id = "brigentry"; pixel_x = -28; pixel_y = -8 @@ -6110,7 +6110,7 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ desc = "A remote control switch for the medbay foyer."; id = "outerbrig"; name = "Brig Exterior Doors Control"; @@ -6119,7 +6119,7 @@ pixel_y = -5; req_access_txt = "63" }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ desc = "A remote control switch for the medbay foyer."; id = "innerbrig"; name = "Brig Interior Doors Control"; @@ -6264,7 +6264,7 @@ }, /area/shuttle/labor) "alR" = ( -/obj/machinery/flasher_button{ +/obj/machinery/button/flasher{ id = "gulagshuttleflasher"; name = "Flash Control"; pixel_x = 0; @@ -6587,7 +6587,7 @@ }, /area/security/processing) "ams" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ desc = "A remote control switch for the exit."; id = "laborexit"; name = "exit button"; @@ -9087,7 +9087,7 @@ /obj/machinery/alarm{ pixel_y = 23 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "Dorm4"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; @@ -9164,7 +9164,7 @@ "arY" = ( /obj/structure/stool/bed, /obj/item/weapon/bedsheet/red, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "Dorm5"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; @@ -9183,7 +9183,7 @@ "asa" = ( /obj/structure/stool/bed, /obj/item/weapon/bedsheet/red, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "Dorm6"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; @@ -9267,7 +9267,7 @@ }, /area/maintenance/fsmaint2) "ask" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "maint3"; name = "Blast Door Control C"; pixel_x = 0; @@ -9547,7 +9547,7 @@ /area/lawoffice) "asV" = ( /obj/machinery/photocopier, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "lawyer_blast"; name = "Privacy Shutters"; pixel_x = 25; @@ -10715,14 +10715,14 @@ /turf/simulated/floor/plating, /area/maintenance/fsmaint2) "avz" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "maint2"; name = "Blast Door Control B"; pixel_x = -28; pixel_y = 4; req_access_txt = "0" }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "maint1"; name = "Blast Door Control A"; pixel_x = -28; @@ -10832,8 +10832,8 @@ icon_state = "tube1"; dir = 4 }, -/obj/item/weapon/camera_assembly, -/obj/item/weapon/camera_assembly, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, /obj/machinery/alarm{ dir = 8; icon_state = "alarm0"; @@ -11548,7 +11548,7 @@ /obj/machinery/alarm{ pixel_y = 23 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "Dorm3"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; @@ -12793,7 +12793,7 @@ /obj/machinery/alarm{ pixel_y = 23 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "Dorm2"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; @@ -15065,7 +15065,7 @@ }, /area/chapel/main) "aEl" = ( -/obj/machinery/driver_button{ +/obj/machinery/button/massdriver{ id = "chapelgun"; name = "Chapel Mass Driver"; pixel_x = 25 @@ -16902,7 +16902,7 @@ dir = 1; on = 1 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "stationawaygate"; name = "Gateway Access Shutter Control"; pixel_x = -1; @@ -17245,7 +17245,7 @@ /area/chapel/office) "aIC" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/crema_switch{ +/obj/machinery/button/crematorium{ pixel_x = 25 }, /obj/machinery/light/small{ @@ -17896,7 +17896,7 @@ /obj/machinery/alarm{ pixel_y = 23 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "Dorm1"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; @@ -20767,7 +20767,7 @@ dir = 1; name = "Command Station" }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "bridge blast"; name = "Bridge Blast Door Control"; pixel_x = 28; @@ -23815,7 +23815,7 @@ dir = 1; icon_state = "pipe-c" }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "kitchen"; name = "Kitchen Shutters Control"; pixel_x = -1; @@ -24796,7 +24796,7 @@ /turf/simulated/floor/wood, /area/bridge/meeting_room) "aZP" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "heads_meeting"; name = "Security Shutters"; pixel_x = 0; @@ -27222,7 +27222,7 @@ }, /area/quartermaster/storage) "bfp" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = -1; @@ -27514,7 +27514,7 @@ pixel_y = 9 }, /obj/item/weapon/pen, -/obj/machinery/door_control{ +/obj/machinery/button/door{ desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; @@ -28267,7 +28267,7 @@ /turf/simulated/floor/plasteel, /area/assembly/chargebay) "bhz" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; @@ -28321,7 +28321,7 @@ dir = 2; network = list("SS13","RD") }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ dir = 2; id = "robotics"; name = "Shutters Control Button"; @@ -28412,7 +28412,7 @@ network = list("SS13","RD"); pixel_x = 22 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ dir = 2; id = "rnd"; name = "Shutters Control Button"; @@ -28630,7 +28630,7 @@ /turf/simulated/floor/plasteel, /area/quartermaster/storage) "bij" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = -1; @@ -29194,14 +29194,14 @@ /turf/simulated/floor/plating, /area/maintenance/disposal) "bjq" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "Disposal Exit"; name = "Disposal Vent Control"; pixel_x = -25; pixel_y = 4; req_access_txt = "12" }, -/obj/machinery/driver_button{ +/obj/machinery/button/massdriver{ id = "trash"; pixel_x = -26; pixel_y = -6 @@ -30255,7 +30255,7 @@ /obj/structure/stool/bed/chair/office/light{ dir = 8 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; @@ -30808,19 +30808,19 @@ }, /area/hallway/primary/central) "bmC" = ( -/obj/machinery/flasher_button{ +/obj/machinery/button/flasher{ id = "hopflash"; pixel_x = 6; pixel_y = 36 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "hop"; name = "Privacy Shutters Control"; pixel_x = 6; pixel_y = 25; req_access_txt = "28" }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "hopqueue"; name = "Queue Shutters Control"; pixel_x = -4; @@ -31711,7 +31711,7 @@ /area/medical/chemistry) "boh" = ( /obj/structure/stool/bed/roller, -/obj/machinery/door_control{ +/obj/machinery/button/door{ desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Exit Button"; @@ -32727,7 +32727,7 @@ }, /area/assembly/robotics) "bqe" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ dir = 2; id = "robotics2"; name = "Shutters Control Button"; @@ -33879,14 +33879,14 @@ c_tag = "Cargo Recieving Dock"; dir = 4 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "QMLoaddoor"; layer = 4; name = "Loading Doors"; pixel_x = -24; pixel_y = -8 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ dir = 2; id = "QMLoaddoor2"; layer = 4; @@ -34901,7 +34901,7 @@ }, /area/medical/medbay) "bua" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ desc = "A remote control switch for the genetics doors."; id = "GeneticsDoor"; name = "Genetics Exit Button"; @@ -36532,14 +36532,14 @@ }) "bxb" = ( /obj/structure/table, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "Biohazard"; name = "Biohazard Shutter Control"; pixel_x = -5; pixel_y = 5; req_access_txt = "47" }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "rnd2"; name = "Research Lab Shutter Control"; pixel_x = 5; @@ -37159,7 +37159,7 @@ pixel_x = 8; pixel_y = 28 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "Biohazard"; name = "Biohazard Shutter Control"; pixel_x = -5; @@ -38635,7 +38635,7 @@ }, /area/crew_quarters/hor) "bAV" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = 25; @@ -41017,7 +41017,7 @@ /area/medical/medbay) "bFF" = ( /obj/structure/closet/secure_closet/personal/patient, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "medpriv4"; name = "Privacy Shutters"; pixel_y = 25 @@ -41322,7 +41322,7 @@ /turf/simulated/floor/plasteel, /area/toxins/mixing) "bGe" = ( -/obj/machinery/driver_button{ +/obj/machinery/button/massdriver{ dir = 2; id = "toxinsdriver"; pixel_y = 24 @@ -43255,7 +43255,7 @@ }, /area/toxins/xenobiology) "bJC" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "misclab"; name = "Test Chamber Blast Doors"; pixel_x = 0; @@ -43696,7 +43696,7 @@ /area/medical/medbay) "bKz" = ( /obj/structure/closet/secure_closet/personal/patient, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "medpriv1"; name = "Privacy Shutters"; pixel_y = -25 @@ -45021,14 +45021,14 @@ dir = 4 }, /obj/machinery/meter, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "mixvent"; name = "Mixing Room Vent Control"; pixel_x = -25; pixel_y = 5; req_access_txt = "7" }, -/obj/machinery/ignition_switch{ +/obj/machinery/button/ignition{ id = "mixingsparker"; pixel_x = -25; pixel_y = -5 @@ -46453,7 +46453,7 @@ icon_state = "4-8"; pixel_y = 0 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "xenobio8"; name = "Containment Blast Doors"; pixel_x = 0; @@ -46654,7 +46654,7 @@ dir = 4; icon_state = "tube1" }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = 24; @@ -47341,7 +47341,7 @@ /area/toxins/xenobiology) "bSf" = ( /obj/structure/table/reinforced, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "xenobio3"; name = "Containment Blast Doors"; pixel_x = 0; @@ -48410,7 +48410,7 @@ icon_state = "4-8"; pixel_y = 0 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "xenobio7"; name = "Containment Blast Doors"; pixel_x = 0; @@ -48929,12 +48929,12 @@ "bVm" = ( /obj/structure/table, /obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/ignition_switch{ +/obj/machinery/button/ignition{ id = "testigniter"; pixel_x = -6; pixel_y = 2 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "testlab"; name = "Test Chamber Blast Doors"; pixel_x = 4; @@ -49484,7 +49484,7 @@ /area/toxins/xenobiology) "bWl" = ( /obj/structure/table/reinforced, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "xenobio2"; name = "Containment Blast Doors"; pixel_x = 0; @@ -49758,7 +49758,7 @@ /obj/item/weapon/screwdriver{ pixel_y = 10 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ desc = "A remote control-switch for the engineering security doors."; id = "Engineering"; name = "Engineering Lockdown"; @@ -50319,7 +50319,7 @@ "bXU" = ( /obj/structure/window/reinforced, /obj/structure/table/reinforced, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "xenobio6"; name = "Containment Blast Doors"; pixel_x = 0; @@ -51301,7 +51301,7 @@ /area/toxins/xenobiology) "bZO" = ( /obj/structure/table/reinforced, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "xenobio1"; name = "Containment Blast Doors"; pixel_x = 0; @@ -54402,7 +54402,7 @@ /area/engine/engineering) "cgf" = ( /obj/machinery/computer/station_alert, -/obj/machinery/door_control{ +/obj/machinery/button/door{ desc = "A remote control-switch for the engineering security doors."; id = "Engineering"; name = "Engineering Lockdown"; @@ -54410,7 +54410,7 @@ pixel_y = -10; req_access_txt = "10" }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ desc = "A remote control-switch for secure storage."; id = "Secure Storage"; name = "Engineering Secure Storage"; @@ -54418,7 +54418,7 @@ pixel_y = 0; req_access_txt = "11" }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = -24; @@ -55933,7 +55933,7 @@ pixel_y = -26; req_access_txt = "12" }, -/obj/machinery/ignition_switch{ +/obj/machinery/button/ignition{ id = "Incinerator"; pixel_x = -6; pixel_y = -24 @@ -58192,7 +58192,7 @@ }, /area/engine/engineering) "cno" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "Singularity"; name = "Shutters Control"; pixel_x = 25; @@ -58210,7 +58210,7 @@ }, /area/engine/engineering) "cnp" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "Singularity"; name = "Shutters Control"; pixel_x = -25; @@ -58238,7 +58238,7 @@ /turf/simulated/floor/plating, /area/engine/engineering) "cnt" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "Singularity"; name = "Shutters Control"; pixel_x = 25; @@ -58251,7 +58251,7 @@ }, /area/engine/engineering) "cnu" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "Singularity"; name = "Shutters Control"; pixel_x = -25; @@ -59926,7 +59926,7 @@ /turf/simulated/floor/plating, /area/aisat) "crn" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "teledoor"; name = "AI Satellite Teleport Shutters Control"; pixel_x = 25; @@ -62094,14 +62094,14 @@ /turf/simulated/floor/plating, /area/maintenance/incinerator) "cve" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "auxincineratorvent"; name = "Auxiliary Vent Control"; pixel_x = 6; pixel_y = -24; req_access_txt = "32" }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "turbinevent"; name = "Turbine Vent Control"; pixel_x = -6; diff --git a/_maps/map_files/generic/z2.dmm b/_maps/map_files/generic/z2.dmm index 36923629f2d..aa8d04f8832 100644 --- a/_maps/map_files/generic/z2.dmm +++ b/_maps/map_files/generic/z2.dmm @@ -1497,7 +1497,7 @@ }, /area/centcom/ferry) "ey" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "adminshut"; name = "Administrative Shutter-Control"; pixel_y = 26 @@ -1917,7 +1917,7 @@ /turf/simulated/floor/plasteel/shuttle, /area/shuttle/escape) "fN" = ( -/obj/machinery/flasher_button{ +/obj/machinery/button/flasher{ id = "cockpit_flasher"; pixel_x = 6; pixel_y = -24 @@ -2151,7 +2151,7 @@ pixel_x = -24; pixel_y = 6 }, -/obj/machinery/flasher_button{ +/obj/machinery/button/flasher{ id = "shuttle_flasher"; pixel_x = -24; pixel_y = -6 @@ -2418,7 +2418,7 @@ /turf/simulated/floor/plasteel/black, /area/centcom/control) "ht" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; @@ -2642,14 +2642,14 @@ /turf/simulated/floor/plating/snow, /area/syndicate_mothership) "hZ" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ dir = 2; id = "QMLoaddoor2"; name = "Loading Doors"; pixel_x = 24; pixel_y = 8 }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "QMLoaddoor"; name = "Loading Doors"; pixel_x = 24; @@ -2994,7 +2994,7 @@ /area/shuttle/syndicate) "iX" = ( /obj/structure/table, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150" @@ -3874,7 +3874,7 @@ /turf/indestructible/fakeglass, /area/syndicate_mothership) "lC" = ( -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; @@ -3973,7 +3973,7 @@ id = "smindicate"; name = "outer blast door" }, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "smindicate"; name = "external door control"; pixel_x = -26; @@ -5216,7 +5216,7 @@ /turf/simulated/floor/plasteel/redyellow, /area/tdome/tdomeadmin) "pd" = ( -/obj/machinery/flasher_button{ +/obj/machinery/button/flasher{ id = "tdomeflash"; pixel_x = 0; pixel_y = 0 @@ -5281,7 +5281,7 @@ /area/tdome/tdomeadmin) "po" = ( /obj/structure/table, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "thunderdomehea"; name = "Heavy Supply Control"; pixel_y = 0; @@ -5291,7 +5291,7 @@ /area/tdome/tdomeadmin) "pp" = ( /obj/structure/table, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "thunderdomegen"; name = "General Supply Control"; pixel_y = 0; @@ -5301,7 +5301,7 @@ /area/tdome/tdomeadmin) "pq" = ( /obj/structure/table, -/obj/machinery/door_control{ +/obj/machinery/button/door{ id = "thunderdome"; name = "Main Blast Doors Control"; pixel_y = 0; diff --git a/_maps/map_files/generic/z4.dmm b/_maps/map_files/generic/z4.dmm index e420d816869..bcf438b0b78 100644 --- a/_maps/map_files/generic/z4.dmm +++ b/_maps/map_files/generic/z4.dmm @@ -584,7 +584,7 @@ "ll" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/plasteel/airless,/area/space) "lm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel/airless{icon_state = "bcircuit"; tag = "icon-bcircuit"},/area/derelict/bridge/ai_upload) "ln" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/gravity_generator) -"lo" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/item/apc_frame,/turf/simulated/floor/plating/airless,/area/derelict/gravity_generator) +"lo" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/item/wallframe/apc,/turf/simulated/floor/plating/airless,/area/derelict/gravity_generator) "lp" = (/obj/machinery/door/window,/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload) "lq" = (/obj/item/weapon/ore/slag,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/gravity_generator) "lr" = (/obj/structure/rack,/obj/item/weapon/circuitboard/smes,/turf/simulated/floor/plasteel,/area/derelict/bridge/access) diff --git a/_maps/map_files/generic/z5.dmm b/_maps/map_files/generic/z5.dmm index 09ac6b41d04..be23e357bf9 100644 --- a/_maps/map_files/generic/z5.dmm +++ b/_maps/map_files/generic/z5.dmm @@ -271,7 +271,7 @@ "fk" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "fl" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "fm" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Security Airlock"; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp) -"fn" = (/obj/machinery/light/small{dir = 1},/obj/machinery/door_control{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 0; pixel_y = 28; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp) +"fn" = (/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 0; pixel_y = 28; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp) "fo" = (/obj/machinery/door/poddoor/preopen{id = "Labor"; name = "labor camp blast door"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp) "fp" = (/turf/simulated/floor/plasteel,/area/mine/laborcamp) "fq" = (/obj/machinery/mineral/processing_unit_console{machinedir = 6},/turf/simulated/wall,/area/mine/laborcamp) @@ -332,7 +332,7 @@ "gt" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/mine/laborcamp/security) "gu" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) "gv" = (/obj/structure/stool/bed/chair/office/dark,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) -"gw" = (/obj/machinery/door_control{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 28; pixel_y = 7; req_access_txt = "2"},/obj/machinery/flasher_button{id = "Labor"; pixel_x = 26; pixel_y = -3},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) +"gw" = (/obj/machinery/button/door{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 28; pixel_y = 7; req_access_txt = "2"},/obj/machinery/button/flasher{id = "Labor"; pixel_x = 26; pixel_y = -3},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security) "gx" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/mine/laborcamp/security) "gy" = (/turf/simulated/floor/plating,/area/mine/laborcamp/security) "gz" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/laborcamp/security) @@ -389,7 +389,7 @@ "hy" = (/obj/item/clothing/under/rank/miner,/obj/effect/decal/remains/human,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "hz" = (/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/explored) "hA" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor/carpet,/area/mine/living_quarters) -"hB" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm1"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/carpet,/area/mine/living_quarters) +"hB" = (/obj/machinery/light/small{dir = 4},/obj/machinery/button/door{id = "miningdorm1"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/carpet,/area/mine/living_quarters) "hC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters) "hD" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/obj/machinery/light,/turf/space,/area/mine/west_outpost) "hE" = (/obj/structure/table,/turf/simulated/floor/carpet,/area/mine/living_quarters) @@ -398,7 +398,7 @@ "hH" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet{dir = 1},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "hI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters) "hJ" = (/obj/structure/disposalpipe/segment,/turf/simulated/mineral/random,/area/mine/unexplored) -"hK" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm2"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/carpet,/area/mine/living_quarters) +"hK" = (/obj/machinery/light/small{dir = 4},/obj/machinery/button/door{id = "miningdorm2"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/carpet,/area/mine/living_quarters) "hL" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/living_quarters) "hM" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/west_outpost) "hN" = (/obj/machinery/door/airlock{id_tag = "miningdorm2"; name = "Room 2"},/turf/simulated/floor/plasteel,/area/mine/living_quarters) @@ -414,7 +414,7 @@ "hX" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) "hY" = (/obj/machinery/vending/cigarette,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) "hZ" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters) -"ia" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm3"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/carpet,/area/mine/living_quarters) +"ia" = (/obj/machinery/light/small{dir = 4},/obj/machinery/button/door{id = "miningdorm3"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/carpet,/area/mine/living_quarters) "ib" = (/obj/structure/table,/obj/item/weapon/pickaxe,/turf/simulated/floor/plasteel,/area/mine/west_outpost) "ic" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel,/area/mine/west_outpost) "id" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor/plasteel,/area/mine/west_outpost) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 429994eaf19..e6b19171e31 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1227,17 +1227,29 @@ var/list/WALLITEMS = list( /obj/machinery/power/apc, /obj/machinery/alarm, /obj/item/device/radio/intercom, /obj/structure/extinguisher_cabinet, /obj/structure/reagent_dispensers/peppertank, /obj/machinery/status_display, /obj/machinery/requests_console, /obj/machinery/light_switch, /obj/structure/sign, - /obj/machinery/newscaster, /obj/machinery/firealarm, /obj/structure/noticeboard, /obj/machinery/door_control, + /obj/machinery/newscaster, /obj/machinery/firealarm, /obj/structure/noticeboard, /obj/machinery/button, /obj/machinery/computer/security/telescreen, /obj/machinery/embedded_controller/radio/simple_vent_controller, /obj/item/weapon/storage/secure/safe, /obj/machinery/door_timer, /obj/machinery/flasher, /obj/machinery/keycard_auth, /obj/structure/mirror, /obj/structure/fireaxecabinet, /obj/machinery/computer/security/telescreen/entertainment ) -/proc/gotwallitem(loc, dir) + +var/list/WALLITEMS_EXTERNAL = list( + /obj/machinery/camera, /obj/machinery/camera_assembly, + /obj/machinery/light_construct, /obj/machinery/light) + +var/list/WALLITEMS_INVERSE = list( + /obj/machinery/light_construct, /obj/machinery/light) + + +/proc/gotwallitem(loc, dir, var/check_external = 0) var/locdir = get_step(loc, dir) for(var/obj/O in loc) - if(is_type_in_list(O, WALLITEMS)) + if(is_type_in_list(O, WALLITEMS) && check_external != 2) //Direction works sometimes - if(O.dir == dir) + if(is_type_in_list(O, WALLITEMS_INVERSE)) + if(O.dir == turn(dir, 180)) + return 1 + else if(O.dir == dir) return 1 //Some stuff doesn't use dir properly, so we need to check pixel instead @@ -1245,9 +1257,16 @@ var/list/WALLITEMS = list( if(get_turf_pixel(O) == locdir) return 1 + if(is_type_in_list(O, WALLITEMS_EXTERNAL) && check_external) + if(is_type_in_list(O, WALLITEMS_INVERSE)) + if(O.dir == turn(dir, 180)) + return 1 + else if(O.dir == dir) + return 1 + //Some stuff is placed directly on the wallturf (signs) for(var/obj/O in locdir) - if(is_type_in_list(O, WALLITEMS)) + if(is_type_in_list(O, WALLITEMS) && check_external != 2) if(O.pixel_x == 0 && O.pixel_y == 0) return 1 return 0 diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index ca14b8c64ae..9bc371b9d9f 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -122,12 +122,9 @@ var/list/air_vent_info = list() var/list/air_scrub_info = list() -/obj/machinery/alarm/New(nloc, ndir, nbuild) +/obj/machinery/alarm/New(loc, ndir, nbuild) ..() wires = new(src) - if(nloc) - loc = nloc - if(ndir) dir = ndir @@ -791,7 +788,7 @@ if(istype(W, /obj/item/weapon/wrench)) user << "You detach \the [src] from the wall." playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - new /obj/item/alarm_frame( user.loc ) + new /obj/item/wallframe/alarm( user.loc ) qdel(src) return @@ -832,46 +829,13 @@ Just a object used in constructing air alarms /* AIR ALARM ITEM Handheld air alarm frame, for placing on walls -Code shamelessly copied from apc_frame */ -/obj/item/alarm_frame +/obj/item/wallframe/alarm name = "air alarm frame" desc = "Used for building Air Alarms" icon = 'icons/obj/monitors.dmi' icon_state = "alarm_bitem" - flags = CONDUCT - -/obj/item/alarm_frame/attackby(obj/item/weapon/W, mob/user, params) - if (istype(W, /obj/item/weapon/wrench)) - new /obj/item/stack/sheet/metal( get_turf(src.loc), 2 ) - qdel(src) - return - ..() - -/obj/item/alarm_frame/proc/try_build(turf/on_wall) - if (get_dist(on_wall,usr)>1) - return - - var/ndir = get_dir(on_wall,usr) - if (!(ndir in cardinal)) - return - - var/turf/loc = get_turf(usr) - var/area/A = loc.loc - if (!istype(loc, /turf/simulated/floor)) - usr << "Air Alarm cannot be placed on this spot!" - return - if (A.requires_power == 0 || A.name == "Space") - usr << "Air Alarm cannot be placed in this area!" - return - - if(gotwallitem(loc, ndir)) - usr << "There's already an item on this wall!" - return - - new /obj/machinery/alarm(loc, ndir, 1) - - qdel(src) + result_path = /obj/machinery/alarm /* @@ -895,7 +859,6 @@ FIRE ALARM var/buildstage = 2 // 2 = complete, 1 = no wires, 0 = circuit gone /obj/machinery/firealarm/update_icon() - src.overlays = list() var/area/A = src.loc @@ -1029,7 +992,7 @@ FIRE ALARM else if(istype(W, /obj/item/weapon/wrench)) user.visible_message("[user] removes the fire alarm assembly from the wall.", \ "You remove the fire alarm assembly from the wall.") - var/obj/item/firealarm_frame/frame = new /obj/item/firealarm_frame() + var/obj/item/wallframe/firealarm/frame = new /obj/item/wallframe/firealarm() frame.loc = user.loc playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) qdel(src) @@ -1153,14 +1116,11 @@ FIRE ALARM //playsound(src.loc, 'sound/ambience/signal.ogg', 75, 0) return -/obj/machinery/firealarm/New(loc, dir, building) +/obj/machinery/firealarm/New(loc, ndir, building) ..() - if(loc) - src.loc = loc - - if(dir) - src.dir = dir + if(ndir) + src.dir = ndir if(building) buildstage = 0 @@ -1192,47 +1152,13 @@ Just a object used in constructing fire alarms /* FIRE ALARM ITEM Handheld fire alarm frame, for placing on walls -Code shamelessly copied from apc_frame */ -/obj/item/firealarm_frame +/obj/item/wallframe/firealarm name = "fire alarm frame" desc = "Used for building Fire Alarms" icon = 'icons/obj/monitors.dmi' icon_state = "fire_bitem" - flags = CONDUCT - - -/obj/item/firealarm_frame/attackby(obj/item/weapon/W, mob/user, params) - if (istype(W, /obj/item/weapon/wrench)) - new /obj/item/stack/sheet/metal( get_turf(src.loc), 2 ) - qdel(src) - return - ..() - -/obj/item/firealarm_frame/proc/try_build(turf/on_wall) - if (get_dist(on_wall,usr)>1) - return - - var/ndir = get_dir(on_wall,usr) - if (!(ndir in cardinal)) - return - - var/turf/loc = get_turf(usr) - var/area/A = loc.loc - if (!istype(loc, /turf/simulated/floor)) - usr << "Fire Alarm cannot be placed on this spot." - return - if (A.requires_power == 0 || A.name == "Space") - usr << "Fire Alarm cannot be placed in this area." - return - - if(gotwallitem(loc, ndir)) - usr << "There's already an item on this wall!" - return - - new /obj/machinery/firealarm(loc, ndir, 1) - - qdel(src) + result_path = /obj/machinery/firealarm /* * Party button diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 67775ddd7d8..da392acb7b7 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -1,47 +1,220 @@ -/obj/machinery/driver_button +/obj/machinery/button + name = "button" + desc = "A remote control switch." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "doorctrl" + var/skin = "doorctrl" + power_channel = ENVIRON + var/obj/item/device/assembly/device + var/obj/item/weapon/airlock_electronics/board + var/device_type = null + var/id = null + + anchored = 1 + use_power = 1 + idle_power_usage = 2 + + +/obj/machinery/button/New(loc, ndir = 0, built = 0) + ..() + if(built) + dir = ndir + pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24) + pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0 + panel_open = 1 + update_icon() + + if(id && !built && !device && device_type) + device = new device_type(src) + + src.check_access(null) + + if(req_access.len || req_one_access.len) + board = new(src) + if(req_access.len) + board.conf_access = req_access + else + board.use_one_access = 1 + board.conf_access = req_one_access + + if(id && istype(device, /obj/item/device/assembly/control)) + var/obj/item/device/assembly/control/A = device + A.id = id + + +/obj/machinery/button/update_icon() + overlays.Cut() + if(panel_open) + icon_state = "button-open" + if(device) + overlays += "button-device" + if(board) + overlays += "button-board" + + else + if(stat & (NOPOWER|BROKEN)) + icon_state = "[skin]-p" + else + icon_state = skin + +/obj/machinery/button/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/device/detective_scanner)) + return + + if(istype(W, /obj/item/weapon/screwdriver)) + if(panel_open || allowed(user)) + default_deconstruction_screwdriver(user, "button-open", "[skin]",W) + update_icon() + else + user << "Maintenance Access Denied" + flick("[skin]-denied", src) + return + + if(panel_open) + if(!device && istype(W, /obj/item/device/assembly)) + if(!user.unEquip(W)) + user << "\The [W] is stuck to you!" + return + W.loc = src + device = W + user << "You add [W] to the button." + + if(!board && istype(W, /obj/item/weapon/airlock_electronics)) + if(!user.unEquip(W)) + user << "\The [W] is stuck to you!" + return + W.loc = src + board = W + if(board.use_one_access) + req_one_access = board.conf_access + else + req_access = board.conf_access + user << "You add [W] to the button." + + if(!device && !board && istype(W, /obj/item/weapon/wrench)) + user << "You start unsecuring the button frame..." + playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + if(do_after(user, 40, target = src)) + user << "You unsecure the button frame." + transfer_fingerprints_to(new /obj/item/wallframe/button(get_turf(src))) + playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) + qdel(src) + + update_icon() + return + + return src.attack_hand(user) + +/obj/machinery/button/emag_act(mob/user) + req_access = list() + req_one_access = list() + playsound(src.loc, "sparks", 100, 1) + +/obj/machinery/button/attack_ai(mob/user) + if(!panel_open) + return attack_hand(user) + +/obj/machinery/button/attack_hand(mob/user) + src.add_fingerprint(user) + if(panel_open) + if(device || board) + if(device) + device.loc = get_turf(src) + device = null + if(board) + board.loc = get_turf(src) + req_access = list() + req_one_access = list() + board = null + update_icon() + user << "You remove electronics from the button frame." + + else + if(skin == "doorctrl") + skin = "launcher" + else + skin = "doorctrl" + user << "You change the button frame's front panel." + return + + if((stat & (NOPOWER|BROKEN))) + return + + if(device && device.cooldown) + return + + if(!allowed(user)) + user << "Access Denied" + flick("[skin]-denied", src) + return + + use_power(5) + icon_state = "[skin]1" + + if(device) + spawn(0) + device.activate() + + spawn(15) + update_icon() + +/obj/machinery/button/power_change() + ..() + update_icon() + + + +/obj/machinery/button/door + name = "door button" + desc = "A door remote control switch." + var/normaldoorcontrol = 0 + var/specialfunctions = OPEN // Bitflag, see assembly file + +/obj/machinery/button/door/New(loc, ndir = 0, built = 0) + if(id && !built && !device) + if(normaldoorcontrol) + var/obj/item/device/assembly/control/airlock/A = new(src) + device = A + A.specialfunctions = specialfunctions + else + device = new /obj/item/device/assembly/control(src) + ..() + + +/obj/machinery/button/massdriver name = "mass driver button" - icon = 'icons/obj/objects.dmi' - icon_state = "launcherbtt" desc = "A remote control switch for a mass driver." - var/id = null - var/active = 0 - anchored = 1.0 - use_power = 1 - idle_power_usage = 2 - active_power_usage = 4 + icon_state = "launcher" + skin = "launcher" + device_type = /obj/item/device/assembly/control/massdriver -/obj/machinery/ignition_switch +/obj/machinery/button/ignition name = "ignition switch" - icon = 'icons/obj/objects.dmi' - icon_state = "launcherbtt" desc = "A remote control switch for a mounted igniter." - var/id = null - var/active = 0 - anchored = 1.0 - use_power = 1 - idle_power_usage = 2 - active_power_usage = 4 + icon_state = "launcher" + skin = "launcher" + device_type = /obj/item/device/assembly/control/igniter -/obj/machinery/flasher_button +/obj/machinery/button/flasher name = "flasher button" desc = "A remote control switch for a mounted flasher." - icon = 'icons/obj/objects.dmi' - icon_state = "launcherbtt" - var/id = null - var/active = 0 - anchored = 1.0 - use_power = 1 - idle_power_usage = 2 - active_power_usage = 4 + icon_state = "launcher" + skin = "launcher" + device_type = /obj/item/device/assembly/control/flasher -/obj/machinery/crema_switch - desc = "Burn baby burn!" +/obj/machinery/button/crematorium name = "crematorium igniter" - icon = 'icons/obj/power.dmi' - icon_state = "crema_switch" - anchored = 1.0 + desc = "Burn baby burn!" + icon_state = "launcher" + skin = "launcher" + device_type = /obj/item/device/assembly/control/crematorium req_access = list(access_crematorium) - var/on = 0 - var/area/area = null - var/otherarea = null - var/id = 1 \ No newline at end of file + id = 1 + +/obj/item/wallframe/button + name = "button frame" + desc = "Used for building buttons." + icon = 'icons/obj/apc_repair.dmi' + icon_state = "button_frame" + result_path = /obj/machinery/button + materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) \ No newline at end of file diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 2038dcbc7e0..da1950f171f 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -17,7 +17,7 @@ var/start_active = 0 //If it ignores the random chance to start broken on round start var/invuln = null var/obj/item/device/camera_bug/bug = null - var/obj/item/weapon/camera_assembly/assembly = null + var/obj/machinery/camera_assembly/assembly = null //OTHER @@ -32,8 +32,6 @@ /obj/machinery/camera/New() assembly = new(src) assembly.state = 4 - assembly.anchored = 1 - assembly.update_icon() /* // Use this to look for cameras that have the same c_tag. for(var/obj/machinery/camera/C in cameranet.cameras) @@ -151,7 +149,6 @@ assembly.loc = src.loc assembly.state = 1 assembly.dir = src.dir - assembly.update_icon() assembly = null qdel(src) return diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm index dce9196f8db..f43488a5103 100644 --- a/code/game/machinery/camera/camera_assembly.dm +++ b/code/game/machinery/camera/camera_assembly.dm @@ -1,41 +1,36 @@ -/obj/item/weapon/camera_assembly +/obj/item/wallframe/camera name = "camera assembly" desc = "The basic construction for Nanotrasen-Always-Watching-You cameras." icon = 'icons/obj/monitors.dmi' icon_state = "cameracase" - w_class = 2 - anchored = 0 - materials = list(MAT_METAL=400, MAT_GLASS=250) + result_path = /obj/machinery/camera_assembly + +/obj/machinery/camera_assembly + name = "camera assembly" + desc = "The basic construction for Nanotrasen-Always-Watching-You cameras." + icon = 'icons/obj/monitors.dmi' + icon_state = "camera1" // Motion, EMP-Proof, X-Ray var/list/obj/item/possible_upgrades = list(/obj/item/device/assembly/prox_sensor, /obj/item/stack/sheet/mineral/plasma, /obj/item/device/analyzer) var/list/upgrades = list() - var/state = 0 + var/state = 1 var/busy = 0 /* - 0 = Nothing done to it - 1 = Wrenched in place - 2 = Welded in place - 3 = Wires attached to it (you can now attach/dettach upgrades) - 4 = Screwdriver panel closed and is fully built (you cannot attach upgrades) + 1 = Wrenched in place + 2 = Welded in place + 3 = Wires attached to it (you can now attach/dettach upgrades) + 4 = Screwdriver panel closed and is fully built (you cannot attach upgrades) */ -/obj/item/weapon/camera_assembly/attackby(obj/item/W, mob/living/user, params) +/obj/machinery/camera_assembly/New(loc, ndir, building) + ..() + if(building) + dir = ndir +/obj/machinery/camera_assembly/attackby(obj/item/W, mob/living/user, params) switch(state) - - if(0) - // State 0 - if(istype(W, /obj/item/weapon/wrench) && isturf(src.loc)) - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - user << "You wrench the assembly into place." - anchored = 1 - state = 1 - update_icon() - auto_turn() - return - if(1) // State 1 if(istype(W, /obj/item/weapon/weldingtool)) @@ -48,9 +43,8 @@ else if(istype(W, /obj/item/weapon/wrench)) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) user << "You unattach the assembly from its place." - anchored = 0 - update_icon() - state = 0 + new /obj/item/wallframe/camera(get_turf(src)) + qdel(src) return if(2) @@ -93,25 +87,14 @@ var/obj/machinery/camera/C = new(src.loc) src.loc = C C.assembly = src - - C.auto_turn() + C.dir = src.dir C.network = tempnetwork var/area/A = get_area_master(src) C.c_tag = "[A.name] ([rand(1, 999)])" - for(var/i = 5; i >= 0; i -= 1) - var/direct = input(user, "Direction?", "Assembling Camera", null) in list("LEAVE IT", "NORTH", "EAST", "SOUTH", "WEST" ) - if(direct != "LEAVE IT") - C.dir = text2dir(direct) - if(i != 0) - var/confirm = alert(user, "Is this what you want? Chances Remaining: [i]", "Confirmation", "Yes", "No") - if(confirm == "Yes") - break - return else if(istype(W, /obj/item/weapon/wirecutters)) - new/obj/item/stack/cable_coil(get_turf(src), 2) playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1) user << "You cut the wires from the circuits." @@ -139,18 +122,7 @@ ..() -/obj/item/weapon/camera_assembly/update_icon() - if(anchored) - icon_state = "camera1" - else - icon_state = "cameracase" - -/obj/item/weapon/camera_assembly/attack_hand(mob/user) - if(!anchored) - ..() - -/obj/item/weapon/camera_assembly/proc/weld(obj/item/weapon/weldingtool/WT, mob/living/user) - +/obj/machinery/camera_assembly/proc/weld(obj/item/weapon/weldingtool/WT, mob/living/user) if(busy) return 0 if(!WT.remove_fuel(0, user)) @@ -165,4 +137,4 @@ return 0 return 1 busy = 0 - return 0 + return 0 \ No newline at end of file diff --git a/code/game/machinery/door_control.dm b/code/game/machinery/door_control.dm deleted file mode 100644 index c235aadf40b..00000000000 --- a/code/game/machinery/door_control.dm +++ /dev/null @@ -1,170 +0,0 @@ -/obj/machinery/door_control - name = "remote door-control" - desc = "It controls doors, remotely." - icon = 'icons/obj/stationobjs.dmi' - icon_state = "doorctrl0" - desc = "A remote control-switch for a door." - power_channel = ENVIRON - var/id = null - var/normaldoorcontrol = 0 - var/specialfunctions = 1 - /* - Bitflag, 1= open - 2= idscan, - 4= bolts - 8= shock - 16= door safties - - */ - - var/exposedwires = 0 - var/wires = 3 - /* - Bitflag, 1=checkID - 2=Network Access - */ - - anchored = 1.0 - use_power = 1 - idle_power_usage = 2 - active_power_usage = 4 - -/obj/machinery/door_control/attack_ai(mob/user) - if(wires & 2) - return src.attack_hand(user) - else - user << "Error, no route to host." - -/obj/machinery/door_control/attack_paw(mob/user) - return src.attack_hand(user) - -/obj/machinery/door_control/attackby(obj/item/weapon/W, mob/user, params) - /* For later implementation - if (istype(W, /obj/item/weapon/screwdriver)) - { - if(wiresexposed) - icon_state = "doorctrl0" - wiresexposed = 0 - - else - icon_state = "doorctrl-open" - wiresexposed = 1 - - return - } - */ - if(istype(W, /obj/item/device/detective_scanner)) - return - return src.attack_hand(user) - -/obj/machinery/door_control/emag_act(mob/user) - req_access = list() - req_one_access = list() - playsound(src.loc, "sparks", 100, 1) - -/obj/machinery/door_control/attack_hand(mob/user) - src.add_fingerprint(usr) - if(stat & (NOPOWER|BROKEN)) - return - - if(!allowed(user) && (wires & 1)) - user << "Access Denied" - flick("doorctrl-denied",src) - return - - use_power(5) - icon_state = "doorctrl1" - add_fingerprint(user) - - if(normaldoorcontrol) - for(var/obj/machinery/door/airlock/D in world) - if(D.id_tag == src.id) - if(specialfunctions & OPEN) - spawn(0) - if(D) - if(D.density) D.open() - else D.close() - return - if(specialfunctions & IDSCAN) - D.aiDisabledIdScanner = !D.aiDisabledIdScanner - if(specialfunctions & BOLTS) - if(!D.isWireCut(4) && D.hasPower()) - D.locked = !D.locked - D.update_icon() - if(specialfunctions & SHOCK) - D.secondsElectrified = D.secondsElectrified ? 0 : -1 - if(specialfunctions & SAFE) - D.safe = !D.safe - else - var/openclose - for(var/obj/machinery/door/poddoor/M in world) - if(M.id == src.id) - if(openclose == null) - openclose = M.density - spawn(0) - if(M) - if(openclose) M.open() - else M.close() - return - - spawn(15) - if(!(stat & NOPOWER)) - icon_state = "doorctrl0" - -/obj/machinery/door_control/power_change() - ..() - if(stat & NOPOWER) - icon_state = "doorctrl-p" - else - icon_state = "doorctrl0" - -/obj/machinery/driver_button/attack_ai(mob/user) - return src.attack_hand(user) - -/obj/machinery/driver_button/attack_paw(mob/user) - return src.attack_hand(user) - -/obj/machinery/driver_button/attackby(obj/item/weapon/W, mob/user, params) - - if(istype(W, /obj/item/device/detective_scanner)) - return - return src.attack_hand(user) - -/obj/machinery/driver_button/attack_hand(mob/user) - - src.add_fingerprint(usr) - if(stat & (NOPOWER|BROKEN)) - return - if(active) - return - add_fingerprint(user) - - use_power(5) - - active = 1 - icon_state = "launcheract" - - for(var/obj/machinery/door/poddoor/M in world) - if (M.id == src.id) - spawn( 0 ) - M.open() - return - - sleep(20) - - for(var/obj/machinery/mass_driver/M in world) - if(M.id == src.id) - M.drive() - - sleep(50) - - for(var/obj/machinery/door/poddoor/M in world) - if (M.id == src.id) - spawn( 0 ) - M.close() - return - - icon_state = "launcherbtt" - active = 0 - - return \ No newline at end of file diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index be2f33815a8..e48b7be8c84 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -23,6 +23,7 @@ density = 1 /obj/machinery/flasher/New() + ..() // ..() is EXTREMELY IMPORTANT, never forget to add it bulb = new /obj/item/device/flash/handheld(src) /obj/machinery/flasher/power_change() @@ -68,6 +69,7 @@ return /obj/machinery/flasher/proc/flash() + if (!powered() || !bulb) return @@ -132,37 +134,4 @@ power_change() else - ..() - -/obj/machinery/flasher_button/attack_ai(mob/user) - return attack_hand(user) - -/obj/machinery/flasher_button/attack_paw(mob/user) - return attack_hand(user) - -/obj/machinery/flasher_button/attackby(obj/item/weapon/W, mob/user, params) - return attack_hand(user) - -/obj/machinery/flasher_button/attack_hand(mob/user) - - if(stat & (NOPOWER|BROKEN)) - return - if(active) - return - - use_power(5) - - active = 1 - icon_state = "launcheract" - - for(var/obj/machinery/flasher/M in world) - if(M.id == id) - spawn() - M.flash() - - sleep(50) - - icon_state = "launcherbtt" - active = 0 - - return + ..() \ No newline at end of file diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index 6a275734570..2f2b577b889 100644 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -115,43 +115,4 @@ ..(severity) return ignite() - ..(severity) - -/obj/machinery/ignition_switch/attack_ai(mob/user) - return src.attack_hand(user) - -/obj/machinery/ignition_switch/attack_paw(mob/user) - return src.attack_hand(user) - -/obj/machinery/ignition_switch/attackby(obj/item/weapon/W, mob/user, params) - return src.attack_hand(user) - -/obj/machinery/ignition_switch/attack_hand(mob/user) - - if(stat & (NOPOWER|BROKEN)) - return - if(active) - return - - use_power(5) - - active = 1 - icon_state = "launcheract" - - for(var/obj/machinery/sparker/M in world) - if (M.id == src.id) - spawn( 0 ) - M.ignite() - - for(var/obj/machinery/igniter/M in world) - if(M.id == src.id) - use_power(50) - M.on = !( M.on ) - M.icon_state = text("igniter[]", M.on) - - sleep(50) - - icon_state = "launcherbtt" - active = 0 - - return \ No newline at end of file + ..(severity) \ No newline at end of file diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 43d313fec05..2d9b7f9db45 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -159,34 +159,12 @@ var/list/obj/machinery/newscaster/allCasters = list() -/obj/item/newscaster_frame +/obj/item/wallframe/newscaster name = "newscaster frame" desc = "Used to build newscasters, just secure to the wall." icon_state = "newscaster" - item_state = "syringe_kit" materials = list(MAT_METAL=14000, MAT_GLASS=8000) - -/obj/item/newscaster_frame/proc/try_build(turf/on_wall) - if (get_dist(on_wall,usr)>1) - return - var/ndir = get_dir(usr,on_wall) - if (!(ndir in cardinal)) - return - var/turf/loc = get_turf(usr) - var/area/A = loc.loc - if (!istype(loc, /turf/simulated/floor)) - usr << "Newscaster cannot be placed on this spot!" - return - if (A.requires_power == 0 || A.name == "Space") - usr << "Newscaster cannot be placed in this area!" - return - for(var/obj/machinery/newscaster/T in loc) - usr << "There is another newscaster here!" - return - var/obj/machinery/newscaster/N = new(loc) - N.pixel_y -= (loc.y - on_wall.y) * 32 - N.pixel_x -= (loc.x - on_wall.x) * 32 - qdel(src) + result_path = /obj/machinery/newscaster /obj/machinery/newscaster @@ -200,7 +178,7 @@ var/list/obj/machinery/newscaster/allCasters = list() var/isbroken = 0 var/ispowered = 1 var/screen = 0 - var/paper_remaining = 0 + var/paper_remaining = 15 var/securityCaster = 0 var/unit_no = 0 var/alert_delay = 500 @@ -220,13 +198,17 @@ var/list/obj/machinery/newscaster/allCasters = list() name = "security newscaster" securityCaster = 1 -/obj/machinery/newscaster/New() +/obj/machinery/newscaster/New(loc, ndir, building) + ..() + if(building) + dir = ndir + pixel_x = (dir & 3)? 0 : (dir == 4 ? -32 : 32) + pixel_y = (dir & 3)? (dir ==1 ? -32 : 32) : 0 + allCasters += src - paper_remaining = 15 for(var/obj/machinery/newscaster/NEWSCASTER in allCasters) unit_no++ update_icon() - ..() /obj/machinery/newscaster/Destroy() allCasters -= src @@ -743,7 +725,7 @@ var/list/obj/machinery/newscaster/allCasters = list() playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) if(do_after(user, 60, target = src)) user << "You [anchored ? "un" : ""]secure [name]." - new /obj/item/newscaster_frame(loc) + new /obj/item/wallframe/newscaster(loc) playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) qdel(src) return diff --git a/code/game/objects/items/apc_frame.dm b/code/game/objects/items/apc_frame.dm index ad5036b53ee..120442e7e25 100644 --- a/code/game/objects/items/apc_frame.dm +++ b/code/game/objects/items/apc_frame.dm @@ -1,32 +1,78 @@ -// APC HULL +/obj/item/wallframe + materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT*2) + flags = CONDUCT + origin_tech = "materials=1;engineering=1" + item_state = "syringe_kit" + w_class = 2 + var/result_path + var/inverse = 0 + // For inverse dir frames like light fixtures. -/obj/item/apc_frame +/obj/item/wallframe/proc/try_build(turf/on_wall) + if(get_dist(on_wall,usr)>1) + return + var/ndir = get_dir(on_wall, usr) + if(!(ndir in cardinal)) + return + var/turf/loc = get_turf(usr) + var/area/A = loc.loc + if(!istype(loc, /turf/simulated/floor)) + usr << "You cannot place [src] on this spot!" + return + if(A.requires_power == 0 || istype(A, /area/space)) + usr << "You cannot place [src] in this area!" + return + if(gotwallitem(loc, ndir, inverse*2)) + usr << "There's already an item on this wall!" + return + + return 1 + +/obj/item/wallframe/proc/attach(turf/on_wall) + if(result_path) + playsound(src.loc, 'sound/machines/click.ogg', 75, 1) + usr.visible_message("[usr.name] attaches [src] to the wall.", + "You attach [src] to the wall.", + "You hear clicking.") + var/ndir = get_dir(on_wall,usr) + if(inverse) + ndir = turn(ndir, 180) + + var/obj/O = new result_path(get_turf(usr), ndir, 1) + transfer_fingerprints_to(O) + + qdel(src) + + +/obj/item/wallframe/attackby(obj/item/weapon/W, mob/user, params) + ..() + var/metal_amt = round(materials[MAT_METAL]/MINERAL_MATERIAL_AMOUNT) + var/glass_amt = round(materials[MAT_GLASS]/MINERAL_MATERIAL_AMOUNT) + + if (istype(W, /obj/item/weapon/wrench) && (metal_amt || glass_amt)) + user << "You dismantle [src]." + if(metal_amt) + new /obj/item/stack/sheet/metal(get_turf(src), metal_amt) + if(glass_amt) + new /obj/item/stack/sheet/glass(get_turf(src), glass_amt) + qdel(src) + + + +// APC HULL +/obj/item/wallframe/apc name = "\improper APC frame" desc = "Used for repairing or building APCs" icon = 'icons/obj/apc_repair.dmi' icon_state = "apc_frame" - flags = CONDUCT + result_path = /obj/machinery/power/apc -/obj/item/apc_frame/attackby(obj/item/weapon/W, mob/user, params) - ..() - if (istype(W, /obj/item/weapon/wrench)) - new /obj/item/stack/sheet/metal( get_turf(src.loc), 2 ) - qdel(src) -/obj/item/apc_frame/proc/try_build(turf/on_wall) - if (get_dist(on_wall,usr)>1) - return - var/ndir = get_dir(usr,on_wall) - if (!(ndir in cardinal)) +/obj/item/wallframe/apc/try_build(turf/on_wall) + if(!..()) return var/turf/loc = get_turf(usr) var/area/A = loc.loc - if (!istype(loc, /turf/simulated/floor)) - usr << "APC cannot be placed on this spot!" - return - if (A.requires_power == 0 || istype(A, /area/space)) - usr << "APC cannot be placed in this area!" - return if (A.get_apc()) usr << "This area already has APC!" return //only one APC per area @@ -39,5 +85,4 @@ C.amount = 10 usr << "You cut the cables and disassemble the unused power terminal." qdel(T) - new /obj/machinery/power/apc(loc, ndir, 1) - qdel(src) + return 1 diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 7d780f9bdd1..107c32860ed 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -33,12 +33,12 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ new/datum/stack_recipe("turret frame", /obj/machinery/porta_turret_construct, 5, time = 25, one_per_turf = 1, on_floor = 1), \ null, \ new/datum/stack_recipe("grenade casing", /obj/item/weapon/grenade/chem_grenade), \ - new/datum/stack_recipe("light fixture frame", /obj/item/light_fixture_frame, 2), \ - new/datum/stack_recipe("small light fixture frame", /obj/item/light_fixture_frame/small, 1), \ + new/datum/stack_recipe("light fixture frame", /obj/item/wallframe/light_fixture, 2), \ + new/datum/stack_recipe("small light fixture frame", /obj/item/wallframe/light_fixture/small, 1), \ null, \ - new/datum/stack_recipe("apc frame", /obj/item/apc_frame, 2), \ - new/datum/stack_recipe("air alarm frame", /obj/item/alarm_frame, 2), \ - new/datum/stack_recipe("fire alarm frame", /obj/item/firealarm_frame, 2), \ + new/datum/stack_recipe("apc frame", /obj/item/wallframe/apc, 2), \ + new/datum/stack_recipe("air alarm frame", /obj/item/wallframe/alarm, 2), \ + new/datum/stack_recipe("fire alarm frame", /obj/item/wallframe/firealarm, 2), \ null, \ new/datum/stack_recipe("iron door", /obj/structure/mineral_door/iron, 20, one_per_turf = 1, on_floor = 1), \ ) diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 3bd5ef645d2..bce42638e82 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -176,10 +176,11 @@ var/global/list/crematoriums = new/list() for(var/mob/living/M in contents) if (M.stat!=2) M.emote("scream") - //Logging for this causes runtimes resulting in the cremator locking up. Commenting it out until that's figured out. - //M.attack_log += "\[[time_stamp()]\] Has been cremated by [user]/[user.ckey]" //No point in this when the mob's about to be deleted - user.attack_log +="\[[time_stamp()]\] Cremated [M]/[M.ckey]" - log_attack("\[[time_stamp()]\] [user]/[user.ckey] cremated [M]/[M.ckey]") + if(user) + user.attack_log +="\[[time_stamp()]\] Cremated [M]/[M.ckey]" + log_attack("\[[time_stamp()]\] [user]/[user.ckey] cremated [M]/[M.ckey]") + else + log_attack("\[[time_stamp()]\] UNKNOWN cremated [M]/[M.ckey]") M.death(1) M.ghostize() qdel(M) @@ -194,26 +195,6 @@ var/global/list/crematoriums = new/list() update_icon() playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) //you horrible people -/* -Crematorium Switch -*/ -/obj/machinery/crema_switch/attack_hand(mob/user) - if(src.allowed(usr)) - for (var/obj/structure/bodycontainer/crematorium/C in crematoriums) - if (C.id != id) - continue - - C.cremate(user) - else - usr << "Access denied." - return - -/obj/machinery/crema_switch/attackby(obj/item/W, mob/user, params) - if(W.GetID()) - attack_hand(user) - else - return ..() - /* * Generic Tray @@ -286,4 +267,4 @@ Crematorium Switch if(locate(/obj/structure/table) in get_turf(mover)) return 1 else - return 0 + return 0 diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index fb1d315ce58..e8004e4e19e 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -159,25 +159,10 @@ /turf/simulated/wall/proc/try_wallmount(obj/item/weapon/W, mob/user, turf/T) //check for wall mounted frames - if(istype(W,/obj/item/apc_frame)) - var/obj/item/apc_frame/AH = W - AH.try_build(src) - return 1 - else if(istype(W,/obj/item/newscaster_frame)) - var/obj/item/newscaster_frame/AH = W - AH.try_build(src) - return 1 - else if(istype(W,/obj/item/alarm_frame)) - var/obj/item/alarm_frame/AH = W - AH.try_build(src) - return 1 - else if(istype(W,/obj/item/firealarm_frame)) - var/obj/item/firealarm_frame/AH = W - AH.try_build(src) - return 1 - else if(istype(W,/obj/item/light_fixture_frame)) - var/obj/item/light_fixture_frame/AH = W - AH.try_build(src) + if(istype(W,/obj/item/wallframe)) + var/obj/item/wallframe/F = W + if(F.try_build(src)) + F.attach(src) return 1 //Poster stuff else if(istype(W,/obj/item/weapon/contraband/poster)) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 713651e5c45..9f5696d1320 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -525,13 +525,13 @@ "[user.name] has cut [src] apart with [W].",\ "You disassembled the broken APC frame.") else - new /obj/item/apc_frame(loc) + new /obj/item/wallframe/apc(loc) user.visible_message(\ "[user.name] has cut [src] from the wall with [W].",\ "You cut the APC frame from the wall.") qdel(src) return - else if (istype(W, /obj/item/apc_frame) && opened && emagged) + else if (istype(W, /obj/item/wallframe/apc) && opened && emagged) emagged = 0 if (opened==2) opened = 1 @@ -540,7 +540,7 @@ "You replace the damaged APC frontal panel with a new one.") qdel(W) update_icon() - else if (istype(W, /obj/item/apc_frame) && opened && ((stat & BROKEN) || malfhack)) + else if (istype(W, /obj/item/wallframe/apc) && opened && ((stat & BROKEN) || malfhack)) if (has_electronics) user << "You cannot repair this APC until you remove the electronics still inside!" return diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 145f2b2ba84..25f1bb088c1 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -11,61 +11,20 @@ -/obj/item/light_fixture_frame +/obj/item/wallframe/light_fixture name = "light fixture frame" desc = "Used for building lights." icon = 'icons/obj/lighting.dmi' icon_state = "tube-construct-item" - flags = CONDUCT - var/fixture_type = "tube" - var/obj/machinery/light/newlight = null - var/sheets_refunded = 2 + result_path = /obj/machinery/light_construct + inverse = 1 -/obj/item/light_fixture_frame/attackby(obj/item/weapon/W, mob/user, params) - if (istype(W, /obj/item/weapon/wrench)) - new /obj/item/stack/sheet/metal( get_turf(src.loc), sheets_refunded ) - qdel(src) - return - ..() - -/obj/item/light_fixture_frame/proc/try_build(turf/on_wall) - if (get_dist(on_wall,usr)>1) - return - var/ndir = get_dir(usr,on_wall) - if (!(ndir in cardinal)) - return - var/turf/loc = get_turf(usr) - if (!istype(loc, /turf/simulated/floor)) - usr << "[src.name] cannot be placed on this spot!" - return - usr << "You begin attaching [src] to the wall..." - playsound(src.loc, 'sound/machines/click.ogg', 75, 1) - var/constrdir = usr.dir - var/constrloc = usr.loc - if (!do_after(usr, 30, target = src)) - return - switch(fixture_type) - if("bulb") - newlight = new /obj/machinery/light_construct/small(constrloc) - if("tube") - newlight = new /obj/machinery/light_construct(constrloc) - newlight.dir = constrdir - newlight.fingerprints = src.fingerprints - newlight.fingerprintshidden = src.fingerprintshidden - newlight.fingerprintslast = src.fingerprintslast - - usr.visible_message("[usr.name] attaches [src] to the wall.", \ - "You attach [src] to the wall.") - qdel(src) - -/obj/item/light_fixture_frame/small +/obj/item/wallframe/light_fixture/small name = "small light fixture frame" - desc = "Used for building small lights." - icon = 'icons/obj/lighting.dmi' icon_state = "bulb-construct-item" - flags = CONDUCT - fixture_type = "bulb" - sheets_refunded = 1 + result_path = /obj/machinery/light_construct/small + materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) + /obj/machinery/light_construct name = "light fixture frame" @@ -79,10 +38,10 @@ var/sheets_refunded = 2 var/obj/machinery/light/newlight = null -/obj/machinery/light_construct/New() +/obj/machinery/light_construct/New(loc, ndir, building) ..() - if (fixture_type == "bulb") - icon_state = "bulb-construct-stage1" + if(building) + dir = ndir /obj/machinery/light_construct/examine(mob/user) ..() @@ -172,12 +131,7 @@ /obj/machinery/light_construct/small name = "small light fixture frame" - desc = "A small light fixture under construction." - icon = 'icons/obj/lighting.dmi' icon_state = "bulb-construct-stage1" - anchored = 1 - layer = 5 - stage = 1 fixture_type = "bulb" sheets_refunded = 1 diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm index c7bf249a611..9368401256e 100644 --- a/code/modules/power/turbine.dm +++ b/code/modules/power/turbine.dm @@ -208,15 +208,6 @@ if(!compressor) stat |= BROKEN - -// THIS MAKES IT WORK!!!!! - -// OLD FIX . Dunno how other engines handle this but this is how it should work: Turbine and compressor should be -// treated as walls to avoid conductivity and gas spread. This was the problem of the original turbine which was just -// a machinery - it didn't block the gas passage. -// /obj/machinery/power/turbine/CanPass(atom/movable/mover, turf/target, height=0) -// return !density - /obj/machinery/power/turbine/RefreshParts() var/P = 0 for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts) diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index a9ef8e34eed..938edd44db8 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -383,7 +383,7 @@ id = "camera_assembly" build_type = AUTOLATHE materials = list(MAT_METAL = 400, MAT_GLASS = 250) - build_path = /obj/item/weapon/camera_assembly + build_path = /obj/item/wallframe/camera category = list("initial", "Construction") /datum/design/newscaster_frame @@ -391,7 +391,7 @@ id = "newscaster_frame" build_type = AUTOLATHE materials = list(MAT_METAL = 14000, MAT_GLASS = 8000) - build_path = /obj/item/newscaster_frame + build_path = /obj/item/wallframe/newscaster category = list("initial", "Construction") /datum/design/syringe diff --git a/icons/obj/apc_repair.dmi b/icons/obj/apc_repair.dmi index df295e2551b355eea2ce8bf49725396068550fd6..8f66aa27c86a43d92809786dd1a9efd572ad3a61 100644 GIT binary patch delta 404 zcmV;F0c-w*1i=K57!3#m0001;w}I>c002LcB`zue7#K!IMt**NTU%TIW;0@9Vk09X zZI|@a00001bW%=J06^y0W&i*HjFD@2e~_RJNu?zv`FZ#)QC4vEa{+r2093j{N)|Z# zx&QzH7)eAyR9J=Wmg^FNAP`37B9wVa?fsuMB{5hQ!S!EprW|L$AAq$#E+jK_25(0?}+UyDs1u)4MaAy4i6PWD-$_y&_{t=kL}Sbp_*v5`aI&UU;AMSYP$>L7spCOf0Nej*0qow$oWtW$hG6@+z7N`B zD3F+-U%t=$$O1chL9n-FO%)6qPISR@oTf?5m_YAD1)2}zYuzQ7K>6S)@L?H>RAAb_ yTCe67--$**uD}T951{~_4sgMDozUSzfy^6{Sr)g}%0a~d00000s&qHt54mW=_rh*zzs>k zNo*z{D_BWL!A(L6FdQia@wfsGZ%(ADQ;;g pZf+wkEgnK~DHsJr001n_o1!tR>pTDe002ovPDHLkV1oMScC`Qi diff --git a/icons/obj/assemblies/new_assemblies.dmi b/icons/obj/assemblies/new_assemblies.dmi index ae869fa90940c5c06bcef835a65a19a1bd4a1f58..6255dc886d34ab4f617f8dd42d30b78876d1ff95 100644 GIT binary patch literal 11599 zcmb7qbyQqWx8-e|;O-jSgS#fU1PFxSkRS;z!KDKP65J)YTd?3x(BSUw4r$z(%kNwB zX3cxwyfyES?uNSERrem*dsm(F{k5tb#xv4q003Yp$iLJ800{Nd3k3-P0DS*aDENv+FlO2ES6c7|8bq^iGJ+BHA@vmsvNP{_ z9WobMLL{-jMJl*_KYO?ubma~#+r0b)A9Aip!Ty#Qg*&mexp*UhAwKfAby4(~se1QK zZm_WKALFxi-a|Q-7k>yoL>7JMnVY|<&%`8usL?9@9vQrS_J+P&*gFt?tan?6H;W4Y z0H4*LC;s-@ZgB+z=~e1tS6U!DnF4yyOOlXZdN^q9OiZ`!y%#O*++V*LQe%(mQM$eV ztexZIsysZm|Fhh6uEN}^<~PX;FZgW(&B7o^_4##Zi(SQhc1fqjnapSQ4pugK5ymTX zQVo|&0ezPs@jGq)U*gUz0y*ZKb=^n_?#pV&NxO|!-hph+=!tqH^p&ORv#US+rjO9w zR|tb<4<#NFb7J1mTdT?Ec@LrWLplr(Xp-ZRgUK6wm(UpZub#D9yQB9H!V&Jr-5@Ku zMh-Wy2<;i9{<-efc9-{UAz`5HP4d#L0==Xa}5WZZD9@P)7BrL~jl zhjV{dj~lNGdjyM&o}jTd=dM)cELG*xe6_-=gak6c@wO1pLidH2|dL_p%UP zqO1nuV$%eWDM|)l+cH6Lr0X*OV=$R_36YwPv{<{u)T5aa$sZCSepAraC`uj?eDOAPd@YLda)W5B-i9KYgYNf?jep@6H8H{k8&iv zl(!ONS7!L}*p#Qy)OGI;rS)oIptRm&=Q^{)JWn8J=yEx}o~qpd@#Hjr=^l-6&9AOA zP2f?{Wa*Bz;^TP8PkUX6Zg}n5#r(0x=h^gn4@)zii{??SVTB~9&()={iPp1AXr52L z>P)o=pQj{Xe?NOYbFo%ViH+&V7UeW96sGA{;p}%@YOH zSSSk3!bl9DMFtXr{mR49Dw^`0p476(-8V==jYU=5+cK!%>8p$HG!p*Xh z4l)6qu3R?VVa(NOc4H)+mFXhFmpmx`J+HJ>m5Gzn0?3%&SJ%@cb5K^4q>&$Q!zUns zNG@zqGt%LHsu?dTVwswn3jFnpJH_|m8i2+ys+kU_i6wHG_}#gV($OeNO3B9wyBz2M zkwpCTG|}=C*7=*8o8W>$cOs38;Uqlf8TIu-S#&RXvT>#1#`e#dn3y6x#lIZP*J8oL z!{hjh(`NvFgEBs_E~51)IZBfWG}@-F?9?So!EcS`AZf1}IBv zwrVmS%%yr*5%!*2Y`>om>6l^@{8RDrA?~h3)lKB9r{sj{q)k3rh~wYidv^9+dWctb zCTJW<>V%BQf$XSqSiB<;gRJ0E23MN9RugpZPu=QIo!?!) z8y3=?(^-k+{(~DFJyQQ2r2NmK^1mWdxp`MXQIYAWJ}iwfw_jgNt1CDpWOQO8VD+-M z#yVO-OKb9*6$N~TS(Z*WP9I^-1wge&2G_{1`I8U^TCuhkQGQPokP1*gCH^euU&72eEN{ z_r&Fvs7b0=3==OKOi%a%Kl`=7vrhLZ{3Xv$2^8SWE+m74gLir|BkkkG*ezO2OR_VP zjWtdnK;`T}UtiyA*EUqAB#7t5fs~JrxN4Qk${2hRI78bJ^32AaYE^Z0=Fgw#x0f@< z99I6b*5-H&%ET~=tZL)mei_F~6-z$1hl%f_qHOC{ky^{fPgKz>Ce%g{a;Ep??yhX# zVWwaiU!QCWx}VTpOgse7lUk}R@<{*Y^zF^z_DE3qWw$KewT5`}6A_K@kHWWt?8-__ z!-uLSJhiHGJV)#XmkYyd*wU6E5XqS1J32<nT)7?eU4|%#(z-1ddYve7JR-90mOCg!-gY7ap*j*Vj=!yOJ=W&-nUE=m`?) z)=J<28L`l8#%nu2$d~^7D#`ENo}LL8Q05LJtZ#JbiJp>LK}3BK0*k_DH+dax3iApB zp(S1~ZjI*k?@s?-n~orb6FWz3^|og*PmsjH_qIyXo9 z*P9*}jy~?{bQ*q)FJ()I7B{%{=6gMI?2bgsOHQiqLw_kFFNw*+>gm%Y&$Is!W7EL4 z$}UyDGgcrLr5C7mQ3uo-%K#I%Dxl|a=&7Yq1f0d5-v6P9*Ko7}_A;p7u-h^Ix%59D ze4*z!ITp}j&8eUt3za|E`DIL}7z?F+V_+}{WMpOeEjo{@`~*MUThoGFY?hhX-pMv+ zjM5n%iWafbJ{)}|A_f+`hs7KWE=vp=;~{NrZ9u5(^S%9jbse2=@$rNMKlsovgW&h4 zN;FH9$6r@!BS(A>ZGgY?_CL^am4(b4x`==)1e8*7f`dyh-2 z-hA4|q0ca$_AzkoBDjL}#T9Yj10W4R4a(`3Cp#8t>ExzJC208Xk^0+2UIyU+qG9@sn6fOUrsU>lLVBt{-lJwh2Y)^`3~H7`bp` zcOxnWwY1RpDq$y{L~*h0=9MOMRUdbbkKaBQ1&jw0UjWdwG|B@BH%Xu7s=AjxYKm}* z(No{vy?eKFczAw&6rD6~kx^cbEhZ*b@bl*fMgF0_K1F_?JGW309;EyGdqKx4DW3=_ za=0H{CU9w@jtI4znXO{7w4n@~Ky5||V(E!xznL#UFYp6gQY*<_~hwI_n zdo;MxD?<_=K3{R`Agom#&F7)BNJ2cmb8hI+I;f*#YO;=A476h9p zxOx~VWbm0)x{9HE&ks^9o4chr)5FSM0p=FhVM&Ga^Yilg!;@18ODmm&>!Dgsho`oe9*S&IMa>@~b&N>eEXwXwZ@1bD9Y&iV6yh!Qd1U z5;`Fj((wxFfMkyryxfV6+&dIC!5guc&35QqW#Hk3v4YRt(0cXh=e?e;?gn2P^*5!= zKSIzGse}bVIzQ@+=H|ux9(*)V$y{8x2$g9y%c$GNzOmy*q#8Y97|UOTRJ=`jv0%sgKmKPJk@m>_X`P=O_*fNO5jL&YEN} z(?7P&n7C?g4EYo$@xk0YFq9J*aVuee@=>gy%I{Cr()r_=Rdt<=EiZ$OboKp~mJDaC z`K=clw4$g6r%Ln?lLrHrmX;!6oGi>=7j5N~ltOSbH8qN=PrqIIL1Yw|4149coo>*{ zh32@{}hgGb=mCZ$J0bsMOSwJ_kWyWO+FvC52r7jYe>YqN4YOYAj(wTV!0A(a~}Q znBY(0_?qQf9zZRZ<-zJ{P{C;1JQtIlA^=Uj#XTJ%PeQs-IgV@kW5YcSAD4hB0SG1U*6T{F8VlE+0D%)Bz*=%)j+Sy&_wT<2w zYy>IT^AEMwv$SutwSSeCa%^mEWr1$lMmZQ5PzKZUdPPte<%LJ#)KE6K(IQ&fHhn_h zUFQaz?JY2J++V*wq@qf7;=2J2rdEW2AW1o200#D0{R_QXTY^~9Q+ekxDXXS_sfjq2 zL(yGa>`c0svJp8#*imkotjCe+ejZO-!~*31cFXwh^c`Ksw4tZUB%beoY%ftQEf!t0 zBqR!PBXNn`80icPngiqCpjvhYC-8bVWe_t(TtWK30^aBp1OxdG?Yq~9%K{At8T1wMgrKP3j_4W0Z zc6LE$3!u9|`xd%mtas+!O)tHxrC`m}~u&EEc=K3)U(9hDS891xG~ z1<6myCzdLy#n0u)HZF-f zKlcWp;{Dx-dS1uQiDfliYE~$YIB*49hk-*nOVdHUF^snpv#;oL%V(_<`E7oPnuU|* zprU~QTK>2Kxjr9T!@U;c+p5UAC~B!SEQRksO-0hRq=Mp*1bej%6Gy7%%P1(IvJr;p zCv{u?%M&{bq;37sf9OE*F+lBt1DcvPHLwY0GSP9KNWm>@rDv+LPnc@%Gq;C1J>`Q4+!2 z7ycjwWxyEK($Jd?v5F^)Uhd@l+9=9Jhuhe-w`;w3ami}NkX+gP46adWQ6ymS>oQ{4 z=ngdF>yt&(uJt@ePc0|??&J}1=z&qh0R%!~X^I|Wdgqmn@J2@m1w>VUst2dec7(t! z1c|AMZ`V%SzYkrqK@nuL*ub~NX{fIL8>G&tm>B;M|Bjgb)P|*=GmX_Am5Urw`x79snP3QCE zGv^6nbtm0l0VsS>xXJHaq7H7Yq--=V+(=hf?K#iUl&GVR%DU;kA3|w3In^qDzXHtx zdhS1w3@f`~FEVsF?Unz0*y?$%EEZklDvTtfZ_5!}>7#zP-bLB?7tT(HB!%PFGM!te z#zpbo{MJL>i&ebDxmeUy9uyl;ZH@1~*43wVrD|4K8~~&9?BW8HP*UHI*nlU-0mB%S zNf;!LS-VgQm zN~x(~DKp^3{wUTZ9f1#Y*+&Y-`esFa%xBD!EaZ(8PHuxz*92y2rY>AGZd*m3tWb+H zc_jX0^sJLH7jgNASuJ$q*PnEE-`JFWis*OiFSl6F5{duar4K;+&3%bDw)}R{2s|W# zk-53xX|?oj`pRtpVDskJ5fhNK9*72U{?#Rmn`=a_;FJkWDMZPbJ85KQhKb5Kp|7E# zAu=xRD;SEsR;Ih!AT=YNZao(f(TiKR2Qpe)sX)O}SCE7MBtz#c{JYHK*2#YTg7x3u zj)J&lFzwtP>jQTF!(uWGOenKhI`N$#ZX6pV>ZynnW73ZE6UrT^?m|Nm^@X^d`flw)(Q?y|;^f^W&9IDG=5%_@R6Tw5t21@&j z9x<1qF#{uv`{f8J*TaaY7f$haiO9=0`Pu5Ux$;;{X---^K?HvDh||Ni{ueELBXIU& zZmhh3P7`RIkO)IhN}`BfB*3fkUPYOsl~ud~6+7c$UHZ9d{Xy9S;&?rbrK=!QzFEOZ z%X2v=;A}GMRbMF~(hwX_)k-qA5al817rz`y=%iEErTXe&FP*XIafj(7ByOvS@_{t+ z3qv=T!gp%iEzG+#pU~(iIH!md5)G#zSKuH-&8t0P9?>^h*YrL{o_P%ZW|Vz8%W;)E zJ(<_Hddx{nCK+k9h0l1nG{(rZ^&TVOc1rS3pE~awE~kM6c%WtX3Qn_#Dojt`4|+~T zl%~Q}NUpBhcH?{5`X=JAY^nLU@Zov3Jl3Dm z%8b>`O8_|Cilt@sB?t3JD;N2!U8&5(VOGECuSSVm>uzg>+iLEbuH|ZOa1Ys0n#fz@ z%QXMG?I9M}!-ZbC=dqm5ecSy^^X2o&_56mgK?}I4M?SUI9FIGZ;BKU!kF5`9s*~#x z{K02WkAF__>irkMD*b8n9P6c%4)ug6WH;H}SLVX+m%(5Ah&v29UOD8`@ME>|rJm2z zi=pdAH7qy`OrW)W_Nm^+vycW|o5`#N)LX!bOv2bv25m6i87GacSc>m*d{1nTbyMOC)Lo`c z26sK{w!1H0xhC?Ja1N-p0LX2LGDb~d?Mn8Gp9P8=?m9mD9ygr^<{Rp_n4QH6&FnG< z(@|48X;Bs3B6Cp2gq;p01#=2W;I@k4luDIvr=861)81`ZtkngS=*2~z6jC{E2BZ4k z^9--0x-PZtAs+?3K1Bc=yk6#w!byixV0mLAq@wywe?%H{wHOxr>bm3(Uw33K1d&|- zsFBv{+I0KL8Wwcw#Zh~M3^(N~+MOXv4=ngQ4%?ll`HO$19k*PasS(<;Y}haMR^@>e zKK`n&J8DS2r~H8%o`^Rx_11`JP5f=O`G<-{iu7XKPY5)B%99KhHKoKo4&AR|Bra`f<$~MhOua}l~#;;5?2KQA(dJD%NP%&Enj*=Q%e7n zO>pqFf$$j>wCZ5Prn4*c9ci@N!M*t zLEU64cvATG>)T=4qMNrFZwWQ;gLX*hCpQH@*d{P`aM!gy;A@`PhRpY7fKgys<%rlg zPnO|*LQtWX7L}{0Jms!0x;xr0Kw-3!>gp0~CD~v5w-(91R-m&9b?afTz^%Qk)$v^m z1u0Of8w@&A_{`VH_Zf{0m8SJ0BCY_U+oS{(dR~TPeu&?5nN{M8ST|3WRrZL@8ko~c zn-!UfjC251lz6~_oiRva2lCq>KuVGA2&gOyomjqcaZvqeO1jEhN4w_Fy-}|}`3mAX zHnI#o_?530NfK~#XOdK8ls3Xu!*>olA|72h-6@=9ko-3idz#`ZOUf{A0+!Q~$1CSf zih2GHA2Vk1;|HP?xxLMvq7lpY#lDE0Zyq81N%RV{@ETsmJa82U>cKy@9kF8ikKvqj zHYzX+PjU^vh!Q_@7;I1TWZB{iH8-ue6B@JVhcCBH7&dQ<-IH5Ay3$`Dcf2UB)c9*V zawG+7dlRH}kkl>J#3{&Vu){WY^Y#-S_>QH;sgMA5GjxcY&gGXg+))fBmvwHfUx55l7^~S4|fhAKk7ftIyA+AF1J&bgO zQfji^4@r!GH|9z?WLFqA$2I2+L;n~=a9L8QUTvRQD%XG7`Npm)1?9Wyhzi&Lp-gK_ z$|Il8oDwXf|A`|7qedKQ>4c>`B?nBtuDEHkgu*dS&p_HvS1=)$U3Vinwhet5VPr3gup~ZeN7EN4Zmx2^+MDMT@o)qlIF?0iw;N3JAbGO z90@mz{~?`yJAy#>A$Z){P3@9q7)UBbYh0-~A(Qx$Gv=samC|u5cY85!7j$=7d ztX?chm{V?+78aTWE@v|six z*myzfgzj=Bktl z@@<`RW2uqL%F3>ntxnsj2TNiE*VltZarC$_HdhrDjK-TZf|-PvpkmK?STAF`@$%-f z+=IkJ;Ex}qd9t{HA_d6+fR^yo3vi++-o4A&>g9ORN0qVUMj3qDV4u}Y;lG^vwF2Xo z>wQPyQJ_}w(D|L3jsnw;%RCxqb6}U56UY$NYxjAN-D_VHOhI^mqKvp}7b$CNaXhYv ze^ID?Zl7atkD#2B6Aw9Nke88>5vRoQ(Z!FOn{c5|1T-u#rrKC90O*fjjZqViqJoFo z?$s9*svijt8IA!vd98ORy(9zzSu!!0%E^J*`NJ6k{V4c^?Rmq2_9o)yHZyDn#(K-bmhTqkw6VRNU08@(X+9|J?S234 zwx6?=+{UIKDgvzu>(4^X40emZ1#bi5ScBDE?(MlE5gwI)83Uo7PmM=P&iD;0hn3sd7 z<-UkQw-zmt7xg0ufDS(5Rki|ErBaqi{=I9znJ=IZ!Q!!t?dL=$=G5CZ2(ZJ{7B493+qRi3A3)U4JE1;jI!o&y_A6%j45PkIe zAT$h@lr$nlF#`TULNbCS7aQ(~+4&gOnPNM7NwJ*=Ezem5JB^Y*02lt71ViCjW`^L`vRRy?}s%5Up zhZjC29guw@Bjc2DR25xPk6*x-7wBAp1HU0>QvyoK#?L5_c|-r^j{3vp$oNrkRS-%xiwk*c(X3>v-&E-65M+(N4P`~4b;2{KTJ+y(zYu8ku6 zypzecr)YLT0Sd6O{asX?XKo`|&hSxT4nZ>p3EF+w9owIO8&)Q@k)VU|1L|h< zXK$(T!Qbl6KI~#M_UAfJ_TYMi1joe01eXC6Qx;rqs?4Zt?iUuJ5uTY>CfIe6xrQUX zmYJ6q=x*nuFrh5|sq0_#^p5j~9102If1J7gH+??;nW_Hi2ud#C=>4GxH|S2$`zpaS z^td*B@9gGJ>4R9XIt4waFqt^?^{KH;(`(n4r^a%`5*TX;c1XZ(nj;rr0YL}KrJDY_ z_VGIwWp5<>MP(Y@{w<3z-5N&iLkiUg@{U_h`YaxQa1)NJhK!3+QKf%bo8sWrdh3e} zMQr=Hgpsnx1lwm)r+0>n&da)YSEYOy=fS$zPw=Jce}oBCO;Tv*e!)sdz8%vm?J-|> zzxrZ9dEo2gN=V3eAanVU{dd6M#@`QPq1Yr{;BZi2pR>sW=OI2dr2n9KXHPtglYzi^ zYg^7lWFa6v*)9!pMbF-P<&E5TBRNH|uJ7I%_hO&2G`t}^n>2ub{_x|2?I>Y;`luk5 zOQJKNyzG8DcynhJzrt$6z~#awE+GQt2_!c@&`Ei*(Wb?VNYn!BRtFfq89dfy3oG6U zYeZjH3|bo+q0Jo0rYE=N;Fo@jmMyR`tXwR;;yRgmJ(O>0q`J`TF`=aFm}0EI`koGDSZvoOZUT;(Kb0ru@@2 zK^DH2A456-bYXj3)E7wE6-Su%odd)kRTt&sM|(56dqqBmLLIrMdgp4Z!QSayg!#59 zE>xk?sp688ikZ}EH=<=*K)dU}w*&V4a7MF{Bku!|cCGUa|FMOpT??j;^Yd<_W(4ac z`nIh7sOx4W^{Z~Oba+9cHbHv+UfFrknWz!r)Sdk!!uRH8Qu{7a{rZwF{8a;pAY@gk z=6`~9y!wp)DC}|BEZlT!NO8k<|J)W9x+zR{8>w42-=$yUE(gwG(n%E{Xgn8p zzRkQ_k~^mQzL{O$^=wvYwSG`!ZtFK@3_SGJ@;H3|gA8%9FQxN2ReM|>qCeCr;tmgf z*(YS+!3W*zoPhdhYjcVq>uFw8GBGR$_oHS8sb=szwfu~w_UAeQYt~?no84)6jeB`V zsDx$BeB&59Vco+yC-Kc~rjnYRT@4Z(d=&=~H}X)s;Ume|P#U7(@lx*7d=(;{o~uz& z$9zq9l+S#wnxpLK+7Rd-xXS4G(u9gPvb4ZP zIkoRhE5eF)ug$9LA;zGZ1Rc6DKMK0lr06OOznIwzc`lr(YP}nH!#Xs0 zk&N^G^Gz|`8!K*Q7>j8(hLZl`!~A8kUmd=W@?yErjR83rn5KIRxUI19g`)tWsE9qL zme0k^8TN&Gp zOihpYZ8G1a3*HV`vgf@&N!V5VEFw29I@3!mLEhA#7z|_8=CIH+@)qM*RvXm8NkzLb zR>4S4ObEIdQbmW`A*&g*O5`O>Js-UChPxL;AqkUJf(y39<4fwMN1^%7ndJq$T8}^j zn?;njE%K#FaV_-yB1dftg~a8Oi`myOLt+DPz4iUDv(Wis4BqG|e=@WT#>SlsCSaBA zvg69+l$S*zS+vwf|2M4|m+MG_<~+x=*wTXkIN1AS8Obt<+!3WyCCRQ6fc85ri3 zNpWDy*U8CAhSM_~X$`%Bw=eHz%cg#Pk4begNWyGI|<>gx%wy%rj_%7>U5@ik;=c&Aq{(}-spTTOU zzjND82V=0tw+q1LPBBF-0MCfLjII=$z)&Wm2|&-+fn&K^z1-*tAv8qN>~~Al?S6lv zay|3DID7FVAQH!vGGOWx-yeRnFt_`;;z6LZ**E}uO>F>mXXCq_{Yj?)WEralEe$(* z&Qw+M3$Aik-=_6`ahc``O#s46MzAaJU;V4H)d*D+P0A$^3<06IV7F?3eYP%~ZiOi# nh9sV}U)DdTrvJ_Z$&XkSC$BI*3~GY91^^UZslF_gHun2pl}2Zk literal 10835 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

plA6 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%0AQPL(qb2_2MZ!D5Siw6J# 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 V+wdXH`zrg=+lO<|9;*>s=g7q4_xdwu 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 MyQN!t#WC{#03*p|l>h($ literal 78521 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 diff --git a/tgstation.dme b/tgstation.dme index 383abb503be..9497aab180d 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -392,7 +392,6 @@ #include "code\game\machinery\cloning.dm" #include "code\game\machinery\constructable_frame.dm" #include "code\game\machinery\deployable.dm" -#include "code\game\machinery\door_control.dm" #include "code\game\machinery\doppler_array.dm" #include "code\game\machinery\droneDispenser.dm" #include "code\game\machinery\flasher.dm" @@ -858,6 +857,7 @@ #include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm" #include "code\modules\assembly\assembly.dm" #include "code\modules\assembly\bomb.dm" +#include "code\modules\assembly\doorcontrol.dm" #include "code\modules\assembly\helpers.dm" #include "code\modules\assembly\holder.dm" #include "code\modules\assembly\igniter.dm" From d54d4b3054a3424d42efb07a9d150b217ea0f8fc Mon Sep 17 00:00:00 2001 From: c0 Date: Fri, 28 Aug 2015 02:02:17 +0300 Subject: [PATCH 27/51] Assembly --- code/modules/assembly/doorcontrol.dm | 153 +++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 code/modules/assembly/doorcontrol.dm diff --git a/code/modules/assembly/doorcontrol.dm b/code/modules/assembly/doorcontrol.dm new file mode 100644 index 00000000000..89f40fae44f --- /dev/null +++ b/code/modules/assembly/doorcontrol.dm @@ -0,0 +1,153 @@ +/obj/item/device/assembly/control + name = "blast door controller" + desc = "A small electronic device able to control a blast door remotely." + icon_state = "control" + origin_tech = "magnets=1;programming=2" + attachable = 1 + var/id = null + var/can_change_id = 0 + +/obj/item/device/assembly/control/examine(mob/user) + ..() + if(id) + user << "It's channel ID is '[id]'." + + +/obj/item/device/assembly/control/activate() + spawn(0) + cooldown = 1 + var/openclose + for(var/obj/machinery/door/poddoor/M in machines) + if(M.id == src.id) + if(openclose == null) + openclose = M.density + spawn(0) + if(M) + if(openclose) M.open() + else M.close() + return + sleep(10) + cooldown = 0 + + +/obj/item/device/assembly/control/airlock + name = "airlock controller" + desc = "A small electronic device able to control an airlock remotely." + id = "badmin" // Set it to null for MEGAFUN. + var/specialfunctions = OPEN + /* + Bitflag, 1= open (OPEN) + 2= idscan (IDSCAN) + 4= bolts (BOLTS) + 8= shock (SHOCK) + 16= door safties (SAFE) + */ + +/obj/item/device/assembly/control/airlock/activate() + spawn(0) + cooldown = 1 + for(var/obj/machinery/door/airlock/D in airlocks) + if(D.id_tag == src.id) + if(specialfunctions & OPEN) + spawn(0) + if(D) + if(D.density) D.open() + else D.close() + return + if(specialfunctions & IDSCAN) + D.aiDisabledIdScanner = !D.aiDisabledIdScanner + if(specialfunctions & BOLTS) + if(!D.isWireCut(4) && D.hasPower()) + D.locked = !D.locked + D.update_icon() + if(specialfunctions & SHOCK) + D.secondsElectrified = D.secondsElectrified ? 0 : -1 + if(specialfunctions & SAFE) + D.safe = !D.safe + sleep(10) + cooldown = 0 + + +/obj/item/device/assembly/control/massdriver + name = "mass driver controller" + desc = "A small electronic device able to control a mass driver." + +/obj/item/device/assembly/control/massdriver/activate() + spawn(0) + cooldown = 1 + for(var/obj/machinery/door/poddoor/M in machines) + if (M.id == src.id) + spawn( 0 ) + M.open() + return + + sleep(10) + + for(var/obj/machinery/mass_driver/M in machines) + if(M.id == src.id) + M.drive() + + sleep(60) + + for(var/obj/machinery/door/poddoor/M in machines) + if (M.id == src.id) + spawn( 0 ) + M.close() + return + + sleep(10) + cooldown = 0 + + +/obj/item/device/assembly/control/igniter + name = "ignition controller" + desc = "A remote controller for a mounted igniter." + +/obj/item/device/assembly/control/igniter/activate() + spawn(0) + cooldown = 1 + for(var/obj/machinery/sparker/M in machines) + if (M.id == src.id) + spawn( 0 ) + M.ignite() + + for(var/obj/machinery/igniter/M in machines) + if(M.id == src.id) + M.use_power(50) + M.on = !M.on + M.icon_state = "igniter[M.on]" + + sleep(30) + cooldown = 0 + + +/obj/item/device/assembly/control/flasher + name = "flasher controller" + desc = "A remote controller for a mounted flasher." + +/obj/item/device/assembly/control/flasher/activate() + + spawn(0) + cooldown = 1 + for(var/obj/machinery/flasher/M in machines) + if(M.id == src.id) + spawn(0) + M.flash() + + sleep(50) + cooldown = 0 + + +/obj/item/device/assembly/control/crematorium + name = "crematorium controller" + desc = "An evil-looking remote controller for a crematorium." + +/obj/item/device/assembly/control/crematorium/activate() + spawn(0) + cooldown = 1 + for (var/obj/structure/bodycontainer/crematorium/C in crematoriums) + if (C.id == id) + C.cremate(usr) + + sleep(50) + cooldown = 0 \ No newline at end of file From 14bd455287677a2481b0e7f011ddfdf7633d78a3 Mon Sep 17 00:00:00 2001 From: c0 Date: Fri, 28 Aug 2015 02:04:33 +0300 Subject: [PATCH 28/51] Button frame added to metal --- code/game/objects/items/stacks/sheets/sheet_types.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 107c32860ed..506602fb560 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -39,6 +39,7 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ new/datum/stack_recipe("apc frame", /obj/item/wallframe/apc, 2), \ new/datum/stack_recipe("air alarm frame", /obj/item/wallframe/alarm, 2), \ new/datum/stack_recipe("fire alarm frame", /obj/item/wallframe/firealarm, 2), \ + new/datum/stack_recipe("button frame", /obj/item/wallframe/button, 1), \ null, \ new/datum/stack_recipe("iron door", /obj/structure/mineral_door/iron, 20, one_per_turf = 1, on_floor = 1), \ ) From 326d84983648bbfc261e842044ba98e47c69e9b5 Mon Sep 17 00:00:00 2001 From: bgobandit Date: Fri, 28 Aug 2015 00:51:24 -0400 Subject: [PATCH 29/51] You can no longer use bruise packs, ointment or other medical stack items on drones. --- code/game/objects/items/stacks/medical.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 7cdfe31e8fb..2be87802f4a 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -25,8 +25,8 @@ user << "\The [M] is dead, you cannot help [t_him]!" return - if(!istype(M)) - user << "You don't know how to apply \the [src] to [M]..." + if(!istype(M) || isdrone(M)) + user << "You cannot apply \the [src] to [M]!" return 1 if(!user.IsAdvancedToolUser()) From 22ffbca5a297f397ca8f65e57c2ddf97b74a354d Mon Sep 17 00:00:00 2001 From: sybil-tgstation13 Date: Fri, 28 Aug 2015 05:43:08 +0000 Subject: [PATCH 30/51] Automatic changelog compile --- html/changelog.html | 7 +++++++ html/changelogs/.all_changelog.yml | 7 +++++++ html/changelogs/bgobandit - salicyclicassblastusa.yml | 7 ------- 3 files changed, 14 insertions(+), 7 deletions(-) delete mode 100644 html/changelogs/bgobandit - salicyclicassblastusa.yml diff --git a/html/changelog.html b/html/changelog.html index 74b09bfbaa3..821377b3ad1 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,13 @@ -->

+

28 August 2015

+

bgobandit updated:

+
    +
  • Overheard at CentComm: 'This burn kit said salicyclic acid would heal my burns! WHO MADE THIS SHIT?' A muffled honking is heard in the background. (Burn first-aid kits now contain an appropriate burn pill.)
  • +
  • Oxandrolone, a new burn healing medication, has been added to burn first-aid kits and to chemistry. Ingesting 25 units or more causes burn and brute damage.
  • +
+

19 August 2015

Joan updated: