diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 593bdb777c2..d3eed17a760 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -300,15 +300,13 @@ if (M.m_intent=="walk" && (lube&NO_SLIP_WHEN_WALKING)) return 0 if(!M.lying) - var/olddir = M.dir - M.Stun(s_amount) - M.Weaken(w_amount) M.stop_pulling() + if(lube&STEP) + step(M, M.dir) if(lube&SLIDE) for(var/i=1, i<5, i++) spawn (i) - step(M, olddir) - M.spin(1,1) + step(M, M.dir) if(M.lying) //did I fall over? M.adjustBruteLoss(2) if(O) @@ -316,5 +314,7 @@ else M << "You slipped!" playsound(M.loc, 'sound/misc/slip.ogg', 50, 1, -3) + M.Stun(s_amount) + M.Weaken(w_amount) return 1 return 0 // no success. Used in clown pda and wet floors diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index ec32f437b12..c58542f7b6a 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -16,9 +16,9 @@ else //if(lying != 0) if(lying_prev == 0) //Standing to lying final_pixel_y -= 6 - 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 + 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(changed) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index f76998bda0c..a7acd1cdf83 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -543,11 +543,9 @@ var/mob/living/carbon/CM = L if(CM.on_fire && CM.canmove) CM.fire_stacks -= 5 - CM.Weaken(3) - CM.spin(32,2) + CM.weakened = 5 CM.visible_message("[CM] rolls on the floor, trying to put themselves out!", \ "You stop, drop, and roll!") - sleep(30) if(fire_stacks <= 0) CM.visible_message("[CM] has successfully extinguished themselves!", \ "You extinguish yourself.") @@ -562,23 +560,6 @@ else cuff_resist(CM.legcuffed, CM) -/mob/living/carbon/proc/spin(spintime, speed) - spawn() - var/D = dir - while(spintime >= speed) - sleep(speed) - switch(D) - if(NORTH) - D = EAST - if(SOUTH) - D = WEST - if(EAST) - D = SOUTH - if(WEST) - D = NORTH - dir = D - spintime -= speed - return /mob/living/proc/get_visible_name() return name diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 5dc726708c5..fd99c921327 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -645,28 +645,28 @@ var/list/slot_equipment_priority = list( \ //Updates canmove, lying and icons. Could perhaps do with a rename but I can't think of anything to describe it. //Robots and brains have their own version so don't worry about them /mob/proc/update_canmove() - var/ko = weakened || paralysis || stat || (status_flags & FAKEDEATH) - var/bed = !(buckled && istype(buckled, /obj/structure/stool/bed/chair)) - if(ko || resting || stunned) - drop_r_hand() - drop_l_hand() - else - lying = 0 - canmove = 1 - if(buckled) - lying = 90 * bed - anchored = buckled - else - if((ko || resting) && !lying) - fall(ko) - canmove = !(ko || resting || stunned || buckled) - density = !lying - update_transform() - lying_prev = lying - if(update_icon) //forces a full overlay update - update_icon = 0 - regenerate_icons() - return canmove + var/ko = weakened || paralysis || stat || (status_flags & FAKEDEATH) + var/bed = !(buckled && istype(buckled, /obj/structure/stool/bed/chair)) + if(ko || resting || stunned) + drop_r_hand() + drop_l_hand() + else + lying = 0 + canmove = 1 + if(buckled) + lying = 90 * bed + anchored = buckled + else + if((ko || resting) && !lying) + fall(ko) + canmove = !(ko || resting || stunned || buckled) + density = !lying + update_transform() + lying_prev = lying + if(update_icon) //forces a full overlay update + update_icon = 0 + regenerate_icons() + return canmove /mob/proc/fall(var/forced) drop_l_hand()