Dwarf Fortress Bug Tracker - Dwarf Fortress |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0000449 | Dwarf Fortress | Dwarf Mode -- Combat | public | 2010-04-04 23:04 | 2014-07-18 12:50 |
|
Reporter | seigenblues | |
Assigned To | Toady One | |
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | resolved | Resolution | fixed | |
Platform | | OS | | OS Version | |
Product Version | 0.31.01 | |
Target Version | | Fixed in Version | 0.40.04 | |
|
Summary | 0000449: Strangling/strangulation doesn't kill people who are already unconscious for other reasons |
Description | goblins show up, the military springs into underequipped inaction, everyone gets nicked and heads off to the hospital. The bedridden dwarves snap. One of the dwarven recruits goes berzerk and starts punching the nearest invalid. After a few months, i check up on the combat log:
Dude has been "strangling the Recruit's throat!" for more than a month and a half, without killing him. |
Steps To Reproduce | |
Additional Information | |
Tags | binary patch, wrestling |
Relationships | related to | 0001403 | new | | Unconscious dwarf not drowning | related to | 0003426 | resolved | Toady One | Bare-hands strangulation results in bloodfest | related to | 0001775 | resolved | Footkerchief | Miners fail to fall unconscious after cave-in until current job is ended. | has duplicate | 0001490 | closed | Footkerchief | strangulation is nerfed heavily. | has duplicate | 0005027 | resolved | Footkerchief | Eternal Strangulation | has duplicate | 0006503 | resolved | Footkerchief | Minotaur strangles dwarf under water during three months and counting | related to | 0001742 | new | | Unconscious dwarf won't die from lashing | related to | 0002889 | new | | Hydras can be strangled to death by one person |
|
Attached Files | |
|
Issue History |
Date Modified | Username | Field | Change |
2010-04-04 23:04 | seigenblues | New Issue | |
2010-04-04 23:48 | Footkerchief | Note Added: 0001013 | |
2010-04-05 00:27 | Qloos | Tag Attached: wrestling | |
2010-04-09 03:54 | Scaevolus_ | Note Added: 0002288 | |
2010-04-13 09:24 | Footkerchief | Summary | dwarf-on-dwarf strangulation doesn't kill => Strangling/strangulation doesn't kill people who are already unconscious for other reasons |
2010-04-21 13:19 | Footkerchief | Relationship added | parent of 0001403 |
2010-04-24 10:21 | toybasher | Note Added: 0004889 | |
2010-04-24 11:08 | Footkerchief | Relationship added | has duplicate 0001490 |
2010-04-27 03:29 | fake_robot | Note Added: 0005323 | |
2010-05-04 14:00 | Footkerchief | Relationship added | parent of 0001742 |
2010-05-04 14:50 | derigo | Note Added: 0006122 | |
2010-05-04 15:27 | Proteus | Note Added: 0006123 | |
2010-06-22 18:14 | Footkerchief | Relationship replaced | related to 0001742 |
2010-11-18 18:13 | Footkerchief | Relationship added | related to 0003426 |
2010-11-18 18:14 | Footkerchief | Relationship deleted | related to 0003426 |
2010-11-19 10:36 | EddyP | Note Added: 0014022 | |
2011-06-03 19:06 | Shmo | Note Added: 0017928 | |
2011-06-04 14:47 | Put | Issue Monitored: Put | |
2012-01-20 15:21 | Knight Otu | Relationship added | has duplicate 0005027 |
2012-02-21 13:05 | d64 | Note Added: 0020408 | |
2012-02-21 23:22 | d64 | Issue Monitored: d64 | |
2012-03-05 08:57 | Footkerchief | Relationship replaced | related to 0001403 |
2012-04-14 20:04 | Masquerine | Note Added: 0022267 | |
2012-04-14 20:07 | Masquerine | Note Edited: 0022267 | bug_revision_view_page.php?bugnote_id=0022267#r8290 |
2014-01-22 10:31 | Footkerchief | Relationship added | related to 0003426 |
2014-01-22 12:19 | Footkerchief | Relationship added | related to 0001775 |
2014-01-26 09:20 | Footkerchief | Tag Attached: Fixed in 0.34.12? | |
2014-06-10 08:27 | Footkerchief | Relationship added | has duplicate 0006503 |
2014-06-10 08:27 | Footkerchief | Issue Monitored: Urist McMontesOca | |
2014-06-10 08:27 | Footkerchief | Note Added: 0024806 | |
2014-06-14 01:52 | UristDaVinci | Note Added: 0024811 | |
2014-06-15 01:00 | Footkerchief | Tag Attached: binary patch | |
2014-07-07 22:23 | Footkerchief | Tag Renamed | Fixed in 0.34.12? => Fixed in 0.40.01? |
2014-07-11 09:31 | Footkerchief | Relationship added | related to 0002889 |
2014-07-11 09:35 | Trif | Note Added: 0025774 | |
2014-07-18 12:30 | Toady One | Note Added: 0026892 | |
2014-07-18 12:30 | Toady One | Status | new => resolved |
2014-07-18 12:30 | Toady One | Fixed in Version | => Next Version |
2014-07-18 12:30 | Toady One | Resolution | open => fixed |
2014-07-18 12:30 | Toady One | Assigned To | => Toady One |
2014-07-18 12:50 | Dwarfu | Tag Detached: Fixed in 0.40.01? | |
Notes |
|
|
I don't think it's dwarf-on-dwarf specifically. It seems to often happen with strangling anyone who's unconscious or maybe severely wounded. |
|
|
|
This makes adventure mode wrestling quite ineffective-- strangling only seems to cause internal bleeding, so you can't use it as a "kill move". |
|
|
|
But I can still strangle elves to death while there are knocked out form pain. |
|
|
|
I've noticed some weirdness surrounding unconscious dorfs. Namely, that they seem to stay unconscious forever, they don't need food or water, and they seem to be invisible to friends and foes alike. |
|
|
(0006122)
|
derigo
|
2010-05-04 14:50
|
|
Its so strange, because in adventure mode when something falls unconscious, you and pinch off its head (or any other body part) without effort. |
|
|
|
I remember having the same thing once...
I activated a squad (my first 7)to pursue a goblin thief,
after a short pursuit I deactivated them again,
believing that the goblin had already fled.
What I didn´t know was that my cook already had reached the goblin and was strangling him.
Over a month later I checked my health screen and saw, that my cook was totally dehydrated. Checking his location I saw, that he was still strangling said goblin.
Despite immediately activating my squad again, I couldn´t save my cook.
He died of dehydration while strangling the goblin, while the rst of the squad stood around them, watching (which seems to be another (reported) bug, maybe related to this one, i.e. squadmembers won´t attack unconscious enemies).ö
Only after the cooks death his former squadmembers went active and killed the goblin with a pick |
|
|
(0014022)
|
EddyP
|
2010-11-19 10:36
|
|
I've had an Ettin strangling a dwarf straight for roughly half a year now. There are about 3000 strangling messages in the combat report. |
|
|
(0017928)
|
Shmo
|
2011-06-03 19:06
|
|
I can confirm this. I've had a Roc strangling a hapless unconscious, heavily bleeding fisherdwarf for about 6 months now to no avail. I expected he would die of blood loss if not the strangulation, but it's like the two are frozen solid in deadlock. 32 pages of messages now. |
|
|
(0020408)
|
d64
|
2012-02-21 13:05
|
|
Strangling still seems to be problematic in 34.02. It takes many many turns for a bronze colossus to strangle a dingo. The messages:
Bronze Colossus 1 strangles Dingo 21's throat, tearing apart the hair!
Bronze Colossus 1 strangles Dingo 21's throat, tearing apart the hair!
Bronze Colossus 1 strangles Dingo 21's throat, tearing apart the hair!
(several pages of these)
I think a colossus should be able to crush a small canine in its hands with relative ease... |
|
|
(0022267)
|
Masquerine
|
2012-04-14 20:04
(edited on: 2012-04-14 20:07) |
|
I had this happen in version 34.07 with two giant gargoyles and a single axedwarf. The gargoyles fought the axedwarf for two days normally, causing various injuries (many broken bones, oozing/gushing blood). The main injury was a broken neck to the dwarf, after which the gargoyles both started strangling the dwarf. As soon as they started strangling, that was the only attack they used. If they were not attacked or interrupted by any means, the strangling would go on for months or even years.
If they were interrupted, the dwarf was immediately pronounced dead as soon as the strangling stopped. She never seemed to receive new injuries during the strangle time, even from other enemies. She never once got a hunger or thirst message. It seems like she was dead the entire time but the gargoyles just got stuck in strangle mode, which prevented her from updating to dead status.
Her hospital screen said heavy bleeding, ability to stand/grasp lost, exhausted and nerve/motor damage. I don't think it changed at all during the strangle time.
|
|
|
|
From UristDaVinci at 0006503:0024802: "it looks like the part of the code which increments the air loss counter/data does not run for the dwarf while the dwarf is being strangled. Even removed from the water, the dwarf has a broken upper spine and will eventually suffocate when separated from the wrestling minotaur." |
|
|
|
OK, I used WinDbg on dwarf fortress and explored where other dwarves run the "air loss code", and then followed the higher-level function for the eternally-strangled dwarf from the minotaur case until I came to the part where it differs and doesn't run the "air loss/hunger/thirst/etc" code.
It looks like a pathfinding or path-cost related code section gets upset when a wrestling victim hasn't generated some kind of pathing-related data. I guess this might have something to do with being unconscious or invalid. At any rate, if this happens the code skips to the very end of the higher function. Other parts of the pathing-related code, if conditions are not met, merely skip forwards to what appears to be "the next step" in the AI logic. The problem might be a misplaced "Break" statement in the C code?
The following binary edit is for Win32 v0.34.11 SDL:
0x0045da72 : e9 77 1b 00 00 => e9 65 03 00 00
Re-targeting the jump statement to the same destination as the other nearby jumps appears to solve the problem for the minotaur-strangle-dwarf-in-river bug 6503. The dwarf resumes drowning/running out of air and dies. The minotaur then leaves the river and wanders around. No known side-effects of this change. |
|
|
(0025774)
|
Trif
|
2014-07-11 09:35
|
|
This has been... kind of fixed as of 0.40.02.
I tested strangling a kobold as a bronze colossus in the arena.
First I pulped his leg, causing him to fall unconscious. I then strangled him. He suffocated after 389 chokes. That seemed seemed a bit excessive (any other strangler would have fallen unconscious from over-exertion multiple times), so I was pretty sure that the bug was still around.
Still, for completeness, I tried a control kobold. This one I didn't knock out before strangling him. Amount of chokes until death: 389.
It seems like - strictly speaking - this bug has been fixed. Unconsciousness has no effect on strangulation anymore. But it's pretty clear that strangling has massive problems.
So yeah, not sure what to do with this bug. If you guys want to close it, I'll make a new report about the bugged strangling in general. If not, Toady can go by this note here. |
|
|
|
I think this is worked out. In 0.40.03-, if you put someone in a chokehold, they will be on the road to suffocation, and strangling just makes them pass out so you don't get attacked. So once they are unconscious, you can just press period and wait... for like 40-70 presses. Strangling is a much faster action (2 ticks), so it actually takes about 5 times as long.
For next time, I've made strangulation push them much further up the air loss count, so if you tap the movement toward them for an auto-strangle a handful of times, that should be enough. You can still also wait with period and a chokehold, but that takes also still takes a while.
I couldn't find any indication that the weird logic mentioned for the WinDbg analysis still exists, but it's possible there's still some problem out there. |
|