Files
EscapistsReintroduced/docs/infantry-combat-priority.md
T

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