Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

List of bugs related to monster evolution and spawning #76180

Open
SirPendrak opened this issue Sep 3, 2024 · 5 comments
Open

List of bugs related to monster evolution and spawning #76180

SirPendrak opened this issue Sep 3, 2024 · 5 comments
Labels
<Suggestion / Discussion> Talk it out before implementing

Comments

@SirPendrak
Copy link
Contributor

SirPendrak commented Sep 3, 2024

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-winged

  • winged brute - give it upgrades FALSE

zed_tentacle

  • mon_zombie_strider - give it upgrades FALSE

zed_ferrous

  • mon_zombie_shell - give it upgrades FALSE
  • mon_zombie_plated - give it upgrades FALSE
  • mon_zombie_urchin - give it upgrades FALSE
  • mon_zombie_hammer_hands - give it upgrades FALSE

zed_lab

  • mon_zombie_phase_shrike - give it upgrades FALSE

zed_misc

  • mon_frog_husk - CHANGE upgrades to FALSE

zed_skeletal

  • mon_skeleton_electric - give it upgrades FALSE

zed_soldiers

  • mon_zombie_soldier_acid_2 - give it upgrades FALSE
  • mon_zombie_military_pilot - give it upgrades into group {create new tough zombie evolution group}
  • mon_zombie_milbase_personnel - REMOVE upgrades into
  • mon_zombie_marine_upgrade - give it upgrades FALSE
  • mon_zombie_armored - give it upgrades FALSE, it could get some evolution later
  • mon_zombie_bio_op - probably give it upgrades into group GROUP_SOLDIER_UPGRADE

zed_survivor

  • mon_zombie_paramilitary - give it upgrades into group GROUP_SOLDIER_UPGRADE
  • mon_zombie_survivor_elite - give it upgrades into group GROUP_SOLDIER_UPGRADE

zed_classic

  • mon_zombie_cop - give it upgrades into group {create new tough zombie evolution group}
  • mon_zombie_swat - change upgrades into group GROUP_SOLDIER_UPGRADE
  • mon_zombie_fireman - give it upgrades into group {create new tough zombie evolution group}
  • mon_zombie_hazmat - remove upgrades false
  • mon_zombie_tough - give it upgrades into group {create new tough zombie evolution group}

nether

  • mon_XEDRA_officer - give it upgrades FALSE, but there is already PR doing it
  • mon_XEDRA_soldier - give it upgrades FALSE

civilians

  • tweak "GROUP_CIVILIANS_UPGRADE"
  • mon_civilian_police - give it { "half_life": 1, "age_grow": 1, "into_group": "new group with zombie cop and feral cop to choose" }

feral_humans

  • mon_feral_sapien_spear - give it "upgrades": { "half_life": 90, "into": "mon_zombie_survivor" }
  • mon_chud - give it "upgrades": { "half_life": 90, "into": "mon_zombie_shady" }
  • mon_feral_scientist_scalpel - give it "upgrades": { "half_life": 90, "into": "mon_zombie_scientist" }
  • mon_feral_labsecurity_9mm - give it "upgrades": { "half_life": 90, "into": "mon_zombie_labsecurity" }
  • mon_feral_prepper_mace - give it "upgrades": { "half_life": 90, "into": "mon_zombie_survivor" }
  • mon_feral_survivalist - give it "upgrades": { "half_life": 90, "into": "mon_zombie_survivor" }
  • mon_feral_militia - change "zombify_into": "mon_zombie_milbase_personnel" to "zombify_into": "mon_zombie_paramilitary",
    give it "upgrades": { "half_life": 90, "into": "mon_zombie_paramilitary" }
  • mon_feral_soldier - give it "upgrades": { "half_life": 90, "into": "mon_zombie_soldier" }
  • mon_feral_swimmer_kickboard - give it "upgrades": { "half_life": 90, "into": "mon_zombie_swimmer_base" }
  • mon_feral_sailor_wrench - give it "upgrades": { "half_life": 90, "into": "mon_zombie_sailor" }
  • mon_feral_marine_bayonet - give it "upgrades": { "half_life": 90, "into": "mon_zombie_marine" }
  • mon_feral_officer - give it "upgrades": { "half_life": 90, "into": "mon_zombie_officer" }
  • mon_feral_cop - give it "upgrades": { "half_life": 90, "into": "mon_zombie_cop" }
  • mon_feral_cop_fungal_infected - for some reason it lacks further fungal evolution that other fungal ferals have. Probably make one for it.

fish

  • mon_crayfish_mega - give it upgrades FALSE

fungus

  • mon_fungaloid_shambler - it has 12L and 160 kg, give it 120L

insect_spider

  • mon_pregnant_giant_cockroach - give it "upgrades": { "age_grow": 15, "into": "mon_giant_cockroach" }. The idea here is that it cycles between being pregnant and not being pregnant. You cant be perpetually pregnant, right?
  • mon_bee_mega - give it upgrades FALSE
  • mon_centipede_mom - PROBABLY give it upgrades FALSE
  • mon_fly_mega - give it upgrades FALSE
  • mon_mosquito_mega - give it upgrades FALSE
  • mon_spider_cellar_mom - PROBABLY change { "str": "mommy long-legs", "str_pl": "mommies long-legs" }, and
    give it upgrades FALSE
  • mon_spider_jumping_mega - give it upgrades FALSE
  • mon_spider_trapdoor_mega - give it upgrades FALSE
  • mon_spider_widow_mega - give it upgrades FALSE
  • mon_spider_web_mega - give it upgrades FALSE
  • mon_spider_wolf_mega - give it upgrades FALSE
  • mon_ant_acid_soldier_mega - give it upgrades FALSE
  • mon_ant_soldier_mega - give it upgrades FALSE
  • mon_locust_mega - give it upgrades FALSE
  • mon_mantis_mega - give it upgrades FALSE

mutant

  • mon_mutant_alpha - PROBABLY give it "burn_into" "mon_zombie_scorched"
  • mon_mutant_alpha_boss - PROBABLY give it "burn_into" "mon_zombie_child_scorched"

rodentkin

  • remove mundane, non-mutated rats from "GROUP_RATKIN_EVOLVED"
  • mon_tunnel_rat - give it upgrades FALSE
  • mon_pack_rat - give it upgrades FALSE
  • mon_teke_mouse - give it upgrades FALSE
  • mon_mausketeer - give it upgrades FALSE

starers

  • mon_starer_pipe - PROBABLY give it upgrades FALSE

zanimal_upgrades

  • mon_dog_howling - CHANGE upgrades to upgrades FALSE
  • mon_dog_scorched - PROBABLY give it upgrades FALSE, in line with change for other scorched ZEDs
  • mon_dog_skeleton_brute - give it upgrades FALSE
  • mon_zpig_brute - give it upgrades FALSE
  • mon_zombie_pig_gas - give it upgrades FALSE
  • mon_zougar_hunter - give it upgrades FALSE
  • mon_zombear_skeleton - give it upgrades FALSE
  • mon_zougar_shady - give it upgrades FALSE
  • mon_zombear_acidic - give it upgrades FALSE
  • mon_zombie_horse_white - give it upgrades FALSE
  • mon_zombie_horse_red - give it upgrades FALSE
  • mon_zombie_horse_black - give it upgrades FALSE
  • mon_zombie_horse_pale - give it upgrades FALSE
  • mon_zoose_brute - give it upgrades FALSE
  • mon_zoose_thorny - give it upgrades FALSE

zed-pupating

  • Change them a bit. They all should all start as pupa_decoy versions, and then they use age_grow to become real ones.
  • "mon_zombie_crawler_pupa" - PROBABLY give it UPGRADES FALSE
  • "mon_zombie_crawler_pupa_decoy" - give it "age_grow": 4, "into": "mon_zombie_crawler_pupa"
  • "mon_zombie_pupa" - PROBABLY give it UPGRADES FALSE
  • "mon_zombie_pupa_decoy" - give it "age_grow": 4, "into": "mon_zombie_pupa"
  • "mon_hulk_pupa_decoy" - give it "age_grow": 4, "into": "mon_hulk_pupa"
  • "mon_zombie_pupa_decoy_shady" - give it "age_grow": 4, "into": "mon_zombie_pupa_shady"
  • "mon_zombie_pupa_shady" - CHANGE copy from to "mon_zombie_pupa_decoy_shady", NOT "mon_zombie_pupa_decoy"

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"

  • mon_boomer - CHANGE "GROUP_ZOMBIE_BOOMER_UPGRADE" so it no longer includes regular BOOMER and 3 gasbag variants
  • mon_boomer_huge - give it upgrades FALSE, make it actually larger than regular boomer
  • mon_gas_zombie - give it upgrades FALSE
  • mon_zombie_gasbag - PROBABLY give it upgrades FALSE. It could evolve into relax or tear gasbags, but then regular toxic gas zombies would eventually become extinct
  • mon_zombie_relax_gasbag - give it upgrades FALSE
  • mon_zombie_tear_gasbag - give it upgrades FALSE
  • mon_boomer_glutton - give it upgrades FALSE
  • mon_boomer_claymore - give it upgrades FALSE

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.

  • mon_zombie_child_scorched - PROBABLY give it upgrades FALSE
  • mon_zombie_scorched_brute - PROBABLY give it upgrades FALSE
  • mon_zombie_scorched - PROBABLY give it upgrades FALSE
  • mon_zombie_scorched_lasher - PROBABLY give it upgrades FALSE

Describe alternatives you have considered.

mutant

  • mon_mutant_alpha - "zombify_into": "mon_zombie_tough" or maybe "mon_zombie_master"

Additional context

My head hurts

@SirPendrak SirPendrak added the <Suggestion / Discussion> Talk it out before implementing label Sep 3, 2024
@Karol1223
Copy link
Contributor

Karol1223 commented Sep 4, 2024

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
Copy link
Contributor Author

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
Copy link
Contributor

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
Copy link
Contributor Author

SirPendrak commented Sep 4, 2024

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
Copy link
Contributor

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.

akrieger added a commit that referenced this issue Sep 5, 2024
Correct some ``copy-from`` weirdness caught in #76180
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
<Suggestion / Discussion> Talk it out before implementing
Projects
None yet
Development

No branches or pull requests

2 participants