The new "Smart Card Art Selection" option for card images in deck has been added.
The Ui and forge preferences have been updated (default is False), as well as corresponding support in StaticData.
On this note, the old `getAlternativeCardPrint` has been re-implemented to enforce a "Latest_Art" based preference selection so that editions could be selected accordingly (as the smart method was originally designed)
Actual implementation of the method will be part of future commits as still under dev - and requires better encapsulation
On my laptop, the dimensions of the deck viewer rescaled were ridiculously small, and smaller even than "small deck viewer".
I've removed the scaling factor, which caused the issue.
Now menu settings (on Desktop App) includes the preferred art option selection as separated in two settings.
The former is to decide whether Latest or Original Art should be used; the latter specifies whether only core, exp. and reprint sets should be considered.
All translation files have been updated, aligned, and extended accordingly.
The MAJOR update here is that now options for Art are fully localised too!! (so far only for Desktop App)
CardDb now includes a more refined mechanism to set up values for CardArt Preference.
These methods do now support the proper setup for legacy values and string values (as supported previously in mobile version).
Moreover, new methods are now defined to support the new (separated) pair of settings as integrated into the Desktop App.
A new Option has been added in Forge Preferences to enable the use of custom cards.
This option (default is False for backward compatibility) will control whether custom cards can be read in custom editions, and so decks containing them can be used in game matches.
Also, en-US translation file received an update to clarify what is intended with Unknonw cards (to be distinguished from custom cards now)
This also fixes a BUG for DeckSetFilter that did not update properly the list of filters in ItemManager.
This had the effect of not updating the labels for set filters for deck, after edit.
The method is implemented in the abstract super class (ItemManager) and so inherited by `CardManager` (where there is no format nor game type that could be used), and specialised by `DeckManager`.
In particular, the only current format with limitations on sets is Brawl, and so the only one accounted for.
In any case, the list of (unique) allowed sets is automatically inferred by default from the cardpool (as in the case of `CardManager`).
It is important to note that this filter is stored into an attribute, and so the list is calculated only once.
The results of this list will be passed on the `DialogChooseSets` to update the content of the dialog panel, accordingly.
There are cases in which the set filter should be initialised with the white list of allowed set codes, rather than the blacklist (i.e. unselectableSets).
This is the case of CardCatalog or DeckCatalog with constraints or limitations on card pool (i.e. restricted cards, and or restricted sets).
This new set of constructors with extra parameters allow to handle this cases, so that the UI can easily adapt.
This new filter mirrors (and extends) the one on Sets, which also relies on the renewed buildPredicate implementatio which looks at the edition of
a DeckProxy.
Now this new implementation brings the deck set filter to finally work as expected.
In particular, instead of checking that all cards in Deck Pools belong to a unique edition, the predicate now leverages on the getEdition() method of DeckProxy instances, which returns the latest of the earliest
sets of cards. This function will be subject to change into a future Merge Request state.
This is the first step to finally make the DeckSetFilter working properly!
So far, the filter applies if **all** the cards in a deck matches selected specific set(s).
We will allow for customisation to simplify and correct this filter - more in the next commit.