Commit graph

369 commits

Author SHA1 Message Date
Oleg Agafonov
15a1e618fa client: improved default run scripts for better compatibility with non-ascii paths, increased default memory limit to 2 GB (#13121) 2024-12-10 18:17:55 +04:00
Oleg Agafonov
bad782244f GUI: added new error dialog for more use cases 2024-10-11 16:38:46 +04:00
Oleg Agafonov
5e1dace946 GUI: fixed black colored card hint popup on some systems (#12857) 2024-09-28 21:05:44 +04:00
Oleg Agafonov
6625db1be1 GUI: reworked GUI to support non-blocking UI:
- GUI: added non-blocking UI to almost all app and game dialogs;
- GUI: it allows to switch between UI dialogs and use any UI elements at any moment;
- GUI: it allows to use chat, card popup, battlefield, concede and other features while choosing (related to #12670);
- GUI: it allows to download images while playing (related to #4160, not fully tested);
- GUI: enabled by default, can be disabled by java option: -Dxmage.guiModalMode=true
- connection: auto-connect will be visible in main menu on startup;
- connection: removed some unused features (auto-connect by command line);
- connection: added <ESC> button to close connection dialog;
- download: added background images download (see non-blocking UI);
- download: improved cancel stability and fixes that it can't stop preparing/downloading process in some use cases;
- app: fixed freezes on macOS systems in some use cases (related to #12431, #11292, #9300, #4920);
2024-09-08 00:40:13 +04:00
Oleg Agafonov
3823e95c4f GUI, preferences: added default gui size settings on app's first run (preset selected due screen resolution, part of #969) 2024-08-14 13:31:47 +04:00
Oleg Agafonov
58400833bc GUI, game: improved battlefield sizing (part of #6887 and #969):
- fixed wrong restore of card hint and chat panels;
- now it keep hidden state too (e.g. hidden card hint);
- reworked and share splitters code;
- removed some useless hotkeys to show/hide card hint panel;
2024-08-13 23:49:39 +04:00
Oleg Agafonov
9321c694ca GUI, game: introduced sizeable hand/stack zones (part of #6887 and #969):
- added splitter/divider between hand and stack zone;
- users can resize it by mouse drag;
- users can hide/minimize hand or stack zones by mouse clicks on splitter arrows;
- splitter settings shared between games and stored between app runs;
2024-08-13 16:07:05 +04:00
Oleg Agafonov
4d89fcd72d GUI, game: fixed wrong player panels size on reconnect 2024-08-12 20:58:41 +04:00
Oleg Agafonov
7811bcf4c1 GUI, menu: reworked switch panels from main menu - fixed random positions, now it group buttons by related tables and sort by creating date; 2024-08-11 19:34:29 +04:00
Oleg Agafonov
7916af0e52 server, refactor: added client side info about current table and parent table (tourney's sub-tables with matches); 2024-08-11 19:29:42 +04:00
Oleg Agafonov
f105828e1c GUI: reworked battlefield panels to use layouts and dynamic settings (no needs in NetBeans to modify it, no needs in size calculations, improved positions and sizes, deleted outdated code); 2024-08-05 19:00:42 +04:00
Oleg Agafonov
76db1d3e65 GUI: combined symbols and images download menus in one, fixed menu colors on theme switch 2024-08-05 02:20:12 +04:00
Oleg Agafonov
8f7abe2dc5 GUI: added old what's new page (build-in window on startup); 2024-08-05 00:01:38 +04:00
Oleg Agafonov
0a55e37c8c download: reworked scryfall images support:
- 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
2024-08-03 19:41:14 +04:00
Oleg Agafonov
e1cffbde40 download: reworked 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;
2024-07-31 21:25:56 +04:00
Oleg Agafonov
53a072b759 GUI, preferences: removed 4 useless size settings, fixed wrong fonts in few places like miss image path (part of #969, #6887) 2024-07-27 21:35:33 +04:00
Oleg Agafonov
83823acec7 GUI, performance: fixed memory/resources leaks on some components rendering 2024-07-26 03:27:10 +04:00
Oleg Agafonov
bf3f26ccc1 server: database improves:
- fixed broken database in some use cases (example: AI and choose name dialog, related to #11285);
- added docs and debug tools for sql queries, caches and memory analyse (see DebugUtil);
- refactor code to use shared settings;
- deleted outdated and un-used code (db logs, stats, etc);
2024-07-18 21:22:10 +04:00
Oleg Agafonov
6c0f7ebb90 GUI: reworked error dialog:
* added client version and improved stack trace;
* added copy to clipboard button;
* added button to create new issue on github (with prefilled form fields like error text);
* added GUI size settings support;
* some old errors now use new error dialog instead message box;
2024-07-05 17:42:36 +04:00
Oleg Agafonov
2631b31b8a GUI, preferences: improved theme switch at runtime (fixed main menu update); 2024-07-03 23:46:12 +04:00
Oleg Agafonov
64f3df035b GUI, preferences: added theme switch without app restart (for preview only, app must be restarted anyway for full GUI refresh); 2024-07-03 04:31:07 +04:00
Oleg Agafonov
7d675de876 server: fixed server app freeze on another instance already running, improved threads usage (related to #11285); 2024-06-23 15:58:25 +04:00
Oleg Agafonov
f0c38cdb87 GUI: fixed that server's lobby do not remember divider position after app restart (tables, matches and chat sizes) 2024-06-23 15:55:46 +04:00
Oleg Agafonov
f78177a540 debug: added command line param to disable full screen mode on mac os (-Dxmage.fullScreen=false - useless); 2024-06-23 15:51:40 +04:00
Oleg Agafonov
11bd8c29b2 refactor: removed un-used balloontooltip library 2024-06-13 00:02:15 +04:00
Oleg Agafonov
e2b1d980b6 other: added java version in app's starting logs 2024-06-12 06:33:04 +04:00
Oleg Agafonov
88a451bb4f GUI: fixed wrong font size in debug menu and quick game buttons 2024-06-10 21:51:05 +04:00
Oleg Agafonov
e33a5f4861 GUI: fixed app freeze on images download or connection for systems like macOS (related to #12261); 2024-06-07 17:29:19 +04:00
Oleg Agafonov
1b5f8ce1af GUI: fixed wrong background rendering of card's popup window (related to #12261), deleted un-used code; 2024-05-20 23:19:51 +04:00
Oleg Agafonov
492269c473 return fix for #12261 2024-05-20 23:19:51 +04:00
Oleg Agafonov
72d7d6e353 reverted changes for #12261 2024-05-20 16:37:43 +04:00
Oleg Agafonov
fb453cce18 GUI: fixed wrong render of attack and other arrows over dialogs (closes #12261); 2024-05-20 16:09:15 +04:00
Oleg Agafonov
bd1ab573f1 GUI: fixed that attack/block arrows was visible after disconnect (closes #12258) 2024-05-20 14:29:31 +04:00
Oleg Agafonov
7817a5cac6 deck improves:
* gui: removed public deck hash info;
* gui: improved xmage dck-file - now it correctly load a card's amount (related to files from third party services);
* server: fixed wrong cheating warning on deck construction (closes #11877);
* refactor: removed outdated hash code and calculations;
* other: added docs, added multiple deck hash tests;
2024-04-10 22:18:07 +04:00
Oleg Agafonov
e38a79f231
Face down images and cards rework (#11873)
Face down changes:
* GUI: added visible face down type and real card name for controller/owner (opponent can see it after game ends);
* GUI: added day/night button to view real card for controller/owner (opponent can see it after game ends);
* game: fixed that faced-down card can render symbols, abilities and other hidden data from a real card;
* images: added image support for normal faced-down cards;
* images: added image support for morph and megamorph faced-down cards;
* images: added image support for foretell faced-down cards;

Other changes:
* images: fixed missing tokens from DDD set;
* images: no more client restart to apply newly downloaded images or render settings;
* images: improved backface image quality (use main menu -> symbols to download it);
2024-02-29 01:14:54 +04:00
Oleg Agafonov
402d049577 sound: now music settings will be applied after save (related to #11675); 2024-01-17 12:28:24 +04:00
Oleg Agafonov
6aaaa8cb46 GUI: improved main and battlefield menus (related to #11533):
- main menu: better naming for deck editor;
- battlefield menu: added deck view for computer players, better naming;
- network: improved experimental connection;
2023-12-09 15:20:29 +04:00
Oleg Agafonov
960e896903
Network upgrade and new reconnection mode (#11527)
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);
2023-12-07 20:56:52 +04:00
Oleg Agafonov
1777a45ee4 performance: fixed app freeze after first connection, moved sets and formats preload to client startup instead connection 2023-11-30 21:55:08 +04:00
Oleg Agafonov
ab515e60fe refactor: removed outdated code with databases sync (cards db downloads from a server); 2023-11-25 18:11:44 +04:00
Oleg Agafonov
63290d3ed6 GUI: fixed not working card popup near screen border, improved card popup for chat and choose dialogs; 2023-11-25 17:27:59 +04:00
Oleg Agafonov
a0ed89035f GUI: fixed wrong clicks from additional mouse buttons (now only left clicks are allowed, closes #11455) 2023-11-23 09:23:01 +04:00
Oleg Agafonov
342979a55a
network: reworked client-server events (related to triggers dialog problem from #11173) (#11189)
* added bad connection mode to test client works on slow network, use -Dxmage.badconnection;
* added bad connection protection in events processing due event type;
* split events to different types (can be ignored, must be synced, etc);
* removed some unused server events.
2023-09-21 18:40:52 +04:00
Susucre
b62b089659
Autosave limited decks on submit (#11147)
* Autosave limited decks in gamelogs folder

* differentiate LIMITED_SIDEBOARD_BUILDING from LIMITED_BUILDING
2023-09-12 21:43:13 -04:00
Susucre
5062c84098
Refactor: removed server side objects from a client side game's data (#10788)
* Clean original values transmitted with CardView.originalObject
* Move RateCard to mage.Common, support cardView as argument.
* Clean PermanentView constructor for TestCardRenderDialog
2023-08-24 12:04:07 +04:00
Oleg Agafonov
bc79b5f5d1 dev: enabled debug main menu by default in developer builds (example: test render dialog) 2023-05-09 00:49:46 +04:00
Alex Vasile
65ed0f84fc Fixed cacerts reading issue. Symbols and images should now downloaded properly. For #9135 and #9401. 2022-08-25 19:43:13 -04:00
Alex Vasile
1d0bcb49ad Partial fix for macOS fullscreen support. For #9354. 2022-08-05 11:21:12 -04:00
Alex Vasile
95a0cb5ca8
Temporary fix for expired Java certificate (#9266) 2022-08-03 12:35:30 -04:00
Alex Vasile
cb268a25ee Removed dependency on JavaFX. What's New button now opens the link in the system browser. 2022-07-25 09:09:43 -04:00