1.8 KiB
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.