103 lines
6.6 KiB
Markdown
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.
|