Commit graph

12099 commits

Author SHA1 Message Date
Oleg Agafonov
00a7cc645d Copy abilities - fixed wrong copy of transformed tokens like Incubator/Phyrexian (related to #11535, #11307, #10801, #10263); 2023-12-10 14:49:47 +04:00
Oleg Agafonov
50fd029c3b tests: improved show playable abilities to print playable list instead unique (see showAvailableAbilities), added custom effect for transform tests (see addCustomEffect_TransformTarget); 2023-12-10 14:31:55 +04:00
xenohedron
3b603595a2 fix #11532 (Animist's Might) 2023-12-09 16:14:32 -05:00
PurpleCrowbar
1006115912 Add Incubator token images. Related to #11535 2023-12-09 21:12:14 +00:00
Oleg Agafonov
f5c47686ac server: fixed broken games with banned players (regression) 2023-12-09 18:28:21 +04:00
ssk97
6cd8649857
GUI: lobby - improved details info about match (#11438) 2023-12-09 16:35:09 +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
xenohedron
9e1645a1bc text fixes 2023-12-06 23:14:58 -05:00
xenohedron
6c5d5b8a90 fix The Everflowing Well, related cleanup 2023-12-06 22:28:00 -05:00
theelk801
62aad2bc25 [MKM] Implement Curious Cadaver 2023-12-06 18:21:49 -05:00
xenohedron
8deb441f6f merge cleanup 2023-12-05 20:37:15 -05:00
ssk97
898952515e
[LCI] Implement Intrepid Paleontologist (#11508)
* Improve some "mana spent -> give effect to permanent spell" cards
make effect source be the SpellAbility itself

* Implement Intrepid Paleontologist and tests

* Use a common class for the "specific MOR ETBs with counter" effect

* Prevent casting non-owned dinosuars

* Rename AddCounterEnteringMOR to AddCounterEnteringCreature

* fixes from review
2023-12-05 20:27:49 -05:00
Jeff Wadsworth
fe09873631 Added The Everflowing Well // The Myriad Pools. Perhaps someone knows why the ability keyword won't show up on the card. Works fine, though. 2023-12-04 18:53:12 -06:00
xenohedron
73394485cf remove unneeded case (related to #11326) 2023-12-04 19:33:26 -05:00
Grath
5c83818cba
[LCC] Implement Topography Tracker (#11504)
* Refactor replacement effects on ExploreEvent by using a queue of events
2023-12-04 00:46:21 -05:00
ssk97
d806a6a3be
Counter text improvements (plus a Magus Lucea Kane gameplay fix) (#11503)
* Improve text generation for some counter abilities

* Magus Lucea Kane must apply to permanent spells (bugfix, related to #11440)

* Further improve text generation of counter text

* Text improvements to a couple cards

* Graft text improvements

* Further remove unused variable

* Be consistent on Backup ability setup, revert Thalia's Lieutenant (filter reuse means it doesn't work)

* Thalia's Lieutenant original text was slightly wrong, fixed
2023-12-03 21:42:16 -05:00
Oleg Agafonov
eaa510b265 GUI: added restriction card icon to permanent (contains all applied restrictions and requirements, #7471) 2023-12-03 00:01:47 +04:00
xenohedron
264b73355a
refactor: improved targets that find a [type1] card and/or a [type2] card (#11497) 2023-12-01 19:26:30 +04:00
ssk97
f3e310cfd3
Fixed tags cost and MageObjectReference usage (#11500)
* Fix costs tag clearing while permanent still on the battlefield
* Improved version of game.getPermanentOrLKIBattlefield with MageObjectReference
* Improve documentation
2023-12-01 19:24:39 +04:00
xenohedron
35f4a898f9
Small rework for autochoosing color of mana to add (#11495)
fix #11494
2023-12-01 00:49:42 -05:00
xenohedron
b4a58a339d
Merge pull request #11492 from xenohedron/clean-watchers
refactor: align game default watchers with usage
2023-12-01 00:49:11 -05:00
Jeff Wadsworth
9131347698 Fixed #11491 2023-11-30 22:23:48 -06:00
xenohedron
201c1ef443 (can't remove PlanarRollWatcher without test rework) 2023-11-30 01:00:48 -05:00
xenohedron
6155f2d403 remove DamageDoneWatcher from default watchers 2023-11-30 00:59:21 -05:00
xenohedron
c164d70135 remove PlayersAttackedThisTurnWatcher from default watchers 2023-11-30 00:56:32 -05:00
xenohedron
1f764515f6 merge MorbidWatcher with CreaturesDiedWatcher 2023-11-30 00:11:10 -05:00
xenohedron
1ac4fe4e4a add doc comments for usage of default watchers 2023-11-29 20:57:12 -05:00
xenohedron
a4cc086775 cleanup usages of BlockedAttackerWatcher 2023-11-29 20:43:17 -05:00
xenohedron
cd439ab8c8 remove another game default watcher with one usage 2023-11-29 20:40:57 -05:00
xenohedron
f801c9851e move watchers used only in Arboria effect 2023-11-29 20:37:47 -05:00
xenohedron
37722a58c2 more watcher cleanup 2023-11-29 20:32:36 -05:00
xenohedron
f7d70a7b11 refactor: AttackedThisTurnWatcher is a default watcher
close #10982
2023-11-29 20:27:30 -05:00
xenohedron
9fbdede64b text cleanup: additional combat phase 2023-11-28 22:20:49 -05:00
Jeff Wadsworth
70069f2937 Fixed #11451 2023-11-28 17:13:15 -06:00
xenohedron
395d858056 text fix 2023-11-28 17:28:38 -05:00
xenohedron
05e2cf11e7
refactor: replacement effects don't use apply method now (#11484) 2023-11-28 11:17:28 +04:00
xenohedron
02eafaf062 simplify text gen for DamageCantBePreventedEffect 2023-11-27 23:47:10 -05:00
ssk97
2abe61643c
[LTC] Implementations part 2/4 (#11470)
* Aragorn, Hornburg Hero
* Minas Morgul, Dark Fortress
* Rohirrim Chargers
2023-11-27 23:41:20 -05:00
Oleg Agafonov
3a92d67d10 tests: added verify test to check miss of controlled filter in equip abilities (related to #11473); 2023-11-27 23:08:23 +04:00
Oleg Agafonov
6e3fe7ec46 Cascade and other "cast spell without paying" abilities - added card popup support for casting card (closes #11355) 2023-11-27 00:49:37 +04:00
Oleg Agafonov
99cbddb8b8
Merge pull request #11431 from Susucre/lci-mana-tracking
[LCI] Implement Thousand Moons Smithy // Barracks of the Thousand and Brass's Tunnel-Grinder // Tecutlan, the Searing Rift
2023-11-25 17:13:54 +03:00
Oleg Agafonov
fe3230f489 game: fixed game error with Berserker's Frenzy and other cards (miss copyable class in watcher); 2023-11-25 17:43:18 +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
xenohedron
81f97c3b0e fix more text 2023-11-25 02:59:06 -05:00
xenohedron
867a8f54b0 fix #11456 (Become Brutes)
CreateRoleAttachedTargetEffect changed to use all targets, not just first
2023-11-25 02:20:11 -05:00
xenohedron
47197f7c39 implement [LCC] Xavier Sal, Infested Captain
adjustments/docs in RemoveCounterCost
2023-11-25 01:49:19 -05:00
Oleg Agafonov
53add71826 Improved network stability and other related fixes:
* server: fixed that a critical errors ignored in user commands threads (now it will be added to the logs);
* network: fixed frozen user responses in some use cases;
* network: fixed accidental and incorrect user responses (only latest response will be used now);
* network: improved freeze logs, added problem method name and code's line number;
* cheats: removed outdated deck and card load logic (only init.txt commands supports now);
* cheats: fixed wrong priority after add card dialog (closes #11437);
* cheats: improved stability and random errors on cheat executes (related to #11437);
* docs: added details on network and thread logic, human feedback life cycle, etc (see HumanPlayer, ThreadExecutorImpl);
2023-11-24 21:22:16 +04:00
xenohedron
dd459c484f followup text fixes 2023-11-23 01:54:51 -05:00
xenohedron
109547a1ad lots of text fixes 2023-11-23 01:54:51 -05:00