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

A way to have monsters zombify into different results depending on their environment #79250

Closed
Karol1223 opened this issue Jan 19, 2025 · 14 comments · Fixed by #79429
Closed
Assignees
Labels
<Suggestion / Discussion> Talk it out before implementing

Comments

@Karol1223
Copy link
Contributor

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

For a long while now I've been musing on discord about buoyant flesh cocoons, but the issue is adding them to monsters that normally live in water means these same monsters cannot zombify on land anymore. On a similar note, currently giant dragonflies or other water bugs killed in rivers zombify into terrestrial amalgamations that cannot swim, which is also an issue.

Solution you would like.

A way to somehow have monsters choose between two zombification options, depending on what terrain the corpse is on. If in water choose X, if on land choose Y. This would mean that water bugs get to zombify into aquatic amalgamations when the corpse is in water, and into terrestrial amalgamations when the corpse is on land.

Ideally it'd be nice to have this handled through monstergroups, so that we don't have to define both cocoon types for every single mutant, but frankly, I'm not sure how I'd visualize the syntax for this to look from the monstergroup side of things (nor am I sure if zombification supports monstergroups at all, so this might be a non-starter)

Describe alternatives you have considered.

In an ideal world, it'd be nice to have the option to have a search radius so that the player cannot consciously force a corpse into an aquatic cocoon by throwing it into a 1x1 puddle in the middle of a swamp, but I expect that to be more complex.

In an even more ideal world, this would somehow include reviving as well, so that zombies that die underwater get to come back as swimmers in some form instead of reviving as the same self with no apparent adaptation. Given zombification and reviving are two separate fields and processes, I don't expect that to be possible.

Additional context

@GuardianDll you asked for it

@Karol1223 Karol1223 added the <Suggestion / Discussion> Talk it out before implementing label Jan 19, 2025
@GuardianDll GuardianDll self-assigned this Jan 19, 2025
@IdleSol
Copy link

IdleSol commented Jan 19, 2025

Is it possible to run EoC before turning a corpse into a cocoon? In EoC, make two checks:
a. omt type
b. surface terrain type

Result: AB - Ab - aB - ab. Where the capital letter is land and the lowercase letter is water. Depending on the result choose the type of cocoon, which is already turning into what you want.

Edit. Although it's probably better to do this through a function that will be called with EoC at the moment of death or cocooning.

@GuardianDll
Copy link
Member

EoC is not suitable here

@IdleSol
Copy link

IdleSol commented Jan 19, 2025

We need a chain: corpse - cocoon_1 - cocoon_2 - new_monster.

The corpse - cocoon_1 part, works the same as it does now. But cocoon_1 lives a short time and at the end of its life uses EoC and a suicide spell (if necessary).

"death_function": {
   some_EOC
}

EoC determines the conditions and their fulfillment. It then swaps cocoon_1 for cocoon_2. Cocoon_2 turns into a monster or one of a group of monsters according to the standard rules.

Accordingly, cocoon_1 is a certain universal cocoon. And cocoon_2 is already specialized, depending on external conditions. And monsters from it will be already specialized.

But maybe I have misunderstood you. And EoC can't detect omt and terrain type?

@GuardianDll
Copy link
Member

EoE cannot handle monster resurrection, it can only spawn monster directly

@IdleSol
Copy link

IdleSol commented Jan 20, 2025

Do we need to resurrect it?

Cocoon_1 should only start it (eoc), after which it can be destroyed or removed. And in its place we can create cocoon_2_water or cocoon_2_land.

@GuardianDll
Copy link
Member

Cocoon dies, eoc is fired, what eoc should do? it can of course evaluate what to spawn, but it can't tie spawning to this corpse, it can either spawn it right now, or spawn it in 8 hours, but only in this point, no matter what's the state of corpse

@IdleSol
Copy link

IdleSol commented Jan 20, 2025

So let him create one right now.

I'll try to take you step by step. I'll take this as an example: alpha razorclaw

"zombify_into": "mon_meat_cocoon_med",

  1. The monster alpha razorclaw dies and leaves a corpse behind
  2. After ... hours, the corpse turns into a cocoon: mon_meat_cocoon_med
  3. After the mon_meat_cocoon_med cocoon appears, the EoC starts and determines the conditions
  4. Runs the suicide spell.
  5. The cocoon explodes and frees up space for a new cocoon. It leaves nothing behind. No corpse or loot.
  6. EoC creates mon_meat_cocoon_med_water or mon_meat_cocoon_med_land at the same location.
  7. The new cocoon lives as long as it should
  8. After ... hours, a new amalgam hatches.

@GuardianDll
Copy link
Member

Why expanding eoc to handle monster revival if we can expand monster revival directly? Both require rather equal amount of work, but one is plain better

@GuardianDll
Copy link
Member

Better question to you @Karol1223: should assigning the monster to be revived happen when monster dies (as it happens right now), or instead it should happen in the end, before monster is about to be resurrected?

@Karol1223
Copy link
Contributor Author

Karol1223 commented Jan 21, 2025

Better question to you @Karol1223: should assigning the monster to be revived happen when monster dies (as it happens right now), or instead it should happen in the end, before monster is about to be resurrected?

If it was assigned when the monster dies, half of this wouldn't work, since players would be able to consciously cheeze the zombification process. I don't think that's acceptable.

@GuardianDll
Copy link
Member

GuardianDll commented Jan 21, 2025

so only when monster is about to revive?

@IdleSol
Copy link

IdleSol commented Jan 21, 2025

I don't really understand what benefit I can get out of it. But let's assume there is.

What's to stop me from moving the body to the right place? As well as luring him in and killing him there.

@GuardianDll
Copy link
Member

GuardianDll commented Jan 21, 2025

yeah i don't think cheesing is a big concern, if what evaluating the type of monster to be raized gotta be easier to cheese if you can just carry corpse to place X rather than killing monster at place X

@Karol1223
Copy link
Contributor Author

Karol1223 commented Jan 21, 2025

yeah i don't think cheesing is a big concern, if what evaluating the type of monster to be raized gotta be easier to cheese if you can just carry corpse to place X rather than killing monster at place X

It also just makes no sense from lore perspective. Ah yes, the monster was wet when it died, but now it's on land, so let's revive it into an aquatic thing (that can't even happen, because aquatic creatures cannot spawn on land in the first place).

This is not functional, makes no sense, and I don't see any reason to argue for it. If either of you wants to, you're wasting your time here. And more importantly you're wasting mine.

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

Successfully merging a pull request may close this issue.

3 participants