diff --git a/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/designs_and_tech.dm b/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/designs_and_tech.dm
index c0cbd7f13ef..5f46e0d65c6 100644
--- a/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/designs_and_tech.dm
+++ b/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/designs_and_tech.dm
@@ -120,7 +120,7 @@
/datum/design/xenoarch/equipment/bag
name = "Xenoarchaeology Bag"
- desc = "A bag that can hold about twenty-five strange rocks."
+ desc = "A bag that can hold about twenty-five strange rocks or relics."
id = "xenoarch_bag"
build_path = /obj/item/storage/bag/xenoarch
@@ -132,7 +132,7 @@
/datum/design/xenoarch/equipment/bag_adv
name = "Advanced Xenoarch Bag"
- desc = "A bag that can hold about fifty strange rocks."
+ desc = "A bag that can hold about fifty strange rocks or relics."
id = "xenoarch_bag_adv"
materials = list(
/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
diff --git a/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/xenoarch_item.dm b/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/xenoarch_item.dm
index 4a85d2f1957..2f955be0681 100644
--- a/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/xenoarch_item.dm
+++ b/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/xenoarch_item.dm
@@ -240,7 +240,7 @@
The brushes allow you to uncover the items within the proper depths without damaging it.
\
The tape will allow you to tag the strange rock with the current depth. Continue to examine the rock for updates.
\
The belt will allow you to store your mobile/handheld tools for easy access.
\
- The bag will allow you to store and automatically pickup strange rocks that you find lying on the floor.
\
+ The bag will allow you to store and automatically pickup strange rocks and relics that you find lying on the floor.
\
The handheld machines allow you to not have to be stuck at the machines. There are only handheld scanners and recoverers.
\
The Scanner is a machine which allows you to tag the strange rock with its max and safe depth.
\
The Researcher is a machine that allows you to compile/condense relics and items into larger strange artifacts.
\
diff --git a/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/xenoarch_machine.dm b/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/xenoarch_machine.dm
index 2ebd6840fcb..32f2f743e4d 100644
--- a/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/xenoarch_machine.dm
+++ b/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/xenoarch_machine.dm
@@ -114,11 +114,13 @@
return ITEM_INTERACT_SKIP_TO_ATTACK
if(istype(tool, /obj/item/storage/bag/xenoarch))
- for(var/obj/item/xenoarch/strange_rocks in tool.contents)
+ for(var/obj/item/strange_rocks in tool.contents)
+ if(!is_type_in_list(strange_rocks, accepted_types))
+ continue
strange_rocks.forceMove(src)
xenoarch_contents += strange_rocks
- balloon_alert(user, "rocks inserted!")
+ balloon_alert(user, "items inserted!")
return ITEM_INTERACT_SUCCESS
if(is_type_in_list(tool, accepted_types))
@@ -189,6 +191,7 @@
var/reward_attempt = accepted_types[first_item.type]
current_research = min(current_research + reward_attempt, 300)
xenoarch_contents -= first_item
+ playsound(src, 'sound/machines/ping.ogg', 50, FALSE)
qdel(first_item)
/obj/machinery/xenoarch/scanner
@@ -252,11 +255,22 @@
if(istype(held_item, /obj/item/xenoarch/broken_item))
context[SCREENTIP_CONTEXT_LMB] = "Insert item"
return CONTEXTUAL_SCREENTIP_SET
+ if(istype(held_item, /obj/item/storage/bag/xenoarch))
+ context[SCREENTIP_CONTEXT_LMB] = "Dump bag into machine"
+ return CONTEXTUAL_SCREENTIP_SET
/obj/machinery/xenoarch/recoverer/item_interaction(mob/living/user, obj/item/tool, list/modifiers)
if(user.combat_mode)
return ITEM_INTERACT_SKIP_TO_ATTACK
+ if(istype(tool, /obj/item/storage/bag/xenoarch))
+ for(var/obj/item/xenoarch/broken_item/current_item in tool.contents)
+ current_item.forceMove(src)
+ xenoarch_contents += current_item
+
+ balloon_alert(user, "items inserted!")
+ return ITEM_INTERACT_SUCCESS
+
if(istype(tool, /obj/item/xenoarch/broken_item))
tool.forceMove(src)
xenoarch_contents += tool
@@ -326,7 +340,7 @@
return ITEM_INTERACT_SKIP_TO_ATTACK
if(istype(tool, /obj/item/storage/bag/xenoarch))
- for(var/obj/item/strange_rocks in tool.contents)
+ for(var/obj/item/xenoarch/strange_rock/strange_rocks in tool.contents)
strange_rocks.forceMove(src)
xenoarch_contents += strange_rocks
@@ -361,4 +375,5 @@
var/obj/item/xenoarch/strange_rock/first_item = xenoarch_contents[1]
new first_item.hidden_item(src_turf)
xenoarch_contents -= first_item
+ playsound(src, 'sound/machines/click.ogg', 50, TRUE)
qdel(first_item)
diff --git a/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/xenoarch_tool.dm b/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/xenoarch_tool.dm
index 7bfa40155cd..82c07a183f3 100644
--- a/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/xenoarch_tool.dm
+++ b/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/xenoarch_tool.dm
@@ -201,7 +201,7 @@
/obj/item/storage/bag/xenoarch
name = "xenoarch mining satchel"
- desc = "This little bugger can be used to store and transport strange rocks."
+ desc = "This little bugger can be used to store and transport rocks and relics."
icon = 'modular_skyrat/modules/xenoarch/icons/xenoarch_items.dmi'
icon_state = "satchel"
worn_icon_state = "satchel"
@@ -220,7 +220,11 @@
atom_storage.max_total_storage = 1000
atom_storage.max_slots = 25
atom_storage.numerical_stacking = FALSE
- atom_storage.can_hold = typecacheof(list(/obj/item/xenoarch/strange_rock))
+ atom_storage.can_hold = typecacheof(list(
+ /obj/item/xenoarch/strange_rock,
+ /obj/item/xenoarch/broken_item,
+ /obj/item/xenoarch/useless_relic,
+ ))
/obj/item/storage/bag/xenoarch/equipped(mob/user)
. = ..()
@@ -263,8 +267,8 @@
if(show_message)
playsound(user, SFX_RUSTLE, 50, TRUE)
- user.visible_message(span_notice("[user] scoops up the rocks beneath [user.p_them()]."), \
- span_notice("You scoop up the rocks beneath you with your [name]."))
+ user.visible_message(span_notice("[user] scoops up the items beneath [user.p_them()]."), \
+ span_notice("You scoop up the items beneath you with your [name]."))
spam_protection = FALSE