diff --git a/code/defines/obj/storage.dm b/code/defines/obj/storage.dm
deleted file mode 100644
index a5f5446794e..00000000000
--- a/code/defines/obj/storage.dm
+++ /dev/null
@@ -1,587 +0,0 @@
-/obj/item/weapon/storage/backpack
- name = "backpack"
- desc = "You wear this on your back and put items into it."
- icon_state = "backpack"
- item_state = "backpack"
- w_class = 4.0
- flags = FPRINT|TABLEPASS
- slot_flags = SLOT_BACK //ERROOOOO
- max_w_class = 3
- max_combined_w_class = 21
-
-/obj/item/weapon/storage/backpack/cultpack
- name = "trophy rack"
- desc = "It's useful for both carrying extra gear and proudly declaring your insanity."
- icon_state = "cultpack"
-
-/*
-/obj/item/weapon/storage/lbe
- name = "Load Bearing Equipment"
- desc = "You wear these on your thighs, they help carry heavy loads."
- icon_state = "backpack" //PLACEHOLDER
- w_class = 2.0
- max_combined_w_class = 17
-*/
-
-/obj/item/weapon/storage/pill_bottle
- name = "pill bottle"
- desc = "It's an airtight container for storing medication."
- icon_state = "pill_canister"
- 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
-
-/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")
-
-/obj/item/weapon/storage/box
- name = "box"
- desc = "It's just an ordinary box."
- icon_state = "box"
- item_state = "syringe_kit"
-
-/obj/item/weapon/storage/box/engineer
-
-/obj/item/weapon/storage/box/syndicate
-
-/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/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
-
-/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
-
-/obj/item/weapon/storage/backpack/clown
- name = "Giggles Von Honkerton"
- desc = "It's a backpack made by Honk! Co."
- icon_state = "clownpack"
- item_state = "clownpack"
-
-/obj/item/weapon/storage/backpack/medic
- name = "medical backpack"
- desc = "It's a backpack especially designed for use in a sterile environment."
- icon_state = "medicalpack"
- item_state = "medicalpack"
-
-/obj/item/weapon/storage/backpack/security
- name = "security backpack"
- desc = "It's a very robust backpack."
- icon_state = "securitypack"
- item_state = "securitypack"
-
-/obj/item/weapon/storage/backpack/captain
- name = "captain's backpack"
- desc = "It's a special backpack made exclusively for Nanotrasen officers."
- icon_state = "captainpack"
- item_state = "captainpack"
-
-/obj/item/weapon/storage/backpack/satchel
- name = "leather satchel"
- desc = "It's a very fancy satchel made with fine leather."
- icon_state = "satchel"
-
-/obj/item/weapon/storage/backpack/satchel/withwallet
- New()
- ..()
- new /obj/item/weapon/storage/wallet/random( src )
-
-// Belt Bags/Satchels
-
-/obj/item/weapon/storage/backpack/satchel_norm
- name = "satchel"
- desc = "A trendy looking satchel."
- icon_state = "satchel-norm"
-
-/obj/item/weapon/storage/backpack/satchel_eng
- name = "industrial satchel"
- desc = "A tough satchel with extra pockets."
- icon_state = "satchel-eng"
- item_state = "engiepack"
-
-/obj/item/weapon/storage/backpack/satchel_med
- name = "medical satchel"
- desc = "A sterile satchel used in medical departments."
- icon_state = "satchel-med"
- item_state = "medicalpack"
-
-/obj/item/weapon/storage/backpack/satchel_vir
- name = "virologist satchel"
- desc = "A sterile satchel with virologist colours."
- icon_state = "satchel-vir"
-
-/obj/item/weapon/storage/backpack/satchel_chem
- name = "chemist satchel"
- desc = "A sterile satchel with chemist colours."
- icon_state = "satchel-chem"
-
-/obj/item/weapon/storage/backpack/satchel_gen
- name = "geneticist satchel"
- desc = "A sterile satchel with geneticist colours."
- icon_state = "satchel-gen"
-
-/obj/item/weapon/storage/backpack/satchel_tox
- name = "scientist satchel"
- desc = "Useful for holding research materials."
- icon_state = "satchel-tox"
-
-/obj/item/weapon/storage/backpack/satchel_sec
- name = "security satchel"
- desc = "A robust satchel for security related needs."
- icon_state = "satchel-sec"
- item_state = "securitypack"
-
-/obj/item/weapon/storage/backpack/satchel_hyd
- name = "hydroponics satchel"
- desc = "A green satchel for plant related work."
- icon_state = "satchel_hyd"
-
-/obj/item/weapon/storage/backpack/satchel_cap
- name = "captain's satchel"
- desc = "An exclusive satchel for Nanotrasen officers."
- icon_state = "satchel-cap"
- item_state = "captainpack"
-
-/obj/item/weapon/storage/backpack/industrial
- name = "industrial backpack"
- desc = "It's a tough backpack for the daily grind of station life."
- icon_state = "engiepack"
- item_state = "engiepack"
-
-/obj/item/weapon/storage/briefcase
- name = "briefcase"
- desc = "It's made of AUTHENTIC faux-leather and has a price-tag still attached. Its owner must be a real professional."
- icon_state = "briefcase"
- flags = FPRINT | TABLEPASS| CONDUCT
- force = 8.0
- throw_speed = 1
- throw_range = 4
- w_class = 4.0
- max_w_class = 3
- max_combined_w_class = 16
-
-/obj/item/weapon/storage/wallet
- name = "wallet"
- desc = "It can hold a few small and personal things."
- storage_slots = 4
- icon_state = "wallet"
- w_class = 2
- can_hold = list(
- "/obj/item/weapon/spacecash",
- "/obj/item/weapon/card",
- "/obj/item/clothing/mask/cigarette",
- "/obj/item/device/flashlight/pen",
- "/obj/item/seeds",
- "/obj/item/stack/medical",
- "/obj/item/toy/crayon",
- "/obj/item/weapon/coin",
- "/obj/item/weapon/dice",
- "/obj/item/weapon/disk",
- "/obj/item/weapon/implanter",
- "/obj/item/weapon/lighter",
- "/obj/item/weapon/match",
- "/obj/item/weapon/paper",
- "/obj/item/weapon/pen",
- "/obj/item/weapon/photo",
- "/obj/item/weapon/reagent_containers/dropper",
- "/obj/item/weapon/screwdriver",
- "/obj/item/weapon/stamp")
-
- attackby(obj/item/A as obj, mob/user as mob)
- ..()
- update_icon()
- return
-
- update_icon()
- for(var/obj/item/weapon/card/id/ID in contents)
- switch(ID.icon_state)
- if("id")
- icon_state = "walletid"
- return
- if("silver")
- icon_state = "walletid_silver"
- return
- if("gold")
- icon_state = "walletid_gold"
- return
- if("centcom")
- icon_state = "walletid_centcom"
- return
- icon_state = "wallet"
-
-
-
- proc/get_id()
- for(var/obj/item/weapon/card/id/ID in contents)
- if(istype(ID))
- return ID
-
-/obj/item/weapon/storage/wallet/random/New()
- ..()
- var/item1_type = pick( /obj/item/weapon/spacecash/c10,/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c1000,/obj/item/weapon/spacecash/c20,/obj/item/weapon/spacecash/c200,/obj/item/weapon/spacecash/c50, /obj/item/weapon/spacecash/c500)
- var/item2_type
- if(prob(50))
- item2_type = pick( /obj/item/weapon/spacecash/c10,/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c1000,/obj/item/weapon/spacecash/c20,/obj/item/weapon/spacecash/c200,/obj/item/weapon/spacecash/c50, /obj/item/weapon/spacecash/c500)
- var/item3_type = pick( /obj/item/weapon/coin/silver, /obj/item/weapon/coin/silver, /obj/item/weapon/coin/gold, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron )
-
- spawn(2)
- if(item1_type)
- new item1_type(src)
- if(item2_type)
- new item2_type(src)
- if(item3_type)
- new item3_type(src)
-
-
-/obj/item/weapon/storage/disk_kit
- name = "box of data disks"
- desc = "It has a picture of a data disk on it."
- icon_state = "id"
- item_state = "syringe_kit"
- foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
-
-/obj/item/weapon/storage/disk_kit/disks
-
-/obj/item/weapon/storage/disk_kit/disks2
-
-/obj/item/weapon/storage/fcard_kit
- name = "box of fingerprint cards"
- desc = "It has a picture of a fingerprint on each of its faces."
- icon_state = "id"
- item_state = "syringe_kit"
-
-/obj/item/weapon/storage/firstaid
- name = "first-aid kit"
- desc = "It's an emergency medical kit for those serious boo-boos."
- icon_state = "firstaid"
- throw_speed = 2
- throw_range = 8
- var/empty = 0
-
-/obj/item/weapon/storage/firstaid/fire
- name = "fire first-aid kit"
- desc = "It's an emergency medical kit for when the toxins lab -spontaneously- burns down."
- icon_state = "ointment"
- item_state = "firstaid-ointment"
-
-/obj/item/weapon/storage/firstaid/regular
- icon_state = "firstaid"
-
-/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
-
-/obj/item/weapon/storage/firstaid/toxin
- name = "toxin first aid"
- desc = "Used to treat when you have a high amoutn of toxins in your body."
- icon_state = "antitoxin"
- item_state = "firstaid-toxin"
-
-/obj/item/weapon/storage/firstaid/o2
- name = "oxygen deprivation first aid"
- desc = "A box full of oxygen goodies."
- icon_state = "o2"
- item_state = "firstaid-o2"
-
-/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
-
-/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
-
-/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
-
-/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
-
-/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
-
-/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
-
-/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
-
-/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
-
-/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
-
-/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
-
-/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
-
-/obj/item/weapon/storage/toolbox
- name = "toolbox"
- desc = "Danger. Very robust."
- icon = 'icons/obj/storage.dmi'
- icon_state = "red"
- item_state = "toolbox_red"
- flags = FPRINT | TABLEPASS| CONDUCT
- force = 5.0
- throwforce = 10.0
- throw_speed = 1
- throw_range = 7
- w_class = 4.0
- origin_tech = "combat=1"
- attack_verb = list("robusted")
-
-/obj/item/weapon/storage/toolbox/emergency
- name = "emergency toolbox"
- icon_state = "red"
- item_state = "toolbox_red"
-
-/obj/item/weapon/storage/toolbox/mechanical
- name = "mechanical toolbox"
- icon_state = "blue"
- item_state = "toolbox_blue"
-
-/obj/item/weapon/storage/toolbox/electrical
- name = "electrical toolbox"
- icon_state = "yellow"
- item_state = "toolbox_yellow"
-
-/obj/item/weapon/storage/toolbox/syndicate
- name = "suspicious looking toolbox"
- icon_state = "syndicate"
- item_state = "toolbox_syndi"
- origin_tech = "combat=1;syndicate=1"
- force = 7.0
-
-/obj/item/weapon/storage/bible
- name = "bible"
- desc = "Apply to head repeatedly."
- icon_state ="bible"
- throw_speed = 1
- throw_range = 5
- w_class = 3.0
- flags = FPRINT | TABLEPASS
- var/mob/affecting = null
- var/deity_name = "Christ"
-
-/obj/item/weapon/storage/bible/booze
- name = "bible"
- desc = "To be applied to the head repeatedly."
- icon_state ="bible"
-
-/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
-
-/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
-
-/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
-
-/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"
-
-
-
-
-/obj/structure/closet/syndicate/resources/
- desc = "An old, dusty locker."
-
-/obj/structure/closet/syndicate/resources/New()
- ..()
- var/common_min = 30 //Minimum amount of minerals in the stack for common minerals
- var/common_max = 50 //Maximum amount of HONK in the stack for HONK common minerals
- var/rare_min = 5 //Minimum HONK of HONK in the stack HONK HONK rare minerals
- var/rare_max = 20 //Maximum HONK HONK HONK in the HONK for HONK rare HONK
-
-
- sleep(2)
-
- var/pickednum = rand(1, 50)
-
- //Sad trombone
- if(pickednum == 1)
- var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src)
- P.name = "IOU"
- P.info = "Sorry man, we needed the money so we sold your stash. It's ok, we'll double our money for sure this time!"
-
- //Metal (common ore)
- if(pickednum >= 2)
- new /obj/item/stack/sheet/metal(src, rand(common_min, common_max))
-
- //Glass (common ore)
- if(pickednum >= 5)
- new /obj/item/stack/sheet/glass(src, rand(common_min, common_max))
-
- //Plasteel (common ore) Because it has a million more uses then plasma
- if(pickednum >= 10)
- new /obj/item/stack/sheet/plasteel(src, rand(common_min, common_max))
-
- //Plasma (rare ore)
- if(pickednum >= 15)
- new /obj/item/stack/sheet/mineral/plasma(src, rand(rare_min, rare_max))
-
- //Silver (rare ore)
- if(pickednum >= 20)
- new /obj/item/stack/sheet/mineral/silver(src, rand(rare_min, rare_max))
-
- //Gold (rare ore)
- if(pickednum >= 30)
- new /obj/item/stack/sheet/mineral/gold(src, rand(rare_min, rare_max))
-
- //Uranium (rare ore)
- if(pickednum >= 40)
- new /obj/item/stack/sheet/mineral/uranium(src, rand(rare_min, rare_max))
-
- //Diamond (rare HONK)
- if(pickednum >= 45)
- new /obj/item/stack/sheet/mineral/diamond(src, rand(rare_min, rare_max))
-
- //Jetpack (You hit the jackpot!)
- if(pickednum == 50)
- new /obj/item/weapon/tank/jetpack/carbondioxide(src)
-
- return
-
-/obj/structure/closet/syndicate/resources/everything
- desc = "It's an emergency storage closet for repairs."
-
-/obj/structure/closet/syndicate/resources/everything/New()
-
-
- var/list/resources = list(
-
- /obj/item/stack/sheet/metal,
- /obj/item/stack/sheet/glass,
- /obj/item/stack/sheet/mineral/gold,
- /obj/item/stack/sheet/mineral/silver,
- /obj/item/stack/sheet/mineral/plasma,
- /obj/item/stack/sheet/mineral/uranium,
- /obj/item/stack/sheet/mineral/diamond,
- /obj/item/stack/sheet/mineral/clown,
- /obj/item/stack/sheet/plasteel,
- /obj/item/stack/rods
-
- )
-
- sleep(2)
-
- for(var/i = 0, i<2, i++)
- for(var/res in resources)
- var/obj/item/stack/R = new res(src)
- R.amount = R.max_amount
-
- return
-
-
-/obj/item/weapon/storage/satchel
- 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
- use_to_pickup = 1
- max_w_class = 3
- display_contents_with_number = 1
- allow_quick_empty = 1
- allow_quick_gather = 1
-
- can_hold = list(
- "/obj/item/weapon/ore"
- )
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm
index 94a9642ac99..b14b9886d11 100644
--- a/code/game/objects/items/weapons/storage/backpack.dm
+++ b/code/game/objects/items/weapons/storage/backpack.dm
@@ -1,32 +1,32 @@
-/obj/item/weapon/storage/MouseDrop(obj/over_object as obj)
- if (ishuman(usr) || ismonkey(usr)) //so monkeys can take off their backpacks -- Urist
- var/mob/M = usr
- if (!( istype(over_object, /obj/screen) ))
- return ..()
- if (!(src.loc == usr) || (src.loc && src.loc.loc == usr))
- return
- playsound(src.loc, "rustle", 50, 1, -5)
- if (!( M.restrained() ) && !( M.stat ))
- switch(over_object.name)
- if("r_hand")
- M.u_equip(src)
- M.put_in_r_hand(src)
- if("l_hand")
- M.u_equip(src)
- M.put_in_l_hand(src)
- src.add_fingerprint(usr)
- return
- if(over_object == usr && in_range(src, usr) || usr.contents.Find(src))
- if (usr.s_active)
- usr.s_active.close(usr)
- src.show_to(usr)
- return
- return
+/* Backpacks
+ * Contains:
+ * Backpack
+ * Backpack Types
+ * Satchel Types
+ */
+
+/*
+ * Backpack
+ */
+
+/obj/item/weapon/storage/backpack
+ name = "backpack"
+ desc = "You wear this on your back and put items into it."
+ icon_state = "backpack"
+ item_state = "backpack"
+ w_class = 4.0
+ flags = FPRINT|TABLEPASS
+ slot_flags = SLOT_BACK //ERROOOOO
+ max_w_class = 3
+ max_combined_w_class = 21
/obj/item/weapon/storage/backpack/attackby(obj/item/weapon/W as obj, mob/user as mob)
playsound(src.loc, "rustle", 50, 1, -5)
..()
+/*
+ * Backpack Types
+ */
/obj/item/weapon/storage/backpack/holding
name = "Bag of Holding"
@@ -78,7 +78,105 @@
max_w_class = 3
max_combined_w_class = 400 // can store a ton of shit!
+/obj/item/weapon/storage/backpack/cultpack
+ name = "trophy rack"
+ desc = "It's useful for both carrying extra gear and proudly declaring your insanity."
+ icon_state = "cultpack"
+
+/obj/item/weapon/storage/backpack/clown
+ name = "Giggles Von Honkerton"
+ desc = "It's a backpack made by Honk! Co."
+ icon_state = "clownpack"
+ item_state = "clownpack"
+
+/obj/item/weapon/storage/backpack/medic
+ name = "medical backpack"
+ desc = "It's a backpack especially designed for use in a sterile environment."
+ icon_state = "medicalpack"
+ item_state = "medicalpack"
+
+/obj/item/weapon/storage/backpack/security
+ name = "security backpack"
+ desc = "It's a very robust backpack."
+ icon_state = "securitypack"
+ item_state = "securitypack"
+
+/obj/item/weapon/storage/backpack/captain
+ name = "captain's backpack"
+ desc = "It's a special backpack made exclusively for Nanotrasen officers."
+ icon_state = "captainpack"
+ item_state = "captainpack"
+
+/obj/item/weapon/storage/backpack/industrial
+ name = "industrial backpack"
+ desc = "It's a tough backpack for the daily grind of station life."
+ icon_state = "engiepack"
+ item_state = "engiepack"
+
+/*
+ * Satchel Types
+ */
+
+/obj/item/weapon/storage/backpack/satchel
+ name = "leather satchel"
+ desc = "It's a very fancy satchel made with fine leather."
+ icon_state = "satchel"
+
+/obj/item/weapon/storage/backpack/satchel/withwallet
New()
..()
- return
+ new /obj/item/weapon/storage/wallet/random( src )
+/obj/item/weapon/storage/backpack/satchel_norm
+ name = "satchel"
+ desc = "A trendy looking satchel."
+ icon_state = "satchel-norm"
+
+/obj/item/weapon/storage/backpack/satchel_eng
+ name = "industrial satchel"
+ desc = "A tough satchel with extra pockets."
+ icon_state = "satchel-eng"
+ item_state = "engiepack"
+
+/obj/item/weapon/storage/backpack/satchel_med
+ name = "medical satchel"
+ desc = "A sterile satchel used in medical departments."
+ icon_state = "satchel-med"
+ item_state = "medicalpack"
+
+/obj/item/weapon/storage/backpack/satchel_vir
+ name = "virologist satchel"
+ desc = "A sterile satchel with virologist colours."
+ icon_state = "satchel-vir"
+
+/obj/item/weapon/storage/backpack/satchel_chem
+ name = "chemist satchel"
+ desc = "A sterile satchel with chemist colours."
+ icon_state = "satchel-chem"
+
+/obj/item/weapon/storage/backpack/satchel_gen
+ name = "geneticist satchel"
+ desc = "A sterile satchel with geneticist colours."
+ icon_state = "satchel-gen"
+
+/obj/item/weapon/storage/backpack/satchel_tox
+ name = "scientist satchel"
+ desc = "Useful for holding research materials."
+ icon_state = "satchel-tox"
+
+/obj/item/weapon/storage/backpack/satchel_sec
+ name = "security satchel"
+ desc = "A robust satchel for security related needs."
+ icon_state = "satchel-sec"
+ item_state = "securitypack"
+
+/obj/item/weapon/storage/backpack/satchel_hyd
+ name = "hydroponics satchel"
+ desc = "A green satchel for plant related work."
+ icon_state = "satchel_hyd"
+
+/obj/item/weapon/storage/backpack/satchel_cap
+ name = "captain's satchel"
+ desc = "An exclusive satchel for Nanotrasen officers."
+ icon_state = "satchel-cap"
+ item_state = "captainpack"
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm
index 25d1a521220..342fa2fd355 100644
--- a/code/game/objects/items/weapons/storage/bible.dm
+++ b/code/game/objects/items/weapons/storage/bible.dm
@@ -1,3 +1,19 @@
+/obj/item/weapon/storage/bible
+ name = "bible"
+ desc = "Apply to head repeatedly."
+ icon_state ="bible"
+ throw_speed = 1
+ throw_range = 5
+ w_class = 3.0
+ flags = FPRINT | TABLEPASS
+ var/mob/affecting = null
+ var/deity_name = "Christ"
+
+/obj/item/weapon/storage/bible/booze
+ name = "bible"
+ desc = "To be applied to the head repeatedly."
+ icon_state ="bible"
+
/obj/item/weapon/storage/bible/booze/New()
..()
new /obj/item/weapon/reagent_containers/food/drinks/beer(src)
diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
new file mode 100644
index 00000000000..52c5f56324e
--- /dev/null
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -0,0 +1,83 @@
+/obj/item/weapon/storage/box
+ name = "box"
+ desc = "It's just an ordinary box."
+ icon_state = "box"
+ item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
+
+/obj/item/weapon/storage/box/survival/
+ New()
+ ..()
+ contents = list()
+ sleep(1)
+ new /obj/item/clothing/mask/breath( src )
+ new /obj/item/weapon/tank/emergency_oxygen( src )
+ return
+
+/obj/item/weapon/storage/box/engineer/
+ New()
+ ..()
+ contents = list()
+ sleep(1)
+ new /obj/item/clothing/mask/breath( src )
+ new /obj/item/weapon/tank/emergency_oxygen/engi( src )
+ return
+
+/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
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/storage/briefcase.dm b/code/game/objects/items/weapons/storage/briefcase.dm
index 8bd67580575..5d375ed0f64 100644
--- a/code/game/objects/items/weapons/storage/briefcase.dm
+++ b/code/game/objects/items/weapons/storage/briefcase.dm
@@ -1,3 +1,15 @@
+/obj/item/weapon/storage/briefcase
+ name = "briefcase"
+ desc = "It's made of AUTHENTIC faux-leather and has a price-tag still attached. Its owner must be a real professional."
+ icon_state = "briefcase"
+ flags = FPRINT | TABLEPASS| CONDUCT
+ force = 8.0
+ throw_speed = 1
+ throw_range = 4
+ w_class = 4.0
+ max_w_class = 3
+ max_combined_w_class = 16
+
/obj/item/weapon/storage/briefcase/New()
..()
new /obj/item/weapon/paper(src)
diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm
index f8b777bf3ff..c4dde850137 100644
--- a/code/game/objects/items/weapons/storage/firstaid.dm
+++ b/code/game/objects/items/weapons/storage/firstaid.dm
@@ -1,111 +1,206 @@
+/* First aid storage
+ * Contains:
+ * First Aid Kits
+ * Syringe Kit
+ * Pill Bottles
+ */
-/obj/item/weapon/storage/firstaid/fire/New()
- ..()
- if (empty) return
+/*
+ * First Aid Kits
+ */
+/obj/item/weapon/storage/firstaid
+ name = "first-aid kit"
+ desc = "It's an emergency medical kit for those serious boo-boos."
+ icon_state = "firstaid"
+ throw_speed = 2
+ throw_range = 8
+ var/empty = 0
- icon_state = pick("ointment","firefirstaid")
- new /obj/item/device/healthanalyzer( src )
- new /obj/item/weapon/reagent_containers/syringe/inaprovaline( src )
- new /obj/item/stack/medical/ointment( src )
- new /obj/item/stack/medical/ointment( src )
- new /obj/item/weapon/reagent_containers/pill/kelotane( src )
- new /obj/item/weapon/reagent_containers/pill/kelotane( src )
- new /obj/item/weapon/reagent_containers/pill/kelotane( src ) //Replaced ointment with these since they actually work --Errorage
+/obj/item/weapon/storage/firstaid/fire
+ name = "fire first-aid kit"
+ desc = "It's an emergency medical kit for when the toxins lab -spontaneously- burns down."
+ icon_state = "ointment"
+ item_state = "firstaid-ointment"
+
+ New()
+ ..()
+ if (empty) return
+
+ icon_state = pick("ointment","firefirstaid")
+
+ new /obj/item/device/healthanalyzer( src )
+ new /obj/item/weapon/reagent_containers/syringe/inaprovaline( src )
+ new /obj/item/stack/medical/ointment( src )
+ new /obj/item/stack/medical/ointment( src )
+ new /obj/item/weapon/reagent_containers/pill/kelotane( src )
+ new /obj/item/weapon/reagent_containers/pill/kelotane( src )
+ new /obj/item/weapon/reagent_containers/pill/kelotane( src ) //Replaced ointment with these since they actually work --Errorage
+ return
+
+
+/obj/item/weapon/storage/firstaid/regular
+ icon_state = "firstaid"
+
+ New()
+ ..()
+ if (empty) return
+ new /obj/item/stack/medical/bruise_pack(src)
+ new /obj/item/stack/medical/bruise_pack(src)
+ new /obj/item/stack/medical/bruise_pack(src)
+ new /obj/item/stack/medical/ointment(src)
+ new /obj/item/stack/medical/ointment(src)
+ new /obj/item/device/healthanalyzer(src)
+ new /obj/item/weapon/reagent_containers/syringe/inaprovaline( src )
+ return
+
+/obj/item/weapon/storage/firstaid/toxin
+ name = "toxin first aid"
+ desc = "Used to treat when you have a high amoutn of toxins in your body."
+ icon_state = "antitoxin"
+ item_state = "firstaid-toxin"
+
+ New()
+ ..()
+ if (empty) return
+
+ icon_state = pick("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3")
+
+ new /obj/item/weapon/reagent_containers/syringe/antitoxin( src )
+ new /obj/item/weapon/reagent_containers/syringe/antitoxin( src )
+ new /obj/item/weapon/reagent_containers/syringe/antitoxin( src )
+ new /obj/item/weapon/reagent_containers/pill/antitox( src )
+ new /obj/item/weapon/reagent_containers/pill/antitox( src )
+ new /obj/item/weapon/reagent_containers/pill/antitox( src )
+ new /obj/item/device/healthanalyzer( src )
+ return
+
+/obj/item/weapon/storage/firstaid/o2
+ name = "oxygen deprivation first aid"
+ desc = "A box full of oxygen goodies."
+ icon_state = "o2"
+ item_state = "firstaid-o2"
+
+ New()
+ ..()
+ if (empty) return
+ new /obj/item/weapon/reagent_containers/pill/dexalin( src )
+ new /obj/item/weapon/reagent_containers/pill/dexalin( src )
+ new /obj/item/weapon/reagent_containers/pill/dexalin( src )
+ new /obj/item/weapon/reagent_containers/pill/dexalin( src )
+ new /obj/item/weapon/reagent_containers/syringe/inaprovaline( src )
+ new /obj/item/weapon/reagent_containers/syringe/inaprovaline( src )
+ 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
+ */
+/obj/item/weapon/storage/pill_bottle
+ name = "pill bottle"
+ desc = "It's an airtight container for storing medication."
+ icon_state = "pill_canister"
+ 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
+
+/obj/item/weapon/storage/pill_bottle/MouseDrop(obj/over_object as obj) //Quick pillbottle fix. -Agouri
+
+ if (ishuman(usr) || ismonkey(usr)) //Can monkeys even place items in the pocket slots? Leaving this in just in case~
+ var/mob/M = usr
+ if (!( istype(over_object, /obj/screen) ))
+ return ..()
+ if ((!( M.restrained() ) && !( M.stat ) /*&& M.pocket == src*/))
+ switch(over_object.name)
+ if("r_hand")
+ M.u_equip(src)
+ M.put_in_r_hand(src)
+ if("l_hand")
+ M.u_equip(src)
+ M.put_in_l_hand(src)
+ src.add_fingerprint(usr)
+ return
+ if(over_object == usr && in_range(src, usr) || usr.contents.Find(src))
+ if (usr.s_active)
+ usr.s_active.close(usr)
+ src.show_to(usr)
+ return
return
-/obj/item/weapon/storage/syringes/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
-/obj/item/weapon/storage/firstaid/regular/New()
+/obj/item/weapon/storage/pill_bottle/verb/toggle_mode()
+ set name = "Switch Pill Bottle Method"
+ set category = "Object"
- ..()
- if (empty) return
- new /obj/item/stack/medical/bruise_pack(src)
- new /obj/item/stack/medical/bruise_pack(src)
- new /obj/item/stack/medical/bruise_pack(src)
- new /obj/item/stack/medical/ointment(src)
- new /obj/item/stack/medical/ointment(src)
- new /obj/item/device/healthanalyzer(src)
- new /obj/item/weapon/reagent_containers/syringe/inaprovaline( src )
- return
-
-/obj/item/weapon/storage/firstaid/toxin/New()
-
- ..()
- if (empty) return
-
- icon_state = pick("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3")
-
- new /obj/item/weapon/reagent_containers/syringe/antitoxin( src )
- new /obj/item/weapon/reagent_containers/syringe/antitoxin( src )
- new /obj/item/weapon/reagent_containers/syringe/antitoxin( src )
- new /obj/item/weapon/reagent_containers/pill/antitox( src )
- new /obj/item/weapon/reagent_containers/pill/antitox( src )
- new /obj/item/weapon/reagent_containers/pill/antitox( src )
- new /obj/item/device/healthanalyzer( src )
- return
-
-/obj/item/weapon/storage/firstaid/o2/New()
-
- ..()
- if (empty) return
- new /obj/item/weapon/reagent_containers/pill/dexalin( src )
- new /obj/item/weapon/reagent_containers/pill/dexalin( src )
- new /obj/item/weapon/reagent_containers/pill/dexalin( src )
- new /obj/item/weapon/reagent_containers/pill/dexalin( src )
- new /obj/item/weapon/reagent_containers/syringe/inaprovaline( src )
- new /obj/item/weapon/reagent_containers/syringe/inaprovaline( src )
- new /obj/item/device/healthanalyzer( src )
- return
+ 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."
-/obj/item/weapon/storage/pill_bottle/kelotane/New()
- ..()
- new /obj/item/weapon/reagent_containers/pill/kelotane( src )
- new /obj/item/weapon/reagent_containers/pill/kelotane( src )
- new /obj/item/weapon/reagent_containers/pill/kelotane( src )
- new /obj/item/weapon/reagent_containers/pill/kelotane( src )
- new /obj/item/weapon/reagent_containers/pill/kelotane( src )
- new /obj/item/weapon/reagent_containers/pill/kelotane( src )
- new /obj/item/weapon/reagent_containers/pill/kelotane( src )
+ New()
+ ..()
+ new /obj/item/weapon/reagent_containers/pill/kelotane( src )
+ new /obj/item/weapon/reagent_containers/pill/kelotane( src )
+ new /obj/item/weapon/reagent_containers/pill/kelotane( src )
+ new /obj/item/weapon/reagent_containers/pill/kelotane( src )
+ new /obj/item/weapon/reagent_containers/pill/kelotane( src )
+ new /obj/item/weapon/reagent_containers/pill/kelotane( src )
+ new /obj/item/weapon/reagent_containers/pill/kelotane( src )
/obj/item/weapon/storage/pill_bottle/antitox
name = "Pill bottle (Anti-toxin)"
desc = "Contains pills used to counter toxins."
-/obj/item/weapon/storage/pill_bottle/antitox/New()
- ..()
- new /obj/item/weapon/reagent_containers/pill/antitox( src )
- new /obj/item/weapon/reagent_containers/pill/antitox( src )
- new /obj/item/weapon/reagent_containers/pill/antitox( src )
- new /obj/item/weapon/reagent_containers/pill/antitox( src )
- new /obj/item/weapon/reagent_containers/pill/antitox( src )
- new /obj/item/weapon/reagent_containers/pill/antitox( src )
- new /obj/item/weapon/reagent_containers/pill/antitox( src )
+ New()
+ ..()
+ new /obj/item/weapon/reagent_containers/pill/antitox( src )
+ new /obj/item/weapon/reagent_containers/pill/antitox( src )
+ new /obj/item/weapon/reagent_containers/pill/antitox( src )
+ new /obj/item/weapon/reagent_containers/pill/antitox( src )
+ new /obj/item/weapon/reagent_containers/pill/antitox( src )
+ new /obj/item/weapon/reagent_containers/pill/antitox( src )
+ new /obj/item/weapon/reagent_containers/pill/antitox( src )
/obj/item/weapon/storage/pill_bottle/inaprovaline
name = "Pill bottle (inaprovaline)"
desc = "Contains pills used to stabilize patients."
-/obj/item/weapon/storage/pill_bottle/inaprovaline/New()
- ..()
- new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
- new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
- new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
- new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
- new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
- new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
- new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
+ New()
+ ..()
+ new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
+ new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
+ new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
+ new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
+ new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
+ new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
+ new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
diff --git a/code/game/objects/items/weapons/storage/kit.dm b/code/game/objects/items/weapons/storage/kit.dm
index 67a515cd027..34dfe45823f 100644
--- a/code/game/objects/items/weapons/storage/kit.dm
+++ b/code/game/objects/items/weapons/storage/kit.dm
@@ -1,197 +1,346 @@
-/obj/item/weapon/storage/lglo_kit/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/lglo_kit
+ name = "Latex Gloves"
+ desc = "Contains white gloves."
+ icon_state = "latex"
+ item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
-/obj/item/weapon/storage/blankbox/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/flashbang_kit/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/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/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/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/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/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/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/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/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/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/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/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/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/disk_kit/disks/New()
-
- new /obj/item/weapon/card/data(src)
- new /obj/item/weapon/card/data(src)
- new /obj/item/weapon/card/data(src)
- new /obj/item/weapon/card/data(src)
- new /obj/item/weapon/card/data(src)
- new /obj/item/weapon/card/data(src)
- new /obj/item/weapon/card/data(src)
- ..()
- return
-
-/obj/item/weapon/storage/disk_kit/disks2/New()
-
- spawn( 2 )
- for(var/obj/item/weapon/card/data/D in src.loc)
- D.loc = src
- //Foreach goto(23)
+ 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
- ..()
- return
-*/
\ No newline at end of file
+
+/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/mining_satchel.dm b/code/game/objects/items/weapons/storage/mining_satchel.dm
new file mode 100644
index 00000000000..8f26f3fe00d
--- /dev/null
+++ b/code/game/objects/items/weapons/storage/mining_satchel.dm
@@ -0,0 +1,18 @@
+/obj/item/weapon/storage/satchel
+ 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
+ use_to_pickup = 1
+ max_w_class = 3
+ display_contents_with_number = 1
+ allow_quick_empty = 1
+ allow_quick_gather = 1
+
+ can_hold = list(
+ "/obj/item/weapon/ore"
+ )
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/storage/misc.dm b/code/game/objects/items/weapons/storage/misc.dm
index e0256aa0f8f..2a29e26ef21 100644
--- a/code/game/objects/items/weapons/storage/misc.dm
+++ b/code/game/objects/items/weapons/storage/misc.dm
@@ -4,9 +4,9 @@
* Candle Packs
* Snap Pop Box
* Crayon Box
- * Beaker Box
*/
+
/*
* Monkey Cube Box
*/
@@ -103,22 +103,3 @@
usr << "This crayon is too powerful to be contained in this box."
return
..()
-
-/*
- * Beaker Box
- */
-/obj/item/weapon/storage/beakerbox
- name = "Beaker Box"
- icon_state = "beaker"
- item_state = "syringe_kit"
- foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
-
-/obj/item/weapon/storage/beakerbox/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 )
\ 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 4b28e6ab598..0ba5e9660bc 100644
--- a/code/game/objects/items/weapons/storage/storage.dm
+++ b/code/game/objects/items/weapons/storage/storage.dm
@@ -16,6 +16,32 @@
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)
+ if (ishuman(usr) || ismonkey(usr)) //so monkeys can take off their backpacks -- Urist
+ var/mob/M = usr
+ if (!( istype(over_object, /obj/screen) ))
+ return ..()
+ if (!(src.loc == usr) || (src.loc && src.loc.loc == usr))
+ return
+ playsound(src.loc, "rustle", 50, 1, -5)
+ if (!( M.restrained() ) && !( M.stat ))
+ switch(over_object.name)
+ if("r_hand")
+ M.u_equip(src)
+ M.put_in_r_hand(src)
+ if("l_hand")
+ M.u_equip(src)
+ M.put_in_l_hand(src)
+ src.add_fingerprint(usr)
+ return
+ if(over_object == usr && in_range(src, usr) || usr.contents.Find(src))
+ if (usr.s_active)
+ usr.s_active.close(usr)
+ src.show_to(usr)
+ return
+ return
+
+
/obj/item/weapon/storage/proc/return_inv()
var/list/L = list( )
@@ -410,143 +436,6 @@
del(src)
//BubbleWrap END
-/obj/item/weapon/storage/box/
- foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
-
-/obj/item/weapon/storage/box/survival/New()
- ..()
- contents = list()
- sleep(1)
- new /obj/item/clothing/mask/breath( src )
- new /obj/item/weapon/tank/emergency_oxygen( src )
- return
-
-/obj/item/weapon/storage/box/engineer/New()
- ..()
- contents = list()
- sleep(1)
- new /obj/item/clothing/mask/breath( src )
- new /obj/item/weapon/tank/emergency_oxygen/engi( src )
- return
-
-/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/dice/New()
- new /obj/item/weapon/dice( src )
- new /obj/item/weapon/dice/d20( src )
- ..()
- return
-
-/obj/item/weapon/storage/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 )
- ..()
- return
-
-/obj/item/weapon/storage/pill_bottle/MouseDrop(obj/over_object as obj) //Quick pillbottle fix. -Agouri
-
- if (ishuman(usr) || ismonkey(usr)) //Can monkeys even place items in the pocket slots? Leaving this in just in case~
- var/mob/M = usr
- if (!( istype(over_object, /obj/screen) ))
- return ..()
- if ((!( M.restrained() ) && !( M.stat ) /*&& M.pocket == src*/))
- switch(over_object.name)
- if("r_hand")
- M.u_equip(src)
- M.put_in_r_hand(src)
- if("l_hand")
- M.u_equip(src)
- M.put_in_l_hand(src)
- src.add_fingerprint(usr)
- return
- if(over_object == usr && in_range(src, usr) || usr.contents.Find(src))
- if (usr.s_active)
- usr.s_active.close(usr)
- src.show_to(usr)
- return
- return ///////////////////////////////////////////////////////Alright, that should do it. *MARKER* for any possible runtimes
-/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/pillbottlebox/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
-
-////////////////////////////////////////////////////////////////////////////////
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm
index 6db3b4dc691..4223ab88180 100644
--- a/code/game/objects/items/weapons/storage/toolbox.dm
+++ b/code/game/objects/items/weapons/storage/toolbox.dm
@@ -1,49 +1,86 @@
-/obj/item/weapon/storage/toolbox/New()
- ..()
- if (src.type == /obj/item/weapon/storage/toolbox)
- world << "BAD: [src] ([src.type]) spawned at [src.x] [src.y] [src.z]"
- del(src)
+/obj/item/weapon/storage/toolbox
+ name = "toolbox"
+ desc = "Danger. Very robust."
+ icon = 'icons/obj/storage.dmi'
+ icon_state = "red"
+ item_state = "toolbox_red"
+ flags = FPRINT | TABLEPASS| CONDUCT
+ force = 5.0
+ throwforce = 10.0
+ throw_speed = 1
+ throw_range = 7
+ w_class = 4.0
+ origin_tech = "combat=1"
+ attack_verb = list("robusted")
-/obj/item/weapon/storage/toolbox/emergency/New()
- ..()
- new /obj/item/weapon/crowbar/red(src)
- new /obj/item/weapon/extinguisher/mini(src)
- if(prob(50))
- new /obj/item/device/flashlight(src)
- else
- new /obj/item/device/flashlight/flare(src)
- new /obj/item/device/radio(src)
+ New()
+ ..()
+ if (src.type == /obj/item/weapon/storage/toolbox)
+ world << "BAD: [src] ([src.type]) spawned at [src.x] [src.y] [src.z]"
+ del(src)
-/obj/item/weapon/storage/toolbox/mechanical/New()
- ..()
- new /obj/item/weapon/screwdriver(src)
- new /obj/item/weapon/wrench(src)
- new /obj/item/weapon/weldingtool(src)
- new /obj/item/weapon/crowbar(src)
- new /obj/item/device/analyzer(src)
- new /obj/item/weapon/wirecutters(src)
+/obj/item/weapon/storage/toolbox/emergency
+ name = "emergency toolbox"
+ icon_state = "red"
+ item_state = "toolbox_red"
-/obj/item/weapon/storage/toolbox/electrical/New()
- ..()
- var/color = pick("red","yellow","green","blue","pink","orange","cyan","white")
- new /obj/item/weapon/screwdriver(src)
- new /obj/item/weapon/wirecutters(src)
- new /obj/item/device/t_scanner(src)
- new /obj/item/weapon/crowbar(src)
- new /obj/item/weapon/cable_coil(src,30,color)
- new /obj/item/weapon/cable_coil(src,30,color)
- if(prob(5))
- new /obj/item/clothing/gloves/yellow(src)
- else
+ New()
+ ..()
+ new /obj/item/weapon/crowbar/red(src)
+ new /obj/item/weapon/extinguisher/mini(src)
+ if(prob(50))
+ new /obj/item/device/flashlight(src)
+ else
+ new /obj/item/device/flashlight/flare(src)
+ new /obj/item/device/radio(src)
+
+/obj/item/weapon/storage/toolbox/mechanical
+ name = "mechanical toolbox"
+ icon_state = "blue"
+ item_state = "toolbox_blue"
+
+ New()
+ ..()
+ new /obj/item/weapon/screwdriver(src)
+ new /obj/item/weapon/wrench(src)
+ new /obj/item/weapon/weldingtool(src)
+ new /obj/item/weapon/crowbar(src)
+ new /obj/item/device/analyzer(src)
+ new /obj/item/weapon/wirecutters(src)
+
+/obj/item/weapon/storage/toolbox/electrical
+ name = "electrical toolbox"
+ icon_state = "yellow"
+ item_state = "toolbox_yellow"
+
+ New()
+ ..()
+ var/color = pick("red","yellow","green","blue","pink","orange","cyan","white")
+ new /obj/item/weapon/screwdriver(src)
+ new /obj/item/weapon/wirecutters(src)
+ new /obj/item/device/t_scanner(src)
+ new /obj/item/weapon/crowbar(src)
new /obj/item/weapon/cable_coil(src,30,color)
+ new /obj/item/weapon/cable_coil(src,30,color)
+ if(prob(5))
+ new /obj/item/clothing/gloves/yellow(src)
+ else
+ new /obj/item/weapon/cable_coil(src,30,color)
-/obj/item/weapon/storage/toolbox/syndicate/New()
- ..()
- var/color = pick("red","yellow","green","blue","pink","orange","cyan","white")
- new /obj/item/weapon/screwdriver(src)
- new /obj/item/weapon/wrench(src)
- new /obj/item/weapon/weldingtool(src)
- new /obj/item/weapon/crowbar(src)
- new /obj/item/weapon/cable_coil(src,30,color)
- new /obj/item/weapon/wirecutters(src)
- new /obj/item/device/multitool(src)
\ No newline at end of file
+/obj/item/weapon/storage/toolbox/syndicate
+ name = "suspicious looking toolbox"
+ icon_state = "syndicate"
+ item_state = "toolbox_syndi"
+ origin_tech = "combat=1;syndicate=1"
+ force = 7.0
+
+ New()
+ ..()
+ var/color = pick("red","yellow","green","blue","pink","orange","cyan","white")
+ new /obj/item/weapon/screwdriver(src)
+ new /obj/item/weapon/wrench(src)
+ new /obj/item/weapon/weldingtool(src)
+ new /obj/item/weapon/crowbar(src)
+ new /obj/item/weapon/cable_coil(src,30,color)
+ new /obj/item/weapon/wirecutters(src)
+ new /obj/item/device/multitool(src)
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/storage/wallets.dm b/code/game/objects/items/weapons/storage/wallets.dm
new file mode 100644
index 00000000000..7a65764b1b3
--- /dev/null
+++ b/code/game/objects/items/weapons/storage/wallets.dm
@@ -0,0 +1,72 @@
+/obj/item/weapon/storage/wallet
+ name = "wallet"
+ desc = "It can hold a few small and personal things."
+ storage_slots = 4
+ icon_state = "wallet"
+ w_class = 2
+ can_hold = list(
+ "/obj/item/weapon/spacecash",
+ "/obj/item/weapon/card",
+ "/obj/item/clothing/mask/cigarette",
+ "/obj/item/device/flashlight/pen",
+ "/obj/item/seeds",
+ "/obj/item/stack/medical",
+ "/obj/item/toy/crayon",
+ "/obj/item/weapon/coin",
+ "/obj/item/weapon/dice",
+ "/obj/item/weapon/disk",
+ "/obj/item/weapon/implanter",
+ "/obj/item/weapon/lighter",
+ "/obj/item/weapon/match",
+ "/obj/item/weapon/paper",
+ "/obj/item/weapon/pen",
+ "/obj/item/weapon/photo",
+ "/obj/item/weapon/reagent_containers/dropper",
+ "/obj/item/weapon/screwdriver",
+ "/obj/item/weapon/stamp")
+
+ attackby(obj/item/A as obj, mob/user as mob)
+ ..()
+ update_icon()
+ return
+
+ update_icon()
+ for(var/obj/item/weapon/card/id/ID in contents)
+ switch(ID.icon_state)
+ if("id")
+ icon_state = "walletid"
+ return
+ if("silver")
+ icon_state = "walletid_silver"
+ return
+ if("gold")
+ icon_state = "walletid_gold"
+ return
+ if("centcom")
+ icon_state = "walletid_centcom"
+ return
+ icon_state = "wallet"
+
+
+
+ proc/get_id()
+ for(var/obj/item/weapon/card/id/ID in contents)
+ if(istype(ID))
+ return ID
+
+/obj/item/weapon/storage/wallet/random
+ New()
+ ..()
+ var/item1_type = pick( /obj/item/weapon/spacecash/c10,/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c1000,/obj/item/weapon/spacecash/c20,/obj/item/weapon/spacecash/c200,/obj/item/weapon/spacecash/c50, /obj/item/weapon/spacecash/c500)
+ var/item2_type
+ if(prob(50))
+ item2_type = pick( /obj/item/weapon/spacecash/c10,/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c1000,/obj/item/weapon/spacecash/c20,/obj/item/weapon/spacecash/c200,/obj/item/weapon/spacecash/c50, /obj/item/weapon/spacecash/c500)
+ var/item3_type = pick( /obj/item/weapon/coin/silver, /obj/item/weapon/coin/silver, /obj/item/weapon/coin/gold, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron )
+
+ spawn(2)
+ if(item1_type)
+ new item1_type(src)
+ if(item2_type)
+ new item2_type(src)
+ if(item3_type)
+ new item3_type(src)
\ No newline at end of file
diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm
index b24147eee27..349ca4cc138 100644
--- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm
+++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm
@@ -51,3 +51,88 @@
var/obj/item/device/radio/uplink/U = new(src)
U.hidden_uplink.uses = 40
return
+
+/obj/structure/closet/syndicate/resources/
+ desc = "An old, dusty locker."
+
+ New()
+ ..()
+ var/common_min = 30 //Minimum amount of minerals in the stack for common minerals
+ var/common_max = 50 //Maximum amount of HONK in the stack for HONK common minerals
+ var/rare_min = 5 //Minimum HONK of HONK in the stack HONK HONK rare minerals
+ var/rare_max = 20 //Maximum HONK HONK HONK in the HONK for HONK rare HONK
+
+
+ sleep(2)
+
+ var/pickednum = rand(1, 50)
+
+ //Sad trombone
+ if(pickednum == 1)
+ var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src)
+ P.name = "IOU"
+ P.info = "Sorry man, we needed the money so we sold your stash. It's ok, we'll double our money for sure this time!"
+
+ //Metal (common ore)
+ if(pickednum >= 2)
+ new /obj/item/stack/sheet/metal(src, rand(common_min, common_max))
+
+ //Glass (common ore)
+ if(pickednum >= 5)
+ new /obj/item/stack/sheet/glass(src, rand(common_min, common_max))
+
+ //Plasteel (common ore) Because it has a million more uses then plasma
+ if(pickednum >= 10)
+ new /obj/item/stack/sheet/plasteel(src, rand(common_min, common_max))
+
+ //Plasma (rare ore)
+ if(pickednum >= 15)
+ new /obj/item/stack/sheet/mineral/plasma(src, rand(rare_min, rare_max))
+
+ //Silver (rare ore)
+ if(pickednum >= 20)
+ new /obj/item/stack/sheet/mineral/silver(src, rand(rare_min, rare_max))
+
+ //Gold (rare ore)
+ if(pickednum >= 30)
+ new /obj/item/stack/sheet/mineral/gold(src, rand(rare_min, rare_max))
+
+ //Uranium (rare ore)
+ if(pickednum >= 40)
+ new /obj/item/stack/sheet/mineral/uranium(src, rand(rare_min, rare_max))
+
+ //Diamond (rare HONK)
+ if(pickednum >= 45)
+ new /obj/item/stack/sheet/mineral/diamond(src, rand(rare_min, rare_max))
+
+ //Jetpack (You hit the jackpot!)
+ if(pickednum == 50)
+ new /obj/item/weapon/tank/jetpack/carbondioxide(src)
+
+ return
+
+/obj/structure/closet/syndicate/resources/everything
+ desc = "It's an emergency storage closet for repairs."
+
+ New()
+ var/list/resources = list(
+ /obj/item/stack/sheet/metal,
+ /obj/item/stack/sheet/glass,
+ /obj/item/stack/sheet/mineral/gold,
+ /obj/item/stack/sheet/mineral/silver,
+ /obj/item/stack/sheet/mineral/plasma,
+ /obj/item/stack/sheet/mineral/uranium,
+ /obj/item/stack/sheet/mineral/diamond,
+ /obj/item/stack/sheet/mineral/clown,
+ /obj/item/stack/sheet/plasteel,
+ /obj/item/stack/rods
+ )
+
+ sleep(2)
+
+ for(var/i = 0, i<2, i++)
+ for(var/res in resources)
+ var/obj/item/stack/R = new res(src)
+ R.amount = R.max_amount
+
+ return
\ No newline at end of file
diff --git a/tgstation.dme b/tgstation.dme
index 94e95f41738..88d138f69f7 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -6,6 +6,226 @@
// BEGIN_FILE_DIR
#define FILE_DIR .
+#define FILE_DIR "code"
+#define FILE_DIR "code/__HELPERS"
+#define FILE_DIR "code/ATMOSPHERICS"
+#define FILE_DIR "code/ATMOSPHERICS/components"
+#define FILE_DIR "code/ATMOSPHERICS/components/binary_devices"
+#define FILE_DIR "code/ATMOSPHERICS/components/trinary_devices"
+#define FILE_DIR "code/ATMOSPHERICS/components/unary"
+#define FILE_DIR "code/controllers"
+#define FILE_DIR "code/datums"
+#define FILE_DIR "code/datums/diseases"
+#define FILE_DIR "code/datums/diseases/advance"
+#define FILE_DIR "code/datums/diseases/advance/symptoms"
+#define FILE_DIR "code/datums/helper_datums"
+#define FILE_DIR "code/datums/organs"
+#define FILE_DIR "code/datums/spells"
+#define FILE_DIR "code/defines"
+#define FILE_DIR "code/defines/obj"
+#define FILE_DIR "code/defines/procs"
+#define FILE_DIR "code/FEA"
+#define FILE_DIR "code/game"
+#define FILE_DIR "code/game/area"
+#define FILE_DIR "code/game/gamemodes"
+#define FILE_DIR "code/game/gamemodes/blob"
+#define FILE_DIR "code/game/gamemodes/blob/blobs"
+#define FILE_DIR "code/game/gamemodes/changeling"
+#define FILE_DIR "code/game/gamemodes/cult"
+#define FILE_DIR "code/game/gamemodes/events"
+#define FILE_DIR "code/game/gamemodes/events/holidays"
+#define FILE_DIR "code/game/gamemodes/extended"
+#define FILE_DIR "code/game/gamemodes/malfunction"
+#define FILE_DIR "code/game/gamemodes/meteor"
+#define FILE_DIR "code/game/gamemodes/nuclear"
+#define FILE_DIR "code/game/gamemodes/revolution"
+#define FILE_DIR "code/game/gamemodes/sandbox"
+#define FILE_DIR "code/game/gamemodes/traitor"
+#define FILE_DIR "code/game/gamemodes/wizard"
+#define FILE_DIR "code/game/jobs"
+#define FILE_DIR "code/game/jobs/job"
+#define FILE_DIR "code/game/machinery"
+#define FILE_DIR "code/game/machinery/atmoalter"
+#define FILE_DIR "code/game/machinery/bots"
+#define FILE_DIR "code/game/machinery/camera"
+#define FILE_DIR "code/game/machinery/computer"
+#define FILE_DIR "code/game/machinery/doors"
+#define FILE_DIR "code/game/machinery/embedded_controller"
+#define FILE_DIR "code/game/machinery/kitchen"
+#define FILE_DIR "code/game/machinery/pipe"
+#define FILE_DIR "code/game/machinery/telecomms"
+#define FILE_DIR "code/game/mecha"
+#define FILE_DIR "code/game/mecha/combat"
+#define FILE_DIR "code/game/mecha/equipment"
+#define FILE_DIR "code/game/mecha/equipment/tools"
+#define FILE_DIR "code/game/mecha/equipment/weapons"
+#define FILE_DIR "code/game/mecha/medical"
+#define FILE_DIR "code/game/mecha/working"
+#define FILE_DIR "code/game/objects"
+#define FILE_DIR "code/game/objects/effects"
+#define FILE_DIR "code/game/objects/effects/decals"
+#define FILE_DIR "code/game/objects/effects/decals/Cleanable"
+#define FILE_DIR "code/game/objects/effects/spawners"
+#define FILE_DIR "code/game/objects/items"
+#define FILE_DIR "code/game/objects/items/devices"
+#define FILE_DIR "code/game/objects/items/devices/PDA"
+#define FILE_DIR "code/game/objects/items/devices/radio"
+#define FILE_DIR "code/game/objects/items/robot"
+#define FILE_DIR "code/game/objects/items/stacks"
+#define FILE_DIR "code/game/objects/items/stacks/sheets"
+#define FILE_DIR "code/game/objects/items/stacks/tiles"
+#define FILE_DIR "code/game/objects/items/weapons"
+#define FILE_DIR "code/game/objects/items/weapons/grenades"
+#define FILE_DIR "code/game/objects/items/weapons/implants"
+#define FILE_DIR "code/game/objects/items/weapons/secstorage"
+#define FILE_DIR "code/game/objects/items/weapons/storage"
+#define FILE_DIR "code/game/objects/items/weapons/tanks"
+#define FILE_DIR "code/game/objects/structures"
+#define FILE_DIR "code/game/objects/structures/crates_lockers"
+#define FILE_DIR "code/game/objects/structures/crates_lockers/closets"
+#define FILE_DIR "code/game/objects/structures/crates_lockers/closets/secure"
+#define FILE_DIR "code/game/objects/structures/stool_bed_chair_nest"
+#define FILE_DIR "code/game/turfs"
+#define FILE_DIR "code/game/turfs/simulated"
+#define FILE_DIR "code/game/turfs/space"
+#define FILE_DIR "code/game/turfs/unsimulated"
+#define FILE_DIR "code/game/verbs"
+#define FILE_DIR "code/js"
+#define FILE_DIR "code/modules"
+#define FILE_DIR "code/modules/admin"
+#define FILE_DIR "code/modules/admin/DB ban"
+#define FILE_DIR "code/modules/admin/permissionverbs"
+#define FILE_DIR "code/modules/admin/verbs"
+#define FILE_DIR "code/modules/assembly"
+#define FILE_DIR "code/modules/awaymissions"
+#define FILE_DIR "code/modules/awaymissions/maploader"
+#define FILE_DIR "code/modules/client"
+#define FILE_DIR "code/modules/clothing"
+#define FILE_DIR "code/modules/clothing/glasses"
+#define FILE_DIR "code/modules/clothing/gloves"
+#define FILE_DIR "code/modules/clothing/head"
+#define FILE_DIR "code/modules/clothing/masks"
+#define FILE_DIR "code/modules/clothing/shoes"
+#define FILE_DIR "code/modules/clothing/spacesuits"
+#define FILE_DIR "code/modules/clothing/suits"
+#define FILE_DIR "code/modules/clothing/under"
+#define FILE_DIR "code/modules/clothing/under/jobs"
+#define FILE_DIR "code/modules/detectivework"
+#define FILE_DIR "code/modules/flufftext"
+#define FILE_DIR "code/modules/food"
+#define FILE_DIR "code/modules/library"
+#define FILE_DIR "code/modules/liquid"
+#define FILE_DIR "code/modules/mining"
+#define FILE_DIR "code/modules/mob"
+#define FILE_DIR "code/modules/mob/dead"
+#define FILE_DIR "code/modules/mob/dead/observer"
+#define FILE_DIR "code/modules/mob/living"
+#define FILE_DIR "code/modules/mob/living/blob"
+#define FILE_DIR "code/modules/mob/living/carbon"
+#define FILE_DIR "code/modules/mob/living/carbon/alien"
+#define FILE_DIR "code/modules/mob/living/carbon/alien/humanoid"
+#define FILE_DIR "code/modules/mob/living/carbon/alien/humanoid/caste"
+#define FILE_DIR "code/modules/mob/living/carbon/alien/larva"
+#define FILE_DIR "code/modules/mob/living/carbon/alien/special"
+#define FILE_DIR "code/modules/mob/living/carbon/brain"
+#define FILE_DIR "code/modules/mob/living/carbon/human"
+#define FILE_DIR "code/modules/mob/living/carbon/metroid"
+#define FILE_DIR "code/modules/mob/living/carbon/monkey"
+#define FILE_DIR "code/modules/mob/living/silicon"
+#define FILE_DIR "code/modules/mob/living/silicon/ai"
+#define FILE_DIR "code/modules/mob/living/silicon/ai/freelook"
+#define FILE_DIR "code/modules/mob/living/silicon/decoy"
+#define FILE_DIR "code/modules/mob/living/silicon/pai"
+#define FILE_DIR "code/modules/mob/living/silicon/robot"
+#define FILE_DIR "code/modules/mob/living/simple_animal"
+#define FILE_DIR "code/modules/mob/living/simple_animal/friendly"
+#define FILE_DIR "code/modules/mob/living/simple_animal/hostile"
+#define FILE_DIR "code/modules/mob/new_player"
+#define FILE_DIR "code/modules/paperwork"
+#define FILE_DIR "code/modules/power"
+#define FILE_DIR "code/modules/power/antimatter"
+#define FILE_DIR "code/modules/power/singularity"
+#define FILE_DIR "code/modules/power/singularity/particle_accelerator"
+#define FILE_DIR "code/modules/projectiles"
+#define FILE_DIR "code/modules/projectiles/ammunition"
+#define FILE_DIR "code/modules/projectiles/guns"
+#define FILE_DIR "code/modules/projectiles/guns/energy"
+#define FILE_DIR "code/modules/projectiles/guns/projectile"
+#define FILE_DIR "code/modules/projectiles/projectile"
+#define FILE_DIR "code/modules/reagents"
+#define FILE_DIR "code/modules/reagents/reagent_containers"
+#define FILE_DIR "code/modules/reagents/reagent_containers/food"
+#define FILE_DIR "code/modules/reagents/reagent_containers/food/drinks"
+#define FILE_DIR "code/modules/reagents/reagent_containers/food/drinks/bottle"
+#define FILE_DIR "code/modules/reagents/reagent_containers/food/snacks"
+#define FILE_DIR "code/modules/reagents/reagent_containers/glass"
+#define FILE_DIR "code/modules/reagents/reagent_containers/glass/bottle"
+#define FILE_DIR "code/modules/recycling"
+#define FILE_DIR "code/modules/research"
+#define FILE_DIR "code/modules/scripting"
+#define FILE_DIR "code/modules/scripting/AST"
+#define FILE_DIR "code/modules/scripting/AST/Operators"
+#define FILE_DIR "code/modules/scripting/Implementations"
+#define FILE_DIR "code/modules/scripting/Interpreter"
+#define FILE_DIR "code/modules/scripting/Parser"
+#define FILE_DIR "code/modules/scripting/Scanner"
+#define FILE_DIR "code/modules/security levels"
+#define FILE_DIR "code/unused"
+#define FILE_DIR "code/unused/beast"
+#define FILE_DIR "code/unused/computer2"
+#define FILE_DIR "code/unused/disease2"
+#define FILE_DIR "code/unused/gamemodes"
+#define FILE_DIR "code/unused/hivebot"
+#define FILE_DIR "code/unused/mining"
+#define FILE_DIR "code/unused/optics"
+#define FILE_DIR "code/unused/pda2"
+#define FILE_DIR "code/unused/powerarmor"
+#define FILE_DIR "code/unused/spacecraft"
+#define FILE_DIR "code/unused/vehicles"
+#define FILE_DIR "code/unused/vehicles/airtight"
+#define FILE_DIR "code/WorkInProgress"
+#define FILE_DIR "code/WorkInProgress/carn"
+#define FILE_DIR "code/WorkInProgress/mapload"
+#define FILE_DIR "code/WorkInProgress/organs"
+#define FILE_DIR "code/WorkInProgress/virus2"
+#define FILE_DIR "html"
+#define FILE_DIR "icons"
+#define FILE_DIR "icons/effects"
+#define FILE_DIR "icons/mecha"
+#define FILE_DIR "icons/misc"
+#define FILE_DIR "icons/mob"
+#define FILE_DIR "icons/obj"
+#define FILE_DIR "icons/obj/assemblies"
+#define FILE_DIR "icons/obj/atmospherics"
+#define FILE_DIR "icons/obj/clothing"
+#define FILE_DIR "icons/obj/doors"
+#define FILE_DIR "icons/obj/flora"
+#define FILE_DIR "icons/obj/machines"
+#define FILE_DIR "icons/obj/pipes"
+#define FILE_DIR "icons/pda_icons"
+#define FILE_DIR "icons/spideros_icons"
+#define FILE_DIR "icons/Testing"
+#define FILE_DIR "icons/turf"
+#define FILE_DIR "icons/vending_icons"
+#define FILE_DIR "interface"
+#define FILE_DIR "maps"
+#define FILE_DIR "maps/backup"
+#define FILE_DIR "maps/RandomZLevels"
+#define FILE_DIR "sound"
+#define FILE_DIR "sound/AI"
+#define FILE_DIR "sound/ambience"
+#define FILE_DIR "sound/effects"
+#define FILE_DIR "sound/hallucinations"
+#define FILE_DIR "sound/items"
+#define FILE_DIR "sound/machines"
+#define FILE_DIR "sound/mecha"
+#define FILE_DIR "sound/misc"
+#define FILE_DIR "sound/piano"
+#define FILE_DIR "sound/violin"
+#define FILE_DIR "sound/voice"
+#define FILE_DIR "sound/weapons"
+#define FILE_DIR "tools"
+#define FILE_DIR "tools/Redirector"
// END_FILE_DIR
// BEGIN_PREFERENCES
@@ -140,7 +360,6 @@
#include "code\defines\obj.dm"
#include "code\defines\obj\hydro.dm"
#include "code\defines\obj\machinery.dm"
-#include "code\defines\obj\storage.dm"
#include "code\defines\obj\toy.dm"
#include "code\defines\obj\vending.dm"
#include "code\defines\obj\weapon.dm"
@@ -513,15 +732,18 @@
#include "code\game\objects\items\weapons\storage\backpack.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\storage.dm"
#include "code\game\objects\items\weapons\storage\toolbox.dm"
#include "code\game\objects\items\weapons\storage\uplink_kits.dm"
+#include "code\game\objects\items\weapons\storage\wallets.dm"
#include "code\game\objects\items\weapons\tanks\jetpack.dm"
#include "code\game\objects\items\weapons\tanks\tank_types.dm"
#include "code\game\objects\items\weapons\tanks\tanks.dm"