Files
Bubberstation/code/modules/unit_tests/simple_animal_freeze.dm
T
Ben10OmintrixandGitHub 4476689439 hygeienbots basic bots (#80435)
## About The Pull Request
turns hygenic bots into basic bots. also now PAIs and people can play as
hygeinebots. and they can wear hats

## Why It's Good For The Game
transforms hyginebots into basic bots. their old AI used to handle all
the logic. i moved some of the logic to the mob itself so players can
also clean (or burn) things. also this pr will add pathing limits to
bots, in the case the jps movement thinks it can reach something, but
actually cant, in which case the bot will give up the chase

## Changelog
🆑
refactor: hygeinebots are now basic bots. please report all the bugs
fix: fixes hygenebots not being able to patrol
add: hygeinebots can now be controlled by Players
/🆑
2023-12-30 20:24:36 -08:00

113 lines
5.5 KiB
Plaintext

/// Tests that no new simple_animal subtypes are added.
/datum/unit_test/simple_animal_freeze
// !!! DO NOT ADD NEW ENTRIES TO THIS LIST !!!
// NO new simple animals are allowed.
// Use the new basic mobs system instead.
// If you are refactoring a simple_animal, REMOVE it from this list
var/list/allowed_types = list(
/mob/living/simple_animal/bot,
/mob/living/simple_animal/bot/firebot,
/mob/living/simple_animal/bot/floorbot,
/mob/living/simple_animal/bot/mulebot,
/mob/living/simple_animal/bot/mulebot/paranormal,
/mob/living/simple_animal/bot/secbot,
/mob/living/simple_animal/bot/secbot/beepsky,
/mob/living/simple_animal/bot/secbot/beepsky/armsky,
/mob/living/simple_animal/bot/secbot/beepsky/jr,
/mob/living/simple_animal/bot/secbot/beepsky/officer,
/mob/living/simple_animal/bot/secbot/beepsky/ofitser,
/mob/living/simple_animal/bot/secbot/ed209,
/mob/living/simple_animal/bot/secbot/genesky,
/mob/living/simple_animal/bot/secbot/grievous,
/mob/living/simple_animal/bot/secbot/grievous/toy,
/mob/living/simple_animal/bot/secbot/honkbot,
/mob/living/simple_animal/bot/secbot/pingsky,
/mob/living/simple_animal/bot/vibebot,
/mob/living/simple_animal/hostile,
/mob/living/simple_animal/hostile/alien,
/mob/living/simple_animal/hostile/alien/drone,
/mob/living/simple_animal/hostile/alien/maid,
/mob/living/simple_animal/hostile/alien/maid/barmaid,
/mob/living/simple_animal/hostile/alien/queen,
/mob/living/simple_animal/hostile/alien/queen/large,
/mob/living/simple_animal/hostile/alien/sentinel,
/mob/living/simple_animal/hostile/asteroid,
/mob/living/simple_animal/hostile/asteroid/curseblob,
/mob/living/simple_animal/hostile/asteroid/elite,
/mob/living/simple_animal/hostile/asteroid/elite/broodmother,
/mob/living/simple_animal/hostile/asteroid/elite/broodmother_child,
/mob/living/simple_animal/hostile/asteroid/elite/herald,
/mob/living/simple_animal/hostile/asteroid/elite/herald/mirror,
/mob/living/simple_animal/hostile/asteroid/elite/legionnaire,
/mob/living/simple_animal/hostile/asteroid/elite/legionnairehead,
/mob/living/simple_animal/hostile/asteroid/elite/pandora,
/mob/living/simple_animal/hostile/asteroid/polarbear,
/mob/living/simple_animal/hostile/asteroid/polarbear/lesser,
/mob/living/simple_animal/hostile/asteroid/wolf,
/mob/living/simple_animal/hostile/dark_wizard,
/mob/living/simple_animal/hostile/illusion,
/mob/living/simple_animal/hostile/illusion/escape,
/mob/living/simple_animal/hostile/illusion/mirage,
/mob/living/simple_animal/hostile/megafauna,
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner,
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/doom,
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/guidance,
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/hunter,
/mob/living/simple_animal/hostile/megafauna/bubblegum,
/mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination,
/mob/living/simple_animal/hostile/megafauna/clockwork_defender,
/mob/living/simple_animal/hostile/megafauna/colossus,
/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner,
/mob/living/simple_animal/hostile/megafauna/dragon,
/mob/living/simple_animal/hostile/megafauna/dragon/lesser,
/mob/living/simple_animal/hostile/megafauna/hierophant,
/mob/living/simple_animal/hostile/megafauna/legion,
/mob/living/simple_animal/hostile/megafauna/legion/medium,
/mob/living/simple_animal/hostile/megafauna/legion/medium/eye,
/mob/living/simple_animal/hostile/megafauna/legion/medium/left,
/mob/living/simple_animal/hostile/megafauna/legion/medium/right,
/mob/living/simple_animal/hostile/megafauna/legion/small,
/mob/living/simple_animal/hostile/megafauna/wendigo,
/mob/living/simple_animal/hostile/mimic,
/mob/living/simple_animal/hostile/mimic/copy,
/mob/living/simple_animal/hostile/mimic/copy/machine,
/mob/living/simple_animal/hostile/mimic/copy/ranged,
/mob/living/simple_animal/hostile/mimic/crate,
/mob/living/simple_animal/hostile/mimic/xenobio,
/mob/living/simple_animal/hostile/ooze,
/mob/living/simple_animal/hostile/ooze/gelatinous,
/mob/living/simple_animal/hostile/ooze/grapes,
/mob/living/simple_animal/hostile/retaliate,
/mob/living/simple_animal/hostile/retaliate/goose,
/mob/living/simple_animal/hostile/retaliate/goose/vomit,
/mob/living/simple_animal/hostile/vatbeast,
/mob/living/simple_animal/hostile/zombie,
/mob/living/simple_animal/pet,
/mob/living/simple_animal/pet/gondola,
/mob/living/simple_animal/pet/gondola/gondolapod,
/mob/living/simple_animal/pet/gondola/virtual_domain,
/mob/living/simple_animal/slime,
/mob/living/simple_animal/slime/pet,
/mob/living/simple_animal/slime/random,
/mob/living/simple_animal/slime/transformed_slime,
/mob/living/simple_animal/soulscythe,
// DO NOT ADD NEW ENTRIES TO THIS LIST
// READ THE COMMENT ABOVE
)
/datum/unit_test/simple_animal_freeze/Run()
var/list/seen = list()
// Sanity check, to prevent people from just doing a mass find and replace
for (var/allowed_type in allowed_types)
if (allowed_type in seen)
TEST_FAIL("[allowed_type] is in the allowlist more than once")
else
seen[allowed_type] = TRUE
TEST_ASSERT(ispath(allowed_type, /mob/living/simple_animal), "[allowed_type] is not a simple_animal. Remove it from the list.")
for (var/subtype in subtypesof(/mob/living/simple_animal))
if (!(subtype in allowed_types))
TEST_FAIL("No new simple_animal subtypes are allowed. Please refactor [subtype] into a basic mob.")