diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 55af26b6b2..bd5702eef4 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -732,16 +732,30 @@ return hide_from(target) /datum/component/storage/proc/on_alt_click(datum/source, mob/user) - if(!isliving(user) || user.incapacitated() || !quickdraw || locked || !user.CanReach(parent)) + if(!isliving(user) || !user.CanReach(parent)) return - var/obj/item/I = locate() in real_location() - if(!I) + if(locked) + to_chat(user, "[parent] seems to be locked!") return - remove_from_storage(I, get_turf(user)) - if(!user.put_in_hands(I)) - to_chat(user, "You fumble for [I] and it falls on the floor.") + + var/atom/A = parent + if(!quickdraw) + A.add_fingerprint(user) + user_show_to_mob(user) + playsound(A, "rustle", 50, 1, -5) + return + + if(!user.incapacitated()) + var/obj/item/I = locate() in real_location() + if(!I) + return + A.add_fingerprint(user) + remove_from_storage(I, get_turf(user)) + if(!user.put_in_hands(I)) + to_chat(user, "You fumble for [I] and it falls on the floor.") + return + user.visible_message("[user] draws [I] from [parent]!", "You draw [I] from [parent].") return - user.visible_message("[user] draws [I] from [parent]!", "You draw [I] from [parent].") /datum/component/storage/proc/action_trigger(datum/signal_source, datum/action/source) gather_mode_switch(source.owner)