diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index f833ad9028a..16a77411e4c 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -101,8 +101,10 @@ //We are now going to move var/add_delay = mob.cached_multiplicative_slowdown - var/new_glide_size = DELAY_TO_GLIDE_SIZE(add_delay * ( (NSCOMPONENT(direct) && EWCOMPONENT(direct)) ? sqrt(2) : 1 ) ) - mob.set_glide_size(new_glide_size) // set it now in case of pulled objects + var/glide_delay = add_delay + if(NSCOMPONENT(direct) && EWCOMPONENT(direct)) + glide_delay = FLOOR(glide_delay * sqrt(2), world.tick_lag) + mob.set_glide_size(DELAY_TO_GLIDE_SIZE(glide_delay)) // set it now in case of pulled objects //If the move was recent, count using old_move_delay //We want fractional behavior and all if(old_move_delay + world.tick_lag > world.time) @@ -120,7 +122,7 @@ . = ..() if((direct & (direct - 1)) && mob.loc == new_loc) //moved diagonally successfully - add_delay *= sqrt(2) + add_delay = FLOOR(add_delay * sqrt(2), world.tick_lag) var/after_glide = 0 if(visual_delay)