* draft: fixed miss or empty draft panels on reconnect;
* draft: fixed tourney freezes for richman drafts on disconnects;
* draft: fixed tourney freezes on rare use cases with bad connection;
- 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;
Network upgrade and new reconnection mode:
* users can disconnect or close app without game progress loose now;
* disconnect dialog will show active tables stats and additional options;
* all active tables will be restored on reconnect (tables, tourneys, games, drafts, sideboarding, constructing);
* user must use same server and username on next connection;
* there are few minutes for reconnect until server kick off a disconnected player from all player's tables (concede/loose);
* now you can safety reconnect after IP change (after proxy/vpn/wifi/router restart);
Other improvements and fixes:
* gui: main menu - improved switch panel button, added stats about current tables/panels;
* gui: improved data sync and updates (fixes many use cases with empty battlefield, not started games/drafts/tourneys, not updatable drafts, etc);
* gui: improved stability on game updates (fixes some random errors related to wrong threads);
* server: fixed miss messages about player's disconnection problems for other players in the chat;
* refactor: simplified and improved connection and network related code, deleted outdated code, added docs;
* tests: improved load test to support lands only set for more stable performance/network testing (set TEST_AI_RANDOM_DECK_SETS = PELP and run test_TwoAIPlayGame_Multiple);
* The draft session waits for 5 seconds before making the pick for the timed out player
* Formatting
* Renamed constant
* Tweak
* If the draft pick's timeout value would increase the client's pick's timer, don't set it (might happen if the client or server is lagging)
* Lowered BOOSTER_LOADING_INTERVAL and AUTOPICK_BUFFER
---------
Co-authored-by: sprangg <a@b.c>
* Don't purge cards-by-rarity cache between tournaments
* Move DOM and WAR specific checks out of base ExpansionSet class
* Move Battlebond specific methods out of base ExpansionSet class
* Refactor ExpansionSet and subclasses
* Zendikar boosters also only have full-art basic lands
* Fix Eldritch Moon (#8171)
* added additional and improved timing options for pick timeouts (x1.0, x1.5, x2.0, see #8033);
* added pick timing info in tables list (info column);
* fixed that booster draft starts with wrong pick timeout (#8036);
two draft quality of life improvements for situations when real players
quit or go afk.
1. made the draftbot lean on rarity for card ratings. this helps make
the draftbots behave and not just pass bombs to the human players.
2. changed the draft autopick that happens when the timer runs out and
the player hasn't selected anything. I changed it to pick the last card
in the pack, which should be the rarest, so basically it raredrafts.
again making it so AFK players aren't just feeding real live human
players the best cards.