CleverRaven / Cataclysm-DDA

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

Most human butchering products aren't considered cannibal food #75540

Closed Terrorforge closed 1 month ago

Terrorforge commented 2 months ago

Describe the bug

Other than "chunk of human flesh", most of the products you get from butchering a human do not have the "Consumed human flesh" vitamin and thus don't register as cannibal foods, nor does anything produced with them as ingredients. A raw human liver turns into perfectly ordinary "cooked liver", for example. This also includes some recipes that are explicitly supposed to be cannibalistic, like human lard.

Curiously, "scrap of human flesh" does have the vitamin, but processing it still tends to turn it into non-cannibal versions. Cooked scrap of meat has NUTRIENT_OVERRIDE so I guess that makes sense, but it also happens when turning it into jerky which doesn't, so idk what's up with that.

Attach save file

New Mind-trimmed.tar.gz

Steps to reproduce

  1. Butcher a human
  2. Look at the pieces and note the lack of vitamin
  3. Cook the pieces in various ways

Expected behavior

Eating human is cannibalism, regardless of which part of the human you eat.

Screenshots

image Raw human flesh. Note the presence of the "Consumed human flesh" vitamin and the warning that "This food contains human flesh." image Human flesh turned into jerky. Note that it still has the vitamin, still gives the text warning, and gains the special name "jerk jerky". This is as it shold be.

image Raw human liver. Note the lack of "Ate human meat" vitamin image Cooked human liver. Still no vitamin and no warning

image Scrap of human flesh. Does have vitamin and warning. image After turning into jerky. Note that it's totally normal "meat jerky" with no vitamin and no warning, not jerk jerky.

image Human lard is apparently not a cannibal food either, despite being called "human lard".

Versions and configuration

Additional context

No response

PatrikLundell commented 2 months ago

I believe I've seen similar issues with zombie gibs, where some things were described as the normal (i.e. animal) version. I think it was gibs from one of the exploding versions (i.e. some kind of monster factory) rather than the result of a powerful external attack.

Edit: .../json/items/comestibles/carnivore.json seems to contain the butchery products, and "human flesh" has "human_flesh_vitamin", 100 on addition to "meat_allergen", 1, while the other human butchery parts only seem to have the meat_allergen, excluding human_meat_scrap, which has it.

"mutant_human_flesh" seems to inherit mutant_toxin, but not get human_flesh_vitamin, which it probably should get. Not sure why "human_liver" gets "meat_allergen", 1 and "liver" doesn't. I would have thought liver should get it, human liver should inherit it as well as adding human_flesh_vitamin to it. Don't know if vitamins add on top of what they inherit or if they should have the vitamin addition within an "extend" clause.

In general: "meat_allergen" should probably be moved to the base versions of butchery products (it's done in some cases, like "fat"), human_flesh_vitamin should be added to all human and mutant human products (typically replacing "meat_allergen", which seems to have been thought at times to indicate human for some reason), and mutant_toxin ensured to be present on all mutant stuff. However does it should first know whether the vitamins section adds to inherited data or replaces it.

zombie appendages are only marked with meat_allergen, but should presumably have toxins. Looks like tainted marrow (and probably others) also uses "meat_allergen" instead of mutant_toxin.

Basically, the whole file would benefit from an overhaul.

Edit 2: .../json/harvest.json also needs an overhaul:

Karol1223 commented 2 months ago

Edit 2: .../json/harvest.json also needs an overhaul:

* a lot of mutant critters seem to drop raw_leather, but raw_tainted_leather exists?

* For some reason everything seem to have normal stomachs, i.e. no mutated ones.

* mutant_mammal_small_fur has bone rather than tainted_bone

* mutant_mammal_fur: bone

* mutant_mammal_large_fur: bone

* human_fur: bone

* human_large_fur: bone

* mutant_mammal_leather: bone

* mutant_mammal_large_leather: bone

* mutant_animal_noskin: bone

* mutant_animal_large_noskin: bone

* mutant_bird: bone

* mutant_bird_flightless: bone

* tusked_moose_with_skull: bone

* dog_with_skull_fur_mutant: bone

* raccoon_with_skull_mutant: bone

* dog_triclopean_with_skull: only skull mutant?

* spideer_with_skull: bone, raw_leather

* cerbearus: bone

This just sounds like you're confusing mutants and zombies here. Mutants never dropped any tainted stuff, and they're not supposed to either. It would be a bug if they dropped tainted bones more than it is them dropping normal ones.

On top of that, the triclopean dog isn't a mutant either - it's altered by the nether, so it uses normal dog harvestlists on purpose.

PatrikLundell commented 2 months ago

Mutants drop a whole bunch of mutant stuff that's tainted, but not the bones (or the sinews, but there's only a single version of those, which is inedible anyway). Now, if mutant bones existed they ought to use those, but the next closest thing would be tainted, in my view. It's weird that everything in mutants is tainted except the bones (and thus their resultant products).

Karol1223 commented 2 months ago

Mutants drop a whole bunch of mutant stuff that's tainted, but not the bones (or the sinews, but there's only a single version of those, which is inedible anyway). Now, if mutant bones existed they ought to use those, but the next closest thing would be tainted, in my view. It's weird that everything in mutants is tainted except the bones (and thus their resultant products).

I don't disagree about them needing their own version of bones, but I do disagree about substituting them with tainted things. This is not something that needs an urgent bandaid fix. It can wait until it's done well.

GuardianDll commented 1 month ago

Can't reproduce: butchered random NPC i debug spawned image Butchered debug spawned feral axeman image

PatrikLundell commented 1 month ago

@GuardianDll: I think you missed the point, as your screenshots don't address it, and I may be guilty of diverting attention away from it with my posts above. The (main) issue isn't that butchered humans aren't resulting in human parts, but that some of said parts aren't converting food made out of them into cannibal food, because they lack the "vitamin" that carries that information.

GuardianDll commented 1 month ago

Aha, i missed this fact, my bad

RedMisao commented 1 month ago

This issue is preventing the use of a hidden "human_product" vitamin, which would make tracking vampiric stuff much easier and straightforward.