mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
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:
@@ -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."
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)) )
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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++
|
||||
|
||||
|
||||
@@ -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.", \
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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()
|
||||
..()
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
||||
137
code/game/objects/stacks/glass.dm
Normal file
137
code/game/objects/stacks/glass.dm
Normal 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()
|
||||
..()
|
||||
130
code/game/objects/stacks/metal.dm
Normal file
130
code/game/objects/stacks/metal.dm
Normal 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
|
||||
203
code/game/objects/stacks/stack.dm
Normal file
203
code/game/objects/stacks/stack.dm
Normal 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")
|
||||
..()
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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)
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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 |
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user