monop-state/plugins/monop
Jarvis 22e98794d3 Parse player commands and holdings displays for full state tracking
Player command tracking:
- .card: detect GOJF card usage in jail (previously invisible)
- .mortgage/.mor: set property_mortgaged flag using cost+name disambiguation
- .unmortgage/.unm: clear property_mortgaged flag using cost+name disambiguation
- Command context (_command_context) disambiguates 'That cost you $X' between
  jail pay and unmortgage

Holdings display parsing:
- Parse 'NAME's (N) holdings' header, then printsq-format property lines
- Full resync of property_owner, property_mortgaged, property_houses
- Reuses resolve_trade_property() for name matching
- Holdings end on any non-property line (checkpoint, command prompt, etc.)

13 new tests in test_parser_commands.py:
- GOJF card (4): exit jail, no card, not in jail, log entry
- Unmortgage (2): unique property, disambiguation with user input
- Mortgage (1): flag set correctly
- Holdings (5): ownership, mortgage, houses, stale clearing, real log replay
- Real log (1): unmortgage at line 36-41

All 1551 checkpoints + 80 unit tests passing.
2026-02-21 19:30:21 +00:00
..
__pycache__ Add game log to parser output for web viewer 2026-02-21 10:30:53 +00:00
__init__.py Organize directory structure 2026-02-21 10:16:49 +00:00
config.example.json Organize directory structure 2026-02-21 10:16:49 +00:00
monop_parser.py Parse player commands and holdings displays for full state tracking 2026-02-21 19:30:21 +00:00
plugin.py Organize directory structure 2026-02-21 10:16:49 +00:00