diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 1abc221ef2..d8daac1fe2 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -102,22 +102,24 @@ return 1 //CIT CHANGES START HERE - makes it so resting stops you from moving through standing folks without a short delay - if(resting && !L.resting && !pulledby) - if(attemptingcrawl) - return TRUE - if(getStaminaLoss() >= STAMINA_SOFTCRIT) - to_chat(src, "You're too exhausted to crawl under [L].") - return TRUE - attemptingcrawl = TRUE + if(resting && !L.resting) var/origtargetloc = L.loc - visible_message("[src] is attempting to crawl under [L].", "You are now attempting to crawl under [L].") - if(do_after(src, CRAWLUNDER_DELAY, target = src)) - if(resting) - var/src_passmob = (pass_flags & PASSMOB) - pass_flags |= PASSMOB - Move(origtargetloc) - if(!src_passmob) - pass_flags &= ~PASSMOB + if(!pulledby) + if(attemptingcrawl) + return TRUE + if(getStaminaLoss() >= STAMINA_SOFTCRIT) + to_chat(src, "You're too exhausted to crawl under [L].") + return TRUE + attemptingcrawl = TRUE + visible_message("[src] is attempting to crawl under [L].", "You are now attempting to crawl under [L].") + if(!do_after(src, CRAWLUNDER_DELAY, target = src) || !resting) + attemptingcrawl = FALSE + return TRUE + var/src_passmob = (pass_flags & PASSMOB) + pass_flags |= PASSMOB + Move(origtargetloc) + if(!src_passmob) + pass_flags &= ~PASSMOB attemptingcrawl = FALSE return TRUE //END OF CIT CHANGES