Commit graph

60 commits

Author SHA1 Message Date
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
Susucre
9532310e06
game: fixed cube from deck game mode to use a card numbers (#11105) 2023-09-03 23:13:37 +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
sprangg
287df7af21
Wait 2 seconds before making the draft pick for a timed out player (#10733)
* 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>
2023-08-06 20:00:42 -04:00
xenohedron
4cc9329b15
New feature: "Chaos Remixed" booster draft (#10328)
* Fix error in draft pick logger that was failing on chaos drafts with fewer than 3 sets

* Implement Remixed Booster Draft

* Add debug test

* minor cleanup

* Cleanup unnecessary checks

* Fix elimination tournament type

* Add note for future improvement
2023-05-12 18:12:23 +04:00
Oleg Agafonov
30389e426f Fixed NPE error in drafting and disconnected player 2023-05-09 16:54:22 +04:00
Oleg Agafonov
fe073bba0b Game: fixed NPE on draft auto-pickup on timeout 2023-03-25 14:00:07 +04:00
Oleg Agafonov
4e9ffdfaf9 * GUI: double faced cards improves:
* fixed images download for alternative prints (#9826, #9701);
 * fixed wrong pair of main and second side arts for alternative prints;
2023-03-11 17:35:18 +04:00
sprangg
1a96b0f065
Game: making sure that the pick timer is always at least 1 second (unless it's set to 0 deliberately) (#9850)
Co-authored-by: sprangg <a@b.c>
2023-03-04 16:11:16 +04:00
sprangg
0627dc4640
More draft stability (#9718) 2022-11-25 11:44:14 -05:00
sprangg
b9530e307d
Draft stability improvements (#9435) 2022-09-25 17:33:16 -04:00
Alex W. Jackson
12a20d07f4 Add choose hints to abilities with sacrifice costs where the target and the permanent to sacrifice might be ambiguous (A-D) 2022-09-20 09:17:14 -04:00
sprangg
1a3d5923de
Make draftbots never pick basic lands over any other card (#9342)
Co-authored-by: sprangg <a@b.c>
2022-08-02 02:38:27 -04:00
Alex Vasile
b473300680
More robust searching and importing of MDFCs, Split, Adventure cards, etc. (#8948) 2022-07-08 22:19:54 -04:00
Alex W. Jackson
7926193e34
Refactor ExpansionSet and its subclasses (#8382)
* 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)
2021-10-13 11:47:23 -04:00
Phred
2b2f30a88a
corrected typo: prefered -> preferred
ag -l prefered | xargs sed -i 's/refered/referred/g'
2021-09-11 10:03:10 -05:00
Oleg Agafonov
65761b085f * Game: fixed wrong booster pass order in drafts (#8075); 2021-08-28 13:17:57 +04:00
Oleg Agafonov
73db223ca7 * Server: fixed wrong timeouts in drafts; 2021-08-01 03:06:07 +04:00
Oleg Agafonov
f334b81de6 * GUI: fixed that users can select empty timing option in new tourney dialog; 2021-07-26 14:42:42 +04:00
Oleg Agafonov
06ae494c5b Drafts: refactor to use same pack/pick number logic (#8039); 2021-07-23 16:18:56 +04:00
Oleg Agafonov
400acae0c1 * Draft improves:
* 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);
2021-07-22 23:14:08 +04:00
Evan Kranzler
a61d5543fa replaced all instances of converted mana cost with mana value 2021-04-17 17:02:27 -04:00
Evan Kranzler
2a42bec1f2 simplified various cards to use isInstantOrSorcery method 2021-03-22 20:01:20 -04:00
Oleg Agafonov
10e557b873 * Performance: memory usage optimization for deck editor (part 2 of removed bloated usage of ManaCosts -> ManaColor objects, see #7515); 2021-02-12 22:12:18 +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
Evan Kranzler
dacf30f4b9
Refactoring subtypes to make Maskwood Nexus work (ready for review) (#7432)
* removed and renamed SubTypeList

* updated subtype test

* refactored Changeling to be an ability that actually does something

* moved isAllCreatureTypes into SubTypes class

* renamed copyTo method to copyFrom

* added removeAllCreatureTypes where usable

* replaced some subtype methods

* replaced some more subtype methods

* replaced subtype mass add/remove methods

* updated more subtype methods

* fixed some errors

* made common shared creature type predicate

* refactored another card involving subtypes

* Added usage of object attribute in subTypes's write operations;

* Refactor: use same param styles in subtype methods

* Refactor: simplified usage of copy appliers;

* Refactor: fixed code usage in CopyApplier

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-01-26 08:52:35 -05:00
Oleg Agafonov
5adab75324
Revert "format: organize imports" 2020-02-05 02:17:00 +04:00
Leandro Doctors
8a0a9acff7 format: organize imports 2020-02-04 16:21:48 -03:00
Oleg Agafonov
89394ffe0a Improved ability outcome processing; 2020-01-29 07:33:33 +04:00
Oleg Agafonov
4a004a27b3 Refactor damage with power effect, added checking for wrong targets; 2020-01-13 13:49:40 +04:00
Oleg Agafonov
50195e8f35 * AI: fixed that computer can't target cards on battlefield if it contains tokens; 2020-01-02 04:46:20 +04:00
Oleg Agafonov
3c727eb06b Fixed missing rates for some cards 2020-01-01 14:28:58 +04:00
Oleg Agafonov
5b9f0c970c Removed bloated logs 2019-12-24 21:12:20 +04:00
Oleg Agafonov
98f29f7c8a * UI: increased richman draft time limits from 75->25 to 70->40 (#5672); 2019-04-08 20:59:03 +04:00
Ingmar Goudt
45f665eb1d Sonar cleanups 03032019 2019-03-04 10:43:20 +01:00
Oleg Agafonov
c29b68f030 Disabled cards rating and classes preloading on startup (lags problem); 2019-02-09 16:09:07 +04:00
Oleg Agafonov
0697cbe24c UI: added draft rating column to deck editor 2019-02-01 18:57:24 +04:00
Oleg Agafonov
7eba755666 Refactor card ratings, fixed rare error exception "comparison method violates its general contract" (different ratings in same card); 2019-02-01 17:41:29 +04:00
John Hitchings
7e621ee8af Make draft logs compatible with MTGO format #5450 - https://github.com/magefree/mage/issues/5450 2018-12-19 19:41:44 -08:00
brodee
843702bd86 draftbots and afk autopicks will more aggressivly take rares
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.
2018-10-26 22:17:57 -07:00
GrayedFox
3953f3dbdd
remove all MIT copyright notices from files 2018-06-02 17:59:49 +02:00
LevelX2
d10d6361ac * Some minor chnages. 2018-02-14 22:57:57 +01:00
LevelX2
466e524d6e Fixed possible exception during draft player repplacement. 2017-09-05 16:39:43 +02:00
igoudt
905829561e talk to interfaces rather than implementations 2017-07-16 11:08:09 +02:00
igoudt
a167122459 loop to streams 2017-07-08 10:58:47 +02:00
spjspj
8c46f23e02 Increased performance function for finding a card in DB with a specific set. Cube from deck (custom cube) now respects chosen set for a given card. 2017-04-18 20:58:03 +10:00
vraskulin
af3986df46 All final strings became static - it will give a little perfomance boost, due to not instantiating same string every time 2017-02-27 16:33:32 +03:00
vraskulin
a15220d51e Bugfixes with != instead of equals and default toString calls 2017-02-15 19:52:20 +03: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
vraskulin
f60ebfbb1f All 1-character strings converted to primitives
"b" + "r" now changed to 'b' + 'w'.  It's more straight-forward, and may cause perfomance improvements - character primitives allocation is faster and less expensive than string creation.
2017-02-06 14:32:51 +03:00