diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 2dc064aa86d4..77b15e22d055 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -277,7 +277,11 @@ //trying to buckle a mob /obj/proc/buckle_mob(mob/M, mob/user) - if (!ismob(M) || (get_dist(src, user) > 1) || user.is_mob_restrained() || user.stat || buckled_mob || M.buckled || !isturf(user.loc)) + if (!ismob(M) || (get_dist(src, user) > 1) || user.stat || buckled_mob || M.buckled || !isturf(user.loc)) + return + + if (user.is_mob_incapacitated() || HAS_TRAIT(user, TRAIT_IMMOBILIZED) || HAS_TRAIT(user, TRAIT_FLOORED)) + to_chat(user, SPAN_WARNING("You can't do this right now.")) return if (isxeno(user) && !HAS_TRAIT(user, TRAIT_OPPOSABLE_THUMBS)) @@ -286,11 +290,6 @@ if (iszombie(user)) return - // mobs that become immobilized should not be able to buckle themselves. - if(M == user && HAS_TRAIT(user, TRAIT_IMMOBILIZED)) - to_chat(user, SPAN_WARNING("You are unable to do this in your current state.")) - return - if(density) density = FALSE if(!step(M, get_dir(M, src)) && loc != M.loc)