diff --git a/code/ZAS/Airflow.dm b/code/ZAS/Airflow.dm index 9f6451adf9..70c3c0651e 100644 --- a/code/ZAS/Airflow.dm +++ b/code/ZAS/Airflow.dm @@ -116,8 +116,9 @@ obj/item/check_airflow_movable(n) if(!istype(loc, /turf)) break step_towards(src, src.airflow_dest) - if(ismob(src) && src:client) - src:client:move_delay = world.time + vsc.airflow_mob_slowdown + if(ismob(src)) + var/mob/M = src + M.setMoveCooldown(vsc.airflow_mob_slowdown) airflow_dest = null airflow_speed = 0 airflow_time = 0 diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 8ba66ffe31..b37192ed76 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -10,6 +10,9 @@ return (!mover.density || !density || lying) return +/mob/setMoveCooldown(var/timeout) + if(client) + client.move_delay = max(world.time + timeout, client.move_delay) /client/North() ..() diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 3c3af1f19d..922e5debf4 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -170,7 +170,7 @@ var/shoot_time = (_burst - 1)*_burst_delay user.setClickCooldown(shoot_time) - if(user.client) user.client.move_delay = world.time + shoot_time //no moving while shooting either + user.setMoveCooldown(shoot_time) //no moving while shooting either next_fire_time = world.time + shoot_time //actually attempt to shoot @@ -203,7 +203,7 @@ //update timing user.setClickCooldown(4) - if(user.client) user.client.move_delay = world.time + _move_delay + user.setMoveCooldown(_move_delay) next_fire_time = world.time + _fire_delay if(muzzle_flash)