Fix convoy coordination, AI combat and spectator recovery
This commit is contained in:
+48
-34
@@ -1,40 +1,54 @@
|
||||
# Revivable players and all-unconscious mission failure
|
||||
# Player injuries and team failure
|
||||
|
||||
Admitted player bodies receive server-owned casualty protection. Ordinary damage
|
||||
still causes wounds and bleeding. Damage to physical, overall-health and blood
|
||||
hitzones is limited above their configured destruction threshold; an otherwise
|
||||
lethal hit knocks the prisoner unconscious. Resilience can still reach zero, and
|
||||
healing damage is passed through unchanged. Further hits and bleeding cannot
|
||||
finish the casualty. AI retain their normal damage rules. Protection stays with
|
||||
the original body across reconnects and does not grant a new life or respawn.
|
||||
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.
|
||||
|
||||
The round fails after **30 uninterrupted seconds** with every remaining prisoner
|
||||
unconscious, no conscious reserved prisoner available to reconnect, and no
|
||||
ongoing treatment or observed blood/resilience recovery. Waking up, a treatment
|
||||
in progress, or increasing blood/resilience resets that timer. A passive recovery
|
||||
effect that is present but makes no progress does not prevent failure. An empty
|
||||
server does not start this timer. Mission status explains whether recovery is
|
||||
continuing or the team is in the failure grace period.
|
||||
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.
|
||||
|
||||
Treatment uses the existing medical system. Bandaging and saline remain relevant;
|
||||
ACE Medical epinephrine heals resilience and is not blocked by casualty protection.
|
||||
ACE's own treatment prerequisites still apply (including stopping bleeding and
|
||||
restoring sufficient health). Installing this mission does not itself install
|
||||
ACE Medical or add an unlimited epinephrine action.
|
||||
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.
|
||||
|
||||
`/esc mission abandon` remains an administrator-only way to end a round explicitly.
|
||||
The all-dead/missing-body fallback and exhausted-admission handling also remain,
|
||||
for deleted bodies and administrative/native paths outside ordinary damage.
|
||||
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. Fixtures inject initial
|
||||
injuries and enter at native item-effect completion; they 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.
|
||||
|
||||
The isolated `recovery` Workbench fixture exercises damage exceeding full health
|
||||
on health, blood and head hitzones, continued survival while treatment is flagged
|
||||
active, restoration by native resilience healing, and the actual all-unconscious
|
||||
failure timer. This is separate from remote-client/manual treatment acceptance.
|
||||
## Local validation, 26 September 2026
|
||||
|
||||
Validation on 2026-09-23: all repository checks passed after updating the existing
|
||||
ServerTick test adapters. The isolated `recovery` run at
|
||||
`/tmp/erri-revivable-native2/logs/logs_2026-09-23_20-02-04` completed 66 assertions
|
||||
with no script/runtime failures, unchanged source and verified cleanup. Existing
|
||||
RHS/WCS resource and inherited prefab-keyword errors remain in that engine log.
|
||||
The recovery effect was a native timed resilience-healing effect; an actual ACE
|
||||
injector action and remote multiplayer treatment were not exercised by this run.
|
||||
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.
|
||||
|
||||
Reference in New Issue
Block a user