From bb4d4634f98ea472439023335c14ab3043daffdf Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Thu, 15 Mar 2018 23:50:14 -0400 Subject: [PATCH] POLARIS: Adds an animation thing, uses it on ventcrawls --- code/modules/mob/animations.dm | 36 +++++++++++++++++++++++++++++ code/modules/ventcrawl/ventcrawl.dm | 1 + 2 files changed, 37 insertions(+) diff --git a/code/modules/mob/animations.dm b/code/modules/mob/animations.dm index 5f120e94094..f54035596b3 100644 --- a/code/modules/mob/animations.dm +++ b/code/modules/mob/animations.dm @@ -144,6 +144,42 @@ note dizziness decrements automatically in the mob's Life() proc. //reset the pixel offsets to zero is_floating = 0 +/atom/movable/proc/fade_towards(atom/A,var/time = 2) + set waitfor = FALSE + + var/pixel_x_diff = 0 + var/pixel_y_diff = 0 + var/pixel_z_diff = 0 + var/direction = get_dir(src, A) + if(direction & NORTH) + pixel_y_diff = 32 + else if(direction & SOUTH) + pixel_y_diff = -32 + + if(direction & EAST) + pixel_x_diff = 32 + else if(direction & WEST) + pixel_x_diff = -32 + + if(!direction) // On top of? + pixel_z_diff = -8 + + var/default_pixel_x = initial(pixel_x) + var/default_pixel_y = initial(pixel_y) + var/default_pixel_z = initial(pixel_z) + var/initial_alpha = alpha + var/mob/mob = src + if(istype(mob)) + default_pixel_x = mob.default_pixel_x + default_pixel_y = mob.default_pixel_y + + animate(src, alpha = 0, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff, pixel_z = pixel_z + pixel_z_diff, time = time) + sleep(time+1) //So you can wait on this proc to finish if you want to time your next steps + pixel_x = default_pixel_x + pixel_y = default_pixel_y + pixel_z = default_pixel_z + alpha = initial_alpha + /atom/movable/proc/do_attack_animation(atom/A) var/pixel_x_diff = 0 diff --git a/code/modules/ventcrawl/ventcrawl.dm b/code/modules/ventcrawl/ventcrawl.dm index 4741038cf4b..91424240a2a 100644 --- a/code/modules/ventcrawl/ventcrawl.dm +++ b/code/modules/ventcrawl/ventcrawl.dm @@ -154,6 +154,7 @@ var/list/ventcrawl_machinery = list( if(HAZARD_HIGH_PRESSURE to INFINITY) to_chat(src, "You feel a roaring wind pushing you away from the vent!") + fade_towards(vent_found,45) if(!do_after(src, 45, vent_found, 1, 1)) return if(!can_ventcrawl())