From 11b17c444218f3e2a4dcefc388f0271feb3b92b2 Mon Sep 17 00:00:00 2001 From: "petethegoat@gmail.com" Date: Tue, 8 Jan 2013 19:11:56 +0000 Subject: [PATCH] Committing suomynonAyletamitlU's storage item standardisation commit: http://forums.nanotrasen.com/viewtopic.php?f=16&t=11746 Standardization of the object tree and some modified functionality. Moved a lot of storage/*_kit and similar boxes to storage/box/* ; most of these can now be found in boxes.dm. First aid kits remain a separate item type. Replacement Light boxes pick up lights (for example broken ones) when used on them Moved weapon/secstorage to storage/secure Moved plant bags, ore satchel, trash bag, and sheet snatcher to storage/bag, in bags.dm Fixed reagent_containers and snacks to pass through attackby() so the use_to_pickup code works. This affects plant bags, trash bags, and pill bottles. Dice packs are now pill bottles, and all pill bottles can pick up dice. Added error handling to uplink/generate_menu() so that one mistyped string doesn't bork the whole syndie uplink menu, since strings cannot be type-checked at compile time. Cigarette packs and crayon boxes are now storage/fancy, however they retain existing update_icon() code. Added a comment to storage.dm so that future people know where to look for use_to_pickup and allow_quick_gather code. Updated all maps. I've tried to test this thoroughly but I wouldn't be surprised if there were a few lingering issues. Try not to panic if you encounter any. Full (i think) list of changed paths: /obj/item/weapon/storage/flashbang_kit > /obj/item/weapon/storage/box/flashbangs /obj/item/weapon/storage/body_bag_box > /obj/item/weapon/storage/box/bodybags /obj/item/weapon/storage/chemimp_kit > /obj/item/weapon/storage/box/chemimp /obj/item/weapon/storage/trackimp_kit > /obj/item/weapon/storage/box/trackimp /obj/item/weapon/storage/seccart_kit > /obj/item/weapon/storage/box/seccarts /obj/item/weapon/storage/handcuff_kit > /obj/item/weapon/storage/box/handcuffs /obj/item/weapon/cigpacket > /obj/item/weapon/storage/fancy/cigarettes /obj/item/weapon/storage/mousetraps > /obj/item/weapon/storage/box/mousetraps /obj/item/weapon/storage/PDAbox > /obj/item/weapon/storage/box/PDAs /obj/item/weapon/storage/id_kit > /obj/item/weapon/storage/box/ids /obj/item/weapon/storage/lightbox/mixed > /obj/item/weapon/storage/box/lights/mixed /obj/item/weapon/storage/donkpocket_kit > /obj/item/weapon/storage/box/donkpockets /obj/item/weapon/storage/beakerbox > /obj/item/weapon/storage/box/beakers /obj/item/weapon/storage/syringes > /obj/item/weapon/storage/box/syringes /obj/item/weapon/storage/gl_kit > /obj/item/weapon/storage/box/rxglasses /obj/item/weapon/storage/diskbox > /obj/item/weapon/storage/box/disks /obj/item/weapon/storage/stma_kit > /obj/item/weapon/storage/box/masks /obj/item/weapon/storage/lglo_kit > /obj/item/weapon/storage/box/gloves /obj/item/weapon/storage/lightbox/bulbs > /obj/item/weapon/storage/box/lights/bulbs /obj/item/weapon/plantbag > /obj/item/weapon/storage/bag/plants /obj/item/weapon/storage/satchel > /obj/item/weapon/storage/bag/ore /obj/item/weapon/trashbag > /obj/item/weapon/storage/bag/trash git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5494 316c924e-a436-60f5-8080-3fe189b3f50e --- code/__HELPERS/unsorted.dm | 2 +- code/datums/supplypacks.dm | 30 +- code/defines/obj/hydro.dm | 2 + code/game/gamemodes/factions.dm | 8 +- code/game/gamemodes/game_mode.dm | 8 +- code/game/jobs/job/captain.dm | 8 +- code/game/jobs/job/civilian.dm | 6 +- code/game/machinery/biogenerator.dm | 2 +- code/game/machinery/cloning.dm | 7 +- code/game/machinery/computer/arcade.dm | 4 +- code/game/machinery/hydroponics.dm | 10 +- code/game/machinery/kitchen/smartfridge.dm | 2 +- code/game/machinery/vending.dm | 4 +- code/game/mecha/mecha_control_console.dm | 19 +- code/game/objects/items.dm | 32 +- code/game/objects/items/bodybag.dm | 21 +- code/game/objects/items/devices/PDA/PDA.dm | 42 +- code/game/objects/items/devices/uplinks.dm | 40 +- .../items/stacks/sheets/sheet_types.dm | 6 +- .../objects/items/stacks/sheets/sheets.dm | 12 +- code/game/objects/items/weapons/RSF.dm | 4 +- .../objects/items/weapons/cigs_lighters.dm | 66 +-- .../objects/items/weapons/gift_wrappaper.dm | 4 +- .../game/objects/items/weapons/hydroponics.dm | 32 -- .../objects/items/weapons/storage/bags.dm | 223 +++++++++ .../objects/items/weapons/storage/belt.dm | 2 +- .../objects/items/weapons/storage/boxes.dm | 444 ++++++++++++++++-- .../objects/items/weapons/storage/fancy.dm | 107 +++++ .../objects/items/weapons/storage/firstaid.dm | 50 +- .../game/objects/items/weapons/storage/kit.dm | 346 -------------- .../objects/items/weapons/storage/secure.dm | 242 ++++++++++ .../objects/items/weapons/storage/storage.dm | 37 +- .../items/weapons/storage/uplink_kits.dm | 86 +++- .../crates_lockers/closets/gimmick.dm | 12 +- .../crates_lockers/closets/job_closets.dm | 2 +- .../closets/secure/hydroponics.dm | 2 +- .../crates_lockers/closets/secure/medical.dm | 6 +- .../crates_lockers/closets/secure/security.dm | 8 +- .../crates_lockers/closets/syndicate.dm | 4 +- code/game/objects/structures/janicart.dm | 4 +- code/modules/admin/verbs/debug.dm | 2 +- code/modules/admin/verbs/striketeam.dm | 2 +- code/modules/clothing/spacesuits/rig.dm | 2 +- code/modules/clothing/suits/jobs.dm | 2 +- code/modules/clothing/suits/miscellaneous.dm | 2 +- code/modules/flufftext/Hallucination.dm | 4 +- code/modules/mining/mine_items.dm | 2 +- code/modules/mining/mine_turfs.dm | 10 +- code/modules/mining/satchel_ore_boxdm.dm | 171 ------- .../carbon/alien/special/alien_embryo.dm | 48 +- .../mob/living/silicon/robot/robot_modules.dm | 6 +- code/modules/power/lighting.dm | 40 -- code/modules/reagents/Chemistry-Machinery.dm | 2 +- code/modules/reagents/reagent_containers.dm | 6 +- .../reagent_containers/food/snacks.dm | 4 + .../reagent_containers/food/snacks/grown.dm | 10 +- .../reagents/reagent_containers/glass.dm | 2 +- .../reagents/reagent_containers/pill.dm | 19 - .../reagents/reagent_containers/syringes.dm | 2 +- code/modules/recycling/disposal.dm | 4 +- code/modules/recycling/sortingmachinery.dm | 6 +- code/unused/asteroiddevice.dm | 2 +- maps/RandomZLevels/blackmarketpackers.dmm | 8 +- maps/RandomZLevels/stationCollision.dm | 4 +- maps/RandomZLevels/stationCollision.dmm | 2 +- maps/tgstation.2.1.0.dmm | 100 ++-- tgstation.dme | 3 +- 67 files changed, 1353 insertions(+), 1058 deletions(-) create mode 100644 code/game/objects/items/weapons/storage/bags.dm delete mode 100644 code/game/objects/items/weapons/storage/kit.dm create mode 100644 code/game/objects/items/weapons/storage/secure.dm diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 48de32b475..1b9fad9771 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1327,7 +1327,7 @@ var/list/WALLITEMS = list( "/obj/machinery/status_display", "/obj/machinery/requests_console", "/obj/machinery/light_switch", "/obj/effect/sign", "/obj/machinery/newscaster", "/obj/machinery/firealarm", "/obj/structure/noticeboard", "/obj/machinery/door_control", "/obj/machinery/computer/security/telescreen", "/obj/machinery/embedded_controller/radio/simple_vent_controller", - "/obj/item/weapon/secstorage/ssafe", "/obj/machinery/door_timer", "/obj/machinery/flasher", "/obj/machinery/keycard_auth", + "/obj/item/weapon/storage/secure/safe", "/obj/machinery/door_timer", "/obj/machinery/flasher", "/obj/machinery/keycard_auth", "/obj/structure/mirror", "/obj/structure/closet/fireaxecabinet", "/obj/machinery/computer/security/telescreen/entertainment" ) /proc/gotwallitem(loc, dir) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 417224bfa5..f098b15b2d 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -28,7 +28,7 @@ /datum/supply_packs/specialops name = "Special Ops supplies" - contains = list(/obj/item/weapon/storage/emp_kit, + contains = list(/obj/item/weapon/storage/box/emps, /obj/item/weapon/grenade/smokebomb, /obj/item/weapon/grenade/smokebomb, /obj/item/weapon/grenade/smokebomb, @@ -55,7 +55,7 @@ /datum/supply_packs/monkey name = "Monkey crate" - contains = list (/obj/item/weapon/storage/monkeycube_box) + contains = list (/obj/item/weapon/storage/box/monkeycubes) cost = 20 containertype = /obj/structure/closet/crate/freezer containername = "Monkey crate" @@ -91,7 +91,7 @@ /datum/supply_packs/party name = "Party equipment" - contains = list(/obj/item/weapon/storage/drinkingglasses, + contains = list(/obj/item/weapon/storage/box/drinkingglasses, /obj/item/weapon/reagent_containers/food/drinks/shaker, /obj/item/weapon/reagent_containers/food/drinks/bottle/patron, /obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager, @@ -158,9 +158,9 @@ /datum/supply_packs/lightbulbs name = "Replacement lights" - contains = list(/obj/item/weapon/storage/lightbox/mixed, - /obj/item/weapon/storage/lightbox/mixed, - /obj/item/weapon/storage/lightbox/mixed) + contains = list(/obj/item/weapon/storage/box/lights/mixed, + /obj/item/weapon/storage/box/lights/mixed, + /obj/item/weapon/storage/box/lights/mixed) cost = 10 containertype = /obj/structure/closet/crate containername = "Replacement lights" @@ -280,7 +280,7 @@ /obj/item/weapon/reagent_containers/glass/bottle/antitoxin, /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline, /obj/item/weapon/reagent_containers/glass/bottle/stoxin, - /obj/item/weapon/storage/syringes) + /obj/item/weapon/storage/box/syringes) cost = 10 containertype = /obj/structure/closet/crate/medical containername = "Medical crate" @@ -297,8 +297,8 @@ /obj/item/weapon/reagent_containers/glass/bottle/pierrot_throat, /obj/item/weapon/reagent_containers/glass/bottle/brainrot, /obj/item/weapon/reagent_containers/glass/bottle/hullucigen_virion, - /obj/item/weapon/storage/syringes, - /obj/item/weapon/storage/beakerbox, + /obj/item/weapon/storage/box/syringes, + /obj/item/weapon/storage/box/beakers, /obj/item/weapon/reagent_containers/glass/bottle/mutagen) cost = 25 containertype = /obj/structure/closet/crate/secure/weapon @@ -503,8 +503,8 @@ /obj/item/weapon/gun/energy/laser, /obj/item/weapon/gun/energy/taser, /obj/item/weapon/gun/energy/taser, - /obj/item/weapon/storage/flashbang_kit, - /obj/item/weapon/storage/flashbang_kit) + /obj/item/weapon/storage/box/flashbangs, + /obj/item/weapon/storage/box/flashbangs) cost = 30 containertype = /obj/structure/closet/crate/secure/weapon containername = "Weapons crate" @@ -543,9 +543,9 @@ /obj/item/weapon/shield/riot, /obj/item/weapon/shield/riot, /obj/item/weapon/shield/riot, - /obj/item/weapon/storage/flashbang_kit, - /obj/item/weapon/storage/flashbang_kit, - /obj/item/weapon/storage/flashbang_kit, + /obj/item/weapon/storage/box/flashbangs, + /obj/item/weapon/storage/box/flashbangs, + /obj/item/weapon/storage/box/flashbangs, /obj/item/weapon/handcuffs, /obj/item/weapon/handcuffs, /obj/item/weapon/handcuffs, @@ -657,7 +657,7 @@ /datum/supply_packs/randomised/contraband num_contained = 5 contains = list(/obj/item/weapon/contraband/poster, - /obj/item/weapon/cigpacket/dromedaryco, + /obj/item/weapon/storage/fancy/cigarettes/dromedaryco, /obj/item/weapon/lipstick/random) name = "Contraband crate" cost = 30 diff --git a/code/defines/obj/hydro.dm b/code/defines/obj/hydro.dm index f3fd55b667..02ac1dc39a 100644 --- a/code/defines/obj/hydro.dm +++ b/code/defines/obj/hydro.dm @@ -43,6 +43,8 @@ user << "-Plant Production: \blue [production]" if(potency != -1) user << "-Plant Potency: \blue [potency]" + return + ..() // Fallthrough to item/attackby() so that bags can pick seeds up /obj/item/seeds/chiliseed name = "pack of chili seeds" diff --git a/code/game/gamemodes/factions.dm b/code/game/gamemodes/factions.dm index fe03788dd0..f96ea20d92 100644 --- a/code/game/gamemodes/factions.dm +++ b/code/game/gamemodes/factions.dm @@ -124,7 +124,7 @@ /obj/item/weapon/gun/energy/crossbow:5:Energy Crossbow; /obj/item/weapon/melee/energy/sword:4:Energy Sword; /obj/item/weapon/storage/box/syndicate:10:Syndicate Bundle; -/obj/item/weapon/storage/emp_kit:3:5 EMP Grenades; +/obj/item/weapon/storage/box/emps:3:5 EMP Grenades; Whitespace:Seperator; Stealthy and Inconspicuous Weapons; /obj/item/weapon/pen/paralysis:3:Paralysis Pen; @@ -141,7 +141,7 @@ Whitespace:Seperator; Devices and Tools; /obj/item/weapon/card/emag:3:Cryptographic Sequencer; /obj/item/weapon/storage/toolbox/syndicate:1:Fully Loaded Toolbox; -/obj/item/weapon/storage/syndie_kit/space:3:Space Suit; +/obj/item/weapon/storage/box/syndie_kit/space:3:Space Suit; /obj/item/clothing/glasses/thermal/syndi:3:Thermal Imaging Glasses; /obj/item/device/encryptionkey/binary:3:Binary Translator Key; /obj/item/weapon/aiModule/syndicate:7:Hacked AI Upload Module; @@ -151,8 +151,8 @@ Devices and Tools; /obj/item/weapon/circuitboard/teleporter:20:Teleporter Circuit Board; Whitespace:Seperator; Implants; -/obj/item/weapon/storage/syndie_kit/imp_freedom:3:Freedom Implant; -/obj/item/weapon/storage/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals); +/obj/item/weapon/storage/box/syndie_kit/imp_freedom:3:Freedom Implant; +/obj/item/weapon/storage/box/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals); Whitespace:Seperator; (Pointless) Badassery; /obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon);"} diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 47180fadea..ded6a9a5f0 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -34,7 +34,7 @@ /obj/item/weapon/gun/energy/crossbow:5:Energy Crossbow; /obj/item/weapon/melee/energy/sword:4:Energy Sword; /obj/item/weapon/storage/box/syndicate:10:Syndicate Bundle; -/obj/item/weapon/storage/emp_kit:3:5 EMP Grenades; +/obj/item/weapon/storage/box/emps:3:5 EMP Grenades; Whitespace:Seperator; Stealthy and Inconspicuous Weapons; /obj/item/weapon/pen/paralysis:3:Paralysis Pen; @@ -51,7 +51,7 @@ Whitespace:Seperator; Devices and Tools; /obj/item/weapon/card/emag:3:Cryptographic Sequencer; /obj/item/weapon/storage/toolbox/syndicate:1:Fully Loaded Toolbox; -/obj/item/weapon/storage/syndie_kit/space:3:Space Suit; +/obj/item/weapon/storage/box/syndie_kit/space:3:Space Suit; /obj/item/clothing/glasses/thermal/syndi:3:Thermal Imaging Glasses; /obj/item/device/encryptionkey/binary:3:Binary Translator Key; /obj/item/weapon/aiModule/syndicate:7:Hacked AI Upload Module; @@ -61,8 +61,8 @@ Devices and Tools; /obj/item/weapon/circuitboard/teleporter:20:Teleporter Circuit Board; Whitespace:Seperator; Implants; -/obj/item/weapon/storage/syndie_kit/imp_freedom:3:Freedom Implant; -/obj/item/weapon/storage/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals); +/obj/item/weapon/storage/box/syndie_kit/imp_freedom:3:Freedom Implant; +/obj/item/weapon/storage/box/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals); Whitespace:Seperator; (Pointless) Badassery; /obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon);"} diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index c05cf6ccc2..a514f31f9d 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -28,9 +28,9 @@ H.equip_to_slot_or_del(new /obj/item/clothing/head/caphat(H), slot_head) H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(H), slot_glasses) if(H.backbag == 1) - H.equip_to_slot_or_del(new /obj/item/weapon/storage/id_kit(H), slot_r_hand) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H), slot_r_hand) else - H.equip_to_slot_or_del(new /obj/item/weapon/storage/id_kit(H.back), slot_in_backpack) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H.back), slot_in_backpack) var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) L.imp_in = H L.implanted = 1 @@ -79,7 +79,7 @@ H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(H), slot_head) if(H.backbag == 1) - H.equip_to_slot_or_del(new /obj/item/weapon/storage/id_kit(H), slot_r_hand) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H), slot_r_hand) else - H.equip_to_slot_or_del(new /obj/item/weapon/storage/id_kit(H.back), slot_in_backpack) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H.back), slot_in_backpack) return 1 \ No newline at end of file diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index 013b4edc27..e1abaa02ed 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -164,11 +164,11 @@ if(H.backbag == 1) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(H), slot_r_hand) H.equip_to_slot_or_del(new /obj/item/weapon/crowbar(H), slot_l_hand) - H.equip_to_slot_or_del(new /obj/item/weapon/storage/satchel(H), slot_l_store) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/bag/ore(H), slot_l_store) else H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(H.back), slot_in_backpack) H.equip_to_slot_or_del(new /obj/item/weapon/crowbar(H), slot_in_backpack) - H.equip_to_slot_or_del(new /obj/item/weapon/storage/satchel(H), slot_in_backpack) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/bag/ore(H), slot_in_backpack) return 1 @@ -199,7 +199,7 @@ H.equip_to_slot_or_del(new /obj/item/weapon/bikehorn(H), slot_in_backpack) H.equip_to_slot_or_del(new /obj/item/weapon/stamp/clown(H), slot_in_backpack) H.equip_to_slot_or_del(new /obj/item/toy/crayon/rainbow(H), slot_in_backpack) - H.equip_to_slot_or_del(new /obj/item/weapon/storage/crayonbox(H), slot_in_backpack) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/fancy/crayons(H), slot_in_backpack) H.equip_to_slot_or_del(new /obj/item/toy/waterflower(H), slot_in_backpack) H.mutations.Add(CLUMSY) return 1 diff --git a/code/game/machinery/biogenerator.dm b/code/game/machinery/biogenerator.dm index 80d4174fd4..c75cda5dba 100644 --- a/code/game/machinery/biogenerator.dm +++ b/code/game/machinery/biogenerator.dm @@ -42,7 +42,7 @@ updateUsrDialog() else if(processing) user << "\red The biogenerator is currently processing." - else if(istype(O, /obj/item/weapon/plantbag)) + else if(istype(O, /obj/item/weapon/storage/bag/plants)) var/i = 0 for(var/obj/item/weapon/reagent_containers/food/snacks/grown/G in contents) i++ diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index a694e80a27..49b1b5cd11 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -377,13 +377,12 @@ /* * Diskette Box */ -/obj/item/weapon/storage/diskbox + +/obj/item/weapon/storage/box/disks name = "Diskette Box" icon_state = "disk_kit" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap -/obj/item/weapon/storage/diskbox/New() +/obj/item/weapon/storage/box/disks/New() ..() new /obj/item/weapon/disk/data(src) new /obj/item/weapon/disk/data(src) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 9f784c1a38..d980b469f9 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -12,14 +12,14 @@ var/enemy_mp = 20 var/gameover = 0 var/blocked = 0 //Player cannot attack/heal while set - var/list/prizes = list( /obj/item/weapon/storage/snappopbox = 2, + var/list/prizes = list( /obj/item/weapon/storage/box/snappops = 2, /obj/item/toy/blink = 2, /obj/item/clothing/under/syndicate/tacticool = 2, /obj/item/toy/sword = 2, /obj/item/toy/gun = 2, /obj/item/toy/crossbow = 2, /obj/item/clothing/suit/syndicatefake = 2, - /obj/item/weapon/storage/crayonbox = 2, + /obj/item/weapon/storage/fancy/crayons = 2, /obj/item/toy/spinningtoy = 2, /obj/item/toy/prize/ripley = 1, /obj/item/toy/prize/fireripley = 1, diff --git a/code/game/machinery/hydroponics.dm b/code/game/machinery/hydroponics.dm index 4aedd180b3..f0ac50d09f 100644 --- a/code/game/machinery/hydroponics.dm +++ b/code/game/machinery/hydroponics.dm @@ -729,15 +729,13 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob) del(O) updateicon() - else if (istype(O, /obj/item/weapon/plantbag)) + else if (istype(O, /obj/item/weapon/storage/bag/plants)) attack_hand(user) - var/obj/item/weapon/plantbag/S = O + var/obj/item/weapon/storage/bag/plants/S = O for (var/obj/item/weapon/reagent_containers/food/snacks/grown/G in locate(user.x,user.y,user.z)) - if (S.contents.len < S.capacity) - S.contents += G; - else - user << "\blue The plant bag is full." + if(!S.can_be_inserted(G)) return + S.handle_item_insertion(G, 1) else if ( istype(O, /obj/item/weapon/pestspray) ) var/obj/item/pestkiller/myPKiller = O diff --git a/code/game/machinery/kitchen/smartfridge.dm b/code/game/machinery/kitchen/smartfridge.dm index 414f879ddc..dad6aef13b 100644 --- a/code/game/machinery/kitchen/smartfridge.dm +++ b/code/game/machinery/kitchen/smartfridge.dm @@ -83,7 +83,7 @@ user.visible_message("[user] has added \the [O] to \the [src].", \ "You add \the [O] to \the [src].") - else if(istype(O, /obj/item/weapon/plantbag)) + else if(istype(O, /obj/item/weapon/storage/bag/plants)) var/plants_loaded = 0 for(var/obj/G in O.contents) if(accept_check(G)) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 548641f99e..130993612e 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -600,7 +600,7 @@ name = "Cigarette machine" //OCD had to be uppercase to look nice with the new formating desc = "If you want to get cancer, might as well do it in style" icon_state = "cigs" - product_paths = "/obj/item/weapon/cigpacket;/obj/item/weapon/storage/matchbox;/obj/item/weapon/lighter/random" + product_paths = "/obj/item/weapon/storage/fancy/cigarettes;/obj/item/weapon/storage/box/matches;/obj/item/weapon/lighter/random" product_amounts = "10;10;4" product_slogans = "Space cigs taste good like a cigarette should.;I'd rather toolbox than switch.;Smoke!;Don't believe the reports - smoke today!" vend_delay = 34 @@ -675,7 +675,7 @@ desc = "A plant nutrients vendor" icon_state = "nutri" icon_deny = "nutri-deny" - product_paths = "/obj/item/nutrient/ez;/obj/item/nutrient/l4z;/obj/item/nutrient/rh;/obj/item/weapon/pestspray;/obj/item/weapon/reagent_containers/syringe;/obj/item/weapon/plantbag" + product_paths = "/obj/item/nutrient/ez;/obj/item/nutrient/l4z;/obj/item/nutrient/rh;/obj/item/weapon/pestspray;/obj/item/weapon/reagent_containers/syringe;/obj/item/weapon/storage/bag/plants" product_amounts = "35;25;15;20;5;5" product_slogans = "Aren't you glad you don't have to fertilize the natural way?;Now with 50% less stink!;Plants are people too!" product_hidden = "/obj/item/weapon/reagent_containers/glass/bottle/ammonia;/obj/item/weapon/reagent_containers/glass/bottle/diethylamine" diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm index 57708a31c4..da461662f8 100644 --- a/code/game/mecha/mecha_control_console.dm +++ b/code/game/mecha/mecha_control_console.dm @@ -118,15 +118,14 @@ return M.get_log_html() -/obj/item/weapon/storage/mechatrackingbox - +/obj/item/weapon/storage/box/mechabeacons + name = "Exosuit Tracking Beacons" New() - new /obj/item/mecha_parts/mecha_tracking(src) - new /obj/item/mecha_parts/mecha_tracking(src) - new /obj/item/mecha_parts/mecha_tracking(src) - new /obj/item/mecha_parts/mecha_tracking(src) - new /obj/item/mecha_parts/mecha_tracking(src) - new /obj/item/mecha_parts/mecha_tracking(src) - new /obj/item/mecha_parts/mecha_tracking(src) ..() - return + new /obj/item/mecha_parts/mecha_tracking(src) + new /obj/item/mecha_parts/mecha_tracking(src) + new /obj/item/mecha_parts/mecha_tracking(src) + new /obj/item/mecha_parts/mecha_tracking(src) + new /obj/item/mecha_parts/mecha_tracking(src) + new /obj/item/mecha_parts/mecha_tracking(src) + new /obj/item/mecha_parts/mecha_tracking(src) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index cccaee943e..5c4005c8e7 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -164,22 +164,36 @@ user.put_in_active_hand(src) return +// Due to storage type consolidation this should get used more now. +// I have cleaned it up a little, but it could probably use more. -Sayu /obj/item/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W,/obj/item/weapon/storage)) var/obj/item/weapon/storage/S = W if(S.use_to_pickup) - if(!S.can_be_inserted(src)) - return if(S.collection_mode) //Mode is set to collect all items on a tile and we clicked on a valid one. if(isturf(src.loc)) - for(var/obj/item/I in src.loc) - if(I != src) //We'll do the one we clicked on last. - if(!S.can_be_inserted(I)) - continue - S.handle_item_insertion(I, 1) //The 1 stops the "You put the [src] into [S]" insertion message from being displayed. - S.handle_item_insertion(src) + var/list/rejections = list() + var/success = 0 + var/failure = 0 + for(var/obj/item/I in src.loc) + if(I.type in rejections) // To limit bag spamming: any given type only complains once + continue + if(!S.can_be_inserted(I)) // Note can_be_inserted still makes noise when the answer is no + rejections += I.type // therefore full bags are still a little spammy + failure = 1 + continue + success = 1 + S.handle_item_insertion(I, 1) //The 1 stops the "You put the [src] into [S]" insertion message from being displayed. + if(success && !failure) + user << "You put everything in [S]." + else if(success) + user << "You put some things in [S]." + else + user << "You fail to pick anything up with [S]." + + else if(S.can_be_inserted(src)) + S.handle_item_insertion(src) return diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index ed2145c566..1c6fe70e8c 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -12,24 +12,19 @@ del(src) -/obj/item/weapon/storage/body_bag_box +/obj/item/weapon/storage/box/bodybags name = "body bags" desc = "This box contains body bags." icon_state = "bodybags" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/bodybag(src) - new /obj/item/bodybag(src) - new /obj/item/bodybag(src) - new /obj/item/bodybag(src) - new /obj/item/bodybag(src) - new /obj/item/bodybag(src) - new /obj/item/bodybag(src) ..() - return + new /obj/item/bodybag(src) + new /obj/item/bodybag(src) + new /obj/item/bodybag(src) + new /obj/item/bodybag(src) + new /obj/item/bodybag(src) + new /obj/item/bodybag(src) + new /obj/item/bodybag(src) /obj/structure/closet/body_bag diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index f0c15f744a..d59a745f7a 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -1151,41 +1151,27 @@ var/global/list/obj/item/device/pda/PDAs = list() else usr << "You do not have a PDA. You should make an issue report about this." - - - //Some spare PDAs in a box - -/obj/item/weapon/storage/PDAbox +/obj/item/weapon/storage/box/PDAs name = "spare PDAs" desc = "A box of spare PDA microcomputers." icon = 'icons/obj/pda.dmi' icon_state = "pdabox" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap -/obj/item/weapon/storage/PDAbox/New() - ..() - new /obj/item/device/pda(src) - new /obj/item/device/pda(src) - new /obj/item/device/pda(src) - new /obj/item/device/pda(src) - - var/newcart = pick(1,2,3,4,5) - switch(newcart) - if(1) - new /obj/item/weapon/cartridge/engineering(src) - if(2) - new /obj/item/weapon/cartridge/security(src) - if(3) - new /obj/item/weapon/cartridge/medical(src) - if(4) - new /obj/item/weapon/cartridge/signal/toxins(src) - if(5) - new /obj/item/weapon/cartridge/quartermaster(src) - - new /obj/item/weapon/cartridge/head(src) + New() + ..() + new /obj/item/device/pda(src) + new /obj/item/device/pda(src) + new /obj/item/device/pda(src) + new /obj/item/device/pda(src) + new /obj/item/weapon/cartridge/head(src) + var/newcart = pick( /obj/item/weapon/cartridge/engineering, + /obj/item/weapon/cartridge/security, + /obj/item/weapon/cartridge/medical, + /obj/item/weapon/cartridge/signal/toxins, + /obj/item/weapon/cartridge/quartermaster) + new newcart(src) // Pass along the pulse to atoms in contents, largely added so pAIs are vulnerable to EMP /obj/item/device/pda/emp_act(severity) diff --git a/code/game/objects/items/devices/uplinks.dm b/code/game/objects/items/devices/uplinks.dm index 7d5a3f7e64..e0511bab69 100644 --- a/code/game/objects/items/devices/uplinks.dm +++ b/code/game/objects/items/devices/uplinks.dm @@ -59,12 +59,18 @@ A list of items and costs is stored under the datum of every game mode, alongsid continue path_obj = text2path(path_text) - item = new path_obj() - name = O[3] - del item - dat += "[name] ([cost])
" - category_items++ + // Because we're using strings, this comes up if item paths change. + // Failure to handle this error borks uplinks entirely. -Sayu + if(!path_obj) + error("Syndicate item is not a valid path: [path_text]") + else + item = new path_obj() + name = O[3] + del item + + dat += "[name] ([cost])
" + category_items++ dat += "Random Item (??)
" dat += "
" @@ -81,7 +87,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid if(uses > 9) randomItems.Add("/obj/item/toy/syndicateballoon")//Syndicate Balloon - randomItems.Add("/obj/item/weapon/storage/syndie_kit/imp_uplink") //Uplink Implanter + randomItems.Add("/obj/item/weapon/storage/box/syndie_kit/imp_uplink") //Uplink Implanter randomItems.Add("/obj/item/weapon/storage/box/syndicate") //Syndicate bundle //if(uses > 8) //Nothing... yet. @@ -104,15 +110,15 @@ A list of items and costs is stored under the datum of every game mode, alongsid randomItems.Add("/obj/item/device/chameleon") //Chameleon Projector if(uses > 2) - randomItems.Add("/obj/item/weapon/storage/emp_kit") //EMP Grenades + randomItems.Add("/obj/item/weapon/storage/box/emps") //EMP Grenades randomItems.Add("/obj/item/weapon/pen/paralysis") //Paralysis Pen randomItems.Add("/obj/item/weapon/cartridge/syndicate") //Detomatix Cartridge randomItems.Add("/obj/item/clothing/under/chameleon") //Chameleon Jumpsuit randomItems.Add("/obj/item/weapon/card/id/syndicate") //Agent ID Card randomItems.Add("/obj/item/weapon/card/emag") //Cryptographic Sequencer - randomItems.Add("/obj/item/weapon/storage/syndie_kit/space") //Syndicate Space Suit + randomItems.Add("/obj/item/weapon/storage/box/syndie_kit/space") //Syndicate Space Suit randomItems.Add("/obj/item/device/encryptionkey/binary") //Binary Translator Key - randomItems.Add("/obj/item/weapon/storage/syndie_kit/imp_freedom") //Freedom Implant + randomItems.Add("/obj/item/weapon/storage/box/syndie_kit/imp_freedom") //Freedom Implant randomItems.Add("/obj/item/clothing/glasses/thermal/syndi") //Thermal Imaging Goggles if(uses > 1) @@ -142,7 +148,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid switch(buyItem) //Ok, this gets a little messy, sorry. if("/obj/item/weapon/circuitboard/teleporter") uses -= 20 - if("/obj/item/toy/syndicateballoon" , "/obj/item/weapon/storage/syndie_kit/imp_uplink" , "/obj/item/weapon/storage/box/syndicate") + if("/obj/item/toy/syndicateballoon" , "/obj/item/weapon/storage/box/syndie_kit/imp_uplink" , "/obj/item/weapon/storage/box/syndicate") uses -= 10 if("/obj/item/weapon/aiModule/syndicate" , "/obj/item/device/radio/beacon/syndicate") uses -= 7 @@ -152,9 +158,9 @@ A list of items and costs is stored under the datum of every game mode, alongsid uses -= 5 if("/obj/item/weapon/melee/energy/sword" , "/obj/item/clothing/mask/gas/voice" , "/obj/item/device/chameleon") uses -= 4 - if("/obj/item/weapon/storage/emp_kit" , "/obj/item/weapon/pen/paralysis" , "/obj/item/weapon/cartridge/syndicate" , "/obj/item/clothing/under/chameleon" , \ - "/obj/item/weapon/card/emag" , "/obj/item/weapon/storage/syndie_kit/space" , "/obj/item/device/encryptionkey/binary" , \ - "/obj/item/weapon/storage/syndie_kit/imp_freedom" , "/obj/item/clothing/glasses/thermal/syndi") + if("/obj/item/weapon/storage/box/emps" , "/obj/item/weapon/pen/paralysis" , "/obj/item/weapon/cartridge/syndicate" , "/obj/item/clothing/under/chameleon" , \ + "/obj/item/weapon/card/emag" , "/obj/item/weapon/storage/box/syndie_kit/space" , "/obj/item/device/encryptionkey/binary" , \ + "/obj/item/weapon/storage/box/syndie_kit/imp_freedom" , "/obj/item/clothing/glasses/thermal/syndi") uses -= 3 if("/obj/item/ammo_magazine/a357" , "/obj/item/clothing/shoes/syndigaloshes" , "/obj/item/weapon/plastique", "/obj/item/weapon/card/id/syndicate") uses -= 2 @@ -172,7 +178,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid feedback_add_details("traitor_uplink_items_bought","TP") if("/obj/item/toy/syndicateballoon") feedback_add_details("traitor_uplink_items_bought","BS") - if("/obj/item/weapon/storage/syndie_kit/imp_uplink") + if("/obj/item/weapon/storage/box/syndie_kit/imp_uplink") feedback_add_details("traitor_uplink_items_bought","UI") if("/obj/item/weapon/storage/box/syndicate") feedback_add_details("traitor_uplink_items_bought","BU") @@ -192,7 +198,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid feedback_add_details("traitor_uplink_items_bought","VC") if("/obj/item/device/chameleon") feedback_add_details("traitor_uplink_items_bought","CP") - if("/obj/item/weapon/storage/emp_kit") + if("/obj/item/weapon/storage/box/emps") feedback_add_details("traitor_uplink_items_bought","EM") if("/obj/item/weapon/pen/paralysis") feedback_add_details("traitor_uplink_items_bought","PP") @@ -204,11 +210,11 @@ A list of items and costs is stored under the datum of every game mode, alongsid feedback_add_details("traitor_uplink_items_bought","AC") if("/obj/item/weapon/card/emag") feedback_add_details("traitor_uplink_items_bought","EC") - if("/obj/item/weapon/storage/syndie_kit/space") + if("/obj/item/weapon/storage/box/syndie_kit/space") feedback_add_details("traitor_uplink_items_bought","SS") if("/obj/item/device/encryptionkey/binary") feedback_add_details("traitor_uplink_items_bought","BT") - if("/obj/item/weapon/storage/syndie_kit/imp_freedom") + if("/obj/item/weapon/storage/box/syndie_kit/imp_freedom") feedback_add_details("traitor_uplink_items_bought","FI") if("/obj/item/clothing/glasses/thermal/syndi") feedback_add_details("traitor_uplink_items_bought","TM") diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 6e4bec6db2..ba755b336f 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -128,9 +128,9 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \ */ var/global/list/datum/stack_recipe/cardboard_recipes = list ( \ new/datum/stack_recipe("box", /obj/item/weapon/storage/box), \ - new/datum/stack_recipe("light tubes", /obj/item/weapon/storage/lightbox/tubes), \ - new/datum/stack_recipe("light bulbs", /obj/item/weapon/storage/lightbox/bulbs), \ - new/datum/stack_recipe("mouse traps", /obj/item/weapon/storage/mousetraps), \ + new/datum/stack_recipe("light tubes", /obj/item/weapon/storage/box/lights/tubes), \ + new/datum/stack_recipe("light bulbs", /obj/item/weapon/storage/box/lights/bulbs), \ + new/datum/stack_recipe("mouse traps", /obj/item/weapon/storage/box/mousetraps), \ new/datum/stack_recipe("cardborg suit", /obj/item/clothing/suit/cardborg, 3), \ new/datum/stack_recipe("cardborg helmet", /obj/item/clothing/head/cardborg), \ new/datum/stack_recipe("pizza box", /obj/item/pizzabox), \ diff --git a/code/game/objects/items/stacks/sheets/sheets.dm b/code/game/objects/items/stacks/sheets/sheets.dm index b94acb367e..fdcc6747b6 100644 --- a/code/game/objects/items/stacks/sheets/sheets.dm +++ b/code/game/objects/items/stacks/sheets/sheets.dm @@ -11,12 +11,16 @@ var/perunit = 3750 var/sheettype = null //this is used for girders in the creation of walls/false walls -/obj/item/stack/sheet/attackby(obj/item/weapon/W as obj, mob/user as mob) - if (istype(W, /obj/item/weapon/sheetsnatcher)) - var/obj/item/weapon/sheetsnatcher/S = W + +// Since the sheetsnatcher was consolidated into weapon/storage/bag we now use +// item/attackby() properly, making this unnecessary + +/*/obj/item/stack/sheet/attackby(obj/item/weapon/W as obj, mob/user as mob) + if (istype(W, /obj/item/weapon/storage/bag/sheetsnatcher)) + var/obj/item/weapon/storage/bag/sheetsnatcher/S = W if(!S.mode) S.add(src,user) else for (var/obj/item/stack/sheet/stack in locate(src.x,src.y,src.z)) S.add(stack,user) - ..() \ No newline at end of file + ..()*/ \ No newline at end of file diff --git a/code/game/objects/items/weapons/RSF.dm b/code/game/objects/items/weapons/RSF.dm index 47ceab0d8d..5ffed7b6d1 100644 --- a/code/game/objects/items/weapons/RSF.dm +++ b/code/game/objects/items/weapons/RSF.dm @@ -181,7 +181,7 @@ RSF if (istype(A, /obj/structure/table) && matter >= 1) user << "Dispensing Dice Pack..." playsound(src.loc, 'sound/machines/click.ogg', 10, 1) - new /obj/item/weapon/storage/dice( A.loc ) + new /obj/item/weapon/storage/pill_bottle/dice( A.loc ) if (isrobot(user)) var/mob/living/silicon/robot/engy = user engy.cell.charge -= 200 @@ -195,7 +195,7 @@ RSF if (istype(A, /turf/simulated/floor) && matter >= 1) user << "Dispensing Dice Pack..." playsound(src.loc, 'sound/machines/click.ogg', 10, 1) - new /obj/item/weapon/storage/dice( A ) + new /obj/item/weapon/storage/pill_bottle/dice( A ) if (isrobot(user)) var/mob/living/silicon/robot/engy = user engy.cell.charge -= 200 diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index 9931c07200..dff332f2a6 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -6,9 +6,10 @@ MATCHES CIGARETTES CIGARS SMOKING PIPES -CIG PACKET CHEAP LIGHTERS ZIPPO + +CIGARETTE PACKETS ARE IN FANCY.DM */ /////////// @@ -307,70 +308,7 @@ ZIPPO icon_off = "cobpipeoff" smoketime = 400 -//////////// -//CIG PACK// -//////////// -/obj/item/weapon/cigpacket - name = "cigarette packet" - desc = "The most popular brand of Space Cigarettes, sponsors of the Space Olympics." - icon = 'icons/obj/cigarettes.dmi' - icon_state = "cigpacket" - item_state = "cigpacket" - w_class = 1 - throwforce = 2 - flags = TABLEPASS - slot_flags = SLOT_BELT - var/cigcount = 6 -/obj/item/weapon/cigpacket/New() - ..() - flags |= NOREACT - create_reagents(15 * cigcount)//so people can inject cigarettes without opening a packet, now with being able to inject the whole one - -/obj/item/weapon/cigpacket/Del() - ..() - del(reagents) - -/obj/item/weapon/cigpacket/update_icon() - icon_state = "[initial(icon_state)][cigcount]" - desc = "There are [cigcount] cig\s left!" - return - -/obj/item/weapon/cigpacket/attack_hand(mob/user as mob) - if(user.r_hand == src || user.l_hand == src) - if(cigcount == 0) - user << "You're out of cigs, shit! How you gonna get through the rest of the day..." - return - else - var/obj/item/clothing/mask/cigarette/W = new /obj/item/clothing/mask/cigarette(user) - reagents.trans_to(W, (reagents.total_volume/cigcount)) - user.put_in_active_hand(W) - reagents.maximum_volume = 15 * cigcount - cigcount-- - update_icon() - else - return ..() - -/obj/item/weapon/cigpacket/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) - if(!istype(M, /mob)) - return - - if(M == user && user.zone_sel.selecting == "mouth" && cigcount > 0 && !user.wear_mask) - var/obj/item/clothing/mask/cigarette/W = new /obj/item/clothing/mask/cigarette(user) - reagents.trans_to(W, (reagents.total_volume/cigcount)) - user.equip_to_slot_if_possible(W, slot_wear_mask) - reagents.maximum_volume = 15 * cigcount - cigcount-- - user << "You take a cigarette out of the pack." - update_icon() - else - ..() - -/obj/item/weapon/cigpacket/dromedaryco - name = "DromedaryCo packet" - desc = "A packet of six imported DromedaryCo cancer sticks. A label on the packaging reads, \"Wouldn't a slow death make a change?\"" - icon_state = "Dpacket" - item_state = "Dpacket" ///////// //ZIPPO// diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm index 2f3e696041..e4f69ee631 100644 --- a/code/game/objects/items/weapons/gift_wrappaper.dm +++ b/code/game/objects/items/weapons/gift_wrappaper.dm @@ -65,8 +65,8 @@ var/gift_type = pick(/obj/item/weapon/sord, /obj/item/weapon/storage/wallet, /obj/item/weapon/storage/photo_album, - /obj/item/weapon/storage/snappopbox, - /obj/item/weapon/storage/crayonbox, + /obj/item/weapon/storage/box/snappops, + /obj/item/weapon/storage/fancy/crayons, /obj/item/weapon/storage/backpack/holding, /obj/item/weapon/storage/belt/champion, /obj/item/weapon/soap/deluxe, diff --git a/code/game/objects/items/weapons/hydroponics.dm b/code/game/objects/items/weapons/hydroponics.dm index d7ed4ea053..21d32ae006 100644 --- a/code/game/objects/items/weapons/hydroponics.dm +++ b/code/game/objects/items/weapons/hydroponics.dm @@ -1,43 +1,11 @@ /* Hydroponic stuff * Contains: - * Plant Bags * Sunflowers * Nettle * Deathnettle * Corbcob */ -/* - * Plant Bags - */ -/obj/item/weapon/plantbag - icon = 'icons/obj/hydroponics.dmi' - icon_state = "plantbag" - 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 - slot_flags = SLOT_BELT - w_class = 1 - -/obj/item/weapon/plantbag/attack_self(mob/user as mob) - for (var/obj/item/O in contents) - contents -= O - O.loc = user.loc - user << "\blue You empty the plant bag." - return - -/obj/item/weapon/plantbag/verb/toggle_mode() - set name = "Switch Bagging Method" - set category = "Object" - - mode = !mode - switch (mode) - if(1) - usr << "The bag now picks up all plants in a tile at once." - if(0) - usr << "The bag now picks up one plant at a time." - /* * Sunflower diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm new file mode 100644 index 0000000000..ebaebdcabe --- /dev/null +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -0,0 +1,223 @@ +/* + * These absorb the functionality of the plant bag, ore satchel, etc. + * They use the use_to_pickup, quick_gather, and quick_empty functions + * that were already defined in weapon/storage, but which had been + * re-implemented in other classes. + * + * Contains: + * Trash Bag + * Mining Satchel + * Plant Bag + * Sheet Snatcher + * + * -Sayu + */ + +// Generic non-item +/obj/item/weapon/storage/bag + allow_quick_gather = 1 + allow_quick_empty = 1 + display_contents_with_number = 0 // UNStABLE AS FuCK, turn on when it stops crashing clients + use_to_pickup = 1 + slot_flags = SLOT_BELT + flags = FPRINT | TABLEPASS + +// ----------------------------- +// Trash bag +// ----------------------------- +/obj/item/weapon/storage/bag/trash + name = "trash bag" + desc = "It's the heavy-duty black polymer kind. Time to take out the trash!" + icon = 'icons/obj/trash.dmi' + icon_state = "trashbag0" + item_state = "trashbag" + + w_class = 4 + max_w_class = 2 + storage_slots = 21 + can_hold = list() // any + cant_hold = list("/obj/item/weapon/disk/nuclear") + + +/obj/item/weapon/storage/bag/trash/update_icon() + if(contents.len == 0) + icon_state = "trashbag0" + else if(contents.len < 12) + icon_state = "trashbag1" + else if(contents.len < 21) + icon_state = "trashbag2" + else icon_state = "trashbag3" + +// ----------------------------- +// Mining Satchel +// ----------------------------- + +/obj/item/weapon/storage/bag/ore + name = "Mining Satchel" + desc = "This little bugger can be used to store and transport ores." + icon = 'icons/obj/mining.dmi' + icon_state = "satchel" + slot_flags = SLOT_BELT | SLOT_POCKET + w_class = 3 + storage_slots = 50 + max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * ore.w_class + max_w_class = 3 + can_hold = list("/obj/item/weapon/ore") + + +// ----------------------------- +// Plant bag +// ----------------------------- + +/obj/item/weapon/storage/bag/plants + icon = 'icons/obj/hydroponics.dmi' + icon_state = "plantbag" + name = "Plant Bag" + storage_slots = 50; //the number of plant pieces it can carry. + max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * plants.w_class + max_w_class = 3 + w_class = 1 + can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/grown","/obj/item/seeds","/obj/item/weapon/grown") + + +// ----------------------------- +// Sheet Snatcher +// ----------------------------- +// Because it stacks stacks, this doesn't operate normally. +// However, making it a storage/bag allows us to reuse existing code in some places. -Sayu + +/obj/item/weapon/storage/bag/sheetsnatcher + icon = 'icons/obj/mining.dmi' + icon_state = "sheetsnatcher" + name = "Sheet Snatcher" + desc = "A patented Nanotrasen storage system designed for any kind of mineral sheet." + + var/capacity = 300; //the number of sheets it can carry. + w_class = 3 + + allow_quick_empty = 1 // this function is superceded + New() + ..() + //verbs -= /obj/item/weapon/storage/verb/quick_empty + //verbs += /obj/item/weapon/storage/bag/sheetsnatcher/quick_empty + + can_be_inserted(obj/item/W as obj, stop_messages = 0) + if(!istype(W,/obj/item/stack/sheet) || istype(W,/obj/item/stack/sheet/mineral/sandstone) || istype(W,/obj/item/stack/sheet/wood)) + if(!stop_messages) + usr << "The snatcher does not accept [W]." + return 0 //I don't care, but the existing code rejects them for not being "sheets" *shrug* -Sayu + var/current = 0 + for(var/obj/item/stack/sheet/S in contents) + current += S.amount + if(capacity == current)//If it's full, you're done + if(!stop_messages) + usr << "\red The snatcher is full." + return 0 + return 1 + + +// Modified handle_item_insertion. Would prefer not to, but... + handle_item_insertion(obj/item/W as obj, prevent_warning = 0) + var/obj/item/stack/sheet/S = W + if(!istype(S)) return 0 + + var/amount + var/inserted = 0 + var/current = 0 + for(var/obj/item/stack/sheet/S2 in contents) + current += S2.amount + if(capacity < current + S.amount)//If the stack will fill it up + amount = capacity - current + else + amount = S.amount + + for(var/obj/item/stack/sheet/sheet in contents) + if(S.type == sheet.type) // we are violating the amount limitation because these are not sane objects + sheet.amount += amount // they should only be removed through procs in this file, which split them up. + S.amount -= amount + inserted = 1 + break + + if(!inserted || !S.amount) + usr.u_equip(S) + usr.update_icons() //update our overlays + if (usr.client && usr.s_active != src) + usr.client.screen -= S + S.dropped(usr) + if(!S.amount) + del S + else + S.loc = src + + orient2hud(usr) + if(usr.s_active) + usr.s_active.show_to(usr) + update_icon() + return 1 + + +// Sets up numbered display to show the stack size of each stored mineral +// NOTE: numbered display is turned off currently because it's broken + orient2hud(mob/user as mob) + var/adjusted_contents = contents.len + + //Numbered contents display + var/list/datum/numbered_display/numbered_contents + if(display_contents_with_number) + numbered_contents = list() + adjusted_contents = 0 + for(var/obj/item/stack/sheet/I in contents) + adjusted_contents++ + var/datum/numbered_display/D = new/datum/numbered_display(I) + D.number = I.amount + numbered_contents.Add( D ) + + var/row_num = 0 + var/col_count = min(7,storage_slots) -1 + if (adjusted_contents > 7) + row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. + src.standard_orient_objs(row_num, col_count, numbered_contents) + return + + +// Modified quick_empty verb drops appropriate sized stacks + quick_empty() + var/location = get_turf(src) + for(var/obj/item/stack/sheet/S in contents) + while(S.amount) + var/obj/item/stack/sheet/N = new S.type(location) + var/stacksize = min(S.amount,N.max_amount) + N.amount = stacksize + S.amount -= stacksize + if(!S.amount) + del S // todo: there's probably something missing here + orient2hud(usr) + if(usr.s_active) + usr.s_active.show_to(usr) + update_icon() + +// Instead of removing + remove_from_storage(obj/item/W as obj, atom/new_location) + var/obj/item/stack/sheet/S = W + if(!istype(S)) return 0 + + //I would prefer to drop a new stack, but the item/attack_hand code + // that calls this can't recieve a different object than you clicked on. + //Therefore, make a new stack internally that has the remainder. + // -Sayu + + if(S.amount > S.max_amount) + var/obj/item/stack/sheet/temp = new S.type(src) + temp.amount = S.amount - S.max_amount + S.amount = S.max_amount + + return ..(S,new_location) + +// ----------------------------- +// Sheet Snatcher (Cyborg) +// ----------------------------- + +/obj/item/weapon/storage/bag/sheetsnatcher/borg + name = "Sheet Snatcher 9000" + desc = "" + capacity = 500//Borgs get more because >specialization \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index a0a6d167df..8f383c2460 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -90,7 +90,7 @@ "/obj/item/weapon/reagent_containers/syringe", "/obj/item/weapon/reagent_containers/glass/dispenser", "/obj/item/weapon/lighter/zippo", - "/obj/item/weapon/cigpacket", + "/obj/item/weapon/storage/fancy/cigarettes", "/obj/item/weapon/storage/pill_bottle", "/obj/item/stack/medical", "/obj/item/device/flashlight/pen" diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 52c5f56324..b89cfd6a7f 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -1,3 +1,24 @@ +/* + * Everything derived from the common cardboard box. + * Basically everything except the original is a kit (starts full). + * + * Contains: + * Empty box, starter boxes (survival/engineer), + * Latex glove and sterile mask boxes, + * Syringe, beaker, dna injector boxes, + * Blanks, flashbangs, and EMP grenade boxes, + * Tracking and chemical implant boxes, + * Prescription glasses and drinking glass boxes, + * Condiment bottle and silly cup boxes, + * Donkpocket and monkeycube boxes, + * ID and security PDA cart boxes, + * Handcuff, mousetrap, and pillbottle boxes, + * Snap-pops and matchboxes, + * Replacement light boxes. + * + * For syndicate call-ins see uplink_kits.dm + */ + /obj/item/weapon/storage/box name = "box" desc = "It's just an ordinary box." @@ -23,61 +44,386 @@ new /obj/item/weapon/tank/emergency_oxygen/engi( src ) return -/obj/item/weapon/storage/box/syndicate/ + +/obj/item/weapon/storage/box/gloves + name = "box of latex gloves" + desc = "Contains white gloves." New() ..() - switch (pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "murder" = 1, "freedom" = 1, "hacker" = 1, "lordsingulo" = 1))) - if ("bloodyspai") - new /obj/item/clothing/under/chameleon(src) - new /obj/item/clothing/mask/gas/voice(src) - new /obj/item/weapon/card/id/syndicate(src) - new /obj/item/clothing/shoes/syndigaloshes(src) - return + new /obj/item/clothing/gloves/latex(src) + new /obj/item/clothing/gloves/latex(src) + new /obj/item/clothing/gloves/latex(src) + new /obj/item/clothing/gloves/latex(src) + new /obj/item/clothing/gloves/latex(src) + new /obj/item/clothing/gloves/latex(src) + new /obj/item/clothing/gloves/latex(src) - if ("stealth") - new /obj/item/weapon/gun/energy/crossbow(src) - new /obj/item/weapon/pen/paralysis(src) - new /obj/item/device/chameleon(src) - return +/obj/item/weapon/storage/box/masks + name = "sterile masks" + desc = "This box contains masks of sterility." + icon_state = "sterile" - if ("screwed") - new /obj/effect/spawner/newbomb/timer/syndicate(src) - new /obj/effect/spawner/newbomb/timer/syndicate(src) - new /obj/item/device/powersink(src) - new /obj/item/clothing/suit/space/syndicate(src) - new /obj/item/clothing/head/helmet/space/syndicate(src) - return + New() + ..() + new /obj/item/clothing/mask/surgical(src) + new /obj/item/clothing/mask/surgical(src) + new /obj/item/clothing/mask/surgical(src) + new /obj/item/clothing/mask/surgical(src) + new /obj/item/clothing/mask/surgical(src) + new /obj/item/clothing/mask/surgical(src) + new /obj/item/clothing/mask/surgical(src) - if ("guns") - new /obj/item/weapon/gun/projectile(src) - new /obj/item/ammo_magazine/a357(src) - new /obj/item/weapon/card/emag(src) - new /obj/item/weapon/plastique(src) - return - if ("murder") - new /obj/item/weapon/melee/energy/sword(src) - new /obj/item/clothing/glasses/thermal/syndi(src) - new /obj/item/weapon/card/emag(src) - new /obj/item/clothing/shoes/syndigaloshes(src) - return +/obj/item/weapon/storage/box/syringes + name = "syringes" + desc = "A box full of syringes." + desc = "A biohazard alert warning is printed on the box" + icon_state = "syringe" - if("freedom") - var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src) - O.imp = new /obj/item/weapon/implant/freedom(O) - var/obj/item/weapon/implanter/U = new /obj/item/weapon/implanter(src) - U.imp = new /obj/item/weapon/implant/uplink(U) - return + New() + ..() + new /obj/item/weapon/reagent_containers/syringe( src ) + new /obj/item/weapon/reagent_containers/syringe( src ) + new /obj/item/weapon/reagent_containers/syringe( src ) + new /obj/item/weapon/reagent_containers/syringe( src ) + new /obj/item/weapon/reagent_containers/syringe( src ) + new /obj/item/weapon/reagent_containers/syringe( src ) + new /obj/item/weapon/reagent_containers/syringe( src ) - if ("hacker") - new /obj/item/weapon/aiModule/syndicate(src) - new /obj/item/weapon/card/emag(src) - new /obj/item/device/encryptionkey/binary(src) - return +/obj/item/weapon/storage/box/beakers + name = "beaker box" + icon_state = "beaker" - if ("lordsingulo") - new /obj/item/device/radio/beacon/syndicate(src) - new /obj/item/clothing/suit/space/syndicate(src) - new /obj/item/clothing/head/helmet/space/syndicate(src) - new /obj/item/weapon/card/emag(src) - return \ No newline at end of file + New() + ..() + new /obj/item/weapon/reagent_containers/glass/beaker( src ) + new /obj/item/weapon/reagent_containers/glass/beaker( src ) + new /obj/item/weapon/reagent_containers/glass/beaker( src ) + new /obj/item/weapon/reagent_containers/glass/beaker( src ) + new /obj/item/weapon/reagent_containers/glass/beaker( src ) + new /obj/item/weapon/reagent_containers/glass/beaker( src ) + new /obj/item/weapon/reagent_containers/glass/beaker( src ) + +/obj/item/weapon/storage/box/injectors + name = "\improper DNA injectors" + desc = "This box contains injectors it seems." + + New() + ..() + new /obj/item/weapon/dnainjector/h2m(src) + new /obj/item/weapon/dnainjector/h2m(src) + new /obj/item/weapon/dnainjector/h2m(src) + new /obj/item/weapon/dnainjector/m2h(src) + new /obj/item/weapon/dnainjector/m2h(src) + new /obj/item/weapon/dnainjector/m2h(src) + + +/obj/item/weapon/storage/box/blanks + name = "box of blank shells" + desc = "It has a picture of a gun and several warning symbols on the front." + + New() + ..() + new /obj/item/ammo_casing/shotgun/blank(src) + new /obj/item/ammo_casing/shotgun/blank(src) + new /obj/item/ammo_casing/shotgun/blank(src) + new /obj/item/ammo_casing/shotgun/blank(src) + new /obj/item/ammo_casing/shotgun/blank(src) + new /obj/item/ammo_casing/shotgun/blank(src) + new /obj/item/ammo_casing/shotgun/blank(src) + + + +/obj/item/weapon/storage/box/flashbangs + name = "box of flashbangs (WARNING)" + desc = "WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use." + icon_state = "flashbang" + + New() + ..() + new /obj/item/weapon/grenade/flashbang(src) + new /obj/item/weapon/grenade/flashbang(src) + new /obj/item/weapon/grenade/flashbang(src) + new /obj/item/weapon/grenade/flashbang(src) + new /obj/item/weapon/grenade/flashbang(src) + new /obj/item/weapon/grenade/flashbang(src) + new /obj/item/weapon/grenade/flashbang(src) + +/obj/item/weapon/storage/box/emps + name = "emp grenades" + desc = "A box with 5 emp grenades." + icon_state = "flashbang" + + New() + ..() + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/grenade/empgrenade(src) + + +/obj/item/weapon/storage/box/trackimp + name = "tracking implant kit" + desc = "Box full of scum-bag tracking utensils." + icon_state = "implant" + + New() + ..() + new /obj/item/weapon/implantcase/tracking(src) + new /obj/item/weapon/implantcase/tracking(src) + new /obj/item/weapon/implantcase/tracking(src) + new /obj/item/weapon/implantcase/tracking(src) + new /obj/item/weapon/implanter(src) + new /obj/item/weapon/implantpad(src) + new /obj/item/weapon/locator(src) + +/obj/item/weapon/storage/box/chemimp + name = "chemical implant kit" + desc = "Box of stuff used to implant chemicals." + icon_state = "implant" + + New() + ..() + new /obj/item/weapon/implantcase/chem(src) + new /obj/item/weapon/implantcase/chem(src) + new /obj/item/weapon/implantcase/chem(src) + new /obj/item/weapon/implantcase/chem(src) + new /obj/item/weapon/implantcase/chem(src) + new /obj/item/weapon/implanter(src) + new /obj/item/weapon/implantpad(src) + + +/obj/item/weapon/storage/box/rxglasses + name = "prescription glasses" + desc = "This box contains nerd glasses." + icon_state = "glasses" + + New() + ..() + new /obj/item/clothing/glasses/regular(src) + new /obj/item/clothing/glasses/regular(src) + new /obj/item/clothing/glasses/regular(src) + new /obj/item/clothing/glasses/regular(src) + new /obj/item/clothing/glasses/regular(src) + new /obj/item/clothing/glasses/regular(src) + new /obj/item/clothing/glasses/regular(src) + +/obj/item/weapon/storage/box/drinkingglasses + name = "box of drinking glasses" + desc = "It has a picture of drinking glasses on it." + + New() + ..() + new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) + new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) + new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) + new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) + new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) + new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) + + +/obj/item/weapon/storage/box/condimentbottles + name = "box of condiment bottles" + desc = "It has a large ketchup smear on it." + + New() + ..() + new /obj/item/weapon/reagent_containers/food/condiment(src) + new /obj/item/weapon/reagent_containers/food/condiment(src) + new /obj/item/weapon/reagent_containers/food/condiment(src) + new /obj/item/weapon/reagent_containers/food/condiment(src) + new /obj/item/weapon/reagent_containers/food/condiment(src) + new /obj/item/weapon/reagent_containers/food/condiment(src) + + + +/obj/item/weapon/storage/box/cups + name = "box of paper cups" + desc = "It has pictures of paper cups on the front." + New() + ..() + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + + +/obj/item/weapon/storage/box/donkpockets + name = "box of donk-pockets" + desc = "Instructions: Heat in microwave. Product will cool if not eaten within seven minutes." + icon_state = "donk_kit" + + New() + ..() + new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) + new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) + new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) + new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) + new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) + new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) + +/obj/item/weapon/storage/box/monkeycubes + name = "monkey cube box" + desc = "Drymate brand monkey cubes. Just add water!" + icon = 'icons/obj/food.dmi' + icon_state = "monkeycubebox" + storage_slots = 7 + can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/monkeycube") + New() + ..() + for(var/i = 1; i <= 5; i++) + new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped(src) + + +/obj/item/weapon/storage/box/ids + name = "spare IDs" + desc = "Has so many empty IDs." + icon_state = "id" + + New() + ..() + new /obj/item/weapon/card/id(src) + new /obj/item/weapon/card/id(src) + new /obj/item/weapon/card/id(src) + new /obj/item/weapon/card/id(src) + new /obj/item/weapon/card/id(src) + new /obj/item/weapon/card/id(src) + new /obj/item/weapon/card/id(src) + +/obj/item/weapon/storage/box/seccarts + name = "Spare R.O.B.U.S.T. Cartridges" + desc = "A box full of R.O.B.U.S.T. Cartridges, used by Security." + icon_state = "pda" + + New() + ..() + new /obj/item/weapon/cartridge/security(src) + new /obj/item/weapon/cartridge/security(src) + new /obj/item/weapon/cartridge/security(src) + new /obj/item/weapon/cartridge/security(src) + new /obj/item/weapon/cartridge/security(src) + new /obj/item/weapon/cartridge/security(src) + new /obj/item/weapon/cartridge/security(src) + + +/obj/item/weapon/storage/box/handcuffs + name = "spare handcuffs" + desc = "A box full of handcuffs." + icon_state = "handcuff" + + New() + ..() + new /obj/item/weapon/handcuffs(src) + new /obj/item/weapon/handcuffs(src) + new /obj/item/weapon/handcuffs(src) + new /obj/item/weapon/handcuffs(src) + new /obj/item/weapon/handcuffs(src) + new /obj/item/weapon/handcuffs(src) + new /obj/item/weapon/handcuffs(src) + +/obj/item/weapon/storage/box/mousetraps + name = "box of Pest-B-Gon Mousetraps" + desc = "WARNING: Keep out of reach of children." + icon_state = "mousetraps" + + New() + ..() + new /obj/item/device/assembly/mousetrap( src ) + new /obj/item/device/assembly/mousetrap( src ) + new /obj/item/device/assembly/mousetrap( src ) + new /obj/item/device/assembly/mousetrap( src ) + new /obj/item/device/assembly/mousetrap( src ) + new /obj/item/device/assembly/mousetrap( src ) + +/obj/item/weapon/storage/box/pillbottles + name = "box of pill bottles" + desc = "It has pictures of pill bottles on its front." + + New() + ..() + new /obj/item/weapon/storage/pill_bottle( src ) + new /obj/item/weapon/storage/pill_bottle( src ) + new /obj/item/weapon/storage/pill_bottle( src ) + new /obj/item/weapon/storage/pill_bottle( src ) + new /obj/item/weapon/storage/pill_bottle( src ) + new /obj/item/weapon/storage/pill_bottle( src ) + new /obj/item/weapon/storage/pill_bottle( src ) + + +/obj/item/weapon/storage/box/snappops + name = "snap pop box" + desc = "Eight wrappers of fun! Ages 8 and up. Not suitable for children." + icon = 'icons/obj/toy.dmi' + icon_state = "spbox" + storage_slots = 8 + can_hold = list("/obj/item/toy/snappop") + New() + ..() + for(var/i=1; i <= storage_slots; i++) + new /obj/item/toy/snappop(src) + +/obj/item/weapon/storage/box/matches + name = "matchbox" + desc = "A small box of Almost But Not Quite Plasma Premium Matches." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "matchbox" + item_state = "zippo" + storage_slots = 10 + w_class = 1 + flags = TABLEPASS + slot_flags = SLOT_BELT + + New() + ..() + for(var/i=1; i <= storage_slots; i++) + new /obj/item/weapon/match(src) + + attackby(obj/item/weapon/match/W as obj, mob/user as mob) + if(istype(W, /obj/item/weapon/match) && W.lit == 0) + W.lit = 1 + W.icon_state = "match_lit" + processing_objects.Add(W) + W.update_icon() + return + + +/obj/item/weapon/storage/box/lights + name = "replacement bulbs" + icon = 'icons/obj/storage.dmi' + icon_state = "light" + desc = "This box is shaped on the inside so that only light tubes and bulbs fit." + item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap + storage_slots=21 + can_hold = list("/obj/item/weapon/light/tube", "/obj/item/weapon/light/bulb") + max_combined_w_class = 21 + use_to_pickup = 1 // for picking up broken bulbs, not that most people will try + +/obj/item/weapon/storage/box/lights/bulbs/New() + ..() + for(var/i = 0; i < 21; i++) + new /obj/item/weapon/light/bulb(src) + +/obj/item/weapon/storage/box/lights/tubes + name = "replacement tubes" + icon_state = "lighttube" + +/obj/item/weapon/storage/box/lights/tubes/New() + ..() + for(var/i = 0; i < 21; i++) + new /obj/item/weapon/light/tube(src) + +/obj/item/weapon/storage/box/lights/mixed + name = "replacement lights" + icon_state = "lightmixed" + +/obj/item/weapon/storage/box/lights/mixed/New() + ..() + for(var/i = 0; i < 14; i++) + new /obj/item/weapon/light/tube(src) + for(var/i = 0; i < 7; i++) + new /obj/item/weapon/light/bulb(src) \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index ab7ba168d2..3c60005f75 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -3,11 +3,14 @@ * .. Sorry for the shitty path name, I couldnt think of a better one. * * WARNING: var/icon_type is used for both examine text and sprite name. Please look at the procs below and adjust your sprite names accordingly + * TODO: Cigarette boxes should be ported to this standard * * Contains: * Donut Box * Egg Box * Candle Box + * Crayon Box + * Cigarette Box */ /obj/item/weapon/storage/fancy/ @@ -94,3 +97,107 @@ for(var/i=1; i <= storage_slots; i++) new /obj/item/candle(src) return + +/* + * Crayon Box + */ + +/obj/item/weapon/storage/fancy/crayons + name = "box of crayons" + desc = "A box of crayons for all your rune drawing needs." + icon = 'icons/obj/crayons.dmi' + icon_state = "crayonbox" + w_class = 2.0 + storage_slots = 6 + icon_type = "crayon" + can_hold = list( + "/obj/item/toy/crayon" + ) + +/obj/item/weapon/storage/fancy/crayons/New() + ..() + new /obj/item/toy/crayon/red(src) + new /obj/item/toy/crayon/orange(src) + new /obj/item/toy/crayon/yellow(src) + new /obj/item/toy/crayon/green(src) + new /obj/item/toy/crayon/blue(src) + new /obj/item/toy/crayon/purple(src) + update_icon() + +/obj/item/weapon/storage/fancy/crayons/update_icon() + overlays = list() //resets list + overlays += image('icons/obj/crayons.dmi',"crayonbox") + for(var/obj/item/toy/crayon/crayon in contents) + overlays += image('icons/obj/crayons.dmi',crayon.colourName) + +/obj/item/weapon/storage/fancy/crayons/attackby(obj/item/W as obj, mob/user as mob) + if(istype(W,/obj/item/toy/crayon)) + switch(W:colourName) + if("mime") + usr << "This crayon is too sad to be contained in this box." + return + if("rainbow") + usr << "This crayon is too powerful to be contained in this box." + return + ..() + +//////////// +//CIG PACK// +//////////// +/obj/item/weapon/storage/fancy/cigarettes + name = "cigarette packet" + desc = "The most popular brand of Space Cigarettes, sponsors of the Space Olympics." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "cigpacket" + item_state = "cigpacket" + w_class = 1 + throwforce = 2 + flags = TABLEPASS + slot_flags = SLOT_BELT + storage_slots = 6 + can_hold = list("/obj/item/clothing/mask/cigarette") + icon_type = "cigarette" + +/obj/item/weapon/storage/fancy/cigarettes/New() + ..() + flags |= NOREACT + for(var/i = 1 to storage_slots) + new /obj/item/clothing/mask/cigarette(src) + create_reagents(15 * storage_slots)//so people can inject cigarettes without opening a packet, now with being able to inject the whole one + +/obj/item/weapon/storage/fancy/cigarettes/Del() + del(reagents) + ..() + + +/obj/item/weapon/storage/fancy/cigarettes/update_icon() + icon_state = "[initial(icon_state)][contents.len]" + desc = "There are [contents.len] cig\s left!" + return + +/obj/item/weapon/storage/fancy/cigarettes/remove_from_storage(obj/item/W as obj, atom/new_location) + var/obj/item/clothing/mask/cigarette/C = W + if(!istype(C)) return // what + reagents.trans_to(C, (reagents.total_volume/contents.len)) + ..() + +/obj/item/weapon/storage/fancy/cigarettes/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + if(!istype(M, /mob)) + return + + if(M == user && user.zone_sel.selecting == "mouth" && contents.len > 0 && !user.wear_mask) + var/obj/item/clothing/mask/cigarette/W = new /obj/item/clothing/mask/cigarette(user) + reagents.trans_to(W, (reagents.total_volume/contents.len)) + user.equip_to_slot_if_possible(W, slot_wear_mask) + reagents.maximum_volume = 15 * contents.len + contents.len-- + user << "You take a cigarette out of the pack." + update_icon() + else + ..() + +/obj/item/weapon/storage/fancy/cigarettes/dromedaryco + name = "\improper DromedaryCo packet" + desc = "A packet of six imported DromedaryCo cancer sticks. A label on the packaging reads, \"Wouldn't a slow death make a change?\"" + icon_state = "Dpacket" + item_state = "Dpacket" diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index c4dde85013..a5874f0985 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -1,8 +1,8 @@ /* First aid storage * Contains: * First Aid Kits - * Syringe Kit * Pill Bottles + * Dice Pack (in a pill bottle) */ /* @@ -93,27 +93,6 @@ new /obj/item/device/healthanalyzer( src ) return -/* - * Syringe Kit - */ -/obj/item/weapon/storage/syringes - name = "syringes" - desc = "A box full of syringes." - desc = "A biohazard alert warning is printed on the box" - icon_state = "syringe" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - ..() - new /obj/item/weapon/reagent_containers/syringe( src ) - new /obj/item/weapon/reagent_containers/syringe( src ) - new /obj/item/weapon/reagent_containers/syringe( src ) - new /obj/item/weapon/reagent_containers/syringe( src ) - new /obj/item/weapon/reagent_containers/syringe( src ) - new /obj/item/weapon/reagent_containers/syringe( src ) - new /obj/item/weapon/reagent_containers/syringe( src ) - return - /* * Pill Bottles */ @@ -124,8 +103,9 @@ icon = 'icons/obj/chemical.dmi' item_state = "contsolid" w_class = 2.0 - can_hold = list("/obj/item/weapon/reagent_containers/pill") - var/mode = 1 // pickup mode + can_hold = list("/obj/item/weapon/reagent_containers/pill","/obj/item/weapon/dice") + allow_quick_gather = 1 + use_to_pickup = 1 /obj/item/weapon/storage/pill_bottle/MouseDrop(obj/over_object as obj) //Quick pillbottle fix. -Agouri @@ -150,18 +130,6 @@ return return - -/obj/item/weapon/storage/pill_bottle/verb/toggle_mode() - set name = "Switch Pill Bottle Method" - set category = "Object" - - mode = !mode - switch (mode) - if(1) - usr << "The pill bottle now picks up all pills in a tile at once." - if(0) - usr << "The pill bottle now picks up one pill at a time." - /obj/item/weapon/storage/pill_bottle/kelotane name = "Pill bottle (kelotane)" desc = "Contains pills used to treat burns." @@ -204,3 +172,13 @@ new /obj/item/weapon/reagent_containers/pill/inaprovaline( src ) new /obj/item/weapon/reagent_containers/pill/inaprovaline( src ) + +/obj/item/weapon/storage/pill_bottle/dice + name = "pack of dice" + desc = "It's a small container with dice inside." + + New() + ..() + new /obj/item/weapon/dice( src ) + new /obj/item/weapon/dice/d20( src ) + diff --git a/code/game/objects/items/weapons/storage/kit.dm b/code/game/objects/items/weapons/storage/kit.dm deleted file mode 100644 index 34dfe45823..0000000000 --- a/code/game/objects/items/weapons/storage/kit.dm +++ /dev/null @@ -1,346 +0,0 @@ - -/obj/item/weapon/storage/lglo_kit - name = "Latex Gloves" - desc = "Contains white gloves." - icon_state = "latex" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/clothing/gloves/latex(src) - new /obj/item/clothing/gloves/latex(src) - new /obj/item/clothing/gloves/latex(src) - new /obj/item/clothing/gloves/latex(src) - new /obj/item/clothing/gloves/latex(src) - new /obj/item/clothing/gloves/latex(src) - new /obj/item/clothing/gloves/latex(src) - ..() - return - -/obj/item/weapon/storage/blankbox - name = "box of blank shells" - desc = "It has a picture of a gun and several warning symbols on the front." - icon_state = "box" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/ammo_casing/shotgun/blank(src) - new /obj/item/ammo_casing/shotgun/blank(src) - new /obj/item/ammo_casing/shotgun/blank(src) - new /obj/item/ammo_casing/shotgun/blank(src) - new /obj/item/ammo_casing/shotgun/blank(src) - new /obj/item/ammo_casing/shotgun/blank(src) - new /obj/item/ammo_casing/shotgun/blank(src) - ..() - return - -/obj/item/weapon/storage/beakerbox - name = "Beaker Box" - icon_state = "beaker" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - ..() - new /obj/item/weapon/reagent_containers/glass/beaker( src ) - new /obj/item/weapon/reagent_containers/glass/beaker( src ) - new /obj/item/weapon/reagent_containers/glass/beaker( src ) - new /obj/item/weapon/reagent_containers/glass/beaker( src ) - new /obj/item/weapon/reagent_containers/glass/beaker( src ) - new /obj/item/weapon/reagent_containers/glass/beaker( src ) - new /obj/item/weapon/reagent_containers/glass/beaker( src ) - -/obj/item/weapon/storage/flashbang_kit - name = "flashbangs (WARNING)" - desc = "WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use." - icon_state = "flashbang" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/grenade/flashbang(src) - new /obj/item/weapon/grenade/flashbang(src) - new /obj/item/weapon/grenade/flashbang(src) - new /obj/item/weapon/grenade/flashbang(src) - new /obj/item/weapon/grenade/flashbang(src) - new /obj/item/weapon/grenade/flashbang(src) - new /obj/item/weapon/grenade/flashbang(src) - ..() - return - -/obj/item/weapon/storage/emp_kit - name = "emp grenades" - desc = "A box with 5 emp grenades." - icon_state = "flashbang" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/grenade/empgrenade(src) - new /obj/item/weapon/grenade/empgrenade(src) - new /obj/item/weapon/grenade/empgrenade(src) - new /obj/item/weapon/grenade/empgrenade(src) - new /obj/item/weapon/grenade/empgrenade(src) - ..() - return - -/obj/item/weapon/storage/stma_kit - name = "Sterile Masks" - desc = "This box contains masks of sterility." - icon_state = "sterile" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/clothing/mask/surgical(src) - new /obj/item/clothing/mask/surgical(src) - new /obj/item/clothing/mask/surgical(src) - new /obj/item/clothing/mask/surgical(src) - new /obj/item/clothing/mask/surgical(src) - new /obj/item/clothing/mask/surgical(src) - new /obj/item/clothing/mask/surgical(src) - ..() - return - -/obj/item/weapon/storage/gl_kit - name = "Prescription Glasses" - desc = "This box contains nerd glasses." - icon_state = "glasses" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/clothing/glasses/regular(src) - new /obj/item/clothing/glasses/regular(src) - new /obj/item/clothing/glasses/regular(src) - new /obj/item/clothing/glasses/regular(src) - new /obj/item/clothing/glasses/regular(src) - new /obj/item/clothing/glasses/regular(src) - new /obj/item/clothing/glasses/regular(src) - ..() - return - -/obj/item/weapon/storage/trackimp_kit - name = "Tracking Implant Kit" - desc = "Box full of scum-bag tracking utensils." - icon_state = "implant" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/implantcase/tracking(src) - new /obj/item/weapon/implantcase/tracking(src) - new /obj/item/weapon/implantcase/tracking(src) - new /obj/item/weapon/implantcase/tracking(src) - new /obj/item/weapon/implanter(src) - new /obj/item/weapon/implantpad(src) - new /obj/item/weapon/locator(src) - ..() - return - -/obj/item/weapon/storage/chemimp_kit - name = "Chemical Implant Kit" - desc = "Box of stuff used to implant chemicals." - icon_state = "implant" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/implantcase/chem(src) - new /obj/item/weapon/implantcase/chem(src) - new /obj/item/weapon/implantcase/chem(src) - new /obj/item/weapon/implantcase/chem(src) - new /obj/item/weapon/implantcase/chem(src) - new /obj/item/weapon/implanter(src) - new /obj/item/weapon/implantpad(src) - ..() - return - -/obj/item/weapon/storage/injectbox - name = "DNA-Injectors" - desc = "This box contains injectors it seems." - icon_state = "box" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/dnainjector/h2m(src) - new /obj/item/weapon/dnainjector/h2m(src) - new /obj/item/weapon/dnainjector/h2m(src) - new /obj/item/weapon/dnainjector/m2h(src) - new /obj/item/weapon/dnainjector/m2h(src) - new /obj/item/weapon/dnainjector/m2h(src) - ..() - return - -/obj/item/weapon/storage/id_kit - name = "Spare IDs" - desc = "Has so many empty IDs." - icon_state = "id" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/card/id(src) - new /obj/item/weapon/card/id(src) - new /obj/item/weapon/card/id(src) - new /obj/item/weapon/card/id(src) - new /obj/item/weapon/card/id(src) - new /obj/item/weapon/card/id(src) - new /obj/item/weapon/card/id(src) - ..() - return - -/obj/item/weapon/storage/handcuff_kit - name = "Spare Handcuffs" - desc = "A box full of handcuffs." - icon_state = "handcuff" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/handcuffs(src) - new /obj/item/weapon/handcuffs(src) - new /obj/item/weapon/handcuffs(src) - new /obj/item/weapon/handcuffs(src) - new /obj/item/weapon/handcuffs(src) - new /obj/item/weapon/handcuffs(src) - new /obj/item/weapon/handcuffs(src) - ..() - return - -/obj/item/weapon/storage/seccart_kit - name = "Spare R.O.B.U.S.T. Cartridges" - desc = "A box full of R.O.B.U.S.T. Cartridges, used by Security." - icon = 'icons/obj/pda.dmi' - icon_state = "pdabox" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/cartridge/security(src) - new /obj/item/weapon/cartridge/security(src) - new /obj/item/weapon/cartridge/security(src) - new /obj/item/weapon/cartridge/security(src) - new /obj/item/weapon/cartridge/security(src) - new /obj/item/weapon/cartridge/security(src) - new /obj/item/weapon/cartridge/security(src) - ..() - return - -/obj/item/weapon/storage/donkpocket_kit - name = "box of donk-pockets" - desc = "Instructions: Heat in microwave. Product will cool if not eaten within seven minutes." - icon_state = "donk_kit" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) - new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) - new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) - new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) - new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) - new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) - ..() - return - -/obj/item/weapon/storage/condimentbottles - name = "box of condiment bottles" - desc = "It has a large ketchup smear on it." - icon_state = "box" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/reagent_containers/food/condiment(src) - new /obj/item/weapon/reagent_containers/food/condiment(src) - new /obj/item/weapon/reagent_containers/food/condiment(src) - new /obj/item/weapon/reagent_containers/food/condiment(src) - new /obj/item/weapon/reagent_containers/food/condiment(src) - new /obj/item/weapon/reagent_containers/food/condiment(src) - ..() - return - -/obj/item/weapon/storage/drinkingglasses - name = "box of drinking glasses" - desc = "It has a picture of drinking glasses on it." - icon_state = "box" - item_state = "syringe_kit" - - New() - new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) - new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) - new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) - new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) - new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) - new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) - ..() - return - -/obj/item/weapon/storage/cupbox - name = "box of paper cups" - desc = "It has pictures of paper cups on the front." - icon_state = "box" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - New() - ..() - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - -/obj/item/weapon/storage/dice - name = "pack of dice" - desc = "It's a small container with dice inside." - icon_state = "pill_canister" - icon = 'icons/obj/chemical.dmi' - item_state = "contsolid" - w_class = 2.0 - can_hold = list("/obj/item/weapon/dice") - - New() - new /obj/item/weapon/dice( src ) - new /obj/item/weapon/dice/d20( src ) - ..() - return - -/obj/item/weapon/storage/pillbottlebox - name = "box of pill bottles" - desc = "It has pictures of pill bottles on its front." - icon_state = "pillbox" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/weapon/storage/pill_bottle( src ) - new /obj/item/weapon/storage/pill_bottle( src ) - new /obj/item/weapon/storage/pill_bottle( src ) - new /obj/item/weapon/storage/pill_bottle( src ) - new /obj/item/weapon/storage/pill_bottle( src ) - new /obj/item/weapon/storage/pill_bottle( src ) - new /obj/item/weapon/storage/pill_bottle( src ) - ..() - return - -/obj/item/weapon/storage/mousetraps - name = "box of Pest-B-Gon Mousetraps" - desc = "WARNING: Keep out of reach of children." - icon_state = "mousetraps" - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - - New() - new /obj/item/device/assembly/mousetrap( src ) - new /obj/item/device/assembly/mousetrap( src ) - new /obj/item/device/assembly/mousetrap( src ) - new /obj/item/device/assembly/mousetrap( src ) - new /obj/item/device/assembly/mousetrap( src ) - new /obj/item/device/assembly/mousetrap( src ) - ..() - return \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm new file mode 100644 index 0000000000..c023cd247c --- /dev/null +++ b/code/game/objects/items/weapons/storage/secure.dm @@ -0,0 +1,242 @@ +/* + * Absorbs /obj/item/weapon/secstorage. + * Reimplements it only slightly to use existing storage functionality. + * + * Contains: + * Secure Briefcase + * Wall Safe + */ + +// ----------------------------- +// Generic Item +// ----------------------------- +/obj/item/weapon/storage/secure + name = "secstorage" + var/icon_locking = "secureb" + var/icon_sparking = "securespark" + var/icon_opened = "secure0" + var/locked = 1 + var/code = "" + var/l_code = null + var/l_set = 0 + var/l_setshort = 0 + var/l_hacking = 0 + var/emagged = 0 + var/open = 0 + w_class = 3.0 + max_w_class = 2 + max_combined_w_class = 14 + + examine() + set src in oview(1) + ..() + usr << text("The service panel is [src.open ? "open" : "closed"].") + + attackby(obj/item/weapon/W as obj, mob/user as mob) + if(locked) + if ( (istype(W, /obj/item/weapon/card/emag)||istype(W, /obj/item/weapon/melee/energy/blade)) && (!src.emagged)) + emagged = 1 + src.overlays += image('icons/obj/storage.dmi', icon_sparking) + sleep(6) + src.overlays = null + overlays += image('icons/obj/storage.dmi', icon_locking) + locked = 0 + if(istype(W, /obj/item/weapon/melee/energy/blade)) + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() + spark_system.set_up(5, 0, src.loc) + spark_system.start() + playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1) + playsound(src.loc, "sparks", 50, 1) + user << "You slice through the lock on [src]." + else + user << "You short out the lock on [src]." + return + + if (istype(W, /obj/item/weapon/screwdriver)) + if (do_after(user, 20)) + src.open =! src.open + user.show_message(text("\blue You [] the service panel.", (src.open ? "open" : "close"))) + return + if ((istype(W, /obj/item/device/multitool)) && (src.open == 1)&& (!src.l_hacking)) + user.show_message(text("\red Now attempting to reset internal memory, please hold."), 1) + src.l_hacking = 1 + if (do_after(usr, 100)) + if (prob(40)) + src.l_setshort = 1 + src.l_set = 0 + user.show_message(text("\red Internal memory reset. Please give it a few seconds to reinitialize."), 1) + sleep(80) + src.l_setshort = 0 + src.l_hacking = 0 + else + user.show_message(text("\red Unable to reset internal memory."), 1) + src.l_hacking = 0 + else src.l_hacking = 0 + return + //At this point you have exhausted all the special things to do when locked + // ... but it's still locked. + return + + // -> storage/attackby() what with handle insertion, etc + ..() + + + MouseDrop(over_object, src_location, over_location) + if (locked) + src.add_fingerprint(usr) + return + ..() + + + attack_self(mob/user as mob) + user.set_machine(src) + var/dat = text("[]
\n\nLock Status: []",src, (src.locked ? "LOCKED" : "UNLOCKED")) + var/message = "Code" + if ((src.l_set == 0) && (!src.emagged) && (!src.l_setshort)) + dat += text("

\n5-DIGIT PASSCODE NOT SET.
ENTER NEW PASSCODE.
") + if (src.emagged) + dat += text("

\nLOCKING SYSTEM ERROR - 1701") + if (src.l_setshort) + dat += text("

\nALERT: MEMORY SYSTEM ERROR - 6040 201") + message = text("[]", src.code) + if (!src.locked) + message = "*****" + dat += text("


\n>[]
\n1-2-3
\n4-5-6
\n7-8-9
\nR-0-E
\n
", message, src, src, src, src, src, src, src, src, src, src, src, src) + user << browse(dat, "window=caselock;size=300x280") + + Topic(href, href_list) + ..() + if ((usr.stat || usr.restrained()) || (get_dist(src, usr) > 1)) + return + if (href_list["type"]) + if (href_list["type"] == "E") + if ((src.l_set == 0) && (length(src.code) == 5) && (!src.l_setshort) && (src.code != "ERROR")) + src.l_code = src.code + src.l_set = 1 + else if ((src.code == src.l_code) && (src.emagged == 0) && (src.l_set == 1)) + src.locked = 0 + src.overlays = null + overlays += image('icons/obj/storage.dmi', icon_opened) + src.code = null + else + src.code = "ERROR" + else + if ((href_list["type"] == "R") && (src.emagged == 0) && (!src.l_setshort)) + src.locked = 1 + src.overlays = null + src.code = null + src.close(usr) + else + src.code += text("[]", href_list["type"]) + if (length(src.code) > 5) + src.code = "ERROR" + src.add_fingerprint(usr) + for(var/mob/M in viewers(1, src.loc)) + if ((M.client && M.machine == src)) + src.attack_self(M) + return + return + +// ----------------------------- +// Secure Briefcase +// ----------------------------- +/obj/item/weapon/storage/secure/briefcase + name = "secure briefcase" + icon = 'icons/obj/storage.dmi' + icon_state = "secure" + item_state = "sec-case" + desc = "A large briefcase with a digital locking system." + flags = FPRINT | TABLEPASS + force = 8.0 + throw_speed = 1 + throw_range = 4 + w_class = 4.0 + + New() + ..() + new /obj/item/weapon/paper(src) + new /obj/item/weapon/pen(src) + + attack_hand(mob/user as mob) + if ((src.loc == user) && (src.locked == 1)) + usr << "\red [src] is locked and cannot be opened!" + else if ((src.loc == user) && (!src.locked)) + playsound(src.loc, "rustle", 50, 1, -5) + if (user.s_active) + user.s_active.close(user) //Close and re-open + src.show_to(user) + else + ..() + for(var/mob/M in range(1)) + if (M.s_active == src) + src.close(M) + src.orient2hud(user) + src.add_fingerprint(user) + return + + //I consider this worthless but it isn't my code so whatever. Remove or uncomment. + /*attack(mob/M as mob, mob/living/user as mob) + if ((CLUMSY in user.mutations) && prob(50)) + user << "\red The [src] slips out of your hand and hits your head." + user.take_organ_damage(10) + user.Paralyse(2) + return + + M.attack_log += text("\[[time_stamp()]\] Has been attacked with [src.name] by [user.name] ([user.ckey])") + user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to attack [M.name] ([M.ckey])") + + log_attack("[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") + + var/t = user:zone_sel.selecting + if (t == "head") + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if (H.stat < 2 && H.health < 50 && prob(90)) + // ******* Check + if (istype(H, /obj/item/clothing/head) && H.flags & 8 && prob(80)) + H << "\red The helmet protects you from being hit hard in the head!" + return + var/time = rand(2, 6) + if (prob(75)) + H.Paralyse(time) + else + H.Stun(time) + if(H.stat != 2) H.stat = 1 + for(var/mob/O in viewers(H, null)) + O.show_message(text("\red [] has been knocked unconscious!", H), 1, "\red You hear someone fall.", 2) + else + H << text("\red [] tried to knock you unconcious!",user) + H.eye_blurry += 3 + + return*/ + +// ----------------------------- +// Secure Safe +// ----------------------------- + +/obj/item/weapon/storage/secure/safe + name = "secure safe" + icon = 'icons/obj/storage.dmi' + icon_state = "safe" + icon_opened = "safe0" + icon_locking = "safeb" + icon_sparking = "safespark" + flags = FPRINT | TABLEPASS + force = 8.0 + w_class = 8.0 + max_w_class = 8 + anchored = 1.0 + density = 0 + cant_hold = list("/obj/item/weapon/storage/secure/briefcase") + + New() + ..() + new /obj/item/weapon/paper(src) + new /obj/item/weapon/pen(src) + + attack_hand(mob/user as mob) + return attack_self(user) + +/obj/item/weapon/storage/secure/safe/HoS/New() + ..() + //new /obj/item/weapon/storage/lockbox/clusterbang(src) This item is currently broken... and probably shouldnt exist to begin with (even though it's cool) \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index aaa9f7ab5f..982be4d081 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -1,6 +1,14 @@ +// To clarify: +// For use_to_pickup and allow_quick_gather functionality, +// see item/attackby() (/game/objects/items.dm) +// Do not remove this functionality without good reason, cough reagent_containers cough. +// -Sayu + + /obj/item/weapon/storage - icon = 'icons/obj/storage.dmi' name = "storage" + icon = 'icons/obj/storage.dmi' + w_class = 3.0 var/list/can_hold = new/list() //List of objects which this item can store (if set, it can't store anything else) var/list/cant_hold = new/list() //List of objects which this item can't store (in effect only if can_hold isn't set) var/max_w_class = 2 //Max size of objects that this object can store (in effect only if can_hold isn't set) @@ -13,7 +21,6 @@ var/allow_quick_empty //Set this variable to allow the object to have the 'empty' verb, which dumps all the contents on the floor. var/allow_quick_gather //Set this variable to allow the object to have the 'toggle mode' verb, which quickly collects all items from a tile. var/collection_mode = 1; //0 = pick one at a time, 1 = pick all on tile - w_class = 3.0 var/foldable = null // BubbleWrap - if set, can be folded (when empty) into a sheet of cardboard /obj/item/weapon/storage/MouseDrop(obj/over_object as obj) @@ -172,7 +179,7 @@ return //This proc return 1 if the item can be picked up and 0 if it can't. -//Set the stop_messages to stop it from printing emssages +//Set the stop_messages to stop it from printing messages /obj/item/weapon/storage/proc/can_be_inserted(obj/item/W as obj, stop_messages = 0) if(!istype(W)) return //Not an item @@ -180,7 +187,7 @@ return 0 //Means the item is already in the storage item if(contents.len >= storage_slots) if(!stop_messages) - usr << "\red The [src] is full, make some space." + usr << "[src] is full, make some space." return 0 //Storage item is full if(can_hold.len) @@ -191,18 +198,18 @@ break if(!ok) if(!stop_messages) - usr << "\red This [src] cannot hold [W]." + usr << "[src] cannot hold [W]." return 0 for(var/A in cant_hold) //Check for specific items which this container can't hold. if(istype(W, text2path(A) )) if(!stop_messages) - usr << "\red This [src] cannot hold [W]." + usr << "[src] cannot hold [W]." return 0 if (W.w_class > max_w_class) if(!stop_messages) - usr << "\red This [W] is too big for this [src]" + usr << "[W] is too big for this [src]." return 0 var/sum_w_class = W.w_class @@ -211,13 +218,13 @@ if(sum_w_class > max_combined_w_class) if(!stop_messages) - usr << "\red The [src] is full, make some space." + usr << "[src] is full, make some space." return 0 if(W.w_class >= src.w_class && (istype(W, /obj/item/weapon/storage))) if(!istype(src, /obj/item/weapon/storage/backpack/holding)) //bohs should be able to hold backpacks again. The override for putting a boh in a boh is in backpack.dm. if(!stop_messages) - usr << "\red The [src] cannot hold [W] as it's a storage item of the same size." + usr << "[src] cannot hold [W] as it's a storage item of the same size." return 0 //To prevent the stacking of same sized storage items. return 1 @@ -241,11 +248,11 @@ if(!prevent_warning && !istype(W, /obj/item/weapon/gun/energy/crossbow)) for(var/mob/M in viewers(usr, null)) if (M == usr) - usr << "\blue You put the [W] into [src]." + usr << "You put the [W] into [src]." else if (M in range(1)) //If someone is standing close enough, they can tell what it is... - M.show_message("\blue [usr] puts [W] into [src].") + M.show_message("[usr] puts [W] into [src].") else if (W && W.w_class >= 3.0) //Otherwise they can only see large or normal items from a distance... - M.show_message("\blue [usr] puts [W] into [src].") + M.show_message("[usr] puts [W] into [src].") src.orient2hud(usr) if(usr.s_active) @@ -360,9 +367,9 @@ collection_mode = !collection_mode switch (collection_mode) if(1) - usr << "The [src] now picks up all ore in a tile at once." + usr << "[src] now picks up all items in a tile at once." if(0) - usr << "The [src] now picks up one ore at a time." + usr << "[src] now picks up one item at a time." /obj/item/weapon/storage/verb/quick_empty() @@ -433,7 +440,7 @@ if ( !found ) // User is too far away return // Now make the cardboard - user << "\blue You fold [src] flat." + user << "You fold [src] flat." new src.foldable(get_turf(src)) del(src) //BubbleWrap END diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index 1ef400a972..d8c52b956f 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -1,20 +1,78 @@ -/obj/item/weapon/storage/syndie_kit +/obj/item/weapon/storage/box/syndicate/ + New() + ..() + switch (pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "murder" = 1, "freedom" = 1, "hacker" = 1, "lordsingulo" = 1))) + if ("bloodyspai") + new /obj/item/clothing/under/chameleon(src) + new /obj/item/clothing/mask/gas/voice(src) + new /obj/item/weapon/card/id/syndicate(src) + new /obj/item/clothing/shoes/syndigaloshes(src) + return + + if ("stealth") + new /obj/item/weapon/gun/energy/crossbow(src) + new /obj/item/weapon/pen/paralysis(src) + new /obj/item/device/chameleon(src) + return + + if ("screwed") + new /obj/effect/spawner/newbomb/timer/syndicate(src) + new /obj/effect/spawner/newbomb/timer/syndicate(src) + new /obj/item/device/powersink(src) + new /obj/item/clothing/suit/space/syndicate(src) + new /obj/item/clothing/head/helmet/space/syndicate(src) + return + + if ("guns") + new /obj/item/weapon/gun/projectile(src) + new /obj/item/ammo_magazine/a357(src) + new /obj/item/weapon/card/emag(src) + new /obj/item/weapon/plastique(src) + return + + if ("murder") + new /obj/item/weapon/melee/energy/sword(src) + new /obj/item/clothing/glasses/thermal/syndi(src) + new /obj/item/weapon/card/emag(src) + new /obj/item/clothing/shoes/syndigaloshes(src) + return + + if("freedom") + var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src) + O.imp = new /obj/item/weapon/implant/freedom(O) + var/obj/item/weapon/implanter/U = new /obj/item/weapon/implanter(src) + U.imp = new /obj/item/weapon/implant/uplink(U) + return + + if ("hacker") + new /obj/item/weapon/aiModule/syndicate(src) + new /obj/item/weapon/card/emag(src) + new /obj/item/device/encryptionkey/binary(src) + return + + if ("lordsingulo") + new /obj/item/device/radio/beacon/syndicate(src) + new /obj/item/clothing/suit/space/syndicate(src) + new /obj/item/clothing/head/helmet/space/syndicate(src) + new /obj/item/weapon/card/emag(src) + return + +/obj/item/weapon/storage/box/syndie_kit name = "Box" desc = "A sleek, sturdy box" icon_state = "box_of_doom" - item_state = "syringe_kit" -/obj/item/weapon/storage/syndie_kit/imp_freedom +/obj/item/weapon/storage/box/syndie_kit/imp_freedom name = "Freedom Implant (with injector)" -/obj/item/weapon/storage/syndie_kit/imp_freedom/New() - var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src) +/obj/item/weapon/storage/box/syndie_kit/imp_freedom/New() + ..() + var/obj/item/weapon/implanter/O = new(src) O.imp = new /obj/item/weapon/implant/freedom(O) O.update() - ..() return -/*/obj/item/weapon/storage/syndie_kit/imp_compress +/*/obj/item/weapon/storage/box/syndie_kit/imp_compress name = "Compressed Matter Implant (with injector)" /obj/item/weapon/storage/syndie_kit/imp_compress/New() @@ -33,21 +91,21 @@ ..() return*/ -/obj/item/weapon/storage/syndie_kit/imp_uplink +/obj/item/weapon/storage/box/syndie_kit/imp_uplink name = "Uplink Implant (with injector)" -/obj/item/weapon/storage/syndie_kit/imp_uplink/New() - var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src) +/obj/item/weapon/storage/box/syndie_kit/imp_uplink/New() + ..() + var/obj/item/weapon/implanter/O = new(src) O.imp = new /obj/item/weapon/implant/uplink(O) O.update() - ..() return -/obj/item/weapon/storage/syndie_kit/space +/obj/item/weapon/storage/box/syndie_kit/space name = "Space Suit and Helmet" -/obj/item/weapon/storage/syndie_kit/space/New() +/obj/item/weapon/storage/box/syndie_kit/space/New() + ..() new /obj/item/clothing/suit/space/syndicate(src) new /obj/item/clothing/head/helmet/space/syndicate(src) - ..() return diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm index b9ebc56d10..86d0f1825b 100644 --- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm +++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm @@ -105,9 +105,9 @@ new /obj/item/weapon/melee/baton(src) new /obj/item/weapon/melee/baton(src) new /obj/item/weapon/melee/baton(src) - new /obj/item/weapon/storage/flashbang_kit(src) - new /obj/item/weapon/storage/flashbang_kit(src) - new /obj/item/weapon/storage/flashbang_kit(src) + new /obj/item/weapon/storage/box/flashbangs(src) + new /obj/item/weapon/storage/box/flashbangs(src) + new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/clothing/head/helmet/thunderdome(src) new /obj/item/clothing/head/helmet/thunderdome(src) new /obj/item/clothing/head/helmet/thunderdome(src) @@ -133,9 +133,9 @@ new /obj/item/weapon/melee/baton(src) new /obj/item/weapon/melee/baton(src) new /obj/item/weapon/melee/baton(src) - new /obj/item/weapon/storage/flashbang_kit(src) - new /obj/item/weapon/storage/flashbang_kit(src) - new /obj/item/weapon/storage/flashbang_kit(src) + new /obj/item/weapon/storage/box/flashbangs(src) + new /obj/item/weapon/storage/box/flashbangs(src) + new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/clothing/head/helmet/thunderdome(src) new /obj/item/clothing/head/helmet/thunderdome(src) new /obj/item/clothing/head/helmet/thunderdome(src) diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index 32d5d782cb..ee02050241 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -50,7 +50,7 @@ new /obj/item/weapon/caution(src) new /obj/item/weapon/caution(src) new /obj/item/weapon/caution(src) - new /obj/item/weapon/trashbag(src) + new /obj/item/weapon/storage/bag/trash(src) new /obj/item/device/lightreplacer(src) new /obj/item/clothing/gloves/black(src) new /obj/item/clothing/head/soft/purple(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm index bf75af4cbd..cf2db4fa7b 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm @@ -17,7 +17,7 @@ new /obj/item/clothing/suit/apron(src) if(2) new /obj/item/clothing/suit/apron/overalls(src) - new /obj/item/weapon/plantbag(src) + new /obj/item/weapon/storage/bag/plants(src) new /obj/item/clothing/under/rank/hydroponics(src) new /obj/item/device/analyzer/plant_analyzer(src) new /obj/item/clothing/head/greenbandana(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index 030d8dc9c3..c1774723f9 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -13,7 +13,7 @@ New() ..() sleep(2) - new /obj/item/weapon/storage/syringes(src) + new /obj/item/weapon/storage/box/syringes(src) new /obj/item/weapon/reagent_containers/dropper(src) new /obj/item/weapon/reagent_containers/dropper(src) new /obj/item/weapon/reagent_containers/glass/beaker(src) @@ -157,8 +157,8 @@ New() ..() sleep(2) - new /obj/item/weapon/storage/pillbottlebox(src) - new /obj/item/weapon/storage/pillbottlebox(src) + new /obj/item/weapon/storage/box/pillbottles(src) + new /obj/item/weapon/storage/box/pillbottles(src) return /obj/structure/closet/secure_closet/medical_wall diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 38db6d73aa..db74b4965f 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -48,8 +48,8 @@ new /obj/item/weapon/cartridge/hop(src) new /obj/item/device/radio/headset/heads/hop(src) new /obj/item/clothing/shoes/brown(src) - new /obj/item/weapon/storage/id_kit(src) - new /obj/item/weapon/storage/id_kit( src ) + new /obj/item/weapon/storage/box/ids(src) + new /obj/item/weapon/storage/box/ids( src ) new /obj/item/weapon/gun/energy/gun(src) new /obj/item/device/flash(src) new /obj/item/clothing/glasses/sunglasses(src) @@ -83,7 +83,7 @@ new /obj/item/clothing/glasses/sunglasses/sechud(src) new /obj/item/weapon/shield/riot(src) new /obj/item/weapon/storage/lockbox/loyalty(src) - new /obj/item/weapon/storage/flashbang_kit(src) + new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/weapon/storage/belt/security(src) new /obj/item/device/flash(src) new /obj/item/weapon/melee/baton(src) @@ -117,7 +117,7 @@ // new /obj/item/weapon/cartridge/security(src) new /obj/item/device/radio/headset/headset_sec(src) new /obj/item/clothing/glasses/sunglasses/sechud(src) - new /obj/item/weapon/storage/flashbang_kit(src) + new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/weapon/storage/belt/security(src) new /obj/item/weapon/reagent_containers/spray/pepper(src) new /obj/item/weapon/melee/baton(src) diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm index 349ca4cc13..509a64662f 100644 --- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm +++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm @@ -35,8 +35,8 @@ new /obj/item/ammo_magazine/a12mm(src) new /obj/item/ammo_magazine/a12mm(src) new /obj/item/ammo_magazine/a12mm(src) - new /obj/item/weapon/storage/handcuff_kit(src) - new /obj/item/weapon/storage/flashbang_kit(src) + new /obj/item/weapon/storage/box/handcuffs(src) + new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/weapon/gun/energy/gun(src) new /obj/item/weapon/gun/energy/gun(src) new /obj/item/weapon/gun/energy/gun(src) diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index d801b48642..7d5f5b603f 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -7,7 +7,7 @@ flags = OPENCONTAINER //copypaste sorry var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite - var/obj/item/weapon/trashbag/mybag = null + var/obj/item/weapon/storage/bag/trash/mybag = null /obj/structure/stool/bed/chair/janicart/New() handle_rotation() @@ -33,7 +33,7 @@ user << "This pimpin' ride is out of water!" else if(istype(W, /obj/item/key)) user << "Hold [W] in one of your hands while you drive this pimpin' ride." - else if(istype(W, /obj/item/weapon/trashbag)) + else if(istype(W, /obj/item/weapon/storage/bag/trash)) user << "You hook the trashbag onto the pimpin' ride." user.drop_item() W.loc = src diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 9214a71a16..a4dc1af9ce 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -711,7 +711,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword(M), slot_l_store) M.equip_to_slot_or_del(new /obj/item/weapon/cloaking_device(M), slot_r_store) - var/obj/item/weapon/secstorage/sbriefcase/sec_briefcase = new(M) + var/obj/item/weapon/storage/secure/briefcase/sec_briefcase = new(M) for(var/obj/item/briefcase_item in sec_briefcase) del(briefcase_item) for(var/i=3, i>0, i--) diff --git a/code/modules/admin/verbs/striketeam.dm b/code/modules/admin/verbs/striketeam.dm index dfed555ea1..132573e2a5 100644 --- a/code/modules/admin/verbs/striketeam.dm +++ b/code/modules/admin/verbs/striketeam.dm @@ -144,7 +144,7 @@ var/global/sent_strike_team = 0 equip_to_slot_or_del(new /obj/item/ammo_magazine/a357(src), slot_in_backpack) equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/regular(src), slot_in_backpack) - equip_to_slot_or_del(new /obj/item/weapon/storage/flashbang_kit(src), slot_in_backpack) + equip_to_slot_or_del(new /obj/item/weapon/storage/box/flashbangs(src), slot_in_backpack) equip_to_slot_or_del(new /obj/item/device/flashlight(src), slot_in_backpack) if (!leader_selected) equip_to_slot_or_del(new /obj/item/weapon/plastique(src), slot_in_backpack) diff --git a/code/modules/clothing/spacesuits/rig.dm b/code/modules/clothing/spacesuits/rig.dm index 5a7112015e..068f8f87db 100644 --- a/code/modules/clothing/spacesuits/rig.dm +++ b/code/modules/clothing/spacesuits/rig.dm @@ -41,7 +41,7 @@ item_state = "eng_hardsuit" slowdown = 2 armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 60) - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/storage/satchel,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd) //Chief Engineer's rig diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index bf48605160..f234a3d661 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -66,7 +66,7 @@ item_state = "det_suit" blood_overlay_type = "coat" body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS - allowed = list(/obj/item/weapon/tank/emergency_oxygen, /obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/cigpacket,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder) + allowed = list(/obj/item/weapon/tank/emergency_oxygen, /obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder) armor = list(melee = 50, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0) //Engineering diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index f3872473e7..f5cdb7b382 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -88,7 +88,7 @@ item_state = "judge" flags = FPRINT | TABLEPASS | ONESIZEFITSALL body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS - allowed = list(/obj/item/weapon/cigpacket,/obj/item/weapon/spacecash) + allowed = list(/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/spacecash) flags_inv = HIDEJUMPSUIT diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 00423435b7..8992817ffe 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -332,14 +332,14 @@ proc/check_panel(mob/M) var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/item/ammo_magazine/a357,\ /obj/item/weapon/gun/energy/crossbow, /obj/item/weapon/melee/energy/sword,\ - /obj/item/weapon/storage/box/syndicate, /obj/item/weapon/storage/emp_kit,\ + /obj/item/weapon/storage/box/syndicate, /obj/item/weapon/storage/box/emps,\ /obj/item/weapon/cartridge/syndicate, /obj/item/clothing/under/chameleon,\ /obj/item/clothing/shoes/syndigaloshes, /obj/item/weapon/card/id/syndicate,\ /obj/item/clothing/mask/gas/voice, /obj/item/clothing/glasses/thermal,\ /obj/item/device/chameleon, /obj/item/weapon/card/emag,\ /obj/item/weapon/storage/toolbox/syndicate, /obj/item/weapon/aiModule,\ /obj/item/device/radio/headset/syndicate, /obj/item/weapon/plastique,\ - /obj/item/device/powersink, /obj/item/weapon/storage/syndie_kit,\ + /obj/item/device/powersink, /obj/item/weapon/storage/box/syndie_kit,\ /obj/item/toy/syndicateballoon, /obj/item/weapon/gun/energy/laser/captain,\ /obj/item/weapon/hand_tele, /obj/item/weapon/rcd, /obj/item/weapon/tank/jetpack,\ /obj/item/clothing/under/rank/captain, /obj/item/device/aicard,\ diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index be1513a477..84ea779898 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -31,7 +31,7 @@ new /obj/item/clothing/gloves/black(src) new /obj/item/clothing/shoes/black(src) new /obj/item/device/analyzer(src) - new /obj/item/weapon/storage/satchel(src) + new /obj/item/weapon/storage/bag/ore(src) new /obj/item/device/flashlight/lantern(src) new /obj/item/weapon/shovel(src) new /obj/item/weapon/pickaxe(src) diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 8f6c496642..72fb4a92da 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -382,8 +382,8 @@ commented out in r5061, I left it because of the shroom thingies user << "\blue You dug a hole." gets_dug() - if(istype(W,/obj/item/weapon/storage/satchel)) - var/obj/item/weapon/storage/satchel/S = W + if(istype(W,/obj/item/weapon/storage/bag/ore)) + var/obj/item/weapon/storage/bag/ore/S = W if(S.collection_mode) for(var/obj/item/weapon/ore/O in src.contents) O.attackby(W,user) @@ -453,11 +453,11 @@ commented out in r5061, I left it because of the shroom thingies if(istype(M,/mob/living/silicon/robot)) var/mob/living/silicon/robot/R = M if(istype(R.module, /obj/item/weapon/robot_module/miner)) - if(istype(R.module_state_1,/obj/item/weapon/storage/satchel)) + if(istype(R.module_state_1,/obj/item/weapon/storage/bag/ore)) src.attackby(R.module_state_1,R) - else if(istype(R.module_state_2,/obj/item/weapon/storage/satchel)) + else if(istype(R.module_state_2,/obj/item/weapon/storage/bag/ore)) src.attackby(R.module_state_2,R) - else if(istype(R.module_state_3,/obj/item/weapon/storage/satchel)) + else if(istype(R.module_state_3,/obj/item/weapon/storage/bag/ore)) src.attackby(R.module_state_3,R) else return \ No newline at end of file diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm index 1487582395..4800991b6f 100644 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ b/code/modules/mining/satchel_ore_boxdm.dm @@ -81,174 +81,3 @@ usr << "\blue You empty the box" src.updateUsrDialog() return - -/**********************Sheet Snatcher**************************/ -//Stolen satchel code, making it a box just wouldn't work well for this -Sieve - -/obj/item/weapon/sheetsnatcher - icon = 'icons/obj/mining.dmi' - icon_state = "sheetsnatcher" - name = "Sheet Snatcher" - desc = "A patented Nanotrasen storage system designed for any kind of mineral sheet." - var/mode = 1; //0 = pick one at a time, 1 = pick all on tile - var/capacity = 300; //the number of sheets it can carry. - flags = FPRINT | TABLEPASS - w_class = 3 - var/metal = 0//Holder values, to have a count of how much of each type is in the snatcher - var/glass = 0 - var/gold = 0 - var/silver = 0 - var/diamond = 0 - var/plasma = 0 - var/uranium = 0 - var/clown = 0 - var/euranium = 0 - var/plasteel = 0 - var/rglass = 0 - -/obj/item/weapon/sheetsnatcher/attack_self(mob/user as mob)//Credit goes to carn on this one - var/location = get_turf(src) //fetches the turf containing the object. (so stuff spawns on the floor) - while(metal) - var/obj/item/stack/sheet/metal/S = new (location) - var/stacksize = min(metal,50) //maximum stack size is 50! - S.amount = stacksize - metal -= stacksize - while(glass) - var/obj/item/stack/sheet/glass/S = new (location) - var/stacksize = min(glass,50) - S.amount = stacksize - glass -= stacksize - while(gold) - var/obj/item/stack/sheet/mineral/gold/S = new (location) - var/stacksize = min(gold,50) - S.amount = stacksize - gold -= stacksize - while(silver) - var/obj/item/stack/sheet/mineral/silver/S = new (location) - var/stacksize = min(silver,50) - S.amount = stacksize - silver -= stacksize - while(diamond) - var/obj/item/stack/sheet/mineral/diamond/S = new (location) - var/stacksize = min(diamond,50) - S.amount = stacksize - diamond -= stacksize - while(plasma) - var/obj/item/stack/sheet/mineral/plasma/S = new (location) - var/stacksize = min(plasma,50) - S.amount = stacksize - plasma -= stacksize - while(uranium) - var/obj/item/stack/sheet/mineral/uranium/S = new (location) - var/stacksize = min(uranium,50) - S.amount = stacksize - uranium -= stacksize - while(clown) - var/obj/item/stack/sheet/mineral/clown/S = new (location) - var/stacksize = min(clown,50) - S.amount = stacksize - clown -= stacksize - while(euranium) - var/obj/item/stack/sheet/mineral/enruranium/S = new (location) - var/stacksize = min(euranium,50) - S.amount = stacksize - euranium -= stacksize - while(plasteel) - var/obj/item/stack/sheet/plasteel/S = new (location) - var/stacksize = min(plasteel,50) - S.amount = stacksize - plasteel -= stacksize - while(rglass) - var/obj/item/stack/sheet/rglass/S = new (location) - var/stacksize = min(rglass,50) - S.amount = stacksize - rglass -= stacksize - if(!metal && !glass && !gold && !silver && !diamond && !plasma && !uranium && !clown && !euranium && !plasteel && !rglass) - user << "\blue You empty the snatch." - return - - -/obj/item/weapon/sheetsnatcher/attackby(obj/item/weapon/W as obj, mob/user as mob) - ..() - if (istype(W, /obj/item/stack/sheet)) - var/obj/item/stack/sheet/O = W - src.add(O,user) - return - -/obj/item/weapon/sheetsnatcher/verb/toggle_mode() - set name = "Switch Sheet Snatcher Method" - set category = "Object" - - mode = !mode - switch (mode) - if(1) - usr << "The snatcher now picks up all sheets on a tile at once." - if(0) - usr << "The snatcher now picks up one sheet at a time." - -/obj/item/weapon/sheetsnatcher/proc/add(var/obj/item/stack/sheet/S as obj, mob/user as mob)//Handles sheets, adds them to the holder values - if((S.name == "Sandstone Bricks") || (S.name == "Wood Planks"))//Does not pick up sandstone or wood, as they are not true sheets - return - var/current = metal+glass+gold+silver+diamond+plasma+uranium+clown+euranium+plasteel+rglass - if(capacity == current)//If it's full, you're done - user << "\red The snatcher is full." - return - if(capacity < current + S.amount)//If the stack will fill it up - var/diff = capacity - current - switch(S.name) - if("metal") - metal += diff - if("glass") - glass += diff - if("silver") - silver += diff - if("gold") - gold += diff - if("diamond") - diamond += diff - if("solid plasma") - plasma += diff - if("uranium") - uranium += diff - if("bananium") - clown += diff - if("enriched uranium") - euranium += diff - if("plasteel") - plasteel += diff - if("reinforced glass") - rglass += diff - S.amount -= diff - user << "\blue You add the [S.name] to the [name]" - else - switch(S.name) - if("metal") - metal += S.amount - if("glass") - glass += S.amount - if("silver") - silver += S.amount - if("gold") - gold += S.amount - if("diamond") - diamond += S.amount - if("solid plasma") - plasma += S.amount - if("uranium") - uranium += S.amount - if("bananium") - clown += S.amount - if("enriched uranium") - euranium += S.amount - if("plasteel") - plasteel += S.amount - if("reinforced glass") - rglass += S.amount - user << "\blue You add the [S.name] to the [name]" - del (S) - return - -/obj/item/weapon/sheetsnatcher/borg - name = "Sheet Snatcher 9000" - desc = "" - capacity = 500//Borgs get more because >specialization \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm index 9cf49ce607..f9f4eb0420 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -104,39 +104,28 @@ Proc: RefreshInfectionImage() Des: Removes all infection images from aliens and places an infection image on all infected mobs for aliens. ----------------------------------------*/ /obj/item/alien_embryo/proc/RefreshInfectionImage() - spawn(0) - for (var/mob/living/carbon/alien/alien in player_list) - if (alien.client) - for(var/image/I in alien.client.images) - if(dd_hasprefix_case(I.icon_state, "infected")) - del(I) - - for (var/mob/living/carbon/alien/alien in player_list) - if (alien.client) - for (var/mob/living/carbon/C in mob_list) - if(C) - if (C.status_flags & XENO_HOST) - var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[stage]") - alien.client.images += I - for (var/mob/living/simple_animal/corgi/C in mob_list) - if(C) - if (C.status_flags & XENO_HOST) - var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[stage]") - alien.client.images += I - return + for(var/mob/living/carbon/alien/alien in player_list) + if(alien.client) + for(var/image/I in alien.client.images) + if(dd_hasprefix_case(I.icon_state, "infected")) + del(I) + for(var/mob/living/L in mob_list) + if(iscorgi(L) || iscarbon(L)) + if(L.status_flags & XENO_HOST) + var/I = image('icons/mob/alien.dmi', loc = L, icon_state = "infected[stage]") + alien.client.images += I /*---------------------------------------- Proc: AddInfectionImages(C) Des: Checks if the passed mob (C) is infected with the alien egg, then gives each alien client an infected image at C. ----------------------------------------*/ /obj/item/alien_embryo/proc/AddInfectionImages(var/mob/living/C) - if (C) - for (var/mob/living/carbon/alien/alien in player_list) - if (alien.client) - if (C.status_flags & XENO_HOST) + if(C) + for(var/mob/living/carbon/alien/alien in player_list) + if(alien.client) + if(C.status_flags & XENO_HOST) var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[stage]") alien.client.images += I - return /*---------------------------------------- Proc: RemoveInfectionImage(C) @@ -144,11 +133,10 @@ Des: Removes the alien infection image from all aliens in the world located in p ----------------------------------------*/ /obj/item/alien_embryo/proc/RemoveInfectionImages(var/mob/living/C) - if (C) - for (var/mob/living/carbon/alien/alien in player_list) - if (alien.client) + if(C) + for(var/mob/living/carbon/alien/alien in player_list) + if(alien.client) for(var/image/I in alien.client.images) if(I.loc == C) if(dd_hasprefix_case(I.icon_state, "infected")) - del(I) - return + del(I) \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 2817ab4957..c51a0054c2 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -151,7 +151,7 @@ New() ..() src.modules += new /obj/item/weapon/soap/nanotrasen(src) - src.modules += new /obj/item/weapon/trashbag(src) + src.modules += new /obj/item/weapon/storage/bag/trash(src) src.modules += new /obj/item/weapon/mop(src) src.modules += new /obj/item/device/lightreplacer(src) src.emag = new /obj/item/weapon/reagent_containers/spray(src) @@ -203,9 +203,9 @@ ..() src.modules += new /obj/item/borg/sight/meson(src) src.emag = new /obj/item/borg/stun(src) - src.modules += new /obj/item/weapon/storage/satchel(src) + src.modules += new /obj/item/weapon/storage/bag/ore(src) src.modules += new /obj/item/weapon/pickaxe/borgdrill(src) - src.modules += new /obj/item/weapon/sheetsnatcher/borg(src) + src.modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src) // src.modules += new /obj/item/weapon/shovel(src) Uneeded due to buffed drill return diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 6ee2a8aae4..8bdf169c89 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -716,43 +716,3 @@ force = 5 playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) update() - - - -// a box of replacement light items - -/obj/item/weapon/storage/lightbox - name = "replacement bulbs" - icon = 'icons/obj/storage.dmi' - icon_state = "light" - desc = "This box is shaped on the inside so that only light tubes and bulbs fit." - item_state = "syringe_kit" - foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - storage_slots=21 - can_hold = list("/obj/item/weapon/light/tube", "/obj/item/weapon/light/bulb") - max_combined_w_class = 21 - -/obj/item/weapon/storage/lightbox/bulbs/New() - ..() - for(var/i = 0; i < 21; i++) - new /obj/item/weapon/light/bulb(src) - -/obj/item/weapon/storage/lightbox/tubes - name = "replacement tubes" - icon_state = "lighttube" - -/obj/item/weapon/storage/lightbox/tubes/New() - ..() - for(var/i = 0; i < 21; i++) - new /obj/item/weapon/light/tube(src) - -/obj/item/weapon/storage/lightbox/mixed - name = "replacement lights" - icon_state = "lightmixed" - -/obj/item/weapon/storage/lightbox/mixed/New() - ..() - for(var/i = 0; i < 14; i++) - new /obj/item/weapon/light/tube(src) - for(var/i = 0; i < 7; i++) - new /obj/item/weapon/light/bulb(src) diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 2cf39a6713..1580f50b8c 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -800,7 +800,7 @@ return 1 //Fill machine with the plantbag! - if(istype(O, /obj/item/weapon/plantbag)) + if(istype(O, /obj/item/weapon/storage/bag/plants)) for (var/obj/item/weapon/reagent_containers/food/snacks/grown/G in O.contents) O.contents -= G diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index 13d023336f..0828e545fc 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -30,9 +30,13 @@ /obj/item/weapon/reagent_containers/attack(mob/M as mob, mob/user as mob, def_zone) return +// this prevented pills, food, and other things from being picked up by bags. +// possibly intentional, but removing it allows us to not duplicate functionality. +// -Sayu (storage conslidation) +/* /obj/item/weapon/reagent_containers/attackby(obj/item/I as obj, mob/user as mob) return - +*/ /obj/item/weapon/reagent_containers/afterattack(obj/target, mob/user , flag) return diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 5464fd6010..41445ef886 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -118,6 +118,10 @@ usr << "\blue \The [src] was bitten multiple times!" /obj/item/weapon/reagent_containers/food/snacks/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W,/obj/item/weapon/storage)) + ..() // -> item/attackby() + if(istype(W,/obj/item/weapon/storage)) + ..() // -> item/attackby() if((slices_num <= 0 || !slices_num) || !slice_path) return 1 var/inaccurate = 0 diff --git a/code/modules/reagents/reagent_containers/food/snacks/grown.dm b/code/modules/reagents/reagent_containers/food/snacks/grown.dm index 97d38d4fcc..e75c7f5d74 100644 --- a/code/modules/reagents/reagent_containers/food/snacks/grown.dm +++ b/code/modules/reagents/reagent_containers/food/snacks/grown.dm @@ -49,7 +49,7 @@ usr << msg return - if (istype(O, /obj/item/weapon/plantbag)) + /*if (istype(O, /obj/item/weapon/storage/bag/plants)) var/obj/item/weapon/plantbag/S = O if (S.mode == 1) for(var/obj/item/G in get_turf(src)) @@ -64,11 +64,11 @@ if (S.contents.len < S.capacity) S.contents += src; else - user << "\blue The plant bag is full." + user << "\blue The plant bag is full."*/ return -/obj/item/seeds/attackby(var/obj/item/O as obj, var/mob/user as mob) - if (istype(O, /obj/item/weapon/plantbag)) +/*/obj/item/seeds/attackby(var/obj/item/O as obj, var/mob/user as mob) + if (istype(O, /obj/item/weapon/storage/bag/plants)) var/obj/item/weapon/plantbag/S = O if (S.mode == 1) for(var/obj/item/G in get_turf(src)) @@ -84,7 +84,7 @@ S.contents += src; else user << "\blue The plant bag is full." - return + return*/ /obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) ..() diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 3524b04b8c..a0e65ac616 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -25,7 +25,7 @@ /obj/item/weapon/grenade/chem_grenade, /obj/machinery/bot/medbot, /obj/machinery/computer/pandemic, - /obj/item/weapon/secstorage/ssafe, + /obj/item/weapon/storage/secure/safe, /obj/machinery/disposal ) diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index a489a8add4..3845e36b78 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -15,25 +15,6 @@ if(!icon_state) icon_state = "pill[rand(1,20)]" - attackby(obj/item/weapon/W as obj, mob/user as mob) - if (istype(W, /obj/item/weapon/storage/pill_bottle)) - var/obj/item/weapon/storage/pill_bottle/P = W - if (P.mode == 1) - for (var/obj/item/weapon/reagent_containers/pill/O in locate(src.x,src.y,src.z)) - if(P.contents.len < P.storage_slots) - O.loc = P - P.orient2hud(user) - else - user << "\blue The pill bottle is full." - return - user << "\blue You pick up all the pills." - else - if (P.contents.len < P.storage_slots) - loc = P - P.orient2hud(user) - else - user << "\blue The pill bottle is full." - return attack_self(mob/user as mob) return attack(mob/M as mob, mob/user as mob, def_zone) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 807ca36e07..41ec2eeb65 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -137,7 +137,7 @@ if(istype(target, /obj/item/weapon/implantcase/chem)) return - if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/slime_extract) && !istype(target, /obj/item/clothing/mask/cigarette) && !istype(target, /obj/item/weapon/cigpacket)) + if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/slime_extract) && !istype(target, /obj/item/clothing/mask/cigarette) && !istype(target, /obj/item/weapon/storage/fancy/cigarettes)) user << "\red You cannot directly fill this object." return if(target.reagents.total_volume >= target.reagents.maximum_volume) diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index a6501a9749..e1fb5fd950 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -45,7 +45,7 @@ if(stat & BROKEN || !I || !user) return - if(isrobot(user) && !istype(I, /obj/item/weapon/trashbag)) + if(isrobot(user) && !istype(I, /obj/item/weapon/storage/bag/trash)) return src.add_fingerprint(user) if(mode<=0) // It's off @@ -91,7 +91,7 @@ user << "You can't place that item inside the disposal unit." return - if(istype(I, /obj/item/weapon/trashbag)) + if(istype(I, /obj/item/weapon/storage/bag/trash)) user << "\blue You empty the bag." for(var/obj/item/O in I.contents) O.loc = src diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index d9eec60a02..7f3dea0f7a 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -102,7 +102,8 @@ user.attack_log += text("\[[time_stamp()]\] Has used [src.name] on \ref[target]") - if (istype(target, /obj/item) && !(istype(target, /obj/item/weapon/storage))) + + if (istype(target, /obj/item) && !(istype(target, /obj/item/weapon/storage) && !istype(target,/obj/item/weapon/storage/box))) var/obj/item/O = target if (src.amount > 1) var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(O.loc)) //Aaannd wrap it up! @@ -111,6 +112,9 @@ user.client.screen -= O P.wrapped = O O.loc = P + var/i = round(O.w_class) + if(i in list(1,2,3,4,5)) + P.icon_state = "deliverycrate[i]" P.add_fingerprint(usr) O.add_fingerprint(usr) src.add_fingerprint(usr) diff --git a/code/unused/asteroiddevice.dm b/code/unused/asteroiddevice.dm index bd94bcd83d..f9c6aa9185 100644 --- a/code/unused/asteroiddevice.dm +++ b/code/unused/asteroiddevice.dm @@ -80,7 +80,7 @@ new /obj/item/device/flashlight(src) new /obj/item/weapon/reagent_containers/food/drinks/beer(src) new /obj/item/weapon/reagent_containers/food/snacks/chips(src) - new /obj/item/weapon/cigpacket(src) + new /obj/item/weapon/storage/fancy/cigarettes(src) var/obj/item/weapon/reagent_containers/pill/P = new/obj/item/weapon/reagent_containers/pill(src) P.reagents.add_reagent("nutriment", 500) P.name = "Cyanide pill" diff --git a/maps/RandomZLevels/blackmarketpackers.dmm b/maps/RandomZLevels/blackmarketpackers.dmm index eb9345f8b7..befb7a24ed 100644 --- a/maps/RandomZLevels/blackmarketpackers.dmm +++ b/maps/RandomZLevels/blackmarketpackers.dmm @@ -34,7 +34,7 @@ "aH" = (/obj/item/weapon/handcuffs,/obj/item/weapon/handcuffs,/obj/structure/closet/crate,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) "aI" = (/obj/item/weapon/scalpel,/obj/structure/closet/crate,/obj/item/weapon/tank/anesthetic,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) "aJ" = (/obj/item/bodybag,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) -"aK" = (/obj/item/weapon/storage/syringes,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) +"aK" = (/obj/item/weapon/storage/box/syringes,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) "aL" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) "aM" = (/obj/machinery/optable,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) "aN" = (/obj/machinery/computer/operating,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship1) @@ -140,7 +140,7 @@ "cJ" = (/turf/simulated/floor{icon_state = "bar"},/area/awaymission/BMPship2) "cK" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"},/area/awaymission/BMPship2) "cL" = (/obj/structure/table,/obj/item/weapon/butch,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor{tag = "icon-barber"; icon_state = "barber"},/area/awaymission/BMPship2) -"cM" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit,/turf/simulated/floor{tag = "icon-barber"; icon_state = "barber"},/area/awaymission/BMPship2) +"cM" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor{tag = "icon-barber"; icon_state = "barber"},/area/awaymission/BMPship2) "cN" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor{tag = "icon-barber"; icon_state = "barber"},/area/awaymission/BMPship2) "cO" = (/obj/machinery/processor,/obj/machinery/light{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{tag = "icon-barber"; icon_state = "barber"},/area/awaymission/BMPship2) "cP" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor{icon_state = "bar"},/area/awaymission/BMPship2) @@ -249,7 +249,7 @@ "eO" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/awaymission/BMPship1) "eP" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/awaymission/BMPship1) "eQ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/awaymission/BMPship1) -"eR" = (/obj/structure/rack,/obj/item/weapon/storage/lightbox,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/awaymission/BMPship1) +"eR" = (/obj/structure/rack,/obj/item/weapon/storage/box/lights,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/awaymission/BMPship1) "eS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "hydrofloor"},/area/awaymission/BMPship1) "eT" = (/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; name = "power storage unit"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/awaymission/BMPship1) "eU" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/awaymission/BMPship1) @@ -445,7 +445,7 @@ "iC" = (/obj/item/clothing/gloves/fyellow,/turf/simulated/floor/plating/airless/asteroid,/area/awaymission) "iD" = (/turf/simulated/shuttle/wall{tag = "icon-swall4"; icon_state = "swall4"},/area/awaymission) "iE" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"},/area/awaymission) -"iF" = (/obj/item/weapon/storage/matchbox,/obj/item/weapon/cigpacket/dromedaryco,/turf/simulated/floor/plating,/area/awaymission/BMPship3) +"iF" = (/obj/item/weapon/storage/matchbox,/obj/item/weapon/storage/fancy/cigarettes/dromedaryco,/turf/simulated/floor/plating,/area/awaymission/BMPship3) "iG" = (/obj/item/weapon/contraband/poster,/turf/simulated/floor/plating,/area/awaymission/BMPship3) "iH" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/awaymission/BMPship3) "iI" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor/plating,/area/awaymission/BMPship3) diff --git a/maps/RandomZLevels/stationCollision.dm b/maps/RandomZLevels/stationCollision.dm index 1b2fe2a7d8..3bc32eab3b 100644 --- a/maps/RandomZLevels/stationCollision.dm +++ b/maps/RandomZLevels/stationCollision.dm @@ -149,10 +149,10 @@ var/sc_safecode5 = "[rand(0,9)]" /* * Captain's safe */ -/obj/item/weapon/secstorage/ssafe/sc_ssafe +/obj/item/weapon/storage/secure/safe/sc_ssafe name = "Captain's secure safe" -/obj/item/weapon/secstorage/ssafe/sc_ssafe/New() +/obj/item/weapon/storage/secure/safe/sc_ssafe/New() ..() l_code = "[sc_safecode1][sc_safecode2][sc_safecode3][sc_safecode4][sc_safecode5]" l_set = 1 diff --git a/maps/RandomZLevels/stationCollision.dmm b/maps/RandomZLevels/stationCollision.dmm index 69ebd5c742..48f71a827b 100644 --- a/maps/RandomZLevels/stationCollision.dmm +++ b/maps/RandomZLevels/stationCollision.dmm @@ -317,7 +317,7 @@ "ge" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/awaymission/arrivalblock) "gf" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/awaymission/arrivalblock) "gg" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/simulated/floor{icon_state = "grimy"},/area/awaymission/northblock) -"gh" = (/obj/item/weapon/secstorage/ssafe/sc_ssafe{pixel_x = 4; pixel_y = -26},/turf/simulated/floor{icon_state = "grimy"},/area/awaymission/northblock) +"gh" = (/obj/item/weapon/storage/secure/safe/sc_ssafe{pixel_x = 4; pixel_y = -26},/turf/simulated/floor{icon_state = "grimy"},/area/awaymission/northblock) "gi" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/captain,/obj/item/clothing/under/rank/captain,/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/obj/item/weapon/gun/energy/laser/retro/sc_retro,/turf/simulated/floor{icon_state = "grimy"},/area/awaymission/northblock) "gj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/awaymission/midblock) "gk" = (/obj/structure/closet/wardrobe,/turf/simulated/floor,/area/awaymission/midblock) diff --git a/maps/tgstation.2.1.0.dmm b/maps/tgstation.2.1.0.dmm index 74dfa75fe2..a945b34859 100644 --- a/maps/tgstation.2.1.0.dmm +++ b/maps/tgstation.2.1.0.dmm @@ -189,7 +189,7 @@ "adG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/carpet,/area/security/hos) "adH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/carpet,/area/security/hos) "adI" = (/obj/machinery/power/apc{dir = 4; name = "Head of Security Office APC"; pixel_x = 27; pixel_y = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/light_switch{pixel_y = -23},/turf/simulated/floor/carpet,/area/security/hos) -"adJ" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/flashbang_kit,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/range) +"adJ" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/flashbangs,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/range) "adK" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 0; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/security/range) "adL" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/security/range) "adM" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/security/range) @@ -231,7 +231,7 @@ "aew" = (/obj/structure/table,/obj/item/weapon/reagent_containers/ld50_syringe/choral{pixel_x = 3; pixel_y = 10},/obj/item/weapon/reagent_containers/ld50_syringe/choral{pixel_x = 3; pixel_y = 6},/obj/item/weapon/reagent_containers/ld50_syringe/choral{pixel_x = 3; pixel_y = 2},/obj/machinery/light/small,/turf/simulated/floor{icon_state = "dark"},/area/security/prison) "aex" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "dark"},/area/security/prison) "aey" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/security/prison) -"aez" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/obj/item/weapon/storage/body_bag_box,/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "dark"},/area/security/prison) +"aez" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "dark"},/area/security/prison) "aeA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/prison) "aeB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor{icon_state = "red"},/area/security/prison) "aeC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "red"},/area/security/prison) @@ -283,8 +283,8 @@ "afw" = (/obj/machinery/recharger,/obj/structure/table/reinforced,/turf/simulated/floor{icon_state = "red"; dir = 5},/area/security/warden) "afx" = (/obj/structure/rack,/obj/item/weapon/storage/lockbox/loyalty,/turf/simulated/floor{icon_state = "red"},/area/security/warden) "afy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/warden) -"afz" = (/obj/structure/rack,/obj/item/weapon/storage/chemimp_kit{pixel_x = 4; pixel_y = 3},/obj/item/weapon/storage/trackimp_kit,/turf/simulated/floor{icon_state = "red"},/area/security/warden) -"afA" = (/obj/structure/rack,/obj/item/weapon/storage/seccart_kit{pixel_x = 3; pixel_y = 2},/obj/item/weapon/storage/handcuff_kit,/obj/item/weapon/storage/flashbang_kit{pixel_x = -2; pixel_y = -2},/turf/simulated/floor{icon_state = "red"},/area/security/warden) +"afz" = (/obj/structure/rack,/obj/item/weapon/storage/box/chemimp{pixel_x = 4; pixel_y = 3},/obj/item/weapon/storage/box/trackimp,/turf/simulated/floor{icon_state = "red"},/area/security/warden) +"afA" = (/obj/structure/rack,/obj/item/weapon/storage/box/seccarts{pixel_x = 3; pixel_y = 2},/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs{pixel_x = -2; pixel_y = -2},/turf/simulated/floor{icon_state = "red"},/area/security/warden) "afB" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/structure/closet/wardrobe/red,/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/main) "afC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor,/area/security/main) "afD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/security/main) @@ -786,7 +786,7 @@ "apf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "apg" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/light{dir = 8},/obj/structure/filingcabinet,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "aph" = (/turf/simulated/floor/carpet,/area/security/detectives_office) -"api" = (/obj/structure/table/woodentable,/obj/item/weapon/cigpacket,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/carpet,/area/security/detectives_office) +"api" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/fancy/cigarettes,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/carpet,/area/security/detectives_office) "apj" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor/carpet,/area/security/detectives_office) "apk" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{on = 0; pixel_x = -3; pixel_y = 8},/obj/item/weapon/book/manual/security_space_law,/obj/item/weapon/handcuffs,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "apl" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/requests_console{department = "Law office"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/wood,/area/lawoffice) @@ -1906,7 +1906,7 @@ "aKH" = (/obj/structure/closet/gmcloset{icon_closed = "black"; icon_state = "black"; name = "formal wardrobe"},/turf/simulated/floor/wood,/area/crew_quarters/bar) "aKI" = (/obj/structure/kitchenspike,/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aKJ" = (/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) -"aKK" = (/obj/structure/closet/crate{desc = "It's a storage unit for kitchen clothes and equipment."; name = "Kitchen Crate"},/obj/item/clothing/head/chefhat,/obj/item/clothing/under/rank/chef,/obj/item/weapon/storage/mousetraps{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/mousetraps,/obj/item/clothing/under/waiter,/obj/item/clothing/under/waiter,/obj/machinery/light/small{dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) +"aKK" = (/obj/structure/closet/crate{desc = "It's a storage unit for kitchen clothes and equipment."; name = "Kitchen Crate"},/obj/item/clothing/head/chefhat,/obj/item/clothing/under/rank/chef,/obj/item/weapon/storage/box/mousetraps{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/box/mousetraps,/obj/item/clothing/under/waiter,/obj/item/clothing/under/waiter,/obj/machinery/light/small{dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aKL" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/hydroponics) "aKM" = (/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/hydroponics) "aKN" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access_txt = "35"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/hydroponics) @@ -1922,7 +1922,7 @@ "aKX" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/hallway/secondary/entry) "aKY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aKZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"aLa" = (/obj/structure/table/woodentable,/obj/item/weapon/cigpacket{cigcount = 4; pixel_y = 2},/obj/item/weapon/lighter{pixel_x = 4; pixel_y = 2},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) +"aLa" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/fancy/cigarettes{pixel_y = 2},/obj/item/weapon/lighter{pixel_x = 4; pixel_y = 2},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) "aLb" = (/obj/structure/table/woodentable,/turf/simulated/floor/carpet,/area/hallway/secondary/entry) "aLc" = (/obj/machinery/vending/cola,/turf/simulated/floor{icon_state = "dark"},/area/hallway/secondary/entry) "aLd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/hallway/primary/port) @@ -2088,7 +2088,7 @@ "aOh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/hallway/primary/central) "aOi" = (/obj/structure/table/reinforced,/obj/item/device/aicard,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "red"; dir = 10},/area/bridge) "aOj" = (/obj/machinery/computer/security,/turf/simulated/floor{icon_state = "red"},/area/bridge) -"aOk" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/storage/PDAbox{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/id_kit,/turf/simulated/floor{icon_state = "red"},/area/bridge) +"aOk" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/storage/box/PDAs{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/ids,/turf/simulated/floor{icon_state = "red"},/area/bridge) "aOl" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/secstorage/sbriefcase,/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/bridge) "aOm" = (/obj/structure/window/reinforced/tinted{dir = 5},/turf/simulated/floor/plating,/area/bridge) "aOn" = (/obj/machinery/computer/communications,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/bridge) @@ -2145,7 +2145,7 @@ "aPm" = (/obj/structure/table,/obj/item/weapon/cable_coil/random,/obj/item/weapon/cable_coil/random,/turf/simulated/floor,/area/storage/art) "aPn" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/storage/art) "aPo" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "Art Storage"; pixel_x = 27; pixel_y = 2},/turf/simulated/floor,/area/storage/art) -"aPp" = (/obj/machinery/light_switch{pixel_y = 28},/obj/item/weapon/storage/lightbox/mixed,/turf/simulated/floor/plating,/area/storage/emergency2) +"aPp" = (/obj/machinery/light_switch{pixel_y = 28},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/storage/emergency2) "aPq" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/storage/emergency2) "aPr" = (/obj/machinery/power/apc{dir = 1; name = "Port Emergency Storage APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/storage/emergency2) "aPs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/extinguisher,/turf/simulated/floor/plating,/area/storage/emergency2) @@ -2320,7 +2320,7 @@ "aSF" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/snacks/pie,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "aSG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "aSH" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/enzyme{layer = 5},/obj/item/weapon/packageWrap,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) -"aSI" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) +"aSI" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "aSJ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 0},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "aSK" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/table,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "aSL" = (/obj/machinery/processor,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) @@ -2944,7 +2944,7 @@ "beF" = (/obj/structure/closet/secure_closet/chemical,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "beG" = (/obj/machinery/power/apc{dir = 1; name = "Chemistry APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "beH" = (/obj/machinery/camera{c_tag = "Chemistry"; dir = 2; network = "SS13"},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"beI" = (/obj/structure/table,/obj/item/weapon/storage/beakerbox{pixel_x = 2; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/storage/pill_bottle/inaprovaline{pixel_x = 5; pixel_y = -2},/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"beI" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/storage/pill_bottle/inaprovaline{pixel_x = 5; pixel_y = -2},/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "beJ" = (/obj/machinery/chem_master,/turf/simulated/floor{dir = 5; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "beK" = (/turf/simulated/wall,/area/medical/chemistry) "beL" = (/obj/machinery/newscaster{pixel_x = -28; pixel_y = 0},/obj/structure/table,/obj/item/weapon/folder/white,/turf/simulated/floor{dir = 8; icon_state = "whiteyellowcorner"},/area/medical/medbay) @@ -2956,7 +2956,7 @@ "beR" = (/obj/machinery/computer/crew,/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Medical Officer's Desk"; departmentType = 5; name = "Chief Medical Officer RC"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) "beS" = (/obj/machinery/computer/med_data,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) "beT" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"beU" = (/obj/structure/table,/obj/item/weapon/storage/body_bag_box,/obj/item/weapon/pen,/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"beU" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "beV" = (/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "beW" = (/obj/machinery/alarm{pixel_y = 24},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "beX" = (/obj/machinery/power/apc{dir = 1; name = "Morgue APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) @@ -3037,7 +3037,7 @@ "bgu" = (/obj/machinery/power/apc{dir = 1; name = "Starboard Emergency Storage APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/storage/emergency) "bgv" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/storage/emergency) "bgw" = (/obj/machinery/light/small{dir = 1},/obj/item/weapon/extinguisher,/turf/simulated/floor/plating,/area/storage/emergency) -"bgx" = (/obj/item/weapon/storage/lightbox/mixed,/turf/simulated/floor/plating,/area/storage/emergency) +"bgx" = (/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/storage/emergency) "bgy" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bgz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/assembly/chargebay) "bgA" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor,/area/assembly/chargebay) @@ -3202,7 +3202,7 @@ "bjD" = (/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = null; req_access_txt = "20"},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "bjE" = (/obj/machinery/door/airlock/maintenance{name = "Captain's Office Maintenance"; req_access_txt = "20"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/crew_quarters/captain) "bjF" = (/obj/structure/disposalpipe/segment,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/turf/simulated/floor,/area/hallway/primary/central) -"bjG" = (/obj/structure/table,/obj/item/weapon/storage/syringes,/obj/item/clothing/glasses/science{pixel_x = 2; pixel_y = 4},/obj/item/clothing/glasses/science,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"bjG" = (/obj/structure/table,/obj/item/weapon/storage/box/syringes,/obj/item/clothing/glasses/science{pixel_x = 2; pixel_y = 4},/obj/item/clothing/glasses/science,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bjH" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bjI" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Chemistry Desk"; req_access_txt = "33"},/turf/simulated/floor/plating,/area/medical/chemistry) "bjJ" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) @@ -3275,7 +3275,7 @@ "bkY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/chemistry) "bkZ" = (/obj/structure/table,/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bla" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/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 = "white"},/area/medical/chemistry) -"blb" = (/obj/structure/table,/obj/item/weapon/storage/beakerbox{pixel_x = 2; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/storage/pill_bottle/inaprovaline{pixel_x = 5; pixel_y = -2},/turf/simulated/floor{dir = 2; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"blb" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/storage/pill_bottle/inaprovaline{pixel_x = 5; pixel_y = -2},/turf/simulated/floor{dir = 2; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "blc" = (/obj/machinery/chem_master,/turf/simulated/floor{dir = 6; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "bld" = (/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/light,/turf/simulated/floor{dir = 1; icon_state = "whiteyellowcorner"},/area/medical/medbay) "ble" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = -26; range = 6; req_access_txt = "5"},/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) @@ -3499,7 +3499,7 @@ "bpo" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bpp" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bpq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/genetics) -"bpr" = (/obj/structure/table,/obj/item/weapon/storage/gl_kit,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bpr" = (/obj/structure/table,/obj/item/weapon/storage/box/rxglasses,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bps" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bpt" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Geneticist"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bpu" = (/obj/machinery/computer/scan_consolenew,/turf/simulated/floor{dir = 6; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/genetics) @@ -3575,7 +3575,7 @@ "bqM" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) "bqN" = (/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) "bqO" = (/obj/structure/stool/bed/roller,/turf/simulated/floor{dir = 6; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) -"bqP" = (/obj/structure/table,/obj/item/weapon/storage/diskbox{pixel_x = 2; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bqP" = (/obj/structure/table,/obj/item/weapon/storage/box/disks{pixel_x = 2; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bqQ" = (/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bqR" = (/obj/machinery/door/window/westleft{name = "Monkey Pen"; req_access_txt = "9"},/turf/simulated/floor,/area/medical/genetics) "bqS" = (/mob/living/carbon/monkey,/turf/simulated/floor,/area/medical/genetics) @@ -3583,7 +3583,7 @@ "bqU" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/assembly/chargebay) "bqV" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/assembly/chargebay) "bqW" = (/obj/machinery/recharge_station,/turf/simulated/floor{icon_state = "bot"},/area/assembly/chargebay) -"bqX" = (/obj/structure/table,/obj/item/weapon/storage/body_bag_box,/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "whitehall"; dir = 4},/area/assembly/robotics) +"bqX" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "whitehall"; dir = 4},/area/assembly/robotics) "bqY" = (/obj/machinery/optable{name = "Robotics Operating Table"},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bqZ" = (/obj/machinery/computer/operating{name = "Robotics Operating Computer"},/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bra" = (/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/assembly/robotics) @@ -3632,7 +3632,7 @@ "brR" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/command{name = "Teleport Access"; req_access_txt = "17"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/teleporter) "brS" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/hallway/primary/central) "brT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/medbay) -"brU" = (/obj/structure/table,/obj/item/weapon/storage/stma_kit{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/lglo_kit{pixel_x = 3; pixel_y = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"brU" = (/obj/structure/table,/obj/item/weapon/storage/box/masks{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/box/gloves{pixel_x = 3; pixel_y = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "brV" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "brW" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/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{icon_state = "white"},/area/medical/medbay) "brX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) @@ -3861,7 +3861,7 @@ "bwm" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/turf/simulated/floor,/area/medical/sleeper) "bwn" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor,/area/medical/sleeper) "bwo" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor{icon_state = "delivery"},/area/medical/sleeper) -"bwp" = (/obj/structure/table,/obj/item/weapon/storage/gl_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/body_bag_box,/obj/item/weapon/pen,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/device/radio/intercom{pixel_x = -25},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bwp" = (/obj/structure/table,/obj/item/weapon/storage/box/rxglasses{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/device/radio/intercom{pixel_x = -25},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bwq" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bwr" = (/obj/structure/stool/bed/chair,/obj/effect/landmark/start{name = "Geneticist"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bws" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) @@ -4126,8 +4126,8 @@ "bBr" = (/obj/structure/closet/l3closet/general,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bBs" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bBt" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/camera{c_tag = "Medbay Storage"; dir = 2; network = "SS13"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bBu" = (/obj/structure/table,/obj/item/weapon/storage/body_bag_box{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/gl_kit,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bBv" = (/obj/structure/table,/obj/item/weapon/storage/beakerbox{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/syringes,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bBu" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/rxglasses,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bBv" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bBw" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 8; icon_state = "whiteredcorner"},/area/medical/medbay) "bBx" = (/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) "bBy" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/no_raisin,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) @@ -4178,7 +4178,7 @@ "bCr" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "bCs" = (/obj/structure/closet/jcloset,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor,/area/janitor) "bCt" = (/obj/structure/closet/l3closet/janitor,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor,/area/janitor) -"bCu" = (/obj/item/weapon/storage/lightbox/mixed,/obj/item/weapon/storage/lightbox/mixed,/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/camera{c_tag = "Custodial Closet"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/janitor) +"bCu" = (/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/mixed,/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/camera{c_tag = "Custodial Closet"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/janitor) "bCv" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/janitor) "bCw" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/janitor) "bCx" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor,/area/janitor) @@ -4334,7 +4334,7 @@ "bFr" = (/obj/structure/table,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/machinery/requests_console{department = "Janitorial"; departmentType = 1; pixel_y = -29},/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/floor,/area/janitor) "bFs" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/light,/turf/simulated/floor,/area/janitor) "bFt" = (/obj/structure/stool/bed/chair/janicart,/turf/simulated/floor,/area/janitor) -"bFu" = (/obj/item/weapon/legcuffs/beartrap,/obj/item/weapon/legcuffs/beartrap,/obj/item/weapon/storage/mousetraps,/obj/item/weapon/storage/mousetraps,/turf/simulated/floor,/area/janitor) +"bFu" = (/obj/item/weapon/legcuffs/beartrap,/obj/item/weapon/legcuffs/beartrap,/obj/item/weapon/storage/box/mousetraps,/obj/item/weapon/storage/box/mousetraps,/turf/simulated/floor,/area/janitor) "bFv" = (/turf/simulated/floor,/area/janitor) "bFw" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/janitor) "bFx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/janitor) @@ -4891,12 +4891,12 @@ "bQc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bQd" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bQe" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bQf" = (/obj/structure/stool/bed/chair,/obj/item/weapon/cigpacket,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bQf" = (/obj/structure/stool/bed/chair,/obj/item/weapon/storage/fancy/cigarettes,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bQg" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bQh" = (/obj/machinery/space_heater,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bQi" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bQj" = (/obj/item/device/flashlight,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bQk" = (/obj/structure/rack{dir = 1},/obj/item/weapon/storage/lightbox/mixed,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bQk" = (/obj/structure/rack{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bQl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) "bQm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) "bQn" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) @@ -5259,7 +5259,7 @@ "bXg" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/camera{c_tag = "Atmospherics Central"; dir = 4; network = "SS13"},/obj/machinery/atmospherics/binary/pump{dir = 0; icon_state = "intact_off"; name = "Port to Filter"; on = 0},/turf/simulated/floor,/area/atmos) "bXh" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/obj/structure/stool,/turf/simulated/floor,/area/atmos) "bXi" = (/obj/machinery/atmospherics/unary/heat_reservoir/heater{dir = 8; icon_state = "freezer_0"; tag = ""},/turf/simulated/floor,/area/atmos) -"bXj" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"bXj" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bXk" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bXl" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bXm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/medical/virology) @@ -5313,7 +5313,7 @@ "bYi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/virology) "bYj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/virology) "bYk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/virology) -"bYl" = (/obj/structure/table,/obj/item/weapon/storage/beakerbox{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/syringes,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) +"bYl" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) "bYm" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bYn" = (/obj/machinery/computer/pandemic,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) "bYo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/virology) @@ -5435,8 +5435,8 @@ "caA" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "caB" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio2"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/turf/simulated/floor/engine,/area/toxins/xenobiology) "caC" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) -"caD" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/storage/beakerbox{pixel_x = 2; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) -"caE" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/storage/syringes,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) +"caD" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) +"caE" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/storage/box/syringes,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "caF" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "caG" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "caH" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/starboard) @@ -5629,7 +5629,7 @@ "cem" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/engine/chiefs_office) "cen" = (/obj/structure/filingcabinet/chestdrawer,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/obj/machinery/camera{c_tag = "Chief Engineer's Office"; dir = 4; network = "SS13"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "ceo" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cep" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/cigpacket,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"cep" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "ceq" = (/obj/structure/table/reinforced,/obj/item/stack/medical/bruise_pack{pixel_x = -3; pixel_y = 2},/obj/item/weapon/reagent_containers/pill/kelotane{pixel_x = -3; pixel_y = -8},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cer" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engineering) "ces" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter,/turf/simulated/wall/r_wall,/area/atmos) @@ -5727,7 +5727,7 @@ "cgg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/status_display,/turf/simulated/wall,/area/engine/engineering) "cgh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) "cgi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/engine/engineering) -"cgj" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/weapon/storage/lightbox/mixed,/turf/simulated/floor{dir = 9; icon_state = "yellow"},/area/engine/engineering) +"cgj" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor{dir = 9; icon_state = "yellow"},/area/engine/engineering) "cgk" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/wrench,/obj/item/weapon/weldingtool,/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/engine/engineering) "cgl" = (/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/engine/engineering) "cgm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/engine/engineering) @@ -6316,7 +6316,7 @@ "crx" = (/obj/machinery/computer/secure_data,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "cry" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "crz" = (/turf/space,/area/shuttle/escape_pod3/centcom) -"crA" = (/obj/structure/table,/obj/item/weapon/storage/handcuff_kit,/obj/item/device/flash,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) +"crA" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/obj/item/device/flash,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "crB" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 4; icon_state = "right"; name = "Security Desk"; req_access_txt = "103"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "crC" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership) "crD" = (/obj/machinery/vending/cola,/turf/simulated/shuttle/floor,/area/centcom/evac) @@ -6346,7 +6346,7 @@ "csb" = (/obj/machinery/vending/coffee,/turf/simulated/shuttle/floor,/area/centcom/evac) "csc" = (/turf/space,/area/shuttle/escape_pod5/centcom) "csd" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area) -"cse" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cse" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "csf" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "csg" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{tag = "icon-gravsnow_corner (EAST)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership) "csh" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (WEST)"; icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) @@ -6504,7 +6504,7 @@ "cvd" = (/obj/machinery/door/window/northright,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cve" = (/obj/structure/table/reinforced{icon_state = "reinf_tabledir"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cvf" = (/obj/structure/table/reinforced{icon_state = "reinf_tabledir"},/obj/item/weapon/lighter/zippo,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"cvg" = (/obj/structure/table/reinforced{icon_state = "reinf_tabledir"},/obj/item/weapon/cigpacket,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"cvg" = (/obj/structure/table/reinforced{icon_state = "reinf_tabledir"},/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cvh" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cvi" = (/obj/item/stack/sheet/glass{amount = 5000},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cvj" = (/obj/item/stack/sheet/metal{amount = 5000},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) @@ -6598,7 +6598,7 @@ "cwT" = (/obj/structure/mirror{pixel_y = 28},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/living) "cwU" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/living) "cwV" = (/obj/machinery/computer/card/centcom,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/living) -"cwW" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/kitchen/rollingpin,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/living) +"cwW" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/kitchen/rollingpin,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/living) "cwX" = (/obj/machinery/door/poddoor{density = 1; icon_state = "pdoor1"; id = "QMLoaddoor"; name = "Supply Shuttle Loading Door"; opacity = 1},/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/shuttle/plating,/area/supply/dock) "cwY" = (/obj/machinery/vending/medical,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) "cwZ" = (/obj/machinery/chem_master,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) @@ -6826,7 +6826,7 @@ "cBn" = (/obj/structure/bookcase{name = "bookcase (Tactics)"},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cBo" = (/obj/structure/closet/secure_closet/hos,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cBp" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) -"cBq" = (/obj/structure/rack,/obj/item/weapon/secstorage/sbriefcase,/obj/item/weapon/cigpacket,/obj/item/weapon/lighter/zippo,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/backpack/satchel,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) +"cBq" = (/obj/structure/rack,/obj/item/weapon/secstorage/sbriefcase,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter/zippo,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/backpack/satchel,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cBr" = (/obj/structure/bookcase{name = "bookcase (Reports)"},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cBs" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/control) "cBt" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/evac) @@ -6980,7 +6980,7 @@ "cEl" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) "cEm" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) "cEn" = (/obj/machinery/vending/boozeomat,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) -"cEo" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) +"cEo" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) "cEp" = (/obj/structure/rack,/obj/item/device/camera,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) "cEq" = (/obj/structure/rack,/obj/item/toy/sword,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) "cEr" = (/obj/structure/rack,/obj/item/toy/gun,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) @@ -7072,7 +7072,7 @@ "cFZ" = (/obj/machinery/gibber,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "cGa" = (/obj/machinery/door/airlock/command{name = "Thunderdome"},/turf/unsimulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/tdome) "cGb" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) -"cGc" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/lighter/zippo,/obj/item/weapon/cigpacket,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) +"cGc" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/lighter/zippo,/obj/item/weapon/storage/fancy/cigarettes,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "cGd" = (/obj/structure/table{icon_state = "tabledir"; dir = 2},/obj/item/weapon/reagent_containers/food/drinks/cola,/obj/item/weapon/reagent_containers/food/drinks/cola,/obj/item/weapon/reagent_containers/food/drinks/cola,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "cGe" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "cGf" = (/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) @@ -7082,7 +7082,7 @@ "cGj" = (/obj/structure/stool/bed/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "cGk" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "cGl" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) -"cGm" = (/obj/structure/table{icon_state = "tabledir"; dir = 9},/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "white"},/area/tdome) +"cGm" = (/obj/structure/table{icon_state = "tabledir"; dir = 9},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "cGn" = (/obj/structure/table,/obj/machinery/microwave,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "cGo" = (/obj/structure/table/reinforced{dir = 4; icon_state = "reinf_tabledir"},/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "cGp" = (/obj/machinery/computer/security/telescreen,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) @@ -7150,7 +7150,7 @@ "cHz" = (/obj/machinery/computer/pod{id = "thunderdome"; name = "Thunderdome Blast Door Control"},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "cHA" = (/obj/structure/table{icon_state = "tabledir"; dir = 9},/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "cHB" = (/obj/structure/table,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) -"cHC" = (/obj/structure/table,/obj/item/weapon/storage/handcuff_kit,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) +"cHC" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "cHD" = (/obj/structure/table,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "cHE" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "cHF" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) @@ -7383,7 +7383,7 @@ "cLY" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor,/area/tcommsat/computer) "cLZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor,/area/tcommsat/computer) "cMa" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor,/area/tcommsat/computer) -"cMb" = (/obj/structure/table,/obj/item/weapon/cigpacket,/turf/simulated/floor,/area/tcommsat/computer) +"cMb" = (/obj/structure/table,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor,/area/tcommsat/computer) "cMc" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor,/area/tcommsat/computer) "cMd" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) "cMe" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) @@ -7633,7 +7633,7 @@ "cQO" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; name = "power storage unit"},/turf/simulated/floor/plating,/area/djstation) "cQP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/djstation) "cQQ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/plating,/area/djstation) -"cQR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/item/weapon/storage/lightbox/mixed,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/djstation) +"cQR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/item/weapon/storage/box/lights/mixed,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/djstation) "cQS" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/djstation) "cQT" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/head/helmet/space/syndicate,/obj/item/clothing/mask/breath,/turf/simulated/floor/plating,/area/djstation) "cQU" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"},/turf/simulated/floor/plating,/area/djstation) @@ -7969,7 +7969,7 @@ "cXm" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/derelict/arrival) "cXn" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/derelict/arrival) "cXo" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "dark"},/area/derelict/medical/chapel) -"cXp" = (/obj/item/weapon/storage/lightbox/mixed,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) +"cXp" = (/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "cXq" = (/obj/item/weapon/disk/data/demo,/turf/simulated/floor/plating/airless,/area) "cXr" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area) "cXs" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/derelict/arrival) @@ -8356,7 +8356,7 @@ "deJ" = (/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) "deK" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/north_outpost) "deL" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/mine/north_outpost) -"deM" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/item/weapon/storage/lightbox/bulbs,/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor/plating,/area/mine/north_outpost) +"deM" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/item/weapon/storage/box/lights/bulbs,/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor/plating,/area/mine/north_outpost) "deN" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact-f"},/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/north_outpost) "deO" = (/obj/item/weapon/shard,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned) "deP" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/airless,/area/mine/abandoned) @@ -8390,7 +8390,7 @@ "dfr" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor,/area/mine/abandoned) "dfs" = (/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned) "dft" = (/obj/structure/table,/obj/item/weapon/shovel,/turf/simulated/floor,/area/mine/north_outpost) -"dfu" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit,/turf/simulated/floor,/area/mine/north_outpost) +"dfu" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor,/area/mine/north_outpost) "dfv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/north_outpost) "dfw" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/mine/north_outpost) "dfx" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/mine/north_outpost) @@ -8585,7 +8585,7 @@ "dje" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/eva) "djf" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/mine/eva) "djg" = (/obj/structure/table,/obj/item/weapon/shovel,/turf/simulated/floor,/area/mine/west_outpost) -"djh" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit,/turf/simulated/floor,/area/mine/west_outpost) +"djh" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor,/area/mine/west_outpost) "dji" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/mine/west_outpost) "djj" = (/obj/machinery/door/airlock/external{name = "Mining West Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor,/area/mine/west_outpost) "djk" = (/obj/machinery/door/airlock/external{name = "Mining West Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"; tag = "icon-asteroidfloor"},/area/mine/west_outpost) @@ -8604,7 +8604,7 @@ "djx" = (/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/turf/simulated/floor,/area/mine/west_outpost) "djy" = (/obj/structure/closet/emcloset,/turf/simulated/floor,/area/mine/west_outpost) "djz" = (/obj/structure/ore_box,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/mine/west_outpost) -"djA" = (/obj/structure/table,/obj/item/weapon/storage/donkpocket_kit,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) +"djA" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "djB" = (/obj/machinery/camera{c_tag = "Crew Area"; dir = 1; network = "MINE"},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "djC" = (/obj/item/weapon/cigbutt,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "djD" = (/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor,/area/mine/living_quarters) @@ -8709,7 +8709,7 @@ "dly" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/west_outpost) "dlz" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/west_outpost) "dlA" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/mine/west_outpost) -"dlB" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/item/weapon/storage/lightbox/bulbs,/turf/simulated/floor/plating,/area/mine/west_outpost) +"dlB" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/item/weapon/storage/box/lights/bulbs,/turf/simulated/floor/plating,/area/mine/west_outpost) "dlC" = (/obj/machinery/conveyor_switch{id = "mining_west"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1},/area/mine/explored) "dlD" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/turf/simulated/floor,/area/mine/living_quarters) "dlE" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor,/area/mine/living_quarters) @@ -8761,7 +8761,7 @@ "dmy" = (/turf/simulated/floor{icon_state = "white"},/area/mine/living_quarters) "dmz" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor{icon_state = "white"},/area/mine/living_quarters) "dmA" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/living_quarters) -"dmB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/lightbox/mixed,/turf/simulated/floor/plating,/area/mine/living_quarters) +"dmB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/mine/living_quarters) "dmC" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/mine/living_quarters) "dmD" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/mine/living_quarters) "dmE" = (/turf/simulated/floor/plating,/area/mine/living_quarters) diff --git a/tgstation.dme b/tgstation.dme index 842650dc47..fe8111656f 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -514,16 +514,17 @@ #include "code\game\objects\items\weapons\secstorage\secstorage.dm" #include "code\game\objects\items\weapons\secstorage\ssafe.dm" #include "code\game\objects\items\weapons\storage\backpack.dm" +#include "code\game\objects\items\weapons\storage\bags.dm" #include "code\game\objects\items\weapons\storage\belt.dm" #include "code\game\objects\items\weapons\storage\bible.dm" #include "code\game\objects\items\weapons\storage\boxes.dm" #include "code\game\objects\items\weapons\storage\briefcase.dm" #include "code\game\objects\items\weapons\storage\fancy.dm" #include "code\game\objects\items\weapons\storage\firstaid.dm" -#include "code\game\objects\items\weapons\storage\kit.dm" #include "code\game\objects\items\weapons\storage\lockbox.dm" #include "code\game\objects\items\weapons\storage\mining_satchel.dm" #include "code\game\objects\items\weapons\storage\misc.dm" +#include "code\game\objects\items\weapons\storage\secure.dm" #include "code\game\objects\items\weapons\storage\storage.dm" #include "code\game\objects\items\weapons\storage\toolbox.dm" #include "code\game\objects\items\weapons\storage\uplink_kits.dm"