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

View File

@@ -577,7 +577,7 @@
F.burnt = 1
F.intact = 0
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" : ""]"
if(direction) // direction is specified

View File

@@ -816,3 +816,90 @@ obj/item/brain
density = 1
opacity = 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"
item_state = "welder"
var/obj/item/weapon/weldingtool/part1 = null
var/obj/item/weapon/rods/part2 = null
var/obj/item/stack/rods/part2 = null
status = null
flags = FPRINT | TABLEPASS| CONDUCT
force = 3.0
@@ -142,7 +142,7 @@
icon_state = "welder-rods-igniter"
item_state = "welder"
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
status = null
flags = FPRINT | TABLEPASS| CONDUCT

View File

@@ -52,9 +52,10 @@
icon_state = "headset"
item_state = "headset"
var/protective_temperature = 0
var/bintran = 0
/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
name = "Security Radio Headset"

View File

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

View File

@@ -135,9 +135,10 @@
w_class = 2.0
flags = FPRINT | TABLEPASS| CONDUCT
throwforce = 5
w_class = 2.0
throw_speed = 4
throw_range = 20
m_amt = 30
g_amt = 20
/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
throw_speed = 7
throw_range = 15
m_amt = 60
m_amt = 10
/obj/item/weapon/pen/sleepypen
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_state = "rack_parts"
flags = FPRINT | TABLEPASS| CONDUCT
/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
m_amt = 3750
/obj/item/weapon/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
throwforce = 15.0
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
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
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"
icon = 'items.dmi'
icon_state = "table_parts"
m_amt = 3750
flags = FPRINT | TABLEPASS| CONDUCT
/obj/item/weapon/table_parts/reinforced
name = "table parts"
icon = 'items.dmi'
icon_state = "reinf_tableparts"
m_amt = 7500
flags = FPRINT | TABLEPASS| CONDUCT
/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
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
name = "Teleportation Scroll"
icon = 'items.dmi'
@@ -1183,7 +1100,7 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
name = "weldingtool"
icon = 'items.dmi'
icon_state = "welder"
var/welding = 0.0
var/welding = 0
var/status = 0 //flamethrower construction :shobon:
flags = FPRINT | TABLEPASS| CONDUCT
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_range = 5
w_class = 2.0
m_amt = 30
m_amt = 70
g_amt = 30
/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/maxcharge = 1000
m_amt = 700
g_amt = 50
var/rigged = 0 // true if rigged to explode
/obj/item/weapon/cell/robotcrate

View File

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

View File

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

View File

@@ -398,7 +398,7 @@
/////////////////////////////
/datum/game_mode/revolution/proc/check_heads_victory()
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 1

View File

@@ -88,11 +88,11 @@ datum/hSB
P.back.layer = 20
P.internal = P.back
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.loc = usr.loc
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.loc = usr.loc
if("hsbairlock")

View File

@@ -1,6 +1,7 @@
/obj/machinery/portable_atmospherics/canister
name = "canister"
icon = 'atmos.dmi'
icon_state = "yellow"
density = 1
var/health = 100.0
flags = FPRINT | CONDUCT
@@ -8,7 +9,8 @@
var/valve_open = 0
var/release_pressure = ONE_ATMOSPHERE
var/color = "blue"
var/color = "yellow"
var/labeled = 0
var/filled = 0.5
pressure_resistance = 7*ONE_ATMOSPHERE
var/temperature_resistance = 1000 + T0C
@@ -18,10 +20,12 @@
name = "Canister: \[N2O\]"
icon_state = "redws"
color = "redws"
labeled = 1
/obj/machinery/portable_atmospherics/canister/nitrogen
name = "Canister: \[N2\]"
icon_state = "red"
color = "red"
labeled = 1
/obj/machinery/portable_atmospherics/canister/oxygen
name = "Canister: \[O2\]"
icon_state = "blue"
@@ -29,14 +33,17 @@
name = "Canister \[Toxin (Bio)\]"
icon_state = "orange"
color = "orange"
labeled = 1
/obj/machinery/portable_atmospherics/canister/carbon_dioxide
name = "Canister \[CO2\]"
icon_state = "black"
color = "black"
labeled = 1
/obj/machinery/portable_atmospherics/canister/air
name = "Canister \[Air\]"
icon_state = "grey"
color = "grey"
labeled = 1
/obj/machinery/portable_atmospherics/canister/update_icon()
src.overlays = 0
@@ -158,7 +165,7 @@
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>
"}
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>
Port Status: [(connected_port)?("Connected"):("Disconnected")]
[holding_text]
@@ -195,6 +202,23 @@ Release Pressure: <A href='?src=\ref[src];pressure_adj=-1000'>-</A> <A href='?sr
else
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.add_fingerprint(usr)
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.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 (!opened)
src.opened = 1
src.icon_state = "autolathef"
user << "You open the maintenance hatch of [src]."
else
src.opened = 0
src.icon_state = "autolathe"
user << "You close the maintenance hatch of [src]."
return
if (opened)
user << "You can't load the autolathe while it's opened."
return
user << "\red You can't load the autolathe while it's opened."
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)
var/obj/item/weapon/grab/G = O
@@ -18,79 +39,95 @@
m_amount += 50000
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)
spawn(16) {
flick("autolathe_c",src)
if(O)
if(O.g_amt) // Added null checks to avoid runtime errors when an item doesn't have an expected variable -- TLE
src.g_amount += O.g_amt
if(O.m_amt)
src.m_amount += O.m_amt
del O
}
var/amount = 1
var/obj/item/stack/stack
var/m_amt = O.m_amt
var/g_amt = O.g_amt
if (istype(O, /obj/item/stack))
stack = O
amount = stack.amount
if (m_amt)
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
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)
/obj/machinery/autolathe/attack_hand(user as mob)
var/dat
/obj/machinery/autolathe/attack_hand(mob/user as mob)
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(..())
return
if (src.shocked)
src.shock(user)
if (src.opened)
dat += "Autolathe Wires:<BR>"
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")
wires_win(user)
return
if (src.disabled)
user << "You press the button, but nothing happens."
user << "\red You press the button, but nothing happens."
return
if (src.temp)
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")
regular_win(user)
return
/obj/machinery/autolathe/Topic(href, href_list)
@@ -98,99 +135,117 @@
return
usr.machine = src
src.add_fingerprint(usr)
if(href_list["make"])
var/obj/template = locate(href_list["make"])
if(src.m_amount >= template.m_amt && src.g_amount >= template.g_amt)
spawn(16)
if (!busy)
if(href_list["make"])
var/turf/T = get_step(src.loc, get_dir(src,usr))
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)
spawn(16)
flick("autolathe_o",src)
use_power(power)
spawn(16)
src.m_amount -= template.m_amt
src.g_amount -= template.g_amt
if(src.m_amount < 0)
src.m_amount = 0
if(src.g_amount < 0)
src.g_amount = 0
new template.type(usr.loc)
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."
icon_state = "autolathe"
flick("autolathe_o",src)
use_power(power)
spawn(16)
src.m_amount -= template.m_amt*multiplier
src.g_amount -= template.g_amt*multiplier
if(src.m_amount < 0)
src.m_amount = 0
if(src.g_amount < 0)
src.g_amount = 0
var/obj/new_item = new template.type(T)
if (multiplier>1)
var/obj/item/stack/S = new_item
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
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
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)
else
usr << "\red The autolathe is busy. Please wait for completion of previous operation."
src.updateUsrDialog()
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()
..()
// screwdriver removed
src.L += new /obj/item/weapon/wirecutters(src)
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.L = autolathe_recipes
src.LL = autolathe_recipes_hidden
src.wires["Light Red"] = 0
src.wires["Dark Red"] = 0
src.wires["Blue"] = 0

View File

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

View File

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

View File

@@ -10,7 +10,7 @@
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)
if(0)
if(istype(P, /obj/item/weapon/wrench))
@@ -23,8 +23,7 @@
playsound(src.loc, 'Welder.ogg', 50, 1)
if(do_after(user, 20))
user << "\blue You deconstruct the frame."
var/obj/item/weapon/sheet/r_metal/A = new /obj/item/weapon/sheet/r_metal( src.loc )
A.amount = 4
new /obj/item/stack/sheet/r_metal( src.loc, 4)
del(src)
if(1)
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 )
A.amount = 5
if(istype(P, /obj/item/weapon/sheet/rglass))
if(istype(P, /obj/item/stack/sheet/rglass))
if(P:amount >= 2)
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
if(do_after(user, 20))
@@ -129,8 +128,7 @@
src.icon_state = "3b"
else
src.icon_state = "3"
var/obj/item/weapon/sheet/rglass/A = new /obj/item/weapon/sheet/rglass( src.loc )
A.amount = 2
new /obj/item/stack/sheet/rglass( src.loc, 2 )
if(istype(P, /obj/item/weapon/screwdriver))
playsound(src.loc, 'Screwdriver.ogg', 50, 1)
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)
if(0)
if(istype(P, /obj/item/weapon/wrench))
@@ -118,8 +118,7 @@
playsound(src.loc, 'Welder.ogg', 50, 1)
if(do_after(user, 20))
user << "\blue You deconstruct the frame."
var/obj/item/weapon/sheet/metal/A = new /obj/item/weapon/sheet/metal( src.loc )
A.amount = 5
new /obj/item/stack/sheet/metal( src.loc, 5 )
del(src)
if(1)
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 )
A.amount = 5
if(istype(P, /obj/item/weapon/sheet/glass))
if(istype(P, /obj/item/stack/sheet/glass))
if(P:amount >= 2)
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
if(do_after(user, 20))
if(P)
P:amount -= 2
if(!P:amount) del(P)
user << "\blue You put in the glass panel."
src.state = 4
src.icon_state = "4"
P:use(2)
user << "\blue You put in the glass panel."
src.state = 4
src.icon_state = "4"
if(4)
if(istype(P, /obj/item/weapon/crowbar))
playsound(src.loc, 'Crowbar.ogg', 50, 1)
user << "\blue You remove the glass panel."
src.state = 3
src.icon_state = "3"
var/obj/item/weapon/sheet/glass/A = new /obj/item/weapon/sheet/glass( src.loc )
A.amount = 2
new /obj/item/stack/sheet/glass( src.loc, 2 )
if(istype(P, /obj/item/weapon/screwdriver))
playsound(src.loc, 'Screwdriver.ogg', 50, 1)
user << "\blue You connect the monitor."

View File

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

View File

@@ -92,7 +92,7 @@
if(istype(O,/obj/item/weapon/rcd))
if(O:matter < 30)
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)
O:amount += 1
// Security

View File

@@ -8,8 +8,8 @@
var/operating = 0
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)
if (istype(O, /obj/item/weapon/sheet/metal))
/obj/machinery/robotic_fabricator/attackby(var/obj/item/O as obj, var/mob/user as mob)
if (istype(O, /obj/item/stack/sheet/metal))
if (src.metal_amount < 150000.0)
var/count = 0
spawn(15)
@@ -17,7 +17,7 @@
if(!O:amount)
return
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--
count++

View File

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

View File

@@ -32,13 +32,14 @@ However people seem to like it for some reason.
anchored = !anchored
playsound(src.loc, 'Ratchet.ogg', 75, 1)
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 hear ratchet")
else
user.visible_message("[user.name] unsecure [src.name] from the floor.", \
"You unsecure the [src.name] to the floor.", \
user.visible_message("[user.name] unsecures [src.name] from the floor.", \
"You unsecure the [src.name] from the floor.", \
"You hear ratchet")
return
return ..()
/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()
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))
spawn() myCC.updatecons()
@@ -212,9 +213,6 @@ However people seem to like it for some reason.
gain = 2
else if(isturf(A))
if(istype(A, /turf/space))
world << "DEBUG: the_singularity tryes to eat space!!!11"
return
/*if(!active)
if(isturf(A,/turf/simulated/floor/engine)) //here was a bug. But now it's a feature. -rasta0
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(!X:broken)
if(prob(80))
new/obj/item/weapon/tile (X)
new/obj/item/stack/tile (X)
X:break_tile_to_plating()
else
X:break_tile()
else if(istype(X,/turf/simulated/wall))
if (istype(X,/turf/simulated/wall/r_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()
X:dismantle_wall()
else
X:ReplaceWithFloor()
@@ -662,16 +654,16 @@ However people seem to like it for some reason.
else if(state == 0)
state = 1
playsound(src.loc, 'Ratchet.ogg', 75, 1)
user.visible_message("[user.name] secure [src.name] to the floor.", \
"You secure the external reinforcing bolts to the floor.", \
user.visible_message("[user.name] secures [src.name] to the floor.", \
"You secure the external reinforcing bolts.", \
"You hear ratchet")
src.anchored = 1
else if(state == 1)
state = 0
playsound(src.loc, 'Ratchet.ogg', 75, 1)
user.visible_message("[user.name] unsecure [src.name] to the floor.", \
"You undo the external reinforcing bolts to the floor.", \
user.visible_message("[user.name] unsecures [src.name] to the floor.", \
"You undo the external reinforcing bolts.", \
"You hear ratchet")
src.anchored = 0
else
@@ -691,7 +683,7 @@ However people seem to like it for some reason.
playsound(src.loc, 'Welder2.ogg', 50, 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 hear welding")
if (do_after(user,20))
@@ -701,7 +693,7 @@ However people seem to like it for some reason.
return 1
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 hear welding")
if (do_after(user,20))
@@ -818,11 +810,11 @@ However people seem to like it for some reason.
src.active = !src.active
if(src.active)
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.")
else
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.")
CU.updatecons()
@@ -858,11 +850,11 @@ However people seem to like it for some reason.
playsound(src.loc, 'Ratchet.ogg', 75, 1)
src.anchored = !src.anchored
if(src.anchored == 1)
user.visible_message("[user.name] secure [src.name] reinforcing bolts to the floor.", \
"You secure the collector reinforcing bolts to the floor.", \
user.visible_message("[user.name] secures [src.name] reinforcing bolts to the floor.", \
"You secure the collector reinforcing bolts.", \
"You hear ratchet")
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 hear ratchet")
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)
src.anchored = !src.anchored
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 hear ratchet")
connect_to_network()
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 hear ratchet")
disconnect_from_network()
@@ -1122,11 +1114,11 @@ However people seem to like it for some reason.
if(src.active >= 1)
// src.active = 0
// 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()
return 1
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 hear heavy droning")
turn_on()
@@ -1221,7 +1213,7 @@ However people seem to like it for some reason.
if(state == 0)
state = 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 hear ratchet")
src.anchored = 1
@@ -1229,7 +1221,7 @@ However people seem to like it for some reason.
else if(state == 1)
state = 0
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 hear ratchet")
src.anchored = 0
@@ -1246,7 +1238,7 @@ However people seem to like it for some reason.
playsound(src.loc, 'Welder2.ogg', 50, 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 hear welding")
if (do_after(user,20))
@@ -1256,7 +1248,7 @@ However people seem to like it for some reason.
return 1
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 hear welding")
if (do_after(user,20))

View File

@@ -144,7 +144,7 @@
user << "\blue You need more welding fuel to complete this task."
return
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))
M.show_message("\red [src] has been cut apart by [user.name] with the weldingtool.", 3, "\red You hear welding.", 2)
del(src)

View File

@@ -82,7 +82,7 @@ obj/door_assembly
state = 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 (W:get_fuel() < 1)
user << "\blue You need more welding fuel to dissassemble the airlock assembly."
@@ -94,12 +94,9 @@ obj/door_assembly
sleep(40)
if(get_turf(user) == T)
user << "\blue You dissasembled the airlock assembly!"
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))
new /obj/item/weapon/sheet/metal(get_turf(src))
new /obj/item/stack/sheet/metal(get_turf(src), 4)
if(src.glass==1)
new /obj/item/weapon/sheet/rglass(get_turf(src))
new /obj/item/stack/sheet/rglass(get_turf(src))
del(src)
else if(istype(W, /obj/item/weapon/wrench) && !anchored )
playsound(src.loc, 'Ratchet.ogg', 100, 1)
@@ -207,7 +204,7 @@ obj/door_assembly
ae = electronics
electronics = null
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)
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.")

View File

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

View File

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

View File

@@ -71,18 +71,13 @@
return 0
/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
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"
del(W)
W:use(1)
if (user.get_inactive_hand()==src)
user.before_take_item(src)
user.put_in_inactive_hand(B)
del(src)
if(istype(W, /obj/item/robot_parts/l_leg))
user.drop_item()

View File

@@ -21,7 +21,7 @@ GETLINEEEEEEEEEEEEEEEEEEEEE
var/lit = 0 //on or off
var/turf/previousturf = 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/weapon/tank/plasma/part4 = null
m_amt = 500
@@ -155,7 +155,7 @@ GETLINEEEEEEEEEEEEEEEEEEEEE
if(isturf(location)) //start a fire if possible
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)
return
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)
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
del(src)
@@ -40,7 +40,7 @@ RACK PARTS
// REINFORCED TABLE PARTS
/obj/item/weapon/table_parts/reinforced/attackby(obj/item/weapon/W as obj, mob/user as mob)
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
del(src)
@@ -70,7 +70,7 @@ RACK PARTS
// RACK PARTS
/obj/item/weapon/rack_parts/attackby(obj/item/weapon/W as obj, mob/user as mob)
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)
return
return

View File

@@ -26,86 +26,3 @@ TILES
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() )
return
/obj/item/weapon/weldingtool/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (status == 0 && istype(W,/obj/item/weapon/screwdriver))
status = 1
user << "\blue The welder can now be attached and modified."
else if (status == 1 && istype(W,/obj/item/weapon/rods))
var/obj/item/weapon/rods/R = W
R.amount = R.amount - 1
if (R.amount == 0)
del(R)
/obj/item/weapon/weldingtool/attackby(obj/item/W as obj, mob/user as mob)
if (istype(W,/obj/item/weapon/screwdriver))
status = !status
if (status)
user << "\blue You resecure the welder."
else
user << "\blue The welder can now be attached and modified."
src.add_fingerprint(user)
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 )
src.loc = F
F.part1 = src
@@ -120,10 +122,8 @@ WELDINGTOOOL
R.layer = 20
F.loc = user
src.add_fingerprint(user)
else if (status == 1 && istype(W,/obj/item/weapon/screwdriver))
status = 0
user << "\blue You resecure the welder."
return
else
..()
// 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()
if(prob(75))
new /obj/item/weapon/sheet/metal( src.loc )
new /obj/item/stack/sheet/metal( src.loc )
del(src)
/obj/stool/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/wrench))
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
del(src)
return
@@ -36,7 +36,7 @@
..()
if (istype(W, /obj/item/weapon/wrench))
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)
return

View File

@@ -15,114 +15,128 @@ obj/structure
icon_state = "reinforced"
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))
playsound(src.loc, 'Ratchet.ogg', 100, 1)
var/turf/T = get_turf(user)
user << "\blue Now disassembling the girder"
sleep(40)
if(get_turf(user) == T)
if(do_after(user,40))
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)
else if((istype(W, /obj/item/weapon/sheet/metal)) && (W:amount >= 2) && istype(src,/obj/structure/girder/displaced))
W:amount -= 2
if(W:amount <= 0)
del(W)
else if((istype(W, /obj/item/stack/sheet/metal)) && (W:amount >= 2) && istype(src,/obj/structure/girder/displaced))
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/falsewall (src.loc)
del(src)
else if(istype(W, /obj/item/weapon/sheet/r_metal) && istype(src,/obj/structure/girder/displaced))
W:amount -= 1
if(W:amount <= 0)
del(W)
else if(istype(W, /obj/item/stack/sheet/r_metal) && istype(src,/obj/structure/girder/displaced))
W:use(2)
user << "\blue You create a false r wall! Push on it to open or close the passage."
new /obj/falserwall (src.loc)
del(src)
else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 && istype(src,/obj/structure/girder/reinforced))
playsound(src.loc, 'Screwdriver.ogg', 100, 1)
var/turf/T = get_turf(user)
user << "\blue Now unsecuring support struts"
sleep(40)
if(get_turf(user) == T)
if(do_after(user,40))
user << "\blue You unsecured the support struts!"
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)
var/turf/T = get_turf(user)
user << "\blue Now removing support struts"
sleep(40)
if(get_turf(user) == T)
if(do_after(user,40))
user << "\blue You removed the support struts!"
new/obj/structure/girder( src.loc )
del(src)
else if(istype(W, /obj/item/weapon/crowbar) && state == 0 && anchored )
playsound(src.loc, 'Crowbar.ogg', 100, 1)
var/turf/T = get_turf(user)
user << "\blue Now dislodging the girder"
sleep(40)
if(get_turf(user) == T)
if(do_after(user, 40))
user << "\blue You dislodged the girder!"
new/obj/structure/girder/displaced( src.loc )
del(src)
else if(istype(W, /obj/item/weapon/wrench) && state == 0 && !anchored )
playsound(src.loc, 'Ratchet.ogg', 100, 1)
var/turf/T = get_turf(user)
user << "\blue Now securing the girder"
sleep(40)
if(get_turf(user) == T)
if(get_turf(user, 40))
user << "\blue You secured the girder!"
new/obj/structure/girder( src.loc )
del(src)
else if((istype(W, /obj/item/weapon/sheet/metal)) && (W:amount >= 2))
var/turf/T = get_turf(user)
else if((istype(W, /obj/item/stack/sheet/metal)) && (W:amount >= 2))
user << "\blue Now adding plating..."
sleep(40)
if (get_turf(user) == T)
if (do_after(user,40))
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithWall()
W:amount -= 2
if(W:amount <= 0)
del(W)
W:use(2)
del(src)
return
else if (istype(W, /obj/item/weapon/sheet/r_metal))
var/turf/T = get_turf(user)
else if (istype(W, /obj/item/stack/sheet/r_metal))
if (src.icon_state == "reinforced") //Time to finalize!
user << "\blue Now finalising reinforced wall."
sleep(50)
if(W)
if(get_turf(user) == T)
user << "\blue Wall fully reinforced!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithRWall()
W:amount--
if (W:amount <= 0)
del(W)
del(src)
return
if(do_after(user, 50))
user << "\blue Wall fully reinforced!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithRWall()
W:use(1)
del(src)
return
else
user << "\blue Now reinforcing girders"
sleep(60)
user << "\blue Girders reinforced!"
W:amount--
if (W:amount <= 0)
del(W)
new/obj/structure/girder/reinforced( src.loc )
del(src)
return
if (do_after(user,60))
user << "\blue Girders reinforced!"
W:use(1)
new/obj/structure/girder/reinforced( src.loc )
del(src)
return
else
..()
/obj/structure/girder/blob_act()
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
if(health <=0)
new /obj/item/weapon/shard( src.loc )
new /obj/item/weapon/rods( src.loc )
new /obj/item/stack/rods( src.loc )
src.density = 0
del(src)
@@ -24,21 +24,21 @@
return
if(2.0)
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
del(src)
return
if(3.0)
if (prob(50))
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)
return
return
/obj/window/blob_act()
if(reinf) new /obj/item/weapon/rods( src.loc)
if(reinf) new /obj/item/stack/rods( src.loc)
density = 0
del(src)
@@ -66,7 +66,7 @@
//world << "glass at [x],[y],[z] Mhit"
src.health = 0
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
@@ -92,7 +92,7 @@
step(src, get_dir(AM, src))
if (src.health <= 0)
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
del(src)
return
@@ -107,7 +107,7 @@
O << text("\red [] smashes through the window!", usr)
src.health = 0
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
del(src)
return
@@ -120,7 +120,7 @@
O << text("\red [] smashes through the window!", usr)
src.health = 0
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
del(src)
return
@@ -142,7 +142,7 @@
src.health = 0
new /obj/item/weapon/shard(src.loc)
if(reinf)
new /obj/item/weapon/rods(src.loc)
new /obj/item/stack/rods(src.loc)
src.density = 0
del(src)
return
@@ -183,11 +183,11 @@
index = 0
while(index < 2)
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++
else
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
del(src)
return

View File

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

View File

@@ -17,8 +17,8 @@
if (!msg)
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)
if(M.stat == 2 || (M.client && M.client.holder))
M.show_message(rendered, 2)

View File

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

View File

@@ -68,7 +68,7 @@
message_mode = "left hand"
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))
message_mode = "secure headset"
message = copytext(message, 3)
@@ -81,14 +81,17 @@
message_mode = "intercom"
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 = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
src.robot_talk(message)
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)
return

View File

@@ -44,11 +44,11 @@
src.modules += new /obj/item/weapon/wirecutters(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
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
src.modules += G

View File

@@ -59,11 +59,11 @@
src.modules += new /obj/item/weapon/wirecutters(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
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
src.modules += G

View File

@@ -1095,6 +1095,43 @@
T.Entered(W)
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)
if (src.client)
if (istype(A, /atom/movable))

View File

@@ -217,7 +217,7 @@
/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)
if (istype(W, /obj/item/weapon/crowbar) && opened)
if (has_electronics==1)
@@ -270,20 +270,20 @@
if (cell)
user << "\red Close the APC first." //Less hints more mystery!
return
else if (!has_electronics || !terminal)
user << "\red There is nothing to secure."
return
else
if (has_electronics==1)
has_electronics = 2
stat &= ~MAINT
playsound(src.loc, 'Screwdriver.ogg', 50, 1)
user << "You screw the circuit electronics into place."
else /*(has_electronics==2)*/
else if (has_electronics==2)
has_electronics = 1
stat |= MAINT
playsound(src.loc, 'Screwdriver.ogg', 50, 1)
user << "You unfasten the electronics."
else /* has_electronics==0 */
user << "\red There is nothing to secure."
return
updateicon()
else if(emagged || malfhack)
user << "The interface is broken"
@@ -377,7 +377,7 @@
playsound(src.loc, 'Welder.ogg', 50, 1)
if(do_after(user, 50))
if (emagged || malfhack || (stat & BROKEN) || opened==2)
new /obj/item/weapon/sheet/metal(loc)
new /obj/item/stack/sheet/metal(loc)
user.visible_message(\
"\red [src] has been cut apart by [user.name] with the weldingtool.",\
"You disassembled brocken APC frame.",\
@@ -419,14 +419,15 @@
&& !opened \
&& W.force >= 5 \
&& W.w_class >= 3.0 \
&& !istype(W, /obj/item/weapon/gun) \
&& prob(10) )
&& prob(20) )
opened = 2
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]!", \
"You hear bang")
updateicon()
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]!", \
"\red You hit the [src.name] with your [W.name]!", \
"You hear bang")
@@ -478,7 +479,7 @@
return
if(wiresexposed && (!istype(user, /mob/living/silicon)))
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(
"Orange" = 1,
"Dark red" = 2,
@@ -495,7 +496,7 @@
t1 += "<a href='?src=\ref[src];pulse=[apcwires[wiredesc]]'>Pulse</a> "
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("<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")
onclose(user, "apcwires")
@@ -868,6 +869,7 @@
if (src.z == 1)
ticker.mode:apcs++
src.malfai = usr
src.locked = 1
if (src.cell)
if (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)
"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)
"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)
"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)
@@ -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)
"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)
"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)
"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)
@@ -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)
"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)
"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)
"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)
"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/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)
"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)
@@ -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)
"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)
"axc" = (/obj/item/weapon/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)
"axc" = (/obj/item/stack/rods{amount = 50},/obj/landmark/start{name = "Assistant"},/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)
"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)
@@ -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)
"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)
"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)
"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)
@@ -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)
"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)
"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)
"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)
@@ -1278,8 +1278,8 @@
"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)
"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)
"ayH" = (/obj/table{icon_state = "tabledir"; dir = 10},/obj/item/weapon/sheet/rglass{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/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)
"ayJ" = (/obj/disposalpipe/segment,/turf/simulated/wall,/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)
"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)
"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)
"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)
@@ -2417,7 +2417,7 @@
"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)
"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)
"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)
@@ -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)
"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)
"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)
"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)
@@ -2772,7 +2772,7 @@
"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)
"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)
"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)
@@ -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)
"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)
"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)
"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)
@@ -4536,7 +4536,7 @@
"bJl" = (/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)
"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)
"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)
@@ -4702,7 +4702,7 @@
"bMv" = (/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)
"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)
"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)
@@ -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)
"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)
"bTz" = (/obj/item/weapon/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)
"bTz" = (/obj/item/stack/sheet/glass{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)
"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)
@@ -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)
"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)
"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)
"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)
@@ -5873,7 +5873,7 @@
"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)
"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)
"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)
@@ -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)
"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)
"crX" = (/obj/structure/girder,/obj/item/weapon/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)
"crX" = (/obj/structure/girder,/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/derelict/crew_quarters)
"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)
"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)
"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)
"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)
"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)
@@ -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)
"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)
"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)
"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)

View File

@@ -838,7 +838,7 @@
"aqf" = (/obj/stool{pixel_y = 8},/turf/simulated/floor,/area/crew_quarters/fitness)
"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)
"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)
"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)
@@ -990,7 +990,7 @@
"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)
"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)
"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)
@@ -1022,7 +1022,7 @@
"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)
"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)
"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)
@@ -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)
"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)
"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)
"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)
@@ -1110,7 +1110,7 @@
"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)
"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)
"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)
@@ -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)
"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)
"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)
"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)
@@ -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)
"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)
"awX" = (/obj/item/weapon/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)
"awX" = (/obj/item/stack/rods{amount = 50},/obj/landmark/start{name = "Assistant"},/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)
"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)
@@ -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)
"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)
"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)
"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)
@@ -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)
"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)
"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)
"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)
@@ -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)
"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)
"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)
"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)
@@ -2777,7 +2777,7 @@
"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)
"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)
"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)
@@ -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)
"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)
"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)
"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)
@@ -4544,7 +4544,7 @@
"bJt" = (/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)
"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)
"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)
@@ -4714,7 +4714,7 @@
"bMH" = (/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)
"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)
"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)
@@ -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)
"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)
"bQO" = (/obj/item/weapon/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)
"bQO" = (/obj/item/stack/sheet/glass{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)
"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)
@@ -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)
"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)
"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)
"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)
"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/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)
"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)
@@ -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)
"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)
"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)
"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)
@@ -6033,7 +6033,7 @@
"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)
"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)
"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)
@@ -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)
"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)
"csA" = (/obj/structure/girder,/obj/item/weapon/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)
"csA" = (/obj/structure/girder,/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/derelict/crew_quarters)
"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)
"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)
"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)
"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)
"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)
@@ -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)
"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)
"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)
"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)

View File

@@ -70,6 +70,7 @@
#define FILE_DIR "code/game/objects/radio"
#define FILE_DIR "code/game/objects/secstorage"
#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/spacecraft"
#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\explosives.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\guns_ammo.dm"
#include "code\game\objects\items\weapons\hydroponics.dm"
#include "code\game\objects\items\weapons\implants.dm"
#include "code\game\objects\items\weapons\kitchen.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\mops_cleaners.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\ssafe.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\bible.dm"
#include "code\game\objects\storage\briefcase.dm"