CleverRaven / Cataclysm-DDA

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

Limb Project outline and MVP #70703

Open Venera3 opened 9 months ago

Venera3 commented 9 months ago

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

Limb Stuff has been chugging along for the last few cycles, if a good bit slower than desired. This cycle got it to the level where limbs could be added and not break loudly, while the base infrastructure for them still being far too patchy for primetime.

This issue aims to lay down the steps necessary for Actual Limb Stuff to work and allow others to tackle parts of them should I get indisposed again, and to aggregate outstanding issues on the current limb system.

Solution you would like.

Stage 1:

Stage 2:

Stage 3:

Describe alternatives you have considered.

Revert limby stuff until Everything Just Works - not cool, and keeping people working in this space helps set up the system. Keep the current content in mainline and try to fix them - too high chance of constant character breakage without informed consent as both the systems shift and more limby content makes it into mainline. Go back to just being Creepy Crawlies and Medicine Guy - tempting.

Additional context

The above limbification TODO list is open to expansion, I've probably forgotten some major systems.

fairyarmadillo commented 9 months ago

Currently, losing one arm cancels any arm-related mutations, as does losing one leg. This doesn't always make a ton of sense, as you'd presumably still have one limb affected by whatever weirdness you had going on. I'm not totally sure what ought to happen instead.

It's apparently intended for some drastic mutations (like arm tentacles) to regrow your arms when they are acquired. This won't work in cases like the one in #70479 where feathered arms is a prereq for bird wings. The simplest solution I can think of is to add a SUPPRESSES json entry that lets you keep the mutation in your character sheet but prevents you from getting the effects. That still wouldn't work for stuff like paws, where you'd go from being a bear with two paws to a bear with one human arm, and it's especially tricky for cases where the mutation doesn't come with a limb json.

Venera3 commented 9 months ago

The hand-defined stubbing is set up very restrictively, and will need serious thought put into it - it's one of the areas we'll need a generic way to handle before the cancel lists balloon to the stars. We'll see how it all shakes out but I don't think it's scaleable in any way currently.

GuardianDll commented 9 months ago

It mostly depends on how we will handle mutations in the future - if we be able to jsonify it completely using EoC, i can clearly see that we can setup generified EoC that handle limb grow

Venera3 commented 9 months ago

I have a limb growth EoC chain I'll be able to add to the mod shortly - a big plus of the mod route is get stuff out early, before getting lost in the minor details.

That said stump handling and such is both enticing (since then you can have detrimental limbs you need to surgically remove/trim) and not straightforward in the least.