The NVE writer 0x00756300 and its four siblings, `ltis`'s writer 0x00743ec0, the encounter-placement routine whose unserialised field feeds Eid, the tail phase that calls the writer, and the resolution of an indirect edge lane B5 left open -- ServerSystem primary vftable 0x00a2044c slot 7 is 0x007480b0, and it writes only a runtime mask, so it never reaches the wire. None of the ten collides with an address already in the DB (checked against all 714 addressed entries across addresses.json and every fragment); gen_addresses.py validated to a scratch path at 1019 entries, no duplicate names. Standalone report regenerated from the lane worktree: turn1 -> turn2 209 -> 158 closed 51, regressed 0 turn2 -> turn3 108 -> 87 closed 21, regressed 0 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ARBgSooAfokKUy6wKUKEyZ
2050 lines
64 KiB
JSON
2050 lines
64 KiB
JSON
{
|
|
"schema": "sots-standalone-status/1",
|
|
"generated": "2026-09-08T17:37:38Z",
|
|
"binary": "/home/alex/sots-engine-e3/build-host/src/app/sots_turn",
|
|
"reference": {
|
|
"input": "turn1-state.sav",
|
|
"oracle": "turn2-state.sav",
|
|
"baselineDiverging": 209,
|
|
"divergingAfterTurn": 158,
|
|
"closed": 51,
|
|
"regressed": 0,
|
|
"byteMatch": false,
|
|
"subsystems": {
|
|
"/Sim/players": 82,
|
|
"/Sim/systems": 34,
|
|
"/Sim/turnstats": 24,
|
|
"/Sim/SvSctOb": 8,
|
|
"/Sim/DesignIDs[]": 1,
|
|
"/Sim/FleetIDs[]": 1,
|
|
"/Sim/ModCount": 1,
|
|
"/Sim/NMnx": 1,
|
|
"/Sim/NumFlts": 1,
|
|
"/Sim/RNG": 1,
|
|
"/Sim/ShipIDs[]": 1,
|
|
"/Sim/cmbtid": 1,
|
|
"/Sim/fleets": 1,
|
|
"/Summary/Checksum": 1
|
|
}
|
|
},
|
|
"phases": {
|
|
"total": 44,
|
|
"verified": 0,
|
|
"implemented": 4,
|
|
"partial": 6,
|
|
"blocked": 6,
|
|
"stub": 28,
|
|
"modelled": 16,
|
|
"committed": 10
|
|
},
|
|
"tailPhases": {
|
|
"total": 37,
|
|
"verified": 0,
|
|
"implemented": 1,
|
|
"partial": 2,
|
|
"blocked": 2,
|
|
"stub": 32,
|
|
"modelled": 5,
|
|
"committed": 3
|
|
},
|
|
"rng": {
|
|
"wordsModelled": 16,
|
|
"wordsPerTurnUnattributed": "18-20 (lane Z, in flight)"
|
|
},
|
|
"pairs": [
|
|
{
|
|
"input": "turn1-state.sav",
|
|
"oracle": "turn2-state.sav",
|
|
"note": "real End Turn",
|
|
"exit": 0,
|
|
"stdout": [
|
|
"load: /home/alex/sots-re/verify/results/saves/turn1-state.sav",
|
|
" 591376 inflated bytes, 0 error(s), 0 warning(s)",
|
|
" turn 1, frame 1, modCount 0, 8 player(s), 28 system(s), 6 fleet(s)",
|
|
"roundtrip (untouched): byte-identical (591376 bytes)",
|
|
"",
|
|
"phases",
|
|
" turn drivers (the milestone's denominator): 16 of 44 modelled, 10 committed",
|
|
" verified 0 implemented 4 partial 6 blocked 6 stub 28",
|
|
" post-combat tail (written to the autosave, tracked separately): 5 of 37 modelled",
|
|
" verified 0 implemented 1 partial 2 blocked 2 stub 32",
|
|
"",
|
|
"this run",
|
|
" leaves written 53",
|
|
" leaves NOT written by a blocked phase 72",
|
|
" generator words consumed 16 (state loaded, left untouched)",
|
|
" generator words NOT accounted (never netted off the above):",
|
|
" - encounter detection draws one unit value and one bounded integer per turn on every turn measured (2 words), with no derived rule behind the count -- its bound is the product of the contact and detector counts, so it is left unmodelled",
|
|
" - the research-allocation draw is downstream of the budget, which is blocked on the per-system money output (0 or 1 word)",
|
|
" - a successful raid roll may draw one further word to pick its target; no roll succeeded on any measured turn, so the cost of a success is 0 or 1 and undetermined",
|
|
" ! the generator advanced during this run but the save keeps its original state (--commit-rng to write it)",
|
|
" ! the modelled words are a LOWER BOUND on the turn's cost, so a committed generator is short by the unaccounted sites below and its drawn VALUES are not the game's",
|
|
"",
|
|
"wrote /tmp/tmpex18kut6/post-turn1-state.sav (65208 bytes gzipped, 591664 inflated)",
|
|
"metric -> /tmp/tmpex18kut6/metric-turn1-state.sav.json"
|
|
],
|
|
"coverage": {
|
|
"input": true,
|
|
"oracle": true,
|
|
"ours": true
|
|
},
|
|
"roots": {
|
|
"input": "64b836b966299d9b72fc02244ed31e31",
|
|
"oracle": "4bed514f853332b9fa35b388c3aa5558",
|
|
"ours": "d77168aa0a5bd1b8890d8c0f994aed3f"
|
|
},
|
|
"baselineDiverging": 209,
|
|
"divergingAfterTurn": 158,
|
|
"closed": 51,
|
|
"regressed": 0,
|
|
"closedPaths": [
|
|
"/Sim/Frame",
|
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/EPid",
|
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/ETS",
|
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/Eid",
|
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/NVE",
|
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/ltis",
|
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/ntdev",
|
|
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/EPid",
|
|
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ETS",
|
|
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/Eid",
|
|
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/NVE",
|
|
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ltis",
|
|
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ntdev",
|
|
"/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/EFlags",
|
|
"/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/EPid",
|
|
"/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ETS",
|
|
"/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/Eid",
|
|
"/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/NVE",
|
|
"/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ltis",
|
|
"/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ntdev",
|
|
"/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/EFlags",
|
|
"/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/EPid",
|
|
"/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/ETS",
|
|
"/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/Eid",
|
|
"/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/NVE",
|
|
"/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/ltis",
|
|
"/Sim/systems/Sys[400 \"Markab\"]/EFlags",
|
|
"/Sim/systems/Sys[400 \"Markab\"]/EPid",
|
|
"/Sim/systems/Sys[400 \"Markab\"]/ETS",
|
|
"/Sim/systems/Sys[400 \"Markab\"]/Eid",
|
|
"/Sim/systems/Sys[400 \"Markab\"]/NVE",
|
|
"/Sim/systems/Sys[400 \"Markab\"]/ltis",
|
|
"/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/EFlags",
|
|
"/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/EPid",
|
|
"/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/ETS",
|
|
"/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/Eid",
|
|
"/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/NVE",
|
|
"/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/ltis",
|
|
"/Sim/systems/Sys[480 \"Ko'Rorkor\"]/EFlags",
|
|
"/Sim/systems/Sys[480 \"Ko'Rorkor\"]/EPid",
|
|
"/Sim/systems/Sys[480 \"Ko'Rorkor\"]/ETS",
|
|
"/Sim/systems/Sys[480 \"Ko'Rorkor\"]/Eid",
|
|
"/Sim/systems/Sys[480 \"Ko'Rorkor\"]/NVE",
|
|
"/Sim/systems/Sys[480 \"Ko'Rorkor\"]/ltis",
|
|
"/Sim/systems/Sys[64 \"Hyperion\"]/EFlags",
|
|
"/Sim/systems/Sys[64 \"Hyperion\"]/EPid",
|
|
"/Sim/systems/Sys[64 \"Hyperion\"]/ETS",
|
|
"/Sim/systems/Sys[64 \"Hyperion\"]/Eid",
|
|
"/Sim/systems/Sys[64 \"Hyperion\"]/NVE",
|
|
"/Sim/systems/Sys[64 \"Hyperion\"]/ltis",
|
|
"/Summary/Turn"
|
|
],
|
|
"regressedPaths": [],
|
|
"remainingSample": [
|
|
"/Sim/DesignIDs[]: removed [], added [18, 1712] (41 -> 43 entries)",
|
|
"/Sim/FleetIDs[]: removed [], added [1744] (6 -> 7 entries)",
|
|
"/Sim/ModCount: 2 -> 12",
|
|
"/Sim/NMnx: 106 -> 109",
|
|
"/Sim/NumFlts: 6 -> 7",
|
|
"/Sim/RNG/.: '<raw 2503 B 9e6887688129a8f6>' -> '<raw 2503 B ef4d678696ed4c53>'",
|
|
"/Sim/ShipIDs[]: removed [], added [1728] (15 -> 16 entries)",
|
|
"/Sim/SvSctOb/EncObj[3]/CDiff: -1 -> 0",
|
|
"/Sim/SvSctOb/EncObj[5]/Hives/.: only-in-A",
|
|
"/Sim/SvSctOb/EncObj[5]/Hives/.[0]: only-in-B",
|
|
"/Sim/SvSctOb/EncObj[5]/Hives/.[1]: only-in-B",
|
|
"/Sim/SvSctOb/EncObj[5]/Hives/.[2]: only-in-B",
|
|
"/Sim/SvSctOb/EncObj[6]/did: only-in-B",
|
|
"/Sim/SvSctOb/EncObj[6]/didc: 0 -> 1",
|
|
"/Sim/SvSctOb/EncObj[6]/ini: False -> True",
|
|
"/Sim/cmbtid: 1 -> 2",
|
|
"/Sim/fleets/Flt[1744 \"Alpha Fleet\"]: only-in-B",
|
|
"/Sim/players/Player[16 \"re\"]/BnkEl: -1590613 -> -1594593",
|
|
"/Sim/players/Player[16 \"re\"]/BnkPr: -787353 -> -789323",
|
|
"/Sim/players/Player[16 \"re\"]/Events/EvNxID: 0 -> 2",
|
|
"/Sim/players/Player[16 \"re\"]/Events/Events/.: only-in-A",
|
|
"/Sim/players/Player[16 \"re\"]/Events/Events/.[0]: only-in-B",
|
|
"/Sim/players/Player[16 \"re\"]/Events/Events/.[EvTurn=2]: only-in-B",
|
|
"/Sim/players/Player[16 \"re\"]/Sav: 50000 -> 289688",
|
|
"/Sim/players/Player[16 \"re\"]/Status: 0 -> 4",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/BnkEl: -1811273 -> -1815833",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/BnkPr: -896580 -> -898837",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/Events/EvNxID: 0 -> 2",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/Events/Events/.: only-in-A",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/Events/Events/.[0]: only-in-B",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/Events/Events/.[EvTurn=2]: only-in-B",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/FNG/FNGNum: 0 -> 1",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/Maint: 0 -> 500",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/NumDes: 5 -> 6",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/PvSav: 50000 -> 38100",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/ResRate: 0.25 -> 0.800000011920929 [1.34218e+07 ulp]",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/ResTNm: '' -> 'IND_Waldo'",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/Sav: 50000 -> 92651",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srb[0]: 0 -> 1",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srb[3]: only-in-B"
|
|
],
|
|
"byteMatch": false,
|
|
"standalone": {
|
|
"schema": "sots-standalone-metric/1",
|
|
"input": "/home/alex/sots-re/verify/results/saves/turn1-state.sav",
|
|
"output": "/tmp/tmpex18kut6/post-turn1-state.sav",
|
|
"spine": {
|
|
"total": 44,
|
|
"verified": 0,
|
|
"implemented": 4,
|
|
"partial": 6,
|
|
"blocked": 6,
|
|
"stub": 28,
|
|
"modelled": 16,
|
|
"committed": 10
|
|
},
|
|
"tail": {
|
|
"total": 37,
|
|
"verified": 0,
|
|
"implemented": 1,
|
|
"partial": 2,
|
|
"blocked": 2,
|
|
"stub": 32,
|
|
"modelled": 5,
|
|
"committed": 3
|
|
},
|
|
"run": {
|
|
"leafWrites": 53,
|
|
"blockedLeafWrites": 72,
|
|
"rngWords": 16,
|
|
"rngLoaded": true,
|
|
"rngCommitted": false,
|
|
"rngUnaccounted": [
|
|
"encounter detection draws one unit value and one bounded integer per turn on every turn measured (2 words), with no derived rule behind the count -- its bound is the product of the contact and detector counts, so it is left unmodelled",
|
|
"the research-allocation draw is downstream of the budget, which is blocked on the per-system money output (0 or 1 word)",
|
|
"a successful raid roll may draw one further word to pick its target; no roll succeeded on any measured turn, so the cost of a success is 0 or 1 and undetermined"
|
|
]
|
|
},
|
|
"phases": [
|
|
{
|
|
"driver": "host turn sequence (outside the two turn drivers)",
|
|
"id": "H00",
|
|
"name": "BeginProcessTurn",
|
|
"status": "implemented",
|
|
"ran": 1,
|
|
"writes": 1,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S00",
|
|
"name": "SnapshotPreviousTurn",
|
|
"status": "partial",
|
|
"ran": 1,
|
|
"writes": 1,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S01",
|
|
"name": "SystemPrePassMoraleAndAbandon",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S02",
|
|
"name": "TradeManagerTurn",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S03",
|
|
"name": "RegisterTradeSystems",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S04",
|
|
"name": "RebuildAllianceMasks",
|
|
"status": "implemented",
|
|
"ran": 8,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S05",
|
|
"name": "BuildShipActionTypeSets",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S06",
|
|
"name": "ShipActionsExceptType2",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S07",
|
|
"name": "NodeSpaceTravel",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S08",
|
|
"name": "FleetMovement",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S09",
|
|
"name": "ShipActionsType2",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S10",
|
|
"name": "ShipUpkeep",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S11",
|
|
"name": "SystemTurn",
|
|
"status": "partial",
|
|
"ran": 28,
|
|
"writes": 3,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S12",
|
|
"name": "TradeSliderFinalisation",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S13",
|
|
"name": "PlayerTurn",
|
|
"status": "partial",
|
|
"ran": 8,
|
|
"writes": 0,
|
|
"blockedWrites": 7,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P01",
|
|
"name": "ComputeBudget",
|
|
"status": "blocked",
|
|
"ran": 8,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P02",
|
|
"name": "ApplyNetToSavings",
|
|
"status": "blocked",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 3,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P03",
|
|
"name": "RecordBudgetDerivedFields",
|
|
"status": "blocked",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P04",
|
|
"name": "ProcessSpecialProjectsSpend",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P05",
|
|
"name": "ProcessResearch",
|
|
"status": "blocked",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P06",
|
|
"name": "ResearchRefund",
|
|
"status": "blocked",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P07",
|
|
"name": "ClearTimedResearchAccumulators",
|
|
"status": "partial",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P08",
|
|
"name": "DecayRebellionOutputModifier",
|
|
"status": "implemented",
|
|
"ran": 2,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P09",
|
|
"name": "AccumulateTimedResearchBonuses",
|
|
"status": "implemented",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P10",
|
|
"name": "ConsumeResearchRollPending",
|
|
"status": "partial",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P11",
|
|
"name": "PostNoResearchEvent",
|
|
"status": "blocked",
|
|
"ran": 4,
|
|
"writes": 0,
|
|
"blockedWrites": 4,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P12",
|
|
"name": "PruneRaidTargets",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S14",
|
|
"name": "ProcessMissions",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S15",
|
|
"name": "ProcessStations",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S16",
|
|
"name": "ProcessDefenceSats",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S17",
|
|
"name": "ShipStatCacheRefresh",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S18",
|
|
"name": "ShipActionsForceValidate",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S19",
|
|
"name": "ProcessAid",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S20",
|
|
"name": "ProcessSpecialProjectsServer",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S21",
|
|
"name": "ProcessSurrenders",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S22",
|
|
"name": "AdvanceAIRebellion",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S23",
|
|
"name": "ScriptHookTurnStart",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S24",
|
|
"name": "SensorUpdate",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S25",
|
|
"name": "ScriptHookPostSensor",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S26",
|
|
"name": "RefreshPlayerViews",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S27",
|
|
"name": "RecomputePlayerReports",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S28",
|
|
"name": "GrantMetSpeciesTechs",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S29",
|
|
"name": "SystemObservedStamp",
|
|
"status": "implemented",
|
|
"ran": 28,
|
|
"writes": 8,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S30",
|
|
"name": "BuildTeamPartition",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S31",
|
|
"name": "EncounterDetectionAndStatusRestore",
|
|
"status": "partial",
|
|
"ran": 8,
|
|
"writes": 0,
|
|
"blockedWrites": 2,
|
|
"rng": 16
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T00",
|
|
"name": "IncrementModCount",
|
|
"status": "implemented",
|
|
"ran": 1,
|
|
"writes": 1,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T01",
|
|
"name": "ValidateEncounterResultArity",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T02",
|
|
"name": "ResolveFirstContact",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T03",
|
|
"name": "AnnounceEncounterSightings",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T04",
|
|
"name": "TallyBattlesFought",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T05",
|
|
"name": "UpdateDiplomacyStatsFromCombat",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T06",
|
|
"name": "ApplyEncounterResults",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T07",
|
|
"name": "ClearEncounters",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T08",
|
|
"name": "ScriptHookCombatDone",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T09",
|
|
"name": "AdvanceAIRebellionPostCombat",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T10",
|
|
"name": "NodeSpaceTravelSecondPass",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T11",
|
|
"name": "DecayNodeLines",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T12",
|
|
"name": "DrainColonyLossQueue",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T13",
|
|
"name": "UpdateTreasuryMorale",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T14",
|
|
"name": "UpdateForeignFleetMorale",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T15",
|
|
"name": "ProcessBankruptcy",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T16",
|
|
"name": "ResolveArrivedColonizers",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T17",
|
|
"name": "RebuildPlayerViewTree",
|
|
"status": "partial",
|
|
"ran": 28,
|
|
"writes": 32,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T18",
|
|
"name": "PostFleetWarnings",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T19",
|
|
"name": "DrainInfraTerraformQueue",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T20",
|
|
"name": "ScriptHooksTurnEnd",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T21",
|
|
"name": "UpdateSurveyAndSystemStats",
|
|
"status": "partial",
|
|
"ran": 28,
|
|
"writes": 6,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T22",
|
|
"name": "TradeSliderFinalisationSecondPass",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T23",
|
|
"name": "TradeManagerEndOfTurnHooks",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T24",
|
|
"name": "RecomputeMaintenanceAndResearchBonus",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T25",
|
|
"name": "SensorUpdateSecondPass",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T26",
|
|
"name": "ScriptHookPostSensorTail",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T27",
|
|
"name": "RefreshPlayerViewsSecondPass",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T28",
|
|
"name": "UpdateNodeLineSightingMasks",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T29",
|
|
"name": "AbortInvisibleInterceptOrders",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T30",
|
|
"name": "RebuildCommunicationMasks",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T31",
|
|
"name": "UpdateBankruptcyLimits",
|
|
"status": "blocked",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T32",
|
|
"name": "PostIncomingFleetWarnings",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T33",
|
|
"name": "ShipManagerEndOfTurnHooks",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T34",
|
|
"name": "RecordObservedDesigns",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T35",
|
|
"name": "RebuildPlayerReports",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T36",
|
|
"name": "FinalizeTurnRecords",
|
|
"status": "blocked",
|
|
"ran": 8,
|
|
"writes": 0,
|
|
"blockedWrites": 56,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "host turn sequence (outside the two turn drivers)",
|
|
"id": "H01",
|
|
"name": "SaveWriterInvariants",
|
|
"status": "implemented",
|
|
"ran": 1,
|
|
"writes": 1,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"input": "turn2-state.sav",
|
|
"oracle": "turn3-state.sav",
|
|
"note": "real End Turn",
|
|
"exit": 0,
|
|
"stdout": [
|
|
"load: /home/alex/sots-re/verify/results/saves/turn2-state.sav",
|
|
" 603360 inflated bytes, 0 error(s), 0 warning(s)",
|
|
" turn 2, frame 2, modCount 12, 8 player(s), 28 system(s), 7 fleet(s)",
|
|
"roundtrip (untouched): byte-identical (603360 bytes)",
|
|
"",
|
|
"phases",
|
|
" turn drivers (the milestone's denominator): 16 of 44 modelled, 10 committed",
|
|
" verified 0 implemented 4 partial 6 blocked 6 stub 28",
|
|
" post-combat tail (written to the autosave, tracked separately): 5 of 37 modelled",
|
|
" verified 0 implemented 1 partial 2 blocked 2 stub 32",
|
|
"",
|
|
"this run",
|
|
" leaves written 23",
|
|
" leaves NOT written by a blocked phase 66",
|
|
" generator words consumed 16 (state loaded, left untouched)",
|
|
" generator words NOT accounted (never netted off the above):",
|
|
" - encounter detection draws one unit value and one bounded integer per turn on every turn measured (2 words), with no derived rule behind the count -- its bound is the product of the contact and detector counts, so it is left unmodelled",
|
|
" - the research-allocation draw is downstream of the budget, which is blocked on the per-system money output (0 or 1 word)",
|
|
" - a successful raid roll may draw one further word to pick its target; no roll succeeded on any measured turn, so the cost of a success is 0 or 1 and undetermined",
|
|
" ! the generator advanced during this run but the save keeps its original state (--commit-rng to write it)",
|
|
" ! the modelled words are a LOWER BOUND on the turn's cost, so a committed generator is short by the unaccounted sites below and its drawn VALUES are not the game's",
|
|
"",
|
|
"wrote /tmp/tmpex18kut6/post-turn2-state.sav (66882 bytes gzipped, 603360 inflated)",
|
|
"metric -> /tmp/tmpex18kut6/metric-turn2-state.sav.json"
|
|
],
|
|
"coverage": {
|
|
"input": true,
|
|
"oracle": true,
|
|
"ours": true
|
|
},
|
|
"roots": {
|
|
"input": "4bed514f853332b9fa35b388c3aa5558",
|
|
"oracle": "e9c161e311f8ef8fad6f1aa1903dcf3f",
|
|
"ours": "987447a85f9fcded1afd868fca112ef6"
|
|
},
|
|
"baselineDiverging": 108,
|
|
"divergingAfterTurn": 87,
|
|
"closed": 21,
|
|
"regressed": 0,
|
|
"closedPaths": [
|
|
"/Sim/Frame",
|
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/ETS",
|
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/ltis",
|
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/ntdev",
|
|
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ETS",
|
|
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ltis",
|
|
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ntdev",
|
|
"/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ETS",
|
|
"/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ltis",
|
|
"/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ntdev",
|
|
"/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/ETS",
|
|
"/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/ltis",
|
|
"/Sim/systems/Sys[400 \"Markab\"]/ETS",
|
|
"/Sim/systems/Sys[400 \"Markab\"]/ltis",
|
|
"/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/ETS",
|
|
"/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/ltis",
|
|
"/Sim/systems/Sys[480 \"Ko'Rorkor\"]/ETS",
|
|
"/Sim/systems/Sys[480 \"Ko'Rorkor\"]/ltis",
|
|
"/Sim/systems/Sys[64 \"Hyperion\"]/ETS",
|
|
"/Sim/systems/Sys[64 \"Hyperion\"]/ltis",
|
|
"/Summary/Turn"
|
|
],
|
|
"regressedPaths": [],
|
|
"remainingSample": [
|
|
"/Sim/FleetIDs[]: removed [1744], added [34, 1776] (7 -> 8 entries)",
|
|
"/Sim/ModCount: 14 -> 24",
|
|
"/Sim/NMnx: 109 -> 111",
|
|
"/Sim/NumFlts: 7 -> 8",
|
|
"/Sim/RNG/.: '<raw 2503 B ef4d678696ed4c53>' -> '<raw 2503 B a80459bfd63a006b>'",
|
|
"/Sim/ShipIDs[]: removed [], added [1760] (16 -> 17 entries)",
|
|
"/Sim/SvSctOb/EncObj[5]/Hives/.[1]/NextQ: 31 -> 32",
|
|
"/Sim/SvSctOb/EncObj[5]/Hives/.[2]/NextQ: 29 -> 30",
|
|
"/Sim/cmbtid: 2 -> 3",
|
|
"/Sim/fleets/Flt[1744 \"Alpha Fleet\"]: only-in-A",
|
|
"/Sim/fleets/Flt[1776 \"Gamma Fleet\"]: only-in-B",
|
|
"/Sim/fleets/Flt[34 \"Beta Fleet\"]: only-in-B",
|
|
"/Sim/players/Player[16 \"re\"]/BnkEl: -1594593 -> -1598566",
|
|
"/Sim/players/Player[16 \"re\"]/BnkPr: -789323 -> -791290",
|
|
"/Sim/players/Player[16 \"re\"]/Events/EvNxID: 2 -> 3",
|
|
"/Sim/players/Player[16 \"re\"]/Events/Events/.[0]: 1 -> 2",
|
|
"/Sim/players/Player[16 \"re\"]/Events/Events/.[EvTurn=3]: only-in-B",
|
|
"/Sim/players/Player[16 \"re\"]/PvSav: 50000 -> 289688",
|
|
"/Sim/players/Player[16 \"re\"]/Sav: 289688 -> 532369",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/BnkEl: -1815833 -> -1820206",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/BnkPr: -898837 -> -901002",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/Events/EvNxID: 2 -> 4",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/Events/Events/.[0]: 1 -> 2",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/Events/Events/.[EvTurn=3]: only-in-B",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/FNG/FNGNum: 1 -> 3",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/Maint: 500 -> 1000",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/PvSav: 38100 -> 80751",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/Sav: 92651 -> 135486",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srb[0]: 1 -> 2",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srb[3]: 1 -> 2",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/sri[0]: 1 -> 2",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/sri[3]: 1 -> 2",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/TechTree/TResDone[106]: 2879 -> 5768",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/TechTree/Tbd[106]: 1 -> 2",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/lboid: 1 -> 2",
|
|
"/Sim/players/Player[32 \"Fane Lao\"]/odes/.[1]/otnL: 2 -> 3",
|
|
"/Sim/players/Player[496 \"Singularity\"]/dipstats/.[1]/lastally: 2 -> 3",
|
|
"/Sim/players/Player[512 \"Singularity\"]/dipstats/.[1]/lastally: 2 -> 3",
|
|
"/Sim/players/Player[528 \"Alien Menace\"]/dipstats/.[1]/lastnap: 2 -> 3",
|
|
"/Sim/players/Player[528 \"Alien Menace\"]/dipstats/.[2]/lastnap: 2 -> 3"
|
|
],
|
|
"byteMatch": false,
|
|
"standalone": {
|
|
"schema": "sots-standalone-metric/1",
|
|
"input": "/home/alex/sots-re/verify/results/saves/turn2-state.sav",
|
|
"output": "/tmp/tmpex18kut6/post-turn2-state.sav",
|
|
"spine": {
|
|
"total": 44,
|
|
"verified": 0,
|
|
"implemented": 4,
|
|
"partial": 6,
|
|
"blocked": 6,
|
|
"stub": 28,
|
|
"modelled": 16,
|
|
"committed": 10
|
|
},
|
|
"tail": {
|
|
"total": 37,
|
|
"verified": 0,
|
|
"implemented": 1,
|
|
"partial": 2,
|
|
"blocked": 2,
|
|
"stub": 32,
|
|
"modelled": 5,
|
|
"committed": 3
|
|
},
|
|
"run": {
|
|
"leafWrites": 23,
|
|
"blockedLeafWrites": 66,
|
|
"rngWords": 16,
|
|
"rngLoaded": true,
|
|
"rngCommitted": false,
|
|
"rngUnaccounted": [
|
|
"encounter detection draws one unit value and one bounded integer per turn on every turn measured (2 words), with no derived rule behind the count -- its bound is the product of the contact and detector counts, so it is left unmodelled",
|
|
"the research-allocation draw is downstream of the budget, which is blocked on the per-system money output (0 or 1 word)",
|
|
"a successful raid roll may draw one further word to pick its target; no roll succeeded on any measured turn, so the cost of a success is 0 or 1 and undetermined"
|
|
]
|
|
},
|
|
"phases": [
|
|
{
|
|
"driver": "host turn sequence (outside the two turn drivers)",
|
|
"id": "H00",
|
|
"name": "BeginProcessTurn",
|
|
"status": "implemented",
|
|
"ran": 1,
|
|
"writes": 1,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S00",
|
|
"name": "SnapshotPreviousTurn",
|
|
"status": "partial",
|
|
"ran": 1,
|
|
"writes": 1,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S01",
|
|
"name": "SystemPrePassMoraleAndAbandon",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S02",
|
|
"name": "TradeManagerTurn",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S03",
|
|
"name": "RegisterTradeSystems",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S04",
|
|
"name": "RebuildAllianceMasks",
|
|
"status": "implemented",
|
|
"ran": 8,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S05",
|
|
"name": "BuildShipActionTypeSets",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S06",
|
|
"name": "ShipActionsExceptType2",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S07",
|
|
"name": "NodeSpaceTravel",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S08",
|
|
"name": "FleetMovement",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S09",
|
|
"name": "ShipActionsType2",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S10",
|
|
"name": "ShipUpkeep",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S11",
|
|
"name": "SystemTurn",
|
|
"status": "partial",
|
|
"ran": 28,
|
|
"writes": 3,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S12",
|
|
"name": "TradeSliderFinalisation",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S13",
|
|
"name": "PlayerTurn",
|
|
"status": "partial",
|
|
"ran": 8,
|
|
"writes": 0,
|
|
"blockedWrites": 4,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P01",
|
|
"name": "ComputeBudget",
|
|
"status": "blocked",
|
|
"ran": 8,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P02",
|
|
"name": "ApplyNetToSavings",
|
|
"status": "blocked",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 3,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P03",
|
|
"name": "RecordBudgetDerivedFields",
|
|
"status": "blocked",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P04",
|
|
"name": "ProcessSpecialProjectsSpend",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P05",
|
|
"name": "ProcessResearch",
|
|
"status": "blocked",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P06",
|
|
"name": "ResearchRefund",
|
|
"status": "blocked",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P07",
|
|
"name": "ClearTimedResearchAccumulators",
|
|
"status": "partial",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P08",
|
|
"name": "DecayRebellionOutputModifier",
|
|
"status": "implemented",
|
|
"ran": 2,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P09",
|
|
"name": "AccumulateTimedResearchBonuses",
|
|
"status": "implemented",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P10",
|
|
"name": "ConsumeResearchRollPending",
|
|
"status": "partial",
|
|
"ran": 2,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P11",
|
|
"name": "PostNoResearchEvent",
|
|
"status": "blocked",
|
|
"ran": 1,
|
|
"writes": 0,
|
|
"blockedWrites": 1,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "ServerPlayer::ProcessTurn",
|
|
"id": "P12",
|
|
"name": "PruneRaidTargets",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S14",
|
|
"name": "ProcessMissions",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S15",
|
|
"name": "ProcessStations",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S16",
|
|
"name": "ProcessDefenceSats",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S17",
|
|
"name": "ShipStatCacheRefresh",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S18",
|
|
"name": "ShipActionsForceValidate",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S19",
|
|
"name": "ProcessAid",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S20",
|
|
"name": "ProcessSpecialProjectsServer",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S21",
|
|
"name": "ProcessSurrenders",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S22",
|
|
"name": "AdvanceAIRebellion",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S23",
|
|
"name": "ScriptHookTurnStart",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S24",
|
|
"name": "SensorUpdate",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S25",
|
|
"name": "ScriptHookPostSensor",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S26",
|
|
"name": "RefreshPlayerViews",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S27",
|
|
"name": "RecomputePlayerReports",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S28",
|
|
"name": "GrantMetSpeciesTechs",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S29",
|
|
"name": "SystemObservedStamp",
|
|
"status": "implemented",
|
|
"ran": 28,
|
|
"writes": 8,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S30",
|
|
"name": "BuildTeamPartition",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::ProcessTurn",
|
|
"id": "S31",
|
|
"name": "EncounterDetectionAndStatusRestore",
|
|
"status": "partial",
|
|
"ran": 8,
|
|
"writes": 0,
|
|
"blockedWrites": 2,
|
|
"rng": 16
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T00",
|
|
"name": "IncrementModCount",
|
|
"status": "implemented",
|
|
"ran": 1,
|
|
"writes": 1,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T01",
|
|
"name": "ValidateEncounterResultArity",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T02",
|
|
"name": "ResolveFirstContact",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T03",
|
|
"name": "AnnounceEncounterSightings",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T04",
|
|
"name": "TallyBattlesFought",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T05",
|
|
"name": "UpdateDiplomacyStatsFromCombat",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T06",
|
|
"name": "ApplyEncounterResults",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T07",
|
|
"name": "ClearEncounters",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T08",
|
|
"name": "ScriptHookCombatDone",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T09",
|
|
"name": "AdvanceAIRebellionPostCombat",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T10",
|
|
"name": "NodeSpaceTravelSecondPass",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T11",
|
|
"name": "DecayNodeLines",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T12",
|
|
"name": "DrainColonyLossQueue",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T13",
|
|
"name": "UpdateTreasuryMorale",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T14",
|
|
"name": "UpdateForeignFleetMorale",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T15",
|
|
"name": "ProcessBankruptcy",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T16",
|
|
"name": "ResolveArrivedColonizers",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T17",
|
|
"name": "RebuildPlayerViewTree",
|
|
"status": "partial",
|
|
"ran": 28,
|
|
"writes": 8,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T18",
|
|
"name": "PostFleetWarnings",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T19",
|
|
"name": "DrainInfraTerraformQueue",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T20",
|
|
"name": "ScriptHooksTurnEnd",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T21",
|
|
"name": "UpdateSurveyAndSystemStats",
|
|
"status": "partial",
|
|
"ran": 28,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T22",
|
|
"name": "TradeSliderFinalisationSecondPass",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T23",
|
|
"name": "TradeManagerEndOfTurnHooks",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T24",
|
|
"name": "RecomputeMaintenanceAndResearchBonus",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T25",
|
|
"name": "SensorUpdateSecondPass",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T26",
|
|
"name": "ScriptHookPostSensorTail",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T27",
|
|
"name": "RefreshPlayerViewsSecondPass",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T28",
|
|
"name": "UpdateNodeLineSightingMasks",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T29",
|
|
"name": "AbortInvisibleInterceptOrders",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T30",
|
|
"name": "RebuildCommunicationMasks",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T31",
|
|
"name": "UpdateBankruptcyLimits",
|
|
"status": "blocked",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T32",
|
|
"name": "PostIncomingFleetWarnings",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T33",
|
|
"name": "ShipManagerEndOfTurnHooks",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T34",
|
|
"name": "RecordObservedDesigns",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T35",
|
|
"name": "RebuildPlayerReports",
|
|
"status": "stub",
|
|
"ran": 0,
|
|
"writes": 0,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "StrategyServer::OnAllCombatDone_Tail",
|
|
"id": "T36",
|
|
"name": "FinalizeTurnRecords",
|
|
"status": "blocked",
|
|
"ran": 8,
|
|
"writes": 0,
|
|
"blockedWrites": 56,
|
|
"rng": 0
|
|
},
|
|
{
|
|
"driver": "host turn sequence (outside the two turn drivers)",
|
|
"id": "H01",
|
|
"name": "SaveWriterInvariants",
|
|
"status": "implemented",
|
|
"ran": 1,
|
|
"writes": 1,
|
|
"blockedWrites": 0,
|
|
"rng": 0
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|