Commit graph

99 commits

Author SHA1 Message Date
Oleg Agafonov
f2826cc676
GUI, table: added drafts with single multiplayer and multiple 1vs1 games support (#13701)
- new tourney's single game mode allow to play tourneys/drafts with all players in one game without multiple rounds;
- it's allow to setup classic drafts with 1 vs 1 games and multiple rounds
- added AI opponents supported including draft bots from a public servers;
2025-05-31 10:39:23 +04:00
PurpleCrowbar
e1c114174b
Delete empty tooltips (#13276) 2025-01-30 23:26:23 +00:00
Oleg Agafonov
2b9ae8e0aa GUI, table: improved save/load table config for new tourney dialog (miss num seats, decks, skill, player types and other params, related to #12981) 2024-10-12 11:31:42 +04:00
Oleg Agafonov
3475249c99 GUI, table: improved save/load table config to support player types, AI skill level and deck files (closes #12981) 2024-10-11 17:09:15 +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
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
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
75958e3710 refactor: improved and reorganized client-server api, added additional logs, fixed miss admin checks for some commands 2023-11-23 09:12:02 +04:00
Oleg Agafonov
fe8b8e1def server: fixed npe error on load tests (miss buffer timer), code refactor 2023-10-11 14:15:15 +04:00
Artemis Kearney
722627baa2
Create new "custom options" button/dialog, consolidate game-modifying options there (#10768)
* create CustomOptionsDialog; update NewTournamentDialog to use it

* add custom options button to new table/tournament dialogs

* fix buffer time in new table dialog

* further UI improvements

- move multiplayer options back out to NewTableDialog
- hide multiplayer options when all are disabled
- rearrange other options for consistency

* update button label to show number of active custom options

* remove commented-out code
2023-08-08 01:37:38 -04:00
Artemis Kearney
978ebfc873
add UI for buffer time feature the right way (#10764)
* add UI for buffer time feature the right way

* save buffer time values
2023-08-06 20:00:55 -04:00
Alexander Novotny
519b3988be
game timer: Add chess-style buffer time option (#10598)
* UI Changes

* Add new buffer time options

* Main functionality

* Final implementation

Also added player UI for when they are using their buffer time (timer turns green)
2023-07-28 22:05:21 -04:00
sprangg
99701e08e7
Improvements to limited with Freeform Unlimited Commander (#10114)
* Limited-style sideboarding with unlimited basics enabled for Freeform Unlimited Commander

* FreeformUnlimitedCommander does not depend on FreeformCommanderFreeForAll anymore.
FreeformUnlimitedCommander has sideboarding.
In two-player matches of FreeformUnlimitedCommander, the player who goes first doesn't draw a card on their first turn anymore.

* FreeformUnlimitedCommanderTypeTest takes into account that sideboarding is allowed

* Fix to startingPlayerSkipsDraw condition

---------

Co-authored-by: sprangg <a@b.c>
2023-06-07 19:05:37 -04:00
DeepCrimson
f760649f4d
Refactor: Fix Spelling of 'Match' (#9292) 2022-07-22 23:05:48 -04:00
sprangg
cbdca6dd80 Limited-type sideboarding for constructed matches where the deck type is "Limited" 2022-06-24 01:52:08 +03:00
Oleg Agafonov
42364f7e27 Server: fixed NPE error on wrong AI usage in new game dialogs (fixes #7556); 2021-02-13 14:54:13 +04:00
Oleg Agafonov
a1da5ef437 * GUI: new reworked GUI and card render engine, card icons and dozens of other fixes (see full list in related PR); 2021-01-30 16:38:55 +04:00
vyacheslav.raskulin
b3dc0f5eca excessive lambda usage 2020-09-09 15:06:49 +03:00
vyacheslav.raskulin
b23ccb8191 since these branches are identical we may collapse them 2020-09-09 14:48:21 +03:00
Oleg Agafonov
c5d7a3e9f9 * GUI: added auto-fix for deck files on usage (if deck contains wrong card numbers then it will be fixed and saved automaticity); 2020-08-08 21:27:20 +04:00
johnm
937b7f72ee Default range of influence is now all players rather than one. 2020-05-17 14:35:41 +01:00
Oleg Agafonov
f50bc8f36f * UI: ignore list improved:
* Added support of usernames with spaces (#6305);
 * Increased max limit from 50 to 100;
 * Added list size info on connection or command usage;
2020-02-27 02:05:16 +04:00
michaelrfarcasin
c3cb54f371 Add Freeform Unlimited Commander game type
Currently there's no multiplayer format that allows players to cast
spells from the command zone and also allows any deck size.

This is a problem for players who want to test EDH Cube decks. These
decks:
- can have any size - often between 40 and 100 - with no standard
- can have cards outside the commander's color identity
- may break the singleton rule

Create a game and deck type to accommodate these types of decks.

Notable differences from Freeform Commander in addition to the above:
- Decks can have any number of cards in the maindeck or sideboard
- Sideboard cards can be any type
- There are no illegal expansions
- Games can have a minimum 2 players
2020-01-20 22:47:27 -06:00
ssouders412
2d3247d732
Updated pronouns to reflect current rules and oracle text
Replaced all instances of "her or she", "him or her", and "his or her", with "they", "them", and "their", or sometimes "that player". Updated verbs where appropriate.
2019-12-06 14:29:36 -05:00
acosta
35a4f1a2fd Add Centurion banlist 2019-10-16 10:44:59 +02:00
Oleg Agafonov
07cf5201ba * Added new game mode: Oathbreaker (#5678); 2019-05-27 16:17:15 +04:00
Oleg Agafonov
060ebe655e * Added new game type: Freeform Commander Two Player Duel (#5771) 2019-04-30 16:35:24 +04:00
mooretc2
a05df82f75 Adding missing return 2019-04-24 17:10:31 -07:00
mooretc2
be62669e4b Fixing issue with Freeform Commander deck type 2019-04-24 16:52:50 -07:00
Oleg Agafonov
f8b9e3d408 Added more game mode and deck type combinations for commander; 2019-03-29 18:30:17 +04:00
Oleg Agafonov
1942cd0dec * UI: added save/load/reset game settings for new tourney dialog; 2019-03-23 15:08:05 +04:00
Oleg Agafonov
1b79827b2d * UI: added save/load/reset game settings for new table dialog;
Fixed that edh power level don't saves;
2019-03-23 06:54:17 +04:00
Oleg Agafonov
42658d5cff UI: added mulligan option to new tournament dialog, added mulligan type saving; 2019-03-23 05:49:21 +04:00
Oleg Agafonov
b925977efd Fixed new table/tournament dialogs compatibility with NetBeans editor; 2019-03-23 05:07:05 +04:00
John Hitchings
4a232b148c Add mulligan options to NewTableDialog, passing mulligan information to games. 2019-03-19 06:08:12 -07:00
spjspj
caf26c2b7b Fix saving skill level for new table dialog of 'T1', 'T2' 2019-03-02 22:24:44 +11:00
John Hitchings
58e629dca6 Refactored DeckImporter and obsoleted DeckImporterUtil. Added/refactored a PlainTestDeckImporter as a base class for text formatted importers to extend. 2019-01-10 08:27:05 -08:00
Aaron Miller
81c2a62250 Add "minimum rating" option to matches and tournaments 2018-09-29 19:14:39 -07:00
GrayedFox
3953f3dbdd
remove all MIT copyright notices from files 2018-06-02 17:59:49 +02:00
spjspj
730d23164a Implement Brawl Free For All and Brawl Duel 2018-04-25 19:17:34 +10:00
spjspj
c8b741f0bf Continuing implementation of Planechase. 2018-04-12 00:07:24 +10:00
igoudt
00f91391e9 Homarid Drake, reprints, and rewriting his or her to their 2018-03-22 16:52:26 +01:00
LevelX2
9c0d0a0153 * Saved table spectator setting to preferences. 2018-03-17 00:46:12 +01:00
spjspj
4c7b0d50d2 Add a 'spectators allowed' option for regular tables (aka non tournaments). 2018-03-08 23:31:51 +11:00
fireshoes
48413a956a Added MTGO 1v1 Commander and Amonkhet Block Constructed formats. Fixed a typo in the Duel Commander banlist. 2017-07-09 16:51:57 -05:00
spjspj
cdd010ffa2 spjspj - Add in saved configurations for New Match and New Tournament dialogs. 2017-04-18 01:52:04 +10:00
ingmargoudt
fea477dd04 fixed two lines to allow playing human-human tables 2017-04-11 07:54:54 +02:00
ingmargoudt
211d433ea9 playertype, enum singleton 2017-04-02 22:09:20 +02:00
Anders Åstrand
f68460603a Add client-side user ignore list
This commit adds a client-side per-server ignore list.
* Whispers and talk from an ignored user is hidden
* Ignored users cannot join your tables
* Ignored users tables are hidden
2017-02-22 22:16:09 +01:00
vraskulin
0557b5e89c list.size > 0 changed to !list.isEmpty
We care about if it's empty or not, not about it's size
2017-02-06 14:32:51 +03:00