3.5 KiB
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/.