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 opacity = 0
density = 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 /obj/hud
name = "hud" name = "hud"
unacidable = 1 unacidable = 1
@@ -1279,6 +1306,46 @@
opacity = 1 opacity = 1
anchored = 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 /obj/structure/falserwall
name = "r wall" name = "r wall"
desc = "A huge chunk of reinforced metal used to seperate rooms." desc = "A huge chunk of reinforced metal used to seperate rooms."

View File

@@ -180,7 +180,7 @@
// product_hideamt = "3;4;6" // product_hideamt = "3;4;6"
hidden_prices = "3;3;2" hidden_prices = "3;3;2"
points = 25 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" charge_type = "medical"
/obj/machinery/vending/wallmed1 /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." 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" 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" name = "YouTool"
desc = "Tools for tools." desc = "Tools for tools."
icon_state = "tool" icon_state = "tool"
@@ -327,6 +327,22 @@
product_coin_amt = "1" product_coin_amt = "1"
charge_type = "engineering" 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 /obj/machinery/vending/genetics
name = "Genetics Dispenser" name = "Genetics Dispenser"
desc = "Medical drug dispenser." desc = "Medical drug dispenser."

View File

@@ -158,6 +158,7 @@
name = "wall" name = "wall"
desc = "A huge chunk of metal used to seperate rooms." desc = "A huge chunk of metal used to seperate rooms."
icon = 'walls.dmi' icon = 'walls.dmi'
var/mineral = "metal"
opacity = 1 opacity = 1
density = 1 density = 1
blocks_air = 1 blocks_air = 1
@@ -167,6 +168,80 @@
var/walltype = "wall" 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 /turf/simulated/wall/heatshield
thermal_conductivity = 0 thermal_conductivity = 0
opacity = 0 opacity = 0
@@ -257,7 +332,7 @@
return L return L
/*
/turf/simulated/wall/mineral /turf/simulated/wall/mineral
icon = 'mineral_walls.dmi' icon = 'mineral_walls.dmi'
walltype = "iron" walltype = "iron"
@@ -357,3 +432,4 @@
hardness -= toxinsToDeduce/100 hardness -= toxinsToDeduce/100
CheckHardness() CheckHardness()
*/

View File

@@ -15,6 +15,8 @@
var/lastfired = 0 var/lastfired = 0
var/shot_delay = 3 //.3 seconds between shots var/shot_delay = 3 //.3 seconds between shots
var/lasercolor = ""
var/disabled = 0
//var/lasers = 0 //var/lasers = 0
@@ -68,11 +70,12 @@
item_state = "ed209_frame" item_state = "ed209_frame"
var/build_step = 0 var/build_step = 0
var/created_name = "ED-209 Security Robot" //To preserve the name if it's a unique securitron I guess 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() /obj/machinery/bot/ed209/New()
..() ..()
src.icon_state = "ed209[src.on]" src.icon_state = "[lasercolor]ed209[src.on]"
spawn(3) spawn(3)
src.botcard = new /obj/item/weapon/card/id(src) src.botcard = new /obj/item/weapon/card/id(src)
src.botcard.access = get_access("Detective") src.botcard.access = get_access("Detective")
@@ -82,10 +85,17 @@
if(radio_controller) if(radio_controller)
radio_controller.add_object(src, control_freq, filter = RADIO_SECBOT) radio_controller.add_object(src, control_freq, filter = RADIO_SECBOT)
radio_controller.add_object(src, beacon_freq, filter = RADIO_NAVBEACONS) 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() /obj/machinery/bot/ed209/turn_on()
. = ..() . = ..()
src.icon_state = "ed209[src.on]" src.icon_state = "[lasercolor]ed209[src.on]"
src.mode = SECBOT_IDLE src.mode = SECBOT_IDLE
src.updateUsrDialog() src.updateUsrDialog()
@@ -96,7 +106,7 @@
src.anchored = 0 src.anchored = 0
src.mode = SECBOT_IDLE src.mode = SECBOT_IDLE
walk_to(src,0) walk_to(src,0)
src.icon_state = "ed209[src.on]" src.icon_state = "[lasercolor]ed209[src.on]"
src.updateUsrDialog() src.updateUsrDialog()
/obj/machinery/bot/ed209/attack_hand(mob/user as mob) /obj/machinery/bot/ed209/attack_hand(mob/user as mob)
@@ -181,7 +191,7 @@ Auto Patrol: []"},
src.anchored = 0 src.anchored = 0
src.emagged = 1 src.emagged = 1
src.on = 1 src.on = 1
src.icon_state = "ed209[src.on]" src.icon_state = "[lasercolor]ed209[src.on]"
mode = SECBOT_IDLE mode = SECBOT_IDLE
/obj/machinery/bot/ed209/process() /obj/machinery/bot/ed209/process()
@@ -210,7 +220,7 @@ Auto Patrol: []"},
if (targets.len>0) if (targets.len>0)
var/mob/t = pick(targets) var/mob/t = pick(targets)
if (istype(t, /mob/living)) if (istype(t, /mob/living))
if (t.stat!=2) if ((t.stat!=2) && (t.lying != 1))
//src.speak("selected target: " + t.real_name) //src.speak("selected target: " + t.real_name)
src.shootAt(t) src.shootAt(t)
switch(mode) switch(mode)
@@ -222,7 +232,8 @@ Auto Patrol: []"},
mode = SECBOT_START_PATROL // switch to patrol mode mode = SECBOT_START_PATROL // switch to patrol mode
if(SECBOT_HUNT) // hunting for perp 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 can't reach perp for long enough, go idle
if (src.frustration >= 8) if (src.frustration >= 8)
// for(var/mob/O in hearers(src, null)) // for(var/mob/O in hearers(src, null))
@@ -236,9 +247,9 @@ Auto Patrol: []"},
if (target) // make sure target exists if (target) // make sure target exists
if (get_dist(src, src.target) <= 1) // if right next to perp if (get_dist(src, src.target) <= 1) // if right next to perp
playsound(src.loc, 'Egloves.ogg', 50, 1, -1) playsound(src.loc, 'Egloves.ogg', 50, 1, -1)
src.icon_state = "ed209-c" src.icon_state = "[lasercolor]ed209-c"
spawn(2) spawn(2)
src.icon_state = "ed209[src.on]" src.icon_state = "[lasercolor]ed209[src.on]"
var/mob/living/carbon/M = src.target var/mob/living/carbon/M = src.target
var/maxstuns = 4 var/maxstuns = 4
if (istype(M, /mob/living/carbon/human)) if (istype(M, /mob/living/carbon/human))
@@ -270,6 +281,8 @@ Auto Patrol: []"},
src.frustration = 0 src.frustration = 0
if(SECBOT_PREP_ARREST) // preparing to arrest target if(SECBOT_PREP_ARREST) // preparing to arrest target
if(src.lasercolor)
return
if (!target) if (!target)
mode = SECBOT_IDLE mode = SECBOT_IDLE
src.anchored = 0 src.anchored = 0
@@ -305,6 +318,8 @@ Auto Patrol: []"},
// src.speak(arrest_message) // src.speak(arrest_message)
if(SECBOT_ARREST) // arresting if(SECBOT_ARREST) // arresting
if(src.lasercolor)
return
if (!target || src.target.handcuffed) if (!target || src.target.handcuffed)
src.anchored = 0 src.anchored = 0
mode = SECBOT_IDLE mode = SECBOT_IDLE
@@ -640,6 +655,22 @@ Auto Patrol: []"},
if((istype(perp:wear_id, /obj/item/weapon/card/id/syndicate)) && src.idcheck) if((istype(perp:wear_id, /obj/item/weapon/card/id/syndicate)) && src.idcheck)
threatcount -= 2 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 (src.check_records)
for (var/datum/data/record/E in data_core.general) for (var/datum/data/record/E in data_core.general)
var/perpname = perp.name var/perpname = perp.name
@@ -697,8 +728,15 @@ Auto Patrol: []"},
Sa.created_name = src.name Sa.created_name = src.name
new /obj/item/device/assembly/prox_sensor(Tsec) new /obj/item/device/assembly/prox_sensor(Tsec)
var/obj/item/weapon/melee/baton/B = new /obj/item/weapon/melee/baton(Tsec) if(!lasercolor)
B.charges = 0 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)) if (prob(50))
new /obj/item/robot_parts/l_arm(Tsec) new /obj/item/robot_parts/l_arm(Tsec)
@@ -728,10 +766,21 @@ Auto Patrol: []"},
// playsound(src.loc, 'ed209_shoot.ogg', 50, 0) // playsound(src.loc, 'ed209_shoot.ogg', 50, 0)
var/obj/item/projectile/A var/obj/item/projectile/A
if (src.emagged) if(!lasercolor)
A = new /obj/item/projectile/beam( loc ) if (src.emagged)
else A = new /obj/item/projectile/beam( loc )
A = new /obj/item/projectile/energy/electrode( 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) )) if (!( istype(U, /turf) ))
//A = null //A = null
@@ -813,6 +862,22 @@ Auto Patrol: []"},
src.item_state = "ed209_shell" src.item_state = "ed209_shell"
src.icon_state = "ed209_shell" src.icon_state = "ed209_shell"
del(W) 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) else if(istype(W, /obj/item/weapon/weldingtool) && src.build_step == 3)
var/obj/item/weapon/weldingtool/WT = W var/obj/item/weapon/weldingtool/WT = W
if(WT.remove_fuel(0,user)) if(WT.remove_fuel(0,user))
@@ -823,15 +888,15 @@ Auto Patrol: []"},
src.build_step++ src.build_step++
user << "You add the helmet to [src]!" user << "You add the helmet to [src]!"
src.name = "covered and shielded frame assembly" src.name = "covered and shielded frame assembly"
src.item_state = "ed209_hat" src.item_state = "[lasercolor]ed209_hat"
src.icon_state = "ed209_hat" src.icon_state = "[lasercolor]ed209_hat"
del(W) del(W)
else if(isprox(W) && (src.build_step == 5)) else if(isprox(W) && (src.build_step == 5))
src.build_step++ src.build_step++
user << "You add the prox sensor to [src]!" user << "You add the prox sensor to [src]!"
src.name = "prox/covered and armed the frame assembly" src.name = "prox/covered and armed the frame assembly"
src.item_state = "ed209_prox" src.item_state = "[lasercolor]ed209_prox"
src.icon_state = "ed209_prox" src.icon_state = "[lasercolor]ed209_prox"
del(W) del(W)
else if(istype(W, /obj/item/weapon/cable_coil) && (src.build_step == 6) ) else if(istype(W, /obj/item/weapon/cable_coil) && (src.build_step == 6) )
var/obj/item/weapon/cable_coil/coil = W var/obj/item/weapon/cable_coil/coil = W
@@ -843,12 +908,26 @@ Auto Patrol: []"},
src.build_step++ src.build_step++
user << "\blue You wire the ED-209 assembly!" user << "\blue You wire the ED-209 assembly!"
src.name = "Wired 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++ src.build_step++
user << "You add the taser gun to [src]!" user << "You add the taser gun to [src]!"
src.name = "Taser/Wired ED-209 Assembly" src.name = "Taser/Wired ED-209 Assembly"
src.item_state = "ed209_taser" src.item_state = "[lasercolor]ed209_taser"
src.icon_state = "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) del(W)
else if(istype(W, /obj/item/weapon/screwdriver) && (src.build_step == 8) ) else if(istype(W, /obj/item/weapon/screwdriver) && (src.build_step == 8) )
playsound(src.loc, 'Screwdriver.ogg', 100, 1) playsound(src.loc, 'Screwdriver.ogg', 100, 1)
@@ -865,6 +944,8 @@ Auto Patrol: []"},
var/obj/machinery/bot/ed209/S = new /obj/machinery/bot/ed209 var/obj/machinery/bot/ed209/S = new /obj/machinery/bot/ed209
S.loc = get_turf(src) S.loc = get_turf(src)
S.name = src.created_name S.name = src.created_name
S.lasercolor = src.lasercolor
S.New()
del(W) del(W)
del(src) del(src)
@@ -878,3 +959,15 @@ Auto Patrol: []"},
src.created_name = t 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 /obj/machinery/door
name = "Door" name = "Door"
@@ -153,7 +153,7 @@
if(4) temp=new/obj/structure/door_assembly/door_assembly_med(src.loc) 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(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(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 else failsafe=1
if(!failsafe) if(!failsafe)
temp.anchored=0 temp.anchored=0
@@ -249,6 +249,7 @@
if(!src.operating) //in case of emag if(!src.operating) //in case of emag
src.operating = 1 src.operating = 1
animate("opening") animate("opening")
icon_state = "door0"
src.sd_SetOpacity(0) src.sd_SetOpacity(0)
sleep(10) sleep(10)
src.layer = 2.7 src.layer = 2.7

View File

@@ -23,6 +23,7 @@
req_access = list(access_security) req_access = list(access_security)
power_channel = EQUIP // drains power from the EQUIPMENT channel 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/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/raising= 0 // if the turret is currently opening or closing its cover
var/health = 80 // the turret's health var/health = 80 // the turret's health
@@ -30,6 +31,11 @@
var/installation // the type of weapon installed var/installation // the type of weapon installed
var/gun_charge = 0 // the charge of the gun inserted 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/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 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/emagged = 0 // 1: emagged, 0: not emagged
var/on = 1 // determines if the turret is on 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? var/datum/effect/effect/system/spark_spread/spark_system // the spark system, used for generating... sparks?
New() New()
..() ..()
icon_state = "[lasercolor]grey_target_prism"
// Sets up a spark system // Sets up a spark system
spark_system = new /datum/effect/effect/system/spark_spread spark_system = new /datum/effect/effect/system/spark_spread
spark_system.set_up(5, 0, src) spark_system.set_up(5, 0, src)
@@ -131,22 +139,22 @@ Neutralize All Unidentified Life Signs: []<BR>"},
icon_state = "turretCover" icon_state = "turretCover"
return return
if(stat & BROKEN) if(stat & BROKEN)
icon_state = "destroyed_target_prism" icon_state = "[lasercolor]destroyed_target_prism"
else else
if( powered() ) if( powered() )
if (on) if (on)
if (installation == /obj/item/weapon/gun/energy/laser || installation == /obj/item/weapon/gun/energy/pulse_rifle) 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 // laser guns and pulse rifles have an orange icon
icon_state = "orange_target_prism" icon_state = "[lasercolor]orange_target_prism"
else else
// anything else has a blue icon // anything else has a blue icon
icon_state = "target_prism" icon_state = "[lasercolor]target_prism"
else else
icon_state = "grey_target_prism" icon_state = "[lasercolor]grey_target_prism"
stat &= ~NOPOWER stat &= ~NOPOWER
else else
spawn(rand(0, 15)) spawn(rand(0, 15))
src.icon_state = "grey_target_prism" src.icon_state = "[lasercolor]grey_target_prism"
stat |= NOPOWER stat |= NOPOWER
@@ -165,6 +173,7 @@ Neutralize All Unidentified Life Signs: []<BR>"},
var/obj/item/weapon/gun/energy/Gun = new installation(src.loc) var/obj/item/weapon/gun/energy/Gun = new installation(src.loc)
Gun.power_supply.charge=gun_charge Gun.power_supply.charge=gun_charge
Gun.update_icon() Gun.update_icon()
lasercolor = null
if(prob(50)) new /obj/item/stack/sheet/metal( loc, rand(1,4)) 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)) if(prob(50)) new /obj/item/device/assembly/prox_sensor(locate(x,y,z))
else else
@@ -197,7 +206,7 @@ Neutralize All Unidentified Life Signs: []<BR>"},
if(!anchored) if(!anchored)
anchored = 1 anchored = 1
invisibility = 2 invisibility = 2
icon_state = "grey_target_prism" icon_state = "[lasercolor]grey_target_prism"
user << "You secure the exterior bolts on the turret." 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=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 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(prob(45) && Proj.damage > 0) src.spark_system.start()
if (src.health <= 0) if (src.health <= 0)
src.die() // the death process :( 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 return
/obj/machinery/porta_turret/emp_act(severity) /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(!istype(C, /mob/living/silicon) && ai) // If it's set to attack all nonsilicons, target them!
if(C.lying) if(C.lying)
secondarytargets += C if(lasercolor)
continue
else
secondarytargets += C
continue
else else
targets += C targets += C
continue continue
@@ -401,7 +424,7 @@ Neutralize All Unidentified Life Signs: []<BR>"},
cover.icon_state="turretCover" cover.icon_state="turretCover"
raised=0 raised=0
invisibility=2 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) /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(auth_weapons) // check for weapon authorization
if((isnull(perp:wear_id)) || (istype(perp:wear_id, /obj/item/weapon/card/id/syndicate))) 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 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)) 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)) if(istype(perp:belt, /obj/item/weapon/gun) || istype(perp:belt, /obj/item/weapon/melee/baton))
threatcount += 2 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 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) for (var/datum/data/record/E in data_core.general)
var/perpname = perp.name 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! // any emagged turrets will shoot extremely fast! This not only is deadly, but drains a lot power!
var/obj/item/projectile/A if(!projectile)
if(!installation) // if for some reason the turret has no gun (ie, admin spawned) it resorts to basic taser shots lasercolor = ""
A = new /obj/item/projectile/energy/electrode( loc ) req_access = list(access_security)
if(!emagged) use_power(200) if(!installation)// if for some reason the turret has no gun (ie, admin spawned) it resorts to basic taser shots
else use_power(400) projectile = /obj/item/projectile/energy/electrode
playsound(src.loc, 'Taser.ogg', 75, 1) reqpower = 200
icon_state = "target_prism" 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 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: // Shooting Code:
var/obj/item/weapon/gun/energy/E=new installation
if(!E.silenced) if(!E.silenced)
playsound(src.loc, E.fire_sound, 75, 1) playsound(src.loc, E.fire_sound, 75, 1)
else else
playsound(src.loc, E.fire_sound, 10, 1) 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) del(E)
A.current = T A.current = T
A.yo = U.y - T.y A.yo = U.y - T.y

View File

@@ -54,6 +54,8 @@
// 2 = cannons // 2 = cannons
// 3 = pulse // 3 = pulse
// 4 = change (HONK) // 4 = change (HONK)
// 5 = bluetag
// 6 = redtag
var/health = 18 var/health = 18
var/id = "" var/id = ""
var/obj/machinery/turretcover/cover = null var/obj/machinery/turretcover/cover = null
@@ -211,6 +213,10 @@
A = new /obj/item/projectile/beam/pulse( loc ) A = new /obj/item/projectile/beam/pulse( loc )
if(4) if(4)
A = new /obj/item/projectile/change( loc ) 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 A.original = target.loc
use_power(500) use_power(500)
else else

View File

@@ -15,17 +15,40 @@
internal_damage_threshold = 35 internal_damage_threshold = 35
max_equip = 3 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/dark/New()
/*
/obj/mecha/combat/gygax/New()
..() ..()
weapons += new /datum/mecha_weapon/taser(src) var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot
weapons += new /datum/mecha_weapon/laser(src) ME.attach(src)
weapons += new /datum/mecha_weapon/missile_rack/flashbang(src) ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang
selected_weapon = weapons[1] 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 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() /obj/mecha/combat/gygax/verb/overload()
set category = "Exosuit Interface" set category = "Exosuit Interface"

View File

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

View File

@@ -325,6 +325,9 @@
do_after_cooldown() do_after_cooldown()
return 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 /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/banana_mortar
name = "Banana Mortar" name = "Banana Mortar"

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@@ -31,11 +31,12 @@
/obj/effect/decal/mecha_wreckage/attackby(obj/item/weapon/W as obj, mob/user as mob) /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) if(salvage_num <= 0)
user << "You don't see anything that can be cut with [W]." user << "You don't see anything that can be cut with [W]."
return 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 var/type = prob(70)?pick(welder_salvage):null
if(type) if(type)
var/N = new type(get_turf(user)) var/N = new type(get_turf(user))
@@ -94,6 +95,9 @@
parts -= part parts -= part
return return
/obj/effect/decal/mecha_wreckage/gygax/dark
name = "Dark Gygax wreckage"
icon_state = "darkgygax-broken"
/obj/effect/decal/mecha_wreckage/marauder /obj/effect/decal/mecha_wreckage/marauder
name = "Marauder wreckage" name = "Marauder wreckage"

View File

@@ -2,22 +2,24 @@ obj/structure/door_assembly
icon = 'door_assembly.dmi' icon = 'door_assembly.dmi'
name = "Airlock Assembly" name = "Airlock Assembly"
icon_state = "door_as0" icon_state = "door_as_0"
anchored = 0 anchored = 0
density = 1 density = 1
var/state = 0 var/state = 0
var/glass = 0 var/mineral = null
var/base_icon_state var/base_icon_state = "door_as_0"
var/glass_base_icon_state = "door_as_g0"
var/obj/item/weapon/airlock_electronics/electronics = null var/obj/item/weapon/airlock_electronics/electronics = null
var/airlock_type = /obj/machinery/door/airlock //the type path of the airlock once completed 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_type = /obj/machinery/door/airlock/glass
var/glass_base_icon_state = "door_as_g" var/glass = null
New() New()
base_icon_state = copytext(icon_state,1,lentext(icon_state)) base_icon_state = copytext(icon_state,1,lentext(icon_state))
door_assembly_0 door_assembly_0
name = "Airlock Assembly" name = "Airlock Assembly"
icon_state = "door_as1" icon_state = "door_as_1"
airlock_type = /obj/machinery/door/airlock airlock_type = /obj/machinery/door/airlock
anchored = 1 anchored = 1
density = 1 density = 1
@@ -117,22 +119,18 @@ obj/structure/door_assembly
door_assembly_med door_assembly_med
name = "Medical Airlock Assembly" name = "Medical Airlock Assembly"
icon_state = "door_as_med1" 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 airlock_type = /obj/machinery/door/airlock/medical
anchored = 1 anchored = 1
density = 1 density = 1
state = 1 state = 1
glass = 0
glass glass
glass = 1 mineral = "glass"
icon_state = "door_as_gmed1" icon_state = "door_as_gmed1"
door_assembly_mai door_assembly_mai
name = "Maintenance Airlock Assembly" name = "Maintenance Airlock Assembly"
icon_state = "door_as_mai1" icon_state = "door_as_mai1"
glass_type = null
airlock_type = /obj/machinery/door/airlock/maintenance airlock_type = /obj/machinery/door/airlock/maintenance
anchored = 1 anchored = 1
density = 1 density = 1
@@ -142,7 +140,6 @@ obj/structure/door_assembly
door_assembly_ext door_assembly_ext
name = "External Airlock Assembly" name = "External Airlock Assembly"
icon_state = "door_as_ext1" icon_state = "door_as_ext1"
glass_type = null
airlock_type = /obj/machinery/door/airlock/external airlock_type = /obj/machinery/door/airlock/external
anchored = 1 anchored = 1
density = 1 density = 1
@@ -152,7 +149,6 @@ obj/structure/door_assembly
door_assembly_fre door_assembly_fre
name = "Freezer Airlock Assembly" name = "Freezer Airlock Assembly"
icon_state = "door_as_fre1" icon_state = "door_as_fre1"
glass_type = null
airlock_type = /obj/machinery/door/airlock/freezer airlock_type = /obj/machinery/door/airlock/freezer
anchored = 1 anchored = 1
density = 1 density = 1
@@ -162,21 +158,84 @@ obj/structure/door_assembly
door_assembly_mhatch door_assembly_mhatch
name = "Airtight Maintenance Hatch Assembly" name = "Airtight Maintenance Hatch Assembly"
icon_state = "door_as_mhatch1" icon_state = "door_as_mhatch1"
glass_type = null
airlock_type = /obj/machinery/door/airlock/maintenance_hatch airlock_type = /obj/machinery/door/airlock/maintenance_hatch
anchored = 1 anchored = 1
density = 1 density = 1
state = 1 state = 1
glass = 0 glass = 0
door_assembly_g door_assembly_glass
name = "Glass Airlock Assembly" name = "Glass Airlock Assembly"
icon_state = "door_as_g1" icon_state = "door_as_g1"
airlock_type = /obj/machinery/door/airlock/glass airlock_type = /obj/machinery/door/airlock/glass
anchored = 1 anchored = 1
density = 1 density = 1
state = 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) /obj/structure/door_assembly/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/weldingtool) && !anchored ) if(istype(W, /obj/item/weapon/weldingtool) && !anchored )
@@ -189,8 +248,30 @@ obj/structure/door_assembly
if(!src || !WT.isOn()) return if(!src || !WT.isOn()) return
user << "\blue You dissasembled the airlock assembly!" user << "\blue You dissasembled the airlock assembly!"
new /obj/item/stack/sheet/metal(get_turf(src), 4) new /obj/item/stack/sheet/metal(get_turf(src), 4)
if(src.glass==1) switch(mineral)
new /obj/item/stack/sheet/rglass(get_turf(src)) 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) del(src)
else else
user << "\blue You need more welding fuel to dissassemble the airlock assembly." user << "\blue You need more welding fuel to dissassemble the airlock assembly."
@@ -284,19 +365,100 @@ obj/structure/door_assembly
ae = electronics ae = electronics
electronics = null electronics = null
ae.loc = src.loc 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 ) else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 )
playsound(src.loc, 'Screwdriver.ogg', 100, 1) playsound(src.loc, 'Screwdriver.ogg', 100, 1)
user << "\blue Now finishing the airlock." user << "\blue Now finishing the airlock."
@@ -305,10 +467,33 @@ obj/structure/door_assembly
if(!src) return if(!src) return
user << "\blue You finish the airlock!" user << "\blue You finish the airlock!"
var/obj/machinery/door/airlock/door var/obj/machinery/door/airlock/door
if(glass) switch(mineral)
door = new src.glass_type( src.loc ) if("glass")
else airlock_type = /obj/machinery/door/airlock/glass
door = new src.airlock_type( src.loc ) 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.req_access = src.req_access
door.electronics = src.electronics door.electronics = src.electronics
door.req_access = src.electronics.conf_access door.req_access = src.electronics.conf_access
@@ -316,10 +501,7 @@ obj/structure/door_assembly
del(src) del(src)
else else
..() ..()
if(glass) icon_state = "[base_icon_state][state]"
icon_state = "[glass_base_icon_state][state]"
else
icon_state = "[base_icon_state][state]"
//This updates the icon_state. They are named as "door_as1_eng" where the 1 in that example //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 //represents what state it's in. So the most generic algorithm for the correct updating of
//this is simply to change the number. //this is simply to change the number.

View File

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

View File

@@ -21,7 +21,8 @@
/obj/item/weapon/dnainjector/proc/inject(mob/M as mob) /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 (!(NOCLONE in M.mutations)) // prevents drained people from having their DNA changed
if (dnatype == "ui") if (dnatype == "ui")

View File

@@ -8,9 +8,9 @@
opacity = 1 opacity = 1
icon = 'mineral_doors.dmi' icon = 'mineral_doors.dmi'
icon_state = "iron" icon_state = "metal"
var/mineralType = "iron" var/mineralType = "metal"
var/state = 0 //closed, 1 == open var/state = 0 //closed, 1 == open
var/isSwitchingStates = 0 var/isSwitchingStates = 0
var/hardness = 1 var/hardness = 1
@@ -116,9 +116,13 @@
proc/Dismantle(devastated = 0) proc/Dismantle(devastated = 0)
if(!devastated) 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++) for(var/i = 1, i <= oreAmount, i++)
new ore(get_turf(src)) 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) del(src)
ex_act(severity = 1) ex_act(severity = 1)
@@ -154,7 +158,7 @@
return 1 return 1
/obj/structure/mineral_door/iron /obj/structure/mineral_door/iron
mineralType = "iron" mineralType = "metal"
hardness = 3 hardness = 3
/obj/structure/mineral_door/silver /obj/structure/mineral_door/silver
@@ -205,7 +209,7 @@
var/toxinsToDeduce = temperature/10 var/toxinsToDeduce = temperature/10
napalm.toxins = toxinsToDeduce napalm.toxins = toxinsToDeduce
napalm.temperature = 400+T0C napalm.temperature = 200+T0C
napalm.update_values() napalm.update_values()
target_tile.assume_air(napalm) target_tile.assume_air(napalm)
@@ -277,4 +281,4 @@
isSwitchingStates = 0 isSwitchingStates = 0
Dismantle(devastated = 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)) new /obj/item/stack/sheet/metal(get_turf(src))
del(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) W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage." user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall (src.loc) new /obj/structure/falsewall (src.loc)
add_hiddenprint(usr) add_hiddenprint(usr)
del(src) del(src)
else if(istype(W, /obj/item/stack/sheet/plasteel) && istype(src,/obj/structure/girder/displaced)) else if(istype(W, /obj/item/stack/sheet/plasteel) && istype(src,/obj/structure/girder/displaced))
W:use(2) W:use(2)
user << "\blue You create a false r wall! Push on it to open or close the passage." user << "\blue You create a false r wall! Push on it to open or close the passage."
new /obj/structure/falserwall (src.loc) new /obj/structure/falserwall (src.loc)
add_hiddenprint(usr) add_hiddenprint(usr)
del(src) del(src)*/
else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 && istype(src,/obj/structure/girder/reinforced)) else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 && istype(src,/obj/structure/girder/reinforced))
playsound(src.loc, 'Screwdriver.ogg', 100, 1) playsound(src.loc, 'Screwdriver.ogg', 100, 1)
@@ -95,49 +141,145 @@ obj/structure/meteorhit(obj/O as obj)
new/obj/structure/girder( src.loc ) new/obj/structure/girder( src.loc )
del(src) del(src)
else if((istype(W, /obj/item/stack/sheet/metal)) && (W:amount >= 2)) else if((istype(W, /obj/item/stack/sheet)) && (W:amount >= 2))
user << "\blue Now adding plating..." switch(W.type)
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/plasteel)) if(/obj/item/stack/sheet/metal)
if (src.icon_state == "reinforced") //Time to finalize! user << "\blue Now adding plating..."
user << "\blue Now finalising reinforced wall." if (do_after(user,40))
if(do_after(user, 50)) user << "\blue You added the plating!"
if(!W) 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 return
user << "\blue Wall fully reinforced!"
var/turf/Tsrc = get_turf(src) if (/obj/item/stack/sheet/plasteel)
Tsrc.ReplaceWithRWall() if (src.icon_state == "reinforced") //Time to finalize!
for(var/obj/machinery/atmospherics/pipe/P in Tsrc) user << "\blue Now finalising reinforced wall."
P.layer = 1 if(do_after(user, 50))
for(var/turf/simulated/wall/r_wall/X in Tsrc.loc) user << "\blue Wall fully reinforced!"
if(X) X.add_hiddenprint(usr) var/turf/Tsrc = get_turf(src)
if (W) Tsrc.ReplaceWithRWall()
W:use(1) for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
del(src) P.layer = 1
return for(var/turf/simulated/wall/r_wall/X in Tsrc.loc)
else if(X) X.add_hiddenprint(usr)
user << "\blue Now reinforcing girders" if (W)
if (do_after(user,60)) W:use(1)
if(!W) 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 return
user << "\blue Girders reinforced!"
W:use(1) if(/obj/item/stack/sheet/silver)
new/obj/structure/girder/reinforced( src.loc ) user << "\blue Now adding plating..."
del(src) if (do_after(user,40))
return 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)) else if(istype(W, /obj/item/pipe))
var/obj/item/pipe/P = W var/obj/item/pipe/P = W
if (P.pipe_type in list(0, 1, 5)) //simple pipes, simple bends, and simple manifolds. 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) del(src)
return 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 // 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 // eventually maybe have it update icon to show state (timer, prox etc.) like old bombs
/obj/item/device/transfer_valve/proc/c_state() /obj/item/device/transfer_valve/proc/c_state()
return return
/obj/structure/falsewall
attack_hand(mob/user as mob)
if(density)
// Open wall
icon_state = "fwall_open"
flick("fwall_opening", src)
sleep(15)
src.density = 0
src.sd_SetOpacity(0)
var/turf/T = src.loc
T.sd_LumReset()
else
icon_state = "wall"
flick("fwall_closing", src)
sleep(15)
src.density = 1
src.sd_SetOpacity(1)
var/turf/T = src.loc
//T.sd_LumUpdate()
src.relativewall()
T.sd_LumReset()
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/screwdriver))
var/turf/T = get_turf(src)
user.visible_message("[user] tightens some bolts on the wall.", "You tighten the bolts on the wall.")
T.ReplaceWithWall()
del(src)
//
/*
var/turf/T = get_turf(user)
user << "\blue Now adding plating..."
sleep(40)
if (get_turf(user) == T)
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithWall()
*/
/obj/structure/falserwall/
attack_hand(mob/user as mob)
if(density)
// Open wall
icon_state = "frwall_open"
flick("frwall_opening", src)
sleep(15)
src.density = 0
src.sd_SetOpacity(0)
var/turf/T = src.loc
T.sd_LumReset()
else
icon_state = "r_wall"
flick("frwall_closing", src)
sleep(15)
src.density = 1
src.sd_SetOpacity(1)
var/turf/T = src.loc
//T.sd_LumUpdate()
src.relativewall()
T.sd_LumReset()
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/screwdriver))
var/turf/T = get_turf(src)
user.visible_message("[user] tightens some bolts on the r wall.", "You tighten the bolts on the r wall.")
T.ReplaceWithWall() //Intentionally makes a regular wall instead of an r-wall (no cheap r-walls for you).
del(src)

View File

@@ -41,7 +41,8 @@
else if (istype(src,/obj/structure/falserwall)) else if (istype(src,/obj/structure/falserwall))
src.icon_state = "rwall[junction]" src.icon_state = "rwall[junction]"
else if (istype(src,/obj/structure/falsewall)) 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)) /* else if(istype(src,/turf/simulated/shuttle/wall))
var/newicon = icon; var/newicon = icon;
var/newiconstate = icon_state; var/newiconstate = icon_state;
@@ -151,3 +152,64 @@
W.relativewall() 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/old_dir = dir
var/turf/space/S = new /turf/space( locate(src.x, src.y, src.z) ) var/turf/space/S = new /turf/space( locate(src.x, src.y, src.z) )
S.dir = old_dir S.dir = old_dir
S.sd_LumReset()
new /obj/structure/lattice( locate(src.x, src.y, src.z) ) new /obj/structure/lattice( locate(src.x, src.y, src.z) )
air_master.tiles_to_update |= S air_master.tiles_to_update |= S
@@ -328,6 +329,7 @@
S.icon_old = old_icon S.icon_old = old_icon
S.opacity = 0 S.opacity = 0
S.sd_NewOpacity(1) S.sd_NewOpacity(1)
S.sd_LumReset()
levelupdate() levelupdate()
air_master.tiles_to_update |= S air_master.tiles_to_update |= S
@@ -350,6 +352,30 @@
S.icon_old = old_icon S.icon_old = old_icon
S.opacity = 0 S.opacity = 0
S.sd_NewOpacity(1) 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() levelupdate()
air_master.tiles_to_update |= S air_master.tiles_to_update |= S
@@ -389,13 +415,82 @@
else else
if(!devastated) if(!devastated)
playsound(src.loc, 'Welder.ogg', 100, 1) playsound(src.loc, 'Welder.ogg', 100, 1)
new /obj/structure/girder(src) switch(mineral)
new /obj/item/stack/sheet/metal( src ) if("metal")
new /obj/item/stack/sheet/metal( src ) 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 else
new /obj/item/stack/sheet/metal( src ) switch(mineral)
new /obj/item/stack/sheet/metal( src ) if("metal")
new /obj/item/stack/sheet/metal( src ) 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! for(var/obj/O in src.contents) //Eject contents!
if(istype(O,/obj/effect/decal/poster)) if(istype(O,/obj/effect/decal/poster))
@@ -540,6 +635,8 @@
playsound(src.loc, 'Welder.ogg', 100, 1) playsound(src.loc, 'Welder.ogg', 100, 1)
sleep(60) sleep(60)
if(mineral == "diamond")//Oh look, it's tougher
sleep(60)
if( !istype(src, /turf/simulated/wall) || !user || !W || !T ) return if( !istype(src, /turf/simulated/wall) || !user || !W || !T ) return
if( user.loc == T && user.equipped() == W ) if( user.loc == T && user.equipped() == W )
@@ -555,6 +652,8 @@
user << "<span class='notice'>You begin to drill though the wall.</span>" user << "<span class='notice'>You begin to drill though the wall.</span>"
sleep(60) sleep(60)
if(mineral == "diamond")
sleep(60)
if( !istype(src, /turf/simulated/wall) || !user || !W || !T ) return if( !istype(src, /turf/simulated/wall) || !user || !W || !T ) return
if( user.loc == T && user.equipped() == W ) if( user.loc == T && user.equipped() == W )
@@ -572,6 +671,8 @@
playsound(src.loc, "sparks", 50, 1) playsound(src.loc, "sparks", 50, 1)
sleep(70) sleep(70)
if(mineral == "diamond")
sleep(70)
if( !istype(src, /turf/simulated/wall) || !user || !EB || !T ) return if( !istype(src, /turf/simulated/wall) || !user || !EB || !T ) return
if( user.loc == T && user.equipped() == W ) if( user.loc == T && user.equipped() == W )
@@ -834,7 +935,72 @@
return attack_hand(user) return attack_hand(user)
return 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) /turf/simulated/wall/proc/thermitemelt(mob/user as mob)
if(mineral == "diamond")
return
var/obj/effect/overlay/O = new/obj/effect/overlay( src ) var/obj/effect/overlay/O = new/obj/effect/overlay( src )
O.name = "Thermite" O.name = "Thermite"
O.desc = "Looks hot." O.desc = "Looks hot."
@@ -997,9 +1163,13 @@ var/list/plating_icons = list("plating","platingdmg1","platingdmg2","platingdmg3
..() ..()
name = "plating" name = "plating"
/turf/simulated/floor/grid /turf/simulated/floor/bluegrid
icon = 'floors.dmi' icon = 'floors.dmi'
icon_state = "circuit" icon_state = "bcircuit"
/turf/simulated/floor/greengrid
icon = 'floors.dmi'
icon_state = "gcircuit"
/turf/simulated/floor/New() /turf/simulated/floor/New()
..() ..()

View File

@@ -9,6 +9,7 @@
icon = 'chemical.dmi' icon = 'chemical.dmi'
icon_state = "dispenser" icon_state = "dispenser"
use_power = 1 use_power = 1
idle_power_usage = 40
var/energy = 25 var/energy = 25
var/max_energy = 75 var/max_energy = 75
var/amount = 30 var/amount = 30
@@ -168,6 +169,8 @@
anchored = 1 anchored = 1
icon = 'chemical.dmi' icon = 'chemical.dmi'
icon_state = "mixer0" icon_state = "mixer0"
use_power = 1
idle_power_usage = 20
var/beaker = null var/beaker = null
var/mode = 0 var/mode = 0
var/condi = 0 var/condi = 0

View File

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

View File

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

View File

@@ -165,7 +165,7 @@
color="yellow" color="yellow"
New() 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) heat_transfer_coefficient = pick(0.01,0.1,0.25,0.25,0.5)
/obj/item/clothing/gloves/captain /obj/item/clothing/gloves/captain

View File

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

View File

@@ -51,7 +51,7 @@
if(PARALYZE) if(PARALYZE)
Paralyse(effect/(blocked+1)) Paralyse(effect/(blocked+1))
if(IRRADIATE) 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(STUTTER)
if(canstun) // stun is usually associated with stutter if(canstun) // stun is usually associated with stutter
stuttering = max(stuttering,(effect/(blocked+1))) 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() rebuild_appearance()
@@ -19,4 +19,43 @@
A.connected_robots += src A.connected_robots += src
break 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 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) /mob/living/silicon/robot/New(loc,var/syndie = 0)
spark_system = new /datum/effect/effect/system/spark_spread() spark_system = new /datum/effect/effect/system/spark_spread()
@@ -51,6 +53,7 @@
cell = C cell = C
if(src.mind) if(src.mind)
ticker.mode.remove_revolutionary(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 //If there's an MMI in the robot, have it ejected when the mob goes away. --NEO
@@ -551,6 +554,9 @@
sleep(20) sleep(20)
src << "\red ERRORERRORERROR" src << "\red ERRORERRORERROR"
src << "\red \b ALERT: [user.real_name] is your new master. Obey your new laws and their commands." 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() updateicon()
else else
user << "You fail to [ locked ? "unlock" : "lock"] [src]'s interface." user << "You fail to [ locked ? "unlock" : "lock"] [src]'s interface."

View File

@@ -488,6 +488,15 @@
g_amt = 100 g_amt = 100
brightness = 5 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 // update the icon state and description of the light
/obj/item/weapon/light /obj/item/weapon/light
proc/update() proc/update()

View File

@@ -20,10 +20,12 @@
weak weak
movement_range = 8 movement_range = 8
energy = 5 energy = 5
strong strong
movement_range = 15 movement_range = 15
energy = 15 energy = 15
New(loc, dir = 2) New(loc, dir = 2)
src.loc = loc src.loc = loc
source = usr source = usr
@@ -32,6 +34,7 @@
move(1) move(1)
return return
Bump(atom/A) Bump(atom/A)
if (A) if (A)
if(ismob(A)) if(ismob(A))
@@ -55,34 +58,37 @@
del (src) del (src)
return return
Bumped(atom/A) Bumped(atom/A)
if(ismob(A)) if(ismob(A))
Bump(A) Bump(A)
return return
ex_act(severity) ex_act(severity)
del(src) del(src)
return return
proc proc
toxmob(var/mob/living/M) toxmob(var/mob/living/M)
var/radiation = (energy*2) 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 if(M:wear_suit) //TODO: check for radiation protection
radiation = round(radiation/2,1) radiation = round(radiation/2,1)
if(istype(M,/mob/living/carbon/monkey)) if(istype(M,/mob/living/carbon/monkey))
if(M:wear_suit) //TODO: check for radiation protection if(M:wear_suit) //TODO: check for radiation protection
radiation = round(radiation/2,1) radiation = round(radiation/2,1)*/
if(ionizing) if(ionizing)
//give them standard rad damage M.apply_effects((radiation*3),IRRADIATE,0)
M.radiation += radiation
M.updatehealth() M.updatehealth()
else else
//burn them M.apply_effects((radiation*2),IRRADIATE,0)
M.take_overall_damage(0, radiation) M.updatehealth()
//M << "\red You feel odd." //M << "\red You feel odd."
return return
move(var/lag) move(var/lag)
if(target) if(target)
if(movetotarget) 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 /*Composed of 7 parts
3 Particle emitters 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 src.anchored = 1
user.visible_message("[user.name] secures the [src.name] to the floor.", \ user.visible_message("[user.name] secures the [src.name] to the floor.", \
"You secure the external bolts.") "You secure the external bolts.")
// icon_state = "[reference]"
temp_state++ temp_state++
if(1) if(1)
if(iswrench(O)) 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 src.anchored = 0
user.visible_message("[user.name] detaches the [src.name] from the floor.", \ user.visible_message("[user.name] detaches the [src.name] from the floor.", \
"You remove the external bolts.") "You remove the external bolts.")
// icon_state = "[reference]"
temp_state-- temp_state--
else if(iscoil(O)) else if(iscoil(O))
if(O:use(1,user)) if(O:use(1,user))
user.visible_message("[user.name] adds wires to the [src.name].", \ user.visible_message("[user.name] adds wires to the [src.name].", \
"You add some wires.") "You add some wires.")
// icon_state = "[reference]w"
temp_state++ temp_state++
if(2) if(2)
if(iswirecutter(O))//TODO:Shock user if its on? if(iswirecutter(O))//TODO:Shock user if its on?
user.visible_message("[user.name] removes some wires from the [src.name].", \ user.visible_message("[user.name] removes some wires from the [src.name].", \
"You remove some wires.") "You remove some wires.")
// icon_state = "[reference]"
temp_state-- temp_state--
else if(isscrewdriver(O)) else if(isscrewdriver(O))
user.visible_message("[user.name] closes the [src.name]'s access panel.", \ user.visible_message("[user.name] closes the [src.name]'s access panel.", \
"You close the access panel.") "You close the access panel.")
// icon_state = "[reference]c"
temp_state++ temp_state++
if(3) if(3)
if(isscrewdriver(O)) if(isscrewdriver(O))
user.visible_message("[user.name] opens the [src.name]'s access panel.", \ user.visible_message("[user.name] opens the [src.name]'s access panel.", \
"You open the access panel.") "You open the access panel.")
// icon_state = "[reference]w"
temp_state-- temp_state--
if(temp_state == src.construction_state)//Nothing changed if(temp_state == src.construction_state)//Nothing changed
return 0 return 0
@@ -398,7 +392,6 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
src.anchored = 1 src.anchored = 1
user.visible_message("[user.name] secures the [src.name] to the floor.", \ user.visible_message("[user.name] secures the [src.name] to the floor.", \
"You secure the external bolts.") "You secure the external bolts.")
//icon_state = "[reference]"
temp_state++ temp_state++
if(1) if(1)
if(iswrench(O)) 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 src.anchored = 0
user.visible_message("[user.name] detaches the [src.name] from the floor.", \ user.visible_message("[user.name] detaches the [src.name] from the floor.", \
"You remove the external bolts.") "You remove the external bolts.")
//icon_state = "[reference]"
temp_state-- temp_state--
else if(iscoil(O)) else if(iscoil(O))
if(O:use(1)) if(O:use(1))
user.visible_message("[user.name] adds wires to the [src.name].", \ user.visible_message("[user.name] adds wires to the [src.name].", \
"You add some wires.") "You add some wires.")
//icon_state = "[reference]w"
temp_state++ temp_state++
if(2) if(2)
if(iswirecutter(O))//TODO:Shock user if its on? if(iswirecutter(O))//TODO:Shock user if its on?
user.visible_message("[user.name] removes some wires from the [src.name].", \ user.visible_message("[user.name] removes some wires from the [src.name].", \
"You remove some wires.") "You remove some wires.")
//icon_state = "[reference]"
temp_state-- temp_state--
else if(isscrewdriver(O)) else if(isscrewdriver(O))
user.visible_message("[user.name] closes the [src.name]'s access panel.", \ user.visible_message("[user.name] closes the [src.name]'s access panel.", \
"You close the access panel.") "You close the access panel.")
//icon_state = "[reference]c"
temp_state++ temp_state++
if(3) if(3)
if(isscrewdriver(O)) if(isscrewdriver(O))
user.visible_message("[user.name] opens the [src.name]'s access panel.", \ user.visible_message("[user.name] opens the [src.name]'s access panel.", \
"You open the access panel.") "You open the access panel.")
//icon_state = "[reference]w"
temp_state-- temp_state--
active = 0
if(temp_state == src.construction_state)//Nothing changed if(temp_state == src.construction_state)//Nothing changed
return 0 return 0
else 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 /obj/machinery/particle_accelerator/control_box
name = "Particle Accelerator Control Computer" name = "Particle Accelerator Control Computer"
@@ -13,11 +13,11 @@
active_power_usage = 10000 active_power_usage = 10000
construction_state = 0 construction_state = 0
active = 0 active = 0
dir = 1
var/list/obj/structure/particle_accelerator/connected_parts var/list/obj/structure/particle_accelerator/connected_parts
var/assembled = 0 var/assembled = 0
var/parts = null var/parts = null
New() New()
connected_parts = list() connected_parts = list()
..() ..()
@@ -27,7 +27,6 @@
if(construction_state >= 3) if(construction_state >= 3)
interact(user) interact(user)
update_state() update_state()
if(construction_state < 3) if(construction_state < 3)
use_power = 0 use_power = 0
@@ -47,7 +46,10 @@
icon_state = "[reference]p1" icon_state = "[reference]p1"
else else
if(use_power) if(use_power)
icon_state = "[reference]p" if(assembled)
icon_state = "[reference]p"
else
icon_state = "u[reference]p"
else else
switch(construction_state) switch(construction_state)
if(0) if(0)
@@ -137,6 +139,8 @@
proc proc
part_scan() part_scan()
for(var/obj/structure/particle_accelerator/fuel_chamber/F in orange(1,src))
src.dir = F.dir
connected_parts = list() connected_parts = list()
var/tally = 0 var/tally = 0
var/ldir = turn(dir,-90) 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( var/global/list/uneatable = list(
/turf/space, /turf/space,
@@ -411,15 +411,17 @@ var/global/list/uneatable = list(
toxmob() toxmob()
var/toxrange = 10 var/toxrange = 10
var/toxdamage = 4 var/toxdamage = 4
var/radiation = 5 var/radiation = 15
var/radiationmin = 3
if (src.energy>200) if (src.energy>200)
toxdamage = round(((src.energy-150)/50)*4,1) toxdamage = round(((src.energy-150)/50)*4,1)
radiation = round(((src.energy-150)/50)*5,1) radiation = round(((src.energy-150)/50)*5,1)
radiationmin = round((radiation/5),1)//
for(var/mob/living/M in view(toxrange, src.loc)) for(var/mob/living/M in view(toxrange, src.loc))
if(istype(M,/mob/living/)) if(istype(M,/mob/living/))
M.apply_effect(rand(radiation), IRRADIATE) M.apply_effect(rand(radiationmin,radiation), IRRADIATE)
var/tdamage = (toxdamage - (toxdamage*M.getarmor(null, "rad"))) toxdamage = (toxdamage - (toxdamage*M.getarmor(null, "rad")))
M.apply_effect(tdamage, TOX) M.apply_effect(toxdamage, TOX)
return 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 /obj/item/weapon/gun/energy/gun
icon_state = "energystun100" icon_state = "energystun100"
item_state = "energystun100" item_state = "energystun100"
@@ -78,14 +76,14 @@
M << "\red Your gun feels pleasantly warm for a moment." M << "\red Your gun feels pleasantly warm for a moment."
else else
M << "\red You feel a warm sensation." M << "\red You feel a warm sensation."
M.apply_effect(rand(1,40), IRRADIATE) M.apply_effect(rand(3,120), IRRADIATE)
lightfail = 1 lightfail = 1
else else
for (var/mob/living/M in range(rand(1,4),src)) //Big failure, TIME FOR RADIATION BITCHES for (var/mob/living/M in range(rand(1,4),src)) //Big failure, TIME FOR RADIATION BITCHES
if (src in M.contents) if (src in M.contents)
M << "\red Your gun's reactor overloads!" M << "\red Your gun's reactor overloads!"
M << "\red You feel a wave of heat wash over you." 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 crit_fail = 1 //break the gun so it stops recharging
processing_objects.Remove(src) processing_objects.Remove(src)
update_icon() update_icon()

View File

@@ -49,10 +49,11 @@
on_hit(var/atom/target, var/blocked = 0) on_hit(var/atom/target, var/blocked = 0)
var/mob/M = target 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)) if(prob(15))
M.radiation += rand(10,30) L.apply_effect((rand(30,80)),IRRADIATE)
M.Weaken(5) L.Weaken(5)
for (var/mob/V in viewers(src)) 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) V.show_message("\red [M] writhes in pain as \his vacuoles boil.", 3, "\red You hear the crunching of leaves.", 2)
if(prob(35)) 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)//////////////////////// /*///////////////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 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 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) if(g_amount >= 3750)
var/obj/item/stack/sheet/glass/G = new /obj/item/stack/sheet/glass(src.loc) var/obj/item/stack/sheet/glass/G = new /obj/item/stack/sheet/glass(src.loc)
G.amount = round(g_amount / 3750) 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) del(src)
return 1 return 1
else else
@@ -101,20 +105,18 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
if (busy) if (busy)
user << "\red The [name] is busy. Please wait for completion of previous operation." user << "\red The [name] is busy. Please wait for completion of previous operation."
return 1 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." user << "\red The [name] is full. Please remove glass from the protolathe in order to insert more."
return 1 return 1
var/obj/item/stack/stack = O var/amount = round(input("How many sheets do you want to add?") as num)
var/amount = 1 if(amount < 0)
var/title = "[stack.name]: [stack.amount] sheet\s left" amount = 0
switch(alert(title, "How many sheets do you want to load?", "one", "max", "cancel", null)) if(amount == 0)
if("one") return
amount = 1 if(amount > stack.amount)
if("max") amount = min(stack.amount, round((max_material_amount-TotalMaterials())/stack.perunit))
amount = min(stack.amount, round((max_material_amount-TotalMaterials())/3750))
else
return 1
busy = 1 busy = 1
use_power(max(1000, (3750*amount/10))) 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)) if(istype(stack, /obj/item/stack/sheet/glass))
g_amount += amount * 3750 g_amount += amount * 3750
else if(istype(stack, /obj/item/stack/sheet/gold)) 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)) else if(istype(stack, /obj/item/stack/sheet/diamond))
diamond_amount += amount * 3750 diamond_amount += amount * 2000
stack.use(amount) stack.use(amount)
busy = 0 busy = 0
src.updateUsrDialog() src.updateUsrDialog()

View File

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

View File

@@ -1,5 +1,3 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:06
/* /*
Protolathe Protolathe
@@ -13,6 +11,7 @@ Note: Must be placed west/left of and R&D console to function.
name = "Protolathe" name = "Protolathe"
icon_state = "protolathe" icon_state = "protolathe"
flags = OPENCONTAINER flags = OPENCONTAINER
var/max_material_storage = 100000 //All this could probably be done better with a list but meh. var/max_material_storage = 100000 //All this could probably be done better with a list but meh.
var/m_amount = 0.0 var/m_amount = 0.0
var/g_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 I.loc = src.loc
if(m_amount >= 3750) if(m_amount >= 3750)
var/obj/item/stack/sheet/metal/G = new /obj/item/stack/sheet/metal(src.loc) 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) if(g_amount >= 3750)
var/obj/item/stack/sheet/glass/G = new /obj/item/stack/sheet/glass(src.loc) var/obj/item/stack/sheet/glass/G = new /obj/item/stack/sheet/glass(src.loc)
G.amount = round(g_amount / 3750) G.amount = round(g_amount / G.perunit)
if(plasma_amount >= 3750) if(plasma_amount >= 2000)
var/obj/item/stack/sheet/plasma/G = new /obj/item/stack/sheet/plasma(src.loc) var/obj/item/stack/sheet/plasma/G = new /obj/item/stack/sheet/plasma(src.loc)
G.amount = round(plasma_amount / 3750) G.amount = round(plasma_amount / G.perunit)
if(silver_amount >= 3750) if(silver_amount >= 2000)
var/obj/item/stack/sheet/silver/G = new /obj/item/stack/sheet/silver(src.loc) var/obj/item/stack/sheet/silver/G = new /obj/item/stack/sheet/silver(src.loc)
G.amount = round(silver_amount / 3750) G.amount = round(silver_amount / G.perunit)
if(gold_amount >= 3750) if(gold_amount >= 2000)
var/obj/item/stack/sheet/gold/G = new /obj/item/stack/sheet/gold(src.loc) var/obj/item/stack/sheet/gold/G = new /obj/item/stack/sheet/gold(src.loc)
G.amount = round(gold_amount / 3750) G.amount = round(gold_amount / G.perunit)
if(uranium_amount >= 3750) if(uranium_amount >= 2000)
var/obj/item/stack/sheet/uranium/G = new /obj/item/stack/sheet/uranium(src.loc) var/obj/item/stack/sheet/uranium/G = new /obj/item/stack/sheet/uranium(src.loc)
G.amount = round(uranium_amount / 3750) G.amount = round(uranium_amount / G.perunit)
if(diamond_amount >= 3750) if(diamond_amount >= 2000)
var/obj/item/stack/sheet/diamond/G = new /obj/item/stack/sheet/diamond(src.loc) var/obj/item/stack/sheet/diamond/G = new /obj/item/stack/sheet/diamond(src.loc)
G.amount = round(diamond_amount / 3750) G.amount = round(diamond_amount / G.perunit)
if(clown_amount >= 3750) if(clown_amount >= 2000)
var/obj/item/stack/sheet/clown/G = new /obj/item/stack/sheet/clown(src.loc) var/obj/item/stack/sheet/clown/G = new /obj/item/stack/sheet/clown(src.loc)
G.amount = round(clown_amount / 3750) G.amount = round(clown_amount / G.perunit)
if(adamantine_amount >= 3750) if(adamantine_amount >= 2000)
var/obj/item/stack/sheet/adamantine/G = new /obj/item/stack/sheet/adamantine(src.loc) 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) del(src)
return 1 return 1
else 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." user << "\red The protolathe's material bin is full. Please remove material before adding more."
return 1 return 1
var/obj/item/stack/stack = O var/obj/item/stack/sheet/stack = O
var/amount = 1 var/amount = round(input("How many sheets do you want to add?") as num)
var/title = "[stack.name]: [stack.amount] sheet\s left" if(amount < 0)
switch(alert(title, "How many sheets do you want to load?", "one", "max", "cancel", null)) amount = 0
if("one") if(amount == 0)
amount = 1 return
if("max") if(amount > stack.amount)
amount = min(stack.amount, round((max_material_storage-TotalMaterials())/3750)) amount = min(stack.amount, round((max_material_storage-TotalMaterials())/stack.perunit))
else
return 1
if(istype(O, /obj/item/stack/sheet/glass)) src.overlays += "protolathe_[stack.name]"
flick("protolathe_r",src)//plays glass insertion animation sleep(10)
else src.overlays -= "protolathe_[stack.name]"
flick("protolathe_o",src)//plays metal insertion animation
icon_state = "protolathe" icon_state = "protolathe"
busy = 1 busy = 1
@@ -153,25 +149,24 @@ Note: Must be placed west/left of and R&D console to function.
spawn(16) spawn(16)
user << "\blue You add [amount] sheets to the [src.name]." user << "\blue You add [amount] sheets to the [src.name]."
icon_state = "protolathe" icon_state = "protolathe"
flick("protolathe_o",src)
if(istype(stack, /obj/item/stack/sheet/metal)) if(istype(stack, /obj/item/stack/sheet/metal))
m_amount += amount * 3750 m_amount += amount * 3750
else if(istype(stack, /obj/item/stack/sheet/glass)) else if(istype(stack, /obj/item/stack/sheet/glass))
g_amount += amount * 3750 g_amount += amount * 3750
else if(istype(stack, /obj/item/stack/sheet/gold)) 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)) 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)) 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)) 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)) 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)) 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)) else if(istype(stack, /obj/item/stack/sheet/adamantine))
adamantine_amount += amount * 3750 adamantine_amount += amount * 2000
stack.use(amount) stack.use(amount)
busy = 0 busy = 0
src.updateUsrDialog() 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 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" return_name = "Uranium"
if("diamond") if("diamond")
return_name = "Diamond" return_name = "Diamond"
if("adamantine")
return_name = "adamantine"
if("clown") if("clown")
return_name = "Bananium" return_name = "Bananium"
else 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])) linked_lathe.uranium_amount = max(0, (linked_lathe.uranium_amount-being_built.materials[M]))
if("$diamond") if("$diamond")
linked_lathe.diamond_amount = max(0, (linked_lathe.diamond_amount-being_built.materials[M])) 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") if("$clown")
linked_lathe.clown_amount = max(0, (linked_lathe.clown_amount-being_built.materials[M])) linked_lathe.clown_amount = max(0, (linked_lathe.clown_amount-being_built.materials[M]))
else else
@@ -466,9 +462,6 @@ won't update every console in existence) but it's more of a hassle to do. Also,
if("diamond") if("diamond")
type = /obj/item/stack/sheet/diamond type = /obj/item/stack/sheet/diamond
res_amount = "diamond_amount" res_amount = "diamond_amount"
if("adamantine")
type = /obj/item/stack/sheet/adamantine
res_amount = "adamantine_amount"
if("clown") if("clown")
type = /obj/item/stack/sheet/clown type = /obj/item/stack/sheet/clown
res_amount = "clown_amount" 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(D.materials[M] > linked_lathe.uranium_amount) check_materials = 0
if("$diamond") if("$diamond")
if(D.materials[M] > linked_lathe.diamond_amount) check_materials = 0 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("$clown")
if(D.materials[M] > linked_lathe.clown_amount) check_materials = 0 if(D.materials[M] > linked_lathe.clown_amount) check_materials = 0
else if (!linked_lathe.reagents.has_reagent(M, D.materials[M])) 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 //Gold
dat += "* [linked_lathe.gold_amount] cm<sup>3</sup> of Gold || " dat += "* [linked_lathe.gold_amount] cm<sup>3</sup> of Gold || "
dat += "Eject: " 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 >= 2000) 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 >= 10000) 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=50'>(Max Sheets)</A>"
dat += "<BR>" dat += "<BR>"
//Silver //Silver
dat += "* [linked_lathe.silver_amount] cm<sup>3</sup> of Silver || " dat += "* [linked_lathe.silver_amount] cm<sup>3</sup> of Silver || "
dat += "Eject: " 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 >= 2000) 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 >= 10000) 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=50'>(Max Sheets)</A>"
dat += "<BR>" dat += "<BR>"
//Plasma //Plasma
dat += "* [linked_lathe.plasma_amount] cm<sup>3</sup> of Solid Plasma || " dat += "* [linked_lathe.plasma_amount] cm<sup>3</sup> of Solid Plasma || "
dat += "Eject: " 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 >= 2000) 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 >= 10000) 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=plasmalathe_ejectsheet_amt=50'>(Max Sheets)</A>"
dat += "<BR>" dat += "<BR>"
//Uranium //Uranium
dat += "* [linked_lathe.uranium_amount] cm<sup>3</sup> of Uranium || " dat += "* [linked_lathe.uranium_amount] cm<sup>3</sup> of Uranium || "
dat += "Eject: " 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 >= 2000) 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 >= 10000) 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=50'>(Max Sheets)</A>"
dat += "<BR>" dat += "<BR>"
//Diamond //Diamond
dat += "* [linked_lathe.diamond_amount] cm<sup>3</sup> of Diamond || " dat += "* [linked_lathe.diamond_amount] cm<sup>3</sup> of Diamond || "
dat += "Eject: " 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 >= 2000) 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 >= 10000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.diamond_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=50'>(Max Sheets)</A>" if(linked_lathe.diamond_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=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>"
dat += "<BR>" dat += "<BR>"
//Bananium //Bananium
dat += "* [linked_lathe.clown_amount] cm<sup>3</sup> of Bananium || " dat += "* [linked_lathe.clown_amount] cm<sup>3</sup> of Bananium || "
dat += "Eject: " 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 >= 2000) 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 >= 10000) 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=50'>(Max Sheets)</A>"
if(3.3) //Protolathe Chemical Storage Submenu if(3.3) //Protolathe Chemical Storage Submenu
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A> || " 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 //Gold
dat += "* [linked_imprinter.gold_amount] cm<sup>3</sup> of Gold || " dat += "* [linked_imprinter.gold_amount] cm<sup>3</sup> of Gold || "
dat += "Eject: " 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 >= 2000) 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 >= 10000) 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=50'>(Max Sheets)</A>"
dat += "<BR>" dat += "<BR>"
//Diamond //Diamond
dat += "* [linked_imprinter.diamond_amount] cm<sup>3</sup> of Diamond || " dat += "* [linked_imprinter.diamond_amount] cm<sup>3</sup> of Diamond || "
dat += "Eject: " 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 >= 2000) 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 >= 10000) 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=50'>(Max Sheets)</A>"
user << browse("<TITLE>Research and Development Console</TITLE><HR>[dat]", "window=rdconsole;size=575x400") user << browse("<TITLE>Research and Development Console</TITLE><HR>[dat]", "window=rdconsole;size=575x400")
onclose(user, "rdconsole") 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. //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 /obj/machinery/r_n_d
name = "R&D Device" name = "R&D Device"
icon = 'research.dmi'
density = 1 density = 1
anchored = 1 anchored = 1
use_power = 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 /obj/machinery/r_n_d/server
name = "R&D Server" name = "R&D Server"
icon = 'research.dmi'
icon_state = "server" icon_state = "server"
var/datum/research/files var/datum/research/files
var/health = 100 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) "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) "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) "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) "aWH" = (/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"aWI" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/turret{id = "aicore"},/turf/simulated/floor/grid,/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/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/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/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/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/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/bluegrid,/area/turret_protected/ai)
"aWM" = (/obj/machinery/turret{id = "aicore"},/turf/simulated/floor/grid,/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/grid,/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) "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) "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) "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) "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) "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) "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) "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/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/bluegrid,/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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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/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/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) "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) "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) "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/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/bluegrid,/area/turret_protected/ai)
"bau" = (/obj/machinery/vending/snack,/turf/simulated/floor,/area/crew_quarters/heads/hop) "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) "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) "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) "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) "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) "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) "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/grid,/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/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/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/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/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/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/bluegrid,/area/turret_protected/ai)
"bbG" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/grid,/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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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/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/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) "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) "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/grid,/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) "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) "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) "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) "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) "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) "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) "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/grid,/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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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/grid{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/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/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/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/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"}) "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"}) "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) "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) "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) "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) "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) "bPC" = (/turf/simulated/floor/bluegrid,/area/assembly/chargebay)
"bPD" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/grid,/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) "bPE" = (/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor,/area/assembly/chargebay)
"bPF" = (/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) "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) "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) "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) "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) "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"}) "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"}) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "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) "cFd" = (/turf/simulated/floor/bluegrid,/area/tdome)
"cFe" = (/obj/machinery/flasher{id = "flash"; name = "Thunderdome Flash"},/turf/simulated/floor/grid,/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) "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) "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/grid,/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) "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) "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) "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) "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) "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) "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) "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/grid{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/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/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/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/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/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/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/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/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/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/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/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/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/grid{icon_state = "dark"; name = "Mainframe Floor"; 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/grid{name = "Mainframe Base"; 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) "cMj" = (/turf/space,/area/turret_protected/tcomeast)
"cMk" = (/obj/machinery/light{dir = 4},/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) "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) "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) "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) "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) "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/grid{icon_state = "dark"; name = "Mainframe Floor"; 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/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/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/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/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/grid{name = "Mainframe Base"; 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) "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) "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) "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) "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) "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) "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) "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/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/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) "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) "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) "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) "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) "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) "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) "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/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/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) "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) "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) "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) "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) "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) "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) "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/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/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/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/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/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/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) "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) "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) "cOc" = (/obj/structure/window/reinforced,/turf/space,/area/turret_protected/tcomwest)