Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
34 lines
3.8 KiB
JSON
34 lines
3.8 KiB
JSON
{
|
|
"verdict": "No demonstrated ordinary gameplay defect; no patch justified in bounded review.",
|
|
"scope": "Normal mission radio defence, not HQ radio network hops. Read-only successor audit; sealed playtest untouched.",
|
|
"findings": [
|
|
"CanBegin requires server, active mission, IDLE service, registered identified radio, canonical current connected roster actor, matching player faction, conscious living body and <=5m distance. Begin latches DEFENDING before start callback: a second native action completion cannot start another timer.",
|
|
"Each Tick enumerates native currently controlled players and revalidates CurrentActor, faction, consciousness and <60m radius. Disconnected retained bodies and stale replaced bodies do not defend. Any zero-defender sample resets progress; another eligible defender preserves continuity.",
|
|
"ERR_TuneRadioAction client availability avoids server-only roster checks; authoritative PerformAction delegates to Begin for current-body revalidation. Interrupted native hold cannot grant progress through a separate authored callback.",
|
|
"Radio.et is an authored static GenericEntity with no inventory or damage-manager component, and RadioCamp.et inherits it. Ordinary theft/destruction was not demonstrated. Forced entity deletion unregisters location and stops accumulating progress, but recovery from externally forced deletion is not an established ordinary-play requirement.",
|
|
"Stop latches STOPPED and clears location/progress; subsequent Tick/Begin refuse. Completion latches before observer callbacks, and GameMode completion handler requires RADIO_DEFENCE plus the matching completed service/location. New mission initialization allocates a new service.",
|
|
"Existing actual policy tests cover authorization/range, handover/reset, backward clock and live duration changes. Existing native fixture source includes duplicate Begin, hostile/unconscious/dead exclusion, empty connection set, completion reentrancy, stop and terminal-phase cancellation. These fixture checks were read, not run in this audit."
|
|
],
|
|
"verification": {
|
|
"tests_run": false,
|
|
"native_run": false,
|
|
"target_writes": false,
|
|
"note": "Read-only bounded audit; no new test or native qualification claimed."
|
|
},
|
|
"source_sha256": {
|
|
"addons/core/Scripts/Game/ERR/00_Core/ERR_RadioDefenceService.c": "f5f0bf1352141f933d0edb5630e30541e001dc07e1d2c8529b29cc159c126b13",
|
|
"addons/core/Scripts/Game/ERR/00_Core/ERR_Actions.c": "cabb21413c90b252d29708b62228d0679c51c76e39ee0e483953ad7061b2b9d6",
|
|
"addons/core/Scripts/Game/ERR/00_Core/ERR_Location.c": "5b0b058130ccac02bdc1dcd6474d51a6f45da4dd52ed6c37906692fca3f194b1",
|
|
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b",
|
|
"addons/core/Scripts/Game/ERR/00_Core/ERR_Actors.c": "980d30964845600a261693cc5c5553e1472e8e54867bdc06133ff5c7b36c9128",
|
|
"addons/core/Scripts/Game/ERR/00_Core/ERR_GameMode.c": "89a29c03ba225acbbb9fa3c58a721aced91a77bc0c77046d697005a6d7c48bb9",
|
|
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteService.c": "210646e679056f4a46ef454a5abe15bd42d48349aa376ccfbb6b3b2ebeac6812",
|
|
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioDefenceProbe.c": "ff1e27a0ce75b123a86e7df31354831880ca62ea90b6c5d7c60d3ba168e1fff0",
|
|
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48",
|
|
"addons/core/Prefabs/ERR/Radio.et": "99b1d80b49d1e7f9d30aa4283772a36fd66e962369f288f5fe329c7fc911bb1b",
|
|
"addons/core/Prefabs/ERR/RadioCamp.et": "5e6216bf8e6e160da5d9f966c8f7c2081bf6dd16dfac1b89d682a14b3b8a6716",
|
|
"tests/test_radio_defence_policy.py": "48c9c01dc6135a3f6d2187b0974645758040f041c3c2c2c26b14222fc572dfe1",
|
|
"tests/test_radio_feedback_policy.py": "6b576472f81a35bd4df4dae3f19925b046eedbba262ad67f9bfe1ce9d220a487"
|
|
}
|
|
}
|