diff --git a/code/game/objects/items/weapons/capture_crystal.dm b/code/game/objects/items/weapons/capture_crystal.dm
index 5c72d389e4..8b225d9298 100644
--- a/code/game/objects/items/weapons/capture_crystal.dm
+++ b/code/game/objects/items/weapons/capture_crystal.dm
@@ -251,6 +251,7 @@
if(!bound_mob)
bound_mob = M
bound_mob.capture_caught = TRUE
+ persist_storable = FALSE
desc = "A glowing crystal in what appears to be some kind of steel housing."
//Determines the capture chance! So you can't capture AI mobs if they're perfectly healthy and all that
@@ -324,6 +325,7 @@
bound_mob = null
owner = null
active = FALSE
+ persist_storable = TRUE
update_icon()
/obj/item/capture_crystal/proc/owner_was_deleted()
diff --git a/code/modules/client/stored_item.dm b/code/modules/client/stored_item.dm
index 43424e7f9d..c64cea7507 100644
--- a/code/modules/client/stored_item.dm
+++ b/code/modules/client/stored_item.dm
@@ -71,9 +71,6 @@
if(busy_bank)
to_chat(user, "\The [src] is already in use.")
return
- if(user.ckey in item_takers)
- to_chat(user, "You have already taken something out of \the [src] this shift.")
- return
busy_bank = TRUE
var/I = persist_item_savefile_load(user, "type")
var/Iname = persist_item_savefile_load(user, "name")
@@ -89,9 +86,13 @@
to_chat(user,"Your hands are full!")
busy_bank = FALSE
return
+ if(user.ckey in item_takers)
+ to_chat(user, "You have already taken something out of \the [src] this shift.")
+ busy_bank = FALSE
+ return
choice = tgui_alert(user, "If you remove this item from the bank, it will be unable to be stored again. Do you still want to remove it?", "[src]", list("No", "Yes"), timeout = 10 SECONDS)
icon_state = "item_bank_o"
- if(!choice || choice == "Cancel" || !Adjacent(user) || inoperable() || panel_open)
+ if(!choice || choice == "No" || !Adjacent(user) || inoperable() || panel_open)
busy_bank = FALSE
icon_state = "item_bank"
return
@@ -100,6 +101,7 @@
icon_state = "item_bank"
return
var/obj/N = new I(get_turf(src))
+ log_admin("[key_name_admin(user)] retrieved [N] from the item bank.")
visible_message("\The [src] dispenses the [N] to \the [user].")
user.put_in_hands(N)
N.persist_storable = FALSE
@@ -126,7 +128,12 @@
to_chat(user, "\The [src] is already in use.")
return
busy_bank = TRUE
+ var/I = persist_item_savefile_load(user, "type")
if(!istool(O) && O.persist_storable)
+ if(ispath(I))
+ to_chat(user, "You cannot store \the [O]. You already have something stored.")
+ busy_bank = FALSE
+ return
user.visible_message("\The [user] begins storing \the [O] in \the [src].","You begin storing \the [O] in \the [src].")
icon_state = "item_bank_o"
if(!do_after(user, 10 SECONDS, src, exclusive = TASK_ALL_EXCLUSIVE) || inoperable())
@@ -210,3 +217,4 @@
persist_storable = FALSE
/obj/item/weapon/gun/energy/sizegun/abductor
persist_storable = FALSE
+