mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-19 22:23:11 +00:00
* Organ movement refactor *Un-nullspaces your organs* * Fix conflicts I checked the conflicts on the two weird conflicts and no previous TG pr touches them i assume its just github being github because those shoulden't be conflicts *shrug * Fix #1 uhh...this is going to be a long one * Fix #2 Modular Movement Flags * Fix #3 It builds now * Fix #4 Oh god it builds now, I missed some things * Fix #5 No more Runtimesplosion Now time for Synths * Update nightmare_organs.dm * on_mob_insert * https://github.com/Skyrat-SS13/Skyrat-tg/pull/25664 * https://github.com/Skyrat-SS13/Skyrat-tg/pull/25685 * https://github.com/Skyrat-SS13/Skyrat-tg/pull/25582 * https://github.com/Skyrat-SS13/Skyrat-tg/pull/25686 * bro the fucking brain does not go into the chest. * seriously? undocumented code causing shit. if it breaks ghouls, so be it. --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: SomeRandomOwl <somerandomowl@ratchtnet.com> Co-authored-by: SomeRandomOwl <2568378+SomeRandomOwl@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
91 lines
3.0 KiB
Plaintext
91 lines
3.0 KiB
Plaintext
/// Tests to make sure tail wagging behaves as expected
|
|
/datum/unit_test/tail_wag
|
|
// used by the stop_after test
|
|
var/timer_finished = FALSE
|
|
|
|
/datum/unit_test/tail_wag/Run()
|
|
var/mob/living/carbon/human/dummy = allocate(/mob/living/carbon/human/consistent)
|
|
var/obj/item/organ/external/tail/cat/dummy_tail = allocate(/obj/item/organ/external/tail/cat)
|
|
dummy_tail.Insert(dummy, special = TRUE, movement_flags = DELETE_IF_REPLACED)
|
|
|
|
// SANITY TEST
|
|
|
|
// start wagging
|
|
SEND_SIGNAL(dummy, COMSIG_ORGAN_WAG_TAIL, TRUE)
|
|
if(!(dummy_tail.wag_flags & WAG_WAGGING))
|
|
TEST_FAIL("Tail did not start wagging when it should have!")
|
|
|
|
// stop wagging
|
|
SEND_SIGNAL(dummy, COMSIG_ORGAN_WAG_TAIL, FALSE)
|
|
if(dummy_tail.wag_flags & WAG_WAGGING)
|
|
TEST_FAIL("Tail did not stop wagging when it should have!")
|
|
|
|
// TESTING WAG_ABLE FLAG
|
|
|
|
// flip the wag flag to unwaggable
|
|
dummy_tail.wag_flags &= ~WAG_ABLE
|
|
|
|
// try to wag it again
|
|
SEND_SIGNAL(dummy, COMSIG_ORGAN_WAG_TAIL, TRUE)
|
|
if(dummy_tail.wag_flags & WAG_WAGGING)
|
|
TEST_FAIL("Tail should not have the ability to wag, yet it did!")
|
|
|
|
// flip the wag flag to waggable again
|
|
dummy_tail.wag_flags |= WAG_ABLE
|
|
|
|
// start wagging again
|
|
SEND_SIGNAL(dummy, COMSIG_ORGAN_WAG_TAIL, TRUE)
|
|
if(!(dummy_tail.wag_flags & WAG_WAGGING))
|
|
TEST_FAIL("Tail did not start wagging when it should have!")
|
|
|
|
// TESTING STOP_AFTER
|
|
|
|
// stop wagging
|
|
SEND_SIGNAL(dummy, COMSIG_ORGAN_WAG_TAIL, FALSE)
|
|
if(dummy_tail.wag_flags & WAG_WAGGING)
|
|
TEST_FAIL("Tail did not stop wagging when it should have!")
|
|
|
|
// start wagging, stop after 0.1 seconds
|
|
SEND_SIGNAL(dummy, COMSIG_ORGAN_WAG_TAIL, TRUE, 0.1 SECONDS)
|
|
// because timers are a pain
|
|
addtimer(VARSET_CALLBACK(src, timer_finished, TRUE), 0.2 SECONDS)
|
|
if(!(dummy_tail.wag_flags & WAG_WAGGING))
|
|
TEST_FAIL("Tail did not start wagging when it should have!")
|
|
|
|
UNTIL(timer_finished) // wait a little bit
|
|
|
|
if(dummy_tail.wag_flags & WAG_WAGGING)
|
|
TEST_FAIL("Tail was supposed to stop wagging on its own after 0.1 seconds but it did not!")
|
|
|
|
// TESTING TAIL REMOVAL
|
|
|
|
// remove the tail
|
|
dummy_tail.Remove(dummy, special = TRUE)
|
|
|
|
// check if tail is still wagging after being removed
|
|
if(dummy_tail.wag_flags & WAG_WAGGING)
|
|
TEST_FAIL("Tail was still wagging after being removed!")
|
|
|
|
// try to wag the removed tail
|
|
SEND_SIGNAL(dummy, COMSIG_ORGAN_WAG_TAIL, TRUE)
|
|
if(dummy_tail.wag_flags & WAG_WAGGING)
|
|
TEST_FAIL("A disembodied tail was able to start wagging!")
|
|
|
|
// TESTING MOB DEATH
|
|
|
|
// put it back and start wagging again
|
|
dummy_tail.Insert(dummy, special = TRUE, movement_flags = DELETE_IF_REPLACED)
|
|
SEND_SIGNAL(dummy, COMSIG_ORGAN_WAG_TAIL, TRUE)
|
|
if(!(dummy_tail.wag_flags & WAG_WAGGING))
|
|
TEST_FAIL("Tail did not start wagging when it should have!")
|
|
|
|
// kill the mob, see if it stops wagging
|
|
dummy.adjustBruteLoss(9001)
|
|
if(dummy_tail.wag_flags & WAG_WAGGING)
|
|
TEST_FAIL("A mob's tail was still wagging after being killed!")
|
|
|
|
// check if we are still able to wag the tail after death
|
|
SEND_SIGNAL(dummy, COMSIG_ORGAN_WAG_TAIL, TRUE)
|
|
if(dummy_tail.wag_flags & WAG_WAGGING)
|
|
TEST_FAIL("A dead mob was able to wag their tail!")
|