Files
2026-10-31 14:32:30 +01:00

103 lines
6.6 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.
When all prisoners are down, authority evaluates a five-minute recovery forecast
once per second. Blood and resilience must both cross their native wake thresholds.
The copied-value model includes pending regeneration delays, bleeding (including
tourniquets), native hit-zone multipliers, and finite saline/epinephrine rates and
remaining durations. Passive resilience recovery is not double-counted during
epinephrine treatment; uncertain post-treatment recovery retains the fallback. Wound
healing alone does not count. The estimator never applies treatment or advances
real effect timers.
If nobody can wake within 300 seconds, the existing 30-second defeat grace starts.
Each fresh forecast can cancel it. A connected unconscious player with a usable
injector also keeps the round alive when self-epinephrine is enabled; this uses the
same inventory and native eligibility check as the Space action. Enabling the
setting without carrying an eligible injector does not block defeat. Conscious
reserved reconnecting prisoners and an evacuation carrying survivors retain their
existing protections. Empty servers do not start this countdown.
Unsupported effects, active treatment interactions, and incomplete predictions
fall back to the old observed-treatment/natural-recovery safeguards. In particular,
changing blood-state bands can change native passive resilience rates: unless even
an optimistic blood-only forecast cannot recover in five minutes, that case is
reported as uncertain rather than assigned an invented wake time. There is no
five-minute hard timeout for uncertain cases. Messages distinguish self-injection,
expected timely recovery, uncertainty, and the 30-second defeat grace. Medical
logs record forecast seconds (-1 means beyond the horizon; -2 means uncertain).
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.