mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-26 17:41:05 +00:00
* 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 /🆑 * hygeienbots basic bots --------- Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
188 lines
9.3 KiB
Plaintext
188 lines
9.3 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,
|
|
|
|
//MODULAR SKYRAT ENTRIES
|
|
//PLEASE REFACTOR THESE AS YOU CAN
|
|
/mob/living/simple_animal/hostile/bigcrab,
|
|
/mob/living/simple_animal/hostile/blackmesa,
|
|
/mob/living/simple_animal/hostile/blackmesa/blackops,
|
|
/mob/living/simple_animal/hostile/blackmesa/blackops/ranged,
|
|
/mob/living/simple_animal/hostile/blackmesa/hecu,
|
|
/mob/living/simple_animal/hostile/blackmesa/hecu/ranged,
|
|
/mob/living/simple_animal/hostile/blackmesa/hecu/ranged/smg,
|
|
/mob/living/simple_animal/hostile/blackmesa/sec,
|
|
/mob/living/simple_animal/hostile/blackmesa/sec/ranged,
|
|
/mob/living/simple_animal/hostile/blackmesa/xen,
|
|
/mob/living/simple_animal/hostile/blackmesa/xen/bullsquid,
|
|
/mob/living/simple_animal/hostile/blackmesa/xen/headcrab,
|
|
/mob/living/simple_animal/hostile/blackmesa/xen/headcrab/fast,
|
|
/mob/living/simple_animal/hostile/blackmesa/xen/headcrab_zombie,
|
|
/mob/living/simple_animal/hostile/blackmesa/xen/headcrab_zombie/gordon_freeman,
|
|
/mob/living/simple_animal/hostile/blackmesa/xen/headcrab_zombie/guard,
|
|
/mob/living/simple_animal/hostile/blackmesa/xen/headcrab_zombie/hecu,
|
|
/mob/living/simple_animal/hostile/blackmesa/xen/headcrab_zombie/hev,
|
|
/mob/living/simple_animal/hostile/blackmesa/xen/headcrab_zombie/scientist,
|
|
/mob/living/simple_animal/hostile/blackmesa/xen/houndeye,
|
|
/mob/living/simple_animal/hostile/blackmesa/xen/nihilanth,
|
|
/mob/living/simple_animal/hostile/blackmesa/xen/vortigaunt,
|
|
/mob/living/simple_animal/hostile/blackmesa/xen/vortigaunt/slave,
|
|
/mob/living/simple_animal/hostile/cazador,
|
|
/mob/living/simple_animal/hostile/cult,
|
|
/mob/living/simple_animal/hostile/cult/assassin,
|
|
/mob/living/simple_animal/hostile/cult/ghost,
|
|
/mob/living/simple_animal/hostile/cult/horror,
|
|
/mob/living/simple_animal/hostile/cult/magic,
|
|
/mob/living/simple_animal/hostile/cult/magic/elite,
|
|
/mob/living/simple_animal/hostile/cult/mannequin,
|
|
/mob/living/simple_animal/hostile/cult/spear,
|
|
/mob/living/simple_animal/hostile/cult/warrior,
|
|
/mob/living/simple_animal/hostile/devourdem,
|
|
/mob/living/simple_animal/hostile/engorge,
|
|
/mob/living/simple_animal/hostile/evilborg,
|
|
/mob/living/simple_animal/hostile/evilborg/bigguy,
|
|
/mob/living/simple_animal/hostile/evilborg/dog,
|
|
/mob/living/simple_animal/hostile/evilborg/dogstrong,
|
|
/mob/living/simple_animal/hostile/evilborg/engi,
|
|
/mob/living/simple_animal/hostile/evilborg/heavy,
|
|
/mob/living/simple_animal/hostile/evilborg/peace,
|
|
/mob/living/simple_animal/hostile/evilborg/protect,
|
|
/mob/living/simple_animal/hostile/evilborg/roomba,
|
|
/mob/living/simple_animal/hostile/evilborg/sec,
|
|
/mob/living/simple_animal/hostile/looter,
|
|
/mob/living/simple_animal/hostile/looter/big,
|
|
/mob/living/simple_animal/hostile/looter/crusher,
|
|
/mob/living/simple_animal/hostile/looter/ranged,
|
|
/mob/living/simple_animal/hostile/looter/ranged/space,
|
|
/mob/living/simple_animal/hostile/looter/ranged/space/laser,
|
|
/mob/living/simple_animal/hostile/mannequin,
|
|
/mob/living/simple_animal/hostile/megafauna/bubblegum/no_gps,
|
|
/mob/living/simple_animal/hostile/megafauna/gladiator,
|
|
/mob/living/simple_animal/hostile/megafauna/hierophant/astrum,
|
|
/mob/living/simple_animal/hostile/mutantliz,
|
|
/mob/living/simple_animal/hostile/plantmutant,
|
|
/mob/living/simple_animal/hostile/scorpion,
|
|
/mob/living/simple_animal/hostile/syndimouse,
|
|
/mob/living/simple_animal/hostile/trog,
|
|
/mob/living/simple_animal/hostile/true_changeling,
|
|
/mob/living/simple_animal/hostile/vox,
|
|
/mob/living/simple_animal/hostile/vox/melee,
|
|
/mob/living/simple_animal/hostile/vox/ranged,
|
|
/mob/living/simple_animal/hostile/vox/ranged/laser,
|
|
/mob/living/simple_animal/hostile/vox/ranged/space,
|
|
/mob/living/simple_animal/hostile/vox/ranged/space/laser,
|
|
/mob/living/simple_animal/hostile/zombie/cheesezombie,
|
|
/mob/living/simple_animal/hostile/zombie/nocorpse,
|
|
/mob/living/simple_animal/pet/gondola/funky,
|
|
/mob/living/simple_animal/pet/poppy,
|
|
|
|
// 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.")
|