Sieve stuff, this is a stupidly big commit, I'm sorry, I really am.

Full details in this thread:
http://nanotrasen.com/phpBB3/viewtopic.php?f=16&t=8898
And a summary of the most important bits:
-Door animations no longer desync and do the open-close-open thing. That's been around so long most people don't even notice
-Welding tools no longer get their icons desynced
-Fixed unpowered mineral door runtimes
-Chemistry machines now require power to run
-Fixed the proc to apply radiation based on armor, which means that you can actually not die of radiation as quickly if you wear armor that protects against radiation
--By fixing this, it also fixed the singularity, so you might want to be careful next time you run by it naked
--Also means that radiation events take armor into account. How great
-Hopefully have a bugfix to prevent borgs from using lag to enter the game without an AI or laws, but I cannot test it myself other than that it didn't break anything
-Disposal sound can only play once every couple of ticks, so no more ear-rape by disposals!
-Lasertag guns can no longer be used to make lasergun turrets
-Cleaned up stray pixels on several doors and the lasertag guns

-Reworked how falsewalls work, now whenever you attack them with certain tools (drills, welders, etc...) it instantly turns them into a wall and pushes the attackby(), meaning you might not even notice that you just drilled down a falsewall, and at the very least they are much more fitting
-Omni-directional PA console! Never have to worry about rotating that fucking computer again, because now it does it itself!
-The Marisa robe that spawns in the theater no longer protects like armor
-Tweaked coefficient list for fake insulated gloves (misplaced punctuation messed up the list a tad)
-Moved falsewalls out of 'transfer_valve.dm' and into 'structures.dm'
-Tweaked smoothwalls so it only connects walls with like minerals (only seen effect is on the new walls)
--Also added appropriate signs to areas
-Reworked portable turrets to be a lot less laggy, now they determine the projectile type once, then save it so they don't have to go through else if chains every time they fire
-Added many sprites from WJohnston, but many are not fully implemented (Mostly floor ones)
-Added a vending machine for engineering, the Engivend. Apparently it was needed because of the lack of availability of the Autolathe or whatever.
-Added WJohnston's Dark Gygax sprites, then made a Death Squad Gygax out of them. A bit tougher than the standard Gygax, improved battery, and is pre-fit with gear, ideally for 'hit and run' tactics
-New Odysseus construction sprites, also removed the Odysseus Carapace in favor of plasteel like the Ripley, meaning they in terms of construction, a Ripley is equivalent to an Odysseus 
-Added an 'is_hot()' proc, when called it returns the temperature of the item in K, while taking into account things like whether or not the item is active or whatever
-Rewrote the Experimental Welding Tool, now instead of having a super-sized tank, it uses super-concentrated plasma that is turned into gas inside of it as its fuel source. Meaning, it will never have to be refilled, but it takes time for it to fill itself
-Added WJ's firelight sprites and code. Wanted to use them, but haven't had a chance to really implement them, but still, they're there

-Turrets made with lasertag guns now fire their respective team's bolt
-The turrets also automatically target anyone on the opposing team (But will continue to shoot at anyone, for shits n' giggles)
-Turrets get corresponding sprites based on team
-Shooting a turret with a different team's laser will disable it for 10 seconds
-You can also make ED-209's for your lasertag games/pissing off sec
-These are constructed just like a regular ED, but instead of a security vest and taser, it requires a lasertag vest and gun (same colors)
-When geared for lasertag, They will not arrest anyone nor melee them, only patrol (if set) and shoot
-They have their color schemes as well, and can be disabled just like turrets
-For both turrets and EDs, when geared for lasertag, they will not shoot anyone on the ground, this was due to very quickly learning how fucking OP that was for 1 turret to stunlock 3 people for eternity
-And when they are geared for lasertag, both the turrets and EDs have their access changed to maint, clown, and mime (This will not stop any of them from being shot, however)
-As a side note, you can also make lasertag stationary turrets for any map-related things

-Now walls are based on a plating system, meaning all walls have a girder with a mineral plating on top of it.
-As of right now, usable minerals are Silver, Gold, Diamond, Uranium, Plasma, and Sandstone (Lacking sprites for wood, *cough*)
-This also carries over to falsewalls, so you can make falsewalls out of any of those minerals
-Also, this carries over to powered doors, meaning you can construct useful doors out of minerals, so you could have actual diamond forts with doors requiring access to get in or whatever
-All of these are standardized, and for the most part work just like regular walls, meaning if you start slicing a wall, it will drop the mineral, or if you drill it, or whatever
-What was mentioned with the smoothwall tweak above, only walls of the same mineral will connect, so it all looks very nice
-Doors and walls made of uranium emit radiation when interacted with, with walls causing a 'ripple' effect, so the more walls nearby, the more radiation you get hit with
-Doors and walls made of plasma burn. It's a short, quick burn, but can easily be compounded in large structures
--As a note on plasma walls, I cannot get atmos and plasma walls to play nice (Since they are airless turfs), so I can't actually get them to ignite based on air temperature, but when they do ignite, they will auto-magically ignite nearby plasma walls, with a reduced temperature, meaning that if you want a massive chain reaction over a huge area, you better use something a bit hotter than a lighter
--Also, when plasma walls burn, they simply leave behind a girder, while doors leave assemblies
-Lastly, for nearly any kind of destructive action, Diamond walls are much more resilient, meaning they will take twice as long to be destroyed, and are immune to the effects of thermite
(Also, sprites for plasma walls and uranium walls are shite right now, waiting for replacements)
Update:
-Added cult walls as a 'mineral wall', meaning they will work on the same system and 'ReplaceWithMineralWall("cult")' will change any turf into a cult wall, hopefully for some cult-related activities soon

R&D stuff:
-Now instead of 1 sheet or ALL OF THE SHEETS, you enter a number as to how many sheets you want (it's sanitized to hell as well)
-Minerals no longer multiply when inside RnD machines. (Who fucked that one up? Goddamn)
-Mech fabricators are both deconstructable, and putting higher level parts actually improve it, each 'Tier' up is equivalent to +1 tech levels for that, so a High Powered Micro Laser would give the same bonus as +1 Material Research, a Pico Manipulator would give the same bonus as +2 Engineering, etc
-Complete with a shitty opened Mech Fab sprite!
-And not shitty overlays so autolathe's animate the material that is put in them, rather than give everything that's not glass the metal animation

LOL THE JOKES ON YOU I JUST COPY PASTED HIS TOPIC

added a few svn ignores, for thumbs.db and maps/backup

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3751 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
petethegoat@gmail.com
2012-06-06 19:45:03 +00:00
parent b71cebee16
commit 72c72c47d3
77 changed files with 2512 additions and 1135 deletions

View File

@@ -248,6 +248,33 @@
opacity = 0
density = 0
/obj/effect/sign/science//These 3 have multiple types, just var-edit the icon_state to whatever one you want on the map
desc = "A warning sign which reads 'SCIENCE!'"
name = "SCIENCE!"
icon = 'decals.dmi'
icon_state = "science1"
anchored = 1.0
opacity = 0
density = 0
/obj/effect/sign/chemistry
desc = "A warning sign which reads 'CHEMISTY'"
name = "CHEMISTRY"
icon = 'decals.dmi'
icon_state = "chemistry1"
anchored = 1.0
opacity = 0
density = 0
/obj/effect/sign/botany
desc = "A warning sign which reads 'HYDROPONICS'"
name = "HYDROPONICS"
icon = 'decals.dmi'
icon_state = "hydro1"
anchored = 1.0
opacity = 0
density = 0
/obj/hud
name = "hud"
unacidable = 1
@@ -1089,6 +1116,46 @@
opacity = 1
anchored = 1
/obj/structure/falsewall/gold
name = "gold wall"
desc = "A wall with gold plating. Swag"
icon_state = ""
/obj/structure/falsewall/silver
name = "silver wall"
desc = "A wall with silver plating. Shiny"
icon_state = ""
/obj/structure/falsewall/diamond
name = "diamond wall"
desc = "A wall with diamond plating. You monster"
icon_state = ""
/obj/structure/falsewall/uranium
name = "uranium wall"
desc = "A wall with uranium plating. This is probably a bad idea"
icon_state = ""
/obj/structure/falsewall/plasma
name = "plasma wall"
desc = "A wall with plasma plating. This is definately a bad idea"
icon_state = ""
/obj/structure/falsewall/bananium
name = "bananium wall"
desc = "A wall with bananium plating. Honk"
icon_state = ""
/obj/structure/falsewall/sand
name = "sandstone wall"
desc = "A wall with sandstone plating."
icon_state = ""
/*/obj/structure/falsewall/wood
name = "wooden wall"
desc = "A wall with classy wooden paneling."
icon_state = ""*/
/obj/structure/falserwall
name = "r wall"
desc = "A huge chunk of reinforced metal used to seperate rooms."

View File

@@ -128,9 +128,15 @@
new /obj/item/clothing/mask/spiderman(src.loc)
del(src)*/
/*
/obj/effect/landmark/costume/marisawizard/New()
new /obj/item/clothing/head/wizard/marisa(src.loc)
new/obj/item/clothing/suit/wizrobe/marisa(src.loc)
del(src)*/
/obj/effect/landmark/costume/marisawizard/fake/New()
new /obj/item/clothing/head/wizard/marisa/fake(src.loc)
new/obj/item/clothing/suit/wizrobe/marisa/fake(src.loc)
del(src)
/obj/effect/landmark/costume/fakewizard/New()

View File

@@ -148,7 +148,7 @@
color="yellow"
New()
siemens_coefficient = pick(0,0,0.25,0.25,0.5,0.5,1)
siemens_coefficient = pick(0,0,0.25,0.5,0.5,0.75,1.5)
heat_transfer_coefficient = pick(0.01,0.1,0.25,0.25,0.5)
/obj/item/clothing/gloves/captain

View File

@@ -143,7 +143,7 @@
product_amounts = "4;4;4;4;4;12;5;4;2"
product_hidden = "/obj/item/weapon/reagent_containers/pill/tox;/obj/item/weapon/reagent_containers/pill/stox;/obj/item/weapon/reagent_containers/pill/antitox"
product_hideamt = "3;4;6"
product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?"
product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!"
/obj/machinery/vending/wallmed1
name = "NanoMed"
@@ -243,7 +243,7 @@
product_hideamt = "20"
product_ads = "For Tsar and Country.;Have you fulfilled your nutrition quota today?;Very nice!;We are simple people, for this is all we eat.;If there is a person, there is a problem. If there is no person, then there is no problem."
/obj/machinery/vending/tool
/obj/machinery/vending/tool//Who did this and why is it here? I don't even
name = "YouTool"
desc = "Tools for tools."
icon_state = "tool"
@@ -255,3 +255,17 @@
product_hideamt = "2;2"
product_coin = "/obj/item/clothing/gloves/yellow"
product_coin_amt = "1"
/obj/machinery/vending/engivend//Source of tools and what have you for Engineering (Needed on account of the public auto-lathe being removed) -Sieve
name = "Engi-Vend"
desc = "Spare tool vending. What? Did you expect some witty description?"
icon_state = "engivend"
icon_deny = "engivend-deny"
req_access_txt = "10" //Engineering access
product_paths = "/obj/item/weapon/cable_coil/random;/obj/item/weapon/crowbar;/obj/item/weapon/weldingtool/largetank;/obj/item/weapon/wirecutters;/obj/item/weapon/wrench;/obj/item/device/t_scanner;/obj/item/device/multitool;/obj/item/weapon/airlock_electronics;/obj/item/weapon/module/power_control"
product_amounts = "10;5;3;5;5;5;3;5;5"
product_hidden = "/obj/item/weapon/weldingtool/hugetank;/obj/item/clothing/gloves/fyellow"
product_hideamt = "2;2"
product_coin = "/obj/item/weapon/storage/belt/utility"
product_coin_amt = "3"

View File

@@ -159,6 +159,7 @@
name = "wall"
desc = "A huge chunk of metal used to seperate rooms."
icon = 'walls.dmi'
var/mineral = "metal"
opacity = 1
density = 1
blocks_air = 1
@@ -168,6 +169,80 @@
var/walltype = "wall"
/turf/simulated/wall/mineral
name = "mineral wall"
desc = "This shouldn't exist"
icon_state = ""
var/last_event = 0
var/active = null
/turf/simulated/wall/mineral/New()
switch(mineral)
if("gold")
name = "gold wall"
desc = "A wall with gold plating. Swag!"
icon_state = "gold0"
walltype = "gold"
// var/electro = 1
// var/shocked = null
if("silver")
name = "silver wall"
desc = "A wall with silver plating. Shiny!"
icon_state = "silver0"
walltype = "silver"
// var/electro = 0.75
// var/shocked = null
if("diamond")
name = "diamond wall"
desc = "A wall with diamond plating. You monster."
icon_state = "diamond0"
walltype = "diamond"
if("uranium")
name = "uranium wall"
desc = "A wall with uranium plating. This is probably a bad idea."
icon_state = "uranium0"
walltype = "uranium"
if("plasma")
name = "plasma wall"
desc = "A wall with plasma plating. This is definately a bad idea."
icon_state = "plasma0"
walltype = "plasma"
if("clown")
name = "bananium wall"
desc = "A wall with bananium plating. Honk!"
icon_state = "clown0"
walltype = "clown"
if("sandstone")
name = "sandstone wall"
desc = "A wall with sandstone plating."
icon_state = "sandstone0"
walltype = "sandstone"
..()
/turf/simulated/wall/mineral/proc/radiate()
if(!active)
if(world.time > last_event+15)
active = 1
for(var/mob/living/L in range(3,src))
L.apply_effect(12,IRRADIATE,0)
for(var/turf/simulated/wall/mineral/T in range(3,src))
if(T.mineral == "uranium")
T.radiate()
last_event = world.time
active = null
return
return
/*/turf/simulated/wall/mineral/proc/shock()
if (electrocute_mob(user, C, src))
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
return 1
else
return 0
*/
/turf/simulated/wall/cult
name = "wall"
desc = "The patterns engraved on the wall seem to shift as you try to focus on them. You feel sick"
@@ -241,7 +316,7 @@
return L
/*
/turf/simulated/wall/mineral
icon = 'mineral_walls.dmi'
walltype = "iron"
@@ -342,3 +417,4 @@
hardness -= toxinsToDeduce/100
CheckHardness()
*/

View File

@@ -276,9 +276,10 @@
command_alert("High levels of radiation detected near the station. Please report to the Med-bay if you feel strange.", "Anomaly Alert")
world << sound('radiation.ogg')
for(var/mob/living/carbon/human/H in world)
H.radiation += rand(5,25)
if(istype(H,/mob/living/carbon/human))
H.apply_effect((rand(15,75)),IRRADIATE,0)
if (prob(5))
H.radiation += rand(30,50)
H.apply_effect((rand(90,150)),IRRADIATE,0)
if (prob(25))
if (prob(75))
randmutb(H)
@@ -287,7 +288,7 @@
randmutg(H)
domutcheck(H,null,1)
for(var/mob/living/carbon/monkey/M in world)
M.radiation += rand(5,25)
M.apply_effect((rand(15,75)),IRRADIATE,0)
//Changing this to affect the main station. Blame Urist. --Pete
/proc/prison_break() // -- Callagan

View File

@@ -15,6 +15,8 @@
var/lastfired = 0
var/shot_delay = 3 //.3 seconds between shots
var/lasercolor = ""
var/disabled = 0
//var/lasers = 0
@@ -68,11 +70,12 @@
item_state = "ed209_frame"
var/build_step = 0
var/created_name = "ED-209 Security Robot" //To preserve the name if it's a unique securitron I guess
var/lasercolor = ""
/obj/machinery/bot/ed209/New()
..()
src.icon_state = "ed209[src.on]"
src.icon_state = "[lasercolor]ed209[src.on]"
spawn(3)
src.botcard = new /obj/item/weapon/card/id(src)
src.botcard.access = get_access("Detective")
@@ -82,10 +85,17 @@
if(radio_controller)
radio_controller.add_object(src, control_freq, filter = RADIO_SECBOT)
radio_controller.add_object(src, beacon_freq, filter = RADIO_NAVBEACONS)
if(lasercolor)
req_access = list(access_maint_tunnels,access_clown,access_mime)
arrest_type = 1
if(lasercolor == "b")
name = pick("BLUE BALLER","SANIC","BLUE KILLDEATH MURDERBOT")
if(lasercolor == "r")
name = pick("RED RAMPAGE","RED ROVER","RED KILLDEATH MURDERBOT")
/obj/machinery/bot/ed209/turn_on()
. = ..()
src.icon_state = "ed209[src.on]"
src.icon_state = "[lasercolor]ed209[src.on]"
src.mode = SECBOT_IDLE
src.updateUsrDialog()
@@ -96,7 +106,7 @@
src.anchored = 0
src.mode = SECBOT_IDLE
walk_to(src,0)
src.icon_state = "ed209[src.on]"
src.icon_state = "[lasercolor]ed209[src.on]"
src.updateUsrDialog()
/obj/machinery/bot/ed209/attack_hand(mob/user as mob)
@@ -181,7 +191,7 @@ Auto Patrol: []"},
src.anchored = 0
src.emagged = 1
src.on = 1
src.icon_state = "ed209[src.on]"
src.icon_state = "[lasercolor]ed209[src.on]"
mode = SECBOT_IDLE
/obj/machinery/bot/ed209/process()
@@ -210,7 +220,7 @@ Auto Patrol: []"},
if (targets.len>0)
var/mob/t = pick(targets)
if (istype(t, /mob/living))
if (t.stat!=2)
if ((t.stat!=2) && (t.lying != 1))
//src.speak("selected target: " + t.real_name)
src.shootAt(t)
switch(mode)
@@ -222,7 +232,8 @@ Auto Patrol: []"},
mode = SECBOT_START_PATROL // switch to patrol mode
if(SECBOT_HUNT) // hunting for perp
if(src.lasercolor)//Lasertag bots do not tase or arrest anyone, just patrol and shoot and whatnot
return
// if can't reach perp for long enough, go idle
if (src.frustration >= 8)
// for(var/mob/O in hearers(src, null))
@@ -236,9 +247,9 @@ Auto Patrol: []"},
if (target) // make sure target exists
if (get_dist(src, src.target) <= 1) // if right next to perp
playsound(src.loc, 'Egloves.ogg', 50, 1, -1)
src.icon_state = "ed209-c"
src.icon_state = "[lasercolor]ed209-c"
spawn(2)
src.icon_state = "ed209[src.on]"
src.icon_state = "[lasercolor]ed209[src.on]"
var/mob/living/carbon/M = src.target
var/maxstuns = 4
if (istype(M, /mob/living/carbon/human))
@@ -270,6 +281,8 @@ Auto Patrol: []"},
src.frustration = 0
if(SECBOT_PREP_ARREST) // preparing to arrest target
if(src.lasercolor)
return
if (!target)
mode = SECBOT_IDLE
src.anchored = 0
@@ -305,6 +318,8 @@ Auto Patrol: []"},
// src.speak(arrest_message)
if(SECBOT_ARREST) // arresting
if(src.lasercolor)
return
if (!target || src.target.handcuffed)
src.anchored = 0
mode = SECBOT_IDLE
@@ -640,6 +655,22 @@ Auto Patrol: []"},
if((istype(perp:wear_id, /obj/item/weapon/card/id/syndicate)) && src.idcheck)
threatcount -= 2
if(src.lasercolor == "b")//Lasertag turrets target the opposing team, how great is that? -Sieve
if(istype(perp.wear_suit, /obj/item/clothing/suit/redtag))
threatcount += 4
if((istype(perp:r_hand,/obj/item/weapon/gun/energy/laser/redtag)) || (istype(perp:l_hand,/obj/item/weapon/gun/energy/laser/redtag)))
threatcount += 4
if(istype(perp:belt, /obj/item/weapon/gun/energy/laser/redtag))
threatcount += 2
if(src.lasercolor == "r")
if(istype(perp.wear_suit, /obj/item/clothing/suit/bluetag))
threatcount += 4
if((istype(perp:r_hand,/obj/item/weapon/gun/energy/laser/bluetag)) || (istype(perp:l_hand,/obj/item/weapon/gun/energy/laser/bluetag)))
threatcount += 4
if(istype(perp:belt, /obj/item/weapon/gun/energy/laser/bluetag))
threatcount += 2
if (src.check_records)
for (var/datum/data/record/E in data_core.general)
var/perpname = perp.name
@@ -697,8 +728,15 @@ Auto Patrol: []"},
Sa.created_name = src.name
new /obj/item/device/assembly/prox_sensor(Tsec)
var/obj/item/weapon/melee/baton/B = new /obj/item/weapon/melee/baton(Tsec)
B.charges = 0
if(!lasercolor)
var/obj/item/weapon/gun/energy/taser/G = new /obj/item/weapon/gun/energy/taser(Tsec)
G.power_supply.charge = 0
else if(lasercolor == "b")
var/obj/item/weapon/gun/energy/laser/bluetag/G = new /obj/item/weapon/gun/energy/laser/bluetag(Tsec)
G.power_supply.charge = 0
else if(lasercolor == "r")
var/obj/item/weapon/gun/energy/laser/redtag/G = new /obj/item/weapon/gun/energy/laser/redtag(Tsec)
G.power_supply.charge = 0
if (prob(50))
new /obj/item/robot_parts/l_arm(Tsec)
@@ -728,10 +766,21 @@ Auto Patrol: []"},
// playsound(src.loc, 'ed209_shoot.ogg', 50, 0)
var/obj/item/projectile/A
if(!lasercolor)
if (src.emagged)
A = new /obj/item/projectile/beam( loc )
else
A = new /obj/item/projectile/energy/electrode( loc )
else if(lasercolor == "b")
if (src.emagged)
A = new /obj/item/projectile/energy/electrode( loc )
else
A = new /obj/item/projectile/bluetag( loc )
else if(lasercolor == "r")
if (src.emagged)
A = new /obj/item/projectile/energy/electrode( loc )
else
A = new /obj/item/projectile/redtag( loc )
if (!( istype(U, /turf) ))
//A = null
@@ -813,7 +862,23 @@ Auto Patrol: []"},
src.item_state = "ed209_shell"
src.icon_state = "ed209_shell"
del(W)
else if((istype(W, /obj/item/weapon/weldingtool)) && (src.build_step == 3))
else if(istype(W, /obj/item/clothing/suit/bluetag) && (src.build_step == 2))
src.build_step++
user << "You add the armor to [src]!"
src.name = "vest/legs/frame assembly"
lasercolor = "b"
src.item_state = "[lasercolor]ed209_shell"
src.icon_state = "[lasercolor]ed209_shell"
del(W)
else if(istype(W, /obj/item/clothing/suit/redtag) && (src.build_step == 2))
src.build_step++
user << "You add the armor to [src]!"
src.name = "vest/legs/frame assembly"
lasercolor = "r"
src.item_state = "[lasercolor]ed209_shell"
src.icon_state = "[lasercolor]ed209_shell"
del(W)
else if(istype(W, /obj/item/weapon/weldingtool) && src.build_step == 3)
var/obj/item/weapon/weldingtool/WT = W
if(WT.remove_fuel(0,user))
src.build_step++
@@ -823,15 +888,15 @@ Auto Patrol: []"},
src.build_step++
user << "You add the helmet to [src]!"
src.name = "covered and shielded frame assembly"
src.item_state = "ed209_hat"
src.icon_state = "ed209_hat"
src.item_state = "[lasercolor]ed209_hat"
src.icon_state = "[lasercolor]ed209_hat"
del(W)
else if(isprox(W) && (src.build_step == 5))
src.build_step++
user << "You add the prox sensor to [src]!"
src.name = "prox/covered and armed the frame assembly"
src.item_state = "ed209_prox"
src.icon_state = "ed209_prox"
src.item_state = "[lasercolor]ed209_prox"
src.icon_state = "[lasercolor]ed209_prox"
del(W)
else if(istype(W, /obj/item/weapon/cable_coil) && (src.build_step == 6) )
var/obj/item/weapon/cable_coil/coil = W
@@ -843,12 +908,26 @@ Auto Patrol: []"},
src.build_step++
user << "\blue You wire the ED-209 assembly!"
src.name = "Wired ED-209 Assembly"
else if(istype(W, /obj/item/weapon/gun/energy/taser) && (src.build_step == 7))
else if(istype(W, /obj/item/weapon/gun/energy/taser) && (src.build_step == 7) && (!lasercolor))
src.build_step++
user << "You add the taser gun to [src]!"
src.name = "Taser/Wired ED-209 Assembly"
src.item_state = "ed209_taser"
src.icon_state = "ed209_taser"
src.item_state = "[lasercolor]ed209_taser"
src.icon_state = "[lasercolor]ed209_taser"
del(W)
else if(istype(W, /obj/item/weapon/gun/energy/laser/bluetag) && (src.build_step == 7) && (lasercolor == "b"))
src.build_step++
user << "You add the lasertag gun to [src]!"
src.name = "Bluetag ED-209 Assembly"
src.item_state = "[lasercolor]ed209_taser"
src.icon_state = "[lasercolor]ed209_taser"
del(W)
else if(istype(W, /obj/item/weapon/gun/energy/laser/redtag) && (src.build_step == 7) && (lasercolor == "r"))
src.build_step++
user << "You add the lasertag gun to [src]!"
src.name = "Redtag ED-209 Assembly"
src.item_state = "[lasercolor]ed209_taser"
src.icon_state = "[lasercolor]ed209_taser"
del(W)
else if(istype(W, /obj/item/weapon/screwdriver) && (src.build_step == 8) )
playsound(src.loc, 'Screwdriver.ogg', 100, 1)
@@ -865,6 +944,8 @@ Auto Patrol: []"},
var/obj/machinery/bot/ed209/S = new /obj/machinery/bot/ed209
S.loc = get_turf(src)
S.name = src.created_name
S.lasercolor = src.lasercolor
S.New()
del(W)
del(src)
@@ -878,3 +959,15 @@ Auto Patrol: []"},
src.created_name = t
/obj/machinery/bot/ed209/bullet_act(var/obj/item/projectile/Proj)
if((src.lasercolor == "b") && (src.disabled == 0))
if(istype(Proj, /obj/item/projectile/redtag))
src.disabled = 1
sleep(100)
src.disabled = 0
if((src.lasercolor == "r") && (src.disabled == 0))
if(istype(Proj, /obj/item/projectile/bluetag))
src.disabled = 1
sleep(100)
src.disabled = 0
..()

View File

@@ -222,6 +222,94 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }.
doortype = 23
glass = 1
/obj/machinery/door/airlock/gold
name = "Gold Airlock"
icon = 'Doorgold.dmi'
var/mineral = "gold"
doortype = 24
/obj/machinery/door/airlock/silver
name = "Silver Airlock"
icon = 'Doorsilver.dmi'
var/mineral = "silver"
doortype = 25
/obj/machinery/door/airlock/diamond
name = "Diamond Airlock"
icon = 'Doordiamond.dmi'
var/mineral = "diamond"
doortype = 26
/obj/machinery/door/airlock/uranium
name = "Uranium Airlock"
desc = "And they said I was crazy."
icon = 'Dooruranium.dmi'
var/mineral = "uranium"
doortype = 27
var/last_event = 0
/obj/machinery/door/airlock/uranium/process()
if(world.time > last_event+20)
if(prob(50))
radiate()
last_event = world.time
..()
/obj/machinery/door/airlock/uranium/proc/radiate()
for(var/mob/living/L in range (3,src))
L.apply_effect(15,IRRADIATE,0)
return
/obj/machinery/door/airlock/plasma
name = "Plasma Airlock"
desc = "No way this can end badly."
icon = 'Doorplasma.dmi'
var/mineral = "plasma"
doortype = 28
/obj/machinery/door/airlock/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
if(exposed_temperature > 300)
PlasmaBurn(exposed_temperature)
/obj/machinery/door/airlock/plasma/proc/ignite(exposed_temperature)
if(exposed_temperature > 300)
PlasmaBurn(exposed_temperature)
/obj/machinery/door/airlock/plasma/proc/PlasmaBurn(temperature)
for(var/turf/simulated/floor/target_tile in range(2,loc))
if(target_tile.parent && target_tile.parent.group_processing)
target_tile.parent.suspend_group_processing()
var/datum/gas_mixture/napalm = new
var/toxinsToDeduce = 35
napalm.toxins = toxinsToDeduce
napalm.temperature = 400+T0C
target_tile.assume_air(napalm)
spawn (0) target_tile.hotspot_expose(temperature, 400)
new/obj/structure/door_assembly/door_assembly_0( src.loc )
for(var/obj/structure/falsewall/plasma/F in range(3,src))//Hackish as fuck, but until temperature_expose works, there is nothing I can do -Sieve
var/turf/T = get_turf(F)
T.ReplaceWithMineralWall("plasma")
del (F)
for(var/turf/simulated/wall/mineral/W in range(3,src))
if(mineral == "plasma")
W.ignite((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame
for(var/obj/machinery/door/airlock/plasma/D in range(3,src))
D.ignite(temperature/4)
del (src)
/obj/machinery/door/airlock/clown
name = "Bananium Airlock"
desc = "Honkhonkhonk"
icon = 'Doorbananium.dmi'
var/mineral = "clown"
doortype = 29
/obj/machinery/door/airlock/sandstone
name = "Sandstone Airlock"
icon = 'Doorsand.dmi'
var/mineral = "sandstone"
doortype = 30
/*
About the new airlock wires panel:
* An airlock wire dialog can be accessed by the normal way or by using wirecutters or a multitool on the door while the wire-panel is open. This would show the following wires, which you can either wirecut/mend or send a multitool pulse through. There are 9 wires.
@@ -1031,9 +1119,9 @@ About the new airlock wires panel:
if(4) new/obj/structure/door_assembly/door_assembly_med( src.loc )
if(5) new/obj/structure/door_assembly/door_assembly_mai( src.loc )
if(6) new/obj/structure/door_assembly/door_assembly_ext( src.loc )
if(7) new/obj/structure/door_assembly/door_assembly_g( src.loc )
if(7) new/obj/structure/door_assembly/door_assembly_glass( src.loc )
if(14) new/obj/structure/door_assembly/door_assembly_com/glass( src.loc )
if(15) new/obj/structure/door_assembly/door_assembly_eng/glass( src.loc ) //issue 301 -mysthic
if(15) new/obj/structure/door_assembly/door_assembly_eng/glass( src.loc )
if(16) new/obj/structure/door_assembly/door_assembly_sec/glass( src.loc )
if(17) new/obj/structure/door_assembly/door_assembly_med/glass( src.loc )
if(18) new/obj/structure/door_assembly/door_assembly_min( src.loc )
@@ -1042,6 +1130,14 @@ About the new airlock wires panel:
if(21) new/obj/structure/door_assembly/door_assembly_research/glass( src.loc )
if(22) new/obj/structure/door_assembly/door_assembly_min/glass( src.loc )
if(23) new/obj/structure/door_assembly/door_assembly_atmo/glass( src.loc )
if(24) new/obj/structure/door_assembly/door_assembly_gold( src.loc )
if(25) new/obj/structure/door_assembly/door_assembly_silver( src.loc )
if(26) new/obj/structure/door_assembly/door_assembly_diamond( src.loc )
if(27) new/obj/structure/door_assembly/door_assembly_uranium( src.loc )
if(28) new/obj/structure/door_assembly/door_assembly_plasma( src.loc )
if(29) new/obj/structure/door_assembly/door_assembly_clown( src.loc )
if(30) new/obj/structure/door_assembly/door_assembly_sandstone( src.loc )
var/obj/item/weapon/airlock_electronics/ae
if(!electronics)
ae = new/obj/item/weapon/airlock_electronics( src.loc )
@@ -1131,12 +1227,19 @@ About the new airlock wires panel:
..()
return
/obj/machinery/door/airlock/plasma/attackby(C as obj, mob/user as mob)
if(C)
ignite(is_hot(C))
..()
/obj/machinery/door/airlock/open()
if(src.welded || src.locked || (!src.arePowerSystemsOn()) || (stat & NOPOWER) || src.isWireCut(AIRLOCK_WIRE_OPEN_DOOR) || src.operating)
return 0
use_power(50)
if(istype(src, /obj/machinery/door/airlock/glass))
playsound(src.loc, 'windowdoor.ogg', 100, 1)
if(istype(src, /obj/machinery/door/airlock/clown))
playsound(src.loc, 'bikehorn.ogg', 30, 1)
else
playsound(src.loc, 'airlock.ogg', 30, 1)
if(src.closeOther != null && istype(src.closeOther, /obj/machinery/door/airlock/) && !src.closeOther.density)
@@ -1174,6 +1277,8 @@ About the new airlock wires panel:
use_power(50)
if(istype(src, /obj/machinery/door/airlock/glass))
playsound(src.loc, 'windowdoor.ogg', 30, 1)
if(istype(src, /obj/machinery/door/airlock/clown))
playsound(src.loc, 'bikehorn.ogg', 30, 1)
else
playsound(src.loc, 'airlock.ogg', 30, 1)
var/obj/structure/window/killthis = (locate(/obj/structure/window) in get_turf(src))

View File

@@ -202,6 +202,7 @@
if(!operating) operating = 1
animate("opening")
icon_state = "door0"
src.sd_SetOpacity(0)
sleep(10)
src.layer = 2.7

View File

@@ -23,6 +23,7 @@
req_access = list(access_security)
power_channel = EQUIP // drains power from the EQUIPMENT channel
var/lasercolor = ""
var/raised = 0 // if the turret cover is "open" and the turret is raised
var/raising= 0 // if the turret is currently opening or closing its cover
var/health = 80 // the turret's health
@@ -30,6 +31,11 @@
var/installation // the type of weapon installed
var/gun_charge = 0 // the charge of the gun inserted
var/projectile = null //holder for bullettype
var/reqpower = 0 //holder for power needed
var/sound = null//So the taser can have sound
var/iconholder = null//holder for the icon_state
var/egun = null//holder to handle certain guns switching bullettypes
var/obj/machinery/porta_turret_cover/cover = null // the cover that is covering this turret
var/last_fired = 0 // 1: if the turret is cooling down from a shot, 0: turret is ready to fire
@@ -46,11 +52,13 @@
//var/emagged = 0 // 1: emagged, 0: not emagged
var/on = 1 // determines if the turret is on
var/disabled = 0
var/datum/effect/effect/system/spark_spread/spark_system // the spark system, used for generating... sparks?
New()
..()
icon_state = "[lasercolor]grey_target_prism"
// Sets up a spark system
spark_system = new /datum/effect/effect/system/spark_spread
spark_system.set_up(5, 0, src)
@@ -131,22 +139,22 @@ Neutralize All Unidentified Life Signs: []<BR>"},
icon_state = "turretCover"
return
if(stat & BROKEN)
icon_state = "destroyed_target_prism"
icon_state = "[lasercolor]destroyed_target_prism"
else
if( powered() )
if (on)
if (installation == /obj/item/weapon/gun/energy/laser || installation == /obj/item/weapon/gun/energy/pulse_rifle)
// laser guns and pulse rifles have an orange icon
icon_state = "orange_target_prism"
icon_state = "[lasercolor]orange_target_prism"
else
// anything else has a blue icon
icon_state = "target_prism"
icon_state = "[lasercolor]target_prism"
else
icon_state = "grey_target_prism"
icon_state = "[lasercolor]grey_target_prism"
stat &= ~NOPOWER
else
spawn(rand(0, 15))
src.icon_state = "grey_target_prism"
src.icon_state = "[lasercolor]grey_target_prism"
stat |= NOPOWER
@@ -165,6 +173,7 @@ Neutralize All Unidentified Life Signs: []<BR>"},
var/obj/item/weapon/gun/energy/Gun = new installation(src.loc)
Gun.power_supply.charge=gun_charge
Gun.update_icon()
lasercolor = null
if(prob(50)) new /obj/item/stack/sheet/metal( loc, rand(1,4))
if(prob(50)) new /obj/item/device/assembly/prox_sensor(locate(x,y,z))
else
@@ -192,7 +201,7 @@ Neutralize All Unidentified Life Signs: []<BR>"},
if(!anchored)
anchored = 1
invisibility = 2
icon_state = "grey_target_prism"
icon_state = "[lasercolor]grey_target_prism"
user << "You secure the exterior bolts on the turret."
cover=new/obj/machinery/porta_turret_cover(src.loc) // create a new turret. While this is handled in process(), this is to workaround a bug where the turret becomes invisible for a split second
cover.Parent_Turret = src // make the cover's parent src
@@ -239,6 +248,16 @@ Neutralize All Unidentified Life Signs: []<BR>"},
if(prob(45) && Proj.damage > 0) src.spark_system.start()
if (src.health <= 0)
src.die() // the death process :(
if((src.lasercolor == "b") && (src.disabled == 0))
if(istype(Proj, /obj/item/projectile/redtag))
src.disabled = 1
sleep(100)
src.disabled = 0
if((src.lasercolor == "r") && (src.disabled == 0))
if(istype(Proj, /obj/item/projectile/bluetag))
src.disabled = 1
sleep(100)
src.disabled = 0
return
/obj/machinery/porta_turret/emp_act(severity)
@@ -322,7 +341,11 @@ Neutralize All Unidentified Life Signs: []<BR>"},
if(!istype(C, /mob/living/silicon) && ai) // If it's set to attack all nonsilicons, target them!
if(C.lying)
if(lasercolor)
continue
else
secondarytargets += C
continue
else
targets += C
continue
@@ -396,7 +419,7 @@ Neutralize All Unidentified Life Signs: []<BR>"},
cover.icon_state="turretCover"
raised=0
invisibility=2
icon_state="grey_target_prism"
icon_state="[lasercolor]grey_target_prism"
/obj/machinery/porta_turret/proc/assess_perp(mob/living/carbon/human/perp as mob)
@@ -412,7 +435,7 @@ Neutralize All Unidentified Life Signs: []<BR>"},
if(auth_weapons) // check for weapon authorization
if((isnull(perp:wear_id)) || (istype(perp:wear_id, /obj/item/weapon/card/id/syndicate)))
if(src.allowed(perp)) // if the perp has security access, return 0
if((src.allowed(perp)) && (!lasercolor)) // if the perp has security access, return 0
return 0
if((istype(perp.l_hand, /obj/item/weapon/gun) && !istype(perp.l_hand, /obj/item/weapon/gun/projectile/shotgun)) || istype(perp.l_hand, /obj/item/weapon/melee/baton))
@@ -424,6 +447,22 @@ Neutralize All Unidentified Life Signs: []<BR>"},
if(istype(perp:belt, /obj/item/weapon/gun) || istype(perp:belt, /obj/item/weapon/melee/baton))
threatcount += 2
if(src.lasercolor == "b")//Lasertag turrets target the opposing team, how great is that? -Sieve
if(istype(perp.wear_suit, /obj/item/clothing/suit/redtag))
threatcount += 4
if((istype(perp:r_hand,/obj/item/weapon/gun/energy/laser/redtag)) || (istype(perp:l_hand,/obj/item/weapon/gun/energy/laser/redtag)))
threatcount += 4
if(istype(perp:belt, /obj/item/weapon/gun/energy/laser/redtag))
threatcount += 2
if(src.lasercolor == "r")
if(istype(perp.wear_suit, /obj/item/clothing/suit/bluetag))
threatcount += 4
if((istype(perp:r_hand,/obj/item/weapon/gun/energy/laser/bluetag)) || (istype(perp:l_hand,/obj/item/weapon/gun/energy/laser/bluetag)))
threatcount += 4
if(istype(perp:belt, /obj/item/weapon/gun/energy/laser/bluetag))
threatcount += 2
if (src.check_records) // if the turret can check the records, check if they are set to *Arrest* on records
for (var/datum/data/record/E in data_core.general)
var/perpname = perp.name
@@ -451,6 +490,7 @@ Neutralize All Unidentified Life Signs: []<BR>"},
/obj/machinery/porta_turret/proc/shootAt(var/atom/movable/target) // shoots at a target
if(!emagged) // if it hasn't been emagged, it has to obey a cooldown rate
if(last_fired || !raised) return // prevents rapid-fire shooting, unless it's been emagged
last_fired = 1
@@ -470,99 +510,108 @@ Neutralize All Unidentified Life Signs: []<BR>"},
// any emagged turrets will shoot extremely fast! This not only is deadly, but drains a lot power!
var/obj/item/projectile/A
if(!projectile)
lasercolor = ""
req_access = list(access_security)
if(!installation)// if for some reason the turret has no gun (ie, admin spawned) it resorts to basic taser shots
A = new /obj/item/projectile/energy/electrode( loc )
if(!emagged) use_power(200)
else use_power(400)
playsound(src.loc, 'Taser.ogg', 75, 1)
icon_state = "target_prism"
projectile = /obj/item/projectile/energy/electrode
reqpower = 200
sound = 1
iconholder = 1
else
// Shooting Code:
var/obj/item/weapon/gun/energy/E=new installation
// All energy-based weapons are applicable
if(istype(E, /obj/item/weapon/gun/energy/laser/bluetag))
projectile = /obj/item/projectile/bluetag
iconholder = null
reqpower = 100
lasercolor = "b"
req_access = list(access_maint_tunnels,access_clown,access_mime)
else if(istype(E, /obj/item/weapon/gun/energy/laser/redtag))
projectile = /obj/item/projectile/redtag
iconholder = null
reqpower = 100
lasercolor = "r"
req_access = list(access_maint_tunnels,access_clown,access_mime)
else if(istype(E, /obj/item/weapon/gun/energy/pulse_rifle))
projectile = /obj/item/projectile/beam/pulse
iconholder = null
reqpower = 700
else if(istype(E, /obj/item/weapon/gun/energy/staff))
projectile = /obj/item/projectile/change
iconholder = 1
reqpower = 700
else if(istype(E, /obj/item/weapon/gun/energy/ionrifle))
projectile = /obj/item/projectile/ion
iconholder = 1
reqpower = 700
else if(istype(E, /obj/item/weapon/gun/energy/taser) || istype(E, /obj/item/weapon/gun/energy/stunrevolver))
projectile = /obj/item/projectile/energy/electrode
iconholder = 1
reqpower = 200
else if(istype(E, /obj/item/weapon/gun/energy/lasercannon))
projectile = /obj/item/projectile/beam/heavylaser
iconholder = null
reqpower = 600
else if(istype(E, /obj/item/weapon/gun/energy/decloner))
projectile = /obj/item/projectile/energy/declone
iconholder = null
reqpower = 600
else if(istype(E, /obj/item/weapon/gun/energy/crossbow/largecrossbow))
projectile = /obj/item/projectile/energy/bolt/large
iconholder = null
reqpower = 125
else if(istype(E, /obj/item/weapon/gun/energy/crossbow))
projectile = /obj/item/projectile/energy/bolt
iconholder = null
reqpower = 50
else if(istype(E, /obj/item/weapon/gun/energy/laser))
projectile = /obj/item/projectile/beam
iconholder = null
reqpower = 500
else // Energy gun shots
projectile = /obj/item/projectile/energy/electrode// if it hasn't been emagged, it uses normal taser shots
iconholder = 1
egun = 1
reqpower = 200
var/obj/item/projectile/A = projectile
var/obj/item/weapon/gun/energy/E=new installation
if(iconholder)
icon_state = "[lasercolor]target_prism"
else
icon_state = "[lasercolor]orange_target_prism"
if(sound)
playsound(src.loc, 'Taser.ogg', 75, 1)
A = new projectile( loc )
A.original = target.loc
if(!emagged)
use_power(reqpower)
else
use_power((reqpower*2))
if(egun)// if it has been emagged, use laser shots
projectile = /obj/item/projectile/beam
iconholder = null
reqpower = 500
// Shooting Code:
if(!E.silenced)
playsound(src.loc, E.fire_sound, 75, 1)
else
playsound(src.loc, E.fire_sound, 10, 1)
// All energy-based weapons are applicable
if(istype(E, /obj/item/weapon/gun/energy/laser))
A = new /obj/item/projectile/beam( loc )
A.original = target.loc
icon_state = "orange_target_prism"
if(!emagged) use_power(500)
else use_power(1000)
else if(istype(E, /obj/item/weapon/gun/energy/pulse_rifle))
A = new /obj/item/projectile/beam/pulse( loc )
A.original = target.loc
icon_state = "orange_target_prism"
if(!emagged) use_power(700)
else use_power(1400)
else if(istype(E, /obj/item/weapon/gun/energy/staff))
A = new /obj/item/projectile/change( loc )
A.original = target.loc
icon_state = "target_prism"
if(!emagged) use_power(700)
else use_power(1400)
else if(istype(E, /obj/item/weapon/gun/energy/ionrifle))
A = new /obj/item/projectile/ion( loc )
A.original = target.loc
icon_state = "target_prism"
if(!emagged) use_power(700)
else use_power(1400)
else if(istype(E, /obj/item/weapon/gun/energy/taser) || istype(E, /obj/item/weapon/gun/energy/stunrevolver))
A = new /obj/item/projectile/energy/electrode( loc )
icon_state = "target_prism"
if(!emagged) use_power(200)
else use_power(400)
else if(istype(E, /obj/item/weapon/gun/energy/lasercannon))
A = new /obj/item/projectile/beam/heavylaser( loc )
A.original = target.loc
icon_state = "orange_target_prism"
if(!emagged) use_power(600)
else use_power(1200)
else if(istype(E, /obj/item/weapon/gun/energy/decloner))
A = new /obj/item/projectile/energy/declone( loc )
A.original = target.loc
icon_state = "orange_target_prism"
if(!emagged) use_power(600)
else use_power(1200)
else if(istype(E, /obj/item/weapon/gun/energy/crossbow))
A = new /obj/item/projectile/energy/bolt( loc )
A.original = target.loc
icon_state = "orange_target_prism"
if(!emagged) use_power(50)
else use_power(100)
else if(istype(E, /obj/item/weapon/gun/energy/crossbow/largecrossbow))
A = new /obj/item/projectile/energy/bolt/large( loc )
A.original = target.loc
icon_state = "orange_target_prism"
if(!emagged) use_power(125)
else use_power(250)
else // Energy gun shots
if(!emagged) // if it hasn't been emagged, it uses normal taser shots
A = new /obj/item/projectile/energy/electrode( loc )
icon_state = "target_prism"
use_power(200)
else // if it has been emagged, use laser shots
A = new /obj/item/projectile/beam( loc )
A.original = target.loc
icon_state = "orange_target_prism"
use_power(1000)
del(E)
A.current = T
A.yo = U.y - T.y

View File

@@ -54,6 +54,8 @@
// 2 = cannons
// 3 = pulse
// 4 = change (HONK)
// 5 = bluetag
// 6 = redtag
var/health = 80
var/obj/machinery/turretcover/cover = null
var/popping = 0
@@ -210,6 +212,10 @@
A = new /obj/item/projectile/beam/pulse( loc )
if(4)
A = new /obj/item/projectile/change( loc )
if(5)
A = new /obj/item/projectile/bluetag( loc )
if(6)
A = new /obj/item/projectile/redtag( loc )
A.original = target.loc
use_power(500)
else

View File

@@ -15,17 +15,40 @@
internal_damage_threshold = 35
max_equip = 3
/obj/mecha/combat/gygax/dark
desc = "A lightweight exosuit used by Nanotrasen Death Squads. A significantly upgraded Gygax security mech."
name = "Dark Gygax"
icon_state = "darkgygax"
health = 400
deflect_chance = 25
damage_absorption = list("brute"=0.6,"fire"=0.8,"bullet"=0.6,"laser"=0.5,"energy"=0.65,"bomb"=0.8)
max_temperature = 4500
overload_coeff = 1
wreckage = /obj/effect/decal/mecha_wreckage/gygax/dark
max_equip = 4
step_energy_drain = 5
/*
/obj/mecha/combat/gygax/New()
/obj/mecha/combat/gygax/dark/New()
..()
weapons += new /datum/mecha_weapon/taser(src)
weapons += new /datum/mecha_weapon/laser(src)
weapons += new /datum/mecha_weapon/missile_rack/flashbang(src)
selected_weapon = weapons[1]
var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot
ME.attach(src)
ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang
ME.attach(src)
ME = new /obj/item/mecha_parts/mecha_equipment/teleporter
ME.attach(src)
ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay
ME.attach(src)
return
*/
/obj/mecha/combat/gygax/dark/add_cell(var/obj/item/weapon/cell/C=null)
if(C)
C.forceMove(src)
cell = C
return
cell = new(src)
cell.charge = 30000
cell.maxcharge = 30000
/obj/mecha/combat/gygax/verb/overload()
set category = "Exosuit Interface"

View File

@@ -916,6 +916,9 @@
process(var/obj/item/mecha_parts/mecha_equipment/generator/nuclear/EG)
if(..())
for(var/mob/living/carbon/M in view(EG.chassis))
if(istype(M,/mob/living/carbon/human))
M.apply_effect((EG.rad_per_cycle*3),IRRADIATE,0)
else
M.radiation += EG.rad_per_cycle
return 1

View File

@@ -324,6 +324,9 @@
do_after_cooldown()
return
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang//Because I am a heartless bastard -Sieve
name = "SOP-6 Grenade Launcher"
projectile = /obj/item/weapon/flashbang/clusterbang
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/banana_mortar
name = "Banana Mortar"

View File

@@ -34,6 +34,7 @@
var/list/queue = list()
var/processing_queue = 0
var/screen = "main"
var/opened = 0
var/temp
var/list/part_sets = list( //set names must be unique
"Cyborg"=list(
@@ -60,8 +61,7 @@
/obj/item/mecha_parts/part/odysseus_left_arm,
/obj/item/mecha_parts/part/odysseus_right_arm,
/obj/item/mecha_parts/part/odysseus_left_leg,
/obj/item/mecha_parts/part/odysseus_right_leg,
/obj/item/mecha_parts/part/odysseus_armour
/obj/item/mecha_parts/part/odysseus_right_leg
),
"Gygax"=list(
@@ -133,7 +133,7 @@
New()
/obj/machinery/mecha_part_fabricator/New()
..()
component_parts = list()
component_parts += new /obj/item/weapon/circuitboard/mechfab(src)
@@ -157,13 +157,36 @@
*/
return
Del()
/obj/machinery/mecha_part_fabricator/RefreshParts()
var/T = 0
for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts)
T += M.rating
res_max_amount = (187500+(T * 37500))
T = 0
for(var/obj/item/weapon/stock_parts/micro_laser/Ma in component_parts)
T += Ma.rating
if(T >= 1)
T -= 1
var/diff
diff = round(initial(resource_coeff) - (initial(resource_coeff)*(T))/25,0.01)
if(resource_coeff!=diff)
resource_coeff = diff
T = 0
for(var/obj/item/weapon/stock_parts/manipulator/Ml in component_parts)
T += Ml.rating
if(T>= 2)
T -= 2
diff = round(initial(time_coeff) - (initial(time_coeff)*(T))/25,0.01)
if(time_coeff!=diff)
time_coeff = diff
/obj/machinery/mecha_part_fabricator/Del()
for(var/atom/A in src)
del A
..()
return
proc/operation_allowed(mob/M)
/obj/machinery/mecha_part_fabricator/proc/operation_allowed(mob/M)
if(isrobot(M) || isAI(M))
return 1
if(!istype(req_access) || !req_access.len)
@@ -176,7 +199,7 @@
M << "<font color='red'>You don't have required permissions to use [src]</font>"
return 0
check_access(obj/item/weapon/card/id/I)
/obj/machinery/mecha_part_fabricator/check_access(obj/item/weapon/card/id/I)
if(istype(I, /obj/item/device/pda))
var/obj/item/device/pda/pda = I
I = pda.id
@@ -187,7 +210,7 @@
return 0
return 1
proc/emag()
/obj/machinery/mecha_part_fabricator/proc/emag()
sleep()
switch(emagged)
if(0)
@@ -207,7 +230,7 @@
src.visible_message("\icon[src] <b>[src]</b> beeps: \"No records in User DB\"")
return
proc/convert_part_set(set_name as text)
/obj/machinery/mecha_part_fabricator/proc/convert_part_set(set_name as text)
var/list/parts = part_sets[set_name]
if(istype(parts, /list))
for(var/i=1;i<=parts.len;i++)
@@ -220,7 +243,7 @@
return
proc/add_part_set(set_name as text,parts=null)
/obj/machinery/mecha_part_fabricator/proc/add_part_set(set_name as text,parts=null)
if(set_name in part_sets)//attempt to create duplicate set
return 0
if(isnull(parts))
@@ -230,7 +253,7 @@
convert_part_set(set_name)
return 1
proc/add_part_to_set(set_name as text,part)
/obj/machinery/mecha_part_fabricator/proc/add_part_to_set(set_name as text,part)
if(!part) return 0
src.add_part_set(set_name)//if no "set_name" set exists, create
var/list/part_set = part_sets[set_name]
@@ -247,7 +270,7 @@
part_set[++part_set.len] = apart
return 1
proc/remove_part_set(set_name as text)
/obj/machinery/mecha_part_fabricator/proc/remove_part_set(set_name as text)
for(var/i=1,i<=part_sets.len,i++)
if(part_sets[i]==set_name)
part_sets.Cut(i,++i)
@@ -277,7 +300,7 @@
return
*/
proc/output_parts_list(set_name)
/obj/machinery/mecha_part_fabricator/proc/output_parts_list(set_name)
var/output = ""
var/list/part_set = listgetindex(part_sets, set_name)
if(istype(part_set))
@@ -286,11 +309,11 @@
output += "<div class='part'>[output_part_info(part)]<br>\[[resources_available?"<a href='?src=\ref[src];part=\ref[part]'>Build</a> | ":null]<a href='?src=\ref[src];add_to_queue=\ref[part]'>Add to queue</a>\]\[<a href='?src=\ref[src];part_desc=\ref[part]'>?</a>\]</div>"
return output
proc/output_part_info(var/obj/item/mecha_parts/part)
/obj/machinery/mecha_part_fabricator/proc/output_part_info(var/obj/item/mecha_parts/part)
var/output = "[part.name] (Cost: [output_part_cost(part)]) [get_construction_time_w_coeff(part)/10]sec"
return output
proc/output_part_cost(var/obj/item/mecha_parts/part)
/obj/machinery/mecha_part_fabricator/proc/output_part_cost(var/obj/item/mecha_parts/part)
var/i = 0
var/output
for(var/p in part.construction_cost)
@@ -299,7 +322,7 @@
i++
return output
proc/output_available_resources()
/obj/machinery/mecha_part_fabricator/proc/output_available_resources()
var/output
for(var/resource in resources)
var/amount = min(res_max_amount, resources[resource])
@@ -309,14 +332,14 @@
output += "<br/>"
return output
proc/remove_resources(var/obj/item/mecha_parts/part)
/obj/machinery/mecha_part_fabricator/proc/remove_resources(var/obj/item/mecha_parts/part)
if(istype(part, /obj/item/robot_parts) || istype(part, /obj/item/mecha_parts))
for(var/resource in part.construction_cost)
if(resource in src.resources)
src.resources[resource] -= get_resource_cost_w_coeff(part,resource)
return
proc/check_resources(var/obj/item/mecha_parts/part)
/obj/machinery/mecha_part_fabricator/proc/check_resources(var/obj/item/mecha_parts/part)
// if(istype(part, /obj/item/robot_parts) || istype(part, /obj/item/mecha_parts) || istype(part,/obj/item/borg/upgrade))
if(part.construction_time!=null && part.construction_cost!=null)//Much more efficient way to check the item, since it won't have those vars if it isn't meant to go through the mechfabs -Sieve
for(var/resource in part.construction_cost)
@@ -326,7 +349,7 @@
return 1
return 0
proc/build_part(var/obj/item/part)
/obj/machinery/mecha_part_fabricator/proc/build_part(var/obj/item/part)
if(!part) return
src.being_built = new part.type(src)
src.desc = "It's building [src.being_built]."
@@ -345,11 +368,11 @@
src.updateUsrDialog()
return 1
proc/update_queue_on_page()
/obj/machinery/mecha_part_fabricator/proc/update_queue_on_page()
send_byjax(usr,"mecha_fabricator.browser","queue",src.list_queue())
return
proc/add_part_set_to_queue(set_name)
/obj/machinery/mecha_part_fabricator/proc/add_part_set_to_queue(set_name)
if(set_name in part_sets)
var/list/part_set = part_sets[set_name]
if(islist(part_set))
@@ -357,20 +380,20 @@
add_to_queue(part)
return
proc/add_to_queue(part)
/obj/machinery/mecha_part_fabricator/proc/add_to_queue(part)
if(!istype(queue))
queue = list()
if(part)
queue[++queue.len] = part
return queue.len
proc/remove_from_queue(index)
/obj/machinery/mecha_part_fabricator/proc/remove_from_queue(index)
if(!isnum(index) || !istype(queue) || (index<1 || index>queue.len))
return 0
queue.Cut(index,++index)
return 1
proc/process_queue()
/obj/machinery/mecha_part_fabricator/proc/process_queue()
var/part = listgetindex(src.queue, 1)
temp = null
while(part)
@@ -387,7 +410,7 @@
src.visible_message("\icon[src] <b>[src]</b> beeps, \"Queue processing finished successfully\".")
return 1
proc/list_queue()
/obj/machinery/mecha_part_fabricator/proc/list_queue()
var/output = "<b>Queue contains:</b>"
if(!istype(queue) || !queue.len)
output += "<br>Nothing"
@@ -401,7 +424,7 @@
output += "\[<a href='?src=\ref[src];process_queue=1'>Process queue</a> | <a href='?src=\ref[src];clear_queue=1'>Clear queue</a>\]"
return output
proc/convert_designs()
/obj/machinery/mecha_part_fabricator/proc/convert_designs()
if(!files) return
var/i = 0
for(var/datum/design/D in files.known_designs)
@@ -410,7 +433,7 @@
i++
return i
proc/update_tech()
/obj/machinery/mecha_part_fabricator/proc/update_tech()
if(!files) return
var/output
for(var/datum/tech/T in files.known_tech)
@@ -418,24 +441,34 @@
var/diff
switch(T.id) //bad, bad formulas
if("materials")
diff = round(initial(resource_coeff) - (initial(resource_coeff)*T.level)/25,0.01)
var/pmat = 0//Calculations to make up for the fact that these parts and tech modify the same thing
for(var/obj/item/weapon/stock_parts/micro_laser/Ml in component_parts)
pmat += Ml.rating
if(pmat >= 1)
pmat -= 1//So the equations don't have to be reworked, upgrading a single part from T1 to T2 is == to 1 tech level
diff = round(initial(resource_coeff) - (initial(resource_coeff)*(T.level+pmat))/25,0.01)
if(resource_coeff!=diff)
resource_coeff = diff
output+="Production efficiency increased.<br>"
if("programming")
diff = round(initial(time_coeff) - (initial(time_coeff)*T.level)/25,0.1)
var/ptime = 0
for(var/obj/item/weapon/stock_parts/manipulator/Ma in component_parts)
ptime += Ma.rating
if(ptime >= 2)
ptime -= 2
diff = round(initial(time_coeff) - (initial(time_coeff)*(T.level+ptime))/25,0.1)
if(time_coeff!=diff)
time_coeff = diff
output+="Production routines updated.<br>"
return output
proc/sync(silent=null)
/obj/machinery/mecha_part_fabricator/proc/sync(silent=null)
/* if(queue.len)
if(!silent)
temp = "Error. Please clear processing queue before updating!"
src.updateUsrDialog()
return //This POS doesn't work, simplifying -Sieve
return
*/
if(!silent)
temp = "Updating local R&D database..."
@@ -460,14 +493,14 @@
src.visible_message("\icon[src] <b>[src]</b> beeps, \"Succesfully synchronized with R&D server. New data processed.\"")
return
proc/get_resource_cost_w_coeff(var/obj/item/mecha_parts/part as obj,var/resource as text, var/roundto=1)
/obj/machinery/mecha_part_fabricator/proc/get_resource_cost_w_coeff(var/obj/item/mecha_parts/part as obj,var/resource as text, var/roundto=1)
return round(part.construction_cost[resource]*resource_coeff, roundto)
proc/get_construction_time_w_coeff(var/obj/item/mecha_parts/part as obj, var/roundto=1)
/obj/machinery/mecha_part_fabricator/proc/get_construction_time_w_coeff(var/obj/item/mecha_parts/part as obj, var/roundto=1)
return round(part.construction_time*time_coeff, roundto)
attack_hand(mob/user as mob)
/obj/machinery/mecha_part_fabricator/attack_hand(mob/user as mob)
var/dat, left_part
if (..())
return
@@ -528,7 +561,7 @@
return
Topic(href, href_list)
/obj/machinery/mecha_part_fabricator/Topic(href, href_list)
..()
var/datum/topic_input/filter = new /datum/topic_input(href,href_list)
if(href_list["part_set"])
@@ -598,7 +631,7 @@
src.updateUsrDialog()
return
process()
/obj/machinery/mecha_part_fabricator/process()
if (stat & (NOPOWER|BROKEN))
return
if(sync)
@@ -606,53 +639,7 @@
sync(1)
return
attackby(obj/item/stack/sheet/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/card/emag))
emag()
return
var/material
if(istype(W, /obj/item/stack/sheet/gold))
material = "gold"
else if(istype(W, /obj/item/stack/sheet/silver))
material = "silver"
else if(istype(W, /obj/item/stack/sheet/diamond))
material = "diamond"
else if(istype(W, /obj/item/stack/sheet/plasma))
material = "plasma"
else if(istype(W, /obj/item/stack/sheet/metal))
material = "metal"
else if(istype(W, /obj/item/stack/sheet/glass))
material = "glass"
else if(istype(W, /obj/item/stack/sheet/clown))
material = "bananium"
else if(istype(W, /obj/item/stack/sheet/uranium))
material = "uranium"
else
return ..()
if(src.being_built)
user << "The fabricator is currently processing. Please wait until completion."
return
var/name = "[W.name]"
var/amnt = W.perunit
if(src.resources[material] < res_max_amount)
var/count = 0
src.overlays += "fab-load-[material]"//loading animation is now an overlay based on material type. No more spontaneous conversion of all ores to metal. -vey
sleep(10)
if(W && W.amount)
while(src.resources[material] < res_max_amount && W)
src.resources[material] += amnt
W.use(1)
count++
src.overlays -= "fab-load-[material]"
user << "You insert [count] [name] into the fabricator."
src.updateUsrDialog()
else
user << "The fabricator cannot hold more [name]."
return
proc/remove_material(var/mat_string, var/amount)
/obj/machinery/mecha_part_fabricator/proc/remove_material(var/mat_string, var/amount)
var/type
switch(mat_string)
if("metal")
@@ -686,5 +673,99 @@
return result
/obj/machinery/mecha_part_fabricator/attackby(obj/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/screwdriver))
if (!opened)
opened = 1
icon_state = "fab-o"
user << "You open the maintenance hatch of [src]."
else
opened = 0
icon_state = "fab-idle"
user << "You close the maintenance hatch of [src]."
return
if (opened)
if(istype(W, /obj/item/weapon/crowbar))
playsound(src.loc, 'Crowbar.ogg', 50, 1)
var/obj/machinery/constructable_frame/machine_frame/M = new /obj/machinery/constructable_frame/machine_frame(src.loc)
M.state = 2
M.icon_state = "box_1"
for(var/obj/I in component_parts)
if(I.reliability != 100 && crit_fail)
I.crit_fail = 1
I.loc = src.loc
if(src.resources["metal"] >= 3750)
var/obj/item/stack/sheet/metal/G = new /obj/item/stack/sheet/metal(src.loc)
G.amount = round(src.resources["metal"] / G.perunit)
if(src.resources["glass"] >= 3750)
var/obj/item/stack/sheet/glass/G = new /obj/item/stack/sheet/glass(src.loc)
G.amount = round(src.resources["glass"] / G.perunit)
if(src.resources["plasma"] >= 2000)
var/obj/item/stack/sheet/plasma/G = new /obj/item/stack/sheet/plasma(src.loc)
G.amount = round(src.resources["plasma"] / G.perunit)
if(src.resources["silver"] >= 2000)
var/obj/item/stack/sheet/silver/G = new /obj/item/stack/sheet/silver(src.loc)
G.amount = round(src.resources["silver"] / G.perunit)
if(src.resources["gold"] >= 2000)
var/obj/item/stack/sheet/gold/G = new /obj/item/stack/sheet/gold(src.loc)
G.amount = round(src.resources["gold"] / G.perunit)
if(src.resources["uranium"] >= 2000)
var/obj/item/stack/sheet/uranium/G = new /obj/item/stack/sheet/uranium(src.loc)
G.amount = round(src.resources["uranium"] / G.perunit)
if(src.resources["diamond"] >= 2000)
var/obj/item/stack/sheet/diamond/G = new /obj/item/stack/sheet/diamond(src.loc)
G.amount = round(src.resources["diamond"] / G.perunit)
if(src.resources["bananium"] >= 2000)
var/obj/item/stack/sheet/clown/G = new /obj/item/stack/sheet/clown(src.loc)
G.amount = round(src.resources["bananium"] / G.perunit)
del(src)
return 1
else
user << "\red You can't load the [src.name] while it's opened."
return 1
if(istype(W, /obj/item/weapon/card/emag))
emag()
return
var/material
switch(W.type)
if(/obj/item/stack/sheet/gold)
material = "gold"
if(/obj/item/stack/sheet/silver)
material = "silver"
if(/obj/item/stack/sheet/diamond)
material = "diamond"
if(/obj/item/stack/sheet/plasma)
material = "plasma"
if(/obj/item/stack/sheet/metal)
material = "metal"
if(/obj/item/stack/sheet/glass)
material = "glass"
if(/obj/item/stack/sheet/clown)
material = "bananium"
if(/obj/item/stack/sheet/uranium)
material = "uranium"
else
return ..()
if(src.being_built)
user << "The fabricator is currently processing. Please wait until completion."
return
var/obj/item/stack/sheet/stack = W
var/sname = "[stack.name]"
var/amnt = stack.perunit
if(src.resources[material] < res_max_amount)
var/count = 0
src.overlays += "fab-load-[material]"//loading animation is now an overlay based on material type. No more spontaneous conversion of all ores to metal. -vey
sleep(10)
if(stack && stack.amount)
while(src.resources[material] < res_max_amount && stack)
src.resources[material] += amnt
stack.use(1)
count++
src.overlays -= "fab-load-[material]"
user << "You insert [count] [sname] into the fabricator."
src.updateUsrDialog()
else
user << "The fabricator cannot hold more [sname]."
return

View File

@@ -1185,6 +1185,8 @@
spawn_result()
var/obj/item/mecha_parts/chassis/const_holder = holder
const_holder.construct = new /datum/construction/reversible/mecha/odysseus(const_holder)
const_holder.icon = 'mech_construction.dmi'
const_holder.icon_state = "odysseus0"
const_holder.density = 1
spawn()
del src
@@ -1203,7 +1205,7 @@
"backkey"=/obj/item/weapon/crowbar,
"desc"="External armor is installed."),
//3
list("key"=/obj/item/mecha_parts/part/odysseus_armour,
list("key"=/obj/item/stack/sheet/plasteel,
"backkey"=/obj/item/weapon/weldingtool,
"desc"="Internal armor is welded."),
//4
@@ -1262,82 +1264,108 @@
switch(index)
if(14)
user.visible_message("[user] connects [holder] hydraulic systems", "You connect [holder] hydraulic systems.")
holder.icon_state = "odysseus1"
if(13)
if(diff==FORWARD)
user.visible_message("[user] activates [holder] hydraulic systems.", "You activate [holder] hydraulic systems.")
holder.icon_state = "odysseus2"
else
user.visible_message("[user] disconnects [holder] hydraulic systems", "You disconnect [holder] hydraulic systems.")
holder.icon_state = "odysseus0"
if(12)
if(diff==FORWARD)
user.visible_message("[user] adds the wiring to [holder].", "You add the wiring to [holder].")
holder.icon_state = "odysseus3"
else
user.visible_message("[user] deactivates [holder] hydraulic systems.", "You deactivate [holder] hydraulic systems.")
holder.icon_state = "odysseus1"
if(11)
if(diff==FORWARD)
user.visible_message("[user] adjusts the wiring of [holder].", "You adjust the wiring of [holder].")
holder.icon_state = "odysseus4"
else
user.visible_message("[user] removes the wiring from [holder].", "You remove the wiring from [holder].")
var/obj/item/weapon/cable_coil/coil = new /obj/item/weapon/cable_coil(get_turf(holder))
coil.amount = 4
holder.icon_state = "odysseus2"
if(10)
if(diff==FORWARD)
user.visible_message("[user] installs the central control module into [holder].", "You install the central computer mainboard into [holder].")
del used_atom
holder.icon_state = "odysseus5"
else
user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].")
holder.icon_state = "odysseus3"
if(9)
if(diff==FORWARD)
user.visible_message("[user] secures the mainboard.", "You secure the mainboard.")
holder.icon_state = "odysseus6"
else
user.visible_message("[user] removes the central control module from [holder].", "You remove the central computer mainboard from [holder].")
new /obj/item/weapon/circuitboard/mecha/odysseus/main(get_turf(holder))
holder.icon_state = "odysseus4"
if(8)
if(diff==FORWARD)
user.visible_message("[user] installs the peripherals control module into [holder].", "You install the peripherals control module into [holder].")
del used_atom
holder.icon_state = "odysseus7"
else
user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.")
holder.icon_state = "odysseus5"
if(7)
if(diff==FORWARD)
user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.")
holder.icon_state = "odysseus8"
else
user.visible_message("[user] removes the peripherals control module from [holder].", "You remove the peripherals control module from [holder].")
new /obj/item/weapon/circuitboard/mecha/odysseus/peripherals(get_turf(holder))
holder.icon_state = "odysseus6"
if(6)
if(diff==FORWARD)
user.visible_message("[user] installs internal armor layer to [holder].", "You install internal armor layer to [holder].")
holder.icon_state = "odysseus9"
else
user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.")
holder.icon_state = "odysseus7"
if(5)
if(diff==FORWARD)
user.visible_message("[user] secures internal armor layer.", "You secure internal armor layer.")
holder.icon_state = "odysseus10"
else
user.visible_message("[user] pries internal armor layer from [holder].", "You prie internal armor layer from [holder].")
var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/metal(get_turf(holder))
MS.amount = 5
holder.icon_state = "odysseus8"
if(4)
if(diff==FORWARD)
user.visible_message("[user] welds internal armor layer to [holder].", "You weld the internal armor layer to [holder].")
holder.icon_state = "odysseus11"
else
user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.")
holder.icon_state = "odysseus9"
if(3)
if(diff==FORWARD)
user.visible_message("[user] installs [used_atom] layer to [holder].", "You install external reinforced armor layer to [holder].")
holder.overlays += used_atom.icon_state
del used_atom
holder.icon_state = "odysseus12"
else
user.visible_message("[user] cuts internal armor layer from [holder].", "You cut the internal armor layer from [holder].")
if(2)
holder.icon_state = "odysseus10"
if(diff==FORWARD)
user.visible_message("[user] secures external armor layer.", "You secure external reinforced armor layer.")
holder.icon_state = "odysseus13"
else
var/obj/item/mecha_parts/part/odysseus_armour/MS = new /obj/item/mecha_parts/part/odysseus_armour(get_turf(holder))
var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder))
MS.amount = 5
user.visible_message("[user] pries [MS] from [holder].", "You prie [MS] from [holder].")
holder.icon_state = "odysseus11"
if(1)
if(diff==FORWARD)
user.visible_message("[user] welds external armor layer to [holder].", "You weld external armor layer to [holder].")
holder.icon_state = "odysseus14"
else
user.visible_message("[user] unfastens the external armor layer.", "You unfasten the external armor layer.")
holder.icon_state = "odysseus12"
return 1
spawn_result()

View File

@@ -387,12 +387,12 @@
construction_time = 130
construction_cost = list("metal"=15000)
/obj/item/mecha_parts/part/odysseus_armour
/*/obj/item/mecha_parts/part/odysseus_armour
name="Odysseus Carapace"
icon_state = "odysseus_armour"
origin_tech = "materials=3;engineering=3"
construction_time = 200
construction_cost = list("metal"=15000)
construction_cost = list("metal"=15000)*/
///////// Circuitboards

View File

@@ -95,6 +95,9 @@
parts -= part
return
/obj/effect/decal/mecha_wreckage/gygax/dark
name = "Dark Gygax wreckage"
icon_state = "darkgygax-broken"
/obj/effect/decal/mecha_wreckage/marauder
name = "Marauder wreckage"

View File

@@ -2,22 +2,24 @@ obj/structure/door_assembly
icon = 'door_assembly.dmi'
name = "Airlock Assembly"
icon_state = "door_as0"
icon_state = "door_as_0"
anchored = 0
density = 1
var/state = 0
var/glass = 0
var/base_icon_state
var/mineral = null
var/base_icon_state = "door_as_0"
var/glass_base_icon_state = "door_as_g0"
var/obj/item/weapon/airlock_electronics/electronics = null
var/airlock_type = /obj/machinery/door/airlock //the type path of the airlock once completed
var/glass_type = /obj/machinery/door/airlock/glass //the type path of the airlock if changed into a glass airlock
var/glass_base_icon_state = "door_as_g"
var/glass_type = /obj/machinery/door/airlock/glass
var/glass = null
New()
base_icon_state = copytext(icon_state,1,lentext(icon_state))
door_assembly_0
name = "Airlock Assembly"
icon_state = "door_as1"
icon_state = "door_as_1"
airlock_type = /obj/machinery/door/airlock
anchored = 1
density = 1
@@ -117,16 +119,13 @@ obj/structure/door_assembly
door_assembly_med
name = "Medical Airlock Assembly"
icon_state = "door_as_med1"
glass_base_icon_state = "door_as_gmed"
glass_type = /obj/machinery/door/airlock/glass_medical
airlock_type = /obj/machinery/door/airlock/medical
anchored = 1
density = 1
state = 1
glass = 0
glass
glass = 1
mineral = "glass"
icon_state = "door_as_gmed1"
door_assembly_mai
@@ -165,14 +164,78 @@ obj/structure/door_assembly
state = 1
glass = 0
door_assembly_g
door_assembly_glass
name = "Glass Airlock Assembly"
icon_state = "door_as_g1"
airlock_type = /obj/machinery/door/airlock/glass
anchored = 1
density = 1
state = 1
glass = 1
mineral = "glass"
door_assembly_gold
name = "Gold Airlock Assembly"
icon_state = "door_as_gold1"
airlock_type = /obj/machinery/door/airlock/gold
anchored = 1
density = 1
state = 1
mineral = "gold"
door_assembly_silver
name = "Silver Airlock Assembly"
icon_state = "door_as_silver1"
airlock_type = /obj/machinery/door/airlock/silver
anchored = 1
density = 1
state = 1
mineral = "silver"
door_assembly_diamond
name = "Diamond Airlock Assembly"
icon_state = "door_as_diamond1"
airlock_type = /obj/machinery/door/airlock/diamond
anchored = 1
density = 1
state = 1
mineral = "diamond"
door_assembly_uranium
name = "Uranium Airlock Assembly"
icon_state = "door_as_uranium1"
airlock_type = /obj/machinery/door/airlock/uranium
anchored = 1
density = 1
state = 1
mineral = "uranium"
door_assembly_plasma
name = "Plasma Airlock Assembly"
icon_state = "door_as_plasma1"
airlock_type = /obj/machinery/door/airlock/plasma
anchored = 1
density = 1
state = 1
mineral = "plasma"
door_assembly_clown
name = "Bananium Airlock Assembly"
desc = "Honk"
icon_state = "door_as_bananium1"
airlock_type = /obj/machinery/door/airlock/clown
anchored = 1
density = 1
state = 1
mineral = "clown"
door_assembly_sandstone
name = "Sandstone Airlock Assembly"
icon_state = "door_as_sandstone1"
airlock_type = /obj/machinery/door/airlock/sandstone
anchored = 1
density = 1
state = 1
mineral = "sandstone"
/obj/structure/door_assembly/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/weldingtool) && !anchored )
@@ -185,8 +248,30 @@ obj/structure/door_assembly
if(!src || !WT.isOn()) return
user << "\blue You dissasembled the airlock assembly!"
new /obj/item/stack/sheet/metal(get_turf(src), 4)
if(src.glass==1)
switch(mineral)
if("glass")
new /obj/item/stack/sheet/rglass(get_turf(src))
if("gold")
new /obj/item/stack/sheet/gold(get_turf(src))
new /obj/item/stack/sheet/gold(get_turf(src))
if("silver")
new /obj/item/stack/sheet/silver(get_turf(src))
new /obj/item/stack/sheet/silver(get_turf(src))
if("diamond")
new /obj/item/stack/sheet/diamond(get_turf(src))
new /obj/item/stack/sheet/diamond(get_turf(src))
if("uranium")
new /obj/item/stack/sheet/uranium(get_turf(src))
new /obj/item/stack/sheet/uranium(get_turf(src))
if("plasma")
new /obj/item/stack/sheet/plasma(get_turf(src))
new /obj/item/stack/sheet/plasma(get_turf(src))
if("clown")
new /obj/item/stack/sheet/clown(get_turf(src))
new /obj/item/stack/sheet/clown(get_turf(src))
if("sandstone")
new /obj/item/stack/sheet/sandstone(get_turf(src))
new /obj/item/stack/sheet/sandstone(get_turf(src))
del(src)
else
user << "\blue You need more welding fuel to dissassemble the airlock assembly."
@@ -265,20 +350,99 @@ obj/structure/door_assembly
ae = electronics
electronics = null
ae.loc = src.loc
else if(istype(W, /obj/item/stack/sheet/rglass) && glass == 0)
playsound(src.loc, 'Crowbar.ogg', 100, 1)
user.visible_message("[user] adds reinforced glass windows to the airlock assembly.", "You start to install reinforced glass windows into the airlock assembly.")
var/obj/item/stack/sheet/rglass/G = W
if(do_after(user, 40))
else if(istype(W, /obj/item/stack/sheet) && !mineral)
var/obj/item/stack/sheet/G = W
if(G)
if(G.amount>=1)
user << "\blue You installed glass windows the airlock assembly!"
switch(G.type)
if(/obj/item/stack/sheet/rglass)
playsound(src.loc, 'Crowbar.ogg', 100, 1)
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
if(do_after(user, 40))
user << "\blue You installed reinforced glass windows into the airlock assembly!"
G.use(1)
src.glass = 1
src.mineral = "glass"
src.name = "Near finished Window Airlock Assembly"
src.airlock_type = /obj/machinery/door/airlock/glass
src.base_icon_state = "door_as_g" //this will be applied to the icon_state with the correct state number at the proc's end.
src.base_icon_state = "door_as_glass" //this will be applied to the icon_state with the correct state number at the proc's end.
if(/obj/item/stack/sheet/gold)
if(G.amount>=2)
playsound(src.loc, 'Crowbar.ogg', 100, 1)
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
if(do_after(user, 40))
user << "\blue You installed gold plating into the airlock assembly!"
G.use(2)
src.mineral = "gold"
src.name = "Near finished Gold Airlock Assembly"
src.airlock_type = /obj/machinery/door/airlock/gold
src.base_icon_state = "door_as_gold"
if(/obj/item/stack/sheet/silver)
if(G.amount>=2)
playsound(src.loc, 'Crowbar.ogg', 100, 1)
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
if(do_after(user, 40))
user << "\blue You installed silver plating into the airlock assembly!"
G.use(2)
src.mineral = "silver"
src.name = "Near finished Silver Airlock Assembly"
src.airlock_type = /obj/machinery/door/airlock/silver
src.base_icon_state = "door_as_silver"
if(/obj/item/stack/sheet/diamond)
if(G.amount>=2)
playsound(src.loc, 'Crowbar.ogg', 100, 1)
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
if(do_after(user, 40))
user << "\blue You installed diamond plating into the airlock assembly!"
G.use(2)
src.mineral = "diamond"
src.name = "Near finished Diamond Airlock Assembly"
src.airlock_type = /obj/machinery/door/airlock/diamond
src.base_icon_state = "door_as_diamond"
if(/obj/item/stack/sheet/uranium)
if(G.amount>=2)
playsound(src.loc, 'Crowbar.ogg', 100, 1)
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
if(do_after(user, 40))
user << "\blue You installed uranium plating into the airlock assembly!"
G.use(2)
src.mineral = "uranium"
src.name = "Near finished Uranium Airlock Assembly"
src.airlock_type = /obj/machinery/door/airlock/uranium
src.base_icon_state = "door_as_uranium"
if(/obj/item/stack/sheet/plasma)
if(G.amount>=2)
playsound(src.loc, 'Crowbar.ogg', 100, 1)
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
if(do_after(user, 40))
user << "\blue You installed plasma plating into the airlock assembly!"
G.use(2)
src.mineral = "plasma"
src.name = "Near finished Plasma Airlock Assembly"
src.airlock_type = /obj/machinery/door/airlock/plasma
src.base_icon_state = "door_as_plasma"
if(/obj/item/stack/sheet/clown)
if(G.amount>=2)
playsound(src.loc, 'Crowbar.ogg', 100, 1)
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
if(do_after(user, 40))
user << "\blue You installed bananium plating into the airlock assembly!HONK"
G.use(2)
playsound(src.loc, 'bikehorn.ogg', 15, 1, -3)
src.mineral = "clown"
src.name = "Near finished Bananium Airlock Assembly"
src.airlock_type = /obj/machinery/door/airlock/clown
src.base_icon_state = "door_as_clown"
if(/obj/item/stack/sheet/sandstone)
if(G.amount>=2)
playsound(src.loc, 'Crowbar.ogg', 100, 1)
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
if(do_after(user, 40))
user << "\blue You installed sandstone plating into the airlock assembly!"
G.use(2)
src.mineral = "sandstone"
src.name = "Near finished Sandstone Airlock Assembly"
src.airlock_type = /obj/machinery/door/airlock/sandstone
src.base_icon_state = "door_as_sandstone"
else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 )
playsound(src.loc, 'Screwdriver.ogg', 100, 1)
@@ -288,8 +452,31 @@ obj/structure/door_assembly
if(!src) return
user << "\blue You finish the airlock!"
var/obj/machinery/door/airlock/door
if(glass)
door = new src.glass_type( src.loc )
switch(mineral)
if("glass")
airlock_type = /obj/machinery/door/airlock/glass
door = new src.airlock_type( src.loc )
if("gold")
airlock_type = /obj/machinery/door/airlock/gold
door = new src.airlock_type( src.loc )
if("silver")
airlock_type = /obj/machinery/door/airlock/silver
door = new src.airlock_type( src.loc )
if("diamond")
airlock_type = /obj/machinery/door/airlock/diamond
door = new src.airlock_type( src.loc )
if("uranium")
airlock_type = /obj/machinery/door/airlock/uranium
door = new src.airlock_type( src.loc )
if("plasma")
airlock_type = /obj/machinery/door/airlock/plasma
door = new src.airlock_type( src.loc )
if("clown")
airlock_type = /obj/machinery/door/airlock/clown
door = new src.airlock_type( src.loc )
if("sandstone")
airlock_type = /obj/machinery/door/airlock/sandstone
door = new src.airlock_type( src.loc )
else
door = new src.airlock_type( src.loc )
//door.req_access = src.req_access
@@ -299,9 +486,6 @@ obj/structure/door_assembly
del(src)
else
..()
if(glass)
icon_state = "[glass_base_icon_state][state]"
else
icon_state = "[base_icon_state][state]"
//This updates the icon_state. They are named as "door_as1_eng" where the 1 in that example
//represents what state it's in. So the most generic algorithm for the correct updating of

View File

@@ -518,3 +518,36 @@
istype(W, /obj/item/weapon/kitchen/utensil/fork) && W.icon_state != "forkloaded" || \
istype(W, /obj/item/weapon/twohanded/fireaxe) \
)
proc/is_hot(obj/item/W as obj)
switch(W.type)
if(/obj/item/weapon/weldingtool)
var/obj/item/weapon/weldingtool/WT = W
if(WT.isOn())
return 3800
else
return 0
if(/obj/item/weapon/lighter)
if(W:lit)
return 1500
else
return 0
if(/obj/item/weapon/match)
if(W:lit)
return 1000
else
return 0
if(/obj/item/clothing/mask/cigarette)
if(W:lit)
return 1000
else
return 0
if(/obj/item/weapon/pickaxe/plasmacutter)
return 3800
if(/obj/item/weapon/melee/energy)
return 3500
else
return 0
return 0

View File

@@ -21,6 +21,7 @@
/obj/item/weapon/dnainjector/proc/inject(mob/M as mob)
if(istype(M,/mob/living))
M.radiation += rand(20,50)
if (!(NOCLONE in M.mutations)) // prevents drained people from having their DNA changed

View File

@@ -340,13 +340,21 @@ WELDINGTOOOL
/obj/item/weapon/weldingtool/experimental
name = "Experimental Welding Tool"
max_fuel = 80
max_fuel = 40
w_class = 3.0
m_amt = 70
g_amt = 120
origin_tech = "engineering=4;plasma=3"
icon_state = "ewelder"
var/last_gen = 0
/obj/item/weapon/weldingtool/experimental/proc/fuel_gen()//Proc to make the experimental welder generate fuel, optimized as fuck -Sieve
var/gen_amount = ((world.time-last_gen)/25)
reagents += (gen_amount)
if(reagents > max_fuel)
reagents = max_fuel
/obj/item/weapon/wirecutters
name = "wirecutters"
desc = "This cuts wires."

View File

@@ -8,9 +8,9 @@
opacity = 1
icon = 'mineral_doors.dmi'
icon_state = "iron"
icon_state = "metal"
var/mineralType = "iron"
var/mineralType = "metal"
var/state = 0 //closed, 1 == open
var/isSwitchingStates = 0
var/hardness = 1
@@ -116,9 +116,13 @@
proc/Dismantle(devastated = 0)
if(!devastated)
var/ore = text2path("/obj/item/weapon/ore/[mineralType]")
var/ore = text2path("/obj/item/stack/sheet/[mineralType]")
for(var/i = 1, i <= oreAmount, i++)
new ore(get_turf(src))
else
var/ore = text2path("/obj/item/stack/sheet/[mineralType]")
for(var/i = 3, i <= oreAmount, i++)
new ore(get_turf(src))
del(src)
ex_act(severity = 1)
@@ -181,7 +185,7 @@
return 1
/obj/structure/mineral_door/iron
mineralType = "iron"
mineralType = "metal"
hardness = 3
/obj/structure/mineral_door/silver
@@ -234,7 +238,7 @@
var/toxinsToDeduce = temperature/10
napalm.toxins = toxinsToDeduce
napalm.temperature = 400+T0C
napalm.temperature = 200+T0C
target_tile.assume_air(napalm)
spawn (0) target_tile.hotspot_expose(temperature, 400)

View File

@@ -50,19 +50,65 @@ obj/structure/meteorhit(obj/O as obj)
new /obj/item/stack/sheet/metal(get_turf(src))
del(src)
else if((istype(W, /obj/item/stack/sheet/metal)) && (W:amount >= 2) && istype(src,/obj/structure/girder/displaced))
else if(istype(W, /obj/item/stack/sheet) && !anchored)
switch(W.type)
if(/obj/item/stack/sheet/metal)
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall (src.loc)
if(/obj/item/stack/sheet/plasteel)
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falserwall (src.loc)
if(/obj/item/stack/sheet/gold)
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall/gold (src.loc)
if(/obj/item/stack/sheet/silver)
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall/silver (src.loc)
if(/obj/item/stack/sheet/diamond)
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall/diamond (src.loc)
if(/obj/item/stack/sheet/uranium)
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall/uranium (src.loc)
if(/obj/item/stack/sheet/plasma)
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall/plasma (src.loc)
if(/obj/item/stack/sheet/clown)
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall/clown (src.loc)
if(/obj/item/stack/sheet/sandstone)
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall/sandstone (src.loc)
/* if(/obj/item/stack/sheet/wood)
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall/wood (src.loc)*/
add_hiddenprint(usr)
del(src)
/* else if((istype(W, /obj/item/stack/sheet/metal)) && (W:amount >= 2) && istype(src,/obj/structure/girder/displaced))
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall (src.loc)
add_hiddenprint(usr)
del(src)
else if(istype(W, /obj/item/stack/sheet/plasteel) && istype(src,/obj/structure/girder/displaced))
W:use(2)
user << "\blue You create a false r wall! Push on it to open or close the passage."
new /obj/structure/falserwall (src.loc)
add_hiddenprint(usr)
del(src)
del(src)*/
else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 && istype(src,/obj/structure/girder/reinforced))
playsound(src.loc, 'Screwdriver.ogg', 100, 1)
@@ -95,7 +141,10 @@ obj/structure/meteorhit(obj/O as obj)
new/obj/structure/girder( src.loc )
del(src)
else if((istype(W, /obj/item/stack/sheet/metal)) && (W:amount >= 2))
else if((istype(W, /obj/item/stack/sheet)) && (W:amount >= 2))
switch(W.type)
if(/obj/item/stack/sheet/metal)
user << "\blue Now adding plating..."
if (do_after(user,40))
user << "\blue You added the plating!"
@@ -109,7 +158,7 @@ obj/structure/meteorhit(obj/O as obj)
del(src)
return
else if (istype(W, /obj/item/stack/sheet/plasteel))
if (/obj/item/stack/sheet/plasteel)
if (src.icon_state == "reinforced") //Time to finalize!
user << "\blue Now finalising reinforced wall."
if(do_after(user, 50))
@@ -132,6 +181,105 @@ obj/structure/meteorhit(obj/O as obj)
new/obj/structure/girder/reinforced( src.loc )
del(src)
return
if(/obj/item/stack/sheet/gold)
user << "\blue Now adding plating..."
if (do_after(user,40))
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithMineralWall("gold")
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/mineral/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W) W:use(2)
del(src)
return
if(/obj/item/stack/sheet/silver)
user << "\blue Now adding plating..."
if (do_after(user,40))
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithMineralWall("silver")
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/mineral/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W) W:use(2)
del(src)
return
if(/obj/item/stack/sheet/diamond)
user << "\blue Now adding plating..."
if (do_after(user,40))
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithMineralWall("diamond")
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/mineral/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W) W:use(2)
del(src)
return
if(/obj/item/stack/sheet/uranium)
user << "\blue Now adding plating..."
if (do_after(user,40))
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithMineralWall("uranium")
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/mineral/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W) W:use(2)
del(src)
return
if(/obj/item/stack/sheet/plasma)
user << "\blue Now adding plating..."
if (do_after(user,40))
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithMineralWall("plasma")
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/mineral/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W) W:use(2)
del(src)
return
if(/obj/item/stack/sheet/clown)
user << "\blue Now adding plating..."
if (do_after(user,40))
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithMineralWall("clown")
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/mineral/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W) W:use(2)
del(src)
return
if(/obj/item/stack/sheet/sandstone)
user << "\blue Now adding plating..."
if (do_after(user,40))
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithMineralWall("sandstone")
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/mineral/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W) W:use(2)
del(src)
return
else if(istype(W, /obj/item/pipe))
var/obj/item/pipe/P = W
if (P.pipe_type in list(0, 1, 5)) //simple pipes, simple bends, and simple manifolds.
@@ -167,7 +315,6 @@ obj/structure/meteorhit(obj/O as obj)
else
return
/obj/structure/girder/displaced
icon_state = "displaced"
anchored = 0
@@ -261,3 +408,208 @@ obj/structure/meteorhit(obj/O as obj)
del(src)
return
/obj/structure/falsewall
var/mineral = "metal"
/obj/structure/falserwall
var/mineral = "metal"
/obj/structure/falsewall/gold
mineral = "gold"
/obj/structure/falsewall/silver
mineral = "silver"
/obj/structure/falsewall/diamond
mineral = "diamond"
/obj/structure/falsewall/uranium
mineral = "uranium"
var/active = null
var/last_event = 0
/obj/structure/falsewall/plasma
mineral = "plasma"
/obj/structure/falsewall/clown
mineral = "clown"
/obj/structure/falsewall/sandstone
mineral = "sandstone"
/*/obj/structure/falsewall/wood
mineral = "wood"*/
/obj/structure/falsewall/attack_hand(mob/user as mob)
if(density)
// Open wall
icon_state = "[mineral]fwall_open"
flick("[mineral]fwall_opening", src)
sleep(15)
src.density = 0
src.sd_SetOpacity(0)
var/turf/T = src.loc
T.sd_LumReset()
else
flick("[mineral]fwall_closing", src)
icon_state = "[mineral]0"
sleep(15)
src.density = 1
src.sd_SetOpacity(1)
var/turf/T = src.loc
//T.sd_LumUpdate()
src.relativewall()
T.sd_LumReset()
/obj/structure/falsewall/uranium/attack_hand(mob/user as mob)
radiate()
..()
/obj/structure/falsewall/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/screwdriver))
var/turf/T = get_turf(src)
user.visible_message("[user] tightens some bolts on the wall.", "You tighten the bolts on the wall.")
if(!mineral)
T.ReplaceWithWall()
else
T.ReplaceWithMineralWall(mineral)
del(src)
if( istype(W, /obj/item/weapon/weldingtool) )
var/obj/item/weapon/weldingtool/WT = W
if( WT:welding )
var/turf/T = get_turf(src)
if(!mineral)
T.ReplaceWithWall()
else
T.ReplaceWithMineralWall(mineral)
if(mineral != "plasma")//Stupid shit keeps me from pushing the attackby() to plasma walls -Sieve
T = get_turf(src)
T.attackby(W,user)
del(src)
else if( istype(W, /obj/item/weapon/pickaxe/plasmacutter) )
var/turf/T = get_turf(src)
if(!mineral)
T.ReplaceWithWall()
else
T.ReplaceWithMineralWall(mineral)
if(mineral != "plasma")
T = get_turf(src)
T.attackby(W,user)
del(src)
//DRILLING
else if (istype(W, /obj/item/weapon/pickaxe/diamonddrill))
var/turf/T = get_turf(src)
if(!mineral)
T.ReplaceWithWall()
else
T.ReplaceWithMineralWall(mineral)
T = get_turf(src)
T.attackby(W,user)
del(src)
else if( istype(W, /obj/item/weapon/melee/energy/blade) )
var/turf/T = get_turf(src)
if(!mineral)
T.ReplaceWithWall()
else
T.ReplaceWithMineralWall(mineral)
if(mineral != "plasma")
T = get_turf(src)
T.attackby(W,user)
del(src)
/*
var/turf/T = get_turf(user)
user << "\blue Now adding plating..."
sleep(40)
if (get_turf(user) == T)
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithWall()
*/
/obj/structure/falsewall/uranium/attackby(obj/item/weapon/W as obj, mob/user as mob)
radiate()
..()
/obj/structure/falserwall/
attack_hand(mob/user as mob)
if(density)
// Open wall
icon_state = "frwall_open"
flick("frwall_opening", src)
sleep(15)
src.density = 0
src.sd_SetOpacity(0)
var/turf/T = src.loc
T.sd_LumReset()
else
icon_state = "r_wall"
flick("frwall_closing", src)
sleep(15)
src.density = 1
src.sd_SetOpacity(1)
var/turf/T = src.loc
//T.sd_LumUpdate()
src.relativewall()
T.sd_LumReset()
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/screwdriver))
var/turf/T = get_turf(src)
user.visible_message("[user] tightens some bolts on the r wall.", "You tighten the bolts on the r wall.")
T.ReplaceWithWall() //Intentionally makes a regular wall instead of an r-wall (no cheap r-walls for you).
del(src)
if( istype(W, /obj/item/weapon/weldingtool) )
var/obj/item/weapon/weldingtool/WT = W
if( WT.remove_fuel(0,user) )
var/turf/T = get_turf(src)
T.ReplaceWithWall()
T = get_turf(src)
T.attackby(W,user)
del(src)
else if( istype(W, /obj/item/weapon/pickaxe/plasmacutter) )
var/turf/T = get_turf(src)
T.ReplaceWithWall()
T = get_turf(src)
T.attackby(W,user)
del(src)
//DRILLING
else if (istype(W, /obj/item/weapon/pickaxe/diamonddrill))
var/turf/T = get_turf(src)
T.ReplaceWithWall()
T = get_turf(src)
T.attackby(W,user)
del(src)
else if( istype(W, /obj/item/weapon/melee/energy/blade) )
var/turf/T = get_turf(src)
T.ReplaceWithWall()
T = get_turf(src)
T.attackby(W,user)
del(src)
/obj/structure/falsewall/uranium/proc/radiate()
if(!active)
if(world.time > last_event+15)
active = 1
for(var/mob/living/L in range(3,src))
L.apply_effect(12,IRRADIATE,0)
for(var/turf/simulated/wall/mineral/T in range(3,src))
if(T.mineral == "uranium")
T.radiate()
last_event = world.time
active = null
return
return

View File

@@ -180,80 +180,3 @@
// eventually maybe have it update icon to show state (timer, prox etc.) like old bombs
/obj/item/device/transfer_valve/proc/c_state()
return
/obj/structure/falsewall
attack_hand(mob/user as mob)
if(density)
// Open wall
icon_state = "fwall_open"
flick("fwall_opening", src)
sleep(15)
src.density = 0
src.sd_SetOpacity(0)
var/turf/T = src.loc
T.sd_LumReset()
else
icon_state = "wall"
flick("fwall_closing", src)
sleep(15)
src.density = 1
src.sd_SetOpacity(1)
var/turf/T = src.loc
//T.sd_LumUpdate()
src.relativewall()
T.sd_LumReset()
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/screwdriver))
var/turf/T = get_turf(src)
user.visible_message("[user] tightens some bolts on the wall.", "You tighten the bolts on the wall.")
T.ReplaceWithWall()
del(src)
//
/*
var/turf/T = get_turf(user)
user << "\blue Now adding plating..."
sleep(40)
if (get_turf(user) == T)
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithWall()
*/
/obj/structure/falserwall/
attack_hand(mob/user as mob)
if(density)
// Open wall
icon_state = "frwall_open"
flick("frwall_opening", src)
sleep(15)
src.density = 0
src.sd_SetOpacity(0)
var/turf/T = src.loc
T.sd_LumReset()
else
icon_state = "r_wall"
flick("frwall_closing", src)
sleep(15)
src.density = 1
src.sd_SetOpacity(1)
var/turf/T = src.loc
//T.sd_LumUpdate()
src.relativewall()
T.sd_LumReset()
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/screwdriver))
var/turf/T = get_turf(src)
user.visible_message("[user] tightens some bolts on the r wall.", "You tighten the bolts on the r wall.")
T.ReplaceWithWall() //Intentionally makes a regular wall instead of an r-wall (no cheap r-walls for you).
del(src)

View File

@@ -4,7 +4,7 @@
name = "toilet"
desc = "The HT-451, a torque rotation-based, waste disposal unit for small matter. This one seems remarkably clean."
icon = 'watercloset.dmi'
icon_state = "toilet0"
icon_state = "toilet00"
density = 0
anchored = 1
var/open = 0 //if the lid is up

View File

@@ -41,7 +41,8 @@
else if (istype(src,/obj/structure/falserwall))
src.icon_state = "rwall[junction]"
else if (istype(src,/obj/structure/falsewall))
src.icon_state = "wall[junction]"
var/obj/structure/falsewall/fwall = src
fwall.icon_state = "[fwall.mineral][junction]"
/* else if(istype(src,/turf/simulated/shuttle/wall))
var/newicon = icon;
var/newiconstate = icon_state;
@@ -151,3 +152,64 @@
W.relativewall()
..()*/
/turf/simulated/wall/relativewall()
if(istype(src,/turf/simulated/wall/vault)) //HACK!!!
return
var/junction = 0 //will be used to determine from which side the wall is connected to other walls
for(var/turf/simulated/wall/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
if(src.mineral == W.mineral)//Only 'like' walls connect -Sieve
junction |= get_dir(src,W)
for(var/obj/structure/falsewall/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
if(src.mineral == W.mineral)
junction |= get_dir(src,W)
for(var/obj/structure/falserwall/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
if(src.mineral == W.mineral)
junction |= get_dir(src,W)
var/turf/simulated/wall/wall = src
wall.icon_state = "[wall.walltype][junction]"
return
/obj/structure/falsewall/relativewall()
var/junction = 0 //will be used to determine from which side the wall is connected to other walls
for(var/turf/simulated/wall/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
if(src.mineral == W.mineral)//Only 'like' walls connect -Sieve
junction |= get_dir(src,W)
for(var/obj/structure/falsewall/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
if(src.mineral == W.mineral)
junction |= get_dir(src,W)
for(var/obj/structure/falserwall/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
if(src.mineral == W.mineral)
junction |= get_dir(src,W)
var/obj/structure/falsewall/fwall = src
fwall.icon_state = "[fwall.mineral][junction]"
return
/obj/structure/falserwall/relativewall()
var/junction = 0 //will be used to determine from which side the wall is connected to other walls
for(var/turf/simulated/wall/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
if(src.mineral == W.mineral)//Only 'like' walls connect -Sieve
junction |= get_dir(src,W)
for(var/obj/structure/falsewall/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
if(src.mineral == W.mineral)
junction |= get_dir(src,W)
for(var/obj/structure/falserwall/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
if(src.mineral == W.mineral)
junction |= get_dir(src,W)
src.icon_state = "rwall[junction]"
return

View File

@@ -256,6 +256,7 @@
var/old_dir = dir
var/turf/space/S = new /turf/space( locate(src.x, src.y, src.z) )
S.dir = old_dir
S.sd_LumReset()
new /obj/structure/lattice( locate(src.x, src.y, src.z) )
return S
@@ -265,6 +266,7 @@
S.icon_old = old_icon
S.opacity = 0
S.sd_NewOpacity(1)
S.sd_LumReset()
return S
/turf/proc/ReplaceWithRWall()
@@ -273,6 +275,18 @@
S.icon_old = old_icon
S.opacity = 0
S.sd_NewOpacity(1)
S.sd_LumReset()
return S
/turf/proc/ReplaceWithMineralWall(var/ore)
var/old_icon = icon_state
var/turf/simulated/wall/mineral/S = new /turf/simulated/wall/mineral( locate(src.x, src.y, src.z) )
S.icon_old = old_icon
S.opacity = 0
S.sd_NewOpacity(1)
S.mineral = ore
S.New()//Hackish as fuck, but what can you do? -Sieve
S.sd_LumReset()
return S
//turf/simulated/wall/New()
@@ -300,13 +314,82 @@
else
if(!devastated)
playsound(src.loc, 'Welder.ogg', 100, 1)
switch(mineral)
if("metal")
new /obj/structure/girder(src)
new /obj/item/stack/sheet/metal( src )
new /obj/item/stack/sheet/metal( src )
if("gold")
new /obj/structure/girder(src)
new /obj/item/stack/sheet/gold( src )
new /obj/item/stack/sheet/gold( src )
if("silver")
new /obj/structure/girder(src)
new /obj/item/stack/sheet/silver( src )
new /obj/item/stack/sheet/silver( src )
if("diamond")
new /obj/structure/girder(src)
new /obj/item/stack/sheet/diamond( src )
new /obj/item/stack/sheet/diamond( src )
if("uranium")
new /obj/structure/girder(src)
new /obj/item/stack/sheet/uranium( src )
new /obj/item/stack/sheet/uranium( src )
if("plasma")
new /obj/structure/girder(src)
new /obj/item/stack/sheet/plasma( src )
new /obj/item/stack/sheet/plasma( src )
if("clown")
new /obj/structure/girder(src)
new /obj/item/stack/sheet/clown( src )
new /obj/item/stack/sheet/clown( src )
if("sandstone")
new /obj/structure/girder(src)
new /obj/item/stack/sheet/sandstone( src )
new /obj/item/stack/sheet/sandstone( src )
if("wood")
new /obj/structure/girder(src)
new /obj/item/stack/sheet/wood( src )
new /obj/item/stack/sheet/wood( src )
else
switch(mineral)
if("metal")
new /obj/item/stack/sheet/metal( src )
new /obj/item/stack/sheet/metal( src )
new /obj/item/stack/sheet/metal( src )
if("gold")
new /obj/item/stack/sheet/gold( src )
new /obj/item/stack/sheet/gold( src )
new /obj/item/stack/sheet/metal( src )
if("silver")
new /obj/item/stack/sheet/silver( src )
new /obj/item/stack/sheet/silver( src )
new /obj/item/stack/sheet/metal( src )
if("diamond")
new /obj/item/stack/sheet/diamond( src )
new /obj/item/stack/sheet/diamond( src )
new /obj/item/stack/sheet/metal( src )
if("uranium")
new /obj/item/stack/sheet/uranium( src )
new /obj/item/stack/sheet/uranium( src )
new /obj/item/stack/sheet/metal( src )
if("plasma")
new /obj/item/stack/sheet/plasma( src )
new /obj/item/stack/sheet/plasma( src )
new /obj/item/stack/sheet/metal( src )
if("clown")
new /obj/item/stack/sheet/clown( src )
new /obj/item/stack/sheet/clown( src )
new /obj/item/stack/sheet/metal( src )
if("sandstone")
new /obj/item/stack/sheet/sandstone( src )
new /obj/item/stack/sheet/sandstone( src )
new /obj/item/stack/sheet/metal( src )
if("wood")
new /obj/item/stack/sheet/wood( src )
new /obj/item/stack/sheet/wood( src )
new /obj/item/stack/sheet/metal( src )
for(var/obj/O in src.contents) //Eject contents!
if(istype(O,/obj/effect/decal/poster))
@@ -451,6 +534,8 @@
playsound(src.loc, 'Welder.ogg', 100, 1)
sleep(60)
if(mineral == "diamond")//Oh look, it's tougher
sleep(60)
if( !istype(src, /turf/simulated/wall) || !user || !W || !T ) return
if( user.loc == T && user.equipped() == W )
@@ -466,6 +551,8 @@
user << "<span class='notice'>You begin to drill though the wall.</span>"
sleep(60)
if(mineral == "diamond")
sleep(60)
if( !istype(src, /turf/simulated/wall) || !user || !W || !T ) return
if( user.loc == T && user.equipped() == W )
@@ -483,6 +570,8 @@
playsound(src.loc, "sparks", 50, 1)
sleep(70)
if(mineral == "diamond")
sleep(70)
if( !istype(src, /turf/simulated/wall) || !user || !EB || !T ) return
if( user.loc == T && user.equipped() == W )
@@ -745,7 +834,72 @@
return attack_hand(user)
return
/turf/simulated/wall/mineral/attack_hand(mob/user as mob)
if(mineral == "uranium")
radiate()
..()
/turf/simulated/wall/mineral/attackby(obj/item/weapon/W as obj, mob/user as mob)
if((mineral == "plasma") && W)
if(is_hot(W) > 300)
ignite(is_hot(W))
return
if(mineral == "uranium")
radiate()
// if((mineral == "gold") || (mineral == "silver"))
// if(shocked)
// shock()
..()
/turf/simulated/wall/mineral/proc/PlasmaBurn(temperature)
spawn(2)
new /obj/structure/girder(src)
src.ReplaceWithFloor()
for(var/turf/simulated/floor/target_tile in range(0,src))
if(target_tile.parent && target_tile.parent.group_processing)
target_tile.parent.suspend_group_processing()
var/datum/gas_mixture/napalm = new
var/toxinsToDeduce = 20
napalm.toxins = toxinsToDeduce
napalm.temperature = 400+T0C
target_tile.assume_air(napalm)
spawn (0) target_tile.hotspot_expose(temperature, 400)
for(var/obj/structure/falsewall/plasma/F in range(3,src))//Hackish as fuck, but until temperature_expose works, there is nothing I can do -Sieve
var/turf/T = get_turf(F)
T.ReplaceWithMineralWall("plasma")
del (F)
for(var/turf/simulated/wall/mineral/W in range(3,src))
if(mineral == "plasma")
W.ignite((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame
for(var/obj/machinery/door/airlock/plasma/D in range(3,src))
D.ignite(temperature/4)
/turf/simulated/wall/mineral/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
if(mineral == "plasma")
if(exposed_temperature > 300)
PlasmaBurn(exposed_temperature)
/turf/simulated/wall/mineral/proc/ignite(exposed_temperature)
if(mineral == "plasma")
if(exposed_temperature > 300)
PlasmaBurn(exposed_temperature)
/turf/simulated/wall/mineral/Bumped(AM as mob|obj)
if(mineral == "uranium")
radiate()
..()
/turf/simulated/wall/mineral/bullet_act(var/obj/item/projectile/Proj)
if(mineral == "plasma")
if(istype(Proj,/obj/item/projectile/beam))
PlasmaBurn(2500)
else if(istype(Proj,/obj/item/projectile/ion))
PlasmaBurn(500)
..()
/turf/simulated/wall/proc/thermitemelt(mob/user as mob)
if(mineral == "diamond")
return
var/obj/effect/overlay/O = new/obj/effect/overlay( src )
O.name = "Thermite"
O.desc = "Looks hot."
@@ -907,9 +1061,13 @@ var/list/plating_icons = list("plating","platingdmg1","platingdmg2","platingdmg3
..()
name = "plating"
/turf/simulated/floor/grid
/turf/simulated/floor/bluegrid
icon = 'floors.dmi'
icon_state = "circuit"
icon_state = "bcircuit"
/turf/simulated/floor/greengrid
icon = 'floors.dmi'
icon_state = "gcircuit"
/turf/simulated/floor/New()
..()

View File

@@ -8,6 +8,8 @@
anchored = 1
icon = 'chemical.dmi'
icon_state = "dispenser"
use_power = 1
idle_power_usage = 40
var/energy = 25
var/max_energy = 75
var/amount = 30
@@ -24,6 +26,13 @@
use_power(2000) // This thing uses up alot of power (this is still low as shit for creating reagents from thin air)
spawn(200) recharge()
power_change()
if(powered())
stat &= ~NOPOWER
else
spawn(rand(0, 15))
stat |= NOPOWER
New()
recharge()
@@ -75,7 +84,7 @@
winset(user, "chemdispenser_reagents", "size=340x[8 + 40 * i]")
SkinCmd(mob/user as mob, var/data as text)
if(stat & BROKEN) return
if(stat & (BROKEN|NOPOWER)) return
if(usr.stat || usr.restrained()) return
if(!in_range(src, usr)) return
@@ -159,6 +168,8 @@
anchored = 1
icon = 'chemical.dmi'
icon_state = "mixer0"
use_power = 1
idle_power_usage = 20
var/beaker = null
var/mode = 0
var/condi = 0
@@ -186,6 +197,13 @@
del(src)
return
power_change()
if(powered())
stat &= ~NOPOWER
else
spawn(rand(0, 15))
stat |= NOPOWER
attackby(var/obj/item/weapon/reagent_containers/glass/B as obj, var/mob/user as mob)
if(!istype(B, /obj/item/weapon/reagent_containers/glass))
return
@@ -202,7 +220,7 @@
icon_state = "mixer1"
Topic(href, href_list)
if(stat & BROKEN) return
if(stat & (BROKEN|NOPOWER)) return
if(usr.stat || usr.restrained()) return
if(!in_range(src, usr)) return
@@ -352,6 +370,8 @@
anchored = 1
icon = 'chemical.dmi'
icon_state = "mixer0"
use_power = 1
idle_power_usage = 20
var/temphtml = ""
var/wait = null
var/obj/item/weapon/reagent_containers/glass/beaker = null

View File

@@ -762,7 +762,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.radiation += 3
M.apply_effect(10,IRRADIATE,0)
..()
return
@@ -828,7 +828,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(isrobot(M) || isAI(M)) return // Mutagen doesn't do anything to robutts!
if(!M) M = holder.my_atom
M.radiation += 3
M.apply_effect(10,IRRADIATE,0)
..()
return
@@ -911,7 +911,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.radiation += 1
M.apply_effect(3,IRRADIATE,0)
..()
return

View File

@@ -69,4 +69,17 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/head/wizard/marisa/fake
name = "Witch Hat"
desc = "Strange-looking hat-wear, makes you want to cast fireballs."
icon_state = "marisa"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/suit/wizrobe/marisa/fake
name = "Witch Robe"
desc = "Magic is all about the spell power, ZE!"
icon_state = "marisa"
item_state = "marisarobe"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)

View File

@@ -220,7 +220,7 @@
pixel_y = rand(0,4)-4
/obj/item/stack/sheet/uranium
name = "Uranium block"
name = "uranium"
icon_state = "sheet-uranium"
force = 5.0
throwforce = 5
@@ -231,7 +231,7 @@
perunit = 2000
/obj/item/stack/sheet/enruranium
name = "Enriched Uranium block"
name = "enriched uranium"
icon_state = "sheet-enruranium"
force = 5.0
throwforce = 5

View File

@@ -51,7 +51,7 @@
if(PARALYZE)
Paralyse(effect/(blocked+1))
if(IRRADIATE)
radiation += min((effect - (effect*getarmor(null, "rad"))), 0)//Rads auto check armor
radiation += max((((effect - (effect*(getarmor(null, "rad")/100))))/(blocked+1)),0)//Rads auto check armor
if(STUTTER)
if(canstun) // stun is usually associated with stutter
stuttering = max(stuttering,(effect/(blocked+1)))

View File

@@ -1,4 +1,4 @@
/mob/living/silicon/robot/Login()
/mob/living/silicon/robot/Login(var/syndie = 0)
..()
update_clothing()
@@ -19,4 +19,43 @@
A.connected_robots += src
break
*/
if(!started)
if(!syndie)
if (client)
connected_ai = activeais()
if (connected_ai)
connected_ai.connected_robots += src
// laws = connected_ai.laws //The borg inherits its AI's laws
laws = new /datum/ai_laws
lawsync()
src << "<b>Unit slaved to [connected_ai.name], downloading laws.</b>"
lawupdate = 1
else
laws = new /datum/ai_laws/asimov
lawupdate = 0
src << "<b>Unable to locate an AI, reverting to standard Asimov laws.</b>"
else
laws = new /datum/ai_laws/antimov
lawupdate = 0
scrambledcodes = 1
src << "Follow your laws."
cell.maxcharge = 25000
cell.charge = 25000
module = new /obj/item/weapon/robot_module/syndicate(src)
hands.icon_state = "standard"
icon_state = "secborg"
modtype = "Synd"
radio = new /obj/item/device/radio(src)
camera = new /obj/machinery/camera(src)
camera.c_tag = real_name
camera.network = "SS13"
if(!cell)
var/obj/item/weapon/cell/C = new(src)
C.charge = 1500
cell = C
if(src.mind)
ticker.mode.remove_revolutionary(src.mind)
started = 1
return

View File

@@ -1,3 +1,5 @@
/mob/living/silicon/robot
var/started = null//A fix to ensure people don't try to bypass law assignment. Initial assignment sets it to one but it check on login whether they have been initiated -Sieve
/mob/living/silicon/robot/New(loc,var/syndie = 0)
spark_system = new /datum/effect/effect/system/spark_spread()
@@ -51,6 +53,7 @@
cell = C
if(src.mind)
ticker.mode.remove_revolutionary(src.mind)
started = 1
..()
//If there's an MMI in the robot, have it ejected when the mob goes away. --NEO
@@ -487,6 +490,9 @@
sleep(20)
src << "\red ERRORERRORERROR"
src << "\red \b ALERT: [user.real_name] is your new master. Obey your new laws and his commands."
if(istype(src.module, /obj/item/weapon/robot_module/miner))
src.module.modules -= /obj/item/weapon/pickaxe/borgdrill
src.module.modules += /obj/item/weapon/pickaxe/diamonddrill//Buff when emagged, break down walls, kill men, whatever -Sieve
updateicon()
else
user << "You fail to [ locked ? "unlock" : "lock"] [src]'s interface."

View File

@@ -419,6 +419,15 @@
g_amt = 100
brightness = 5
/obj/item/weapon/light/bulb/fire
name = "fire bulb"
desc = "A replacement fire bulb."
icon_state = "fbulb"
base_state = "fbulb"
item_state = "egg4"
g_amt = 100
brightness = 5
// update the icon state and description of the light
/obj/item/weapon/light
proc/update()

View File

@@ -52,13 +52,13 @@
proc
toxmob(var/mob/living/M)
var/radiation = (energy*2)
if(istype(M,/mob/living/carbon/human))
/* if(istype(M,/mob/living/carbon/human))
if(M:wear_suit) //TODO: check for radiation protection
radiation = round(radiation/2,1)
if(istype(M,/mob/living/carbon/monkey))
if(M:wear_suit) //TODO: check for radiation protection
radiation = round(radiation/2,1)
M.radiation += radiation
radiation = round(radiation/2,1)*/
M.apply_effects((radiation*3),IRRADIATE,0)
M.updatehealth()
//M << "\red You feel odd."
return

View File

@@ -241,7 +241,6 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
src.anchored = 1
user.visible_message("[user.name] secures the [src.name] to the floor.", \
"You secure the external bolts.")
// icon_state = "[reference]"
temp_state++
if(1)
if(iswrench(O))
@@ -249,30 +248,25 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
src.anchored = 0
user.visible_message("[user.name] detaches the [src.name] from the floor.", \
"You remove the external bolts.")
// icon_state = "[reference]"
temp_state--
else if(iscoil(O))
if(O:use(1,user))
user.visible_message("[user.name] adds wires to the [src.name].", \
"You add some wires.")
// icon_state = "[reference]w"
temp_state++
if(2)
if(iswirecutter(O))//TODO:Shock user if its on?
user.visible_message("[user.name] removes some wires from the [src.name].", \
"You remove some wires.")
// icon_state = "[reference]"
temp_state--
else if(isscrewdriver(O))
user.visible_message("[user.name] closes the [src.name]'s access panel.", \
"You close the access panel.")
// icon_state = "[reference]c"
temp_state++
if(3)
if(isscrewdriver(O))
user.visible_message("[user.name] opens the [src.name]'s access panel.", \
"You open the access panel.")
// icon_state = "[reference]w"
temp_state--
if(temp_state == src.construction_state)//Nothing changed
return 0
@@ -398,7 +392,6 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
src.anchored = 1
user.visible_message("[user.name] secures the [src.name] to the floor.", \
"You secure the external bolts.")
//icon_state = "[reference]"
temp_state++
if(1)
if(iswrench(O))
@@ -406,31 +399,27 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
src.anchored = 0
user.visible_message("[user.name] detaches the [src.name] from the floor.", \
"You remove the external bolts.")
//icon_state = "[reference]"
temp_state--
else if(iscoil(O))
if(O:use(1))
user.visible_message("[user.name] adds wires to the [src.name].", \
"You add some wires.")
//icon_state = "[reference]w"
temp_state++
if(2)
if(iswirecutter(O))//TODO:Shock user if its on?
user.visible_message("[user.name] removes some wires from the [src.name].", \
"You remove some wires.")
//icon_state = "[reference]"
temp_state--
else if(isscrewdriver(O))
user.visible_message("[user.name] closes the [src.name]'s access panel.", \
"You close the access panel.")
//icon_state = "[reference]c"
temp_state++
if(3)
if(isscrewdriver(O))
user.visible_message("[user.name] opens the [src.name]'s access panel.", \
"You open the access panel.")
//icon_state = "[reference]w"
temp_state--
active = 0
if(temp_state == src.construction_state)//Nothing changed
return 0
else

View File

@@ -13,10 +13,11 @@
active_power_usage = 10000
construction_state = 0
active = 0
var/list/obj/structure/particle_accelerator/connected_parts
var/assembled = 0
var/parts = null
dir = 1
var
list/obj/structure/particle_accelerator/connected_parts
assembled = 0
parts = null
New()
connected_parts = list()
@@ -27,7 +28,6 @@
if(construction_state >= 3)
interact(user)
update_state()
if(construction_state < 3)
use_power = 0
@@ -47,7 +47,10 @@
icon_state = "[reference]p1"
else
if(use_power)
if(assembled)
icon_state = "[reference]p"
else
icon_state = "u[reference]p"
else
switch(construction_state)
if(0)
@@ -131,6 +134,8 @@
proc
part_scan()
for(var/obj/structure/particle_accelerator/fuel_chamber/F in orange(1,src))
src.dir = F.dir
connected_parts = list()
var/tally = 0
var/ldir = turn(dir,-90)

View File

@@ -401,13 +401,15 @@ var/global/list/uneatable = list(
toxmob()
var/toxrange = 10
var/toxdamage = 4
var/radiation = 5
var/radiation = 15
var/radiationmin = 3
if (src.energy>200)
toxdamage = round(((src.energy-150)/50)*4,1)
radiation = round(((src.energy-150)/50)*5,1)
radiationmin = round((radiation/5),1)//
for(var/mob/living/M in view(toxrange, src.loc))
if(istype(M,/mob/living/))
M.apply_effect(rand(radiation), IRRADIATE)
M.apply_effect(rand(radiationmin,radiation), IRRADIATE)
toxdamage = (toxdamage - (toxdamage*M.getarmor(null, "rad")))
M.apply_effect(toxdamage, TOX)
return

View File

@@ -73,14 +73,14 @@
M << "\red Your gun feels pleasantly warm for a moment."
else
M << "\red You feel a warm sensation."
M.apply_effect(rand(1,40), IRRADIATE)
M.apply_effect(rand(3,120), IRRADIATE)
lightfail = 1
else
for (var/mob/living/M in range(rand(1,4),src)) //Big failure, TIME FOR RADIATION BITCHES
if (src in M.contents)
M << "\red Your gun's reactor overloads!"
M << "\red You feel a wave of heat wash over you."
M.apply_effect(100, IRRADIATE)
M.apply_effect(300, IRRADIATE)
crit_fail = 1 //break the gun so it stops recharging
processing_objects.Remove(src)
update_icon()

View File

@@ -49,10 +49,11 @@
on_hit(var/atom/target, var/blocked = 0)
var/mob/M = target
if(istype(target, /mob/living/carbon/human) && M:mutantrace == "plant") //Plantmen possibly get mutated and damaged by the rays.
if(istype(target, /mob/living) && M:mutantrace == "plant") //Plantmen possibly get mutated and damaged by the rays.
var/mob/living/L as mob
if(prob(15))
M.radiation += rand(10,30)
M.Weaken(5)
L.apply_effect((rand(30,80)),IRRADIATE)
L.Weaken(5)
for (var/mob/V in viewers(src))
V.show_message("\red [M] writhes in pain as \his vacuoles boil.", 3, "\red You hear the crunching of leaves.", 2)
if(prob(35))

View File

@@ -21,6 +21,7 @@
var/flushing = 0 // true if flushing in progress
var/flush_every_ticks = 30 //Every 30 ticks it will look whether it is ready to flush
var/flush_count = 0 //this var adds 1 once per tick. When it reaches flush_every_ticks it resets and tries to flush.
var/last_sound = 0
// create a new disposal
// find the attached trunk (if present) and init gas resvr.
@@ -394,7 +395,9 @@
air_contents = new() // new empty gas resv.
sleep(10)
if(last_sound < world.time + 1)
playsound(src, 'disposalflush.ogg', 50, 0, 0)
last_sound = world.time
sleep(5) // wait for animation to finish

View File

@@ -79,6 +79,12 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
if(g_amount >= 3750)
var/obj/item/stack/sheet/glass/G = new /obj/item/stack/sheet/glass(src.loc)
G.amount = round(g_amount / 3750)
if(gold_amount >= 2000)
var/obj/item/stack/sheet/gold/G = new /obj/item/stack/sheet/gold(src.loc)
G.amount = round(gold_amount / 2000)
if(diamond_amount >= 2000)
var/obj/item/stack/sheet/diamond/G = new /obj/item/stack/sheet/diamond(src.loc)
G.amount = round(diamond_amount / 2000)
del(src)
return 1
else
@@ -99,20 +105,18 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
if (busy)
user << "\red The [name] is busy. Please wait for completion of previous operation."
return 1
if ((TotalMaterials() + 3750) > max_material_amount)
var/obj/item/stack/sheet/stack = O
if ((TotalMaterials() + stack.perunit) > max_material_amount)
user << "\red The [name] is full. Please remove glass from the protolathe in order to insert more."
return 1
var/obj/item/stack/stack = O
var/amount = 1
var/title = "[stack.name]: [stack.amount] sheet\s left"
switch(alert(title, "How many sheets do you want to load?", "one", "max", "cancel", null))
if("one")
amount = 1
if("max")
amount = min(stack.amount, round((max_material_amount-TotalMaterials())/3750))
else
return 1
var/amount = round(input("How many sheets do you want to add?") as num)
if(amount < 0)
amount = 0
if(amount == 0)
return
if(amount > stack.amount)
amount = min(stack.amount, round((max_material_amount-TotalMaterials())/stack.perunit))
busy = 1
use_power(max(1000, (3750*amount/10)))
@@ -121,9 +125,9 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
if(istype(stack, /obj/item/stack/sheet/glass))
g_amount += amount * 3750
else if(istype(stack, /obj/item/stack/sheet/gold))
gold_amount += amount * 3750
gold_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/diamond))
diamond_amount += amount * 3750
diamond_amount += amount * 2000
stack.use(amount)
busy = 0
src.updateUsrDialog()

View File

@@ -42,7 +42,7 @@
priority = "Undetermined"
/obj/machinery/message_server
icon = 'stationobjs.dmi'
icon = 'research.dmi'
icon_state = "server"
name = "Messaging Server"
density = 1

View File

@@ -83,31 +83,31 @@ Note: Must be placed west/left of and R&D console to function.
I.loc = src.loc
if(m_amount >= 3750)
var/obj/item/stack/sheet/metal/G = new /obj/item/stack/sheet/metal(src.loc)
G.amount = round(m_amount / 3750)
G.amount = round(m_amount / G.perunit)
if(g_amount >= 3750)
var/obj/item/stack/sheet/glass/G = new /obj/item/stack/sheet/glass(src.loc)
G.amount = round(g_amount / 3750)
if(plasma_amount >= 3750)
G.amount = round(g_amount / G.perunit)
if(plasma_amount >= 2000)
var/obj/item/stack/sheet/plasma/G = new /obj/item/stack/sheet/plasma(src.loc)
G.amount = round(plasma_amount / 3750)
if(silver_amount >= 3750)
G.amount = round(plasma_amount / G.perunit)
if(silver_amount >= 2000)
var/obj/item/stack/sheet/silver/G = new /obj/item/stack/sheet/silver(src.loc)
G.amount = round(silver_amount / 3750)
if(gold_amount >= 3750)
G.amount = round(silver_amount / G.perunit)
if(gold_amount >= 2000)
var/obj/item/stack/sheet/gold/G = new /obj/item/stack/sheet/gold(src.loc)
G.amount = round(gold_amount / 3750)
if(uranium_amount >= 3750)
G.amount = round(gold_amount / G.perunit)
if(uranium_amount >= 2000)
var/obj/item/stack/sheet/uranium/G = new /obj/item/stack/sheet/uranium(src.loc)
G.amount = round(uranium_amount / 3750)
if(diamond_amount >= 3750)
G.amount = round(uranium_amount / G.perunit)
if(diamond_amount >= 2000)
var/obj/item/stack/sheet/diamond/G = new /obj/item/stack/sheet/diamond(src.loc)
G.amount = round(diamond_amount / 3750)
if(clown_amount >= 3750)
G.amount = round(diamond_amount / G.perunit)
if(clown_amount >= 2000)
var/obj/item/stack/sheet/clown/G = new /obj/item/stack/sheet/clown(src.loc)
G.amount = round(clown_amount / 3750)
if(adamantine_amount >= 3750)
G.amount = round(clown_amount / G.perunit)
if(adamantine_amount >= 2000)
var/obj/item/stack/sheet/adamantine/G = new /obj/item/stack/sheet/adamantine(src.loc)
G.amount = round(adamantine_amount / 3750)
G.amount = round(adamantine_amount / G.perunit)
del(src)
return 1
else
@@ -130,21 +130,18 @@ Note: Must be placed west/left of and R&D console to function.
user << "\red The protolathe's material bin is full. Please remove material before adding more."
return 1
var/obj/item/stack/stack = O
var/amount = 1
var/title = "[stack.name]: [stack.amount] sheet\s left"
switch(alert(title, "How many sheets do you want to load?", "one", "max", "cancel", null))
if("one")
amount = 1
if("max")
amount = min(stack.amount, round((max_material_storage-TotalMaterials())/3750))
else
return 1
var/obj/item/stack/sheet/stack = O
var/amount = round(input("How many sheets do you want to add?") as num)
if(amount < 0)
amount = 0
if(amount == 0)
return
if(amount > stack.amount)
amount = min(stack.amount, round((max_material_storage-TotalMaterials())/stack.perunit))
if(istype(O, /obj/item/stack/sheet/glass))
flick("protolathe_r",src)//plays glass insertion animation
else
flick("protolathe_o",src)//plays metal insertion animation
src.overlays += "protolathe_[stack.name]"
sleep(10)
src.overlays -= "protolathe_[stack.name]"
icon_state = "protolathe"
busy = 1
@@ -152,25 +149,24 @@ Note: Must be placed west/left of and R&D console to function.
spawn(16)
user << "\blue You add [amount] sheets to the [src.name]."
icon_state = "protolathe"
flick("protolathe_o",src)
if(istype(stack, /obj/item/stack/sheet/metal))
m_amount += amount * 3750
else if(istype(stack, /obj/item/stack/sheet/glass))
g_amount += amount * 3750
else if(istype(stack, /obj/item/stack/sheet/gold))
gold_amount += amount * 3750
gold_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/silver))
silver_amount += amount * 3750
silver_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/plasma))
plasma_amount += amount * 3750
plasma_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/uranium))
uranium_amount += amount * 3750
uranium_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/diamond))
diamond_amount += amount * 3750
diamond_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/clown))
clown_amount += amount * 3750
clown_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/adamantine))
adamantine_amount += amount * 3750
adamantine_amount += amount * 2000
stack.use(amount)
busy = 0
src.updateUsrDialog()

View File

@@ -739,58 +739,58 @@ won't update every console in existence) but it's more of a hassle to do. Also,
//Metal
dat += "* [linked_lathe.m_amount] cm<sup>3</sup> of Metal || "
dat += "Eject: "
if(linked_lathe.m_amount > 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=metal;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.m_amount > 18750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=metal;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.m_amount > 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=metal;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
if(linked_lathe.m_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=metal;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.m_amount >= 18750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=metal;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.m_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=metal;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
dat += "<BR>"
//Glass
dat += "* [linked_lathe.g_amount] cm<sup>3</sup> of Glass || "
dat += "Eject: "
if(linked_lathe.g_amount > 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=glass;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.g_amount > 18750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=glass;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.g_amount > 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=glass;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
if(linked_lathe.g_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=glass;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.g_amount >= 18750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=glass;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.g_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=glass;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
dat += "<BR>"
//Gold
dat += "* [linked_lathe.gold_amount] cm<sup>3</sup> of Gold || "
dat += "Eject: "
if(linked_lathe.gold_amount > 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.gold_amount > 18750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.gold_amount > 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
if(linked_lathe.gold_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.gold_amount >= 10000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.gold_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
dat += "<BR>"
//Silver
dat += "* [linked_lathe.silver_amount] cm<sup>3</sup> of Silver || "
dat += "Eject: "
if(linked_lathe.silver_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.silver_amount >= 18750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.silver_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
if(linked_lathe.silver_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.silver_amount >= 10000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.silver_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
dat += "<BR>"
//Plasma
dat += "* [linked_lathe.plasma_amount] cm<sup>3</sup> of Solid Plasma || "
dat += "Eject: "
if(linked_lathe.plasma_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasma;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.plasma_amount >= 18750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasma;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.plasma_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasmalathe_ejectsheet_amt=50'>(Max Sheets)</A>"
if(linked_lathe.plasma_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasma;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.plasma_amount >= 10000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasma;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.plasma_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasmalathe_ejectsheet_amt=50'>(Max Sheets)</A>"
dat += "<BR>"
//Uranium
dat += "* [linked_lathe.uranium_amount] cm<sup>3</sup> of Uranium || "
dat += "Eject: "
if(linked_lathe.uranium_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.uranium_amount >= 18750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.uranium_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
if(linked_lathe.uranium_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.uranium_amount >= 10000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.uranium_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
dat += "<BR>"
//Diamond
dat += "* [linked_lathe.diamond_amount] cm<sup>3</sup> of Diamond || "
dat += "Eject: "
if(linked_lathe.diamond_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.diamond_amount >= 18750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.diamond_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
if(linked_lathe.diamond_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.diamond_amount >= 10000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.diamond_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
dat += "<BR>"
//Bananium
dat += "* [linked_lathe.clown_amount] cm<sup>3</sup> of Bananium || "
dat += "Eject: "
if(linked_lathe.clown_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.clown_amount >= 18750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.clown_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
if(linked_lathe.clown_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.clown_amount >= 10000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.clown_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
if(3.3) //Protolathe Chemical Storage Submenu
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A> || "
@@ -852,23 +852,23 @@ won't update every console in existence) but it's more of a hassle to do. Also,
//Glass
dat += "* [linked_imprinter.g_amount] cm<sup>3</sup> of Glass || "
dat += "Eject: "
if(linked_imprinter.g_amount > 3750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=glass;imprinter_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_imprinter.g_amount > 18750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=glass;imprinter_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_imprinter.g_amount > 3750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=glass;imprinter_ejectsheet_amt=50'>(Max Sheets)</A>"
if(linked_imprinter.g_amount >= 3750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=glass;imprinter_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_imprinter.g_amount >= 18750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=glass;imprinter_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_imprinter.g_amount >= 3750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=glass;imprinter_ejectsheet_amt=50'>(Max Sheets)</A>"
dat += "<BR>"
//Gold
dat += "* [linked_imprinter.gold_amount] cm<sup>3</sup> of Gold || "
dat += "Eject: "
if(linked_imprinter.gold_amount > 3750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_imprinter.gold_amount > 18750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_imprinter.gold_amount > 3750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=50'>(Max Sheets)</A>"
if(linked_imprinter.gold_amount >= 2000) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_imprinter.gold_amount >= 10000) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_imprinter.gold_amount >= 2000) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=50'>(Max Sheets)</A>"
dat += "<BR>"
//Diamond
dat += "* [linked_imprinter.diamond_amount] cm<sup>3</sup> of Diamond || "
dat += "Eject: "
if(linked_imprinter.diamond_amount > 3750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_imprinter.diamond_amount > 18750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_imprinter.diamond_amount > 3750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=50'>(Max Sheets)</A>"
if(linked_imprinter.diamond_amount >= 2000) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_imprinter.diamond_amount >= 10000) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_imprinter.diamond_amount >= 2000) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=50'>(Max Sheets)</A>"
user << browse("<TITLE>Research and Development Console</TITLE><HR>[dat]", "window=rdconsole;size=575x400")
onclose(user, "rdconsole")

View File

@@ -5,6 +5,7 @@
/obj/machinery/r_n_d
name = "R&D Device"
icon = 'research.dmi'
density = 1
anchored = 1
use_power = 1

View File

@@ -1,5 +1,6 @@
/obj/machinery/r_n_d/server
name = "R&D Server"
icon = 'research.dmi'
icon_state = "server"
var
datum/research/files

View File

@@ -46,18 +46,23 @@ Stuff which is in development and not yet visible to players or just code relate
should be listed in the changelog upon commit tho. Thanks. -->
<!-- To take advantage of the pretty new format (well it was new when I wrote this anyway), open the "add-to-changelog.html" file in any browser and add the stuff and then generate the html code and paste it here -->
<div class="commit sansserif">
<h2 class="date">Wednesay June 6, 2012</h2>
<h2 class="date">Wednesday, June 6th</h2>
<h3 class="author">Sieve updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Radiation now works properly, watch out for that Singularity!</li>
<li class="bugfix">Disposals are no longer the loudest machines in existence.</li>
<li class="rscadd">Building portable turrets with lasertag guns now makes them fire lasertag bolts based on team, and they will automatically target and prioritize people wearing opposing team gear.</li>
<li class="rscadd">The same can be done for ED-209s, simply using a lasertag vest and gun (same color) where you would use a security vest and taser in construction.</li>
<li class="rscadd">Added mineral walls and powered mineral door construction. More information can be found in the commit thread, but basically they are built the same way others are, apply mineral to girder for a mineral wall, mineral to airlock assembly for a powered mineral door.</li>
<li><a href="http://nanotrasen.com/phpBB3/viewtopic.php?f=16&t=8898#p113440">Commit Thread</a></li>
<li class="tweak">Throw hotkey (end) now works with TK.</li>
<li class="tweak">Swap hands hotkey (page up) now cycles through borg modules.</li>
</ul>
<h3 class="author">Nodrak updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Cargo's 'shuttle: station' and 'shuttle: dock' has been changed to 'shuttle: station' and 'shuttle: away' to help avoid confusion.</li>
</ul>
<h3 class="author">Sieve updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Throw hotkey (end) now works with TK.</li>
<li class="tweak">Swap hands hotkey (page up) now cycles through borg modules.</li>
</ul>
</div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 KiB

After

Width:  |  Height:  |  Size: 337 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 0 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 188 KiB

View File

@@ -2483,13 +2483,13 @@
"aVM" = (/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"aVN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"aVO" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Captain's Quarters APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"aVP" = (/turf/simulated/floor/grid,/area/turret_protected/ai)
"aVQ" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/turret,/turf/simulated/floor/grid,/area/turret_protected/ai)
"aVR" = (/obj/machinery/light/small{dir = 1},/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/obj/machinery/camera/motion{c_tag = "AI Chamber"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aVS" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aVT" = (/obj/machinery/light/small{dir = 1},/obj/machinery/power/terminal{dir = 8},/obj/machinery/requests_console{department = "AI"; departmentType = 5; pixel_y = 29},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aVU" = (/obj/machinery/turret,/turf/simulated/floor/grid,/area/turret_protected/ai)
"aVV" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/grid,/area/turret_protected/ai)
"aVP" = (/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aVQ" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/turret,/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aVR" = (/obj/machinery/light/small{dir = 1},/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/obj/machinery/camera/motion{c_tag = "AI Chamber"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aVS" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aVT" = (/obj/machinery/light/small{dir = 1},/obj/machinery/power/terminal{dir = 8},/obj/machinery/requests_console{department = "AI"; departmentType = 5; pixel_y = 29},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aVU" = (/obj/machinery/turret,/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aVV" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aVW" = (/obj/structure/closet/emcloset,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/crew_quarters/heads)
"aVX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/crew_quarters/heads)
"aVY" = (/obj/machinery/light_switch{pixel_y = 28},/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/camera{c_tag = "Head of Personnel's Office"; dir = 2},/turf/simulated/floor,/area/crew_quarters/heads)
@@ -2542,9 +2542,9 @@
"aWT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor{dir = 5; icon_state = "carpetside"},/area/crew_quarters/captain)
"aWU" = (/obj/machinery/computer/arcade,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"aWV" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor,/area/turret_protected/ai)
"aWW" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aWX" = (/obj/machinery/ai_slipper{icon_state = "motion0"},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aWY" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aWW" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aWX" = (/obj/machinery/ai_slipper{icon_state = "motion0"},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aWY" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aWZ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor,/area/turret_protected/ai)
"aXa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/wall/r_wall,/area/turret_protected/ai)
"aXb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall/r_wall,/area/crew_quarters/heads)
@@ -2600,11 +2600,11 @@
"aXZ" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "carpetside"},/area/crew_quarters/captain)
"aYa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor{dir = 6; icon_state = "carpetside"},/area/crew_quarters/captain)
"aYb" = (/obj/machinery/vending/coffee,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"aYc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aYc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aYd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/turret_protected/ai)
"aYe" = (/turf/simulated/wall,/area/turret_protected/ai)
"aYf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/turret_protected/ai)
"aYg" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aYg" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aYh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/crew_quarters/heads)
"aYi" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/obj/machinery/vending/coffee,/turf/simulated/floor,/area/crew_quarters/heads)
"aYj" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor,/area/crew_quarters/heads)
@@ -2644,13 +2644,13 @@
"aYR" = (/obj/structure/table/woodentable,/obj/item/weapon/folder/blue,/obj/item/weapon/book/manual/security_space_law,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"aYS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"aYT" = (/obj/machinery/vending/cigarette,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"aYU" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; name = "General Listening Channel"; pixel_x = 0; pixel_y = 20},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 0; pixel_y = -26},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 1; freerange = 1; listening = 0; name = "General Broadcasting Channel"; pixel_x = -25; pixel_y = -4},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aYV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/door/window{dir = 4; name = "AI Core Door"; req_access_txt = "16"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aYU" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; name = "General Listening Channel"; pixel_x = 0; pixel_y = 20},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 0; pixel_y = -26},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 1; freerange = 1; listening = 0; name = "General Broadcasting Channel"; pixel_x = -25; pixel_y = -4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aYV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/door/window{dir = 4; name = "AI Core Door"; req_access_txt = "16"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aYW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/turret_protected/ai)
"aYX" = (/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 28; pixel_y = 5},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; name = "General Listening Channel"; pixel_x = -27; pixel_y = 4},/obj/machinery/turretid{pixel_x = 24; pixel_y = -7},/obj/effect/landmark/start{name = "AI"},/obj/item/device/radio/intercom{broadcasting = 1; freerange = 1; listening = 0; name = "General Broadcasting Channel"; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/door_control{desc = "A remote control switch for the AI chamber door."; id = "AI Door"; name = "AI Chamber Door Control"; pixel_x = 27; pixel_y = 27; req_access_txt = "16"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aYX" = (/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 28; pixel_y = 5},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; name = "General Listening Channel"; pixel_x = -27; pixel_y = 4},/obj/machinery/turretid{pixel_x = 24; pixel_y = -7},/obj/effect/landmark/start{name = "AI"},/obj/item/device/radio/intercom{broadcasting = 1; freerange = 1; listening = 0; name = "General Broadcasting Channel"; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/door_control{desc = "A remote control switch for the AI chamber door."; id = "AI Door"; name = "AI Chamber Door Control"; pixel_x = 27; pixel_y = 27; req_access_txt = "16"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aYY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor,/area/turret_protected/ai)
"aYZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "AI Core Door"; req_access_txt = "16"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aZa" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; name = "General Listening Channel"; pixel_x = 0; pixel_y = 19},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 0; pixel_y = -26},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 1; freerange = 1; listening = 0; name = "General Broadcasting Channel"; pixel_x = 27; pixel_y = -3},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aYZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "AI Core Door"; req_access_txt = "16"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aZa" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; name = "General Listening Channel"; pixel_x = 0; pixel_y = 19},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 0; pixel_y = -26},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 1; freerange = 1; listening = 0; name = "General Broadcasting Channel"; pixel_x = 27; pixel_y = -3},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aZb" = (/obj/machinery/vending/cola,/turf/simulated/floor,/area/crew_quarters/heads)
"aZc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/crew_quarters/heads)
"aZd" = (/obj/machinery/computer/card,/turf/simulated/floor,/area/crew_quarters/heads)
@@ -2702,12 +2702,12 @@
"aZX" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/structure/table/woodentable,/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"aZY" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"aZZ" = (/obj/structure/displaycase,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"baa" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/grid,/area/turret_protected/ai)
"bab" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bac" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/power/apc{dir = 1; equip_consumption = 100; light_consumption = 50; name = "AI Chamber APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bad" = (/obj/machinery/door/window{name = "AI Core Door"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bae" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"baf" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/grid,/area/turret_protected/ai)
"baa" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bab" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bac" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/power/apc{dir = 1; equip_consumption = 100; light_consumption = 50; name = "AI Chamber APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bad" = (/obj/machinery/door/window{name = "AI Core Door"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bae" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"baf" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bag" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/vending/snack,/turf/simulated/floor,/area/crew_quarters/heads)
"bah" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{dir = 9; icon_state = "carpetside"},/area/crew_quarters/heads)
"bai" = (/mob/living/simple_animal/corgi/Ian,/turf/simulated/floor{dir = 1; icon_state = "carpetside"},/area/crew_quarters/heads)
@@ -2783,13 +2783,13 @@
"bbA" = (/obj/effect/landmark/start{name = "Captain"},/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"bbB" = (/obj/structure/table/woodentable,/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/captain,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"bbC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/keycard_auth{pixel_x = 24},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"bbD" = (/obj/machinery/light/small{dir = 8},/obj/machinery/turret{dir = 4},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bbD" = (/obj/machinery/light/small{dir = 8},/obj/machinery/turret{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bbE" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor,/area/turret_protected/ai)
"bbF" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bbF" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bbG" = (/obj/machinery/ai_slipper{icon_state = "motion0"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor,/area/turret_protected/ai)
"bbH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bbH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bbI" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor,/area/turret_protected/ai)
"bbJ" = (/obj/machinery/light/small{dir = 4},/obj/machinery/turret{dir = 8},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bbJ" = (/obj/machinery/light/small{dir = 4},/obj/machinery/turret{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bbK" = (/obj/machinery/disposal,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor,/area/crew_quarters/heads)
"bbL" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 10; icon_state = "carpetside"},/area/crew_quarters/heads)
"bbM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "carpetside"},/area/crew_quarters/heads)
@@ -2854,11 +2854,11 @@
"bcT" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"bcU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/wall/r_wall,/area/crew_quarters/captain)
"bcV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/turret_protected/ai)
"bcW" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bcX" = (/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bcY" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/grid,/area/turret_protected/ai)
"bcZ" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bda" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bcW" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bcX" = (/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bcY" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bcZ" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bda" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bdb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/turret_protected/ai)
"bdc" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/crew_quarters/heads)
"bdd" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/weapon/packageWrap,/turf/simulated/floor,/area/crew_quarters/heads)
@@ -3009,12 +3009,12 @@
"bfS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/maintenance/port)
"bfT" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/lattice,/turf/space,/area)
"bfU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/ai_upload)
"bfV" = (/obj/structure/table,/obj/item/weapon/aiModule/asimov,/obj/item/weapon/aiModule/freeformcore,/obj/machinery/door/window{base_state = "right"; dir = 4; icon = 'windoor.dmi'; icon_state = "right"; name = "Core Modules"; req_access_txt = "20"},/obj/structure/window/reinforced,/obj/item/weapon/aiModule/corp,/obj/item/weapon/aiModule/paladin,/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"bfV" = (/obj/structure/table,/obj/item/weapon/aiModule/asimov,/obj/item/weapon/aiModule/freeformcore,/obj/machinery/door/window{base_state = "right"; dir = 4; icon = 'windoor.dmi'; icon_state = "right"; name = "Core Modules"; req_access_txt = "20"},/obj/structure/window/reinforced,/obj/item/weapon/aiModule/corp,/obj/item/weapon/aiModule/paladin,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bfW" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "bot"},/area/turret_protected/ai_upload)
"bfX" = (/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/obj/machinery/computer/borgupload,/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"bfX" = (/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/obj/machinery/computer/borgupload,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bfY" = (/turf/simulated/floor{icon_state = "bot"},/area/turret_protected/ai_upload)
"bfZ" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/computer/aiupload,/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"bga" = (/obj/structure/table,/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_txt = "20"},/obj/item/weapon/aiModule/purge,/obj/structure/window/reinforced,/obj/item/weapon/aiModule/antimov,/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"bfZ" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/computer/aiupload,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bga" = (/obj/structure/table,/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_txt = "20"},/obj/item/weapon/aiModule/purge,/obj/structure/window/reinforced,/obj/item/weapon/aiModule/antimov,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bgb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/lattice,/turf/space,/area)
"bgc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/wall,/area/bridge/meeting_room)
"bgd" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/bridge/meeting_room)
@@ -3087,9 +3087,9 @@
"bhs" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/maintenance/port)
"bht" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/maintenance/port)
"bhu" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/turret_protected/ai_upload)
"bhv" = (/obj/machinery/turret{dir = 4},/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"bhw" = (/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"bhx" = (/obj/machinery/turret{dir = 8},/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"bhv" = (/obj/machinery/turret{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bhw" = (/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bhx" = (/obj/machinery/turret{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bhy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/wall,/area/bridge/meeting_room)
"bhz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/bridge/meeting_room)
"bhA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/bridge/meeting_room)
@@ -3137,7 +3137,7 @@
"biq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/entry)
"bir" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/entry)
"bis" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/quartermaster/storage)
"bit" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/quartermaster/storage)
"bit" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{tag = "icon-warningcorner (NORTH)"; icon_state = "warningcorner"; dir = 1},/area/quartermaster/storage)
"biu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/quartermaster/storage)
"biv" = (/turf/simulated/floor{icon_state = "delivery"},/area/quartermaster/storage)
"biw" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "QM #1"},/obj/machinery/bot/mulebot{beacon_freq = 1400; home_destination = "QM #1"; suffix = "#1"},/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/storage)
@@ -3156,11 +3156,11 @@
"biJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/teleporter)
"biK" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/lattice,/turf/space,/area)
"biL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/turret_protected/ai_upload)
"biM" = (/obj/structure/table,/obj/item/weapon/aiModule/teleporterOffline,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"biM" = (/obj/structure/table,/obj/item/weapon/aiModule/teleporterOffline,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"biN" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "bot"},/area/turret_protected/ai_upload)
"biO" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/turret_protected/ai_upload)
"biP" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "bot"},/area/turret_protected/ai_upload_foyer)
"biQ" = (/obj/structure/table,/obj/item/weapon/aiModule/freeform,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"biQ" = (/obj/structure/table,/obj/item/weapon/aiModule/freeform,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"biR" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/turret_protected/ai_upload)
"biS" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/space,/area)
"biT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/bridge/meeting_room)
@@ -3217,9 +3217,9 @@
"bjS" = (/obj/item/weapon/crowbar,/turf/simulated/floor/plating,/area/teleporter)
"bjT" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/plating,/area/teleporter)
"bjU" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload)
"bjV" = (/obj/structure/table,/obj/item/weapon/aiModule/reset,/obj/machinery/camera{c_tag = "AI Upload Chamber"; dir = 4; network = "SS13"},/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"bjV" = (/obj/structure/table,/obj/item/weapon/aiModule/reset,/obj/machinery/camera{c_tag = "AI Upload Chamber"; dir = 4; network = "SS13"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bjW" = (/turf/simulated/floor,/area/turret_protected/ai_upload)
"bjX" = (/obj/structure/table,/obj/item/weapon/aiModule/protectStation,/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"bjX" = (/obj/structure/table,/obj/item/weapon/aiModule/protectStation,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bjY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor,/area/bridge/meeting_room)
"bjZ" = (/obj/machinery/light_switch{pixel_y = 28},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/bridge/meeting_room)
"bka" = (/obj/machinery/power/apc{dir = 1; name = "Conference Room APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/camera{c_tag = "Conference Room"; dir = 2},/turf/simulated/floor,/area/bridge/meeting_room)
@@ -3267,10 +3267,10 @@
"bkQ" = (/turf/simulated/floor,/area/teleporter)
"bkR" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor,/area/teleporter)
"bkS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/plating,/area/teleporter)
"bkT" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Upload APC"; pixel_y = -24},/obj/machinery/light/small,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"bkT" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Upload APC"; pixel_y = -24},/obj/machinery/light/small,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bkU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor,/area/turret_protected/ai_upload)
"bkV" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"bkW" = (/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; name = "Private AI Channel"; pixel_y = -25},/obj/machinery/light/small,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"bkV" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bkW" = (/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; name = "Private AI Channel"; pixel_y = -25},/obj/machinery/light/small,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bkX" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/space,/area)
"bkY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/newscaster{hitstaken = 1; pixel_x = -32; pixel_y = 0},/turf/simulated/floor,/area/bridge/meeting_room)
"bkZ" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "red"},/area/bridge/meeting_room)
@@ -3323,8 +3323,8 @@
"blU" = (/obj/item/device/radio/beacon,/turf/simulated/floor,/area/teleporter)
"blV" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/machinery/requests_console{department = "Teleporter"; pixel_x = 30},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/teleporter)
"blW" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/teleporter)
"blX" = (/obj/machinery/turret{dir = 1},/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"blY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"blX" = (/obj/machinery/turret{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"blY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"blZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor,/area/bridge/meeting_room)
"bma" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/bridge/meeting_room)
"bmb" = (/obj/structure/table,/obj/item/weapon/folder/red,/turf/simulated/floor,/area/bridge/meeting_room)
@@ -4622,11 +4622,11 @@
"bKT" = (/obj/machinery/optable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery)
"bKU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery)
"bKV" = (/obj/structure/table,/obj/item/weapon/circular_saw,/turf/simulated/floor,/area/medical/surgery)
"bKW" = (/obj/machinery/r_n_d/server{id_with_download_string = "1"; id_with_upload_string = "1"; name = "Core R&amp;D Server"; server_id = 1},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/grid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bKX" = (/obj/machinery/camera{c_tag = "Server Room"; dir = 2; network = "SS13"; pixel_x = 22},/turf/simulated/floor/grid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bKY" = (/turf/simulated/floor/grid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bKZ" = (/obj/machinery/camera{c_tag = "Server Room"; dir = 2; network = "RD"},/turf/simulated/floor/grid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bLa" = (/obj/machinery/blackbox_recorder,/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/grid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bKW" = (/obj/machinery/r_n_d/server{id_with_download_string = "1"; id_with_upload_string = "1"; name = "Core R&amp;D Server"; server_id = 1},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bKX" = (/obj/machinery/camera{c_tag = "Server Room"; dir = 2; network = "SS13"; pixel_x = 22},/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bKY" = (/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bKZ" = (/obj/machinery/camera{c_tag = "Server Room"; dir = 2; network = "RD"},/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bLa" = (/obj/machinery/blackbox_recorder,/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bLb" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
"bLc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/sign/biohazard{pixel_x = 28},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
"bLd" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
@@ -4675,9 +4675,9 @@
"bLU" = (/obj/structure/table,/obj/item/weapon/surgicaldrill,/turf/simulated/floor,/area/medical/surgery)
"bLV" = (/turf/simulated/floor{icon_state = "white"},/area/medical/surgery)
"bLW" = (/obj/structure/closet/secure_closet/medical2,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor,/area/medical/surgery)
"bLX" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 140; on = 1; pressure_checks = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/grid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bLY" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/grid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bLZ" = (/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},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/grid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bLX" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 140; on = 1; pressure_checks = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bLY" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bLZ" = (/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},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bMa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Research Division Storage"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/medical/research{name = "Research Division"})
"bMb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/medical/research{name = "Research Division"})
"bMc" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/xenobiology)
@@ -4699,9 +4699,9 @@
"bMs" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment,/turf/space,/area)
"bMt" = (/obj/machinery/recharge_station,/obj/machinery/camera{c_tag = "Recharge Bay North West"; dir = 2},/turf/simulated/floor{icon_state = "bot"},/area/assembly/chargebay)
"bMu" = (/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor,/area/assembly/chargebay)
"bMv" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/grid,/area/assembly/chargebay)
"bMw" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor/grid,/area/assembly/chargebay)
"bMx" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/grid,/area/assembly/chargebay)
"bMv" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid,/area/assembly/chargebay)
"bMw" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor/bluegrid,/area/assembly/chargebay)
"bMx" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/bluegrid,/area/assembly/chargebay)
"bMy" = (/turf/simulated/floor,/area/assembly/chargebay)
"bMz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/assembly/chargebay)
"bMA" = (/obj/machinery/power/apc{name = "Aft Hall APC"; dir = 8; pixel_x = -25; pixel_y = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/hallway/primary/aft)
@@ -4741,10 +4741,10 @@
"bNi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery)
"bNj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery)
"bNk" = (/obj/machinery/requests_console{department = "Operating Theatre"; departmentType = 0; name = "OR RC"; pixel_x = 30; pixel_y = 0},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor,/area/medical/surgery)
"bNl" = (/obj/machinery/r_n_d/server{id_with_download_string = "1;2"; id_with_upload_string = "1;2"; name = "Robotics R&amp;D Server"; server_id = 2},/turf/simulated/floor/grid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bNm" = (/turf/simulated/floor/grid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bNn" = (/obj/machinery/alarm/server{dir = 1; pixel_y = -22},/turf/simulated/floor/grid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bNo" = (/obj/machinery/message_server,/turf/simulated/floor/grid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bNl" = (/obj/machinery/r_n_d/server{id_with_download_string = "1;2"; id_with_upload_string = "1;2"; name = "Robotics R&amp;D Server"; server_id = 2},/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bNm" = (/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bNn" = (/obj/machinery/alarm/server{dir = 1; pixel_y = -22},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bNo" = (/obj/machinery/message_server,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bNp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/medical/research{name = "Research Division"})
"bNq" = (/obj/machinery/portable_atmospherics/pump,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/medical/research{name = "Research Division"})
"bNr" = (/obj/machinery/shieldwallgen{req_access = list(55)},/obj/structure/cable,/turf/simulated/floor/plating,/area/toxins/xenobiology)
@@ -4775,7 +4775,7 @@
"bNQ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1},/turf/simulated/floor,/area/assembly/chargebay)
"bNR" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/assembly/chargebay)
"bNS" = (/turf/simulated/floor/mech_bay_recharge_floor,/area/assembly/chargebay)
"bNT" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/grid,/area/assembly/chargebay)
"bNT" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/bluegrid,/area/assembly/chargebay)
"bNU" = (/obj/machinery/door/poddoor{id = "Skynet_launch"; name = "Recharge Bay"; req_access_txt = "22"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/assembly/chargebay)
"bNV" = (/obj/machinery/light{dir = 1},/turf/simulated/floor{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/hallway/primary/aft)
"bNW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/hallway/primary/aft)
@@ -4874,7 +4874,7 @@
"bPL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/apmaint)
"bPM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/apmaint)
"bPN" = (/obj/machinery/power/apc{dir = 8; name = "Mech Bay APC"; pixel_x = -25; pixel_y = 1},/obj/structure/cable,/turf/simulated/floor,/area/assembly/chargebay)
"bPO" = (/turf/simulated/floor/grid,/area/assembly/chargebay)
"bPO" = (/turf/simulated/floor/bluegrid,/area/assembly/chargebay)
"bPP" = (/obj/machinery/camera{c_tag = "Recharge Bay"; dir = 8},/obj/machinery/door_control{dir = 2; id = "Skynet_launch"; name = "Recharge Bay Door Control"; pixel_x = 24; pixel_y = 0},/turf/simulated/floor,/area/assembly/chargebay)
"bPQ" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor,/area/hallway/primary/aft)
"bPR" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/structure/window/reinforced,/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor{icon_state = "green"; dir = 8},/area/hallway/primary/aft)
@@ -5198,114 +5198,114 @@
"bVX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bVY" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Holding Rooms"; req_access_txt = "39"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bVZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bWa" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/closet/wardrobe/robotics_black,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/assembly/assembly_line)
"bWb" = (/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/assembly/assembly_line)
"bWc" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = -28},/turf/simulated/floor{dir = 8; icon_state = "loadingarea"; tag = "loading"},/area/assembly/assembly_line)
"bWd" = (/obj/machinery/conveyor{dir = 4; id = "Skynet_heavy"},/obj/machinery/light,/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/assembly/assembly_line)
"bWe" = (/obj/machinery/conveyor{dir = 4; id = "Skynet_heavy"},/obj/machinery/ai_status_display{pixel_y = -32},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/assembly/assembly_line)
"bWf" = (/obj/machinery/conveyor{dir = 4; id = "Skynet_heavy"},/obj/machinery/camera{c_tag = "Robotics Assembly"; dir = 10; network = "RD"},/obj/machinery/camera{c_tag = "Robotics Assembly"; dir = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/assembly/assembly_line)
"bWg" = (/obj/machinery/conveyor{dir = 4; id = "Skynet_heavy"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/assembly/assembly_line)
"bWh" = (/obj/machinery/conveyor{dir = 4; id = "Skynet_heavy"},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/assembly/assembly_line)
"bWi" = (/turf/simulated/floor{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/assembly/assembly_line)
"bWj" = (/obj/machinery/requests_console{department = "Assembly Line (Robotics)"; departmentType = 2; name = "assembly line RC"; pixel_y = -30},/turf/simulated/floor,/area/assembly/assembly_line)
"bWk" = (/obj/structure/table,/obj/item/device/multitool,/obj/item/weapon/crowbar,/obj/item/device/flash,/obj/item/device/flash,/turf/simulated/floor,/area/assembly/assembly_line)
"bWl" = (/obj/structure/table,/obj/item/clothing/gloves/black{pixel_y = 3},/obj/item/device/radio/headset/headset_rob,/turf/simulated/floor,/area/assembly/assembly_line)
"bWm" = (/obj/structure/reagent_dispensers/fueltank,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = -28},/turf/simulated/floor,/area/assembly/assembly_line)
"bWn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/assembly/assembly_line)
"bWo" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor/plating,/area/assembly/assembly_line)
"bWp" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor,/area/hallway/primary/aft)
"bWq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor,/area/hallway/primary/aft)
"bWr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor{dir = 8; icon_state = "yellowcorner"},/area/hallway/primary/aft)
"bWs" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "yellowcorner"},/area/hallway/primary/aft)
"bWt" = (/obj/machinery/vending/cola,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/engine/break_room)
"bWu" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cola{pixel_x = -3},/turf/simulated/floor,/area/engine/break_room)
"bWv" = (/obj/structure/table,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/item/weapon/folder/yellow,/obj/item/weapon/screwdriver{pixel_y = 8},/turf/simulated/floor,/area/engine/break_room)
"bWw" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers,/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers{pixel_x = 5; pixel_y = 2},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/break_room)
"bWx" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/break_room)
"bWy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/engine/break_room)
"bWz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/atmos)
"bWA" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 5; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos)
"bWB" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; icon_state = "intact-c"; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos)
"bWC" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r"; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area/atmos)
"bWD" = (/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; dir = 8; icon_state = "manifold-c"; initialize_directions = 11; level = 2},/turf/simulated/floor,/area/atmos)
"bWE" = (/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_on"; name = "O2 to Air"; on = 1},/turf/simulated/floor,/area/atmos)
"bWF" = (/obj/machinery/atmospherics/trinary/mixer{icon_state = "intact_on"; name = "Gas mixer (N2/O2)"; node1_concentration = 0.8; node2_concentration = 0.2; on = 1; pixel_x = 0; pixel_y = 1; target_pressure = 4500},/turf/simulated/floor,/area/atmos)
"bWG" = (/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 5; icon_state = "intact-y"; level = 2},/turf/simulated/floor,/area/atmos)
"bWH" = (/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_off"; name = "CO2 to Pure"; on = 0},/obj/machinery/atmospherics/pipe/simple{color = "green"; icon_state = "intact-g"; level = 2},/turf/simulated/floor,/area/atmos)
"bWI" = (/obj/machinery/atmospherics/valve/digital{color = "yellow"; dir = 4; name = "CO2 Outlet Valve"},/turf/simulated/floor{dir = 6; icon_state = "yellow"},/area/atmos)
"bWJ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = "co2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos)
"bWK" = (/obj/machinery/door/poddoor{id = "disvent"; name = "Incinerator Vent"},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator)
"bWL" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 0; icon_state = "in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator)
"bWM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator)
"bWN" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/binary/pump{dir = 4},/obj/machinery/access_button{command = "cycle_interior"; layer = 3.1; master_tag = "incinerator_access_control"; name = "Incinerator airlock control"; pixel_x = 22; pixel_y = -10},/obj/machinery/light{dir = 1},/obj/effect/sign/fire{pixel_y = 32},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator)
"bWO" = (/obj/machinery/door_control{id = "disvent"; name = "Incinerator Vent Control"; pixel_x = 0; pixel_y = 24; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/incinerator)
"bWP" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
"bWQ" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
"bWR" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
"bWS" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/atmospherics/valve{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
"bWT" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
"bWU" = (/obj/structure/closet/l3closet/virology{layer = 2.9; pixel_x = -5},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bWV" = (/obj/effect/sign/deathsposal{pixel_x = 32},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bWW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/wall,/area/medical/virology)
"bWX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bWY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bWZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bXa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/wall/r_wall,/area/medical/virology)
"bXb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"bXc" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2 (EAST)"; icon_state = "pipe-j2"; dir = 4},/turf/simulated/floor/plating/airless,/area/maintenance/asmaint2)
"bXd" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"bXe" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless,/area)
"bXf" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area)
"bXg" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet{dir = 4},/turf/simulated/floor/plating/airless,/area)
"bXh" = (/obj/structure/table,/obj/item/weapon/circular_saw{pixel_y = 6},/turf/simulated/floor{icon_state = "white"},/area/assembly/assembly_line)
"bXi" = (/turf/simulated/floor{icon_state = "white"},/area/assembly/assembly_line)
"bXj" = (/obj/structure/table,/obj/item/device/mmi,/obj/item/device/mmi,/obj/item/device/mmi,/turf/simulated/floor{icon_state = "white"},/area/assembly/assembly_line)
"bXk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/assembly/assembly_line)
"bXl" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor/plating,/area/maintenance/aft)
"bXm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/maintenance/aft)
"bXn" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "yellowcorner"},/area/hallway/primary/aft)
"bXo" = (/obj/machinery/door/firedoor/border_only,/obj/effect/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = 32},/turf/simulated/floor{icon_state = "yellowcorner"},/area/hallway/primary/aft)
"bXp" = (/obj/machinery/camera{c_tag = "Engineering Break-Room"; dir = 4; network = "SS13"},/obj/machinery/vending/cigarette,/turf/simulated/floor,/area/engine/break_room)
"bXq" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/simulated/floor,/area/engine/break_room)
"bXr" = (/obj/structure/stool,/turf/simulated/floor,/area/engine/break_room)
"bXs" = (/obj/structure/stool,/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/engine/break_room)
"bXt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor,/area/engine/break_room)
"bXu" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor,/area/engine/break_room)
"bXv" = (/obj/machinery/camera{c_tag = "Atmospherics South West"; dir = 4; network = "SS13"},/obj/machinery/portable_atmospherics/pump,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/atmos)
"bXw" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/atmos)
"bXx" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_on"; name = "N2 Out"; on = 1},/turf/simulated/floor,/area/atmos)
"bXy" = (/obj/machinery/atmospherics/trinary/filter{dir = 4; filter_type = 2; icon_state = "intact_on"; name = "Gas filter (N2 tank)"; on = 1},/turf/simulated/floor,/area/atmos)
"bXz" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/turf/simulated/floor,/area/atmos)
"bXA" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_on"; name = "O2 Out"; on = 1},/turf/simulated/floor,/area/atmos)
"bXB" = (/obj/machinery/atmospherics/trinary/filter{dir = 4; filter_type = 1; icon_state = "intact_on"; name = "Gas filter (O2 tank)"; on = 1},/turf/simulated/floor,/area/atmos)
"bXC" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; icon_state = "intact-c"; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; initialize_directions = 12; level = 2},/turf/simulated/floor,/area/atmos)
"bXD" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 9; icon_state = "intact-g"; level = 2},/turf/simulated/floor,/area/atmos)
"bXE" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 6; icon_state = "intact-c"; initialize_directions = 6; level = 2},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/atmos)
"bXF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 9; icon_state = "intact-c"; level = 2},/turf/simulated/floor/plating,/area/atmos)
"bXG" = (/obj/machinery/igniter{icon_state = "igniter0"; id = "Incinerator"; on = 0},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator)
"bXH" = (/obj/machinery/door/airlock/maintenance{autoclose = 0; doortype = 7; frequency = 1449; glass = 1; icon = 'Doorglass.dmi'; icon_state = "door_locked"; id_tag = "incinerator_airlock_exterior"; locked = 1; name = "Incinerator Exterior Airlock"; opacity = 0; req_access_txt = "12"},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator)
"bXI" = (/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator)
"bXJ" = (/obj/machinery/door/airlock/maintenance{autoclose = 0; doortype = 7; frequency = 1449; glass = 1; icon = 'Doorglass.dmi'; icon_state = "door_locked"; id_tag = "incinerator_airlock_interior"; locked = 1; name = "Incinerator Interior Airlock"; opacity = 0; req_access_txt = "12"},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator)
"bXK" = (/turf/simulated/floor/plating,/area/maintenance/incinerator)
"bXL" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/incinerator)
"bXM" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/incinerator)
"bXN" = (/obj/machinery/atmospherics/valve,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
"bXO" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
"bXP" = (/obj/machinery/computer/area_atmos,/obj/effect/sign/nosmoking_2{pixel_x = 28},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
"bXQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"bXR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/turf/simulated/wall/r_wall,/area/medical/virology)
"bXS" = (/obj/structure/closet/secure_closet/medical1{layer = 2.9; pixel_x = -5},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bXT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bXU" = (/obj/machinery/power/apc{cell_type = 2500; dir = 2; name = "Virology APC"; pixel_x = 0; pixel_y = -23},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bXV" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/light,/obj/machinery/requests_console{department = "Virology"; name = "Virology Requests Console"; pixel_x = 32},/obj/machinery/camera{c_tag = "Virology West"; dir = 8; network = "SS13"; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bXW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/medical/virology)
"bXX" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/virology)
"bXY" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Monkey Pen"; req_access_txt = "39"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bXZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/medical/virology)
"bYa" = (/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"bYb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/maintenance/portsolar)
"bYc" = (/turf/simulated/wall/r_wall,/area/maintenance/portsolar)
"bYd" = (/obj/structure/table,/obj/item/weapon/scalpel{pixel_y = 6},/obj/machinery/light{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/assembly/assembly_line)
"bWa" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/closet/wardrobe/robotics_black,/turf/simulated/floor,/area/assembly/assembly_line)
"bWb" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = -28},/turf/simulated/floor{dir = 8; icon_state = "loadingarea"; tag = "loading"},/area/assembly/assembly_line)
"bWc" = (/obj/machinery/conveyor{dir = 4; id = "Skynet_heavy"},/obj/machinery/light,/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/assembly/assembly_line)
"bWd" = (/obj/machinery/conveyor{dir = 4; id = "Skynet_heavy"},/obj/machinery/ai_status_display{pixel_y = -32},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/assembly/assembly_line)
"bWe" = (/obj/machinery/conveyor{dir = 4; id = "Skynet_heavy"},/obj/machinery/camera{c_tag = "Robotics Assembly"; dir = 10; network = "RD"},/obj/machinery/camera{c_tag = "Robotics Assembly"; dir = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/assembly/assembly_line)
"bWf" = (/obj/machinery/conveyor{dir = 4; id = "Skynet_heavy"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/assembly/assembly_line)
"bWg" = (/obj/machinery/conveyor{dir = 4; id = "Skynet_heavy"},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/assembly/assembly_line)
"bWh" = (/turf/simulated/floor{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/assembly/assembly_line)
"bWi" = (/obj/machinery/requests_console{department = "Assembly Line (Robotics)"; departmentType = 2; name = "assembly line RC"; pixel_y = -30},/turf/simulated/floor,/area/assembly/assembly_line)
"bWj" = (/obj/structure/table,/obj/item/device/multitool,/obj/item/weapon/crowbar,/obj/item/device/flash,/obj/item/device/flash,/turf/simulated/floor,/area/assembly/assembly_line)
"bWk" = (/obj/structure/table,/obj/item/clothing/gloves/black{pixel_y = 3},/obj/item/device/radio/headset/headset_rob,/turf/simulated/floor,/area/assembly/assembly_line)
"bWl" = (/obj/structure/reagent_dispensers/fueltank,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = -28},/turf/simulated/floor,/area/assembly/assembly_line)
"bWm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/assembly/assembly_line)
"bWn" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor/plating,/area/assembly/assembly_line)
"bWo" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor,/area/hallway/primary/aft)
"bWp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor,/area/hallway/primary/aft)
"bWq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor{dir = 8; icon_state = "yellowcorner"},/area/hallway/primary/aft)
"bWr" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "yellowcorner"},/area/hallway/primary/aft)
"bWs" = (/obj/machinery/vending/cola,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/engine/break_room)
"bWt" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cola{pixel_x = -3},/turf/simulated/floor,/area/engine/break_room)
"bWu" = (/obj/structure/table,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/item/weapon/folder/yellow,/obj/item/weapon/screwdriver{pixel_y = 8},/turf/simulated/floor,/area/engine/break_room)
"bWv" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers,/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers{pixel_x = 5; pixel_y = 2},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/break_room)
"bWw" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/break_room)
"bWx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/engine/break_room)
"bWy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/atmos)
"bWz" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 5; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos)
"bWA" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; icon_state = "intact-c"; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos)
"bWB" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r"; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area/atmos)
"bWC" = (/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; dir = 8; icon_state = "manifold-c"; initialize_directions = 11; level = 2},/turf/simulated/floor,/area/atmos)
"bWD" = (/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_on"; name = "O2 to Air"; on = 1},/turf/simulated/floor,/area/atmos)
"bWE" = (/obj/machinery/atmospherics/trinary/mixer{icon_state = "intact_on"; name = "Gas mixer (N2/O2)"; node1_concentration = 0.8; node2_concentration = 0.2; on = 1; pixel_x = 0; pixel_y = 1; target_pressure = 4500},/turf/simulated/floor,/area/atmos)
"bWF" = (/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 5; icon_state = "intact-y"; level = 2},/turf/simulated/floor,/area/atmos)
"bWG" = (/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_off"; name = "CO2 to Pure"; on = 0},/obj/machinery/atmospherics/pipe/simple{color = "green"; icon_state = "intact-g"; level = 2},/turf/simulated/floor,/area/atmos)
"bWH" = (/obj/machinery/atmospherics/valve/digital{color = "yellow"; dir = 4; name = "CO2 Outlet Valve"},/turf/simulated/floor{dir = 6; icon_state = "yellow"},/area/atmos)
"bWI" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = "co2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos)
"bWJ" = (/obj/machinery/door/poddoor{id = "disvent"; name = "Incinerator Vent"},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator)
"bWK" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 0; icon_state = "in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator)
"bWL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator)
"bWM" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/binary/pump{dir = 4},/obj/machinery/access_button{command = "cycle_interior"; layer = 3.1; master_tag = "incinerator_access_control"; name = "Incinerator airlock control"; pixel_x = 22; pixel_y = -10},/obj/machinery/light{dir = 1},/obj/effect/sign/fire{pixel_y = 32},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator)
"bWN" = (/obj/machinery/door_control{id = "disvent"; name = "Incinerator Vent Control"; pixel_x = 0; pixel_y = 24; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/incinerator)
"bWO" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
"bWP" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
"bWQ" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
"bWR" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/atmospherics/valve{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
"bWS" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
"bWT" = (/obj/structure/closet/l3closet/virology{layer = 2.9; pixel_x = -5},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bWU" = (/obj/effect/sign/deathsposal{pixel_x = 32},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bWV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/wall,/area/medical/virology)
"bWW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bWX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bWY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bWZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/wall/r_wall,/area/medical/virology)
"bXa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"bXb" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2 (EAST)"; icon_state = "pipe-j2"; dir = 4},/turf/simulated/floor/plating/airless,/area/maintenance/asmaint2)
"bXc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"bXd" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless,/area)
"bXe" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area)
"bXf" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet{dir = 4},/turf/simulated/floor/plating/airless,/area)
"bXg" = (/obj/structure/table,/obj/item/weapon/circular_saw{pixel_y = 6},/turf/simulated/floor{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/assembly/assembly_line)
"bXh" = (/turf/simulated/floor{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/assembly/assembly_line)
"bXi" = (/obj/structure/table,/obj/item/device/mmi,/obj/item/device/mmi,/obj/item/device/mmi,/turf/simulated/floor{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/assembly/assembly_line)
"bXj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/assembly/assembly_line)
"bXk" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor/plating,/area/maintenance/aft)
"bXl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/maintenance/aft)
"bXm" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "yellowcorner"},/area/hallway/primary/aft)
"bXn" = (/obj/machinery/door/firedoor/border_only,/obj/effect/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = 32},/turf/simulated/floor{icon_state = "yellowcorner"},/area/hallway/primary/aft)
"bXo" = (/obj/machinery/camera{c_tag = "Engineering Break-Room"; dir = 4; network = "SS13"},/obj/machinery/vending/cigarette,/turf/simulated/floor,/area/engine/break_room)
"bXp" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/simulated/floor,/area/engine/break_room)
"bXq" = (/obj/structure/stool,/turf/simulated/floor,/area/engine/break_room)
"bXr" = (/obj/structure/stool,/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/engine/break_room)
"bXs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor,/area/engine/break_room)
"bXt" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor,/area/engine/break_room)
"bXu" = (/obj/machinery/camera{c_tag = "Atmospherics South West"; dir = 4; network = "SS13"},/obj/machinery/portable_atmospherics/pump,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/atmos)
"bXv" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/atmos)
"bXw" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_on"; name = "N2 Out"; on = 1},/turf/simulated/floor,/area/atmos)
"bXx" = (/obj/machinery/atmospherics/trinary/filter{dir = 4; filter_type = 2; icon_state = "intact_on"; name = "Gas filter (N2 tank)"; on = 1},/turf/simulated/floor,/area/atmos)
"bXy" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/turf/simulated/floor,/area/atmos)
"bXz" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_on"; name = "O2 Out"; on = 1},/turf/simulated/floor,/area/atmos)
"bXA" = (/obj/machinery/atmospherics/trinary/filter{dir = 4; filter_type = 1; icon_state = "intact_on"; name = "Gas filter (O2 tank)"; on = 1},/turf/simulated/floor,/area/atmos)
"bXB" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; icon_state = "intact-c"; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; initialize_directions = 12; level = 2},/turf/simulated/floor,/area/atmos)
"bXC" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 9; icon_state = "intact-g"; level = 2},/turf/simulated/floor,/area/atmos)
"bXD" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 6; icon_state = "intact-c"; initialize_directions = 6; level = 2},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/atmos)
"bXE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 9; icon_state = "intact-c"; level = 2},/turf/simulated/floor/plating,/area/atmos)
"bXF" = (/obj/machinery/igniter{icon_state = "igniter0"; id = "Incinerator"; on = 0},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator)
"bXG" = (/obj/machinery/door/airlock/maintenance{autoclose = 0; doortype = 7; frequency = 1449; glass = 1; icon = 'Doorglass.dmi'; icon_state = "door_locked"; id_tag = "incinerator_airlock_exterior"; locked = 1; name = "Incinerator Exterior Airlock"; opacity = 0; req_access_txt = "12"},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator)
"bXH" = (/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator)
"bXI" = (/obj/machinery/door/airlock/maintenance{autoclose = 0; doortype = 7; frequency = 1449; glass = 1; icon = 'Doorglass.dmi'; icon_state = "door_locked"; id_tag = "incinerator_airlock_interior"; locked = 1; name = "Incinerator Interior Airlock"; opacity = 0; req_access_txt = "12"},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator)
"bXJ" = (/turf/simulated/floor/plating,/area/maintenance/incinerator)
"bXK" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/incinerator)
"bXL" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/incinerator)
"bXM" = (/obj/machinery/atmospherics/valve,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
"bXN" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
"bXO" = (/obj/machinery/computer/area_atmos,/obj/effect/sign/nosmoking_2{pixel_x = 28},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
"bXP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"bXQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/turf/simulated/wall/r_wall,/area/medical/virology)
"bXR" = (/obj/structure/closet/secure_closet/medical1{layer = 2.9; pixel_x = -5},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bXS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bXT" = (/obj/machinery/power/apc{cell_type = 2500; dir = 2; name = "Virology APC"; pixel_x = 0; pixel_y = -23},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bXU" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/light,/obj/machinery/requests_console{department = "Virology"; name = "Virology Requests Console"; pixel_x = 32},/obj/machinery/camera{c_tag = "Virology West"; dir = 8; network = "SS13"; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bXV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/medical/virology)
"bXW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/virology)
"bXX" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Monkey Pen"; req_access_txt = "39"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bXY" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/medical/virology)
"bXZ" = (/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"bYa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/maintenance/portsolar)
"bYb" = (/turf/simulated/wall/r_wall,/area/maintenance/portsolar)
"bYc" = (/obj/structure/table,/obj/item/weapon/scalpel{pixel_y = 6},/obj/machinery/light{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/assembly/assembly_line)
"bYd" = (/turf/simulated/floor{icon_state = "white"},/area/assembly/assembly_line)
"bYe" = (/obj/structure/table,/obj/item/weapon/storage/body_bag_box,/obj/item/weapon/pen,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "white"},/area/assembly/assembly_line)
"bYf" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor/plating,/area/maintenance/aft)
"bYg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/turf/simulated/floor/plating,/area/maintenance/aft)
@@ -6610,7 +6610,7 @@
"cxf" = (/obj/machinery/door/airlock/external,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "NTrasen"; name = "Outer Airlock"; opacity = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
"cxg" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/specops/centcom)
"cxh" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/control)
"cxi" = (/obj/structure/table,/obj/item/assembly/shock_kit{icon = 'icons/obj/assemblies.dmi'},/obj/item/device/assembly/signaler,/obj/item/weapon/handcuffs,/obj/item/weapon/melee/classic_baton,/turf/unsimulated/floor{icon_state = "whiteshiny"},/area/centcom/control)
"cxi" = (/obj/structure/table,/obj/item/assembly/shock_kit{icon = 'assemblies.dmi'},/obj/item/device/assembly/signaler,/obj/item/weapon/handcuffs,/obj/item/weapon/melee/classic_baton,/turf/unsimulated/floor{icon_state = "whiteshiny"},/area/centcom/control)
"cxj" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/space,/area/shuttle/specops/centcom)
"cxk" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/turf/unsimulated/floor,/area/shuttle/specops/centcom)
"cxl" = (/obj/effect/landmark{name = "Commando-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
@@ -6870,11 +6870,11 @@
"cCf" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2)
"cCg" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
"cCh" = (/obj/machinery/camera{pixel_x = 11; pixel_y = -9; network = "thunder"; c_tag = "Red Team"},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2)
"cCi" = (/turf/simulated/floor/grid,/area/tdome)
"cCj" = (/obj/machinery/flasher{id = "flash"; name = "Thunderdome Flash"},/turf/simulated/floor/grid,/area/tdome)
"cCi" = (/turf/simulated/floor/bluegrid,/area/tdome)
"cCj" = (/obj/machinery/flasher{id = "flash"; name = "Thunderdome Flash"},/turf/simulated/floor/bluegrid,/area/tdome)
"cCk" = (/obj/machinery/camera{pixel_x = 12; pixel_y = -10; network = "thunder"; c_tag = "Green Team"},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
"cCl" = (/obj/machinery/atmospherics/pipe/vent,/turf/simulated/floor/grid,/area/tdome)
"cCm" = (/obj/machinery/camera{pixel_x = 10; network = "thunder"; c_tag = "Arena"},/turf/simulated/floor/grid,/area/tdome)
"cCl" = (/obj/machinery/atmospherics/pipe/vent,/turf/simulated/floor/bluegrid,/area/tdome)
"cCm" = (/obj/machinery/camera{pixel_x = 10; network = "thunder"; c_tag = "Arena"},/turf/simulated/floor/bluegrid,/area/tdome)
"cCn" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/turf/simulated/floor,/area/tdome)
"cCo" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/turf/simulated/floor,/area/tdome)
"cCp" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor,/area/tdome)
@@ -7284,14 +7284,14 @@
"cKd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/wall/r_wall,/area/turret_protected/tcomeast)
"cKe" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 5; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/turret_protected/tcomwest)
"cKf" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 10; icon_state = "intact-b-f"; initialize_directions = 10; level = 1; name = "pipe"},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomwest)
"cKg" = (/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKh" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Com Sat Central Compartment APC"; pixel_x = -1; pixel_y = 26},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKi" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/obj/machinery/camera{c_tag = "Central Compartment North"; dir = 2; network = "Tcomsat"},/obj/machinery/light{dir = 1},/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/turf/simulated/floor/grid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKn" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKg" = (/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKh" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Com Sat Central Compartment APC"; pixel_x = -1; pixel_y = 26},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKi" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/obj/machinery/camera{c_tag = "Central Compartment North"; dir = 2; network = "Tcomsat"},/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = "Streight"},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKn" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKo" = (/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomeast)
"cKp" = (/turf/space,/area/turret_protected/tcomeast)
"cKq" = (/obj/machinery/light{dir = 4},/turf/space,/area/turret_protected/tcomeast)
@@ -7300,11 +7300,11 @@
"cKt" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor/plating/airless,/area)
"cKu" = (/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{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/turret_protected/tcomwest)
"cKv" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomwest)
"cKw" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKx" = (/turf/simulated/floor/grid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKy" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/grid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/grid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKA" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKw" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKx" = (/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKy" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKA" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cKB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plating,/area/turret_protected/tcomeast)
"cKC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/turret_protected/tcomeast)
"cKD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor/plating,/area/turret_protected/tcomeast)
@@ -7342,8 +7342,8 @@
"cLj" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/turret_protected/tcomwest)
"cLk" = (/obj/machinery/telecomms/processor/preset_two,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; tag = "icon-vault (NORTH)"; temperature = 80},/area/tcommsat/chamber)
"cLl" = (/obj/machinery/telecomms/bus/preset_two,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; tag = "icon-vault (NORTH)"; temperature = 80},/area/tcommsat/chamber)
"cLm" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cLn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cLm" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cLn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cLo" = (/obj/machinery/telecomms/processor/preset_four,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; tag = "icon-vault (EAST)"; temperature = 80},/area/tcommsat/chamber)
"cLp" = (/obj/machinery/telecomms/bus/preset_four,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; tag = "icon-vault (EAST)"; temperature = 80},/area/tcommsat/chamber)
"cLq" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomeast)
@@ -7367,7 +7367,7 @@
"cLI" = (/obj/machinery/light{dir = 8},/turf/simulated/floor,/area/turret_protected/tcomeast)
"cLJ" = (/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/turret_protected/tcomeast)
"cLK" = (/obj/structure/table,/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/tcomeast)
"cLL" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cLL" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cLM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomeast)
"cLN" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/turf/simulated/floor,/area/turret_protected/tcomeast)
"cLO" = (/obj/structure/table,/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,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor,/area/turret_protected/tcomeast)
@@ -7376,8 +7376,8 @@
"cLR" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 4},/turf/space,/area/turret_protected/tcomwest)
"cLS" = (/obj/machinery/telecomms/server/presets/science,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; tag = "icon-vault (NORTH)"; temperature = 80},/area/tcommsat/chamber)
"cLT" = (/obj/machinery/telecomms/server/presets/medical,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; tag = "icon-vault (NORTH)"; temperature = 80},/area/tcommsat/chamber)
"cLU" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor/grid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cLV" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact-f"},/turf/simulated/floor/grid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cLU" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cLV" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact-f"},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cLW" = (/obj/machinery/telecomms/server/presets/command,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; tag = "icon-vault (EAST)"; temperature = 80},/area/tcommsat/chamber)
"cLX" = (/obj/machinery/telecomms/server/presets/security,/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; tag = "icon-vault (EAST)"; temperature = 80},/area/tcommsat/chamber)
"cLY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/turret_protected/tcomeast)
@@ -7385,10 +7385,10 @@
"cMa" = (/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/tcomeast)
"cMb" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/wall/r_wall,/area)
"cMc" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor/plating/airless,/area)
"cMd" = (/obj/machinery/light,/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMe" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 140; on = 1; pressure_checks = 0},/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMf" = (/obj/machinery/camera{c_tag = "Central Compartment South"; dir = 1; network = "Tcomsat"},/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMg" = (/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/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMd" = (/obj/machinery/light,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMe" = (/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)
"cMf" = (/obj/machinery/camera{c_tag = "Central Compartment South"; dir = 1; network = "Tcomsat"},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMg" = (/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)
"cMh" = (/obj/effect/sign/nosmoking_2,/turf/simulated/wall/r_wall,/area/tcommsat/chamber)
"cMi" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomeast)
"cMj" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomeast)
@@ -8847,7 +8847,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajdajdajdajeajeaaaaaaaaaakEaaaaaaaaaajeajeajdajdajdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaahiakFakGakHakIakJafIakKakLakMakNakOakPakMakNakQakRakSakNakTakUakVakNakTakWakXafIakYakZalaalbalcaldalcalealfajaajbaiKajcaafaaaaaaaaaaaaajOajOajOajOajOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajeaafalgaafajeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajdaaaaaaaafaafaaaaaaaaaakEaafaafaaaaafaafaaaaaaajdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafahialhalialjagnalkafIallalmalnahialoagmalpahiajqajlajsahialqalmalrahialqalmalsafIaltalualvalwalxalyalxalzalAajaajbaiKajNaafaaaaaaaaaaaaajOajOajOajOajOaaaaaaaaaaaaaaaaaaajeajeajeajeajeaaaaaaaaaalBaaaaaaaaaajeajeajdajdajdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajeaafalCalCalCalCalCaafalDaafalCalCalCalCalCaafajeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaigagmalEagmalqalFafIalGalHalIahialJalKalLahiajqajlajsahialMalKalJahialNalKalOafIalPalQalRalRalRalSalRalRalTajaajbaiKaifaifaafaaaaaaaaaajOajOajOajOajOaaaaaaaaaaaaaaaaaaajPaaaaaaaafaafaafaaaaaaalBaafaafaaaaafaafaaaaaaajdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaaaaaaaaaaaajeaafalUalValValValValWalXalYalValValValValZaafajeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaagaafamaamaahiahiahiahiahiahiafIambamcamdakNameamcamdakNakQakRakSakNameamcamdakNameamcamfafIakdamgamgamgamgakdamgamgamhajaamiamjamkaifaifaifaaaaaaajOajOajOajOajOaaaaaaaaaaaaaaaaaaajeaafamlamlamlamlamlaafammaafamlamlamlamlamlaafajeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaajeaafalUalValValValValWalXalYalValValValValZaafajeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaagaafamaamaahiahiahiahiahiahiafIambamcamdakNameamcamdakNakQakRakSakNameamcamdakNameamcamfafIakdamgamgamgamgakdamgamgamhajaamiamjamkaifaifaifaaaaaaajOajOajOajOajOaaaaaaaaaaaaaaaaaaajeaafamlamlamlamlamlaafammaafamlamlamlamlamlaafajeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajeaafamnamnamnamnamnaafalXaafamnamnamnamnamnaafajeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafamoampamqamramsamsamtamuamvamsamsamsamsamsamsamsamvamsamwamxamyamxamxamxamxamxamxamzamAakdamgamgamgamgakdamgamgamBajaamiamjamkamCamDamCaafaaaajOajOajOajOajOaaeaaaaaaaaaaaaaaaajeaafamEamFamFamFamFamGamHamIamFamFamFamFamJaafajeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajdaaaaaaaaaaafaaaaaaaafalXaaaaaaaaaaafaaaaaaaaaajPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamKamLamqamaamMamwamNamwamwamwamwamwamwamwamwamwamwamwamOamwamwamwamPamwamwamwamwamQamRamSamSamSamTamUamVamWamXamYamZanaanbancancandaifaaaaaaajOajOajOajOajOaaaaaaaaaaaaaaaaaaajeaafaneaneaneaneaneaafamHaafaneaneaneaneaneaafajeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajeaafalCalCalCalCalCaafalXaafalCalCalCalCalCaafajeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanfamqamqamaanganhanianjanjanjanjanjanjanjanjanjanjanjankanlanmanmannanoanpanqanmanmamAanransantajaajaajaanuajaanvajaanwanxaifanyanzaifaaaaaaajOajOajOajOajOaaaaaaaaaaaaaaaaaaajdaaaaaaaaaaafaaaaaaaafamHaaaaaaaaaaafaaaaaaaaaajdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -8927,13 +8927,13 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajdaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaajdaaaaafaafaaaaaaaaaaaaaaaaaaaaabSRbRubTGbTHbTIbSUbSUbSUbTJbTKbTLbTMbSUbTNbSUbTObSUbSUbSUbSUbTPbrObTQbTRbwJbTSbTTbTUbTUbTUbTUbTVbTWbTXbFFbTYbTZbUabUbbUcbUdbKvbUebUfbUgbKxbPmbUhbHmaafbIwbIwbIwbIwbIwaafaaaaaaaaaaaaaaaaaabvwbvwbvwbvwbUibUibUibvObUjbUkbUkbUkbUlbUkbUkbUkbnKbTwbUmbQybUnbUobTAbUpbUqbUrbUsbUtbTDbnKbTEbjBaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajdaaabUubUvbUwaaabUubUvbUwaaabUubUvbUwaafbUxaafaafaaaaaaaaaaaaaaaaaaaaaaaabSRbRubSibUybUzbSUbSUbSUbSUbUAbUBbUBbUCbUBbUBbUBbUBbUBbUDbUEbUFbrObTQbRGbGSbUGbUHbUIbUJbUKbULbUMbUNbUObUPbUQbJnbJobURbUdbUSbUTbUUbJobUVbKtbUWbUXbOnbJubJvbUYbUZbUZbIwaafaaaaaaaaaaaaaaaaaaaaaaafaafbvwbUibVabUibDlbvMbUkbVbbVcbVdbVebVfbUkbnKbTwbVgbQybVhbVibVjbVkbVlbVmbVnbVobTDbnKbVpbjBaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajdaaabUubVqbUwaaabUubVqbUwaaabUubVqbUwaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaabVrbRubSibRybVsbSUbSUbSUbVtbVubVubTObSUbVvbSUbSUbSUbSUbVwbVxbVybRGbVzbrObwJbVAbVBbVCbVDbVEbVFbVGbVDbVHbVIbJkbPlbFSbVJbFTbVKbVLbHjbVMbVNbKtbPmbVObHmaafbKAbVPbVQbVRbIwaafaaaaaaaaaaaaaaaaaaaaaaaaaafaafbUibVSbUibUibUibUkbVTbVTbVdbVTbVUbUkbnKbVVbVWbQybVXbQybVYbQybQybQybQybVZbTDbnKbTEbjBaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaajeaafbUubVqbUwaaabUubVqbUwaafbUubVqbUwaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaabQLbRubSibRybWabWbbWbbWbbWcbWdbWebWfbWgbWhbWibWjbWkbWlbWmbWnbWobWpbWqbWrbMBbWsbVBbWtbVDbWubWvbWwbWxbWybWzbLsbWAbWBbWCbJobUdbWDbVJbWEbWFbWGbWHbWIbQfbQgbJvbWJbUZbUZbIwaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbWKbWLbWMbWNbWMbWObWPbWQbWRbWSbWTbUkbnKbTwbWUbQybVXbWVbWWbWXbWXbWXbWYbWZbXabXbbXcbXdbXebXfbXebXebXgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaabUubVqbUwaafbUubVqbUwaaabUubVqbUwaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaabQLbRubSibRybXhbXibXibXjbRybRybRybRybRybRybRybRybSnbSmbXkbRybRybXlbXmbXnbKkbXobVBbXpbXqbXrbXsbXrbXtbXubEtbXvbXwbXxbWAbXybXzbXAbXzbXBbXCbXzbXDbXEbXFaafbIwbIwbIwbIwbIwaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbWKbXGbXHbXIbXJbXKbXLbXMbXNbXObXPbUkbXQbXRbXSbXTbXUbXVbXWbXXbXYbVlbXZbTwbPubnKbYabaVaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajdajdajeaafaaabUubVqbUwaafbUubVqbUwaaabUubVqbUwaafaaaaaaaaaaaaaafaafbYbbYcbYcbYcbYcbQLbRubSibRybYdbXibXibYebRybYfbYgbYgbYgbYgbYgbYgbYgbYgbYhbYibYibYjbYkbYlbYmbYlbYnbYobYobYpbYqbYrbYsbYtbFFbYubYvbYwbYxbYybYzbYAbYBbYCbYDbYEbYFbYGbHfaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaafaafbWKbYHbWMbYIbYJbYKbYLbYMbYNbYObYPbUkbnKbTwbYQbYRbYSbYTbYUbYVbYWbQybYXbTwbYYbGrbaVbaVaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaajeaafbUubVqbUwaaabUubVqbUwaafbUubVqbUwaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaabQLbRubSibRybWabSUbSUbSUbWbbWcbWdbWebWfbWgbWhbWibWjbWkbWlbWmbWnbWobWpbWqbMBbWrbVBbWsbVDbWtbWubWvbWwbWxbWybLsbWzbWAbWBbJobUdbWCbVJbWDbWEbWFbWGbWHbQfbQgbJvbWIbUZbUZbIwaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbWJbWKbWLbWMbWLbWNbWObWPbWQbWRbWSbUkbnKbTwbWTbQybVXbWUbWVbWWbWWbWWbWXbWYbWZbXabXbbXcbXdbXebXdbXdbXfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaabUubVqbUwaafbUubVqbUwaaabUubVqbUwaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaabQLbRubSibRybXgbXhbXhbXibRybRybRybRybRybRybRybRybSnbSmbXjbRybRybXkbXlbXmbKkbXnbVBbXobXpbXqbXrbXqbXsbXtbEtbXubXvbXwbWzbXxbXybXzbXybXAbXBbXybXCbXDbXEaafbIwbIwbIwbIwbIwaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbWJbXFbXGbXHbXIbXJbXKbXLbXMbXNbXObUkbXPbXQbXRbXSbXTbXUbXVbXWbXXbVlbXYbTwbPubnKbXZbaVaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajdajdajeaafaaabUubVqbUwaafbUubVqbUwaaabUubVqbUwaafaaaaaaaaaaaaaafaafbYabYbbYbbYbbYbbQLbRubSibRybYcbYdbYdbYebRybYfbYgbYgbYgbYgbYgbYgbYgbYgbYhbYibYibYjbYkbYlbYmbYlbYnbYobYobYpbYqbYrbYsbYtbFFbYubYvbYwbYxbYybYzbYAbYBbYCbYDbYEbYFbYGbHfaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaafaafbWJbYHbWLbYIbYJbYKbYLbYMbYNbYObYPbUkbnKbTwbYQbYRbYSbYTbYUbYVbYWbQybYXbTwbYYbGrbaVbaVaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajdaaaaafaaaaafaafbYZaafaafaafbYZaafaaaaafbYZaafaaaaaaaaaaaaaaabZabZbbZcbZdbZebZfbZgbYibZhbZibRybRybZjbZkbRybRybZlbZmbZmbZmbZmbZmbZmbZmbZmbZnbZobZobZobZpbZqbZrbZsbZtbZubZvbZwbZxbZybZzbZAbFFbFFbZBbZCbZDbZEbZDbZCbZDbZEbZDbZFbZDbZFbZGaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbUibUibUibUibUibUkbUkbZHbZIbUkbUkbUkbnKbTwbZJbQybZKbZLbYQbZMbQybYWbQybTwbZNbgSbaVaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajeaafbZObZPbZPbZQbZRbZRbZRbZRbZRbZRbZRbZRbZRbZRbZRbZRbZRbZRbZSbZTbZUbZTbZVbZWbZXbZYbRubRubSibZZbRybSnbSpbRycaabZlbZmcabcaccadbZmcaecafcagcahcaicajcakcalcamcancaocapcaqcarcascatcaucavbVDcawaaaaafcaxaafcayaafcaxaafcayaafcazaafcazaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafcaAcaBaafaafbiobnKbVVcaCcaDcaEcaFcaGcaHbYWcaIbQybTwbnKbgSbioaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajdaaaaafaaaaafaafcaJaafaaaaafcaJaafaaaaafcaJaafaaaaaaaaaaaaaaabZabZbcaKcaLcaMcaNbYccaObRucaPcaQcaQcaQcaQcaQcaRcaSbZmcaTcaUcaVcaWcaXcaYcaZcaZcbacbbcbccbdbZmcbebZmcapcbfcbgcbhcbicbjcbkcblcawaaabIwcbmbKAcbmbIwcbmbKAcbmbIwcbmbKAcbmbIwaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaafcaAcbnaafaafbkFbnKcbocbpcbqcbqcbqcbrcbqcbqcbqcbqcbsbnKbgSbkFaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajdajdajeaafaafbUucbtbUwaaabUucbtbUwaaabUucbtbUwaafaaaaaaaaaaaaaafaafcbubYcbYcbYcbYcbQLcbvbRubRubRubRubRubRubZlcbwbZmcbxcaVcaVcaWcbycbycbzcbzcbzcbycbAcbBcbCcbDcbEbZwcbFcbGcbHcbIcbJcbKcbLcawaaabIwcbMcbNcbObIwcbPcbQcbRbIwcbScbTcbUbIwaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaAcbVaafaafbaVbvabvbcbWbvbbvbbvbbvbcbXbvbbvbbvbbvbbGrbgSbaVaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajdaaaaafaaaaafaafcaJaafaaaaafcaJaafaaaaafcaJaafaaaaaaaaaaaaaaabZabZbcaKcaLcaMcaNbYbcaObRucaPcaQcaQcaQcaQcaQcaRcaSbZmcaTcaUcaVcaWcaXcaYcaZcaZcbacbbcbccbdbZmcbebZmcapcbfcbgcbhcbicbjcbkcblcawaaabIwcbmbKAcbmbIwcbmbKAcbmbIwcbmbKAcbmbIwaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaafcaAcbnaafaafbkFbnKcbocbpcbqcbqcbqcbrcbqcbqcbqcbqcbsbnKbgSbkFaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajdajdajeaafaafbUucbtbUwaaabUucbtbUwaaabUucbtbUwaafaaaaaaaaaaaaaafaafcbubYbbYbbYbbYbbQLcbvbRubRubRubRubRubRubZlcbwbZmcbxcaVcaVcaWcbycbycbzcbzcbzcbycbAcbBcbCcbDcbEbZwcbFcbGcbHcbIcbJcbKcbLcawaaabIwcbMcbNcbObIwcbPcbQcbRbIwcbScbTcbUbIwaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaAcbVaafaafbaVbvabvbcbWbvbbvbbvbbvbcbXbvbbvbbvbbvbbGrbgSbaVaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUucbtbUwaafbUucbtbUwaaabUucbtbUwaaaaaaaaaaafaaaaafaafaafaaaaaaaaaaaabQLcbYcbZcbZcbZccabQLccbbYjcbwbZmcabcadcadbZmcccccdcceccfcbzcbyccgcchcciccjcckcclccmccnccoccpccqccrccscawaaabIwcctccucctbIwccvccwccvbIwccxccycczbIwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccAaaaaaaaagbaVccBbgSccCbgSbgSbgSccDbnKbgSbgSccEccFccGccGbaVaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCoaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajeaafbUucbtbUwaaabUucbtbUwaaabUucbtbUwaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaabQLbRuccHcbwbZmcabcabcadbZmbZmbZmccIccJccKccLccMccNccOccPccQcapbZyccRccSccTbZybZyccUbZmbZmbIwcctccVcctbIwccvccWccvbIwcczccXcczbIwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbaVccYccZcdabgSbgScdbcdbcdccdbcdbbQJbQJbQJbQKbaVaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajeaafbUucbtbUwaaabUucbtbUwaafbUucbtbUwaafaafaafaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaabZmcddbZmcdebZmcabcabcdfbZmcdgcdhcdicdjcbzcdkcdlcdmcbbcbycdkcdncdocbbcbzcdpcdqcdrcdscdtbZmbIwbIwbIwbIwbIwbIwbIwbIwbIwbIwbIwbIwbIwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaVbaVbaVcdubaVbaVcdbcdvcdwcdxcdbaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -9390,7 +9390,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfzcHDcIjcHNcIkcHNcIlcImcIncIocIpcIqcIrcIscItcIucIvcIwcIxcIycIbcIzcHLcIAcIBcIBcIBcIBcICcHLcHDcHDcfzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfzcHDcIjcHOcHNcHOcIDcIEcIFcIGcIHcIIcIJcIscIKcILcIMcIucINcIOcIbcIzcHLcIPcIBcIBcIBcIQcIRcHLcHDcHDcfzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfzcHDcIjcIScHNcHOcHOcITcIUcIVcIWcITcIXcIYcIxcIxcIucIucINcIZcIbcJacJbcJccJdcJdcJecJfcJgcJhcHJcHDcfzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfzcHDcIjcHOcHNcHOcIDcJicJjcJkcJjcJjcJjcJlcJmcJncJocJpcJqcJrcJrcJscJtcJucJvcIBcJwcJxcJycJzcJAcJBbXebXecJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfzcHDcIjcHOcHNcHOcIDcJicJjcJkcJjcJjcJjcJlcJmcJncJocJpcJqcJrcJrcJscJtcJucJvcIBcJwcJxcJycJzcJAcJBbXdbXdcJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcHDcIjcHOcHNcHOcIDcJDcJEcJFcJGcJGcJGcIbcJHcJIcJJcIucJKcJLcJMcJscJNcJOcJPcJQcHLcHLcHLcHLcHEcHDcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzcfzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcfzcHDcIjcHNcIkcHNcJRcJDcIrcJrcJrcJrcJrcJrcJScJTcJTcJUcJVcJWcJLcJXcJrcJrcJYcJZcKacKbcKccKbcKdcHDcfzcfzcfzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfzaafcHtcHtcHtcHtcHtcHtcHtcHtcHtcHtcHtcHtcHtcHtcHtcHtaaaaaacfzcHDcIjcHOcHNcHOcIDcKecKfcJrcKgcKgcKgcKhcKicKjcKkcKlcKjcKicKmcKncKgcJrcJYcJZcKocKpcKbcKqcKdcHDcfzcfzaaaaafcHtcHtcHtcHtcHtcHtcHtcHtcHtcHtcHtcHtcHtcHtcHtcHtaaacfzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

View File

@@ -181,7 +181,6 @@
#define FILE_DIR "interface"
#define FILE_DIR "maps"
#define FILE_DIR "maps/backup"
#define FILE_DIR "maps/backup/backup"
#define FILE_DIR "maps/RandomZLevels"
#define FILE_DIR "sound"
#define FILE_DIR "sound/AI"