diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm
index 88db6abd3e..5eb3c18252 100644
--- a/code/game/objects/items/weapons/storage/bags.dm
+++ b/code/game/objects/items/weapons/storage/bags.dm
@@ -36,7 +36,7 @@
max_w_class = 2
storage_slots = 21
can_hold = list() // any
- cant_hold = list("/obj/item/weapon/disk/nuclear")
+ cant_hold = list(/obj/item/weapon/disk/nuclear)
/obj/item/weapon/storage/bag/trash/update_icon()
if(contents.len == 0)
@@ -63,7 +63,7 @@
max_w_class = 2
storage_slots = 21
can_hold = list() // any
- cant_hold = list("/obj/item/weapon/disk/nuclear")
+ cant_hold = list(/obj/item/weapon/disk/nuclear)
// -----------------------------
// Mining Satchel
@@ -79,7 +79,7 @@
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")
+ can_hold = list(/obj/item/weapon/ore)
// -----------------------------
@@ -94,7 +94,7 @@
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 = 2
- can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/grown","/obj/item/seeds","/obj/item/weapon/grown")
+ can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/grown,/obj/item/seeds,/obj/item/weapon/grown)
// -----------------------------
@@ -252,4 +252,4 @@
max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * cash.w_class
max_w_class = 3
w_class = 2
- can_hold = list("/obj/item/weapon/coin","/obj/item/weapon/spacecash")
+ can_hold = list(/obj/item/weapon/coin,/obj/item/weapon/spacecash)
diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm
index e190ac1e02..29ba6b101c 100644
--- a/code/game/objects/items/weapons/storage/belt.dm
+++ b/code/game/objects/items/weapons/storage/belt.dm
@@ -13,19 +13,19 @@
icon_state = "utilitybelt"
item_state = "utility"
can_hold = list(
- //"/obj/item/weapon/combitool",
- "/obj/item/weapon/crowbar",
- "/obj/item/weapon/screwdriver",
- "/obj/item/weapon/weldingtool",
- "/obj/item/weapon/wirecutters",
- "/obj/item/weapon/wrench",
- "/obj/item/device/multitool",
- "/obj/item/device/flashlight",
- "/obj/item/stack/cable_coil",
- "/obj/item/device/t_scanner",
- "/obj/item/device/analyzer",
- "/obj/item/taperoll/engineering",
- "/obj/item/device/robotanalyzer")
+ ///obj/item/weapon/combitool,
+ /obj/item/weapon/crowbar,
+ /obj/item/weapon/screwdriver,
+ /obj/item/weapon/weldingtool,
+ /obj/item/weapon/wirecutters,
+ /obj/item/weapon/wrench,
+ /obj/item/device/multitool,
+ /obj/item/device/flashlight,
+ /obj/item/stack/cable_coil,
+ /obj/item/device/t_scanner,
+ /obj/item/device/analyzer,
+ /obj/item/taperoll/engineering,
+ /obj/item/device/robotanalyzer)
/obj/item/weapon/storage/belt/utility/full/New()
@@ -55,22 +55,21 @@
icon_state = "medicalbelt"
item_state = "medical"
can_hold = list(
- "/obj/item/device/healthanalyzer",
- "/obj/item/weapon/dnainjector",
- "/obj/item/weapon/reagent_containers/dropper",
- "/obj/item/weapon/reagent_containers/glass/beaker",
- "/obj/item/weapon/reagent_containers/glass/bottle",
- "/obj/item/weapon/reagent_containers/pill",
- "/obj/item/weapon/reagent_containers/syringe",
- "/obj/item/weapon/reagent_containers/glass/dispenser",
- "/obj/item/weapon/flame/lighter/zippo",
- "/obj/item/weapon/storage/fancy/cigarettes",
- "/obj/item/weapon/storage/pill_bottle",
- "/obj/item/stack/medical",
- "/obj/item/device/flashlight/pen",
- "/obj/item/clothing/mask/surgical",
- "/obj/item/clothing/gloves/latex",
- "/obj/item/weapon/reagent_containers/hypospray"
+ /obj/item/device/healthanalyzer,
+ /obj/item/weapon/dnainjector,
+ /obj/item/weapon/reagent_containers/dropper,
+ /obj/item/weapon/reagent_containers/glass/beaker,
+ /obj/item/weapon/reagent_containers/glass/bottle,
+ /obj/item/weapon/reagent_containers/pill,
+ /obj/item/weapon/reagent_containers/syringe,
+ /obj/item/weapon/flame/lighter/zippo,
+ /obj/item/weapon/storage/fancy/cigarettes,
+ /obj/item/weapon/storage/pill_bottle,
+ /obj/item/stack/medical,
+ /obj/item/device/flashlight/pen,
+ /obj/item/clothing/mask/surgical,
+ /obj/item/clothing/gloves/latex,
+ /obj/item/weapon/reagent_containers/hypospray
)
/obj/item/weapon/storage/belt/medical/emt
@@ -90,25 +89,24 @@
max_w_class = 3
max_combined_w_class = 21
can_hold = list(
- "/obj/item/weapon/grenade",
- "/obj/item/weapon/reagent_containers/spray/pepper",
- "/obj/item/weapon/handcuffs",
- "/obj/item/device/flash",
- "/obj/item/clothing/glasses",
- "/obj/item/ammo_casing/shotgun",
- "/obj/item/ammo_magazine",
- "/obj/item/weapon/reagent_containers/food/snacks/donut/normal",
- "/obj/item/weapon/reagent_containers/food/snacks/donut/jelly",
- "/obj/item/weapon/melee/baton",
- "/obj/item/weapon/gun/energy/taser",
- "/obj/item/weapon/flame/lighter/zippo",
- "/obj/item/weapon/cigpacket",
- "/obj/item/clothing/glasses/hud/security",
- "/obj/item/device/flashlight",
- "/obj/item/device/pda",
- "/obj/item/device/radio/headset",
- "/obj/item/weapon/melee",
- "/obj/item/taperoll/police"
+ /obj/item/weapon/grenade,
+ /obj/item/weapon/reagent_containers/spray/pepper,
+ /obj/item/weapon/handcuffs,
+ /obj/item/device/flash,
+ /obj/item/clothing/glasses,
+ /obj/item/ammo_casing/shotgun,
+ /obj/item/ammo_magazine,
+ /obj/item/weapon/reagent_containers/food/snacks/donut/normal,
+ /obj/item/weapon/reagent_containers/food/snacks/donut/jelly,
+ /obj/item/weapon/melee/baton,
+ /obj/item/weapon/gun/energy/taser,
+ /obj/item/weapon/flame/lighter/zippo,
+ /obj/item/clothing/glasses/hud/security,
+ /obj/item/device/flashlight,
+ /obj/item/device/pda,
+ /obj/item/device/radio/headset,
+ /obj/item/weapon/melee,
+ /obj/item/taperoll/police
)
/obj/item/weapon/storage/belt/soulstone
@@ -118,7 +116,7 @@
item_state = "soulstonebelt"
storage_slots = 6
can_hold = list(
- "/obj/item/device/soulstone"
+ /obj/item/device/soulstone
)
/obj/item/weapon/storage/belt/soulstone/full/New()
diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index c724319160..aaa77bf663 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -344,7 +344,7 @@
icon = 'icons/obj/food.dmi'
icon_state = "monkeycubebox"
storage_slots = 7
- can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/monkeycube")
+ can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube)
New()
..()
if(src.type == /obj/item/weapon/storage/box/monkeycubes)
@@ -458,7 +458,7 @@
icon = 'icons/obj/toy.dmi'
icon_state = "spbox"
storage_slots = 8
- can_hold = list("/obj/item/toy/snappop")
+ can_hold = list(/obj/item/toy/snappop)
New()
..()
for(var/i=1; i <= storage_slots; i++)
@@ -473,7 +473,7 @@
storage_slots = 10
w_class = 1
slot_flags = SLOT_BELT
- can_hold = list("/obj/item/weapon/flame/match")
+ can_hold = list(/obj/item/weapon/flame/match)
New()
..()
@@ -506,7 +506,7 @@
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")
+ can_hold = list(/obj/item/weapon/light/tube, /obj/item/weapon/light/bulb)
max_combined_w_class = 42 //holds 21 items of w_class 2
use_to_pickup = 1 // for picking up broken bulbs, not that most people will try
diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm
index 5566bca666..a07013a79c 100644
--- a/code/game/objects/items/weapons/storage/fancy.dm
+++ b/code/game/objects/items/weapons/storage/fancy.dm
@@ -48,7 +48,7 @@
name = "egg box"
storage_slots = 12
max_combined_w_class = 24
- can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/egg")
+ can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/egg)
/obj/item/weapon/storage/fancy/egg_box/New()
..()
@@ -91,7 +91,7 @@
storage_slots = 6
icon_type = "crayon"
can_hold = list(
- "/obj/item/toy/crayon"
+ /obj/item/toy/crayon
)
/obj/item/weapon/storage/fancy/crayons/New()
@@ -134,7 +134,7 @@
throwforce = 2
slot_flags = SLOT_BELT
storage_slots = 6
- can_hold = list("/obj/item/clothing/mask/cigarette")
+ can_hold = list(/obj/item/clothing/mask/smokable/cigarette)
icon_type = "cigarette"
/obj/item/weapon/storage/fancy/cigarettes/New()
@@ -190,7 +190,7 @@
throwforce = 2
slot_flags = SLOT_BELT
storage_slots = 7
- can_hold = list("/obj/item/clothing/mask/cigarette/cigar")
+ can_hold = list(/obj/item/clothing/mask/smokable/cigarette/cigar)
icon_type = "cigar"
/obj/item/weapon/storage/fancy/cigar/New()
@@ -239,7 +239,7 @@
icon_type = "vial"
name = "vial storage box"
storage_slots = 6
- can_hold = list("/obj/item/weapon/reagent_containers/glass/beaker/vial")
+ can_hold = list(/obj/item/weapon/reagent_containers/glass/beaker/vial)
/obj/item/weapon/storage/fancy/vials/New()
@@ -255,7 +255,7 @@
icon_state = "vialbox0"
item_state = "syringe_kit"
max_w_class = 3
- can_hold = list("/obj/item/weapon/reagent_containers/glass/beaker/vial")
+ can_hold = list(/obj/item/weapon/reagent_containers/glass/beaker/vial)
max_combined_w_class = 14 //The sum of the w_classes of all the items in this storage item.
storage_slots = 6
req_access = list(access_virology)
diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm
index e2d45e0fac..be16497c3a 100644
--- a/code/game/objects/items/weapons/storage/firstaid.dm
+++ b/code/game/objects/items/weapons/storage/firstaid.dm
@@ -138,7 +138,7 @@
icon = 'icons/obj/chemical.dmi'
item_state = "contsolid"
w_class = 2.0
- can_hold = list("/obj/item/weapon/reagent_containers/pill","/obj/item/weapon/dice","/obj/item/weapon/paper")
+ can_hold = list(/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/dice,/obj/item/weapon/paper)
allow_quick_gather = 1
use_to_pickup = 1
storage_slots = 14
diff --git a/code/game/objects/items/weapons/storage/misc.dm b/code/game/objects/items/weapons/storage/misc.dm
index f3661916b7..ab40f02839 100644
--- a/code/game/objects/items/weapons/storage/misc.dm
+++ b/code/game/objects/items/weapons/storage/misc.dm
@@ -1,41 +1,41 @@
-/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 )
-
-/*
- * Donut Box
- */
-
-/obj/item/weapon/storage/donut_box
- icon = 'icons/obj/food.dmi'
- icon_state = "donutbox"
- name = "donut box"
- storage_slots = 6
- var/startswith = 6
- can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/donut")
- foldable = /obj/item/stack/sheet/cardboard
-
-/obj/item/weapon/storage/donut_box/New()
- ..()
- for(var/i=1; i <= startswith; i++)
- new /obj/item/weapon/reagent_containers/food/snacks/donut/normal(src)
- update_icon()
- return
-
-/obj/item/weapon/storage/donut_box/update_icon()
- overlays.Cut()
- var/i = 0
- for(var/obj/item/weapon/reagent_containers/food/snacks/donut/D in contents)
- var/image/img = image('icons/obj/food.dmi', D.overlay_state)
- img.pixel_x = i * 3
- overlays += img
- i++
-
-/obj/item/weapon/storage/donut_box/empty
- icon_state = "donutbox0"
- startswith = 0
+/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 )
+
+/*
+ * Donut Box
+ */
+
+/obj/item/weapon/storage/donut_box
+ icon = 'icons/obj/food.dmi'
+ icon_state = "donutbox"
+ name = "donut box"
+ storage_slots = 6
+ var/startswith = 6
+ can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/donut)
+ foldable = /obj/item/stack/sheet/cardboard
+
+/obj/item/weapon/storage/donut_box/New()
+ ..()
+ for(var/i=1; i <= startswith; i++)
+ new /obj/item/weapon/reagent_containers/food/snacks/donut/normal(src)
+ update_icon()
+ return
+
+/obj/item/weapon/storage/donut_box/update_icon()
+ overlays.Cut()
+ var/i = 0
+ for(var/obj/item/weapon/reagent_containers/food/snacks/donut/D in contents)
+ var/image/img = image('icons/obj/food.dmi', D.overlay_state)
+ img.pixel_x = i * 3
+ overlays += img
+ i++
+
+/obj/item/weapon/storage/donut_box/empty
+ icon_state = "donutbox0"
+ startswith = 0
diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm
index 74c47cab05..26ed522a38 100644
--- a/code/game/objects/items/weapons/storage/secure.dm
+++ b/code/game/objects/items/weapons/storage/secure.dm
@@ -220,7 +220,7 @@
max_w_class = 8
anchored = 1.0
density = 0
- cant_hold = list("/obj/item/weapon/storage/secure/briefcase")
+ cant_hold = list(/obj/item/weapon/storage/secure/briefcase)
New()
..()
diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm
index 2e1d4d2a4c..dd9851bb4c 100644
--- a/code/game/objects/items/weapons/storage/storage.dm
+++ b/code/game/objects/items/weapons/storage/storage.dm
@@ -209,24 +209,17 @@
usr << "[src] is full, make some space."
return 0 //Storage item is full
- if(can_hold.len)
- var/ok = 0
- for(var/A in can_hold)
- if(istype(W, text2path(A) ))
- ok = 1
- break
- if(!ok)
- if(!stop_messages)
- if (istype(W, /obj/item/weapon/hand_labeler))
- return 0
- usr << "[src] cannot hold [W]."
- return 0
+ if(can_hold.len && !is_type_in_list(W, can_hold))
+ if(!stop_messages)
+ if (istype(W, /obj/item/weapon/hand_labeler))
+ return 0
+ 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 << "[src] cannot hold [W]."
- return 0
+ if(cant_hold.len && is_type_in_list(W, cant_hold))
+ if(!stop_messages)
+ usr << "[src] cannot hold [W]."
+ return 0
if (W.w_class > max_w_class)
if(!stop_messages)
diff --git a/code/game/objects/items/weapons/storage/wallets.dm b/code/game/objects/items/weapons/storage/wallets.dm
index 505263cf46..fb6829abf5 100644
--- a/code/game/objects/items/weapons/storage/wallets.dm
+++ b/code/game/objects/items/weapons/storage/wallets.dm
@@ -5,25 +5,25 @@
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/flame/lighter",
- "/obj/item/weapon/flame/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")
+ /obj/item/weapon/spacecash,
+ /obj/item/weapon/card,
+ /obj/item/clothing/mask/smokable/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/flame/lighter,
+ /obj/item/weapon/flame/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)
slot_flags = SLOT_ID
var/obj/item/weapon/card/id/front_id = null
diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm
index 5df70a54bb..1f760797fc 100644
--- a/code/game/objects/structures/inflatable.dm
+++ b/code/game/objects/structures/inflatable.dm
@@ -253,6 +253,7 @@
icon_state = "inf_box"
item_state = "syringe_kit"
max_combined_w_class = 21
+ can_hold = list(/obj/item/inflatable)
New()
..()
diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm
index 34a974064e..dcd48955bf 100644
--- a/code/modules/paperwork/photography.dm
+++ b/code/modules/paperwork/photography.dm
@@ -86,7 +86,7 @@ var/global/photo_count = 0
icon = 'icons/obj/items.dmi'
icon_state = "album"
item_state = "briefcase"
- can_hold = list("/obj/item/weapon/photo",)
+ can_hold = list(/obj/item/weapon/photo)
/obj/item/weapon/storage/photo_album/MouseDrop(obj/over_object as obj)
diff --git a/code/modules/research/xenoarchaeology/tools/gearbelt.dm b/code/modules/research/xenoarchaeology/tools/gearbelt.dm
index e2d4839d2b..02a3e93abd 100644
--- a/code/modules/research/xenoarchaeology/tools/gearbelt.dm
+++ b/code/modules/research/xenoarchaeology/tools/gearbelt.dm
@@ -1,28 +1,28 @@
-
-/obj/item/weapon/storage/belt/archaeology
- name = "excavation gear-belt"
- desc = "Can hold various excavation gear."
- icon_state = "gearbelt"
- item_state = "utility"
- can_hold = list(
- "/obj/item/weapon/storage/box/samplebags",
- "/obj/item/device/core_sampler",
- "/obj/item/device/beacon_locator",
- "/obj/item/device/radio/beacon",
- "/obj/item/device/gps",
- "/obj/item/device/measuring_tape",
- "/obj/item/device/flashlight",
- "/obj/item/weapon/pickaxe",
- "/obj/item/device/depth_scanner",
- "/obj/item/device/camera",
- "/obj/item/weapon/paper",
- "/obj/item/weapon/photo",
- "/obj/item/weapon/folder",
- "/obj/item/weapon/pen",
- "/obj/item/weapon/folder",
- "/obj/item/weapon/clipboard",
- "/obj/item/weapon/anodevice",
- "/obj/item/clothing/glasses",
- "/obj/item/weapon/wrench",
- "/obj/item/weapon/storage/box/excavation",
- "/obj/item/weapon/anobattery")
+
+/obj/item/weapon/storage/belt/archaeology
+ name = "excavation gear-belt"
+ desc = "Can hold various excavation gear."
+ icon_state = "gearbelt"
+ item_state = "utility"
+ can_hold = list(
+ /obj/item/weapon/storage/box/samplebags,
+ /obj/item/device/core_sampler,
+ /obj/item/device/beacon_locator,
+ /obj/item/device/radio/beacon,
+ /obj/item/device/gps,
+ /obj/item/device/measuring_tape,
+ /obj/item/device/flashlight,
+ /obj/item/weapon/pickaxe,
+ /obj/item/device/depth_scanner,
+ /obj/item/device/camera,
+ /obj/item/weapon/paper,
+ /obj/item/weapon/photo,
+ /obj/item/weapon/folder,
+ /obj/item/weapon/pen,
+ /obj/item/weapon/folder,
+ /obj/item/weapon/clipboard,
+ /obj/item/weapon/anodevice,
+ /obj/item/clothing/glasses,
+ /obj/item/weapon/wrench,
+ /obj/item/weapon/storage/box/excavation,
+ /obj/item/weapon/anobattery)
diff --git a/code/modules/research/xenoarchaeology/tools/tools.dm b/code/modules/research/xenoarchaeology/tools/tools.dm
index 479d0240fa..bd1b9d8505 100644
--- a/code/modules/research/xenoarchaeology/tools/tools.dm
+++ b/code/modules/research/xenoarchaeology/tools/tools.dm
@@ -1,36 +1,36 @@
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Miscellaneous xenoarchaeology tools
-
-/obj/item/device/gps
- name = "relay positioning device"
- desc = "Triangulates the approximate co-ordinates using a nearby satellite network."
- icon = 'icons/obj/device.dmi'
- icon_state = "locator"
- item_state = "locator"
- w_class = 2
-
-/obj/item/device/gps/attack_self(var/mob/user as mob)
- var/turf/T = get_turf(src)
- user << "\blue \icon[src] [src] flashes [T.x].[rand(0,9)]:[T.y].[rand(0,9)]:[T.z].[rand(0,9)]."
-
-/obj/item/device/measuring_tape
- name = "measuring tape"
- desc = "A coiled metallic tape used to check dimensions and lengths."
- icon = 'icons/obj/xenoarchaeology.dmi'
- icon_state = "measuring"
- w_class = 2
-
-//todo: dig site tape
-
-/obj/item/weapon/storage/bag/fossils
- name = "Fossil Satchel"
- desc = "Transports delicate fossils in suspension so they don't break during transit."
- 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/fossil")
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Miscellaneous xenoarchaeology tools
+
+/obj/item/device/gps
+ name = "relay positioning device"
+ desc = "Triangulates the approximate co-ordinates using a nearby satellite network."
+ icon = 'icons/obj/device.dmi'
+ icon_state = "locator"
+ item_state = "locator"
+ w_class = 2
+
+/obj/item/device/gps/attack_self(var/mob/user as mob)
+ var/turf/T = get_turf(src)
+ user << "\blue \icon[src] [src] flashes [T.x].[rand(0,9)]:[T.y].[rand(0,9)]:[T.z].[rand(0,9)]."
+
+/obj/item/device/measuring_tape
+ name = "measuring tape"
+ desc = "A coiled metallic tape used to check dimensions and lengths."
+ icon = 'icons/obj/xenoarchaeology.dmi'
+ icon_state = "measuring"
+ w_class = 2
+
+//todo: dig site tape
+
+/obj/item/weapon/storage/bag/fossils
+ name = "Fossil Satchel"
+ desc = "Transports delicate fossils in suspension so they don't break during transit."
+ 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/fossil)
diff --git a/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm b/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm
index 31b6026981..dbe979d374 100644
--- a/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm
+++ b/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm
@@ -1,132 +1,132 @@
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Excavation pickaxes - sorted in order of delicacy. Players will have to choose the right one for each part of excavation.
-
-/obj/item/weapon/pickaxe/brush
- name = "brush"
- icon = 'icons/obj/xenoarchaeology.dmi'
- icon_state = "pick_brush"
- item_state = "syringe_0"
- digspeed = 20
- desc = "Thick metallic wires for clearing away dust and loose scree (1 centimetre excavation depth)."
- excavation_amount = 0.5
- drill_sound = 'sound/weapons/thudswoosh.ogg'
- drill_verb = "brushing"
- w_class = 2
-
-/obj/item/weapon/pickaxe/one_pick
- name = "1/6 pick"
- icon = 'icons/obj/xenoarchaeology.dmi'
- icon_state = "pick1"
- item_state = "syringe_0"
- digspeed = 20
- desc = "A miniature excavation tool for precise digging (2 centimetre excavation depth)."
- excavation_amount = 1
- drill_sound = 'sound/items/Screwdriver.ogg'
- drill_verb = "delicately picking"
- w_class = 2
-
-/obj/item/weapon/pickaxe/two_pick
- name = "1/3 pick"
- icon = 'icons/obj/xenoarchaeology.dmi'
- icon_state = "pick2"
- item_state = "syringe_0"
- digspeed = 20
- desc = "A miniature excavation tool for precise digging (4 centimetre excavation depth)."
- excavation_amount = 2
- drill_sound = 'sound/items/Screwdriver.ogg'
- drill_verb = "delicately picking"
- w_class = 2
-
-/obj/item/weapon/pickaxe/three_pick
- name = "1/2 pick"
- icon = 'icons/obj/xenoarchaeology.dmi'
- icon_state = "pick3"
- item_state = "syringe_0"
- digspeed = 20
- desc = "A miniature excavation tool for precise digging (6 centimetre excavation depth)."
- excavation_amount = 3
- drill_sound = 'sound/items/Screwdriver.ogg'
- drill_verb = "delicately picking"
- w_class = 2
-
-/obj/item/weapon/pickaxe/four_pick
- name = "2/3 pick"
- icon = 'icons/obj/xenoarchaeology.dmi'
- icon_state = "pick4"
- item_state = "syringe_0"
- digspeed = 20
- desc = "A miniature excavation tool for precise digging (8 centimetre excavation depth)."
- excavation_amount = 4
- drill_sound = 'sound/items/Screwdriver.ogg'
- drill_verb = "delicately picking"
- w_class = 2
-
-/obj/item/weapon/pickaxe/five_pick
- name = "5/6 pick"
- icon = 'icons/obj/xenoarchaeology.dmi'
- icon_state = "pick5"
- item_state = "syringe_0"
- digspeed = 20
- desc = "A miniature excavation tool for precise digging (10 centimetre excavation depth)."
- excavation_amount = 5
- drill_sound = 'sound/items/Screwdriver.ogg'
- drill_verb = "delicately picking"
- w_class = 2
-
-/obj/item/weapon/pickaxe/six_pick
- name = "1/1 pick"
- icon = 'icons/obj/xenoarchaeology.dmi'
- icon_state = "pick6"
- item_state = "syringe_0"
- digspeed = 20
- desc = "A miniature excavation tool for precise digging (12 centimetre excavation depth)."
- excavation_amount = 6
- drill_sound = 'sound/items/Screwdriver.ogg'
- drill_verb = "delicately picking"
- w_class = 2
-
-/obj/item/weapon/pickaxe/hand
- name = "hand pickaxe"
- icon = 'icons/obj/xenoarchaeology.dmi'
- icon_state = "pick_hand"
- item_state = "syringe_0"
- digspeed = 30
- desc = "A smaller, more precise version of the pickaxe (30 centimetre excavation depth)."
- excavation_amount = 15
- drill_sound = 'sound/items/Crowbar.ogg'
- drill_verb = "clearing"
- w_class = 3
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Pack for holding pickaxes
-
-/obj/item/weapon/storage/box/excavation
- name = "excavation pick set"
- icon = 'icons/obj/storage.dmi'
- icon_state = "excavation"
- desc = "A set of picks for excavation."
- item_state = "syringe_kit"
- foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
- storage_slots = 7
- w_class = 2
- can_hold = list("/obj/item/weapon/pickaxe/brush",\
- "/obj/item/weapon/pickaxe/one_pick",\
- "/obj/item/weapon/pickaxe/two_pick",\
- "/obj/item/weapon/pickaxe/three_pick",\
- "/obj/item/weapon/pickaxe/four_pick",\
- "/obj/item/weapon/pickaxe/five_pick",\
- "/obj/item/weapon/pickaxe/six_pick")
- max_combined_w_class = 17
- max_w_class = 4
- use_to_pickup = 1 // for picking up broken bulbs, not that most people will try
-
-/obj/item/weapon/storage/box/excavation/New()
- ..()
- new /obj/item/weapon/pickaxe/brush(src)
- new /obj/item/weapon/pickaxe/one_pick(src)
- new /obj/item/weapon/pickaxe/two_pick(src)
- new /obj/item/weapon/pickaxe/three_pick(src)
- new /obj/item/weapon/pickaxe/four_pick(src)
- new /obj/item/weapon/pickaxe/five_pick(src)
- new /obj/item/weapon/pickaxe/six_pick(src)
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Excavation pickaxes - sorted in order of delicacy. Players will have to choose the right one for each part of excavation.
+
+/obj/item/weapon/pickaxe/brush
+ name = "brush"
+ icon = 'icons/obj/xenoarchaeology.dmi'
+ icon_state = "pick_brush"
+ item_state = "syringe_0"
+ digspeed = 20
+ desc = "Thick metallic wires for clearing away dust and loose scree (1 centimetre excavation depth)."
+ excavation_amount = 0.5
+ drill_sound = 'sound/weapons/thudswoosh.ogg'
+ drill_verb = "brushing"
+ w_class = 2
+
+/obj/item/weapon/pickaxe/one_pick
+ name = "1/6 pick"
+ icon = 'icons/obj/xenoarchaeology.dmi'
+ icon_state = "pick1"
+ item_state = "syringe_0"
+ digspeed = 20
+ desc = "A miniature excavation tool for precise digging (2 centimetre excavation depth)."
+ excavation_amount = 1
+ drill_sound = 'sound/items/Screwdriver.ogg'
+ drill_verb = "delicately picking"
+ w_class = 2
+
+/obj/item/weapon/pickaxe/two_pick
+ name = "1/3 pick"
+ icon = 'icons/obj/xenoarchaeology.dmi'
+ icon_state = "pick2"
+ item_state = "syringe_0"
+ digspeed = 20
+ desc = "A miniature excavation tool for precise digging (4 centimetre excavation depth)."
+ excavation_amount = 2
+ drill_sound = 'sound/items/Screwdriver.ogg'
+ drill_verb = "delicately picking"
+ w_class = 2
+
+/obj/item/weapon/pickaxe/three_pick
+ name = "1/2 pick"
+ icon = 'icons/obj/xenoarchaeology.dmi'
+ icon_state = "pick3"
+ item_state = "syringe_0"
+ digspeed = 20
+ desc = "A miniature excavation tool for precise digging (6 centimetre excavation depth)."
+ excavation_amount = 3
+ drill_sound = 'sound/items/Screwdriver.ogg'
+ drill_verb = "delicately picking"
+ w_class = 2
+
+/obj/item/weapon/pickaxe/four_pick
+ name = "2/3 pick"
+ icon = 'icons/obj/xenoarchaeology.dmi'
+ icon_state = "pick4"
+ item_state = "syringe_0"
+ digspeed = 20
+ desc = "A miniature excavation tool for precise digging (8 centimetre excavation depth)."
+ excavation_amount = 4
+ drill_sound = 'sound/items/Screwdriver.ogg'
+ drill_verb = "delicately picking"
+ w_class = 2
+
+/obj/item/weapon/pickaxe/five_pick
+ name = "5/6 pick"
+ icon = 'icons/obj/xenoarchaeology.dmi'
+ icon_state = "pick5"
+ item_state = "syringe_0"
+ digspeed = 20
+ desc = "A miniature excavation tool for precise digging (10 centimetre excavation depth)."
+ excavation_amount = 5
+ drill_sound = 'sound/items/Screwdriver.ogg'
+ drill_verb = "delicately picking"
+ w_class = 2
+
+/obj/item/weapon/pickaxe/six_pick
+ name = "1/1 pick"
+ icon = 'icons/obj/xenoarchaeology.dmi'
+ icon_state = "pick6"
+ item_state = "syringe_0"
+ digspeed = 20
+ desc = "A miniature excavation tool for precise digging (12 centimetre excavation depth)."
+ excavation_amount = 6
+ drill_sound = 'sound/items/Screwdriver.ogg'
+ drill_verb = "delicately picking"
+ w_class = 2
+
+/obj/item/weapon/pickaxe/hand
+ name = "hand pickaxe"
+ icon = 'icons/obj/xenoarchaeology.dmi'
+ icon_state = "pick_hand"
+ item_state = "syringe_0"
+ digspeed = 30
+ desc = "A smaller, more precise version of the pickaxe (30 centimetre excavation depth)."
+ excavation_amount = 15
+ drill_sound = 'sound/items/Crowbar.ogg'
+ drill_verb = "clearing"
+ w_class = 3
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Pack for holding pickaxes
+
+/obj/item/weapon/storage/box/excavation
+ name = "excavation pick set"
+ icon = 'icons/obj/storage.dmi'
+ icon_state = "excavation"
+ desc = "A set of picks for excavation."
+ item_state = "syringe_kit"
+ foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
+ storage_slots = 7
+ w_class = 2
+ can_hold = list(/obj/item/weapon/pickaxe/brush,\
+ /obj/item/weapon/pickaxe/one_pick,\
+ /obj/item/weapon/pickaxe/two_pick,\
+ /obj/item/weapon/pickaxe/three_pick,\
+ /obj/item/weapon/pickaxe/four_pick,\
+ /obj/item/weapon/pickaxe/five_pick,\
+ /obj/item/weapon/pickaxe/six_pick)
+ max_combined_w_class = 17
+ max_w_class = 4
+ use_to_pickup = 1 // for picking up broken bulbs, not that most people will try
+
+/obj/item/weapon/storage/box/excavation/New()
+ ..()
+ new /obj/item/weapon/pickaxe/brush(src)
+ new /obj/item/weapon/pickaxe/one_pick(src)
+ new /obj/item/weapon/pickaxe/two_pick(src)
+ new /obj/item/weapon/pickaxe/three_pick(src)
+ new /obj/item/weapon/pickaxe/four_pick(src)
+ new /obj/item/weapon/pickaxe/five_pick(src)
+ new /obj/item/weapon/pickaxe/six_pick(src)