Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Pinpointing cause of "horrified"  (Read 1309 times)

Vndetta

  • Bay Watcher
    • View Profile
Pinpointing cause of "horrified"
« on: December 16, 2014, 11:42:09 pm »

Is there any place where you can view what specifically is causing a unit's "Horrified" reaction when it happens? I've been experiencing the bug where merchants pack up and leave. (Bug detailed by others here: http://www.bay12games.com/dwarves/mantisbt/view.php?id=7185).

Anyway, I'm getting decent at narrowing the cause down and fixing it (most recently I was butchering livestock too close to the depot when traders happened to arrive) but it would be awesome if there was a log/report/keypress/DFHack script/etc. that would just tell me what the unit is scared of at that moment. It doesn't show in the regular Announcements/Combat logs... in the case of traders you suddenly have "Missing" wagons on the unit list and traders are "not trading right now" and then have to rely on process of elimination.

If there isn't a way to tell what scared the unit, maybe I should put it in the Suggestions forum, because it would come in handy even in a non-bugged scenario.
Logged

utunnels

  • Bay Watcher
  • Axedwarf
    • View Profile
Re: Pinpointing cause of "horrified"
« Reply #1 on: December 16, 2014, 11:59:57 pm »

As far as I know you can't.
You can lock your refuse/corpse stockpiles in a room.
Logged
The troglodyte head shakes The Troglodyte around by the head, tearing apart the head's muscle!

Risen Asteshdakas, Ghostly Recruit has risen and is haunting the fortress!

PatrikLundell

  • Bay Watcher
    • View Profile
Re: Pinpointing cause of "horrified"
« Reply #2 on: December 17, 2014, 04:48:59 am »

Apparently both dorfs and merchants get horrified by seeing sentient corpses, so those will have to either be kept out of the way or destroyed.
I find it quite annoying that merchants just disappear without any notification (apart from an exclamation mark above the merchant, if you happened to look there at the time).
There are two ways to separate sentient corpses from other refuse:
1. Dump the corpses manually (which interferes with other usages of dumping).
2. Create a specialized refuse stockpile for sentients. This is quite tedious, however, since you have to specifically specify each sentient race in the stockpile in each of a fair number of headings complementarily for the ordinary and the sentient stockpile (i.e. exclude from ordinary, add to sentient) [but you can add creatures as you go, i.e. only add blind ogres after you've got blind ogre bodies, for instance]. Also, a "feature" causes FBs to go into any refuse stockpile unless you "forbid all", because FBs use hidden tags that are not affected by group headings. By mistake I also stumbled on a useful trick: combining a "QS" with an atom smasher by creating a sentient refuse stockpile feeding a mine cart stop that's forgotten to dump on a bridge. The corpses are then hauled to the stockpile and put into the mine cart, but not delivered on the bridge to be picked up an hauled back to sentient refuse pile in an eternal loop. Thus, the bodies accumulate in the mine cart. When you're ready for disposal, you can "repair" your track stop do dump the mine cart contents, which will promptly dump the bodies. Remove the track stop delivery again, mark all the bodies as 'f'orbidden, and acivate the atom smashing bridge to get rid of the refuse, without risking the smashing of a dwarf trying to haul the bodies back to the pile.

I have never had any problems with animal remains in a refuse stockpile, but if that is a confirmed cause, it would require a redesign to keep merchants away from any refuse.
Logged

Sutremaine

  • Bay Watcher
  • [ETHIC:ATROCITY: PERSONAL_MATTER]
    • View Profile
Re: Pinpointing cause of "horrified"
« Reply #3 on: December 17, 2014, 10:33:10 pm »

That seems pretty complicated. If you're going to make room for the sentient corpses to be away from traders, why not have all the corpses away from traders?

Animal corpses might be able to produce a reaction, since they do register in a dwarf's thoughts even if the dwarf normally feels nothing. Maybe a particularly fearful dwarf who likes a certain kind of animal can be horrified at seeing one of those animals dead. Maybe not.
Logged
I am trying to make chickens lay bees as eggs. So far it only produces a single "Tame Small Creature" when a hen lays bees.
Honestly at the time, I didn't see what could go wrong with crowding 80 military Dwarves into a small room with a necromancer for the purpose of making bacon.

Manzeenan

  • Bay Watcher
  • [SLOWLEARNER]
    • View Profile
Re: Pinpointing cause of "horrified"
« Reply #4 on: December 17, 2014, 11:29:20 pm »

I just make a quantum stockpile with a wall around it for all refuse, close to craftsdwarfs to decorate stuff with all the Butchery byproducts valuable bone and ivory
Logged

Foxite

  • Bay Watcher
    • View Profile
Re: Pinpointing cause of "horrified"
« Reply #5 on: December 18, 2014, 05:19:34 am »

In my experience, what causes a dwarf to get horrified differs with each dwarf, although not very much. AFAIK one dwarf may only get horrified when seeing dead sapients, where another may get horrified when seeing any dead creature. That actually means that "He was horrified when seeing Smustu McGoblin die" appears in their profile, not that they will become horrified as in immobile and cancels job.
Logged
The best way to demonstrate it to him is take a save of 40 year old fortress with 150 dwarves in it on a good sized embark with a volcano that just breached the circus and install it on his gaming rig and watch it bring his rig to its knees.

PatrikLundell

  • Bay Watcher
    • View Profile
Re: Pinpointing cause of "horrified"
« Reply #6 on: December 18, 2014, 06:06:06 am »

I separate sentients and others for two reasons:
1. I want the ordinarly refuse pile to be close by as to cut down on travelling distance.
2. I want to minimize dwarf (not only caravan) exposure to sentient corpses, thus, only sentient corpse hauling jobs should result in seeing the sentient corpse refuse pile, while ordinary refuse hauling should be spared the experience. Some dwarves spiral down into depression if constantly exposed to sentient corpses.
Logged

Sutremaine

  • Bay Watcher
  • [ETHIC:ATROCITY: PERSONAL_MATTER]
    • View Profile
Re: Pinpointing cause of "horrified"
« Reply #7 on: December 18, 2014, 07:21:23 am »

Are there few enough that you could take them off refuse hauling entirely? Won't help if they're bone carvers or butchers though...

The thing with the minecarts also seems excessively complicated. I'm not sure I understand it properly, but why not set the minecart to dump the bodies right into a pit that dwarves can't access?
Logged
I am trying to make chickens lay bees as eggs. So far it only produces a single "Tame Small Creature" when a hen lays bees.
Honestly at the time, I didn't see what could go wrong with crowding 80 military Dwarves into a small room with a necromancer for the purpose of making bacon.

taptap

  • Bay Watcher
    • View Profile
Re: Pinpointing cause of "horrified"
« Reply #8 on: December 18, 2014, 11:20:20 am »

Syndrome rain can lead to the same issues with traders without any corpses around.

I also would advise a more elaborate refuse handling system that removes "traumatic refuse" from sight completely. I tried different approaches over time atom smashing, magma, but now I go with a pretty simple drop chute (I work with dumping) and a hatch (opened by access to garbage rooms) one tile above the bottom refuse stockpile to stop miasma. Not optimal, but does its job while keeping walking distances pretty low. Taking ppl off refuse hauling helps (and I do this with all stressed dwarves), but recovery may still take some time.
« Last Edit: December 18, 2014, 11:29:27 am by taptap »
Logged

PatrikLundell

  • Bay Watcher
    • View Profile
Re: Pinpointing cause of "horrified"
« Reply #9 on: December 19, 2014, 03:13:38 am »

I've used dropping in a hole as an alternative (adding a refuse pile at the bottom might possibly help decay the bodies). One reason to use atom smashing is to actually get rid of the bodies, in the hope that it helps to reduce FPS losses.
Logged