[MIRROR] Polymorph belt blacklists several biotypes instead of allowing only organics [MDB IGNORE] (#23620)

* Polymorph belt blacklists several biotypes instead of allowing only organics (#78229)

## About The Pull Request

Title; this makes the belt able to morph into _more_ mobs, but _less
problematic/abusable_ mobs hopefully. It still only functions on
basic/simple_animals, however.

~~Headslugs get a `MOB_UNDEAD` bioflag to prevent morphing into them
completely. Though catching a sentient ling slug and morphing everyone
into it is funny, it's only funny the first 5 times someone does it.
(disclaimer: this is an approximation, i did not actually see a
polymorph belt in-game because i currently play miner and like 10 games
a week tops)
Arguably, this isn't ideal, but it's the closest we get unless we rename
`MOB_EPIC` or something into `MOB_SPECIAL` and let that one be the go-to
bioflag for mobs we don't want **fun** things happen to.~~
`MOB_EPIC` is now `MOB_SPECIAL`. Headslugs get that.
I think the alternative methow could use whatever the gold cores use to
determine what to spawn but that would shift the mobs available for the
belt even more and I can't be assed to figure out how _much_ of a shift
that would be. Dragons or slimes or lavaland mobs would be out, for
example. Don't really vibe with that.

Fixes headslug's description bit that discerns a sentient slug from an
AI one showing up on a dead slug. It can't move while it's dead, no
matter its mind/AI.

Also adds simple dmdoc comments to the defines to help discern a few of
them more easily. Non-quip text suggestions welcome.

## Why It's Good For The Game
- Resolves #77756
- Resolves #78227

More mobs available for the funny belt but less _fun_ mobs should allow
for more stable use of the damn thing. Arguably, some of the mobs that
have been found to be incompatible with the belt are simply lacking a
`MOB_ORGANIC` flag, some of them with no apparent reason. However,
blacklisting potentially problematic biotypes should be easier to design
the unwanted mobs around.
Also consistency, less all-ling stations, code clarity. Whatever.

## Changelog

🆑
balance: polymorph belt now blacklists mobs that are undead, humanoid,
robotic or spiritual (in nature, not religiously), as well as megafauna
balance: however, this means that it works with more mobs that it should
logically work with, like slimes/bugs/lightgeists etc
fix: fixed headslug shenanigans with the polymorph belt hopefully for
good this time
fix: fixed headslug description mentioning its movement despite the slug
being dead
/🆑

* Polymorph belt blacklists several biotypes instead of allowing only organics

---------

Co-authored-by: Sealed101 <cool.bullseye@yandex.ru>
This commit is contained in:
SkyratBot
2023-09-10 21:43:42 -04:00
committed by GitHub
co-authored by Sealed101
parent 71ae83df92
commit 8248bb90df
9 changed files with 29 additions and 16 deletions
@@ -6,7 +6,7 @@
icon_living = "star_gazer"
pixel_x = -32
base_pixel_x = -32
mob_biotypes = MOB_HUMANOID | MOB_EPIC
mob_biotypes = MOB_HUMANOID | MOB_SPECIAL
response_help_continuous = "passes through"
response_help_simple = "pass through"
speed = -0.2
@@ -18,6 +18,7 @@
attack_verb_simple = "chomp"
attack_sound = 'sound/weapons/bite.ogg'
attack_vis_effect = ATTACK_EFFECT_BITE
mob_biotypes = MOB_ORGANIC|MOB_SPECIAL
faction = list(FACTION_CREATURE)
obj_damage = 0
environment_smash = ENVIRONMENT_SMASH_NONE
@@ -39,10 +40,11 @@
/mob/living/basic/headslug/examine(mob/user)
. = ..()
if(isnull(client))
. += span_notice("It appears to be moving around listlessly.")
else
. += span_warning("It's moving around intelligently!")
if(stat != DEAD)
if(isnull(client))
. += span_notice("It appears to be moving around listlessly.")
else
. += span_warning("It's moving around intelligently!")
if (egg_lain)
. += span_notice("Its reproductive equipment appears to have withered.")