Fix resisting not starting stop, drop, and roll (#53079)

This commit is contained in:
Jared-Fogle
2020-08-20 19:57:03 -07:00
committed by GitHub
parent f3a73ebf1d
commit 4367f41b78
4 changed files with 32 additions and 2 deletions
+1 -1
View File
@@ -290,7 +290,7 @@
visible_message("<span class='danger'>[src] rolls on the floor, trying to put [p_them()]self out!</span>", \
"<span class='notice'>You stop, drop, and roll!</span>")
sleep(30)
if(fire_stacks <= 0)
if(fire_stacks <= 0 && !QDELETED(src))
visible_message("<span class='danger'>[src] successfully extinguishes [p_them()]self!</span>", \
"<span class='notice'>You extinguish yourself.</span>")
ExtinguishMob()
+1 -1
View File
@@ -792,7 +792,7 @@
resist_buckle()
//Breaking out of a container (Locker, sleeper, cryo...)
else if(loc)
else if(loc != get_turf(src))
loc.container_resist_act(src)
else if(mobility_flags & MOBILITY_MOVE)
+1
View File
@@ -24,6 +24,7 @@
#include "plantgrowth_tests.dm"
#include "reagent_id_typos.dm"
#include "reagent_recipe_collisions.dm"
#include "resist.dm"
#include "say.dm"
#include "siunit.dm"
#include "spawn_humans.dm"
+29
View File
@@ -0,0 +1,29 @@
/// Test that stop, drop, and roll lowers fire stacks
/datum/unit_test/stop_drop_and_roll/Run()
var/mob/living/carbon/human/human = allocate(/mob/living/carbon/human)
TEST_ASSERT_EQUAL(human.fire_stacks, 0, "Human does not have 0 fire stacks pre-ignition")
human.adjust_fire_stacks(5)
human.IgniteMob()
TEST_ASSERT_EQUAL(human.fire_stacks, 5, "Human does not have 5 fire stacks pre-resist")
// Stop, drop, and roll has a sleep call. This would delay the test, and is not necessary.
CallAsync(human, /mob/living/verb/resist)
TEST_ASSERT(human.fire_stacks < 5, "Human did not lower fire stacks after resisting")
/// Test that you can resist out of a container
/datum/unit_test/container_resist/Run()
var/mob/living/carbon/human/human = allocate(/mob/living/carbon/human)
var/obj/structure/closet/closet = allocate(/obj/structure/closet, get_turf(human))
closet.open(human)
TEST_ASSERT(!(human in closet.contents), "Human was in the contents of an open closet")
closet.close(human)
TEST_ASSERT(human in closet.contents, "Human was not in the contents of the closed closet")
human.resist()
TEST_ASSERT(!(human in closet.contents), "Human resisted out of a standard closet, but was still in it")