diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 5d24b0a884..be698d3f9b 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -158,9 +158,11 @@ L.forceMove(loc, direct, movetime) L.last_move = last_move L.inertia_dir = last_move - + if(!buckle_dir) L.set_dir(dir) + else + L.set_dir(buckle_dir) /atom/movable/proc/can_buckle_check(mob/living/M, forced = FALSE) if(!buckled_mobs) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 27715ea899..1b973ae1b5 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -81,7 +81,7 @@ default behaviour is: return 0 /mob/living/Bump(atom/movable/AM) - if(now_pushing || !loc) + if(now_pushing || !loc || buckled == AM) return now_pushing = 1 if (istype(AM, /mob/living))