Files
jakub 6a667d8deb Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
2026-10-13 22:52:53 +02:00

86 lines
5.4 KiB
Markdown

# Player injuries and team failure
Admitted players keep the same living, treatable body. Otherwise lethal damage
is capped just above hit-zone destruction and causes unconsciousness. Continued
bleeding still drains blood down to the protected minimum; protection never adds
health or blood. AI retain native lethal damage and recovery rules.
Bleeding uses native wound thresholds and damage after armour. The survival cap
applies to health loss, not to the severity used to decide whether a wound bleeds.
This matters especially for severe hits and already injured body parts: the
engine evaluates bleeding after deducting health. Minor hits below the native
critical threshold can still injure without bleeding.
Passive blood, wound and resilience recovery use one quarter of their native
rates. Bleeding prevents passive blood and consciousness recovery. Bandaging
stops the bleeding and lets blood improve gradually. With sufficient blood,
resilience recovers slowly and the player can eventually wake without an injector.
This is not an instant or periodic full heal. Saline restores blood through its
finite native infusion; epinephrine improves resilience over 30 seconds without
replacing blood or treating wounds. Medicine is not slowed by the passive-rate
setting. Duplicate epinephrine dosing is refused while its effect is active.
The round fails with **“Everybody died.”** after 30 uninterrupted seconds when
all remaining prisoners are unconscious, no conscious reserved prisoner can
reconnect to help, and nobody has treatment, observed recovery, or viable native
passive recovery. A bandaged casualty with a blood/resilience regeneration effect
also counts during the engine's initial regeneration delay. Full hit zones,
zero-rate effects, insufficient blood for resilience, and bleeding do not falsely
count as self-recovery. Waking, viable recovery, or treatment resets the timer.
An empty server does not start it. Existing all-dead/missing-body and exhausted
admission handling remains active.
The `recovery` fixture exercises the real team-failure timer and treatment on an
admitted prisoner. `medical-combat` checks an actual hunter medic's inventory,
bleeding, consumed bandages, slow blood recovery without saline, natural waking,
finite saline/epinephrine and protected fatal blood loss. The medical fixture
delivers minor and severe bullet damage through the native damage manager,
then seeds low blood for bounded recovery timing. Treatments enter at native
item-effect completion; these tests do not certify manual
interactions or remote multiplayer play. ACE medical overrides require separate
compatibility testing. The 25 September lethal-death result is historical and
has been superseded by the restored revivable-player policy.
## Bleeding correction, 29 September 2026
The [before-fix engine run](evidence/native-2026-09-29-bleeding-before/report.json)
reproduced a bullet wound without bleeding. The player survival cap was also
limiting the native evaluator's second damage calculation against the already
injured hit zone. Bleeding now evaluates damage after armour without that cap;
actual injury and blood loss retain their player-only protection.
The [corrected engine run](evidence/native-2026-09-29-bleeding-fixed/report.json)
passed 35 assertions: minor hits, wound-triggered bleeding, bandaging, slow blood
recovery, waking, finite saline/epinephrine, reopening a bandaged wound with an
otherwise fatal bullet, and protected fatal blood loss. Test actors are separated
from fighting, the healer is invulnerable, and the casualty remains damageable.
The recovery injury is calibrated to the prefab's native damage multipliers.
Earlier [extreme-injury](evidence/native-2026-09-29-bleeding-diagnostic/report.json)
and [near-combat](evidence/native-2026-09-29-bleeding-combat-diagnostic/report.json)
diagnostics are retained, including their failed recovery/actor-survival checks.
Repository checks passed. The final engine run had no script/runtime failures,
unchanged addon sources and confirmed cleanup. The strict runner still reports
13 inherited asset/localization errors. This is local scripted validation; no
Workshop publication or live-server update was performed.
## Local validation, 26 September 2026
Repository checks passed. The updated `medical-combat` engine fixture completed
32 assertions, including the actual SF UAZ medic's backpack and six injectors,
native bleeding, bandaging, blood recovery without saline, natural waking after
blood replacement, finite epinephrine, and a living unconscious body after fatal
blood damage. No script compilation or medical assertion failed in the final run.
The strict runner reported a transient process-cleanup classification failure;
a subsequent independent check confirmed the private prefix idle and unchanged
source hashes. Original reports and the unsuccessful diagnostic run are retained
under `.local/analysis/revivable-medical-2026-09-26/`. Loaded external/base assets
still emit their existing warnings; this does not certify remote multiplayer.
The subsequent `recovery` engine run verified natural recovery and active
medical treatment each keeping the full mission alive beyond 30 seconds,
waking the same admitted prisoner, resetting the failure timer, and automatic
team defeat after 30 seconds of unrecoverable unconsciousness. Source remained
unchanged and cleanup was confirmed. The strict asset-error scan still reports
existing inherited resource errors; all recovery assertions passed.