diff --git a/code/game/objects/effects/misc.dm b/code/game/objects/effects/misc.dm index 2a89f84f844..4396e52a732 100644 --- a/code/game/objects/effects/misc.dm +++ b/code/game/objects/effects/misc.dm @@ -137,3 +137,19 @@ . = ..() icon_state = "snap3" render_target = "*snap[id]" + +/obj/effect/frosty_breath + icon = 'icons/effects/effects.dmi' + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + layer = ABOVE_MOB_LAYER + anchored = TRUE + +/obj/effect/frosty_breath/Initialize(mapload, mob/living/carbon/C) + . = ..() + dir = C.dir + if(C.buckled) + pixel_y = (C.buckled.buckle_offset + 10) + if(dir == NORTH) + layer = BELOW_MOB_LAYER + flick("breath_[C.lying_prev]", src) + QDEL_IN(src, 2 SECONDS) diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm index 6bca29d5448..61e2d02f1b1 100644 --- a/code/game/objects/structures/kitchen_spike.dm +++ b/code/game/objects/structures/kitchen_spike.dm @@ -93,9 +93,8 @@ victim.adjustBruteLoss(30) victim.setDir(2) buckle_mob(victim, force = TRUE) - var/matrix/m180 = matrix(victim.transform) - m180.Turn(180) - animate(victim, transform = m180, time = 3) + victim.set_lying_angle(180) + victim.update_transform() victim.pixel_y = victim.get_standard_pixel_y_offset(180) return TRUE diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index fca8b184d59..9c255f6f0c4 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -97,6 +97,8 @@ if(breath) loc.assume_air(breath) air_update_turf() + if(ishuman(src) && !internal && environment.temperature < 273 && environment.return_pressure() > 20) //foggy breath :^) + new /obj/effect/frosty_breath(loc, src) //Third link in a breath chain, calls handle_breath_temperature() /mob/living/carbon/proc/check_breath(datum/gas_mixture/breath) diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 9fea4a0e486..cf665c7e424 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ