Files
jakub 1b1a8b5173 Add mission customization, HQ support and aggression-driven AI
Integrate faction and random settings menus, generated objectives, scouts, convoys, air support, mortar stations and body-intel recovery. Add identified-body aggression, finite hunter UAZ deployment, dedicated objective defence and maximum AI skill with separate reduced aim accuracy. Include policy tests, native probes, evidence and documentation.
2026-09-23 15:07:14 +02:00

81 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Hill scouts
Everon's `ScoutCount 10` creates ten independent, finite observation posts before
player admission. `ScoutCount` is a scenario-definition field (0–32; default zero
for existing authored/test scenarios). It does not depend on convoy settings.
The server samples island elevation, then surveys random dry standing points on
local crests. Posts must be at least 900 m apart, 600 m from the prison and 150 m
from other mission sites. Minimum elevation is 35 m or 18% of sampled island
maximum, whichever is higher. Eight terrain samples 150 m away must show a mean
drop of at least 6 m, with four at least 5 m lower. At least two of eight physical
350 m sight traces must be clear for 95% of their length. The character faces the
best surveyed view. Survey work is limited to 6 ms per preparation tick, 100,000
candidates and a 45-second real-time deadline. Unsupported terrain fails with a
specific preparation error instead of silently placing scouts in water/forest
obstructions or admitting fewer than requested.
Each post contains one native AI soldier, an indefinite defend waypoint with an
8 m radius, binoculars, a scoped sniper rifle, and a custom radio backpack with
real BaseRadioComponent/SCR_RadioComponent manpack capability. The pack uses the
Kolobok model, weighs 10 kg empty, and reserves 6 litres for ammunition. Compatible
full magazines are inserted into this exact pack until native capacity refuses
another. One operation per post can be outstanding. The deadline, callback
success, physical radio, binoculars and sniper rifle are checked before admission.
The tested SVD loadout fits 40 full spare magazines in the pack, in addition to
its native loadout ammunition. No ammunition is periodically granted afterward.
US and RHS_USAF use the native M21 sniper base; other enemy selections use the
native SVD sharpshooter base. Both the group and character receive the selected
enemy faction. The separate ScoutEast, ScoutWest and ScoutRadioPack prefabs are
intended extension points for additional faction-specific scout equipment. The
radio pack is a field-radio loadout, not a deployable player respawn point.
Scouts inherit the prison's initial AI freeze. On release they use native
RETURN_FIRE: hold fire while observing, engage when native group perception
considers them threatened, and return to holding fire when that threat ends.
They remain registered HQ observers but permanently reserved against tactical
reassignment, courier/resupply work, and assault/search orders. Generic startup
launcher, optic and radio fitting does not overwrite their specialist equipment.
The finite force ledger records one original soldier per post. Killed scouts are
never replaced; the mission owns and cleans up their groups and waypoints.
Reporting uses the existing clear-visual-contact capture and physical radio
uplink. Reports include observed coordinates, visible travel mode, weapon
categories (drawn weapons only, within the existing identification limits), and
nearby visible escapist count. Road status comes from the captured coordinate
against actual road width, segments and height, not the target's later position.
A scout retains at most 64 recent identity/observation snapshots. Two credible
same-target/same-source sightings 2–30 seconds apart supply an average horizontal
velocity, km/h speed and compass/azimuth direction. Changed travel modes,
implausible speed and stale/replayed observations cannot produce a motion
estimate. All data is frozen before the existing originating call/transmission
delays; removing the physical radio or losing the carrier interrupts that route.
No target inventories, hidden occupants or live player physics are inspected.
Validation: `tests/test_scouts.py` executes production terrain/road geometry,
observed-motion estimation and the finite admission state machine, including
pending inventory, timeout, client/stop guards and no replacement/refill after
completion. The full repository suite passed. The production `airfield-markers`
Workbench fixture additionally validates all ten physical bodies, complete
magazine counts and full native capacity, faction identity, manpack capability,
return-fire mode, permanent HQ reservation and inter-post separation. Native
results are recorded below. Dedicated multiplayer observation
and combat acceptance remain separate from these local Workbench checks.
The final native run on 22 September 2026 used
`/tmp/erri-scout-final/logs/logs_2026-09-22_17-04-55`. It completed 52 gameplay
assertions and 11 scout-specific checks, with zero script errors. Ten independently
randomized posts had full 40-magazine SVD packs, matching the preceding successful
layout in `/tmp/erri-scout-native3`. The full regression suite completed in
`/tmp/erri-scout-check2.log`; the final movement addition and affected HQ/intel
regressions were checked again afterward.
The runner's strict result was `cleanup-failed`, with `smoke-completed` recorded
before cleanup: it could not classify an exiting `enfMain` with an empty command
line. A subsequent escalated host-visible `assert_prefix_idle` passed. Existing
vanilla GUI/resource and external RHS/WCS localization errors also remain in the
logs. This is not a clean strict runner result or dedicated multiplayer acceptance.
No server deployment, Workshop publication or Git push was performed.