View Issue Details

IDProjectCategoryView StatusLast Update
0003699The Dark ModAIpublic12.07.2014 03:20
ReporterDunedain19 Assigned Tograyman  
PriorityhighSeverityfeatureReproducibilityalways
Status resolvedResolutionfixed 
Product VersionTDM 2.01 
Target VersionTDM 2.03Fixed in VersionTDM 2.03 
Summary0003699: Unconscious AI Not Sustaining Fall Damage
DescriptionThe title sums it up effectively; that being said, unconscious AI can be dropped repeatedly from any high height and sustain absolutely no damage whatsoever. They also do not utilise any pain barks during this process, which is what alerted me to the problem.

I have tested this on the following models, though I assume the problem is universal:

1. City Guard
2. Wench
3. Merchant
4. Thug
Steps To Reproduce1. Knock out an AI
2. Frob AI onto shoulder
3. Noclip to high height
4. Release AI so they fall to the ground
5. Frob again to check AI status (should still be unconscious)
TagsNo tags attached.

Activities

grayman

grayman

29.06.2014 18:51

viewer   ~0006690

Last edited: 11.07.2014 02:47

In Beleaguered Fence, Lark Butternose is often saved by throwing him out from the second floor window...

If he dies after the changes, some sort of cushion needs to be added.

Edit:

Lark Butternose is not an AI; he's a ragdoll.

As such, he doesn't accrue damage, so this issue's fix won't break Beleaguered Fence.

grayman

grayman

09.07.2014 15:46

viewer   ~0006706

Falling damage varies a great deal, depending on which part of the body is struck, whether there's armor, etc.

An unconscious body tossed over an 1800 doom-unit-high cliff can crash to the ground below, landing on its head, and accrue anywhere from 10 to 160 units of damage.

A human falling from the equivalent height (150') in real life would die. So having CrashLand() apply only 10 units of damage is unrealistic.

It seems CrashLand() needs to take a few more factors into account.
grayman

grayman

12.07.2014 03:20

viewer   ~0006709

The reason ragdolls didn’t receive damage was because CrashLand() was using the wrong physics. Fixed CrashLand() so it processes damage differently for conscious AI and the Player (idPhysics_Actor) and ragdolls (idPhysics_AF).

Added water level math for idPhysics_AF. Water level affects damage.

Didn’t like the Mary Poppins appearance of conscious falling AI, so CrashLand() now KOs a falling AI at the point where it recognizes that the AI will be falling more than 200 units. The KO causes the AI to change to ragdoll and drop a raised weapon. The tumbling AI looks much better. Created a new KO for falling, to go with KOs for gas and blackjacks.

Rev. 6056:

KnockedOutState.cpp
AI.cpp
AI.h
Actor.cpp
Actor.h

Issue History

Date Modified Username Field Change
25.03.2014 18:15 Dunedain19 New Issue
29.06.2014 16:18 grayman Target Version => TDM 2.03
29.06.2014 18:51 grayman Note Added: 0006690
08.07.2014 14:19 grayman Assigned To => grayman
08.07.2014 14:19 grayman Status new => assigned
09.07.2014 15:46 grayman Note Added: 0006706
11.07.2014 02:47 grayman Note Edited: 0006690
12.07.2014 03:20 grayman Note Added: 0006709
12.07.2014 03:20 grayman Status assigned => resolved
12.07.2014 03:20 grayman Resolution open => fixed
12.07.2014 03:20 grayman Fixed in Version => TDM 2.03