Stackable items redo. Many improvements, massive code clean up.

Metal and related materials now noticeable more user-friendly.
Added new canister color: yellow "CAUTION". Used for newly created from metal canisters. Can be relabeled once.
Some typos were fixed.
dsay verb now uses fakekey in stealth mode.
AI cannot remove the cell from the charger.
Added alientalk chat prefix: ":a" by Barhandar. Also added keyboard layout independent russian prefixes.
Binary translator done by more convenient may by Barhandar.
Is possible now to wash bloody hands in sink.
Probably fixed bug causes gibbed revheads be not counted as dead.
Some other fixes.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@752 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
rastaf.zero@gmail.com
2011-01-03 01:26:01 +00:00
parent 565c2320c4
commit 09e0bcf987
51 changed files with 1138 additions and 1404 deletions

View File

@@ -20,7 +20,7 @@
var/list/peripherals = list() var/list/peripherals = list()
var/created_icon_state = "aiupload" var/created_icon_state = "aiupload"
/obj/computer2frame/attackby(obj/item/weapon/P as obj, mob/user as mob) /obj/computer2frame/attackby(obj/item/P as obj, mob/user as mob)
switch(state) switch(state)
if(0) if(0)
if(istype(P, /obj/item/weapon/wrench)) if(istype(P, /obj/item/weapon/wrench))
@@ -33,8 +33,7 @@
playsound(src.loc, 'Welder.ogg', 50, 1) playsound(src.loc, 'Welder.ogg', 50, 1)
if(do_after(user, 20)) if(do_after(user, 20))
user << "\blue You deconstruct the frame." user << "\blue You deconstruct the frame."
var/obj/item/weapon/sheet/metal/A = new /obj/item/weapon/sheet/metal( src.loc ) new /obj/item/stack/sheet/metal( src.loc, 5 )
A.amount = 5
del(src) del(src)
if(1) if(1)
if(istype(P, /obj/item/weapon/wrench)) if(istype(P, /obj/item/weapon/wrench))
@@ -118,12 +117,11 @@
src.hd.loc = src.loc src.hd.loc = src.loc
src.hd = null src.hd = null
if(istype(P, /obj/item/weapon/sheet/glass)) if(istype(P, /obj/item/stack/sheet/glass))
if(P:amount >= 2) if(P:amount >= 2)
playsound(src.loc, 'Deconstruct.ogg', 50, 1) playsound(src.loc, 'Deconstruct.ogg', 50, 1)
if(do_after(user, 20)) if(do_after(user, 20))
P:amount -= 2 P:use(2)
if(!P:amount) del(P)
user << "\blue You put in the glass panel." user << "\blue You put in the glass panel."
src.state = 4 src.state = 4
src.icon_state = "4" src.icon_state = "4"
@@ -133,8 +131,7 @@
user << "\blue You remove the glass panel." user << "\blue You remove the glass panel."
src.state = 3 src.state = 3
src.icon_state = "3" src.icon_state = "3"
var/obj/item/weapon/sheet/glass/A = new /obj/item/weapon/sheet/glass( src.loc ) new /obj/item/stack/sheet/glass( src.loc, 2 )
A.amount = 2
if(istype(P, /obj/item/weapon/screwdriver)) if(istype(P, /obj/item/weapon/screwdriver))
playsound(src.loc, 'Screwdriver.ogg', 50, 1) playsound(src.loc, 'Screwdriver.ogg', 50, 1)
user << "\blue You connect the monitor." user << "\blue You connect the monitor."

View File

@@ -577,7 +577,7 @@
F.burnt = 1 F.burnt = 1
F.intact = 0 F.intact = 0
F.levelupdate() F.levelupdate()
new /obj/item/weapon/tile(H) // add to holder so it will be thrown with other stuff new /obj/item/stack/tile(H) // add to holder so it will be thrown with other stuff
F.icon_state = "Floor[F.burnt ? "1" : ""]" F.icon_state = "Floor[F.burnt ? "1" : ""]"
if(direction) // direction is specified if(direction) // direction is specified

View File

@@ -816,3 +816,90 @@ obj/item/brain
density = 1 density = 1
opacity = 1 opacity = 1
anchored = 1 anchored = 1
/obj/item/stack
var/singular_name
var/amount = 1.0
var/max_amount //also see stack recipes initialisation, param "max_res_amount" must be equal to this max_amount
/obj/item/stack/rods
name = "metal rods"
singular_name = "metal rod"
icon_state = "rods"
flags = FPRINT | TABLEPASS| CONDUCT
w_class = 3.0
force = 9.0
throwforce = 15.0
throw_speed = 5
throw_range = 20
m_amt = 1875
max_amount = 60
/obj/item/stack/sheet
name = "sheet"
// var/const/length = 2.5 //2.5*1.5*0.01*100000 == 3750 == m_amt
// var/const/width = 1.5
// var/const/height = 0.01
flags = FPRINT | TABLEPASS
w_class = 3.0
max_amount = 50
/obj/item/stack/sheet/glass
name = "glass"
singular_name = "glass sheet"
icon_state = "sheet-glass"
force = 5.0
g_amt = 3750
throwforce = 5
throw_speed = 3
throw_range = 3
/obj/item/stack/sheet/rglass
name = "reinforced glass"
singular_name = "reinforced glass sheet"
icon_state = "sheet-rglass"
force = 6.0
g_amt = 3750
m_amt = 1875
throwforce = 5
throw_speed = 3
throw_range = 3
/obj/item/stack/sheet/metal
name = "metal"
singular_name = "metal sheet"
desc = "A heavy sheet of metal."
icon_state = "sheet-metal"
force = 5.0
m_amt = 3750
throwforce = 14.0
throw_speed = 1
throw_range = 4
flags = FPRINT | TABLEPASS | CONDUCT
/obj/item/stack/sheet/r_metal
name = "reinforced metal"
singular_name = "reinforced metal sheet"
desc = "A very heavy sheet of metal."
icon_state = "sheet-r_metal"
item_state = "sheet-metal"
force = 5.0
m_amt = 7500
throwforce = 15.0
throw_speed = 1
throw_range = 4
flags = FPRINT | TABLEPASS | CONDUCT
/obj/item/stack/tile
name = "steel floor tile"
singular_name = "steel floor tile"
desc = "Those could work as a pretty decent throwing weapon"
icon_state = "tile"
w_class = 3.0
force = 6.0
m_amt = 937.5
throwforce = 15.0
throw_speed = 5
throw_range = 20
flags = FPRINT | TABLEPASS | CONDUCT
max_amount = 10

View File

@@ -127,7 +127,7 @@
icon_state = "welder-rods" icon_state = "welder-rods"
item_state = "welder" item_state = "welder"
var/obj/item/weapon/weldingtool/part1 = null var/obj/item/weapon/weldingtool/part1 = null
var/obj/item/weapon/rods/part2 = null var/obj/item/stack/rods/part2 = null
status = null status = null
flags = FPRINT | TABLEPASS| CONDUCT flags = FPRINT | TABLEPASS| CONDUCT
force = 3.0 force = 3.0
@@ -142,7 +142,7 @@
icon_state = "welder-rods-igniter" icon_state = "welder-rods-igniter"
item_state = "welder" item_state = "welder"
var/obj/item/weapon/weldingtool/part1 = null var/obj/item/weapon/weldingtool/part1 = null
var/obj/item/weapon/rods/part2 = null var/obj/item/stack/rods/part2 = null
var/obj/item/device/igniter/part3 = null var/obj/item/device/igniter/part3 = null
status = null status = null
flags = FPRINT | TABLEPASS| CONDUCT flags = FPRINT | TABLEPASS| CONDUCT

View File

@@ -52,9 +52,10 @@
icon_state = "headset" icon_state = "headset"
item_state = "headset" item_state = "headset"
var/protective_temperature = 0 var/protective_temperature = 0
var/bintran = 0
/obj/item/device/radio/headset/traitor /obj/item/device/radio/headset/traitor
// No variables, as everything else it does is handled in human's life.dm bintran = 1
/obj/item/device/radio/headset/headset_sec // -- TLE /obj/item/device/radio/headset/headset_sec // -- TLE
name = "Security Radio Headset" name = "Security Radio Headset"

View File

@@ -27,7 +27,7 @@
/datum/supply_packs/metal50 /datum/supply_packs/metal50
name = "50 Metal Sheets" name = "50 Metal Sheets"
contains = list("/obj/item/weapon/sheet/metal") contains = list("/obj/item/stack/sheet/metal")
amount = 50 amount = 50
cost = 15 cost = 15
containertype = "/obj/crate" containertype = "/obj/crate"
@@ -35,7 +35,7 @@
/datum/supply_packs/glass50 /datum/supply_packs/glass50
name = "50 Glass Sheets" name = "50 Glass Sheets"
contains = list("/obj/item/weapon/sheet/glass") contains = list("/obj/item/stack/sheet/glass")
amount = 50 amount = 50
cost = 15 cost = 15
containertype = "/obj/crate" containertype = "/obj/crate"

View File

@@ -135,9 +135,10 @@
w_class = 2.0 w_class = 2.0
flags = FPRINT | TABLEPASS| CONDUCT flags = FPRINT | TABLEPASS| CONDUCT
throwforce = 5 throwforce = 5
w_class = 2.0
throw_speed = 4 throw_speed = 4
throw_range = 20 throw_range = 20
m_amt = 30
g_amt = 20
/obj/item/weapon/axe /obj/item/weapon/axe
@@ -922,7 +923,7 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
w_class = 1.0 w_class = 1.0
throw_speed = 7 throw_speed = 7
throw_range = 15 throw_range = 15
m_amt = 60 m_amt = 10
/obj/item/weapon/pen/sleepypen /obj/item/weapon/pen/sleepypen
desc = "It's a normal black ink pen with a sharp point." desc = "It's a normal black ink pen with a sharp point."
@@ -933,19 +934,7 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
icon = 'items.dmi' icon = 'items.dmi'
icon_state = "rack_parts" icon_state = "rack_parts"
flags = FPRINT | TABLEPASS| CONDUCT flags = FPRINT | TABLEPASS| CONDUCT
m_amt = 3750
/obj/item/weapon/rods
name = "rods"
icon = 'items.dmi'
icon_state = "rods"
var/amount = 1.0
flags = FPRINT | TABLEPASS| CONDUCT
w_class = 3.0
force = 9.0
throwforce = 15.0
throw_speed = 5
throw_range = 20
m_amt = 1875
/obj/item/weapon/rubber_chicken /obj/item/weapon/rubber_chicken
name = "Rubber Chicken" name = "Rubber Chicken"
@@ -975,68 +964,7 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
force = 5.0 force = 5.0
throwforce = 15.0 throwforce = 15.0
item_state = "shard-glass" item_state = "shard-glass"
/obj/item/weapon/sheet
name = "sheet"
icon = 'items.dmi'
var/amount = 1.0
var/length = 2.5
var/width = 1.5
var/height = 0.01
flags = FPRINT | TABLEPASS
throwforce = 5.0
throw_speed = 1
throw_range = 4
w_class = 4.0
/obj/item/weapon/sheet/glass
name = "glass"
icon_state = "sheet-glass"
force = 5.0
g_amt = 3750 g_amt = 3750
throwforce = 5
w_class = 3.0
throw_speed = 3
throw_range = 3
/obj/item/weapon/sheet/rglass
name = "reinforced glass"
icon_state = "sheet-rglass"
item_state = "sheet-rglass"
force = 6.0
g_amt = 3750
m_amt = 1875
throwforce = 5
w_class = 3.0
throw_speed = 3
throw_range = 3
/obj/item/weapon/sheet/metal
name = "metal"
icon_state = "sheet-metal"
desc = "A heavy sheet of metal."
throwforce = 14.0
m_amt = 3750
throwforce = 10.0
throw_speed = 1
throw_range = 4
w_class = 3.0
flags = FPRINT | TABLEPASS | CONDUCT
/obj/item/weapon/sheet/r_metal
name = "reinforced metal"
desc = "A very heavy sheet of metal."
icon_state = "sheet-r_metal"
force = 5.0
throwforce = 14.0
item_state = "sheet-metal"
m_amt = 7500
throwforce = 15.0
throw_speed = 1
throw_range = 4
w_class = 3.0
flags = FPRINT | TABLEPASS | CONDUCT
/obj/item/weapon/syndicate_uplink /obj/item/weapon/syndicate_uplink
name = "station bounced radio" name = "station bounced radio"
@@ -1101,12 +1029,14 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
name = "table parts" name = "table parts"
icon = 'items.dmi' icon = 'items.dmi'
icon_state = "table_parts" icon_state = "table_parts"
m_amt = 3750
flags = FPRINT | TABLEPASS| CONDUCT flags = FPRINT | TABLEPASS| CONDUCT
/obj/item/weapon/table_parts/reinforced /obj/item/weapon/table_parts/reinforced
name = "table parts" name = "table parts"
icon = 'items.dmi' icon = 'items.dmi'
icon_state = "reinf_tableparts" icon_state = "reinf_tableparts"
m_amt = 7500
flags = FPRINT | TABLEPASS| CONDUCT flags = FPRINT | TABLEPASS| CONDUCT
/obj/item/weapon/tank /obj/item/weapon/tank
@@ -1155,19 +1085,6 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
w_class = 2.5 w_class = 2.5
force = 4.0 force = 4.0
/obj/item/weapon/tile
name = "steel floor tile"
desc = "... Those could work as a pretty decent throwing weapon"
icon = 'items.dmi'
icon_state = "tile"
var/amount = 1.0
w_class = 3.0
throw_speed = 5
throw_range = 20
force = 6.0
throwforce = 15.0
/obj/item/weapon/teleportation_scroll /obj/item/weapon/teleportation_scroll
name = "Teleportation Scroll" name = "Teleportation Scroll"
icon = 'items.dmi' icon = 'items.dmi'
@@ -1183,7 +1100,7 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
name = "weldingtool" name = "weldingtool"
icon = 'items.dmi' icon = 'items.dmi'
icon_state = "welder" icon_state = "welder"
var/welding = 0.0 var/welding = 0
var/status = 0 //flamethrower construction :shobon: var/status = 0 //flamethrower construction :shobon:
flags = FPRINT | TABLEPASS| CONDUCT flags = FPRINT | TABLEPASS| CONDUCT
force = 3.0 force = 3.0
@@ -1191,7 +1108,7 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
throw_speed = 1 throw_speed = 1
throw_range = 5 throw_range = 5
w_class = 2.0 w_class = 2.0
m_amt = 30 m_amt = 70
g_amt = 30 g_amt = 30
/obj/item/weapon/wire /obj/item/weapon/wire
@@ -1247,6 +1164,7 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
var/charge = 0 // note %age conveted to actual charge in New var/charge = 0 // note %age conveted to actual charge in New
var/maxcharge = 1000 var/maxcharge = 1000
m_amt = 700 m_amt = 700
g_amt = 50
var/rigged = 0 // true if rigged to explode var/rigged = 0 // true if rigged to explode
/obj/item/weapon/cell/robotcrate /obj/item/weapon/cell/robotcrate

View File

@@ -13,13 +13,13 @@
/turf/simulated/wall/asteroid/iron /turf/simulated/wall/asteroid/iron
icon_state = "asteroid_i" icon_state = "asteroid_i"
contains = /obj/item/weapon/sheet/metal contains = /obj/item/stack/sheet/metal
max_amount = 3 max_amount = 3
min_amount = 1 min_amount = 1
/turf/simulated/wall/asteroid/silicon /turf/simulated/wall/asteroid/silicon
icon_state = "asteroid_i" icon_state = "asteroid_i"
contains = /obj/item/weapon/sheet/glass contains = /obj/item/stack/sheet/glass
max_amount = 3 max_amount = 3
min_amount = 1 min_amount = 1

View File

@@ -156,8 +156,8 @@
if (istype (src, /mob/living/carbon)) if (istype (src, /mob/living/carbon))
var/obj/item/source2 = src var/obj/item/source2 = src
source2.blood_DNA = null source2.blood_DNA = null
var/icon/I = new /icon(source2.icon_old, source2.icon_state) //var/icon/I = new /icon(source2.icon_old, source2.icon_state) //doesnt have icon_old
source2.icon = I //source2.icon = I
if (istype (src, /obj/item)) if (istype (src, /obj/item))
var/obj/item/source2 = src var/obj/item/source2 = src
source2.blood_DNA = null source2.blood_DNA = null

View File

@@ -398,7 +398,7 @@
///////////////////////////// /////////////////////////////
/datum/game_mode/revolution/proc/check_heads_victory() /datum/game_mode/revolution/proc/check_heads_victory()
for(var/datum/mind/rev_mind in head_revolutionaries) for(var/datum/mind/rev_mind in head_revolutionaries)
if(rev_mind.current.stat != 2) if(rev_mind && rev_mind.current && rev_mind.current.stat != 2)
return 0 return 0
return 1 return 1

View File

@@ -88,11 +88,11 @@ datum/hSB
P.back.layer = 20 P.back.layer = 20
P.internal = P.back P.internal = P.back
if("hsbmetal") if("hsbmetal")
var/obj/item/weapon/sheet/hsb = new/obj/item/weapon/sheet/metal var/obj/item/stack/sheet/hsb = new/obj/item/stack/sheet/metal
hsb.amount = 50 hsb.amount = 50
hsb.loc = usr.loc hsb.loc = usr.loc
if("hsbglass") if("hsbglass")
var/obj/item/weapon/sheet/hsb = new/obj/item/weapon/sheet/glass var/obj/item/stack/sheet/hsb = new/obj/item/stack/sheet/glass
hsb.amount = 50 hsb.amount = 50
hsb.loc = usr.loc hsb.loc = usr.loc
if("hsbairlock") if("hsbairlock")

View File

@@ -1,6 +1,7 @@
/obj/machinery/portable_atmospherics/canister /obj/machinery/portable_atmospherics/canister
name = "canister" name = "canister"
icon = 'atmos.dmi' icon = 'atmos.dmi'
icon_state = "yellow"
density = 1 density = 1
var/health = 100.0 var/health = 100.0
flags = FPRINT | CONDUCT flags = FPRINT | CONDUCT
@@ -8,7 +9,8 @@
var/valve_open = 0 var/valve_open = 0
var/release_pressure = ONE_ATMOSPHERE var/release_pressure = ONE_ATMOSPHERE
var/color = "blue" var/color = "yellow"
var/labeled = 0
var/filled = 0.5 var/filled = 0.5
pressure_resistance = 7*ONE_ATMOSPHERE pressure_resistance = 7*ONE_ATMOSPHERE
var/temperature_resistance = 1000 + T0C var/temperature_resistance = 1000 + T0C
@@ -18,10 +20,12 @@
name = "Canister: \[N2O\]" name = "Canister: \[N2O\]"
icon_state = "redws" icon_state = "redws"
color = "redws" color = "redws"
labeled = 1
/obj/machinery/portable_atmospherics/canister/nitrogen /obj/machinery/portable_atmospherics/canister/nitrogen
name = "Canister: \[N2\]" name = "Canister: \[N2\]"
icon_state = "red" icon_state = "red"
color = "red" color = "red"
labeled = 1
/obj/machinery/portable_atmospherics/canister/oxygen /obj/machinery/portable_atmospherics/canister/oxygen
name = "Canister: \[O2\]" name = "Canister: \[O2\]"
icon_state = "blue" icon_state = "blue"
@@ -29,14 +33,17 @@
name = "Canister \[Toxin (Bio)\]" name = "Canister \[Toxin (Bio)\]"
icon_state = "orange" icon_state = "orange"
color = "orange" color = "orange"
labeled = 1
/obj/machinery/portable_atmospherics/canister/carbon_dioxide /obj/machinery/portable_atmospherics/canister/carbon_dioxide
name = "Canister \[CO2\]" name = "Canister \[CO2\]"
icon_state = "black" icon_state = "black"
color = "black" color = "black"
labeled = 1
/obj/machinery/portable_atmospherics/canister/air /obj/machinery/portable_atmospherics/canister/air
name = "Canister \[Air\]" name = "Canister \[Air\]"
icon_state = "grey" icon_state = "grey"
color = "grey" color = "grey"
labeled = 1
/obj/machinery/portable_atmospherics/canister/update_icon() /obj/machinery/portable_atmospherics/canister/update_icon()
src.overlays = 0 src.overlays = 0
@@ -158,7 +165,7 @@
holding_text = {"<BR><B>Tank Pressure</B>: [holding.air_contents.return_pressure()] KPa<BR> holding_text = {"<BR><B>Tank Pressure</B>: [holding.air_contents.return_pressure()] KPa<BR>
<A href='?src=\ref[src];remove_tank=1'>Remove Tank</A><BR> <A href='?src=\ref[src];remove_tank=1'>Remove Tank</A><BR>
"} "}
var/output_text = {"<TT><B>[name]</B><BR> var/output_text = {"<TT><B>[name]</B>[!labeled?" <A href='?src=\ref[src];relabel=1'><small>relabel</small></a>":""]<BR>
Pressure: [air_contents.return_pressure()] KPa<BR> Pressure: [air_contents.return_pressure()] KPa<BR>
Port Status: [(connected_port)?("Connected"):("Disconnected")] Port Status: [(connected_port)?("Connected"):("Disconnected")]
[holding_text] [holding_text]
@@ -195,6 +202,23 @@ Release Pressure: <A href='?src=\ref[src];pressure_adj=-1000'>-</A> <A href='?sr
else else
release_pressure = max(ONE_ATMOSPHERE/10, release_pressure+diff) release_pressure = max(ONE_ATMOSPHERE/10, release_pressure+diff)
if (href_list["relabel"])
if (!labeled)
var/list/colors = list(\
"\[N2O\]" = "redws", \
"\[N2\]" = "red", \
"\[O2\]" = "blue", \
"\[Toxin (Bio)\]" = "orange", \
"\[CO2\]" = "black", \
"\[Air\]" = "grey", \
"\[CAUTION\]" = "yellow", \
)
var/label = input("Choose canister label", "Gas canister") as null|anything in colors
if (label)
src.color = colors[label]
src.icon_state = colors[label]
src.name = "Canister: [label]"
labeled = 1
src.updateUsrDialog() src.updateUsrDialog()
src.add_fingerprint(usr) src.add_fingerprint(usr)
update_icon() update_icon()
@@ -265,4 +289,4 @@ Release Pressure: <A href='?src=\ref[src];pressure_adj=-1000'>-</A> <A href='?sr
src.air_contents.nitrogen = (N2STANDARD*src.maximum_pressure*filled)*air_contents.volume/(R_IDEAL_GAS_EQUATION*air_contents.temperature) src.air_contents.nitrogen = (N2STANDARD*src.maximum_pressure*filled)*air_contents.volume/(R_IDEAL_GAS_EQUATION*air_contents.temperature)
src.update_icon() src.update_icon()
return 1 return 1

View File

@@ -1,15 +1,36 @@
/obj/machinery/autolathe/attackby(var/obj/item/weapon/O as obj, var/mob/user as mob) /obj/machinery/autolathe
var/busy = 0
var/const/max_m_amount = 150000.0
var/const/max_g_amount = 75000.0
/obj/machinery/autolathe/attackby(var/obj/item/O as obj, var/mob/user as mob)
if (stat)
return 1
if (busy)
user << "\red The autolathe is busy. Please wait for completion of previous operation."
return 1
if (istype(O, /obj/item/weapon/screwdriver)) if (istype(O, /obj/item/weapon/screwdriver))
if (!opened) if (!opened)
src.opened = 1 src.opened = 1
src.icon_state = "autolathef" src.icon_state = "autolathef"
user << "You open the maintenance hatch of [src]."
else else
src.opened = 0 src.opened = 0
src.icon_state = "autolathe" src.icon_state = "autolathe"
user << "You close the maintenance hatch of [src]."
return return
if (opened) if (opened)
user << "You can't load the autolathe while it's opened." user << "\red You can't load the autolathe while it's opened."
return return 1
if (src.m_amount + O.m_amt > max_m_amount)
user << "\red The autolathe is full. Please remove metal from the autolathe in order to insert more."
return 1
if (src.g_amount + O.g_amt > max_g_amount)
user << "\red The autolathe is full. Please remove glass from the autolathe in order to insert more."
return 1
if (O.m_amt == 0 && O.g_amt == 0)
user << "\red This object does not contain significant amounts of metal or glass, or cannot be accepted by the autolathe due to size or hazardous materials."
return 1
/* /*
if (istype(O, /obj/item/weapon/grab) && src.hacked) if (istype(O, /obj/item/weapon/grab) && src.hacked)
var/obj/item/weapon/grab/G = O var/obj/item/weapon/grab/G = O
@@ -18,79 +39,95 @@
m_amount += 50000 m_amount += 50000
return return
*/ */
if (istype(O, /obj/item/weapon/sheet/metal))
if (src.m_amount < 150000.0)
spawn(16) {
if (O)
flick("autolathe_c",src)
src.m_amount += O:height * O:width * O:length * 100000.0
O:amount--
if (O:amount < 1)
del(O)
}
else
user << "The autolathe is full. Please remove metal from the autolathe in order to insert more."
else if (istype(O, /obj/item/weapon/sheet/glass) || istype(O, /obj/item/weapon/sheet/rglass))
if (src.g_amount < 75000.0)
spawn(16) {
flick("autolathe_c",src)
src.g_amount += O:height * O:width * O:length * 100000.0
O:amount--
if (O:amount < 1)
del(O)
}
else
user << "The autolathe is full. Please remove glass from the autolathe in order to insert more."
else if (O.g_amt || O.m_amt) var/amount = 1
spawn(16) { var/obj/item/stack/stack
flick("autolathe_c",src) var/m_amt = O.m_amt
if(O) var/g_amt = O.g_amt
if(O.g_amt) // Added null checks to avoid runtime errors when an item doesn't have an expected variable -- TLE if (istype(O, /obj/item/stack))
src.g_amount += O.g_amt stack = O
if(O.m_amt) amount = stack.amount
src.m_amount += O.m_amt if (m_amt)
del O amount = min(amount, round((max_m_amount-src.m_amount)/m_amt))
} if (g_amt)
amount = min(amount, round((max_g_amount-src.g_amount)/g_amt))
stack.use(amount)
else else
user << "This object does not contain significant amounts of metal or glass, or cannot be accepted by the autolathe due to size or hazardous materials." usr.before_take_item(O)
O.loc = src
icon_state = "autolathe1"
flick("autolathe_c",src)
busy = 1
use_power(max(1000, (m_amt+g_amt)*amount/10))
spawn(16)
icon_state = "autolathe"
flick("autolathe_o",src)
src.m_amount += m_amt * amount
src.g_amount += g_amt * amount
if (O && O.loc == src)
del(O)
busy = 0
src.updateUsrDialog()
/obj/machinery/autolathe/attack_paw(user as mob) /obj/machinery/autolathe/attack_paw(mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
/obj/machinery/autolathe/attack_hand(user as mob) /obj/machinery/autolathe/attack_hand(mob/user as mob)
var/dat user.machine = src
interact(user)
/obj/machinery/autolathe/proc/wires_win(mob/user as mob)
var/dat as text
dat += "Autolathe Wires:<BR>"
for(var/wire in src.wires)
dat += text("[wire] Wire: <A href='?src=\ref[src];wire=[wire];act=wire'>[src.wires[wire] ? "Mend" : "Cut"]</A> <A href='?src=\ref[src];wire=[wire];act=pulse'>Pulse</A><BR>")
dat += text("The red light is [src.disabled ? "off" : "on"].<BR>")
dat += text("The green light is [src.shocked ? "off" : "on"].<BR>")
dat += text("The blue light is [src.hacked ? "off" : "on"].<BR>")
user << browse("<HTML><HEAD><TITLE>Autolathe Hacking</TITLE></HEAD><BODY>[dat]</BODY></HTML>","window=autolathe_hack")
onclose(user, "autolathe_hack")
/obj/machinery/autolathe/proc/regular_win(mob/user as mob)
var/dat as text
dat = text("<B>Metal Amount:</B> [src.m_amount] cm<sup>3</sup> (MAX: [max_m_amount])<BR>\n<FONT color=blue><B>Glass Amount:</B></FONT> [src.g_amount] cm<sup>3</sup> (MAX: [max_g_amount])<HR>")
var/list/objs = list()
objs += src.L
if (src.hacked)
objs += src.LL
for(var/obj/t in objs)
var/title = "[t.name] ([t.m_amt] m /[t.g_amt] g)"
if (m_amount<t.m_amt || g_amount<t.g_amt)
dat += title + "<br>"
continue
dat += "<A href='?src=\ref[src];make=\ref[t]'>[title]</A>"
if (istype(t, /obj/item/stack))
var/obj/item/stack/S = t
var/max_multiplier = min(S.max_amount, S.m_amt?round(m_amount/S.m_amt):INFINITY, S.g_amt?round(g_amount/S.g_amt):INFINITY)
if (max_multiplier>1)
dat += " |"
if (max_multiplier>10)
dat += " <A href='?src=\ref[src];make=\ref[t];multiplier=[10]'>x[10]</A>"
if (max_multiplier>25)
dat += " <A href='?src=\ref[src];make=\ref[t];multiplier=[25]'>x[25]</A>"
if (max_multiplier>1)
dat += " <A href='?src=\ref[src];make=\ref[t];multiplier=[max_multiplier]'>x[max_multiplier]</A>"
dat += "<br>"
user << browse("<HTML><HEAD><TITLE>Autolathe Control Panel</TITLE></HEAD><BODY><TT>[dat]</TT></BODY></HTML>", "window=autolathe_regular")
onclose(user, "autolathe_regular")
/obj/machinery/autolathe/proc/interact(mob/user as mob)
if(..()) if(..())
return return
if (src.shocked) if (src.shocked)
src.shock(user) src.shock(user)
if (src.opened) if (src.opened)
dat += "Autolathe Wires:<BR>" wires_win(user)
var/wire
for(wire in src.wires)
dat += text("[wire] Wire: <A href='?src=\ref[src];wire=[wire];act=wire'>[src.wires[wire] ? "Mend" : "Cut"]</A> <A href='?src=\ref[src];wire=[wire];act=pulse'>Pulse</A><BR>")
dat += text("The red light is [src.disabled ? "off" : "on"].<BR>")
dat += text("The green light is [src.shocked ? "off" : "on"].<BR>")
dat += text("The blue light is [src.hacked ? "off" : "on"].<BR>")
user << browse("<HEAD><TITLE>Autolathe Hacking</TITLE></HEAD>[dat]","window=autolathe_hack")
onclose(user, "autolathe_hack")
return return
if (src.disabled) if (src.disabled)
user << "You press the button, but nothing happens." user << "\red You press the button, but nothing happens."
return return
if (src.temp) regular_win(user)
dat = text("<TT>[]</TT><BR><BR><A href='?src=\ref[];temp=1'>Clear Screen</A>", src.temp, src)
else
dat = text("<B>Metal Amount:</B> [src.m_amount] cm<sup>3</sup> (MAX: 150,000)<BR>\n<FONT color = blue><B>Glass Amount:</B></FONT> [src.g_amount] cm<sup>3</sup> (MAX: 75,000)<HR>")
var/list/objs = list()
objs += src.L
if (src.hacked)
objs += src.LL
for(var/obj/t in objs)
dat += text("<A href='?src=\ref[src];make=\ref[t]'>[t.name] ([t.m_amt] cc metal/[t.g_amt] cc glass)<BR>")
user << browse("<HEAD><TITLE>Autolathe Control Panel</TITLE></HEAD><TT>[dat]</TT>", "window=autolathe_regular")
onclose(user, "autolathe_regular")
return return
/obj/machinery/autolathe/Topic(href, href_list) /obj/machinery/autolathe/Topic(href, href_list)
@@ -98,99 +135,117 @@
return return
usr.machine = src usr.machine = src
src.add_fingerprint(usr) src.add_fingerprint(usr)
if(href_list["make"]) if (!busy)
var/obj/template = locate(href_list["make"]) if(href_list["make"])
if(src.m_amount >= template.m_amt && src.g_amount >= template.g_amt) var/turf/T = get_step(src.loc, get_dir(src,usr))
spawn(16) var/obj/template = locate(href_list["make"])
var/multiplier = text2num(href_list["multiplier"])
if (!multiplier) multiplier = 1
var/power = max(2000, (template.m_amt+template.g_amt)*multiplier/5)
if(src.m_amount >= template.m_amt*multiplier && src.g_amount >= template.g_amt*multiplier)
busy = 1
use_power(power)
icon_state = "autolathe1"
flick("autolathe_c",src) flick("autolathe_c",src)
spawn(16) spawn(16)
flick("autolathe_o",src) use_power(power)
spawn(16) spawn(16)
src.m_amount -= template.m_amt icon_state = "autolathe"
src.g_amount -= template.g_amt flick("autolathe_o",src)
if(src.m_amount < 0) use_power(power)
src.m_amount = 0 spawn(16)
if(src.g_amount < 0) src.m_amount -= template.m_amt*multiplier
src.g_amount = 0 src.g_amount -= template.g_amt*multiplier
new template.type(usr.loc) if(src.m_amount < 0)
if(href_list["act"]) src.m_amount = 0
if(href_list["act"] == "pulse") if(src.g_amount < 0)
if (!istype(usr.equipped(), /obj/item/device/multitool)) src.g_amount = 0
usr << "You need a multitool!" var/obj/new_item = new template.type(T)
else if (multiplier>1)
if(src.wires[href_list["wire"]]) var/obj/item/stack/S = new_item
usr << "You can't pulse a cut wire." S.amount = multiplier
busy = 0
src.updateUsrDialog()
if(href_list["act"])
if(href_list["act"] == "pulse")
if (!istype(usr.equipped(), /obj/item/device/multitool))
usr << "You need a multitool!"
else
if(src.wires[href_list["wire"]])
usr << "You can't pulse a cut wire."
else
if(src.hack_wire == href_list["wire"])
src.hacked = !src.hacked
spawn(100) src.hacked = !src.hacked
if(src.disable_wire == href_list["wire"])
src.disabled = !src.disabled
src.shock(usr)
spawn(100) src.disabled = !src.disabled
if(src.shock_wire == href_list["wire"])
src.shocked = !src.shocked
src.shock(usr)
spawn(100) src.shocked = !src.shocked
if(href_list["act"] == "wire")
if (!istype(usr.equipped(), /obj/item/weapon/wirecutters))
usr << "You need wirecutters!"
else else
if(src.hack_wire == href_list["wire"]) if(src.hack_wire == href_list["wire"])
src.hacked = !src.hacked src.hacked = !src.hacked
spawn(100) src.hacked = !src.hacked
if(src.disable_wire == href_list["wire"]) if(src.disable_wire == href_list["wire"])
src.disabled = !src.disabled src.disabled = !src.disabled
src.shock(usr) src.shock(usr)
spawn(100) src.disabled = !src.disabled
if(src.shock_wire == href_list["wire"]) if(src.shock_wire == href_list["wire"])
src.shocked = !src.shocked src.shocked = !src.shocked
src.shock(usr) src.shock(usr)
spawn(100) src.shocked = !src.shocked else
if(href_list["act"] == "wire") usr << "\red The autolathe is busy. Please wait for completion of previous operation."
if (!istype(usr.equipped(), /obj/item/weapon/wirecutters))
usr << "You need wirecutters!"
else
if(src.hack_wire == href_list["wire"])
src.hacked = !src.hacked
if(src.disable_wire == href_list["wire"])
src.disabled = !src.disabled
src.shock(usr)
if(src.shock_wire == href_list["wire"])
src.shocked = !src.shocked
src.shock(usr)
if (href_list["temp"])
src.temp = null
for(var/mob/M in viewers(1, src))
if ((M.client && M.machine == src))
src.attack_hand(M)
src.updateUsrDialog() src.updateUsrDialog()
return return
var/global/list/autolathe_recipes = list( \
/* screwdriver removed*/ \
new /obj/item/weapon/wirecutters(), \
new /obj/item/weapon/wrench(), \
new /obj/item/weapon/crowbar(), \
new /obj/item/weapon/weldingtool(), \
new /obj/item/clothing/head/helmet/welding(), \
new /obj/item/device/multitool(), \
new /obj/item/weapon/airlock_electronics(), \
new /obj/item/device/flashlight(), \
new /obj/item/weapon/extinguisher(), \
new /obj/item/stack/sheet/metal(), \
new /obj/item/stack/sheet/glass(), \
new /obj/item/stack/sheet/r_metal(), \
new /obj/item/stack/sheet/rglass(), \
new /obj/item/stack/rods(), \
new /obj/item/weapon/rcd_ammo(), \
new /obj/item/weapon/scalpel(), \
new /obj/item/weapon/circular_saw(), \
new /obj/item/device/t_scanner(), \
new /obj/item/weapon/reagent_containers/glass/bucket(), \
new /obj/item/weapon/ammo/shell/blank(), \
new /obj/item/device/taperecorder(), \
)
var/global/list/autolathe_recipes_hidden = list( \
new /obj/item/weapon/flamethrower(), \
new /obj/item/device/igniter(), \
new /obj/item/device/timer(), \
new /obj/item/weapon/rcd(), \
new /obj/item/device/infra(), \
new /obj/item/device/infra_sensor(), \
new /obj/item/weapon/handcuffs(), \
new /obj/item/weapon/ammo/a357(), \
new /obj/item/weapon/ammo/shell/gauge(), \
new /obj/item/weapon/ammo/a38(), \
new /obj/item/weapon/ammo/shell/beanbag(), \
new /obj/item/weapon/ammo/shell/dart(), \
/* new /obj/item/weapon/shield/riot(), */ \
)
/obj/machinery/autolathe/New() /obj/machinery/autolathe/New()
..() ..()
// screwdriver removed src.L = autolathe_recipes
src.L += new /obj/item/weapon/wirecutters(src) src.LL = autolathe_recipes_hidden
src.L += new /obj/item/weapon/wrench(src)
src.L += new /obj/item/weapon/crowbar(src)
src.L += new /obj/item/weapon/weldingtool(src)
src.L += new /obj/item/clothing/head/helmet/welding(src)
src.L += new /obj/item/device/multitool(src)
src.L += new /obj/item/weapon/airlock_electronics(src)
src.L += new /obj/item/device/flashlight(src)
src.L += new /obj/item/weapon/extinguisher(src)
src.L += new /obj/item/weapon/sheet/metal(src)
src.L += new /obj/item/weapon/sheet/glass(src)
src.L += new /obj/item/weapon/sheet/r_metal(src)
src.L += new /obj/item/weapon/sheet/rglass(src)
src.L += new /obj/item/weapon/rods(src)
src.L += new /obj/item/weapon/rcd_ammo(src)
src.L += new /obj/item/weapon/scalpel(src)
src.L += new /obj/item/weapon/circular_saw(src)
src.L += new /obj/item/device/t_scanner(src)
src.L += new /obj/item/weapon/reagent_containers/glass/bucket(src)
src.L += new /obj/item/weapon/ammo/shell/blank(src)
src.L += new /obj/item/device/taperecorder(src)
src.LL += new /obj/item/weapon/flamethrower(src)
src.LL += new /obj/item/device/igniter(src)
src.LL += new /obj/item/device/timer(src)
src.LL += new /obj/item/weapon/rcd(src)
src.LL += new /obj/item/device/infra(src)
src.LL += new /obj/item/device/infra_sensor(src)
src.LL += new /obj/item/weapon/handcuffs(src)
src.LL += new /obj/item/weapon/ammo/a357(src)
src.LL += new /obj/item/weapon/ammo/shell/gauge(src)
src.LL += new /obj/item/weapon/ammo/a38(src)
src.LL += new /obj/item/weapon/ammo/shell/beanbag(src)
src.LL += new /obj/item/weapon/ammo/shell/dart(src)
// src.LL += new /obj/item/weapon/shield/riot(src)
src.wires["Light Red"] = 0 src.wires["Light Red"] = 0
src.wires["Dark Red"] = 0 src.wires["Dark Red"] = 0
src.wires["Blue"] = 0 src.wires["Blue"] = 0

View File

@@ -74,21 +74,14 @@
return return
/obj/machinery/bot/floorbot/attackby(var/obj/item/weapon/W , mob/user as mob) /obj/machinery/bot/floorbot/attackby(var/obj/item/W , mob/user as mob)
if(istype(W, /obj/item/weapon/tile)) if(istype(W, /obj/item/stack/tile))
var/obj/item/weapon/tile/T = W var/obj/item/stack/tile/T = W
if(src.amount >= 50) if(src.amount >= 50)
return return
var/loaded = 0 var/loaded = min(50-src.amount, T.amount)
if(src.amount + T.amount > 50) T.use(loaded)
var/i = 50 - src.amount src.amount += loaded
src.amount += i
T.amount -= i
loaded = i
else
src.amount += T.amount
loaded = T.amount
del(T)
user << "\red You load [loaded] tiles into the floorbot. He now contains [src.amount] tiles!" user << "\red You load [loaded] tiles into the floorbot. He now contains [src.amount] tiles!"
src.updateicon() src.updateicon()
if(istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) if(istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
@@ -162,7 +155,7 @@
floorbottargets += bot.target floorbottargets += bot.target
if(src.amount <= 0 && ((src.target == null) || !src.target)) if(src.amount <= 0 && ((src.target == null) || !src.target))
if(src.eattiles) if(src.eattiles)
for(var/obj/item/weapon/tile/T in view(7, src)) for(var/obj/item/stack/tile/T in view(7, src))
if(T != src.oldtarget && !(target in floorbottargets)) if(T != src.oldtarget && !(target in floorbottargets))
src.oldtarget = T src.oldtarget = T
src.target = T src.target = T
@@ -170,7 +163,7 @@
if(src.target == null || !src.target) if(src.target == null || !src.target)
if(src.maketiles) if(src.maketiles)
if(src.target == null || !src.target) if(src.target == null || !src.target)
for(var/obj/item/weapon/sheet/metal/M in view(7, src)) for(var/obj/item/stack/sheet/metal/M in view(7, src))
if(!(M in floorbottargets) && M != src.oldtarget && M.amount == 1 && !(istype(M.loc, /turf/simulated/wall))) if(!(M in floorbottargets) && M != src.oldtarget && M.amount == 1 && !(istype(M.loc, /turf/simulated/wall)))
src.oldtarget = M src.oldtarget = M
src.target = M src.target = M
@@ -208,7 +201,7 @@
src.target = F src.target = F
break break
if((!src.target || src.target == null) && src.eattiles) if((!src.target || src.target == null) && src.eattiles)
for(var/obj/item/weapon/tile/T in view(7, src)) for(var/obj/item/stack/tile/T in view(7, src))
if(!(T in floorbottargets) && T != src.oldtarget) if(!(T in floorbottargets) && T != src.oldtarget)
src.oldtarget = T src.oldtarget = T
src.target = T src.target = T
@@ -238,9 +231,9 @@
src.path = new() src.path = new()
if(src.loc == src.target || src.loc == src.target.loc) if(src.loc == src.target || src.loc == src.target.loc)
if(istype(src.target, /obj/item/weapon/tile)) if(istype(src.target, /obj/item/stack/tile))
src.eattile(src.target) src.eattile(src.target)
else if(istype(src.target, /obj/item/weapon/sheet/metal)) else if(istype(src.target, /obj/item/stack/sheet/metal))
src.maketile(src.target) src.maketile(src.target)
else if(istype(src.target, /turf/)) else if(istype(src.target, /turf/))
repair(src.target) repair(src.target)
@@ -263,7 +256,7 @@
if(istype(target, /turf/space/)) if(istype(target, /turf/space/))
for(var/mob/O in viewers(src, null)) for(var/mob/O in viewers(src, null))
O.show_message(text("\red [src] begins to repair the hole"), 1) O.show_message(text("\red [src] begins to repair the hole"), 1)
var/obj/item/weapon/tile/T = new /obj/item/weapon/tile var/obj/item/stack/tile/T = new /obj/item/stack/tile
src.repairing = 1 src.repairing = 1
spawn(50) spawn(50)
T.build(src.loc) T.build(src.loc)
@@ -284,8 +277,8 @@
src.anchored = 0 src.anchored = 0
src.target = null src.target = null
/obj/machinery/bot/floorbot/proc/eattile(var/obj/item/weapon/tile/T) /obj/machinery/bot/floorbot/proc/eattile(var/obj/item/stack/tile/T)
if(!istype(T, /obj/item/weapon/tile)) if(!istype(T, /obj/item/stack/tile))
return return
for(var/mob/O in viewers(src, null)) for(var/mob/O in viewers(src, null))
O.show_message(text("\red [src] begins to collect tiles."), 1) O.show_message(text("\red [src] begins to collect tiles."), 1)
@@ -306,8 +299,8 @@
src.target = null src.target = null
src.repairing = 0 src.repairing = 0
/obj/machinery/bot/floorbot/proc/maketile(var/obj/item/weapon/sheet/metal/M) /obj/machinery/bot/floorbot/proc/maketile(var/obj/item/stack/sheet/metal/M)
if(!istype(M, /obj/item/weapon/sheet/metal)) if(!istype(M, /obj/item/stack/sheet/metal))
return return
if(M.amount > 1) if(M.amount > 1)
return return
@@ -319,7 +312,7 @@
src.target = null src.target = null
src.repairing = 0 src.repairing = 0
return return
var/obj/item/weapon/tile/T = new /obj/item/weapon/tile var/obj/item/stack/tile/T = new /obj/item/stack/tile
T.amount = 4 T.amount = 4
T.loc = M.loc T.loc = M.loc
del(M) del(M)
@@ -334,8 +327,8 @@
/obj/item/weapon/storage/toolbox/mechanical/attackby(var/obj/item/weapon/tile/T, mob/user as mob) /obj/item/weapon/storage/toolbox/mechanical/attackby(var/obj/item/stack/tile/T, mob/user as mob)
if(!istype(T, /obj/item/weapon/tile)) if(!istype(T, /obj/item/stack/tile))
..() ..()
return return
if(src.contents.len >= 1) if(src.contents.len >= 1)

View File

@@ -38,13 +38,7 @@
return return
if(charging) if(charging)
charging.loc = usr usr.put_in_hand(charging)
charging.layer = 20
if (user.hand )
user.l_hand = charging
else
user.r_hand = charging
charging.add_fingerprint(user) charging.add_fingerprint(user)
charging.updateicon() charging.updateicon()
@@ -53,6 +47,9 @@
chargelevel = -1 chargelevel = -1
updateicon() updateicon()
/obj/machinery/cell_charger/attack_ai(mob/user)
return
/obj/machinery/cell_charger/process() /obj/machinery/cell_charger/process()
//world << "ccpt [charging] [stat]" //world << "ccpt [charging] [stat]"
if(!charging || (stat & (BROKEN|NOPOWER)) ) if(!charging || (stat & (BROKEN|NOPOWER)) )

View File

@@ -10,7 +10,7 @@
var/obj/item/brain/brain = null var/obj/item/brain/brain = null
/obj/AIcore/attackby(obj/item/weapon/P as obj, mob/user as mob) /obj/AIcore/attackby(obj/item/P as obj, mob/user as mob)
switch(state) switch(state)
if(0) if(0)
if(istype(P, /obj/item/weapon/wrench)) if(istype(P, /obj/item/weapon/wrench))
@@ -23,8 +23,7 @@
playsound(src.loc, 'Welder.ogg', 50, 1) playsound(src.loc, 'Welder.ogg', 50, 1)
if(do_after(user, 20)) if(do_after(user, 20))
user << "\blue You deconstruct the frame." user << "\blue You deconstruct the frame."
var/obj/item/weapon/sheet/r_metal/A = new /obj/item/weapon/sheet/r_metal( src.loc ) new /obj/item/stack/sheet/r_metal( src.loc, 4)
A.amount = 4
del(src) del(src)
if(1) if(1)
if(istype(P, /obj/item/weapon/wrench)) if(istype(P, /obj/item/weapon/wrench))
@@ -79,7 +78,7 @@
var/obj/item/weapon/cable_coil/A = new /obj/item/weapon/cable_coil( src.loc ) var/obj/item/weapon/cable_coil/A = new /obj/item/weapon/cable_coil( src.loc )
A.amount = 5 A.amount = 5
if(istype(P, /obj/item/weapon/sheet/rglass)) if(istype(P, /obj/item/stack/sheet/rglass))
if(P:amount >= 2) if(P:amount >= 2)
playsound(src.loc, 'Deconstruct.ogg', 50, 1) playsound(src.loc, 'Deconstruct.ogg', 50, 1)
if(do_after(user, 20)) if(do_after(user, 20))
@@ -129,8 +128,7 @@
src.icon_state = "3b" src.icon_state = "3b"
else else
src.icon_state = "3" src.icon_state = "3"
var/obj/item/weapon/sheet/rglass/A = new /obj/item/weapon/sheet/rglass( src.loc ) new /obj/item/stack/sheet/rglass( src.loc, 2 )
A.amount = 2
if(istype(P, /obj/item/weapon/screwdriver)) if(istype(P, /obj/item/weapon/screwdriver))
playsound(src.loc, 'Screwdriver.ogg', 50, 1) playsound(src.loc, 'Screwdriver.ogg', 50, 1)
user << "\blue You connect the monitor." user << "\blue You connect the monitor."

View File

@@ -105,7 +105,7 @@
/obj/computerframe/attackby(obj/item/weapon/P as obj, mob/user as mob) /obj/computerframe/attackby(obj/item/P as obj, mob/user as mob)
switch(state) switch(state)
if(0) if(0)
if(istype(P, /obj/item/weapon/wrench)) if(istype(P, /obj/item/weapon/wrench))
@@ -118,8 +118,7 @@
playsound(src.loc, 'Welder.ogg', 50, 1) playsound(src.loc, 'Welder.ogg', 50, 1)
if(do_after(user, 20)) if(do_after(user, 20))
user << "\blue You deconstruct the frame." user << "\blue You deconstruct the frame."
var/obj/item/weapon/sheet/metal/A = new /obj/item/weapon/sheet/metal( src.loc ) new /obj/item/stack/sheet/metal( src.loc, 5 )
A.amount = 5
del(src) del(src)
if(1) if(1)
if(istype(P, /obj/item/weapon/wrench)) if(istype(P, /obj/item/weapon/wrench))
@@ -171,24 +170,21 @@
var/obj/item/weapon/cable_coil/A = new /obj/item/weapon/cable_coil( src.loc ) var/obj/item/weapon/cable_coil/A = new /obj/item/weapon/cable_coil( src.loc )
A.amount = 5 A.amount = 5
if(istype(P, /obj/item/weapon/sheet/glass)) if(istype(P, /obj/item/stack/sheet/glass))
if(P:amount >= 2) if(P:amount >= 2)
playsound(src.loc, 'Deconstruct.ogg', 50, 1) playsound(src.loc, 'Deconstruct.ogg', 50, 1)
if(do_after(user, 20)) if(do_after(user, 20))
if(P) P:use(2)
P:amount -= 2 user << "\blue You put in the glass panel."
if(!P:amount) del(P) src.state = 4
user << "\blue You put in the glass panel." src.icon_state = "4"
src.state = 4
src.icon_state = "4"
if(4) if(4)
if(istype(P, /obj/item/weapon/crowbar)) if(istype(P, /obj/item/weapon/crowbar))
playsound(src.loc, 'Crowbar.ogg', 50, 1) playsound(src.loc, 'Crowbar.ogg', 50, 1)
user << "\blue You remove the glass panel." user << "\blue You remove the glass panel."
src.state = 3 src.state = 3
src.icon_state = "3" src.icon_state = "3"
var/obj/item/weapon/sheet/glass/A = new /obj/item/weapon/sheet/glass( src.loc ) new /obj/item/stack/sheet/glass( src.loc, 2 )
A.amount = 2
if(istype(P, /obj/item/weapon/screwdriver)) if(istype(P, /obj/item/weapon/screwdriver))
playsound(src.loc, 'Screwdriver.ogg', 50, 1) playsound(src.loc, 'Screwdriver.ogg', 50, 1)
user << "\blue You connect the monitor." user << "\blue You connect the monitor."

View File

@@ -172,12 +172,12 @@
/datum/recipe/humankabob /datum/recipe/humankabob
humanmeat_amount = 2 humanmeat_amount = 2
extra_item = /obj/item/weapon/rods extra_item = /obj/item/stack/rods
creates = "/obj/item/weapon/reagent_containers/food/snacks/humankabob" creates = "/obj/item/weapon/reagent_containers/food/snacks/humankabob"
/datum/recipe/monkeykabob /datum/recipe/monkeykabob
monkeymeat_amount = 2 monkeymeat_amount = 2
extra_item = /obj/item/weapon/rods extra_item = /obj/item/stack/rods
creates = "/obj/item/weapon/reagent_containers/food/snacks/monkeykabob" creates = "/obj/item/weapon/reagent_containers/food/snacks/monkeykabob"
/datum/recipe/tofubread /datum/recipe/tofubread

View File

@@ -92,7 +92,7 @@
if(istype(O,/obj/item/weapon/rcd)) if(istype(O,/obj/item/weapon/rcd))
if(O:matter < 30) if(O:matter < 30)
O:matter += 1 O:matter += 1
if(istype(O,/obj/item/weapon/sheet/metal) || istype(O,/obj/item/weapon/sheet/rglass) || istype(O,/obj/item/weapon/cable_coil)) if(istype(O,/obj/item/stack/sheet/metal) || istype(O,/obj/item/stack/sheet/rglass) || istype(O,/obj/item/weapon/cable_coil))
if(O:amount < 50) if(O:amount < 50)
O:amount += 1 O:amount += 1
// Security // Security

View File

@@ -8,8 +8,8 @@
var/operating = 0 var/operating = 0
var/obj/item/robot_parts/being_built = null var/obj/item/robot_parts/being_built = null
/obj/machinery/robotic_fabricator/attackby(var/obj/item/weapon/O as obj, var/mob/user as mob) /obj/machinery/robotic_fabricator/attackby(var/obj/item/O as obj, var/mob/user as mob)
if (istype(O, /obj/item/weapon/sheet/metal)) if (istype(O, /obj/item/stack/sheet/metal))
if (src.metal_amount < 150000.0) if (src.metal_amount < 150000.0)
var/count = 0 var/count = 0
spawn(15) spawn(15)
@@ -17,7 +17,7 @@
if(!O:amount) if(!O:amount)
return return
while(metal_amount < 150000 && O:amount) while(metal_amount < 150000 && O:amount)
src.metal_amount += O:height * O:width * O:length * 100000.0 src.metal_amount += O:m_amt /*O:height * O:width * O:length * 100000.0*/
O:amount-- O:amount--
count++ count++

View File

@@ -216,7 +216,6 @@
if(src.active >= 1) if(src.active >= 1)
src.active = 0 src.active = 0
icon_state = "Shield_Gen" icon_state = "Shield_Gen"
user << "You "
user.visible_message("[user] turned the shield generator off.", \ user.visible_message("[user] turned the shield generator off.", \
"You turn off the shield generator.", \ "You turn off the shield generator.", \

View File

@@ -32,13 +32,14 @@ However people seem to like it for some reason.
anchored = !anchored anchored = !anchored
playsound(src.loc, 'Ratchet.ogg', 75, 1) playsound(src.loc, 'Ratchet.ogg', 75, 1)
if(anchored) if(anchored)
user.visible_message("[user.name] secure [src.name] to the floor.", \ user.visible_message("[user.name] secures [src.name] to the floor.", \
"You secure the [src.name] to the floor.", \ "You secure the [src.name] to the floor.", \
"You hear ratchet") "You hear ratchet")
else else
user.visible_message("[user.name] unsecure [src.name] from the floor.", \ user.visible_message("[user.name] unsecures [src.name] from the floor.", \
"You unsecure the [src.name] to the floor.", \ "You unsecure the [src.name] from the floor.", \
"You hear ratchet") "You hear ratchet")
return
return ..() return ..()
/proc/singularity_is_surrounded(turf/T) /proc/singularity_is_surrounded(turf/T)
@@ -139,7 +140,7 @@ However people seem to like it for some reason.
/obj/machinery/the_singularity/proc/notify_collector_controller() /obj/machinery/the_singularity/proc/notify_collector_controller()
var/oldsrc = src var/oldsrc = src
src = 0 //for spawn() working even after Del(), see byond documentation about sleep() -rastaf0 src = null //for spawn() working even after Del(), see byond documentation about sleep() -rastaf0
for(var/obj/machinery/power/collector_control/myCC in orange(collector_control_range,oldsrc)) for(var/obj/machinery/power/collector_control/myCC in orange(collector_control_range,oldsrc))
spawn() myCC.updatecons() spawn() myCC.updatecons()
@@ -212,9 +213,6 @@ However people seem to like it for some reason.
gain = 2 gain = 2
else if(isturf(A)) else if(isturf(A))
if(istype(A, /turf/space))
world << "DEBUG: the_singularity tryes to eat space!!!11"
return
/*if(!active) /*if(!active)
if(isturf(A,/turf/simulated/floor/engine)) //here was a bug. But now it's a feature. -rasta0 if(isturf(A,/turf/simulated/floor/engine)) //here was a bug. But now it's a feature. -rasta0
return*/ return*/
@@ -299,19 +297,13 @@ However people seem to like it for some reason.
if (istype(X,/turf/simulated/floor) && !istype(X,/turf/simulated/floor/plating)) if (istype(X,/turf/simulated/floor) && !istype(X,/turf/simulated/floor/plating))
if(!X:broken) if(!X:broken)
if(prob(80)) if(prob(80))
new/obj/item/weapon/tile (X) new/obj/item/stack/tile (X)
X:break_tile_to_plating() X:break_tile_to_plating()
else else
X:break_tile() X:break_tile()
else if(istype(X,/turf/simulated/wall)) else if(istype(X,/turf/simulated/wall))
if (istype(X,/turf/simulated/wall/r_wall)) X:dismantle_wall()
new /obj/structure/girder/reinforced( X )
new /obj/item/weapon/sheet/r_metal( X )
else
new /obj/structure/girder( X )
new /obj/item/weapon/sheet/metal( X )
X:ReplaceWithFloor()
else else
X:ReplaceWithFloor() X:ReplaceWithFloor()
@@ -662,16 +654,16 @@ However people seem to like it for some reason.
else if(state == 0) else if(state == 0)
state = 1 state = 1
playsound(src.loc, 'Ratchet.ogg', 75, 1) playsound(src.loc, 'Ratchet.ogg', 75, 1)
user.visible_message("[user.name] secure [src.name] to the floor.", \ user.visible_message("[user.name] secures [src.name] to the floor.", \
"You secure the external reinforcing bolts to the floor.", \ "You secure the external reinforcing bolts.", \
"You hear ratchet") "You hear ratchet")
src.anchored = 1 src.anchored = 1
else if(state == 1) else if(state == 1)
state = 0 state = 0
playsound(src.loc, 'Ratchet.ogg', 75, 1) playsound(src.loc, 'Ratchet.ogg', 75, 1)
user.visible_message("[user.name] unsecure [src.name] to the floor.", \ user.visible_message("[user.name] unsecures [src.name] to the floor.", \
"You undo the external reinforcing bolts to the floor.", \ "You undo the external reinforcing bolts.", \
"You hear ratchet") "You hear ratchet")
src.anchored = 0 src.anchored = 0
else else
@@ -691,7 +683,7 @@ However people seem to like it for some reason.
playsound(src.loc, 'Welder2.ogg', 50, 1) playsound(src.loc, 'Welder2.ogg', 50, 1)
if(state == 1) if(state == 1)
user.visible_message("[user.name] start to weld [src.name] to the floor.", \ user.visible_message("[user.name] starts to weld [src.name] to the floor.", \
"You start to weld the [src] to the floor.", \ "You start to weld the [src] to the floor.", \
"You hear welding") "You hear welding")
if (do_after(user,20)) if (do_after(user,20))
@@ -701,7 +693,7 @@ However people seem to like it for some reason.
return 1 return 1
else if(state == 3) else if(state == 3)
user.visible_message("[user.name] start to cut [src.name] to the floor.", \ user.visible_message("[user.name] starts to cut [src.name] from the floor.", \
"You start to cut the [src] free from the floor.", \ "You start to cut the [src] free from the floor.", \
"You hear welding") "You hear welding")
if (do_after(user,20)) if (do_after(user,20))
@@ -818,11 +810,11 @@ However people seem to like it for some reason.
src.active = !src.active src.active = !src.active
if(src.active) if(src.active)
updateicon_on() updateicon_on()
user.visible_message("[user.name] turn on the collector array.", \ user.visible_message("[user.name] turns on the collector array.", \
"You turn on the collector array.") "You turn on the collector array.")
else else
updateicon_off() updateicon_off()
user.visible_message("[user.name] turn off the collector array.", \ user.visible_message("[user.name] turns off the collector array.", \
"You turn off the collector array.") "You turn off the collector array.")
CU.updatecons() CU.updatecons()
@@ -858,11 +850,11 @@ However people seem to like it for some reason.
playsound(src.loc, 'Ratchet.ogg', 75, 1) playsound(src.loc, 'Ratchet.ogg', 75, 1)
src.anchored = !src.anchored src.anchored = !src.anchored
if(src.anchored == 1) if(src.anchored == 1)
user.visible_message("[user.name] secure [src.name] reinforcing bolts to the floor.", \ user.visible_message("[user.name] secures [src.name] reinforcing bolts to the floor.", \
"You secure the collector reinforcing bolts to the floor.", \ "You secure the collector reinforcing bolts.", \
"You hear ratchet") "You hear ratchet")
else else
user.visible_message("[user.name] unsecure [src.name] reinforcing bolts to the floor.", \ user.visible_message("[user.name] unsecures [src.name] reinforcing bolts from the floor.", \
"You undo the external reinforcing bolts.", \ "You undo the external reinforcing bolts.", \
"You hear ratchet") "You hear ratchet")
for(var/obj/machinery/power/collector_control/myCC in orange(1,src)) for(var/obj/machinery/power/collector_control/myCC in orange(1,src))
@@ -1042,12 +1034,12 @@ However people seem to like it for some reason.
playsound(src.loc, 'Ratchet.ogg', 75, 1) playsound(src.loc, 'Ratchet.ogg', 75, 1)
src.anchored = !src.anchored src.anchored = !src.anchored
if(src.anchored == 1) if(src.anchored == 1)
user.visible_message("[user.name] secure [src.name] to the floor.", \ user.visible_message("[user.name] secures [src.name] to the floor.", \
"You secure the [src.name] to the floor.", \ "You secure the [src.name] to the floor.", \
"You hear ratchet") "You hear ratchet")
connect_to_network() connect_to_network()
else else
user.visible_message("[user.name] unsecure [src.name] to the floor.", \ user.visible_message("[user.name] unsecures [src.name] to the floor.", \
"You undo the [src] securing bolts.", \ "You undo the [src] securing bolts.", \
"You hear ratchet") "You hear ratchet")
disconnect_from_network() disconnect_from_network()
@@ -1122,11 +1114,11 @@ However people seem to like it for some reason.
if(src.active >= 1) if(src.active >= 1)
// src.active = 0 // src.active = 0
// icon_state = "Field_Gen" // icon_state = "Field_Gen"
user << "You are unable to turn off the [src]r, wait till it powers down." user << "You are unable to turn off the [src], wait till it powers down."
// src.cleanup() // src.cleanup()
return 1 return 1
else else
user.visible_message("[user.name] turn on [src.name]", \ user.visible_message("[user.name] turns on [src.name]", \
"You turn on the [src].", \ "You turn on the [src].", \
"You hear heavy droning") "You hear heavy droning")
turn_on() turn_on()
@@ -1221,7 +1213,7 @@ However people seem to like it for some reason.
if(state == 0) if(state == 0)
state = 1 state = 1
playsound(src.loc, 'Ratchet.ogg', 75, 1) playsound(src.loc, 'Ratchet.ogg', 75, 1)
user.visible_message("[user.name] secure [src.name] to the floor.", \ user.visible_message("[user.name] secures [src.name] to the floor.", \
"You secure the external reinforcing bolts to the floor.", \ "You secure the external reinforcing bolts to the floor.", \
"You hear ratchet") "You hear ratchet")
src.anchored = 1 src.anchored = 1
@@ -1229,7 +1221,7 @@ However people seem to like it for some reason.
else if(state == 1) else if(state == 1)
state = 0 state = 0
playsound(src.loc, 'Ratchet.ogg', 75, 1) playsound(src.loc, 'Ratchet.ogg', 75, 1)
user.visible_message("[user.name] unsecure [src.name] reinforcing bolts to the floor.", \ user.visible_message("[user.name] unsecures [src.name] reinforcing bolts from the floor.", \
"You undo the external reinforcing bolts.", \ "You undo the external reinforcing bolts.", \
"You hear ratchet") "You hear ratchet")
src.anchored = 0 src.anchored = 0
@@ -1246,7 +1238,7 @@ However people seem to like it for some reason.
playsound(src.loc, 'Welder2.ogg', 50, 1) playsound(src.loc, 'Welder2.ogg', 50, 1)
if(state == 1) if(state == 1)
user.visible_message("[user.name] start to weld [src.name] to the floor.", \ user.visible_message("[user.name] starts to weld [src.name] to the floor.", \
"You start to weld the [src] to the floor.", \ "You start to weld the [src] to the floor.", \
"You hear welding") "You hear welding")
if (do_after(user,20)) if (do_after(user,20))
@@ -1256,7 +1248,7 @@ However people seem to like it for some reason.
return 1 return 1
else if(state == 3) else if(state == 3)
user.visible_message("[user.name] start to cut [src.name] free from the floor.", \ user.visible_message("[user.name] starts to cut [src.name] free from the floor.", \
"You start to cut the [src] free from the floor.", \ "You start to cut the [src] free from the floor.", \
"You hear welding") "You hear welding")
if (do_after(user,20)) if (do_after(user,20))

View File

@@ -144,7 +144,7 @@
user << "\blue You need more welding fuel to complete this task." user << "\blue You need more welding fuel to complete this task."
return return
W:use_fuel(1) W:use_fuel(1)
new /obj/item/weapon/sheet/metal(src.loc) new /obj/item/stack/sheet/metal(src.loc)
for (var/mob/M in viewers(src)) for (var/mob/M in viewers(src))
M.show_message("\red [src] has been cut apart by [user.name] with the weldingtool.", 3, "\red You hear welding.", 2) M.show_message("\red [src] has been cut apart by [user.name] with the weldingtool.", 3, "\red You hear welding.", 2)
del(src) del(src)

View File

@@ -82,7 +82,7 @@ obj/door_assembly
state = 1 state = 1
glass = 1 glass = 1
/obj/door_assembly/attackby(obj/item/weapon/W as obj, mob/user as mob) /obj/door_assembly/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/weldingtool) && W:welding && !anchored ) if(istype(W, /obj/item/weapon/weldingtool) && W:welding && !anchored )
if (W:get_fuel() < 1) if (W:get_fuel() < 1)
user << "\blue You need more welding fuel to dissassemble the airlock assembly." user << "\blue You need more welding fuel to dissassemble the airlock assembly."
@@ -94,12 +94,9 @@ obj/door_assembly
sleep(40) sleep(40)
if(get_turf(user) == T) if(get_turf(user) == T)
user << "\blue You dissasembled the airlock assembly!" user << "\blue You dissasembled the airlock assembly!"
new /obj/item/weapon/sheet/metal(get_turf(src)) new /obj/item/stack/sheet/metal(get_turf(src), 4)
new /obj/item/weapon/sheet/metal(get_turf(src))
new /obj/item/weapon/sheet/metal(get_turf(src))
new /obj/item/weapon/sheet/metal(get_turf(src))
if(src.glass==1) if(src.glass==1)
new /obj/item/weapon/sheet/rglass(get_turf(src)) new /obj/item/stack/sheet/rglass(get_turf(src))
del(src) del(src)
else if(istype(W, /obj/item/weapon/wrench) && !anchored ) else if(istype(W, /obj/item/weapon/wrench) && !anchored )
playsound(src.loc, 'Ratchet.ogg', 100, 1) playsound(src.loc, 'Ratchet.ogg', 100, 1)
@@ -207,7 +204,7 @@ obj/door_assembly
ae = electronics ae = electronics
electronics = null electronics = null
ae.loc = src.loc ae.loc = src.loc
else if(istype(W, /obj/item/weapon/sheet/rglass) && glass == 0) else if(istype(W, /obj/item/stack/sheet/rglass) && glass == 0)
playsound(src.loc, 'Crowbar.ogg', 100, 1) playsound(src.loc, 'Crowbar.ogg', 100, 1)
var/turf/T = get_turf(user) var/turf/T = get_turf(user)
user.visible_message("[user] adds reinforced glass windows to the airlock assembly.", "You start to install reinforced glass windows into the airlock assembly.") user.visible_message("[user] adds reinforced glass windows to the airlock assembly.", "You start to install reinforced glass windows into the airlock assembly.")

View File

@@ -131,11 +131,11 @@
src.icon_state = "brokengrille" src.icon_state = "brokengrille"
src.density = 0 src.density = 0
src.destroyed = 1 src.destroyed = 1
new /obj/item/weapon/rods( src.loc ) new /obj/item/stack/rods( src.loc )
else else
if (src.health <= -10.0) if (src.health <= -10.0)
new /obj/item/weapon/rods( src.loc ) new /obj/item/stack/rods( src.loc )
//SN src = null //SN src = null
del(src) del(src)
return return

View File

@@ -2,8 +2,7 @@
/obj/item/apc_frame/attackby(obj/item/weapon/W as obj, mob/user as mob) /obj/item/apc_frame/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/wrench)) if (istype(W, /obj/item/weapon/wrench))
var/obj/item/weapon/sheet/metal/M = new /obj/item/weapon/sheet/metal( src.loc ) new /obj/item/stack/sheet/metal( src.loc, 2 )
M.amount = 2
del(src) del(src)
/obj/item/apc_frame/proc/try_build(turf/on_wall) /obj/item/apc_frame/proc/try_build(turf/on_wall)

View File

@@ -71,18 +71,13 @@
return 0 return 0
/obj/item/robot_parts/robot_suit/attackby(obj/item/W as obj, mob/user as mob) /obj/item/robot_parts/robot_suit/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/sheet/metal)) if(istype(W, /obj/item/stack/sheet/metal))
var/obj/item/weapon/ed209_assembly/B = new /obj/item/weapon/ed209_assembly var/obj/item/weapon/ed209_assembly/B = new /obj/item/weapon/ed209_assembly
B.loc = user
if (user.r_hand == W)
user.u_equip(W)
user.r_hand = B
else
user.u_equip(W)
user.l_hand = B
B.layer = 20
user << "You armed the robot frame" user << "You armed the robot frame"
del(W) W:use(1)
if (user.get_inactive_hand()==src)
user.before_take_item(src)
user.put_in_inactive_hand(B)
del(src) del(src)
if(istype(W, /obj/item/robot_parts/l_leg)) if(istype(W, /obj/item/robot_parts/l_leg))
user.drop_item() user.drop_item()

View File

@@ -21,7 +21,7 @@ GETLINEEEEEEEEEEEEEEEEEEEEE
var/lit = 0 //on or off var/lit = 0 //on or off
var/turf/previousturf = null var/turf/previousturf = null
var/obj/item/weapon/weldingtool/part1 = null var/obj/item/weapon/weldingtool/part1 = null
var/obj/item/weapon/rods/part2 = null var/obj/item/stack/rods/part2 = null
var/obj/item/device/igniter/part3 = null var/obj/item/device/igniter/part3 = null
var/obj/item/weapon/tank/plasma/part4 = null var/obj/item/weapon/tank/plasma/part4 = null
m_amt = 500 m_amt = 500
@@ -155,7 +155,7 @@ GETLINEEEEEEEEEEEEEEEEEEEEE
if(isturf(location)) //start a fire if possible if(isturf(location)) //start a fire if possible
location.hotspot_expose(700, 2) location.hotspot_expose(700, 2)
/obj/item/weapon/flamethrower/attackby(obj/item/weapon/tank/plasma/W as obj, mob/user as mob) /obj/item/weapon/flamethrower/attackby(obj/item/W as obj, mob/user as mob)
if(user.stat || user.restrained() || user.lying) if(user.stat || user.restrained() || user.lying)
return return
if (istype(W,/obj/item/weapon/tank/plasma)) if (istype(W,/obj/item/weapon/tank/plasma))

View File

@@ -1,278 +0,0 @@
/*
CONTAINS:
GLASS SHEET
REINFORCED GLASS SHEET
SHARDS
*/
/obj/item/weapon/sheet/glass/attack_hand(mob/user as mob)
if ((user.r_hand == src || user.l_hand == src))
src.add_fingerprint(user)
var/obj/item/weapon/sheet/glass/F = new /obj/item/weapon/sheet/glass( user )
F.amount = 1
src.amount--
if (user.hand)
user.l_hand = F
else
user.r_hand = F
F.layer = 20
F.add_fingerprint(user)
if (src.amount < 1)
//SN src = null
del(src)
return
else
..()
src.force = 5
return
/obj/item/weapon/sheet/glass/attackby(obj/item/weapon/W, mob/user)
if ( istype(W, /obj/item/weapon/sheet/glass) )
var/obj/item/weapon/sheet/glass/G = W
if (G.amount >= MAX_STACK_AMOUNT_GLASS)
return
if (G.amount + src.amount > MAX_STACK_AMOUNT_GLASS)
src.amount = G.amount + src.amount - MAX_STACK_AMOUNT_GLASS
G.amount = MAX_STACK_AMOUNT_GLASS
else
G.amount += src.amount
//SN src = null
del(src)
return
return
else if( istype(W, /obj/item/weapon/rods) )
var/obj/item/weapon/rods/V = W
var/obj/item/weapon/sheet/rglass/R = new /obj/item/weapon/sheet/rglass(user.loc)
R.loc = user.loc
R.add_fingerprint(user)
if(V.amount == 1)
if(user.client)
user.client.screen -= V
user.u_equip(W)
del(W)
else
V.amount--
if(src.amount == 1)
if(user.client)
user.client.screen -= src
user.u_equip(src)
del(src)
else
src.amount--
return
/obj/item/weapon/sheet/glass/examine()
set src in view(1)
..()
usr << text("There are [] glass sheet\s on the stack.", src.amount)
return
/obj/item/weapon/sheet/glass/attack_self(mob/user as mob)
if (!( istype(usr.loc, /turf/simulated) ))
return
if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
usr << "\red You don't have the dexterity to do this!"
return
switch(alert("Sheet-Glass", "Would you like full tile glass or one direction?", "one direct", "full (2 sheets)", "cancel", null))
if("one direct")
var/go = 1
for (var/obj/window/win in usr.loc)
if(win.ini_dir == NORTHWEST || win.ini_dir == NORTHEAST || win.ini_dir == SOUTHWEST || win.ini_dir == SOUTHEAST)
go = 0
if(go)
var/obj/window/W = new /obj/window( usr.loc )
W.anchored = 0
if (src.amount < 1)
return
src.amount--
else usr << "Can't let you do that."
if("full (2 sheets)")
var/go = 1
for (var/obj/window/win in usr.loc)
if(win)
go = 0
if (go)
if (src.amount < 2)
return
src.amount -= 2
var/obj/window/W = new /obj/window( usr.loc )
W.dir = SOUTHWEST
W.ini_dir = SOUTHWEST
W.anchored = 0
else usr << "Can't let you do that."
else
if (src.amount <= 0)
user.u_equip(src)
del(src)
return
return
// REINFORCED GLASS
/obj/item/weapon/sheet/rglass/attack_hand(mob/user as mob)
if ((user.r_hand == src || user.l_hand == src))
src.add_fingerprint(user)
var/obj/item/weapon/sheet/rglass/F = new /obj/item/weapon/sheet/rglass( user )
F.amount = 1
src.amount--
if (user.hand)
user.l_hand = F
else
user.r_hand = F
F.layer = 20
F.add_fingerprint(user)
if (src.amount < 1)
//SN src = null
del(src)
return
else
..()
src.force = 5
return
/obj/item/weapon/sheet/rglass/attackby(obj/item/weapon/sheet/rglass/W as obj, mob/user as mob)
if (!( istype(W, /obj/item/weapon/sheet/rglass) ))
return
if (W.amount >= MAX_STACK_AMOUNT_GLASS)
return
if (W.amount + src.amount > MAX_STACK_AMOUNT_GLASS)
src.amount = W.amount + src.amount - MAX_STACK_AMOUNT_GLASS
W.amount = MAX_STACK_AMOUNT_GLASS
else
W.amount += src.amount
del(src)
return
return
/obj/item/weapon/sheet/rglass/examine()
set src in view(1)
..()
usr << text("There are [] reinforced glass sheet\s on the stack.", src.amount)
return
/obj/item/weapon/sheet/rglass/attack_self(mob/user as mob)
if (!istype(usr.loc, /turf/simulated))
return
if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
usr << "\red You don't have the dexterity to do this!"
return
switch(alert("Sheet Reinf. Glass", "Would you like full tile glass or one direction?", "one direct", "full (2 sheets)", "cancel", null))
if("one direct")
var/go = 1
for (var/obj/window/win in usr.loc)
if(win.ini_dir == NORTHWEST || win.ini_dir == NORTHEAST || win.ini_dir == SOUTHWEST || win.ini_dir == SOUTHEAST)
go = 0
if(go)
var/obj/window/W = new /obj/window( usr.loc, 1 )
W.anchored = 0
W.state = 0
if (src.amount < 1)
return
src.amount--
else usr << "Can't let you do that."
if("full (2 sheets)")
var/go = 1
for (var/obj/window/win in usr.loc)
if(win)
go = 0
if(go)
if (src.amount < 2)
return
src.amount -= 2
var/obj/window/W = new /obj/window( usr.loc, 1 )
W.dir = SOUTHWEST
W.ini_dir = SOUTHWEST
W.anchored = 0
W.state = 0
else usr << "Can't let you do that."
else
if (src.amount <= 0)
user.u_equip(src)
//SN src = null
del(src)
return
return
// SHARDS
/obj/item/weapon/shard/Bump()
spawn( 0 )
if (prob(20))
src.force = 15
else
src.force = 4
..()
return
return
/obj/item/weapon/shard/New()
//****RM
//world<<"New shard at [x],[y],[z]"
src.icon_state = pick("large", "medium", "small")
switch(src.icon_state)
if("small")
src.pixel_x = rand(1, 18)
src.pixel_y = rand(1, 18)
if("medium")
src.pixel_x = rand(1, 16)
src.pixel_y = rand(1, 16)
if("large")
src.pixel_x = rand(1, 10)
src.pixel_y = rand(1, 5)
else
return
/obj/item/weapon/shard/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
if (!( istype(W, /obj/item/weapon/weldingtool) && W:welding ))
return
W:eyecheck(user)
new /obj/item/weapon/sheet/glass( user.loc )
//SN src = null
del(src)
return
/obj/item/weapon/shard/HasEntered(AM as mob|obj)
if(ismob(AM))
var/mob/M = AM
M << "\red <B>You step in the broken glass!</B>"
playsound(src.loc, 'glass_step.ogg', 50, 1)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(!H.shoes)
var/datum/organ/external/affecting = H.organs[pick("l_foot", "r_foot")]
H.weakened = max(3, H.weakened)
affecting.take_damage(5, 0)
H.UpdateDamageIcon()
H.updatehealth()
..()

View File

@@ -1,466 +0,0 @@
/*
CONTAINS:
RODS
METAL
REINFORCED METAL
LATTICE
*/
// RODS
/obj/item/weapon/rods/examine()
set src in view(1)
..()
usr << text("There are [] rod\s left on the stack.", src.amount)
return
/obj/item/weapon/rods/attack_hand(mob/user as mob)
if ((user.r_hand == src || user.l_hand == src))
src.add_fingerprint(user)
var/obj/item/weapon/rods/F = new /obj/item/weapon/rods( user )
F.amount = 1
src.amount--
if (user.hand)
user.l_hand = F
else
user.r_hand = F
F.layer = 20
F.add_fingerprint(user)
if (src.amount < 1)
//SN src = null
del(src)
return
else
..()
return
/obj/item/weapon/rods/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/weldingtool) && W:welding)
if(amount < 2)
user << "\blue You need at least two rods to do this."
return
if (W:get_fuel() < 2)
user << "\blue You need more welding fuel to complete this task."
return
W:eyecheck(user)
W:use_fuel(2)
new /obj/item/weapon/sheet/metal(usr.loc)
for (var/mob/M in viewers(src))
M.show_message("\red [src] is shaped into metal by [user.name] with the weldingtool.", 3, "\red You hear welding.", 2)
amount -= 2
if(amount == 0)
del(src)
return
if (istype(W, /obj/item/weapon/rods))
if (W:amount == MAX_STACK_AMOUNT_RODS)
return
if (W:amount + src:amount > MAX_STACK_AMOUNT_RODS)
src.amount = W:amount + src:amount - MAX_STACK_AMOUNT_RODS
W:amount = MAX_STACK_AMOUNT_RODS
else
W:amount += src:amount
//SN src = null
del(src)
return
return
/obj/item/weapon/rods/attack_self(mob/user as mob)
if (locate(/obj/grille, usr.loc))
for(var/obj/grille/G in usr.loc)
if (G.destroyed)
G.health = 10
G.density = 1
G.destroyed = 0
G.icon_state = "grille"
src.amount--
else
else
if (src.amount < 2)
return
src.amount -= 2
new /obj/grille( usr.loc )
if (src.amount < 1)
del(src)
return
src.add_fingerprint(user)
return
// METAL SHEET
/obj/item/weapon/sheet/metal/examine()
set src in view(1)
..()
usr << text("There are [] metal sheet\s on the stack.", src.amount)
return
/obj/item/weapon/sheet/metal/attack_hand(mob/user as mob)
if ((user.r_hand == src || user.l_hand == src))
src.add_fingerprint(user)
var/obj/item/weapon/sheet/metal/F = new /obj/item/weapon/sheet/metal( user )
F.amount = 1
src.amount--
if (user.hand)
user.l_hand = F
else
user.r_hand = F
F.layer = 20
F.add_fingerprint(user)
if (src.amount < 1)
del(src)
return
else
..()
src.force = 5
return
/obj/item/weapon/sheet/metal/attackby(obj/item/weapon/sheet/metal/W as obj, mob/user as mob)
if (!( istype(W, /obj/item/weapon/sheet/metal) ))
return
if (W.amount >= MAX_STACK_AMOUNT_METAL)
return
if (W.amount + src.amount > MAX_STACK_AMOUNT_METAL)
src.amount = W.amount + src.amount - MAX_STACK_AMOUNT_METAL
W.amount = MAX_STACK_AMOUNT_METAL
else
W.amount += src.amount
//SN src = null
del(src)
return
return
/obj/item/weapon/sheet/metal/attack_self(mob/user as mob)
var/t1 = text("<HTML><HEAD></HEAD><TT>Amount Left: [] <BR>", src.amount)
var/list/L = list( )
L["stool"] = "stool"
L["chair"] = "chair"
L["bed"] = "bed (2 metal)<BR>"
L["table"] = "table parts (2 metal)"
L["rack"] = "rack parts<BR>"
L["aircan"] = "air canister (2 metal)"
L["o2can"] = "oxygen canister (2 metal)"
L["carboncan"] = "co2 canister (2 metal)"
L["plcan"] = "plasma canister (2 metal)"
L["n2can"] = "n2 canister (2 metal)"
L["n2ocan"] = "n2o canister (2 metal)"
L["closet"] = "closet (2 metal)<BR>"
L["fl_tiles"] = "4x floor tiles"
L["rods"] = "2x metal rods"
L["casing"] = "grenade casing (1 metal)"
L["reinforced"] = "reinforced sheet (2 metal)<BR>"
L["computer"] = "computer frame (5 metal)<BR>"
L["construct"] = "construct wall girders (2 metal)"
L["airlock"] = "construct airlock assembly (4 metal)"
L["apc_frame"] = "construct apc frame (2 metal)"
for(var/t in L)
t1 += text("<A href='?src=\ref[];make=[]'>[]</A> ", src, t, L[t])
t1 += "<BR>"
t1 += "</TT></HTML>"
user << browse(t1, "window=met_sheet")
onclose(user, "met_sheet")
return
/obj/item/weapon/sheet/metal/Topic(href, href_list)
..()
if ((usr.restrained() || usr.stat || usr.equipped() != src))
return
if (href_list["make"])
if (src.amount < 1)
//SN src = null
del(src)
return
switch(href_list["make"])
if("rods")
src.amount--
var/obj/item/weapon/rods/R = new /obj/item/weapon/rods( usr.loc )
R.amount = 2
if("table")
if (src.amount < 2)
usr << text("\red You haven't got enough metal to build the table parts!")
return
src.amount -= 2
new /obj/item/weapon/table_parts( usr.loc )
if("stool")
src.amount--
new /obj/stool( usr.loc )
if("chair")
src.amount--
var/obj/stool/chair/C = new /obj/stool/chair( usr.loc )
C.dir = usr.dir
if (C.dir == NORTH)
C.layer = 5
if("rack")
src.amount--
new /obj/item/weapon/rack_parts( usr.loc )
if("aircan")
if (src.amount < 2)
usr << text("\red You haven't got enough metal to build the canister!")
return
src.amount -= 2
var/obj/machinery/portable_atmospherics/canister/C = new /obj/machinery/portable_atmospherics/canister(usr.loc)
C.color = "grey"
C.icon_state = "grey"
if("o2can")
if (src.amount < 2)
usr << text("\red You haven't got enough metal to build the canister!")
return
src.amount -= 2
var/obj/machinery/portable_atmospherics/canister/C = new /obj/machinery/portable_atmospherics/canister(usr.loc)
C.color = "blue"
C.icon_state = "blue"
if("carboncan")
if (src.amount < 2)
usr << text("\red You haven't got enough metal to build the canister!")
return
src.amount -= 2
var/obj/machinery/portable_atmospherics/canister/C = new /obj/machinery/portable_atmospherics/canister(usr.loc)
C.color = "black"
C.icon_state = "black"
if("plcan")
if (src.amount < 2)
usr << text("\red You haven't got enough metal to build the canister!")
return
src.amount -= 2
var/obj/machinery/portable_atmospherics/canister/C = new /obj/machinery/portable_atmospherics/canister(usr.loc)
C.color = "orange"
C.icon_state = "orange"
if("n2can")
if (src.amount < 2)
usr << text("\red You haven't got enough metal to build the canister!")
return
src.amount -= 2
var/obj/machinery/portable_atmospherics/canister/C = new /obj/machinery/portable_atmospherics/canister(usr.loc)
C.color = "red"
C.icon_state = "red"
if("n2ocan")
if (src.amount < 2)
usr << text("\red You haven't got enough metal to build the canister!")
return
src.amount -= 2
var/obj/machinery/portable_atmospherics/canister/C = new /obj/machinery/portable_atmospherics/canister(usr.loc)
C.color = "redws"
C.icon_state = "redws"
if("reinforced")
if (src.amount < 2)
usr << text("\red You haven't got enough metal to build the reinforced sheet!")
return
src.amount -= 2
var/obj/item/weapon/sheet/r_metal/C = new /obj/item/weapon/sheet/r_metal( usr.loc )
C.amount = 1
if("casing")
if (src.amount < 1) //Not possible!
usr << text("\red You haven't got enough metal to create the grenade casing!")
return
src.amount--
new /obj/item/weapon/chem_grenade( usr.loc )
if("closet")
if (src.amount < 2)
usr << text("\red You haven't got enough metal to build the reinforced closet!")
return
src.amount -= 2
new /obj/closet( usr.loc )
if("fl_tiles")
src.amount--
var/obj/item/weapon/tile/R = new /obj/item/weapon/tile( usr.loc )
R.amount = 4
if("bed")
if (src.amount < 2)
usr << text("\red You haven't got enough metal to build the bed!")
return
src.amount -= 2
new /obj/stool/bed( usr.loc )
if("computer")
if(src.amount < 5)
usr << text("\red You haven't got enough metal to build the computer frame!")
return
src.amount -= 5
new /obj/computerframe( usr.loc )
if("construct")
if (src.amount < 2)
usr << text("\red You haven't got enough metal to construct the wall girders!")
return
usr << "\blue Building wall girders ..."
var/turf/location = usr.loc
sleep(50)
if ((usr.loc == location))
if (!istype(location, /turf/simulated/floor))
return
src.amount -= 2
new /obj/structure/girder(location)
if("airlock")
if (src.amount < 4)
usr << text("\red You haven't got enough metal to construct the airlock assembly!")
return
usr << "\blue Building airlock assembly ..."
var/turf/location = usr.loc
sleep(50)
if ((usr.loc == location))
if (!istype(location, /turf/simulated/floor))
return
src.amount -= 4
new /obj/door_assembly(location)
if("apc_frame")
if (src.amount < 2)
usr << text("\red You haven't got enough metal to build the APC frame!")
return
src.amount -= 2
new /obj/item/apc_frame(usr.loc)
if (src.amount <= 0)
usr << browse(null, "window=met_sheet")
onclose(usr, "met_sheet")
usr.u_equip(src)
del(src)
return
spawn( 0 )
src.attack_self(usr)
return
return
// REINFORCED METAL SHEET
/obj/item/weapon/sheet/r_metal/attackby(obj/item/weapon/sheet/r_metal/W as obj, mob/user as mob)
if (!( istype(W, /obj/item/weapon/sheet/r_metal) ))
return
if (W.amount >= MAX_STACK_AMOUNT_METAL)
return
if (W.amount + src.amount > MAX_STACK_AMOUNT_METAL)
src.amount = W.amount + src.amount - MAX_STACK_AMOUNT_METAL
W.amount = MAX_STACK_AMOUNT_METAL
else
W.amount += src.amount
//SN src = null
del(src)
return
return
/obj/item/weapon/sheet/r_metal/attack_self(mob/user as mob)
var/t1 = text("<HTML><HEAD></HEAD><TT>Amount Left: [] <BR>", src.amount)
var/list/L = list( )
L["table"] = "table parts (2 metal)"
L["metal"] = "2x metal sheet (1 metal)<BR>"
L["core"] = "AI core (4 metal)"
for(var/t in L)
t1 += text("<A href='?src=\ref[];make=[]'>[]</A> ", src, t, L[t])
t1 += "<BR>"
t1 += "</TT></HTML>"
user << browse(t1, "window=met_sheet")
onclose(user, "met_sheet")
return
/obj/item/weapon/sheet/r_metal/Topic(href, href_list)
..()
if ((usr.restrained() || usr.stat || usr.equipped() != src))
return
if (href_list["make"])
if (src.amount < 1)
//SN src = null
del(src)
return
switch(href_list["make"])
if("table")
if (src.amount < 2)
usr << text("\red You haven't got enough metal to build the reinforced table parts!")
return
src.amount -= 2
new /obj/item/weapon/table_parts/reinforced( usr.loc )
if("metal")
if (src.amount < 1)
usr << text("\red You haven't got enough metal to build the metal sheets!")
return
src.amount -= 1
var/obj/item/weapon/sheet/metal/C = new /obj/item/weapon/sheet/metal( usr.loc )
C.amount = 2
if("core")
if (src.amount < 4)
usr << text("\red You haven't got enough metal to build the metal sheets!")
return
src.amount -= 4
new /obj/AIcore( usr.loc )
if (src.amount <= 0)
usr << browse(null, "window=met_sheet")
onclose(usr, "met_sheet")
usr.u_equip(src)
del(src)
return
spawn( 0 )
src.attack_self(usr)
return
return
// LATTICE????
/obj/lattice/blob_act()
del(src)
return
/obj/lattice/ex_act(severity)
switch(severity)
if(1.0)
del(src)
return
if(2.0)
del(src)
return
if(3.0)
return
else
return
/obj/lattice/attackby(obj/item/weapon/C as obj, mob/user as mob)
if (istype(C, /obj/item/weapon/tile))
C:build(get_turf(src))
C:amount--
playsound(src.loc, 'Genhit.ogg', 50, 1)
C.add_fingerprint(user)
if (C:amount < 1)
user.u_equip(C)
del(C)
del(src)
return
if (istype(C, /obj/item/weapon/weldingtool) && C:welding)
user << "\blue Slicing lattice joints ..."
C:eyecheck(user)
new /obj/item/weapon/rods(src.loc)
del(src)
return

View File

@@ -11,7 +11,7 @@ RACK PARTS
/obj/item/weapon/table_parts/attackby(obj/item/weapon/W as obj, mob/user as mob) /obj/item/weapon/table_parts/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/wrench)) if (istype(W, /obj/item/weapon/wrench))
new /obj/item/weapon/sheet/metal( src.loc ) new /obj/item/stack/sheet/metal( src.loc )
//SN src = null //SN src = null
del(src) del(src)
@@ -40,7 +40,7 @@ RACK PARTS
// REINFORCED TABLE PARTS // REINFORCED TABLE PARTS
/obj/item/weapon/table_parts/reinforced/attackby(obj/item/weapon/W as obj, mob/user as mob) /obj/item/weapon/table_parts/reinforced/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/wrench)) if (istype(W, /obj/item/weapon/wrench))
new /obj/item/weapon/sheet/r_metal( src.loc ) new /obj/item/stack/sheet/r_metal( src.loc )
//SN src = null //SN src = null
del(src) del(src)
@@ -70,7 +70,7 @@ RACK PARTS
// RACK PARTS // RACK PARTS
/obj/item/weapon/rack_parts/attackby(obj/item/weapon/W as obj, mob/user as mob) /obj/item/weapon/rack_parts/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/wrench)) if (istype(W, /obj/item/weapon/wrench))
new /obj/item/weapon/sheet/metal( src.loc ) new /obj/item/stack/sheet/metal( src.loc )
del(src) del(src)
return return
return return

View File

@@ -26,86 +26,3 @@ TILES
return return
// TILES
/obj/item/weapon/tile/New()
src.pixel_x = rand(1, 14)
src.pixel_y = rand(1, 14)
return
/obj/item/weapon/tile/examine()
set src in view(1)
..()
usr << text("There are [] tile\s left on the stack.", src.amount)
return
/obj/item/weapon/tile/attack_hand(mob/user as mob)
if ((user.r_hand == src || user.l_hand == src))
src.add_fingerprint(user)
var/obj/item/weapon/tile/F = new /obj/item/weapon/tile( user )
F.amount = 1
src.amount--
if (user.hand)
user.l_hand = F
else
user.r_hand = F
F.layer = 20
F.add_fingerprint(user)
if (src.amount < 1)
//SN src = null
del(src)
return
else
..()
return
/obj/item/weapon/tile/attack_self(mob/user as mob)
if (usr.stat)
return
var/T = user.loc
if (!( istype(T, /turf) ))
user << "\blue You must be on the ground!"
return
else
var/S = T
if (!( istype(S, /turf/space) ))
user << "You cannot build on or repair this turf!"
return
else
src.build(S)
src.amount--
if (src.amount < 1)
user.u_equip(src)
//SN src = null
del(src)
return
src.add_fingerprint(user)
return
/obj/item/weapon/tile/attackby(obj/item/weapon/tile/W as obj, mob/user as mob)
if (!( istype(W, /obj/item/weapon/tile) ))
return
if (W.amount == 10)
return
W.add_fingerprint(user)
if (W.amount + src.amount > 10)
src.amount = W.amount + src.amount - 10
W.amount = 10
else
W.amount += src.amount
//SN src = null
del(src)
return
return
/obj/item/weapon/tile/proc/build(turf/S as turf)
var/turf/simulated/floor/W = S.ReplaceWithFloor()
W.to_plating()
return

View File

@@ -88,15 +88,17 @@ WELDINGTOOOL
usr << text("\icon[] [] contains [] units of fuel left!", src, src.name, get_fuel() ) usr << text("\icon[] [] contains [] units of fuel left!", src, src.name, get_fuel() )
return return
/obj/item/weapon/weldingtool/attackby(obj/item/weapon/W as obj, mob/user as mob) /obj/item/weapon/weldingtool/attackby(obj/item/W as obj, mob/user as mob)
if (status == 0 && istype(W,/obj/item/weapon/screwdriver)) if (istype(W,/obj/item/weapon/screwdriver))
status = 1 status = !status
user << "\blue The welder can now be attached and modified." if (status)
else if (status == 1 && istype(W,/obj/item/weapon/rods)) user << "\blue You resecure the welder."
var/obj/item/weapon/rods/R = W else
R.amount = R.amount - 1 user << "\blue The welder can now be attached and modified."
if (R.amount == 0) src.add_fingerprint(user)
del(R) else if (status == 1 && istype(W,/obj/item/stack/rods))
var/obj/item/stack/rods/R = W
R.use(1)
var/obj/item/assembly/weld_rod/F = new /obj/item/assembly/weld_rod( user ) var/obj/item/assembly/weld_rod/F = new /obj/item/assembly/weld_rod( user )
src.loc = F src.loc = F
F.part1 = src F.part1 = src
@@ -120,10 +122,8 @@ WELDINGTOOOL
R.layer = 20 R.layer = 20
F.loc = user F.loc = user
src.add_fingerprint(user) src.add_fingerprint(user)
else if (status == 1 && istype(W,/obj/item/weapon/screwdriver)) else
status = 0 ..()
user << "\blue You resecure the welder."
return
// helper functions for weldingtool fuel use // helper functions for weldingtool fuel use

View File

@@ -0,0 +1,137 @@
/*
CONTAINS:
GLASS SHEET
REINFORCED GLASS SHEET
SHARDS
*/
/proc/construct_window(mob/usr as mob, obj/item/stack/sheet/src as obj)
if (!( istype(usr.loc, /turf/simulated) ))
return
if ( ! (istype(usr, /mob/living/carbon/human) || \
istype(usr, /mob/living/silicon) || \
istype(usr, /mob/living/carbon/monkey) && ticker && ticker.mode.name == "monkey") )
usr << "\red You don't have the dexterity to do this!"
return 1
var/reinf = istype(src, /obj/item/stack/sheet/rglass)
var/title = reinf?"Sheet Reinf. Glass":"Sheet-Glass"
title += " ([src.amount] sheet\s left)"
switch(alert(title, "Would you like full tile glass or one direction?", "one direct", "full (2 sheets)", "cancel", null))
if("one direct")
if (src.amount < 1)
return 1
var/list/directions = new/list(cardinal)
for (var/obj/window/win in usr.loc)
directions-=win.dir
if(!(win.ini_dir in cardinal))
usr << "\red Can't let you do that."
return 1
var/obj/window/W = new /obj/window( usr.loc, reinf )
if (directions.len)
W.dir = directions[1]
W.ini_dir = W.dir
W.anchored = 0
src.use(1)
if("full (2 sheets)")
if (src.amount < 2)
return 1
if (locate(/obj/window) in usr.loc)
usr << "\red Can't let you do that."
return 1
var/obj/window/W = new /obj/window( usr.loc, reinf )
W.dir = SOUTHWEST
W.ini_dir = SOUTHWEST
W.anchored = 0
src.use(2)
else
//do nothing
return
// GLASS
/obj/item/stack/sheet/glass/attack_self(mob/user as mob)
construct_window(usr, src)
/obj/item/stack/sheet/glass/attackby(obj/item/W, mob/user)
if( istype(W, /obj/item/stack/rods) )
var/obj/item/stack/rods/V = W
var/obj/item/stack/sheet/rglass/RG = new (user.loc)
RG.add_fingerprint(user)
RG.add_to_stacks(user)
V.use(1)
var/obj/item/stack/sheet/glass/G = src
src = null
var/replace = (user.get_inactive_hand()==G)
G.use(1)
if (!G && !RG && replace)
user.put_in_hand(RG)
else
return ..()
// REINFORCED GLASS
/obj/item/stack/sheet/rglass/attack_self(mob/user as mob)
construct_window(usr, src)
// SHARDS
/obj/item/weapon/shard/Bump()
spawn( 0 )
if (prob(20))
src.force = 15
else
src.force = 4
..()
return
return
/obj/item/weapon/shard/New()
//****RM
//world<<"New shard at [x],[y],[z]"
src.icon_state = pick("large", "medium", "small")
switch(src.icon_state)
if("small")
src.pixel_x = rand(1, 18)
src.pixel_y = rand(1, 18)
if("medium")
src.pixel_x = rand(1, 16)
src.pixel_y = rand(1, 16)
if("large")
src.pixel_x = rand(1, 10)
src.pixel_y = rand(1, 5)
else
return
/obj/item/weapon/shard/attackby(obj/item/weapon/W as obj, mob/user as mob)
if ( istype(W, /obj/item/weapon/weldingtool) && W:welding )
W:eyecheck(user)
new /obj/item/stack/sheet/glass( user.loc )
//SN src = null
del(src)
return
return ..()
/obj/item/weapon/shard/HasEntered(AM as mob|obj)
if(ismob(AM))
var/mob/M = AM
M << "\red <B>You step in the broken glass!</B>"
playsound(src.loc, 'glass_step.ogg', 50, 1)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(!H.shoes)
var/datum/organ/external/affecting = H.organs[pick("l_foot", "r_foot")]
H.weakened = max(3, H.weakened)
affecting.take_damage(5, 0)
H.UpdateDamageIcon()
H.updatehealth()
..()

View File

@@ -0,0 +1,130 @@
/*
CONTAINS:
RODS
METAL
REINFORCED METAL
FLOOR TILES
*/
// RODS
/obj/item/stack/rods/attackby(obj/item/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/weldingtool) && W:welding)
if(amount < 2)
user << "\red You need at least two rods to do this."
return
if (W:get_fuel() < 3)
user << "\red You need more welding fuel to complete this task."
return
W:eyecheck(user)
W:use_fuel(2)
var/obj/item/stack/sheet/metal/new_item = new(usr.loc)
new_item.add_to_stacks(usr)
for (var/mob/M in viewers(src))
M.show_message("\red [src] is shaped into metal by [user.name] with the weldingtool.", 3, "\red You hear welding.", 2)
var/obj/item/stack/rods/R = src
src = null
var/replace = (user.get_inactive_hand()==R)
R.use(2)
if (!R && replace)
user.put_in_hand(new_item)
return
..()
/obj/item/stack/rods/attack_self(mob/user as mob)
src.add_fingerprint(user)
if (locate(/obj/grille, usr.loc))
for(var/obj/grille/G in usr.loc)
if (G.destroyed)
G.health = 10
G.density = 1
G.destroyed = 0
G.icon_state = "grille"
use(1)
else
return 1
else
if(amount < 2)
user << "\blue You need at least two rods to do this."
return
new /obj/grille( usr.loc )
use(2)
return
// METAL SHEET
// /datum/stack_recipe/New(title, result_type, req_amount, res_amount, max_res_amount, time, one_per_turf, on_floor = 0)
var/global/list/datum/stack_recipe/metal_recipes = list ( \
new/datum/stack_recipe("stool", /obj/stool), \
new/datum/stack_recipe("chair", /obj/stool/chair, one_per_turf = 1), \
new/datum/stack_recipe("bed", /obj/stool/bed, 2, one_per_turf = 1), \
new/datum/stack_recipe("table parts", /obj/item/weapon/table_parts, 2), \
new/datum/stack_recipe("rack parts", /obj/item/weapon/rack_parts), \
new/datum/stack_recipe("closet", /obj/closet, 2, one_per_turf = 1), \
null, \
new/datum/stack_recipe("canister", /obj/machinery/portable_atmospherics/canister, 2, one_per_turf = 1), \
null, \
new/datum/stack_recipe("floor tile", /obj/item/stack/tile, 1, 4, 10), \
new/datum/stack_recipe("metal rod", /obj/item/stack/rods, 1, 2, 60), \
new/datum/stack_recipe("reinforced sheet", /obj/item/stack/sheet/r_metal, 2, 1, 50), \
null, \
new/datum/stack_recipe("computer frame", /obj/computerframe, 5, one_per_turf = 1), \
new/datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 50, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("airlock assembly", /obj/door_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1), \
null, \
new/datum/stack_recipe("apc frame", /obj/item/apc_frame, 2), \
new/datum/stack_recipe("grenade casing", /obj/item/weapon/chem_grenade), \
)
/obj/item/stack/sheet/metal
New(var/loc, var/amount=null)
recipes = metal_recipes
return ..()
// REINFORCED METAL SHEET
// /datum/stack_recipe/New(title, result_type, req_amount, res_amount, max_res_amount, time, one_per_turf, on_floor = 0)
var/global/list/datum/stack_recipe/r_metal_recipes = list ( \
new/datum/stack_recipe("table parts", /obj/item/weapon/table_parts/reinforced, 2), \
new/datum/stack_recipe("metal sheet", /obj/item/stack/sheet/metal, 1, 2, 50), \
new/datum/stack_recipe("AI core", /obj/AIcore, 4, one_per_turf = 1), \
)
/obj/item/stack/sheet/r_metal
New(var/loc, var/amount=null)
recipes = r_metal_recipes
return ..()
// TILES
/obj/item/stack/tile/New()
src.pixel_x = rand(1, 14)
src.pixel_y = rand(1, 14)
return
/obj/item/stack/tile/attack_self(mob/user as mob)
if (usr.stat)
return
var/T = user.loc
if (!( istype(T, /turf) ))
user << "\red You must be on the ground!"
return
if (!( istype(T, /turf/space) ))
user << "\red You cannot build on or repair this turf!"
return
src.build(T)
src.add_fingerprint(user)
use(1)
return
/obj/item/stack/tile/proc/build(turf/S as turf)
var/turf/simulated/floor/W = S.ReplaceWithFloor()
W.to_plating()
return

View File

@@ -0,0 +1,203 @@
/*
Base object for stackable items.
Stackable items are:
metal
rmetal
glass
rglass
floor tiles
metal rods
*/
/obj/item/stack/New(var/loc, var/amount=null)
..()
if (amount)
src.amount=amount
return
/obj/item/stack/examine()
set src in view(1)
..()
usr << text("There are [] []\s left on the stack.", src.amount, src.singular_name)
return
/obj/item/stack/proc/use(var/amount)
src.amount-=amount
if (src.amount<=0)
var/oldsrc = src
src = null //dont kill proc after del()
usr.before_take_item(oldsrc)
del(oldsrc)
return
/obj/item/stack/proc/add_to_stacks(mob/usr as mob)
var/obj/item/stack/oldsrc = src
src = null
for (var/obj/item/stack/item in usr.loc)
if (item==oldsrc)
continue
if (!istype(item, oldsrc.type))
continue
if (item.amount>=item.max_amount)
continue
oldsrc.attackby(item, usr)
usr << "You add new [item.singular_name] to the stack. It now contains [item.amount] [item.singular_name]\s."
if(!oldsrc)
break
/obj/item/stack/attack_hand(mob/user as mob)
if (user.get_inactive_hand() == src)
var/obj/item/stack/F = new src.type( user, amount=1)
F.copy_evidences(src)
user.put_in_hand(F)
src.add_fingerprint(user)
F.add_fingerprint(user)
use(1)
if (src && usr.machine==src)
spawn(0) src.interact(usr)
else
..()
return
/obj/item/stack/attackby(obj/item/W as obj, mob/user as mob)
if (istype(W, src.type))
var/obj/item/stack/S = W
if (S.amount >= max_amount)
return 1
var/to_transfer as num
if (user.get_inactive_hand()==src)
to_transfer = 1
else
to_transfer = min(src.amount, S.max_amount-S.amount)
S.amount+=to_transfer
src.use(to_transfer)
if (src && usr.machine==src)
spawn(0) src.interact(usr)
if (S && usr.machine==S)
spawn(0) S.interact(usr)
else return ..()
/obj/item/stack/proc/copy_evidences(obj/item/stack/from as obj)
src.blood_DNA = from.blood_DNA
src.blood_type = from.blood_type
src.fingerprints = from.fingerprints
src.fingerprintshidden = from.fingerprintshidden
src.fingerprintslast = from.fingerprintslast
/datum/stack_recipe
var/title = "ERROR"
var/result_type
var/req_amount = 1
var/res_amount = 1
var/max_res_amount = 1
var/time = 0
var/one_per_turf = 0
var/on_floor = 0
New(title, result_type, req_amount = 1, res_amount = 1, max_res_amount = 1, time = 0, one_per_turf = 0, on_floor = 0)
src.title = title
src.result_type = result_type
src.req_amount = req_amount
src.res_amount = res_amount
src.max_res_amount = max_res_amount
src.time = time
src.one_per_turf = one_per_turf
src.on_floor = on_floor
/obj/item/stack
var/list/datum/stack_recipe/recipes
/obj/item/stack/attack_self(mob/user as mob)
interact(user)
/obj/item/stack/proc/interact(mob/user as mob)
if (!recipes)
return
if (!src || amount<=0)
user << browse(null, "window=stack")
user.machine = src //for correct work of onclose
var/t1 = text("<HTML><HEAD><title>Constructions from []</title></HEAD><body><TT>Amount Left: []", src, src.amount)
for(var/i=1;i<=recipes.len,i++)
var/datum/stack_recipe/R = recipes[i]
if (isnull(R))
t1 += "<hr>"
continue
if (i>1 && !isnull(recipes[i-1]))
t1+="<br>"
var/max_multiplier = round(src.amount / R.req_amount)
var/title as text
var/can_build = 1
can_build = can_build && (max_multiplier>0)
if (R.one_per_turf)
can_build = can_build && !(locate(R.result_type) in usr.loc)
if (R.on_floor)
can_build = can_build && istype(usr.loc, /turf/simulated/floor)
if (R.res_amount>1)
title+= "[R.res_amount]x [R.title]\s"
else
title+= "[R.title]"
title+= " ([R.req_amount] [src.singular_name]\s)"
if (can_build)
t1 += text("<A href='?src=\ref[];make=[]'>[]</A> ", src, i, title)
else
t1 += text("[]", title)
continue
if (R.max_res_amount>1 && max_multiplier>1)
var/multiplier = min(max_multiplier, round(R.max_res_amount/R.res_amount))
t1 += text(" | <A href='?src=\ref[];make=[];multiplier=[]'>[]x</A> ", src, i, multiplier, multiplier*R.res_amount)
t1 += "</TT></body></HTML>"
user << browse(t1, "window=stack")
onclose(user, "stack")
return
/obj/item/stack/Topic(href, href_list)
..()
if ((usr.restrained() || usr.stat || usr.equipped() != src))
return
if (href_list["make"])
if (src.amount < 1) del(src) //Never should happen
var/datum/stack_recipe/R = recipes[text2num(href_list["make"])]
var/multiplier = text2num(href_list["multiplier"])
if (!multiplier) multiplier = 1
if (src.amount < R.req_amount*multiplier)
if (R.req_amount*multiplier>1)
usr << "\red You haven't got enough [src] to build \the [R.req_amount*multiplier] [R.title]\s!"
else
usr << "\red You haven't got enough [src] to build \the [R.title]!"
return
if (R.one_per_turf && (locate(R.result_type) in usr.loc))
usr << "\red There is another [R.title] here!"
return
if (R.on_floor && !istype(usr.loc, /turf/simulated/floor))
usr << "\red \The [R.title] must be constructed on the floor!"
return
if (R.time)
usr << "\blue Building [R.title] ..."
if (!do_after(usr, R.time))
return
if (src.amount < R.req_amount*multiplier)
return
var/O = new R.result_type( usr.loc )
if (R.max_res_amount>1)
var/obj/item/stack/new_item = O
new_item.amount = R.res_amount*multiplier
//new_item.add_to_stacks(usr)
src.amount-=R.req_amount*multiplier
if (src.amount<=0)
var/oldsrc = src
src = null //dont kill proc after del()
usr.before_take_item(oldsrc)
del(oldsrc)
if (istype(O,/obj/item))
usr.put_in_hand(O)
if (src && usr.machine==src) //do not reopen closed window
spawn( 0 )
src.interact(usr)
return
return
/obj/item/stack/Del()
if (src && usr && usr.machine==src)
usr << browse(null, "window=stack")
..()

View File

@@ -20,13 +20,13 @@
/obj/stool/blob_act() /obj/stool/blob_act()
if(prob(75)) if(prob(75))
new /obj/item/weapon/sheet/metal( src.loc ) new /obj/item/stack/sheet/metal( src.loc )
del(src) del(src)
/obj/stool/attackby(obj/item/weapon/W as obj, mob/user as mob) /obj/stool/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/wrench)) if (istype(W, /obj/item/weapon/wrench))
playsound(src.loc, 'Ratchet.ogg', 50, 1) playsound(src.loc, 'Ratchet.ogg', 50, 1)
new /obj/item/weapon/sheet/metal( src.loc ) new /obj/item/stack/sheet/metal( src.loc )
//SN src = null //SN src = null
del(src) del(src)
return return
@@ -36,7 +36,7 @@
..() ..()
if (istype(W, /obj/item/weapon/wrench)) if (istype(W, /obj/item/weapon/wrench))
playsound(src.loc, 'Ratchet.ogg', 50, 1) playsound(src.loc, 'Ratchet.ogg', 50, 1)
new /obj/item/weapon/sheet/metal( src.loc ) new /obj/item/stack/sheet/metal( src.loc )
del(src) del(src)
return return

View File

@@ -15,114 +15,128 @@ obj/structure
icon_state = "reinforced" icon_state = "reinforced"
state = 2 state = 2
/obj/structure/girder/attackby(obj/item/weapon/W as obj, mob/user as mob) /obj/structure/girder/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wrench) && state == 0 && anchored && !istype(src,/obj/structure/girder/displaced)) if(istype(W, /obj/item/weapon/wrench) && state == 0 && anchored && !istype(src,/obj/structure/girder/displaced))
playsound(src.loc, 'Ratchet.ogg', 100, 1) playsound(src.loc, 'Ratchet.ogg', 100, 1)
var/turf/T = get_turf(user)
user << "\blue Now disassembling the girder" user << "\blue Now disassembling the girder"
sleep(40) if(do_after(user,40))
if(get_turf(user) == T)
user << "\blue You dissasembled the girder!" user << "\blue You dissasembled the girder!"
new /obj/item/weapon/sheet/metal(get_turf(src)) new /obj/item/stack/sheet/metal(get_turf(src))
del(src) del(src)
else if((istype(W, /obj/item/weapon/sheet/metal)) && (W:amount >= 2) && istype(src,/obj/structure/girder/displaced)) else if((istype(W, /obj/item/stack/sheet/metal)) && (W:amount >= 2) && istype(src,/obj/structure/girder/displaced))
W:amount -= 2 W:use(2)
if(W:amount <= 0)
del(W)
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/falsewall (src.loc) new /obj/falsewall (src.loc)
del(src) del(src)
else if(istype(W, /obj/item/weapon/sheet/r_metal) && istype(src,/obj/structure/girder/displaced)) else if(istype(W, /obj/item/stack/sheet/r_metal) && istype(src,/obj/structure/girder/displaced))
W:amount -= 1 W:use(2)
if(W:amount <= 0)
del(W)
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/falserwall (src.loc) new /obj/falserwall (src.loc)
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)
var/turf/T = get_turf(user)
user << "\blue Now unsecuring support struts" user << "\blue Now unsecuring support struts"
sleep(40) if(do_after(user,40))
if(get_turf(user) == T)
user << "\blue You unsecured the support struts!" user << "\blue You unsecured the support struts!"
state = 1 state = 1
else if(istype(W, /obj/item/weapon/wirecutters) && istype(src,/obj/structure/girder/reinforced) && state == 1) else if(istype(W, /obj/item/weapon/wirecutters) && istype(src,/obj/structure/girder/reinforced) && state == 1)
playsound(src.loc, 'Wirecutter.ogg', 100, 1) playsound(src.loc, 'Wirecutter.ogg', 100, 1)
var/turf/T = get_turf(user)
user << "\blue Now removing support struts" user << "\blue Now removing support struts"
sleep(40) if(do_after(user,40))
if(get_turf(user) == T)
user << "\blue You removed the support struts!" user << "\blue You removed the support struts!"
new/obj/structure/girder( src.loc ) new/obj/structure/girder( src.loc )
del(src) del(src)
else if(istype(W, /obj/item/weapon/crowbar) && state == 0 && anchored ) else if(istype(W, /obj/item/weapon/crowbar) && state == 0 && anchored )
playsound(src.loc, 'Crowbar.ogg', 100, 1) playsound(src.loc, 'Crowbar.ogg', 100, 1)
var/turf/T = get_turf(user)
user << "\blue Now dislodging the girder" user << "\blue Now dislodging the girder"
sleep(40) if(do_after(user, 40))
if(get_turf(user) == T)
user << "\blue You dislodged the girder!" user << "\blue You dislodged the girder!"
new/obj/structure/girder/displaced( src.loc ) new/obj/structure/girder/displaced( src.loc )
del(src) del(src)
else if(istype(W, /obj/item/weapon/wrench) && state == 0 && !anchored ) else if(istype(W, /obj/item/weapon/wrench) && state == 0 && !anchored )
playsound(src.loc, 'Ratchet.ogg', 100, 1) playsound(src.loc, 'Ratchet.ogg', 100, 1)
var/turf/T = get_turf(user)
user << "\blue Now securing the girder" user << "\blue Now securing the girder"
sleep(40) if(get_turf(user, 40))
if(get_turf(user) == T)
user << "\blue You secured the girder!" user << "\blue You secured the girder!"
new/obj/structure/girder( src.loc ) new/obj/structure/girder( src.loc )
del(src) del(src)
else if((istype(W, /obj/item/weapon/sheet/metal)) && (W:amount >= 2)) else if((istype(W, /obj/item/stack/sheet/metal)) && (W:amount >= 2))
var/turf/T = get_turf(user)
user << "\blue Now adding plating..." user << "\blue Now adding plating..."
sleep(40) if (do_after(user,40))
if (get_turf(user) == T)
user << "\blue You added the plating!" user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src) var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithWall() Tsrc.ReplaceWithWall()
W:amount -= 2 W:use(2)
if(W:amount <= 0)
del(W)
del(src) del(src)
return return
else if (istype(W, /obj/item/weapon/sheet/r_metal)) else if (istype(W, /obj/item/stack/sheet/r_metal))
var/turf/T = get_turf(user)
if (src.icon_state == "reinforced") //Time to finalize! if (src.icon_state == "reinforced") //Time to finalize!
user << "\blue Now finalising reinforced wall." user << "\blue Now finalising reinforced wall."
sleep(50) if(do_after(user, 50))
if(W) user << "\blue Wall fully reinforced!"
if(get_turf(user) == T) var/turf/Tsrc = get_turf(src)
user << "\blue Wall fully reinforced!" Tsrc.ReplaceWithRWall()
var/turf/Tsrc = get_turf(src) W:use(1)
Tsrc.ReplaceWithRWall() del(src)
W:amount-- return
if (W:amount <= 0)
del(W)
del(src)
return
else else
user << "\blue Now reinforcing girders" user << "\blue Now reinforcing girders"
sleep(60) if (do_after(user,60))
user << "\blue Girders reinforced!" user << "\blue Girders reinforced!"
W:amount-- W:use(1)
if (W:amount <= 0) new/obj/structure/girder/reinforced( src.loc )
del(W) del(src)
new/obj/structure/girder/reinforced( src.loc ) return
del(src)
return
else else
..() ..()
/obj/structure/girder/blob_act() /obj/structure/girder/blob_act()
if(prob(40)) if(prob(40))
del(src) del(src)
// LATTICE
/obj/lattice/blob_act()
del(src)
return
/obj/lattice/ex_act(severity)
switch(severity)
if(1.0)
del(src)
return
if(2.0)
del(src)
return
if(3.0)
return
else
return
/obj/lattice/attackby(obj/item/C as obj, mob/user as mob)
if (istype(C, /obj/item/stack/tile))
C:build(get_turf(src))
C:use(1)
playsound(src.loc, 'Genhit.ogg', 50, 1)
C.add_fingerprint(user)
del(src)
return
if (istype(C, /obj/item/weapon/weldingtool) && C:welding)
user << "\blue Slicing lattice joints ..."
C:eyecheck(user)
new /obj/item/stack/rods(src.loc)
del(src)
return

View File

@@ -10,7 +10,7 @@
health -= 35 health -= 35
if(health <=0) if(health <=0)
new /obj/item/weapon/shard( src.loc ) new /obj/item/weapon/shard( src.loc )
new /obj/item/weapon/rods( src.loc ) new /obj/item/stack/rods( src.loc )
src.density = 0 src.density = 0
del(src) del(src)
@@ -24,21 +24,21 @@
return return
if(2.0) if(2.0)
new /obj/item/weapon/shard( src.loc ) new /obj/item/weapon/shard( src.loc )
if(reinf) new /obj/item/weapon/rods( src.loc) if(reinf) new /obj/item/stack/rods( src.loc)
//SN src = null //SN src = null
del(src) del(src)
return return
if(3.0) if(3.0)
if (prob(50)) if (prob(50))
new /obj/item/weapon/shard( src.loc ) new /obj/item/weapon/shard( src.loc )
if(reinf) new /obj/item/weapon/rods( src.loc) if(reinf) new /obj/item/stack/rods( src.loc)
del(src) del(src)
return return
return return
/obj/window/blob_act() /obj/window/blob_act()
if(reinf) new /obj/item/weapon/rods( src.loc) if(reinf) new /obj/item/stack/rods( src.loc)
density = 0 density = 0
del(src) del(src)
@@ -66,7 +66,7 @@
//world << "glass at [x],[y],[z] Mhit" //world << "glass at [x],[y],[z] Mhit"
src.health = 0 src.health = 0
new /obj/item/weapon/shard( src.loc ) new /obj/item/weapon/shard( src.loc )
if(reinf) new /obj/item/weapon/rods( src.loc) if(reinf) new /obj/item/stack/rods( src.loc)
src.density = 0 src.density = 0
@@ -92,7 +92,7 @@
step(src, get_dir(AM, src)) step(src, get_dir(AM, src))
if (src.health <= 0) if (src.health <= 0)
new /obj/item/weapon/shard( src.loc ) new /obj/item/weapon/shard( src.loc )
if(reinf) new /obj/item/weapon/rods( src.loc) if(reinf) new /obj/item/stack/rods( src.loc)
src.density = 0 src.density = 0
del(src) del(src)
return return
@@ -107,7 +107,7 @@
O << text("\red [] smashes through the window!", usr) O << text("\red [] smashes through the window!", usr)
src.health = 0 src.health = 0
new /obj/item/weapon/shard( src.loc ) new /obj/item/weapon/shard( src.loc )
if(reinf) new /obj/item/weapon/rods( src.loc) if(reinf) new /obj/item/stack/rods( src.loc)
src.density = 0 src.density = 0
del(src) del(src)
return return
@@ -120,7 +120,7 @@
O << text("\red [] smashes through the window!", usr) O << text("\red [] smashes through the window!", usr)
src.health = 0 src.health = 0
new /obj/item/weapon/shard( src.loc ) new /obj/item/weapon/shard( src.loc )
if(reinf) new /obj/item/weapon/rods( src.loc) if(reinf) new /obj/item/stack/rods( src.loc)
src.density = 0 src.density = 0
del(src) del(src)
return return
@@ -142,7 +142,7 @@
src.health = 0 src.health = 0
new /obj/item/weapon/shard(src.loc) new /obj/item/weapon/shard(src.loc)
if(reinf) if(reinf)
new /obj/item/weapon/rods(src.loc) new /obj/item/stack/rods(src.loc)
src.density = 0 src.density = 0
del(src) del(src)
return return
@@ -183,11 +183,11 @@
index = 0 index = 0
while(index < 2) while(index < 2)
new /obj/item/weapon/shard( src.loc ) new /obj/item/weapon/shard( src.loc )
if(reinf) new /obj/item/weapon/rods( src.loc) if(reinf) new /obj/item/stack/rods( src.loc)
index++ index++
else else
new /obj/item/weapon/shard( src.loc ) new /obj/item/weapon/shard( src.loc )
if(reinf) new /obj/item/weapon/rods( src.loc) if(reinf) new /obj/item/stack/rods( src.loc)
src.density = 0 src.density = 0
del(src) del(src)
return return

View File

@@ -227,21 +227,21 @@
if(!devastated) if(!devastated)
playsound(src.loc, 'Welder.ogg', 100, 1) playsound(src.loc, 'Welder.ogg', 100, 1)
new /obj/structure/girder/reinforced(src) new /obj/structure/girder/reinforced(src)
new /obj/item/weapon/sheet/r_metal( src ) new /obj/item/stack/sheet/r_metal( src )
else else
new /obj/item/weapon/sheet/metal( src ) new /obj/item/stack/sheet/metal( src )
new /obj/item/weapon/sheet/metal( src ) new /obj/item/stack/sheet/metal( src )
new /obj/item/weapon/sheet/r_metal( src ) new /obj/item/stack/sheet/r_metal( src )
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) new /obj/structure/girder(src)
new /obj/item/weapon/sheet/metal( src ) new /obj/item/stack/sheet/metal( src )
new /obj/item/weapon/sheet/metal( src ) new /obj/item/stack/sheet/metal( src )
else else
new /obj/item/weapon/sheet/metal( src ) new /obj/item/stack/sheet/metal( src )
new /obj/item/weapon/sheet/metal( src ) new /obj/item/stack/sheet/metal( src )
new /obj/item/weapon/sheet/metal( src ) new /obj/item/stack/sheet/metal( src )
ReplaceWithFloor() ReplaceWithFloor()
@@ -355,7 +355,7 @@
return return
/turf/simulated/wall/r_wall/attackby(obj/item/weapon/W as obj, mob/user as mob) /turf/simulated/wall/r_wall/attackby(obj/item/W as obj, mob/user as mob)
if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
usr << "\red You don't have the dexterity to do this!" usr << "\red You don't have the dexterity to do this!"
@@ -397,7 +397,7 @@
sleep(100) sleep(100)
if ((user.loc == T && user.equipped() == W)) if ((user.loc == T && user.equipped() == W))
src.d_state = 6 src.d_state = 6
new /obj/item/weapon/rods( src ) new /obj/item/stack/rods( src )
user << "\blue You removed the support rods." user << "\blue You removed the support rods."
else if (istype(W, /obj/item/weapon/wrench)) else if (istype(W, /obj/item/weapon/wrench))
@@ -414,7 +414,7 @@
if (src.d_state == 0) if (src.d_state == 0)
playsound(src.loc, 'Wirecutter.ogg', 100, 1) playsound(src.loc, 'Wirecutter.ogg', 100, 1)
src.d_state = 1 src.d_state = 1
new /obj/item/weapon/rods( src ) new /obj/item/stack/rods( src )
else if (istype(W, /obj/item/weapon/screwdriver)) else if (istype(W, /obj/item/weapon/screwdriver))
if (src.d_state == 1) if (src.d_state == 1)
@@ -447,7 +447,7 @@
dismantle_wall() dismantle_wall()
return return
else if ((istype(W, /obj/item/weapon/sheet/metal)) && (src.d_state)) else if ((istype(W, /obj/item/stack/sheet/metal)) && (src.d_state))
var/turf/T = user.loc var/turf/T = user.loc
user << "\blue Repairing wall." user << "\blue Repairing wall."
sleep(100) sleep(100)
@@ -491,7 +491,7 @@
switch(pick(1,2;75,3)) switch(pick(1,2;75,3))
if (1) if (1)
src.ReplaceWithLattice() src.ReplaceWithLattice()
if(prob(33)) new /obj/item/weapon/sheet/metal(src) if(prob(33)) new /obj/item/stack/sheet/metal(src)
if(2) if(2)
src.ReplaceWithSpace() src.ReplaceWithSpace()
if(3) if(3)
@@ -500,7 +500,7 @@
else else
src.break_tile() src.break_tile()
src.hotspot_expose(1000,CELL_VOLUME) src.hotspot_expose(1000,CELL_VOLUME)
if(prob(33)) new /obj/item/weapon/sheet/metal(src) if(prob(33)) new /obj/item/stack/sheet/metal(src)
if(3.0) if(3.0)
if (prob(50)) if (prob(50))
src.break_tile() src.break_tile()
@@ -543,8 +543,7 @@ turf/simulated/floor/proc/update_icon()
user << "\blue Removing rods..." user << "\blue Removing rods..."
playsound(src.loc, 'Ratchet.ogg', 80, 1) playsound(src.loc, 'Ratchet.ogg', 80, 1)
if(do_after(user, 30)) if(do_after(user, 30))
new /obj/item/weapon/rods(src) new /obj/item/stack/rods(src, 2)
new /obj/item/weapon/rods(src)
ReplaceWithFloor() ReplaceWithFloor()
var/turf/simulated/floor/F = src var/turf/simulated/floor/F = src
F.to_plating() F.to_plating()
@@ -596,7 +595,7 @@ turf/simulated/floor/proc/update_icon()
icon_state = "floor" icon_state = "floor"
levelupdate() levelupdate()
/turf/simulated/floor/attackby(obj/item/weapon/C as obj, mob/user as mob) /turf/simulated/floor/attackby(obj/item/C as obj, mob/user as mob)
if(!C || !user) if(!C || !user)
return 0 return 0
@@ -605,36 +604,33 @@ turf/simulated/floor/proc/update_icon()
if(broken || burnt) if(broken || burnt)
user << "\red You remove the broken plating." user << "\red You remove the broken plating."
else else
new /obj/item/weapon/tile(src) new /obj/item/stack/tile(src)
to_plating() to_plating()
playsound(src.loc, 'Crowbar.ogg', 80, 1) playsound(src.loc, 'Crowbar.ogg', 80, 1)
return return
if(istype(C, /obj/item/weapon/rods)) if(istype(C, /obj/item/stack/rods))
if (!src.intact) if (!src.intact)
if (C:amount >= 2) if (C:amount >= 2)
user << "\blue Reinforcing the floor..." user << "\blue Reinforcing the floor..."
if(do_after(user, 30)) if(do_after(user, 30))
if (C) ReplaceWithEngineFloor()
ReplaceWithEngineFloor() playsound(src.loc, 'Deconstruct.ogg', 80, 1)
C:amount -= 2 C:use(2)
if (C:amount <= 0) del(C) //wtf return
playsound(src.loc, 'Deconstruct.ogg', 80, 1)
else else
user << "\red You need more rods." user << "\red You need more rods."
else else
user << "\red You must remove the plating first." user << "\red You must remove the plating first."
return return
if(istype(C, /obj/item/weapon/tile) && !intact) if(istype(C, /obj/item/stack/tile) && !intact)
restore_tile() restore_tile()
var/obj/item/weapon/tile/T = C var/obj/item/stack/tile/T = C
playsound(src.loc, 'Genhit.ogg', 50, 1) playsound(src.loc, 'Genhit.ogg', 50, 1)
if(--T.amount < 1) T.use(1)
del(T)
return
if(istype(C, /obj/item/weapon/cable_coil)) if(istype(C, /obj/item/weapon/cable_coil))
if(!intact) if(!intact)
@@ -685,32 +681,22 @@ turf/simulated/floor/proc/update_icon()
step(user.pulling, get_dir(user.pulling.loc, src)) step(user.pulling, get_dir(user.pulling.loc, src))
return return
/turf/space/attackby(obj/item/weapon/C as obj, mob/user as mob) /turf/space/attackby(obj/item/C as obj, mob/user as mob)
if (istype(C, /obj/item/weapon/rods)) if (istype(C, /obj/item/stack/rods))
user << "\blue Constructing support lattice ..." user << "\blue Constructing support lattice ..."
playsound(src.loc, 'Genhit.ogg', 50, 1) playsound(src.loc, 'Genhit.ogg', 50, 1)
ReplaceWithLattice() ReplaceWithLattice()
C:amount-- C:use(1)
if (C:amount < 1)
user.u_equip(C)
del(C)
return
return return
if (istype(C, /obj/item/weapon/tile)) if (istype(C, /obj/item/stack/tile))
if(locate(/obj/lattice, src)) var/obj/lattice/L = locate(/obj/lattice, src)
var/obj/lattice/L = locate(/obj/lattice, src) if(L)
del(L) del(L)
playsound(src.loc, 'Genhit.ogg', 50, 1) playsound(src.loc, 'Genhit.ogg', 50, 1)
C:build(src) C:build(src)
C:amount-- C:use(1)
if (C:amount < 1)
user.u_equip(C)
del(C)
return
return return
else else
user << "\red The plating is going to need some support." user << "\red The plating is going to need some support."

View File

@@ -17,8 +17,8 @@
if (!msg) if (!msg)
return return
var/rendered = "<span class='game deadsay'><span class='prefix'>DEAD:</span> <span class='name'>ADMIN([src.stealth ? pick("BADMIN", "ViktoriaSA", "Drunkwaffel", "Android Datuhh") : src.key])</span> says, <span class='message'>\"[msg]\"</span></span>" var/rendered = "<span class='game deadsay'><span class='prefix'>DEAD:</span> <span class='name'>ADMIN([src.stealth ? src.fakekey : src.key])</span> says, <span class='message'>\"[msg]\"</span></span>"
//pick("BADMIN", "ViktoriaSA", "Drunkwaffel", "Android Datuhh")
for (var/mob/M in world) for (var/mob/M in world)
if(M.stat == 2 || (M.client && M.client.holder)) if(M.stat == 2 || (M.client && M.client.holder))
M.show_message(rendered, 2) M.show_message(rendered, 2)

View File

@@ -678,10 +678,9 @@
handle_regular_hud_updates() handle_regular_hud_updates()
if (istype(src.ears, /obj/item/device/radio/headset/traitor)) if (istype(src.ears, /obj/item/device/radio/headset))
src.robot_talk_understand = 1 var/obj/item/device/radio/headset/H = src.ears
else src.robot_talk_understand = H.bintran
src.robot_talk_understand = 0
if (src.stat == 2 || src.mutations & 4) if (src.stat == 2 || src.mutations & 4)
src.sight |= SEE_TURFS src.sight |= SEE_TURFS

View File

@@ -68,7 +68,7 @@
message_mode = "left hand" message_mode = "left hand"
message = copytext(message, 3) message = copytext(message, 3)
else if (copytext(message, 1, 3) == ":h") else if (copytext(message, 1, 3) == ":h" || (copytext(message, 1, 3) == ":<3A>" ))
if (ishuman(src)) if (ishuman(src))
message_mode = "secure headset" message_mode = "secure headset"
message = copytext(message, 3) message = copytext(message, 3)
@@ -81,14 +81,17 @@
message_mode = "intercom" message_mode = "intercom"
message = copytext(message, 3) message = copytext(message, 3)
else if (copytext(message, 1, 3) == ":s" && src.robot_talk_understand) else if ((copytext(message, 1, 3) == ":s" || (copytext(message, 1, 3) == ":<3A>" )) && src.robot_talk_understand)
message = copytext(message, 3) message = copytext(message, 3)
message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
src.robot_talk(message) src.robot_talk(message)
return return
//
message = trim(message) else if ((copytext(message, 1, 3) == ":a" || (copytext(message, 1, 3) == ":<3A>")) && src.alien_talk_understand)
message = copytext(message, 3)
message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
src.alien_talk(message)
return
if (!message) if (!message)
return return

View File

@@ -44,11 +44,11 @@
src.modules += new /obj/item/weapon/wirecutters(src) src.modules += new /obj/item/weapon/wirecutters(src)
src.modules += new /obj/item/device/multitool(src) src.modules += new /obj/item/device/multitool(src)
var/obj/item/weapon/sheet/metal/M = new /obj/item/weapon/sheet/metal(src) var/obj/item/stack/sheet/metal/M = new /obj/item/stack/sheet/metal(src)
M.amount = 50 M.amount = 50
src.modules += M src.modules += M
var/obj/item/weapon/sheet/rglass/G = new /obj/item/weapon/sheet/rglass(src) var/obj/item/stack/sheet/rglass/G = new /obj/item/stack/sheet/rglass(src)
G.amount = 50 G.amount = 50
src.modules += G src.modules += G

View File

@@ -59,11 +59,11 @@
src.modules += new /obj/item/weapon/wirecutters(src) src.modules += new /obj/item/weapon/wirecutters(src)
src.modules += new /obj/item/device/multitool(src) src.modules += new /obj/item/device/multitool(src)
var/obj/item/weapon/sheet/metal/M = new /obj/item/weapon/sheet/metal(src) var/obj/item/stack/sheet/metal/M = new /obj/item/stack/sheet/metal(src)
M.amount = 50 M.amount = 50
src.modules += M src.modules += M
var/obj/item/weapon/sheet/rglass/G = new /obj/item/weapon/sheet/rglass(src) var/obj/item/stack/sheet/rglass/G = new /obj/item/stack/sheet/rglass(src)
G.amount = 50 G.amount = 50
src.modules += G src.modules += G

View File

@@ -1095,6 +1095,43 @@
T.Entered(W) T.Entered(W)
return return
/mob/proc/before_take_item(var/obj/item/item)
u_equip(item)
if (src.client)
src.client.screen -= item
src.update_clothing()
return
/mob/proc/get_active_hand()
if (src.hand)
return src.l_hand
else
return src.r_hand
/mob/proc/get_inactive_hand()
if ( ! src.hand)
return src.l_hand
else
return src.r_hand
/mob/proc/put_in_hand(var/obj/item/I)
I.loc = src
if (src.hand)
src.l_hand = I
else
src.r_hand = I
I.layer = 20
src.update_clothing()
/mob/proc/put_in_inactive_hand(var/obj/item/I)
I.loc = src
if (!src.hand)
src.l_hand = I
else
src.r_hand = I
I.layer = 20
src.update_clothing()
/mob/proc/reset_view(atom/A) /mob/proc/reset_view(atom/A)
if (src.client) if (src.client)
if (istype(A, /atom/movable)) if (istype(A, /atom/movable))

View File

@@ -217,7 +217,7 @@
/obj/machinery/power/apc/attackby(obj/item/W, mob/user) /obj/machinery/power/apc/attackby(obj/item/W, mob/user)
if (istype(user, /mob/living/silicon)) if (istype(user, /mob/living/silicon) && get_dist(src,user)>1)
return src.attack_hand(user) return src.attack_hand(user)
if (istype(W, /obj/item/weapon/crowbar) && opened) if (istype(W, /obj/item/weapon/crowbar) && opened)
if (has_electronics==1) if (has_electronics==1)
@@ -270,20 +270,20 @@
if (cell) if (cell)
user << "\red Close the APC first." //Less hints more mystery! user << "\red Close the APC first." //Less hints more mystery!
return return
else if (!has_electronics || !terminal)
user << "\red There is nothing to secure."
return
else else
if (has_electronics==1) if (has_electronics==1)
has_electronics = 2 has_electronics = 2
stat &= ~MAINT stat &= ~MAINT
playsound(src.loc, 'Screwdriver.ogg', 50, 1) playsound(src.loc, 'Screwdriver.ogg', 50, 1)
user << "You screw the circuit electronics into place." user << "You screw the circuit electronics into place."
else /*(has_electronics==2)*/ else if (has_electronics==2)
has_electronics = 1 has_electronics = 1
stat |= MAINT stat |= MAINT
playsound(src.loc, 'Screwdriver.ogg', 50, 1) playsound(src.loc, 'Screwdriver.ogg', 50, 1)
user << "You unfasten the electronics." user << "You unfasten the electronics."
else /* has_electronics==0 */
user << "\red There is nothing to secure."
return
updateicon() updateicon()
else if(emagged || malfhack) else if(emagged || malfhack)
user << "The interface is broken" user << "The interface is broken"
@@ -377,7 +377,7 @@
playsound(src.loc, 'Welder.ogg', 50, 1) playsound(src.loc, 'Welder.ogg', 50, 1)
if(do_after(user, 50)) if(do_after(user, 50))
if (emagged || malfhack || (stat & BROKEN) || opened==2) if (emagged || malfhack || (stat & BROKEN) || opened==2)
new /obj/item/weapon/sheet/metal(loc) new /obj/item/stack/sheet/metal(loc)
user.visible_message(\ user.visible_message(\
"\red [src] has been cut apart by [user.name] with the weldingtool.",\ "\red [src] has been cut apart by [user.name] with the weldingtool.",\
"You disassembled brocken APC frame.",\ "You disassembled brocken APC frame.",\
@@ -419,14 +419,15 @@
&& !opened \ && !opened \
&& W.force >= 5 \ && W.force >= 5 \
&& W.w_class >= 3.0 \ && W.w_class >= 3.0 \
&& !istype(W, /obj/item/weapon/gun) \ && prob(20) )
&& prob(10) )
opened = 2 opened = 2
user.visible_message("\red The APC cover was knocked down with the [W.name] by [user.name]!", \ user.visible_message("\red The APC cover was knocked down with the [W.name] by [user.name]!", \
"\red You knock down the APC cover with your [W.name]!", \ "\red You knock down the APC cover with your [W.name]!", \
"You hear bang") "You hear bang")
updateicon() updateicon()
else else
if (istype(user, /mob/living/silicon))
return src.attack_hand(user)
user.visible_message("\red The [src.name] has been hit with the [W.name] by [user.name]!", \ user.visible_message("\red The [src.name] has been hit with the [W.name] by [user.name]!", \
"\red You hit the [src.name] with your [W.name]!", \ "\red You hit the [src.name] with your [W.name]!", \
"You hear bang") "You hear bang")
@@ -478,7 +479,7 @@
return return
if(wiresexposed && (!istype(user, /mob/living/silicon))) if(wiresexposed && (!istype(user, /mob/living/silicon)))
user.machine = src user.machine = src
var/t1 = text("<B>Access Panel</B><br>\n") var/t1 = text("<html><head><title>[area.name] APC wires</title></head><body><B>Access Panel</B><br>\n")
var/list/apcwires = list( var/list/apcwires = list(
"Orange" = 1, "Orange" = 1,
"Dark red" = 2, "Dark red" = 2,
@@ -495,7 +496,7 @@
t1 += "<a href='?src=\ref[src];pulse=[apcwires[wiredesc]]'>Pulse</a> " t1 += "<a href='?src=\ref[src];pulse=[apcwires[wiredesc]]'>Pulse</a> "
t1 += "<br>" t1 += "<br>"
t1 += text("<br>\n[(src.locked ? "The APC is locked." : "The APC is unlocked.")]<br>\n[(src.shorted ? "The APCs power has been shorted." : "The APC is working properly!")]<br>\n[(src.aidisabled ? "The 'AI control allowed' light is off." : "The 'AI control allowed' light is on.")]") t1 += text("<br>\n[(src.locked ? "The APC is locked." : "The APC is unlocked.")]<br>\n[(src.shorted ? "The APCs power has been shorted." : "The APC is working properly!")]<br>\n[(src.aidisabled ? "The 'AI control allowed' light is off." : "The 'AI control allowed' light is on.")]")
t1 += text("<p><a href='?src=\ref[src];close2=1'>Close</a></p>\n") t1 += text("<p><a href='?src=\ref[src];close2=1'>Close</a></p></body></html>")
user << browse(t1, "window=apcwires") user << browse(t1, "window=apcwires")
onclose(user, "apcwires") onclose(user, "apcwires")
@@ -868,6 +869,7 @@
if (src.z == 1) if (src.z == 1)
ticker.mode:apcs++ ticker.mode:apcs++
src.malfai = usr src.malfai = usr
src.locked = 1
if (src.cell) if (src.cell)
if (src.cell.charge > 0) if (src.cell.charge > 0)
src.cell.charge = 0 src.cell.charge = 0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -792,7 +792,7 @@
"apl" = (/turf/simulated/wall/r_wall,/area/maintenance/auxsolarstarboard) "apl" = (/turf/simulated/wall/r_wall,/area/maintenance/auxsolarstarboard)
"apm" = (/turf/simulated/wall/r_wall,/area/maintenance/fpmaint2) "apm" = (/turf/simulated/wall/r_wall,/area/maintenance/fpmaint2)
"apn" = (/obj/securearea{tag = "icon-space"; name = "EXTERNAL AIRLOCK"; desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"},/turf/simulated/wall/r_wall,/area/maintenance/fpmaint2) "apn" = (/obj/securearea{tag = "icon-space"; name = "EXTERNAL AIRLOCK"; desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"},/turf/simulated/wall/r_wall,/area/maintenance/fpmaint2)
"apo" = (/obj/item/weapon/tile,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "apo" = (/obj/item/stack/tile,/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
"app" = (/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "app" = (/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
"apq" = (/obj/machinery/light/small{dir = 1},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "apq" = (/obj/machinery/light/small{dir = 1},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
"apr" = (/obj/grille,/obj/window/reinforced/north,/obj/window/reinforced/west,/obj/window/reinforced/east,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "apr" = (/obj/grille,/obj/window/reinforced/north,/obj/window/reinforced/west,/obj/window/reinforced/east,/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
@@ -1134,7 +1134,7 @@
"avP" = (/obj/table{icon_state = "tabledir"; dir = 2},/obj/item/device/radio/signaler,/obj/item/device/radio/signaler,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor,/area/storage/primary) "avP" = (/obj/table{icon_state = "tabledir"; dir = 2},/obj/item/device/radio/signaler,/obj/item/device/radio/signaler,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor,/area/storage/primary)
"avQ" = (/obj/table{icon_state = "tabledir"; dir = 2},/obj/item/device/multitool,/obj/machinery/cell_charger,/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor,/area/storage/primary) "avQ" = (/obj/table{icon_state = "tabledir"; dir = 2},/obj/item/device/multitool,/obj/machinery/cell_charger,/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor,/area/storage/primary)
"avR" = (/obj/table{icon_state = "tabledir"; dir = 6},/obj/item/weapon/storage/toolbox/mechanical,/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/storage/primary) "avR" = (/obj/table{icon_state = "tabledir"; dir = 6},/obj/item/weapon/storage/toolbox/mechanical,/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/storage/primary)
"avS" = (/obj/machinery/power/apc{dir = 1; name = "Storage APC"; pixel_x = -1; pixel_y = 26},/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/sheet/metal{amount = 50},/obj/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/storage/primary) "avS" = (/obj/machinery/power/apc{dir = 1; name = "Storage APC"; pixel_x = -1; pixel_y = 26},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/storage/primary)
"avT" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor,/area/storage/primary) "avT" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor,/area/storage/primary)
"avU" = (/obj/item/weapon/cell,/turf/simulated/floor/plating,/area/storage/tech) "avU" = (/obj/item/weapon/cell,/turf/simulated/floor/plating,/area/storage/tech)
"avV" = (/obj/rack{dir = 4},/obj/item/weapon/circuitboard/card,/turf/simulated/floor/plating,/area/storage/tech) "avV" = (/obj/rack{dir = 4},/obj/item/weapon/circuitboard/card,/turf/simulated/floor/plating,/area/storage/tech)
@@ -1149,8 +1149,8 @@
"awe" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0; tag = "icon-off (WEST)"},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/sleep_male/toilet_male) "awe" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0; tag = "icon-off (WEST)"},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/sleep_male/toilet_male)
"awf" = (/obj/machinery/door/airlock{name = "Unit 3"},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/sleep_male/toilet_male) "awf" = (/obj/machinery/door/airlock{name = "Unit 3"},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/sleep_male/toilet_male)
"awg" = (/obj/machinery/atmospherics/pipe/simple,/obj/disposalpipe/junction,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "awg" = (/obj/machinery/atmospherics/pipe/simple,/obj/disposalpipe/junction,/turf/simulated/floor/plating,/area/maintenance/fpmaint)
"awh" = (/obj/machinery/alarm{pixel_y = 23},/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/crowbar,/turf/simulated/floor,/area/ai_monitored/storage/eva) "awh" = (/obj/machinery/alarm{pixel_y = 23},/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/crowbar,/turf/simulated/floor,/area/ai_monitored/storage/eva)
"awi" = (/obj/table{icon_state = "tabledir"; dir = 9},/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/extinguisher,/turf/simulated/floor,/area/ai_monitored/storage/eva) "awi" = (/obj/table{icon_state = "tabledir"; dir = 9},/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/extinguisher,/turf/simulated/floor,/area/ai_monitored/storage/eva)
"awj" = (/obj/machinery/light/small{dir = 8},/obj/landmark{name = "blobstart"; pixel_x = -1},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "awj" = (/obj/machinery/light/small{dir = 8},/obj/landmark{name = "blobstart"; pixel_x = -1},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"awk" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/sleep_female/toilet_female) "awk" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/sleep_female/toilet_female)
"awl" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/sleep_female/toilet_female) "awl" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/sleep_female/toilet_female)
@@ -1196,8 +1196,8 @@
"awZ" = (/obj/landmark/start{name = "Assistant"},/obj/cable{icon_state = "2-8"; d1 = 2; d2 = 8},/turf/simulated/floor,/area/storage/primary) "awZ" = (/obj/landmark/start{name = "Assistant"},/obj/cable{icon_state = "2-8"; d1 = 2; d2 = 8},/turf/simulated/floor,/area/storage/primary)
"axa" = (/obj/landmark/start{name = "Assistant"},/turf/simulated/floor,/area/storage/primary) "axa" = (/obj/landmark/start{name = "Assistant"},/turf/simulated/floor,/area/storage/primary)
"axb" = (/obj/stool{pixel_y = 8},/obj/landmark/start{name = "Assistant"},/turf/simulated/floor,/area/storage/primary) "axb" = (/obj/stool{pixel_y = 8},/obj/landmark/start{name = "Assistant"},/turf/simulated/floor,/area/storage/primary)
"axc" = (/obj/item/weapon/rods{amount = 50},/obj/landmark/start{name = "Assistant"},/turf/simulated/floor,/area/storage/primary) "axc" = (/obj/item/stack/rods{amount = 50},/obj/landmark/start{name = "Assistant"},/turf/simulated/floor,/area/storage/primary)
"axd" = (/obj/item/weapon/sheet/glass{amount = 50},/obj/landmark/start{name = "Assistant"},/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor,/area/storage/primary) "axd" = (/obj/item/stack/sheet/glass{amount = 50},/obj/landmark/start{name = "Assistant"},/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor,/area/storage/primary)
"axe" = (/turf/simulated/floor,/area/storage/primary) "axe" = (/turf/simulated/floor,/area/storage/primary)
"axf" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/weapon/storage/lightbox/tubes,/turf/simulated/floor/plating,/area/storage/tech) "axf" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/weapon/storage/lightbox/tubes,/turf/simulated/floor/plating,/area/storage/tech)
"axg" = (/obj/rack{dir = 4},/obj/item/weapon/circuitboard/communications,/turf/simulated/floor/plating,/area/storage/tech) "axg" = (/obj/rack{dir = 4},/obj/item/weapon/circuitboard/communications,/turf/simulated/floor/plating,/area/storage/tech)
@@ -1215,7 +1215,7 @@
"axs" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/turf/simulated/floor,/area/ai_monitored/storage/eva) "axs" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/turf/simulated/floor,/area/ai_monitored/storage/eva)
"axt" = (/obj/machinery/light{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore) "axt" = (/obj/machinery/light{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore)
"axu" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/ai_monitored/storage/eva) "axu" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/ai_monitored/storage/eva)
"axv" = (/obj/table{icon_state = "tabledir"; dir = 8},/obj/item/weapon/sheet/glass{amount = 50},/obj/machinery/light{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/ai_monitored/storage/eva) "axv" = (/obj/table{icon_state = "tabledir"; dir = 8},/obj/item/stack/sheet/glass{amount = 50},/obj/machinery/light{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/ai_monitored/storage/eva)
"axw" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "axw" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"axx" = (/obj/machinery/door/airlock{name = "Unit 2"},/obj/disposalpipe/segment{dir = 4},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/sleep_female/toilet_female) "axx" = (/obj/machinery/door/airlock{name = "Unit 2"},/obj/disposalpipe/segment{dir = 4},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/sleep_female/toilet_female)
"axy" = (/obj/disposalpipe/junction{dir = 4; icon_state = "pipe-j2"},/turf/simulated/wall,/area/crew_quarters/sleep_female/toilet_female) "axy" = (/obj/disposalpipe/junction{dir = 4; icon_state = "pipe-j2"},/turf/simulated/wall,/area/crew_quarters/sleep_female/toilet_female)
@@ -1264,7 +1264,7 @@
"ayp" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/obj/rack{dir = 1},/obj/item/clothing/mask/gas/emergency,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "ayp" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/obj/rack{dir = 1},/obj/item/clothing/mask/gas/emergency,/turf/simulated/floor/plating,/area/maintenance/fpmaint)
"ayq" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "ayq" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/floor/plating,/area/maintenance/fpmaint)
"ayr" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall/r_wall,/area/maintenance/fpmaint) "ayr" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall/r_wall,/area/maintenance/fpmaint)
"ays" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/item/weapon/tile,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "ays" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/item/stack/tile,/turf/simulated/floor/plating,/area/maintenance/fpmaint)
"ayt" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "ayt" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/maintenance/fpmaint)
"ayu" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/obj/machinery/atmospherics/pipe/simple,/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "ayu" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/obj/machinery/atmospherics/pipe/simple,/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor/plating,/area/maintenance/fpmaint)
"ayv" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact-f"; layer = 3},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "ayv" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact-f"; layer = 3},/turf/simulated/floor/plating,/area/maintenance/fpmaint)
@@ -1278,8 +1278,8 @@
"ayD" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) "ayD" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore)
"ayE" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/ai_monitored/storage/eva) "ayE" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/ai_monitored/storage/eva)
"ayF" = (/obj/crate/rcd,/obj/machinery/camera{c_tag = "EVA South-East"; dir = 1},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/ai_monitored/storage/eva) "ayF" = (/obj/crate/rcd,/obj/machinery/camera{c_tag = "EVA South-East"; dir = 1},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/ai_monitored/storage/eva)
"ayG" = (/obj/item/weapon/rods{amount = 50},/turf/simulated/floor,/area/ai_monitored/storage/eva) "ayG" = (/obj/item/stack/rods{amount = 50},/turf/simulated/floor,/area/ai_monitored/storage/eva)
"ayH" = (/obj/table{icon_state = "tabledir"; dir = 10},/obj/item/weapon/sheet/rglass{amount = 50},/turf/simulated/floor,/area/ai_monitored/storage/eva) "ayH" = (/obj/table{icon_state = "tabledir"; dir = 10},/obj/item/stack/sheet/rglass{amount = 50},/turf/simulated/floor,/area/ai_monitored/storage/eva)
"ayI" = (/obj/machinery/door/airlock/maintenance{name = "Bathroom Maintenance"; req_access_txt = "12"},/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "ayI" = (/obj/machinery/door/airlock/maintenance{name = "Bathroom Maintenance"; req_access_txt = "12"},/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"ayJ" = (/obj/disposalpipe/segment,/turf/simulated/wall,/area/maintenance/fsmaint) "ayJ" = (/obj/disposalpipe/segment,/turf/simulated/wall,/area/maintenance/fsmaint)
"ayK" = (/obj/grille,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "ayK" = (/obj/grille,/turf/simulated/floor/plating,/area/maintenance/fsmaint)
@@ -2016,7 +2016,7 @@
"aMN" = (/obj/machinery/robotic_fabricator,/obj/cable{icon_state = "0-4"; d2 = 4},/obj/cable,/turf/simulated/floor,/area/medical/robotics) "aMN" = (/obj/machinery/robotic_fabricator,/obj/cable{icon_state = "0-4"; d2 = 4},/obj/cable,/turf/simulated/floor,/area/medical/robotics)
"aMO" = (/obj/machinery/robotic_fabricator,/obj/cable{icon_state = "0-4"; d2 = 4},/obj/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/medical/robotics) "aMO" = (/obj/machinery/robotic_fabricator,/obj/cable{icon_state = "0-4"; d2 = 4},/obj/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/medical/robotics)
"aMP" = (/obj/machinery/robotic_fabricator,/obj/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/medical/robotics) "aMP" = (/obj/machinery/robotic_fabricator,/obj/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/medical/robotics)
"aMQ" = (/obj/crate,/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/obj/item/weapon/cable_coil,/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/sheet/metal{amount = 50},/turf/simulated/floor,/area/medical/robotics) "aMQ" = (/obj/crate,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/obj/item/weapon/cable_coil,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/turf/simulated/floor,/area/medical/robotics)
"aMR" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/medical/robotics) "aMR" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/medical/robotics)
"aMS" = (/obj/stool/chair{dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor{dir = 8; icon_state = "escape"; tag = "icon-escape (WEST)"},/area/hallway/secondary/exit) "aMS" = (/obj/stool/chair{dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor{dir = 8; icon_state = "escape"; tag = "icon-escape (WEST)"},/area/hallway/secondary/exit)
"aMT" = (/obj/machinery/atmospherics/pipe/simple,/obj/grille,/obj/window/reinforced{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/window/reinforced{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/window/reinforced{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aMT" = (/obj/machinery/atmospherics/pipe/simple,/obj/grille,/obj/window/reinforced{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/window/reinforced{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/window/reinforced{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/entry)
@@ -2417,7 +2417,7 @@
"aUy" = (/obj/item/weapon/storage/mousetraps,/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/kitchen) "aUy" = (/obj/item/weapon/storage/mousetraps,/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/kitchen)
"aUz" = (/obj/table,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/obj/item/weapon/reagent_containers/food/condiment/oliveoil,/obj/item/weapon/reagent_containers/glass/beaker,/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/kitchen) "aUz" = (/obj/table,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/obj/item/weapon/reagent_containers/food/condiment/oliveoil,/obj/item/weapon/reagent_containers/glass/beaker,/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/kitchen)
"aUA" = (/obj/crate,/turf/simulated/floor/plating,/area/maintenance/maintcentral) "aUA" = (/obj/crate,/turf/simulated/floor/plating,/area/maintenance/maintcentral)
"aUB" = (/obj/machinery/atmospherics/pipe/simple,/obj/item/weapon/tile,/turf/simulated/floor/plating,/area/maintenance/maintcentral) "aUB" = (/obj/machinery/atmospherics/pipe/simple,/obj/item/stack/tile,/turf/simulated/floor/plating,/area/maintenance/maintcentral)
"aUC" = (/obj/disposalpipe/segment,/obj/landmark{name = "blobstart"; pixel_x = -1},/turf/simulated/floor/plating,/area/maintenance/maintcentral) "aUC" = (/obj/disposalpipe/segment,/obj/landmark{name = "blobstart"; pixel_x = -1},/turf/simulated/floor/plating,/area/maintenance/maintcentral)
"aUD" = (/obj/grille,/obj/window/reinforced{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/window/reinforced{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/turf/simulated/floor/plating,/area/medical/research) "aUD" = (/obj/grille,/obj/window/reinforced{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/window/reinforced{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/turf/simulated/floor/plating,/area/medical/research)
"aUE" = (/obj/stool/chair{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/research) "aUE" = (/obj/stool/chair{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/research)
@@ -2433,7 +2433,7 @@
"aUO" = (/obj/disposalpipe/junction{dir = 4; icon_state = "pipe-j2"},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) "aUO" = (/obj/disposalpipe/junction{dir = 4; icon_state = "pipe-j2"},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet)
"aUP" = (/obj/disposalpipe/segment{dir = 4},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) "aUP" = (/obj/disposalpipe/segment{dir = 4},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet)
"aUQ" = (/obj/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall,/area/maintenance/port) "aUQ" = (/obj/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall,/area/maintenance/port)
"aUR" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact-f"; layer = 3},/obj/item/weapon/sheet/rglass,/turf/simulated/floor/plating,/area/maintenance/port) "aUR" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact-f"; layer = 3},/obj/item/stack/sheet/rglass,/turf/simulated/floor/plating,/area/maintenance/port)
"aUS" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; layer = 3},/obj/item/weapon/screwdriver,/turf/simulated/floor/plating,/area/maintenance/port) "aUS" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; layer = 3},/obj/item/weapon/screwdriver,/turf/simulated/floor/plating,/area/maintenance/port)
"aUT" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; layer = 3},/obj/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/port) "aUT" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; layer = 3},/obj/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/port)
"aUU" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; layer = 3},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/port) "aUU" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; layer = 3},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/port)
@@ -2772,7 +2772,7 @@
"bbp" = (/obj/landmark/start{name = "Cargo Technician"},/turf/simulated/floor,/area/quartermaster/storage) "bbp" = (/obj/landmark/start{name = "Cargo Technician"},/turf/simulated/floor,/area/quartermaster/storage)
"bbq" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; location = "QM #2"},/obj/machinery/bot/mulebot{home_destination = "QM #2"},/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/storage) "bbq" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; location = "QM #2"},/obj/machinery/bot/mulebot{home_destination = "QM #2"},/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/storage)
"bbr" = (/obj/grille,/obj/window/reinforced/east,/obj/window/reinforced/west,/obj/disposalpipe/segment,/turf/simulated/floor/plating,/area/quartermaster/storage) "bbr" = (/obj/grille,/obj/window/reinforced/east,/obj/window/reinforced/west,/obj/disposalpipe/segment,/turf/simulated/floor/plating,/area/quartermaster/storage)
"bbs" = (/obj/table{icon_state = "tabledir"; dir = 4},/obj/item/weapon/rods{amount = 50},/turf/simulated/floor,/area/quartermaster/office) "bbs" = (/obj/table{icon_state = "tabledir"; dir = 4},/obj/item/stack/rods{amount = 50},/turf/simulated/floor,/area/quartermaster/office)
"bbt" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor,/area/quartermaster) "bbt" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor,/area/quartermaster)
"bbu" = (/obj/stool/chair{dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"; tag = "icon-tube1 (EAST)"},/turf/simulated/floor,/area/quartermaster) "bbu" = (/obj/stool/chair{dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"; tag = "icon-tube1 (EAST)"},/turf/simulated/floor,/area/quartermaster)
"bbv" = (/obj/grille,/obj/window/reinforced/west,/obj/window/reinforced/east,/obj/window/reinforced,/turf/simulated/floor/plating,/area/quartermaster) "bbv" = (/obj/grille,/obj/window/reinforced/west,/obj/window/reinforced/east,/obj/window/reinforced,/turf/simulated/floor/plating,/area/quartermaster)
@@ -4504,7 +4504,7 @@
"bIF" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0; tag = "icon-off (WEST)"},/turf/simulated/floor,/area/engine/engine_hallway) "bIF" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0; tag = "icon-off (WEST)"},/turf/simulated/floor,/area/engine/engine_hallway)
"bIG" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-f"; layer = 3},/turf/simulated/floor,/area/engine/engine_hallway) "bIG" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-f"; layer = 3},/turf/simulated/floor,/area/engine/engine_hallway)
"bIH" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/floor,/area/engine/engine_hallway) "bIH" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/floor,/area/engine/engine_hallway)
"bII" = (/obj/item/weapon/sheet/glass{amount = 50},/obj/item/weapon/sheet/glass{amount = 50},/obj/item/weapon/sheet/glass{amount = 50},/obj/machinery/atmospherics/pipe/simple{dir = 10; icon_state = "intact-f"; layer = 3},/turf/simulated/floor,/area/engine/engine_hallway) "bII" = (/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/machinery/atmospherics/pipe/simple{dir = 10; icon_state = "intact-f"; layer = 3},/turf/simulated/floor,/area/engine/engine_hallway)
"bIJ" = (/obj/table{icon_state = "tabledir"; dir = 9},/obj/machinery/light/small{dir = 4},/obj/item/device/analyzer,/obj/item/weapon/storage/utilitybelt,/obj/item/weapon/storage/utilitybelt,/obj/item/weapon/storage/utilitybelt,/turf/simulated/floor,/area/engine/engine_hallway) "bIJ" = (/obj/table{icon_state = "tabledir"; dir = 9},/obj/machinery/light/small{dir = 4},/obj/item/device/analyzer,/obj/item/weapon/storage/utilitybelt,/obj/item/weapon/storage/utilitybelt,/obj/item/weapon/storage/utilitybelt,/turf/simulated/floor,/area/engine/engine_hallway)
"bIK" = (/obj/machinery/atmospherics/pipe/simple,/obj/grille,/turf/simulated/wall/r_wall,/area/atmos) "bIK" = (/obj/machinery/atmospherics/pipe/simple,/obj/grille,/turf/simulated/wall/r_wall,/area/atmos)
"bIL" = (/obj/cable{icon_state = "2-4"; d1 = 2; d2 = 4},/turf/simulated/floor/plating/airless,/area) "bIL" = (/obj/cable{icon_state = "2-4"; d1 = 2; d2 = 4},/turf/simulated/floor/plating/airless,/area)
@@ -4536,7 +4536,7 @@
"bJl" = (/turf/simulated/floor,/area/engine/engine_hallway) "bJl" = (/turf/simulated/floor,/area/engine/engine_hallway)
"bJm" = (/obj/item/weapon/pen,/turf/simulated/floor,/area/engine/engine_hallway) "bJm" = (/obj/item/weapon/pen,/turf/simulated/floor,/area/engine/engine_hallway)
"bJn" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/engine/engine_hallway) "bJn" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/engine/engine_hallway)
"bJo" = (/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/sheet/metal{amount = 50},/obj/machinery/atmospherics/pipe/manifold{dir = 4; initialize_directions = 11},/turf/simulated/floor,/area/engine/engine_hallway) "bJo" = (/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/machinery/atmospherics/pipe/manifold{dir = 4; initialize_directions = 11},/turf/simulated/floor,/area/engine/engine_hallway)
"bJp" = (/obj/table{icon_state = "tabledir"; dir = 10},/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/turf/simulated/floor,/area/engine/engine_hallway) "bJp" = (/obj/table{icon_state = "tabledir"; dir = 10},/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/turf/simulated/floor,/area/engine/engine_hallway)
"bJq" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id = "n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) "bJq" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id = "n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos)
"bJr" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2_sensor"},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) "bJr" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2_sensor"},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos)
@@ -4702,7 +4702,7 @@
"bMv" = (/turf/simulated/floor/engine,/area/engine/engine_control) "bMv" = (/turf/simulated/floor/engine,/area/engine/engine_control)
"bMw" = (/obj/item/clothing/head/helmet/hardhat,/turf/simulated/floor/engine,/area/engine/engine_control) "bMw" = (/obj/item/clothing/head/helmet/hardhat,/turf/simulated/floor/engine,/area/engine/engine_control)
"bMx" = (/obj/item/weapon/weldingtool,/turf/simulated/floor/engine,/area/engine/engine_control) "bMx" = (/obj/item/weapon/weldingtool,/turf/simulated/floor/engine,/area/engine/engine_control)
"bMy" = (/obj/item/weapon/rods,/turf/simulated/floor/engine,/area/engine/engine_control) "bMy" = (/obj/item/stack/rods,/turf/simulated/floor/engine,/area/engine/engine_control)
"bMz" = (/obj/item/weapon/caution{desc = "Caution! Construction Zone!"; name = "caution sign"},/turf/simulated/floor/engine,/area/engine/engine_control) "bMz" = (/obj/item/weapon/caution{desc = "Caution! Construction Zone!"; name = "caution sign"},/turf/simulated/floor/engine,/area/engine/engine_control)
"bMA" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-f"; initialize_directions = 5; layer = 3},/obj/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/engine/engine_hallway) "bMA" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-f"; initialize_directions = 5; layer = 3},/obj/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/engine/engine_hallway)
"bMB" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; layer = 3},/obj/cable{icon_state = "2-8"; d1 = 2; d2 = 8},/turf/simulated/floor,/area/engine/engine_hallway) "bMB" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; layer = 3},/obj/cable{icon_state = "2-8"; d1 = 2; d2 = 8},/turf/simulated/floor,/area/engine/engine_hallway)
@@ -5067,8 +5067,8 @@
"bTw" = (/obj/table/reinforced{tag = "icon-reinf_tabledir"; icon_state = "reinf_tabledir"},/obj/item/weapon/cigpacket,/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/shuttle) "bTw" = (/obj/table/reinforced{tag = "icon-reinf_tabledir"; icon_state = "reinf_tabledir"},/obj/item/weapon/cigpacket,/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/shuttle)
"bTx" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/shuttle) "bTx" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/shuttle)
"bTy" = (/obj/machinery/door/airlock/glass,/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/shuttle) "bTy" = (/obj/machinery/door/airlock/glass,/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/shuttle)
"bTz" = (/obj/item/weapon/sheet/glass{amount = 5000},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/shuttle) "bTz" = (/obj/item/stack/sheet/glass{amount = 5000},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/shuttle)
"bTA" = (/obj/item/weapon/sheet/metal{amount = 5000},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/shuttle) "bTA" = (/obj/item/stack/sheet/metal{amount = 5000},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/shuttle)
"bTB" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/simulated/floor/plating,/area/tdome) "bTB" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/simulated/floor/plating,/area/tdome)
"bTC" = (/obj/machinery/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion_l"; dir = 4; pixel_y = -1},/turf/space,/area/centcom/shuttle) "bTC" = (/obj/machinery/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion_l"; dir = 4; pixel_y = -1},/turf/space,/area/centcom/shuttle)
"bTD" = (/obj/machinery/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/obj/window/reinforced/west{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/turf/simulated/floor/plating,/area/centcom/shuttle) "bTD" = (/obj/machinery/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/obj/window/reinforced/west{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/turf/simulated/floor/plating,/area/centcom/shuttle)
@@ -5853,7 +5853,7 @@
"ciC" = (/obj/window{icon_state = "rwindow"; reinf = 1},/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor,/area/derelict/bridge/access) "ciC" = (/obj/window{icon_state = "rwindow"; reinf = 1},/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor,/area/derelict/bridge/access)
"ciD" = (/obj/window{icon_state = "rwindow"; dir = 10; reinf = 1},/turf/simulated/floor,/area/derelict/bridge/access) "ciD" = (/obj/window{icon_state = "rwindow"; dir = 10; reinf = 1},/turf/simulated/floor,/area/derelict/bridge/access)
"ciE" = (/obj/window{icon_state = "rwindow"; dir = 4; invisibility = 0; reinf = 1},/turf/simulated/floor,/area/derelict/bridge) "ciE" = (/obj/window{icon_state = "rwindow"; dir = 4; invisibility = 0; reinf = 1},/turf/simulated/floor,/area/derelict/bridge)
"ciF" = (/obj/item/weapon/rods,/turf/simulated/floor/plating/airless,/area) "ciF" = (/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area)
"ciG" = (/obj/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/wall,/area/derelict/bridge/access) "ciG" = (/obj/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/wall,/area/derelict/bridge/access)
"ciH" = (/obj/cable{d2 = 8; icon_state = "0-8"},/obj/cable{icon_state = "0-4"; d2 = 4},/obj/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/derelict/bridge/access) "ciH" = (/obj/cable{d2 = 8; icon_state = "0-8"},/obj/cable{icon_state = "0-4"; d2 = 4},/obj/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/derelict/bridge/access)
"ciI" = (/obj/cable{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/simulated/floor,/area/derelict/bridge/access) "ciI" = (/obj/cable{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/simulated/floor,/area/derelict/bridge/access)
@@ -5873,7 +5873,7 @@
"ciW" = (/obj/stool/chair,/turf/simulated/floor,/area/derelict/bridge) "ciW" = (/obj/stool/chair,/turf/simulated/floor,/area/derelict/bridge)
"ciX" = (/obj/table{icon_state = "tabledir"; dir = 9},/obj/item/weapon/screwdriver,/turf/simulated/floor,/area/derelict/bridge) "ciX" = (/obj/table{icon_state = "tabledir"; dir = 9},/obj/item/weapon/screwdriver,/turf/simulated/floor,/area/derelict/bridge)
"ciY" = (/obj/table{dir = 5; icon_state = "tabledir"},/obj/window{icon_state = "rwindow"; dir = 4; invisibility = 0; reinf = 1},/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor,/area/derelict/bridge) "ciY" = (/obj/table{dir = 5; icon_state = "tabledir"},/obj/window{icon_state = "rwindow"; dir = 4; invisibility = 0; reinf = 1},/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor,/area/derelict/bridge)
"ciZ" = (/obj/item/weapon/rods,/turf/space,/area) "ciZ" = (/obj/item/stack/rods,/turf/space,/area)
"cja" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/machinery/door/firedoor/border_only{dir = 1},/turf/simulated/floor,/area/derelict/bridge/access) "cja" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/machinery/door/firedoor/border_only{dir = 1},/turf/simulated/floor,/area/derelict/bridge/access)
"cjb" = (/obj/table{icon_state = "tabledir"; dir = 10},/obj/item/weapon/rack_parts,/turf/simulated/floor,/area/derelict/bridge) "cjb" = (/obj/table{icon_state = "tabledir"; dir = 10},/obj/item/weapon/rack_parts,/turf/simulated/floor,/area/derelict/bridge)
"cjc" = (/obj/table{icon_state = "tabledir"; dir = 6},/obj/window/basic,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor,/area/derelict/bridge) "cjc" = (/obj/table{icon_state = "tabledir"; dir = 6},/obj/window/basic,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor,/area/derelict/bridge)
@@ -6339,14 +6339,14 @@
"crU" = (/obj/window/basic{tag = "icon-window (NORTH)"; icon_state = "window"; dir = 1},/obj/cable{icon_state = "2-8"; d1 = 2; d2 = 8},/turf/simulated/floor/plating,/area/derelict/hallway/secondary) "crU" = (/obj/window/basic{tag = "icon-window (NORTH)"; icon_state = "window"; dir = 1},/obj/cable{icon_state = "2-8"; d1 = 2; d2 = 8},/turf/simulated/floor/plating,/area/derelict/hallway/secondary)
"crV" = (/obj/grille,/obj/item/weapon/shard,/obj/item/weapon/shard{tag = "icon-medium"; icon_state = "medium"},/turf/simulated/floor/plating/airless,/area) "crV" = (/obj/grille,/obj/item/weapon/shard,/obj/item/weapon/shard{tag = "icon-medium"; icon_state = "medium"},/turf/simulated/floor/plating/airless,/area)
"crW" = (/obj/grille,/obj/window{icon_state = "rwindow"; dir = 10; reinf = 1},/turf/simulated/floor/plating/airless,/area/derelict/arrival) "crW" = (/obj/grille,/obj/window{icon_state = "rwindow"; dir = 10; reinf = 1},/turf/simulated/floor/plating/airless,/area/derelict/arrival)
"crX" = (/obj/structure/girder,/obj/item/weapon/rods,/turf/simulated/floor/plating/airless,/area/derelict/crew_quarters) "crX" = (/obj/structure/girder,/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/derelict/crew_quarters)
"crY" = (/obj/item/weapon/rods,/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor/airless,/area/derelict/hallway/secondary) "crY" = (/obj/item/stack/rods,/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
"crZ" = (/obj/item/weapon/shard{tag = "icon-small"; icon_state = "small"},/turf/space,/area) "crZ" = (/obj/item/weapon/shard{tag = "icon-small"; icon_state = "small"},/turf/space,/area)
"csa" = (/turf/simulated/floor/plating/airless,/area/derelict/crew_quarters) "csa" = (/turf/simulated/floor/plating/airless,/area/derelict/crew_quarters)
"csb" = (/turf/simulated/floor/airless{tag = "icon-damaged4"; icon_state = "damaged4"},/area/derelict/crew_quarters) "csb" = (/turf/simulated/floor/airless{tag = "icon-damaged4"; icon_state = "damaged4"},/area/derelict/crew_quarters)
"csc" = (/turf/simulated/floor/airless{tag = "icon-damaged2"; icon_state = "damaged2"},/area/derelict/crew_quarters) "csc" = (/turf/simulated/floor/airless{tag = "icon-damaged2"; icon_state = "damaged2"},/area/derelict/crew_quarters)
"csd" = (/turf/simulated/floor/airless{tag = "icon-damaged5"; icon_state = "damaged5"},/area/derelict/crew_quarters) "csd" = (/turf/simulated/floor/airless{tag = "icon-damaged5"; icon_state = "damaged5"},/area/derelict/crew_quarters)
"cse" = (/obj/lattice,/obj/item/weapon/rods,/turf/space,/area) "cse" = (/obj/lattice,/obj/item/stack/rods,/turf/space,/area)
"csf" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/item/weapon/wirecutters,/turf/simulated/floor/airless,/area/derelict/hallway/secondary) "csf" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/item/weapon/wirecutters,/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
"csg" = (/obj/grille,/obj/window{icon_state = "rwindow"; dir = 4; invisibility = 0; reinf = 1},/obj/window{icon_state = "rwindow"; dir = 8; reinf = 1},/turf/simulated/floor,/area/derelict/hallway/secondary) "csg" = (/obj/grille,/obj/window{icon_state = "rwindow"; dir = 4; invisibility = 0; reinf = 1},/obj/window{icon_state = "rwindow"; dir = 8; reinf = 1},/turf/simulated/floor,/area/derelict/hallway/secondary)
"csh" = (/turf/simulated/floor/airless{tag = "icon-damaged3"; icon_state = "damaged3"},/area/derelict/crew_quarters) "csh" = (/turf/simulated/floor/airless{tag = "icon-damaged3"; icon_state = "damaged3"},/area/derelict/crew_quarters)
@@ -6435,7 +6435,7 @@
"ctM" = (/obj/cable,/obj/machinery/power/apc{dir = 8; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/plating/airless,/area/derelict/bridge/ai_upload) "ctM" = (/obj/cable,/obj/machinery/power/apc{dir = 8; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/plating/airless,/area/derelict/bridge/ai_upload)
"ctN" = (/turf/simulated/floor/airless{tag = "icon-damaged2"; icon_state = "damaged2"},/area/derelict/bridge/ai_upload) "ctN" = (/turf/simulated/floor/airless{tag = "icon-damaged2"; icon_state = "damaged2"},/area/derelict/bridge/ai_upload)
"ctO" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) "ctO" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload)
"ctP" = (/obj/item/weapon/rods,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) "ctP" = (/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
"ctQ" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/airless,/area) "ctQ" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/airless,/area)
"ctR" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/machinery/light/small,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) "ctR" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/machinery/light/small,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload)
"ctS" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) "ctS" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload)

View File

@@ -838,7 +838,7 @@
"aqf" = (/obj/stool{pixel_y = 8},/turf/simulated/floor,/area/crew_quarters/fitness) "aqf" = (/obj/stool{pixel_y = 8},/turf/simulated/floor,/area/crew_quarters/fitness)
"aqg" = (/turf/simulated/wall/r_wall,/area/maintenance/fpmaint2) "aqg" = (/turf/simulated/wall/r_wall,/area/maintenance/fpmaint2)
"aqh" = (/obj/securearea{tag = "icon-space"; name = "EXTERNAL AIRLOCK"; desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"},/turf/simulated/wall/r_wall,/area/maintenance/fpmaint2) "aqh" = (/obj/securearea{tag = "icon-space"; name = "EXTERNAL AIRLOCK"; desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"},/turf/simulated/wall/r_wall,/area/maintenance/fpmaint2)
"aqi" = (/obj/item/weapon/tile,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aqi" = (/obj/item/stack/tile,/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
"aqj" = (/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aqj" = (/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
"aqk" = (/obj/machinery/light/small{dir = 1},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aqk" = (/obj/machinery/light/small{dir = 1},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
"aql" = (/obj/grille,/obj/window/reinforced/north,/obj/window/reinforced/west,/obj/window/reinforced/east,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aql" = (/obj/grille,/obj/window/reinforced/north,/obj/window/reinforced/west,/obj/window/reinforced/east,/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
@@ -990,7 +990,7 @@
"atb" = (/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/ai_monitored/storage/eva) "atb" = (/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/ai_monitored/storage/eva)
"atc" = (/obj/reagent_dispensers/fueltank,/turf/simulated/floor,/area/ai_monitored/storage/eva) "atc" = (/obj/reagent_dispensers/fueltank,/turf/simulated/floor,/area/ai_monitored/storage/eva)
"atd" = (/obj/reagent_dispensers/watertank,/obj/machinery/camera{c_tag = "EVA North-East"; dir = 2},/turf/simulated/floor,/area/ai_monitored/storage/eva) "atd" = (/obj/reagent_dispensers/watertank,/obj/machinery/camera{c_tag = "EVA North-East"; dir = 2},/turf/simulated/floor,/area/ai_monitored/storage/eva)
"ate" = (/obj/table{icon_state = "tabledir"; dir = 8},/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/crowbar,/turf/simulated/floor,/area/ai_monitored/storage/eva) "ate" = (/obj/table{icon_state = "tabledir"; dir = 8},/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/crowbar,/turf/simulated/floor,/area/ai_monitored/storage/eva)
"atf" = (/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore) "atf" = (/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore)
"atg" = (/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) "atg" = (/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore)
"ath" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/machinery/camera{c_tag = "Dormitory"; c_tag_order = 999; dir = 4},/turf/simulated/floor{tag = "icon-neutral (WEST)"; icon_state = "neutral"; dir = 8},/area/crew_quarters) "ath" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/machinery/camera{c_tag = "Dormitory"; c_tag_order = 999; dir = 4},/turf/simulated/floor{tag = "icon-neutral (WEST)"; icon_state = "neutral"; dir = 8},/area/crew_quarters)
@@ -1022,7 +1022,7 @@
"atH" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall/r_wall,/area/ai_monitored/storage/eva) "atH" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall/r_wall,/area/ai_monitored/storage/eva)
"atI" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "EVA_airlock_pump"; exterior_door_tag = "EVA_airlock_exterior"; id_tag = "EVA_airlock_control"; interior_door_tag = "EVA_airlock_interior"; pixel_x = -24; pixel_y = 0; sensor_tag = "EVA_airlock_sensor"},/turf/simulated/floor,/area/ai_monitored/storage/eva) "atI" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "EVA_airlock_pump"; exterior_door_tag = "EVA_airlock_exterior"; id_tag = "EVA_airlock_control"; interior_door_tag = "EVA_airlock_interior"; pixel_x = -24; pixel_y = 0; sensor_tag = "EVA_airlock_sensor"},/turf/simulated/floor,/area/ai_monitored/storage/eva)
"atJ" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/ai_monitored/storage/eva) "atJ" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/ai_monitored/storage/eva)
"atK" = (/obj/table{icon_state = "tabledir"; dir = 8},/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/extinguisher,/turf/simulated/floor,/area/ai_monitored/storage/eva) "atK" = (/obj/table{icon_state = "tabledir"; dir = 8},/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/extinguisher,/turf/simulated/floor,/area/ai_monitored/storage/eva)
"atL" = (/obj/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; tag = "icon-shock"},/turf/simulated/wall/r_wall,/area/ai_monitored/storage/eva) "atL" = (/obj/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; tag = "icon-shock"},/turf/simulated/wall/r_wall,/area/ai_monitored/storage/eva)
"atM" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) "atM" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore)
"atN" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{tag = "icon-carpet (NORTHWEST)"; icon_state = "carpet"; dir = 9},/area/crew_quarters) "atN" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{tag = "icon-carpet (NORTHWEST)"; icon_state = "carpet"; dir = 9},/area/crew_quarters)
@@ -1071,7 +1071,7 @@
"auE" = (/obj/rack{dir = 8},/obj/item/weapon/tank/jetpack,/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) "auE" = (/obj/rack{dir = 8},/obj/item/weapon/tank/jetpack,/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
"auF" = (/obj/rack{dir = 4},/obj/item/clothing/suit/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/mask/medical,/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) "auF" = (/obj/rack{dir = 4},/obj/item/clothing/suit/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/mask/medical,/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
"auG" = (/obj/rack{dir = 4},/obj/item/clothing/shoes/magboots,/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) "auG" = (/obj/rack{dir = 4},/obj/item/clothing/shoes/magboots,/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
"auH" = (/obj/table{icon_state = "tabledir"; dir = 8},/obj/item/weapon/sheet/glass{amount = 50},/obj/item/weapon/rods{amount = 50},/turf/simulated/floor,/area/ai_monitored/storage/eva) "auH" = (/obj/table{icon_state = "tabledir"; dir = 8},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/rods{amount = 50},/turf/simulated/floor,/area/ai_monitored/storage/eva)
"auI" = (/obj/grille,/obj/window/reinforced{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/window/reinforced{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/window/reinforced{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/cable{d2 = 8; icon_state = "0-8"},/obj/cable{icon_state = "0-4"; d2 = 4},/obj/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) "auI" = (/obj/grille,/obj/window/reinforced{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/window/reinforced{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/window/reinforced{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/cable{d2 = 8; icon_state = "0-8"},/obj/cable{icon_state = "0-4"; d2 = 4},/obj/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva)
"auJ" = (/obj/cable{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore) "auJ" = (/obj/cable{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore)
"auK" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/cable{icon_state = "2-8"; d1 = 2; d2 = 8},/turf/simulated/floor,/area/hallway/primary/fore) "auK" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/cable{icon_state = "2-8"; d1 = 2; d2 = 8},/turf/simulated/floor,/area/hallway/primary/fore)
@@ -1110,7 +1110,7 @@
"avr" = (/obj/rack{dir = 8},/obj/landmark{name = "ExplorationPack"},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) "avr" = (/obj/rack{dir = 8},/obj/landmark{name = "ExplorationPack"},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
"avs" = (/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) "avs" = (/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
"avt" = (/obj/rack{dir = 4},/obj/landmark{name = "ExplorationPack"},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) "avt" = (/obj/rack{dir = 4},/obj/landmark{name = "ExplorationPack"},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
"avu" = (/obj/table{dir = 10; icon_state = "tabledir"},/obj/item/weapon/sheet/rglass{amount = 50},/turf/simulated/floor,/area/ai_monitored/storage/eva) "avu" = (/obj/table{dir = 10; icon_state = "tabledir"},/obj/item/stack/sheet/rglass{amount = 50},/turf/simulated/floor,/area/ai_monitored/storage/eva)
"avv" = (/obj/grille,/obj/window/reinforced{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/window/reinforced{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/window/reinforced,/obj/cable,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) "avv" = (/obj/grille,/obj/window/reinforced{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/window/reinforced{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/window/reinforced,/obj/cable,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva)
"avw" = (/obj/machinery/sink{icon_state = "sink"; dir = 8; pixel_x = -11; pixel_y = 10},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/toilet) "avw" = (/obj/machinery/sink{icon_state = "sink"; dir = 8; pixel_x = -11; pixel_y = 10},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/toilet)
"avx" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/toilet) "avx" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/toilet)
@@ -1149,7 +1149,7 @@
"awe" = (/obj/table{icon_state = "tabledir"; dir = 2},/obj/item/device/radio/signaler,/obj/item/device/radio/signaler,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor,/area/storage/primary) "awe" = (/obj/table{icon_state = "tabledir"; dir = 2},/obj/item/device/radio/signaler,/obj/item/device/radio/signaler,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor,/area/storage/primary)
"awf" = (/obj/table{icon_state = "tabledir"; dir = 2},/obj/item/device/multitool,/obj/machinery/cell_charger,/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor,/area/storage/primary) "awf" = (/obj/table{icon_state = "tabledir"; dir = 2},/obj/item/device/multitool,/obj/machinery/cell_charger,/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor,/area/storage/primary)
"awg" = (/obj/table{icon_state = "tabledir"; dir = 6},/obj/item/weapon/storage/toolbox/mechanical,/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/storage/primary) "awg" = (/obj/table{icon_state = "tabledir"; dir = 6},/obj/item/weapon/storage/toolbox/mechanical,/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/storage/primary)
"awh" = (/obj/machinery/power/apc{dir = 1; name = "Storage APC"; pixel_x = -1; pixel_y = 26},/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/sheet/metal{amount = 50},/obj/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/storage/primary) "awh" = (/obj/machinery/power/apc{dir = 1; name = "Storage APC"; pixel_x = -1; pixel_y = 26},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/storage/primary)
"awi" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/requests_console{department = "Assistant Storage"; departmentType = 1; pixel_y = 30},/turf/simulated/floor,/area/storage/primary) "awi" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/requests_console{department = "Assistant Storage"; departmentType = 1; pixel_y = 30},/turf/simulated/floor,/area/storage/primary)
"awj" = (/obj/item/weapon/cell,/turf/simulated/floor/plating,/area/storage/tech) "awj" = (/obj/item/weapon/cell,/turf/simulated/floor/plating,/area/storage/tech)
"awk" = (/obj/rack{dir = 4},/obj/item/weapon/circuitboard/card,/turf/simulated/floor/plating,/area/storage/tech) "awk" = (/obj/rack{dir = 4},/obj/item/weapon/circuitboard/card,/turf/simulated/floor/plating,/area/storage/tech)
@@ -1191,8 +1191,8 @@
"awU" = (/obj/landmark/start{name = "Assistant"},/obj/cable{icon_state = "2-8"; d1 = 2; d2 = 8},/turf/simulated/floor,/area/storage/primary) "awU" = (/obj/landmark/start{name = "Assistant"},/obj/cable{icon_state = "2-8"; d1 = 2; d2 = 8},/turf/simulated/floor,/area/storage/primary)
"awV" = (/obj/landmark/start{name = "Assistant"},/turf/simulated/floor,/area/storage/primary) "awV" = (/obj/landmark/start{name = "Assistant"},/turf/simulated/floor,/area/storage/primary)
"awW" = (/obj/stool{pixel_y = 8},/obj/landmark/start{name = "Assistant"},/turf/simulated/floor,/area/storage/primary) "awW" = (/obj/stool{pixel_y = 8},/obj/landmark/start{name = "Assistant"},/turf/simulated/floor,/area/storage/primary)
"awX" = (/obj/item/weapon/rods{amount = 50},/obj/landmark/start{name = "Assistant"},/turf/simulated/floor,/area/storage/primary) "awX" = (/obj/item/stack/rods{amount = 50},/obj/landmark/start{name = "Assistant"},/turf/simulated/floor,/area/storage/primary)
"awY" = (/obj/item/weapon/sheet/glass{amount = 50},/obj/landmark/start{name = "Assistant"},/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor,/area/storage/primary) "awY" = (/obj/item/stack/sheet/glass{amount = 50},/obj/landmark/start{name = "Assistant"},/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor,/area/storage/primary)
"awZ" = (/turf/simulated/floor,/area/storage/primary) "awZ" = (/turf/simulated/floor,/area/storage/primary)
"axa" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "axa" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/fpmaint)
"axb" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/weapon/storage/lightbox/tubes,/turf/simulated/floor/plating,/area/storage/tech) "axb" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/weapon/storage/lightbox/tubes,/turf/simulated/floor/plating,/area/storage/tech)
@@ -1257,7 +1257,7 @@
"ayi" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/wall/r_wall,/area/maintenance/fpmaint) "ayi" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/wall/r_wall,/area/maintenance/fpmaint)
"ayj" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/obj/rack{dir = 1},/obj/item/clothing/mask/gas/emergency,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "ayj" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/obj/rack{dir = 1},/obj/item/clothing/mask/gas/emergency,/turf/simulated/floor/plating,/area/maintenance/fpmaint)
"ayk" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "ayk" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/maintenance/fpmaint)
"ayl" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/item/weapon/tile,/obj/machinery/atmospherics/pipe/manifold,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "ayl" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/item/stack/tile,/obj/machinery/atmospherics/pipe/manifold,/turf/simulated/floor/plating,/area/maintenance/fpmaint)
"aym" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/wall/r_wall,/area/ai_monitored/storage/eva) "aym" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/wall/r_wall,/area/ai_monitored/storage/eva)
"ayn" = (/obj/table{dir = 9; icon_state = "tabledir"},/obj/item/weapon/cable_coil,/obj/item/weapon/cell,/obj/machinery/cell_charger,/turf/simulated/floor,/area/ai_monitored/storage/eva) "ayn" = (/obj/table{dir = 9; icon_state = "tabledir"},/obj/item/weapon/cable_coil,/obj/item/weapon/cell,/obj/machinery/cell_charger,/turf/simulated/floor,/area/ai_monitored/storage/eva)
"ayo" = (/obj/table{dir = 5; icon_state = "tabledir"},/obj/item/weapon/storage/toolbox/electrical,/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/weapon/hand_labeler,/turf/simulated/floor,/area/ai_monitored/storage/eva) "ayo" = (/obj/table{dir = 5; icon_state = "tabledir"},/obj/item/weapon/storage/toolbox/electrical,/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/weapon/hand_labeler,/turf/simulated/floor,/area/ai_monitored/storage/eva)
@@ -2005,7 +2005,7 @@
"aMC" = (/obj/machinery/robotic_fabricator,/obj/cable{icon_state = "0-4"; d2 = 4},/obj/cable,/turf/simulated/floor,/area/medical/robotics) "aMC" = (/obj/machinery/robotic_fabricator,/obj/cable{icon_state = "0-4"; d2 = 4},/obj/cable,/turf/simulated/floor,/area/medical/robotics)
"aMD" = (/obj/machinery/robotic_fabricator,/obj/cable{icon_state = "0-4"; d2 = 4},/obj/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/medical/robotics) "aMD" = (/obj/machinery/robotic_fabricator,/obj/cable{icon_state = "0-4"; d2 = 4},/obj/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/medical/robotics)
"aME" = (/obj/machinery/robotic_fabricator,/obj/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/medical/robotics) "aME" = (/obj/machinery/robotic_fabricator,/obj/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/medical/robotics)
"aMF" = (/obj/crate,/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/obj/item/weapon/cable_coil,/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/sheet/metal{amount = 50},/turf/simulated/floor,/area/medical/robotics) "aMF" = (/obj/crate,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/obj/item/weapon/cable_coil,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/turf/simulated/floor,/area/medical/robotics)
"aMG" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall/r_wall,/area/medical/robotics) "aMG" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall/r_wall,/area/medical/robotics)
"aMH" = (/obj/stool/chair{dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor{dir = 8; icon_state = "escape"; tag = "icon-escape (WEST)"},/area/hallway/secondary/exit) "aMH" = (/obj/stool/chair{dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor{dir = 8; icon_state = "escape"; tag = "icon-escape (WEST)"},/area/hallway/secondary/exit)
"aMI" = (/obj/machinery/atmospherics/pipe/simple,/obj/grille,/obj/window/reinforced{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/window/reinforced{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/window/reinforced{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aMI" = (/obj/machinery/atmospherics/pipe/simple,/obj/grille,/obj/window/reinforced{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/window/reinforced{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/window/reinforced{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/entry)
@@ -2421,7 +2421,7 @@
"aUC" = (/obj/disposalpipe/junction{dir = 4; icon_state = "pipe-j2"},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) "aUC" = (/obj/disposalpipe/junction{dir = 4; icon_state = "pipe-j2"},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet)
"aUD" = (/obj/disposalpipe/segment{dir = 4},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) "aUD" = (/obj/disposalpipe/segment{dir = 4},/turf/simulated/floor{tag = "icon-freezerfloor"; icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet)
"aUE" = (/obj/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall,/area/maintenance/port) "aUE" = (/obj/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall,/area/maintenance/port)
"aUF" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact-f"; layer = 3},/obj/item/weapon/sheet/rglass,/turf/simulated/floor/plating,/area/maintenance/port) "aUF" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact-f"; layer = 3},/obj/item/stack/sheet/rglass,/turf/simulated/floor/plating,/area/maintenance/port)
"aUG" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; layer = 3},/obj/item/weapon/screwdriver,/turf/simulated/floor/plating,/area/maintenance/port) "aUG" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; layer = 3},/obj/item/weapon/screwdriver,/turf/simulated/floor/plating,/area/maintenance/port)
"aUH" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; layer = 3},/obj/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/port) "aUH" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; layer = 3},/obj/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/port)
"aUI" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; layer = 3},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/port) "aUI" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; layer = 3},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/port)
@@ -2777,7 +2777,7 @@
"bbu" = (/obj/landmark/start{name = "Cargo Technician"},/turf/simulated/floor,/area/quartermaster/storage) "bbu" = (/obj/landmark/start{name = "Cargo Technician"},/turf/simulated/floor,/area/quartermaster/storage)
"bbv" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; location = "QM #2"},/obj/machinery/bot/mulebot{home_destination = "QM #2"; suffix = "#2"},/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/storage) "bbv" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; location = "QM #2"},/obj/machinery/bot/mulebot{home_destination = "QM #2"; suffix = "#2"},/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/storage)
"bbw" = (/obj/grille,/obj/window/reinforced/east,/obj/window/reinforced/west,/obj/disposalpipe/segment,/turf/simulated/floor/plating,/area/quartermaster/storage) "bbw" = (/obj/grille,/obj/window/reinforced/east,/obj/window/reinforced/west,/obj/disposalpipe/segment,/turf/simulated/floor/plating,/area/quartermaster/storage)
"bbx" = (/obj/table{icon_state = "tabledir"; dir = 4},/obj/item/weapon/rods{amount = 50},/turf/simulated/floor,/area/quartermaster/office) "bbx" = (/obj/table{icon_state = "tabledir"; dir = 4},/obj/item/stack/rods{amount = 50},/turf/simulated/floor,/area/quartermaster/office)
"bby" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor,/area/quartermaster) "bby" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor,/area/quartermaster)
"bbz" = (/obj/stool/chair{dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"; tag = "icon-tube1 (EAST)"},/turf/simulated/floor,/area/quartermaster) "bbz" = (/obj/stool/chair{dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"; tag = "icon-tube1 (EAST)"},/turf/simulated/floor,/area/quartermaster)
"bbA" = (/obj/grille,/obj/window/reinforced/west,/obj/window/reinforced/east,/obj/window/reinforced,/turf/simulated/floor/plating,/area/quartermaster) "bbA" = (/obj/grille,/obj/window/reinforced/west,/obj/window/reinforced/east,/obj/window/reinforced,/turf/simulated/floor/plating,/area/quartermaster)
@@ -4512,7 +4512,7 @@
"bIN" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-f"; layer = 3},/turf/simulated/floor,/area/engine/engine_hallway) "bIN" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-f"; layer = 3},/turf/simulated/floor,/area/engine/engine_hallway)
"bIO" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/floor,/area/engine/engine_hallway) "bIO" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/floor,/area/engine/engine_hallway)
"bIP" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/obj/item/weapon/paper,/turf/simulated/floor,/area/engine/engine_hallway) "bIP" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/obj/item/weapon/paper,/turf/simulated/floor,/area/engine/engine_hallway)
"bIQ" = (/obj/item/weapon/sheet/glass{amount = 50},/obj/item/weapon/sheet/glass{amount = 50},/obj/item/weapon/sheet/glass{amount = 50},/obj/machinery/atmospherics/pipe/simple{dir = 10; icon_state = "intact-f"; layer = 3},/turf/simulated/floor,/area/engine/engine_hallway) "bIQ" = (/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/machinery/atmospherics/pipe/simple{dir = 10; icon_state = "intact-f"; layer = 3},/turf/simulated/floor,/area/engine/engine_hallway)
"bIR" = (/obj/table{icon_state = "tabledir"; dir = 9},/obj/machinery/light/small{dir = 4},/obj/item/device/analyzer,/obj/item/weapon/storage/utilitybelt,/obj/item/weapon/storage/utilitybelt,/obj/item/weapon/storage/utilitybelt,/turf/simulated/floor,/area/engine/engine_hallway) "bIR" = (/obj/table{icon_state = "tabledir"; dir = 9},/obj/machinery/light/small{dir = 4},/obj/item/device/analyzer,/obj/item/weapon/storage/utilitybelt,/obj/item/weapon/storage/utilitybelt,/obj/item/weapon/storage/utilitybelt,/turf/simulated/floor,/area/engine/engine_hallway)
"bIS" = (/obj/machinery/atmospherics/pipe/simple,/obj/grille,/turf/simulated/wall/r_wall,/area/atmos) "bIS" = (/obj/machinery/atmospherics/pipe/simple,/obj/grille,/turf/simulated/wall/r_wall,/area/atmos)
"bIT" = (/obj/cable{icon_state = "2-4"; d1 = 2; d2 = 4},/turf/simulated/floor/plating/airless,/area) "bIT" = (/obj/cable{icon_state = "2-4"; d1 = 2; d2 = 4},/turf/simulated/floor/plating/airless,/area)
@@ -4544,7 +4544,7 @@
"bJt" = (/turf/simulated/floor,/area/engine/engine_hallway) "bJt" = (/turf/simulated/floor,/area/engine/engine_hallway)
"bJu" = (/obj/item/weapon/storage/pill_bottle/kelotane,/turf/simulated/floor,/area/engine/engine_hallway) "bJu" = (/obj/item/weapon/storage/pill_bottle/kelotane,/turf/simulated/floor,/area/engine/engine_hallway)
"bJv" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/engine/engine_hallway) "bJv" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/engine/engine_hallway)
"bJw" = (/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/sheet/metal{amount = 50},/obj/machinery/atmospherics/pipe/manifold{dir = 4; initialize_directions = 11},/turf/simulated/floor,/area/engine/engine_hallway) "bJw" = (/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/machinery/atmospherics/pipe/manifold{dir = 4; initialize_directions = 11},/turf/simulated/floor,/area/engine/engine_hallway)
"bJx" = (/obj/table{icon_state = "tabledir"; dir = 10},/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/module/power_control,/obj/item/weapon/module/power_control,/obj/item/weapon/module/power_control,/turf/simulated/floor,/area/engine/engine_hallway) "bJx" = (/obj/table{icon_state = "tabledir"; dir = 10},/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/module/power_control,/obj/item/weapon/module/power_control,/obj/item/weapon/module/power_control,/turf/simulated/floor,/area/engine/engine_hallway)
"bJy" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id = "n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) "bJy" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id = "n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos)
"bJz" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2_sensor"},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) "bJz" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2_sensor"},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos)
@@ -4714,7 +4714,7 @@
"bMH" = (/turf/simulated/floor/engine,/area/engine/engine_control) "bMH" = (/turf/simulated/floor/engine,/area/engine/engine_control)
"bMI" = (/obj/item/clothing/head/helmet/hardhat,/turf/simulated/floor/engine,/area/engine/engine_control) "bMI" = (/obj/item/clothing/head/helmet/hardhat,/turf/simulated/floor/engine,/area/engine/engine_control)
"bMJ" = (/obj/item/weapon/weldingtool,/turf/simulated/floor/engine,/area/engine/engine_control) "bMJ" = (/obj/item/weapon/weldingtool,/turf/simulated/floor/engine,/area/engine/engine_control)
"bMK" = (/obj/item/weapon/rods,/turf/simulated/floor/engine,/area/engine/engine_control) "bMK" = (/obj/item/stack/rods,/turf/simulated/floor/engine,/area/engine/engine_control)
"bML" = (/obj/item/weapon/caution{desc = "Caution! Construction Zone!"; name = "caution sign"},/turf/simulated/floor/engine,/area/engine/engine_control) "bML" = (/obj/item/weapon/caution{desc = "Caution! Construction Zone!"; name = "caution sign"},/turf/simulated/floor/engine,/area/engine/engine_control)
"bMM" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-f"; initialize_directions = 5; layer = 3},/obj/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/engine/engine_hallway) "bMM" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-f"; initialize_directions = 5; layer = 3},/obj/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/engine/engine_hallway)
"bMN" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; layer = 3},/obj/cable{icon_state = "2-8"; d1 = 2; d2 = 8},/turf/simulated/floor,/area/engine/engine_hallway) "bMN" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; layer = 3},/obj/cable{icon_state = "2-8"; d1 = 2; d2 = 8},/turf/simulated/floor,/area/engine/engine_hallway)
@@ -4926,8 +4926,8 @@
"bQL" = (/obj/table/reinforced{tag = "icon-reinf_tabledir"; icon_state = "reinf_tabledir"},/obj/item/weapon/cigpacket,/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/shuttle) "bQL" = (/obj/table/reinforced{tag = "icon-reinf_tabledir"; icon_state = "reinf_tabledir"},/obj/item/weapon/cigpacket,/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/shuttle)
"bQM" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/shuttle) "bQM" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/shuttle)
"bQN" = (/obj/machinery/door/airlock/glass,/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/shuttle) "bQN" = (/obj/machinery/door/airlock/glass,/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact-f"; initialize_directions = 12; layer = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/shuttle)
"bQO" = (/obj/item/weapon/sheet/glass{amount = 5000},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/shuttle) "bQO" = (/obj/item/stack/sheet/glass{amount = 5000},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/shuttle)
"bQP" = (/obj/item/weapon/sheet/metal{amount = 5000},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/shuttle) "bQP" = (/obj/item/stack/sheet/metal{amount = 5000},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/shuttle)
"bQQ" = (/obj/machinery/door/airlock/centcom{opacity = 1; req_access_txt = "20"},/turf/unsimulated/floor{tag = "icon-bar"; icon_state = "bar"; dir = 2},/area/centcom/living) "bQQ" = (/obj/machinery/door/airlock/centcom{opacity = 1; req_access_txt = "20"},/turf/unsimulated/floor{tag = "icon-bar"; icon_state = "bar"; dir = 2},/area/centcom/living)
"bQR" = (/turf/unsimulated/wall,/area/centcom/suppy) "bQR" = (/turf/unsimulated/wall,/area/centcom/suppy)
"bQS" = (/obj/machinery/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion_l"; dir = 4; pixel_y = -1},/turf/space,/area/centcom/shuttle) "bQS" = (/obj/machinery/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion_l"; dir = 4; pixel_y = -1},/turf/space,/area/centcom/shuttle)
@@ -5285,8 +5285,8 @@
"bXG" = (/obj/machinery/door/airlock/external,/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "NTrasen"; name = "Outer Airlock"; p_open = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "bXG" = (/obj/machinery/door/airlock/external,/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "NTrasen"; name = "Outer Airlock"; p_open = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
"bXH" = (/obj/rack,/obj/item/weapon/storage/handcuff_kit,/turf/unsimulated/floor{tag = "icon-grimy"; icon_state = "grimy"},/area/centcom/creed) "bXH" = (/obj/rack,/obj/item/weapon/storage/handcuff_kit,/turf/unsimulated/floor{tag = "icon-grimy"; icon_state = "grimy"},/area/centcom/creed)
"bXI" = (/obj/machinery/door/poddoor{id = "CentComPort"; name = "Security Doors"},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/centcom) "bXI" = (/obj/machinery/door/poddoor{id = "CentComPort"; name = "Security Doors"},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/centcom)
"bXJ" = (/obj/item/weapon/sheet/glass{amount = 50},/obj/item/weapon/sheet/glass{amount = 50},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/centcom) "bXJ" = (/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/centcom)
"bXK" = (/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/sheet/metal{amount = 50},/turf/unsimulated/floor{tag = "icon-green (EAST)"; icon_state = "green"; dir = 4},/area/centcom) "bXK" = (/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/turf/unsimulated/floor{tag = "icon-green (EAST)"; icon_state = "green"; dir = 4},/area/centcom)
"bXL" = (/obj/stool/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "bXL" = (/obj/stool/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
"bXM" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/specops/centcom) "bXM" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/specops/centcom)
"bXN" = (/obj/window/reinforced/east{dir = 5},/turf/unsimulated/floor{tag = "icon-grimy"; icon_state = "grimy"},/area/centcom/creed) "bXN" = (/obj/window/reinforced/east{dir = 5},/turf/unsimulated/floor{tag = "icon-grimy"; icon_state = "grimy"},/area/centcom/creed)
@@ -6013,7 +6013,7 @@
"clG" = (/obj/window{icon_state = "rwindow"; reinf = 1},/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor,/area/derelict/bridge/access) "clG" = (/obj/window{icon_state = "rwindow"; reinf = 1},/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor,/area/derelict/bridge/access)
"clH" = (/obj/window{icon_state = "rwindow"; dir = 10; reinf = 1},/turf/simulated/floor,/area/derelict/bridge/access) "clH" = (/obj/window{icon_state = "rwindow"; dir = 10; reinf = 1},/turf/simulated/floor,/area/derelict/bridge/access)
"clI" = (/obj/window{icon_state = "rwindow"; dir = 4; invisibility = 0; reinf = 1},/turf/simulated/floor,/area/derelict/bridge) "clI" = (/obj/window{icon_state = "rwindow"; dir = 4; invisibility = 0; reinf = 1},/turf/simulated/floor,/area/derelict/bridge)
"clJ" = (/obj/item/weapon/rods,/turf/simulated/floor/plating/airless,/area) "clJ" = (/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area)
"clK" = (/obj/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/wall,/area/derelict/bridge/access) "clK" = (/obj/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/wall,/area/derelict/bridge/access)
"clL" = (/obj/cable{d2 = 8; icon_state = "0-8"},/obj/cable{icon_state = "0-4"; d2 = 4},/obj/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/derelict/bridge/access) "clL" = (/obj/cable{d2 = 8; icon_state = "0-8"},/obj/cable{icon_state = "0-4"; d2 = 4},/obj/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/derelict/bridge/access)
"clM" = (/obj/cable{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/simulated/floor,/area/derelict/bridge/access) "clM" = (/obj/cable{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/simulated/floor,/area/derelict/bridge/access)
@@ -6033,7 +6033,7 @@
"cma" = (/obj/stool/chair,/turf/simulated/floor,/area/derelict/bridge) "cma" = (/obj/stool/chair,/turf/simulated/floor,/area/derelict/bridge)
"cmb" = (/obj/table{icon_state = "tabledir"; dir = 9},/obj/item/weapon/screwdriver,/turf/simulated/floor,/area/derelict/bridge) "cmb" = (/obj/table{icon_state = "tabledir"; dir = 9},/obj/item/weapon/screwdriver,/turf/simulated/floor,/area/derelict/bridge)
"cmc" = (/obj/table{dir = 5; icon_state = "tabledir"},/obj/window{icon_state = "rwindow"; dir = 4; invisibility = 0; reinf = 1},/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor,/area/derelict/bridge) "cmc" = (/obj/table{dir = 5; icon_state = "tabledir"},/obj/window{icon_state = "rwindow"; dir = 4; invisibility = 0; reinf = 1},/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor,/area/derelict/bridge)
"cmd" = (/obj/item/weapon/rods,/turf/space,/area) "cmd" = (/obj/item/stack/rods,/turf/space,/area)
"cme" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/machinery/door/firedoor/border_only{dir = 1},/turf/simulated/floor,/area/derelict/bridge/access) "cme" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/machinery/door/firedoor/border_only{dir = 1},/turf/simulated/floor,/area/derelict/bridge/access)
"cmf" = (/obj/table{icon_state = "tabledir"; dir = 10},/obj/item/weapon/rack_parts,/turf/simulated/floor,/area/derelict/bridge) "cmf" = (/obj/table{icon_state = "tabledir"; dir = 10},/obj/item/weapon/rack_parts,/turf/simulated/floor,/area/derelict/bridge)
"cmg" = (/obj/table{icon_state = "tabledir"; dir = 6},/obj/window/basic,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor,/area/derelict/bridge) "cmg" = (/obj/table{icon_state = "tabledir"; dir = 6},/obj/window/basic,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor,/area/derelict/bridge)
@@ -6368,14 +6368,14 @@
"csx" = (/obj/window/basic{tag = "icon-window (NORTH)"; icon_state = "window"; dir = 1},/obj/cable{icon_state = "2-8"; d1 = 2; d2 = 8},/turf/simulated/floor/plating,/area/derelict/hallway/secondary) "csx" = (/obj/window/basic{tag = "icon-window (NORTH)"; icon_state = "window"; dir = 1},/obj/cable{icon_state = "2-8"; d1 = 2; d2 = 8},/turf/simulated/floor/plating,/area/derelict/hallway/secondary)
"csy" = (/obj/grille,/obj/item/weapon/shard,/obj/item/weapon/shard{tag = "icon-medium"; icon_state = "medium"},/turf/simulated/floor/plating/airless,/area) "csy" = (/obj/grille,/obj/item/weapon/shard,/obj/item/weapon/shard{tag = "icon-medium"; icon_state = "medium"},/turf/simulated/floor/plating/airless,/area)
"csz" = (/obj/grille,/obj/window{icon_state = "rwindow"; dir = 10; reinf = 1},/turf/simulated/floor/plating/airless,/area/derelict/arrival) "csz" = (/obj/grille,/obj/window{icon_state = "rwindow"; dir = 10; reinf = 1},/turf/simulated/floor/plating/airless,/area/derelict/arrival)
"csA" = (/obj/structure/girder,/obj/item/weapon/rods,/turf/simulated/floor/plating/airless,/area/derelict/crew_quarters) "csA" = (/obj/structure/girder,/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/derelict/crew_quarters)
"csB" = (/obj/item/weapon/rods,/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor/airless,/area/derelict/hallway/secondary) "csB" = (/obj/item/stack/rods,/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
"csC" = (/obj/item/weapon/shard{tag = "icon-small"; icon_state = "small"},/turf/space,/area) "csC" = (/obj/item/weapon/shard{tag = "icon-small"; icon_state = "small"},/turf/space,/area)
"csD" = (/turf/simulated/floor/plating/airless,/area/derelict/crew_quarters) "csD" = (/turf/simulated/floor/plating/airless,/area/derelict/crew_quarters)
"csE" = (/turf/simulated/floor/airless{tag = "icon-damaged4"; icon_state = "damaged4"},/area/derelict/crew_quarters) "csE" = (/turf/simulated/floor/airless{tag = "icon-damaged4"; icon_state = "damaged4"},/area/derelict/crew_quarters)
"csF" = (/turf/simulated/floor/airless{tag = "icon-damaged2"; icon_state = "damaged2"},/area/derelict/crew_quarters) "csF" = (/turf/simulated/floor/airless{tag = "icon-damaged2"; icon_state = "damaged2"},/area/derelict/crew_quarters)
"csG" = (/turf/simulated/floor/airless{tag = "icon-damaged5"; icon_state = "damaged5"},/area/derelict/crew_quarters) "csG" = (/turf/simulated/floor/airless{tag = "icon-damaged5"; icon_state = "damaged5"},/area/derelict/crew_quarters)
"csH" = (/obj/lattice,/obj/item/weapon/rods,/turf/space,/area) "csH" = (/obj/lattice,/obj/item/stack/rods,/turf/space,/area)
"csI" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/item/weapon/wirecutters,/turf/simulated/floor/airless,/area/derelict/hallway/secondary) "csI" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/item/weapon/wirecutters,/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
"csJ" = (/obj/grille,/obj/window{icon_state = "rwindow"; dir = 4; invisibility = 0; reinf = 1},/obj/window{icon_state = "rwindow"; dir = 8; reinf = 1},/turf/simulated/floor,/area/derelict/hallway/secondary) "csJ" = (/obj/grille,/obj/window{icon_state = "rwindow"; dir = 4; invisibility = 0; reinf = 1},/obj/window{icon_state = "rwindow"; dir = 8; reinf = 1},/turf/simulated/floor,/area/derelict/hallway/secondary)
"csK" = (/turf/simulated/floor/airless{tag = "icon-damaged3"; icon_state = "damaged3"},/area/derelict/crew_quarters) "csK" = (/turf/simulated/floor/airless{tag = "icon-damaged3"; icon_state = "damaged3"},/area/derelict/crew_quarters)
@@ -6465,7 +6465,7 @@
"cuq" = (/obj/cable,/obj/machinery/power/apc{dir = 8; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/plating/airless,/area/derelict/bridge/ai_upload) "cuq" = (/obj/cable,/obj/machinery/power/apc{dir = 8; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/plating/airless,/area/derelict/bridge/ai_upload)
"cur" = (/turf/simulated/floor/airless{tag = "icon-damaged2"; icon_state = "damaged2"},/area/derelict/bridge/ai_upload) "cur" = (/turf/simulated/floor/airless{tag = "icon-damaged2"; icon_state = "damaged2"},/area/derelict/bridge/ai_upload)
"cus" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) "cus" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload)
"cut" = (/obj/item/weapon/rods,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) "cut" = (/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
"cuu" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/airless,/area) "cuu" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/airless,/area)
"cuv" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/machinery/light/small,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) "cuv" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/obj/machinery/light/small,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload)
"cuw" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) "cuw" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload)

View File

@@ -70,6 +70,7 @@
#define FILE_DIR "code/game/objects/radio" #define FILE_DIR "code/game/objects/radio"
#define FILE_DIR "code/game/objects/secstorage" #define FILE_DIR "code/game/objects/secstorage"
#define FILE_DIR "code/game/objects/spawners" #define FILE_DIR "code/game/objects/spawners"
#define FILE_DIR "code/game/objects/stacks"
#define FILE_DIR "code/game/objects/storage" #define FILE_DIR "code/game/objects/storage"
#define FILE_DIR "code/game/spacecraft" #define FILE_DIR "code/game/spacecraft"
#define FILE_DIR "code/game/verbs" #define FILE_DIR "code/game/verbs"
@@ -516,14 +517,12 @@
#include "code\game\objects\items\weapons\clown_items.dm" #include "code\game\objects\items\weapons\clown_items.dm"
#include "code\game\objects\items\weapons\explosives.dm" #include "code\game\objects\items\weapons\explosives.dm"
#include "code\game\objects\items\weapons\flamethrower.dm" #include "code\game\objects\items\weapons\flamethrower.dm"
#include "code\game\objects\items\weapons\glass.dm"
#include "code\game\objects\items\weapons\grenades.dm" #include "code\game\objects\items\weapons\grenades.dm"
#include "code\game\objects\items\weapons\guns_ammo.dm" #include "code\game\objects\items\weapons\guns_ammo.dm"
#include "code\game\objects\items\weapons\hydroponics.dm" #include "code\game\objects\items\weapons\hydroponics.dm"
#include "code\game\objects\items\weapons\implants.dm" #include "code\game\objects\items\weapons\implants.dm"
#include "code\game\objects\items\weapons\kitchen.dm" #include "code\game\objects\items\weapons\kitchen.dm"
#include "code\game\objects\items\weapons\medical.dm" #include "code\game\objects\items\weapons\medical.dm"
#include "code\game\objects\items\weapons\metals_rods.dm"
#include "code\game\objects\items\weapons\misc.dm" #include "code\game\objects\items\weapons\misc.dm"
#include "code\game\objects\items\weapons\mops_cleaners.dm" #include "code\game\objects\items\weapons\mops_cleaners.dm"
#include "code\game\objects\items\weapons\papers_bins.dm" #include "code\game\objects\items\weapons\papers_bins.dm"
@@ -545,6 +544,9 @@
#include "code\game\objects\secstorage\secstorage.dm" #include "code\game\objects\secstorage\secstorage.dm"
#include "code\game\objects\secstorage\ssafe.dm" #include "code\game\objects\secstorage\ssafe.dm"
#include "code\game\objects\spawners\bomb.dm" #include "code\game\objects\spawners\bomb.dm"
#include "code\game\objects\stacks\glass.dm"
#include "code\game\objects\stacks\metal.dm"
#include "code\game\objects\stacks\stack.dm"
#include "code\game\objects\storage\backpack.dm" #include "code\game\objects\storage\backpack.dm"
#include "code\game\objects\storage\bible.dm" #include "code\game\objects\storage\bible.dm"
#include "code\game\objects\storage\briefcase.dm" #include "code\game\objects\storage\briefcase.dm"