From d3fac52e11aba9e6739726f4397b5c82d42b108e Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Tue, 17 Mar 2015 08:13:34 +0100 Subject: [PATCH] do_after/do_mob code cleanup. Cleans up the code a bit and makes do_mob() make regular checks, similar to do_after(). --- code/__HELPERS/unsorted.dm | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 89da5859244..c00bb17b1d2 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -698,17 +698,26 @@ proc/anim(turf/location as turf,target as mob|obj,a_icon,a_icon_state as text,fl else return get_step(ref, base_dir) -/proc/do_mob(var/mob/user , var/mob/target, var/time = 30) //This is quite an ugly solution but i refuse to use the old request system. - if(!user || !target) return 0 - var/user_loc = user.loc - var/target_loc = target.loc +/proc/do_mob(var/mob/user, var/mob/target, var/delay, var/numticks = 5, var/needhand = 1) //This is quite an ugly solution but i refuse to use the old request system. + if(!user || !target) return 0 + if(numticks == 0) return 0 + + var/delayfraction = round(delay/numticks) + var/original_user_loc = user.loc + var/original_target_loc = target.loc var/holding = user.get_active_hand() - sleep(time) - if(!user || !target) return 0 - if ( user.loc == user_loc && target.loc == target_loc && user.get_active_hand() == holding && !( user.stat ) && ( !user.stunned && !user.weakened && !user.paralysis && !user.lying ) ) - return 1 - else - return 0 + + for(var/i = 0, i