CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.61k stars 4.17k forks source link

List of bugs related to monster evolution and spawning #76180

Open SirPendrak opened 2 months ago

SirPendrak commented 2 months ago

Is your feature request related to a problem? Please describe.

I was gathering a list in notebook for a few months. I will list all bugs I found, gather feedback from other people, and start creating PR's in next week. Most of the bugs are related to situation when monster uses copy-from, and lacks upgrades: FALSE. This can lead to situation when monster that is final upgrade of evolution line can evolve into something lame, like pupating zed. Or some advanced monsters can repetedly evolve into themselves. Or all boomers and gasbags can transform into each others endlessly. Same for pupating zeds.

There are also some quirks with evolutiongroups, standard zed can skip some steps, and evolve directly into screecher zombie, skipping shrieker zombie. Or to zombie brute skipping zombie bruiser. In addition, standard zed can evolve into tough zombie, which is baisicaly just more fit human that got zombified.

Also, there are still some evolved zombies in mundane, day 1 zombie groups, like static zombies, and zombie boomers.

Feral humans often lack "upgrades", and they inherit upgrade options from base zombie, so after few days they evolve into something random, not matching the monster they would ressurect into if they died. Most of the time they should use the same monster as in their "zombify_into" codeline.

Another weirdness is fact that some zombies who show tendency to evolve into more specified variant do it 100% of the time (runner zombie -> 100% chance for zombie hunter), while for example tough zombie has regular zombie evolution possibilities. Ideally, these zombies should evolve into their ovn group, something like this: "GROUP_ZOMBIE_TOUGH_UPGRADE" "monsters": [ { "monster": "mon_zombie_bruiser", "weight": 300 }, { "group": "GROUP_ZOMBIE_UPGRADE", "weight": 700 } ]

Solution you would like.

LOOOONG list:

zed_lab

zed_misc

zed_soldiers

zed_survivor

zed_classic

nether

civilians

feral_humans

fish

insect_spider

mutant

starers

zed-pupating

zed_explosive Split boomers and gasbags. Change "GROUP_ZOMBIE_FAT" so it includes "mon_boomer", "mon_zombie_gasbag", "mon_zombie_relax_gasbag", "mon_zombie_tear_gasbag", "mon_zombie_pupa_decoy"

zed-burned I am not 100% sure on these, but it seems weird that they can unburn themselves. Also, there is some copy-from wierdness when metal wariants can evolve into non-metal variants.

zanimal_upgrades

rodentkin

fungus

zed_skeletal

zed-winged

zed_tentacle

zed_ferrous

Describe alternatives you have considered.

mutant

Additional context

My head hurts

Karol1223 commented 2 months ago

A bunch of those are my oversights from my copy-from chaining of zombies, but there are some I really don't follow.

mon_spider_jumping_mega - give it upgrades FALSE

Okay so what does that change, actually. If it did upgrade, it'd upgrade into itself, causing no effect. You've listed a lot of cases like this one. Does this actually cause some bug that you confirmed?

mon_centipede_mom - PROBABLY give it upgrades FALSE

This one is actually intended, I talked with Venera about this specific use case since the upgrades for it confused me. The idea is once it stops laying eggs it goes back to being a normal giant centipede. A little clunky but the logic tracks.

SirPendrak commented 2 months ago

A bunch of those are my oversights from my copy-from chaining of zombies, but there are some I really don't follow.

mon_spider_jumping_mega - give it upgrades FALSE

Okay so what does that change, actually. If it did upgrade, it'd upgrade into itself, causing no effect. You've listed a lot of cases like this one. Does this actually cause some bug that you confirmed?

This is a bug more by definition, but there is a case where it has impact on player. Imagine situation where you meet zombie master, a bunch of boneplate wolves, and a regular zombie. Boneplate wolves can evolve only into boneplate wolves. Zombie master is very likely to waste his special attack on doggos doing nothing. If the regular zed was accompanied by some other zed that is final line upgrade and has no "upgrades", zombie master would only upgrade mentioned regular zed.

Karol1223 commented 2 months ago

This is a bug more by definition, but there is a case where it has impact on player. Imagine situation where you meet zombie master, a bunch of boneplate wolves, and a regular zombie. Boneplate wolves can evolve only into boneplate wolves. Zombie master is very likely to waste his special attack on doggos doing nothing. If the regular zed was accompanied by some other zed that is final line upgrade and has no "upgrades", zombie master would only upgrade mentioned regular zed.

Right, but only one of the monsters you mentioned that this happens to is in the zombie faction from what I can see. Zombie master's usecase is hardcoded and until it is more widely in use, a hypothetical scenario like this just doesn't matter. Just about all the insects you listed are nonissues in this case.

SirPendrak commented 2 months ago

Yes, this currently has next to zero impact on the player. I dont know about performance of game engine, probably zero as well. Its just my opinion that mess hidden under carpet is still a mess, and these are trivial to fix

What if one day we will have messages about monsters evolving when player can see it?

Karol1223 commented 1 month ago

What if one day we will have messages about monsters evolving when player can see it?

Please don't worry about hypothetical problems that don't exist, nor do we have any indication there's any reason to assume they will. If something becomes a bug, then it'll be a bug, until then it isn't.