diff --git a/code/game/turfs/flooring/flooring.dm b/code/game/turfs/flooring/flooring.dm index b80e20e542e..8c23a82aa08 100644 --- a/code/game/turfs/flooring/flooring.dm +++ b/code/game/turfs/flooring/flooring.dm @@ -80,6 +80,11 @@ var/list/flooring_types icon_base = "snowyplating" flags = null +/decl/flooring/snow/ice + name = "ice" + desc = "Looks slippery." + icon_base = "ice" + /decl/flooring/snow/plating/drift icon_base = "snowyplayingdrift" diff --git a/code/game/turfs/simulated/outdoors/snow.dm b/code/game/turfs/simulated/outdoors/snow.dm index 398fa0dc476..8e60c925e54 100644 --- a/code/game/turfs/simulated/outdoors/snow.dm +++ b/code/game/turfs/simulated/outdoors/snow.dm @@ -40,4 +40,17 @@ var/obj/S = new /obj/item/stack/material/snow(user.loc) user.put_in_hands(S) visible_message("[user] scoops up a pile of snow.", "You scoop up a pile of snow.") - return \ No newline at end of file + return + +/turf/simulated/floor/outdoors/ice + name = "ice" + icon_state = "ice" + desc = "Looks slippery." + +/turf/simulated/floor/outdoors/ice/Entered(var/mob/living/M) + sleep(1 * world.tick_lag) + if(istype(M, /mob/living)) + if(M.stunned == 0) + to_chat(M, "You slide across the ice!") + M.SetStunned(2) + step(M,M.dir) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 917790df41d..a020eeffd67 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -768,16 +768,19 @@ if(status_flags & CANSTUN) facing_dir = null stunned = max(max(stunned,amount),0) //can't go below 0, getting a low amount of stun doesn't lower your current stun + update_canmove() //updates lying, canmove and icons return /mob/proc/SetStunned(amount) //if you REALLY need to set stun to a set amount without the whole "can't go below current stunned" if(status_flags & CANSTUN) stunned = max(amount,0) + update_canmove() //updates lying, canmove and icons return /mob/proc/AdjustStunned(amount) if(status_flags & CANSTUN) stunned = max(stunned + amount,0) + update_canmove() //updates lying, canmove and icons return /mob/proc/Weaken(amount) @@ -790,7 +793,7 @@ /mob/proc/SetWeakened(amount) if(status_flags & CANWEAKEN) weakened = max(amount,0) - update_canmove() //updates lying, canmove and icons + update_canmove() //can you guess what this does yet? return /mob/proc/AdjustWeakened(amount) diff --git a/icons/turf/outdoors.dmi b/icons/turf/outdoors.dmi index 31fab0ec95c..b1f0bf0d840 100644 Binary files a/icons/turf/outdoors.dmi and b/icons/turf/outdoors.dmi differ