Add recon drones and body burial; stabilize spectator camera
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
# Optional drone integration — 21 October 2026
|
||||
|
||||
Two isolated Workbench fixtures completed with **seven assertions and no script
|
||||
or runtime failures** against the production hashes in
|
||||
[production-sha256.json](production-sha256.json). Both runners verified unchanged
|
||||
source/external inputs and cleanup of their private Wine prefix.
|
||||
|
||||
These are not clean whole-engine runs. The flight fixture retained 20 engine
|
||||
resource/world/platform errors; the absent-addon fixture retained 13. The strict
|
||||
native reporter exits with failure for those errors even though both fixtures
|
||||
completed. The complete reports and console logs are retained unchanged.
|
||||
|
||||
## Downloaded addon and flight
|
||||
|
||||
Realistic Combat Drones `65AD60E204191D37`, version 2.3.7, supplied the unarmed
|
||||
DJI airframe. Only the isolated fixture project adds its dependency. The shipped
|
||||
project has no mandatory drone dependency and contains no copied RCD assets or
|
||||
scripts. Exact installed input hashes are in
|
||||
[flight/external-addons-inputs.json](flight/external-addons-inputs.json).
|
||||
|
||||
[Flight events](flight/native-summary.log) prove:
|
||||
|
||||
- The optional adapter compiled and found the native drone manager.
|
||||
- Native physics raised the drone over 30 m above its launch point and moved it
|
||||
over 30 m horizontally toward the 100 m search goal.
|
||||
- Injecting native player ownership caused the production flight controller to
|
||||
release control while preserving the living, armed aircraft.
|
||||
- Releasing an unowned drone disarmed it through the native adapter.
|
||||
|
||||
A preceding diagnostic run identified a trace hitting the operator's attached
|
||||
helmet instead of the character root. Production now recognizes descendants of
|
||||
its intended target, with a bounded parent walk. Unrelated entities remain
|
||||
obstructions. Offline regression checks cover those cases. The preceding run
|
||||
also physically returned to its launch site after losing that link; the final
|
||||
fixture ends at takeover and does not qualify a complete search/return cycle.
|
||||
|
||||
## Without the addon
|
||||
|
||||
[Absent-addon events](without-addon/native-summary.log) prove that production
|
||||
scripts compile without RCD, its foreign API remains uncompiled, the catalog has
|
||||
no drone prefab, and drones default to disabled.
|
||||
|
||||
## Scope and remaining checks
|
||||
|
||||
The fixture directly exercises the production flight/bridge classes in a local
|
||||
Workbench mission. It does not qualify a dedicated server, remote-client visual
|
||||
replication, an ordinary player takeover, automatic dispatch from a delivered HQ
|
||||
sighting, native camera-to-HQ delivery, jammer placement, destruction, or sustained
|
||||
mission performance. Those remain mission-playtest cases. The production queue
|
||||
and scheduler are exercised separately by `tests/test_drone_recon.py`; radio
|
||||
transport has existing regression coverage.
|
||||
|
||||
Reproduce with the installed dependency closure and the repository's private
|
||||
Workbench prefix:
|
||||
|
||||
```
|
||||
python3 docs/evidence/drone-recon-2026-10-21/isolated-runner.py flight02
|
||||
python3 docs/evidence/drone-recon-2026-10-21/isolated-runner.py absent02 --absent
|
||||
```
|
||||
|
||||
Use unused alphanumeric suffixes. The runner freezes source into `/tmp`, uses a
|
||||
disposable profile, and checks that its private prefix is idle. It does not modify
|
||||
installed addons, a live server or the user's game profile.
|
||||
Reference in New Issue
Block a user