Merge pull request #3625 from Erthilo/dev

Megaphones, robot health analyzer, eye dropper delay, rigged cells explode in more scenarios
This commit is contained in:
Zuhayr
2013-09-01 04:53:08 -07:00
20 changed files with 172 additions and 44 deletions
+1
View File
@@ -491,6 +491,7 @@
#include "code\game\objects\items\devices\flash.dm"
#include "code\game\objects\items\devices\flashlight.dm"
#include "code\game\objects\items\devices\lightreplacer.dm"
#include "code\game\objects\items\devices\megaphone.dm"
#include "code\game\objects\items\devices\multitool.dm"
#include "code\game\objects\items\devices\paicard.dm"
#include "code\game\objects\items\devices\pipe_painter.dm"
+11 -11
View File
@@ -130,11 +130,11 @@ datum/mind
text = uppertext(text)
text = "<i><b>[text]</b></i>: "
if (assigned_role in command_positions)
text += "<b>HEAD</b>|officer|employee|headrev|rev"
else if (assigned_role in list("Security Officer", "Detective", "Warden"))
text += "head|<b>OFFICER</b>|employee|headre|rev"
text += "<b>HEAD</b>|employee|headrev|rev"
// else if (assigned_role in list("Security Officer", "Detective", "Warden"))
// text += "head|<b>OFFICER</b>|employee|headre|rev"
else if (src in ticker.mode.head_revolutionaries)
text = "head|officer|<a href='?src=\ref[src];revolution=clear'>employee</a>|<b>HEADREV</b>|<a href='?src=\ref[src];revolution=rev'>rev</a>"
text = "head|<a href='?src=\ref[src];revolution=clear'>employee</a>|<b>HEADREV</b>|<a href='?src=\ref[src];revolution=rev'>rev</a>"
text += "<br>Flash: <a href='?src=\ref[src];revolution=flash'>give</a>"
var/list/L = current.get_contents()
@@ -151,9 +151,9 @@ datum/mind
if (objectives.len==0)
text += "<br>Objectives are empty! <a href='?src=\ref[src];revolution=autoobjectives'>Set to kill all heads</a>."
else if (src in ticker.mode.revolutionaries)
text += "head|officer|<a href='?src=\ref[src];revolution=clear'>employee</a>|<a href='?src=\ref[src];revolution=headrev'>headrev</a>|<b>REV</b>"
text += "head|<a href='?src=\ref[src];revolution=clear'>employee</a>|<a href='?src=\ref[src];revolution=headrev'>headrev</a>|<b>REV</b>"
else
text += "head|officer|<b>EMPLOYEE</b>|<a href='?src=\ref[src];revolution=headrev'>headrev</a>|<a href='?src=\ref[src];revolution=rev'>rev</a>"
text += "head|<b>EMPLOYEE</b>|<a href='?src=\ref[src];revolution=headrev'>headrev</a>|<a href='?src=\ref[src];revolution=rev'>rev</a>"
sections["revolution"] = text
/** CULT ***/
@@ -162,18 +162,18 @@ datum/mind
text = uppertext(text)
text = "<i><b>[text]</b></i>: "
if (assigned_role in command_positions)
text += "<b>HEAD</b>|officer|employee|cultist"
else if (assigned_role in list("Security Officer", "Detective", "Warden"))
text += "head|<b>OFFICER</b>|employee|cultist"
text += "<b>HEAD</b>|employee|cultist"
// else if (assigned_role in list("Security Officer", "Detective", "Warden"))
// text += "head|<b>OFFICER</b>|employee|cultist"
else if (src in ticker.mode.cult)
text += "head|officer|<a href='?src=\ref[src];cult=clear'>employee</a>|<b>CULTIST</b>"
text += "head|<a href='?src=\ref[src];cult=clear'>employee</a>|<b>CULTIST</b>"
text += "<br>Give <a href='?src=\ref[src];cult=tome'>tome</a>|<a href='?src=\ref[src];cult=amulet'>amulet</a>."
/*
if (objectives.len==0)
text += "<br>Objectives are empty! Set to sacrifice and <a href='?src=\ref[src];cult=escape'>escape</a> or <a href='?src=\ref[src];cult=summon'>summon</a>."
*/
else
text += "head|officer|<b>EMPLOYEE</b>|<a href='?src=\ref[src];cult=cultist'>cultist</a>"
text += "head|<b>EMPLOYEE</b>|<a href='?src=\ref[src];cult=cultist'>cultist</a>"
sections["cult"] = text
/** WIZARD ***/
@@ -109,7 +109,7 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo
playsound(U.loc, 'sound/effects/EMPulse.ogg', 60, 2)
empulse(U, 2, 3) //Procs sure are nice. Slightly weaker than wizard's disable tch.
s_coold = 2
cell.charge-=(C*10)
cell.use(C*10)
return
//=======//ENERGY BLADE//=======//
@@ -129,7 +129,7 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo
spark_system.start()
playsound(U.loc, "sparks", 50, 1)
U.put_in_hands(W)
cell.charge-=(C*10)
cell.use(C*10)
else
U << "\red You can only summon one blade. Try dropping an item first."
else//Else you can run around with TWO energy blades. I don't know why you'd want to but cool factor remains.
@@ -173,7 +173,7 @@ This could be a lot better but I'm too tired atm.*/
A.current = curloc
A.yo = targloc.y - curloc.y
A.xo = targloc.x - curloc.x
cell.charge-=(C*100)// Ninja stars now cost 100 energy, stil la fair chunk to avoid spamming, will run out of power quickly if used 3 or more times
cell.use(C*100)// Ninja stars now cost 100 energy, stil la fair chunk to avoid spamming, will run out of power quickly if used 3 or more times
A.process()
else
U << "\red There are no targets in view."
@@ -210,7 +210,7 @@ Must right click on a mob to activate.*/
E.master = U
spawn(0)//Parallel processing.
E.process(M)
cell.charge-=(C*100) // Nets now cost what should be most of a standard battery, since your taking someone out of the round
cell.use(C*100) // Nets now cost what should be most of a standard battery, since your taking someone out of the round
else
U << "They are already trapped inside an energy net."
else
@@ -520,7 +520,10 @@ ________________________________________________________________________________
if(damage>1)//So they don't spam it when energy is a factor.
spark_system.start()//SPARKS THERE SHALL BE SPARKS
U.electrocute_act(damage, src,0.1,1)//The last argument is a safety for the human proc that checks for gloves.
cell.charge -= damage
if(cell.charge < damage)
cell.use(cell.charge)
else
cell.use(damage)
else
A << "\red <b>ERROR</b>: \black Not enough energy remaining."
+3 -2
View File
@@ -21,8 +21,9 @@
/obj/machinery/floodlight/process()
if(on)
cell.charge -= use
if(cell.charge <= 0)
if(cell.charge >= use)
cell.use(use)
else
on = 0
updateicon()
SetLuminosity(0)
@@ -0,0 +1,53 @@
/obj/item/device/megaphone
name = "megaphone"
desc = "A device used to project your voice. Loudly."
icon_state = "megaphone"
item_state = "radio"
w_class = 1.0
flags = FPRINT | TABLEPASS | CONDUCT
var/spamcheck = 0
var/emagged = 0
var/insults = 0
var/list/insultmsg = list("FUCK EVERYONE!", "I'M A TATER!", "ALL SECURITY TO SHOOT ME ON SIGHT!", "I HAVE A BOMB!", "CAPTAIN IS A COMDOM!", "FOR THE SYNDICATE!")
/obj/item/device/megaphone/attack_self(mob/living/user as mob)
if (user.client)
if(user.client.prefs.muted & MUTE_IC)
src << "\red You cannot speak in IC (muted)."
return
if(!ishuman(user))
user << "\red You don't know how to use this!"
return
if(spamcheck)
user << "\red \The [src] needs to recharge!"
return
var/message = copytext(sanitize(input(user, "Shout a message?", "Megaphone", null) as text),1,MAX_MESSAGE_LEN)
if(!message)
return
if ((src.loc == user && usr.stat == 0))
if(emagged)
if(insults)
for(var/mob/O in (viewers(user)))
O.show_message("<B>[user]</B> broadcasts, <FONT size=3>\"[pick(insultmsg)]\"</FONT>",2) // 2 stands for hearable message
insults--
else
user << "\red *BZZZZzzzzzt*"
else
for(var/mob/O in (viewers(user)))
O.show_message("<B>[user]</B> broadcasts, <FONT size=3>\"[message]\"</FONT>",2) // 2 stands for hearable message
spamcheck = 1
spawn(20)
spamcheck = 0
return
/obj/item/device/megaphone/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/weapon/card/emag) && !emagged)
user << "\red You overload \the [src]'s voice synthesizer."
emagged = 1
insults = rand(1, 3)//to prevent dickflooding
return
return
+2 -2
View File
@@ -17,13 +17,13 @@
if(emagged)
if(insults >= 1)
playsound(get_turf(src), 'sound/voice/binsult.ogg', 100, 1, vary = 0)//hueheuheuheuheuheuhe
user.visible_message("<span class='warning'>[user]'s [name] gurgles, \"FUCK YOUR CUNT YOU SHIT EATING CUNT TILL YOU ARE A MASS EATING SHIT CUNT. EAT PENISES IN YOUR FUCK FACE AND SHIT OUT ABORTIONS TO FUCK UP SHIT IN YOUR ASS YOU COCK FUCK SHIT MONKEY FROM THE DEPTHS OF SHIT\"</span>")
user.show_message("<span class='warning'>[user]'s [name] gurgles, \"FUCK YOUR CUNT YOU SHIT EATING CUNT TILL YOU ARE A MASS EATING SHIT CUNT. EAT PENISES IN YOUR FUCK FACE AND SHIT OUT ABORTIONS TO FUCK UP SHIT IN YOUR ASS YOU COCK FUCK SHIT MONKEY FROM THE DEPTHS OF SHIT\"</span>",2) //It's a hearable message silly!
insults--
else
user << "\red *BZZZZcuntZZZZT*"
else
playsound(get_turf(src), 'sound/voice/halt.ogg', 100, 1, vary = 0)
user.visible_message("<span class='warning'>[user]'s [name] rasps, \"Halt! Security!\"</span>")
user.show_message("<span class='warning'>[user]'s [name] rasps, \"Halt! Security!\"</span>",1)
spamcheck = 1
spawn(20)
@@ -79,6 +79,7 @@
/obj/item/device/lightreplacer,
/obj/item/device/taperecorder,
/obj/item/device/hailer,
/obj/item/device/megaphone,
/obj/item/clothing/tie/holobadge,
/obj/structure/closet/crate/secure,
/obj/structure/closet/secure_closet,
@@ -268,7 +268,7 @@
if(G.cell)
if(M.a_intent == "hurt")//Stungloves. Any contact will stun the alien.
if(G.cell.charge >= 2500)
G.cell.charge -= 2500
G.cell.use(2500)
Weaken(5)
if (stuttering < 5)
@@ -248,7 +248,7 @@
if(G.cell)
if(M.a_intent == "hurt")//Stungloves. Any contact will stun the alien.
if(G.cell.charge >= 2500)
G.cell.charge -= 2500
G.cell.use(2500)
Weaken(5)
if (stuttering < 5)
@@ -22,7 +22,7 @@
if(G.cell)
if(M.a_intent == "hurt")//Stungloves. Any contact will stun the alien.
if(G.cell.charge >= 2500)
G.cell.charge -= 2500
G.cell.use(2500)
visible_message("\red <B>[src] has been touched with the stun gloves by [M]!</B>")
M.attack_log += text("\[[time_stamp()]\] <font color='red'>Stungloved [src.name] ([src.ckey])</font>")
src.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been stungloved by [M.name] ([M.ckey])</font>")
@@ -440,7 +440,7 @@
if(G.cell)
if(M.a_intent == "hurt")//Stungloves. Any contact will stun the alien.
if(G.cell.charge >= 2500)
G.cell.charge -= 2500
G.cell.use(2500)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
O.show_message("\red <B>[src] has been touched with the stun gloves by [M]!</B>", 1, "\red You hear someone fall.", 2)
@@ -229,7 +229,7 @@
if(G.cell)
if(M.a_intent == "hurt")//Stungloves. Any contact will stun the alien.
if(G.cell.charge >= 2500)
G.cell.charge -= 2500
G.cell.use(2500)
Weaken(5)
if (stuttering < 5)
stuttering = 5
@@ -152,3 +152,66 @@
/obj/item/robot_parts/robot_component/radio
name = "radio"
//
//Robotic Component Analyser, basically a health analyser for robots
//
/obj/item/device/robotanalyzer
name = "cyborg analyzer"
icon_state = "robotanalyzer"
item_state = "analyzer"
desc = "A hand-held scanner able to diagnose robotic injuries."
flags = FPRINT | TABLEPASS | CONDUCT
slot_flags = SLOT_BELT
throwforce = 3
w_class = 1.0
throw_speed = 5
throw_range = 10
m_amt = 200
origin_tech = "magnets=1;biotech=1"
var/mode = 1;
/obj/item/device/robotanalyzer/attack(mob/living/M as mob, mob/living/user as mob)
if(( (CLUMSY in user.mutations) || user.getBrainLoss() >= 60) && prob(50))
user << text("\red You try to analyze the floor's vitals!")
for(var/mob/O in viewers(M, null))
O.show_message(text("\red [user] has analyzed the floor's vitals!"), 1)
user.show_message(text("\blue Analyzing Results for The floor:\n\t Overall Status: Healthy"), 1)
user.show_message(text("\blue \t Damage Specifics: [0]-[0]-[0]-[0]"), 1)
user.show_message("\blue Key: Suffocation/Toxin/Burns/Brute", 1)
user.show_message("\blue Body Temperature: ???", 1)
return
if(!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
user << "\red You don't have the dexterity to do this!"
return
if(!istype(M, /mob/living/silicon/robot))
user << "\red You can't analyze non-robotic things!"
return
user.visible_message("<span class='notice'> [user] has analyzed [M]'s components.","<span class='notice'> You have analyzed [M]'s components.")
var/BU = M.getFireLoss() > 50 ? "<b>[M.getFireLoss()]</b>" : M.getFireLoss()
var/BR = M.getBruteLoss() > 50 ? "<b>[M.getBruteLoss()]</b>" : M.getBruteLoss()
user.show_message("\blue Analyzing Results for [M]:\n\t Overall Status: [M.stat > 1 ? "fully disabled" : "[M.health - M.halloss]% functional"]")
user.show_message("\t Key: <font color='#FFA500'>Electronics</font>/<font color='red'>Brute</font>", 1)
user.show_message("\t Damage Specifics: <font color='#FFA500'>[BU]</font> - <font color='red'>[BR]</font>")
if(M.tod && M.stat == DEAD)
user.show_message("\blue Time of Disable: [M.tod]")
var/mob/living/silicon/robot/H = M
var/list/damaged = H.get_damaged_components(1,1,1)
user.show_message("\blue Localized Damage:",1)
if(length(damaged)>0)
for(var/datum/robot_component/org in damaged)
user.show_message(text("\blue \t []: [][] - [] - [] - []", \
capitalize(org.name), \
(org.installed == -1) ? "<font color='red'><b>DESTROYED</b></font> " :"",\
(org.electronics_damage > 0) ? "<font color='#FFA500'>[org.electronics_damage]</font>" :0, \
(org.brute_damage > 0) ? "<font color='red'>[org.brute_damage]</font>" :0, \
(org.toggled) ? "Toggled ON" : "<font color='red'>Toggled OFF</font>",\
(org.powered) ? "Power ON" : "<font color='red'>Power OFF</font>"),1)
else
user.show_message("\blue \t Components are OK.",1)
if(H.emagged && prob(5))
user.show_message("\red \t ERROR: INTERNAL SYSTEMS COMPROMISED",1)
src.add_fingerprint(user)
return
@@ -777,7 +777,8 @@
else
spark_system.start()
if( !(istype(W, /obj/item/device/robotanalyzer) || istype(W, /obj/item/device/healthanalyzer)) )
spark_system.start()
return ..()
/mob/living/silicon/robot/attack_alien(mob/living/carbon/alien/humanoid/M as mob)
@@ -32,12 +32,13 @@
else
heal_overall_damage(0, -amount)
/mob/living/silicon/robot/proc/get_damaged_components(var/brute, var/burn)
/mob/living/silicon/robot/proc/get_damaged_components(var/brute, var/burn, var/destroyed = 0)
var/list/datum/robot_component/parts = list()
for(var/V in components)
var/datum/robot_component/C = components[V]
if(C.installed == 1) if((brute && C.brute_damage) || (burn && C.electronics_damage))
parts += C
if(C.installed == 1 || (C.installed == -1 && destroyed))
if((brute && C.brute_damage) || (burn && C.electronics_damage) || (!C.toggled) || (!C.powered && C.toggled))
parts += C
return parts
/mob/living/silicon/robot/proc/get_damageable_components()
@@ -77,7 +77,7 @@
user << "<span class='notice'>[arrow] plinks and crackles as it begins to glow red-hot.</span>"
arrow.throwforce = 15
arrow.icon_state = "metal-rod-superheated"
cell.charge -= 500
cell.use(500)
return
if(istype(W, /obj/item/weapon/cell))
@@ -91,7 +91,7 @@
user << "<span class='notice'>[arrow] plinks and crackles as it begins to glow red-hot.</span>"
arrow.throwforce = 15
arrow.icon_state = "metal-rod-superheated"
cell.charge -= 500
cell.use(500)
else
user << "<span class='notice'>[src] already has a cell installed.</span>"
@@ -27,6 +27,13 @@
var/trans = 0
if(ismob(target))
var/time = 20 //2/3rds the time of a syringe
for(var/mob/O in viewers(world.view, user))
O.show_message(text("\red <B>[] is trying to squirt something into []'s eyes!</B>", user, target), 1)
if(!do_mob(user, target, time)) return
if(istype(target , /mob/living/carbon/human))
var/mob/living/carbon/human/victim = target
@@ -51,15 +58,12 @@
spawn(5)
src.reagents.reaction(safe_thing, TOUCH)
user << "\blue You transfer [trans] units of the solution."
if (src.reagents.total_volume<=0)
filled = 0
icon_state = "dropper[filled]"
return
for(var/mob/O in viewers(world.view, user))
O.show_message(text("\red <B>[] squirts something into []'s eyes!</B>", user, target), 1)
src.reagents.reaction(target, TOUCH)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 20 KiB

+10 -10
View File
@@ -309,7 +309,7 @@
"afW" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/main)
"afX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/main)
"afY" = (/obj/structure/closet/secure_closet/security,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/item/device/flashlight/flare,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/main)
"afZ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/item/device/radio/off,/obj/item/weapon/crowbar,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "redfull"; dir = 9},/area/security/main)
"afZ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/item/device/radio/off,/obj/item/weapon/crowbar,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/flashlight,/turf/simulated/floor{icon_state = "redfull"; dir = 9},/area/security/main)
"aga" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/main)
"agb" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/security/main)
"agc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/security/main)
@@ -384,7 +384,7 @@
"aht" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/prison)
"ahu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/security/prison)
"ahv" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/prison)
"ahw" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_y = 3},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig)
"ahw" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_y = 3},/obj/item/device/flashlight,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig)
"ahx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig)
"ahy" = (/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig)
"ahz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/camera{c_tag = "Security Processing"; dir = 2; network = list("SS13")},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig)
@@ -404,7 +404,7 @@
"ahN" = (/obj/structure/sign/goldenplaque,/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/security/hos)
"ahO" = (/obj/structure/table/woodentable,/obj/item/device/radio/off,/obj/machinery/camera{c_tag = "HoS Office South"; dir = 1},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor{icon_state = "dark"},/area/security/hos)
"ahP" = (/obj/structure/table/woodentable,/obj/item/device/taperecorder{pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/turf/simulated/floor{icon_state = "dark"},/area/security/hos)
"ahQ" = (/obj/structure/table/woodentable,/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{icon_state = "dark"},/area/security/hos)
"ahQ" = (/obj/structure/table/woodentable,/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/item/device/megaphone,/turf/simulated/floor{icon_state = "dark"},/area/security/hos)
"ahR" = (/obj/machinery/photocopier,/turf/simulated/floor{icon_state = "dark"},/area/security/hos)
"ahS" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/prison)
"ahT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/security/prison)
@@ -3042,7 +3042,7 @@
"bgz" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bgA" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bgB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/wall/r_wall,/area/crew_quarters/captain)
"bgC" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -30; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/wood,/area/crew_quarters/captain)
"bgC" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -30; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/item/device/megaphone,/turf/simulated/floor/wood,/area/crew_quarters/captain)
"bgD" = (/obj/structure/table/woodentable,/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/captain,/turf/simulated/floor/wood,/area/crew_quarters/captain)
"bgE" = (/obj/structure/table/woodentable,/obj/machinery/computer/skills{icon_state = "medlaptop"},/obj/item/weapon/hand_tele,/turf/simulated/floor/wood,/area/crew_quarters/captain)
"bgF" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green,/turf/simulated/floor/wood,/area/crew_quarters/captain)
@@ -3568,7 +3568,7 @@
"bqF" = (/obj/machinery/computer/med_data,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"bqG" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 30; pixel_y = 0; pixel_z = 0},/obj/machinery/light,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/computer/crew,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"bqH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/cmo)
"bqI" = (/obj/structure/table,/obj/item/weapon/cartridge/medical{pixel_x = -2; pixel_y = 6},/obj/item/weapon/cartridge/medical{pixel_x = 6; pixel_y = 3},/obj/item/weapon/cartridge/medical,/obj/item/weapon/cartridge/chemistry{pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo)
"bqI" = (/obj/structure/table,/obj/item/weapon/cartridge/medical{pixel_x = -2; pixel_y = 6},/obj/item/weapon/cartridge/medical{pixel_x = 6; pixel_y = 3},/obj/item/weapon/cartridge/medical,/obj/item/weapon/cartridge/chemistry{pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/megaphone,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo)
"bqJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo)
"bqK" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo)
"bqL" = (/obj/structure/closet/secure_closet/CMO,/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo)
@@ -3732,7 +3732,7 @@
"btN" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/assembly/chargebay)
"btO" = (/obj/machinery/power/apc{dir = 4; name = "Mech Bay APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/assembly/chargebay)
"btP" = (/obj/structure/table,/obj/item/weapon/circular_saw,/obj/item/weapon/scalpel{pixel_y = 12},/turf/simulated/floor{dir = 2; icon_state = "whitecorner"},/area/assembly/robotics)
"btQ" = (/obj/structure/table,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/item/device/mmi/posibrain,/turf/simulated/floor{dir = 8; icon_state = "whitecorner"},/area/assembly/robotics)
"btQ" = (/obj/structure/table,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/item/device/mmi/posibrain,/obj/item/device/robotanalyzer,/turf/simulated/floor{dir = 8; icon_state = "whitecorner"},/area/assembly/robotics)
"btR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 8; icon_state = "warnwhite"},/area/assembly/robotics)
"btS" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/device/radio/headset/headset_sci{pixel_x = -3},/obj/item/device/multitool{pixel_x = 3},/obj/item/device/multitool{pixel_x = 3},/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
"btT" = (/obj/machinery/light{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 2; icon_state = "whitecorner"},/area/medical/research{name = "Research Division"})
@@ -3844,7 +3844,7 @@
"bvV" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/quartermaster/office)
"bvW" = (/obj/structure/closet/secure_closet/hop2,/turf/simulated/floor,/area/crew_quarters/heads)
"bvX" = (/turf/simulated/floor,/area/crew_quarters/heads)
"bvY" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor,/area/crew_quarters/heads)
"bvY" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/device/megaphone,/turf/simulated/floor,/area/crew_quarters/heads)
"bvZ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/crew_quarters/heads)
"bwa" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/crew_quarters/heads)
"bwb" = (/obj/machinery/message_server,/turf/simulated/floor/bluegrid,/area/server)
@@ -4219,7 +4219,7 @@
"bDg" = (/obj/machinery/portable_atmospherics/scrubber/huge,/obj/structure/sign/nosmoking_2{pixel_x = 28},/turf/simulated/floor{icon_state = "bot"},/area/toxins/storage)
"bDh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"})
"bDi" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/crew_quarters/hor)
"bDj" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor)
"bDj" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/item/device/megaphone,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor)
"bDk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor)
"bDl" = (/obj/machinery/computer/mecha,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor)
"bDm" = (/obj/structure/table,/obj/item/weapon/circuitboard/aicore{pixel_x = -2; pixel_y = 4},/obj/item/weapon/circuitboard/teleporter,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor)
@@ -4231,7 +4231,7 @@
"bDs" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/quartermaster/miningdock)
"bDt" = (/obj/structure/rack{dir = 1},/obj/item/weapon/pickaxe{pixel_x = 5},/obj/item/weapon/shovel{pixel_x = -5},/turf/simulated/floor,/area/quartermaster/miningdock)
"bDu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/qm)
"bDv" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/quartermaster/qm)
"bDv" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/device/megaphone,/turf/simulated/floor,/area/quartermaster/qm)
"bDw" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/obj/item/weapon/pen/red{pixel_x = 2; pixel_y = 6},/turf/simulated/floor,/area/quartermaster/qm)
"bDx" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/stamp{name = "Quartermaster's stamp"; pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/quartermaster/qm)
"bDy" = (/obj/structure/disposalpipe/segment,/obj/machinery/camera{c_tag = "Quartermaster's Office"; dir = 8},/turf/simulated/floor,/area/quartermaster/qm)
@@ -5995,7 +5995,7 @@
"clo" = (/obj/structure/closet/secure_closet/engineering_chief{req_access_txt = "0"},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office)
"clp" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office)
"clq" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/clothing/glasses/meson{pixel_y = 4},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 1},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office)
"clr" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/stamp/ce,/obj/item/weapon/pen,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office)
"clr" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/stamp/ce,/obj/item/weapon/pen,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/device/megaphone,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office)
"cls" = (/obj/structure/table/reinforced,/obj/machinery/computer/skills{icon_state = "medlaptop"},/obj/item/weapon/lighter/zippo,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office)
"clt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/engine/chiefs_office)
"clu" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/engine/break_room)