Route delivered HQ tracks to temporary road interception and refresh playtest packages

This commit is contained in:
2026-09-20 11:52:14 +02:00
parent 81c0f060fd
commit ce4004db25
99 changed files with 18755 additions and 19 deletions
+24
View File
@@ -0,0 +1,24 @@
# Temporary infantry road interception
The HQ can refine one ordinary INTERCEPT destination to a nearby authored road using delivered movement history. This is a temporary infantry position, not a barricade or the original vehicle-and-mine roadblock system. It creates no actors, vehicles, props or ammunition.
Eligibility requires a delivered sighting with at least two samples, a credible horizontal heading of at least 2 m/s, confidence at least 0.65, uncertainty at most 150 m, and observation age at most 45 seconds. Character reports on foot or in a vehicle qualify; aircraft and separate vehicle-entity reports do not. The helper reads belief scalars and authored road/terrain geometry, never current player or target entities. A refused refinement becomes the existing SEARCH behavior; CONTAIN and missing-patrol objectives retain their existing behavior.
The selected point lies on an actual road segment at least 4 m wide, 40–250 m ahead of the predicted belief position with forward dot product at least 0.8, within 100 m of the existing pursuit objective, and at least 80 m from other active or pending task destinations. The planner permits at most two lookups per existing five-second planning pass. Each lookup uses a 200 × 200 m road-query box, rejects more than 128 returned roads, processes only returned polylines with at most 1,024 points and at most 4,096 segments in total, rejects grounding more than 2 m below or above the authored road segment, and performs one final native terrain/water/filled-body clearance check. It selects the nearest eligible projection first; if blocked, it conservatively falls back to search rather than repeatedly surveying alternative positions.
Existing finite-force eligibility, home guards, ammo knowledge, travel-time scoring and radio downlink reservations select an available physical infantry group. The pending task counts toward existing assignment limits. Delivery revalidates the exact belief revision and precision age before installing the vanilla Defend waypoint. A failed or interrupted delivery preserves the previous task. The position expires 60 seconds after queueing, so travel and radio delay consume its lifetime. Existing cleanup removes only the owned waypoint and restores the ledger home duty/position, allowing retained patrol waypoints to resume. A road hold never supplies a negative area-search report merely because the squad waits there.
Policy tests execute the real helper and delivery/release methods with explicit native boundary doubles: geometry, query bounds, stale/doubtful beliefs, occupied destinations, blocked terrain, failed waypoint creation, exact expiry, retained old orders and replay are covered. The [native113607 run](evidence/native-2026-09-20-113607-road-interception-raw/README.md) compiled the integration and completed one round/101 assertions with zero script/runtime failures. The first arranged private-memory trajectory selected a real Everon road point; independent native segment membership, clearance and stale46-second rejection passed. This does not establish natural target detection, infantry arrival, combat effectiveness or multiplayer. Four external localization errors remain. The runner also failed its one-shot cleanup proof during an exiting process; a later independent read-only check found that PID absent, the private prefix idle and source bytes equal to the launch manifest. Original failure/raw logs are retained separately, without retroactively qualifying cleanup.
## Provenance
The owner-authorized `escapists-ai/Scripts/Game/EscapistsAI/EAI_HQRoadblocks.c` supplied behavioral ideas: recent delivered direction, minimum movement speed, forward-sector choice and a staffed defend position. The successor geometry and lifecycle integration are independently implemented over existing successor HQ contracts. The original assembly/spawning, protected group-lookup hooks, vehicles, mines and distant spawn rules were not copied or migrated. No protected original Escapists/ScrtCore source was read for this slice.
The existing successor resource `{93291E72AC23930F}Prefabs/AI/Waypoints/AIWaypoint_Defend.et` is vanilla, already catalogued. Its default `m_bFastInit` is false; the implementation does not enable native placement/fast initialization. Vanilla references were read to verify road APIs and waypoint behavior.
Reference SHA-256 values:
- `/home/jakub/devel/escapists/escapists-ai/Scripts/Game/EscapistsAI/EAI_HQRoadblocks.c`: `128776f0b448162ee36cfc71b2a38d2cd06d6d6e4679253f215896aa3fcabb98`
- `/tmp/erri-vanilla/scripts/Game/generated/RoadNetwork/BaseRoad.c`: `b2e5ac1047173f6eb3b4fdbdbfd23e1ce6516f1fe1bbbcb23d8d8ab92abccbc7`
- `/tmp/erri-vanilla/Prefabs/AI/Waypoints/AIWaypoint_Defend.et`: `af7fc17d89c30845acf0ef0fa5fedb47120072221c6157cd4ee691c121ae5d03`
- `/tmp/erri-vanilla/scripts/Game/AI/Group/SCR_DefendWaypoint.c`: `92177151f882a1157014a8604d3cba3ca5493289a54b7bdd1a77fa259b4caddd`