Files
Bubberstation/code/modules/unit_tests/dragon_expiration.dm
Arturlang 5f921601a3 Not doing portals no longer kills the dragon (#2596)
## About The Pull Request
When the dragon runs out of time to make a rift, instead of deleting the
dragon, they are given the dragon depression movespeed debuff.

## Why It's Good For The Game
You are forced to get into full on combat with everyone or be literally
deleted, this should give people a chance to RP as dragon, with dragon

## Proof Of Testing
Tested and it confirmed that it did not break the victory condition

## Changelog

🆑
del: Dragon no longer gets deleted if you don't do rifts, instead you
are given dragon depression, which slows you down heavily.
/🆑
2024-12-07 16:17:31 -07:00

36 lines
2.1 KiB
Plaintext

/// Unit test for the contents barfer element
/datum/unit_test/contents_barfer
/datum/unit_test/contents_barfer/Run()
var/mob/living/basic/space_dragon/dragon_time = allocate(/mob/living/basic/space_dragon)
var/mob/living/carbon/human/to_be_consumed = allocate(/mob/living/carbon/human/consistent)
to_be_consumed.adjust_fire_stacks(5)
to_be_consumed.ignite_mob()
TEST_ASSERT(dragon_time.eat(to_be_consumed), "The space dragon failed to consume the dummy!")
TEST_ASSERT(!to_be_consumed.has_status_effect(/datum/status_effect/fire_handler/fire_stacks), "The space dragon failed to extinguish the dummy!")
TEST_ASSERT_EQUAL(to_be_consumed.loc, dragon_time, "The dummy's location, after being successfuly consumed, was not within the space dragon's contents!")
dragon_time.death()
TEST_ASSERT(isturf(to_be_consumed.loc), "After dying, the space dragon did not eject the consumed dummy content barfer element.")
/// Unit tests that the space dragon - when its rift expires and it gets qdel'd - doesn't delete all the mobs it has eaten
/datum/unit_test/space_dragon_expiration
/datum/unit_test/space_dragon_expiration/Run()
var/mob/living/basic/space_dragon/dragon_time = allocate(/mob/living/basic/space_dragon)
var/mob/living/carbon/human/to_be_consumed = allocate(/mob/living/carbon/human/consistent)
dragon_time.mind_initialize()
var/datum/antagonist/space_dragon/dragon_antag_datum = dragon_time.mind.add_antag_datum(/datum/antagonist/space_dragon)
dragon_time.eat(to_be_consumed)
// BUBBER CHANGE START: dragon doesn't have a riftTimer anymore
dragon_time.death(TRUE)
QDEL_NULL(dragon_antag_datum.owner.current)
// dragon_antag_datum.riftTimer = dragon_antag_datum.maxRiftTimer + 1
// dragon_antag_datum.rift_checks()
// TEST_ASSERT(QDELETED(dragon_time), "The space dragon wasn't deleted after having its rift timer exceeded!")
TEST_ASSERT(!QDELETED(to_be_consumed), "After eating the dummy and dying, the dragon deleted the dummy instead!")
TEST_ASSERT(isturf(to_be_consumed.loc), "After eating the dummy and dying, the dragon did not eject the dummy! (Dummy's loc: [to_be_consumed.loc])")
// BUBBER CHANGE END