From e9d209761070c374d9d0a79b2090daf4a7d00ba9 Mon Sep 17 00:00:00 2001 From: vuonojenmustaturska Date: Wed, 11 Apr 2018 15:28:13 +0300 Subject: [PATCH 1/2] Fixes warp whistle invis bug (#37077) * Update artefact.dm * review --- .../antagonists/wizard/equipment/artefact.dm | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index cd2e4f60f0..a2b885f777 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -352,6 +352,11 @@ return TRUE return FALSE +/obj/item/warpwhistle/proc/end_effect(mob/living/carbon/user) + user.invisibility = initial(user.invisibility) + user.status_flags &= ~GODMODE + user.canmove = TRUE + /obj/item/warpwhistle/attack_self(mob/living/carbon/user) if(!istype(user) || on_cooldown) return @@ -359,7 +364,7 @@ last_user = user var/turf/T = get_turf(user) playsound(T,'sound/magic/warpwhistle.ogg', 200, 1) - user.canmove = 0 + user.canmove = FALSE new /obj/effect/temp_visual/tornado(T) sleep(20) if(interrupted(user)) @@ -368,6 +373,7 @@ user.status_flags |= GODMODE sleep(20) if(interrupted(user)) + end_effect(user) return var/breakout = 0 while(breakout < 50) @@ -380,20 +386,16 @@ breakout += 1 new /obj/effect/temp_visual/tornado(T) sleep(20) + end_effect(user) if(interrupted(user)) return - user.invisibility = initial(user.invisibility) - user.status_flags &= ~GODMODE - user.canmove = 1 on_cooldown = 2 sleep(40) on_cooldown = 0 /obj/item/warpwhistle/Destroy() if(on_cooldown == 1 && last_user) //Flute got dunked somewhere in the teleport - last_user.invisibility = initial(last_user.invisibility) - last_user.status_flags &= ~GODMODE - last_user.canmove = 1 + end_effect(last_user) return ..() /obj/effect/temp_visual/tornado