Files
EscapistsReintroduced/docs/casualty-incapacitation.md

12 lines
1.8 KiB
Markdown

# Fixture incapacitation correction
The native casualty fixture used a protected actor, but installed `ForceUnconsciousness` calls resilience `HandleDamage(..., EDamageType.TRUE, ...)`. Native evidence showed protection could swallow that operation and leave the actor conscious.
The isolated base-probe patch snapshots the actual damage-handling flag, enables it for one synchronous `ForceUnconsciousness` call, reads the actual resilience decrease, and restores the original flag before assertions or cleanup. It asserts decreased resilience, a living actor and exact flag restoration. The existing asynchronous native controller-state check and five-second settling interval remain. No health, consciousness or resilience is restored afterward; no production medical or damage behavior changes.
`test_casualty_incapacitation.py` executes the actual extracted fixture method against a narrow damage API fake. Both original flag values are preserved; blocked reduction, missing hit zone/manager and dead actor cases fail. This is source-level regression evidence, not native runtime proof.
The latest parent identifier fixes are retained in the local removal-probe baseline: `doorReference` and `exitTransform`. Installed generated source confirms `BaseCompartmentManagerComponent.GetDoorReference(int)` returns `CompartmentDoorReference`; that class exposes `GetReferencedDoorCompartmentManager()` and inherits `GetAnimDoorIndex()` from `BaseCompartmentDoor`. The native compiler rejected the previous local identifier `reference`; the API return type itself exists. This patch does not include or repeat those already-applied identifier changes.
Merge only `casualty-incapacitation.patch` and new `tests/test_casualty_incapacitation.py`; no central source or engine was touched by this agent.