diff --git a/baystation12.dme b/baystation12.dme index e1580bc2795..5744c73518e 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -563,6 +563,7 @@ #include "code\game\objects\items\weapons\grenades\grenade.dm" #include "code\game\objects\items\weapons\grenades\smokebomb.dm" #include "code\game\objects\items\weapons\grenades\spawnergrenade.dm" +#include "code\game\objects\items\weapons\implants\deadman.dm" #include "code\game\objects\items\weapons\implants\implant.dm" #include "code\game\objects\items\weapons\implants\implantcase.dm" #include "code\game\objects\items\weapons\implants\implantchair.dm" diff --git a/code/ZAS/NewSettings.dm b/code/ZAS/NewSettings.dm index f3821367f48..2f189bd0315 100644 --- a/code/ZAS/NewSettings.dm +++ b/code/ZAS/NewSettings.dm @@ -151,7 +151,7 @@ var/global/ZAS_Settings/zas_settings = new // N3X15 - Ice is disabled by default, per Pomf's request. /datum/ZAS_Setting/ice_formation name="Airflow - Enable Ice Formation" - value = 0 + value = 1 desc="1=yes, 0=no - Slippin' and slidin' when pressure > 10kPa and temperature < 273K" valtype=ZAS_TYPE_BOOLEAN diff --git a/code/game/machinery/atmo_control.dm b/code/game/machinery/atmo_control.dm index faac347b33a..3f1e72f43a2 100644 --- a/code/game/machinery/atmo_control.dm +++ b/code/game/machinery/atmo_control.dm @@ -369,12 +369,19 @@ Max Output Pressure: [output_pressure] kPa
"} Rate: [volume_rate] L/sec
"} if(automation) - output += "Automated Fuel Injection: Engaged
" - output += "Injector Controls Locked Out
" - else - output += "Automated Fuel Injection: Disengaged
" - output += "Injector: Toggle Power Inject (1 Cycle)
" + // AUTOFIXED BY fix_string_idiocy.py + // C:\Users\Rob\Documents\Projects\vgstation13\code\game\machinery\atmo_control.dm:372: output += "Automated Fuel Injection: Engaged
" + output += {"Automated Fuel Injection: Engaged
+ Injector Controls Locked Out
"} + // END AUTOFIX + else + + // AUTOFIXED BY fix_string_idiocy.py + // C:\Users\Rob\Documents\Projects\vgstation13\code\game\machinery\atmo_control.dm:375: output += "Automated Fuel Injection: Disengaged
" + output += {"Automated Fuel Injection: Disengaged
+ Injector: Toggle Power Inject (1 Cycle)
"} + // END AUTOFIX else output += "ERROR: Can not find device Search
" @@ -442,7 +449,3 @@ Rate: [volume_rate] L/sec
"} ) radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) - - - - diff --git a/code/game/machinery/atmoalter/area_atmos_computer.dm b/code/game/machinery/atmoalter/area_atmos_computer.dm index ac7af07435a..fff75b24e3d 100644 --- a/code/game/machinery/atmoalter/area_atmos_computer.dm +++ b/code/game/machinery/atmoalter/area_atmos_computer.dm @@ -19,6 +19,7 @@ scanscrubbers() attack_ai(var/mob/user as mob) + src.add_hiddenprint(user) return src.attack_hand(user) attack_paw(var/mob/user as mob) diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index 64538905c97..eed7a03a532 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -17,6 +17,17 @@ volume = 1000 use_power = 0 var/release_log = "" + var/busy = 0 +/* m_amt=10*CC_PER_SHEET_METAL + +// Need to redefine /obj/item's recyk method +/obj/machinery/portable_atmospherics/canister/recycle(var/obj/machinery/mineral/processing_unit/recycle/rec) + if (src.m_amt == 0 && src.g_amt == 0) + return 0 + rec.iron += src.m_amt/CC_PER_SHEET_METAL + rec.glass += src.g_amt/CC_PER_SHEET_GLASS + return 1 +*/ /obj/machinery/portable_atmospherics/canister/sleeping_agent name = "Canister: \[N2O\]" @@ -174,6 +185,14 @@ return /obj/machinery/portable_atmospherics/canister/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) + if(iswelder(W) && src.destroyed) + if(weld(W, user)) + user << "\blue You salvage whats left of \the [src]" + var/obj/item/stack/sheet/metal/M = new /obj/item/stack/sheet/metal(src.loc) + M.amount = 3 + del src + return + if(!istype(W, /obj/item/weapon/wrench) && !istype(W, /obj/item/weapon/tank) && !istype(W, /obj/item/device/analyzer) && !istype(W, /obj/item/device/pda)) visible_message("\red [user] hits the [src] with a [W]!") src.health -= W.force @@ -196,6 +215,7 @@ ..() /obj/machinery/portable_atmospherics/canister/attack_ai(var/mob/user as mob) + src.add_hiddenprint(user) return src.attack_hand(user) /obj/machinery/portable_atmospherics/canister/attack_paw(var/mob/user as mob) @@ -243,17 +263,18 @@ Release Pressure: - air
" + release_log += "Valve was closed by [usr]([ckey(usr.key)]), stopping the transfer into the air
" else if (holding) - release_log += "Valve was opened by [usr], starting the transfer into the [holding]
" + release_log += "Valve was opened by [usr]([ckey(usr.key)]), starting the transfer into the [holding]
" else - if(src.air_contents.toxins > 0 || (locate(/datum/gas/sleeping_agent) in src.air_contents.trace_gases)) - message_admins("[usr]([ckey(usr.key)]) opened a canister that contains plasma at [loc.x], [loc.y], [loc.z]") + var/datum/gas/sleeping_agent/S = locate() in src.air_contents.trace_gases + if(src.air_contents.toxins > 0 || (istype(S))) + message_admins("[usr.real_name] ([formatPlayerPanel(usr,usr.ckey)]) opened a canister that contains \[[src.air_contents.toxins > 0 ? "Toxins " : ""] [istype(S) ? "N2O" : ""]\] at [formatJumpTo(loc)]!") log_admin("[usr]([ckey(usr.key)]) opened a canister that contains plasma at [loc.x], [loc.y], [loc.z]") - release_log += "Valve was opened by [usr], starting the transfer into the air
" + release_log += "Valve was opened by [usr]([ckey(usr.key)]), starting the transfer into the air
" valve_open = !valve_open if (href_list["remove_tank"]) @@ -323,6 +344,7 @@ Release Pressure:
- - - You start to slice away at \the [src]..." + playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) + WT.eyecheck(user) + busy = 1 + if(do_after(user, 50)) + busy = 0 + if(!WT.isOn()) + return 0 + return 1 + busy = 0 + return 0 \ No newline at end of file diff --git a/code/game/machinery/atmoalter/meter.dm b/code/game/machinery/atmoalter/meter.dm index be382551462..4db12a7ae37 100644 --- a/code/game/machinery/atmoalter/meter.dm +++ b/code/game/machinery/atmoalter/meter.dm @@ -24,6 +24,9 @@ /obj/machinery/meter/process() if(!target) icon_state = "meterX" + // Pop the meter off when the pipe we're attached to croaks. + new /obj/item/pipe_meter(src.loc) + spawn(0) del(src) return 0 if(stat & (BROKEN|NOPOWER)) @@ -35,6 +38,9 @@ var/datum/gas_mixture/environment = target.return_air() if(!environment) icon_state = "meterX" + // Pop the meter off when the environment we're attached to croaks. + new /obj/item/pipe_meter(src.loc) + spawn(0) del(src) return 0 var/env_pressure = environment.return_pressure() @@ -130,4 +136,4 @@ src.target = loc /obj/machinery/meter/turf/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) - return + return \ No newline at end of file diff --git a/code/game/machinery/atmoalter/pump.dm b/code/game/machinery/atmoalter/pump.dm index 00aedd93636..4a906099bf0 100644 --- a/code/game/machinery/atmoalter/pump.dm +++ b/code/game/machinery/atmoalter/pump.dm @@ -91,6 +91,7 @@ return air_contents /obj/machinery/portable_atmospherics/pump/attack_ai(var/mob/user as mob) + src.add_hiddenprint(user) return src.attack_hand(user) /obj/machinery/portable_atmospherics/pump/attack_paw(var/mob/user as mob) diff --git a/code/game/machinery/atmoalter/scrubber.dm b/code/game/machinery/atmoalter/scrubber.dm index 6432aa755b3..08c1d42b9ed 100644 --- a/code/game/machinery/atmoalter/scrubber.dm +++ b/code/game/machinery/atmoalter/scrubber.dm @@ -147,6 +147,7 @@ return air_contents /obj/machinery/portable_atmospherics/scrubber/attack_ai(var/mob/user as mob) + src.add_hiddenprint(user) return src.attack_hand(user) /obj/machinery/portable_atmospherics/scrubber/attack_paw(var/mob/user as mob) diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 8a45e396f5e..fb75a215a06 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -15,117 +15,147 @@ var/list/areas_added var/list/users_to_open - New() - . = ..() - for(var/obj/machinery/door/firedoor/F in loc) - if(F != src) - spawn(1) - del src - return . - var/area/A = get_area(src) - ASSERT(istype(A)) +/obj/machinery/door/firedoor/New() + . = ..() + for(var/obj/machinery/door/firedoor/F in loc) + if(F != src) + spawn(1) + del src + return . + var/area/A = get_area(src) + ASSERT(istype(A)) - A.all_doors.Add(src) - areas_added = list(A) + A.all_doors.Add(src) + areas_added = list(A) - for(var/direction in cardinal) - A = get_area(get_step(src,direction)) - if(istype(A) && !(A in areas_added)) - A.all_doors.Add(src) - areas_added += A + for(var/direction in cardinal) + A = get_area(get_step(src,direction)) + if(istype(A) && !(A in areas_added)) + A.all_doors.Add(src) + areas_added += A - Del() - for(var/area/A in areas_added) - A.all_doors.Remove(src) - . = ..() +/obj/machinery/door/firedoor/Del() + for(var/area/A in areas_added) + A.all_doors.Remove(src) + . = ..() - examine() - set src in view() - . = ..() - if( islist(users_to_open) && users_to_open.len) - var/users_to_open_string = users_to_open[1] - if(users_to_open.len >= 2) - for(var/i = 2 to users_to_open.len) - users_to_open_string += ", [users_to_open[i]]" - usr << "These people have opened \the [src] during an alert: [users_to_open_string]." +/obj/machinery/door/firedoor/examine() + set src in view() + . = ..() + if( islist(users_to_open) && users_to_open.len) + var/users_to_open_string = users_to_open[1] + if(users_to_open.len >= 2) + for(var/i = 2 to users_to_open.len) + users_to_open_string += ", [users_to_open[i]]" + usr << "These people have opened \the [src] during an alert: [users_to_open_string]." - Bumped(atom/AM) - if(p_open || operating) +/obj/machinery/door/firedoor/Bumped(atom/AM) + if(p_open || operating) + return + if(!density) + return ..() + if(istype(AM, /obj/mecha)) + var/obj/mecha/mecha = AM + if (mecha.occupant) + var/mob/M = mecha.occupant + if(world.time - M.last_bumped <= 10) return //Can bump-open one airlock per second. This is to prevent popup message spam. + M.last_bumped = world.time + attack_hand(M) + return 0 + + +/obj/machinery/door/firedoor/power_change() + if(powered(ENVIRON)) + stat &= ~NOPOWER + else + stat |= NOPOWER + return + + +/obj/machinery/door/firedoor/attack_hand(mob/user as mob) + add_fingerprint(user) + if(operating) + return//Already doing something. + + if(blocked) + user << "\The [src] is welded solid!" + return + + if(!allowed(user)) + user << "Access denied." + return + + var/area/A = get_area(src) + ASSERT(istype(A)) + if(A.master) + A = A.master + var/alarmed = A.air_doors_activated || A.fire + + var/answer = alert(user, "Would you like to [density ? "open" : "close"] this [src.name]?[ alarmed && density ? "\nNote that by doing so, you acknowledge any damages from opening this\n[src.name] as being your own fault, and you will be held accountable under the law." : ""]",\ + "\The [src]", "Yes, [density ? "open" : "close"]", "No") + if(answer == "No") + return + if(user.stat || !user.canmove || user.stunned || user.weakened || user.paralysis || get_dist(src, user) > 1) + user << "Sorry, you must remain able bodied and close to \the [src] in order to use it." + return + + var/needs_to_close = 0 + if(density) + if(alarmed) + needs_to_close = 1 + spawn() + open() + else + spawn() + close() + + if(needs_to_close) + spawn(50) + if(alarmed) + nextstate = CLOSED + + +/obj/machinery/door/firedoor/attackby(obj/item/weapon/C as obj, mob/user as mob) + add_fingerprint(user) + if(operating) + return//Already doing something. + if(istype(C, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/W = C + if(W.remove_fuel(0, user)) + blocked = !blocked + user.visible_message("\red \The [user] [blocked ? "welds" : "unwelds"] \the [src] with \a [W].",\ + "You [blocked ? "weld" : "unweld"] \the [src] with \the [W].",\ + "You hear something being welded.") + update_icon() return - if(!density) - return ..() - if(istype(AM, /obj/mecha)) - var/obj/mecha/mecha = AM - if (mecha.occupant) - var/mob/M = mecha.occupant - if(world.time - M.last_bumped <= 10) return //Can bump-open one airlock per second. This is to prevent popup message spam. - M.last_bumped = world.time - attack_hand(M) - return 0 - - power_change() - if(powered(ENVIRON)) - stat &= ~NOPOWER - latetoggle() - else - stat |= NOPOWER + if(blocked) + user << "\red \The [src] is welded solid!" return - attack_hand(mob/user as mob) - return attackby(null, user) - - - attackby(obj/item/weapon/C as obj, mob/user as mob) - add_fingerprint(user) + if( istype(C, /obj/item/weapon/crowbar) || ( istype(C,/obj/item/weapon/twohanded/fireaxe) && C:wielded == 1 ) ) if(operating) - return//Already doing something. - if(istype(C, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/W = C - if(W.remove_fuel(0, user)) - blocked = !blocked - user.visible_message("\red \The [user] [blocked ? "welds" : "unwelds"] \the [src] with \a [W].",\ - "You [blocked ? "weld" : "unweld"] \the [src] with \the [W].",\ - "You hear something being welded.") - update_icon() - return - - if(blocked) - user << "\red \The [src] is welded solid!" return - var/area/A = get_area(src) - ASSERT(istype(A)) - if(A.master) - A = A.master - var/alarmed = A.air_doors_activated || A.fire + if( blocked && istype(C, /obj/item/weapon/crowbar) ) + user.visible_message("\red \The [user] pries at \the [src] with \a [C], but \the [src] is welded in place!",\ + "You try to pry \the [src] [density ? "open" : "closed"], but it is welded in place!",\ + "You hear someone struggle and metal straining.") + return - if( istype(C, /obj/item/weapon/crowbar) || ( istype(C,/obj/item/weapon/twohanded/fireaxe) && C:wielded == 1 ) ) - if(operating) - return - if( blocked && istype(C, /obj/item/weapon/crowbar) ) - user.visible_message("\red \The [user] pries at \the [src] with \a [C], but \the [src] is welded in place!",\ - "You try to pry \the [src] [density ? "open" : "closed"], but it is welded in place!",\ - "You hear someone struggle and metal straining.") - return + user.visible_message("\red \The [user] starts to force \the [src] [density ? "open" : "closed"] with \a [C]!",\ + "You start forcing \the [src] [density ? "open" : "closed"] with \the [C]!",\ + "You hear metal strain.") + if(do_after(user,30)) if( istype(C, /obj/item/weapon/crowbar) ) - if( stat & (BROKEN|NOPOWER) || !density || !alarmed ) + if( stat & (BROKEN|NOPOWER) || !density) user.visible_message("\red \The [user] forces \the [src] [density ? "open" : "closed"] with \a [C]!",\ "You force \the [src] [density ? "open" : "closed"] with \the [C]!",\ "You hear metal strain, and a door [density ? "open" : "close"].") - else if( allowed(user) ) - user.visible_message("\blue \The [user] lifts \the [src] with \a [C].",\ - "\The [src] scans your ID, and obediently opens as you apply your [C].",\ - "You hear metal move, and a door [density ? "open" : "close"].") - else - user.visible_message("\blue \The [user] pries at \the [src] with \a [C], but \the [src] resists being opened.",\ - "\red You pry at \the [src], but it actively resists your efforts. Maybe use your ID, perhaps?",\ - "You hear someone struggling and metal straining") - return else user.visible_message("\red \The [user] forces \the [ blocked ? "welded" : "" ] [src] [density ? "open" : "closed"] with \a [C]!",\ "You force \the [ blocked ? "welded" : "" ] [src] [density ? "open" : "closed"] with \the [C]!",\ @@ -137,110 +167,50 @@ spawn(0) close() return - var/access_granted = 0 - var/users_name - if(!istype(C, /obj)) //If someone hit it with their hand. We need to see if they are allowed. - if(allowed(user)) - access_granted = 1 - if(ishuman(user)) - users_name = FindNameFromID(user) - else - users_name = "Unknown" - - if( ishuman(user) && !stat && ( istype(C, /obj/item/weapon/card/id) || istype(C, /obj/item/device/pda) ) ) - var/obj/item/weapon/card/id/ID = C - - if( istype(C, /obj/item/device/pda) ) - var/obj/item/device/pda/pda = C - ID = pda.id - if(!istype(ID)) - ID = null - - if(ID) - users_name = ID.registered_name - - if(check_access(ID)) - access_granted = 1 - - var/answer = alert(user, "Would you like to [density ? "open" : "close"] this [src.name]?[ alarmed && density && !access_granted ? "\nNote that by doing so, you acknowledge any damages from opening this\n[src.name] as being your own fault, and you will be held accountable under the law." : ""]",\ - "\The [src]", "Yes, [density ? "open" : "close"]", "No") - if(answer == "No") - return - if(user.stat || !user.canmove || user.stunned || user.weakened || user.paralysis || get_dist(src, user) > 1) - user << "Sorry, you must remain able bodied and close to \the [src] in order to use it." - return - - if(alarmed && density && !access_granted && !( users_name in users_to_open ) ) - user.visible_message("\red \The [src] opens for \the [user], but only after they acknowledged responsibility for the consequences.",\ - "\The [src] opens after you acknowledge the consequences.",\ - "You hear a beep, and a door opening.") - if(!users_to_open) - users_to_open = list() - users_to_open += users_name - else - user.visible_message("\blue \The [src] [density ? "open" : "close"]s for \the [user].",\ - "\The [src] [density ? "open" : "close"]s.",\ - "You hear a beep, and a door opening.") - - var/needs_to_close = 0 - if(density) - if(alarmed) - needs_to_close = 1 - spawn() - open() - else - spawn() - close() - - if(needs_to_close) - spawn(50) - if(alarmed) - nextstate = CLOSED - proc/latetoggle() - if(operating || stat & NOPOWER || !nextstate) - return - switch(nextstate) - if(OPEN) - nextstate = null - open() - if(CLOSED) - nextstate = null - close() + +/obj/machinery/door/firedoor/proc/latetoggle() + if(operating || stat & NOPOWER || !nextstate) return + switch(nextstate) + if(OPEN) + nextstate = null + open() + if(CLOSED) + nextstate = null + close() + return - open() - ..() - latetoggle() - return +/obj/machinery/door/firedoor/close() + latetoggle() + return ..() - close() - ..() - latetoggle() - return +/obj/machinery/door/firedoor/open() + latetoggle() + return ..() - door_animate(animation) - switch(animation) - if("opening") - flick("door_opening", src) - if("closing") - flick("door_closing", src) - return +/obj/machinery/door/firedoor/door_animate(animation) + switch(animation) + if("opening") + flick("door_opening", src) + if("closing") + flick("door_closing", src) + return - update_icon() - overlays.Cut() - if(density) - icon_state = "door_closed" - if(blocked) - overlays += "welded" - else - icon_state = "door_open" - if(blocked) - overlays += "welded_open" - return +/obj/machinery/door/firedoor/update_icon() + overlays.Cut() + if(density) + icon_state = "door_closed" + if(blocked) + overlays += "welded" + else + icon_state = "door_open" + if(blocked) + overlays += "welded_open" + return @@ -286,4 +256,4 @@ /obj/machinery/door/firedoor/multi_tile icon = 'icons/obj/doors/DoorHazard2x1.dmi' - width = 2 \ No newline at end of file + width = 2 diff --git a/code/game/objects/items/weapons/implants/deadman.dm b/code/game/objects/items/weapons/implants/deadman.dm new file mode 100644 index 00000000000..1759a4f4531 --- /dev/null +++ b/code/game/objects/items/weapons/implants/deadman.dm @@ -0,0 +1,36 @@ +/obj/item/weapon/implant/deadman + name = "deadman switch implant" + desc = "Activates a signal on death." + var/obj/item/device/assembly/signaler/signaler + icon_state = "implant_evil" + + get_data() + var/dat = {" +Implant Specifications:
+Name: Robust Corp RX-79 Deadman Switch Implant
+Life: Activates upon death.
+Important Notes: Sends triggering signal
+
+Implant Details:
+Function: Contains a compact, electric signaller that activates upon host death.
+Integrity: Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."} + return dat + + implanted(mob/source as mob) + signaler = new /obj/item/device/assembly/signaler(src) + signaler.interact(source) + usr.mind.store_memory("Deadman switch will broadcast signal on [signaler.frequency] using encryption [signaler.code].", 0, 0) + usr << "Deadman switch will broadcast signal on [signaler.frequency] using encryption [signaler.code]." + + + trigger(emote, source as mob) + if(emote == "deathgasp") + src.activate("death") + return + + activate(var/cause) + if((!cause) || (!src.imp_in)) return 0 + signaler.signal() + + islegal() + return 0 \ No newline at end of file diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 2977ebd7c8e..5acd4df3a1e 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -1143,3 +1143,26 @@ proc/move_alien_ship() else alien_ship_location = 1 return + + +proc/formatJumpTo(var/location,var/where="") + var/turf/loc + if(istype(location,/turf/)) + loc = location + else + loc = get_turf(location) + if(where=="") + where=formatLocation(loc) + return "
[where]" + +proc/formatLocation(var/location) + var/turf/loc + if(istype(location,/turf/)) + loc = location + else + loc = get_turf(location) + var/area/A = get_area(location) + return "[A.name] - [loc.x],[loc.y],[loc.z]" + +proc/formatPlayerPanel(var/mob/U,var/text="PP") + return "[text]" \ No newline at end of file diff --git a/maps/tgstation-redux-WIP.dmm b/maps/tgstation-redux-WIP.dmm index 9e9664cfa53..55f87e8ecd4 100644 --- a/maps/tgstation-redux-WIP.dmm +++ b/maps/tgstation-redux-WIP.dmm @@ -4006,9 +4006,9 @@ "bzb" = (/turf/simulated/wall/r_wall,/area/toxins/server) "bzc" = (/obj/machinery/r_n_d/server/robotics,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) "bzd" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 140; on = 1; pressure_checks = 0},/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) -"bze" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) -"bzf" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 32},/turf/simulated/floor/plating,/area/toxins/server) -"bzg" = (/obj/machinery/atmospherics/pipe/simple{dir = 10},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) +"bze" = (/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) +"bzf" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/turf/simulated/floor/plating,/area/toxins/server) +"bzg" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/insulated{dir = 10},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bzh" = (/obj/machinery/camera{c_tag = "Server Room"; dir = 2; network = list("RD"); pixel_x = 22},/obj/machinery/camera{c_tag = "Research Division Server Room"; dir = 2; network = list("SS13"); pixel_x = 0},/obj/machinery/power/apc{dir = 1; name = "Server Room APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bzi" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 80; dir = 2; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bzj" = (/obj/machinery/computer/area_atmos,/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "bot"},/area/toxins/storage) @@ -4067,9 +4067,9 @@ "bAk" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) "bAl" = (/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) "bAm" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass_command{icon_state = "door_locked"; locked = 1; name = "Server Room"; req_access_txt = "30"},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) -"bAn" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) -"bAo" = (/obj/structure/stool/bed/chair/office/light,/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) -"bAp" = (/obj/machinery/atmospherics/pipe/simple{dir = 9},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) +"bAn" = (/obj/machinery/atmospherics/pipe/manifold/insulated/visible{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) +"bAo" = (/obj/structure/stool/bed/chair/office/light,/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) +"bAp" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/insulated{dir = 9},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bAq" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/toxins/storage) "bAr" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/storage) "bAs" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/toxins/storage) @@ -4132,8 +4132,8 @@ "bBx" = (/obj/machinery/computer/scan_consolenew,/obj/structure/window/reinforced,/turf/simulated/floor{tag = "icon-whitepurple (EAST)"; icon_state = "whitepurple"; dir = 4},/area/medical/genetics) "bBy" = (/obj/machinery/r_n_d/server/core,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) "bBz" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 140; icon_state = "in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) -"bBA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plating,/area/toxins/server) -"bBB" = (/obj/machinery/atmospherics/pipe/simple{dir = 9},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) +"bBA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/turf/simulated/floor/plating,/area/toxins/server) +"bBB" = (/obj/machinery/atmospherics/pipe/simple/insulated{dir = 9},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bBC" = (/obj/machinery/computer/rdservercontrol,/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bBD" = (/obj/machinery/computer/message_monitor,/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bBE" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/toxins/storage)