/
resist.dm
38 lines (26 loc) · 1.71 KB
/
resist.dm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/// 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/consistent)
TEST_ASSERT_EQUAL(human.fire_stacks, 0, "Human does not have 0 fire stacks pre-ignition")
human.adjust_fire_stacks(5)
human.ignite_mob()
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.
call_async(human, /mob/living/verb/resist)
//since resist() is a verb that possibly queues its actual execution for the next tick, we need to make the subsystem that handles the delayed execution process
//the callback. either that or sleep ourselves and see if it ran.
SSverb_manager.run_verb_queue()
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/consistent)
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()
//since resist() is a verb that possibly queues itself for the next tick, we need to make the subsystem that handles the delayed execution process
//the callback. either that or sleep ourselves and see if it ran.
SSverb_manager.run_verb_queue()
TEST_ASSERT(!(human in closet.contents), "Human resisted out of a standard closet, but was still in it")