- Initialize commandZoneGraphicsItem to nullptr so the pervasive null
checks have defined behavior before initializeZones() runs
- Remove unused getTaxCounterWidgets()
- Enforce the "reset tax to 0 before deactivating" invariant server-side
in cmdSetCounterActive, not just in the UI
- Hide tax increment/decrement menu actions at their bounds (0 and
MAX_COUNTER_VALUE) to avoid sending no-op commands
- Drop redundant/inconsistent toggle labels from CommandZoneMenu::
retranslateUi(); updateTaxCounterActionStates() owns them
- Add default=-1 to Event_SetCounterActive.counter_id for parity with
Command_SetCounterActive
- Add missing isCommandZoneCounterBlocked check to cmdSetCounterActive
- Revert accidental deck view layout change from b4057a86
- Fix duplicate @param in playSelectedCardsImpl doc
- Add null check for PlayerLogic in CommandZoneMenu constructor
- Add index bounds check in CommandZone handleDropEvent
- Add index bounds check in StackZone handleDropEvent
- Add ownership comment for tax counter widget creation
- Add command zone to zoneGraphicsItems map
- Conditionally show command zone menu item based on server support
- Remove layer-violating includes from player_logic.cpp
- Fix tax counter increment (1 per cast, not 2)
- Add getTaxCounterIfActive() helper to PlayerGraphicsItem
1. CommandZoneMenu: Changed to take PlayerGraphicsItem* instead of
PlayerLogic*, accessing logic via player->getLogic()
2. Removed getCounterWidget() from PlayerLogic;
method already exists correctly in PlayerGraphicsItem
3. PlayerMenu: CommandZoneMenu, fixed signal
connection to use player->getLogic() for commandZoneSupportChanged
4. AbstractCounter: Connects to CounterState::activeChanged signal,
removing direct graphics calls from PlayerEventHandler
5. CommandZone: Explicit tax counter registration via registerTaxCounter()
with auto-cleanup, replacing childItems()/dynamic_cast iteration
Also fixed PlayerActions to query CounterState instead of AbstractCounter
for proper layer separation.
- Add CommandZone and CommandZoneLogic for commander
- Add CommanderTaxCounter
- Add counter active state protocol (show/hide tax counters)
- Add "Enable Command Zone" option in game creation dialogs
- Add context menu actions for command zone operations
Took 9 minutes
Took 11 minutes