- download: fixed unmount zip errors on cancel download in some use cases (closes#12536);
- download: significant download speed improvements (now it depends on user's network speed, not api limitations);
- download: added additional error dialogs on bad use cases;
- scryfall: added cards and bulk data api support;
- scryfall: added bulk data download (updates once per week, contains all scryfall cards and store in images\downloading folder, 2 GB size);
- scryfall: added optimized images download without api usage (use direct images links from bulk data, closes#11576);
- scryfall: improved image source searching for some use cases (miss or wrong images problems, closes#12511);
- scryfall: tokens don't use bulk data;
- scryfall: 75k small images downloads 40 minutes and takes 1 GB and 2100 api calls (most of it from tokens);
- scryfall: how-to disable bulk data, e.g. for api testing: -Dxmage.scryfallEnableBulkData=false
* enters the battlefield, -> enters,
* {this} enters the battlefield -> {this} enters
* EntersBattlefieldAbility
* , it enters
* enters the battlefield under your control -> you control enters
* rework some trigger phrase logic
* fix tests
- added shareable code with default proxy, headers and other settings for download tasks like images, symbols, mtgjson, etc;
- use XmageURLConnection.downloadText for text resources
- use XmageURLConnection.downloadBinary for any file resources
- added user agent with app version for all requests;
- added http logs and improved error messages;
* Rampaging Yao Guai
* Wild Wasteland
* Synth Infiltrator
* Paladin Elizabeth Taggerdy
* Fix not including target count if name contains X value
* Fix missing {this}
* Apply fix for ZONE_CHANGE_GROUP events making tokens controlled by different players
* Add test
* Remove unused import
* Fix implementation
* Rewrite to use ZONE_CHANGE_BATCH
* Fix OPPONENT case
* Add default case
* refactor to avoid using stream as local variable and use ZoneChangeEvents in filters
* Fix typo
* Implement Eluge, the Shoreless Sea (missing mana cost reduction clause)
* implement ability to convert colored to generic costs in SpellsCostReductionControllerEffect
* fix text generation on SpellsCostReductionControllerEffect
* remove unnecessary setText() calls on SpellsCostReductionControllerEffect
* make logfile from master run
* Fix plurality detection
* Eliminate unnecessary setText() calls in other cards
* Delete logfile
* remove redundant type cast
* Add parameter documentation
- reworked skip and phase buttons to use layouts instead IDE designer;
- added GUI scale support skip and phase buttons (depend on dialogs font size from preferences settings);
* refactor: added helper emblems instead rad counter's inherent emblems (use initGameDefaultHelperEmblems to define new card hints or other fake objects);
* refactor: added card hints support for emblems, planes and other command objects;
* GUI: added storm counter as default card hint (use hints tool to see it, closes#12360);
* Replace "([a-zA-Z]+).getManaCostsToPay().getX()" with CardUtil.getSourceCostsTag(game, $1, "X", 0)
Fix Disrupting Shoal
* Change final card .getX() calls
* Condense all ManacostVariableValue enum values into "instance"
* Further removal of getX, Display X symbol for non-mana X cards
* Fix test
* Fully remove ManaCosts.getX
* Replace all different X dynamic values with GetXValue
* Remove individual cards checking getAmount for X values (leaving cost reduction that does not use X)
* Add null check for game object inside getSourceCostsTagsMap
* fix build errors
* fix Vicious Betrayal
* text fix
* Add ReplacingTargetAdjuster
* Use new target adjuster
* Change name to ConditionalTargetAdjuster, don't use blueprint
* Take a Targets list
* Add keepOldTargets option
* Add missed DamagedPlayerControlsTargetAdjuster to Sigil of Sleep
* Cards using updated ConditionalTargetAdjuster
* BLB gift cards currently implemented
* fix wrong default for keepOldTargets
* Fix Urborg Repossession missing 1st target tag