2449 lines
97 KiB
JSON
2449 lines
97 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"audited_on": "2026-09-20",
|
|
"successor_commit_at_audit": "e7b4141f6975027624941a8e2b0fcb9d1683a54d",
|
|
"source_root": "/home/jakub/devel/escapists/escapists-ai",
|
|
"scope": "all predecessor AI scripts, tests, prefabs, README/config; GroupLookup excluded from contents audit",
|
|
"user_authorization": "Owned AI code/design reuse and RHS/WCS/BMP dependencies authorized. No original Escapists/ScrtCore/ScrtSharedContent/Enhanced inclusion.",
|
|
"counts": {
|
|
"features": 39,
|
|
"statuses": {
|
|
"partial": 17,
|
|
"missing": 18,
|
|
"implemented": 4
|
|
},
|
|
"scripts": 54,
|
|
"excluded_scripts": 1,
|
|
"tests": 45,
|
|
"prefabs": 12,
|
|
"resource_references": 68
|
|
},
|
|
"features": [
|
|
{
|
|
"id": "config",
|
|
"title": "Configuration and admin controls",
|
|
"status": "partial",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_AIConfig.c",
|
|
"Scripts/Game/EscapistsAI/EAI_ConvoySettings.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HQSettings.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/core/Scripts/Game/ERR/ERR_Settings.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_HQAdminProvider.c"
|
|
],
|
|
"behavior": [
|
|
"Unified config/defaults/backups/migration",
|
|
"bounded validation",
|
|
"runtime HQ settings",
|
|
"next-round frozen convoy/start/simulation choices"
|
|
],
|
|
"remaining": "Only reportIntervalSeconds/supportSquadLimit/responseRadiusMetres of nine original AI keys migrate; add remaining keys with explicit current/next-round semantics.",
|
|
"evidence": "latest packaged startup + native admin fixture",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "skill",
|
|
"title": "Native combat skill floor",
|
|
"status": "missing",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_AIResponseSystem.c"
|
|
],
|
|
"replacement_files": [],
|
|
"behavior": [
|
|
"Expert minimum80",
|
|
"preserve higher skill",
|
|
"designated gunners100",
|
|
"reapply after native resets"
|
|
],
|
|
"remaining": "Add configurable native skill policy on owned physical groups; do not modify perception or populate dormant units.",
|
|
"evidence": "code only",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "radio",
|
|
"title": "Physical radio network and call delivery",
|
|
"status": "partial",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQ.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HQNetwork.c",
|
|
"Scripts/Game/EscapistsAI/EAI_NativeRadioCall.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/ai/Scripts/Game/ERR/ERR_HQ.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_HQReport.c"
|
|
],
|
|
"behavior": [
|
|
"Real basic/manpack inventory",
|
|
"500m short links/up to3 hops",
|
|
"2s per leg",
|
|
"interrupted sender/receiver rules",
|
|
"100m local observation handoff",
|
|
"3s originating call",
|
|
"one-time basic/manpack fitting",
|
|
"aircraft uplink",
|
|
"broadcast-only awareness"
|
|
],
|
|
"remaining": "Short-hop delivery is implemented; audit/port local handoff, originating-call hold, broad one-time radio fitting, aircraft uplink and shared awareness. Replace original support-tree hook with own delivery API.",
|
|
"evidence": "native real-sighting HQ response + network regression",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "observations",
|
|
"title": "Observed descriptions and fair reporting",
|
|
"status": "implemented",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQObservation.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HQ.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/ai/Scripts/Game/ERR/ERR_HQObservation.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_HQReport.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_HQ.c"
|
|
],
|
|
"behavior": [
|
|
"Current native LOS",
|
|
"observed count/travel/drawn weapons",
|
|
"timestamped immutable snapshots",
|
|
"velocity from sightings",
|
|
"per-squad fair multi-contact reporting"
|
|
],
|
|
"remaining": "Code implemented for current physical groups; real multiplayer and difficult exposure/vehicle cases still require validation.",
|
|
"evidence": "native HQ response; 186-assertion owned AI/Intel integration",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "ground_tactics",
|
|
"title": "Infantry hunting and differentiated roles",
|
|
"status": "partial",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_GroupTactics.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HQ.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/ai/Scripts/Game/ERR/ERR_HQ.c"
|
|
],
|
|
"behavior": [
|
|
"Approach/flank-left/flank-right/intercept roles",
|
|
"growing45\u2013110m search",
|
|
"120s freshness expiry",
|
|
"native combat preemption",
|
|
"restore original patrol",
|
|
"fair nearest squad allocation"
|
|
],
|
|
"remaining": "Successor delivers search waypoints and restores native route; distinct roles, contact coverage/priority allocation and growing search areas are incomplete. Route new tasking through force ledger.",
|
|
"evidence": "native original-squad movement + patrol/HQ fixture",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "status",
|
|
"title": "Routine status and ammunition reports",
|
|
"status": "partial",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQStatus.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HQ.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/ai/Scripts/Game/ERR/ERR_HQ.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c"
|
|
],
|
|
"behavior": [
|
|
"Three-minute roster/position/status check-ins",
|
|
"early low-ammo reports",
|
|
"snapshot casualties",
|
|
"in-flight evidence preservation",
|
|
"disconnected/overdue diagnostics"
|
|
],
|
|
"remaining": "Only mortar supply status is integrated; general living/fit/missing roster and weapon/mine status remain missing.",
|
|
"evidence": "native mortar courier reports only",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "missing_patrol",
|
|
"title": "Missing patrol investigation",
|
|
"status": "missing",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQWatch.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HQ.c"
|
|
],
|
|
"replacement_files": [],
|
|
"behavior": [
|
|
"Two missed180s check-ins;30s reply deadline",
|
|
"detached last-known-position roster",
|
|
"one physical investigation with arrival inspection/reply",
|
|
"never presume death"
|
|
],
|
|
"remaining": "Add status-derived investigation beliefs and dispatch existing ledger forces; no live missing-unit coordinates.",
|
|
"evidence": "code only",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "body_discovery",
|
|
"title": "Visible bodies and confirmed losses",
|
|
"status": "missing",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQBodySearch.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HQWatch.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HQ.c"
|
|
],
|
|
"replacement_files": [],
|
|
"behavior": [
|
|
"Death callback registers local evidence;60m view limit/12m close range;15s per-unit scans;12-trace shared budget;16 local discoveries",
|
|
"radio-only deduplicated confirmations"
|
|
],
|
|
"remaining": "Independent death hook and bounded physical LOS intake; share evidence identity across status/body/missing-patrol reports. A casualty is not a known hostile position.",
|
|
"evidence": "code only",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "belief_search",
|
|
"title": "Persistent remembered searches and predictive HQ",
|
|
"status": "partial",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQBodySearch.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HQ.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/ai/Scripts/Game/ERR/ERR_HQReport.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_HQ.c"
|
|
],
|
|
"behavior": [
|
|
"Ten-minute ground trail",
|
|
"snapshot ahead guesses300\u20131200m",
|
|
"road-aware vehicle hypotheses",
|
|
"casualty-location fallback",
|
|
"two-loss wave threshold/three-minute spacing/three living search groups"
|
|
],
|
|
"remaining": "Current HQ contacts expire at120s and have short velocity projection; no persistent confidence/uncertainty map, searched-ground memory, route alternatives or search-outcome feedback. New T8/T9 must preserve hypotheses separately from targetable sightings.",
|
|
"evidence": "projection policy only; persistent belief not implemented",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "hunter",
|
|
"title": "Retaskable paired hunter UAZs",
|
|
"status": "missing",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_AIResponseSystem.c"
|
|
],
|
|
"replacement_files": [],
|
|
"behavior": [
|
|
"Two PKM UAZs",
|
|
"opposite1000m road approaches",
|
|
"full spec-ops crews+medic;300s dispatch cooldown;30s failed-placement retry",
|
|
"reuse existing pair"
|
|
],
|
|
"remaining": "Use shared finite forces and HQ-selected availability; no independent spawn clocks or free replacement losses.",
|
|
"evidence": "code only",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "capture",
|
|
"title": "Captured-force ownership and stop reasons",
|
|
"status": "partial",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_ResponseSafety.c",
|
|
"Scripts/Game/EscapistsAI/EAI_SupplyConvoys.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/ai/Scripts/Game/ERR/ERR_HQ.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_AircraftService.c"
|
|
],
|
|
"behavior": [
|
|
"Check nested turret seats/player crew membership",
|
|
"immediate permanent release after capture",
|
|
"retain living vehicles/crews/wrecks",
|
|
"first stop reason",
|
|
"restore detail/locks"
|
|
],
|
|
"remaining": "Current individual HQ/support eligibility has player guards, but hunter/convoy permanent capture latch and coordinated stop lifecycle require those capabilities.",
|
|
"evidence": "code guards; no migrated convoy runtime",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "convoys",
|
|
"title": "Six-vehicle armed supply convoy patrols",
|
|
"status": "missing",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_SupplyConvoys.c"
|
|
],
|
|
"replacement_files": [],
|
|
"behavior": [
|
|
"0\u201320 startup convoys/default3",
|
|
"one spawn slot per5s",
|
|
"ammo Ural+3PKM UAZs+troop Ural+BMP",
|
|
"finite recoverable weapons/ammo",
|
|
"road-base destinations/35kmh/45\u201390s rests;400m contact regroup",
|
|
"two dismounted flank teams",
|
|
"ammo/troop truck retreat;60s quiet reboard/120s deadline;10min travel timeout",
|
|
"no replacement/refill",
|
|
"partial spawn retention"
|
|
],
|
|
"remaining": "Migrate exact authorized BMP/Ural/UAZ composition through finite HQ force records and shared active-agent budget; no independent spawn clock.",
|
|
"evidence": "missing",
|
|
"asset_scope": "BMP-1 mod; faction catalogs may transitively use RHS"
|
|
},
|
|
{
|
|
"id": "recon",
|
|
"title": "Operational airport reconnaissance helicopter",
|
|
"status": "partial",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_AirRecon.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/ai/Scripts/Game/ERR/ERR_AircraftService.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_AircraftFlight.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_AircraftRouteFlight.c"
|
|
],
|
|
"behavior": [
|
|
"Incremental airport discovery",
|
|
"clear pads;15min initial/loss delay",
|
|
"one active armed Mi8",
|
|
"real sightings into HQ;300m orbit/150m minimum horizontal standoff",
|
|
"runway return/landing retry",
|
|
"player takeover release"
|
|
],
|
|
"remaining": "Flight mechanisms have isolated short-route evidence; airport search, useful routes, HQ-selected recon launch/orbit/endurance/service operational loop are missing.",
|
|
"evidence": "isolated20m flight only; no operational recon",
|
|
"asset_scope": "vanilla Mi8 candidate; original recon wrapper must be rebuilt"
|
|
},
|
|
{
|
|
"id": "air_assault",
|
|
"title": "HQ-selected air reinforcement cycle",
|
|
"status": "missing",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_AirAssault.c",
|
|
"Scripts/Game/EscapistsAI/EAI_AirSupportPolicy.c"
|
|
],
|
|
"replacement_files": [],
|
|
"behavior": [
|
|
"Up to8 carried troops/two teams",
|
|
"wait60s for mortar response",
|
|
"eligible observed infantry<=3m/s;1-in3 optional decision/120s separation",
|
|
"frozen450m tangent drop",
|
|
"abort stale/moved/conflicting reports;2min cover",
|
|
"return/reload/reboard"
|
|
],
|
|
"remaining": "Build one shared HQ insertion capability with actual passenger reservations and mortar deconfliction; no new independent timer/spawn system.",
|
|
"evidence": "missing",
|
|
"asset_scope": "optional parachute framework; vanilla landing-and-dismount alternative changes behavior"
|
|
},
|
|
{
|
|
"id": "parachutes",
|
|
"title": "Physical staggered AI parachute drop",
|
|
"status": "missing",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_AssaultParachute.c",
|
|
"Scripts/Game/EscapistsAI/EAI_AirAssault.c"
|
|
],
|
|
"replacement_files": [],
|
|
"behavior": [
|
|
"Moving25m/s flyby at90\u2013180m AGL;>=2s/50m stagger",
|
|
"native compartment exits;5m/s descent/2m/s flare",
|
|
"no duplicate soldiers",
|
|
"released canopies finish after carrier loss"
|
|
],
|
|
"remaining": "Framework-dependent mechanics cannot enter vanilla-only closure; choose optional asset integration or landing insertion; do not silently claim equivalence.",
|
|
"evidence": "missing",
|
|
"asset_scope": "Parachute Framework65930CB4CD0237B2"
|
|
},
|
|
{
|
|
"id": "aircraft_ammo",
|
|
"title": "Aircraft weapon ammunition and airfield reload",
|
|
"status": "missing",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_AircraftAmmo.c",
|
|
"Scripts/Game/EscapistsAI/EAI_AirRecon.c"
|
|
],
|
|
"replacement_files": [],
|
|
"behavior": [
|
|
"Native mounted-magazine/rocket-barrel accounting",
|
|
"return at<=25% usable ammunition",
|
|
"landed15s service",
|
|
"verified physical passenger boarding/retries",
|
|
"fixed finite payload per departure"
|
|
],
|
|
"remaining": "Replace original free service refill/new troops with shared depot cargo/personnel allocation and physically confirmed consumption.",
|
|
"evidence": "code only",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "air_recovery",
|
|
"title": "Ground helicopter recovery operation",
|
|
"status": "missing",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_HelicopterRecovery.c"
|
|
],
|
|
"replacement_files": [],
|
|
"behavior": [
|
|
"Repair Ural+2escorts+engineer+replacement pilot",
|
|
"settled road-accessible crash;5min planning/20min service deadline;60s uninterrupted repair",
|
|
"pilot physically boards",
|
|
"return convoy",
|
|
"captured aircraft permanently excluded",
|
|
"recovery holds loss timer"
|
|
],
|
|
"remaining": "Shared recovery task and finite resources; rebuilding destroyed airframe must consume an existing spare record, not mint replacement capability.",
|
|
"evidence": "missing",
|
|
"asset_scope": "vanilla repair Ural/UAZ/engineer candidates"
|
|
},
|
|
{
|
|
"id": "flight_safety",
|
|
"title": "Flight availability and physical landing guards",
|
|
"status": "partial",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_HelicopterAvailability.c",
|
|
"Scripts/Game/EscapistsAI/EAI_Landing.c",
|
|
"Scripts/Game/EscapistsAI/EAI_LogisticsVehicle.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_AircraftService.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_AircraftFlightEnvelope.c"
|
|
],
|
|
"behavior": [
|
|
"20s startup grace;60s prolonged grounding",
|
|
"separate damage/pilot/takeover states",
|
|
"stable landing",
|
|
"obstacle/friendly pad holds",
|
|
"temporary active crew detail and lock release"
|
|
],
|
|
"remaining": "Availability/short-range landing code exists; prove useful terrain routes and integrate availability into shared planner, not timed replacement.",
|
|
"evidence": "native vertical/20m mechanisms; broader airborne operation unqualified",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "ammo_accounting",
|
|
"title": "General weapon/mine supply accounting",
|
|
"status": "missing",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_AmmoSupply.c",
|
|
"Scripts/Game/EscapistsAI/EAI_Mines.c"
|
|
],
|
|
"replacement_files": [],
|
|
"behavior": [
|
|
"Count loaded and spare rounds by compatible weapon",
|
|
"full-magazine equivalents",
|
|
"rifle/MG<=2/pistol-launcher<=1 threshold",
|
|
"desired6/4/2 magazines",
|
|
"mounted<=25%",
|
|
"mine deficits",
|
|
"empty-magazine recycling"
|
|
],
|
|
"remaining": "General infantry/vehicle manifests missing; extend finite mortar-only model without manufacturing compatible cargo at destination.",
|
|
"evidence": "code only",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "resupply",
|
|
"title": "Truck/helicopter last-mile ammunition delivery",
|
|
"status": "partial",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_Resupply.c",
|
|
"Scripts/Game/EscapistsAI/EAI_LogisticsVehicle.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c"
|
|
],
|
|
"behavior": [
|
|
"One request per group",
|
|
"refresh destination from delivered status",
|
|
"one truck+one transportMi8",
|
|
"rotate4queue entries/30s",
|
|
"prefer air beyond2.5km/no road/stalled truck;15s unloading/60m living recipient range;3min expiry/retry;15min destroyed-carrier replacement",
|
|
"surviving carrier reuse"
|
|
],
|
|
"remaining": "Existing physical foot courier serves one mortar from finite stock; general request queue, truck/air carriers, recipient manifests, return/recycling and shared-loss replacement not implemented.",
|
|
"evidence": "native finite courier transfer; not vehicle logistics",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "depots",
|
|
"title": "Physical depot stock-porters-carrier loading",
|
|
"status": "missing",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_DepotLoading.c"
|
|
],
|
|
"replacement_files": [],
|
|
"behavior": [
|
|
"Actual warehouse cargo;2porters walk stock->porter->carrier",
|
|
"verify ownership callbacks",
|
|
"full mags/disarmed mines only;24-item trip;15min loading deadline;18m cleared departure area",
|
|
"stolen stock/dead staff failures"
|
|
],
|
|
"remaining": "Create authored finite depot resources and pooled ground staff; preserve staged physical ownership and bounded timeouts.",
|
|
"evidence": "missing",
|
|
"asset_scope": "new own depot composition using vanilla box"
|
|
},
|
|
{
|
|
"id": "mines_issue",
|
|
"title": "One-time mine issue and resupply",
|
|
"status": "missing",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_Mines.c"
|
|
],
|
|
"replacement_files": [],
|
|
"behavior": [
|
|
"Eligible military inventory holds up to2PMN4",
|
|
"bounded startup issue",
|
|
"spent mine deficits via radio",
|
|
"captured/player/nonenemy exclusion"
|
|
],
|
|
"remaining": "Tie engineer loadouts and replenishment to finite ledger stock; do not regenerate dropped mines.",
|
|
"evidence": "missing",
|
|
"asset_scope": "vanilla PMN4 candidate; confirm installed availability"
|
|
},
|
|
{
|
|
"id": "mines_task",
|
|
"title": "Engineer mine placement lifecycle",
|
|
"status": "missing",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_MineTask.c"
|
|
],
|
|
"replacement_files": [],
|
|
"behavior": [
|
|
"Road-flank waypoints;10s physical placement",
|
|
"withdraw20m",
|
|
"no friendly within20m",
|
|
"native pressure arming;4mines/site/32mission tasks;180s timeout",
|
|
"interruption/pickup/death never arms"
|
|
],
|
|
"remaining": "HQ task reservations and clear player warning cues; stock-owned native items only; trace/proximity work budgeted.",
|
|
"evidence": "code only",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "roadblocks",
|
|
"title": "Reactive staffed roadblocks",
|
|
"status": "missing",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQRoadblocks.c"
|
|
],
|
|
"replacement_files": [],
|
|
"behavior": [
|
|
"Fresh moving ground snapshot",
|
|
"ahead-of-track road candidate",
|
|
"orient against25m road probe",
|
|
"actual airport crew boarding/transit/dismount",
|
|
"optional armor after6confirmed casualties",
|
|
"engineer flanks",
|
|
"captured-force exclusion"
|
|
],
|
|
"remaining": "Use belief hypotheses/road topology and finite ledger force deployment; preserve searched/escape corridors and player placement exclusions.",
|
|
"evidence": "missing",
|
|
"asset_scope": "authorized WCS BMP-1; vanilla alternative remains a deliberate option"
|
|
},
|
|
{
|
|
"id": "mortar_deployment",
|
|
"title": "Physical dispersed mortar sites",
|
|
"status": "partial",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_MortarSystem.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c"
|
|
],
|
|
"behavior": [
|
|
"Four quadrant sites;3crew+RTO;27physicalHE each",
|
|
"incremental16placement candidates/5s",
|
|
"terrain/road/spacing safety;2min quadrant fallback",
|
|
"no loss respawn"
|
|
],
|
|
"remaining": "Successor has one authored battery/4crew/27shell readiness. Four-site deployment and force-ledger reservation are missing.",
|
|
"evidence": "native one-battery readiness and transfer",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "mortar_fire",
|
|
"title": "Ballistic prediction, safe salvos and accounting",
|
|
"status": "implemented",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_MortarPrediction.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarEngagement.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarFiring.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarSalvo.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c"
|
|
],
|
|
"behavior": [
|
|
"HQ-delivered<=60s snapshots",
|
|
"native aim/charge/flight solve",
|
|
"road-bounded velocity projection<=90s/1800m;8shot salvo/40m spread",
|
|
"actual projectile accounting",
|
|
"refreshed reports",
|
|
"final-transfer revalidation;120s deadline",
|
|
"stale/no-ammo/capture cancellation"
|
|
],
|
|
"remaining": "Current one-battery behavior implemented; broad moving-target impact accuracy, multiplayer, more batteries and aircraft corridor reservation integration remain unqualified.",
|
|
"evidence": "native8actualprojectiles55assertions; stale expiry48assertions",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "settlement_safety",
|
|
"title": "Settlement/friendly protection and deconfliction",
|
|
"status": "partial",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_SettlementSafety.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarEngagement.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c"
|
|
],
|
|
"behavior": [
|
|
"200m settlement exclusion;100m predicted friendly-path buffer",
|
|
"per-shell repeated checks",
|
|
"cached identical positions",
|
|
"aircraft/drop600m reservation through flight impact+10s"
|
|
],
|
|
"remaining": "Ground/mortar safety exists; roadblock/mine/air corridor consumers and full shared planner reservations remain missing.",
|
|
"evidence": "native firing safety gates; not full combined-arms qualification",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "performance",
|
|
"title": "Work budgets, temporary detail and metrics",
|
|
"status": "partial",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_Performance.c",
|
|
"Scripts/Game/EscapistsAI/EAI_LogisticsVehicle.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c",
|
|
"tools/compare_performance.py"
|
|
],
|
|
"behavior": [
|
|
"Bounded radio spatial graph",
|
|
"staggered30s ammo scans",
|
|
"system timing",
|
|
"cargo-only sleeping beyond1.5km",
|
|
"drivers/gunners active",
|
|
"reboard/combat wakes",
|
|
"preserve normal detail after stop"
|
|
],
|
|
"remaining": "Replace old NearPlayer/ConvoyLOD ownership with T2 presence budget. Shared force simulation/agent cap/metrics and equivalent-workload FPS evidence do not yet exist.",
|
|
"evidence": "policy/runtime component bounds; no FPS improvement",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "ambient_disable",
|
|
"title": "Single owner of strategic responses",
|
|
"status": "implemented",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_DisableAmbientEvents.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/ai/Scripts/Game/ERR/ERR_HQ.c",
|
|
"addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c"
|
|
],
|
|
"behavior": [
|
|
"Suppress original random ambient events",
|
|
"no virtual mortar/rocket barrages",
|
|
"HQ coordinates strategic response while native tactical combat continues"
|
|
],
|
|
"remaining": "Original systems are absent by dependency isolation, so no original override needs porting. Maintain this invariant as capabilities grow.",
|
|
"evidence": "independent packed Core/Chat startup",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "factions",
|
|
"title": "Consistent military faction ownership",
|
|
"status": "partial",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_FactionRelations.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_HQ.c"
|
|
],
|
|
"behavior": [
|
|
"Normalize US/UK->NATO and USSR->USSR_NI aliases after every-member checks",
|
|
"exclude players/slaves/mixed unrelated/civilian/selectedside conflicts",
|
|
"late member support"
|
|
],
|
|
"remaining": "RHS dependency is authorized; add fresh explicit RHS role/faction catalogs, replacing all original composite catalog APIs.",
|
|
"evidence": "vanilla runtime only",
|
|
"asset_scope": "RHS/composite-original catalog dependencies not migrated"
|
|
},
|
|
{
|
|
"id": "prisons",
|
|
"title": "Improvised prison starts and physical supplies",
|
|
"status": "partial",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_ImprovisedPrisons.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c",
|
|
"addons/core/Scripts/Game/ERR/ERR_SiteService.c",
|
|
"addons/core/Configs/ERR/EveronSites.conf"
|
|
],
|
|
"behavior": [
|
|
"Random clear10x10m concrete camp;<=0.6m terrain variation;3\u20135guards/16spawnpositions",
|
|
"native metaldoor;5pistols/8sparemagazines finite backpack;>=1500mairfield/12mroad clearance;12000boundedcandidate search/fallback"
|
|
],
|
|
"remaining": "Current successor prison/lock/supplies are implemented at authored coordinates. Random island generation, airfield exclusion and alternate geometry have not migrated. This source does NOT implement recapture.",
|
|
"evidence": "native base loop; ordinary full human route still pending",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "start_choices",
|
|
"title": "Configurable prison/crash start selection",
|
|
"status": "missing",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_StartSelection.c"
|
|
],
|
|
"replacement_files": [],
|
|
"behavior": [
|
|
"Modes0scenario/1generated/2existingprison/3crash/4randomexisting",
|
|
"preserve all other mission settings",
|
|
"safe fallback when requested native starts unavailable"
|
|
],
|
|
"remaining": "Author new independent prison/crash scenarios and own selection; never reuse original crash compositions or setup snapshots.",
|
|
"evidence": "code only",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "outfit",
|
|
"title": "Persistent initial outfit choice",
|
|
"status": "partial",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_StartingOutfit.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c",
|
|
"addons/core/Scripts/Game/ERR/ERR_AdminPlayerTools.c",
|
|
"addons/core/Prefabs/ERR/Prisoner.et"
|
|
],
|
|
"behavior": [
|
|
"One-time delayed equipped helmet/jacket after spawn",
|
|
"latejoin/respawn",
|
|
"preserve other equipment",
|
|
"no ongoing re-equip"
|
|
],
|
|
"remaining": "Successor has own prisonerkit and optional vanilla PASGT/BDU cheat grants; original patched automatic outfit not migrated. Owned Patch content separate audit/authorization scope.",
|
|
"evidence": "native prisoner kit + admin utilities",
|
|
"asset_scope": "owned Escapists-Patch custom skull outfit; vanilla PASGT/BDU available"
|
|
},
|
|
{
|
|
"id": "stinger",
|
|
"title": "Rare anti-air launcher loadout",
|
|
"status": "missing",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_StingerEquipment.c"
|
|
],
|
|
"replacement_files": [],
|
|
"behavior": [
|
|
"One startup roll per eligible enemy;1inN/default15/0disabled",
|
|
"loadedFIM92 preserves existing weapons",
|
|
"native acceptance/ownership verification",
|
|
"bounded retry",
|
|
"no refill after drop/fire"
|
|
],
|
|
"remaining": "WCS Armaments is now authorized: preserve exact FIM92 resource and bounded physical assignment policy; do not import Enhanced/original dependencies.",
|
|
"evidence": "missing",
|
|
"asset_scope": "WCS Armaments FIM92 resource3DF204EEE0534EF2"
|
|
},
|
|
{
|
|
"id": "optics",
|
|
"title": "Verified magnified optics on compatible AI weapons",
|
|
"status": "missing",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_SniperOptics.c"
|
|
],
|
|
"replacement_files": [],
|
|
"behavior": [
|
|
"All eligible AI rifles/snipers/MGs",
|
|
"retain magnified optics",
|
|
"select compatible mount+optic",
|
|
"native blocked-pair retries;2/5/8/11s attempts/14s final check",
|
|
"callback acknowledgement",
|
|
"no repeat unknown accepted operation",
|
|
"preserve player loot"
|
|
],
|
|
"remaining": "Good bounded next subsystem: service on newly registered physical soldiers with own native attachment verification; use verified vanilla scopes only; no global original attachment override.",
|
|
"evidence": "missing",
|
|
"asset_scope": "some original optics/asset overrides need vanilla provenance verification"
|
|
},
|
|
{
|
|
"id": "compatibility",
|
|
"title": "Original dependency runtime fixes",
|
|
"status": "partial",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_DependencyGuards.c",
|
|
"Scripts/Game/EscapistsAI/EAI_RuntimeGuards.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c",
|
|
"addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c"
|
|
],
|
|
"behavior": [
|
|
"Null-controller delayed spawn guards",
|
|
"stale defend-waypoint guard",
|
|
"tooltip lifetime guard",
|
|
"original civilian random bounds/head collider bounds",
|
|
"arsenal replication startup guard",
|
|
"invalid supportstation setup",
|
|
"enhanced default-magazine probe cleanup"
|
|
],
|
|
"remaining": "Original-base/Enhanced overrides are unnecessary or must be newly expressed if successor-specific faults reproduce. Do not bulk-copy protected override bodies. Audit surviving vanilla-only defects separately.",
|
|
"evidence": "successor spawn/admission and teardown fixtures",
|
|
"asset_scope": "original Escapists/Enhanced hooks intentionally absent"
|
|
},
|
|
{
|
|
"id": "simulation",
|
|
"title": "Autonomous escape test mode and spectators",
|
|
"status": "missing",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/Simulation/EAI_Simulation.c",
|
|
"Scripts/Game/EscapistsAI/Simulation/EAI_SimulationBot.c",
|
|
"Scripts/Game/EscapistsAI/Simulation/EAI_SimulationIntel.c",
|
|
"Scripts/Game/EscapistsAI/Simulation/EAI_SimulationLifecycle.c",
|
|
"Scripts/Game/EscapistsAI/Simulation/EAI_SimulationMedical.c",
|
|
"Scripts/Game/EscapistsAI/Simulation/EAI_SimulationPrison.c",
|
|
"Scripts/Game/EscapistsAI/Simulation/EAI_SimulationSpectators.c"
|
|
],
|
|
"replacement_files": [],
|
|
"behavior": [
|
|
"6AIprisoners physically scavenge5pistols",
|
|
"holdlock20s/retry picker",
|
|
"loot corpses/intel",
|
|
"native medical treatment",
|
|
"identifiedradio/tune/defend",
|
|
"allsurvivor boarding/physical scriptedflight",
|
|
"human spectator-only lifecycle",
|
|
"savedmode+3srestart",
|
|
"zero duplication/replacements"
|
|
],
|
|
"remaining": "Successor WORKBENCH smoke is a different development fixture and not this normal-server autonomous mode. Full native player-lifecycle/medical/intel interfaces can be reused; this is NOT distant-unit virtualization.",
|
|
"evidence": "no migrated normal-server simulation",
|
|
"asset_scope": "original spectator/editor and base mission APIs must be replaced"
|
|
},
|
|
{
|
|
"id": "journal",
|
|
"title": "HQ journal and private live diagnostics",
|
|
"status": "implemented",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQJournal.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HQ.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/ai/Scripts/Game/ERR/ERR_HQJournal.c",
|
|
"addons/ai/Scripts/Game/ERR/ERR_HQAdminProvider.c",
|
|
"addons/core/Scripts/Game/ERR/ERR_AdminSession.c",
|
|
"addons/core/Scripts/Game/ERR/ERR_AdminMenu.c"
|
|
],
|
|
"behavior": [
|
|
"Session/message/sequence correlation;300recentlines/4096pending;5MiB rotation;30s file retry",
|
|
"gap notices",
|
|
"chat8entries/2s",
|
|
"menu40entries/1s",
|
|
"pause/latest/scroll state"
|
|
],
|
|
"remaining": "Infrastructure implemented. New systems still need meaningful status/events; long-running multiplayer/file-failure behavior not fully qualified.",
|
|
"evidence": "native menu/journal fixture + packaged startup",
|
|
"asset_scope": "vanilla"
|
|
},
|
|
{
|
|
"id": "catalogs",
|
|
"title": "Independent unit composition catalogs",
|
|
"status": "partial",
|
|
"original_files": [
|
|
"Scripts/Game/EscapistsAI/EAI_GroupLookup.c"
|
|
],
|
|
"replacement_files": [
|
|
"addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c"
|
|
],
|
|
"behavior": [
|
|
"Catalog-backed physical group composition"
|
|
],
|
|
"remaining": "EAI_GroupLookup is excluded without reading its content as a model. Build richer vanilla role/crew catalogs independently; never translate copied lookup code.",
|
|
"evidence": "vanilla startup only",
|
|
"asset_scope": "excluded protected-derived source"
|
|
}
|
|
],
|
|
"script_inventory": [
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_AIConfig.c",
|
|
"features": [
|
|
"config"
|
|
],
|
|
"sha256": "8c320d3163d443b43e50547734702484c8ad51f2cffe88cf6dfd33aaf339ec01",
|
|
"lines": 232
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_AIResponseSystem.c",
|
|
"features": [
|
|
"skill",
|
|
"hunter"
|
|
],
|
|
"sha256": "b3e1263e986837744a70fbaedaa6e57afae7f2981a21211d3a2066e2c63ac84d",
|
|
"lines": 660
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_AirAssault.c",
|
|
"features": [
|
|
"air_assault",
|
|
"parachutes"
|
|
],
|
|
"sha256": "a9c0c2bf59fb4f9b351913708cee54a302a9e447d30c2766faa91c7573af1b6d",
|
|
"lines": 423
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_AirRecon.c",
|
|
"features": [
|
|
"recon",
|
|
"aircraft_ammo"
|
|
],
|
|
"sha256": "7e72c9eac0fce21865f09a923cbfd638c25939c8492b3e1e5dfdda1f1394f51e",
|
|
"lines": 1335
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_AirSupportPolicy.c",
|
|
"features": [
|
|
"air_assault"
|
|
],
|
|
"sha256": "51605d83624073a30f672881d46c652bd03a7e040ccc4d812c9e8d0c456be87f",
|
|
"lines": 40
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_AircraftAmmo.c",
|
|
"features": [
|
|
"aircraft_ammo"
|
|
],
|
|
"sha256": "52bed2b0008762f221bed4f139cfe0a34e69e0ee455ef3dc47276d3dc3373c45",
|
|
"lines": 97
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_AmmoSupply.c",
|
|
"features": [
|
|
"ammo_accounting"
|
|
],
|
|
"sha256": "97587483227699b78e78f1223f46ebf286d458ffcf06b79f458807b6e95f969e",
|
|
"lines": 372
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_AssaultParachute.c",
|
|
"features": [
|
|
"parachutes"
|
|
],
|
|
"sha256": "b2d2be240d184c436a5b2fd1a03d446763a1c27b6b5c825a988b05feaec7a346",
|
|
"lines": 320
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_ConvoySettings.c",
|
|
"features": [
|
|
"config"
|
|
],
|
|
"sha256": "6ceb44226c2608ef09bb246af1238679030c04a6dab5351e97e3dfe955b446c7",
|
|
"lines": 19
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_DependencyGuards.c",
|
|
"features": [
|
|
"compatibility"
|
|
],
|
|
"sha256": "094744d77c5c99f7a46e6b3a0aba071f34b4b34cb467eea30264d5f63151a7d9",
|
|
"lines": 157
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_DepotLoading.c",
|
|
"features": [
|
|
"depots"
|
|
],
|
|
"sha256": "5b608f36621c9d744bdc55829b1000af70ba9d8853b8a90828d774557a204375",
|
|
"lines": 305
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_DisableAmbientEvents.c",
|
|
"features": [
|
|
"ambient_disable"
|
|
],
|
|
"sha256": "8e9d6b5abb4aaa3e83654abf5aeda429093b3bd6cb03f7f9b3953dc028d4023f",
|
|
"lines": 85
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_FactionRelations.c",
|
|
"features": [
|
|
"factions"
|
|
],
|
|
"sha256": "1595926655f3597cbe3c648cd52a0372bc24346eefd99802a3dafe853f935651",
|
|
"lines": 105
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_GroupLookup.c",
|
|
"features": [
|
|
"catalogs"
|
|
],
|
|
"audit": "excluded; contents not read or used as implementation model"
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_GroupTactics.c",
|
|
"features": [
|
|
"ground_tactics"
|
|
],
|
|
"sha256": "226eb3981765284afa0cead84411244806a84440003fe4af69f2208028cef23d",
|
|
"lines": 418
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_HQ.c",
|
|
"features": [
|
|
"radio",
|
|
"observations",
|
|
"ground_tactics",
|
|
"status",
|
|
"missing_patrol",
|
|
"body_discovery",
|
|
"belief_search",
|
|
"journal"
|
|
],
|
|
"sha256": "4898ac471fb16433fc5d98244a8cec89c5e8e006af2c94bbcd89113a2b7107c8",
|
|
"lines": 1552
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_HQBodySearch.c",
|
|
"features": [
|
|
"body_discovery",
|
|
"belief_search"
|
|
],
|
|
"sha256": "c46e318d4331bedefbefad19f735dc45752ed21d0a2c232880673c1cbe2c686c",
|
|
"lines": 264
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_HQJournal.c",
|
|
"features": [
|
|
"journal"
|
|
],
|
|
"sha256": "0d714bc60940898dac560ee0902997ca82e324395dc2696c6424909a0a587c81",
|
|
"lines": 101
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_HQNetwork.c",
|
|
"features": [
|
|
"radio"
|
|
],
|
|
"sha256": "1a7e279b050514bad86f18fdd233b7eb5728e99bab3daae3aedb31ceb571c271",
|
|
"lines": 241
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_HQObservation.c",
|
|
"features": [
|
|
"observations"
|
|
],
|
|
"sha256": "735611603dbfa80218a42c6722dda09a3de8c7369aa5689cb8cb711851ede6dd",
|
|
"lines": 199
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_HQRoadblocks.c",
|
|
"features": [
|
|
"roadblocks"
|
|
],
|
|
"sha256": "128776f0b448162ee36cfc71b2a38d2cd06d6d6e4679253f215896aa3fcabb98",
|
|
"lines": 419
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_HQSettings.c",
|
|
"features": [
|
|
"config"
|
|
],
|
|
"sha256": "82f2a9b7f2a60d499ce4155c3584ccf42121ebf16b944392bc5a7fe1bef25df7",
|
|
"lines": 32
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_HQStatus.c",
|
|
"features": [
|
|
"status"
|
|
],
|
|
"sha256": "7127dcf23be7bcbb9415d8ef6c8f1da5bec551fbf16fc1054487dcd7a877d885",
|
|
"lines": 325
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_HQWatch.c",
|
|
"features": [
|
|
"missing_patrol",
|
|
"body_discovery"
|
|
],
|
|
"sha256": "7807aa97c4625a82841b6992416a9d0c8836f987767a99264934c1f79320f64a",
|
|
"lines": 63
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_HelicopterAvailability.c",
|
|
"features": [
|
|
"flight_safety"
|
|
],
|
|
"sha256": "bb565c5c5f7d4e671a295ae7e951f9ebdde626ffdecc4ae7d92e0e776e1730e0",
|
|
"lines": 31
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_HelicopterRecovery.c",
|
|
"features": [
|
|
"air_recovery"
|
|
],
|
|
"sha256": "3ab340e7790ca0536b97a809daf00a155cc972b557297a03532fe622ac0db87c",
|
|
"lines": 439
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_ImprovisedPrisons.c",
|
|
"features": [
|
|
"prisons"
|
|
],
|
|
"sha256": "e1b7dd3b7b45bc803e61e2031030d873101947def8b6a41fe450555e90d000b9",
|
|
"lines": 493
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_Landing.c",
|
|
"features": [
|
|
"flight_safety"
|
|
],
|
|
"sha256": "7d335cd93e9141b779c90fd0e4962af290e2b6c0ec4c6e9501ded3e2fd165f09",
|
|
"lines": 15
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_LogisticsVehicle.c",
|
|
"features": [
|
|
"flight_safety",
|
|
"resupply",
|
|
"performance"
|
|
],
|
|
"sha256": "8e109e6f010f1af1a4d8ec9ad01d0f683dad014c76c9a763b091bba8a320de9b",
|
|
"lines": 337
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_MineTask.c",
|
|
"features": [
|
|
"mines_task"
|
|
],
|
|
"sha256": "d5a06b646b0d789832badacb75e7a10a5097c4a4ac32dffd72aca3390b5d9e60",
|
|
"lines": 146
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_Mines.c",
|
|
"features": [
|
|
"ammo_accounting",
|
|
"mines_issue"
|
|
],
|
|
"sha256": "108cbe8175e339db88f2c0f36ef3c22d29805cf7794b63cb4edc171e29f92ef3",
|
|
"lines": 64
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_MortarEngagement.c",
|
|
"features": [
|
|
"mortar_fire",
|
|
"settlement_safety"
|
|
],
|
|
"sha256": "853bea893bd39d90621a7e391e98931d7518ec07b61da921204dfd9e50c82f27",
|
|
"lines": 88
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_MortarFiring.c",
|
|
"features": [
|
|
"mortar_fire"
|
|
],
|
|
"sha256": "aadd057a1f3f4326bd41500be7a12051a16de9d5925fca2452a46cdfbf0d6d12",
|
|
"lines": 221
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_MortarPrediction.c",
|
|
"features": [
|
|
"mortar_fire"
|
|
],
|
|
"sha256": "b58d9ea6e211fc479a1674c380be4979ebacf46d14facae74257aa0937b6cd49",
|
|
"lines": 131
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_MortarSalvo.c",
|
|
"features": [
|
|
"mortar_fire"
|
|
],
|
|
"sha256": "f0235c4516eebd03e5721d259dabcb516a4e457e9909a1b8bb08553a0f7bc652",
|
|
"lines": 16
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_MortarSystem.c",
|
|
"features": [
|
|
"mortar_deployment"
|
|
],
|
|
"sha256": "b355227b2b221147d35e1dacbc07cf650838229b9a6d22cd30cc1e304112b33f",
|
|
"lines": 931
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_NativeRadioCall.c",
|
|
"features": [
|
|
"radio"
|
|
],
|
|
"sha256": "ed9ad2a8137395e25363f94e81d4854e159136a53a67e2be4b89fdcb08d712d6",
|
|
"lines": 32
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_Performance.c",
|
|
"features": [
|
|
"performance"
|
|
],
|
|
"sha256": "f9ea5747e4ca16d88dfe56d796268d7d3cf01efe037e37ba7798835f2b17813d",
|
|
"lines": 76
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_ResponseSafety.c",
|
|
"features": [
|
|
"capture"
|
|
],
|
|
"sha256": "b3dcbe8f3dd840791e91e9ec202cd392ebc4895714816cdcedcdc591baa62b05",
|
|
"lines": 49
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_Resupply.c",
|
|
"features": [
|
|
"resupply"
|
|
],
|
|
"sha256": "dfa28d0741c5515c85a6e62bc6d1a104f5474ddc22a6e58931be1583133f3586",
|
|
"lines": 624
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_RuntimeGuards.c",
|
|
"features": [
|
|
"compatibility"
|
|
],
|
|
"sha256": "d843e7807501eb94f31a4c7628e8357e2404c2e598c5c3c697b091b1ab266edb",
|
|
"lines": 85
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_SettlementSafety.c",
|
|
"features": [
|
|
"settlement_safety"
|
|
],
|
|
"sha256": "6961ad593d20f86c30b557542b4f67fd44d9579037776b07cd95616927eda83d",
|
|
"lines": 76
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_SniperOptics.c",
|
|
"features": [
|
|
"optics"
|
|
],
|
|
"sha256": "96a302da44fdb9207c12cc1c9c93aad38eb510cb0cf9befd800f60a2945b08e8",
|
|
"lines": 191
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_StartSelection.c",
|
|
"features": [
|
|
"start_choices"
|
|
],
|
|
"sha256": "5dae5de5efe59cf2b40a289becafb6ef1aed00271cc561769cdb1f570174ee7b",
|
|
"lines": 85
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_StartingOutfit.c",
|
|
"features": [
|
|
"outfit"
|
|
],
|
|
"sha256": "54308138b73e23b5dcc47b5111d55f843a6d7bb7f39fe8466571e54a73246db6",
|
|
"lines": 132
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_StingerEquipment.c",
|
|
"features": [
|
|
"stinger"
|
|
],
|
|
"sha256": "b8ce09f2d3ed61e58beadc1f158daed6eceb17b08243f7979b46d8c27e917695",
|
|
"lines": 87
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/EAI_SupplyConvoys.c",
|
|
"features": [
|
|
"capture",
|
|
"convoys"
|
|
],
|
|
"sha256": "a896fdacfd9c0f2db52e588642623545a3a5d6e8041fb72000a68e720fc2b7a5",
|
|
"lines": 1463
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/Simulation/EAI_Simulation.c",
|
|
"features": [
|
|
"simulation"
|
|
],
|
|
"sha256": "4688fd4eccb490ae416707400ae889aae6bf3794402d5e68da0d03efddf01ab1",
|
|
"lines": 669
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/Simulation/EAI_SimulationBot.c",
|
|
"features": [
|
|
"simulation"
|
|
],
|
|
"sha256": "9d9e809a6f39623bda49749304bbffb89c19b9e83e4f30f1ac2a9780d4526397",
|
|
"lines": 66
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/Simulation/EAI_SimulationIntel.c",
|
|
"features": [
|
|
"simulation"
|
|
],
|
|
"sha256": "d53fcb1933bc563aa0d72bc4093bfec68da69241abe6639f5e030422457d1cf1",
|
|
"lines": 29
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/Simulation/EAI_SimulationLifecycle.c",
|
|
"features": [
|
|
"simulation"
|
|
],
|
|
"sha256": "c375a4ad7c7af621f89c16150f42262ff6501fb92e2a96ab85f28f879cb0ac39",
|
|
"lines": 161
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/Simulation/EAI_SimulationMedical.c",
|
|
"features": [
|
|
"simulation"
|
|
],
|
|
"sha256": "a9da70fdecd20d8fd9e23f45fcb2b070916b76f0ee0418f72f18805f2d2149f0",
|
|
"lines": 128
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/Simulation/EAI_SimulationPrison.c",
|
|
"features": [
|
|
"simulation"
|
|
],
|
|
"sha256": "f9098c2f312e202130b3789eb2b67ca38ed3c44a859be24543816a028a552644",
|
|
"lines": 88
|
|
},
|
|
{
|
|
"path": "Scripts/Game/EscapistsAI/Simulation/EAI_SimulationSpectators.c",
|
|
"features": [
|
|
"simulation"
|
|
],
|
|
"sha256": "0e3b911914cf06e31c836323cba170782ef994338d75cd8202b5ab7c4e9285f4",
|
|
"lines": 278
|
|
}
|
|
],
|
|
"test_inventory": [
|
|
{
|
|
"path": "tests/ai_chat_config_regression.py",
|
|
"sha256": "b4b0dc6a74a4a5beda787fb676a378316bfb9c9589bd6365ded0ae3da44d91df",
|
|
"source_references": [],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/ai_config_regression.py",
|
|
"sha256": "7dec0063274ec84a861f11b4df15b75c68dc88fa132f1ce9762063ef05bdd504",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_AIConfig.c",
|
|
"Scripts/Game/EscapistsAI/EAI_ImprovisedPrisons.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/air_assault_regression.py",
|
|
"sha256": "f27ea28bf4c6e52ecaf9ce45fa3bfab1bce7b6e07cd8eac377f465a7d4d6bad2",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_AirAssault.c",
|
|
"Scripts/Game/EscapistsAI/EAI_AirRecon.c",
|
|
"Scripts/Game/EscapistsAI/EAI_AircraftAmmo.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/air_support_regression.py",
|
|
"sha256": "b0c0cbf9d2918b03b37297575cbd678a633296939cf6c64095769fac4ddb7074",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_AirSupportPolicy.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarFiring.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarSystem.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/airport_reload_regression.py",
|
|
"sha256": "9ef8ab9ab33d02899636859ae3c65919726b92c0c7a9604af704bac2c1a78b85",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_AirRecon.c",
|
|
"Scripts/Game/EscapistsAI/EAI_Landing.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarSystem.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/convoy_stop_regression.py",
|
|
"sha256": "245dd69dcd300a49fe743875280321165d1da15c0cdbe23188631eec3e418c54",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_SupplyConvoys.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/depot_loading_regression.py",
|
|
"sha256": "2e80b3ce86b0607a5b62cdd49d7e898c17c23fd5e67597a5e8789bc71076ba41",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_DepotLoading.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/faction_alignment_regression.py",
|
|
"sha256": "37666426aae9f303f255861f89cf4cacefb38a6994fc2dd6fced11f53e1b7c7f",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_FactionRelations.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HQ.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/helicopter_availability_regression.py",
|
|
"sha256": "b8f92feaf7f8057082a9c7c20cc889da3b614d74d19e206491ccecceec7e92e0",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_AirRecon.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HelicopterAvailability.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/helicopter_recovery_regression.py",
|
|
"sha256": "38e693a1c9f204dbab1a4ab800fa219d6aa3b7c378957434ab312a2f84832d25",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_AirRecon.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HelicopterRecovery.c",
|
|
"Scripts/Game/EscapistsAI/EAI_LogisticsVehicle.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/hq_body_search_regression.py",
|
|
"sha256": "975abef7f7ef378b150e2c46266574a786588a2fa0ff6ee43e708d58227222c8",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQ.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HQBodySearch.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HQStatus.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/hq_journal_regression.py",
|
|
"sha256": "426a04d4117c2e9c3d4ce5aef112cb628cb0cd6511b727d05e554b6a29ae1c8e",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQJournal.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/hq_menu_checks.py",
|
|
"sha256": "6f14906d08ddd67e909eae5ef37ca8395476fc84920fed77ca276012a58dd88b",
|
|
"source_references": [],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/hq_network_regression.py",
|
|
"sha256": "a09b5cbf3453e6af31d1d888b5489586efbddbdb89b6e2b2d6eed52ce67e1098",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQ.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HQNetwork.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HQStatus.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarSystem.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/hq_observation_regression.py",
|
|
"sha256": "76b715d46f44d560896c502d01ed89ce16b6366596b607cef111db886cb6dcf6",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQObservation.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/hq_regression.py",
|
|
"sha256": "4b9a0b66851f27700584e548c82cda8de7f9fda72868566e4bac227500951172",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQ.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/hq_settings_regression.py",
|
|
"sha256": "1e68b985cf7d0446894eeecfa16335d4581e78c386a2ed81454e62512f6c76d6",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_AirRecon.c",
|
|
"Scripts/Game/EscapistsAI/EAI_ConvoySettings.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HQSettings.c",
|
|
"Scripts/Game/EscapistsAI/Simulation/EAI_SimulationLifecycle.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/hq_watch_regression.py",
|
|
"sha256": "87e9bb484e2a37bfda9a4827d1fa4cd50b0c38bde07659df171c7e9c800a2150",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQ.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HQWatch.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/mine_task_regression.py",
|
|
"sha256": "5eca78bfa4fdc11f6f9107e83b06676f6f20cc4fb75b940768a25ffaaa6f812b",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_MineTask.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/mortar_deployment_regression.py",
|
|
"sha256": "8fdb4994d05a56409f46f074c2f41298143628d19c5644093e21eaf423eee31d",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_MortarSystem.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/mortar_engagement_regression.py",
|
|
"sha256": "a39ecc1132b51e13d80f4136a1d219fb5fc08d193b9e6c0be48dd9378e1e762a",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_MortarEngagement.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/mortar_footprint_regression.py",
|
|
"sha256": "56ec6d478c036d1c7b1f65fde9170f73af77c8ed8175dc443cb079344c7a2c92",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_ImprovisedPrisons.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarSystem.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/mortar_logging_regression.py",
|
|
"sha256": "49d2c83c6f18ae8ffed152c5cc8480079a85731ec94fbd1f014362ec7d93f174",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_MortarFiring.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarSystem.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/mortar_operator_regression.py",
|
|
"sha256": "80f2a2d5e1bc8c38345b76f5e83cb3bc527fac7ad41111b3dee9327e60bbcaf5",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQStatus.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarFiring.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarSystem.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/mortar_regression.py",
|
|
"sha256": "f4ed7027857056e158291d7a0c64072d435494c3d1dc71df4e6eee0c4a7e5c16",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQStatus.c",
|
|
"Scripts/Game/EscapistsAI/EAI_ImprovisedPrisons.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarFiring.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarPrediction.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarSystem.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/mortar_salvo_regression.py",
|
|
"sha256": "bba2d57c4f5ccb76819ce90a63bc157e29fd033a3430318689c84c5e4c5f6f29",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_MortarFiring.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarSalvo.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarSystem.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/mortar_settlement_regression.py",
|
|
"sha256": "6672605e495c1e7a3abd1dc1311f5449397d09152d17fd41a2d1cb78ff395492",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQRoadblocks.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarFiring.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarSystem.c",
|
|
"Scripts/Game/EscapistsAI/EAI_SettlementSafety.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/prison_airfield_regression.py",
|
|
"sha256": "30f48b626ddccfbd0a8ca6295f00000cc89554c9491ecbb177032a48a746d15f",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_AirRecon.c",
|
|
"Scripts/Game/EscapistsAI/EAI_ImprovisedPrisons.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/response_capture_regression.py",
|
|
"sha256": "b6d309fe82dc538d6c6bb48e943f72fb9fb012b4e140acd36f9095ab12cb1878",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_AIResponseSystem.c",
|
|
"Scripts/Game/EscapistsAI/EAI_AirRecon.c",
|
|
"Scripts/Game/EscapistsAI/EAI_AssaultParachute.c",
|
|
"Scripts/Game/EscapistsAI/EAI_ResponseSafety.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/resupply_regression.py",
|
|
"sha256": "72828f53e6f77db41558cbece31da6ace6eeefc0674648dd16eaec659b46daab",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_AmmoSupply.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HQStatus.c",
|
|
"Scripts/Game/EscapistsAI/EAI_Resupply.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/roadblock_deployment_regression.py",
|
|
"sha256": "b696ec1c5fabdade9b8c4deb831d33db118f30b63e66229d8fd885d62b49c9bd",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQRoadblocks.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/roadblock_regression.py",
|
|
"sha256": "e0725fe89b07e8b5371102800088d7be38158bf5248b155250595efb20cd8598",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQ.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HQRoadblocks.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MineTask.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/runtime_resources_regression.py",
|
|
"sha256": "d8c0c602c60e5fea1ef35364be6163547b77d670b0d24ec5fcd76a97e1769c8d",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_ImprovisedPrisons.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarSystem.c",
|
|
"Scripts/Game/EscapistsAI/EAI_Performance.c",
|
|
"Scripts/Game/EscapistsAI/EAI_RuntimeGuards.c",
|
|
"Scripts/Game/EscapistsAI/EAI_SupplyConvoys.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/scope_detection_regression.py",
|
|
"sha256": "6865b52d1cbfe44d1b1b7a40555f202298056ecd2f3a93a09b6d36f6d28b3765",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_SniperOptics.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/scope_prefabs_regression.py",
|
|
"sha256": "8959c7d1d494d1808e660411ce4c2afb538e17af3220a57fa1f14fdf2f03f506",
|
|
"source_references": [],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/session_fixes_regression.py",
|
|
"sha256": "b78419295f7b080de7068823a33ef81bef7ecfa49d739c77c9f56f99df098999",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_AirRecon.c",
|
|
"Scripts/Game/EscapistsAI/EAI_AssaultParachute.c",
|
|
"Scripts/Game/EscapistsAI/EAI_DependencyGuards.c",
|
|
"Scripts/Game/EscapistsAI/EAI_Landing.c",
|
|
"Scripts/Game/EscapistsAI/EAI_LogisticsVehicle.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarSystem.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/simulation_chat_regression.py",
|
|
"sha256": "28f906f687a98eb1800a9f28ba7f7a550a0e40e6d4746eb134cca0094c5fd94c",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/Simulation/EAI_SimulationLifecycle.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/simulation_intel_bridge_regression.py",
|
|
"sha256": "f8ec1c424ff90838b7d34616a98ed1cd80e082c68de81c6743940a5a37785bf3",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/Simulation/EAI_SimulationIntel.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/simulation_prison_regression.py",
|
|
"sha256": "a901b2eb4b462d4794157e67b0818b88b2176f0beb2dfb38fd71685f86909080",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/Simulation/EAI_Simulation.c",
|
|
"Scripts/Game/EscapistsAI/Simulation/EAI_SimulationBot.c",
|
|
"Scripts/Game/EscapistsAI/Simulation/EAI_SimulationPrison.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/simulation_regression.py",
|
|
"sha256": "0e01653cfcae35530f68cd1bf5d5636e71b05e1dd396ba2194cda649c5a39237",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/Simulation/EAI_Simulation.c",
|
|
"Scripts/Game/EscapistsAI/Simulation/EAI_SimulationBot.c",
|
|
"Scripts/Game/EscapistsAI/Simulation/EAI_SimulationIntel.c",
|
|
"Scripts/Game/EscapistsAI/Simulation/EAI_SimulationMedical.c",
|
|
"Scripts/Game/EscapistsAI/Simulation/EAI_SimulationSpectators.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/simulation_spectator_regression.py",
|
|
"sha256": "0fd3b920f691880be1d8c197bbec399d90361ef28586ba67ad4d5c7c93b7f2b5",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/Simulation/EAI_SimulationSpectators.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/sniper_optics_regression.py",
|
|
"sha256": "5dedc2bb50455877f23209756251120a6eae83543fd5ccb5dabe0afc6739d47f",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_AIResponseSystem.c",
|
|
"Scripts/Game/EscapistsAI/EAI_SniperOptics.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/sniper_weapon_lookup_regression.py",
|
|
"sha256": "fa077b2b6abb45a11216979b49c871e832a3a1573d8d823198e439475455b528",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_SniperOptics.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/spawn_selection_regression.py",
|
|
"sha256": "c9001edc39258e1f4419ae62f53ee4b0fa6535718810600d2afc14f73bc5ceae",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_ImprovisedPrisons.c",
|
|
"Scripts/Game/EscapistsAI/EAI_StartSelection.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
},
|
|
{
|
|
"path": "tests/stinger_equipment_regression.py",
|
|
"sha256": "eaa3b92e1c9339c17beb589a7fa61a2cbdec06fce65c7e91bba456cdf27f9a47",
|
|
"source_references": [
|
|
"Scripts/Game/EscapistsAI/EAI_AIResponseSystem.c",
|
|
"Scripts/Game/EscapistsAI/EAI_StingerEquipment.c"
|
|
],
|
|
"execution": "not run in this audit; predecessor evidence does not qualify successor"
|
|
}
|
|
],
|
|
"prefab_inventory": [
|
|
{
|
|
"path": "Prefabs/Logistics/EAI_DepotStock.et",
|
|
"sha256": "87f76285abe1d14206fd2eff904cb6e0d4375083d46a007244c1b13a5821af74",
|
|
"review": "re-author successor wrapper/identity; inspect inherited provenance before copying any content"
|
|
},
|
|
{
|
|
"path": "Prefabs/StartAreas/EAI_ImprovisedPrison.et",
|
|
"sha256": "0204b836cda9729ae219747cb994d438cfddf41fa625377b5c89c49d50b27686",
|
|
"review": "re-author successor wrapper/identity; inspect inherited provenance before copying any content"
|
|
},
|
|
{
|
|
"path": "Prefabs/StartAreas/EAI_PrisonBackpack.et",
|
|
"sha256": "21ec7e0ea4b7b0493d899e0fec525fbc7d302a2473aedafbd4efcab3599022a1",
|
|
"review": "re-author successor wrapper/identity; inspect inherited provenance before copying any content"
|
|
},
|
|
{
|
|
"path": "Prefabs/StartAreas/EAI_PrisonGate.et",
|
|
"sha256": "b958e2250e047c95bce5176b9c291dd3ad430d7734891e65a2d9bbdf0f924dc2",
|
|
"review": "re-author successor wrapper/identity; inspect inherited provenance before copying any content"
|
|
},
|
|
{
|
|
"path": "Prefabs/StartAreas/EAI_PrisonWall.et",
|
|
"sha256": "d3009ecd7c3b977ae34a523c1926c13c9e9cc9ff8e531f83e861467a26ff3e98",
|
|
"review": "re-author successor wrapper/identity; inspect inherited provenance before copying any content"
|
|
},
|
|
{
|
|
"path": "Prefabs/Vehicles/Helicopters/EAI_AmmoMi8.et",
|
|
"sha256": "77a0bba1123c8313619db85358bb575fc9bd5cd4be9b6cb545c2ec82cd54dc16",
|
|
"review": "re-author successor wrapper/identity; inspect inherited provenance before copying any content"
|
|
},
|
|
{
|
|
"path": "Prefabs/Vehicles/Helicopters/EAI_ReconMi8.et",
|
|
"sha256": "a37e137b48c8ca08891eb173e46181ee9fe840dd505ee42450cb901ba19431be",
|
|
"review": "re-author successor wrapper/identity; inspect inherited provenance before copying any content"
|
|
},
|
|
{
|
|
"path": "Prefabs/Vehicles/Parachutes/EAI_AssaultParachute.et",
|
|
"sha256": "e7bded543194e9de132c0b9972948141da1fcfa56c7b663cc333c9caa2e73e85",
|
|
"review": "re-author successor wrapper/identity; inspect inherited provenance before copying any content"
|
|
},
|
|
{
|
|
"path": "Prefabs/Weapons/Attachments/Optics/1p78/Optic_1P78.et",
|
|
"sha256": "95bda46853d6b8653060e4ea9fcc91bbe4efd7aa69fa039c8c42ad0a5b60873d",
|
|
"review": "re-author successor wrapper/identity; inspect inherited provenance before copying any content"
|
|
},
|
|
{
|
|
"path": "Prefabs/Weapons/Attachments/Optics/Optic_PSO1/Optic_PSO1M2.et",
|
|
"sha256": "cdc52ec5931731474cec99acc391446bce6b1b230ddf7e91ea2348f84dc58acf",
|
|
"review": "re-author successor wrapper/identity; inspect inherited provenance before copying any content"
|
|
},
|
|
{
|
|
"path": "Prefabs/Weapons/Attachments/Optics/Optic_SPP/Optic_SPP.et",
|
|
"sha256": "06e593c1677954e0f7a05b0b040ccca8f7a987961f8bfbe90e0582a07b151953",
|
|
"review": "re-author successor wrapper/identity; inspect inherited provenance before copying any content"
|
|
},
|
|
{
|
|
"path": "Prefabs/Weapons/Core/WeaponSight_Base.et",
|
|
"sha256": "0183016add1789e87f07783211168680de5caa9ecbf803d61b52e3d762013593",
|
|
"review": "re-author successor wrapper/identity; inspect inherited provenance before copying any content"
|
|
}
|
|
],
|
|
"resource_references": [
|
|
{
|
|
"guid": "0A04F02D30BA8459",
|
|
"path": "Assets/Props/Debris/Metal/FragmentMechanical_dbr_03.xob",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Logistics/EAI_DepotStock.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "D9678156553F87C7",
|
|
"path": "Assets/Props/Debris/Metal/FragmentMetal_dbr_02.xob",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Logistics/EAI_DepotStock.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "AE6DE9DEA19D68B7",
|
|
"path": "Assets/Props/Debris/Metal/FragmentMetal_dbr_03.xob",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Logistics/EAI_DepotStock.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "EB85A5589049E9D1",
|
|
"path": "Assets/Props/Military/AmmoBox/EquipmentBoxWooden_01/Data/EquipmentBoxWooden_Ammunition_01_USSR.emat",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Logistics/EAI_DepotStock.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "17332645A86C9BA6",
|
|
"path": "Assets/Props/Military/AmmoBox/EquipmentBoxWooden_01/Data/EquipmentBoxWooden_decal_USSR.emat",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Logistics/EAI_DepotStock.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "9E1DFF036BCE913E",
|
|
"path": "Assets/Props/Military/AmmoBox/EquipmentBoxWooden_01/EquipmentBoxWooden_Ammunition_01.xob",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Logistics/EAI_DepotStock.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "E3BC73BFBC7AA497",
|
|
"path": "Assets/Structures/BuildingsParts/Doors/DoorFrame_door_metal_A_RIGHT_EXT_B.xob",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/StartAreas/EAI_PrisonGate.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "0B96D139FEBCA006",
|
|
"path": "Assets/Structures/Walls/Concrete/ConcreteWall_01_3m.xob",
|
|
"classification": "already catalogued successor vanilla resource",
|
|
"referenced_by": [
|
|
"Prefabs/StartAreas/EAI_PrisonWall.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "690632C506AD0847",
|
|
"path": "Assets/Weapons/Attachments/Optics/1p78/1p78.xob",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Weapons/Attachments/Optics/1p78/Optic_1P78.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "BAF768C371AF1703",
|
|
"path": "Assets/Weapons/Attachments/Optics/1p78/Data/1p78_mark_UI.edds",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Weapons/Attachments/Optics/1p78/Optic_1P78.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "9B591D738BAB9492",
|
|
"path": "Assets/Weapons/Attachments/Optics/1p78/Data/1p78_mark_ilum_UI.edds",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Weapons/Attachments/Optics/1p78/Optic_1P78.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "BBB83ADC8D3AF563",
|
|
"path": "Assets/Weapons/Attachments/Optics/1p78/Data/Optic_1P78_HDR.emat",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Weapons/Attachments/Optics/1p78/Optic_1P78.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "84004153F8EC99DD",
|
|
"path": "Assets/Weapons/Attachments/Optics/pso_1m2_1/Optic_PSO1M2-1_HDR.emat",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Weapons/Attachments/Optics/Optic_PSO1/Optic_PSO1M2.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "31F2591E21793003",
|
|
"path": "Assets/Weapons/Attachments/Optics/pso_1m2_1/data/Optic_PSO1M2-1.emat",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Weapons/Attachments/Optics/Optic_PSO1/Optic_PSO1M2.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "D05272A9B4875D73",
|
|
"path": "Assets/Weapons/Attachments/Optics/pso_1m2_1/data/PSO1M2-1.edds",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Weapons/Attachments/Optics/Optic_PSO1/Optic_PSO1M2.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "C436A8D33CE1AA4E",
|
|
"path": "Particles/Props/Dest_Prop_Wood_Small.ptc",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Logistics/EAI_DepotStock.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "F28B2B542F6C684A",
|
|
"path": "Prefabs/CharacterSpawnPoint.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/StartAreas/EAI_ImprovisedPrison.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "86E565387A634103",
|
|
"path": "Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et",
|
|
"classification": "already catalogued successor vanilla resource",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_MortarSystem.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "EBFB363AC7A5FCE6",
|
|
"path": "Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_Engineer.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_HelicopterRecovery.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "612F43A4D5AE765F",
|
|
"path": "Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et",
|
|
"classification": "already catalogued successor vanilla resource",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_MortarSystem.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "D9F79EC900BD0001",
|
|
"path": "Prefabs/Characters/HeadGear/ESCP_Helmet_PASGT_Patched.et",
|
|
"classification": "owned Patch wrapper; separate asset/provenance review, no automatic Patch dependency",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_StartingOutfit.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "D9F79EC900BD0002",
|
|
"path": "Prefabs/Characters/Uniforms/ESCP_Jacket_M65_TigerStripe_Patched.et",
|
|
"classification": "owned Patch wrapper; separate asset/provenance review, no automatic Patch dependency",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_StartingOutfit.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "9ADD554959C09197",
|
|
"path": "Prefabs/DeployedParachutes/Core/DeployedParachuteMK4.et",
|
|
"classification": "Parachute Framework; outside currently authorized RHS/WCS/BMP dependency closure",
|
|
"referenced_by": [
|
|
"Prefabs/Vehicles/Parachutes/EAI_AssaultParachute.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "41A9C55B61F375F0",
|
|
"path": "Prefabs/Items/Equipment/Backpacks/Backpack_Kolobok.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/StartAreas/EAI_PrisonBackpack.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "54C68E438DD34265",
|
|
"path": "Prefabs/Items/Equipment/Radios/Radio_R107M.et",
|
|
"classification": "already catalogued successor vanilla resource",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQ.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "E1A5D4B878AA8980",
|
|
"path": "Prefabs/Items/Equipment/Radios/Radio_R148.et",
|
|
"classification": "already catalogued successor vanilla resource",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_HQStatus.c",
|
|
"Scripts/Game/EscapistsAI/EAI_MortarSystem.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "6D56FED1E55A8F84",
|
|
"path": "Prefabs/Items/Misc/IntelligenceFolder_E_01/IntelligenceFolder_E_01.et",
|
|
"classification": "already catalogued successor vanilla resource",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/Simulation/EAI_SimulationIntel.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "D83CA092B7100100",
|
|
"path": "Prefabs/Logistics/EAI_DepotStock.et",
|
|
"classification": "old owned addon wrapper; successor identity and base-hook replacement required",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_DepotLoading.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "7E385CE1ADBF0659",
|
|
"path": "Prefabs/MP/Spawning/SpawnPoint_Prison.et",
|
|
"classification": "original-base resource; replace independently",
|
|
"referenced_by": [
|
|
"Prefabs/StartAreas/EAI_ImprovisedPrison.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "A631EB470D19C201",
|
|
"path": "Prefabs/StartAreas/EAI_ImprovisedPrison.et",
|
|
"classification": "old owned addon wrapper; successor identity and base-hook replacement required",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_ImprovisedPrisons.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "A631EB470D19C203",
|
|
"path": "Prefabs/StartAreas/EAI_PrisonBackpack.et",
|
|
"classification": "old owned addon wrapper; successor identity and base-hook replacement required",
|
|
"referenced_by": [
|
|
"Prefabs/StartAreas/EAI_ImprovisedPrison.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "A631EB470D19C202",
|
|
"path": "Prefabs/StartAreas/EAI_PrisonGate.et",
|
|
"classification": "old owned addon wrapper; successor identity and base-hook replacement required",
|
|
"referenced_by": [
|
|
"Prefabs/StartAreas/EAI_ImprovisedPrison.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "A631EB470D19C204",
|
|
"path": "Prefabs/StartAreas/EAI_PrisonWall.et",
|
|
"classification": "old owned addon wrapper; successor identity and base-hook replacement required",
|
|
"referenced_by": [
|
|
"Prefabs/StartAreas/EAI_ImprovisedPrison.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "87CADB5ADC989993",
|
|
"path": "Prefabs/Structures/BuildingParts/Doors/DoorSet_Base.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/StartAreas/EAI_PrisonGate.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "67F17696FF278AE0",
|
|
"path": "Prefabs/Structures/BuildingParts/Doors/Door_Metal_A_RIGHT_EXT_COV_B.et",
|
|
"classification": "already catalogued successor vanilla resource",
|
|
"referenced_by": [
|
|
"Prefabs/StartAreas/EAI_PrisonGate.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "EFA7233213E77C2F",
|
|
"path": "Prefabs/Systems/SpawnPoints/SpawnPosition_Prison.et",
|
|
"classification": "original-base resource; replace independently",
|
|
"referenced_by": [
|
|
"Prefabs/StartAreas/EAI_ImprovisedPrison.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "AB4B037AF4617292",
|
|
"path": "Prefabs/Vehicles/Helicopters/EAI_AmmoMi8.et",
|
|
"classification": "old owned addon wrapper; successor identity and base-hook replacement required",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_Resupply.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "8A9D735C042F61B2",
|
|
"path": "Prefabs/Vehicles/Helicopters/EAI_ReconMi8.et",
|
|
"classification": "old owned addon wrapper; successor identity and base-hook replacement required",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_AirRecon.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "7BD282AF716ED639",
|
|
"path": "Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_armed.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Vehicles/Helicopters/EAI_ReconMi8.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "DF5CCB7C0FF049F4",
|
|
"path": "Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et",
|
|
"classification": "already catalogued successor vanilla resource",
|
|
"referenced_by": [
|
|
"Prefabs/Vehicles/Helicopters/EAI_AmmoMi8.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "073115E564DF6BEF",
|
|
"path": "Prefabs/Vehicles/Helicopters/Mi8MT/VehParts/WeapSystems/Mi8MT_PKMT_mount_left.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Vehicles/Helicopters/EAI_ReconMi8.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "AB264721601AED00",
|
|
"path": "Prefabs/Vehicles/Parachutes/EAI_AssaultParachute.et",
|
|
"classification": "old owned addon wrapper; successor identity and base-hook replacement required",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_AirAssault.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "1DC01AAACFFA8B63",
|
|
"path": "Prefabs/Vehicles/Tracked/BMP1/BMP1_Base.et",
|
|
"classification": "authorized WCS BMP-1; verify owning installed database",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_SupplyConvoys.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "0B4DEA8078B78A9B",
|
|
"path": "Prefabs/Vehicles/Wheeled/UAZ469/UAZ469_PKM.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_AIResponseSystem.c",
|
|
"Scripts/Game/EscapistsAI/EAI_HQRoadblocks.c",
|
|
"Scripts/Game/EscapistsAI/EAI_SupplyConvoys.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "3336BE330C4F355B",
|
|
"path": "Prefabs/Vehicles/Wheeled/Ural4320/Ural4320_ammo.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_SupplyConvoys.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "A5647958579A4149",
|
|
"path": "Prefabs/Vehicles/Wheeled/Ural4320/Ural4320_repair.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_HelicopterRecovery.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "16C1F16C9B053801",
|
|
"path": "Prefabs/Vehicles/Wheeled/Ural4320/Ural4320_transport.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_SupplyConvoys.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "98EC9C526AFBA282",
|
|
"path": "Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et",
|
|
"classification": "already catalogued successor vanilla resource",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_MortarSystem.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "061785BDE2DB997E",
|
|
"path": "Prefabs/Weapons/Attachments/Core/Optic_Scope_Base.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Weapons/Attachments/Optics/1p78/Optic_1P78.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "695AAA77F84EB238",
|
|
"path": "Prefabs/Weapons/Attachments/Optics/1p21/Optic_1P21.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_SniperOptics.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "8D4BAA235F7EDBEA",
|
|
"path": "Prefabs/Weapons/Attachments/Optics/1p78/Optic_1P78.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_SniperOptics.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "BD496EE1B40DC510",
|
|
"path": "Prefabs/Weapons/Attachments/Optics/Optic_4x20/Optic_4x20.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_SniperOptics.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "D2018EDB1BBF4C88",
|
|
"path": "Prefabs/Weapons/Attachments/Optics/Optic_ARTII/Optic_ARTII.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_SniperOptics.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "C850A33226B8F9C1",
|
|
"path": "Prefabs/Weapons/Attachments/Optics/Optic_PSO1/Optic_PSO1.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_SniperOptics.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "A1D5833FF10C6503",
|
|
"path": "Prefabs/Weapons/Attachments/Optics/Optic_PSO1/Optic_PSO1M2.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_SniperOptics.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "97B99B20B6545D34",
|
|
"path": "Prefabs/Weapons/Attachments/Optics/Optic_PSO1/Optic_PSO1M2_base.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Weapons/Attachments/Optics/Optic_PSO1/Optic_PSO1M2.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "883783EF2E0658D6",
|
|
"path": "Prefabs/Weapons/Attachments/Optics/Optic_SPP/Optic_SPP_base.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Weapons/Attachments/Optics/Optic_SPP/Optic_SPP.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "333A794F0B55C019",
|
|
"path": "Prefabs/Weapons/Attachments/Optics/m8541/Optic_M8541.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_SniperOptics.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "2E0E3D7D1DD0FF8F",
|
|
"path": "Prefabs/Weapons/Core/Attachment_Base.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Weapons/Core/WeaponSight_Base.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "B05A816C0BF50802",
|
|
"path": "Prefabs/Weapons/Explosives/Mine_PMN4/Mine_PMN4.et",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_Mines.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "C0F7DD85A86B2900",
|
|
"path": "Prefabs/Weapons/Handguns/PM/Handgun_PM.et",
|
|
"classification": "already catalogued successor vanilla resource",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_ImprovisedPrisons.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "3DF204EEE0534EF2",
|
|
"path": "Prefabs/Weapons/Launchers/FIM92_Stinger/Launcher_FIM92_Stinger.et",
|
|
"classification": "authorized WCS Armaments FIM92; verify owning installed database",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_StingerEquipment.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "8B853CDD11BA916E",
|
|
"path": "Prefabs/Weapons/Magazines/Magazine_9x18_PM_8rnd_Ball.et",
|
|
"classification": "already catalogued successor vanilla resource",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_ImprovisedPrisons.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "D1FFE458E8AC4BDB",
|
|
"path": "Prefabs/Weapons/Mortars/2B14/Mortar_2B14.et",
|
|
"classification": "already catalogued successor vanilla resource",
|
|
"referenced_by": [
|
|
"Scripts/Game/EscapistsAI/EAI_MortarSystem.c"
|
|
]
|
|
},
|
|
{
|
|
"guid": "440E1F3747714D45",
|
|
"path": "Sounds/Lockpicking/Lockpicking_Sounds.acp",
|
|
"classification": "original-base resource; replace independently",
|
|
"referenced_by": [
|
|
"Prefabs/StartAreas/EAI_PrisonGate.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "A73D28179B395F19",
|
|
"path": "Sounds/Props/Military/AmmoBoxes/AmmoBox_Big_Wooden/Props_AmmoBox_Big_Wooden.acp",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Logistics/EAI_DepotStock.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "92CB09CB84872CB4",
|
|
"path": "Sounds/Weapons/_SharedData/PickUp/Weapons_PickUp_Attachments_LongGeneric.acp",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Weapons/Attachments/Optics/1p78/Optic_1P78.et"
|
|
]
|
|
},
|
|
{
|
|
"guid": "8EB808BFA227C080",
|
|
"path": "UI/Textures/Icons/InventoryHints/InventoryHint_SuppliesStored.edds",
|
|
"classification": "not independently verified by this audit; verify installed owning resource database before migration",
|
|
"referenced_by": [
|
|
"Prefabs/Logistics/EAI_DepotStock.et"
|
|
]
|
|
}
|
|
],
|
|
"authorized_installed_dependencies": [
|
|
{
|
|
"guid": "595F2BF2F44836FB",
|
|
"title": "RHS: Status Quo",
|
|
"dependencies": [
|
|
"58D0FB3206B6F859",
|
|
"1337C0DE5DABBEEF",
|
|
"BADC0DEDABBEDA5E"
|
|
],
|
|
"installed_version": "0.16.5208",
|
|
"local_path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-StatusQuo_595F2BF2F44836FB"
|
|
},
|
|
{
|
|
"guid": "1337C0DE5DABBEEF",
|
|
"title": "RHS: Status Quo - Content Pack 01",
|
|
"dependencies": [
|
|
"58D0FB3206B6F859"
|
|
],
|
|
"installed_version": "0.16.5208",
|
|
"local_path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-ContentPack01_1337C0DE5DABBEEF"
|
|
},
|
|
{
|
|
"guid": "BADC0DEDABBEDA5E",
|
|
"title": "RHS: Status Quo - Content Pack 02",
|
|
"dependencies": [
|
|
"58D0FB3206B6F859"
|
|
],
|
|
"installed_version": "0.16.5208",
|
|
"local_path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-ContentPack02_BADC0DEDABBEDA5E"
|
|
},
|
|
{
|
|
"guid": "5E389BB9F58B79A6",
|
|
"title": "WCS_SpaceCore",
|
|
"dependencies": [
|
|
"58D0FB3206B6F859",
|
|
"629B2BA37EFFD577"
|
|
],
|
|
"installed_version": "8.2.1",
|
|
"local_path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/SpaceCore_5E389BB9F58B79A6"
|
|
},
|
|
{
|
|
"guid": "629B2BA37EFFD577",
|
|
"title": "WCS_Armaments",
|
|
"dependencies": [
|
|
"58D0FB3206B6F859"
|
|
],
|
|
"installed_version": "8.2.1",
|
|
"local_path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/WCS_Armaments_629B2BA37EFFD577"
|
|
},
|
|
{
|
|
"guid": "5E524E4FEECCA92B",
|
|
"title": "WCS_BMP-1",
|
|
"dependencies": [
|
|
"58D0FB3206B6F859",
|
|
"5E389BB9F58B79A6",
|
|
"629B2BA37EFFD577"
|
|
],
|
|
"installed_version": "8.2.0",
|
|
"local_path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/BMP-1IFV_5E524E4FEECCA92B"
|
|
}
|
|
],
|
|
"post_audit_updates": [
|
|
{
|
|
"id": "convoys",
|
|
"updated_on": "2026-09-20",
|
|
"status": "partial",
|
|
"implementation": "Finite six-vehicle/19-body shared-budget service with one opt-in canonical HQ dispatch, actual native road driving, exact initial seat membership and finite eight-rifle/48-magazine truck cargo. Delivered-report HQ HOLD/RESUME preserves each original crew, route index and owned waypoint; native mounted-combat registration is enabled.",
|
|
"evidence": "native-2026-09-20-025035-convoy-driving: 181 assertions, all six original vehicles at least20m and lead over100m, duplicate dispatch rejected; zero script/runtime failures. Four external localization errors keep strict qualification failed. Current-source native-2026-09-20-041150-convoy-cover-driving repeats181 assertions after the cover integration; radio command transitions have executable-method tests, not native combat proof.",
|
|
"remaining": "Direct native HOLD/RESUME and mounted firing; automatic startup count/scheduling; dismount/flank/reboard tactics, delivery/unloading, full-route reliability, multiplayer and FPS qualification.",
|
|
"detail": "docs/convoy-migration.md"
|
|
},
|
|
{
|
|
"id": "body_discovery",
|
|
"updated_on": "2026-09-20",
|
|
"status": "partial",
|
|
"implementation": "Body and cumulative status death-slot evidence share immutable original formation identity. Delivered union deduplicates overlap, retains disjoint casualties, and can close a fully confirmed wiped formation without inventing a caller. Scalar attribution survives target deletion; known transfers permanently release old slots.",
|
|
"evidence": "native-2026-09-20-030533-body-radio-casualties: 45 assertions, actual corpse LOS and radio delivery, no loss before delivery, subsequent real status overlap counts once; zero script/runtime failures. Four external localization errors keep strict qualification failed. Deleted-target transit, full wipe and transfer-before-death cases are actual-method regressions.",
|
|
"remaining": "Ordinary patrol discovery, native deletion during radio transit, native complete wiped formations, remote ownership and multiplayer qualification.",
|
|
"detail": "docs/ai-migration-progress.md"
|
|
},
|
|
{
|
|
"id": "ammo_accounting",
|
|
"updated_on": "2026-09-20",
|
|
"status": "partial",
|
|
"implementation": "Read-only immutable-roster compatible small-arms magazine and chamber snapshots delivered through status radio; separate launcher uncertainty, conservative inherited-well handling, fresh known-empty veto for new infantry tasks without active-order cancellation. No refill or mounted/cargo inference.",
|
|
"evidence": "native-2026-09-20-040857-hq-ammunition completes49 assertions: five original surviving members,1120 magazine rounds,33 magazines,5 chambered; actual delivery to independent immutable Watch snapshot. Four external localization errors remain. Later inherited-well refinement passes executable regressions and compiles in the181-assertion convoy recheck.",
|
|
"remaining": "Native empty/depletion and modded derived-well cases; low-stock urgent reports, general resupply/cargo transfers, vehicle weapons, multiplayer and FPS qualification.",
|
|
"detail": "docs/hq-ammunition.md"
|
|
},
|
|
{
|
|
"id": "optics",
|
|
"updated_on": "2026-09-20",
|
|
"status": "partial",
|
|
"implementation": "Scoped startup optics fitting on the first eligible physical weapon roster of original military enemy actors. Verified vanilla/RHS candidates use native free-slot compatibility; existing magnified optics are preserved. Finite five-check processing, accepted-operation quarantine, no later weapon replacement or replenishment; shares existing equipment cadence independently of Stinger completion.",
|
|
"evidence": "Actual-method inspection, ownership, slot, callback and lifecycle regressions pass. native-2026-09-20-050906-convoy-seat-diagnostic compiled and executed the service: 59 terminal records, six physical optic confirmations, 53 unconfirmed deadlines. These logs cannot establish a new attachment insertion.",
|
|
"remaining": "Native before/after proof of a new compatible insertion, ordinary captured-weapon use and multiplayer replication; complete full AI migration remains separate.",
|
|
"detail": "docs/ai-equipment-migration.md"
|
|
}
|
|
]
|
|
}
|