From 89a5f7e7e47167cc92ce67149497ecf5b950a110 Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Mon, 1 Mar 2021 23:29:21 +0100 Subject: [PATCH] [MIRROR] Fixes the randomly failing unit test that sometimes happens. (#3746) * Fixes the randomly failing unit test that sometimes happens. (#57266) * Fixes the randomly failing unit test that sometimes happens. Co-authored-by: Thalpy <33956696+Thalpy@users.noreply.github.com> --- code/modules/projectiles/projectile/special/curse.dm | 4 ++++ .../reagents/impure_reagents/impure_medicine_reagents.dm | 2 ++ 2 files changed, 6 insertions(+) diff --git a/code/modules/projectiles/projectile/special/curse.dm b/code/modules/projectiles/projectile/special/curse.dm index 9297e283fec..dcb2a2a2b52 100644 --- a/code/modules/projectiles/projectile/special/curse.dm +++ b/code/modules/projectiles/projectile/special/curse.dm @@ -26,6 +26,8 @@ return ..() /obj/projectile/curse_hand/fire(setAngle) + if(QDELETED(src)) //I'm going to try returning nothing because if it's being deleted, surely we don't want anything to happen? + return if(starting) arm = starting.Beam(src, icon_state = "curse[handedness]", beam_type=/obj/effect/ebeam/curse_arm) ..() @@ -44,6 +46,8 @@ leftover.icon_state = icon_state for(var/obj/effect/temp_visual/dir_setting/curse/grasp_portal/G in starting) qdel(G) + if(!T) //T can be in nullspace when src is set to QDEL + return new /obj/effect/temp_visual/dir_setting/curse/grasp_portal/fading(starting, dir) var/datum/beam/D = starting.Beam(T, icon_state = "curse[handedness]", time = 32, beam_type=/obj/effect/ebeam/curse_arm) animate(D.visuals, alpha = 0, time = 32) diff --git a/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm index 9b33c3fb897..21a3426167a 100644 --- a/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm @@ -82,6 +82,8 @@ playsound(spawn_turf, 'sound/effects/curse2.ogg', 80, TRUE, -1) var/obj/projectile/curse_hand/hel/hand = new (spawn_turf) hand.preparePixelProjectile(owner, spawn_turf) + if(QDELETED(hand)) //safety check if above fails - above has a stack trace if it does fail + return hand.fire() /datum/reagent/inverse/helgrasp/on_mob_delete(mob/living/owner)