56 lines
3.5 KiB
Markdown
56 lines
3.5 KiB
Markdown
# Infantry contact and search orders
|
|
|
|
HQ-controlled enemy infantry now suspend their current HQ mobile search when
|
|
native group perception has a detected/identified target updated within 15
|
|
seconds. This is evaluated on the existing one-second server tick, before radio
|
|
downlink delivery. Local reactions do not wait for a report to reach HQ.
|
|
At the transition, the group and its combat-capable agents are activated without
|
|
changing their permanent simulation LOD; casualties are not awakened.
|
|
|
|
The mission removes only its own search waypoint from the native queue, retaining
|
|
the assignment and waypoint identity. Native waypoint deselection cancels that
|
|
search activity's child investigation orders. The searching squad is set to fire
|
|
at will, and pending infantry task orders are discarded. Status/check-in and
|
|
vehicle transports remain independent. Individual native combat, visibility,
|
|
cover, suppression, ammunition and aiming still determine whether soldiers fire.
|
|
|
|
After qualifying contacts stop, a 15-second grace period prevents immediate
|
|
retasking. The same search is reinserted once only if its assignment is still
|
|
current, unexpired and eligible. Released/replaced/expired orders cannot return.
|
|
Old, destroyed or disarmed target records no longer block HQ indefinitely.
|
|
|
|
Defensive site and road-interception waypoints stay in place. Baseline home patrol
|
|
routes and other owners' waypoints are not removed. Permanent objective guards,
|
|
specialists, logistics reservations, vehicle crews and player-controlled groups
|
|
retain their existing ownership/eligibility restrictions. No extra AI are spawned.
|
|
|
|
Journal events under `INFANTRY COMBAT` identify the squad and spawn source, contact,
|
|
search pause, search resumption or completion without a surviving search. This is
|
|
an order-conflict safeguard, not proof that every reported hesitation was caused
|
|
by HQ. Native attacks already have a higher default priority than investigation;
|
|
visibility, suppression, weapon state and other native behavior need a live
|
|
playtest if soldiers still fail to fire.
|
|
|
|
`test_infantry_combat.py` executes the actual state machine with native waypoint
|
|
adapters, including renewal, quiet delay, expiry, replacement, defensive orders,
|
|
and ownership changes. The focused `infantry-combat` Workbench fixture exercises
|
|
the actual mobile outpost responders' search and home-defence queue with an
|
|
explicitly injected contact. It does not certify natural target acquisition or
|
|
multiplayer shooting behavior.
|
|
|
|
The older `patrol-hq` scenario's traversal stage runs before unlocking the prison;
|
|
its stationary enemies are consistent with the intentional prison AI hold. Its
|
|
old search helper also selected permanent objective defenders, which correctly
|
|
reject mobile HQ assignments. The shared queue probe now selects the separate
|
|
mobile responder roster. The focused scenario leaves the prison hold in place
|
|
and tests queue ownership only; it does not claim physical patrol traversal.
|
|
|
|
Validation on 25 September 2026: the full repository check passed. Targeted checks
|
|
after the wake-up and fixture updates also passed. Native run 5 compiled and
|
|
completed 15 assertions for the actual mobile squad's search pause/resume and
|
|
home-defence queue. Source/external inputs were unchanged and cleanup confirmed.
|
|
Loaded localization/world/controller asset errors still make the strict runner
|
|
exit nonzero; no script/runtime failure was reported in that completed run.
|
|
Logs, source manifests and earlier failed fixture setups are retained in
|
|
`.local/analysis/infantry-combat-2026-09-25/`.
|