diff --git a/baystation12.dme b/baystation12.dme index 766ffdcf4a1..bf03bdb5979 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -511,7 +511,6 @@ #include "code\game\machinery\scanner.dm" #include "code\game\machinery\seed_extractor.dm" #include "code\game\machinery\shieldgen.dm" -#include "code\game\machinery\sink.dm" #include "code\game\machinery\Sleeper.dm" #include "code\game\machinery\spaceheater.dm" #include "code\game\machinery\status_display.dm" @@ -787,6 +786,7 @@ #include "code\js\byjax.dm" #include "code\js\menus.dm" #include "code\modules\admin\admin.dm" +#include "code\modules\admin\admin_investigate.dm" #include "code\modules\admin\admin_memo.dm" #include "code\modules\admin\admin_verbs.dm" #include "code\modules\admin\banjob.dm" @@ -851,6 +851,7 @@ #include "code\modules\clothing\head\hats.dm" #include "code\modules\clothing\head\helmets.dm" #include "code\modules\clothing\spacesuits\captain.dm" +#include "code\modules\clothing\spacesuits\engineer.dm" #include "code\modules\clothing\spacesuits\miscellaneous.dm" #include "code\modules\clothing\spacesuits\ninja.dm" #include "code\modules\clothing\spacesuits\rig.dm" @@ -1078,6 +1079,7 @@ #include "code\modules\power\singularity\emitter.dm" #include "code\modules\power\singularity\field_generator.dm" #include "code\modules\power\singularity\generator.dm" +#include "code\modules\power\singularity\investigate.dm" #include "code\modules\power\singularity\singularity.dm" #include "code\modules\power\singularity\particle_accelerator\particle.dm" #include "code\modules\power\singularity\particle_accelerator\particle_accelerator.dm" diff --git a/code/WorkInProgress/Ported/Abi79/uplinks.dm b/code/WorkInProgress/Ported/Abi79/uplinks.dm index ae261a85ac1..9795644c3d2 100644 --- a/code/WorkInProgress/Ported/Abi79/uplinks.dm +++ b/code/WorkInProgress/Ported/Abi79/uplinks.dm @@ -312,7 +312,8 @@ A list of items and costs is stored under the datum of every game mode, alongsid var/temp = null //Temporary storage area for a message offering the option to destroy the radio var/selfdestruct = 0 //Set to 1 while the radio is self destructing itself. var/obj/item/device/radio/origradio = null - flags = FPRINT | TABLEPASS | CONDUCT | ONBELT + flags = FPRINT | TABLEPASS | CONDUCT + slot_flags = SLOT_BELT w_class = 2.0 item_state = "radio" throwforce = 5 diff --git a/code/WorkInProgress/Wrongnumber/weldbackpack.dm b/code/WorkInProgress/Wrongnumber/weldbackpack.dm index 637ba56d8dd..453e18eb410 100644 --- a/code/WorkInProgress/Wrongnumber/weldbackpack.dm +++ b/code/WorkInProgress/Wrongnumber/weldbackpack.dm @@ -1,7 +1,7 @@ /obj/item/weapon/weldpack name = "Welding kit" desc = "A heavy-duty, portable welding fluid carrier." - flags = ONBACK + slot_flags = SLOT_BACK icon = 'storage.dmi' icon_state = "welderpack" w_class = 4.0 diff --git a/code/WorkInProgress/virus2/antibodies.dm b/code/WorkInProgress/virus2/antibodies.dm index 5c12beb9482..6495bb4d04d 100644 --- a/code/WorkInProgress/virus2/antibodies.dm +++ b/code/WorkInProgress/virus2/antibodies.dm @@ -44,8 +44,8 @@ var/global/list/ANTIGENS = list("[ANTIGEN_A]" = "A", "[ANTIGEN_B]" = "B", "[ANTI icon_state = "health" w_class = 2.0 item_state = "electronic" - flags = FPRINT | TABLEPASS | ONBELT | CONDUCT | USEDELAY - + flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY + slot_flags = SLOT_BELT /obj/item/device/antibody_scanner/attack(mob/living/carbon/human/M as mob, mob/user as mob) if(! istype(M, /mob/living/carbon) || !M:antibodies) diff --git a/code/defines/area/Space Station 13 areas.dm b/code/defines/area/Space Station 13 areas.dm index ac22990acc0..eae208d1efb 100755 --- a/code/defines/area/Space Station 13 areas.dm +++ b/code/defines/area/Space Station 13 areas.dm @@ -103,8 +103,6 @@ proc/process_ghost_teleport_locs() /*-----------------------------------------------------------------------------*/ /area/engine/ - name = "Engineering" - icon_state = "engine" /area/turret_protected/ @@ -848,6 +846,8 @@ proc/process_ghost_teleport_locs() requires_power = 0//This area only covers the batteries and they deal with their own power engineering + name = "Engineering" + icon_state = "engine" engineering_break_room name = "Engineering Break Room" @@ -1068,7 +1068,7 @@ proc/process_ghost_teleport_locs() icon_state = "surgery" /area/medical/cryo - name = "Cryo" + name = "Cryogenics" icon_state = "cryo" /area/medical/exam_room @@ -1107,14 +1107,14 @@ proc/process_ghost_teleport_locs() /area/security/armoury name = "Armoury" - icon_state = "security" + icon_state = "Warden" /area/security/hos name = "Head of Security's Office" icon_state = "security" /area/security/detectives_office - name = "Detectives Office" + name = "Detective's Office" icon_state = "detective" /area/security/range diff --git a/code/defines/obj.dm b/code/defines/obj.dm index 9a03044210b..8deb4de7115 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -423,13 +423,27 @@ var/burning = null var/hitsound = null var/w_class = 3.0 - var/protective_temperature = 0 // Placing this here to avoid runtime errors, due to tiny items being allowed on ears and being queried for this variable flags = FPRINT | TABLEPASS + var/slot_flags = 0 //This is used to determine on which slots an item can fit. pass_flags = PASSTABLE pressure_resistance = 50 // causeerrorheresoifixthis var/obj/item/master = null + //Since any item can now be a piece of clothing, this has to be put here so all items share it. + var/see_face = 1.0 + var/color = null + var/body_parts_covered = 0 //see setup.dm for appropriate bit flags + var/protective_temperature = 0 + var/heat_transfer_coefficient = 1 //0 prevents all transfers, 1 is invisible + var/gas_transfer_coefficient = 1 // for leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets) + var/permeability_coefficient = 1 // for chemicals/diseases + var/siemens_coefficient = 1 // for electrical admittance/conductance (electrocution checks and shit) + var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up + var/canremove = 1 //Mostly for Ninja code at this point but basically will not allow the item to be removed if set to 0. /N + var/armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + var/list/allowed = null //suit storage stuff. + /obj/item/device icon = 'device.dmi' @@ -515,7 +529,7 @@ density = 0 anchored = 1.0 layer = 2.3 //under pipes - // flags = 64.0 + // flags = CONDUCT /obj/structure/lattice/New() ..() diff --git a/code/defines/obj/clothing.dm b/code/defines/obj/clothing.dm index 56fd9242b93..d41b065923c 100644 --- a/code/defines/obj/clothing.dm +++ b/code/defines/obj/clothing.dm @@ -4,19 +4,7 @@ name = "clothing" // var/obj/item/clothing/master = null - var/see_face = 1.0 - var/color = null - var/body_parts_covered = 0 //see setup.dm for appropriate bit flags - - var/heat_transfer_coefficient = 1 //0 prevents all transfers, 1 is invisible - var/gas_transfer_coefficient = 1 // for leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets) - var/permeability_coefficient = 1 // for chemicals/diseases - var/siemens_coefficient = 1 // for electrical admittance/conductance (electrocution checks and shit) - var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up - var/canremove = 1 //Mostly for Ninja code at this point but basically will not allow the item to be removed if set to 0. /N - - var/armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) @@ -28,6 +16,7 @@ /obj/item/clothing/belt name = "belt" - flags = FPRINT | TABLEPASS | ONBELT + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT */ diff --git a/code/defines/obj/hydro.dm b/code/defines/obj/hydro.dm index 3b44089a338..82d54ac17ef 100644 --- a/code/defines/obj/hydro.dm +++ b/code/defines/obj/hydro.dm @@ -1845,7 +1845,8 @@ name = "bottle of Plant-B-Gone" icon_state = "plantbgone" item_state = "plantbgone" - flags = ONBELT|TABLEPASS|OPENCONTAINER|FPRINT|USEDELAY + flags = TABLEPASS | OPENCONTAINER | FPRINT | USEDELAY + slot_flags = SLOT_BELT throwforce = 3 w_class = 2.0 throw_speed = 2 @@ -1859,7 +1860,8 @@ name = "weed-spray" icon_state = "weedspray" item_state = "spray" - flags = ONBELT|TABLEPASS|OPENCONTAINER|FPRINT|USEDELAY + flags = TABLEPASS | OPENCONTAINER | FPRINT | USEDELAY + slot_flags = SLOT_BELT throwforce = 4 w_class = 2.0 throw_speed = 2 @@ -1873,7 +1875,8 @@ name = "pest-spray" icon_state = "pestspray" item_state = "spray" - flags = ONBELT|TABLEPASS|OPENCONTAINER|FPRINT|USEDELAY + flags = TABLEPASS | OPENCONTAINER | FPRINT | USEDELAY + slot_flags = SLOT_BELT throwforce = 4 w_class = 2.0 throw_speed = 2 diff --git a/code/defines/obj/storage.dm b/code/defines/obj/storage.dm index e7aadffa708..c774527b02b 100644 --- a/code/defines/obj/storage.dm +++ b/code/defines/obj/storage.dm @@ -3,7 +3,8 @@ desc = "You wear this on your back and put items into it." icon_state = "backpack" w_class = 4.0 - flags = 259.0 + flags = FPRINT|TABLEPASS + slot_flags = SLOT_BACK //ERROOOOO max_w_class = 3 max_combined_w_class = 21 diff --git a/code/defines/obj/toy.dm b/code/defines/obj/toy.dm index 985a683c849..5d8b1269635 100644 --- a/code/defines/obj/toy.dm +++ b/code/defines/obj/toy.dm @@ -129,7 +129,8 @@ icon = 'gun.dmi' icon_state = "revolver" item_state = "gun" - flags = FPRINT | TABLEPASS | CONDUCT | ONBELT | USEDELAY + flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY + slot_flags = SLOT_BELT w_class = 3.0 g_amt = 10 m_amt = 10 diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 2fa4a0ac927..8912ee0711b 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -12,7 +12,8 @@ desc = "A shield adept at blocking blunt objects from connecting with the torso of the shield wielder." icon = 'weapons.dmi' icon_state = "riot" - flags = FPRINT | TABLEPASS| CONDUCT| ONBACK + flags = FPRINT | TABLEPASS| CONDUCT + slot_flags = SLOT_BACK force = 5.0 throwforce = 5.0 throw_speed = 1 @@ -31,7 +32,8 @@ desc = "A rod of pure obsidian, its very presence disrupts and dampens the powers of Nar-Sie's followers." icon_state = "nullrod" item_state = "nullrod" - flags = FPRINT | ONBELT | TABLEPASS + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT force = 10 throw_speed = 1 throw_range = 4 @@ -83,7 +85,8 @@ desc = "This thing is so unspeakably shitty you are having a hard time even holding it." icon_state = "sord" item_state = "sord" - flags = FPRINT | ONBELT | TABLEPASS + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT force = 2 throwforce = 1 w_class = 3*/ @@ -93,7 +96,8 @@ desc = "BLOOD FOR THE BLOOD GOD." //SKULLS FOR THE SKULL THRONE. --SkyMarshal icon_state = "claymore" item_state = "claymore" - flags = FPRINT | ONBELT | TABLEPASS + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT force = 40 throwforce = 10 w_class = 3 @@ -321,7 +325,8 @@ icon_state = "spectrometer" item_state = "analyzer" w_class = 2.0 - flags = FPRINT | TABLEPASS| CONDUCT | ONBELT | OPENCONTAINER + flags = FPRINT | TABLEPASS| CONDUCT | OPENCONTAINER + slot_flags = SLOT_BELT throwforce = 5 throw_speed = 4 throw_range = 20 @@ -342,7 +347,8 @@ desc = "The police baton of the future." icon_state = "stunbaton" item_state = "baton" - flags = FPRINT | ONBELT | TABLEPASS + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT force = 15 throwforce = 7 w_class = 3 @@ -356,7 +362,8 @@ desc = "The Captain is first and all other heads are last." icon_state = "chainofcommand" item_state = "chainofcommand" - flags = FPRINT | ONBELT | TABLEPASS + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT force = 10 throwforce = 7 w_class = 3 @@ -381,7 +388,7 @@ origin_tech = "combat=3" /obj/item/weapon/melee/energy/sword - var/color + color name = "energy sword" desc = "It cuts AND cooks at the same time!" icon_state = "sword0" @@ -471,7 +478,7 @@ w_class = 1.0 throw_speed = 2 throw_range = 10 - var/color = "white" + color = "white" /obj/item/weapon/bedsheet/blue icon_state = "sheetblue" @@ -675,6 +682,7 @@ item_state = "card-id" var/access = list() var/registered_name = null // The name registered_name on the card + slot_flags = SLOT_ID var/pin = 0 var/money = 0 var/assignment = null @@ -743,7 +751,8 @@ w_class = 2.0 throw_speed = 3 throw_range = 10 - flags = FPRINT | TABLEPASS | ONBELT + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT /obj/item/weapon/clipboard/notebook name = "notebook" @@ -756,7 +765,7 @@ icon = 'power.dmi' icon_state = "coil_red" var/amount = MAXCOIL - var/color = "red" + color = "red" desc = "A coil of power cable." throwforce = 10 w_class = 2.0 @@ -764,7 +773,8 @@ throw_range = 5 m_amt = 50 g_amt = 20 - flags = TABLEPASS|USEDELAY|FPRINT|CONDUCT | ONBELT + flags = TABLEPASS | USEDELAY | FPRINT | CONDUCT + slot_flags = SLOT_BELT item_state = "coil_red" /obj/item/weapon/cable_coil/cut @@ -797,7 +807,8 @@ desc = "Used to remove floor tiles." icon = 'items.dmi' icon_state = "crowbar" - flags = FPRINT | TABLEPASS| CONDUCT | ONBELT + flags = FPRINT | TABLEPASS| CONDUCT + slot_flags = SLOT_BELT force = 5.0 throwforce = 7.0 item_state = "wrench" @@ -840,7 +851,7 @@ name = "dummy" invisibility = 101.0 anchored = 1.0 - flags = 2.0 + flags = TABLEPASS /obj/item/weapon/extinguisher name = "fire extinguisher" @@ -953,7 +964,8 @@ gender = PLURAL icon = 'items.dmi' icon_state = "handcuff" - flags = FPRINT | TABLEPASS | CONDUCT | ONBELT + flags = FPRINT | TABLEPASS | CONDUCT + slot_flags = SLOT_BELT throwforce = 5 w_class = 2.0 throw_speed = 2 @@ -1016,12 +1028,12 @@ throw_range = 15 layer = 4 var/list/stamped - var/see_face = 1 - var/body_parts_covered = HEAD - var/heat_transfer_coefficient = 0.99 - var/gas_transfer_coefficient = 1 - var/permeability_coefficient = 0.99 - var/siemens_coefficient = 0.80 + see_face = 1 + body_parts_covered = HEAD + heat_transfer_coefficient = 0.99 + gas_transfer_coefficient = 1 + permeability_coefficient = 0.99 + siemens_coefficient = 0.80 var/iteration /obj/item/weapon/directions @@ -1103,7 +1115,8 @@ eternal248: Found broken and buggy Z-levels 7-12, ended up leading to my discove name = "pen" icon = 'paper.dmi' icon_state = "pen" - flags = FPRINT | ONBELT | TABLEPASS + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT throwforce = 0 w_class = 1.0 throw_speed = 7 @@ -1136,7 +1149,8 @@ eternal248: Found broken and buggy Z-levels 7-12, ended up leading to my discove name = "banhammer" icon = 'items.dmi' icon_state = "toyhammer" - flags = FPRINT | ONBELT | TABLEPASS + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT throwforce = 0 w_class = 1.0 throw_speed = 7 @@ -1144,12 +1158,14 @@ eternal248: Found broken and buggy Z-levels 7-12, ended up leading to my discove /obj/item/weapon/pen/sleepypen desc = "It's a normal black ink pen with a sharp point." - flags = FPRINT | ONBELT | TABLEPASS | OPENCONTAINER + flags = FPRINT | TABLEPASS | OPENCONTAINER + slot_flags = SLOT_BELT origin_tech = "materials=2;biotech=1;syndicate=7" /obj/item/weapon/pen/paralysis desc = "It's a normal black ink pen with a sharp point." - flags = FPRINT | ONBELT | TABLEPASS | OPENCONTAINER + flags = FPRINT | TABLEPASS | OPENCONTAINER + slot_flags = SLOT_BELT origin_tech = "materials=2;biotech=1;syndicate=5" /obj/item/weapon/rack_parts @@ -1173,7 +1189,8 @@ eternal248: Found broken and buggy Z-levels 7-12, ended up leading to my discove desc = "Used for screwing." icon = 'items.dmi' icon_state = "screwdriver" - flags = FPRINT | TABLEPASS| CONDUCT | ONBELT + flags = FPRINT | TABLEPASS| CONDUCT + slot_flags = SLOT_BELT force = 5.0 w_class = 1.0 throwforce = 5.0 @@ -1203,7 +1220,8 @@ eternal248: Found broken and buggy Z-levels 7-12, ended up leading to my discove var/selfdestruct = 0.0 var/traitor_frequency = 0.0 var/obj/item/device/radio/origradio = null - flags = FPRINT | TABLEPASS| CONDUCT | ONBELT + flags = FPRINT | TABLEPASS| CONDUCT + slot_flags = SLOT_BELT item_state = "radio" throwforce = 5 w_class = 2.0 @@ -1685,7 +1703,7 @@ eternal248: Found broken and buggy Z-levels 7-12, ended up leading to my discove throw_speed = 7 throw_range = 15 m_amt = 60 - var/color = "cargo" + color = "cargo" /obj/item/weapon/stamp/captain name = "captain's rubber stamp" @@ -1742,7 +1760,8 @@ eternal248: Found broken and buggy Z-levels 7-12, ended up leading to my discove w_class = 1 throwforce = 2 var/cigarcount = 6 - flags = ONBELT | TABLEPASS */ + flags = TABLEPASS + slot_flags = SLOT_BELT*/ /obj/item/weapon/mousetrap @@ -2047,7 +2066,7 @@ eternal248: Found broken and buggy Z-levels 7-12, ended up leading to my discove desc = "A sachet of flavoring, designed to be used with \"LiquidFood\" rations. The flavor is indeterminable." icon = 'food_ingredients.dmi' var/descriptor = "disturbingly beige" //Description shown to onlookers. - var/color = "beige" //Color the icon should take on when this is applied. Also shown when it is mixed in. + color = "beige" //Color the icon should take on when this is applied. Also shown when it is mixed in. var/newDesc = "It posesses a strange and unidentifiable taste. You try not to think to hard about it." //What gets pegged onto the description. /obj/item/weapon/flavor/red diff --git a/code/game/algorithm.dm b/code/game/algorithm.dm index 2c43670ef38..1d99b589f98 100644 --- a/code/game/algorithm.dm +++ b/code/game/algorithm.dm @@ -77,6 +77,135 @@ proc/countJob(rank) del(W) return null +/mob/living/carbon/human/proc/equip_to_appropriate_slot(obj/item/W) + if(!W) + return + if(!ishuman(src)) + return + + if(W.slot_flags & SLOT_BACK) + if(!src.back) + if( src.get_active_hand() == W ) + src.u_equip(W) + src.back = W + update_clothing() + return + + if(W.slot_flags & SLOT_ID) + if(!src.wear_id) + if( src.get_active_hand() == W ) + src.u_equip(W) + src.wear_id = W + update_clothing() + return + + if(W.slot_flags & SLOT_ICLOTHING) + if(!src.w_uniform) + if( src.get_active_hand() == W ) + src.u_equip(W) + src.w_uniform = W + update_clothing() + return + + if(W.slot_flags & SLOT_OCLOTHING) + if(!src.wear_suit) + if( src.get_active_hand() == W ) + src.u_equip(W) + src.wear_suit = W + update_clothing() + return + + if(W.slot_flags & SLOT_MASK) + if(!src.wear_mask) + if( src.get_active_hand() == W ) + src.u_equip(W) + src.wear_mask = W + update_clothing() + return + + if(W.slot_flags & SLOT_HEAD) + if(!src.head) + if( src.get_active_hand() == W ) + src.u_equip(W) + src.head = W + update_clothing() + return + + if(W.slot_flags & SLOT_FEET) + if(!src.shoes) + if( src.get_active_hand() == W ) + src.u_equip(W) + src.shoes = W + update_clothing() + return + + if(W.slot_flags & SLOT_GLOVES) + if(!src.gloves) + if( src.get_active_hand() == W ) + src.u_equip(W) + src.gloves = W + update_clothing() + return + + if(W.slot_flags & SLOT_EARS) + if(!src.l_ear) + if( src.get_active_hand() == W ) + src.u_equip(W) + src.l_ear = W + update_clothing() + else if(!src.r_ear) + if( src.get_active_hand() == W ) + src.u_equip(W) + src.r_ear = W + update_clothing() + return + + if(W.slot_flags & SLOT_EYES) + if(!src.glasses) + if( src.get_active_hand() == W ) + src.u_equip(W) + src.glasses = W + update_clothing() + return + + if(W.slot_flags & SLOT_BELT) + if(!src.belt) + if( src.get_active_hand() == W ) + src.u_equip(W) + src.belt = W + update_clothing() + return + + //Suit storage + var/confirm + if (wear_suit) + if(wear_suit.allowed) + if (istype(W, /obj/item/device/pda) || istype(W, /obj/item/weapon/pen)) + confirm = 1 + if (is_type_in_list(W, wear_suit.allowed)) + confirm = 1 + if(confirm) + src.u_equip(W) + src.s_store = W + update_clothing() + return + + //Pockets + if ( !( W.slot_flags & SLOT_DENYPOCKET ) ) + if(!src.l_store) + if ( W.w_class <= 2 || ( W.slot_flags & SLOT_POCKET ) ) + u_equip(W) + l_store = W + update_clothing() + return + if(!src.r_store) + if ( W.w_class <= 2 || ( W.slot_flags & SLOT_POCKET ) ) + u_equip(W) + r_store = W + update_clothing() + return + + /mob/living/carbon/human/proc/equip_if_possible(obj/item/W, slot, del_on_fail = 1) // since byond doesn't seem to have pointers, this seems like the best way to do this :/ //warning: icky code var/equipped = 0 diff --git a/code/game/asteroid/device.dm b/code/game/asteroid/device.dm index 7407f45f672..3472aecdd0e 100644 --- a/code/game/asteroid/device.dm +++ b/code/game/asteroid/device.dm @@ -2,7 +2,8 @@ name = "GPS" icon = 'device.dmi' icon_state = "pinoff" - flags = FPRINT | TABLEPASS| CONDUCT | ONBELT + flags = FPRINT | TABLEPASS| CONDUCT + slot_flags = SLOT_BELT w_class = 2.0 item_state = "electronic" throw_speed = 4 diff --git a/code/game/atom_procs.dm b/code/game/atom_procs.dm index b8eddc87a6d..15b56014d13 100644 --- a/code/game/atom_procs.dm +++ b/code/game/atom_procs.dm @@ -77,7 +77,7 @@ /atom/proc/add_hiddenprint(mob/living/M as mob) if(isnull(M)) return if(isnull(M.key)) return - if (!( src.flags ) & 256) + if (!( src.flags ) & FPRINT) return if (ishuman(M)) var/mob/living/carbon/human/H = M @@ -102,7 +102,7 @@ /atom/proc/add_fingerprint(mob/living/M as mob) if(isnull(M)) return if(isnull(M.key)) return - if (!( flags ) & 256) + if (!( src.flags ) & FPRINT) return //Smudge up dem prints some for(var/P in fingerprints) @@ -175,7 +175,7 @@ if (!istype(M.dna, /datum/dna)) M.dna = new /datum/dna(null) M.check_dna() - if (!( src.flags ) & 256) + if (!( src.flags ) & FPRINT) return 0 if(!blood_DNA || !istype(blood_DNA, /list)) //if our list of DNA doesn't exist yet (or isn't a list) initialise it. blood_DNA = list() @@ -291,7 +291,7 @@ /atom/proc/clean_blood() - if (!flags & 256) + if (!( src.flags ) & FPRINT) return if (blood_DNA ) diff --git a/code/game/cellautomata.dm b/code/game/cellautomata.dm index 71b46fe5bf5..3e7bc8a0977 100644 --- a/code/game/cellautomata.dm +++ b/code/game/cellautomata.dm @@ -85,13 +85,13 @@ src.load_motd() src.load_rules() src.load_admins() + investigate_reset() if (config.usealienwhitelist) load_alienwhitelist() if (config.usewhitelist) load_whitelist() LoadBansjob() src.update_status() - makepowernets() sun = new /datum/sun() @@ -196,4 +196,4 @@ /obj/effect/decal/point/point() set src in oview() set hidden = 1 - return + return \ No newline at end of file diff --git a/code/game/chemistry.dm b/code/game/chemistry.dm index 2b3f5beecad..6f155a79fa7 100644 --- a/code/game/chemistry.dm +++ b/code/game/chemistry.dm @@ -11,7 +11,8 @@ item_state = "flashbang" throw_speed = 4 throw_range = 20 - flags = FPRINT | TABLEPASS | ONBELT | USEDELAY + flags = FPRINT | TABLEPASS | USEDELAY + slot_flags = SLOT_BELT var/datum/effect/effect/system/bad_smoke_spread/smoke /obj/item/weapon/mustardbomb @@ -25,7 +26,8 @@ item_state = "flashbang" throw_speed = 4 throw_range = 20 - flags = FPRINT | TABLEPASS | CONDUCT | ONBELT + flags = FPRINT | TABLEPASS | CONDUCT + slot_flags = SLOT_BELT var/datum/effect/effect/system/mustard_gas_spread/mustard_gas /obj/item/weapon/smokebomb/New() diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 1647eb7047f..a39f70939f9 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -3,11 +3,13 @@ desc = "An arcane weapon wielded by the followers of Nar-Sie" icon_state = "cultblade" item_state = "cultblade" - flags = FPRINT | ONBELT | TABLEPASS + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT force = 40 throwforce = 10 + /obj/item/clothing/head/culthood name = "cult hood" icon_state = "culthood" diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index c744d9fd1e3..42ae74c5cae 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -79,7 +79,7 @@ /obj/machinery/nuclearbomb/Topic(href, href_list) ..() - if (usr.stat || usr.restrained()) + if (!usr.canmove || usr.stat || usr.restrained()) return if (!ishuman(usr)) usr << "\red You don't have the dexterity to do this!" diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm index fa38c98f625..4c528f5f5ae 100644 --- a/code/game/gamemodes/nuclear/pinpointer.dm +++ b/code/game/gamemodes/nuclear/pinpointer.dm @@ -2,7 +2,8 @@ name = "pinpointer" icon = 'device.dmi' icon_state = "pinoff" - flags = FPRINT | TABLEPASS| CONDUCT | ONBELT + flags = FPRINT | TABLEPASS| CONDUCT + slot_flags = SLOT_BELT w_class = 2.0 item_state = "electronic" throw_speed = 4 diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index 8ace91fde73..802cfd68c1b 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -5,7 +5,8 @@ item_state = "electronic" desc = "A fragment of the legendary treasure known simply as the 'Soul Stone'. The shard still flickers with a fraction of the full artefacts power." w_class = 1.0 - flags = FPRINT | TABLEPASS | ONBELT + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT origin_tech = "bluespace=4;materials=4" var/imprinted = "empty" diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index 46ae426bc9d..be95effa811 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -1,84 +1,84 @@ /var/const - access_security = 1 - access_brig = 2 - access_armory = 3 - access_forensics_lockers= 4 - access_medical = 5 - access_morgue = 6 - access_tox = 7 - access_tox_storage = 8 - access_genetics = 9 - access_engine = 10 - access_engine_equip= 11 - access_maint_tunnels = 12 - access_external_airlocks = 13 - access_emergency_storage = 14 - access_change_ids = 15 - access_ai_upload = 16 - access_teleporter = 17 - access_eva = 18 - access_heads = 19 - access_captain = 20 - access_all_personal_lockers = 21 - access_chapel_office = 22 - access_tech_storage = 23 - access_atmospherics = 24 - access_bar = 25 - access_janitor = 26 - access_crematorium = 27 - access_kitchen = 28 - access_robotics = 29 - access_rd = 30 - access_cargo = 31 - access_construction = 32 - access_chemistry = 33 - access_cargo_bot = 34 - access_hydroponics = 35 - access_manufacturing = 36 - access_library = 37 - access_lawyer = 38 - access_virology = 39 - access_cmo = 40 - access_qm = 41 - access_court = 42 - access_clown = 43 - access_mime = 44 - access_surgery = 45 - access_theatre = 46 - access_research = 47 - access_mining = 48 - access_mining_office = 49 //not in use - access_mailsorting = 50 - access_mint = 51 - access_mint_vault = 52 - access_heads_vault = 53 - access_mining_station = 54 - access_xenobiology = 55 - access_ce = 56 - access_hop = 57 - access_hos = 58 - access_RC_announce = 59 //Request console announcements - access_keycard_auth = 60 //Used for events which require at least two people to confirm them - access_tcomsat = 61 // has access to the entire telecomms satellite / machinery +/var/const/access_security = 1 +/var/const/access_brig = 2 +/var/const/access_armory = 3 +/var/const/access_forensics_lockers= 4 +/var/const/access_medical = 5 +/var/const/access_morgue = 6 +/var/const/access_tox = 7 +/var/const/access_tox_storage = 8 +/var/const/access_genetics = 9 +/var/const/access_engine = 10 +/var/const/access_engine_equip= 11 +/var/const/access_maint_tunnels = 12 +/var/const/access_external_airlocks = 13 +/var/const/access_emergency_storage = 14 +/var/const/access_change_ids = 15 +/var/const/access_ai_upload = 16 +/var/const/access_teleporter = 17 +/var/const/access_eva = 18 +/var/const/access_heads = 19 +/var/const/access_captain = 20 +/var/const/access_all_personal_lockers = 21 +/var/const/access_chapel_office = 22 +/var/const/access_tech_storage = 23 +/var/const/access_atmospherics = 24 +/var/const/access_bar = 25 +/var/const/access_janitor = 26 +/var/const/access_crematorium = 27 +/var/const/access_kitchen = 28 +/var/const/access_robotics = 29 +/var/const/access_rd = 30 +/var/const/access_cargo = 31 +/var/const/access_construction = 32 +/var/const/access_chemistry = 33 +/var/const/access_cargo_bot = 34 +/var/const/access_hydroponics = 35 +/var/const/access_manufacturing = 36 +/var/const/access_library = 37 +/var/const/access_lawyer = 38 +/var/const/access_virology = 39 +/var/const/access_cmo = 40 +/var/const/access_qm = 41 +/var/const/access_court = 42 +/var/const/access_clown = 43 +/var/const/access_mime = 44 +/var/const/access_surgery = 45 +/var/const/access_theatre = 46 +/var/const/access_research = 47 +/var/const/access_mining = 48 +/var/const/access_mining_office = 49 //not in use +/var/const/access_mailsorting = 50 +/var/const/access_mint = 51 +/var/const/access_mint_vault = 52 +/var/const/access_heads_vault = 53 +/var/const/access_mining_station = 54 +/var/const/access_xenobiology = 55 +/var/const/access_ce = 56 +/var/const/access_hop = 57 +/var/const/access_hos = 58 +/var/const/access_RC_announce = 59 //Request console announcements +/var/const/access_keycard_auth = 60 //Used for events which require at least two people to confirm them +/var/const/access_tcomsat = 61 // has access to the entire telecomms satellite / machinery //BEGIN CENTCOM ACCESS /*Should leave plenty of room if we need to add more access levels. Mostly for admin fun times.*/ - access_cent_general = 101//General facilities. - access_cent_thunder = 102//Thunderdome. - access_cent_specops = 103//Special Ops. - access_cent_medical = 104//Medical/Research - access_cent_living = 105//Living quarters. - access_cent_storage = 106//Generic storage areas. - access_cent_teleporter = 107//Teleporter. - access_cent_creed = 108//Creed's office. - access_cent_captain = 109//Captain's office/ID comp/AI. +/var/const/access_cent_general = 101//General facilities. +/var/const/access_cent_thunder = 102//Thunderdome. +/var/const/access_cent_specops = 103//Special Ops. +/var/const/access_cent_medical = 104//Medical/Research +/var/const/access_cent_living = 105//Living quarters. +/var/const/access_cent_storage = 106//Generic storage areas. +/var/const/access_cent_teleporter = 107//Teleporter. +/var/const/access_cent_creed = 108//Creed's office. +/var/const/access_cent_captain = 109//Captain's office/ID comp/AI. //The Syndicate - access_syndicate = 150//General Syndicate Access +/var/const/access_syndicate = 150//General Syndicate Access //MONEY - access_crate_cash = 200 +/var/const/access_crate_cash = 200 /obj/var/list/req_access = null /obj/var/req_access_txt = "0" @@ -233,7 +233,7 @@ if("Chef") return list(access_kitchen) if("Roboticist") - return list(access_robotics, access_tech_storage, access_maint_tunnels) + return list(access_robotics, access_tech_storage, access_maint_tunnels, access_morgue) //As a job that handles so many corpses, it makes sense for them to have morgue access. if("Cargo Technician") return list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting) if("Shaft Miner") diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm index c3fbcfa9e6e..c3f09ff8ffb 100644 --- a/code/game/jobs/job/engineering.dm +++ b/code/game/jobs/job/engineering.dm @@ -91,7 +91,7 @@ H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back) H.equip_if_possible(new /obj/item/clothing/under/rank/atmospheric_technician(H), H.slot_w_uniform) H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes) - H.equip_if_possible(new /obj/item/device/pda/engineering(H), H.slot_l_store) + H.equip_if_possible(new /obj/item/device/pda/atmos(H), H.slot_l_store) H.equip_if_possible(new /obj/item/weapon/storage/belt/utility/atmostech/(H), H.slot_belt) if(H.backbag == 1) H.equip_if_possible(new /obj/item/weapon/storage/box/engineer(H), H.slot_r_hand) diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index 6c5aea84a7b..a12c54feece 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -87,10 +87,10 @@ if(H.backbag == 2) H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back) if(H.backbag == 3) H.equip_if_possible(new /obj/item/weapon/storage/backpack/satchel(H), H.slot_back) if(H.backbag == 4) H.equip_if_possible(new /obj/item/weapon/storage/backpack/satchel_chem(H), H.slot_back) - H.equip_if_possible(new /obj/item/device/radio/headset/headset_medsci(H), H.slot_ears) + H.equip_if_possible(new /obj/item/device/radio/headset/headset_med(H), H.slot_ears) H.equip_if_possible(new /obj/item/clothing/under/rank/chemist(H), H.slot_w_uniform) H.equip_if_possible(new /obj/item/clothing/shoes/white(H), H.slot_shoes) - H.equip_if_possible(new /obj/item/device/pda/medical(H), H.slot_belt) + H.equip_if_possible(new /obj/item/device/pda/chemist(H), H.slot_belt) H.equip_if_possible(new /obj/item/clothing/suit/storage/labcoat/chemist(H), H.slot_wear_suit) return 1 @@ -115,7 +115,7 @@ if(H.backbag == 4) H.equip_if_possible(new /obj/item/weapon/storage/backpack/satchel_gen(H), H.slot_back) H.equip_if_possible(new /obj/item/clothing/under/rank/geneticist(H), H.slot_w_uniform) H.equip_if_possible(new /obj/item/clothing/shoes/white(H), H.slot_shoes) - H.equip_if_possible(new /obj/item/device/pda/medical(H), H.slot_belt) + H.equip_if_possible(new /obj/item/device/pda/geneticist(H), H.slot_belt) H.equip_if_possible(new /obj/item/clothing/suit/storage/labcoat/genetics(H), H.slot_wear_suit) H.equip_if_possible(new /obj/item/device/flashlight/pen(H), H.slot_s_store) return 1 diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm index 20323f858ea..53365eea928 100644 --- a/code/game/machinery/pipe/pipe_dispenser.dm +++ b/code/game/machinery/pipe/pipe_dispenser.dm @@ -44,7 +44,7 @@ /obj/machinery/pipedispenser/Topic(href, href_list) if(..()) return - if(unwrenched) + if(unwrenched || !usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) usr << browse(null, "window=pipedispenser") return usr.machine = src @@ -135,6 +135,9 @@ usr.machine = src src.add_fingerprint(usr) if(href_list["dmake"]) + if(unwrenched || !usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) + usr << browse(null, "window=pipedispenser") + return if(!wait) var/p_type = text2num(href_list["dmake"]) var/obj/structure/disposalconstruct/C = new (src.loc) diff --git a/code/game/machinery/sink.dm b/code/game/machinery/sink.dm deleted file mode 100644 index e89b11828dd..00000000000 --- a/code/game/machinery/sink.dm +++ /dev/null @@ -1,151 +0,0 @@ -/obj/machinery/sink - name = "sink" - icon = 'device.dmi' - icon_state = "sink" - desc = "A sink used for washing one's hands and face." - anchored = 1 - var/busy = 0 //Something's being washed at the moment - var/mode = 0 //0 == fill, 1 == pour - - - New() - ..() - verbs += /obj/machinery/sink/proc/mode_pour - - attack_hand(mob/M as mob) - if(isrobot(M) || isAI(M)) - return - - if(busy) - M << "\red Someone's already washing something here." - return - M << "\blue You start washing up." - - busy = 1 - if(do_after(M,40)) - M.clean_blood() - if(istype(M, /mob/living/carbon)) - var/mob/living/carbon/C = M - C.clean_blood() - /* - if(C.r_hand) - C.r_hand.clean_blood() // The hand you attack with is empty anyway, the other one should not be washed while doing this. - if(C.l_hand) - C.l_hand.clean_blood() - - if(C.wear_mask) - C.wear_mask.clean_blood() //- NOPE, Washing machine -Errorage - */ - if(istype(M, /mob/living/carbon/human)) - /*if(C:w_uniform) - C:w_uniform.clean_blood() //- NOPE, Washing machine -Errorage - if(C:wear_suit) - C:wear_suit.clean_blood() //- NOPE, Washing machine -Errorage - if(C:shoes) - C:shoes.clean_blood()*/ //- NOPE, Washing machine -Errorage - if(C:gloves) - C:gloves.clean_blood() - /*if(C:head) - C:head.clean_blood()*/ //- NOPE, Washing machine -Errorage - for(var/mob/V in viewers(src, null)) - V.show_message(text("\blue [M] washes up using \the [src].")) - busy = 0 - - proc/mode_pour() - set name = "Mode -> Pour" - set category = "Object" - set src in oview(1) - - mode = 1 - verbs -= /obj/machinery/sink/proc/mode_pour - verbs += /obj/machinery/sink/proc/mode_fill - usr << "You will now pour reagents down \the [src]." - - proc/mode_fill() - set name = "Mode -> Fill" - set category = "Object" - set src in oview(1) - - mode = 0 - verbs -= /obj/machinery/sink/proc/mode_fill - verbs += /obj/machinery/sink/proc/mode_pour - usr << "You will now fill your container from the faucet." - - attackby(var/obj/item/O as obj, var/mob/user as mob) - if(busy) - user << "\red Someone's already washing something here." - return - - if (istype(O, /obj/item/weapon/reagent_containers/glass/bucket)) - O:reagents.add_reagent("water", 70) - user.visible_message( \ - "\blue [user] fills the [O] using the [src].", \ - "\blue You fill the [O] using the [src].") - return - - if (istype(O, /obj/item/weapon/reagent_containers/glass) || istype(O,/obj/item/weapon/reagent_containers/food/drinks)) - if(!mode) - // fill - if(O.reagents.total_volume < O.reagents.maximum_volume) - O:reagents.add_reagent("water", 10) - user.visible_message( \ - "\blue [user] fills the [O] using the [src].", \ - "\blue You fill the [O] using the [src].") - else - user.visible_message( \ - "\blue [user] spills water out of the overflowing [O] into the [src].", \ - "\blue You spill water out of the overflowing [O] into the [src].") - else - // pour - if(O.reagents.total_volume > 0) - O.reagents.clear_reagents() - user.visible_message( \ - "\blue [user] pours the contents of \the [O] into \the [src].", \ - "\blue You pour the contents of \the [O] into \the [src].") - else - user << "\The [O] is empty." - return - else if (istype(O, /obj/item/weapon/melee/baton)) - var/obj/item/weapon/melee/baton/B = O - if (B.charges > 0 && B.status == 1) - flick("baton_active", src) - user.Stun(10) - user.stuttering = 10 - user.Weaken(10) - if(isrobot(user)) - var/mob/living/silicon/robot/R = user - R.cell.charge -= 20 - else - B.charges-- - user.visible_message( \ - "[user] was stunned by his wet [O].", \ - "\red You have wet \the [O], it shocks you!") - return - - var/obj/item/I = O - if(!I || !istype(I,/obj/item)) return - - usr << "\blue You start washing up." - - busy = 1 - if(do_after(user,40)) - if(!I) return //Item's been destroyed while washing - - O.clean_blood() - user.visible_message( \ - "\blue [user] washes \a [I] using \the [src].", \ - "\blue You wash \a [I] using \the [src].") - busy = 0 - - shower - name = "Shower" - desc = "This is a shower. Useful for cleaning." - icon_state = "shower" - - kitchen - name = "Kitchen Sink" - icon_state = "sink_alt" - - kitchen2 - name = "Kitchen Sink" - icon_state = "sink_alt2" diff --git a/code/game/objects/alien/resin.dm b/code/game/objects/alien/resin.dm index fafae271222..18b0e9a6d58 100644 --- a/code/game/objects/alien/resin.dm +++ b/code/game/objects/alien/resin.dm @@ -50,7 +50,7 @@ /obj/effect/alien/resin/hitby(AM as mob|obj) ..() for(var/mob/O in viewers(src, null)) - O.show_message(text("\red [src] was hit by [AM]."), 1) + O.show_message("\red [src] was hit by [AM].", 1) var/tforce = 0 if(ismob(AM)) tforce = 10 @@ -64,9 +64,9 @@ /obj/effect/alien/resin/attack_hand() if ((usr.mutations & HULK)) - usr << text("\blue You easily destroy the [name].") + usr << "\blue You easily destroy the [name]." for(var/mob/O in oviewers(src)) - O.show_message(text("\red [] destroys the [name]!", usr), 1) + O.show_message("\red [usr] destroys the [name]!", 1) health = 0 healthcheck() return @@ -77,15 +77,15 @@ /obj/effect/alien/resin/attack_alien() if (islarva(usr))//Safety check for larva. /N return - usr << text("\green You claw at the [name].") + usr << "\green You claw at the [name]." for(var/mob/O in oviewers(src)) - O.show_message(text("\red [] claws at the resin!", usr), 1) + O.show_message("\red [usr] claws at the resin!", 1) playsound(loc, 'attackblob.ogg', 100, 1) health -= rand(10, 20) if(health <= 0) - usr << text("\green You slice the [name] to pieces.") + usr << "\green You slice the [name] to pieces." for(var/mob/O in oviewers(src)) - O.show_message(text("\red [] slices the [name] apart!", usr), 1) + O.show_message("\red [usr] slices the [name] apart!", 1) healthcheck() return diff --git a/code/game/objects/closets/extinguisher.dm b/code/game/objects/closets/extinguisher.dm index 1d503333d7f..82dc7d88aa0 100644 --- a/code/game/objects/closets/extinguisher.dm +++ b/code/game/objects/closets/extinguisher.dm @@ -1,4 +1,4 @@ -/obj/structure/closet/extinguisher +/obj/structure/extinguisher_cabinet name = "extinguisher cabinet" desc = "A small wall mounted cabinet designed to hold a fire extinguisher." icon = 'closet.dmi' @@ -6,10 +6,11 @@ anchored = 1 density = 0 var/obj/item/weapon/extinguisher/has_extinguisher = new/obj/item/weapon/extinguisher + var/opened = 0 -/obj/structure/closet/extinguisher/attackby(var/obj/item/O as obj, var/mob/user as mob) +/obj/structure/extinguisher_cabinet/attackby(var/obj/item/O as obj, var/mob/user as mob) if (isrobot(usr)) return if (istype(O, /obj/item/weapon/extinguisher)) @@ -26,7 +27,7 @@ -/obj/structure/closet/extinguisher/attack_hand(mob/user as mob) +/obj/structure/extinguisher_cabinet/attack_hand(mob/user as mob) if(has_extinguisher) user.put_in_hand(has_extinguisher) has_extinguisher = null @@ -38,13 +39,13 @@ -/obj/structure/closet/extinguisher/attack_paw(mob/user as mob) +/obj/structure/extinguisher_cabinet/attack_paw(mob/user as mob) attack_hand(user) return -/obj/structure/closet/extinguisher/update_icon() +/obj/structure/extinguisher_cabinet/update_icon() if(!opened) icon_state = "extinguisher_closed" return diff --git a/code/game/objects/closets/secure/cargo.dm b/code/game/objects/closets/secure/cargo.dm index a366ebf9ee2..638bc2ffd66 100644 --- a/code/game/objects/closets/secure/cargo.dm +++ b/code/game/objects/closets/secure/cargo.dm @@ -15,7 +15,7 @@ new /obj/item/clothing/shoes/black(src) new /obj/item/device/radio/headset/headset_cargo(src) new /obj/item/clothing/gloves/black(src) - new /obj/item/weapon/cartridge/quartermaster(src) +// new /obj/item/weapon/cartridge/quartermaster(src) return /obj/structure/closet/secure_closet/qm_personal diff --git a/code/game/objects/closets/secure/engineering.dm b/code/game/objects/closets/secure/engineering.dm index aed317be772..38c567421d3 100644 --- a/code/game/objects/closets/secure/engineering.dm +++ b/code/game/objects/closets/secure/engineering.dm @@ -118,7 +118,7 @@ new /obj/item/device/t_scanner(src) new /obj/item/weapon/storage/belt/utility/full(src) new /obj/item/weapon/storage/toolbox/mechanical(src) - new /obj/item/weapon/cartridge/engineering(src) +// new /obj/item/weapon/cartridge/engineering(src) new /obj/item/device/radio/headset/headset_eng(src) new /obj/item/clothing/suit/hazardvest(src) new /obj/item/clothing/mask/gas(src) diff --git a/code/game/objects/closets/secure/medical.dm b/code/game/objects/closets/secure/medical.dm index 49cb6f466e5..b9829af6ad4 100644 --- a/code/game/objects/closets/secure/medical.dm +++ b/code/game/objects/closets/secure/medical.dm @@ -86,7 +86,7 @@ new /obj/item/clothing/under/rank/medical/green(src) if ("purple") new /obj/item/clothing/under/rank/medical/purple(src) - new /obj/item/weapon/cartridge/medical(src) +// new /obj/item/weapon/cartridge/medical(src) new /obj/item/device/radio/headset/headset_med(src) return diff --git a/code/game/objects/closets/secure/personal.dm b/code/game/objects/closets/secure/personal.dm index 508a80cabb7..86bc423f0b6 100644 --- a/code/game/objects/closets/secure/personal.dm +++ b/code/game/objects/closets/secure/personal.dm @@ -72,7 +72,7 @@ playsound(src.loc, 'blade1.ogg', 50, 1) playsound(src.loc, "sparks", 50, 1) for(var/mob/O in viewers(user, 3)) - O.show_message(text("\blue The locker has been sliced open by [] with an energy blade!", user), 1, text("\red You hear metal being sliced and sparks flying."), 2) + O.show_message("\blue The locker has been sliced open by [user] with an energy blade!", 1, "\red You hear metal being sliced and sparks flying.", 2) else user << "\red Access Denied" return diff --git a/code/game/objects/closets/secure/secure_closets.dm b/code/game/objects/closets/secure/secure_closets.dm index 35c45401c1b..7abcc6ae059 100644 --- a/code/game/objects/closets/secure/secure_closets.dm +++ b/code/game/objects/closets/secure/secure_closets.dm @@ -56,15 +56,15 @@ playsound(src.loc, 'blade1.ogg', 50, 1) playsound(src.loc, "sparks", 50, 1) for(var/mob/O in viewers(user, 3)) - O.show_message(text("\blue The locker has been sliced open by [] with an energy blade!", user), 1, text("\red You hear metal being sliced and sparks flying."), 2) + O.show_message("\blue The locker has been sliced open by [user] with an energy blade!", 1, "\red You hear metal being sliced and sparks flying.", 2) else for(var/mob/O in viewers(user, 3)) - O.show_message(text("\blue The locker has been broken by [] with an electromagnetic card!", user), 1, text("You hear a faint electrical spark."), 2) + O.show_message("\blue The locker has been broken by [user] with an electromagnetic card!", 1, "You hear a faint electrical spark.", 2) else if(src.allowed(user)) src.locked = !src.locked for(var/mob/O in viewers(user, 3)) if((O.client && !( O.blinded ))) - O << text("\blue The locker has been []locked by [].", (src.locked ? null : "un"), user) + O << "\blue The locker has been [src.locked ? null : "un"]locked by [user]." if(src.locked) src.icon_state = src.icon_locked else diff --git a/code/game/objects/closets/secure/security.dm b/code/game/objects/closets/secure/security.dm index c05e41d40eb..c8129152ed0 100644 --- a/code/game/objects/closets/secure/security.dm +++ b/code/game/objects/closets/secure/security.dm @@ -107,7 +107,7 @@ new /obj/item/device/flash(B) new /obj/item/device/pda/security(src) new /obj/item/clothing/suit/armor/vest(src) - new /obj/item/weapon/cartridge/security(src) +// new /obj/item/weapon/cartridge/security(src) new /obj/item/device/radio/headset/headset_sec(src) new /obj/item/weapon/storage/flashbang_kit(src) new /obj/item/weapon/melee/baton(src) @@ -140,7 +140,7 @@ new /obj/item/clothing/suit/armor/vest(src) new /obj/item/clothing/suit/storage/gearharness(src) new /obj/item/clothing/head/helmet(src) - new /obj/item/weapon/cartridge/security(src) +// new /obj/item/weapon/cartridge/security(src) new /obj/item/device/pda/security(src) new /obj/item/device/radio/headset/headset_sec(src) new /obj/item/weapon/storage/belt/security(src) diff --git a/code/game/objects/devices/PDA/PDA.dm b/code/game/objects/devices/PDA/PDA.dm index afde626c9ce..9e430951c8b 100755 --- a/code/game/objects/devices/PDA/PDA.dm +++ b/code/game/objects/devices/PDA/PDA.dm @@ -8,7 +8,8 @@ icon_state = "pda" item_state = "electronic" w_class = 1.0 - flags = FPRINT | TABLEPASS | ONBELT + flags = FPRINT | TABLEPASS + slot_flags = SLOT_ID | SLOT_BELT //Main variables var/owner = null @@ -134,8 +135,6 @@ /obj/item/device/pda/roboticist icon_state = "pda-robot" - desc = "A portable microcomputer by Thinktronic Systems, LTD. This is model is a special edition with a transparent case." - note = "Congratulations, your station has chosen the Thinktronic 5230 Personal Data Assistant Deluxe Special Turbo Edition!" /obj/item/device/pda/librarian icon_state = "pda-libb" @@ -143,6 +142,16 @@ note = "Congratulations, your station has chosen the Thinktronic 5290 WGW-11 Series E-reader and Personal Data Assistant!" silent = 1 //Quiet in the library! +/obj/item/device/pda/atmos + icon_state = "pda-atmo" + +/obj/item/device/pda/chemist + default_cartridge = /obj/item/weapon/cartridge/chemistry + icon_state = "pda-chem" + +/obj/item/device/pda/geneticist + icon_state = "pda-gene" + /* * The Actual PDA */ diff --git a/code/game/objects/devices/PDA/cart.dm b/code/game/objects/devices/PDA/cart.dm index a24ce18dab4..fd23ad3254f 100644 --- a/code/game/objects/devices/PDA/cart.dm +++ b/code/game/objects/devices/PDA/cart.dm @@ -41,6 +41,11 @@ icon_state = "cart-m" access_medical = 1 + chemistry + name = "ChemWhiz Cartridge" + icon_state = "cart-chem" + access_reagent_scanner = 1 + security name = "R.O.B.U.S.T. Cartridge" icon_state = "cart-s" @@ -91,7 +96,7 @@ name = "Signal Ace 2" desc = "Complete with integrated radio signaler!" icon_state = "cart-tox" - access_reagent_scanner = 1 +// access_reagent_scanner = 1 New() ..() @@ -154,7 +159,7 @@ name = "Signal Ace DELUXE" icon_state = "cart-rd" access_status_display = 1 - access_reagent_scanner = 1 +// access_reagent_scanner = 1 New() ..() diff --git a/code/game/objects/devices/aicard.dm b/code/game/objects/devices/aicard.dm index ea733eab5b7..f81d3e2089e 100644 --- a/code/game/objects/devices/aicard.dm +++ b/code/game/objects/devices/aicard.dm @@ -4,7 +4,8 @@ icon_state = "aicard" // aicard-full item_state = "electronic" w_class = 2.0 - flags = FPRINT | TABLEPASS | ONBELT + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT var/flush = null origin_tech = "programming=4;materials=4" diff --git a/code/game/objects/devices/chameleonproj.dm b/code/game/objects/devices/chameleonproj.dm index 0526ec5ff29..c8e7ff754c0 100644 --- a/code/game/objects/devices/chameleonproj.dm +++ b/code/game/objects/devices/chameleonproj.dm @@ -42,7 +42,8 @@ /obj/item/device/chameleon name = "chameleon-projector" icon_state = "shield0" - flags = FPRINT | TABLEPASS| CONDUCT | USEDELAY | ONBELT + flags = FPRINT | TABLEPASS| CONDUCT | USEDELAY + slot_flags = SLOT_BELT item_state = "electronic" throwforce = 5.0 throw_speed = 1 diff --git a/code/game/objects/devices/flashlight.dm b/code/game/objects/devices/flashlight.dm index 3f3ce72861a..e7101d2bd41 100644 --- a/code/game/objects/devices/flashlight.dm +++ b/code/game/objects/devices/flashlight.dm @@ -6,7 +6,8 @@ icon_state = "flight0" w_class = 2 item_state = "flight" - flags = FPRINT | ONBELT | TABLEPASS | CONDUCT + flags = FPRINT | TABLEPASS | CONDUCT + slot_flags = SLOT_BELT m_amt = 50 g_amt = 20 var/on = 0 diff --git a/code/game/objects/devices/paicard.dm b/code/game/objects/devices/paicard.dm index ff7e2ef5dba..e13b7c605ff 100644 --- a/code/game/objects/devices/paicard.dm +++ b/code/game/objects/devices/paicard.dm @@ -4,7 +4,8 @@ icon_state = "pai" item_state = "electronic" w_class = 2.0 - flags = FPRINT | TABLEPASS | ONBELT + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT origin_tech = "programming=2" var/obj/item/device/radio/radio var/looking_for_personality = 0 diff --git a/code/game/objects/devices/scanners.dm b/code/game/objects/devices/scanners.dm index a00f40089b8..9f8398495e2 100644 --- a/code/game/objects/devices/scanners.dm +++ b/code/game/objects/devices/scanners.dm @@ -14,7 +14,8 @@ MASS SPECTROMETER desc = "A terahertz-ray emitter and scanner used to detect underfloor objects such as cables and pipes." icon_state = "t-ray0" var/on = 0 - flags = FPRINT|ONBELT|TABLEPASS + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT w_class = 2 item_state = "electronic" m_amt = 150 @@ -67,8 +68,8 @@ MASS SPECTROMETER var/list/stored = list() w_class = 3.0 item_state = "electronic" - flags = FPRINT | TABLEPASS | ONBELT | CONDUCT | USEDELAY - + flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY + slot_flags = SLOT_BELT attackby(obj/item/weapon/f_card/W as obj, mob/user as mob) ..() @@ -225,7 +226,8 @@ MASS SPECTROMETER icon_state = "health" item_state = "analyzer" desc = "A hand-held body scanner able to distinguish vital signs of the subject." - flags = FPRINT | ONBELT | TABLEPASS | CONDUCT + flags = FPRINT | TABLEPASS | CONDUCT + slot_flags = SLOT_BELT throwforce = 3 w_class = 1.0 throw_speed = 5 @@ -234,64 +236,64 @@ MASS SPECTROMETER origin_tech = "magnets=1;biotech=1" var/mode = 1; - proc - analyze_health_less_info(mob/living/carbon/M as mob, mob/user as mob) - var/fake_oxy = max(rand(1,40), M.getOxyLoss(), (300 - (M.getToxLoss() + M.getFireLoss() + M.getBruteLoss()))) - if((M.reagents && M.reagents.has_reagent("zombiepowder")) || (M.changeling && M.changeling.changeling_fakedeath)) - user.show_message(text("\blue Analyzing Results for []:\n\t Overall Status: []", M, "dead"), 1) - user.show_message(text("\blue \t Damage Specifics: []-[]-[]-[]", fake_oxy < 50 ? "\red [fake_oxy]" : fake_oxy , M.getToxLoss() > 50 ? "\red [M.getToxLoss()]" : M.getToxLoss(), M.getFireLoss() > 50 ? "\red[M.getFireLoss()]" : M.getFireLoss(), M.getBruteLoss() > 50 ? "\red[M.getBruteLoss()]" : M.getBruteLoss()), 1) +/obj/item/device/healthanalyzer/proc/analyze_health_less_info(mob/living/carbon/M as mob, mob/user as mob) + var/fake_oxy = max(rand(1,40), M.getOxyLoss(), (300 - (M.getToxLoss() + M.getFireLoss() + M.getBruteLoss()))) + if((M.reagents && M.reagents.has_reagent("zombiepowder")) || (M.changeling && M.changeling.changeling_fakedeath)) + user.show_message(text("\blue Analyzing Results for []:\n\t Overall Status: []", M, "dead"), 1) + user.show_message(text("\blue \t Damage Specifics: []-[]-[]-[]", fake_oxy < 50 ? "\red [fake_oxy]" : fake_oxy , M.getToxLoss() > 50 ? "\red [M.getToxLoss()]" : M.getToxLoss(), M.getFireLoss() > 50 ? "\red[M.getFireLoss()]" : M.getFireLoss(), M.getBruteLoss() > 50 ? "\red[M.getBruteLoss()]" : M.getBruteLoss()), 1) + else + user.show_message(text("\blue Analyzing Results for []:\n\t Overall Status: []", M, (M.stat > 1 ? "dead" : text("[]% healthy", M.health - M.halloss))), 1) + user.show_message(text("\blue \t Damage Specifics: []-[]-[]-[]", M.getOxyLoss() > 50 ? "\red [M.getOxyLoss()]" : M.getOxyLoss(), M.getToxLoss() > 50 ? "\red [M.getToxLoss()]" : M.getToxLoss(), M.getFireLoss() > 50 ? "\red[M.getFireLoss()]" : M.getFireLoss(), M.getBruteLoss() > 50 ? "\red[M.getBruteLoss()]" : M.getBruteLoss()), 1) + user.show_message("\blue Key: Suffocation/Toxin/Burns/Brute", 1) + user.show_message("\blue Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)", 1) + if(mode == 1 && istype(M, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + var/list/damaged = H.get_damaged_organs(1,1) + user.show_message("\blue Localized Damage, Brute/Burn:",1) + if(length(damaged)>0) + for(var/datum/organ/external/org in damaged) + user.show_message(text("\blue \t []: []\blue-[]",capitalize(org.getDisplayName()),(org.brute_dam > 0)?"\red [org.brute_dam]":0,(org.burn_dam > 0)?"\red [org.burn_dam]":0),1) + else + user.show_message("\blue \t Limbs are OK.",1) + + if((M.changeling && M.changeling.changeling_fakedeath) || (M.reagents && M.reagents.has_reagent("zombiepowder"))) + user.show_message(text("\blue [] | [] | [] | []", fake_oxy > 50 ? "\red Severe oxygen deprivation detected\blue" : "Subject bloodstream oxygen level normal", M.getToxLoss() > 50 ? "\red Dangerous amount of toxins detected\blue" : "Subject bloodstream toxin level minimal", M.getFireLoss() > 50 ? "\red Severe burn damage detected\blue" : "Subject burn injury status O.K", M.getBruteLoss() > 50 ? "\red Severe anatomical damage detected\blue" : "Subject brute-force injury status O.K"), 1) + else + user.show_message(text("\blue [] | [] | [] | []", M.getOxyLoss() > 50 ? "\red Severe oxygen deprivation detected\blue" : "Subject bloodstream oxygen level normal", M.getToxLoss() > 50 ? "\red Dangerous amount of toxins detected\blue" : "Subject bloodstream toxin level minimal", M.getFireLoss() > 50 ? "\red Severe burn damage detected\blue" : "Subject burn injury status O.K", M.getBruteLoss() > 50 ? "\red Severe anatomical damage detected\blue" : "Subject brute-force injury status O.K"), 1) + if (M.getCloneLoss()) + user.show_message(text("\red Subject appears to have been imperfectly cloned."), 1) + for(var/datum/disease/D in M.viruses) + if(!D.hidden[SCANNER]) + user.show_message(text("\red Warning: [D.form] Detected\nName: [D.name].\nType: [D.spread].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure]")) + if (M.reagents && M.reagents.get_reagent_amount("inaprovaline")) + user.show_message(text("\blue Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals."), 1) + if (M.getBrainLoss() >= 100 || istype(M, /mob/living/carbon/human) && M:brain_op_stage == 4.0) + user.show_message(text("\red Subject is brain dead."), 1) + else if (M.getBrainLoss() >= 60) + user.show_message(text("\red Severe brain damage detected. Subject likely to have mental retardation."), 1) + else if (M.getBrainLoss() >= 10) + user.show_message(text("\red Significant brain damage detected. Subject may have had a concussion."), 1) + if (M.virus2 || M.reagents.reagent_list.len > 0) + user.show_message(text("\red Unknown substance detected in blood."), 1) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + for(var/name in H.organs) + var/datum/organ/external/e = H.organs[name] + if(e.broken) + user.show_message(text("\red Bone fractures detected. Advanced scanner required for location."), 1) + break + if(ishuman(M)) + if(M:vessel) + var/blood_volume = round(M:vessel.get_reagent_amount("blood")) + var/blood_percent = blood_volume / 560 + blood_percent *= 100 + if(blood_volume <= 448) + user.show_message("\red Warning: Blood Level LOW: [blood_percent]% [blood_volume]cl") + else if(blood_volume <= 336) + user.show_message("\red Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl") else - user.show_message(text("\blue Analyzing Results for []:\n\t Overall Status: []", M, (M.stat > 1 ? "dead" : text("[]% healthy", M.health - M.halloss))), 1) - user.show_message(text("\blue \t Damage Specifics: []-[]-[]-[]", M.getOxyLoss() > 50 ? "\red [M.getOxyLoss()]" : M.getOxyLoss(), M.getToxLoss() > 50 ? "\red [M.getToxLoss()]" : M.getToxLoss(), M.getFireLoss() > 50 ? "\red[M.getFireLoss()]" : M.getFireLoss(), M.getBruteLoss() > 50 ? "\red[M.getBruteLoss()]" : M.getBruteLoss()), 1) - user.show_message("\blue Key: Suffocation/Toxin/Burns/Brute", 1) - user.show_message("\blue Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)", 1) - if(mode == 1 && istype(M, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = M - var/list/damaged = H.get_damaged_organs(1,1) - user.show_message("\blue Localized Damage, Brute/Burn:",1) - if(length(damaged)>0) - for(var/datum/organ/external/org in damaged) - user.show_message(text("\blue \t []: []\blue-[]",capitalize(org.getDisplayName()),(org.brute_dam > 0)?"\red [org.brute_dam]":0,(org.burn_dam > 0)?"\red [org.burn_dam]":0),1) - else - user.show_message("\blue \t Limbs are OK.",1) - if((M.changeling && M.changeling.changeling_fakedeath) || (M.reagents && M.reagents.has_reagent("zombiepowder"))) - user.show_message(text("\blue [] | [] | [] | []", fake_oxy > 50 ? "\red Severe oxygen deprivation detected\blue" : "Subject bloodstream oxygen level normal", M.getToxLoss() > 50 ? "\red Dangerous amount of toxins detected\blue" : "Subject bloodstream toxin level minimal", M.getFireLoss() > 50 ? "\red Severe burn damage detected\blue" : "Subject burn injury status O.K", M.getBruteLoss() > 50 ? "\red Severe anatomical damage detected\blue" : "Subject brute-force injury status O.K"), 1) - else - user.show_message(text("\blue [] | [] | [] | []", M.getOxyLoss() > 50 ? "\red Severe oxygen deprivation detected\blue" : "Subject bloodstream oxygen level normal", M.getToxLoss() > 50 ? "\red Dangerous amount of toxins detected\blue" : "Subject bloodstream toxin level minimal", M.getFireLoss() > 50 ? "\red Severe burn damage detected\blue" : "Subject burn injury status O.K", M.getBruteLoss() > 50 ? "\red Severe anatomical damage detected\blue" : "Subject brute-force injury status O.K"), 1) - if (M.getCloneLoss()) - user.show_message(text("\red Subject appears to have been imperfectly cloned."), 1) - for(var/datum/disease/D in M.viruses) - if(!D.hidden[SCANNER]) - user.show_message(text("\red Warning: [D.form] Detected\nName: [D.name].\nType: [D.spread].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure]")) - if (M.reagents && M.reagents.get_reagent_amount("inaprovaline")) - user.show_message(text("\blue Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals."), 1) - if (M.getBrainLoss() >= 100 || istype(M, /mob/living/carbon/human) && M:brain_op_stage == 4.0) - user.show_message(text("\red Subject is brain dead."), 1) - else if (M.getBrainLoss() >= 60) - user.show_message(text("\red Severe brain damage detected. Subject likely to have mental retardation."), 1) - else if (M.getBrainLoss() >= 10) - user.show_message(text("\red Significant brain damage detected. Subject may have had a concussion."), 1) - if (M.virus2 || M.reagents.reagent_list.len > 0) - user.show_message(text("\red Unknown substance detected in blood."), 1) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - for(var/name in H.organs) - var/datum/organ/external/e = H.organs[name] - if(e.broken) - user.show_message(text("\red Bone fractures detected. Advanced scanner required for location."), 1) - break - if(ishuman(M)) - if(M:vessel) - var/blood_volume = round(M:vessel.get_reagent_amount("blood")) - var/blood_percent = blood_volume / 560 - blood_percent *= 100 - if(blood_volume <= 448) - user.show_message("\red Warning: Blood Level LOW: [blood_percent]% [blood_volume]cl") - else if(blood_volume <= 336) - user.show_message("\red Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl") - else - user.show_message("\blue Blood Level Normal: [blood_percent]% [blood_volume]cl") - return + user.show_message("\blue Blood Level Normal: [blood_percent]% [blood_volume]cl") + return /obj/item/device/healthanalyzer/attack(mob/M as mob, mob/user as mob) if ((user.mutations & CLUMSY || user.getBrainLoss() >= 60) && prob(50)) @@ -331,7 +333,8 @@ MASS SPECTROMETER icon_state = "atmos" item_state = "analyzer" w_class = 2.0 - flags = FPRINT | TABLEPASS| CONDUCT | ONBELT + flags = FPRINT | TABLEPASS| CONDUCT + slot_flags = SLOT_BELT throwforce = 5 throw_speed = 4 throw_range = 20 diff --git a/code/game/objects/effect_system.dm b/code/game/objects/effect_system.dm index 1b449b6fc94..639b553821e 100644 --- a/code/game/objects/effect_system.dm +++ b/code/game/objects/effect_system.dm @@ -18,7 +18,7 @@ would spawn and follow the beaker, even if it is carried or thrown. icon = 'effects.dmi' icon_state = "extinguish" var/life = 15.0 - flags = 2.0 + flags = TABLEPASS mouse_opacity = 0 /obj/effect/effect/smoke diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm index 5cda2c423e7..d93e157d767 100644 --- a/code/game/objects/items/candle.dm +++ b/code/game/objects/items/candle.dm @@ -95,7 +95,8 @@ w_class = 1 throwforce = 2 var/candlecount = 5 - flags = ONBELT | TABLEPASS + flags = TABLEPASS + slot_flags = SLOT_BELT /obj/item/weapon/candlepack/update_icon() diff --git a/code/game/objects/items/clothing.dm b/code/game/objects/items/clothing.dm index e52417e67da..7eb200596e4 100644 --- a/code/game/objects/items/clothing.dm +++ b/code/game/objects/items/clothing.dm @@ -434,10 +434,10 @@ THERMAL GLASSES M.disabilities &= ~1 ..() -/obj/item/clothing/head/helmet/space/rig/engspace_helmet/attack_self() +/obj/item/clothing/head/helmet/space/engineer/attack_self() toggle() -/obj/item/clothing/head/helmet/space/rig/engspace_helmet/verb/toggle() +/obj/item/clothing/head/helmet/space/engineer/verb/toggle() set category = "Object" set name = "Toggle Helmet Visor" if(usr.canmove && usr.stat != 2 && !usr.restrained()) @@ -445,34 +445,13 @@ THERMAL GLASSES src.up = !src.up src.see_face = !src.see_face src.flags |= HEADCOVERSEYES - icon_state = "engspace_helmet" + icon_state = "[initial(icon_state)]" usr << "You toggle the reflective tint on." else src.up = !src.up src.see_face = !src.see_face src.flags &= ~HEADCOVERSEYES - icon_state = "engspace_helmet_clear" - usr << "You toggle the reflective tint off." - usr.update_clothing() - -/obj/item/clothing/head/helmet/space/rig/cespace_helmet/attack_self() - toggle() - -/obj/item/clothing/head/helmet/space/rig/cespace_helmet/verb/toggle() - set category = "Object" - set name = "Toggle Helmet Visor" - if(usr.canmove && usr.stat != 2 && !usr.restrained()) - if(src.up) - src.up = !src.up - src.see_face = !src.see_face - src.flags |= HEADCOVERSEYES - icon_state = "cespace_helmet" - usr << "You toggle the reflective tint on." - else - src.up = !src.up - src.see_face = !src.see_face - src.flags &= ~HEADCOVERSEYES - icon_state = "cespace_helmet_clear" + icon_state = "[initial(icon_state)]_clear" usr << "You toggle the reflective tint off." usr.update_clothing() diff --git a/code/game/objects/items/robot_parts.dm b/code/game/objects/items/robot_parts.dm index fcc1df6dd60..169adde5b8e 100644 --- a/code/game/objects/items/robot_parts.dm +++ b/code/game/objects/items/robot_parts.dm @@ -3,7 +3,8 @@ icon = 'robot_parts.dmi' item_state = "buildpipe" icon_state = "blank" - flags = FPRINT | ONBELT | TABLEPASS | CONDUCT + flags = FPRINT | TABLEPASS | CONDUCT + slot_flags = SLOT_BELT var/construction_time = 100 var/list/construction_cost = list("metal"=20000,"glass"=5000) diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index b2f6f24f6c7..627a2a5f849 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -61,7 +61,8 @@ desc = "A heavy-duty, no fun allowed trash bag." var/mode = 1; //0 = pick one at a time, 1 = pick all on tile var/capacity = 25; //the number of trash it can carry. - flags = FPRINT | TABLEPASS | ONBELT + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT w_class = 2.0 /obj/item/weapon/trashbag/update_icon() @@ -91,6 +92,7 @@ if(contents.len < capacity) //slightly redundant, but it makes it prettier in the chatbox. -Pete user << "\blue You pick up all the trash." for(var/obj/item/O in get_turf(W)) + if(istype(O, /obj/item/weapon/disk/nuclear)) continue //No nuke disks - Nodrak if(contents.len < capacity) if(O.w_class <= 2) contents += O; @@ -100,6 +102,7 @@ else user << "\blue The bag is full!" else + if(istype(W, /obj/item/weapon/disk/nuclear)) return //No nuke disks - Nodrak if(contents.len < capacity) contents += W; else diff --git a/code/game/objects/items/weapons/cameras.dm b/code/game/objects/items/weapons/cameras.dm index 8acba217c74..0fc1ecb6255 100644 --- a/code/game/objects/items/weapons/cameras.dm +++ b/code/game/objects/items/weapons/cameras.dm @@ -42,7 +42,8 @@ icon_state = "camera" item_state = "electropack" w_class = 2.0 - flags = 466.0 + flags = FPRINT | CONDUCT | USEDELAY | TABLEPASS + slot_flags = SLOT_BELT m_amt = 2000 throwforce = 5 throw_speed = 4 @@ -51,7 +52,6 @@ var/pictures_left = 30 var/can_use = 1 - /obj/item/weapon/photo name = "photo" icon = 'items.dmi' diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index 899853e205e..d0463e41d72 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -65,7 +65,8 @@ ZIPPO icon_state = "matchbox" item_state = "zippo" w_class = 1 - flags = ONBELT | TABLEPASS + flags = TABLEPASS + slot_flags = SLOT_BELT var/matchcount = 10 w_class = 1.0 @@ -122,6 +123,7 @@ ZIPPO var/lastHolder = null var/smoketime = 300 var/butt_count = 5 //count of butt sprite variations + proc light(var/flavor_text = "[usr] lights the [name].") @@ -162,7 +164,6 @@ ZIPPO processing_objects.Add(src) - process() var/turf/location = get_turf(src) src.smoketime-- @@ -251,6 +252,7 @@ ZIPPO var/lastHolder = null var/smoketime = 100 var/maxsmoketime = 100 //make sure this is equal to your smoketime + proc light(var/flavor_text = "[usr] lights the [name].") @@ -337,7 +339,8 @@ ZIPPO item_state = "cigpacket" w_class = 1 throwforce = 2 - flags = ONBELT | TABLEPASS + flags = TABLEPASS + slot_flags = SLOT_BELT var/cigcount = 6 @@ -381,7 +384,8 @@ ZIPPO var/icon_off = "lighter-g" w_class = 1 throwforce = 4 - flags = ONBELT | TABLEPASS | CONDUCT + flags = TABLEPASS | CONDUCT + slot_flags = SLOT_BELT var/lit = 0 /obj/item/weapon/lighter/zippo @@ -409,16 +413,16 @@ ZIPPO src.item_state = icon_on if( istype(src,/obj/item/weapon/lighter/zippo) ) for(var/mob/O in viewers(user, null)) - O.show_message(text("\red Without even breaking stride, [] flips open and lights [] in one smooth movement.", user, src), 1) + O.show_message(text("\red Without even breaking stride, \the [] flips open and lights \the [] in one smooth movement.", user, src), 1) else if(prob(75)) for(var/mob/O in viewers(user, null)) - O.show_message("\red After a few attempts, [user] manages to light [src].", 1) + O.show_message("\red After a few attempts, \the [user] manages to light \the [src].", 1) else user << "\red You burn yourself while lighting the lighter." user.adjustFireLoss(5) for(var/mob/O in viewers(user, null)) - O.show_message("\red After a few attempts, [user] manages to light [src], they however burn their finger in the process.", 1) + O.show_message("\red After a few attempts, \the [user] manages to light \the [src], they however burn themself in the process.", 1) user.total_luminosity += 2 processing_objects.Add(src) @@ -471,4 +475,4 @@ ZIPPO if(lit) user.total_luminosity -= 2 src.sd_SetLuminosity(2) - return + return \ No newline at end of file diff --git a/code/game/objects/items/weapons/grenades.dm b/code/game/objects/items/weapons/grenades.dm index 0782d2206e5..adec04cb2b8 100644 --- a/code/game/objects/items/weapons/grenades.dm +++ b/code/game/objects/items/weapons/grenades.dm @@ -16,14 +16,17 @@ FLASHBANG item_state = "emp" throw_speed = 4 throw_range = 20 - flags = FPRINT | TABLEPASS | CONDUCT | ONBELT + flags = FPRINT | TABLEPASS | CONDUCT + slot_flags = SLOT_BELT origin_tech = "materials=2;magnets=3" var/active = 0 var/det_time = 50 - proc - prime() - clown_check(var/mob/living/user) + proc/prime() + return + + proc/clown_check(var/mob/living/user) + return afterattack(atom/target as mob|obj|turf|area, mob/user as mob) if (istype(target, /obj/item/weapon/storage)) return ..() // Trying to put it in a full container @@ -89,16 +92,21 @@ FLASHBANG item_state = "flashbang" throw_speed = 4 throw_range = 20 - flags = FPRINT | TABLEPASS | CONDUCT | ONBELT + flags = FPRINT | TABLEPASS | CONDUCT + slot_flags = SLOT_BELT origin_tech = "materials=2;combat=1" var/active = 0 var/det_time = 30 var/banglet = 0 - proc - bang(var/turf/T , var/mob/living/carbon/M) - prime() - clown_check(var/mob/living/user) + proc/bang(var/turf/T , var/mob/living/carbon/M) + return + + proc/prime() + return + + proc/clown_check(var/mob/living/user) + return attackby(obj/item/weapon/W as obj, mob/user as mob) if (isscrewdriver(W)) @@ -227,7 +235,6 @@ FLASHBANG M << "\red Your ears start to ring!" prime() // Prime now just handles the two loops that query for people in lockers and people who can see it. - var/turf/T = get_turf(src) if(T) T.hotspot_expose(700,125) diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index 6e404c1a65d..f5422469e2f 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -7,19 +7,29 @@ icon_state = "implant" var/implanted = null var/mob/imp_in = null - var/color = "b" + color = "b" var/allow_reagents = 0 - proc - trigger(emote, source as mob) - activate() - implanted(source as mob) - get_data() - hear(message, source as mob) + + proc/trigger(emote, source as mob) + return + + proc/activate() + return + + proc/implanted(source as mob) + return + + proc/get_data() + return + + proc/hear(message, source as mob) + return trigger(emote, source as mob) return + activate() return @@ -38,6 +48,7 @@ implanted(source as mob) return + get_data() return "No information available" @@ -449,4 +460,4 @@ the implant may become unstable and either pre-maturely inject the subject or si usr << "You suddenly start seeing body temperatures of whoever is around you." else usr << "This implant is not compatible!" - return*/ + return*/ \ No newline at end of file diff --git a/code/game/objects/items/weapons/mops_cleaners.dm b/code/game/objects/items/weapons/mops_cleaners.dm index 1a32c2c9e1a..6f5e460303a 100644 --- a/code/game/objects/items/weapons/mops_cleaners.dm +++ b/code/game/objects/items/weapons/mops_cleaners.dm @@ -6,7 +6,8 @@ name = "space cleaner" icon_state = "cleaner" item_state = "cleaner" - flags = ONBELT|TABLEPASS|OPENCONTAINER|FPRINT|USEDELAY + flags = TABLEPASS|OPENCONTAINER|FPRINT|USEDELAY + slot_flags = SLOT_BELT throwforce = 3 w_class = 2.0 throw_speed = 2 @@ -117,7 +118,8 @@ name = "chem sprayer" icon_state = "chemsprayer" item_state = "chemsprayer" - flags = ONBELT|TABLEPASS|OPENCONTAINER|FPRINT|USEDELAY + flags = TABLEPASS|OPENCONTAINER|FPRINT|USEDELAY + slot_flags = SLOT_BELT throwforce = 3 w_class = 3.0 throw_speed = 2 @@ -212,7 +214,6 @@ return - return //Pepper spray, set up to make the 2 different types /obj/item/weapon/pepperspray //This is riot control @@ -221,7 +222,8 @@ name = "pepperspray" icon_state = "pepperspray" item_state = "pepperspray" - flags = ONBELT|TABLEPASS|FPRINT|USEDELAY + flags = TABLEPASS | FPRINT | USEDELAY + slot_flags = SLOT_BELT throwforce = 3 w_class = 2.0 throw_speed = 2 @@ -236,7 +238,8 @@ name = "mace" icon_state = "pepperspray" item_state = "pepperspray" - flags = ONBELT|TABLEPASS|FPRINT|USEDELAY + flags = TABLEPASS | FPRINT | USEDELAY + slot_flags = SLOT_BELT throwforce = 3 w_class = 1.0 throw_speed = 2 diff --git a/code/game/objects/items/weapons/paint.dm b/code/game/objects/items/weapons/paint.dm index 3e92b39a56a..e41e65e6eee 100644 --- a/code/game/objects/items/weapons/paint.dm +++ b/code/game/objects/items/weapons/paint.dm @@ -63,14 +63,13 @@ var/global/list/cached_icons = list() remover paint_type = "remover" - /* /obj/item/weapon/paint name = "Paint Can" desc = "Used to recolor floors and walls. Can not be removed by the janitor." icon = 'items.dmi' icon_state = "paint_neutral" - var/color = "FFFFFF" + color = "FFFFFF" item_state = "paintcan" w_class = 3.0 diff --git a/code/game/objects/items/weapons/plant_bag.dm b/code/game/objects/items/weapons/plant_bag.dm index 1cbb6f7903c..4f13ee45e1b 100644 --- a/code/game/objects/items/weapons/plant_bag.dm +++ b/code/game/objects/items/weapons/plant_bag.dm @@ -7,7 +7,8 @@ name = "Plant Bag" var/mode = 1; //0 = pick one at a time, 1 = pick all on tile var/capacity = 50; //the number of plant pieces it can carry. - flags = FPRINT | TABLEPASS | ONBELT + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT w_class = 1 /obj/item/weapon/plantbag/attack_self(mob/user as mob) diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 6beb9841632..7f177066d1e 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -15,7 +15,8 @@ WELDINGTOOOL desc = "A wrench with common uses. Can be found in your hand." icon = 'items.dmi' icon_state = "wrench" - flags = FPRINT | TABLEPASS| CONDUCT | ONBELT + flags = FPRINT | TABLEPASS| CONDUCT + slot_flags = SLOT_BELT force = 5.0 throwforce = 7.0 w_class = 2.0 @@ -46,7 +47,8 @@ WELDINGTOOOL name = "Welding Tool" icon = 'items.dmi' icon_state = "welder" - flags = FPRINT | TABLEPASS| CONDUCT | ONBELT + flags = FPRINT | TABLEPASS| CONDUCT + slot_flags = SLOT_BELT force = 3.0 throwforce = 5.0 throw_speed = 1 @@ -225,7 +227,6 @@ WELDINGTOOOL src.damtype = "brute" src.icon_state = "welder" src.welding = 0 - return eyecheck(mob/user as mob) @@ -314,7 +315,8 @@ WELDINGTOOOL desc = "This cuts wires." icon = 'items.dmi' icon_state = "cutters" - flags = FPRINT | TABLEPASS| CONDUCT | ONBELT + flags = FPRINT | TABLEPASS| CONDUCT + slot_flags = SLOT_BELT force = 6.0 throw_speed = 2 throw_range = 9 diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index b39e32a55b9..14eff5ba0f0 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -93,7 +93,7 @@ desc = "Truly, the weapon of a madman. Who would think to fight fire with an axe?" force = 5 w_class = 4.0 - flags = ONBACK + slot_flags = SLOT_BACK force_unwielded = 5 force_wielded = 18 diff --git a/code/game/objects/new_year.dm b/code/game/objects/new_year.dm index 90ed7f10665..4bf649b5542 100644 --- a/code/game/objects/new_year.dm +++ b/code/game/objects/new_year.dm @@ -55,7 +55,8 @@ item_state = "flashbang" throw_speed = 4 throw_range = 20 - flags = FPRINT | TABLEPASS | CONDUCT | ONBELT + flags = FPRINT | TABLEPASS | CONDUCT + slot_flags = SLOT_BELT /obj/item/weapon/firbang/afterattack(atom/target as mob|obj|turf|area, mob/user as mob) if (user.equipped() == src) diff --git a/code/game/objects/radio/electropack.dm b/code/game/objects/radio/electropack.dm index 209fbea8b53..dd5462fbff5 100644 --- a/code/game/objects/radio/electropack.dm +++ b/code/game/objects/radio/electropack.dm @@ -8,7 +8,8 @@ m_amt = 10000 frequency = 1449 w_class = 5.0 - flags = 323 + flags = FPRINT | CONDUCT | TABLEPASS + slot_flags = SLOT_BACK item_state = "electropack" /obj/item/device/radio/electropack/examine() diff --git a/code/game/objects/radio/headset.dm b/code/game/objects/radio/headset.dm index 582a08e8ae7..7c0217a2db6 100644 --- a/code/game/objects/radio/headset.dm +++ b/code/game/objects/radio/headset.dm @@ -8,8 +8,10 @@ g_amt = 0 m_amt = 75 subspace_transmission = 1 - protective_temperature = 0 canhear_range = 1 // can't hear headsets from very far away + + slot_flags = SLOT_EARS + protective_temperature = 0 var/translate_binary = 0 var/translate_hive = 0 var/obj/item/device/encryptionkey/keyslot1 = null @@ -246,4 +248,4 @@ src.name = "broken radio headset" return - return + return \ No newline at end of file diff --git a/code/game/objects/radio/radio.dm b/code/game/objects/radio/radio.dm index 75b9774a6f2..56cd66eec87 100644 --- a/code/game/objects/radio/radio.dm +++ b/code/game/objects/radio/radio.dm @@ -26,7 +26,8 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use var/list/channels = list() //see communications.dm for full list. First channes is a "default" for :h var/subspace_transmission = 0 // "Example" = FREQ_LISTENING|FREQ_BROADCASTING - flags = 450 // hello i'm a fucking idiot why is this 450?? CODE GODS PLEASE EXPLAIN~ + flags = FPRINT | CONDUCT | TABLEPASS + slot_flags = SLOT_BELT throw_speed = 2 throw_range = 9 w_class = 2 @@ -43,11 +44,11 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use /obj/item/device/radio var/datum/radio_frequency/radio_connection var/list/datum/radio_frequency/secure_radio_connections = new - proc - set_frequency(new_frequency) - radio_controller.remove_object(src, frequency) - frequency = new_frequency - radio_connection = radio_controller.add_object(src, frequency, RADIO_CHAT) + + proc/set_frequency(new_frequency) + radio_controller.remove_object(src, frequency) + frequency = new_frequency + radio_connection = radio_controller.add_object(src, frequency, RADIO_CHAT) diff --git a/code/game/objects/storage/backpack.dm b/code/game/objects/storage/backpack.dm index a6eb10e6fe7..7e5b3ff895f 100644 --- a/code/game/objects/storage/backpack.dm +++ b/code/game/objects/storage/backpack.dm @@ -47,6 +47,7 @@ return /* Remove these comments to re-enable BoH BoH Singuloths.-Hawk. if(istype(W, /obj/item/weapon/storage/backpack/holding) && !W.crit_fail) + investigate_log("has become a singularity. Caused by [user.key]","singulo") user << "\red The Bluespace interfaces of the two devices catastrophically malfunction!" del(W) var/obj/machinery/singularity/singulo = new /obj/machinery/singularity (get_turf(src)) diff --git a/code/game/objects/storage/belt.dm b/code/game/objects/storage/belt.dm index 11dcc50c2a6..51c168e955b 100644 --- a/code/game/objects/storage/belt.dm +++ b/code/game/objects/storage/belt.dm @@ -4,7 +4,8 @@ icon = 'belts.dmi' icon_state = "utilitybelt" item_state = "utility" - flags = FPRINT | TABLEPASS | ONBELT + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT max_w_class = 3 max_combined_w_class = 21 diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index 6edbbf80491..132fd7e00cc 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -1,6 +1,27 @@ obj/structure icon = 'structures.dmi' +obj/structure/blob_act() + if(prob(50)) + del(src) + +obj/structure/ex_act(severity) + switch(severity) + if(1.0) + del(src) + return + if(2.0) + if(prob(50)) + del(src) + return + if(3.0) + return + +obj/structure/meteorhit(obj/O as obj) + del(src) + + + /obj/structure/girder icon_state = "girder" anchored = 1 diff --git a/code/game/objects/tables_racks.dm b/code/game/objects/tables_racks.dm index 5f8343a3c08..7cbe88a9e66 100644 --- a/code/game/objects/tables_racks.dm +++ b/code/game/objects/tables_racks.dm @@ -44,10 +44,10 @@ TABLE AND RACK OBJECT INTERATIONS /obj/structure/table/attack_paw(mob/user as mob) if ((usr.mutations & HULK)) - usr << text("\blue You destroy the table.") + usr << "\blue You destroy the table." for(var/mob/O in oviewers()) if ((O.client && !( O.blinded ))) - O << text("\red [] smashes the table apart!", usr) + O << "\red [user] smashes the table apart!" if(istype(src, /obj/structure/table/reinforced)) new /obj/item/weapon/table_parts/reinforced( src.loc ) else if(istype(src, /obj/structure/table/woodentable)) @@ -62,16 +62,16 @@ TABLE AND RACK OBJECT INTERATIONS user.layer = TURF_LAYER for(var/mob/O in oviewers()) if ((O.client && !( O.blinded ))) - O << text("[] hides under the table!", user) + O << "[user] hides under the table!" //Foreach goto(69) return /obj/structure/table/attack_alien(mob/user as mob) //Removed code for larva since it doesn't work. Previous code is now a larva ability. /N - usr << text("\green You destroy the table.") + usr << "\green You destroy the table." for(var/mob/O in oviewers()) if ((O.client && !( O.blinded ))) - O << text("\red [] slices the table apart!", user) + O << "\red [user] slices the table apart!" if(istype(src, /obj/structure/table/reinforced)) new /obj/item/weapon/table_parts/reinforced( src.loc ) else if(istype(src, /obj/structure/table/woodentable)) @@ -85,10 +85,10 @@ TABLE AND RACK OBJECT INTERATIONS /obj/structure/table/attack_animal(mob/living/simple_animal/user as mob) //Removed code for larva since it doesn't work. Previous code is now a larva ability. /N if(user.wall_smash) - usr << text("\red You destroy the table.") + usr << "\red You destroy the table." for(var/mob/O in oviewers()) if ((O.client && !( O.blinded ))) - O << text("\red [] smashes the table apart!", user) + O << "\red [user] smashes the table apart!" if(istype(src, /obj/structure/table/reinforced)) new /obj/item/weapon/table_parts/reinforced( src.loc ) else if(istype(src, /obj/structure/table/woodentable)) @@ -103,11 +103,11 @@ TABLE AND RACK OBJECT INTERATIONS /obj/structure/table/attack_hand(mob/user as mob) - if (usr.mutations & HULK) - usr << text("\blue You destroy the table.") + if ((usr.mutations & HULK)) + usr << "\blue You destroy the table." for(var/mob/O in oviewers()) if ((O.client && !( O.blinded ))) - O << text("\red [] smashes the table apart!", usr) + O << "\red [user] smashes the table apart!" if(istype(src, /obj/structure/table/reinforced)) new /obj/item/weapon/table_parts/reinforced( src.loc ) else if(istype(src, /obj/structure/table/woodentable)) @@ -190,7 +190,7 @@ TABLE AND RACK OBJECT INTERATIONS G.affecting.Weaken(5) for(var/mob/O in viewers(world.view, src)) if (O.client) - O << text("\red [] puts [] on the table.", G.assailant, G.affecting) + O << "\red [G.assailant] puts [G.affecting] on the table." del(W) return @@ -214,7 +214,7 @@ TABLE AND RACK OBJECT INTERATIONS playsound(src.loc, 'blade1.ogg', 50, 1) playsound(src.loc, "sparks", 50, 1) for(var/mob/O in viewers(user, 4)) - O.show_message(text("\blue The table was sliced apart by []!", user), 1, text("\red You hear metal coming apart."), 2) + O.show_message("\blue The table was sliced apart by [user]!", 1, "\red You hear metal coming apart.", 2) new /obj/item/weapon/table_parts( src.loc ) del(src) return @@ -236,7 +236,7 @@ TABLE AND RACK OBJECT INTERATIONS G.affecting.Weaken(5) for(var/mob/O in viewers(world.view, src)) if (O.client) - O << text("\red [] puts [] on the wooden table.", G.assailant, G.affecting) + O << "\red [G.assailant] puts [G.affecting] on the wooden table." del(W) return if (istype(W, /obj/item/weapon/wrench)) @@ -256,7 +256,7 @@ TABLE AND RACK OBJECT INTERATIONS playsound(src.loc, 'blade1.ogg', 50, 1) playsound(src.loc, "sparks", 50, 1) for(var/mob/O in viewers(user, 4)) - O.show_message(text("\blue The wooden table was sliced apart by []!", user), 1, text("\red You hear wood coming apart."), 2) + O.show_message("\blue The wooden table was sliced apart by [user]!", 1, "\red You hear wood coming apart.", 2) new /obj/item/weapon/table_parts/wood( src.loc ) del(src) return @@ -278,7 +278,7 @@ TABLE AND RACK OBJECT INTERATIONS G.affecting.Weaken(5) for(var/mob/O in viewers(world.view, src)) if (O.client) - O << text("\red [] puts [] on the reinforced table.", G.assailant, G.affecting) + O << "\red [G.assailant] puts [G.affecting] on the reinforced table." del(W) return @@ -326,7 +326,7 @@ TABLE AND RACK OBJECT INTERATIONS playsound(src.loc, 'blade1.ogg', 50, 1) playsound(src.loc, "sparks", 50, 1) for(var/mob/O in viewers(user, 4)) - O.show_message(text("\blue The reinforced table was sliced apart by []!", user), 1, text("\red You hear metal coming apart."), 2) + O.show_message("\blue The reinforced table was sliced apart by [user]!", 1, "\red You hear metal coming apart.", 2) new /obj/item/weapon/table_parts/reinforced( src.loc ) del(src) return diff --git a/code/game/objects/tank.dm b/code/game/objects/tank.dm index 73b890be9e7..fb711275107 100644 --- a/code/game/objects/tank.dm +++ b/code/game/objects/tank.dm @@ -5,7 +5,8 @@ var/datum/gas_mixture/air_contents = null var/distribute_pressure = ONE_ATMOSPHERE - flags = FPRINT | TABLEPASS | CONDUCT | ONBACK + flags = FPRINT | TABLEPASS | CONDUCT + slot_flags = SLOT_BACK pressure_resistance = ONE_ATMOSPHERE*5 @@ -34,7 +35,7 @@ set src in usr ..() if(air_contents.oxygen < 1 && loc==usr) - usr << text("\red The meter on the [src.name] indicates you are almost out of air!") + usr << "\red The meter on the [src.name] indicates you are almost out of air!" usr << sound('alert.ogg') @@ -43,6 +44,7 @@ desc = "Contains dangerous plasma. Do not inhale." icon_state = "plasma" flags = FPRINT | TABLEPASS | CONDUCT + slot_flags = null //they have no straps! /obj/item/weapon/tank/blob_act() if(prob(50)) @@ -282,7 +284,7 @@ else descriptive = "furiously hot" - usr << text("\blue \The \icon[][src] feels []", icon, descriptive) + usr << "\blue \The \icon[icon][src] feels [descriptive]" return diff --git a/code/game/objects/tanks/emergency.dm b/code/game/objects/tanks/emergency.dm index 71ca3243f12..83a7822b3c9 100644 --- a/code/game/objects/tanks/emergency.dm +++ b/code/game/objects/tanks/emergency.dm @@ -2,7 +2,8 @@ name = "emergency oxygen tank" desc = "Used for emergencies. Contains very little oxygen, so try to conserve it until you actually need it." icon_state = "emergency" - flags = FPRINT | TABLEPASS | ONBELT | CONDUCT + flags = FPRINT | TABLEPASS | CONDUCT + slot_flags = SLOT_BELT w_class = 2.0 force = 4.0 distribute_pressure = ONE_ATMOSPHERE*O2STANDARD diff --git a/code/game/objects/transfer_valve.dm b/code/game/objects/transfer_valve.dm index 395e7cd4ecf..3404d4b6498 100644 --- a/code/game/objects/transfer_valve.dm +++ b/code/game/objects/transfer_valve.dm @@ -10,195 +10,180 @@ var/valve_open = 0 var/toggle = 1 - proc - process_activation(var/obj/item/device/D) +/obj/item/device/transfer_valve/proc/process_activation(var/obj/item/device/D) - IsAssemblyHolder() - return 1 +/obj/item/device/transfer_valve/IsAssemblyHolder() + return 1 - attackby(obj/item/item, mob/user) - if(istype(item, /obj/item/weapon/tank)) - if(tank_one && tank_two) - user << "There are already two tanks attached, remove one first." - return +/obj/item/device/transfer_valve/attackby(obj/item/item, mob/user) + if(istype(item, /obj/item/weapon/tank)) + if(tank_one && tank_two) + user << "There are already two tanks attached, remove one first." + return - if(!tank_one) - tank_one = item - user.drop_item() - item.loc = src - user << "You attach the tank to the transfer valve." - else if(!tank_two) - tank_two = item - user.drop_item() - item.loc = src - user << "You attach the tank to the transfer valve." + if(!tank_one) + tank_one = item + user.drop_item() + item.loc = src + user << "You attach the tank to the transfer valve." + else if(!tank_two) + tank_two = item + user.drop_item() + item.loc = src + user << "You attach the tank to the transfer valve." - update_icon() + update_icon() //TODO: Have this take an assemblyholder - else if(isassembly(item)) - var/obj/item/device/assembly/A = item - if(A.secured) - user << "The device is secured." - return - if(attached_device) - user << "There is already an device attached to the valve, remove it first." - return - user.remove_from_mob(item) - attached_device = A - A.loc = src - user << "You attach the [item] to the valve controls and secure it." - A.holder = src - A.toggle_secure() - - bombers += "[key_name(user)] attached a [item] to a transfer valve." - message_admins("[key_name_admin(user)] attached a [item] to a transfer valve.") - log_game("[key_name_admin(user)] attached a [item] to a transfer valve.") - attacher = key_name(user) - return - - - HasProximity(atom/movable/AM as mob|obj) - if(!attached_device) return - attached_device.HasProximity(AM) - return - - - attack_self(mob/user as mob) - user.machine = src - var/dat = {" Valve properties: -
Attachment one: [tank_one] [tank_one ? "Remove" : ""] -
Attachment two: [tank_two] [tank_two ? "Remove" : ""] -
Valve attachment: [attached_device ? "[attached_device]" : "None"] [attached_device ? "Remove" : ""] -
Valve status: [ valve_open ? "Closed Open" : "Closed Open"]"} - - user << browse(dat, "window=trans_valve;size=600x300") - onclose(user, "trans_valve") - return - - Topic(href, href_list) - ..() - if ( usr.stat || usr.restrained() ) + else if(isassembly(item)) + var/obj/item/device/assembly/A = item + if(A.secured) + user << "The device is secured." return - if (src.loc == usr) - if(tank_one && href_list["tankone"]) - split_gases() - valve_open = 0 - tank_one.loc = get_turf(src) - tank_one = null - update_icon() - else if(tank_two && href_list["tanktwo"]) - split_gases() - valve_open = 0 - tank_two.loc = get_turf(src) - tank_two = null - update_icon() - else if(href_list["open"]) - toggle_valve() - else if(attached_device) - if(href_list["rem_device"]) - attached_device.loc = get_turf(src) - attached_device:holder = null - attached_device = null - update_icon() - if(href_list["device"]) - attached_device.attack_self(usr) - - src.attack_self(usr) - src.add_fingerprint(usr) - return - return - - process_activation(var/obj/item/device/D) - if(toggle) - toggle = 0 - toggle_valve() - spawn(50) // To stop a signal being spammed from a proxy sensor constantly going off or whatever - toggle = 1 - - process() - - update_icon() - src.overlays = new/list() - src.underlays = new/list() - if(!tank_one && !tank_two && !attached_device) - icon_state = "valve_1" - return - icon_state = "valve" - var/tank_one_icon = "" - var/tank_two_icon = "" - if(tank_one) - tank_one_icon = tank_one.icon_state - if(tank_two) - tank_two_icon = tank_two.icon_state - if(tank_one) - var/icon/I = new(src.icon, icon_state = "[tank_one_icon]") - //var/obj/effect/overlay/tank_one_overlay = new - //tank_one_overlay.icon = src.icon - //tank_one_overlay.icon_state = tank_one_icon - src.underlays += I - if(tank_two) - var/icon/J = new(src.icon, icon_state = "[tank_two_icon]") - //I.Flip(EAST) this breaks the perspective! - J.Shift(WEST, 13) - //var/obj/underlay/tank_two_overlay = new - //tank_two_overlay.icon = I - src.underlays += J if(attached_device) - var/icon/K = new(src.icon, icon_state = "device") - //var/obj/effect/overlay/device_overlay = new - //device_overlay.icon = src.icon - //device_overlay.icon_state = device_icon - src.overlays += K - proc - merge_gases() - tank_two.air_contents.volume += tank_one.air_contents.volume - var/datum/gas_mixture/temp - temp = tank_one.air_contents.remove_ratio(1) - tank_two.air_contents.merge(temp) - - split_gases() - if (!valve_open || !tank_one || !tank_two) - return - var/ratio1 = tank_one.air_contents.volume/tank_two.air_contents.volume - var/datum/gas_mixture/temp - temp = tank_two.air_contents.remove_ratio(ratio1) - tank_one.air_contents.merge(temp) - tank_two.air_contents.volume -= tank_one.air_contents.volume - - /* - Exadv1: I know this isn't how it's going to work, but this was just to check - it explodes properly when it gets a signal (and it does). - */ - - toggle_valve() - if(valve_open==0 && (tank_one && tank_two)) - valve_open = 1 - var/turf/bombturf = get_turf(src) - var/bombarea = bombturf.loc.name - var/log_str = "Bomb valve opened in [bombarea] with device attacher: [attacher]. Last touched by: [src.fingerprintslast]" - bombers += log_str - message_admins(log_str) - log_game(log_str) - merge_gases() - spawn(20) // In case one tank bursts - for (var/i=0,i<5,i++) - src.update_icon() - sleep(10) - src.update_icon() - - else if(valve_open==1 && (tank_one && tank_two)) - split_gases() - valve_open = 0 - src.update_icon() - - // this doesn't do anything but the timer etc. expects it to be here - // eventually maybe have it update icon to show state (timer, prox etc.) like old bombs - c_state() + user << "There is already an device attached to the valve, remove it first." return + user.remove_from_mob(item) + attached_device = A + A.loc = src + user << "You attach the [item] to the valve controls and secure it." + A.holder = src + A.toggle_secure() + + bombers += "[key_name(user)] attached a [item] to a transfer valve." + message_admins("[key_name_admin(user)] attached a [item] to a transfer valve.") + log_game("[key_name_admin(user)] attached a [item] to a transfer valve.") + attacher = key_name(user) + return + + +/obj/item/device/transfer_valve/HasProximity(atom/movable/AM as mob|obj) + if(!attached_device) return + attached_device.HasProximity(AM) + return + + +/obj/item/device/transfer_valve/attack_self(mob/user as mob) + user.machine = src + var/dat = {" Valve properties: +
Attachment one: [tank_one] [tank_one ? "Remove" : ""] +
Attachment two: [tank_two] [tank_two ? "Remove" : ""] +
Valve attachment: [attached_device ? "[attached_device]" : "None"] [attached_device ? "Remove" : ""] +
Valve status: [ valve_open ? "Closed Open" : "Closed Open"]"} + + user << browse(dat, "window=trans_valve;size=600x300") + onclose(user, "trans_valve") + return + +/obj/item/device/transfer_valve/Topic(href, href_list) + ..() + if ( usr.stat || usr.restrained() ) + return + if (src.loc == usr) + if(tank_one && href_list["tankone"]) + split_gases() + valve_open = 0 + tank_one.loc = get_turf(src) + tank_one = null + update_icon() + else if(tank_two && href_list["tanktwo"]) + split_gases() + valve_open = 0 + tank_two.loc = get_turf(src) + tank_two = null + update_icon() + else if(href_list["open"]) + toggle_valve() + else if(attached_device) + if(href_list["rem_device"]) + attached_device.loc = get_turf(src) + attached_device:holder = null + attached_device = null + update_icon() + if(href_list["device"]) + attached_device.attack_self(usr) + + src.attack_self(usr) + src.add_fingerprint(usr) + return + return + +/obj/item/device/transfer_valve/process_activation(var/obj/item/device/D) + if(toggle) + toggle = 0 + toggle_valve() + spawn(50) // To stop a signal being spammed from a proxy sensor constantly going off or whatever + toggle = 1 + +/obj/item/device/transfer_valve/process() + return + +/obj/item/device/transfer_valve/update_icon() + overlays = null + underlays = null + + if(!tank_one && !tank_two && !attached_device) + icon_state = "valve_1" + return + icon_state = "valve" + + if(tank_one) + overlays += "[tank_one.icon_state]" + if(tank_two) + var/icon/J = new(icon, icon_state = "[tank_two.icon_state]") + J.Shift(WEST, 13) + underlays += J + if(attached_device) + overlays += "device" + +/obj/item/device/transfer_valve/proc/merge_gases() + tank_two.air_contents.volume += tank_one.air_contents.volume + var/datum/gas_mixture/temp + temp = tank_one.air_contents.remove_ratio(1) + tank_two.air_contents.merge(temp) + +/obj/item/device/transfer_valve/proc/split_gases() + if (!valve_open || !tank_one || !tank_two) + return + var/ratio1 = tank_one.air_contents.volume/tank_two.air_contents.volume + var/datum/gas_mixture/temp + temp = tank_two.air_contents.remove_ratio(ratio1) + tank_one.air_contents.merge(temp) + tank_two.air_contents.volume -= tank_one.air_contents.volume + + /* + Exadv1: I know this isn't how it's going to work, but this was just to check + it explodes properly when it gets a signal (and it does). + */ + +/obj/item/device/transfer_valve/proc/toggle_valve() + if(valve_open==0 && (tank_one && tank_two)) + valve_open = 1 + var/turf/bombturf = get_turf(src) + var/bombarea = bombturf.loc.name + var/log_str = "Bomb valve opened in [bombarea] with device attacher: [attacher]. Last touched by: [src.fingerprintslast]" + bombers += log_str + message_admins(log_str) + log_game(log_str) + merge_gases() + spawn(20) // In case one tank bursts + for (var/i=0,i<5,i++) + src.update_icon() + sleep(10) + src.update_icon() + + else if(valve_open==1 && (tank_one && tank_two)) + split_gases() + valve_open = 0 + src.update_icon() + +// this doesn't do anything but the timer etc. expects it to be here +// eventually maybe have it update icon to show state (timer, prox etc.) like old bombs +/obj/item/device/transfer_valve/proc/c_state() + return -/obj/structure/falsewall/ +/obj/structure/falsewall attack_hand(mob/user as mob) if(density) // Open wall diff --git a/code/game/objects/uplinks.dm b/code/game/objects/uplinks.dm index 203cbb77bb7..568e5974993 100644 --- a/code/game/objects/uplinks.dm +++ b/code/game/objects/uplinks.dm @@ -312,7 +312,8 @@ A list of items and costs is stored under the datum of every game mode, alongsid var/temp = null //Temporary storage area for a message offering the option to destroy the radio var/selfdestruct = 0 //Set to 1 while the radio is self destructing itself. var/obj/item/device/radio/origradio = null - flags = FPRINT | TABLEPASS | CONDUCT | ONBELT + flags = FPRINT | TABLEPASS | CONDUCT + slot_flags = SLOT_BELT w_class = 2.0 item_state = "radio" throwforce = 5 diff --git a/code/game/objects/watercloset.dm b/code/game/objects/watercloset.dm index da6d46bdc0a..afc41385615 100644 --- a/code/game/objects/watercloset.dm +++ b/code/game/objects/watercloset.dm @@ -1,4 +1,4 @@ -//todo: flushing, flushing heads, showers actually cleaning people +//todo: toothbrushes, and some sort of "toilet-filthinator" for the hos /obj/structure/toilet name = "toilet" @@ -8,18 +8,43 @@ density = 0 anchored = 1 var/open = 0 + var/mob/swirlie = null /obj/structure/toilet/New() open = round(rand(0, 1)) update_icon() /obj/structure/toilet/attack_hand() - open = !open - update_icon() + if(!swirlie) + open = !open + update_icon() + else + usr.visible_message("[usr] slams the toilet seat onto [swirlie.name]'s head!", "You slam the toilet seat onto [swirlie.name]'s head!", "You hear reverberating porcelain.") + swirlie.adjustBruteLoss(8) /obj/structure/toilet/update_icon() icon_state = "toilet[open]" +/obj/structure/toilet/attackby(var/obj/item/I, var/mob/user) + if(istype(I, /obj/item/weapon/grab)) + var/obj/item/weapon/grab/G = I + var/mob/GM = G.affecting + if(ismob(G.affecting)) + if(G.state>1 && GM.loc == get_turf(src)) + if(open && !swirlie) + user.visible_message("[user] starts to give [GM.name] a swirlie!", "You start to give [GM.name] a swirlie!") + swirlie = GM + if(do_after(user, 30, 5, 0)) + user.visible_message("[user] gives [GM.name] a swirlie!", "You give [GM.name] a swirlie!", "You hear a toilet flushing.") + if(!GM.internal) + GM.adjustOxyLoss(5) + swirlie = null + else + user.visible_message("[user] slams [GM.name] into the [src]!", "You slam [GM.name] into the [src]!") + GM.adjustBruteLoss(8) + else + user << "You need a tighter grip." + /obj/structure/urinal @@ -30,9 +55,20 @@ density = 0 anchored = 1 +/obj/structure/urinal/attackby(var/obj/item/I, var/mob/user) + if(istype(I, /obj/item/weapon/grab)) + var/obj/item/weapon/grab/G = I + var/mob/GM = G.affecting + if(ismob(G.affecting)) + if(G.state>1 && GM.loc == get_turf(src)) + user.visible_message("[user] slams [GM.name] into the [src]!", "You slam [GM.name] into the [src]!") + GM.adjustBruteLoss(8) + else + user << "You need a tighter grip." -/obj/structure/shower + +/obj/machinery/shower name = "shower" desc = "The HS-451. Installed in the 2550s by the Nanotrasen Hygiene Division." icon = 'watercloset.dmi' @@ -41,7 +77,9 @@ anchored = 1 var/on = 0 var/obj/effect/mist/mymist = null - var/ismist = 0 //needs a var so we can make it linger~ + var/ismist = 0 //needs a var so we can make it linger~ + var/watertemp = "normal" //freezing, normal, or boiling + var/mobpresent = 0 //true if there is a mob on the shower's loc, this is to ease process() //add heat controls? when emagged, you can freeze to death in it? @@ -52,22 +90,37 @@ layer = MOB_LAYER + 1 mouse_opacity = 0 -/obj/structure/shower/attack_hand(mob/M as mob) +/obj/machinery/shower/attack_hand(mob/M as mob) on = !on update_icon() if(on && M.loc == loc) wash(M) + check_heat(M) -/obj/structure/shower/attackby(mob/M as mob) - attack_hand(M) +/obj/machinery/shower/attackby(var/obj/item/I, var/mob/user) + if(I.type == /obj/item/device/analyzer) + user << "The water temperature seems to be [watertemp]." + if(istype(I, /obj/item/weapon/wrench)) + user << "You begin to adjust the temperature valve with the [I]." + if(do_after(user, 50)) + switch(watertemp) + if("normal") + watertemp = "freezing" + if("freezing") + watertemp = "boiling" + if("boiling") + watertemp = "normal" + user.visible_message("[user] adjusts the shower with the [I].", "You adjust the shower with the [I].") -/obj/structure/shower/update_icon() - overlays = null +/obj/machinery/shower/update_icon() //this is terribly unreadable, but basically it makes the shower mist up + overlays = null //once it's been on for a while, in addition to handling the water overlay. if(mymist) del(mymist) if(on) overlays += image('watercloset.dmi', src, "water", MOB_LAYER + 1, dir) + if(watertemp == "freezing") + return if(!ismist) spawn(50) if(src && on) @@ -84,13 +137,20 @@ del(mymist) ismist = 0 -/obj/structure/shower/HasEntered(atom/movable/O as obj|mob) +/obj/machinery/shower/HasEntered(atom/movable/O) ..() wash(O) + if(ismob(O)) + mobpresent += 1 + check_heat(O) + +/obj/machinery/shower/Uncrossed(atom/movable/O) + if(ismob(O)) + mobpresent -= 1 + ..() //Yes, showers are super powerful as far as washing goes. -/obj/structure/shower/proc/wash(atom/movable/O as obj|mob) - ..() +/obj/machinery/shower/proc/wash(atom/movable/O as obj|mob) if(!on) return O.clean_blood() @@ -108,10 +168,10 @@ var/mob/living/carbon/human/washer = O if(washer.head) washer.head.clean_blood() - if(washer.w_uniform) - washer.w_uniform.clean_blood() if(washer.wear_suit) washer.wear_suit.clean_blood() + else if(washer.w_uniform) + washer.w_uniform.clean_blood() if(washer.shoes) washer.shoes.clean_blood() if(washer.gloves) @@ -129,6 +189,26 @@ for(var/obj/effect/overlay/R in tile) del(R) +/obj/machinery/shower/process() + if(!on || !mobpresent) return + for(var/mob/living/carbon/C in loc) + check_heat(C) + +/obj/machinery/shower/proc/check_heat(mob/M as mob) + if(!on || watertemp == "normal") return + if(iscarbon(M)) + var/mob/living/carbon/C = M + + if(watertemp == "freezing") + C.bodytemperature = min(100, C.bodytemperature - 80) + C << "The water is freezing!" + return + if(watertemp == "boiling") + C.bodytemperature = max(500, C.bodytemperature + 35) + C.adjustFireLoss(10) + C << "The water is searing!" + return + /obj/item/weapon/bikehorn/rubberducky @@ -177,7 +257,7 @@ else C.clean_blood() //other things that can't wear gloves should just wash the mob. for(var/mob/V in viewers(src, null)) - V.show_message(text("\blue [M] washes their hands using \the [src].")) + V.show_message("\blue [M] washes their hands using \the [src].") /obj/structure/sink/attackby(var/obj/item/O as obj, var/mob/user as mob) if(busy) diff --git a/code/game/objects/weapons.dm b/code/game/objects/weapons.dm index 24be9eed502..06d523e4128 100644 --- a/code/game/objects/weapons.dm +++ b/code/game/objects/weapons.dm @@ -82,7 +82,7 @@ if(istype(M, /mob/living/carbon/human) || istype(M, /mob/living/carbon/monkey)) for(var/mob/O in viewers(world.view, src.loc)) - O << text("[M] triggered the \icon[] [src]", src) + O << "[M] triggered the \icon[src] [src]" triggered = 1 call(src,triggerproc)(M) @@ -162,7 +162,7 @@ for(var/mob/O in viewers(user, null)) if(O == user) continue - O.show_message(text("\red [user] accidentally sets off the mousetrap, breaking their fingers."), 1) + O.show_message("\red [user] accidentally sets off the mousetrap, breaking their fingers.", 1) return user << "\blue You disarm the mousetrap." armed = !armed @@ -179,7 +179,7 @@ for(var/mob/O in viewers(user, null)) if(O == user) continue - O.show_message(text("\red [user] accidentally sets off the mousetrap, breaking their fingers."), 1) + O.show_message("\red [user] accidentally sets off the mousetrap, breaking their fingers.", 1) return ..() @@ -192,12 +192,12 @@ for(var/mob/O in viewers(H, null)) if(O == H) continue - O.show_message(text("\red [H] accidentally steps on the mousetrap."), 1) + O.show_message("\red [H] accidentally steps on the mousetrap.", 1) ..() /obj/item/weapon/mousetrap/hitby(A as mob|obj) if(!armed) return ..() for(var/mob/O in viewers(src, null)) - O.show_message(text("\red The mousetrap is triggered by [A]."), 1) + O.show_message("\red The mousetrap is triggered by [A].", 1) src.triggered(null) diff --git a/code/game/objects/window.dm b/code/game/objects/window.dm index 3f10f483bcd..ea12961dda7 100644 --- a/code/game/objects/window.dm +++ b/code/game/objects/window.dm @@ -68,7 +68,7 @@ ..() for(var/mob/O in viewers(src, null)) - O.show_message(text("\red [src] was hit by [AM]."), 1) + O.show_message("\red [src] was hit by [AM].", 1) var/tforce = 0 if(ismob(AM)) tforce = 40 @@ -90,12 +90,14 @@ ..() return +//These all need to be rewritten to use visiblemessage() + /obj/structure/window/attack_hand() if ((usr.mutations & HULK)) - usr << text("\blue You smash through the window.") + usr << "\blue You smash through the window." for(var/mob/O in oviewers()) if ((O.client && !( O.blinded ))) - O << text("\red [] smashes through the window!", usr) + O << "\red [usr] smashes through the window!" src.health = 0 new /obj/item/weapon/shard( src.loc ) if(reinf) new /obj/item/stack/rods( src.loc) @@ -112,10 +114,10 @@ /obj/structure/window/attack_paw() if ((usr.mutations & HULK)) - usr << text("\blue You smash through the window.") + usr << "\blue You smash through the window." for(var/mob/O in oviewers()) if ((O.client && !( O.blinded ))) - O << text("\red [] smashes through the window!", usr) + O << "\red [usr] smashes through the window!" src.health = 0 new /obj/item/weapon/shard( src.loc ) if(reinf) new /obj/item/stack/rods( src.loc) @@ -126,17 +128,17 @@ /obj/structure/window/attack_alien() if (istype(usr, /mob/living/carbon/alien/larva))//Safety check for larva. /N return - usr << text("\green You smash against the window.") + usr << "\green You smash against the window." for(var/mob/O in oviewers()) if ((O.client && !( O.blinded ))) - O << text("\red [] smashes against the window.", usr) + O << "\red [usr] smashes against the window." playsound(src.loc, 'Glasshit.ogg', 100, 1) src.health -= 15 if(src.health <= 0) - usr << text("\green You smash through the window.") + usr << "\green You smash through the window." for(var/mob/O in oviewers()) if ((O.client && !( O.blinded ))) - O << text("\red [] smashes through the window!", usr) + O << "\red [usr] smashes through the window!" src.health = 0 new /obj/item/weapon/shard(src.loc) if(reinf) @@ -150,17 +152,17 @@ /obj/structure/window/attack_animal(mob/living/simple_animal/M as mob) if (M.melee_damage_upper == 0) return - M << text("\green You smash against the window.") + M << "\green You smash against the window." for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) - O << text("\red [] smashes against the window.", M) + O << "\red [M] smashes against the window." playsound(src.loc, 'Glasshit.ogg', 100, 1) src.health -= M.melee_damage_upper if(src.health <= 0) - M << text("\green You smash through the window.") + M << "\green You smash through the window." for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) - O << text("\red [] smashes through the window!", M) + O << "\red [M] smashes through the window!" src.health = 0 new /obj/item/weapon/shard(src.loc) if(reinf) @@ -174,17 +176,17 @@ if(!istype(usr, /mob/living/carbon/metroid/adult)) return - usr<< text("\green You smash against the window.") + usr<< "\green You smash against the window." for(var/mob/O in oviewers()) if ((O.client && !( O.blinded ))) - O << text("\red [] smashes against the window.", usr) + O << "\red [usr] smashes against the window." playsound(src.loc, 'Glasshit.ogg', 100, 1) src.health -= rand(10,15) if(src.health <= 0) - usr << text("\green You smash through the window.") + usr << "\green You smash through the window." for(var/mob/O in oviewers()) if ((O.client && !( O.blinded ))) - O << text("\red [] smashes through the window!", usr) + O << "\red [usr] smashes through the window!" src.health = 0 new /obj/item/weapon/shard(src.loc) if(reinf) diff --git a/code/modules/DetectiveWork/detective_work.dm b/code/modules/DetectiveWork/detective_work.dm index 1f2b8dd4a3e..bb4cb2e0a2d 100644 --- a/code/modules/DetectiveWork/detective_work.dm +++ b/code/modules/DetectiveWork/detective_work.dm @@ -3,10 +3,11 @@ atom/var/list/suit_fibers atom/proc/add_fibers(mob/living/carbon/human/M) - if(M.gloves) - if(M.gloves.transfer_blood) //bloodied gloves transfer blood to touched objects - if(add_blood(M.gloves.bloody_hands_mob)) //only reduces the bloodiness of our gloves if the item wasn't already bloody - M.gloves.transfer_blood-- + if(M.gloves && istype(M.gloves,/obj/item/clothing/)) + var/obj/item/clothing/gloves/G = M.gloves + if(G.transfer_blood) //bloodied gloves transfer blood to touched objects + if(add_blood(G.bloody_hands_mob)) //only reduces the bloodiness of our gloves if the item wasn't already bloody + G.transfer_blood-- else if(M.bloody_hands) if(add_blood(M.bloody_hands_mob)) M.bloody_hands-- @@ -618,10 +619,11 @@ turf/Exited(mob/living/carbon/human/M) M.track_blood-- src.add_bloody_footprints(M.track_blood_mob,1,M.dir,get_tracks(M),M.track_blood_type) else if(istype(M,/mob/living/carbon/human)) - if(M.shoes) - if(M.shoes.track_blood > 0) - M.shoes.track_blood-- - src.add_bloody_footprints(M.shoes.track_blood_mob,1,M.dir,M.shoes.name,M.shoes.track_blood_type) // And bloody tracks end here + if(M.shoes && istype(M.shoes,/obj/item/clothing/shoes)) + var/obj/item/clothing/shoes/S = M.shoes + if(S.track_blood > 0) + S.track_blood-- + src.add_bloody_footprints(S.track_blood_mob,1,M.dir,S.name,S.track_blood_type) // And bloody tracks end here . = ..() turf/Entered(mob/living/carbon/human/M) if(istype(M,/mob/living) && !istype(M,/mob/living/carbon/metroid)) @@ -636,10 +638,11 @@ turf/Entered(mob/living/carbon/human/M) M.track_blood-- src.add_bloody_footprints(M.track_blood_mob,0,M.dir,get_tracks(M),M.track_blood_type) else if(istype(M,/mob/living/carbon/human)) - if(M.shoes && !istype(src,/turf/space)) - if(M.shoes.track_blood > 0) - M.shoes.track_blood-- - src.add_bloody_footprints(M.shoes.track_blood_mob,0,M.dir,M.shoes.name,M.shoes.track_blood_type) + if(M.shoes && istype(M.shoes,/obj/item/clothing/shoes) && !istype(src,/turf/space)) + var/obj/item/clothing/shoes/S = M.shoes + if(S.track_blood > 0) + S.track_blood-- + src.add_bloody_footprints(S.track_blood_mob,0,M.dir,S.name,S.track_blood_type) for(var/obj/effect/decal/cleanable/B in src) @@ -654,11 +657,12 @@ turf/Entered(mob/living/carbon/human/M) track_type = "oil" if(istype(M,/mob/living/carbon/human)) - if(M.shoes) - M.shoes.add_blood(B.blood_owner) - M.shoes.track_blood_mob = B.blood_owner - M.shoes.track_blood = max(M.shoes.track_blood,8) - M.shoes.track_blood_type = track_type + if(M.shoes && istype(M.shoes,/obj/item/clothing/shoes)) + var/obj/item/clothing/shoes/S = M.shoes + S.add_blood(B.blood_owner) + S.track_blood_mob = B.blood_owner + S.track_blood = max(S.track_blood,8) + S.track_blood_type = track_type else M.add_blood(B.blood_owner) M.track_blood_mob = B.blood_owner diff --git a/code/modules/admin/admin_investigate.dm b/code/modules/admin/admin_investigate.dm new file mode 100644 index 00000000000..4f2956cf9bf --- /dev/null +++ b/code/modules/admin/admin_investigate.dm @@ -0,0 +1,43 @@ +//By Carnwennan + +//This system was made as an alternative to all the in-game lists and variables used to log stuff in-game. +//lists and variables are great. However, they have several major flaws: +//Firstly, they use memory. TGstation has one of the highest memory usage of all the ss13 branches. +//Secondly, they are usually stored in an object. This means that they aren't centralised. It also means that +//the data is lost when the object is deleted! This is especially annoying for things like the singulo engine! +#define INVESTIGATE_DIR "data/investigate/" + +//SYSTEM +/proc/investigate_subject2file(var/subject) + switch(subject) + if("singulo") + return file("[INVESTIGATE_DIR]singulo.html") + if("silicon") + return file("[INVESTIGATE_DIR]silicon.html") + else + return + +/proc/investigate_reset() + if(fdel(INVESTIGATE_DIR)) return 1 + return 0 + +/atom/proc/investigate_log(var/message, var/subject) + if(!message) return + var/F = investigate_subject2file(subject) + if(!F) return + F << "[time2text(world.timeofday,"hh:mm")] \ref[src] ([x],[y],[z]) || [src] [message]
" + + + +//ADMINVERBS +/client/proc/investigate_show( subject in list("singulo","silicon") ) + set name = "Investigate" + set category = "Admin" + if(!holder) return + var/F = investigate_subject2file(subject) + if(!F) + src << "Error: admin_investigate: [INVESTIGATE_DIR][subject] is an invalid path or cannot be accessed." + return + src << browse(F,"window=investigate;size=800x300") + + diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 624832c9264..f7eec938d0e 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -105,6 +105,7 @@ //Admin Observer if (holder.level >= -1) + verbs += /client/proc/investigate_show verbs += /client/proc/cmd_admin_say verbs += /client/proc/cmd_admin_gib_self verbs += /client/proc/deadmin_self @@ -423,10 +424,11 @@ verbs -= /client/proc/deadmin_self verbs -= /client/proc/jumptocoord verbs -= /client/proc/everyone_random - verbs -= /client/proc/giveruntimelog //used by coders to retrieve runtime logs + verbs -= /client/proc/giveruntimelog //used by coders to retrieve runtime logs verbs -= /client/proc/getserverlog verbs -= /client/proc/cinematic //show a cinematic sequence verbs -= /client/proc/admin_memo + verbs -= /client/proc/investigate_show verbs -= /client/proc/cmd_admin_change_custom_event verbs -= /client/proc/admin_invis verbs -= /client/proc/callprocgen diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index 1a0e282d4db..1ea22042b6f 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -62,17 +62,32 @@ var/const/WIRE_RADIO_RECEIVE = 8 //Allows Pulsed(1) to call Activate() var/const/WIRE_RADIO_PULSE = 16 //Allows Pulse(1) to send a radio message - proc/activate() //What the device does when turned on + return + proc/pulsed(var/radio = 0) //Called when another assembly acts on this one, var/radio will determine where it came from for wire calcs - pulse(var/radio = 0) //Called when this device attempts to act on another device, var/radio determines if it was sent via radio or direct + return + + proc/pulse(var/radio = 0) //Called when this device attempts to act on another device, var/radio determines if it was sent via radio or direct + return + proc/toggle_secure() //Code that has to happen when the assembly is un\secured goes here + return + proc/attach_assembly(var/obj/A, var/mob/user) //Called when an assembly is attacked by another + return + + proc/process_cooldown() //Called via spawn(10) to have it count down the cooldown var + return + proc/holder_movement() //Called when the holder is moved + return + proc/interact(mob/user as mob) //Called when attack_self is called + return - proc/process_cooldown() + process_cooldown() cooldown-- if(cooldown <= 0) return 0 spawn(10) @@ -88,7 +103,7 @@ return 1 - proc/pulse(var/radio = 0) + pulse(var/radio = 0) if(holder && (wires & WIRE_PULSE)) holder.process_activation(src, 1, 0) if(holder && (wires & WIRE_PULSE_SPECIAL)) @@ -219,4 +234,4 @@ Desc: If true is an object that can be attached to an assembly holder but is a s //Remember to have it set its loc somewhere in here -*/ +*/ \ No newline at end of file diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index 51ac5e39337..f499c3c0875 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -1,5 +1,3 @@ -//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05 - /obj/item/device/assembly_holder name = "Assembly" desc = "Holds various devices"//Fix this by adding dynamic desc @@ -18,10 +16,15 @@ var/obj/item/device/assembly/a_right = null var/obj/special_assembly = null - proc - attach(var/obj/item/device/D, var/obj/item/device/D2, var/mob/user) - attach_special(var/obj/O, var/mob/user) - process_activation(var/obj/item/device/D) + proc/attach(var/obj/item/device/D, var/obj/item/device/D2, var/mob/user) + return + + proc/attach_special(var/obj/O, var/mob/user) + return + + proc/process_activation(var/obj/item/device/D) + return + IsAssemblyHolder() diff --git a/code/modules/chemical/Chemistry-Tools.dm b/code/modules/chemical/Chemistry-Tools.dm index 8de9d005c49..c2c280619ab 100644 --- a/code/modules/chemical/Chemistry-Tools.dm +++ b/code/modules/chemical/Chemistry-Tools.dm @@ -11,9 +11,6 @@ item_state = "flashbang" w_class = 2.0 force = 2.0 - throw_speed = 4 - throw_range = 20 - flags = FPRINT | TABLEPASS | CONDUCT | ONBELT | USEDELAY var/obj/item/weapon/reagent_containers/glass/beaker_one var/obj/item/weapon/reagent_containers/glass/beaker_two var/obj/item/device/assembly/attached_device @@ -27,6 +24,10 @@ var/list/allowed_containers = list("/obj/item/weapon/reagent_containers/glass/beaker", "/obj/item/weapon/reagent_containers/glass/dispenser", "/obj/item/weapon/reagent_containers/glass/bottle") var/affected_area = 3 var/mob/attacher = "Unknown" + throw_speed = 4 + throw_range = 20 + flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY + slot_flags = SLOT_BELT attackby(var/obj/item/weapon/W, var/mob/user) if(path || !active) @@ -784,7 +785,7 @@ /obj/structure/table, /obj/structure/closet/secure_closet, /obj/structure/closet, - /obj/machinery/sink, + /obj/structure/sink, /obj/item/weapon/storage, /obj/machinery/atmospherics/unary/cryo_cell, /obj/item/weapon/chem_grenade, @@ -1304,7 +1305,8 @@ amount_per_transfer_from_this = 5 volume = 30 possible_transfer_amounts = null - flags = FPRINT | ONBELT | TABLEPASS | OPENCONTAINER + flags = FPRINT | TABLEPASS | OPENCONTAINER + slot_flags = SLOT_BELT /obj/item/weapon/reagent_containers/hypospray/attack_paw(mob/user as mob) return src.attack_hand(user) @@ -1349,9 +1351,9 @@ possible_transfer_amounts = null flags = FPRINT var/mode = 1 - var/charge_cost = 100 + var/charge_cost = 50 var/charge_tick = 0 - var/recharge_time = 10 //Time it takes for shots to recharge (in seconds) + var/recharge_time = 5 //Time it takes for shots to recharge (in seconds) New() ..() @@ -1372,13 +1374,13 @@ if(R && R.cell) if(mode == 1 && reagents.total_volume < 30) //Don't recharge reagents and drain power if the storage is full. R.cell.use(charge_cost) //Take power from borg... - reagents.add_reagent("tricordrazine",10) //And fill hypo with reagent. + reagents.add_reagent("tricordrazine",5) //And fill hypo with reagent. if(mode == 2 && reagents.total_volume < 30) R.cell.use(charge_cost) - reagents.add_reagent("inaprovaline", 10) + reagents.add_reagent("inaprovaline", 5) if(mode == 3 && reagents.total_volume < 30) R.cell.use(charge_cost) - reagents.add_reagent("spaceacillin", 10) + reagents.add_reagent("spaceacillin", 5) //update_icon() return 1 @@ -1402,16 +1404,19 @@ playsound(src.loc, 'pop.ogg', 50, 0) //Change the mode if(mode == 1) mode = 2 + charge_tick = 0 //Prevents wasted chems/cell charge if you're cycling through modes. reagents.clear_reagents() //Flushes whatever was in the storage previously, so you don't get chems all mixed up. user << "\blue Synthesizer is now producing 'Inaprovaline'." return if(mode == 2) mode = 3 + charge_tick = 0 reagents.clear_reagents() user << "\blue Synthesizer is now producing 'Spaceacillin'." return if(mode == 3) mode = 1 + charge_tick = 0 reagents.clear_reagents() user << "\blue Synthesizer is now producing 'Tricordrazine'." return diff --git a/code/modules/clothing/ears.dm b/code/modules/clothing/ears.dm index 05493ff2e10..25c12fd946a 100644 --- a/code/modules/clothing/ears.dm +++ b/code/modules/clothing/ears.dm @@ -4,6 +4,7 @@ name = "ears" w_class = 1.0 throwforce = 2 + slot_flags = SLOT_EARS var/twoeared = 0 /obj/item/clothing/ears/attack_hand(mob/user as mob) diff --git a/code/modules/clothing/gimmick.dm b/code/modules/clothing/gimmick.dm index 27e5f8579de..0d250a587dd 100644 --- a/code/modules/clothing/gimmick.dm +++ b/code/modules/clothing/gimmick.dm @@ -296,7 +296,8 @@ icon = 'weapons.dmi' icon_state = "baton" item_state = "classic_baton" - flags = FPRINT | ONBELT | TABLEPASS + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT force = 10 /obj/item/clothing/under/pirate diff --git a/code/modules/clothing/glasses.dm b/code/modules/clothing/glasses.dm index b1527b20878..40f5794b05c 100644 --- a/code/modules/clothing/glasses.dm +++ b/code/modules/clothing/glasses.dm @@ -5,6 +5,7 @@ icon = 'glasses.dmi' w_class = 2.0 flags = GLASSESCOVERSEYES + slot_flags = SLOT_EYES var/vision_flags = 0 var/darkness_view = 0//Base human is 2 var/invisa_view = 0 diff --git a/code/modules/clothing/gloves.dm b/code/modules/clothing/gloves.dm index e2192512d43..670802d16e1 100644 --- a/code/modules/clothing/gloves.dm +++ b/code/modules/clothing/gloves.dm @@ -12,6 +12,7 @@ var/wired = 0 var/obj/item/weapon/cell/cell = 0 body_parts_covered = HANDS + slot_flags = SLOT_GLOVES /obj/item/clothing/gloves/boxing diff --git a/code/modules/clothing/head/hats.dm b/code/modules/clothing/head/hats.dm index ca94d809f95..8f3e4aaafe2 100644 --- a/code/modules/clothing/head/hats.dm +++ b/code/modules/clothing/head/hats.dm @@ -3,7 +3,7 @@ name = "head" icon = 'hats.dmi' body_parts_covered = HEAD - var/list/allowed = list() + slot_flags = SLOT_HEAD /obj/item/clothing/head/cakehat name = "cake-hat" @@ -83,8 +83,24 @@ icon_state = "beret" flags = FPRINT | TABLEPASS +/obj/item/clothing/head/chaplain_hood + name = "chaplain's hood" + desc = "It's hood that covers the head. It keeps you warm during the space winters." + icon_state = "chaplain_hood" + flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES|BLOCKHAIR + +/obj/item/clothing/head/hasturhood + name = "hastur's hood" + desc = "It's unspeakably stylish" + icon_state = "hasturhood" + flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES|BLOCKHAIR + +/obj/item/clothing/head/nursehat + name = "nurse's hat" + desc = "It allows quick identification of trained medical personnel." + icon_state = "nursehat" + flags = FPRINT|TABLEPASS -// CHUMP HELMETS: COOKING THEM DESTROYS THE CHUMP HELMET SPAWN. /obj/item/clothing/head/helmet/cueball name = "cueball helmet" @@ -109,6 +125,8 @@ item_state = "helmet" var/flipped = 0 + +// CHUMP HELMETS: COOKING THEM DESTROYS THE CHUMP HELMET SPAWN. /obj/item/clothing/head/syndicatefake name = "red space-helmet replica" desc = "A plastic replica of a red space space helmet. This is a toy, it is not made for use in space!" @@ -118,24 +136,6 @@ flags = FPRINT | TABLEPASS | BLOCKHAIR flags_inv = HIDEMASK|HIDEEARS|HIDEEYES -/obj/item/clothing/head/chaplain_hood - name = "chaplain's hood" - desc = "It's hood that covers the head. It keeps you warm during the space winters." - icon_state = "chaplain_hood" - flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES|BLOCKHAIR - -/obj/item/clothing/head/hasturhood - name = "hastur's hood" - desc = "It's unspeakably stylish" - icon_state = "hasturhood" - flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES|BLOCKHAIR - -/obj/item/clothing/head/nursehat - name = "nurse's hat" - desc = "It allows quick identification of trained medical personnel." - icon_state = "nursehat" - flags = FPRINT|TABLEPASS - /obj/item/clothing/head/helmet/cardborg name = "cardborg helmet" desc = "A helmet made out of a box." diff --git a/code/modules/clothing/jumpsuit.dm b/code/modules/clothing/jumpsuit.dm index 52cd992c82a..97f58f0605e 100644 --- a/code/modules/clothing/jumpsuit.dm +++ b/code/modules/clothing/jumpsuit.dm @@ -8,6 +8,7 @@ heat_transfer_coefficient = 0.30 permeability_coefficient = 0.90 flags = FPRINT | TABLEPASS + slot_flags = SLOT_ICLOTHING var/has_sensor = 1//For the crew computer 2 = unable to change mode var/sensor_mode = 0 /* diff --git a/code/modules/clothing/mask.dm b/code/modules/clothing/mask.dm index 1a8fc6d83b4..22180af9dbe 100644 --- a/code/modules/clothing/mask.dm +++ b/code/modules/clothing/mask.dm @@ -73,6 +73,7 @@ desc = "A face-covering mask that can be connected to an air supply." icon_state = "gas_alt" flags = FPRINT|TABLEPASS|SUITSPACE|MASKCOVERSMOUTH|MASKCOVERSEYES + flags_inv = HIDEEARS|HIDEEYES w_class = 3.0 see_face = 0.0 item_state = "gas_alt" diff --git a/code/modules/clothing/shoes.dm b/code/modules/clothing/shoes.dm index 6e0a4a8d683..493cf794cb2 100644 --- a/code/modules/clothing/shoes.dm +++ b/code/modules/clothing/shoes.dm @@ -5,6 +5,7 @@ gender = PLURAL //Carn: for grammarically correct text-parsing body_parts_covered = FEET + slot_flags = SLOT_FEET protective_temperature = 500 heat_transfer_coefficient = 0.10 diff --git a/code/modules/clothing/spacesuits/engineer.dm b/code/modules/clothing/spacesuits/engineer.dm new file mode 100644 index 00000000000..5ede859031e --- /dev/null +++ b/code/modules/clothing/spacesuits/engineer.dm @@ -0,0 +1,37 @@ +/obj/item/clothing/head/helmet/space/engineer + name = "environment suit helmet" + desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding and a visor that can be toggled on and off." + flags = FPRINT | TABLEPASS | HEADSPACE | HEADCOVERSEYES + see_face = 0.0 + flags_inv = HIDEEARS + icon_state = "engspace_helmet" + item_state = "engspace_helmet" + protective_temperature = 5000 + armor = list(melee = 20, bullet = 5, laser = 10,energy = 5, bomb = 15, bio = 100, rad = 75) + var/up = 0 + +/obj/item/clothing/head/helmet/space/engineer/ce + name = "chief engineer's environment suit helmet" + desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding and a visor that can be toggled on and off." + icon_state = "cespace_helmet" + item_state = "cespace_helmet" + +/obj/item/clothing/suit/space/engineer + name = "environment suit" + desc = "An environment suit that protects against hazardous, low pressure environments. Has radiation shielding." + icon_state = "engspace_suit" + item_state = "engspace_suit" + protective_temperature = 5000 //For not dieing near a fire, but still not being great in a full inferno + slowdown = 2 + armor = list(melee = 20, bullet = 5, laser = 10,energy = 5, bomb = 15, bio = 100, rad = 75) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank, /obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/crowbar, \ + /obj/item/weapon/screwdriver, /obj/item/weapon/weldingtool, /obj/item/weapon/wirecutters, /obj/item/weapon/wrench, /obj/item/device/multitool, \ + /obj/item/device/radio, /obj/item/device/analyzer) + //yes, you can fit everything and your dog in it. + //i figure this might mitigate some of the inevitable bitching about it being a downgrade from the rig. + +/obj/item/clothing/suit/space/engineer/ce + name = "chief engineer's environment suit" + desc = "An environment suit that protects against hazardous, low pressure environments. Has radiation shielding and Chief Engineer colours." + icon_state = "cespace_suit" + item_state = "cespace_suit" \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/rig.dm b/code/modules/clothing/spacesuits/rig.dm index 0aa74b947b5..c37bcf0ed34 100644 --- a/code/modules/clothing/spacesuits/rig.dm +++ b/code/modules/clothing/spacesuits/rig.dm @@ -15,29 +15,12 @@ item_state = "rig0-mining" color = "mining" - /obj/item/clothing/head/helmet/space/rig/elite name = "advanced RIG helmet" icon_state = "rig0-white" item_state = "rig0-white" color = "white" -/obj/item/clothing/head/helmet/space/rig/engspace_helmet - name = "engineering space helmet" - desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding and a visor that can be toggled on and off." - icon_state = "engspace_helmet" - item_state = "engspace_helmet" - see_face = 0.0 - var/up = 0 - -/obj/item/clothing/head/helmet/space/rig/cespace_helmet - name = "chief engineer's space helmet" - desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding and a visor that can be toggled on and off." - icon_state = "cespace_helmet" - item_state = "cespace_helmet" - see_face = 0.0 - var/up = 0 - /obj/item/clothing/head/helmet/space/rig/security name = "security RIG helmet" icon_state = "rig0-security" @@ -63,18 +46,6 @@ name = "advanced RIG suit" protective_temperature = 10000 -/obj/item/clothing/suit/space/rig/engspace_suit - name = "engineering space suit" - icon_state = "engspace_suit" - item_state = "engspace_suit" - -/obj/item/clothing/suit/space/rig/cespace_suit - name = "chief engineer's space suit" - desc = "A special suit that protects against hazardous, low pressure environments. Has radiation and fire shielding, and Chief Engineer colours." - icon_state = "cespace_suit" - item_state = "cespace_suit" - protective_temperature = 10000 - /obj/item/clothing/suit/space/rig/security name = "security RIG suit" desc = "A suit specially designed for security to offer minor protection from environmental hazards, and greater protection from human hazards" diff --git a/code/modules/clothing/suit.dm b/code/modules/clothing/suit.dm index 55f1cbaaa84..8156dc337d8 100644 --- a/code/modules/clothing/suit.dm +++ b/code/modules/clothing/suit.dm @@ -3,5 +3,6 @@ name = "suit" var/fire_resist = T0C+100 flags = FPRINT | TABLEPASS - var/list/allowed = list(/obj/item/weapon/tank/emergency_oxygen) + allowed = list(/obj/item/weapon/tank/emergency_oxygen) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + slot_flags = SLOT_OCLOTHING diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 8750adbc0c0..ee260eeecbe 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -37,14 +37,14 @@ mob/living/carbon/proc/handle_hallucinations() //src << "Traitor Items" if(!halitem) halitem = new - var/list/slots_free = list("1,1","3,1") - if(l_hand) slots_free -= "1,1" - if(r_hand) slots_free -= "3,1" + var/list/slots_free = list(ui_lhand,ui_rhand) + if(l_hand) slots_free -= ui_lhand + if(r_hand) slots_free -= ui_rhand if(istype(src,/mob/living/carbon/human)) var/mob/living/carbon/human/H = src - if(!H.belt) slots_free += "3,0" - if(!H.l_store) slots_free += "4,0" - if(!H.r_store) slots_free += "5,0" + if(!H.belt) slots_free += ui_belt + if(!H.l_store) slots_free += ui_storage1 + if(!H.r_store) slots_free += ui_storage2 if(slots_free.len) halitem.screen_loc = pick(slots_free) halitem.layer = 50 diff --git a/code/modules/food/food.dm b/code/modules/food/food.dm index 4baee5736aa..bde691e6e43 100644 --- a/code/modules/food/food.dm +++ b/code/modules/food/food.dm @@ -1096,7 +1096,7 @@ reagents.add_reagent("nutriment",12) afterattack(obj/O as obj, mob/user as mob) - if(istype(O,/obj/machinery/sink) && !wrapped) + if(istype(O,/obj/structure/sink) && !wrapped) user << "You place [name] under a stream of water..." loc = get_turf(O) return Expand() diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 9b4425c396a..ec578027f4b 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -154,7 +154,8 @@ proc/move_mining_shuttle() name = "Miner's pickaxe" icon = 'items.dmi' icon_state = "pickaxe" - flags = FPRINT | TABLEPASS| CONDUCT | ONBELT + flags = FPRINT | TABLEPASS| CONDUCT + slot_flags = SLOT_BELT force = 15.0 throwforce = 4.0 item_state = "pickaxe" @@ -238,7 +239,8 @@ proc/move_mining_shuttle() name = "Shovel" icon = 'items.dmi' icon_state = "shovel" - flags = FPRINT | TABLEPASS| CONDUCT | ONBELT + flags = FPRINT | TABLEPASS| CONDUCT + slot_flags = SLOT_BELT force = 8.0 throwforce = 4.0 item_state = "shovel" diff --git a/code/modules/mining/satchel_ore_box.dm b/code/modules/mining/satchel_ore_box.dm index 581b97a6848..75c99097c54 100644 --- a/code/modules/mining/satchel_ore_box.dm +++ b/code/modules/mining/satchel_ore_box.dm @@ -6,7 +6,8 @@ name = "Mining Satchel" var/mode = 1; //0 = pick one at a time, 1 = pick all on tile var/capacity = 50; //the number of ore pieces it can carry. - flags = FPRINT | TABLEPASS | ONBELT + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT w_class = 1 /obj/item/weapon/satchel/attack_self(mob/user as mob) diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index ebd92e8a867..397b68839a5 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -601,11 +601,12 @@ ..() - if(M.gloves) - if(M.gloves.cell) + if(M.gloves && istype(M.gloves,/obj/item/clothing/gloves)) + var/obj/item/clothing/gloves/G = M.gloves + if(G.cell) if(M.a_intent == "hurt")//Stungloves. Any contact will stun the alien. - if(M.gloves.cell.charge >= 2500) - M.gloves.cell.charge -= 2500 + if(G.cell.charge >= 2500) + G.cell.charge -= 2500 Weaken(5) if (stuttering < 5) diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index f2825bde7a6..76406ea8a87 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -367,11 +367,12 @@ ..() - if(M.gloves) - if(M.gloves.cell) + if(M.gloves && istype(M.gloves,/obj/item/clothing/gloves)) + var/obj/item/clothing/gloves/G = M.gloves + if(G.cell) if(M.a_intent == "hurt")//Stungloves. Any contact will stun the alien. - if(M.gloves.cell.charge >= 2500) - M.gloves.cell.charge -= 2500 + if(G.cell.charge >= 2500) + G.cell.charge -= 2500 Weaken(5) if (stuttering < 5) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 592346e86c0..27cd8e12686 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -27,19 +27,19 @@ var/list/skills = null // var/b_type - var/obj/item/clothing/suit/wear_suit = null - var/obj/item/clothing/under/w_uniform = null - var/obj/item/clothing/shoes/shoes = null - var/obj/item/weapon/belt = null - var/obj/item/clothing/gloves/gloves = null - var/obj/item/clothing/glasses/glasses = null - var/obj/item/clothing/head/head = null - var/obj/item/clothing/ears/l_ear = null - var/obj/item/clothing/ears/r_ear = null + var/obj/item/wear_suit = null + var/obj/item/w_uniform = null + var/obj/item/shoes = null + var/obj/item/belt = null + var/obj/item/gloves = null + var/obj/item/glasses = null + var/obj/item/head = null + var/obj/item/l_ear = null + var/obj/item/r_ear = null var/obj/item/weapon/card/id/wear_id = null - var/obj/item/weapon/r_store = null - var/obj/item/weapon/l_store = null - var/obj/item/weapon/s_store = null + var/obj/item/r_store = null + var/obj/item/l_store = null + var/obj/item/s_store = null var/icon/stand_icon = null var/icon/lying_icon = null @@ -553,7 +553,7 @@ return if (!istype(W, /obj/item)) return - if (!( W.flags & ONBACK )) + if (!( W.slot_flags & SLOT_BACK )) return if(istype(W,/obj/item/weapon/twohanded) && W:wielded) usr << "Unwield the [initial(W.name)] first!" @@ -577,7 +577,10 @@ if (emptyHand) wear_suit.DblClick() return - if (!( istype(W, /obj/item/clothing/suit) )) + if (!istype(W, /obj/item)) + return + if (!( W.slot_flags & SLOT_OCLOTHING )) + return return u_equip(W) wear_suit = W @@ -587,7 +590,9 @@ if (emptyHand) gloves.DblClick() return - if (!( istype(W, /obj/item/clothing/gloves) )) + if (!istype(W, /obj/item)) + return + if (!( W.slot_flags & SLOT_GLOVES )) return u_equip(W) gloves = W @@ -597,7 +602,9 @@ if (emptyHand) shoes.DblClick() return - if (!( istype(W, /obj/item/clothing/shoes) )) + if (!istype(W, /obj/item)) + return + if (!( W.slot_flags & SLOT_FEET )) return u_equip(W) shoes = W @@ -607,7 +614,9 @@ if (emptyHand) belt.DblClick() return - if (!W || !W.flags || !( W.flags & ONBELT )) + if (!istype(W, /obj/item)) + return + if (!( W.slot_flags & SLOT_BELT )) return u_equip(W) belt = W @@ -617,7 +626,9 @@ if (emptyHand) glasses.DblClick() return - if (!( istype(W, /obj/item/clothing/glasses) )) + if (!istype(W, /obj/item)) + return + if (!( W.slot_flags & SLOT_EYES )) return u_equip(W) glasses = W @@ -627,10 +638,9 @@ if (emptyHand) head.DblClick() return - if (( istype(W, /obj/item/weapon/paper) )) - u_equip(W) - head = W - else if (!( istype(W, /obj/item/clothing/head) )) + if (!istype(W, /obj/item)) + return + if (!( W.slot_flags & SLOT_HEAD )) return u_equip(W) head = W @@ -682,7 +692,10 @@ if (emptyHand) w_uniform.DblClick() return - if (!( istype(W, /obj/item/clothing/under) )) + if (!istype(W, /obj/item)) + return + if (!( W.slot_flags & SLOT_ICLOTHING )) + return return u_equip(W) w_uniform = W @@ -694,7 +707,9 @@ return if (!w_uniform) return - if (!istype(W, /obj/item/weapon/card/id) && !istype(W, /obj/item/device/pda) ) + if (!istype(W, /obj/item)) + return + if (!( W.slot_flags & SLOT_ID )) return u_equip(W) wear_id = W @@ -704,19 +719,25 @@ if (emptyHand) l_store.DblClick() return - if ((!( istype(W, /obj/item) ) || W.w_class > 2 || !( w_uniform ))) + if (!istype(W, /obj/item)) return - u_equip(W) - l_store = W + if ( ( W.slot_flags & SLOT_DENYPOCKET ) ) + return + if ( W.w_class <= 2 || ( W.slot_flags & SLOT_POCKET ) ) + u_equip(W) + l_store = W if("storage2") if (r_store) if (emptyHand) r_store.DblClick() return - if ((!( istype(W, /obj/item) ) || W.w_class > 2 || !( w_uniform ))) + if (!istype(W, /obj/item)) return - u_equip(W) - r_store = W + if ( ( W.slot_flags & SLOT_DENYPOCKET ) ) + return + if ( W.w_class <= 2 || ( W.slot_flags & SLOT_POCKET ) ) + u_equip(W) + r_store = W if("suit storage") if (s_store) if (emptyHand) diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 51ed7966208..b5ced7ef8bb 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -9,11 +9,13 @@ visible_message("\red [M] attempted to touch [src]!") return 0 - if(M.gloves) - if(M.gloves.cell) - if(M.a_intent == "hurt") - if(M.gloves.cell.charge >= 2500) - M.gloves.cell.charge -= 2500 + + if(M.gloves && istype(M.gloves,/obj/item/clothing/gloves)) + var/obj/item/clothing/gloves/G = M.gloves + if(G.cell) + if(M.a_intent == "hurt")//Stungloves. Any contact will stun the alien. + if(G.cell.charge >= 2500) + G.cell.charge -= 2500 visible_message("\red [src] has been touched with the stun gloves by [M]!") M.attack_log += text("\[[time_stamp()]\] Stungloved [src.name] ([src.ckey])") src.attack_log += text("\[[time_stamp()]\] Has been stungloved by [M.name] ([M.ckey])") diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 83aa059fb88..0f3eaa3e508 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -153,10 +153,11 @@ emp_act if(H.wear_suit) H.wear_suit.add_blood(src) else if(H.w_uniform) H.w_uniform.add_blood(src) if(H.shoes) H.shoes.add_blood(src) - if (H.gloves) - H.gloves.add_blood(H) - H.gloves.transfer_blood = 2 - H.gloves.bloody_hands_mob = H + if (H.gloves && istype(H.gloves,/obj/item/clothing/gloves)) + var/obj/item/clothing/gloves/G = H.gloves + G.add_blood(H) + G.transfer_blood = 2 + G.bloody_hands_mob = H else H.add_blood(H) H.bloody_hands = 2 @@ -197,4 +198,4 @@ emp_act if(src.wear_suit) src.wear_suit.add_blood(src) if(src.w_uniform) src.w_uniform.add_blood(src) - UpdateDamageIcon() \ No newline at end of file + UpdateDamageIcon() diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index e3508d6b950..471d28eaf0b 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1348,8 +1348,20 @@ else blind.layer = 0 - if ((disabilities & 1 && ((glasses && !glasses.prescription) || !glasses)) || (glasses && glasses.prescription && !(disabilities & 1))) - client.screen += hud_used.vimpaired + if(disabilities & 1) + if(!glasses) + client.screen += hud_used.vimpaired + else if (glasses && istype(glasses,/obj/item/clothing/glasses)) + var/obj/item/clothing/glasses/G = glasses + if(!G.prescription) + client.screen += hud_used.vimpaired + else + client.screen += hud_used.vimpaired + else + if(glasses && istype(glasses,/obj/item/clothing/glasses)) + var/obj/item/clothing/glasses/G = glasses + if(G.prescription) + client.screen += hud_used.vimpaired if (eye_blurry) client.screen += hud_used.blurry diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm index 3e4a0c3b0b4..fc3ff215c6d 100644 --- a/code/modules/mob/living/carbon/metroid/metroid.dm +++ b/code/modules/mob/living/carbon/metroid/metroid.dm @@ -384,7 +384,7 @@ for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) O.show_message(text("\red [M.name] has bit [src]!"), 1) - bruteloss += rand(1, 3) + adjustBruteLoss(rand(1, 3)) updatehealth() return @@ -463,11 +463,13 @@ - if(M.gloves) - if(M.gloves.cell) + + if(M.gloves && istype(M.gloves,/obj/item/clothing/gloves)) + var/obj/item/clothing/gloves/G = M.gloves + if(G.cell) if(M.a_intent == "hurt")//Stungloves. Any contact will stun the alien. - if(M.gloves.cell.charge >= 2500) - M.gloves.cell.charge -= 2500 + if(G.cell.charge >= 2500) + G.cell.charge -= 2500 for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) O.show_message("\red [src] has been touched with the stun gloves by [M]!", 1, "\red You hear someone fall.", 2) diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 6ac4b83c0b4..f97a0aa2ef1 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -210,11 +210,13 @@ if (istype(loc, /turf) && istype(loc.loc, /area/start)) M << "No attacking people at spawn, you jackass." return - if(M.gloves) - if(M.gloves.cell) - if(M.a_intent == "hurt") - if(M.gloves.cell.charge >= 2500) - M.gloves.cell.charge -= 2500 + + if(M.gloves && istype(M.gloves,/obj/item/clothing/gloves)) + var/obj/item/clothing/gloves/G = M.gloves + if(G.cell) + if(M.a_intent == "hurt")//Stungloves. Any contact will stun the alien. + if(G.cell.charge >= 2500) + G.cell.charge -= 2500 Weaken(5) if (stuttering < 5) stuttering = 5 diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 382a03930ce..19d219ac77a 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -7,6 +7,7 @@ w_class = 100.0 item_state = "electronic" flags = FPRINT|TABLEPASS | CONDUCT + var/list/modules = list() var/obj/item/emag = null var/obj/item/borg/upgrade/jetpack = null @@ -60,12 +61,12 @@ ..() src.modules += new /obj/item/borg/sight/hud/med(src) src.modules += new /obj/item/device/healthanalyzer(src) - src.modules += new /obj/item/weapon/reagent_containers/borghypo + src.modules += new /obj/item/weapon/reagent_containers/borghypo(src) src.modules += new /obj/item/weapon/reagent_containers/glass/large(src) src.modules += new /obj/item/weapon/reagent_containers/robodropper(src) - src.modules += new /obj/item/weapon/reagent_containers/syringe - src.modules += new /obj/item/weapon/extinguisher/mini - src.emag = new /obj/item/weapon/circular_saw + src.modules += new /obj/item/weapon/reagent_containers/syringe(src) + src.modules += new /obj/item/weapon/extinguisher/mini(src) + src.emag = new /obj/item/weapon/circular_saw(src) return @@ -143,8 +144,8 @@ New() ..() src.modules += new /obj/item/weapon/soap/nanotrasen(src) - src.modules += new /obj/item/weapon/trashbag - src.modules += new/obj/item/weapon/mop + src.modules += new /obj/item/weapon/trashbag(src) + src.modules += new/obj/item/weapon/mop(src) src.emag = new /obj/item/weapon/cleaner(src) var/datum/reagents/R = new/datum/reagents(1000) diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm index 5a469ee25e9..c56e123ebdb 100644 --- a/code/modules/paperwork/clipboard.dm +++ b/code/modules/paperwork/clipboard.dm @@ -9,7 +9,8 @@ throw_range = 10 var/obj/item/weapon/pen/haspen //The stored pen. var/obj/item/weapon/paper/toppaper //The topmost piece of paper. - flags = FPRINT | TABLEPASS | ONBELT + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT pressure_resistance = 10 /obj/item/weapon/clipboard/New() diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 7455c7ad675..fac0cc5a842 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -11,278 +11,277 @@ throw_range = 15 layer = 4 pressure_resistance = 1 + slot_flags = SLOT_HEAD + see_face = 1 + body_parts_covered = HEAD + protective_temperature = 0 var/info //What's actually written on the paper. var/info_links //A different version of the paper which includes html links at fields and EOF var/stamps //The (text for the) stamps on the paper. var/fields //Amount of user created fields var/list/stamped - var/see_face = 1 - var/body_parts_covered = HEAD - var/protective_temperature = 0 var/rigged = 0 var/spam_flag = 0 - const/ar/deffont = "Verdana" - const/ar/signfont = "Times New Roman" - const/ar/crayonfont = "Comic Sans MS" + var/const/deffont = "Verdana" + var/const/signfont = "Times New Roman" + var/const/crayonfont = "Comic Sans MS" - New() - ..() - src.pixel_y = rand(-8, 8) - src.pixel_x = rand(-9, 9) - spawn(2) - if(src.info) - src.overlays += "paper_words" - updateinfolinks() - return - - update_icon() +/obj/item/weapon/paper/New() + ..() + src.pixel_y = rand(-8, 8) + src.pixel_x = rand(-9, 9) + spawn(2) if(src.info) src.overlays += "paper_words" - return - - examine() - set src in oview(1) - - // ..() //We don't want them to see the dumb "this is a paper" thing every time. - if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon))) - usr << browse("[name][stars(info)][stamps]", "window=[name]") - onclose(usr, "[name]") - else - usr << browse("[name][info][stamps]", "window=[name]") - onclose(usr, "[name]") - return - - verb/rename() - set name = "Rename paper" - set category = "Object" - set src in usr - - if ((usr.mutations & CLUMSY) && prob(50)) - usr << "\red You cut yourself on the paper." - return - var/n_name = copytext(sanitize(input(usr, "What would you like to label the paper?", "Paper Labelling", null) as text),1,MAX_NAME_LEN) - n_name = copytext(n_name, 1, 32) - if ((loc == usr && usr.stat == 0)) - name = "paper[(n_name ? text("- '[n_name]'") : null)]" - add_fingerprint(usr) - return - - attack_self(mob/living/user as mob) - examine() - if(rigged && (Holiday == "April Fool's Day")) - if(spam_flag == 0) - spam_flag = 1 - playsound(src.loc, 'bikehorn.ogg', 50, 1) - spawn(20) - spam_flag = 0 - return - - attack_ai(var/mob/living/silicon/ai/user as mob) - var/dist - if (istype(user) && user.current) //is AI - dist = get_dist(src, user.current) - else //cyborg or AI not seeing through a camera - dist = get_dist(src, user) - if (dist < 2) - usr << browse("[name][info][stamps]", "window=[name]") - onclose(usr, "[name]") - else - usr << browse("[name][stars(info)][stamps]", "window=[name]") - onclose(usr, "[name]") - return - - proc - addtofield(var/id, var/text, var/links = 0) - var/locid = 0 - var/laststart = 1 - var/textindex = 1 - while(1) // I know this can cause infinite loops and fuck up the whole server, but the if(istart==0) should be safe as fuck - var/istart = 0 - if(links) - istart = findtext(info_links, "", laststart) - else - istart = findtext(info, "", laststart) - - if(istart==0) - return // No field found with matching id - - laststart = istart+1 - locid++ - if(locid == id) - var/iend = 1 - if(links) - iend = findtext(info_links, "", istart) - else - iend = findtext(info, "", istart) - - //textindex = istart+26 - textindex = iend - break - - if(links) - var/before = copytext(info_links, 1, textindex) - var/after = copytext(info_links, textindex) - info_links = before + text + after - else - var/before = copytext(info, 1, textindex) - var/after = copytext(info, textindex) - info = before + text + after - updateinfolinks() - updateinfolinks() - info_links = info - var/i = 0 - for(i=1,i<=fields,i++) - addtofield(i, "write", 1) - info_links = info_links + "write" - - parsepencode(var/t, var/obj/item/weapon/pen/P, mob/user as mob, var/iscrayon = 0) - t = copytext(sanitize(t),1,MAX_MESSAGE_LEN) - - t = dd_replacetext(t, "\[center\]", "
") - t = dd_replacetext(t, "\[/center\]", "
") - t = dd_replacetext(t, "\[br\]", "
") - t = dd_replacetext(t, "\[b\]", "") - t = dd_replacetext(t, "\[/b\]", "") - t = dd_replacetext(t, "\[i\]", "") - t = dd_replacetext(t, "\[/i\]", "") - t = dd_replacetext(t, "\[u\]", "") - t = dd_replacetext(t, "\[/u\]", "") - t = dd_replacetext(t, "\[large\]", "") - t = dd_replacetext(t, "\[/large\]", "") - t = dd_replacetext(t, "\[sign\]", "[user.real_name]") - t = dd_replacetext(t, "\[field\]", "") - - if(!iscrayon) - t = dd_replacetext(t, "\[*\]", "
  • ") - t = dd_replacetext(t, "\[hr\]", "
    ") - t = dd_replacetext(t, "\[small\]", "") - t = dd_replacetext(t, "\[/small\]", "") - t = dd_replacetext(t, "\[list\]", "
      ") - t = dd_replacetext(t, "\[/list\]", "
    ") - - t = "[t]" - else // If it is a crayon, and he still tries to use these, make them empty! - t = dd_replacetext(t, "\[*\]", "") - t = dd_replacetext(t, "\[hr\]", "") - t = dd_replacetext(t, "\[small\]", "") - t = dd_replacetext(t, "\[/small\]", "") - t = dd_replacetext(t, "\[list\]", "") - t = dd_replacetext(t, "\[/list\]", "") - - t = "[t]" - - //Count the fields - var/laststart = 1 - while(1) - var/i = findtext(t, "", laststart) - if(i==0) - break - laststart = i+1 - fields++ - - return t - - openhelp(mob/user as mob) - user << browse({"Pen Help - -
    Crayon&Pen commands

    -
    - \[br\] : Creates a linebreak.
    - \[center\] - \[/center\] : Centers the text.
    - \[b\] - \[/b\] : Makes the text bold.
    - \[i\] - \[/i\] : Makes the text italic.
    - \[u\] - \[/u\] : Makes the text underlined.
    - \[large\] - \[/large\] : Increases the size of the text.
    - \[sign\] : Inserts a signature of your name in a foolproof way.
    - \[field\] : Inserts an invisible field which lets you start type from there. Useful for forms.
    -
    -
    Pen exclusive commands

    - \[small\] - \[/small\] : Decreases the size of the text.
    - \[list\] - \[/list\] : A list.
    - \[*\] : A dot used for lists.
    - \[hr\] : Adds a horizontal rule. - "}, "window=paper_help") - - - Topic(href, href_list) - ..() - if ((usr.stat || usr.restrained())) - return - - if(href_list["write"]) - var/id = href_list["write"] - var/t = strip_html_simple(input(usr, "What text do you wish to add to " + (id=="end" ? "the end of the paper" : "field "+id) + "?", "[name]", null),8192) as text - - var/obj/item/i = usr.equipped() // Check to see if he still got that darn pen, also check if he's using a crayon or pen. - var/iscrayon = 0 - if(!istype(i, /obj/item/weapon/pen)) - if(!istype(i, /obj/item/toy/crayon)) - return - iscrayon = 1 - - - if ((!in_range(src, usr) && src.loc != usr && !( istype(src.loc, /obj/item/weapon/clipboard) ) && src.loc.loc != usr && usr.equipped() != i)) // Some check to see if he's allowed to write - return - - t = parsepencode(t, i, usr, iscrayon) // Encode everything from pencode to html - - if(id!="end") - addtofield(text2num(id), t) // He wants to edit a field, let him. - else - info += t // Oh, he wants to edit to the end of the file, let him. - updateinfolinks() - - usr << browse("[name][info_links][stamps]", "window=[name]") // Update the window - - if(!overlays.Find("paper_words")) - overlays += "paper_words" - - attackby(obj/item/weapon/P as obj, mob/user as mob) - ..() - var/clown = 0 - if(user.mind && (user.mind.assigned_role == "Clown")) - clown = 1 - - if (istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon)) - usr << browse("[name][info_links][stamps]", "window=[name]") - //openhelp(user) - return - else if(istype(P, /obj/item/weapon/stamp)) - if ((!in_range(src, usr) && src.loc != user && !( istype(src.loc, /obj/item/weapon/clipboard) ) && src.loc.loc != user && user.equipped() != P)) - return - - stamps += (stamps=="" ? "
    " : "
    ") + "This paper has been stamped with the [P.name]." - - switch(P.type) - if(/obj/item/weapon/stamp/captain) - overlays += "paper_stamped_cap" - if(/obj/item/weapon/stamp/hop) - overlays += "paper_stamped_hop" - if(/obj/item/weapon/stamp/hos) - overlays += "paper_stamped_hos" - if(/obj/item/weapon/stamp/ce) - overlays += "paper_stamped_ce" - if(/obj/item/weapon/stamp/rd) - overlays += "paper_stamped_rd" - if(/obj/item/weapon/stamp/cmo) - overlays += "paper_stamped_cmo" - if(/obj/item/weapon/stamp/denied) - overlays += "paper_stamped_denied" - if(/obj/item/weapon/stamp/clown) - if (!clown) - usr << "\red You are totally unable to use the stamp. HONK!" - return - else - overlays += "paper_stamped_clown" - else - overlays += "paper_stamped" - if(!stamped) - stamped = new - stamped += P.type - - user << "\blue You stamp the paper with your rubber stamp." - add_fingerprint(user) return + +/obj/item/weapon/paper/update_icon() + if(src.info) + src.overlays += "paper_words" + return + +/obj/item/weapon/paper/examine() + set src in oview(1) + +// ..() //We don't want them to see the dumb "this is a paper" thing every time. + if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon))) + usr << browse("[name][stars(info)][stamps]", "window=[name]") + onclose(usr, "[name]") + else + usr << browse("[name][info][stamps]", "window=[name]") + onclose(usr, "[name]") + return + +/obj/item/weapon/paper/verb/rename() + set name = "Rename paper" + set category = "Object" + set src in usr + + if ((usr.mutations & CLUMSY) && prob(50)) + usr << "\red You cut yourself on the paper." + return + var/n_name = copytext(sanitize(input(usr, "What would you like to label the paper?", "Paper Labelling", null) as text),1,MAX_NAME_LEN) + if ((loc == usr && usr.stat == 0)) + name = "paper[(n_name ? text("- '[n_name]'") : null)]" + add_fingerprint(usr) + return + +/obj/item/weapon/paper/attack_self(mob/living/user as mob) + examine() + if(rigged && (Holiday == "April Fool's Day")) + if(spam_flag == 0) + spam_flag = 1 + playsound(src.loc, 'bikehorn.ogg', 50, 1) + spawn(20) + spam_flag = 0 + return + +/obj/item/weapon/paper/attack_ai(var/mob/living/silicon/ai/user as mob) + var/dist + if (istype(user) && user.current) //is AI + dist = get_dist(src, user.current) + else //cyborg or AI not seeing through a camera + dist = get_dist(src, user) + if (dist < 2) + usr << browse("[name][info][stamps]", "window=[name]") + onclose(usr, "[name]") + else + usr << browse("[name][stars(info)][stamps]", "window=[name]") + onclose(usr, "[name]") + return + +/obj/item/weapon/paper/proc/addtofield(var/id, var/text, var/links = 0) + var/locid = 0 + var/laststart = 1 + var/textindex = 1 + while(1) // I know this can cause infinite loops and fuck up the whole server, but the if(istart==0) should be safe as fuck + var/istart = 0 + if(links) + istart = findtext(info_links, "", laststart) + else + istart = findtext(info, "", laststart) + + if(istart==0) + return // No field found with matching id + + laststart = istart+1 + locid++ + if(locid == id) + var/iend = 1 + if(links) + iend = findtext(info_links, "", istart) + else + iend = findtext(info, "", istart) + + //textindex = istart+26 + textindex = iend + break + + if(links) + var/before = copytext(info_links, 1, textindex) + var/after = copytext(info_links, textindex) + info_links = before + text + after + else + var/before = copytext(info, 1, textindex) + var/after = copytext(info, textindex) + info = before + text + after + updateinfolinks() + +/obj/item/weapon/paper/proc/updateinfolinks() + info_links = info + var/i = 0 + for(i=1,i<=fields,i++) + addtofield(i, "write", 1) + info_links = info_links + "write" + +/obj/item/weapon/paper/proc/parsepencode(var/t, var/obj/item/weapon/pen/P, mob/user as mob, var/iscrayon = 0) + t = copytext(sanitize(t),1,MAX_MESSAGE_LEN) + + t = dd_replacetext(t, "\[center\]", "
    ") + t = dd_replacetext(t, "\[/center\]", "
    ") + t = dd_replacetext(t, "\[br\]", "
    ") + t = dd_replacetext(t, "\[b\]", "") + t = dd_replacetext(t, "\[/b\]", "") + t = dd_replacetext(t, "\[i\]", "") + t = dd_replacetext(t, "\[/i\]", "") + t = dd_replacetext(t, "\[u\]", "") + t = dd_replacetext(t, "\[/u\]", "") + t = dd_replacetext(t, "\[large\]", "") + t = dd_replacetext(t, "\[/large\]", "") + t = dd_replacetext(t, "\[sign\]", "[user.real_name]") + t = dd_replacetext(t, "\[field\]", "") + + if(!iscrayon) + t = dd_replacetext(t, "\[*\]", "
  • ") + t = dd_replacetext(t, "\[hr\]", "
    ") + t = dd_replacetext(t, "\[small\]", "") + t = dd_replacetext(t, "\[/small\]", "") + t = dd_replacetext(t, "\[list\]", "
      ") + t = dd_replacetext(t, "\[/list\]", "
    ") + + t = "[t]" + else // If it is a crayon, and he still tries to use these, make them empty! + t = dd_replacetext(t, "\[*\]", "") + t = dd_replacetext(t, "\[hr\]", "") + t = dd_replacetext(t, "\[small\]", "") + t = dd_replacetext(t, "\[/small\]", "") + t = dd_replacetext(t, "\[list\]", "") + t = dd_replacetext(t, "\[/list\]", "") + + t = "[t]" + + //Count the fields + var/laststart = 1 + while(1) + var/i = findtext(t, "", laststart) + if(i==0) + break + laststart = i+1 + fields++ + + return t + +/obj/item/weapon/paper/proc/openhelp(mob/user as mob) + user << browse({"Pen Help + +
    Crayon&Pen commands

    +
    + \[br\] : Creates a linebreak.
    + \[center\] - \[/center\] : Centers the text.
    + \[b\] - \[/b\] : Makes the text bold.
    + \[i\] - \[/i\] : Makes the text italic.
    + \[u\] - \[/u\] : Makes the text underlined.
    + \[large\] - \[/large\] : Increases the size of the text.
    + \[sign\] : Inserts a signature of your name in a foolproof way.
    + \[field\] : Inserts an invisible field which lets you start type from there. Useful for forms.
    +
    +
    Pen exclusive commands

    + \[small\] - \[/small\] : Decreases the size of the text.
    + \[list\] - \[/list\] : A list.
    + \[*\] : A dot used for lists.
    + \[hr\] : Adds a horizontal rule. + "}, "window=paper_help") + + +/obj/item/weapon/paper/Topic(href, href_list) + ..() + if ((usr.stat || usr.restrained())) + return + + if(href_list["write"]) + var/id = href_list["write"] + var/t = strip_html_simple(input(usr, "What text do you wish to add to " + (id=="end" ? "the end of the paper" : "field "+id) + "?", "[name]", null),8192) as text + + var/obj/item/i = usr.equipped() // Check to see if he still got that darn pen, also check if he's using a crayon or pen. + var/iscrayon = 0 + if(!istype(i, /obj/item/weapon/pen)) + if(!istype(i, /obj/item/toy/crayon)) + return + iscrayon = 1 + + + if ((!in_range(src, usr) && src.loc != usr && !( istype(src.loc, /obj/item/weapon/clipboard) ) && src.loc.loc != usr && usr.equipped() != i)) // Some check to see if he's allowed to write + return + + t = parsepencode(t, i, usr, iscrayon) // Encode everything from pencode to html + + if(id!="end") + addtofield(text2num(id), t) // He wants to edit a field, let him. + else + info += t // Oh, he wants to edit to the end of the file, let him. + updateinfolinks() + + usr << browse("[name][info_links][stamps]", "window=[name]") // Update the window + + if(!overlays.Find("paper_words")) + overlays += "paper_words" + +/obj/item/weapon/paper/attackby(obj/item/weapon/P as obj, mob/user as mob) + ..() + var/clown = 0 + if(user.mind && (user.mind.assigned_role == "Clown")) + clown = 1 + + if (istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon)) + usr << browse("[name][info_links][stamps]", "window=[name]") + //openhelp(user) + return + else if(istype(P, /obj/item/weapon/stamp)) + if ((!in_range(src, usr) && src.loc != user && !( istype(src.loc, /obj/item/weapon/clipboard) ) && src.loc.loc != user && user.equipped() != P)) + return + + stamps += (stamps=="" ? "
    " : "
    ") + "This paper has been stamped with the [P.name]." + + switch(P.type) + if(/obj/item/weapon/stamp/captain) + overlays += "paper_stamped_cap" + if(/obj/item/weapon/stamp/hop) + overlays += "paper_stamped_hop" + if(/obj/item/weapon/stamp/hos) + overlays += "paper_stamped_hos" + if(/obj/item/weapon/stamp/ce) + overlays += "paper_stamped_ce" + if(/obj/item/weapon/stamp/rd) + overlays += "paper_stamped_rd" + if(/obj/item/weapon/stamp/cmo) + overlays += "paper_stamped_cmo" + if(/obj/item/weapon/stamp/denied) + overlays += "paper_stamped_denied" + if(/obj/item/weapon/stamp/clown) + if (!clown) + usr << "\red You are totally unable to use the stamp. HONK!" + return + else + overlays += "paper_stamped_clown" + else + overlays += "paper_stamped" + if(!stamped) + stamped = new + stamped += P.type + + user << "\blue You stamp the paper with your rubber stamp." + add_fingerprint(user) + return \ No newline at end of file diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 54f845211c1..c5c50889465 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -3,7 +3,8 @@ name = "pen" icon = 'bureaucracy.dmi' icon_state = "pen" - flags = FPRINT | ONBELT | TABLEPASS + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT | SLOT_EARS throwforce = 0 w_class = 1.0 throw_speed = 7 diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm index 18a5e9e2feb..60a34babe83 100644 --- a/code/modules/paperwork/stamps.dm +++ b/code/modules/paperwork/stamps.dm @@ -10,7 +10,7 @@ throw_speed = 7 throw_range = 15 m_amt = 60 - var/color = "cargo" + color = "cargo" pressure_resistance = 5 /obj/item/weapon/stamp/captain diff --git a/code/modules/power/antimatter/engine.dm b/code/modules/power/antimatter/engine.dm index ae54faa10ce..824e3fe0e89 100644 --- a/code/modules/power/antimatter/engine.dm +++ b/code/modules/power/antimatter/engine.dm @@ -2,7 +2,7 @@ icon = 'AM_Engine.dmi' density = 1 anchored = 1.0 - flags = 512.0 + flags = ON_BORDER /obj/machinery/power/am_engine/bits name = "Antimatter Engine" diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index 82f1f4e3dae..3f66f3aa0e1 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -20,6 +20,7 @@ process() if(P) if(P.air_contents.toxins <= 0) + investigate_log("out of fuel.","singulo") P.air_contents.toxins = 0 eject() else @@ -33,6 +34,7 @@ toggle_power() user.visible_message("[user.name] turns the [src.name] [active? "on":"off"].", \ "You turn the [src.name] [active? "on":"off"].") + investigate_log("turned [active?"on":"off"] by [user.key]. [P?"Fuel: [round(P.air_contents.toxins/0.29)]%":"It is empty"].","singulo") return else user << "\red The controls are locked!" @@ -97,48 +99,47 @@ return ..() - proc - eject() - var/obj/item/weapon/tank/plasma/Z = src.P - if (!Z) - return - Z.loc = get_turf(src) - Z.layer = initial(Z.layer) - src.P = null - if(active) - toggle_power() - else - updateicon() - - receive_pulse(var/pulse_strength) - if(P && active) - var/power_produced = 0 - power_produced = P.air_contents.toxins*pulse_strength*20 - add_avail(power_produced) - last_power = power_produced - return + proc/eject() + locked = 0 + var/obj/item/weapon/tank/plasma/Z = src.P + if (!Z) return - - - updateicon() - overlays = null - if(P) - overlays += image('singularity.dmi', "ptank") - if(stat & (NOPOWER|BROKEN)) - return - if(active) - overlays += image('singularity.dmi', "on") - - - toggle_power() - active = !active - if(active) - icon_state = "ca_on" - flick("ca_active", src) - - else - icon_state = "ca" - flick("ca_deactive", src) + Z.loc = get_turf(src) + Z.layer = initial(Z.layer) + src.P = null + if(active) + toggle_power() + else updateicon() - return + + proc/receive_pulse(var/pulse_strength) + if(P && active) + var/power_produced = 0 + power_produced = P.air_contents.toxins*pulse_strength*20 + add_avail(power_produced) + last_power = power_produced + return + return + + + proc/updateicon() + overlays = null + if(P) + overlays += image('singularity.dmi', "ptank") + if(stat & (NOPOWER|BROKEN)) + return + if(active) + overlays += image('singularity.dmi', "on") + + + proc/toggle_power() + active = !active + if(active) + icon_state = "ca_on" + flick("ca_active", src) + else + icon_state = "ca" + flick("ca_deactive", src) + updateicon() + return diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 19c20412b0e..6a439efe201 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -40,6 +40,9 @@ ..() return + Del() + investigate_log("deleted at ([x],[y],[z])","singulo") + ..() update_icon() if (active && !(stat & (NOPOWER|BROKEN))) @@ -56,12 +59,14 @@ src.active = 0 user << "You turn off the [src]." src.use_power = 1 + investigate_log("turned off by [user.key]","singulo") else src.active = 1 user << "You turn on the [src]." src.shot_number = 0 src.fire_delay = 100 src.use_power = 2 + investigate_log("turned on by [user.key]","singulo") update_icon() else user << "\red The controls are locked!" diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index 1525d0adfb4..cbf636bbb76 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -88,6 +88,8 @@ field_generator power level display "You turn on the [src.name].", \ "You hear heavy droning") turn_on() + investigate_log("activated by [user.key].","singulo") + src.add_fingerprint(user) else user << "The [src] needs to be firmly secured to the floor first." @@ -215,6 +217,7 @@ field_generator power level display for(var/mob/M in viewers(src)) M.show_message("\red The [src.name] shuts down!") turn_off() + investigate_log("ran out of power and deactivated","singulo") src.power = 0 return 0 diff --git a/code/modules/power/singularity/investigate.dm b/code/modules/power/singularity/investigate.dm new file mode 100644 index 00000000000..6389f10707c --- /dev/null +++ b/code/modules/power/singularity/investigate.dm @@ -0,0 +1,4 @@ +/area/engine/engineering/poweralert(var/state, var/source) + if (state != poweralm) + investigate_log("has a power alarm!","singulo") + ..() \ No newline at end of file diff --git a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm index 811d4ebde5b..95c565aee5d 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm @@ -152,6 +152,12 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin return + Move() + ..() + if(master && master.active) + master.toggle_power() + investigate_log("was moved whilst active; it powered down.","singulo") + ex_act(severity) switch(severity) if(1.0) @@ -182,9 +188,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin update_icon() switch(construction_state) - if(0) - icon_state="[reference]" - if(1) + if(0,1) icon_state="[reference]" if(2) icon_state="[reference]w" @@ -376,7 +380,6 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin del(src) return - proc update_state() return 0 diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm index cb8868dc345..025b3f901ee 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_control.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm @@ -49,7 +49,6 @@ if(use_power) icon_state = "[reference]p" else - icon_state = "[reference]c" switch(construction_state) if(0) icon_state = "[reference]" @@ -57,7 +56,7 @@ icon_state = "[reference]" if(2) icon_state = "[reference]w" - if(3) + else icon_state = "[reference]c" return @@ -79,34 +78,34 @@ return if(href_list["togglep"]) src.toggle_power() + investigate_log("turned [active?"ON":"OFF"] by [usr.key]","singulo") message_admins("[usr] toggled particle accelerator power to [active ? "on" : "off"].") log_admin("[usr] toggled particle accelerator power to [active ? "on" : "off"].") - if(href_list["scan"]) + else if(href_list["scan"]) src.part_scan() - if(href_list["strengthup"]) - src.strength++ + else if(href_list["strengthup"]) + strength++ + if(strength > 2) + strength = 2 + else + investigate_log("increased to [strength] by [usr.key]","singulo") + message_admins("[usr] increased particle accelerator power to [strength].") + log_admin("[usr] increased particle accelerator power to [strength].") for(var/obj/structure/particle_accelerator/part in connected_parts) - part.strength++ + part.strength = strength part.update_icon() - if(src.strength > 2) - src.strength = 2 - for(var/obj/structure/particle_accelerator/part in connected_parts) - part.strength = 2 - part.update_icon() - message_admins("[usr] increased particle accelerator power to [strength].") - log_admin("[usr] increased particle accelerator power to [strength].") - if(href_list["strengthdown"]) - src.strength-- + + else if(href_list["strengthdown"]) + strength-- + if(strength < 0) + strength = 0 + else + message_admins("[usr] decreased particle accelerator power to [strength].") + log_admin("[usr] decreased particle accelerator power to [strength].") + investigate_log("decreased to [strength] by [usr.key]","singulo") for(var/obj/structure/particle_accelerator/part in connected_parts) - part.strength-- + part.strength = strength part.update_icon() - if(src.strength < 0) - src.strength = 0 - for(var/obj/structure/particle_accelerator/part in connected_parts) - part.strength = 0 - part.update_icon() - message_admins("[usr] decreased particle accelerator power to [strength].") - log_admin("[usr] decreased particle accelerator power to [strength].") src.updateDialog() src.update_icon() return @@ -124,14 +123,15 @@ process() if(src.active) + //a part is missing! + if( length(connected_parts) < 6 ) + investigate_log("lost a connected part; It powered down.","singulo") + src.toggle_power() + return + //emit some particles for(var/obj/structure/particle_accelerator/particle_emitter/PE in connected_parts) if(PE) PE.emit_particle(src.strength) -// for(var/obj/structure/particle_accelerator/fuel_chamber/PF in connected_parts) -// PF.doshit() -// for(var/obj/structure/particle_accelerator/power_box/PB in connected_parts) -// PB.doshit() - //finish up putting the fuel run and power use things in here return diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index bf31dce135b..6db291a24cd 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -42,6 +42,7 @@ var/global/list/uneatable = list( count = 1 break if(!count) message_admins("A singulo has been created without containment fields active ([x],[y],[z])",1) + investigate_log("was created. [count?"":"No containment fields were active"]","singulo") src.energy = starting_energy if(temp) @@ -184,6 +185,7 @@ var/global/list/uneatable = list( consume_range = 4 dissipate = 0 //It cant go smaller due to e loss if(current_size == allowed_size) + investigate_log("grew to size [current_size]","singulo") return 1 else if(current_size < (--temp_allowed_size)) expand(temp_allowed_size) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index fa4b1988f3c..6e4ffec7ed1 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -294,7 +294,7 @@ output += d output = max(0, min(SMESMAXOUTPUT, output)) // clamp to range - + investigate_log("input/output; [chargelevel>output?"":""][chargelevel]/[output] | Output-mode: [online?"on":"off"] | Input-mode: [chargemode?"auto":"off"] by [usr.key]","singulo") src.updateUsrDialog() else diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index 9b7a6715c3a..614249889c4 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -5,7 +5,8 @@ desc = "A bullet casing." icon = 'ammo.dmi' icon_state = "s-casing" - flags = FPRINT | TABLEPASS | CONDUCT | ONBELT + flags = FPRINT | TABLEPASS | CONDUCT + slot_flags = SLOT_BELT throwforce = 1 w_class = 1.0 var/caliber = "" //Which kind of guns it can be loaded into @@ -29,7 +30,8 @@ desc = "A box of ammo" icon_state = "357" icon = 'ammo.dmi' - flags = FPRINT | TABLEPASS | CONDUCT | ONBELT + flags = FPRINT | TABLEPASS | CONDUCT + slot_flags = SLOT_BELT item_state = "syringe_kit" m_amt = 50000 throwforce = 2 diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index e6e80ae43de..99e93705c4b 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -4,7 +4,8 @@ icon = 'gun.dmi' icon_state = "detective" item_state = "gun" - flags = FPRINT | TABLEPASS | CONDUCT | ONBELT | USEDELAY + flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY + slot_flags = SLOT_BELT m_amt = 2000 w_class = 3.0 throwforce = 5 @@ -13,19 +14,18 @@ force = 5.0 origin_tech = "combat=1" - var - fire_sound = 'Gunshot.ogg' - tmp/obj/item/projectile/in_chamber = null - caliber = "" - silenced = 0 - recoil = 0 - ejectshell = 1 - tmp/list/mob/living/target //List of who yer targeting. - tmp/lock_time = -100 - tmp/mouthshoot = 0 ///To stop people from suiciding twice... >.> - automatic = 0 //Used to determine if you can target multiple people. - tmp/mob/living/last_moved_mob //Used to fire faster at more than one person. - tmp/told_cant_shoot = 0 //So that it doesn't spam them with the fact they cannot hit them. + var/fire_sound = 'Gunshot.ogg' + var/tmp/obj/item/projectile/in_chamber = null + var/caliber = "" + var/silenced = 0 + var/recoil = 0 + var/ejectshell = 1 + var/tmp/list/mob/living/target //List of who yer targeting. + var/tmp/lock_time = -100 + var/tmp/mouthshoot = 0 ///To stop people from suiciding twice... >.> + var/automatic = 0 //Used to determine if you can target multiple people. + var/tmp/mob/living/last_moved_mob //Used to fire faster at more than one person. + var/tmp/told_cant_shoot = 0 //So that it doesn't spam them with the fact they cannot hit them. proc/load_into_chamber() return 0 @@ -165,14 +165,16 @@ if (!istype(targloc) || !istype(curloc)) return - if(!special_check(user)) return + if(!special_check(user)) + return if(!load_into_chamber()) user.visible_message("*click click*", "\red *click*") for(var/mob/K in viewers(usr)) K << 'empty.ogg' return - if(!in_chamber) return + if(!in_chamber) + return in_chamber.firer = user in_chamber.def_zone = user.zone_sel.selecting @@ -191,7 +193,7 @@ playsound(user, fire_sound, 10, 1) else playsound(user, fire_sound, 50, 1) - user.visible_message("\red [user] fires the [src]!", "\red You fire the [src]!", "\blue You hear a [istype(in_chamber, /obj/item/projectile/beam) ? "laser blast" : "gunshot"]!") + user.visible_message("\red [user] fires \the [src]!", "\red You fire \the [src]!", "\blue You hear a [istype(in_chamber, /obj/item/projectile/beam) ? "laser blast" : "gunshot"]!") in_chamber.original = targloc in_chamber.loc = get_turf(user) @@ -210,7 +212,8 @@ in_chamber.p_y = text2num(mouse_control["icon-y"]) spawn() - if(in_chamber) in_chamber.fired() + if(in_chamber) + in_chamber.fired() sleep(1) in_chamber = null diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 9fc41c86cee..9a27af99726 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -5,7 +5,8 @@ fire_sound = 'Laser.ogg' origin_tech = "combat=2;magnets=4" w_class = 4.0 - flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY | ONBACK + flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY + slot_flags = SLOT_BACK charge_cost = 100 projectile_type = "/obj/item/projectile/ion" @@ -27,7 +28,8 @@ obj/item/weapon/gun/energy/staff icon_state = "staffofchange" item_state = "staffofchange" fire_sound = 'emitter.ogg' - flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY | ONBACK + flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY + slot_flags = SLOT_BACK w_class = 4.0 charge_cost = 200 projectile_type = "/obj/item/projectile/change" diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index 559ac2ae015..4ad2b395132 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -8,7 +8,8 @@ max_shells = 4 w_class = 4.0 force = 10 - flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY | ONBACK + flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY + slot_flags = SLOT_BACK caliber = "shotgun" origin_tech = "combat=4;materials=2" ammo_type = "/obj/item/ammo_casing/shotgun/beanbag" @@ -67,7 +68,8 @@ max_shells = 2 w_class = 4.0 force = 10 - flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY | ONBACK + flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY + slot_flags = SLOT_BACK caliber = "shotgun" origin_tech = "combat=3;materials=1" ammo_type = "/obj/item/ammo_casing/shotgun/beanbag" @@ -125,8 +127,8 @@ item_state = "sawnshotgun" w_class = 3.0 item_state = "gun" - flags &= ~ONBACK //you can't sling it on your back - flags |= ONBELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) + slot_flags &= ~SLOT_BACK //you can't sling it on your back + slot_flags |= SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) name = "sawn-off shotgun" desc = "Omar's coming!" user << "You shorten the barrel of \the [src]!" diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 9a3afaee3a0..63ef5f4abbf 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -494,96 +494,6 @@ else return ..() -//The toilet does not need to pressurized but can only handle small items. -//You can also choke people by dunking them into the toilet. -/obj/machinery/disposal/toilet - name = "toilet" - desc = "A torque rotation-based, waste disposal unit for small matter." - icon_state = "toilet" - density = 0//So you can stand on it. - mode = 2 - - attackby(var/obj/item/I, var/mob/user) - if( !(stat & BROKEN) ) - if(istype(I, /obj/item/weapon/grab)) - var/obj/item/weapon/grab/G = I - if(istype(G)) // handle grabbed mob - if(ismob(G.affecting)) - var/mob/GM = G.affecting - for (var/mob/V in viewers(usr)) - V.show_message("[user] dunks [GM.name] into the toilet!", 3) - if(do_after(user, 30)) - if(G && G.state>1 && !GM.internal) - GM.oxyloss += 5 - - else if(I.w_class < 4) - user.drop_item() - I.loc = src - user << "You place \the [I] into the [src]." - for(var/mob/M in viewers(src)) - if(M == user) - continue - M.show_message("[user.name] places \the [I] into the [src].", 3) - else - user << "\red That item cannot be placed into the toilet." - return - - MouseDrop_T(mob/target, mob/user) - if (!istype(target) || target.buckled || get_dist(user, src) > 1 || get_dist(user, target) > 1 || user.stat || istype(user, /mob/living/silicon/ai)) - return//Damn that list is long - - for (var/mob/V in viewers(usr)) - if(target == user && !user.stat) - V.show_message("[user] sits on the toilet.", 3) - if(target != user && !user.restrained()) - V.show_message("[user] places [target.name] on the toilet.", 3) - target.loc = loc - return - - interact(mob/user) - if(isAI(user) || isrobot(user)) - return - - add_fingerprint(user) - for (var/mob/V in viewers(user)) - V.show_message("[user] eagerly drinks the toilet water!", 3)//Yum yum yum - return - - update() - overlays = null - if( !(stat & BROKEN) ) - if(flush) - overlays += image('disposal.dmi',"toilet-handle",,dir) - if( !(stat & NOPOWER) ) - overlays += image('disposal.dmi',"toilet-ready",,dir) - else - icon_state = "toilet-broken" - mode = 0 - flush = 0 - return - - process() - if( !((stat & BROKEN)||(stat & NOPOWER)) )// nothing can happen if broken or not powered. - updateDialog() - if(!flush&&contents.len) - flush++ - flush() - use_power(100)// base power usage - update() - return - - flush() - flick("toilet-flush", src) - var/obj/structure/disposalholder/H = new() - H.init(src) - sleep(10) - playsound(src, 'disposalflush.ogg', 50, 0, 0) - sleep(30) // To prevent spam. - H.start(src) - flush-- - update() - return - // virtual disposal object // travels through pipes in lieu of actual items // contents will be items flushed by the disposal @@ -602,8 +512,8 @@ // initialize a holder from the contents of a disposal unit proc/init(var/obj/machinery/disposal/D) - if(!istype(D, /obj/machinery/disposal/toilet))//So it does not drain gas from a toilet which does not function on it. - gas = D.air_contents// transfer gas resv. into holder object + gas = D.air_contents// transfer gas resv. into holder object + // now everything inside the disposal gets put into the holder // note AM since can contain mobs or objs diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index 91b60d91753..54f5b202676 100755 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -302,7 +302,8 @@ w_class = 1 item_state = "electronic" - flags = FPRINT | TABLEPASS | ONBELT | CONDUCT + flags = FPRINT | TABLEPASS | CONDUCT + slot_flags = SLOT_BELT attack_self(mob/user as mob) interact(user) diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index 16edac90880..2c69de7ebbd 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -10,6 +10,7 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). name = "Circuit Imprinter" icon_state = "circuit_imprinter" flags = OPENCONTAINER + var/g_amount = 0 var/gold_amount = 0 var/diamond_amount = 0 diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm index bb7694a0268..a8f69b78a78 100644 --- a/code/modules/research/protolathe.dm +++ b/code/modules/research/protolathe.dm @@ -175,4 +175,4 @@ Note: Must be placed west/left of and R&D console to function. stack.use(amount) busy = 0 src.updateUsrDialog() - return + return \ No newline at end of file diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 32cbbe50dfc..35a86f1d777 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -352,6 +352,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, screen = 0.3 linked_lathe.busy = 1 flick("protolathe_n",linked_lathe) + var/key = usr.key //so we don't lose the info during the spawn delay spawn(16) use_power(power) spawn(16) @@ -380,6 +381,8 @@ won't update every console in existence) but it's more of a hassle to do. Also, if(being_built.build_path) var/obj/new_item = new being_built.build_path(src) + if( new_item.type == /obj/item/weapon/storage/backpack/holding ) + new_item.investigate_log("built by [key]","singulo") new_item.reliability = being_built.reliability if(linked_lathe.hacked) being_built.reliability = max((reliability / 2), 0) if(being_built.locked) diff --git a/code/setup.dm b/code/setup.dm index d84a75d05ec..0208423c852 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -109,8 +109,23 @@ var/MAX_EXPLOSION_RANGE = 14 #define SHOES_SLOWDOWN -1.0 // How much shoes slow you down by default. Negative values speed you up +//ITEM INVENTORY SLOT BITMASKS: (HUMANS ONLY!) +#define SLOT_OCLOTHING 1 +#define SLOT_ICLOTHING 2 +#define SLOT_GLOVES 4 +#define SLOT_EYES 8 +#define SLOT_EARS 16 +#define SLOT_MASK 32 +#define SLOT_HEAD 64 +#define SLOT_FEET 128 +#define SLOT_ID 256 +#define SLOT_BELT 512 +#define SLOT_BACK 1024 +#define SLOT_POCKET 2048 //this is to allow items with a w_class of 3 or 4 to fit in pockets. +#define SLOT_DENYPOCKET 4096 //this is to deny items with a w_class of 2 or 1 to fit in pockets. + + //FLAGS BITMASK -#define ONBACK 1 // can be put in back slot #define TABLEPASS 2 // can pass by a table or rack /******************************************************************************** @@ -128,7 +143,6 @@ var/MAX_EXPLOSION_RANGE = 14 #define NODELAY 32768 // 1 second attackby delay skipped (Can be used once every 0.2s). Most objects have a 1s attackby delay, which doesn't require a flag. #define NOSHIELD 32 // weapon not affected by shield #define CONDUCT 64 // conducts electricity (metal etc.) -#define ONBELT 128 // can be put in belt slot #define FPRINT 256 // takes a fingerprint #define ON_BORDER 512 // item has priority to check when entering or leaving @@ -192,35 +206,33 @@ var/MAX_EXPLOSION_RANGE = 14 #define FULL_BODY 2047 //bitflags for mutations -var/const - TK =(1<<0) - COLD_RESISTANCE =(1<<1) - XRAY =(1<<2) - HULK =(1<<3) - CLUMSY =(1<<4) - FAT =(1<<5) - HUSK =(1<<6) - LASER =(1<<7) - HEAL =(1<<8) - mNobreath =(1<<9) - mRemote =(1<<10) - mRegen =(1<<11) - mRun =(1<<12) - mRemotetalk =(1<<13) - mMorph =(1<<14) - mBlend =(1<<15) +var/const/TK =(1<<0) +var/const/COLD_RESISTANCE =(1<<1) +var/const/XRAY =(1<<2) +var/const/HULK =(1<<3) +var/const/CLUMSY =(1<<4) +var/const/FAT =(1<<5) +var/const/HUSK =(1<<6) +var/const/LASER =(1<<7) +var/const/HEAL =(1<<8) +var/const/mNobreath =(1<<9) +var/const/mRemote =(1<<10) +var/const/mRegen =(1<<11) +var/const/mRun =(1<<12) +var/const/mRemotetalk =(1<<13) +var/const/mMorph =(1<<14) +var/const/mBlend =(1<<15) //the "&" operator cannot go higher than (2^16)-1 - mHallucination =(1<<0) - mFingerprints =(1<<1) - mShock =(1<<2) - mSmallsize =(1<<3) - NOCLONE =(1<<4) +var/const/mHallucination =(1<<0) +var/const/mFingerprints =(1<<1) +var/const/mShock =(1<<2) +var/const/mSmallsize =(1<<3) +var/const/NOCLONE =(1<<4) //mob/var/stat things -var/const - CONSCIOUS = 0 - UNCONSCIOUS = 1 - DEAD = 2 +var/const/CONSCIOUS = 0 +var/const/UNCONSCIOUS = 1 +var/const/DEAD = 2 // channel numbers for power #define EQUIP 1 @@ -249,12 +261,11 @@ var/const #define MAX_STACK_AMOUNT_GLASS 50 #define MAX_STACK_AMOUNT_RODS 60 -var/const - GAS_O2 = 1 << 0 - GAS_N2 = 1 << 1 - GAS_PL = 1 << 2 - GAS_CO2 = 1 << 3 - GAS_N2O = 1 << 4 +var/const/GAS_O2 = 1 << 0 +var/const/GAS_N2 = 1 << 1 +var/const/GAS_PL = 1 << 2 +var/const/GAS_CO2 = 1 << 3 +var/const/GAS_N2O = 1 << 4 var/list/accessable_z_levels = list("3" = 15, "4" = 35, "6" = 50) diff --git a/code/unused/pda2/pda2.dm b/code/unused/pda2/pda2.dm index 29d3556292c..7aa1f538f57 100644 --- a/code/unused/pda2/pda2.dm +++ b/code/unused/pda2/pda2.dm @@ -34,7 +34,8 @@ icon_state = "pda" item_state = "electronic" w_class = 2.0 - flags = FPRINT | TABLEPASS | ONBELT + flags = FPRINT | TABLEPASS + slow_flags = SLOT_BELT var/owner = null var/default_cartridge = null // Access level defined by cartridge diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 2f077b367e8..310ad8f733a 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi index 7c834f10c98..79e2ea2368a 100644 Binary files a/icons/mob/mask.dmi and b/icons/mob/mask.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index 13f1e39fa05..a2984ea59ae 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/obj/assemblies.dmi b/icons/obj/assemblies.dmi index aee76f5e3e6..80b959a1157 100644 Binary files a/icons/obj/assemblies.dmi and b/icons/obj/assemblies.dmi differ diff --git a/icons/obj/atmospherics/mixer.dmi b/icons/obj/atmospherics/mixer.dmi index f592d73e8be..79b62c87df2 100644 Binary files a/icons/obj/atmospherics/mixer.dmi and b/icons/obj/atmospherics/mixer.dmi differ diff --git a/icons/obj/closet.dmi b/icons/obj/closet.dmi index eb857dd67ee..8eca3452e25 100644 Binary files a/icons/obj/closet.dmi and b/icons/obj/closet.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index b9b08c6120b..63ae8789e0b 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 6521cf5f240..5c1568d50ec 100755 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/pda.dmi b/icons/obj/pda.dmi index 4e51c0ff590..a3dea0e843d 100644 Binary files a/icons/obj/pda.dmi and b/icons/obj/pda.dmi differ diff --git a/maps/tgstation.2.0.8.dmm b/maps/tgstation.2.0.8.dmm index f44dad511ef..4aed37df9f8 100755 --- a/maps/tgstation.2.0.8.dmm +++ b/maps/tgstation.2.0.8.dmm @@ -3,86 +3,86 @@ "aac" = (/turf/space,/area/syndicate_station/two) "aad" = (/obj/structure/grille,/obj/structure/lattice,/turf/space,/area) "aae" = (/obj/structure/lattice,/turf/space,/area) -"aaf" = (/turf/simulated/wall/r_wall,/area/security/warden{name = "Armory"}) +"aaf" = (/turf/simulated/wall/r_wall,/area/security/armoury) "aag" = (/obj/structure/grille,/turf/space,/area) -"aah" = (/turf/simulated/floor/engine/vacuum,/area/security/warden{name = "Armory"}) -"aai" = (/obj/machinery/deployable/barrier,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/warden{name = "Armory"}) -"aaj" = (/obj/machinery/deployable/barrier,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/warden{name = "Armory"}) -"aak" = (/obj/machinery/deployable/barrier,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/warden{name = "Armory"}) -"aal" = (/obj/machinery/flasher/portable,/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/warden{name = "Armory"}) -"aam" = (/obj/machinery/flasher/portable,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/warden{name = "Armory"}) -"aan" = (/obj/structure/closet/bombclosetsecurity,/obj/machinery/camera{c_tag = "Armoury"; dir = 2; network = "Security"},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/warden{name = "Armory"}) -"aao" = (/obj/structure/closet/l3closet/security,/turf/simulated/floor,/area/security/warden{name = "Armory"}) -"aap" = (/obj/structure/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/structure/window/basic,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/warden{name = "Armory"}) -"aaq" = (/obj/structure/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/machinery/light{dir = 1},/obj/structure/window/basic,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/warden{name = "Armory"}) -"aar" = (/obj/structure/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/basic,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/warden{name = "Armory"}) -"aas" = (/turf/simulated/floor,/area/security/warden{name = "Armory"}) -"aat" = (/obj/structure/rack,/obj/item/ammo_casing/shotgun,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/basic,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/warden{name = "Armory"}) -"aau" = (/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/security/warden{name = "Armory"}) -"aav" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/basic,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/warden{name = "Armory"}) +"aah" = (/turf/simulated/floor/engine/vacuum,/area/security/armoury) +"aai" = (/obj/machinery/deployable/barrier,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/armoury) +"aaj" = (/obj/machinery/deployable/barrier,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/armoury) +"aak" = (/obj/machinery/deployable/barrier,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/armoury) +"aal" = (/obj/machinery/flasher/portable,/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/armoury) +"aam" = (/obj/machinery/flasher/portable,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/armoury) +"aan" = (/obj/structure/closet/bombclosetsecurity,/obj/machinery/camera{c_tag = "Armoury"; dir = 2; network = "Security"},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/armoury) +"aao" = (/obj/structure/closet/l3closet/security,/turf/simulated/floor,/area/security/armoury) +"aap" = (/obj/structure/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/structure/window/basic,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/armoury) +"aaq" = (/obj/structure/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/machinery/light{dir = 1},/obj/structure/window/basic,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/armoury) +"aar" = (/obj/structure/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/basic,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/armoury) +"aas" = (/turf/simulated/floor,/area/security/armoury) +"aat" = (/obj/structure/rack,/obj/item/ammo_casing/shotgun,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/basic,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/armoury) +"aau" = (/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/security/armoury) +"aav" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/basic,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/armoury) "aaw" = (/turf/simulated/floor/plating/airless,/area) -"aax" = (/obj/machinery/flasher/portable,/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/warden{name = "Armory"}) -"aay" = (/obj/structure/window/reinforced,/obj/item/weapon/wrench,/obj/machinery/flasher/portable,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/warden{name = "Armory"}) -"aaz" = (/obj/machinery/door/poddoor{id = "armory"; name = "Armory Blast Door"},/turf/simulated/floor,/area/security/warden{name = "Armory"}) +"aax" = (/obj/machinery/flasher/portable,/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/armoury) +"aay" = (/obj/structure/window/reinforced,/obj/item/weapon/wrench,/obj/machinery/flasher/portable,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/armoury) +"aaz" = (/obj/machinery/door/poddoor{id = "armory"; name = "Armory Blast Door"},/turf/simulated/floor,/area/security/armoury) "aaA" = (/turf/simulated/wall/r_wall,/area/security/range) "aaB" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/security/range) -"aaC" = (/obj/machinery/deployable/barrier,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/warden{name = "Armory"}) -"aaD" = (/obj/machinery/deployable/barrier,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/warden{name = "Armory"}) -"aaE" = (/obj/structure/rack,/obj/item/weapon/gun/energy/taser,/obj/item/weapon/gun/energy/taser,/obj/item/weapon/gun/energy/taser,/obj/item/weapon/storage/body_bag_box,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/security/warden{name = "Armory"}) -"aaF" = (/obj/structure/rack,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/baton,/obj/item/weapon/storage/handcuff_kit,/turf/simulated/floor,/area/security/warden{name = "Armory"}) -"aaG" = (/obj/structure/table/reinforced,/turf/simulated/floor,/area/security/warden{name = "Armory"}) -"aaH" = (/obj/structure/table/reinforced,/obj/item/ammo_casing/shotgun/beanbag,/obj/item/ammo_casing/shotgun/beanbag,/obj/item/ammo_casing/shotgun/beanbag,/obj/item/ammo_casing/shotgun/beanbag,/turf/simulated/floor,/area/security/warden{name = "Armory"}) -"aaI" = (/obj/machinery/camera{c_tag = "Armoury Secure Section"; dir = 8; network = "Security"},/turf/simulated/floor,/area/security/warden{name = "Armory"}) +"aaC" = (/obj/machinery/deployable/barrier,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/armoury) +"aaD" = (/obj/machinery/deployable/barrier,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/armoury) +"aaE" = (/obj/structure/rack,/obj/item/weapon/gun/energy/taser,/obj/item/weapon/gun/energy/taser,/obj/item/weapon/gun/energy/taser,/obj/item/weapon/storage/body_bag_box,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/security/armoury) +"aaF" = (/obj/structure/rack,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/baton,/obj/item/weapon/storage/handcuff_kit,/turf/simulated/floor,/area/security/armoury) +"aaG" = (/obj/structure/table/reinforced,/turf/simulated/floor,/area/security/armoury) +"aaH" = (/obj/structure/table/reinforced,/obj/item/ammo_casing/shotgun/beanbag,/obj/item/ammo_casing/shotgun/beanbag,/obj/item/ammo_casing/shotgun/beanbag,/obj/item/ammo_casing/shotgun/beanbag,/turf/simulated/floor,/area/security/armoury) +"aaI" = (/obj/machinery/camera{c_tag = "Armoury Secure Section"; dir = 8; network = "Security"},/turf/simulated/floor,/area/security/armoury) "aaJ" = (/turf/simulated/floor/plating,/area/security/range) "aaK" = (/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/security/range) "aaL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/security/range) -"aaM" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/reagent_dispensers/peppertank{pixel_x = -30},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/security/warden{name = "Armory"}) -"aaN" = (/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/security/warden{name = "Armory"}) -"aaO" = (/turf/simulated/floor{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/security/warden{name = "Armory"}) -"aaP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor,/area/security/warden{name = "Armory"}) -"aaQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor,/area/security/warden{name = "Armory"}) -"aaR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/security/warden{name = "Armory"}) -"aaS" = (/obj/structure/rack,/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/warden{name = "Armory"}) -"aaT" = (/obj/machinery/light,/obj/structure/table,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 1},/obj/item/weapon/storage/trackimp_kit,/obj/item/weapon/storage/chemimp_kit,/obj/item/weapon/storage/lockbox/loyalty,/turf/simulated/floor,/area/security/warden{name = "Armory"}) -"aaU" = (/obj/structure/table,/obj/item/weapon/storage/lockbox,/obj/item/weapon/pepperspray,/obj/item/weapon/pepperspray,/obj/item/weapon/pepperspray,/turf/simulated/floor,/area/security/warden{name = "Armory"}) -"aaV" = (/obj/machinery/power/apc{dir = 4; name = "Armoury APC"; pixel_x = 27; pixel_y = 2},/obj/structure/rack,/obj/item/weapon/storage/flashbang_kit,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/security/warden{name = "Armory"}) -"aaW" = (/obj/item/weapon/gun/energy/ionrifle,/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/basic{dir = 1},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/warden{name = "Armory"}) -"aaX" = (/obj/machinery/atmospherics/unary/vent_scrubber,/turf/simulated/floor,/area/security/warden{name = "Armory"}) -"aaY" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/basic{dir = 1},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/warden{name = "Armory"}) -"aaZ" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/basic{dir = 1},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/warden{name = "Armory"}) -"aba" = (/obj/item/clothing/suit/space/rig/security,/obj/item/clothing/head/helmet/space/rig/security,/obj/machinery/light,/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/basic{dir = 1},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/warden{name = "Armory"}) -"abb" = (/obj/item/clothing/suit/armor/laserproof{pixel_x = -2; pixel_y = 2},/obj/item/clothing/suit/armor/bulletproof{pixel_x = 2; pixel_y = -2},/obj/structure/table,/obj/structure/window/basic{dir = 1},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/warden{name = "Armory"}) +"aaM" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/reagent_dispensers/peppertank{pixel_x = -30},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/security/armoury) +"aaN" = (/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/security/armoury) +"aaO" = (/turf/simulated/floor{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/security/armoury) +"aaP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor,/area/security/armoury) +"aaQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor,/area/security/armoury) +"aaR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/security/armoury) +"aaS" = (/obj/structure/rack,/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/armoury) +"aaT" = (/obj/machinery/light,/obj/structure/table,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 1},/obj/item/weapon/storage/trackimp_kit,/obj/item/weapon/storage/chemimp_kit,/obj/item/weapon/storage/lockbox/loyalty,/turf/simulated/floor,/area/security/armoury) +"aaU" = (/obj/structure/table,/obj/item/weapon/storage/lockbox,/obj/item/weapon/pepperspray,/obj/item/weapon/pepperspray,/obj/item/weapon/pepperspray,/turf/simulated/floor,/area/security/armoury) +"aaV" = (/obj/machinery/power/apc{dir = 4; name = "Armoury APC"; pixel_x = 27; pixel_y = 2},/obj/structure/rack,/obj/item/weapon/storage/flashbang_kit,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/security/armoury) +"aaW" = (/obj/item/weapon/gun/energy/ionrifle,/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/basic{dir = 1},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/armoury) +"aaX" = (/obj/machinery/atmospherics/unary/vent_scrubber,/turf/simulated/floor,/area/security/armoury) +"aaY" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/basic{dir = 1},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/armoury) +"aaZ" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/basic{dir = 1},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/armoury) +"aba" = (/obj/item/clothing/suit/space/rig/security,/obj/item/clothing/head/helmet/space/rig/security,/obj/machinery/light,/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/basic{dir = 1},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/armoury) +"abb" = (/obj/item/clothing/suit/armor/laserproof{pixel_x = -2; pixel_y = 2},/obj/item/clothing/suit/armor/bulletproof{pixel_x = 2; pixel_y = -2},/obj/structure/table,/obj/structure/window/basic{dir = 1},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/armoury) "abc" = (/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/security/range) "abd" = (/obj/machinery/atmospherics/unary/vent_scrubber,/turf/simulated/floor,/area/security/range) "abe" = (/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/security/range) "abf" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced{tag = "icon-reinf_1tilethick"; icon_state = "reinf_1tilethick"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/range) "abg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/camera{c_tag = "Firing Range North"; dir = 8; network = "Security"},/turf/simulated/floor,/area/security/range) -"abh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/airlock/glass/glass_security{name = "Armory"; req_access_txt = "1"},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/warden{name = "Armory"}) -"abi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/glass/glass_security{name = "Armory"; req_access_txt = "1"},/turf/simulated/floor,/area/security/warden{name = "Armory"}) -"abj" = (/obj/machinery/door/airlock/glass/glass_security{name = "Armory"; req_access_txt = "1"},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/warden{name = "Armory"}) -"abk" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/wall/r_wall,/area/security/warden{name = "Armory"}) -"abl" = (/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/wall/r_wall,/area/security/warden{name = "Armory"}) -"abm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/security/warden{name = "Armory"}) -"abn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/security/warden{name = "Armory"}) -"abo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/warden{name = "Armory"}) +"abh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/airlock/glass/glass_security{name = "Armory"; req_access_txt = "1"},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/armoury) +"abi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/glass/glass_security{name = "Armory"; req_access_txt = "1"},/turf/simulated/floor,/area/security/armoury) +"abj" = (/obj/machinery/door/airlock/glass/glass_security{name = "Armory"; req_access_txt = "1"},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/armoury) +"abk" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/wall/r_wall,/area/security/armoury) +"abl" = (/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/wall/r_wall,/area/security/armoury) +"abm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/security/armoury) +"abn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/security/armoury) +"abo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/armoury) "abp" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/shuttle/escape_pod3/station) "abq" = (/obj/structure/shuttle/window{tag = "icon-3"; icon_state = "3"},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod3/station) "abr" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/shuttle/escape_pod3/station) "abs" = (/turf/simulated/floor,/area/security/range) "abt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/target_stake,/obj/machinery/magnetic_module{code = 712; magnetic_field = 2; max_dist = 5; on = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/range) "abu" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/security/range) -"abv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/warden{name = "Armory"}) -"abw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/security/warden{name = "Armory"}) -"abx" = (/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/warden{name = "Armory"}) -"aby" = (/obj/machinery/door/airlock/glass/glass_security{name = "Armory"; req_access_txt = "1"},/turf/simulated/floor,/area/security/warden{name = "Armory"}) -"abz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/security/warden{name = "Armory"}) -"abA" = (/obj/machinery/camera{c_tag = "North Corridor"; dir = 8; network = "Security"},/turf/simulated/floor,/area/security/warden{name = "Armory"}) +"abv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/armoury) +"abw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/security/armoury) +"abx" = (/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/armoury) +"aby" = (/obj/machinery/door/airlock/glass/glass_security{name = "Armory"; req_access_txt = "1"},/turf/simulated/floor,/area/security/armoury) +"abz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/security/armoury) +"abA" = (/obj/machinery/camera{c_tag = "North Corridor"; dir = 8; network = "Security"},/turf/simulated/floor,/area/security/armoury) "abB" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/shuttle/escape_pod3/station) "abC" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod3/station) "abD" = (/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/security/range) "abE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/range) "abF" = (/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/security/range) -"abG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/warden{name = "Armory"}) +"abG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/armoury) "abH" = (/turf/simulated/wall/r_wall,/area/security/hos) "abI" = (/obj/machinery/door/window{base_state = "right"; dir = 1; icon = 'windoor.dmi'; icon_state = "right"; name = "Head of Security"; req_access_txt = "19"},/turf/simulated/floor,/area/security/hos) "abJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/wall/r_wall,/area/security/hos) @@ -112,8 +112,8 @@ "ach" = (/obj/structure/lattice,/obj/structure/lattice,/turf/space,/area) "aci" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/security/range) "acj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/security/range) -"ack" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/warden{name = "Armory"}) -"acl" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/warden{name = "Armory"}) +"ack" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/armoury) +"acl" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/armoury) "acm" = (/obj/structure/closet/wardrobe/hos,/turf/simulated/floor{dir = 8; icon_state = "carpetside"},/area/security/hos) "acn" = (/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/security/hos) "aco" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/security/hos) @@ -297,7 +297,7 @@ "afK" = (/obj/structure/table,/obj/structure/bedsheetbin,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/camera{c_tag = "Prison Laundry Room"; dir = 2; network = "Prison"},/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Prison Laundry Room"; dir = 6; network = "Security"},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/prison) "afL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/wall,/area/prison) "afM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/item/weapon/soap/nanotrasen,/turf/simulated/floor{icon_state = "freezerfloor"},/area/prison) -"afN" = (/obj/machinery/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/prison) +"afN" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/prison) "afO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/wall/r_wall,/area/prison) "afP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/wall/r_wall,/area/prison) "afQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/prison) @@ -339,7 +339,7 @@ "agA" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/prison) "agB" = (/obj/machinery/door/airlock{name = "Washoom Toilet"; req_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/prison) "agC" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/prison) -"agD" = (/obj/machinery/disposal/toilet{tag = "icon-toilet (WEST)"; icon_state = "toilet"; dir = 8},/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/prison) +"agD" = (/obj/structure/toilet{tag = "icon-toilet (WEST)"; icon_state = "toilet"; dir = 8},/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/prison) "agE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/wall/r_wall,/area/prison) "agF" = (/obj/machinery/atmospherics/valve{dir = 4},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area/prison) "agG" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/prison) @@ -565,7 +565,7 @@ "akS" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor,/area/crew_quarters/courtroom) "akT" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor,/area/crew_quarters/courtroom) "akU" = (/obj/machinery/light,/turf/simulated/floor,/area/crew_quarters/courtroom) -"akV" = (/obj/structure/closet/extinguisher{pixel_x = 5; pixel_y = -32},/turf/simulated/floor,/area/crew_quarters/courtroom) +"akV" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/simulated/floor,/area/crew_quarters/courtroom) "akW" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/crew_quarters/courtroom) "akX" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1},/turf/simulated/floor,/area/crew_quarters/courtroom) "akY" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/crew_quarters/courtroom) @@ -731,9 +731,9 @@ "aoc" = (/obj/machinery/flasher{dir = 4; id = "permflash"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/prison) "aod" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/prison) "aoe" = (/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/prison) -"aof" = (/obj/structure/closet/extinguisher{pixel_x = 27; pixel_y = 0},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/prison) +"aof" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/prison) "aog" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/security/brig) -"aoh" = (/obj/machinery/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/security/brig) +"aoh" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/security/brig) "aoi" = (/obj/structure/stool,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "white"},/area/security/brig) "aoj" = (/turf/simulated/floor{icon_state = "white"},/area/security/brig) "aok" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/window/brigdoor{tag = "icon-left (EAST)"; name = "Cell 3"; icon_state = "left"; dir = 4; req_access_txt = "1"; id = "Cell 3"},/turf/simulated/floor,/area/security/brig) @@ -757,7 +757,7 @@ "aoC" = (/obj/structure/closet/secure_closet/brig,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{icon_state = "red"; dir = 6},/area/prison) "aoD" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 3; pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 3; pixel_y = 6},/obj/machinery/light{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/security/brig) "aoE" = (/obj/machinery/bot/medbot{name = "Mr Fixit"; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/security/brig) -"aoF" = (/obj/structure/stool/bed/roller,/turf/simulated/floor{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/security/brig) +"aoF" = (/turf/simulated/floor{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/security/brig) "aoG" = (/obj/machinery/camera{c_tag = "Medic Station"; dir = 1; network = "Security"},/turf/simulated/floor{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/security/brig) "aoH" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/camera{c_tag = "Brig South"; dir = 1; network = "Security"},/turf/simulated/floor,/area/security/brig) "aoI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) @@ -891,7 +891,7 @@ "arg" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/alarm{pixel_y = 23},/obj/structure/closet/secure_closet/personal,/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/crew_quarters) "arh" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/wall,/area/crew_quarters/fitness) "ari" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor,/area/crew_quarters/fitness) -"arj" = (/obj/machinery/sink{pixel_y = 29},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor,/area/crew_quarters/fitness) +"arj" = (/obj/structure/sink{pixel_y = 29},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor,/area/crew_quarters/fitness) "ark" = (/obj/structure/reagent_dispensers/water_cooler,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/crew_quarters/fitness) "arl" = (/obj/machinery/light{dir = 1},/obj/structure/table,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment{pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/crew_quarters/fitness) "arm" = (/obj/machinery/camera{c_tag = "Fitness Room"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/crew_quarters/fitness) @@ -1014,7 +1014,7 @@ "atz" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/crew_quarters) "atA" = (/obj/machinery/light{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/crew_quarters) "atB" = (/obj/machinery/atm{pixel_y = 30},/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/crew_quarters) -"atC" = (/obj/structure/closet/extinguisher{pixel_x = -5; pixel_y = 30},/turf/simulated/floor{icon_state = "neutral"; dir = 5},/area/crew_quarters) +"atC" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor{icon_state = "neutral"; dir = 5},/area/crew_quarters) "atD" = (/obj/structure/disposalpipe/segment,/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/crew_quarters/fitness) "atE" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/fitness) "atF" = (/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/crew_quarters/fitness) @@ -1042,7 +1042,7 @@ "aub" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "auc" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore) "aud" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/fore) -"aue" = (/obj/structure/closet/extinguisher{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) +"aue" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) "auf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/maintenance/fsmaint) "aug" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j2s"; sortType = list("Detective's Office","Law Office")},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "auh" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/crew_quarters) @@ -1257,7 +1257,7 @@ "ayi" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor,/area/ai_monitored/storage/eva) "ayj" = (/obj/machinery/light/small{dir = 8},/obj/structure/closet/secure_closet/personal,/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/crew_quarters) "ayk" = (/obj/item/weapon/bedsheet,/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/crew_quarters) -"ayl" = (/obj/machinery/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) +"ayl" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aym" = (/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "ayn" = (/obj/structure/table,/obj/item/clothing/under/suit_jacket/really_black,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/crew_quarters) "ayo" = (/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/crew_quarters) @@ -1331,7 +1331,7 @@ "azE" = (/obj/effect/sign/securearea,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/ai_monitored/storage/eva) "azF" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/door/airlock/secure{name = "E.V.A."; req_access_txt = "18"},/obj/structure/cable,/turf/simulated/floor,/area/ai_monitored/storage/eva) "azG" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/crew_quarters) -"azH" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) +"azH" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "azI" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/machinery/light{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "azJ" = (/obj/structure/table,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/crew_quarters) "azK" = (/obj/machinery/light,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/crew_quarters) @@ -1398,7 +1398,7 @@ "aAT" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) "aAU" = (/obj/machinery/camera{c_tag = "Dormitory South"; c_tag_order = 999; dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/crew_quarters) "aAV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters) -"aAW" = (/obj/machinery/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) +"aAW" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aAX" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 4; name = "Dormitory Bathrooms APC"; pixel_x = 26; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aAY" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/crew_quarters/toilet) "aAZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) @@ -1583,7 +1583,7 @@ "aEw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "bot"},/area/hallway/secondary/entry) "aEx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "delivery"},/area/hallway/secondary/entry) "aEy" = (/obj/machinery/camera{c_tag = "Security Checkpoint External"; network = "Arrivals"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/hallway/secondary/entry) -"aEz" = (/obj/structure/closet/extinguisher{pixel_x = -5; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/hallway/secondary/entry) +"aEz" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/hallway/secondary/entry) "aEA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor,/area/hallway/secondary/entry) "aEB" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aEC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) @@ -1627,7 +1627,7 @@ "aFo" = (/obj/machinery/vending/cola,/turf/simulated/floor{icon_state = "dark"},/area/hallway/primary/central) "aFp" = (/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/hallway/primary/central) "aFq" = (/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/hallway/primary/central) -"aFr" = (/obj/machinery/light/small,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal/toilet,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) +"aFr" = (/obj/machinery/light/small,/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/toilet{dir = 1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aFs" = (/obj/machinery/light/small,/obj/machinery/recharge_station,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aFt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aFu" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) @@ -1749,7 +1749,7 @@ "aHG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/hallway/primary/port) "aHH" = (/obj/machinery/light{dir = 1},/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor,/area/hallway/primary/port) "aHI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/hallway/primary/port) -"aHJ" = (/obj/structure/closet/extinguisher{pixel_x = 5; pixel_y = 30},/turf/simulated/floor,/area/hallway/primary/port) +"aHJ" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 30},/turf/simulated/floor,/area/hallway/primary/port) "aHK" = (/obj/structure/disposalpipe/segment{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/hallway/primary/port) "aHL" = (/obj/machinery/door/firedoor/border_only{dir = 4},/turf/simulated/floor,/area/hallway/primary/port) "aHM" = (/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor,/area/hallway/primary/port) @@ -1757,7 +1757,7 @@ "aHO" = (/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/hallway/primary/port) "aHP" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/primary/central) "aHQ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/central) -"aHR" = (/obj/machinery/camera{c_tag = "AI Chamber North"; dir = 2},/obj/structure/closet/extinguisher{pixel_x = 5; pixel_y = 30},/turf/simulated/floor,/area/hallway/primary/central) +"aHR" = (/obj/machinery/camera{c_tag = "AI Chamber North"; dir = 2},/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 30},/turf/simulated/floor,/area/hallway/primary/central) "aHS" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/hallway/primary/central) "aHT" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/hallway/primary/central) "aHU" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/hallway/primary/central) @@ -1776,7 +1776,7 @@ "aIh" = (/turf/simulated/floor{icon_state = "neutralcorner"; dir = 4},/area/hallway/primary/central) "aIi" = (/turf/simulated/floor{icon_state = "neutralcorner"; dir = 1},/area/hallway/primary/central) "aIj" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor{icon_state = "neutralcorner"; dir = 1},/area/hallway/primary/central) -"aIk" = (/obj/machinery/light{dir = 1},/obj/structure/closet/extinguisher{pixel_x = -5; pixel_y = 30},/turf/simulated/floor,/area/hallway/primary/central) +"aIk" = (/obj/machinery/light{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor,/area/hallway/primary/central) "aIl" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor,/area/hallway/primary/central) "aIm" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=EVA2"; location = "Dorm"},/turf/simulated/floor,/area/hallway/primary/central) "aIn" = (/turf/simulated/floor{icon_state = "wood"},/area/library) @@ -1902,7 +1902,7 @@ "aKD" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor{icon_state = "wood"},/area/library) "aKE" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor{icon_state = "wood"},/area/library) "aKF" = (/obj/structure/disposalpipe/sortjunction{sortType = list("Library")},/turf/simulated/wall,/area/library) -"aKG" = (/obj/machinery/power/apc{name = "Hydroponics APC"; dir = 8; pixel_x = -27; pixel_y = 3},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{icon_state = "green"},/area/hydroponics) +"aKG" = (/obj/machinery/power/apc{name = "Hydroponics APC"; dir = 8; pixel_x = -27; pixel_y = 3},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{icon_state = "green"},/area/hydroponics) "aKH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor{icon_state = "greencorner"; dir = 8},/area/hydroponics) "aKI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor,/area/hydroponics) "aKJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor{icon_state = "greencorner"; dir = 2},/area/hydroponics) @@ -1922,7 +1922,7 @@ "aKX" = (/obj/structure/stool,/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main) "aKY" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "chapel"},/area/chapel/main) "aKZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/structure/stool,/turf/simulated/floor{icon_state = "chapel"},/area/chapel/main) -"aLa" = (/obj/structure/closet/extinguisher{pixel_x = 27},/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/obj/machinery/light,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) +"aLa" = (/obj/structure/extinguisher_cabinet{pixel_x = 27},/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/obj/machinery/light,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aLb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/chapel/main) "aLc" = (/turf/simulated/wall,/area/hallway/secondary/exit) "aLd" = (/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry) @@ -1944,7 +1944,7 @@ "aLt" = (/obj/effect/landmark{name = "emcloset"},/turf/simulated/floor,/area/hallway/primary/port) "aLu" = (/obj/structure/table,/turf/simulated/floor,/area/hallway/primary/port) "aLv" = (/obj/machinery/camera{c_tag = "Port Hallway"; dir = 1},/obj/structure/table,/turf/simulated/floor,/area/hallway/primary/port) -"aLw" = (/obj/structure/closet/extinguisher{pixel_x = -5; pixel_y = -32},/turf/simulated/floor,/area/hallway/primary/port) +"aLw" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = -32},/turf/simulated/floor,/area/hallway/primary/port) "aLx" = (/turf/simulated/wall/r_wall,/area/hallway/primary/port) "aLy" = (/turf/simulated/wall/r_wall,/area/hallway/primary/central) "aLz" = (/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/primary/central) @@ -2150,7 +2150,7 @@ "aPr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/storage/tools) "aPs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/closet/secure_closet/chemical,/turf/simulated/floor{icon_state = "white"},/area/storage/tools) "aPt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/storage/tools) -"aPu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/closet/extinguisher{pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/storage/tools) +"aPu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/storage/tools) "aPv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/storage/tools) "aPw" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/hallway/primary/central) "aPx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/central) @@ -2434,7 +2434,7 @@ "aUP" = (/obj/structure/stool/bed/chair,/turf/simulated/floor,/area/security/vacantoffice) "aUQ" = (/obj/machinery/copier,/turf/simulated/floor,/area/security/vacantoffice) "aUR" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/maintenance/port) -"aUS" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/light/small{dir = 1},/obj/machinery/disposal/toilet{tag = "icon-toilet (EAST)"; icon_state = "toilet"; dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) +"aUS" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/light/small{dir = 1},/obj/structure/toilet{tag = "icon-toilet (EAST)"; icon_state = "toilet"; dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) "aUT" = (/obj/machinery/door/airlock{name = "Unit 1"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) "aUU" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) "aUV" = (/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) @@ -2462,8 +2462,8 @@ "aVr" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai) "aVs" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-2"; tag = "90Curve"},/turf/simulated/wall/r_wall,/area/turret_protected/ai) "aVt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/turret_protected/ai) -"aVu" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads) -"aVv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/door/airlock/secure{name = "Heads of Staff"; req_access_txt = "19"},/turf/simulated/floor,/area/crew_quarters/heads) +"aVu" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/hop) +"aVv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/door/airlock/secure{name = "Heads of Staff"; req_access_txt = "19"},/turf/simulated/floor,/area/crew_quarters/heads/hop) "aVw" = (/turf/simulated/wall,/area/hallway/primary/central) "aVx" = (/obj/machinery/camera{c_tag = "Bridge Entrance East"; dir = 4; network = "SS13"},/turf/simulated/floor{dir = 1; icon_state = "bluecorner"},/area/hallway/primary/central) "aVy" = (/obj/machinery/power/apc{name = "Library APC"; dir = 8; pixel_x = -27; pixel_y = -1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{icon_state = "wood"},/area/library) @@ -2537,15 +2537,15 @@ "aWO" = (/obj/machinery/light/small{dir = 1},/obj/machinery/power/terminal{dir = 8},/obj/machinery/requests_console{department = "AI"; departmentType = 5; pixel_y = 29},/obj/structure/cable,/turf/simulated/floor/grid,/area/turret_protected/ai) "aWP" = (/obj/machinery/turret{id = "aicore"},/turf/simulated/floor/grid,/area/turret_protected/ai) "aWQ" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/grid,/area/turret_protected/ai) -"aWR" = (/obj/machinery/copier,/turf/simulated/floor,/area/crew_quarters/heads) -"aWS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/crew_quarters/heads) -"aWT" = (/obj/structure/filingcabinet,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor,/area/crew_quarters/heads) -"aWU" = (/obj/machinery/light{dir = 1},/obj/structure/table/reinforced,/obj/machinery/keycard_auth{pixel_y = 30},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/floor,/area/crew_quarters/heads) -"aWV" = (/obj/machinery/alarm{pixel_y = 23},/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/floor,/area/crew_quarters/heads) -"aWW" = (/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor,/area/crew_quarters/heads) -"aWX" = (/obj/machinery/atm{pixel_y = 30},/turf/simulated/floor,/area/crew_quarters/heads) -"aWY" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Bridge Delivery"; req_access_txt = "19"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/crew_quarters/heads) -"aWZ" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 4; icon_state = "right"; name = "Bridge Delivery"; req_access_txt = "34"},/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Bridge"},/turf/simulated/floor{icon_state = "bot"},/area/crew_quarters/heads) +"aWR" = (/obj/machinery/copier,/turf/simulated/floor,/area/crew_quarters/heads/hop) +"aWS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/crew_quarters/heads/hop) +"aWT" = (/obj/structure/filingcabinet,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor,/area/crew_quarters/heads/hop) +"aWU" = (/obj/machinery/light{dir = 1},/obj/structure/table/reinforced,/obj/machinery/keycard_auth{pixel_y = 30},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/floor,/area/crew_quarters/heads/hop) +"aWV" = (/obj/machinery/alarm{pixel_y = 23},/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/floor,/area/crew_quarters/heads/hop) +"aWW" = (/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor,/area/crew_quarters/heads/hop) +"aWX" = (/obj/machinery/atm{pixel_y = 30},/turf/simulated/floor,/area/crew_quarters/heads/hop) +"aWY" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Bridge Delivery"; req_access_txt = "19"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/crew_quarters/heads/hop) +"aWZ" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 4; icon_state = "right"; name = "Bridge Delivery"; req_access_txt = "34"},/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Bridge"},/turf/simulated/floor{icon_state = "bot"},/area/crew_quarters/heads/hop) "aXa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/library) "aXb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/library) "aXc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/library) @@ -2574,7 +2574,7 @@ "aXz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/chapel/main) "aXA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/chapel/main) "aXB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/chapel/main) -"aXC" = (/obj/structure/closet/extinguisher{pixel_x = -27; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit) +"aXC" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit) "aXD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aXE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aXF" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/turf/simulated/floor,/area/hallway/secondary/entry) @@ -2583,7 +2583,7 @@ "aXI" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/port) "aXJ" = (/obj/machinery/door/airlock{name = "Unit 2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) "aXK" = (/obj/structure/disposalpipe/junction,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) -"aXL" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light/small{dir = 4},/obj/machinery/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 20},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) +"aXL" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light/small{dir = 4},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 20},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) "aXM" = (/obj/machinery/portable_atmospherics/pump,/obj/machinery/camera{c_tag = "Locker Room East"; dir = 4; network = "SS13"},/turf/simulated/floor{icon_state = "delivery"},/area/crew_quarters/locker) "aXN" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/crew_quarters/locker) "aXO" = (/obj/machinery/mineral/input,/turf/simulated/floor{tag = "icon-vault (NORTHWEST)"; icon_state = "vault"; dir = 9},/area/mint) @@ -2611,12 +2611,12 @@ "aYk" = (/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor/grid,/area/turret_protected/ai) "aYl" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai) "aYm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/wall/r_wall,/area/turret_protected/ai) -"aYn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall/r_wall,/area/crew_quarters/heads) -"aYo" = (/obj/machinery/vending/coffee,/turf/simulated/floor,/area/crew_quarters/heads) -"aYp" = (/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/crew_quarters/heads) -"aYq" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/crew_quarters/heads) -"aYr" = (/turf/simulated/floor,/area/crew_quarters/heads) -"aYs" = (/obj/structure/closet/wardrobe/hop,/turf/simulated/floor,/area/crew_quarters/heads) +"aYn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall/r_wall,/area/crew_quarters/heads/hop) +"aYo" = (/obj/machinery/vending/coffee,/turf/simulated/floor,/area/crew_quarters/heads/hop) +"aYp" = (/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/crew_quarters/heads/hop) +"aYq" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/crew_quarters/heads/hop) +"aYr" = (/turf/simulated/floor,/area/crew_quarters/heads/hop) +"aYs" = (/obj/structure/closet/wardrobe/hop,/turf/simulated/floor,/area/crew_quarters/heads/hop) "aYt" = (/obj/machinery/door/firedoor/border_only{dir = 4},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/primary/central) "aYu" = (/obj/machinery/door/firedoor/border_only{dir = 8},/turf/simulated/floor,/area/hallway/primary/starboard) "aYv" = (/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/hallway/primary/starboard) @@ -2627,7 +2627,7 @@ "aYA" = (/obj/machinery/power/apc{dir = 1; name = "Starboard Hall APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/hallway/primary/starboard) "aYB" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/starboard) "aYC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/hallway/primary/starboard) -"aYD" = (/obj/structure/closet/extinguisher{pixel_x = -5; pixel_y = 30},/turf/simulated/floor,/area/hallway/primary/starboard) +"aYD" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor,/area/hallway/primary/starboard) "aYE" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/starboard) "aYF" = (/obj/structure/disposalpipe/sortjunction{backsort = 0; dir = 4; icon_state = "pipe-j2s"; sortType = list()},/turf/simulated/floor,/area/hallway/primary/starboard) "aYG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light{dir = 1},/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor,/area/hallway/primary/starboard) @@ -2651,7 +2651,7 @@ "aYY" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/maintenance/port) "aYZ" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/port) "aZa" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) -"aZb" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 20},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) +"aZb" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 20},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) "aZc" = (/obj/machinery/camera{c_tag = "Mint Press"; dir = 4; network = "Command"},/turf/simulated/floor{icon_state = "dark"},/area/mint) "aZd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/mint) "aZe" = (/obj/item/weapon/coin/silver,/obj/item/weapon/coin/silver,/obj/item/weapon/coin/silver,/obj/item/weapon/coin/silver,/obj/item/weapon/coin/silver,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/mint) @@ -2675,12 +2675,12 @@ "aZw" = (/turf/simulated/wall,/area/turret_protected/ai) "aZx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai) "aZy" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/grid,/area/turret_protected/ai) -"aZz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/crew_quarters/heads) -"aZA" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/vending/cola,/turf/simulated/floor,/area/crew_quarters/heads) -"aZB" = (/mob/living/simple_animal/corgi/Ian,/turf/simulated/floor,/area/crew_quarters/heads) -"aZC" = (/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/crew_quarters/heads) -"aZD" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/stamp/hop,/obj/item/weapon/hand_labeler,/turf/simulated/floor,/area/crew_quarters/heads) -"aZE" = (/turf/simulated/wall,/area/crew_quarters/heads) +"aZz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/crew_quarters/heads/hop) +"aZA" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/vending/cola,/turf/simulated/floor,/area/crew_quarters/heads/hop) +"aZB" = (/mob/living/simple_animal/corgi/Ian,/turf/simulated/floor,/area/crew_quarters/heads/hop) +"aZC" = (/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/crew_quarters/heads/hop) +"aZD" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/stamp/hop,/obj/item/weapon/hand_labeler,/turf/simulated/floor,/area/crew_quarters/heads/hop) +"aZE" = (/turf/simulated/wall,/area/crew_quarters/heads/hop) "aZF" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central) "aZG" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor,/area/hallway/primary/starboard) "aZH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/hallway/primary/starboard) @@ -2697,7 +2697,7 @@ "aZS" = (/obj/structure/disposalpipe/segment{dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/port) "aZT" = (/obj/machinery/door/airlock{name = "Unit 3"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) "aZU" = (/obj/structure/disposalpipe/junction,/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) -"aZV" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/machinery/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 20},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) +"aZV" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 20},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) "aZW" = (/obj/item/latexballon{name = "Larry"},/turf/simulated/floor/plating,/area/crew_quarters/locker/locker_toilet) "aZX" = (/obj/item/latexballon{name = "Moe"},/turf/simulated/floor/plating,/area/crew_quarters/locker/locker_toilet) "aZY" = (/obj/item/weapon/paper{desc = "Due to spending cutbacks certin organic crewmembers have had to be replaced with synthetic analogs.
    We apologise for any inconvenience caused.

    Nanotrasen Finance Department"; name = "Spending Cutbacks"},/obj/item/latexballon{name = "Curly"},/turf/simulated/floor/plating,/area/crew_quarters/locker/locker_toilet) @@ -2725,11 +2725,11 @@ "bau" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai) "bav" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "AI Core Door"; req_access_txt = "16"},/turf/simulated/floor/grid,/area/turret_protected/ai) "baw" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 0; freerange = 1; name = "General Listening Channel"; pixel_x = 0; pixel_y = 19},/obj/item/device/radio/intercom{anyai = 0; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 0; pixel_y = -26},/obj/item/device/radio/intercom{anyai = 0; broadcasting = 1; freerange = 1; listening = 0; name = "General Broadcasting Channel"; pixel_x = 27; pixel_y = -3},/turf/simulated/floor/grid,/area/turret_protected/ai) -"bax" = (/obj/machinery/vending/snack,/turf/simulated/floor,/area/crew_quarters/heads) -"bay" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/crew_quarters/heads) -"baz" = (/obj/structure/stool/bed/chair/comfy/teal{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/crew_quarters/heads) -"baA" = (/obj/machinery/camera{c_tag = "Heads of Staff"; dir = 8; network = "Command"},/obj/structure/table/reinforced,/obj/item/weapon/secstorage/sbriefcase,/obj/item/ashtray/glass,/turf/simulated/floor,/area/crew_quarters/heads) -"baB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/crew_quarters/heads) +"bax" = (/obj/machinery/vending/snack,/turf/simulated/floor,/area/crew_quarters/heads/hop) +"bay" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/crew_quarters/heads/hop) +"baz" = (/obj/structure/stool/bed/chair/comfy/teal{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/crew_quarters/heads/hop) +"baA" = (/obj/machinery/camera{c_tag = "Heads of Staff"; dir = 8; network = "Command"},/obj/structure/table/reinforced,/obj/item/weapon/secstorage/sbriefcase,/obj/item/ashtray/glass,/turf/simulated/floor,/area/crew_quarters/heads/hop) +"baB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/crew_quarters/heads/hop) "baC" = (/turf/simulated/floor{icon_state = "bot"},/area/hallway/primary/central) "baD" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "bot"},/area/hallway/primary/central) "baE" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Med"; location = "HOP"},/turf/simulated/floor,/area/hallway/primary/central) @@ -2745,7 +2745,7 @@ "baO" = (/turf/simulated/floor{dir = 8; icon_state = "whitecorner"},/area/hallway/primary/starboard) "baP" = (/obj/machinery/door/firedoor/border_only{dir = 8},/obj/machinery/door/airlock/glass,/turf/simulated/floor,/area/hallway/secondary/exit) "baQ" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/light,/turf/simulated/floor,/area/hallway/secondary/exit) -"baR" = (/obj/structure/closet/extinguisher{pixel_x = 27},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/hallway/secondary/exit) +"baR" = (/obj/structure/extinguisher_cabinet{pixel_x = 27},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/hallway/secondary/exit) "baS" = (/turf/simulated/wall/r_wall,/area/maintenance/disposal) "baT" = (/obj/machinery/conveyor{id = "garbage"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/disposal) "baU" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/turf/simulated/floor/plating,/area/maintenance/disposal) @@ -2758,7 +2758,7 @@ "bbb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/wall,/area/maintenance/port) "bbc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/crew_quarters/locker/locker_toilet) "bbd" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) -"bbe" = (/obj/machinery/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 20},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) +"bbe" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 20},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) "bbf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/maintenance/port) "bbg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/port) "bbh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = list("Locker Room")},/turf/simulated/floor/plating,/area/maintenance/port) @@ -2789,10 +2789,10 @@ "bbG" = (/obj/machinery/door/window{name = "AI Core Door"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/hologram/holopad,/turf/simulated/floor/grid,/area/turret_protected/ai) "bbH" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/turf/simulated/floor/grid,/area/turret_protected/ai) "bbI" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/grid,/area/turret_protected/ai) -"bbJ" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/table/reinforced,/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/obj/item/device/destTagger{pixel_x = 4; pixel_y = 3},/turf/simulated/floor,/area/crew_quarters/heads) -"bbK" = (/obj/effect/landmark/start{name = "Head of Personnel"},/turf/simulated/floor,/area/crew_quarters/heads) -"bbL" = (/obj/machinery/computer/card,/turf/simulated/floor,/area/crew_quarters/heads) -"bbM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/crew_quarters/heads) +"bbJ" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/table/reinforced,/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/obj/item/device/destTagger{pixel_x = 4; pixel_y = 3},/turf/simulated/floor,/area/crew_quarters/heads/hop) +"bbK" = (/obj/effect/landmark/start{name = "Head of Personnel"},/turf/simulated/floor,/area/crew_quarters/heads/hop) +"bbL" = (/obj/machinery/computer/card,/turf/simulated/floor,/area/crew_quarters/heads/hop) +"bbM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/crew_quarters/heads/hop) "bbN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/primary/central) "bbO" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor,/area/hallway/primary/central) "bbP" = (/turf/simulated/wall,/area/crew_quarters/kitchen) @@ -2852,13 +2852,13 @@ "bcR" = (/obj/machinery/ai_slipper,/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/obj/effect/decal/warning_stripes{tag = "icon-U-S"; icon_state = "U-S"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai) "bcS" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai) "bcT" = (/obj/machinery/light/small{dir = 4},/obj/machinery/turret{dir = 8; id = "aicore"},/turf/simulated/floor/grid,/area/turret_protected/ai) -"bcU" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/turf/simulated/floor,/area/crew_quarters/heads) -"bcV" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor,/area/crew_quarters/heads) -"bcW" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor,/area/crew_quarters/heads) -"bcX" = (/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor,/area/crew_quarters/heads) -"bcY" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor,/area/crew_quarters/heads) -"bcZ" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor,/area/crew_quarters/heads) -"bda" = (/obj/machinery/door/window{base_state = "right"; dir = 8; icon = 'windoor.dmi'; icon_state = "right"; name = "Heads of Staff"; req_access_txt = "19"},/obj/machinery/door/window{dir = 4; icon = 'windoor.dmi'; req_access_txt = "0"},/obj/structure/table/reinforced,/obj/structure/noticeboard{pixel_y = -27},/turf/simulated/floor,/area/crew_quarters/heads) +"bcU" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/turf/simulated/floor,/area/crew_quarters/heads/hop) +"bcV" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor,/area/crew_quarters/heads/hop) +"bcW" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor,/area/crew_quarters/heads/hop) +"bcX" = (/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor,/area/crew_quarters/heads/hop) +"bcY" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor,/area/crew_quarters/heads/hop) +"bcZ" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor,/area/crew_quarters/heads/hop) +"bda" = (/obj/machinery/door/window{base_state = "right"; dir = 8; icon = 'windoor.dmi'; icon_state = "right"; name = "Heads of Staff"; req_access_txt = "19"},/obj/machinery/door/window{dir = 4; icon = 'windoor.dmi'; req_access_txt = "0"},/obj/structure/table/reinforced,/obj/structure/noticeboard{pixel_y = -27},/turf/simulated/floor,/area/crew_quarters/heads/hop) "bdb" = (/turf/simulated/floor{icon_state = "delivery"},/area/hallway/primary/central) "bdc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/primary/central) "bdd" = (/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/hallway/primary/central) @@ -2939,17 +2939,17 @@ "beA" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/obj/machinery/camera{c_tag = "AI Chamber South-1"; dir = 1; network = "Command"},/turf/simulated/floor/grid,/area/turret_protected/ai) "beB" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/grid,/area/turret_protected/ai) "beC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/turret_protected/ai) -"beD" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/crew_quarters/heads) -"beE" = (/obj/structure/disposalpipe/segment,/obj/structure/closet/secure_closet/hop,/turf/simulated/floor,/area/crew_quarters/heads) -"beF" = (/obj/machinery/power/apc{dir = 2; name = "Head of Staff APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor,/area/crew_quarters/heads) -"beG" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor,/area/crew_quarters/heads) -"beH" = (/obj/machinery/light,/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/requests_console{department = "Head of personnel's desk"; departmentType = 5; name = "HOP RC"; pixel_y = -30},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/crew_quarters/heads) -"beI" = (/obj/machinery/computer/secure_data,/turf/simulated/floor,/area/crew_quarters/heads) +"beD" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/crew_quarters/heads/hop) +"beE" = (/obj/structure/disposalpipe/segment,/obj/structure/closet/secure_closet/hop,/turf/simulated/floor,/area/crew_quarters/heads/hop) +"beF" = (/obj/machinery/power/apc{dir = 2; name = "Head of Staff APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor,/area/crew_quarters/heads/hop) +"beG" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor,/area/crew_quarters/heads/hop) +"beH" = (/obj/machinery/light,/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/requests_console{department = "Head of personnel's desk"; departmentType = 5; name = "HOP RC"; pixel_y = -30},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/crew_quarters/heads/hop) +"beI" = (/obj/machinery/computer/secure_data,/turf/simulated/floor,/area/crew_quarters/heads/hop) "beJ" = (/turf/simulated/floor{icon_state = "red"; dir = 8},/area/hallway/primary/central) "beK" = (/obj/machinery/power/apc{dir = 8; name = "Kitchen APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "beL" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "beM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) -"beN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/sink/kitchen2{pixel_y = 28},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) +"beN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sink/kitchen{pixel_y = 28},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "beO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "beP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "beQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/machinery/door_control{id = "kitchen"; name = "Hallway Shutters"; pixel_x = -1; pixel_y = 24},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) @@ -3032,13 +3032,13 @@ "bgp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/crew_quarters/captain) "bgq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/turret_protected/ai) "bgr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/turretid{id = "upload"; pixel_x = -24; pixel_y = -7},/obj/machinery/turretid{id = "aicore"; pixel_x = -24; pixel_y = 7},/obj/effect/decal/warning_stripes{tag = "icon-E-corner"; icon_state = "E-corner"},/obj/effect/decal/warning_stripes{tag = "icon-W-corner"; icon_state = "W-corner"},/obj/machinery/camera{c_tag = "AI Core Tunnel"; dir = 8; network = "Command"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai) -"bgs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/crew_quarters/heads) -"bgt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/disposalpipe/sortjunction{backsort = 1; backType = list("Captain"); dir = 4; icon_state = "pipe-j2s"; sortType = list("HoP Office")},/turf/simulated/wall/r_wall,/area/crew_quarters/heads) -"bgu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/command{name = "Conference Room"; req_access = null; req_access_txt = "19"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/crew_quarters/heads) -"bgv" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/crew_quarters/heads) -"bgw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/crew_quarters/heads) -"bgx" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/crew_quarters/heads) -"bgy" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/crew_quarters/heads) +"bgs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/crew_quarters/heads/hop) +"bgt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/disposalpipe/sortjunction{backsort = 1; backType = list("Captain"); dir = 4; icon_state = "pipe-j2s"; sortType = list("HoP Office")},/turf/simulated/wall/r_wall,/area/crew_quarters/heads/hop) +"bgu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/command{name = "Conference Room"; req_access = null; req_access_txt = "19"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/crew_quarters/heads/hop) +"bgv" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/crew_quarters/heads/hop) +"bgw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/crew_quarters/heads/hop) +"bgx" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/crew_quarters/heads/hop) +"bgy" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/crew_quarters/heads/hop) "bgz" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/hallway/primary/central) "bgA" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/door/firedoor/border_only,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/central) "bgB" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/crew_quarters/kitchen) @@ -3196,7 +3196,7 @@ "bjx" = (/obj/structure/rack{dir = 1},/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plating,/area/maintenance/maintcentral) "bjy" = (/obj/effect/landmark{name = "blobstart"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/maintcentral) "bjz" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/maintenance/maintcentral) -"bjA" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/disposalpipe/segment{dir = 1},/obj/structure/closet/extinguisher{pixel_x = -27; pixel_y = 1},/turf/simulated/floor,/area/hallway/primary/central) +"bjA" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/disposalpipe/segment{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/turf/simulated/floor,/area/hallway/primary/central) "bjB" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/central) "bjC" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/kitchen) "bjD" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) @@ -3271,7 +3271,7 @@ "bkU" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/snacks/pie,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "kitchen2"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bkV" = (/obj/structure/table,/obj/item/ashtray/plastic,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) "bkW" = (/obj/structure/table,/obj/item/clothing/head/cakehat,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"bkX" = (/obj/structure/closet/extinguisher{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Cafeteria North East"; dir = 8; network = "SS13"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"bkX" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Cafeteria North East"; dir = 8; network = "SS13"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) "bkY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/maintcentral) "bkZ" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/obj/machinery/computer/security/medbay,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bla" = (/obj/effect/landmark/start{name = "Medical Doctor"},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) @@ -3284,7 +3284,7 @@ "blh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/chemistry) "bli" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/chemistry) "blj" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/closet/wardrobe/chemistry_white,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"blk" = (/obj/structure/closet/extinguisher{pixel_x = -27; pixel_y = 0},/obj/machinery/copier,/turf/simulated/floor{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/lab) +"blk" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/copier,/turf/simulated/floor{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/lab) "bll" = (/turf/simulated/floor{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/lab) "blm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/lab) "bln" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/lab) @@ -3384,7 +3384,7 @@ "bnd" = (/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor,/area/hallway/primary/central) "bne" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table,/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/obj/item/device/destTagger{pixel_x = 4; pixel_y = 3},/obj/item/weapon/reagent_containers/food/condiment/enzyme,/obj/machinery/camera{c_tag = "Kitchen"; dir = 4; network = "Mess Hall"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bnf" = (/obj/structure/table,/obj/machinery/blender{pixel_y = 0},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) -"bng" = (/obj/structure/closet/extinguisher{pixel_x = -28; pixel_y = 0},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"bng" = (/obj/structure/extinguisher_cabinet{pixel_x = -28; pixel_y = 0},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) "bnh" = (/mob/living/carbon/monkey{name = "Pun Pun"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) "bni" = (/obj/machinery/light,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) "bnj" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) @@ -3584,7 +3584,7 @@ "bqV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bqW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/quartermaster/storage) "bqX" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/quartermaster/storage) -"bqY" = (/obj/machinery/camera{c_tag = "Cargo Loading Area South"; dir = 1; network = "Cargo"},/obj/structure/closet/extinguisher{pixel_x = -5; pixel_y = -31},/turf/simulated/floor,/area/quartermaster/storage) +"bqY" = (/obj/machinery/camera{c_tag = "Cargo Loading Area South"; dir = 1; network = "Cargo"},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = -31},/turf/simulated/floor,/area/quartermaster/storage) "bqZ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/machinery/firealarm{dir = 2; pixel_y = -24},/turf/simulated/floor,/area/quartermaster/storage) "bra" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/machinery/door/firedoor/border_only{dir = 8},/turf/simulated/floor,/area/quartermaster/storage) "brb" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor,/area/quartermaster/storage) @@ -3629,7 +3629,7 @@ "brO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/disposalpipe/sortjunction{sortType = list("Diner")},/turf/simulated/wall,/area/maintenance/maintcentral) "brP" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "brQ" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"brR" = (/obj/machinery/sink{icon_state = "sink"; dir = 4; pixel_x = 11; pixel_y = 2},/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"brR" = (/obj/structure/sink{icon_state = "sink"; dir = 4; pixel_x = 11; pixel_y = 2},/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "brS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "brT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "brU" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "Genetics Outer Shutters"; name = "Shutters"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) @@ -3739,7 +3739,7 @@ "btU" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/hallway/primary/aft) "btV" = (/obj/machinery/camera{c_tag = "Aft Primary Hallway 5"; dir = 2},/turf/simulated/floor,/area/hallway/primary/aft) "btW" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/hallway/primary/aft) -"btX" = (/obj/structure/closet/extinguisher{pixel_x = -5; pixel_y = 30},/turf/simulated/floor,/area/hallway/primary/aft) +"btX" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor,/area/hallway/primary/aft) "btY" = (/obj/machinery/atm{pixel_y = 30},/turf/simulated/floor,/area/hallway/primary/aft) "btZ" = (/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor,/area/hallway/primary/aft) "bua" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/hallway/primary/aft) @@ -3937,7 +3937,7 @@ "bxK" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/vending/wallmed1{pixel_y = 28},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bxL" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bxM" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bxN" = (/obj/machinery/vending/wallmed1{pixel_y = 28},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/sink{icon_state = "sink"; dir = 4; pixel_x = 11; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bxN" = (/obj/machinery/vending/wallmed1{pixel_y = 28},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/sink{icon_state = "sink"; dir = 4; pixel_x = 11; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bxO" = (/obj/machinery/door_control{dir = 8; id = "Genetics Inner Shutters"; name = "Genetics Inner Shutters"; pixel_x = -22; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bxP" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bxQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/genetics) @@ -3969,7 +3969,7 @@ "byq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/closet/secure_closet/qm_personal,/turf/simulated/floor,/area/quartermaster/qm) "byr" = (/obj/structure/table,/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/quartermaster/qm) "bys" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1},/obj/structure/table,/obj/item/weapon/coin/silver,/obj/item/weapon/coin/silver,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor,/area/quartermaster/qm) -"byt" = (/obj/structure/closet/extinguisher{pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor,/area/quartermaster/miningdock) +"byt" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor,/area/quartermaster/miningdock) "byu" = (/turf/simulated/floor,/area/quartermaster/miningdock) "byv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/quartermaster/miningdock) "byw" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/security/nuke_storage) @@ -4011,7 +4011,7 @@ "bzg" = (/obj/structure/stool/bed/chair,/obj/effect/landmark/start{name = "Geneticist"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bzh" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/stool/bed/chair,/obj/effect/landmark/start{name = "Geneticist"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bzi" = (/obj/structure/disposalpipe/segment{dir = 1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"bzj" = (/obj/structure/closet/extinguisher{pixel_x = 27},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"bzj" = (/obj/structure/extinguisher_cabinet{pixel_x = 27},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bzk" = (/obj/machinery/atmospherics/trinary/filter{dir = 1; filter_type = 3; icon_state = "intact_off"; locked = 0; name = "High precision gas extractor"; on = 0},/turf/simulated/floor,/area/toxins/toxinslab) "bzl" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor{icon_state = "bot"},/area/toxins/toxinslab) "bzm" = (/obj/machinery/atmospherics/portables_connector{dir = 4; name = "Node 1"},/turf/simulated/floor{icon_state = "bot"},/area/toxins/toxinslab) @@ -4022,7 +4022,7 @@ "bzr" = (/obj/structure/table,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 8},/obj/item/weapon/pen,/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/toxins/toxinslab) "bzs" = (/obj/structure/table,/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/toxins/toxinslab) "bzt" = (/obj/structure/table,/obj/item/weapon/wrench,/turf/simulated/floor{icon_state = "white"},/area/toxins/toxinslab) -"bzu" = (/obj/structure/closet/extinguisher{pixel_x = -27},/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_on"; name = "Gas pump"; on = 1},/turf/simulated/floor,/area/toxins/mixing) +"bzu" = (/obj/structure/extinguisher_cabinet{pixel_x = -27},/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_on"; name = "Gas pump"; on = 1},/turf/simulated/floor,/area/toxins/mixing) "bzv" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/simulated/floor,/area/toxins/mixing) "bzw" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/turf/simulated/floor{icon_state = "bot"},/area/toxins/mixing) "bzx" = (/obj/machinery/atmospherics/trinary/filter{dir = 2; locked = 0},/turf/simulated/floor,/area/toxins/mixing) @@ -4083,7 +4083,7 @@ "bAA" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Patient Room 2"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bAB" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bAC" = (/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bAD" = (/obj/machinery/door_control{id = "Patient Room 2 Shutters"; name = "Privacy Shutters"; pixel_y = -25},/obj/machinery/sink{icon_state = "sink"; dir = 4; pixel_x = 11; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bAD" = (/obj/machinery/door_control{id = "Patient Room 2 Shutters"; name = "Privacy Shutters"; pixel_y = -25},/obj/structure/sink{icon_state = "sink"; dir = 4; pixel_x = 11; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bAE" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/door_control{id = "Patient Room 3 Shutters"; name = "Privacy Shutters"; pixel_y = -25},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bAF" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bAG" = (/obj/machinery/computer/scan_consolenew,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) @@ -4157,7 +4157,7 @@ "bBW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/medical/cryo) "bBX" = (/turf/simulated/wall,/area/medical/cryo) "bBY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bBZ" = (/obj/structure/closet/extinguisher{pixel_x = 27},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bBZ" = (/obj/structure/extinguisher_cabinet{pixel_x = 27},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bCa" = (/turf/simulated/wall,/area/medical/surgery) "bCb" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/disposalpipe/segment{dir = 1},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bCc" = (/obj/structure/window/reinforced,/turf/simulated/floor,/area/toxins/toxinslab) @@ -4227,7 +4227,7 @@ "bDo" = (/obj/machinery/bodyscanner,/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/medical/surgery) "bDp" = (/obj/machinery/body_scanconsole,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bDq" = (/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Sleeper Room"; dir = 2; network = "Medbay"; pixel_x = 22},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) -"bDr" = (/obj/machinery/sink{pixel_y = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) +"bDr" = (/obj/structure/sink{pixel_y = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bDs" = (/obj/structure/table,/obj/item/weapon/storage/stma_kit{pixel_x = 0; pixel_y = 0},/obj/machinery/firealarm{dir = 1; pixel_x = 24; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bDt" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/stamp/rd,/obj/item/ashtray/glass,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) "bDu" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/structure/table,/obj/item/device/taperecorder,/obj/machinery/light{dir = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) @@ -4772,7 +4772,7 @@ "bNN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) "bNO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/cmo) "bNP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bNQ" = (/obj/structure/closet/extinguisher{pixel_x = 27},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bNQ" = (/obj/structure/extinguisher_cabinet{pixel_x = 27},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bNR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/medical/surgery) "bNS" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) "bNT" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) @@ -4876,7 +4876,7 @@ "bPN" = (/obj/machinery/power/apc{dir = 8; name = "Atmospherics APC"; pixel_x = -24},/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/structure/cable,/turf/simulated/floor,/area/atmos) "bPO" = (/obj/machinery/atmospherics/unary/heat_reservoir/heater,/turf/simulated/floor,/area/atmos) "bPP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/simulated/wall,/area/atmos) -"bPQ" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 5; icon_state = "intact-c"; level = 2},/obj/structure/closet/extinguisher{pixel_x = -27; pixel_y = 0},/turf/simulated/floor,/area/atmos) +"bPQ" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 5; icon_state = "intact-c"; level = 2},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor,/area/atmos) "bPR" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; icon_state = "intact-c"; level = 2},/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; dir = 4; icon_state = "manifold-c"; initialize_directions = 11; level = 2},/turf/simulated/floor,/area/atmos) "bPS" = (/obj/machinery/atmospherics/binary/passive_gate,/turf/simulated/floor,/area/atmos) "bPT" = (/obj/machinery/atmospherics/pipe/simple{color = "yellow"; icon_state = "intact-y"; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area/atmos) @@ -5037,14 +5037,14 @@ "bSS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/sign/biohazard,/turf/simulated/wall/r_wall,/area/medical/virology) "bST" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/access_button{command = "cycle_exterior"; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -23; pixel_y = -8; req_access_txt = "39"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bSU" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bSV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 20},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"bSV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 20},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bSW" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/medical/virology) "bSX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "bSY" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "bSZ" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/medical/research{name = "Research Division"}) "bTa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor,/area/medical/research{name = "Research Division"}) "bTb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/medical/research{name = "Research Division"}) -"bTc" = (/obj/structure/closet/extinguisher{pixel_x = 27},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 1},/obj/machinery/camera{c_tag = "Toxins Auxiliary Storage"; dir = 8; network = "Research"; pixel_x = 0; pixel_y = -22},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/medical/research{name = "Research Division"}) +"bTc" = (/obj/structure/extinguisher_cabinet{pixel_x = 27},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 1},/obj/machinery/camera{c_tag = "Toxins Auxiliary Storage"; dir = 8; network = "Research"; pixel_x = 0; pixel_y = -22},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "bTd" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/toxins/xenobiology) "bTe" = (/mob/living/carbon/metroid,/turf/simulated/floor{icon_state = "dark"},/area/toxins/xenobiology) "bTf" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/toxins/xenobiology) @@ -5077,7 +5077,7 @@ "bTG" = (/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bTH" = (/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1449; holdopen = 0; icon_state = "door_locked"; id_tag = "virology_airlock_exterior"; locked = 1; name = "Virology Access"; req_access_txt = "39"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bTI" = (/obj/machinery/atmospherics/unary/vent_scrubber,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bTJ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 20},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"bTJ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 20},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bTK" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/medical/research{name = "Research Division"}) "bTL" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/light/small,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "bTM" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/medical/research{name = "Research Division"}) @@ -5103,7 +5103,7 @@ "bUg" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=1"; freq = 1400; location = "Atmospherics"},/obj/machinery/door/window{base_state = "left"; dir = 2; icon_state = "left"; name = "Atmos Delivery"; req_access_txt = "34"},/turf/simulated/floor{icon_state = "bot"},/area/hallway/primary/aft) "bUh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/atmos) "bUi" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor,/area/atmos) -"bUj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{tag = "icon-intact-r (NORTH)"; icon_state = "intact-r"; dir = 1},/obj/structure/closet/extinguisher{pixel_x = -27; pixel_y = 0},/obj/machinery/portable_atmospherics/pump,/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/atmos) +"bUj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{tag = "icon-intact-r (NORTH)"; icon_state = "intact-r"; dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/portable_atmospherics/pump,/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/atmos) "bUk" = (/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; dir = 4; icon_state = "manifold-c"; initialize_directions = 11; level = 2},/turf/simulated/floor,/area/atmos) "bUl" = (/obj/machinery/pipedispenser/disposal,/turf/simulated/floor,/area/atmos) "bUm" = (/obj/structure/table,/turf/simulated/floor,/area/atmos) @@ -5126,7 +5126,7 @@ "bUD" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bUE" = (/obj/structure/disposalpipe/segment{dir = 1},/obj/machinery/access_button{command = "cycle_exterior"; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = 23; pixel_y = 8; req_access_txt = "39"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bUF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bUG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/access_button{command = "cycle_interior"; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -8; pixel_y = -19; req_access_txt = "39"},/obj/machinery/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 20},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"bUG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/access_button{command = "cycle_interior"; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -8; pixel_y = -19; req_access_txt = "39"},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 20},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bUH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/wall/r_wall,/area/medical/virology) "bUI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/virology) "bUJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall/r_wall,/area/medical/virology) @@ -5147,7 +5147,7 @@ "bUY" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/turf/simulated/floor,/area/hallway/primary/aft) "bUZ" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=AIE"; location = "AftH"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/hallway/primary/aft) "bVa" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "cautioncorner"; dir = 4},/area/hallway/primary/aft) -"bVb" = (/obj/structure/closet/extinguisher{pixel_x = 0; pixel_y = -27},/turf/simulated/floor,/area/hallway/primary/aft) +"bVb" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -27},/turf/simulated/floor,/area/hallway/primary/aft) "bVc" = (/obj/machinery/light/small,/turf/simulated/floor,/area/hallway/primary/aft) "bVd" = (/turf/simulated/floor{icon_state = "caution"; dir = 4},/area/hallway/primary/aft) "bVe" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Airlock Window Shield"; opacity = 0},/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/simulated/floor,/area/atmos) @@ -5408,7 +5408,7 @@ "bZZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) "caa" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "yellowcorner"},/area/hallway/primary/aft) "cab" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/engine/engineering_break_room) -"cac" = (/obj/structure/disposalpipe/sortjunction{backsort = 1; backType = list("Chief Engineer"); dir = 8; icon_state = "pipe-j2s"; sortType = list("Engineering")},/obj/structure/filingcabinet,/obj/structure/closet/extinguisher{pixel_x = -27; pixel_y = 0},/turf/simulated/floor,/area/engine/engineering_break_room) +"cac" = (/obj/structure/disposalpipe/sortjunction{backsort = 1; backType = list("Chief Engineer"); dir = 8; icon_state = "pipe-j2s"; sortType = list("Engineering")},/obj/structure/filingcabinet,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor,/area/engine/engineering_break_room) "cad" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/engineering_break_room) "cae" = (/obj/structure/stool/bed/chair/comfy/black{dir = 1},/obj/effect/landmark/start{name = "Roboticist"},/obj/structure/disposalpipe/sortjunction{backsort = 1; backType = list(); dir = 8; icon_state = "pipe-j2s"; sortType = list("Engineering")},/turf/simulated/floor,/area/engine/engineering_break_room) "caf" = (/obj/structure/stool/bed/chair/comfy/black{dir = 1},/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/engineering_break_room) @@ -5650,7 +5650,7 @@ "ceH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/aft) "ceI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/aft) "ceJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/aft) -"ceK" = (/obj/structure/closet/extinguisher{pixel_x = -5; pixel_y = 30},/turf/simulated/floor,/area/engine/engineering) +"ceK" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor,/area/engine/engineering) "ceL" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/obj/item/weapon/storage/toolbox/electrical{pixel_x = -5; pixel_y = -5},/obj/item/weapon/storage/toolbox/electrical{pixel_x = -5; pixel_y = -5},/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/obj/item/weapon/storage/toolbox/electrical{pixel_x = -5; pixel_y = -5},/turf/simulated/floor,/area/engine/engineering) "ceM" = (/obj/machinery/cell_charger,/obj/machinery/camera{c_tag = "SMES Room"; dir = 4; network = "Engineering"},/obj/structure/table/reinforced,/turf/simulated/floor,/area/engine/engineering) "ceN" = (/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/module/power_control,/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/obj/structure/table/reinforced,/turf/simulated/floor,/area/engine/engineering) @@ -5666,12 +5666,12 @@ "ceX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/engine/engineering) "ceY" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) "ceZ" = (/obj/structure/table/reinforced,/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/obj/item/device/destTagger{pixel_x = 4; pixel_y = 3},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"cfa" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig,/obj/item/clothing/head/helmet/space/rig,/obj/item/clothing/suit/space/rig/engspace_suit,/obj/item/clothing/head/helmet/space/rig/engspace_helmet,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor,/area/engine/engineering) +"cfa" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig,/obj/item/clothing/head/helmet/space/rig,/obj/item/clothing/suit/space/engineer,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/item/clothing/head/helmet/space/engineer,/turf/simulated/floor,/area/engine/engineering) "cfb" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/engi,/obj/item/weapon/tank/emergency_oxygen/engi,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/machinery/camera{c_tag = "Tool Storage/CE's Room"; dir = 1; network = "Engineering"; pixel_x = 23},/turf/simulated/floor,/area/engine/engineering) "cfc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office) "cfd" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 1},/obj/structure/table/reinforced,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/clipboard,/obj/item/weapon/stamp/ce,/obj/item/clothing/glasses/meson,/obj/item/ashtray/glass,/turf/simulated/floor,/area/engine/chiefs_office) "cfe" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-2"; tag = "90Curve"},/obj/effect/landmark/start{name = "Chief Engineer"},/obj/structure/stool/bed/chair/office/dark,/turf/simulated/floor,/area/engine/chiefs_office) -"cff" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Engineer's office"; departmentType = 3; name = "Chief Engineer RC"; pixel_x = 30; pixel_y = 0},/obj/item/clothing/suit/space/rig/cespace_suit,/obj/item/clothing/head/helmet/space/rig/cespace_helmet,/obj/item/clothing/suit/space/rig/elite,/obj/item/clothing/head/helmet/space/rig/elite,/obj/item/clothing/mask/breath,/turf/simulated/floor,/area/engine/chiefs_office) +"cff" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Engineer's office"; departmentType = 3; name = "Chief Engineer RC"; pixel_x = 30; pixel_y = 0},/obj/item/clothing/suit/space/rig/elite,/obj/item/clothing/head/helmet/space/rig/elite,/obj/item/clothing/mask/breath,/obj/item/clothing/suit/space/engineer/ce,/obj/item/clothing/head/helmet/space/engineer/ce,/turf/simulated/floor,/area/engine/chiefs_office) "cfg" = (/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) "cfh" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) "cfi" = (/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/atmos) @@ -5860,7 +5860,7 @@ "ciJ" = (/obj/structure/particle_accelerator/power_box,/turf/simulated/floor/plating,/area/engine/particle_accelerator) "ciK" = (/obj/item/weapon/screwdriver,/turf/simulated/floor/plating,/area/engine/particle_accelerator) "ciL" = (/obj/machinery/pipedispenser,/turf/simulated/floor/plating,/area/engine/engineering) -"ciM" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig/engspace_suit,/obj/item/clothing/head/helmet/space/rig/engspace_helmet,/turf/simulated/floor/plating,/area/engine/engineering) +"ciM" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/engineer,/obj/item/clothing/head/helmet/space/engineer,/turf/simulated/floor/plating,/area/engine/engineering) "ciN" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig,/obj/item/clothing/head/helmet/space/rig,/turf/simulated/floor/plating,/area/engine/engineering) "ciO" = (/obj/machinery/emitter,/turf/simulated/floor/plating,/area/engine/engineering) "ciP" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating,/area/engine/engineering) @@ -6167,7 +6167,7 @@ "coE" = (/obj/machinery/vending/snack,/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area/centcom/evac) "coF" = (/obj/machinery/vending/cola,/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area/centcom/evac) "coG" = (/obj/machinery/computer/arcade,/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area/centcom/evac) -"coH" = (/obj/structure/closet/extinguisher{pixel_x = 5; pixel_y = 30},/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area/centcom/evac) +"coH" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 30},/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area/centcom/evac) "coI" = (/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/centcom/evac) "coJ" = (/turf/simulated/shuttle/floor,/area/centcom/evac) "coK" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area/centcom/evac) @@ -7638,7 +7638,7 @@ "cQT" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/djstation) "cQU" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/space_heater,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/djstation) "cQV" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/rack{dir = 4},/obj/item/clothing/under/soviet,/obj/item/clothing/head/ushanka,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/djstation) -"cQW" = (/obj/machinery/disposal/toilet{tag = "icon-toilet (WEST)"; icon_state = "toilet"; dir = 8},/obj/structure/disposalpipe/trunk,/turf/unsimulated/floor{icon_state = "white"},/area/djstation) +"cQW" = (/obj/structure/toilet{tag = "icon-toilet (WEST)"; icon_state = "toilet"; dir = 8},/obj/structure/disposalpipe/trunk,/turf/unsimulated/floor{icon_state = "white"},/area/djstation) "cQX" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/djstation) "cQY" = (/obj/structure/disposalpipe/segment{dir = 1},/turf/unsimulated/wall{icon_state = ""; tag = "icon-fwall_opening"},/area/djstation) "cQZ" = (/obj/machinery/door/airlock/external{name = "External Access"; req_access = null; req_access_txt = "0"},/turf/unsimulated/floor,/area/djstation) @@ -8583,8 +8583,8 @@ "djc" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal/deliveryChute{dir = 8},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/west_outpost) "djd" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/mine/west_outpost) "dje" = (/obj/structure/disposalpipe/sortjunction{backsort = 0; dir = 4; icon_state = "pipe-j1s"; sortType = list("Mining West")},/turf/simulated/floor/airless{tag = "icon-asteroidwarning (WEST)"; icon_state = "asteroidwarning"; dir = 8},/area/mine/explored) -"djf" = (/obj/machinery/disposal/toilet{tag = "icon-toilet (EAST)"; icon_state = "toilet"; dir = 4},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor{icon_state = "showroomfloor"},/area/mine/living_quarters) -"djg" = (/obj/machinery/sink{pixel_y = 30},/obj/machinery/light/small,/turf/simulated/floor{icon_state = "showroomfloor"},/area/mine/living_quarters) +"djf" = (/obj/structure/toilet{tag = "icon-toilet (EAST)"; icon_state = "toilet"; dir = 4},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor{icon_state = "showroomfloor"},/area/mine/living_quarters) +"djg" = (/obj/structure/sink{pixel_y = 30},/obj/machinery/light/small,/turf/simulated/floor{icon_state = "showroomfloor"},/area/mine/living_quarters) "djh" = (/obj/machinery/door/airlock{name = "Toilet"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/mine/living_quarters) "dji" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor,/area/mine/lobby) "djj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/mine/lobby)