Commit graph

1198 commits

Author SHA1 Message Date
Oleg Agafonov
c9734ce0b2 gui: fixed some errors on table/game close from server side (related to #13844) 2025-07-12 13:52:50 +04:00
Oleg Agafonov
52180d1393 Added data collectors, AI and testing tools improves:
- dev: added data collectors API to collect and process game data in real time;
- tests: added game logs output in all unit tests (enabled by default);
- tests: added games history storage (decks, game logs, chats - disabled by default);
2025-07-05 21:44:55 +04:00
Oleg Agafonov
915e1308eb refactor: removed unused and outdated code 2025-06-29 21:42:15 +04:00
Oleg Agafonov
b4519a3361 AI, tests: added testable use cases for getAmount and announceX dialogs (part of #13638, #13766) 2025-06-29 18:13:40 +04:00
Oleg Agafonov
450f7bd907 AI: fixed game freeze on free cast of multiple cards (part of #13638, #13766);
refactor: fixed that TargetCard doesn't work with Zone.ALL;
2025-06-29 15:24:27 +04:00
Oleg Agafonov
b66912ea44 AI, tests: added testable use cases for getMultiAmount dialogs (part of #13638, #13766) 2025-06-27 17:51:05 +04:00
Oleg Agafonov
f3e18e245f AI: improved target amount targeting (part of #13638, #13766):
- refactor: migrated AI's target amount code to shared selection logic;
- ai: fixed game freezes on some use cases;
- tests: added AI's testable dialogs for target amount;
- tests: improved load tests result table, added game cycles stats;
- Dwarven Catapult - fixed game error on usage;
2025-06-27 01:11:10 +04:00
theelk801
3e65021150 partially refactor TargetCreaturePermanent constructors 2025-06-20 08:29:53 -04:00
Oleg Agafonov
ffe902d25e
AI: purged whole targeting code and replaced with simple and shared logic (part of #13638) (#13766)
- refactor: removed outdated/unused code from AI, battlefield score, targeting, etc;
- ai: removed all targeting and filters related logic from ComputerPlayer;
- ai: improved targeting with shared and simple logic due effect's outcome and possible targets priority;
- ai: improved get amount selection (now AI will not choose big and useless values);
- ai: improved spell selection on free cast (now AI will try to cast spells with valid targets only);
- tests: improved result table with first bad dialog info for fast access (part of #13638);
2025-06-18 21:03:58 +04:00
Oleg Agafonov
d893d52190 tests: improved testable dialogs (added source code ref in result table for better IDE navigation, part of #13643, #13638); 2025-06-15 14:08:43 +04:00
Oleg Agafonov
4732fdf527 tests: improved testable dialogs (added assert messages in result table, added single dialog debugging, part of #13643, #13638); 2025-06-15 11:02:50 +04:00
Oleg Agafonov
a98f72649a tests: improved testable dialogs with better/colored logs and asserts (part of #13643, #13638); 2025-06-14 21:10:32 +04:00
Oleg Agafonov
361c320890 tests: added automated tests to run all possible dialogs under AI (WIP, part of #13643, improved testable dialogs from #13638); 2025-06-14 16:20:24 +04:00
Oleg Agafonov
1112c9516d other: added getMultiAmount testable dialogs in cheat menu (part of #13638) 2025-06-07 08:50:29 +04:00
Oleg Agafonov
3d45a24959
Draft Cubes rework (better cube from deck, dynamic data, better errors processing, actual MTGO Vintage Cube) (#13705)
- GUI, table: added dynamic data support for Cube Types (no more depends on server's config names, part of #12050);
- server: replace multiple MTGO Vintage Cubes by single cube, updated to April 2025 (part of #12050);
- server: fixed table freeze on starting error (related to #11285);
- GUI, table: added better support of Cube From Deck (client/server side errors, additional info about loaded cards, etc);
2025-05-31 20:15:31 +04:00
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
Oleg Agafonov
832ff8a4ac other: added getAmount testable dialogs in cheat menu (part of #13638) 2025-05-17 21:19:55 +04:00
Oleg Agafonov
e320bf241c GUI, game: added source info in "choose number/amount" dialogs, added auto-choose for single possible value (part of #13638); 2025-05-17 21:18:45 +04:00
Oleg Agafonov
fa20361e2e other: added announceX testable dialogs in cheat menu (part of #10330) 2025-05-16 19:36:01 +04:00
Oleg Agafonov
133e4fe425
other: reworked target selection: (#13638)
- WIP: AI and multi targets, human and X=0 use cases, human and impossible targets use cases;
- improved stability and shared logic (related to #13606, #11134, #11666, continue from a53eb66b58, close #13617, close #13613);
- improved test logs and debug info to show more target info on errors;
- improved test framework to support multiple addTarget calls;
- improved test framework to find bad commands order for targets (related to #11666);
- fixed game freezes on auto-choice usages with disconnected or under control players (related to #11285);
- gui, game: fixed that player doesn't mark avatar as selected/green in "up to" targeting;
- gui, game: fixed small font in some popup messages on big screens (related to #969);
- gui, game: added min targets info for target selection dialog;
- for devs: added new cheat option to call and test any game dialog (define own dialogs, targets, etc in HumanDialogsTester);
- for devs: now tests require complete an any or up to target selection by addTarget + TestPlayer.TARGET_SKIP or setChoice + TestPlayer.CHOICE_SKIP (if not all max/possible targets used);
- for devs: added detail targets info for activate/trigger/cast, can be useful to debug unit tests, auto-choose or AI (see DebugUtil.GAME_SHOW_CHOOSE_TARGET_LOGS)
2025-05-16 13:55:54 +04:00
Oleg Agafonov
db9bdc05c2 GUI, game: fixed that attacking creature draws a wrong colored arrow after blocked creature removed (must be gray, close #11894) 2025-04-26 00:07:41 +04:00
Jmlundeen
e34ebe740e
Feature: Retro Border Renderer (#13563)
* Add Retro Card Renderer

* Updated old sets with retro frames

Adds sets:
* 30th Anniversary Play Promos
* 30th Anniversary Misc Promos
* Eternal Weekend
* MagicFest 2025
* Modern Horizon 2 Timeshifts
2025-04-22 17:37:57 -05:00
Oleg Agafonov
fd50341b99 bump version 2025-04-19 17:55:33 +04:00
Oleg Agafonov
3dc606501d AI: improved stability and bug fixes (related to #13290):
- bug's reason: wrong usage of canTarget, add/addTarget, getOpponents, etc;
- fixed that it can target dead players in some use cases (close #13507);
- fixed that it wrongly choose targets in bad/good effects in some use cases;
- fixed that it can't find valid targets in some use cases;
- fixed game freezes and errors with some cards;
2025-04-19 07:04:55 +04:00
Oleg Agafonov
30d44ce869 Improved server's reconnection and drafts stability:
* 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;
2025-04-18 09:38:52 +04:00
Oleg Agafonov
72f9d1b8cb server: fixed miss cheat button on reconnection in server's test mode; 2025-04-17 21:08:56 +04:00
jmlundeen
a1d88e34b0 Revert Adventure/Omen PermanentView changes 2025-04-15 10:06:20 -05:00
jmlundeen
6bf8aedce7 Fix Adventure/Omen Permanent View
* Adventure/Omen Permanents no longer show rule text from the spell ability
* Updated CardView variable for SpellOptionCard
2025-04-15 06:56:26 -05:00
Oleg Agafonov
b819545744 bump version 2025-04-11 17:50:12 +04:00
Jmlundeen
0df5f17603
[TDM] Implement omen mechanic (#13501)
* Abstract AdventureCard to SingleFaceSplitCard

* Fix AdventureCardSpellImpl

* Finish converting adventure card and adventure spell

* Update Brightcap Badger

change finalize call to adventure card

* Update Darksteel Monolith

being cast from hand condition referencing AdventureCardSpell

* Update Tlincalli Hunter

exiled creature condition referencing AdventureCardSpell

* Update Twice Upon a Time

finalizeAdventure called from Adventure card

* Finish abstracting Adventure

missed some more references to adventure cards

* Implement Omen cards

* Implement Dirgur Island Dragon

* Missed some adventureSpellName references

* OmenCardSpell had wrong comma symbol

* Add tests for Omen Cards

* Rename two part card components

change from SingleFaceSplitCard to CardWithSpellOption

* Update comments and variable name
2025-04-08 08:54:18 -04:00
ssk97
969ffa1c98
FDN New Combat Rules (#13279)
* Remove all combat ordering code

* Use MultiAmount division for damage

* Remove damage selection division skipping in tests

* Fix Banding, Multi-block, add tests

* Fix test

* Fix random iteration order, fix new tests

* Add more info to choose dialog, make MultiAmountType class instead of enum

* Don't prompt for trample damage assignment if none possible

* Mark "Assign default damage" on tests, minor other test improvements
2025-03-30 14:42:05 -07:00
Oleg Agafonov
fe52d824b4 GUI: fixed error on mouse move over some table headers
(close #13331, close #13282, close #13272, close #13256, close #13246, close #13163, close #13107)
2025-02-17 00:23:48 +04:00
Oleg Agafonov
37cb2e38f6 bump version 2025-02-09 20:02:07 +04:00
Oleg Agafonov
07f68fbf38 server: fixed error on server startup from a launcher (temporary fix, #13315); 2025-02-08 21:41:43 +04:00
Oleg Agafonov
0e1a384dfe bump version 2025-02-08 17:54:10 +04:00
Grath
145bda842b
[DSK] Implement Hauntwoods Shrieker, added support to reveal face down permanents (#13277)
* [DSK] Implement Hauntwoods Shrieker.
* Change RevealedView and PlayerImpl.revealCards to reveal face-down permanents.
* Fix #13273 using the new RevealCards capability.
2025-02-07 19:18:31 +04:00
Oleg Agafonov
bf0b957948 [DFT] added image support for designations, added Speed image (visible on triggered abilities) 2025-02-07 00:45:06 +04:00
Oleg Agafonov
3405b51aaf tests: improved load tests (improved progress bar, added effects stats) 2025-02-04 11:41:42 +04:00
Oleg Agafonov
fc159728c7 version bump 2025-02-01 20:16:27 +04:00
Oleg Agafonov
1f1d1088a1 Turn under control reworked:
- game: fixed game freezes when computer try to take control over another computer or human (added game logs, related to #12878);
 - cheats: improved take and give control commands, now you can give control under yourself to another player;
 - cheats: improved take and give control commands, now you can return control to computer in the same priority;
 - cheats: deleted useless and unused command to activate opponent's ability;
2025-01-11 22:21:58 +04:00
Oleg Agafonov
0c8d49ce56 merge fix 2025-01-07 20:05:27 +04:00
Oleg Agafonov
5626c5f932 cheats: added default commands to take and remove control over another player (related to #12878) 2025-01-07 19:47:25 +04:00
Oleg Agafonov
2aa64f252c bump version 2024-12-17 00:13:21 +04:00
Oleg Agafonov
996de811da version bump 2024-12-01 21:16:21 +04:00
Oleg Agafonov
b1f914bbf4 version bump 2024-11-30 22:42:47 +04:00
Oleg Agafonov
8d6ba84556 dev: added support of client code debugging without disconnection (no more connection/pings validation in server's test mode);
server: improved disconnection logs, fixed some race conditional bugs;
2024-10-09 16:03:38 +04:00
Oleg Agafonov
b42d65fbb7 bump version 2024-09-25 16:57:20 +04:00
Oleg Agafonov
e1ab0be505 images: fixed wrong miss image message in card hints for dungeons and other command objects (part of #12274); 2024-09-20 17:23:14 +04:00
Oleg Agafonov
b40e7222b3 Dungeon improves:
* Dungeons: added dungeon name hint to room's game log and choices (part of #12274);
* GUI, game: added card popup hints support in feedback panel (yes/no choices);
* Images: fixed miss images for dungeons in command zone, game logs and choice dialogs;
2024-09-19 13:42:23 +04:00
Oleg Agafonov
350b41391a connection: added error message for failed connection on wrongly configured server (related to #12768, #6197) 2024-09-13 14:54:44 +04:00