diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index a1e5baf8450..9dad7dabba2 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -266,13 +266,19 @@ return if(user == O) //try to climb onto it return ..() - if(!opened || istype(O, /obj/structure/closet)) + if(!opened) + return + if(!isturf(O.loc)) return + var/actuallyismob = 0 + if(isliving(O)) + actuallyismob = 1 + else if(!istype(O, /obj/item)) + return + var/turf/T = get_turf(src) var/list/targets = list(O, src) add_fingerprint(user) - var/mob/living/L = O - var/actuallyismob = istype(L) user.visible_message("[user] [actuallyismob ? "tries to ":""]stuff [O] into [src].", \ "You [actuallyismob ? "try to ":""]stuff [O] into [src].", \ "You hear clanging.") @@ -281,12 +287,13 @@ user.visible_message("[user] stuffs [O] into [src].", \ "You stuff [O] into [src].", \ "You hear a loud metal bang.") + var/mob/living/L = O if(!issilicon(L)) L.Weaken(2) - O.forceMove(get_turf(src)) + O.forceMove(T) close() else - O.forceMove(get_turf(src)) + O.forceMove(T) return 1 /obj/structure/closet/relaymove(mob/user)