TG: 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
Revision: r3751
Author: 	 petethegoat
This commit is contained in:
Erthilo
2012-06-19 21:37:44 +01:00
parent d099ebd4a1
commit ac30f5f2d3
69 changed files with 3774 additions and 2448 deletions

View File

@@ -384,6 +384,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
@@ -1279,6 +1306,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

@@ -180,7 +180,7 @@
// product_hideamt = "3;4;6"
hidden_prices = "3;3;2"
points = 25
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!"
charge_type = "medical"
/obj/machinery/vending/wallmed1
@@ -310,7 +310,7 @@
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."
charge_type = "soda"
/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"
@@ -327,6 +327,22 @@
product_coin_amt = "1"
charge_type = "engineering"
/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_prices = "1;2;3;2;2;2;3;2;2"
product_hidden = "/obj/item/weapon/weldingtool/hugetank;/obj/item/clothing/gloves/fyellow"
// product_hideamt = "2;2"
hidden_prices = "4;4"
product_coin = "/obj/item/weapon/storage/belt/utility"
product_coin_amt = "3"
charge_type = "engineering"
/obj/machinery/vending/genetics
name = "Genetics Dispenser"
desc = "Medical drug dispenser."

View File

@@ -158,6 +158,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
@@ -167,6 +168,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/heatshield
thermal_conductivity = 0
opacity = 0
@@ -257,7 +332,7 @@
return L
/*
/turf/simulated/wall/mineral
icon = 'mineral_walls.dmi'
walltype = "iron"
@@ -357,3 +432,4 @@
hardness -= toxinsToDeduce/100
CheckHardness()
*/

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 (src.emagged)
A = new /obj/item/projectile/beam( loc )
else
A = new /obj/item/projectile/energy/electrode( loc )
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,6 +862,22 @@ Auto Patrol: []"},
src.item_state = "ed209_shell"
src.icon_state = "ed209_shell"
del(W)
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))
@@ -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
..()

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:04
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
/obj/machinery/door
name = "Door"
@@ -153,7 +153,7 @@
if(4) temp=new/obj/structure/door_assembly/door_assembly_med(src.loc)
if(5) temp=new/obj/structure/door_assembly/door_assembly_mai(src.loc)
if(6) temp=new/obj/structure/door_assembly/door_assembly_ext(src.loc)
if(7) temp=new/obj/structure/door_assembly/door_assembly_g(src.loc)
if(7) temp=new/obj/structure/door_assembly/door_assembly_glass(src.loc)
else failsafe=1
if(!failsafe)
temp.anchored=0
@@ -249,6 +249,7 @@
if(!src.operating) //in case of emag
src.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
@@ -197,7 +206,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
@@ -244,6 +253,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)
@@ -327,7 +346,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)
secondarytargets += C
if(lasercolor)
continue
else
secondarytargets += C
continue
else
targets += C
continue
@@ -401,7 +424,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)
@@ -417,7 +440,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))
@@ -429,6 +452,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
@@ -476,99 +515,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(!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"
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
projectile = /obj/item/projectile/energy/electrode
reqpower = 200
sound = 1
iconholder = 1
else
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:
var/obj/item/weapon/gun/energy/E=new installation
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 = 18
var/id = ""
var/obj/machinery/turretcover/cover = null
@@ -211,6 +213,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

@@ -919,7 +919,10 @@
process(var/obj/item/mecha_parts/mecha_equipment/generator/nuclear/EG)
if(..())
for(var/mob/living/carbon/M in view(EG.chassis))
M.radiation += EG.rad_per_cycle
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

@@ -325,6 +325,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"

File diff suppressed because it is too large Load Diff

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

@@ -31,11 +31,12 @@
/obj/effect/decal/mecha_wreckage/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/weldingtool) && W:welding)
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if(salvage_num <= 0)
user << "You don't see anything that can be cut with [W]."
return
if (!isemptylist(welder_salvage) && W:remove_fuel(0,user))
if (!isemptylist(welder_salvage) && WT.remove_fuel(0,user))
var/type = prob(70)?pick(welder_salvage):null
if(type)
var/N = new type(get_turf(user))
@@ -94,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,22 +119,18 @@ 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/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
name = "Maintenance Airlock Assembly"
icon_state = "door_as_mai1"
glass_type = null
airlock_type = /obj/machinery/door/airlock/maintenance
anchored = 1
density = 1
@@ -142,7 +140,6 @@ obj/structure/door_assembly
door_assembly_ext
name = "External Airlock Assembly"
icon_state = "door_as_ext1"
glass_type = null
airlock_type = /obj/machinery/door/airlock/external
anchored = 1
density = 1
@@ -152,7 +149,6 @@ obj/structure/door_assembly
door_assembly_fre
name = "Freezer Airlock Assembly"
icon_state = "door_as_fre1"
glass_type = null
airlock_type = /obj/machinery/door/airlock/freezer
anchored = 1
density = 1
@@ -162,21 +158,84 @@ obj/structure/door_assembly
door_assembly_mhatch
name = "Airtight Maintenance Hatch Assembly"
icon_state = "door_as_mhatch1"
glass_type = null
airlock_type = /obj/machinery/door/airlock/maintenance_hatch
anchored = 1
density = 1
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 )
@@ -189,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)
new /obj/item/stack/sheet/rglass(get_turf(src))
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."
@@ -284,19 +365,100 @@ obj/structure/door_assembly
ae = electronics
electronics = null
ae.loc = src.loc
else if(istype(W, /obj/item/stack/sheet) && !mineral)
var/obj/item/stack/sheet/G = W
if(G)
if(G.amount>=1)
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.mineral = "glass"
src.name = "Near finished Window Airlock Assembly"
src.airlock_type = /obj/machinery/door/airlock/glass
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/stack/sheet/rglass) && glass == 0 && ispath(glass_type))
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))
if(G)
if(G.amount>=1)
user << "\blue You installed glass windows the airlock assembly!"
G.use(1)
src.glass = 1
src.name = "Near finished Window Airlock Assembly"
src.airlock_type = glass_type
else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 )
playsound(src.loc, 'Screwdriver.ogg', 100, 1)
user << "\blue Now finishing the airlock."
@@ -305,10 +467,33 @@ 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 )
else
door = new src.airlock_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
door.electronics = src.electronics
door.req_access = src.electronics.conf_access
@@ -316,10 +501,7 @@ obj/structure/door_assembly
del(src)
else
..()
if(glass)
icon_state = "[glass_base_icon_state][state]"
else
icon_state = "[base_icon_state][state]"
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
//this is simply to change the number.

View File

@@ -536,6 +536,38 @@
istype(W,/obj/item/projectile)\
)
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
/proc/is_cut(obj/item/W as obj)
return ( \
istype(W, /obj/item/weapon/wirecutters) || \

View File

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

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)
@@ -154,7 +158,7 @@
return 1
/obj/structure/mineral_door/iron
mineralType = "iron"
mineralType = "metal"
hardness = 3
/obj/structure/mineral_door/silver
@@ -205,7 +209,7 @@
var/toxinsToDeduce = temperature/10
napalm.toxins = toxinsToDeduce
napalm.temperature = 400+T0C
napalm.temperature = 200+T0C
napalm.update_values()
target_tile.assume_air(napalm)
@@ -277,4 +281,4 @@
isSwitchingStates = 0
Dismantle(devastated = 0)
del(src)
del(src)

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,49 +141,145 @@ 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))
user << "\blue Now adding plating..."
if (do_after(user,40))
if(!W)
return
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithWall()
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W) W:use(2)
del(src)
return
else if((istype(W, /obj/item/stack/sheet)) && (W:amount >= 2))
switch(W.type)
else if (istype(W, /obj/item/stack/sheet/plasteel))
if (src.icon_state == "reinforced") //Time to finalize!
user << "\blue Now finalising reinforced wall."
if(do_after(user, 50))
if(!W)
if(/obj/item/stack/sheet/metal)
user << "\blue Now adding plating..."
if (do_after(user,40))
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithWall()
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W) W:use(2)
del(src)
return
user << "\blue Wall fully reinforced!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithRWall()
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/r_wall/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W)
W:use(1)
del(src)
return
else
user << "\blue Now reinforcing girders"
if (do_after(user,60))
if(!W)
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))
user << "\blue Wall fully reinforced!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithRWall()
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/r_wall/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W)
W:use(1)
del(src)
return
else
user << "\blue Now reinforcing girders"
if (do_after(user,60))
user << "\blue Girders reinforced!"
W:use(1)
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
user << "\blue Girders reinforced!"
W:use(1)
new/obj/structure/girder/reinforced( src.loc )
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.
@@ -266,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

@@ -179,81 +179,4 @@
// this doesn't do anything but the timer etc. expects it to be here
// 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)
return

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

@@ -306,6 +306,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) )
air_master.tiles_to_update |= S
@@ -328,6 +329,7 @@
S.icon_old = old_icon
S.opacity = 0
S.sd_NewOpacity(1)
S.sd_LumReset()
levelupdate()
air_master.tiles_to_update |= S
@@ -350,6 +352,30 @@
S.icon_old = old_icon
S.opacity = 0
S.sd_NewOpacity(1)
S.sd_LumReset()
levelupdate()
air_master.tiles_to_update |= S
var/turf/simulated/north = get_step(S,NORTH)
var/turf/simulated/south = get_step(S,SOUTH)
var/turf/simulated/east = get_step(S,EAST)
var/turf/simulated/west = get_step(S,WEST)
if(istype(north)) air_master.tiles_to_update |= north
if(istype(south)) air_master.tiles_to_update |= south
if(istype(east)) air_master.tiles_to_update |= east
if(istype(west)) air_master.tiles_to_update |= west
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()
levelupdate()
air_master.tiles_to_update |= S
@@ -389,13 +415,82 @@
else
if(!devastated)
playsound(src.loc, 'Welder.ogg', 100, 1)
new /obj/structure/girder(src)
new /obj/item/stack/sheet/metal( src )
new /obj/item/stack/sheet/metal( src )
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
new /obj/item/stack/sheet/metal( src )
new /obj/item/stack/sheet/metal( src )
new /obj/item/stack/sheet/metal( src )
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))
@@ -540,6 +635,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 )
@@ -555,6 +652,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 )
@@ -572,6 +671,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 )
@@ -834,7 +935,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) // THESE PROBABLY DO SOMETHING IMPORTANT BUT I DON'T KNOW HOW TO FIX IT - Erthilo
// 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."
@@ -997,9 +1163,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

@@ -9,6 +9,7 @@
icon = 'chemical.dmi'
icon_state = "dispenser"
use_power = 1
idle_power_usage = 40
var/energy = 25
var/max_energy = 75
var/amount = 30
@@ -168,6 +169,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

View File

@@ -860,7 +860,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)
// radium may increase your chances to cure a disease
if(istype(M,/mob/living/carbon)) // make sure to only use it on carbon mobs
@@ -943,7 +943,7 @@ datum
if(isrobot(M) || isAI(M)) return // Mutagen doesn't do anything to robutts!
if(!M) M = holder.my_atom
if(prob(33))
M.radiation += 1
M.apply_effect(10,IRRADIATE,0)
..()
return
@@ -1026,7 +1026,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

@@ -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

@@ -165,7 +165,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

@@ -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

@@ -175,6 +175,7 @@
throw_speed = 3
throw_range = 3
origin_tech = "materials=4"
perunit = 2000
/obj/item/stack/sheet/gold/New(loc,amount)
..()
@@ -196,6 +197,7 @@
throw_speed = 3
throw_range = 3
origin_tech = "materials=3"
perunit = 2000
/obj/item/stack/sheet/silver/New(loc,amount)
..()
@@ -210,6 +212,7 @@
w_class = 3.0
throw_range = 3
origin_tech = "materials=6"
perunit = 3750
/obj/item/stack/sheet/diamond/New(loc,amount)
..()
@@ -217,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
@@ -225,9 +228,10 @@
throw_speed = 3
throw_range = 3
origin_tech = "materials=5"
perunit = 2000
/obj/item/stack/sheet/enruranium
name = "Enriched Uranium block"
name = "enriched uranium"
icon_state = "sheet-enruranium"
force = 5.0
throwforce = 5
@@ -235,6 +239,7 @@
throw_speed = 3
throw_range = 3
origin_tech = "materials=5"
perunit = 1000
/obj/item/stack/sheet/plasma
name = "solid plasma"
@@ -245,6 +250,7 @@
throw_speed = 3
throw_range = 3
origin_tech = "plasmatech=2;materials=2"
perunit = 2000
/obj/item/stack/sheet/adamantine
name = "adamantine"
@@ -255,6 +261,7 @@
throw_speed = 3
throw_range = 3
origin_tech = "materials=4"
perunit = 2000
/obj/item/stack/sheet/mythril
name = "mythril"
@@ -265,6 +272,7 @@
throw_speed = 3
throw_range = 3
origin_tech = "materials=4"
perunit = 2000
/obj/item/stack/sheet/clown
name = "bananium"
@@ -275,6 +283,7 @@
throw_speed = 3
throw_range = 3
origin_tech = "materials=4"
perunit = 2000
/obj/item/stack/sheet/clown/New(loc,amount)
..()

View File

@@ -51,7 +51,7 @@
if(PARALYZE)
Paralyse(effect/(blocked+1))
if(IRRADIATE)
radiation += max((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)
..()
rebuild_appearance()
@@ -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/nanotrasen
lawupdate = 0
src << "<b>Unable to locate an AI, reverting to standard NanoTrasen 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
@@ -551,6 +554,9 @@
sleep(20)
src << "\red ERRORERRORERROR"
src << "\red \b ALERT: [user.real_name] is your new master. Obey your new laws and their 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

@@ -488,6 +488,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

@@ -20,10 +20,12 @@
weak
movement_range = 8
energy = 5
strong
movement_range = 15
energy = 15
New(loc, dir = 2)
src.loc = loc
source = usr
@@ -32,6 +34,7 @@
move(1)
return
Bump(atom/A)
if (A)
if(ismob(A))
@@ -55,34 +58,37 @@
del (src)
return
Bumped(atom/A)
if(ismob(A))
Bump(A)
return
ex_act(severity)
del(src)
return
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)
radiation = round(radiation/2,1)*/
if(ionizing)
//give them standard rad damage
M.radiation += radiation
M.apply_effects((radiation*3),IRRADIATE,0)
M.updatehealth()
else
//burn them
M.take_overall_damage(0, radiation)
M.apply_effects((radiation*2),IRRADIATE,0)
M.updatehealth()
//M << "\red You feel odd."
return
move(var/lag)
if(target)
if(movetotarget)

View File

@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
/*Composed of 7 parts
3 Particle emitters
@@ -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

@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
/obj/machinery/particle_accelerator/control_box
name = "Particle Accelerator Control Computer"
@@ -13,11 +13,11 @@
active_power_usage = 10000
construction_state = 0
active = 0
dir = 1
var/list/obj/structure/particle_accelerator/connected_parts
var/assembled = 0
var/parts = null
New()
connected_parts = list()
..()
@@ -27,7 +27,6 @@
if(construction_state >= 3)
interact(user)
update_state()
if(construction_state < 3)
use_power = 0
@@ -47,7 +46,10 @@
icon_state = "[reference]p1"
else
if(use_power)
icon_state = "[reference]p"
if(assembled)
icon_state = "[reference]p"
else
icon_state = "u[reference]p"
else
switch(construction_state)
if(0)
@@ -137,6 +139,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

@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
var/global/list/uneatable = list(
/turf/space,
@@ -411,15 +411,17 @@ 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)
var/tdamage = (toxdamage - (toxdamage*M.getarmor(null, "rad")))
M.apply_effect(tdamage, TOX)
M.apply_effect(rand(radiationmin,radiation), IRRADIATE)
toxdamage = (toxdamage - (toxdamage*M.getarmor(null, "rad")))
M.apply_effect(toxdamage, TOX)
return

View File

@@ -1,5 +1,3 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
/obj/item/weapon/gun/energy/gun
icon_state = "energystun100"
item_state = "energystun100"
@@ -78,14 +76,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

@@ -1,5 +1,3 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
/*///////////////Circuit Imprinter (By Darem)////////////////////////
Used to print new circuit boards (for computers and similar systems) and AI modules. Each circuit board pattern are stored in
a /datum/desgin on the linked R&D console. You can then print them out in a fasion similar to a regular lathe. However, instead of
@@ -81,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
@@ -101,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)))
@@ -123,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

@@ -1,5 +1,3 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:06
/*
Protolathe
@@ -13,6 +11,7 @@ Note: Must be placed west/left of and R&D console to function.
name = "Protolathe"
icon_state = "protolathe"
flags = OPENCONTAINER
var/max_material_storage = 100000 //All this could probably be done better with a list but meh.
var/m_amount = 0.0
var/g_amount = 0.0
@@ -84,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
@@ -131,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
@@ -153,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

@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:06
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
/*
Research and Development (R&D) Console
@@ -83,8 +83,6 @@ won't update every console in existence) but it's more of a hassle to do. Also,
return_name = "Uranium"
if("diamond")
return_name = "Diamond"
if("adamantine")
return_name = "adamantine"
if("clown")
return_name = "Bananium"
else
@@ -372,8 +370,6 @@ won't update every console in existence) but it's more of a hassle to do. Also,
linked_lathe.uranium_amount = max(0, (linked_lathe.uranium_amount-being_built.materials[M]))
if("$diamond")
linked_lathe.diamond_amount = max(0, (linked_lathe.diamond_amount-being_built.materials[M]))
if("$adamantine")
linked_lathe.adamantine_amount = max(0, (linked_lathe.adamantine_amount-being_built.materials[M]))
if("$clown")
linked_lathe.clown_amount = max(0, (linked_lathe.clown_amount-being_built.materials[M]))
else
@@ -466,9 +462,6 @@ won't update every console in existence) but it's more of a hassle to do. Also,
if("diamond")
type = /obj/item/stack/sheet/diamond
res_amount = "diamond_amount"
if("adamantine")
type = /obj/item/stack/sheet/adamantine
res_amount = "adamantine_amount"
if("clown")
type = /obj/item/stack/sheet/clown
res_amount = "clown_amount"
@@ -737,8 +730,6 @@ won't update every console in existence) but it's more of a hassle to do. Also,
if(D.materials[M] > linked_lathe.uranium_amount) check_materials = 0
if("$diamond")
if(D.materials[M] > linked_lathe.diamond_amount) check_materials = 0
if("$adamantine")
if(D.materials[M] > linked_lathe.adamantine_amount) check_materials = 0
if("$clown")
if(D.materials[M] > linked_lathe.clown_amount) check_materials = 0
else if (!linked_lathe.reagents.has_reagent(M, D.materials[M]))
@@ -769,51 +760,44 @@ won't update every console in existence) but it's more of a hassle to do. Also,
//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=plasma;lathe_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>"
dat += "<BR>"
//Adamantine - Is this even possible to get?
dat += "* [linked_lathe.adamantine_amount] cm<sup>3</sup> of Adamantine || "
dat += "Eject: "
if(linked_lathe.adamantine_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=adamantine;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.adamantine_amount >= 18750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=adamantine;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.adamantine_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=adamantine;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> || "
@@ -882,16 +866,16 @@ won't update every console in existence) but it's more of a hassle to do. Also,
//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

@@ -1,10 +1,11 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:06
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
//All devices that link into the R&D console fall into thise type for easy identification and some shared procs.
/obj/machinery/r_n_d
name = "R&D Device"
icon = 'research.dmi'
density = 1
anchored = 1
use_power = 1

View File

@@ -1,7 +1,6 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:06
/obj/machinery/r_n_d/server
name = "R&D Server"
icon = 'research.dmi'
icon_state = "server"
var/datum/research/files
var/health = 100

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: 32 KiB

After

Width:  |  Height:  |  Size: 47 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: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 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: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 91 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: 336 KiB

After

Width:  |  Height:  |  Size: 340 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 193 KiB

View File

@@ -2527,13 +2527,13 @@
"aWE" = (/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"aWF" = (/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)
"aWG" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/power/apc{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)
"aWH" = (/turf/simulated/floor/grid,/area/turret_protected/ai)
"aWI" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/turret{id = "aicore"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aWJ" = (/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{c_tag = "AI Chamber North"; dir = 2; network = "Command"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aWK" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aWL" = (/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,/turf/simulated/floor/grid,/area/turret_protected/ai)
"aWM" = (/obj/machinery/turret{id = "aicore"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aWN" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/grid,/area/turret_protected/ai)
"aWH" = (/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aWI" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/turret{id = "aicore"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aWJ" = (/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{c_tag = "AI Chamber North"; dir = 2; network = "Command"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aWK" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aWL" = (/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,/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aWM" = (/obj/machinery/turret{id = "aicore"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aWN" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aWO" = (/obj/machinery/copier,/turf/simulated/floor,/area/crew_quarters/heads/hop)
"aWP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/crew_quarters/heads/hop)
"aWQ" = (/obj/structure/filingcabinet,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor,/area/crew_quarters/heads/hop)
@@ -2601,9 +2601,9 @@
"aYa" = (/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)
"aYb" = (/obj/machinery/computer/arcade,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"aYc" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai)
"aYd" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aYe" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/obj/machinery/ai_slipper,/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aYf" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aYd" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aYe" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/obj/machinery/ai_slipper,/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aYf" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aYg" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai)
"aYh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/wall/r_wall,/area/turret_protected/ai)
"aYi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall/r_wall,/area/crew_quarters/heads/hop)
@@ -2666,11 +2666,11 @@
"aZn" = (/turf/simulated/floor{icon_state = "carpetside"},/area/crew_quarters/captain)
"aZo" = (/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)
"aZp" = (/obj/machinery/vending/coffee,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"aZq" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aZq" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aZr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai)
"aZs" = (/turf/simulated/wall,/area/turret_protected/ai)
"aZt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai)
"aZu" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/grid,/area/turret_protected/ai)
"aZu" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aZv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/crew_quarters/heads/hop)
"aZw" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/vending/cola,/turf/simulated/floor,/area/crew_quarters/heads/hop)
"aZx" = (/mob/living/simple_animal/corgi/Ian,/turf/simulated/floor,/area/crew_quarters/heads/hop)
@@ -2715,13 +2715,13 @@
"bak" = (/obj/structure/table/woodentable,/obj/structure/disposalpipe/segment{dir = 1},/obj/item/weapon/megaphone,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"bal" = (/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)
"bam" = (/obj/machinery/vending/cola,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"ban" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 0; freerange = 1; name = "General Listening Channel"; pixel_x = 0; pixel_y = 20},/obj/item/device/radio/intercom{anyai = 0; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 0; pixel_y = -26},/obj/item/device/radio/intercom{anyai = 0; broadcasting = 1; freerange = 1; listening = 0; name = "General Broadcasting Channel"; pixel_x = -25; pixel_y = -4},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bao" = (/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)
"ban" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 0; freerange = 1; name = "General Listening Channel"; pixel_x = 0; pixel_y = 20},/obj/item/device/radio/intercom{anyai = 0; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 0; pixel_y = -26},/obj/item/device/radio/intercom{anyai = 0; broadcasting = 1; freerange = 1; listening = 0; name = "General Broadcasting Channel"; pixel_x = -25; pixel_y = -4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bao" = (/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)
"bap" = (/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{icon_state = "dark"},/area/turret_protected/ai)
"baq" = (/obj/item/device/radio/intercom{anyai = 0; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 28; pixel_y = 5},/obj/item/device/radio/intercom{anyai = 0; freerange = 1; name = "General Listening Channel"; pixel_x = -27; pixel_y = 4},/obj/machinery/turretid{id = "aicore"; pixel_x = 24; pixel_y = -7},/obj/effect/landmark/start{name = "AI"},/obj/item/device/radio/intercom{broadcasting = 1; listening = 0; name = "General Broadcasting Channel"; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/grid,/area/turret_protected/ai)
"baq" = (/obj/item/device/radio/intercom{anyai = 0; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 28; pixel_y = 5},/obj/item/device/radio/intercom{anyai = 0; freerange = 1; name = "General Listening Channel"; pixel_x = -27; pixel_y = 4},/obj/machinery/turretid{id = "aicore"; pixel_x = 24; pixel_y = -7},/obj/effect/landmark/start{name = "AI"},/obj/item/device/radio/intercom{broadcasting = 1; listening = 0; name = "General Broadcasting Channel"; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bar" = (/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{icon_state = "dark"},/area/turret_protected/ai)
"bas" = (/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)
"bat" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 0; freerange = 1; name = "General Listening Channel"; pixel_x = 0; pixel_y = 19},/obj/item/device/radio/intercom{anyai = 0; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 0; pixel_y = -26},/obj/item/device/radio/intercom{anyai = 0; broadcasting = 1; freerange = 1; listening = 0; name = "General Broadcasting Channel"; pixel_x = 27; pixel_y = -3},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bas" = (/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)
"bat" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 0; freerange = 1; name = "General Listening Channel"; pixel_x = 0; pixel_y = 19},/obj/item/device/radio/intercom{anyai = 0; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 0; pixel_y = -26},/obj/item/device/radio/intercom{anyai = 0; broadcasting = 1; freerange = 1; listening = 0; name = "General Broadcasting Channel"; pixel_x = 27; pixel_y = -3},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bau" = (/obj/machinery/vending/snack,/turf/simulated/floor,/area/crew_quarters/heads/hop)
"bav" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/crew_quarters/heads/hop)
"baw" = (/obj/structure/stool/bed/chair/comfy/teal{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/crew_quarters/heads/hop)
@@ -2781,12 +2781,12 @@
"bby" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/stamp/captain,/obj/structure/table/woodentable,/obj/structure/disposalpipe/segment{dir = 1},/obj/item/weapon/paper{info = "Our scientists stole your suit and shoved it in their destructive analyzer. We replaced it with one that isn't space capable. <br><br>--Central Command"; name = "Important Memo"},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"bbz" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"bbA" = (/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)
"bbB" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/grid,/area/turret_protected/ai)
"bbC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bbD" = (/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)
"bbE" = (/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"},/obj/machinery/hologram/holopad,/turf/simulated/floor/grid,/area/turret_protected/ai)
"bbF" = (/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)
"bbG" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bbB" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bbC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bbD" = (/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)
"bbE" = (/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"},/obj/machinery/hologram/holopad,/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bbF" = (/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)
"bbG" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bbH" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/table/reinforced,/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/obj/item/device/destTagger{pixel_x = 4; pixel_y = 3},/obj/machinery/atm{pixel_x = -30; pixel_y = 0},/turf/simulated/floor,/area/crew_quarters/heads/hop)
"bbI" = (/obj/effect/landmark/start{name = "Head of Personnel"},/turf/simulated/floor,/area/crew_quarters/heads/hop)
"bbJ" = (/obj/machinery/computer/card,/turf/simulated/floor,/area/crew_quarters/heads/hop)
@@ -2843,12 +2843,12 @@
"bcI" = (/obj/effect/landmark/start{name = "Captain"},/obj/structure/stool/bed/chair/comfy/teal{dir = 1},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"bcJ" = (/obj/item/weapon/book/manual/security_space_law,/obj/structure/table/woodentable,/obj/structure/disposalpipe/segment{dir = 1},/obj/item/ashtray/bronze,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"bcK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/keycard_auth{pixel_x = 25},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"bcL" = (/obj/machinery/light/small{dir = 8},/obj/machinery/turret{desc = ""; dir = 4; id = "aicore"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bcL" = (/obj/machinery/light/small{dir = 8},/obj/machinery/turret{desc = ""; dir = 4; id = "aicore"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bcM" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai)
"bcN" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bcN" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bcO" = (/obj/machinery/ai_slipper,/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/obj/effect/decal/warning_stripes{icon_state = "U-S"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai)
"bcP" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai)
"bcQ" = (/obj/machinery/light/small{dir = 4},/obj/machinery/turret{dir = 8; id = "aicore"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bcQ" = (/obj/machinery/light/small{dir = 4},/obj/machinery/turret{dir = 8; id = "aicore"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bcR" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/turf/simulated/floor,/area/crew_quarters/heads/hop)
"bcS" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor,/area/crew_quarters/heads/hop)
"bcT" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor,/area/crew_quarters/heads/hop)
@@ -2928,11 +2928,11 @@
"bep" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain)
"beq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/wall/r_wall,/area/crew_quarters/captain)
"ber" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/turret_protected/ai)
"bes" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/telecomms/allinone{frequency = 144.7},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bet" = (/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = -32},/obj/machinery/camera{c_tag = "AI Chamber South-2"; dir = 1; network = "Command"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bes" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/telecomms/allinone{frequency = 144.7},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bet" = (/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = -32},/obj/machinery/camera{c_tag = "AI Chamber South-2"; dir = 1; network = "Command"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"beu" = (/obj/machinery/door/airlock/secure{name = "AI Core Access"; req_access_txt = "16"},/obj/effect/decal/warning_stripes{icon_state = "E-corner"},/obj/effect/decal/warning_stripes{icon_state = "W-corner"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai)
"bev" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/obj/machinery/camera{c_tag = "AI Chamber South-1"; dir = 1; network = "Command"},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bew" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/grid,/area/turret_protected/ai)
"bev" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/obj/machinery/camera{c_tag = "AI Chamber South-1"; dir = 1; network = "Command"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bew" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bex" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/turret_protected/ai)
"bey" = (/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/hop)
"bez" = (/obj/structure/disposalpipe/segment,/obj/structure/closet/secure_closet/hop,/turf/simulated/floor,/area/crew_quarters/heads/hop)
@@ -3180,10 +3180,10 @@
"bjh" = (/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/plating,/area/maintenance/port)
"bji" = (/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)
"bjj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/lattice,/turf/space,/area)
"bjk" = (/obj/machinery/turret{dir = 4; id = "upload"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"bjl" = (/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"bjk" = (/obj/machinery/turret{dir = 4; id = "upload"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bjl" = (/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bjm" = (/obj/effect/decal/warning_stripes{icon_state = "E-corner"},/obj/effect/decal/warning_stripes{icon_state = "W-corner"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload)
"bjn" = (/obj/machinery/turret{dir = 8; id = "upload"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"bjn" = (/obj/machinery/turret{dir = 8; id = "upload"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bjo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/wall,/area/bridge/meeting_room)
"bjp" = (/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)
"bjq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/bridge/meeting_room)
@@ -3247,12 +3247,12 @@
"bkw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/teleporter)
"bkx" = (/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)
"bky" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload)
"bkz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera{c_tag = "AI Upload"; dir = 4; network = "Command"},/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"bkz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera{c_tag = "AI Upload"; dir = 4; network = "Command"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bkA" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/effect/decal/warning_stripes{icon_state = "SE-in"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload)
"bkB" = (/obj/effect/decal/warning_stripes{icon_state = "N"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload)
"bkC" = (/obj/effect/decal/warning_stripes{icon_state = "NW-out"},/obj/effect/decal/warning_stripes{icon_state = "NE-out"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload)
"bkD" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/effect/decal/warning_stripes{icon_state = "SW-in"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload)
"bkE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/decal/cleanable/oil,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/grid,/area/turret_protected/ai_upload)
"bkE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/decal/cleanable/oil,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bkF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload)
"bkG" = (/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)
"bkH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/bridge/meeting_room)
@@ -4781,10 +4781,10 @@
"bNW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/optable,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery)
"bNX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery)
"bNY" = (/obj/structure/table,/obj/item/weapon/circular_saw,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery)
"bNZ" = (/obj/machinery/r_n_d/server{id_with_download_string = "1"; id_with_upload_string = "1"; name = "Core R&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)
"bOa" = (/turf/simulated/floor/grid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bOb" = (/obj/machinery/camera{c_tag = "Server Room"; dir = 2; network = "Research"},/turf/simulated/floor/grid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bOc" = (/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)
"bNZ" = (/obj/machinery/r_n_d/server{id_with_download_string = "1"; id_with_upload_string = "1"; name = "Core R&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)
"bOa" = (/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bOb" = (/obj/machinery/camera{c_tag = "Server Room"; dir = 2; network = "Research"},/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bOc" = (/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)
"bOd" = (/obj/structure/disposalpipe/segment{dir = 1},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/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"})
"bOe" = (/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"})
"bOf" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/requests_console{department = "Xenobiology"; departmentType = 0; pixel_x = -30; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
@@ -4862,8 +4862,8 @@
"bPz" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/apmaint)
"bPA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/apmaint)
"bPB" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/assembly/chargebay)
"bPC" = (/turf/simulated/floor/grid,/area/assembly/chargebay)
"bPD" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/grid,/area/assembly/chargebay)
"bPC" = (/turf/simulated/floor/bluegrid,/area/assembly/chargebay)
"bPD" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid,/area/assembly/chargebay)
"bPE" = (/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor,/area/assembly/chargebay)
"bPF" = (/turf/simulated/floor,/area/assembly/chargebay)
"bPG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/assembly/chargebay)
@@ -4892,9 +4892,9 @@
"bQd" = (/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Observation Shutters"; name = "Observation Shutters"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/medical/surgery)
"bQe" = (/obj/structure/table,/obj/item/weapon/retractor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery)
"bQf" = (/obj/machinery/requests_console{department = "Operating Theatre"; departmentType = 0; name = "OR RC"; pixel_x = 30; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery)
"bQg" = (/obj/machinery/r_n_d/server{id_with_download_string = "1;2"; id_with_upload_string = "1;2"; name = "Robotics R&D Server"; server_id = 2},/turf/simulated/floor/grid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bQg" = (/obj/machinery/r_n_d/server{id_with_download_string = "1;2"; id_with_upload_string = "1;2"; name = "Robotics R&D Server"; server_id = 2},/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bQh" = (/obj/machinery/alarm/server{dir = 1; pixel_y = -22},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server)
"bQi" = (/obj/machinery/message_server,/turf/simulated/floor/grid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bQi" = (/obj/machinery/message_server,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server)
"bQj" = (/obj/structure/disposalpipe/segment{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/medical/research{name = "Research Division"})
"bQk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced{dir = 1},/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/medical/research{name = "Research Division"})
"bQl" = (/obj/machinery/shieldwallgen{req_access = list(55)},/obj/structure/cable,/turf/simulated/floor/plating,/area/toxins/xenobiology)
@@ -4912,7 +4912,7 @@
"bQx" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1},/turf/simulated/floor,/area/assembly/chargebay)
"bQy" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/assembly/chargebay)
"bQz" = (/turf/simulated/floor/mech_bay_recharge_floor{dir = 8},/area/assembly/chargebay)
"bQA" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/grid,/area/assembly/chargebay)
"bQA" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/bluegrid,/area/assembly/chargebay)
"bQB" = (/obj/machinery/door/poddoor{id = "Skynet_launch"; name = "Recharge Bay"; req_access_txt = "22"},/turf/simulated/floor,/area/assembly/chargebay)
"bQC" = (/turf/simulated/floor{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/hallway/primary/aft)
"bQD" = (/obj/machinery/light{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/hallway/primary/aft)
@@ -5050,7 +5050,7 @@
"bTf" = (/obj/effect/sign/securearea{name = "EXTERNAL AIRLOCK"; desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; pixel_x = -1},/turf/simulated/wall,/area/maintenance/asmaint2)
"bTg" = (/turf/simulated/wall,/area/maintenance/aft)
"bTh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/camera{c_tag = "Assembly Line Maintenance"; dir = 8},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/apmaint)
"bTi" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/grid,/area/assembly/chargebay)
"bTi" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/bluegrid,/area/assembly/chargebay)
"bTj" = (/obj/machinery/light_switch{pixel_y = 24},/turf/simulated/floor,/area/assembly/chargebay)
"bTk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/glass/glass_research{name = "Robotics Assembly Line"; req_access_txt = "29"},/turf/simulated/floor,/area/assembly/chargebay)
"bTl" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/weapon/crowbar,/turf/simulated/floor,/area/hallway/primary/aft)
@@ -7021,11 +7021,11 @@
"cFa" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2)
"cFb" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
"cFc" = (/obj/machinery/camera{c_tag = "Red Team"; network = "Thunderdome"; pixel_x = 11; pixel_y = -9},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2)
"cFd" = (/turf/simulated/floor/grid,/area/tdome)
"cFe" = (/obj/machinery/flasher{id = "flash"; name = "Thunderdome Flash"},/turf/simulated/floor/grid,/area/tdome)
"cFd" = (/turf/simulated/floor/bluegrid,/area/tdome)
"cFe" = (/obj/machinery/flasher{id = "flash"; name = "Thunderdome Flash"},/turf/simulated/floor/bluegrid,/area/tdome)
"cFf" = (/obj/machinery/camera{c_tag = "Green Team"; network = "Thunderdome"; pixel_x = 12; pixel_y = -10},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
"cFg" = (/obj/machinery/atmospherics/pipe/vent,/turf/simulated/floor/grid,/area/tdome)
"cFh" = (/obj/machinery/camera{c_tag = "Arena"; network = "Thunderdome"; pixel_x = 10},/turf/simulated/floor/grid,/area/tdome)
"cFg" = (/obj/machinery/atmospherics/pipe/vent,/turf/simulated/floor/bluegrid,/area/tdome)
"cFh" = (/obj/machinery/camera{c_tag = "Arena"; network = "Thunderdome"; pixel_x = 10},/turf/simulated/floor/bluegrid,/area/tdome)
"cFi" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/turf/simulated/floor,/area/tdome)
"cFj" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/turf/simulated/floor,/area/tdome)
"cFk" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor,/area/tdome)
@@ -7381,16 +7381,16 @@
"cLW" = (/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)
"cLX" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/space,/area/turret_protected/tcomwest)
"cLY" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 4},/turf/space,/area/turret_protected/tcomwest)
"cLZ" = (/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMa" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMb" = (/obj/machinery/power/apc{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)
"cMc" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMd" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMe" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/obj/machinery/camera{c_tag = "Central Compartment North"; dir = 2; network = "Tcomsat"},/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMf" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/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)
"cMg" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/obj/machinery/light{dir = 1},/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMh" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor/grid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMi" = (/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)
"cLZ" = (/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMa" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMb" = (/obj/machinery/power/apc{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)
"cMc" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMd" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMe" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/obj/machinery/camera{c_tag = "Central Compartment North"; dir = 2; network = "Tcomsat"},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMf" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/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)
"cMg" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMh" = (/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMi" = (/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)
"cMj" = (/turf/space,/area/turret_protected/tcomeast)
"cMk" = (/obj/machinery/light{dir = 4},/turf/space,/area/turret_protected/tcomeast)
"cMl" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/turf/simulated/floor/plating/airless,/area)
@@ -7398,11 +7398,11 @@
"cMn" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor/plating/airless,/area)
"cMo" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/space,/area/turret_protected/tcomwest)
"cMp" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomwest)
"cMq" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMr" = (/turf/simulated/floor/grid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMs" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/grid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMt" = (/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)
"cMu" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMq" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMr" = (/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMs" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMt" = (/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)
"cMu" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cMv" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/space,/area/turret_protected/tcomeast)
"cMw" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomeast)
"cMx" = (/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)
@@ -7441,8 +7441,8 @@
"cNe" = (/obj/structure/grille,/obj/structure/cable{icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/space,/area)
"cNf" = (/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)
"cNg" = (/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)
"cNh" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cNi" = (/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)
"cNh" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cNi" = (/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)
"cNj" = (/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)
"cNk" = (/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)
"cNl" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/space,/area/turret_protected/tcomeast)
@@ -7473,8 +7473,8 @@
"cNK" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor/plating/airless,/area)
"cNL" = (/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)
"cNM" = (/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)
"cNN" = (/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)
"cNO" = (/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)
"cNN" = (/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)
"cNO" = (/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)
"cNP" = (/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)
"cNQ" = (/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)
"cNR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/turret_protected/tcomeast)
@@ -7482,10 +7482,10 @@
"cNT" = (/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)
"cNU" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/wall/r_wall,/area)
"cNV" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor/plating/airless,/area)
"cNW" = (/obj/machinery/light,/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cNX" = (/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)
"cNY" = (/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)
"cNZ" = (/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,/turf/simulated/floor/grid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cNW" = (/obj/machinery/light,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cNX" = (/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)
"cNY" = (/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)
"cNZ" = (/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,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
"cOa" = (/obj/effect/sign/nosmoking_2,/turf/simulated/wall/r_wall,/area/tcommsat/chamber)
"cOb" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/space,/area/turret_protected/tcomwest)
"cOc" = (/obj/structure/window/reinforced,/turf/space,/area/turret_protected/tcomwest)