Fix convoy coordination, AI combat and spectator recovery
This commit is contained in:
+30
-6
@@ -1,13 +1,15 @@
|
||||
# Generated starts and radio camps
|
||||
|
||||
Everon now chooses a new prison, radio camp and four mortar sites at preparation time. Other caches,
|
||||
outposts retain their authored positions. The extraction helicopter uses the validated
|
||||
Everon chooses a new prison, radio camp, four mortar sites and optional field
|
||||
hospitals/camps at preparation time. The supply cache retains its authored position.
|
||||
The extraction helicopter uses the validated
|
||||
Everon airfield pad (4800.953 / 11487.412), with no off-airfield fallback. The server
|
||||
resolves the prison first, then the radio, before creating any site entities.
|
||||
Joining clients receive the real replicated locations; intel keeps the same
|
||||
stable destination IDs.
|
||||
|
||||
Site authors can use `RandomClear 1` on a prison, radio or mortar definition. `Heading`
|
||||
Site authors can use `RandomClear 1` on a prison, radio, mortar, hospital, outpost
|
||||
or depot definition. `Heading`
|
||||
sets the authored fallback heading; `RootHeight` offsets a composition above its
|
||||
surveyed ground (the radio/table composition uses 0.8 m). Runtime placement never
|
||||
rewrites the configuration file. Existing definitions default to authored sites.
|
||||
@@ -17,11 +19,17 @@ terrain varying by more than 0.6 m, nearby roads (12 m), and unsafe guard footin
|
||||
Prisons avoid physical runway/control-tower anchors by 1,500 m. The radio stays
|
||||
at least 1 km from the prison and 300 m from other sites. The extraction pickup
|
||||
must remain inside the prison-relative escape boundary with 100 m clearance.
|
||||
Sampling yields after an 8 ms work budget, with a 30-second overall deadline and
|
||||
Sampling yields after an 8 ms work budget, with a 30-second deadline and
|
||||
12,000 candidate limit per site. The budget is checked between native terrain
|
||||
queries, so a single engine query can exceed it. Authored fallback positions
|
||||
must pass the same checks; otherwise preparation reports failure instead of
|
||||
spawning an incomplete camp or waiting forever.
|
||||
must pass the same checks. If both search and fallback fail, an optional outpost,
|
||||
hospital or depot is omitted for that round and preparation continues. The
|
||||
`[site skipped]` log identifies its label, ID and attempt count. Removal happens
|
||||
before spawning, map registration or AI intel assignment, leaving no empty site.
|
||||
Every following site gets a fresh search budget. Required prison/radio/extraction
|
||||
and mortar sites remain mandatory. An otherwise optional site also remains
|
||||
mandatory if removing it would invalidate the scenario, for example by losing
|
||||
the minimum accessible radio-intel sources. No unsafe placement is accepted.
|
||||
|
||||
The existing prison composition, gate, backpack and guards move together.
|
||||
Player slots and escape-boundary tests use the same rotation. Admission still
|
||||
@@ -63,6 +71,22 @@ definitions. Other Workbench smoke outcomes explicitly load
|
||||
fixtures, including the retired western cache and old extraction position.
|
||||
Ordinary Workbench play and dedicated servers use the live definitions.
|
||||
|
||||
`--project core --smoke optional-site-skip` uses current randomized definitions,
|
||||
forces camp 5 to fail both random and authored terrain checks, and verifies that
|
||||
the camp has no runtime, required objectives/mortars remain and a player is
|
||||
admitted. The failure injection exists only in the opt-in Workbench fixture.
|
||||
|
||||
On 2026-09-26, this fixture compiled and completed after camp 5 exhausted 12,000
|
||||
candidates and failed its fallback. The camp was omitted and player admission
|
||||
succeeded with prison, radio, extraction and all four mortars retained. The full
|
||||
repository check passed. The runner reported a terminating-process classification
|
||||
race at shutdown; independent follow-up confirmed the private prefix idle and
|
||||
the addon source manifest unchanged. External inputs were unchanged. Existing
|
||||
loaded asset errors remain; the completed scenario had no script/runtime failures. Evidence,
|
||||
including the earlier test-selector compile failure, is retained under
|
||||
`.local/analysis/optional-site-skip-2026-09-26/`. This validates local startup,
|
||||
not a published or dedicated-server update.
|
||||
|
||||
On 2026-09-22, the full `python3 tools/check.py` suite passed. The final native
|
||||
`generated-sites` fixture passed 39 assertions at a randomized Everon start:
|
||||
prison at approximately (5100, 9137), heading 89 degrees; radio at (5991, 5659).
|
||||
|
||||
Reference in New Issue
Block a user