Files
EscapistsReintroduced/docs/evidence/playtest-refresh-2026-10-02-convoy-survivors/unverified-next-gameplay-proposal.json
T
jakub 6a667d8deb Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
2026-10-13 22:52:53 +02:00

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"
}
}