diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index cd3e937a8d7..875df43a0f0 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -19,6 +19,8 @@ if(dir & (EAST|WEST)) //Facing east or west final_dir = pick(NORTH, SOUTH) //So you fall on your side rather than your face or ass + lying_prev = lying //so we don't try to animate until there's been another change. + if(resize != RESIZE_DEFAULT_SIZE) changed++ ntransform.Scale(resize) diff --git a/code/modules/mob/living/status_procs.dm b/code/modules/mob/living/status_procs.dm index a0b25312e00..f53fbd4160b 100644 --- a/code/modules/mob/living/status_procs.dm +++ b/code/modules/mob/living/status_procs.dm @@ -103,6 +103,7 @@ // Booleans var/resting = FALSE + var/rest_CD = 0 /* STATUS EFFECTS @@ -141,14 +142,13 @@ var/val_change = !resting resting = TRUE - to_chat(src, "You are now resting.") if(updating && val_change) update_canmove() /mob/living/proc/StopResting(updating = 1) var/val_change = !!resting resting = FALSE - to_chat(src, "You are now getting up.") + if(updating && val_change) update_canmove() diff --git a/code/modules/mob/living/update_status.dm b/code/modules/mob/living/update_status.dm index b7a0e9e3e18..7eb054176c4 100644 --- a/code/modules/mob/living/update_status.dm +++ b/code/modules/mob/living/update_status.dm @@ -93,7 +93,7 @@ update_action_buttons_icon() if(!lying && lying_prev) if(client) - client.move_delay = world.time + movement_delay() + client.move_delay = max(world.time + movement_delay(), world.time + 20) lying_prev = lying return canmove diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 4a8a7b5b2f3..ee7fa503e11 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -361,9 +361,11 @@ var/list/intents = list(I_HELP,I_DISARM,I_GRAB,I_HARM) set name = "Rest" set category = "IC" - if(!resting) + if(!resting && (world.time > rest_CD)) + to_chat(src, "You are now resting.") StartResting() - else if(resting) + else if(resting && (world.time > rest_CD)) + to_chat(src, "You are now getting up.") StopResting() /proc/is_blind(A)