From b7d0818e278cb49edeed8cb2f84198ebbf8bb33f Mon Sep 17 00:00:00 2001 From: Kelenius Date: Thu, 25 Feb 2016 15:08:30 +0300 Subject: [PATCH 1/7] Removes unused code - old turrets Removes /obj/machinery/turret (by the looks of if they wouldn't fire anyway) Removes /obj/machinery/turretcover Removes /area/turret_protected (new turrets don't use it), its associated procs, changes areas from /area/turret_protected/x to area/x --- code/game/area/Space Station 13 areas.dm | 42 +- code/game/gamemodes/events/power_failure.dm | 4 +- .../gamemodes/malfunction/malf_hardware.dm | 5 - code/game/machinery/turrets.dm | 523 ------------------ maps/overmap/example_sector1.dmm | 232 ++++---- maps/polaris-1.dmm | 214 +++---- maps/polaris-3.dmm | 220 ++++---- polaris.dme | 1 - 8 files changed, 355 insertions(+), 886 deletions(-) delete mode 100644 code/game/machinery/turrets.dm diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index 8ab1944f5e..4b9d257a46 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -77,7 +77,7 @@ var/list/ghostteleportlocs = list() /hook/startup/proc/setupGhostTeleportLocs() for(var/area/AR in world) if(ghostteleportlocs.Find(AR.name)) continue - if(istype(AR, /area/turret_protected/aisat) || istype(AR, /area/derelict) || istype(AR, /area/tdome) || istype(AR, /area/shuttle/specops/centcom)) + if(istype(AR, /area/aisat) || istype(AR, /area/derelict) || istype(AR, /area/tdome) || istype(AR, /area/shuttle/specops/centcom)) ghostteleportlocs += AR.name ghostteleportlocs[AR.name] = AR var/turf/picked = pick(get_area_turfs(AR.type)) @@ -122,8 +122,6 @@ area/space/atmosalert() /area/space/partyalert() return -/area/turret_protected/ - /area/arrival requires_power = 0 @@ -2422,65 +2420,65 @@ area/space/atmosalert() name = "Emergency Storage" icon_state = "storage" -/area/turret_protected/ai_upload +/area/ai_upload name = "\improper AI Upload Chamber" icon_state = "ai_upload" ambience = list('sound/ambience/ambimalf.ogg') -/area/turret_protected/ai_upload_foyer +/area/ai_upload_foyer name = "AI Upload Access" icon_state = "ai_foyer" ambience = list('sound/ambience/ambimalf.ogg') sound_env = SMALL_ENCLOSED -/area/turret_protected/ai_server_room +/area/ai_server_room name = "Messaging Server Room" icon_state = "ai_server" sound_env = SMALL_ENCLOSED -/area/turret_protected/ai +/area/ai name = "\improper AI Chamber" icon_state = "ai_chamber" ambience = list('sound/ambience/ambimalf.ogg') -/area/turret_protected/ai_cyborg_station +/area/ai_cyborg_station name = "\improper Cyborg Station" icon_state = "ai_cyborg" sound_env = SMALL_ENCLOSED -/area/turret_protected/aisat +/area/aisat name = "\improper AI Satellite" icon_state = "ai" -/area/turret_protected/aisat_interior +/area/aisat_interior name = "\improper AI Satellite" icon_state = "ai" -/area/turret_protected/AIsatextFP +/area/AIsatextFP name = "\improper AI Sat Ext" icon_state = "storage" luminosity = 1 lighting_use_dynamic = 0 -/area/turret_protected/AIsatextFS +/area/AIsatextFS name = "\improper AI Sat Ext" icon_state = "storage" luminosity = 1 lighting_use_dynamic = 0 -/area/turret_protected/AIsatextAS +/area/AIsatextAS name = "\improper AI Sat Ext" icon_state = "storage" luminosity = 1 lighting_use_dynamic = 0 -/area/turret_protected/AIsatextAP +/area/AIsatextAP name = "\improper AI Sat Ext" icon_state = "storage" luminosity = 1 lighting_use_dynamic = 0 -/area/turret_protected/NewAIMain +/area/NewAIMain name = "\improper AI Main New" icon_state = "storage" @@ -2524,22 +2522,22 @@ area/space/atmosalert() name = "\improper Telecoms Central Compartment" icon_state = "tcomsatcham" -/area/turret_protected/tcomsat +/area/tcomsat name = "\improper Telecoms Satellite" icon_state = "tcomsatlob" ambience = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') -/area/turret_protected/tcomfoyer +/area/tcomfoyer name = "\improper Telecoms Foyer" icon_state = "tcomsatentrance" ambience = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') -/area/turret_protected/tcomwest +/area/tcomwest name = "\improper Telecommunications Satellite West Wing" icon_state = "tcomsatwest" ambience = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') -/area/turret_protected/tcomeast +/area/tcomeast name = "\improper Telecommunications Satellite East Wing" icon_state = "tcomsateast" ambience = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') @@ -2762,9 +2760,9 @@ var/list/the_station_areas = list ( /area/ai_monitored/storage/eva, //do not try to simplify to "/area/ai_monitored" --rastaf0 /area/ai_monitored/storage/secure, /area/ai_monitored/storage/emergency, - /area/turret_protected/ai_upload, //do not try to simplify to "/area/turret_protected" --rastaf0 - /area/turret_protected/ai_upload_foyer, - /area/turret_protected/ai, + /area/ai_upload, //do not try to simplify to "/area" --rastaf0 + /area/ai_upload_foyer, + /area/ai, ) diff --git a/code/game/gamemodes/events/power_failure.dm b/code/game/gamemodes/events/power_failure.dm index 0f7d6149d3..04404573e8 100644 --- a/code/game/gamemodes/events/power_failure.dm +++ b/code/game/gamemodes/events/power_failure.dm @@ -3,7 +3,7 @@ if(announce) command_announcement.Announce("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure", new_sound = 'sound/AI/poweroff.ogg') - var/list/skipped_areas = list(/area/turret_protected/ai) + var/list/skipped_areas = list(/area/ai) for(var/obj/machinery/power/smes/S in world) var/area/current_area = get_area(S) @@ -24,7 +24,7 @@ C.cell.charge = 0 /proc/power_restore(var/announce = 1) - var/list/skipped_areas = list(/area/turret_protected/ai) + var/list/skipped_areas = list(/area/ai) if(announce) command_announcement.Announce("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg') diff --git a/code/game/gamemodes/malfunction/malf_hardware.dm b/code/game/gamemodes/malfunction/malf_hardware.dm index b33a5e49d8..864ba0722d 100644 --- a/code/game/gamemodes/malfunction/malf_hardware.dm +++ b/code/game/gamemodes/malfunction/malf_hardware.dm @@ -60,11 +60,6 @@ /datum/malf_hardware/strong_turrets/install() ..() - for(var/obj/machinery/turret/T in machines) - T.maxhealth = round(initial(T.maxhealth) * 1.4) - T.shot_delay = round(initial(T.shot_delay) / 2) - T.auto_repair = 1 - T.active_power_usage = round(initial(T.active_power_usage) * 5) for(var/obj/machinery/porta_turret/T in machines) T.maxhealth = round(initial(T.maxhealth) * 1.4) T.shot_delay = round(initial(T.shot_delay) / 2) diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm deleted file mode 100644 index d324f3dd9c..0000000000 --- a/code/game/machinery/turrets.dm +++ /dev/null @@ -1,523 +0,0 @@ -/area/turret_protected - name = "Turret Protected Area" - var/list/turretTargets = list() - -/area/turret_protected/proc/subjectDied(target) - if( isliving(target) ) - if( !issilicon(target) ) - var/mob/living/L = target - if( L.stat ) - if( L in turretTargets ) - src.Exited(L) - - -/area/turret_protected/Entered(O) - ..() - if( iscarbon(O) ) - turretTargets |= O - else if( istype(O, /obj/mecha) ) - var/obj/mecha/Mech = O - if( Mech.occupant ) - turretTargets |= Mech - else if(istype(O,/mob/living/simple_animal)) - turretTargets |= O - return 1 - -/area/turret_protected/Exited(O) - if( ismob(O) && !issilicon(O) ) - turretTargets -= O - else if( istype(O, /obj/mecha) ) - turretTargets -= O - ..() - return 1 - - -/obj/machinery/turret - name = "turret" - icon = 'icons/obj/turrets.dmi' - icon_state = "grey_target_prism" - var/raised = 0 - var/enabled = 1 - anchored = 1 - layer = 3 - invisibility = INVISIBILITY_LEVEL_TWO - density = 1 - var/lasers = 0 - var/lasertype = 1 - // 1 = lasers - // 2 = cannons - // 3 = pulse - // 4 = change (HONK) - // 5 = bluetag - // 6 = redtag - var/health = 80 - var/maxhealth = 80 - var/auto_repair = 0 - var/obj/machinery/turretcover/cover = null - var/popping = 0 - var/wasvalid = 0 - var/lastfired = 0 - var/shot_delay = 30 //3 seconds between shots - var/datum/effect/effect/system/spark_spread/spark_system - use_power = 1 - idle_power_usage = 50 - active_power_usage = 300 -// var/list/targets - var/atom/movable/cur_target - var/targeting_active = 0 - var/area/turret_protected/protected_area - -/obj/machinery/turret/proc/take_damage(damage) - src.health -= damage - if(src.health<=0) - qdel(src) - return - -/obj/machinery/turret/attack_hand(var/mob/living/carbon/human/user) - - if(!istype(user)) - return ..() - - if(user.species.can_shred(user) && !(stat & BROKEN)) - playsound(src.loc, 'sound/weapons/slash.ogg', 25, 1, -1) - visible_message("[user] has slashed at [src]!") - src.take_damage(15) - return - -/obj/machinery/turret/bullet_act(var/obj/item/projectile/Proj) - if(!(Proj.damage_type == BRUTE || Proj.damage_type == BURN)) - return - take_damage(Proj.damage) - ..() - return - -/obj/machinery/turret/New() - maxhealth = health - spark_system = new /datum/effect/effect/system/spark_spread - spark_system.set_up(5, 0, src) - spark_system.attach(src) -// targets = new - ..() - return - -/obj/machinery/turret/proc/update_health() - if(src.health<=0) - qdel(src) - return - -/obj/machinery/turretcover - name = "pop-up turret cover" - icon = 'icons/obj/turrets.dmi' - icon_state = "turretCover" - anchored = 1 - layer = 3.5 - density = 0 - var/obj/machinery/turret/host = null - -/obj/machinery/turret/proc/isPopping() - return (popping!=0) - -/obj/machinery/turret/power_change() - ..() - if(stat & BROKEN) - icon_state = "grey_target_prism" - else - if( !(stat & NOPOWER) ) - if (src.enabled) - if (src.lasers) - icon_state = "orange_target_prism" - else - icon_state = "target_prism" - else - icon_state = "grey_target_prism" - stat &= ~NOPOWER - else - spawn(rand(0, 15)) - src.icon_state = "grey_target_prism" - stat |= NOPOWER - -/obj/machinery/turret/proc/setState(var/enabled, var/lethal) - src.enabled = enabled - src.lasers = lethal - src.power_change() - - -/obj/machinery/turret/proc/get_protected_area() - var/area/turret_protected/TP = get_area(src) - if(istype(TP)) - return TP - return - -/obj/machinery/turret/proc/check_target(var/atom/movable/T as mob|obj) - if( T && T in protected_area.turretTargets ) - var/area/area_T = get_area(T) - if( !area_T || (area_T.type != protected_area.type) ) - protected_area.Exited(T) - return 0 //If the guy is somehow not in the turret's area (teleportation), get them out the damn list. --NEO - if( iscarbon(T) ) - var/mob/living/carbon/MC = T - if( !MC.stat ) - if( !MC.lying || lasers ) - return 1 - else if( istype(T, /obj/mecha) ) - var/obj/mecha/ME = T - if( ME.occupant ) - return 1 - else if(istype(T,/mob/living/simple_animal)) - var/mob/living/simple_animal/A = T - if( !A.stat ) - if(lasers) - return 1 - return 0 - -/obj/machinery/turret/proc/get_new_target() - var/list/new_targets = new - var/new_target - for(var/mob/living/carbon/M in protected_area.turretTargets) - if(!M.stat) - if(!M.lying || lasers) - new_targets += M - for(var/obj/mecha/M in protected_area.turretTargets) - if(M.occupant) - new_targets += M - for(var/mob/living/simple_animal/M in protected_area.turretTargets) - if(!M.stat) - new_targets += M - if(new_targets.len) - new_target = pick(new_targets) - return new_target - - -/obj/machinery/turret/process() - if(stat & (NOPOWER|BROKEN)) - return - if(src.cover==null) - src.cover = new /obj/machinery/turretcover(src.loc) - src.cover.host = src - protected_area = get_protected_area() - if(!enabled || !protected_area || protected_area.turretTargets.len<=0) - if(!isDown() && !isPopping()) - popDown() - return - if(!check_target(cur_target)) //if current target fails target check - cur_target = get_new_target() //get new target - - if(cur_target) //if it's found, proceed -// world << "[cur_target]" - if(!isPopping()) - if(isDown()) - popUp() - use_power = 2 - else - spawn() - if(!targeting_active) - targeting_active = 1 - target() - targeting_active = 0 - - if(prob(15)) - if(prob(50)) - playsound(src.loc, 'sound/effects/turret/move1.wav', 60, 1) - else - playsound(src.loc, 'sound/effects/turret/move2.wav', 60, 1) - else if(!isPopping())//else, pop down - if(!isDown()) - popDown() - use_power = 1 - - // Auto repair requires massive amount of power, but slowly regenerates the turret's health. - // Currently only used by malfunction hardware, but may be used as admin-settable option too. - if(auto_repair) - if(health < maxhealth) - use_power(20000) - health = min(health + 1, maxhealth) - return - - -/obj/machinery/turret/proc/target() - while(src && enabled && !stat && check_target(cur_target)) - src.set_dir(get_dir(src, cur_target)) - shootAt(cur_target) - sleep(shot_delay) - return - -/obj/machinery/turret/proc/shootAt(var/atom/movable/target) - var/turf/T = get_turf(src) - var/turf/U = get_turf(target) - if (!T || !U) - return - var/obj/item/projectile/A - if (src.lasers) - switch(lasertype) - if(1) - A = new /obj/item/projectile/beam( loc ) - if(2) - A = new /obj/item/projectile/beam/heavylaser( loc ) - if(3) - A = new /obj/item/projectile/beam/pulse( loc ) - if(4) - A = new /obj/item/projectile/change( loc ) - if(5) - A = new /obj/item/projectile/beam/lastertag/blue( loc ) - if(6) - A = new /obj/item/projectile/beam/lastertag/red( loc ) - A.original = target - use_power(500) - else - A = new /obj/item/projectile/energy/electrode( loc ) - use_power(200) - - //Turrets aim for the center of mass by default. - //If the target is grabbing someone then the turret smartly aims for extremities - var/obj/item/weapon/grab/G = locate() in target - if(G && G.state >= GRAB_NECK) //works because mobs are currently not allowed to upgrade to NECK if they are grabbing two people. - A.def_zone = pick(BP_HEAD, BP_L_HAND, BP_R_HAND, BP_L_FOOT, BP_R_FOOT, BP_L_ARM, BP_R_ARM, BP_L_LEG, BP_R_LEG) - else - A.def_zone = pick(BP_TORSO, BP_GROIN) - - A.current = T - A.starting = T - A.yo = U.y - T.y - A.xo = U.x - T.x - spawn( 0 ) - A.process() - return - - -/obj/machinery/turret/proc/isDown() - return (invisibility!=0) - -/obj/machinery/turret/proc/popUp() - if ((!isPopping()) || src.popping==-1) - invisibility = 0 - popping = 1 - playsound(src.loc, 'sound/effects/turret/open.wav', 60, 1) - if (src.cover!=null) - flick("popup", src.cover) - src.cover.icon_state = "openTurretCover" - spawn(10) - if (popping==1) popping = 0 - -/obj/machinery/turret/proc/popDown() - if ((!isPopping()) || src.popping==1) - popping = -1 - playsound(src.loc, 'sound/effects/turret/open.wav', 60, 1) - if (src.cover!=null) - flick("popdown", src.cover) - src.cover.icon_state = "turretCover" - spawn(10) - if (popping==-1) - invisibility = INVISIBILITY_LEVEL_TWO - popping = 0 - -/obj/machinery/turret/bullet_act(var/obj/item/projectile/Proj) - if(!(Proj.damage_type == BRUTE || Proj.damage_type == BURN)) - return - src.health -= Proj.damage - ..() - if(prob(45) && Proj.damage > 0) src.spark_system.start() - qdel (Proj) - if (src.health <= 0) - src.die() - return - -/obj/machinery/turret/attackby(obj/item/weapon/W, mob/user)//I can't believe no one added this before/N - ..() - playsound(src.loc, 'sound/weapons/smash.ogg', 60, 1) - src.spark_system.start() - src.health -= W.force * 0.5 - if (src.health <= 0) - src.die() - return - -/obj/machinery/turret/emp_act(severity) - switch(severity) - if(1) - enabled = 0 - lasers = 0 - power_change() - ..() - -/obj/machinery/turret/ex_act(severity) - if(severity < 3) - src.die() - -/obj/machinery/turret/proc/die() - src.health = 0 - src.density = 0 - src.stat |= BROKEN - src.icon_state = "destroyed_target_prism" - if (cover!=null) - qdel(cover) - sleep(3) - flick("explosion", src) - spawn(13) - qdel(src) - -/obj/machinery/turret/attack_generic(var/mob/user, var/damage, var/attack_message) - if(!damage) - return 0 - if(stat & BROKEN) - user << "That object is useless to you." - return 0 - user.do_attack_animation(src) - visible_message("[user] [attack_message] the [src]!") - user.attack_log += text("\[[time_stamp()]\] attacked [src.name]") - src.health -= damage - if (src.health <= 0) - src.die() - return 1 - -/obj/structure/turret/gun_turret - name = "Gun Turret" - density = 1 - anchored = 1 - var/cooldown = 20 - var/projectiles = 100 - var/projectiles_per_shot = 2 - var/deviation = 0.3 - var/list/exclude = list() - var/atom/cur_target - var/scan_range = 7 - var/health = 40 - var/list/scan_for = list("human"=0,"cyborg"=0,"mecha"=0,"alien"=1) - var/on = 0 - icon = 'icons/obj/turrets.dmi' - icon_state = "gun_turret" - - proc/take_damage(damage) - src.health -= damage - if(src.health<=0) - qdel(src) - return - - - bullet_act(var/obj/item/projectile/Proj) - if(Proj.damage_type == HALLOSS) - return - take_damage(Proj.damage) - ..() - return - - - ex_act() - qdel(src) - return - - emp_act() - qdel(src) - return - - attack_hand(mob/user as mob) - user.set_machine(src) - var/dat = {" - [src] Control - - Power: [on?"on":"off"]
- Scan Range: - [scan_range] +
- Scan for: "} - for(var/scan in scan_for) - dat += "
[scan] ([scan_for[scan]?"Yes":"No"])
" - - dat += {"Ammo: [max(0, projectiles)]
- - "} - user << browse(dat, "window=turret") - onclose(user, "turret") - return - - attack_ai(mob/user as mob) - return attack_hand(user) - - Topic(href, href_list) - if(href_list["power"]) - src.on = !src.on - if(src.on) - spawn(50) - if(src) - src.process() - if(href_list["scan_range"]) - src.scan_range = between(1,src.scan_range+text2num(href_list["scan_range"]),8) - if(href_list["scan_for"]) - if(href_list["scan_for"] in scan_for) - scan_for[href_list["scan_for"]] = !scan_for[href_list["scan_for"]] - src.updateUsrDialog() - return - - - proc/validate_target(atom/target) - if(get_dist(target, src)>scan_range) - return 0 - if(istype(target, /mob)) - var/mob/M = target - if(!M.stat && !M.lying)//ninjas can't catch you if you're lying - return 1 - else if(istype(target, /obj/mecha)) - return 1 - return 0 - - - process() - spawn while(on) - if(projectiles<=0) - on = 0 - return - if(cur_target && !validate_target(cur_target)) - cur_target = null - if(!cur_target) - cur_target = get_target() - fire(cur_target) - sleep(cooldown) - return - - proc/get_target() - var/list/pos_targets = list() - var/target = null - if(scan_for["human"]) - for(var/mob/living/carbon/human/M in oview(scan_range,src)) - if(M.stat || M.lying || M in exclude) - continue - pos_targets += M - if(scan_for["cyborg"]) - for(var/mob/living/silicon/M in oview(scan_range,src)) - if(M.stat || M.lying || M in exclude) - continue - pos_targets += M - if(scan_for["mecha"]) - for(var/obj/mecha/M in oview(scan_range, src)) - if(M in exclude) - continue - pos_targets += M - if(scan_for["alien"]) - for(var/mob/living/carbon/alien/M in oview(scan_range,src)) - if(M.stat || M.lying || M in exclude) - continue - pos_targets += M - if(pos_targets.len) - target = pick(pos_targets) - return target - - - proc/fire(atom/target) - if(!target) - cur_target = null - return - src.set_dir(get_dir(src,target)) - var/turf/targloc = get_turf(target) - var/target_x = targloc.x - var/target_y = targloc.y - var/target_z = targloc.z - targloc = null - spawn for(var/i=1 to min(projectiles, projectiles_per_shot)) - if(!src) break - var/turf/curloc = get_turf(src) - targloc = locate(target_x+GaussRandRound(deviation,1),target_y+GaussRandRound(deviation,1),target_z) - if (!targloc || !curloc) - continue - if (targloc == curloc) - continue - playsound(src, 'sound/weapons/Gunshot.ogg', 50, 1) - var/obj/item/projectile/A = new /obj/item/projectile(curloc) - src.projectiles-- - A.launch(target) - return diff --git a/maps/overmap/example_sector1.dmm b/maps/overmap/example_sector1.dmm index ec4ff9bf07..8621c5f558 100644 --- a/maps/overmap/example_sector1.dmm +++ b/maps/overmap/example_sector1.dmm @@ -2,16 +2,16 @@ "ab" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area) "ac" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area) "ad" = (/turf/simulated/wall/r_wall,/area) -"ae" = (/turf/simulated/wall/r_wall,/area/turret_protected/tcomsat) +"ae" = (/turf/simulated/wall/r_wall,/area/tcomsat) "af" = (/turf/simulated/wall/r_wall,/area/tcommsat/computer) -"ag" = (/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) -"ah" = (/turf/space,/area/turret_protected/tcomsat) -"ai" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/camera{c_tag = "West Wing North"; dir = 2; network = list("Tcomsat")},/turf/space,/area/turret_protected/tcomsat) -"aj" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"ak" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"al" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"am" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"an" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) +"ag" = (/obj/structure/lattice,/turf/space,/area/tcomsat) +"ah" = (/turf/space,/area/tcomsat) +"ai" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/camera{c_tag = "West Wing North"; dir = 2; network = list("Tcomsat")},/turf/space,/area/tcomsat) +"aj" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/tcomsat) +"ak" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plating,/area/tcomsat) +"al" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/tcomsat) +"am" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/plating,/area/tcomsat) +"an" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/tcomsat) "ao" = (/turf/simulated/floor/engine,/area/tcommsat/computer) "ap" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/green,/turf/simulated/floor,/area/tcommsat/computer) "aq" = (/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/tcommsat/computer) @@ -19,36 +19,36 @@ "as" = (/obj/machinery/camera{c_tag = "Lounge"; dir = 2; network = list("Tcomsat")},/turf/simulated/floor,/area/tcommsat/computer) "at" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/red,/turf/simulated/floor,/area/tcommsat/computer) "au" = (/turf/simulated/floor,/area/tcommsat/computer) -"av" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/turret_protected/tcomsat) -"aw" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"ax" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/meter,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"ay" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"az" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"aA" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"aB" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomsat) +"av" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/tcomsat) +"aw" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plating,/area/tcomsat) +"ax" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/meter,/turf/simulated/floor/plating,/area/tcomsat) +"ay" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/tcomsat) +"az" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/tcomsat) +"aA" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/tcomsat) +"aB" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat) "aC" = (/obj/structure/filingcabinet,/turf/simulated/floor,/area/tcommsat/computer) "aD" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 140; on = 1; pressure_checks = 0},/obj/machinery/camera{c_tag = "Main Computer Room"; dir = 2; network = list("Tcomsat")},/obj/structure/table/standard,/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/tcommsat/computer) "aE" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue{pixel_x = -3; pixel_y = 2},/turf/simulated/floor,/area/tcommsat/computer) "aF" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp,/turf/simulated/floor,/area/tcommsat/computer) "aG" = (/obj/item/weapon/syntiflesh{name = "Cuban Pete-Meat"},/turf/simulated/floor/engine,/area/tcommsat/computer) "aH" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -29; pixel_y = 0},/turf/simulated/floor,/area/tcommsat/computer) -"aI" = (/obj/structure/window/reinforced{dir = 4},/turf/space,/area/turret_protected/tcomsat) -"aJ" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"aK" = (/obj/machinery/atmospherics/valve/digital{pipe_color = "cyan"; icon_state = "valve1"; name = "Mixed Air Outlet Valve"; open = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"aL" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"aM" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"aN" = (/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomsat) +"aI" = (/obj/structure/window/reinforced{dir = 4},/turf/space,/area/tcomsat) +"aJ" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/tcomsat) +"aK" = (/obj/machinery/atmospherics/valve/digital{pipe_color = "cyan"; icon_state = "valve1"; name = "Mixed Air Outlet Valve"; open = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcomsat) +"aL" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcomsat) +"aM" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet,/turf/simulated/floor/plating,/area/tcomsat) +"aN" = (/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat) "aO" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor,/area/tcommsat/computer) "aP" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/turf/simulated/floor,/area/tcommsat/computer) "aQ" = (/obj/machinery/computer/telecomms/monitor{network = "tcommsat"},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; name = "General Listening Channel"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor,/area/tcommsat/computer) "aR" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/orange,/obj/machinery/light{dir = 8},/turf/simulated/floor,/area/tcommsat/computer) "aS" = (/obj/structure/lattice,/turf/space,/area) -"aT" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) -"aU" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/space,/area/turret_protected/tcomsat) -"aV" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"aW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/turret_protected/tcomsat) -"aX" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/space,/area/turret_protected/tcomsat) -"aY" = (/obj/structure/window/reinforced,/turf/space,/area/turret_protected/tcomsat) +"aT" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/lattice,/turf/space,/area/tcomsat) +"aU" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/space,/area/tcomsat) +"aV" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/tcomsat) +"aW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat) +"aX" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat) +"aY" = (/obj/structure/window/reinforced,/turf/space,/area/tcomsat) "aZ" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/wall/r_wall,/area/tcommsat/computer) "ba" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/tcommsat/computer) "bb" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/tcommsat/computer) @@ -60,10 +60,10 @@ "bh" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor,/area/tcommsat/computer) "bi" = (/obj/structure/table/standard,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor,/area/tcommsat/computer) "bj" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor,/area/tcommsat/computer) -"bk" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"bl" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"bm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"bn" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) +"bk" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"bl" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"bm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"bn" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) "bo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/hatch{name = "Telecoms Control Room"; req_access_txt = "61"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor,/area/tcommsat/computer) "bp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor,/area/tcommsat/computer) "bq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden{tag = "icon-manifold-f (NORTH)"; icon_state = "manifold-f"; dir = 1},/turf/simulated/floor,/area/tcommsat/computer) @@ -80,10 +80,10 @@ "bB" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area) "bC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area) "bD" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless,/area) -"bE" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"bF" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/turret_protected/tcomsat) -"bG" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/light,/turf/space,/area/turret_protected/tcomsat) -"bH" = (/obj/structure/window/reinforced{dir = 1},/turf/space,/area/turret_protected/tcomsat) +"bE" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"bF" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat) +"bG" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/light,/turf/space,/area/tcomsat) +"bH" = (/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat) "bI" = (/obj/machinery/light{dir = 8},/obj/structure/table/standard,/obj/item/device/multitool,/obj/structure/sign/electricshock{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/tcommsat/computer) "bJ" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 80; dir = 1; on = 1},/turf/simulated/floor,/area/tcommsat/computer) "bK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/tcommsat/computer) @@ -92,8 +92,8 @@ "bN" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcommsat/chamber) "bO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/tcommsat/computer) "bP" = (/obj/machinery/door/airlock/hatch{name = "Telecoms Lounge"; req_access_txt = "61"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcommsat/computer) -"bQ" = (/obj/machinery/turret{lasers = 1; lasertype = 2},/turf/simulated/floor/plating/airless,/area/turret_protected/tcomsat) -"bR" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) +"bQ" = (/obj/machinery/turret{lasers = 1; lasertype = 2},/turf/simulated/floor/plating/airless,/area/tcomsat) +"bR" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/space,/area/tcomsat) "bS" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/tcommsat/chamber) "bT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/tcommsat/chamber) "bU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/tcommsat/chamber) @@ -101,11 +101,11 @@ "bW" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (SOUTHWEST)"; icon_state = "intact-f"; dir = 10},/turf/simulated/wall/r_wall,/area/tcommsat/chamber) "bX" = (/obj/machinery/door/airlock/maintenance_hatch{name = "Telecoms Server Access"; req_access_txt = "61"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcommsat/chamber) "bY" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/tcommsat/chamber) -"bZ" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) -"ca" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"cb" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) -"cc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"cd" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/space,/area/turret_protected/tcomsat) +"bZ" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/lattice,/turf/space,/area/tcomsat) +"ca" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"cb" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/tcomsat) +"cc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"cd" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/space,/area/tcomsat) "ce" = (/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cf" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) @@ -114,37 +114,37 @@ "cj" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "ck" = (/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cl" = (/turf/simulated/floor/plating/airless,/area) -"cm" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"cn" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/space,/area/turret_protected/tcomsat) +"cm" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"cn" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/space,/area/tcomsat) "co" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"cq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"ct" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"cu" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/space,/area/turret_protected/tcomsat) +"cq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/tcomsat) +"cr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/tcomsat) +"cs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/tcomsat) +"ct" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"cu" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/space,/area/tcomsat) "cv" = (/obj/machinery/telecomms/server/presets/supply,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cx" = (/obj/machinery/telecomms/server/presets/common,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cy" = (/obj/machinery/telecomms/server/presets/engineering,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"cz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cA" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/turf/simulated/floor,/area/turret_protected/tcomsat) -"cB" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/camera{c_tag = "Telecoms Storage"; network = list("Tcomsat")},/turf/simulated/floor,/area/turret_protected/tcomsat) -"cC" = (/obj/structure/rack,/obj/item/weapon/circuitboard/telecomms/processor,/obj/item/weapon/circuitboard/telecomms/processor,/obj/item/weapon/circuitboard/telecomms/receiver,/obj/item/weapon/circuitboard/telecomms/server,/obj/item/weapon/circuitboard/telecomms/server,/obj/item/weapon/circuitboard/telecomms/bus,/obj/item/weapon/circuitboard/telecomms/bus,/obj/item/weapon/circuitboard/telecomms/broadcaster,/turf/simulated/floor,/area/turret_protected/tcomsat) +"cz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/tcomsat) +"cA" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/turf/simulated/floor,/area/tcomsat) +"cB" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/camera{c_tag = "Telecoms Storage"; network = list("Tcomsat")},/turf/simulated/floor,/area/tcomsat) +"cC" = (/obj/structure/rack,/obj/item/weapon/circuitboard/telecomms/processor,/obj/item/weapon/circuitboard/telecomms/processor,/obj/item/weapon/circuitboard/telecomms/receiver,/obj/item/weapon/circuitboard/telecomms/server,/obj/item/weapon/circuitboard/telecomms/server,/obj/item/weapon/circuitboard/telecomms/bus,/obj/item/weapon/circuitboard/telecomms/bus,/obj/item/weapon/circuitboard/telecomms/broadcaster,/turf/simulated/floor,/area/tcomsat) "cD" = (/obj/machinery/camera{c_tag = "West Solars"; dir = 8; network = list("Tcomsat")},/turf/space,/area) -"cE" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"cF" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/camera{c_tag = "West Wing Middle"; dir = 8; network = list("Tcomsat")},/turf/space,/area/turret_protected/tcomsat) +"cE" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"cF" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/camera{c_tag = "West Wing Middle"; dir = 8; network = list("Tcomsat")},/turf/space,/area/tcomsat) "cG" = (/obj/machinery/telecomms/broadcaster/preset_left,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cH" = (/obj/machinery/telecomms/broadcaster/preset_right,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"cI" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/space,/area/turret_protected/tcomsat) -"cJ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"cK" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomsat) -"cL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cM" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/turf/simulated/floor,/area/turret_protected/tcomsat) -"cN" = (/turf/simulated/floor,/area/turret_protected/tcomsat) -"cO" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/turf/simulated/floor,/area/turret_protected/tcomsat) +"cI" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/space,/area/tcomsat) +"cJ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"cK" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat) +"cL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/tcomsat) +"cM" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/turf/simulated/floor,/area/tcomsat) +"cN" = (/turf/simulated/floor,/area/tcomsat) +"cO" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/turf/simulated/floor,/area/tcomsat) "cP" = (/turf/simulated/floor/plating,/area) -"cQ" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 4},/turf/space,/area/turret_protected/tcomsat) +"cQ" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 4},/turf/space,/area/tcomsat) "cR" = (/obj/structure/sign/nosmoking_2{pixel_x = -32; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cS" = (/obj/machinery/telecomms/processor/preset_two,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cT" = (/obj/machinery/telecomms/bus/preset_two,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) @@ -154,75 +154,75 @@ "cX" = (/obj/machinery/telecomms/processor/preset_four,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cY" = (/obj/machinery/telecomms/bus/preset_four,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "cZ" = (/obj/structure/sign/nosmoking_2{pixel_x = 32; pixel_y = 0},/obj/machinery/light{dir = 4},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"da" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/lattice,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/turret_protected/tcomsat) -"db" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"dc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"dd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/door/airlock/maintenance_hatch{name = "Telecoms Storage"; req_access_txt = "61"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"de" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 29; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/turret_protected/tcomsat) +"da" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/lattice,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/tcomsat) +"db" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"dc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"dd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/door/airlock/maintenance_hatch{name = "Telecoms Storage"; req_access_txt = "61"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"de" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 29; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/tcomsat) "df" = (/obj/machinery/telecomms/bus/preset_one,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dg" = (/obj/machinery/telecomms/processor/preset_one,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dh" = (/obj/machinery/telecomms/receiver/preset_left,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "di" = (/obj/machinery/telecomms/receiver/preset_right,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dj" = (/obj/machinery/telecomms/bus/preset_three,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dk" = (/obj/machinery/telecomms/processor/preset_three,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"dl" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomsat) -"dm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"dn" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/turret_protected/tcomsat) -"do" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/turf/simulated/floor,/area/turret_protected/tcomsat) -"dp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"dq" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/turf/simulated/floor,/area/turret_protected/tcomsat) -"dr" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/turf/simulated/floor,/area/turret_protected/tcomsat) -"ds" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/turf/simulated/floor,/area/turret_protected/tcomsat) +"dl" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat) +"dm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/tcomsat) +"dn" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/tcomsat) +"do" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/turf/simulated/floor,/area/tcomsat) +"dp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/tcomsat) +"dq" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/turf/simulated/floor,/area/tcomsat) +"dr" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/turf/simulated/floor,/area/tcomsat) +"ds" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/turf/simulated/floor,/area/tcomsat) "dt" = (/obj/machinery/telecomms/server/presets/science,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "du" = (/obj/machinery/telecomms/server/presets/medical,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dv" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dw" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (NORTHWEST)"; icon_state = "intact-f"; dir = 9},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dx" = (/obj/machinery/telecomms/server/presets/command,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dy" = (/obj/machinery/telecomms/server/presets/security,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"dz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"dA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"dB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) +"dz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcomsat) +"dA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcomsat) +"dB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcomsat) "dC" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 140; on = 1; pressure_checks = 0},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dD" = (/obj/machinery/camera{c_tag = "Central Compartment South"; dir = 1; network = list("Tcomsat")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dE" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 120; icon_state = "in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/tcommsat/chamber) -"dG" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"dH" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/space,/area/turret_protected/tcomsat) -"dI" = (/obj/structure/window/reinforced,/obj/structure/lattice,/obj/machinery/light{dir = 1},/turf/space,/area/turret_protected/tcomsat) -"dJ" = (/turf/simulated/wall/r_wall,/area/turret_protected/tcomfoyer) -"dK" = (/obj/machinery/turret{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/turret_protected/tcomfoyer) -"dL" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/turret_protected/tcomfoyer) -"dM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "warningcorner"; dir = 8},/area/turret_protected/tcomfoyer) -"dN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/turretid{ailock = 1; control_area = "\improper Telecoms Satellite"; desc = "A firewall prevents AIs from interacting with this device."; icon_state = "motion1"; lethal = 1; name = "Telecoms lethal turret control"; pixel_y = 29; req_access = list(61)},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/camera{c_tag = "Telecoms Foyer"; dir = 2; network = list("Tcomsat")},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/turret_protected/tcomfoyer) -"dO" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/turret_protected/tcomfoyer) -"dP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor{icon_state = "warningcorner"; dir = 8},/area/turret_protected/tcomfoyer) -"dQ" = (/obj/machinery/turret{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/turret_protected/tcomfoyer) -"dR" = (/obj/structure/window/reinforced,/obj/machinery/light{dir = 1},/turf/space,/area/turret_protected/tcomsat) -"dS" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/space,/area/turret_protected/tcomsat) -"dT" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"dU" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"dV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/hatch{name = "Telecoms West Wing"; req_access_txt = "61"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomfoyer) -"dW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/turret_protected/tcomfoyer) -"dX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/turret_protected/tcomfoyer) -"dY" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor,/area/turret_protected/tcomfoyer) -"dZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/turret_protected/tcomfoyer) -"ea" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/turret_protected/tcomfoyer) -"eb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor,/area/turret_protected/tcomfoyer) -"ec" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/turret_protected/tcomfoyer) -"ed" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/hatch{name = "Telecoms East Wing"; req_access_txt = "61"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomfoyer) -"ee" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"ef" = (/obj/machinery/camera{c_tag = "East Wing South"; dir = 8; network = list("Tcomsat")},/turf/space,/area/turret_protected/tcomsat) -"eg" = (/obj/machinery/camera{c_tag = "West Wing South"; dir = 4; network = list("Tcomsat")},/turf/space,/area/turret_protected/tcomsat) -"eh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) -"ei" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/turret_protected/tcomfoyer) -"ej" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "warningcorner"; dir = 1},/area/turret_protected/tcomfoyer) -"ek" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/floor,/area/turret_protected/tcomfoyer) -"el" = (/turf/simulated/floor,/area/turret_protected/tcomfoyer) -"em" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "warningcorner"; dir = 2},/area/turret_protected/tcomfoyer) -"en" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/turret_protected/tcomfoyer) +"dG" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"dH" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/space,/area/tcomsat) +"dI" = (/obj/structure/window/reinforced,/obj/structure/lattice,/obj/machinery/light{dir = 1},/turf/space,/area/tcomsat) +"dJ" = (/turf/simulated/wall/r_wall,/area/tcomfoyer) +"dK" = (/obj/machinery/turret{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/tcomfoyer) +"dL" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/tcomfoyer) +"dM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "warningcorner"; dir = 8},/area/tcomfoyer) +"dN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/turretid{ailock = 1; control_area = "\improper Telecoms Satellite"; desc = "A firewall prevents AIs from interacting with this device."; icon_state = "motion1"; lethal = 1; name = "Telecoms lethal turret control"; pixel_y = 29; req_access = list(61)},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/camera{c_tag = "Telecoms Foyer"; dir = 2; network = list("Tcomsat")},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/tcomfoyer) +"dO" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/tcomfoyer) +"dP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor{icon_state = "warningcorner"; dir = 8},/area/tcomfoyer) +"dQ" = (/obj/machinery/turret{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/tcomfoyer) +"dR" = (/obj/structure/window/reinforced,/obj/machinery/light{dir = 1},/turf/space,/area/tcomsat) +"dS" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/space,/area/tcomsat) +"dT" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"dU" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"dV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/hatch{name = "Telecoms West Wing"; req_access_txt = "61"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomfoyer) +"dW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/tcomfoyer) +"dX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/tcomfoyer) +"dY" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor,/area/tcomfoyer) +"dZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/tcomfoyer) +"ea" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/tcomfoyer) +"eb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor,/area/tcomfoyer) +"ec" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/tcomfoyer) +"ed" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/hatch{name = "Telecoms East Wing"; req_access_txt = "61"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomfoyer) +"ee" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcomsat) +"ef" = (/obj/machinery/camera{c_tag = "East Wing South"; dir = 8; network = list("Tcomsat")},/turf/space,/area/tcomsat) +"eg" = (/obj/machinery/camera{c_tag = "West Wing South"; dir = 4; network = list("Tcomsat")},/turf/space,/area/tcomsat) +"eh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/tcomsat) +"ei" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/tcomfoyer) +"ej" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "warningcorner"; dir = 1},/area/tcomfoyer) +"ek" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/floor,/area/tcomfoyer) +"el" = (/turf/simulated/floor,/area/tcomfoyer) +"em" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "warningcorner"; dir = 2},/area/tcomfoyer) +"en" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/tcomfoyer) "eo" = (/turf/simulated/wall/r_wall,/area/tcommsat/entrance) -"ep" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/wall/r_wall,/area/turret_protected/tcomfoyer) -"eq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/hatch{name = "Telecoms Satellite"; req_access_txt = "61"},/turf/simulated/floor,/area/turret_protected/tcomfoyer) +"ep" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/wall/r_wall,/area/tcomfoyer) +"eq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/hatch{name = "Telecoms Satellite"; req_access_txt = "61"},/turf/simulated/floor,/area/tcomfoyer) "er" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/tcommsat/entrance) "es" = (/obj/machinery/power/smes/magical,/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/tcommsat/entrance) "et" = (/obj/machinery/power/terminal{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/tcommsat/entrance) diff --git a/maps/polaris-1.dmm b/maps/polaris-1.dmm index 91d28db88f..a6768838a4 100644 --- a/maps/polaris-1.dmm +++ b/maps/polaris-1.dmm @@ -2678,10 +2678,10 @@ "aZz" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "aZA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "aZB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) -"aZC" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai_server_room) -"aZD" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload_foyer) -"aZE" = (/obj/machinery/door/airlock/highsecurity{name = "AI Upload Access"; req_access = list(16)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"aZF" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai_cyborg_station) +"aZC" = (/turf/simulated/wall/r_wall,/area/ai_server_room) +"aZD" = (/turf/simulated/wall/r_wall,/area/ai_upload_foyer) +"aZE" = (/obj/machinery/door/airlock/highsecurity{name = "AI Upload Access"; req_access = list(16)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"aZF" = (/turf/simulated/wall/r_wall,/area/ai_cyborg_station) "aZG" = (/turf/simulated/floor,/area/maintenance/central) "aZH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/maintenance/central) "aZI" = (/turf/simulated/wall,/area/hydroponics/garden) @@ -2715,15 +2715,15 @@ "bak" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bal" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bam" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/primary/central_four) -"ban" = (/obj/machinery/message_server,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_server_room) -"bao" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_server_room) -"bap" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/cyan{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_server_room) -"baq" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/camera/network/command{c_tag = "AI - Upload Foyer"; dir = 2},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bar" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bas" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/structure/sign/kiddieplaque{pixel_y = 32},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bat" = (/obj/structure/bed/chair/office/light{dir = 4},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/cyan{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_cyborg_station) -"bau" = (/obj/structure/table/standard,/obj/item/weapon/phone,/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_cyborg_station) -"bav" = (/obj/machinery/computer/aifixer,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_cyborg_station) +"ban" = (/obj/machinery/message_server,/turf/simulated/floor/bluegrid,/area/ai_server_room) +"bao" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid,/area/ai_server_room) +"bap" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/cyan{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/dark,/area/ai_server_room) +"baq" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/camera/network/command{c_tag = "AI - Upload Foyer"; dir = 2},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bar" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bas" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/structure/sign/kiddieplaque{pixel_y = 32},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bat" = (/obj/structure/bed/chair/office/light{dir = 4},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/cyan{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/dark,/area/ai_cyborg_station) +"bau" = (/obj/structure/table/standard,/obj/item/weapon/phone,/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid,/area/ai_cyborg_station) +"bav" = (/obj/machinery/computer/aifixer,/turf/simulated/floor/bluegrid,/area/ai_cyborg_station) "baw" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 2},/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/grass,/area/hydroponics/garden) "bax" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/maintenance/central) "bay" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hydroponics/garden) @@ -2772,17 +2772,17 @@ "bbp" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bbq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bbr" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) -"bbs" = (/obj/machinery/computer/message_monitor,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_server_room) -"bbt" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_server_room) -"bbu" = (/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_server_room) -"bbv" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/highsecurity{name = "Messaging Server"; req_access = list(16)},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bbw" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bbx" = (/obj/machinery/hologram/holopad,/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bby" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bbz" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/highsecurity{name = "AI Upload Access"; req_access = list(16)},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bbA" = (/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_cyborg_station) -"bbB" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_cyborg_station) -"bbC" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_cyborg_station) +"bbs" = (/obj/machinery/computer/message_monitor,/turf/simulated/floor/tiled/dark,/area/ai_server_room) +"bbt" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai_server_room) +"bbu" = (/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled/dark,/area/ai_server_room) +"bbv" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/highsecurity{name = "Messaging Server"; req_access = list(16)},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bbw" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bbx" = (/obj/machinery/hologram/holopad,/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bby" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bbz" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/highsecurity{name = "AI Upload Access"; req_access = list(16)},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bbA" = (/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled/dark,/area/ai_cyborg_station) +"bbB" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/dark,/area/ai_cyborg_station) +"bbC" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled/dark,/area/ai_cyborg_station) "bbD" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/hydroponics/garden) "bbE" = (/obj/machinery/portable_atmospherics/hydroponics/soil,/turf/simulated/floor/grass,/area/hydroponics/garden) "bbF" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 6},/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/grass,/area/hydroponics/garden) @@ -2821,15 +2821,15 @@ "bcm" = (/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j2"},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bcn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bco" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) -"bcp" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_server_room) -"bcq" = (/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_server_room) -"bcr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_server_room) -"bcs" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/obj/machinery/turretid/stun{control_area = "\improper AI Upload Chamber"; name = "AI Upload turret control"; pixel_x = 6; pixel_y = -24},/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; name = "Private AI Channel"; pixel_x = -12; pixel_y = -21},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bct" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bcu" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload_foyer) -"bcv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_cyborg_station) -"bcw" = (/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_cyborg_station) -"bcx" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_cyborg_station) +"bcp" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/dark,/area/ai_server_room) +"bcq" = (/turf/simulated/floor/tiled/dark,/area/ai_server_room) +"bcr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai_server_room) +"bcs" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/obj/machinery/turretid/stun{control_area = "\improper AI Upload Chamber"; name = "AI Upload turret control"; pixel_x = 6; pixel_y = -24},/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; name = "Private AI Channel"; pixel_x = -12; pixel_y = -21},/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bct" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bcu" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai_upload_foyer) +"bcv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai_cyborg_station) +"bcw" = (/turf/simulated/floor/tiled/dark,/area/ai_cyborg_station) +"bcx" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/ai_cyborg_station) "bcy" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/hydroponics/garden) "bcz" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/hydroponics/garden) "bcA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hydroponics/garden) @@ -2866,14 +2866,14 @@ "bdf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bdg" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bdh" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) -"bdi" = (/obj/machinery/blackbox_recorder,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_server_room) -"bdj" = (/obj/machinery/camera/network/command{c_tag = "AI - Messaging Server"; dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_server_room) -"bdk" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_server_room) -"bdl" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload) -"bdm" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/highsecurity{name = "AI Upload"; req_access = list(16)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) -"bdn" = (/obj/structure/closet/crate{name = "Camera Assembly Crate"},/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_cyborg_station) -"bdo" = (/obj/machinery/recharge_station,/obj/machinery/camera/network/command{c_tag = "AI - Cyborg Station"; dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_cyborg_station) -"bdp" = (/obj/machinery/recharge_station,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_cyborg_station) +"bdi" = (/obj/machinery/blackbox_recorder,/turf/simulated/floor/bluegrid,/area/ai_server_room) +"bdj" = (/obj/machinery/camera/network/command{c_tag = "AI - Messaging Server"; dir = 1},/turf/simulated/floor/bluegrid,/area/ai_server_room) +"bdk" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/dark,/area/ai_server_room) +"bdl" = (/turf/simulated/wall/r_wall,/area/ai_upload) +"bdm" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/highsecurity{name = "AI Upload"; req_access = list(16)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai_upload) +"bdn" = (/obj/structure/closet/crate{name = "Camera Assembly Crate"},/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/dark,/area/ai_cyborg_station) +"bdo" = (/obj/machinery/recharge_station,/obj/machinery/camera/network/command{c_tag = "AI - Cyborg Station"; dir = 1},/turf/simulated/floor/bluegrid,/area/ai_cyborg_station) +"bdp" = (/obj/machinery/recharge_station,/turf/simulated/floor/bluegrid,/area/ai_cyborg_station) "bdq" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hydroponics/garden) "bdr" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/machinery/portable_atmospherics/hydroponics/soil,/obj/machinery/camera/network/civilian{c_tag = "CIV - Park Port"; dir = 4},/turf/simulated/floor/grass,/area/hydroponics/garden) "bds" = (/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (SOUTHWEST)"; icon_state = "spline_fancy"; dir = 10},/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/grass,/area/hydroponics/garden) @@ -2916,9 +2916,9 @@ "bed" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/firealarm{dir = 4; layer = 3.3; pixel_x = 26},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bee" = (/turf/simulated/wall/r_wall,/area/hallway/primary/central_four) "bef" = (/turf/simulated/wall/r_wall,/area/teleporter) -"beg" = (/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) -"beh" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) -"bei" = (/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) +"beg" = (/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/tiled/dark,/area/ai_upload) +"beh" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/dark,/area/ai_upload) +"bei" = (/turf/simulated/floor/tiled/dark,/area/ai_upload) "bej" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hydroponics/garden) "bek" = (/obj/structure/table/glass,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/camera/network/research{c_tag = "SCI - Break Room"; dir = 4},/turf/simulated/floor/wood,/area/rnd/research) "bel" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled,/area/hydroponics/garden) @@ -2954,9 +2954,9 @@ "beP" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/tiled/dark,/area/teleporter) "beQ" = (/obj/machinery/teleport/station,/turf/simulated/floor/tiled/dark,/area/teleporter) "beR" = (/obj/machinery/teleport/hub,/turf/simulated/floor/tiled/dark,/area/teleporter) -"beS" = (/obj/machinery/porta_turret{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"beT" = (/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"beU" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) +"beS" = (/obj/machinery/porta_turret{dir = 8},/turf/simulated/floor/bluegrid,/area/ai_upload) +"beT" = (/turf/simulated/floor/bluegrid,/area/ai_upload) +"beU" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai_upload) "beV" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/beach/water,/area/hydroponics/garden) "beW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/beach/water,/area/hydroponics/garden) "beX" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/flora/ausbushes/reedbush,/turf/simulated/floor/beach/water,/area/hydroponics/garden) @@ -2994,11 +2994,11 @@ "bfD" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/teleporter) "bfE" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/teleporter) "bfF" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/teleporter) -"bfG" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/protectStation,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"bfH" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) -"bfI" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) -"bfJ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) -"bfK" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/reset,/obj/machinery/light{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) +"bfG" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/protectStation,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/ai_upload) +"bfH" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai_upload) +"bfI" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai_upload) +"bfJ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/dark,/area/ai_upload) +"bfK" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/reset,/obj/machinery/light{dir = 4},/turf/simulated/floor/bluegrid,/area/ai_upload) "bfL" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/brflowers,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/newscaster{pixel_x = -30},/turf/simulated/floor/grass,/area/hydroponics/garden) "bfM" = (/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/simulated/floor/tiled,/area/hydroponics/garden) "bfN" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/flora/ausbushes/reedbush,/turf/simulated/floor/beach/water,/area/hydroponics/garden) @@ -3038,9 +3038,9 @@ "bgv" = (/turf/simulated/floor/tiled,/area/teleporter) "bgw" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled,/area/teleporter) "bgx" = (/obj/structure/dispenser{phorontanks = 0},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/dark,/area/teleporter) -"bgy" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/freeform,/obj/machinery/camera/network/command{c_tag = "AI - Upload"; dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"bgz" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) -"bgA" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/nanotrasen,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) +"bgy" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/freeform,/obj/machinery/camera/network/command{c_tag = "AI - Upload"; dir = 4},/turf/simulated/floor/bluegrid,/area/ai_upload) +"bgz" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai_upload) +"bgA" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/nanotrasen,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/bluegrid,/area/ai_upload) "bgB" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/structure/flora/ausbushes/pointybush,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/grass,/area/hydroponics/garden) "bgC" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/beach/water,/area/hydroponics/garden) "bgD" = (/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (NORTHWEST)"; icon_state = "spline_fancy"; dir = 9},/obj/structure/flora/ausbushes/ppflowers,/turf/simulated/floor/grass,/area/hydroponics/garden) @@ -3087,10 +3087,10 @@ "bhs" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bht" = (/obj/machinery/light_switch{pixel_x = -26},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/camera/network/command{c_tag = "COM - Teleporter"; dir = 4},/turf/simulated/floor/tiled,/area/teleporter) "bhu" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/floor/tiled/dark,/area/teleporter) -"bhv" = (/obj/machinery/porta_turret{dir = 8},/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"bhw" = (/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai_upload) -"bhx" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"bhy" = (/obj/machinery/porta_turret{dir = 8},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) +"bhv" = (/obj/machinery/porta_turret{dir = 8},/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/ai_upload) +"bhw" = (/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/ai_upload) +"bhx" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/bluegrid,/area/ai_upload) +"bhy" = (/obj/machinery/porta_turret{dir = 8},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/ai_upload) "bhz" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/obj/machinery/portable_atmospherics/hydroponics/soil,/obj/machinery/camera/network/civilian{c_tag = "CIV - Park Aft"; dir = 1},/turf/simulated/floor/grass,/area/hydroponics/garden) "bhA" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/grass,/area/hydroponics/garden) "bhB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hydroponics/garden) @@ -3142,11 +3142,11 @@ "biv" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/command{name = "Teleport Access"; req_access = list(17)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/teleporter) "biw" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/teleporter) "bix" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/hologram/holopad,/obj/item/device/radio/beacon,/turf/simulated/floor/tiled,/area/teleporter) -"biy" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/asimov,/obj/item/weapon/aiModule/freeformcore,/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Core Modules"; req_access = list(20)},/obj/item/weapon/aiModule/corp,/obj/item/weapon/aiModule/paladin,/obj/item/weapon/aiModule/robocop,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"biz" = (/obj/machinery/computer/aiupload,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"biA" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/flasher{id = "AI"; pixel_x = 22; pixel_y = -24},/obj/item/device/radio/intercom/locked{frequency = 1343; locked_frequency = 1343; name = "Private AI Channel"; pixel_x = 38; pixel_y = -21},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"biB" = (/obj/machinery/computer/borgupload,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"biC" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/oxygen,/obj/item/weapon/aiModule/oneHuman,/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "High-Risk Modules"; req_access = list(20)},/obj/item/weapon/aiModule/purge,/obj/item/weapon/aiModule/antimov,/obj/item/weapon/aiModule/teleporterOffline,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) +"biy" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/asimov,/obj/item/weapon/aiModule/freeformcore,/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Core Modules"; req_access = list(20)},/obj/item/weapon/aiModule/corp,/obj/item/weapon/aiModule/paladin,/obj/item/weapon/aiModule/robocop,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/ai_upload) +"biz" = (/obj/machinery/computer/aiupload,/turf/simulated/floor/bluegrid,/area/ai_upload) +"biA" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/flasher{id = "AI"; pixel_x = 22; pixel_y = -24},/obj/item/device/radio/intercom/locked{frequency = 1343; locked_frequency = 1343; name = "Private AI Channel"; pixel_x = 38; pixel_y = -21},/turf/simulated/floor/bluegrid,/area/ai_upload) +"biB" = (/obj/machinery/computer/borgupload,/turf/simulated/floor/bluegrid,/area/ai_upload) +"biC" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/oxygen,/obj/item/weapon/aiModule/oneHuman,/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "High-Risk Modules"; req_access = list(20)},/obj/item/weapon/aiModule/purge,/obj/item/weapon/aiModule/antimov,/obj/item/weapon/aiModule/teleporterOffline,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/ai_upload) "biD" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/maintenance/central) "biE" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/obj/machinery/portable_atmospherics/hydroponics/soil,/turf/simulated/floor/grass,/area/hydroponics/garden) "biF" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 8},/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/grass,/area/hydroponics/garden) @@ -3218,8 +3218,8 @@ "bjT" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/teleporter) "bjU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/teleporter) "bjV" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/teleporter) -"bjW" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai) -"bjX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/vault/bolted{name = "AI core"; req_access = list(16)},/obj/machinery/door/blast/regular{id = "AICore"; name = "AI core maintenance hatch"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) +"bjW" = (/turf/simulated/wall/r_wall,/area/ai) +"bjX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/vault/bolted{name = "AI core"; req_access = list(16)},/obj/machinery/door/blast/regular{id = "AICore"; name = "AI core maintenance hatch"},/turf/simulated/floor/bluegrid,/area/ai_upload) "bjY" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor,/area/maintenance/central) "bjZ" = (/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (SOUTHWEST)"; icon_state = "spline_fancy"; dir = 10},/obj/structure/flora/ausbushes/ppflowers,/turf/simulated/floor/grass,/area/hydroponics/garden) "bka" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 6},/obj/structure/flora/ausbushes/ppflowers,/turf/simulated/floor/grass,/area/hydroponics/garden) @@ -3291,13 +3291,13 @@ "blo" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "blp" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/teleporter) "blq" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/dark,/area/teleporter) -"blr" = (/obj/structure/flora/pottedplant{icon_state = "plant-09"; name = "Steve"; pixel_y = 15; tag = "icon-plant-09"},/obj/structure/table/standard,/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bls" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"blt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"blu" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"blv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"blw" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"blx" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"blr" = (/obj/structure/flora/pottedplant{icon_state = "plant-09"; name = "Steve"; pixel_y = 15; tag = "icon-plant-09"},/obj/structure/table/standard,/turf/simulated/floor/bluegrid,/area/ai) +"bls" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/bluegrid,/area/ai) +"blt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/bluegrid,/area/ai) +"blu" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/bluegrid,/area/ai) +"blv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/bluegrid,/area/ai) +"blw" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/bluegrid,/area/ai) +"blx" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/bluegrid,/area/ai) "bly" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/structure/flora/ausbushes/palebush,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/grass,/area/hydroponics/garden) "blz" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/beach/water,/area/hydroponics/garden) "blA" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 2},/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/grass,/area/hydroponics/garden) @@ -3365,12 +3365,12 @@ "bmK" = (/obj/machinery/shieldwallgen,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/teleporter) "bmL" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/teleporter) "bmM" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/closet/crate,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled,/area/teleporter) -"bmN" = (/obj/machinery/porta_turret{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bmO" = (/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) -"bmP" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bmQ" = (/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/ai_slipper{icon_state = "motion0"},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) -"bmR" = (/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) -"bmS" = (/obj/machinery/porta_turret{dir = 4},/obj/machinery/light{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"bmN" = (/obj/machinery/porta_turret{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/ai) +"bmO" = (/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/ai) +"bmP" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/bluegrid,/area/ai) +"bmQ" = (/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/ai_slipper{icon_state = "motion0"},/turf/simulated/floor/tiled/dark,/area/ai) +"bmR" = (/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/ai) +"bmS" = (/obj/machinery/porta_turret{dir = 4},/obj/machinery/light{dir = 4},/turf/simulated/floor/bluegrid,/area/ai) "bmT" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/obj/structure/flora/ausbushes/sparsegrass,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/grass,/area/hydroponics/garden) "bmU" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/hydroponics/garden) "bmV" = (/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (NORTHWEST)"; icon_state = "spline_fancy"; dir = 9},/obj/structure/flora/ausbushes/sunnybush,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/grass,/area/hydroponics/garden) @@ -3442,12 +3442,12 @@ "boj" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bok" = (/obj/structure/closet/crate,/obj/item/weapon/crowbar,/turf/simulated/floor/tiled,/area/teleporter) "bol" = (/obj/structure/closet/crate,/turf/simulated/floor/tiled,/area/teleporter) -"bom" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bon" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"boo" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bop" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/door/window/northright{name = "AI Core Door"; req_access = list(16)},/obj/machinery/flasher{id = "AI"; pixel_x = -22; pixel_y = -24},/obj/machinery/turretid/stun{check_synth = 1; name = "AI Chamber turret control"; pixel_x = -38; pixel_y = -24},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"boq" = (/obj/machinery/power/apc/super/critical{dir = 2; is_critical = 1; name = "south bump"; pixel_y = -24},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bor" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"bom" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/ai) +"bon" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/bluegrid,/area/ai) +"boo" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/ai) +"bop" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/door/window/northright{name = "AI Core Door"; req_access = list(16)},/obj/machinery/flasher{id = "AI"; pixel_x = -22; pixel_y = -24},/obj/machinery/turretid/stun{check_synth = 1; name = "AI Chamber turret control"; pixel_x = -38; pixel_y = -24},/turf/simulated/floor/bluegrid,/area/ai) +"boq" = (/obj/machinery/power/apc/super/critical{dir = 2; is_critical = 1; name = "south bump"; pixel_y = -24},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/ai) +"bor" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/bluegrid,/area/ai) "bos" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/corner/paleblue{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/reception) "bot" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/central_two) "bou" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/disposalpipe/segment,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 26},/turf/simulated/floor/tiled,/area/hallway/primary/central_two) @@ -3515,14 +3515,14 @@ "bpE" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/white,/area/rnd/lab) "bpF" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/white,/area/rnd/lab) "bpG" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/micro_laser,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/effect/floor_decal/corner/purple{dir = 6},/turf/simulated/floor/tiled/white,/area/rnd/lab) -"bpH" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{dir = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = 20},/obj/item/device/radio/intercom{broadcasting = 0; dir = 2; frequency = 1343; name = "Private Channel"; pixel_x = 0; pixel_y = -21},/obj/item/device/radio/intercom{broadcasting = 1; dir = 8; listening = 1; name = "Common Channel"; pixel_x = -21; pixel_y = 0},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bpI" = (/obj/machinery/door/window{dir = 4; name = "AI Core Door"; req_access = list(16)},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bpJ" = (/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) -"bpK" = (/turf/simulated/wall,/area/turret_protected/ai) -"bpL" = (/obj/effect/landmark/start{name = "AI"},/obj/structure/cable/cyan,/obj/item/device/radio/intercom{broadcasting = 1; listening = 1; name = "Common Channel"; pixel_y = -21},/obj/item/device/radio/intercom{dir = 4; listening = 0; name = "Custom Channel"; pixel_x = 21; pixel_y = -10},/obj/item/device/radio/intercom{broadcasting = 0; dir = 8; frequency = 1343; name = "Private Channel"; pixel_x = -21; pixel_y = -10},/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for the AI core maintenance door."; id = "AICore"; name = "AI Maintenance Hatch"; pixel_x = -17; pixel_y = -25; req_access = list(16)},/obj/machinery/requests_console{department = "AI"; departmentType = 5; pixel_x = 30; pixel_y = -32},/obj/machinery/newscaster/security_unit{pixel_x = -32; pixel_y = -32},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bpM" = (/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) -"bpN" = (/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "AI Core Door"; req_access = list(16)},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bpO" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{dir = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = 21},/obj/item/device/radio/intercom{broadcasting = 0; frequency = 1343; name = "Private Channel"; pixel_x = 0; pixel_y = -21},/obj/item/device/radio/intercom{broadcasting = 1; dir = 4; listening = 1; name = "Common Channel"; pixel_x = 21; pixel_y = 0},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"bpH" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{dir = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = 20},/obj/item/device/radio/intercom{broadcasting = 0; dir = 2; frequency = 1343; name = "Private Channel"; pixel_x = 0; pixel_y = -21},/obj/item/device/radio/intercom{broadcasting = 1; dir = 8; listening = 1; name = "Common Channel"; pixel_x = -21; pixel_y = 0},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/bluegrid,/area/ai) +"bpI" = (/obj/machinery/door/window{dir = 4; name = "AI Core Door"; req_access = list(16)},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/bluegrid,/area/ai) +"bpJ" = (/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/dark,/area/ai) +"bpK" = (/turf/simulated/wall,/area/ai) +"bpL" = (/obj/effect/landmark/start{name = "AI"},/obj/structure/cable/cyan,/obj/item/device/radio/intercom{broadcasting = 1; listening = 1; name = "Common Channel"; pixel_y = -21},/obj/item/device/radio/intercom{dir = 4; listening = 0; name = "Custom Channel"; pixel_x = 21; pixel_y = -10},/obj/item/device/radio/intercom{broadcasting = 0; dir = 8; frequency = 1343; name = "Private Channel"; pixel_x = -21; pixel_y = -10},/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for the AI core maintenance door."; id = "AICore"; name = "AI Maintenance Hatch"; pixel_x = -17; pixel_y = -25; req_access = list(16)},/obj/machinery/requests_console{department = "AI"; departmentType = 5; pixel_x = 30; pixel_y = -32},/obj/machinery/newscaster/security_unit{pixel_x = -32; pixel_y = -32},/turf/simulated/floor/bluegrid,/area/ai) +"bpM" = (/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled/dark,/area/ai) +"bpN" = (/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "AI Core Door"; req_access = list(16)},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/bluegrid,/area/ai) +"bpO" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{dir = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = 21},/obj/item/device/radio/intercom{broadcasting = 0; frequency = 1343; name = "Private Channel"; pixel_x = 0; pixel_y = -21},/obj/item/device/radio/intercom{broadcasting = 1; dir = 4; listening = 1; name = "Common Channel"; pixel_x = 21; pixel_y = 0},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/bluegrid,/area/ai) "bpP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/primary/central_two) "bpQ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/medical/surgeryobs) "bpR" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/bed/chair{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/medical/surgeryobs) @@ -3608,10 +3608,10 @@ "brt" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/disposalpipe/segment,/obj/machinery/camera/network/northern_star{c_tag = "Hall - Central Primary Port Fore 2"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "bru" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) "brv" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled,/area/hallway/primary/central_four) -"brw" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"brx" = (/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) -"bry" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) -"brz" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"brw" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/bluegrid,/area/ai) +"brx" = (/turf/simulated/floor/tiled/dark,/area/ai) +"bry" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/dark,/area/ai) +"brz" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/bluegrid,/area/ai) "brA" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/flora/pottedplant{icon_state = "plant-22"},/turf/simulated/floor/wood,/area/rnd/research) "brB" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 5},/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/grass,/area/hydroponics/garden) "brC" = (/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (NORTHWEST)"; icon_state = "spline_fancy"; dir = 9},/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/grass,/area/hydroponics/garden) @@ -3680,11 +3680,11 @@ "bsN" = (/obj/machinery/r_n_d/circuit_imprinter,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/simulated/floor/tiled,/area/rnd/lab) "bsO" = (/obj/effect/floor_decal/corner/purple{dir = 6},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/white,/area/rnd/lab) "bsP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/lab) -"bsQ" = (/obj/machinery/porta_turret{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bsR" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bsS" = (/obj/machinery/power/smes/buildable{charge = 5e+006; input_attempt = 1; input_level = 200000; output_level = 200000},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/machinery/camera/xray/command{c_tag = "AI - Core"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bsT" = (/obj/machinery/power/sensor{name = "Powernet Sensor - AI Subgrid"; name_tag = "AI Subgrid"},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bsU" = (/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/dark,/area/turret_protected/ai) +"bsQ" = (/obj/machinery/porta_turret{dir = 4},/turf/simulated/floor/bluegrid,/area/ai) +"bsR" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/bluegrid,/area/ai) +"bsS" = (/obj/machinery/power/smes/buildable{charge = 5e+006; input_attempt = 1; input_level = 200000; output_level = 200000},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/machinery/camera/xray/command{c_tag = "AI - Core"},/turf/simulated/floor/bluegrid,/area/ai) +"bsT" = (/obj/machinery/power/sensor{name = "Powernet Sensor - AI Subgrid"; name_tag = "AI Subgrid"},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/bluegrid,/area/ai) +"bsU" = (/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/dark,/area/ai) "bsV" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 5},/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/grass,/area/hydroponics/garden) "bsW" = (/obj/machinery/door/airlock/medical{id_tag = "surgery_observation"; name = "Observation Room"; req_access = newlist()},/obj/machinery/holosign/surgery,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/medical/surgeryobs) "bsX" = (/turf/simulated/wall,/area/medical/medbay_primary_storage) @@ -3751,10 +3751,10 @@ "bug" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled/white,/area/rnd/lab) "buh" = (/obj/effect/floor_decal/corner/purple{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/rnd/lab) "bui" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/lab) -"buj" = (/obj/machinery/light,/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"buk" = (/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bul" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bum" = (/obj/machinery/porta_turret{dir = 4},/obj/machinery/flasher{id = "AI"; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"buj" = (/obj/machinery/light,/turf/simulated/floor/bluegrid,/area/ai) +"buk" = (/turf/simulated/floor/bluegrid,/area/ai) +"bul" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/bluegrid,/area/ai) +"bum" = (/obj/machinery/porta_turret{dir = 4},/obj/machinery/flasher{id = "AI"; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/bluegrid,/area/ai) "bun" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_two) "buo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "medbayquar"; name = "Medbay Emergency Lockdown Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/reception) "bup" = (/obj/structure/table/standard,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/crew_quarters/cafeteria) @@ -3823,7 +3823,7 @@ "bvA" = (/obj/effect/floor_decal/corner/purple{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/lab) "bvB" = (/obj/structure/bed/chair/office/light,/obj/effect/floor_decal/corner/purple{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor/tiled/white,/area/rnd/lab) "bvC" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/clipboard,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/effect/floor_decal/corner/purple/full{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/rnd/lab) -"bvD" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/turret_protected/ai) +"bvD" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/ai) "bvE" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/crew_quarters/cafeteria) "bvF" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/flora/pottedplant{icon_state = "plant-22"},/turf/simulated/floor/tiled/dark,/area/hallway/primary/central_two) "bvG" = (/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/obj/structure/flora/ausbushes/brflowers,/obj/machinery/light,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/grass,/area/hydroponics/garden) diff --git a/maps/polaris-3.dmm b/maps/polaris-3.dmm index 86a1985ede..6f62e83d81 100644 --- a/maps/polaris-3.dmm +++ b/maps/polaris-3.dmm @@ -113,16 +113,16 @@ "ci" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/camera/network/telecom{c_tag = "Telecoms - Solar North"; dir = 1},/turf/simulated/floor/airless,/area/space) "cj" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/space) "ck" = (/turf/simulated/wall/r_wall,/area/space) -"cl" = (/turf/simulated/wall/r_wall,/area/turret_protected/tcomsat) +"cl" = (/turf/simulated/wall/r_wall,/area/tcomsat) "cm" = (/turf/simulated/wall/r_wall,/area/tcommsat/computer) -"cn" = (/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) -"co" = (/turf/space,/area/turret_protected/tcomsat) -"cp" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/camera/network/telecom{c_tag = "Telecoms West Wing North"},/turf/space,/area/turret_protected/tcomsat) -"cq" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cr" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 6; icon_state = "intact"; tag = "icon-intact-f (SOUTHEAST)"},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cs" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/valve/digital/open{dir = 4; name = "Mixed Air Outlet Valve"},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"ct" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/meter,/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cu" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) +"cn" = (/obj/structure/lattice,/turf/space,/area/tcomsat) +"co" = (/turf/space,/area/tcomsat) +"cp" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/camera/network/telecom{c_tag = "Telecoms West Wing North"},/turf/space,/area/tcomsat) +"cq" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/plating,/area/tcomsat) +"cr" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 6; icon_state = "intact"; tag = "icon-intact-f (SOUTHEAST)"},/turf/simulated/floor/plating,/area/tcomsat) +"cs" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/valve/digital/open{dir = 4; name = "Mixed Air Outlet Valve"},/turf/simulated/floor/plating,/area/tcomsat) +"ct" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/meter,/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/turf/simulated/floor/plating,/area/tcomsat) +"cu" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/tcomsat) "cv" = (/turf/simulated/floor/airless,/area/tcommsat/computer) "cw" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/tcommsat/computer) "cx" = (/obj/structure/bed,/obj/item/weapon/bedsheet/green,/turf/simulated/floor/tiled,/area/tcommsat/computer) @@ -130,13 +130,13 @@ "cz" = (/obj/structure/bed,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor/tiled,/area/tcommsat/computer) "cA" = (/obj/structure/bed,/obj/item/weapon/bedsheet/red,/turf/simulated/floor/tiled,/area/tcommsat/computer) "cB" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) -"cC" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/turret_protected/tcomsat) -"cD" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cE" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cG" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cH" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cI" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomsat) +"cC" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/tcomsat) +"cD" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/plating,/area/tcomsat) +"cE" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor/plating,/area/tcomsat) +"cF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/tcomsat) +"cG" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating,/area/tcomsat) +"cH" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/tcomsat) +"cI" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat) "cJ" = (/obj/structure/table/standard,/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/obj/machinery/light{dir = 1},/obj/machinery/camera/network/telecom{c_tag = "Telecoms Main Computer Room"},/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) "cK" = (/obj/structure/filingcabinet,/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) "cL" = (/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) @@ -145,13 +145,13 @@ "cO" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp,/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) "cP" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -29; pixel_y = 0},/turf/simulated/floor/tiled,/area/tcommsat/computer) "cQ" = (/obj/machinery/computer/telecomms/monitor{network = "tcommsat"},/obj/item/device/radio/intercom{name = "General Listening Channel"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) -"cR" = (/obj/structure/window/reinforced{dir = 4},/turf/space,/area/turret_protected/tcomsat) -"cS" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cT" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cV" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cX" = (/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomsat) +"cR" = (/obj/structure/window/reinforced{dir = 4},/turf/space,/area/tcomsat) +"cS" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/tcomsat) +"cT" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/plating,/area/tcomsat) +"cU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/tcomsat) +"cV" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcomsat) +"cW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet,/turf/simulated/floor/plating,/area/tcomsat) +"cX" = (/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat) "cY" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/turf/simulated/floor/tiled,/area/tcommsat/computer) "cZ" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/tiled,/area/tcommsat/computer) "da" = (/obj/structure/bed/chair/office/dark{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/tiled,/area/tcommsat/computer) @@ -159,12 +159,12 @@ "dc" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/turf/simulated/floor/tiled,/area/tcommsat/computer) "dd" = (/obj/structure/bed,/obj/item/weapon/bedsheet/orange,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/tcommsat/computer) "de" = (/obj/machinery/firealarm{dir = 4; pixel_x = 26},/turf/simulated/floor/tiled,/area/tcommsat/computer) -"df" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) -"dg" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) -"dh" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"di" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/turret_protected/tcomsat) -"dj" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/space,/area/turret_protected/tcomsat) -"dk" = (/obj/structure/window/reinforced,/turf/space,/area/turret_protected/tcomsat) +"df" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/tcomsat) +"dg" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/tcomsat) +"dh" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/tcomsat) +"di" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat) +"dj" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat) +"dk" = (/obj/structure/window/reinforced,/turf/space,/area/tcomsat) "dl" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/tcommsat/computer) "dm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled,/area/tcommsat/computer) "dn" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/tcommsat/computer) @@ -176,11 +176,11 @@ "dt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled,/area/tcommsat/computer) "du" = (/obj/structure/bed/chair{dir = 8},/obj/structure/sign/deathsposal{pixel_x = 32},/turf/simulated/floor/tiled,/area/tcommsat/computer) "dv" = (/obj/structure/table/standard,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor/tiled,/area/tcommsat/computer) -"dw" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"dx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"dy" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"dz" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"dA" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) +"dw" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/tcomsat) +"dx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/tcomsat) +"dy" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/tcomsat) +"dz" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/tcomsat) +"dA" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/tcomsat) "dB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/hatch{name = "Telecoms Control Room"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcommsat/computer) "dC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/tcommsat/computer) "dD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/tcommsat/computer) @@ -198,10 +198,10 @@ "dP" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/space) "dQ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/airless,/area/space) "dR" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/airless,/area/space) -"dS" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"dT" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/turret_protected/tcomsat) -"dU" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/light,/turf/space,/area/turret_protected/tcomsat) -"dV" = (/obj/structure/window/reinforced{dir = 1},/turf/space,/area/turret_protected/tcomsat) +"dS" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat) +"dT" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat) +"dU" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/light,/turf/space,/area/tcomsat) +"dV" = (/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat) "dW" = (/obj/machinery/light{dir = 8},/obj/structure/table/standard,/obj/item/device/multitool,/obj/structure/sign/electricshock{pixel_x = -32},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) "dX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) "dY" = (/obj/machinery/atmospherics/unary/freezer{dir = 2; icon_state = "freezer_1"; set_temperature = 73; use_power = 1},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer) @@ -210,19 +210,19 @@ "eb" = (/obj/machinery/airlock_sensor{frequency = 1381; id_tag = "server_access_sensor"; pixel_x = 12; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1381; id_tag = "server_access_pump"},/obj/machinery/embedded_controller/radio/airlock/advanced_airlock_controller{frequency = 1381; id_tag = "server_access_airlock"; name = "Server Access Airlock"; pixel_x = 0; pixel_y = 25; tag_airpump = "server_access_pump"; tag_chamber_sensor = "server_access_sensor"; tag_exterior_door = "server_access_outer"; tag_exterior_sensor = "server_access_ex_sensor"; tag_interior_door = "server_access_inner"; tag_interior_sensor = "server_access_in_sensor"; tag_secure = 1},/turf/simulated/floor/plating,/area/tcommsat/chamber) "ec" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/tcommsat/chamber) "ed" = (/obj/machinery/door/airlock/hatch{name = "Telecoms Lounge"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcommsat/computer) -"ee" = (/obj/machinery/porta_turret/stationary,/turf/simulated/floor/airless,/area/turret_protected/tcomsat) -"ef" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) +"ee" = (/obj/machinery/porta_turret/stationary,/turf/simulated/floor/airless,/area/tcomsat) +"ef" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/space,/area/tcomsat) "eg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 6},/turf/simulated/floor/plating,/area/tcommsat/chamber) "eh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/black,/turf/simulated/floor/plating,/area/tcommsat/chamber) "ei" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/chamber) "ej" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/chamber) "ek" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 10},/turf/simulated/floor/plating,/area/tcommsat/chamber) "el" = (/obj/machinery/door/airlock/maintenance_hatch{frequency = 1381; icon_state = "door_locked"; id_tag = "server_access_inner"; locked = 1; name = "Telecoms Server Access"; req_access = list(61)},/turf/simulated/floor/plating,/area/tcommsat/chamber) -"em" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"en" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) +"em" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/tcomsat) +"en" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/tcomsat) "eo" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/space) -"ep" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"eq" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/space,/area/turret_protected/tcomsat) +"ep" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat) +"eq" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/space,/area/tcomsat) "er" = (/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "es" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "et" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/black,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) @@ -234,42 +234,42 @@ "ez" = (/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "eA" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 32},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "eB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/space) -"eC" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"eD" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/space,/area/turret_protected/tcomsat) +"eC" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat) +"eD" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/space,/area/tcomsat) "eE" = (/obj/machinery/atmospherics/pipe/simple/hidden/black,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"eF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"eG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"eH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"eI" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) +"eF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat) +"eG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat) +"eH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat) +"eI" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat) "eJ" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/space) "eK" = (/obj/machinery/power/solar,/obj/structure/cable/yellow,/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/space) -"eL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"eM" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/space,/area/turret_protected/tcomsat) +"eL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat) +"eM" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/space,/area/tcomsat) "eN" = (/obj/machinery/telecomms/server/presets/service,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "eO" = (/obj/machinery/telecomms/server/presets/supply,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "eP" = (/obj/machinery/telecomms/server/presets/unused,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"eQ" = (/obj/structure/table/rack,/obj/item/weapon/circuitboard/telecomms/processor,/obj/item/weapon/circuitboard/telecomms/processor,/obj/item/weapon/circuitboard/telecomms/receiver,/obj/item/weapon/circuitboard/telecomms/server,/obj/item/weapon/circuitboard/telecomms/server,/obj/item/weapon/circuitboard/telecomms/bus,/obj/item/weapon/circuitboard/telecomms/bus,/obj/item/weapon/circuitboard/telecomms/broadcaster,/obj/item/weapon/circuitboard/telecomms/exonet_node,/turf/simulated/floor,/area/turret_protected/tcomsat) +"eQ" = (/obj/structure/table/rack,/obj/item/weapon/circuitboard/telecomms/processor,/obj/item/weapon/circuitboard/telecomms/processor,/obj/item/weapon/circuitboard/telecomms/receiver,/obj/item/weapon/circuitboard/telecomms/server,/obj/item/weapon/circuitboard/telecomms/server,/obj/item/weapon/circuitboard/telecomms/bus,/obj/item/weapon/circuitboard/telecomms/bus,/obj/item/weapon/circuitboard/telecomms/broadcaster,/obj/item/weapon/circuitboard/telecomms/exonet_node,/turf/simulated/floor,/area/tcomsat) "eR" = (/obj/machinery/telecomms/server/presets/common,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "eS" = (/obj/machinery/telecomms/server/presets/engineering,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"eT" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/space,/area/turret_protected/tcomsat) -"eU" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"eV" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"eW" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/turf/simulated/floor,/area/turret_protected/tcomsat) -"eX" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/camera/network/telecom{c_tag = "Telecoms Storage"},/turf/simulated/floor,/area/turret_protected/tcomsat) +"eT" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/space,/area/tcomsat) +"eU" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/tcomsat) +"eV" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat) +"eW" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/turf/simulated/floor,/area/tcomsat) +"eX" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/camera/network/telecom{c_tag = "Telecoms Storage"},/turf/simulated/floor,/area/tcomsat) "eY" = (/obj/machinery/exonet_node,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"eZ" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/camera/network/telecom{c_tag = "Telecoms West Wing Central"; dir = 8},/turf/space,/area/turret_protected/tcomsat) -"fa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"fb" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/space,/area/turret_protected/tcomsat) -"fc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"fd" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomsat) -"fe" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/machinery/firealarm{dir = 4; pixel_x = 26},/turf/simulated/floor,/area/turret_protected/tcomsat) -"ff" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/turf/simulated/floor,/area/turret_protected/tcomsat) -"fg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/turret_protected/tcomsat) +"eZ" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/camera/network/telecom{c_tag = "Telecoms West Wing Central"; dir = 8},/turf/space,/area/tcomsat) +"fa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat) +"fb" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/space,/area/tcomsat) +"fc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/tcomsat) +"fd" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat) +"fe" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/machinery/firealarm{dir = 4; pixel_x = 26},/turf/simulated/floor,/area/tcomsat) +"ff" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/turf/simulated/floor,/area/tcomsat) +"fg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/tcomsat) "fh" = (/obj/machinery/telecomms/hub/preset,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fi" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/airless,/area/space) "fj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/space) "fk" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/camera/network/telecom{c_tag = "Telecoms - Solar West"; dir = 8},/turf/simulated/floor/airless,/area/space) -"fl" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 4},/turf/space,/area/turret_protected/tcomsat) +"fl" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 4},/turf/space,/area/tcomsat) "fm" = (/obj/structure/sign/nosmoking_2{pixel_x = -32; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fn" = (/obj/machinery/telecomms/bus/preset_two,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fo" = (/obj/machinery/telecomms/processor/preset_two,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) @@ -279,27 +279,27 @@ "fs" = (/obj/machinery/telecomms/relay/preset/station,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "ft" = (/obj/machinery/telecomms/processor/preset_four,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fu" = (/obj/structure/sign/nosmoking_2{pixel_x = 32; pixel_y = 0},/obj/machinery/light{dir = 4},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"fv" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/space,/area/turret_protected/tcomsat) -"fw" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) +"fv" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/space,/area/tcomsat) +"fw" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled,/area/tcomsat) "fx" = (/obj/machinery/telecomms/receiver/preset_right,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"fy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/turret_protected/tcomsat) -"fz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor,/area/turret_protected/tcomsat) -"fA" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 29; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/turret_protected/tcomsat) +"fy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/tcomsat) +"fz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor,/area/tcomsat) +"fA" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 29; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/tcomsat) "fB" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/camera/network/telecom{c_tag = "Telecoms - Solar East"; dir = 4},/turf/simulated/floor/airless,/area/space) "fC" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/space) "fD" = (/obj/machinery/telecomms/processor/preset_one,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fE" = (/obj/machinery/telecomms/bus/preset_one,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fF" = (/obj/machinery/telecomms/processor/preset_three,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fG" = (/obj/machinery/telecomms/bus/preset_three,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"fH" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomsat) -"fI" = (/obj/machinery/door/airlock/maintenance_hatch{name = "Telecoms Storage"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"fJ" = (/turf/simulated/floor,/area/turret_protected/tcomsat) -"fK" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/turret_protected/tcomsat) -"fL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"fM" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/machinery/alarm{dir = 8; pixel_x = 25; pixel_y = 0},/turf/simulated/floor,/area/turret_protected/tcomsat) -"fN" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/turf/simulated/floor,/area/turret_protected/tcomsat) -"fO" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/turf/simulated/floor,/area/turret_protected/tcomsat) -"fP" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/turf/simulated/floor,/area/turret_protected/tcomsat) +"fH" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat) +"fI" = (/obj/machinery/door/airlock/maintenance_hatch{name = "Telecoms Storage"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcomsat) +"fJ" = (/turf/simulated/floor,/area/tcomsat) +"fK" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/tcomsat) +"fL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat) +"fM" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/machinery/alarm{dir = 8; pixel_x = 25; pixel_y = 0},/turf/simulated/floor,/area/tcomsat) +"fN" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/turf/simulated/floor,/area/tcomsat) +"fO" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/turf/simulated/floor,/area/tcomsat) +"fP" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/turf/simulated/floor,/area/tcomsat) "fQ" = (/obj/machinery/telecomms/server/presets/medical,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fR" = (/obj/machinery/telecomms/server/presets/science,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fS" = (/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 9},/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) @@ -308,43 +308,43 @@ "fV" = (/obj/machinery/telecomms/server/presets/command,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fW" = (/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 10},/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "fX" = (/obj/machinery/telecomms/server/presets/security,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"fY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) +"fY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat) "fZ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 140; external_pressure_bound_default = 140; icon_state = "map_vent_out"; use_power = 1; pressure_checks = 0; pressure_checks_default = 0},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "ga" = (/obj/machinery/light,/obj/machinery/camera/network/telecom{c_tag = "Telecoms Central Compartment South"; dir = 1},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "gb" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; external_pressure_bound_default = 0; icon_state = "map_vent_in"; initialize_directions = 1; internal_pressure_bound = 4000; internal_pressure_bound_default = 4000; use_power = 1; pressure_checks = 2; pressure_checks_default = 2; pump_direction = 0},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"gc" = (/obj/machinery/porta_turret{dir = 6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled/dark,/area/turret_protected/tcomfoyer) -"gd" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/space,/area/turret_protected/tcomsat) -"ge" = (/obj/structure/window/reinforced,/obj/structure/lattice,/obj/machinery/light{dir = 1},/turf/space,/area/turret_protected/tcomsat) -"gf" = (/turf/simulated/wall/r_wall,/area/turret_protected/tcomfoyer) -"gg" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/tiled/dark,/area/turret_protected/tcomfoyer) -"gh" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/turretid/lethal{ailock = 1; check_synth = 1; control_area = "\improper Telecoms Satellite"; desc = "A firewall prevents AIs from interacting with this device."; name = "Telecoms lethal turret control"; pixel_y = 29; req_access = list(61)},/obj/machinery/camera/network/telecom{c_tag = "Telecoms Foyer"},/turf/simulated/floor/tiled/dark,/area/turret_protected/tcomfoyer) -"gi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled/dark,/area/turret_protected/tcomfoyer) -"gj" = (/obj/machinery/porta_turret{dir = 10},/turf/simulated/floor/tiled/dark,/area/turret_protected/tcomfoyer) -"gk" = (/turf/simulated/floor/tiled,/area/turret_protected/tcomfoyer) -"gl" = (/turf/simulated/floor/tiled/dark,/area/turret_protected/tcomfoyer) -"gm" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/tiled/dark,/area/turret_protected/tcomfoyer) -"gn" = (/obj/structure/window/reinforced,/obj/machinery/light{dir = 1},/turf/space,/area/turret_protected/tcomsat) -"go" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/space,/area/turret_protected/tcomsat) -"gp" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"gq" = (/obj/machinery/door/airlock/hatch{name = "Telecoms West Wing"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/turret_protected/tcomfoyer) -"gr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/turret_protected/tcomfoyer) -"gs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/turret_protected/tcomfoyer) -"gt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/turret_protected/tcomfoyer) -"gu" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/turret_protected/tcomsat) -"gv" = (/obj/machinery/camera/network/telecom{c_tag = "Telecoms East Wing South"; dir = 8},/turf/space,/area/turret_protected/tcomsat) -"gw" = (/obj/machinery/camera/network/telecom{c_tag = "Telecoms West Wing South"; dir = 4},/turf/space,/area/turret_protected/tcomsat) -"gx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) -"gy" = (/obj/machinery/door/airlock/hatch{name = "Telecoms East Wing"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/turret_protected/tcomfoyer) -"gz" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/dark,/area/turret_protected/tcomfoyer) -"gA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/turret_protected/tcomfoyer) +"gc" = (/obj/machinery/porta_turret{dir = 6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled/dark,/area/tcomfoyer) +"gd" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/space,/area/tcomsat) +"ge" = (/obj/structure/window/reinforced,/obj/structure/lattice,/obj/machinery/light{dir = 1},/turf/space,/area/tcomsat) +"gf" = (/turf/simulated/wall/r_wall,/area/tcomfoyer) +"gg" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/tiled/dark,/area/tcomfoyer) +"gh" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/turretid/lethal{ailock = 1; check_synth = 1; control_area = "\improper Telecoms Satellite"; desc = "A firewall prevents AIs from interacting with this device."; name = "Telecoms lethal turret control"; pixel_y = 29; req_access = list(61)},/obj/machinery/camera/network/telecom{c_tag = "Telecoms Foyer"},/turf/simulated/floor/tiled/dark,/area/tcomfoyer) +"gi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled/dark,/area/tcomfoyer) +"gj" = (/obj/machinery/porta_turret{dir = 10},/turf/simulated/floor/tiled/dark,/area/tcomfoyer) +"gk" = (/turf/simulated/floor/tiled,/area/tcomfoyer) +"gl" = (/turf/simulated/floor/tiled/dark,/area/tcomfoyer) +"gm" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/tiled/dark,/area/tcomfoyer) +"gn" = (/obj/structure/window/reinforced,/obj/machinery/light{dir = 1},/turf/space,/area/tcomsat) +"go" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/space,/area/tcomsat) +"gp" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/tcomsat) +"gq" = (/obj/machinery/door/airlock/hatch{name = "Telecoms West Wing"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcomfoyer) +"gr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/tcomfoyer) +"gs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/tcomfoyer) +"gt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/tcomfoyer) +"gu" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/tcomsat) +"gv" = (/obj/machinery/camera/network/telecom{c_tag = "Telecoms East Wing South"; dir = 8},/turf/space,/area/tcomsat) +"gw" = (/obj/machinery/camera/network/telecom{c_tag = "Telecoms West Wing South"; dir = 4},/turf/space,/area/tcomsat) +"gx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/tcomsat) +"gy" = (/obj/machinery/door/airlock/hatch{name = "Telecoms East Wing"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcomfoyer) +"gz" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/dark,/area/tcomfoyer) +"gA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/tcomfoyer) "gB" = (/turf/simulated/wall/r_wall,/area/tcommsat/entrance) -"gC" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark,/area/turret_protected/tcomfoyer) -"gD" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/turret_protected/tcomfoyer) +"gC" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark,/area/tcomfoyer) +"gD" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/tcomfoyer) "gE" = (/turf/simulated/floor/tiled,/area/tcommsat/entrance) "gF" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/tiled,/area/tcommsat/entrance) "gG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/tcommsat/entrance) "gH" = (/obj/machinery/turretid/stun{ailock = 1; check_synth = 1; control_area = "\improper Telecoms Foyer"; desc = "A firewall prevents AIs from interacting with this device."; name = "Telecoms Foyer turret control"; pixel_y = 29; req_access = list(61)},/turf/simulated/floor/tiled,/area/tcommsat/entrance) -"gI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/hatch{name = "Telecoms Satellite"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/turret_protected/tcomfoyer) +"gI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/hatch{name = "Telecoms Satellite"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcomfoyer) "gJ" = (/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance) "gK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcommsat/entrance) "gL" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/tcommsat/entrance) diff --git a/polaris.dme b/polaris.dme index d29063995c..e8d08c4d96 100644 --- a/polaris.dme +++ b/polaris.dme @@ -406,7 +406,6 @@ #include "code\game\machinery\syndicatebeacon.dm" #include "code\game\machinery\teleporter.dm" #include "code\game\machinery\turret_control.dm" -#include "code\game\machinery\turrets.dm" #include "code\game\machinery\vending.dm" #include "code\game\machinery\wall_frames.dm" #include "code\game\machinery\washing_machine.dm" From 4cb95b7f38ba18a2f24a04379f72c971ec1f266d Mon Sep 17 00:00:00 2001 From: Neerti Date: Tue, 15 Mar 2016 01:44:44 -0400 Subject: [PATCH 2/7] A large amount of changeling changes. Round-end report now displays a history of powers the changeling had bought for that round, including resets. Renames purchasedpowers to purchased_powers because I like my underscores. Changelings can always be absorbed by other changelings if the body is husked. Reviving clears the husked status, fixing an exploit where a ling could be husked and alive, and be unabsorbable. A stronger variant of the armblade is available if one also buys recursive enhancement (totaling 5 points). The stronger variant has 30 armor pen, but no additional effects. A stronger varient of the electric hand is available for those who buy recursive enhancement, which does more halloss and costs less chemicals to channel electricity, also costing 5 points. Normal electric hand made a little stronger when using it by grabbing someone, since grabbing is harder. Cryosting description now says it has a cooldown. Delayed toxin sting also now says it has a cooldown. Changes log produced when using finger-lockpick. Endoarmor description made slightly more accurate, for those which may not have a base health of 100. Enfeebling string now reduces a person's health by a percentage, so teshari are not instantly killed by a recursive enhanced version of it. Enfeebling sting now has a 5 minute cooldown as well. Replaces some sleep numbers with X SECONDS/SECOND to make it more clear how long it is. Transforming will wipe your flavor text, instead of keeping your previous identity's flavor text. --- code/game/antagonist/station/changeling.dm | 12 ++++- .../gamemodes/changeling/changeling_powers.dm | 9 ++-- .../gamemodes/changeling/modularchangling.dm | 9 ++-- .../gamemodes/changeling/powers/absorb.dm | 11 ++--- .../gamemodes/changeling/powers/armblade.dm | 19 ++++++-- .../changeling/powers/bioelectrogenesis.dm | 44 ++++++++++++------- .../gamemodes/changeling/powers/cryo_sting.dm | 3 +- .../changeling/powers/delayed_toxin_sting.dm | 7 +-- .../changeling/powers/electric_lockpick.dm | 3 +- .../gamemodes/changeling/powers/endoarmor.dm | 2 +- .../changeling/powers/enfeebling_string.dm | 17 ++++--- .../gamemodes/changeling/powers/fleshmend.dm | 4 +- .../gamemodes/changeling/powers/respec.dm | 4 +- .../gamemodes/changeling/powers/revive.dm | 5 ++- .../gamemodes/changeling/powers/transform.dm | 2 + 15 files changed, 103 insertions(+), 48 deletions(-) diff --git a/code/game/antagonist/station/changeling.dm b/code/game/antagonist/station/changeling.dm index dad7ed81a2..044e968f49 100644 --- a/code/game/antagonist/station/changeling.dm +++ b/code/game/antagonist/station/changeling.dm @@ -73,4 +73,14 @@ if(player.current.client.prefs.organ_data["torso"] == "cyborg") // Full synthetic. return 0 return 1 - return 0 \ No newline at end of file + return 0 + +/datum/antagonist/changeling/print_player_full(var/datum/mind/ply) + var/text = print_player_lite(ply) + + if(ply.changeling) + var/datum/changeling/ling_datum = ply.changeling + text += " (had [ling_datum.max_geneticpoints] genomes)" + text += "
Bought [english_list(ling_datum.purchased_powers_history)]." + + return text diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index 566cad6ace..84d6bb8536 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -14,11 +14,12 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E var/isabsorbing = 0 var/geneticpoints = 5 var/max_geneticpoints = 5 - var/purchasedpowers = list() + var/list/purchased_powers = list() var/mimicing = "" var/cloaked = 0 var/armor_deployed = 0 //This is only used for changeling_generic_equip_all_slots() at the moment. var/recursive_enhancement = 0 //Used to power up other abilities from the ling power with the same name. + var/list/purchased_powers_history = list() //Used for round-end report, includes respec uses too. /datum/changeling/New(var/gender=FEMALE) ..() @@ -60,10 +61,10 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E // Code to auto-purchase free powers. for(var/datum/power/changeling/P in powerinstances) if(!P.genomecost) // Is it free? - if(!(P in mind.changeling.purchasedpowers)) // Do we not have it already? + if(!(P in mind.changeling.purchased_powers)) // Do we not have it already? mind.changeling.purchasePower(mind, P.name, 0)// Purchase it. Don't remake our verbs, we're doing it after this. - for(var/datum/power/changeling/P in mind.changeling.purchasedpowers) + for(var/datum/power/changeling/P in mind.changeling.purchased_powers) if(P.isVerb) if(lesser_form && !P.allowduringlesserform) continue if(!(P in src.verbs)) @@ -83,7 +84,7 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E //removes our changeling verbs /mob/proc/remove_changeling_powers() if(!mind || !mind.changeling) return - for(var/datum/power/changeling/P in mind.changeling.purchasedpowers) + for(var/datum/power/changeling/P in mind.changeling.purchased_powers) if(P.isVerb) verbs -= P.verbpath diff --git a/code/game/gamemodes/changeling/modularchangling.dm b/code/game/gamemodes/changeling/modularchangling.dm index 7c6f674628..c0330fb080 100644 --- a/code/game/gamemodes/changeling/modularchangling.dm +++ b/code/game/gamemodes/changeling/modularchangling.dm @@ -249,7 +249,7 @@ var/list/datum/power/changeling/powerinstances = list() for(var/datum/power/changeling/P in powerinstances) var/ownsthis = 0 - if(P in purchasedpowers) + if(P in purchased_powers) ownsthis = 1 @@ -324,7 +324,7 @@ var/list/datum/power/changeling/powerinstances = list() M.current << "This is awkward. Changeling power purchase failed, please report this bug to a coder!" return - if(Thepower in purchasedpowers) + if(Thepower in purchased_powers) M.current << "We have already evolved this ability!" return @@ -335,7 +335,10 @@ var/list/datum/power/changeling/powerinstances = list() geneticpoints -= Thepower.genomecost - purchasedpowers += Thepower + purchased_powers += Thepower + + if(Thepower.genomecost > 0) + purchased_powers_history.Add("[Pname] ([Thepower.genomecost] points)") if(!Thepower.isVerb && Thepower.verbpath) call(M.current, Thepower.verbpath)() diff --git a/code/game/gamemodes/changeling/powers/absorb.dm b/code/game/gamemodes/changeling/powers/absorb.dm index 6adead4b89..d145f95946 100644 --- a/code/game/gamemodes/changeling/powers/absorb.dm +++ b/code/game/gamemodes/changeling/powers/absorb.dm @@ -1,10 +1,10 @@ /datum/power/changeling/absorb_dna name = "Absorb DNA" - desc = "Permits us to syphon the DNA from a human. They become one with us, and we become stronger." + desc = "Permits us to syphon the DNA from a human. They become one with us, and we become stronger if they were of our kind." genomecost = 0 verbpath = /mob/proc/changeling_absorb_dna -//Absorbs the victim's DNA making them uncloneable. Requires a strong grip on the victim. +//Absorbs the victim's DNA. Requires a strong grip on the victim. //Doesn't cost anything as it's the most basic ability. /mob/proc/changeling_absorb_dna() set category = "Changeling" @@ -27,9 +27,10 @@ src << "We do not know how to parse this creature's DNA!" return - if(HUSK in T.mutations) - src << "This creature's DNA is ruined beyond useability!" - return + if(HUSK in T.mutations) //Lings can always absorb other lings, unless someone beat them to it first. + if(!T.mind.changeling || T.mind.changeling && T.mind.changeling.geneticpoints < 0) + src << "This creature's DNA is ruined beyond useability!" + return if(G.state != GRAB_KILL) src << "We must have a tighter grip to absorb this creature." diff --git a/code/game/gamemodes/changeling/powers/armblade.dm b/code/game/gamemodes/changeling/powers/armblade.dm index e1d6609851..c5441d90ee 100644 --- a/code/game/gamemodes/changeling/powers/armblade.dm +++ b/code/game/gamemodes/changeling/powers/armblade.dm @@ -2,6 +2,7 @@ name = "Arm Blade" desc = "We reform one of our arms into a deadly blade." helptext = "We may retract our armblade by dropping it. It can deflect projectiles." + enhancedtext = "The blade will have armor peneratration." genomecost = 2 verbpath = /mob/proc/changeling_arm_blade @@ -10,9 +11,16 @@ set category = "Changeling" set name = "Arm Blade (20)" - if(changeling_generic_weapon(/obj/item/weapon/melee/arm_blade)) - return 1 - return 0 + if(src.mind.changeling.recursive_enhancement) + if(changeling_generic_weapon(/obj/item/weapon/melee/arm_blade/greater)) + src << "We prepare an extra sharp blade." + src.mind.changeling.recursive_enhancement = 0 + return 1 + + else + if(changeling_generic_weapon(/obj/item/weapon/melee/arm_blade)) + return 1 + return 0 /obj/item/weapon/melee/arm_blade name = "arm blade" @@ -31,6 +39,11 @@ attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") var/mob/living/creator //This is just like ninja swords, needed to make sure dumb shit that removes the sword doesn't make it stay around. +/obj/item/weapon/melee/arm_blade/greater + name = "arm greatblade" + desc = "A grotesque blade made out of bone and flesh that cleaves through people and armor as a hot knife through butter." + armor_penetration = 30 + /obj/item/weapon/melee/arm_blade/New(location) ..() processing_objects |= src diff --git a/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm b/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm index 694e22e8dd..dd1489248f 100644 --- a/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm +++ b/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm @@ -4,6 +4,7 @@ On demand, we can attempt to recharge anything in our active hand, or we can touch someone with an electrified hand, shocking them." helptext = "We can shock someone by grabbing them and using this ability, or using the ability with an empty hand and touching them. \ Shocking someone costs ten chemicals per use." + enhancedtext = "Shocking biologicals without grabbing only requires five chemicals, and has more disabling power." genomecost = 2 verbpath = /mob/proc/changeling_bioelectrogenesis @@ -21,8 +22,14 @@ return 0 if(held_item == null) - if(changeling_generic_weapon(/obj/item/weapon/electric_hand,0)) //Chemical cost is handled in the equip proc. - return 1 + if(src.mind.changeling.recursive_enhancement) + if(changeling_generic_weapon(/obj/item/weapon/electric_hand/efficent)) + src << "We will shock others more efficently." + src.mind.changeling.recursive_enhancement = 0 + return 1 + else + if(changeling_generic_weapon(/obj/item/weapon/electric_hand,0)) //Chemical cost is handled in the equip proc. + return 1 return 0 else @@ -30,12 +37,11 @@ if(istype(held_item,/obj/item/weapon/grab)) var/obj/item/weapon/grab/G = held_item if(G.affecting) - G.affecting.electrocute_act(5,src,1.0,BP_TORSO) - var/agony = 60 //The same as a stunbaton. - var/stun = 0 - G.affecting.stun_effect_act(stun, agony, BP_TORSO, src) + G.affecting.electrocute_act(10,src,1.0,BP_TORSO) + var/agony = 80 //Does more than if hit with an electric hand, since grabbing is slower. + G.affecting.stun_effect_act(0, agony, BP_TORSO, src) - msg_admin_attack("[key_name(src)] stunned [key_name(G.affecting)] with the [src].") + msg_admin_attack("[key_name(src)] shocked [key_name(G.affecting)] with the [src].") visible_message("Arcs of electricity strike [G.affecting]!", "Our hand channels raw electricity into [G.affecting].", @@ -72,7 +78,7 @@ new /obj/effect/effect/sparks(T) held_item.update_icon() i-- - sleep(10) + sleep(1 SECOND) success = 1 if(success == 0) //If we couldn't do anything with the ability, don't deduct the chemicals. src << "We are unable to affect \the [held_item]." @@ -85,6 +91,14 @@ desc = "You could probably shock someone badly if you touched them, or recharge something." icon = 'icons/obj/weapons.dmi' icon_state = "electric_hand" + var/shock_cost = 10 + var/agony_amount = 60 + var/electrocute_amount = 10 + +/obj/item/weapon/electric_hand/efficent + shock_cost = 5 + agony_amount = 80 + electrocute_amount = 20 /obj/item/weapon/electric_hand/New() if(ismob(loc)) @@ -108,22 +122,20 @@ if(istype(target,/mob/living/carbon)) var/mob/living/carbon/C = target - if(user.mind.changeling.chem_charges < 10) + if(user.mind.changeling.chem_charges < shock_cost) src << "We require more chemicals to electrocute [C]!" return 0 - C.electrocute_act(5,src,1.0,BP_TORSO) - var/agony = 60 //The same as a stunbaton. - var/stun = 0 - C.stun_effect_act(stun, agony, BP_TORSO, src) + C.electrocute_act(electrocute_amount,src,1.0,BP_TORSO) + C.stun_effect_act(0, agony_amount, BP_TORSO, src) - msg_admin_attack("[key_name(user)] stunned [key_name(C)] with the [src].") + msg_admin_attack("[key_name(user)] shocked [key_name(C)] with the [src].") visible_message("Arcs of electricity strike [C]!", "Our hand channels raw electricity into [C]", "You hear sparks!") //qdel(src) //Since we're no longer a one hit stun, we need to stick around. - user.mind.changeling.chem_charges -= 10 + user.mind.changeling.chem_charges -= shock_cost return 1 else if(istype(target,/mob/living/silicon)) @@ -163,7 +175,7 @@ new /obj/effect/effect/sparks(Turf) T.update_icon() i-- - sleep(10) + sleep(1 SECOND) success = 1 break if(success == 0) diff --git a/code/game/gamemodes/changeling/powers/cryo_sting.dm b/code/game/gamemodes/changeling/powers/cryo_sting.dm index d6a4f6302b..7fae4c1601 100644 --- a/code/game/gamemodes/changeling/powers/cryo_sting.dm +++ b/code/game/gamemodes/changeling/powers/cryo_sting.dm @@ -1,7 +1,8 @@ /datum/power/changeling/cryo_sting name = "Cryogenic Sting" desc = "We silently sting a biological with a cocktail of chemicals that freeze them." - helptext = "Does not provide a warning to the victim, though they will likely realize they are suddenly freezing." + helptext = "Does not provide a warning to the victim, though they will likely realize they are suddenly freezing. Has \ + a three minute cooldown between uses." enhancedtext = "Increases the amount of chemicals injected." genomecost = 1 verbpath = /mob/proc/changeling_cryo_sting diff --git a/code/game/gamemodes/changeling/powers/delayed_toxin_sting.dm b/code/game/gamemodes/changeling/powers/delayed_toxin_sting.dm index 0b0b95589c..8f7998f67a 100644 --- a/code/game/gamemodes/changeling/powers/delayed_toxin_sting.dm +++ b/code/game/gamemodes/changeling/powers/delayed_toxin_sting.dm @@ -1,7 +1,8 @@ /datum/power/changeling/delayed_toxic_sting name = "Delayed Toxic Sting" - desc = "We silently sting a biological, causing a significant amount of toxins after a few minutes, allowing us to not implicate ourselves." - helptext = "The toxin takes effect in about two minutes." + desc = "We silently sting a biological, causing a significant amount of toxins after a few minutes, allowing us to not \ + implicate ourselves." + helptext = "The toxin takes effect in about two minutes. The sting has a three minute cooldown between uses." enhancedtext = "The toxic damage is doubled." genomecost = 1 verbpath = /mob/proc/changeling_delayed_toxic_sting @@ -25,7 +26,7 @@ while(i) T.adjustToxLoss(1) i-- - sleep(20) + sleep(2 SECONDS) src.verbs -= /mob/proc/changeling_delayed_toxic_sting spawn(3 MINUTES) src << "We are ready to use our delayed toxic string once more." diff --git a/code/game/gamemodes/changeling/powers/electric_lockpick.dm b/code/game/gamemodes/changeling/powers/electric_lockpick.dm index c8c87e6a9d..40c4b372a0 100644 --- a/code/game/gamemodes/changeling/powers/electric_lockpick.dm +++ b/code/game/gamemodes/changeling/powers/electric_lockpick.dm @@ -78,6 +78,7 @@ else //Probably broken or no power. user << "The door does not respond to the pulse." door.add_fingerprint(user) + log_and_message_admins("finger-lockpicked \an [door].") ling_datum.chem_charges -= 10 return 1 @@ -86,7 +87,7 @@ user << "We send an electrical pulse up our finger, and into \the [O]." O.add_fingerprint(user) O.emag_act(1,user,src) - log_and_message_admins("emagged \an [O].") + log_and_message_admins("finger-lockpicked \an [O].") ling_datum.chem_charges -= 10 return 1 diff --git a/code/game/gamemodes/changeling/powers/endoarmor.dm b/code/game/gamemodes/changeling/powers/endoarmor.dm index c548e549f1..4052568a50 100644 --- a/code/game/gamemodes/changeling/powers/endoarmor.dm +++ b/code/game/gamemodes/changeling/powers/endoarmor.dm @@ -1,7 +1,7 @@ /datum/power/changeling/endoarmor name = "Endoarmor" desc = "We grow hard plating underneath our skin, making us more resilient to harm by increasing our maximum health potential by 50 points." - helptext = "Our maximum health is increased to 150 health." + helptext = "Our maximum health is increased by 50 points." genomecost = 1 isVerb = 0 verbpath = /mob/proc/changeling_endoarmor diff --git a/code/game/gamemodes/changeling/powers/enfeebling_string.dm b/code/game/gamemodes/changeling/powers/enfeebling_string.dm index 35d4ef7570..94699995ff 100644 --- a/code/game/gamemodes/changeling/powers/enfeebling_string.dm +++ b/code/game/gamemodes/changeling/powers/enfeebling_string.dm @@ -1,7 +1,8 @@ /datum/power/changeling/enfeebling_string name = "Enfeebling String" desc = "We sting a biological with a potent toxin that will greatly weaken them for a short period of time." - helptext = "Lowers the maximum health of the victim for a few minutes. This sting will also warn them of this." + helptext = "Lowers the maximum health of the victim for a few minutes. This sting will also warn them of this. Has a \ + five minute coodown between uses." enhancedtext = "Maximum health is lowered further." genomecost = 1 verbpath = /mob/proc/changeling_enfeebling_string @@ -17,17 +18,21 @@ if(ishuman(T)) var/mob/living/carbon/human/H = T - var/effect = 30 + var/effect = 30 //percent if(src.mind.changeling.recursive_enhancement) effect = effect + 20 src << "We make them extremely weak." src.mind.changeling.recursive_enhancement = 0 + var/health_to_take_away = H.maxHealth * (effect / 100) - H.maxHealth -= effect - H << "You feel a small prick and you feel weak." - spawn(300) //Five minutes + H.maxHealth -= health_to_take_away + H << "You feel a small prick and you feel extremly weak!" + src.verbs -= /mob/proc/changeling_enfeebling_string + spawn(5 MINUTES) + src.verbs |= /mob/proc/changeling_enfeebling_string + src << "Our enfeebling string is ready to be used once more." if(H) //Just incase we stop existing in five minutes for whatever reason. - H.maxHealth += 30 + H.maxHealth += health_to_take_away if(!H.stat) //It'd be weird to no longer feel weak when you're dead. H << "You no longer feel extremly weak." feedback_add_details("changeling_powers","ES") diff --git a/code/game/gamemodes/changeling/powers/fleshmend.dm b/code/game/gamemodes/changeling/powers/fleshmend.dm index 0046e1517c..5a157cdbb7 100644 --- a/code/game/gamemodes/changeling/powers/fleshmend.dm +++ b/code/game/gamemodes/changeling/powers/fleshmend.dm @@ -31,10 +31,10 @@ C.adjustBruteLoss(-heal_amount) C.adjustOxyLoss(-heal_amount) C.adjustFireLoss(-heal_amount) - sleep(10) + sleep(1 SECOND) src.verbs -= /mob/proc/changeling_fleshmend - spawn(500) + spawn(50 SECONDS) src << "Our regeneration has slowed to normal levels." src.verbs += /mob/proc/changeling_fleshmend feedback_add_details("changeling_powers","FM") diff --git a/code/game/gamemodes/changeling/powers/respec.dm b/code/game/gamemodes/changeling/powers/respec.dm index f2bfe8f19c..661a761d8c 100644 --- a/code/game/gamemodes/changeling/powers/respec.dm +++ b/code/game/gamemodes/changeling/powers/respec.dm @@ -9,7 +9,7 @@ src.remove_changeling_powers() //First, remove the verbs. var/datum/changeling/ling_datum = src.mind.changeling - ling_datum.purchasedpowers = list() //Then wipe all the powers we bought. + ling_datum.purchased_powers = list() //Then wipe all the powers we bought. ling_datum.geneticpoints = ling_datum.max_geneticpoints //Now refund our points to the maximum. ling_datum.chem_recharge_rate = 0.5 //If glands were bought, revert that upgrade. ling_datum.chem_storage = 50 @@ -21,5 +21,7 @@ src << "We have removed our evolutions from this form, and are now ready to readapt." + ling_datum.purchased_powers_history.Add("Re-adapt (Reset to [ling_datum.max_geneticpoints])") + //Now to lose the verb, so no unlimited resets. src.verbs -= /mob/proc/changeling_respec \ No newline at end of file diff --git a/code/game/gamemodes/changeling/powers/revive.dm b/code/game/gamemodes/changeling/powers/revive.dm index 7dc2310f78..647f5bd91f 100644 --- a/code/game/gamemodes/changeling/powers/revive.dm +++ b/code/game/gamemodes/changeling/powers/revive.dm @@ -33,10 +33,13 @@ if(ishuman(C)) var/mob/living/carbon/human/H = src H.restore_blood() + H.mutations.Remove(HUSK) + H.status_flags -= DISFIGURED + H.update_body(1) C << "We have regenerated." C.status_flags &= ~(FAKEDEATH) C.update_canmove() - C.mind.changeling.purchasedpowers -= C + C.mind.changeling.purchased_powers -= C feedback_add_details("changeling_powers","CR") C.stat = CONSCIOUS src.verbs -= /mob/proc/changeling_revive diff --git a/code/game/gamemodes/changeling/powers/transform.dm b/code/game/gamemodes/changeling/powers/transform.dm index 33d75c03a3..99f1a4d130 100644 --- a/code/game/gamemodes/changeling/powers/transform.dm +++ b/code/game/gamemodes/changeling/powers/transform.dm @@ -37,6 +37,8 @@ if(ishuman(src)) var/mob/living/carbon/human/H = src H.b_type = "AB+" //For some reason we have two blood types on the mob. + for(var/flavor in H.flavor_texts) //Nulls out flavor text, so we don't keep our previous mob's flavor. + flavor = null src.real_name = chosen_dna.real_name src.flavor_text = "" src.UpdateAppearance() From 69d0e603dfa4d1bcec944cce12f84ae2fc484ae8 Mon Sep 17 00:00:00 2001 From: Mark9013100 Date: Sat, 19 Mar 2016 20:43:58 -0400 Subject: [PATCH 3/7] Adds a basic combat vest sprite for suits.dmi --- icons/obj/clothing/suits.dmi | Bin 135496 -> 135660 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index f315e6ba2b9eac3ac9e6824b5c12c0a7b830cefd..4dea6388b15dff40c0e44dd339035bcf45868fd1 100644 GIT binary patch delta 22531 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 From f41f52dea871eb0348b0575eff3a63de3506545c Mon Sep 17 00:00:00 2001 From: Kelenius Date: Mon, 21 Mar 2016 16:28:15 +0300 Subject: [PATCH 4/7] Removes topic limiter --- code/modules/client/client defines.dm | 1 - code/modules/client/client procs.dm | 6 ------ 2 files changed, 7 deletions(-) diff --git a/code/modules/client/client defines.dm b/code/modules/client/client defines.dm index 1155882b82..0961115d6a 100644 --- a/code/modules/client/client defines.dm +++ b/code/modules/client/client defines.dm @@ -30,7 +30,6 @@ //////////// //SECURITY// //////////// - var/next_allowed_topic_time = 10 // comment out the line below when debugging locally to enable the options & messages menu //control_freak = 1 diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index aa1cf3b1ad..c7a6dd7ccb 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -1,7 +1,6 @@ //////////// //SECURITY// //////////// -#define TOPIC_SPAM_DELAY 2 //2 ticks is about 2/10ths of a second; it was 4 ticks, but that caused too many clicks to be lost due to lag #define UPLOAD_LIMIT 10485760 //Restricts client uploads to the server to 10MB //Boosted this thing. What's the worst that can happen? #define MIN_CLIENT_VERSION 0 //Just an ambiguously low version for now, I don't want to suddenly stop people playing. //I would just like the code ready should it ever need to be used. @@ -24,11 +23,6 @@ if(!usr || usr != mob) //stops us calling Topic for somebody else's client. Also helps prevent usr=null return - //Reduces spamming of links by dropping calls that happen during the delay period - if(next_allowed_topic_time > world.time) - return - next_allowed_topic_time = world.time + TOPIC_SPAM_DELAY - //search the href for script injection if( findtext(href," Date: Sat, 30 Jan 2016 13:44:52 +0100 Subject: [PATCH 5/7] Camera fixes and performance tweaks. Improves camera EMP handling. Now uses a var and processing to determine when the EMP should end, preventing inconsistent states when a camera is EMPd multiple times. Reduces the process and bandwidth need for cameras. * There is now a common camera repository, responsible for setting up cameras once for every invalidation. * Camera consoles now only updates when the camera cache is invalidated, not every second. * The console now only presents one network at a time, and only sends the data necessary to view that network (as opposed to sending the data for all cameras). --- code/datums/repositories/cameras.dm | 34 ++++++++ code/datums/{ => repositories}/crew.dm | 4 - code/datums/repositories/repository.dm | 4 + code/game/machinery/camera/camera.dm | 40 +++++---- code/game/machinery/camera/motion.dm | 2 +- code/game/machinery/computer/camera.dm | 82 +++++++++++-------- .../circuitboards/computer/camera_monitor.dm | 4 +- code/modules/alarm/alarm.dm | 4 +- nano/templates/sec_camera.tmpl | 29 +++++-- nano/templates/sec_camera_map_content.tmpl | 4 +- nano/templates/sec_camera_map_header.tmpl | 25 ++++-- polaris.dme | 1 - 12 files changed, 153 insertions(+), 80 deletions(-) create mode 100644 code/datums/repositories/cameras.dm rename code/datums/{ => repositories}/crew.dm (95%) create mode 100644 code/datums/repositories/repository.dm diff --git a/code/datums/repositories/cameras.dm b/code/datums/repositories/cameras.dm new file mode 100644 index 0000000000..7bac2a4634 --- /dev/null +++ b/code/datums/repositories/cameras.dm @@ -0,0 +1,34 @@ +var/global/datum/repository/cameras/camera_repository = new() + +/proc/invalidateCameraCache() + camera_repository.networks.Cut() + camera_repository.invalidated = 1 + camera_repository.camera_cache_id = (++camera_repository.camera_cache_id % 999999) + +/datum/repository/cameras + var/list/networks + var/invalidated = 1 + var/camera_cache_id = 1 + +/datum/repository/cameras/New() + networks = list() + ..() + +/datum/repository/cameras/proc/cameras_in_network(var/network) + setup_cache() + var/list/network_list = networks[network] + return network_list + +/datum/repository/cameras/proc/setup_cache() + if(!invalidated) + return + invalidated = 0 + + cameranet.process_sort() + for(var/obj/machinery/camera/C in cameranet.cameras) + var/cam = C.nano_structure() + for(var/network in C.network) + if(!networks[network]) + networks[network] = list() + var/list/netlist = networks[network] + netlist[++netlist.len] = cam diff --git a/code/datums/crew.dm b/code/datums/repositories/crew.dm similarity index 95% rename from code/datums/crew.dm rename to code/datums/repositories/crew.dm index d46a83846f..6fbe1863da 100644 --- a/code/datums/crew.dm +++ b/code/datums/repositories/crew.dm @@ -1,9 +1,5 @@ var/global/datum/repository/crew/crew_repository = new() -/datum/cache_entry - var/timestamp - var/data - /datum/repository/crew var/list/cache_data diff --git a/code/datums/repositories/repository.dm b/code/datums/repositories/repository.dm new file mode 100644 index 0000000000..6267099c93 --- /dev/null +++ b/code/datums/repositories/repository.dm @@ -0,0 +1,4 @@ +/datum/cache_entry + var/timestamp + var/data + diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index cb0d95c1df..291b985294 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -33,6 +33,8 @@ var/on_open_network = 0 + var/affected_by_emp_until = 0 + /obj/machinery/camera/New() wires = new(src) assembly = new(src) @@ -62,22 +64,29 @@ wires = null return ..() +/obj/machinery/camera/process() + if((stat & EMPED) && world.time >= affected_by_emp_until) + stat &= ~EMPED + cancelCameraAlarm() + update_icon() + update_coverage() + return internal_process() + +/obj/machinery/camera/proc/internal_process() + return + /obj/machinery/camera/emp_act(severity) - if(!isEmpProof()) - if(prob(100/severity)) + if(!isEmpProof() && prob(100/severity)) + if(!affected_by_emp_until || (world.time < affected_by_emp_until)) + affected_by_emp_until = max(affected_by_emp_until, world.time + (90 SECONDS / severity)) + else stat |= EMPED set_light(0) + triggerCameraAlarm() kick_viewers() - triggerCameraAlarm(30 / severity) update_icon() update_coverage() - - spawn(900) - stat &= ~EMPED - cancelCameraAlarm() - update_icon() - update_coverage() - ..() + processing_objects |= src /obj/machinery/camera/bullet_act(var/obj/item/projectile/P) take_damage(P.get_structure_damage()) @@ -105,7 +114,6 @@ cameranet.updateVisibility(src, 0) /obj/machinery/camera/attack_hand(mob/living/carbon/human/user as mob) - if(!istype(user)) return @@ -114,7 +122,6 @@ user.do_attack_animation(src) visible_message("\The [user] slashes at [src]!") playsound(src.loc, 'sound/weapons/slash.ogg', 100, 1) - icon_state = "[initial(icon_state)]1" add_hiddenprint(user) destroy() @@ -176,7 +183,7 @@ for(var/mob/O in player_list) if (istype(O.machine, /obj/machinery/computer/security)) var/obj/machinery/computer/security/S = O.machine - if (S.current == src) + if (S.current_camera == src) O << "[U] holds \a [itemname] up to one of the cameras ..." O << browse(text("[][]", itemname, info), text("window=[]", itemname)) @@ -214,8 +221,7 @@ //legacy support, if choice is != 1 then just kick viewers without changing status kick_viewers() else - update_coverage() - set_status( !src.status ) + set_status(!src.status) if (!(src.status)) if(user) visible_message(" [user] has deactivated [src]!") @@ -257,7 +263,7 @@ /obj/machinery/camera/proc/set_status(var/newstatus) if (status != newstatus) status = newstatus - invalidateCameraCache() + update_coverage() // now disconnect anyone using the camera //Apparently, this will disconnect anyone even if the camera was re-activated. //I guess that doesn't matter since they couldn't use it anyway? @@ -273,7 +279,7 @@ for(var/mob/O in player_list) if (istype(O.machine, /obj/machinery/computer/security)) var/obj/machinery/computer/security/S = O.machine - if (S.current == src) + if (S.current_camera == src) O.unset_machine() O.reset_view(null) O << "The screen bursts into static." diff --git a/code/game/machinery/camera/motion.dm b/code/game/machinery/camera/motion.dm index 7821b27f26..eac1f89386 100644 --- a/code/game/machinery/camera/motion.dm +++ b/code/game/machinery/camera/motion.dm @@ -5,7 +5,7 @@ var/alarm_delay = 100 // Don't forget, there's another 10 seconds in queueAlarm() flags = PROXMOVE -/obj/machinery/camera/process() +/obj/machinery/camera/internal_process() // motion camera event loop if (stat & (EMPED|NOPOWER)) return diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index e1c6658ab4..e9aa439600 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -1,28 +1,25 @@ //This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 -/var/camera_cache_id = 1 - -/proc/invalidateCameraCache() - camera_cache_id = (++camera_cache_id % 999999) - /obj/machinery/computer/security name = "security camera monitor" desc = "Used to access the various cameras on the station." icon_keyboard = "security_key" icon_screen = "cameras" light_color = "#a91515" - var/obj/machinery/camera/current = null + var/current_network = null + var/obj/machinery/camera/current_camera = null var/last_pic = 1.0 var/list/network var/mapping = 0//For the overview file, interesting bit of code. var/cache_id = 0 circuit = /obj/item/weapon/circuitboard/security - var/camera_cache = null New() if(!network) - network = station_networks + network = station_networks.Copy() ..() + if(network.len) + current_network = network[1] attack_ai(var/mob/user as mob) return attack_hand(user) @@ -30,9 +27,9 @@ check_eye(var/mob/user as mob) if (user.stat || ((get_dist(user, src) > 1 || !( user.canmove ) || user.blinded) && !istype(user, /mob/living/silicon))) //user can't see - not sure why canmove is here. return -1 - if(!current) + if(!current_camera) return 0 - var/viewflag = current.check_eye(user) + var/viewflag = current_camera.check_eye(user) if ( viewflag < 0 ) //camera doesn't work reset_current() return viewflag @@ -44,7 +41,11 @@ var/data[0] - data["current"] = null + data["current_camera"] = current_camera ? current_camera.nano_structure() : null + data["current_network"] = current_network + data["networks"] = network ? network : list() + if(current_network) + data["cameras"] = camera_repository.cameras_in_network(current_network) if(camera_cache_id != cache_id) cache_id = camera_cache_id @@ -75,22 +76,32 @@ ui.set_initial_data(data) ui.open() - ui.set_auto_update(1) Topic(href, href_list) - if(href_list["switchTo"]) + if(..()) + return 1 + if(href_list["switch_camera"]) if(src.z>6 || stat&(NOPOWER|BROKEN)) return if(usr.stat || ((get_dist(usr, src) > 1 || !( usr.canmove ) || usr.blinded) && !istype(usr, /mob/living/silicon))) return - var/obj/machinery/camera/C = locate(href_list["switchTo"]) in cameranet.cameras - if(!C) return + var/obj/machinery/camera/C = locate(href_list["switch_camera"]) in cameranet.cameras + if(!C) + return + if(!(current_network in C.network)) + return switch_to_camera(usr, C) return 1 + else if(href_list["switch_network"]) + if(src.z>6 || stat&(NOPOWER|BROKEN)) return + if(usr.stat || ((get_dist(usr, src) > 1 || !( usr.canmove ) || usr.blinded) && !istype(usr, /mob/living/silicon))) return + if(href_list["switch_network"] in network) + current_network = href_list["switch_network"] + return 1 else if(href_list["reset"]) if(src.z>6 || stat&(NOPOWER|BROKEN)) return if(usr.stat || ((get_dist(usr, src) > 1 || !( usr.canmove ) || usr.blinded) && !istype(usr, /mob/living/silicon))) return reset_current() - usr.reset_view(current) + usr.reset_view(current_camera) return 1 else . = ..() @@ -105,12 +116,6 @@ user.set_machine(src) ui_interact(user) - proc/can_access_camera(var/obj/machinery/camera/C) - var/list/shared_networks = src.network & C.network - if(shared_networks.len) - return 1 - return 0 - proc/switch_to_camera(var/mob/user, var/obj/machinery/camera/C) //don't need to check if the camera works for AI because the AI jumps to the camera location and doesn't actually look through cameras. if(isAI(user)) @@ -126,7 +131,7 @@ if (!C.can_use() || user.stat || (get_dist(user, src) > 1 || user.machine != src || user.blinded || !( user.canmove ) && !istype(user, /mob/living/silicon))) return 0 set_current(C) - user.reset_view(current) + user.reset_view(current_camera) check_eye(user) return 1 @@ -160,26 +165,37 @@ if(can_access_camera(jump_to)) switch_to_camera(user,jump_to) +/obj/machinery/computer/security/process() + if(cache_id != camera_repository.camera_cache_id) + cache_id = camera_repository.camera_cache_id + nanomanager.update_uis(src) + +/obj/machinery/computer/security/proc/can_access_camera(var/obj/machinery/camera/C) + var/list/shared_networks = src.network & C.network + if(shared_networks.len) + return 1 + return 0 + /obj/machinery/computer/security/proc/set_current(var/obj/machinery/camera/C) - if(current == C) + if(current_camera == C) return - if(current) + if(current_camera) reset_current() - src.current = C - if(current) + src.current_camera = C + if(current_camera) use_power = 2 - var/mob/living/L = current.loc + var/mob/living/L = current_camera.loc if(istype(L)) L.tracking_initiated() /obj/machinery/computer/security/proc/reset_current() - if(current) - var/mob/living/L = current.loc + if(current_camera) + var/mob/living/L = current_camera.loc if(istype(L)) L.tracking_cancelled() - current = null + current_camera = null use_power = 1 //Camera control: mouse. @@ -192,7 +208,7 @@ /mob/Move(n,direct) if(istype(machine,/obj/machinery/computer/security)) var/obj/machinery/computer/security/console = machine - var/turf/T = get_turf(console.current) + var/turf/T = get_turf(console.current_camera) for(var/i;i<10;i++) T = get_step(T,direct) console.jump_on_click(src,T) @@ -248,7 +264,7 @@ /obj/machinery/computer/security/engineering/New() if(!network) - network = engineering_networks + network = engineering_networks.Copy() ..() /obj/machinery/computer/security/nuclear diff --git a/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm b/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm index 61de25f44c..60f8bce268 100644 --- a/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm +++ b/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm @@ -31,11 +31,11 @@ /obj/item/weapon/circuitboard/security/construct(var/obj/machinery/computer/security/C) if (..(C)) - C.network = network + C.network = network.Copy() /obj/item/weapon/circuitboard/security/deconstruct(var/obj/machinery/computer/security/C) if (..(C)) - network = C.network + network = C.network.Copy() /obj/item/weapon/circuitboard/security/emag_act(var/remaining_charges, var/mob/user) if(emagged) diff --git a/code/modules/alarm/alarm.dm b/code/modules/alarm/alarm.dm index aa88e170bf..d0a6a8be4c 100644 --- a/code/modules/alarm/alarm.dm +++ b/code/modules/alarm/alarm.dm @@ -76,9 +76,9 @@ /datum/alarm/proc/cameras() // reset camera cache - if(camera_cache_id != cache_id) + if(camera_repository.camera_cache_id != cache_id) cameras = null - cache_id = camera_cache_id + cache_id = camera_repository.camera_cache_id // If the alarm origin has changed area, for example a borg containing an alarming camera, reset the list of cameras else if(cameras && (last_camera_area != alarm_area())) cameras = null diff --git a/nano/templates/sec_camera.tmpl b/nano/templates/sec_camera.tmpl index 13ec5ab229..356bad1df3 100644 --- a/nano/templates/sec_camera.tmpl +++ b/nano/templates/sec_camera.tmpl @@ -4,20 +4,31 @@ Used In File(s): \code\game\machinery\computer\camera.dm --> {{:helper.link('Show Map', 'pin-s', {'showMap' : 1})}} {{:helper.link('Reset', 'refresh', {'reset' : 1})}} +

-
Current Camera:
- {{if data.current}} -
{{:data.current.name}}
- {{else}} -
None
- {{/if}} +
Networks:
+
+{{for data.networks}} + {{:helper.link(value, '', {'switch_network' : value}, null, data.current_network == value ? 'selected' : null)}} +{{/for}} +
+
Cameras:
{{for data.cameras}} - {{if data.current && value.name == data.current.name}} - {{:helper.link(value.name, '', {'switchTo' : value.camera}, 'selected')}} + {{if data.current_camera && value.name == data.current_camera.name}} + {{:helper.link(value.name, '', {'switch_camera' : value.camera}, 'selected')}} {{else value.deact}} {{:helper.link(value.name + " (deactivated)", '', {}, 'inactive')}} {{else}} - {{:helper.link(value.name, '', {'switchTo' : value.camera})}} + {{:helper.link(value.name, '', {'switch_camera' : value.camera})}} {{/if}} {{/for}} diff --git a/nano/templates/sec_camera_map_content.tmpl b/nano/templates/sec_camera_map_content.tmpl index a2706d8c35..c78d85298d 100644 --- a/nano/templates/sec_camera_map_content.tmpl +++ b/nano/templates/sec_camera_map_content.tmpl @@ -6,11 +6,11 @@ Used In File(s): \code\game\machinery\computer\camera.dm {{if value.z == 1}}
{{if data.current && value.name == data.current.name}} - {{:helper.link("#", '', {'switchTo' : value.camera}, 'selected')}} + {{:helper.link("#", '', {'switch_camera' : value.camera}, 'selected')}} {{else value.deact}} {{:helper.link('#', '', {}, 'inactive')}} {{else}} - {{:helper.link("#", '', {'switchTo' : value.camera})}} + {{:helper.link("#", '', {'switch_camera' : value.camera})}} {{/if}} +
+
+
Networks:
+
+{{for data.networks}} + {{:helper.link(value, '', {'switch_network' : value}, null, data.current_network == value ? 'selected' : null)}} +{{/for}} \ No newline at end of file diff --git a/polaris.dme b/polaris.dme index e30cdd9ed5..d00febb517 100644 --- a/polaris.dme +++ b/polaris.dme @@ -154,7 +154,6 @@ #include "code\datums\browser.dm" #include "code\datums\category.dm" #include "code\datums\computerfiles.dm" -#include "code\datums\crew.dm" #include "code\datums\datacore.dm" #include "code\datums\EPv2.dm" #include "code\datums\mind.dm" From 56e1fbe0a6d88999bcdcd5d2599dbf4027476fe1 Mon Sep 17 00:00:00 2001 From: Datraen Date: Mon, 21 Mar 2016 17:51:26 -0400 Subject: [PATCH 6/7] Fixes improperly cherry-picked files. --- code/game/machinery/computer/camera.dm | 28 ++------------------------ polaris.dme | 3 +++ 2 files changed, 5 insertions(+), 26 deletions(-) diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index e9aa439600..e7f92e0237 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -47,24 +47,6 @@ if(current_network) data["cameras"] = camera_repository.cameras_in_network(current_network) - if(camera_cache_id != cache_id) - cache_id = camera_cache_id - cameranet.process_sort() - - var/cameras[0] - for(var/obj/machinery/camera/C in cameranet.cameras) - if(!can_access_camera(C)) - continue - - var/cam = C.nano_structure() - cameras[++cameras.len] = cam - - camera_cache=json_encode(cameras) - - if(current) - data["current"] = current.nano_structure() - data["cameras"] = list("__json_cache" = camera_cache) - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "sec_camera.tmpl", "Camera Console", 900, 800) @@ -222,7 +204,7 @@ icon_keyboard = null icon_screen = null light_range_on = 0 - network = list("thunder") + network = list(NETWORK_THUNDER) density = 0 circuit = null @@ -234,7 +216,6 @@ light_color = "#FFEEDB" light_range_on = 2 circuit = null - /obj/machinery/computer/security/wooden_tv name = "security camera monitor" desc = "An old TV hooked into the stations camera network." @@ -244,7 +225,6 @@ circuit = null light_color = "#3848B3" light_power_on = 0.5 - /obj/machinery/computer/security/mining name = "outpost camera monitor" desc = "Used to access the various cameras on the outpost." @@ -253,7 +233,6 @@ network = list("MINE") circuit = /obj/item/weapon/circuitboard/security/mining light_color = "#F9BBFC" - /obj/machinery/computer/security/engineering name = "engineering camera monitor" desc = "Used to monitor fires and breaches." @@ -261,19 +240,16 @@ icon_screen = "engie_cams" circuit = /obj/item/weapon/circuitboard/security/engineering light_color = "#FAC54B" - /obj/machinery/computer/security/engineering/New() if(!network) network = engineering_networks.Copy() ..() - /obj/machinery/computer/security/nuclear name = "head mounted camera monitor" desc = "Used to access the built-in cameras in helmets." icon_state = "syndicam" network = list(NETWORK_MERCENARY) circuit = null - /obj/machinery/computer/security/nuclear/New() ..() - req_access = list(150) + req_access = list(150) \ No newline at end of file diff --git a/polaris.dme b/polaris.dme index d00febb517..bc37b4ccb3 100644 --- a/polaris.dme +++ b/polaris.dme @@ -177,6 +177,9 @@ #include "code\datums\locations\tau_ceti.dm" #include "code\datums\locations\uueoa_esa.dm" #include "code\datums\locations\vir.dm" +#include "code\datums\repositories\cameras.dm" +#include "code\datums\repositories\crew.dm" +#include "code\datums\repositories\repository.dm" #include "code\datums\wires\airlock.dm" #include "code\datums\wires\alarm.dm" #include "code\datums\wires\apc.dm" From 61d2eb1d3e9dc3799b62a0a2c5196f24268d3c91 Mon Sep 17 00:00:00 2001 From: Matt Date: Tue, 22 Mar 2016 13:11:48 -0400 Subject: [PATCH 7/7] Properly log dropper-related assault for admins Fixes bug #1219 Moving the logging from post-dropping (when the dropper is empty) to Pre-drop, post-dropable check (it should not be located at the point when a drop is going to occur, but just prior to actually doing so). As always, please review this change to make sure I didn't break anything. All I did was cut-paste the lines to a few lines above, but hey, never hurts to double-check! --- code/modules/reagents/reagent_containers/dropper.dm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index c352b60332..e605683de7 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -54,14 +54,16 @@ user.visible_message("[user] tries to squirt something into [target]'s eyes, but fails!", "You transfer [trans] units of the solution.") return - trans = reagents.trans_to_mob(target, reagents.total_volume, CHEM_INGEST) - user.visible_message("[user] squirts something into [target]'s eyes!", "You transfer [trans] units of the solution.") - var/mob/living/M = target var/contained = reagentlist() M.attack_log += text("\[[time_stamp()]\] Has been squirted with [name] by [user.name] ([user.ckey]). Reagents: [contained]") user.attack_log += text("\[[time_stamp()]\] Used the [name] to squirt [M.name] ([M.key]). Reagents: [contained]") msg_admin_attack("[user.name] ([user.ckey]) squirted [M.name] ([M.key]) with [name]. Reagents: [contained] (INTENT: [uppertext(user.a_intent)]) (
JMP)") + + trans = reagents.trans_to_mob(target, reagents.total_volume, CHEM_INGEST) + user.visible_message("[user] squirts something into [target]'s eyes!", "You transfer [trans] units of the solution.") + + return else