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

Take zombification and rotting into account with mon_null in monster upgrades #64222

Open
NetSysFire opened this issue Mar 13, 2023 · 0 comments
Labels
[C++] Changes (can be) made in C++. Previously named `Code` Help Wanted Not particularly urgent or easy (see Good First Issue for this), but help is appreciated with this! Monsters Monsters both friendly and unfriendly. (P4 - Low) Low priority issues: things which are e.g exotic, minor and/or hard to encounter <Suggestion / Discussion> Talk it out before implementing

Comments

@NetSysFire
Copy link
Member

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

Discovered in #64142. When you have an early game monster like this and want it to die at some point to zombify, their fresh(!) corpses will be spawned in newly explored locations.

Have e.g the following for feral humans:

"upgrades": { "half_life": 90, "into": "mon_null" }

Indicating that the monster should pretty much die out within a year or two. Then use the debug menu to set the time to 5 years from now. Teleport into any city that has not been explored yet and you will see fresh corpses.

Solution you would like.

  1. When spawning mon_null (aka a corpse), check the age of the monster.
  2. If the previous monster could zombify, check if it has zombified by then and if yes, spawn the zombie and upgrade it, too.
  3. If it does not zombify, check if the corpse has rotted away by then and if so, let it rot.
  4. If it did neither rot nor zombify yet, apply the age to the resulting corpse. So you could spawn "corpse of a feral human (old)" on newly explored locations.

Describe alternatives you have considered.

There are a few edge cases that need to be considered. For example very cold locations like ice labs where corpses would not or only slowly rot. An additional parameter like "no_rot_check" might work for this.

Additional context

No response

@NetSysFire NetSysFire added <Suggestion / Discussion> Talk it out before implementing [C++] Changes (can be) made in C++. Previously named `Code` Monsters Monsters both friendly and unfriendly. Help Wanted Not particularly urgent or easy (see Good First Issue for this), but help is appreciated with this! (P4 - Low) Low priority issues: things which are e.g exotic, minor and/or hard to encounter labels Mar 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[C++] Changes (can be) made in C++. Previously named `Code` Help Wanted Not particularly urgent or easy (see Good First Issue for this), but help is appreciated with this! Monsters Monsters both friendly and unfriendly. (P4 - Low) Low priority issues: things which are e.g exotic, minor and/or hard to encounter <Suggestion / Discussion> Talk it out before implementing
Projects
None yet
Development

No branches or pull requests

1 participant