Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
57 lines
4.4 KiB
JSON
57 lines
4.4 KiB
JSON
{
|
|
"verdict": "Concrete source-level missing capture-event integration identified; native timing reproduction and patch not executed.",
|
|
"behavior": "Original ground response vehicle capture is recorded immediately on player compartment entry; successor hunter capture is only sampled at one-second Tick cadence.",
|
|
"evidence": [
|
|
{
|
|
"path": "/home/jakub/devel/escapists/escapists-ai/Scripts/Game/EscapistsAI/EAI_ResponseSafety.c",
|
|
"method": "SCR_CompartmentAccessComponent.OnCompartmentEntered",
|
|
"fact": "Server player entry calls EAI_ReleaseCapturedResponses(targetEntity) before native super callback."
|
|
},
|
|
{
|
|
"path": "/home/jakub/devel/escapists/escapists-ai/Scripts/Game/EscapistsAI/EAI_AIResponseSystem.c",
|
|
"method": "EAI_ReleaseCapturedResponses",
|
|
"fact": "Matches exact original response vehicle via entered entity ancestry or current occupancy; removes tracked pair permanently, preserving physical vehicle."
|
|
},
|
|
{
|
|
"path": "/home/jakub/devel/escapistsrereintroduced/addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c",
|
|
"method": "ERR_HunterService.Tick",
|
|
"fact": "now<m_NextHunter returns; sets next=now+1000, then checks current Captured for each tracked hunter."
|
|
},
|
|
{
|
|
"path": "/home/jakub/devel/escapistsrereintroduced/addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyService.c",
|
|
"method": "ERR_ConvoyRules.Captured",
|
|
"fact": "Current group player count/current native player-controlled entities only; no prior capture latch. No successor compartment-entry capture hook found."
|
|
}
|
|
],
|
|
"reproducer_design": {
|
|
"red": "At t0 call real Hunter Tick to set next-tick deadline. During gap invoke player compartment entry for exact original hunter (or turret child); then clear current controlled-player mapping before t0+1000. At next Tick current Captured is false and original hunter remains owned/ordered, unlike predecessor event semantics. Use native callbacks as explicit boundary doubles; do not claim ordinary enter/exit animations complete within one second. Disconnect/current-controller loss supplies the identity-loss case.",
|
|
"green": "Exact original hunter is latched captured and released by entry event regardless of later current player lookup; subsequent Tick cannot re-adopt it.",
|
|
"controls": [
|
|
"Client callback does nothing; call super exactly once.",
|
|
"Unrelated vehicle, old mode/command and stopped service untouched.",
|
|
"Turret child binds only original tracked ancestor with bounded ancestry.",
|
|
"Repeated entry idempotent; no new actors, deletion, replacement grants or budget refund.",
|
|
"Existing survivor-retention must not preserve captured-group HQ ownership when callback occurs before native occupancy state becomes visible.",
|
|
"No logs/state claiming native movement or player input proof."
|
|
]
|
|
},
|
|
"minimal_follow_on_design": [
|
|
"Add bounded original-hunter-only capture dispatch from server compartment-entry event through current HQ.Hunters().",
|
|
"Latch capture on exact already-tracked vehicle record before release; retain latch for its lifetime.",
|
|
"Make both Hunter.Release and base convoy survivor-retention decision recognize that explicit latch, rather than relying solely on current native occupancy.",
|
|
"Keep ordinary polling as fallback and preserve all physical entities/finite counters."
|
|
],
|
|
"implementation_blocker": "Do not simply call existing Release from the pre-super callback: live Captured can still be false and latest survivor-retention may preserve the wrong ownership. Explicit capture fact must reach cleanup. Event API must be checked against installed SDK before authoring native code.",
|
|
"patch_created": false,
|
|
"tests_run": false,
|
|
"native_run": false,
|
|
"target_writes": false,
|
|
"original_writes": false,
|
|
"sha256": {
|
|
"/home/jakub/devel/escapists/escapists-ai/Scripts/Game/EscapistsAI/EAI_ResponseSafety.c": "b3dcbe8f3dd840791e91e9ec202cd392ebc4895714816cdcedcdc591baa62b05",
|
|
"/home/jakub/devel/escapists/escapists-ai/Scripts/Game/EscapistsAI/EAI_AIResponseSystem.c": "b3e1263e986837744a70fbaedaa6e57afae7f2981a21211d3a2066e2c63ac84d",
|
|
"/home/jakub/devel/escapistsrereintroduced/addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c": "0769d4e7327439ce91b8f9ed0b47c4d92d382e97a1bbf62da8e6002ae4041bf0",
|
|
"/home/jakub/devel/escapistsrereintroduced/addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyService.c": "825a35f7afe485c1e5ddfc96dfff3498b39cce54dc19dce857b5d30fe5dc6557"
|
|
}
|
|
}
|