DFHack / dfhack

Memory hacking library for Dwarf Fortress and a set of tools that use it
Other
1.88k stars 476 forks source link

labormanager: prefer specific dwarves for hauling corpses #1378

Open bepzi opened 6 years ago

bepzi commented 6 years ago

With the new stress changes introduced in 44.10, it's become clear you can't let just anyone handle dead bodies. Specifically, it's now important that your fort has only a few dedicated corpse haulers who are mentally tough, rather than allowing everyone a chance to get traumatized after a big raid.

We should take dwarven psychology into account and make corpse hauling a special skill that only a few dwarves are allowed to perform.

ab9rf commented 6 years ago

I'm not going to add this to autolabor but I will consider adding it to labormanager. autolabor's scoring system does not really support doing this, if I recall correctly, which is part of why I forked it and created labormanager.

Which psychological attributes should be favorable or unfavorable to being selecting for corpse hauling?

bepzi commented 6 years ago

When I choose my dwarves for corpse hauling, I'm really just selecting based on their personality facets. For example, a dwarf with a high depression propensity ("is often sad and dejected") or a high stress vulnerability ("cracks easily under pressure") would be a no-go, while a dwarf with a low stress vulnerability ("is confident under pressure") would be ideal.

You want dwarves that don't have any "negative" personality facets and that are also predisposed to being calm and stoic even when witnessing horrible things.

These are just some guesses on what facets could be considered important. I'm not sure whether they all have an effect:

A dwarf's personal beliefs might also be useful. Again, not sure if they have a real effect:

ab9rf commented 6 years ago

I would like more ‼SCIENCE‼ on which facets, beliefs, or traits are actually influential before I start implementation.

bepzi commented 6 years ago

Of course. It may take some time, but I'll try to get back to you once we have some actual data.