diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index e27ce66829a..42bde6e19de 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -147,6 +147,8 @@ if(show_message) to_chat(user, "[src] is too heavy to pull!") return FALSE + if(user in buckled_mobs) + return FALSE return TRUE // Used in shuttle movement and AI eye stuff. diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 0fe70b0f10d..829b4b4e77f 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -55,6 +55,7 @@ if((!can_buckle && !force) || M.buckled || (length(buckled_mobs) >= max_buckled_mobs) || (buckle_requires_restraints && !M.restrained()) || M == src) return FALSE M.buckling = src + if(!M.can_buckle() && !force) if(M == usr) to_chat(M, "You are unable to buckle yourself to [src]!") @@ -77,6 +78,10 @@ M.set_body_position(STANDING_UP) else M.set_body_position(LYING_DOWN) + + if(M.pulling && M.pulling == src) + M.stop_pulling() + M.buckling = null M.buckled = src M.setDir(dir)