Since we know what's been gained from BM/castles/etc. why not remove those cards from your display?
The issue is that while you may know that from reading the log, there isn't a clear place I've been able to find that stores that information in the client model.
What I currently have to work with is the following:
Full card list of the game (this contains every card name that exists in this game)
List of "zones"
- Each individual Supply Pile
- Each individual Non-Supply Pile
- The black market deck
- Your Deck
- Your Hand
- Your Discard
- Your In Play Area
- Your Tavern Mat
- Opponent's Deck
- Opponent's Hand
- Opponent's Discard
- Opponent's In Play
- Opponent's Tavern Mat
- Probably others
Each of these zones contains a list of cards that they contain. However, some of those cards are literally just marked as "Card Back" (ie hidden from you/the client).
The issue is that if you look at the list above, the bold
zones contain the actual names of the card contents. However, the italicized
zones contain only a card count, with each card being listed as the generic "back".
As such, because I have only a full card list to start with, without being told what the contents of the black market deck are, I don't have a way of knowing whether a given card that is in the full card list but not visible in any of the other zones is "in the black market" or "in my opponent's hand". As such, if I simply didn't display any cards that I can't see in any given zone, then I might inadvertently reveal which cards are in your opponent's hand. Imagine a game being played with Knights, and I notice that "Dame Anna" is no longer visible in the kingdom view. It could be that that card is in the black market. However, it could also be in your hand.
As such, I judged that it was safer to not ever potentially reveal information about your opponent's hands, and instead to show the contents of the Black Market. If the client is updated to have the contents of the BM deck known, then I will remove it from my extension.