From 19fc56d9824d8e2cc7e2f6ab14e1574af2fdb5dc Mon Sep 17 00:00:00 2001 From: Jarvis Date: Sat, 21 Feb 2026 11:02:22 +0000 Subject: [PATCH] Emit players in turn order, not registration order The C code picks a starting player via dice roll but doesn't reorder the player array. The parser now tracks _first_player_idx and rotates the players list in get_state() so the UI shows them in actual turn order. --- __pycache__/monop_parser.cpython-310.pyc | Bin 24976 -> 25095 bytes monop_parser.py | 14 +- plugins/monop/monop_parser.py | 14 +- site/game-state.json | 195 ++++++++++++++--------- 4 files changed, 147 insertions(+), 76 deletions(-) diff --git a/__pycache__/monop_parser.cpython-310.pyc b/__pycache__/monop_parser.cpython-310.pyc index 22960d4a0bf84bfb7b54297593d5dc6869072553..9e0778afc62508eb0b64bd47464ca47c4b07e088 100644 GIT binary patch delta 4173 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