Commit graph

3459 commits

Author SHA1 Message Date
Evan Kranzler
5a809f6fe4
Implementing "suspected" mechanic (#11670)
* [MKM] Implement Agrus Kos, Spirit of Justice

* rework effects

* [MKM] Implement Airtight Alibi

* [MKM] Implement Convenient Target

* [MKM] Implement Repeat Offender

* add test

* add more tests

* add tooltip for suspected

* implement requested changes
2024-01-25 20:30:51 -05:00
Susucre
7df86e91a0 [CLU] Implement Sludge Titan
Introduced TargetCardAndOrCardInGraveyard, derived from the Library one.
Did not achieved everything I wanted in the tests, as the choice seems to be accepted.
Tested it live, no particular issue, you can't select more than one per category.
2024-01-23 19:51:13 +01:00
Matthew Wilson
81f3366ae8
[LCC] Implement Don Andres, the Renegade (#11697)
Co-authored-by: Matthew Wilson <matthew_w@vaadin.com>
2024-01-22 00:14:26 -05:00
Matthew Wilson
4c0f497fd3
[LCC] Implement Charismatic Conqueror (#11693)
* [LCC] Implement Charismatic Conqueror

---------

Co-authored-by: Matthew Wilson <matthew_w@vaadin.com>
2024-01-21 02:42:58 -05:00
xenohedron
038cf01aa8 partial fix for Syrix, Carrier of the Flame
closes #10057, related to #10550
2024-01-21 00:11:16 -05:00
xenohedron
7008f0a7f0 implement [40K] Redemptor Dreadnought
closes #10071
2024-01-20 23:12:34 -05:00
Matthew Wilson
7628c6618f
[LCC] Implement Ore-Rich Stalactite (#11687)
* [LCC] Implement Ore-Rich Stalactite

* Address PR comments

---------

Co-authored-by: Matthew Wilson <matthew_w@vaadin.com>
2024-01-20 13:20:55 -05:00
Matthew Wilson
784a5fb1e4
Fix Sanctuary Blade ability causing a trigger (#11682)
* Fix Sanctuary Blade ability causing a trigger

* Remove unnecessary logic and correct test

* Re-add strict choose mode

---------

Co-authored-by: Matthew Wilson <matthew_w@vaadin.com>
2024-01-20 13:20:17 -05:00
Oleg Agafonov
5229cf300a tests: fixed goldberry test 2024-01-20 16:59:34 +04:00
Grath
bbe452352f Fix Goldberry, River-Daughter
If the Goldberry and the target permanent had different counts of counters, they would not be filtered out from her first ability's effect. Fix this by using the Keys (counter name strings) rather than the Values (Counters).
2024-01-20 02:17:35 -05:00
xenohedron
8cef411c70
fix LoseLifeControllerAttachedEffect (#11680)
add test for Pooling Venom
2024-01-19 18:32:01 -05:00
Oleg Agafonov
e4157fefb8 AI: improved combat support:
* added support to attack battle permanents (#10246);
* fixed that AI was able to attack multiple targets by single creature (#7434);
* added docs;
* added todos with another bugs or possible problems with AI combat;
2024-01-20 00:17:14 +04:00
Oleg Agafonov
2186a49a0f tests: added todo and PoC test for multi target definition (see test_JadeSeedstonesAndMultiTargets) 2024-01-16 17:52:17 +04:00
Oleg Agafonov
7838e2b7cf tests: enabled and fixed randomly failed test with battle cards, fixed wrong blocker declare in multiplayer game; 2024-01-16 01:33:07 +04:00
Oleg Agafonov
482a56f3ea Karn Liberated - improved game restart support in commander games (#11628, #11081); 2024-01-15 05:03:21 +04:00
Oleg Agafonov
08b99fcbf7 AI: removed outdated AIMinimax project (#7075), removed some useless player classes, code and config files, improved docs; 2024-01-15 05:03:21 +04:00
Oleg Agafonov
6ac2f44cc1 game, refactor: improved player related code, fixed miss reset fields between games like commanderIds (#11081, #11628) 2024-01-15 05:03:21 +04:00
Matthew Wilson
1da9b03810
[LCC] Implement Ripples of Potential (#11650)
---------

Co-authored-by: Matthew Wilson <matthew_w@vaadin.com>
2024-01-14 19:56:18 -05:00
xenohedron
f0043ee9d9
cleanup The Tomb of Aclazotz without breaking it (#11648)
* add test for Tarrian's Journal // The Tomb of Aclazotz

* re-apply cleanup without breaking this time
2024-01-14 19:55:55 -05:00
xenohedron
341d8b9add fix #11643 (choice for add mana of any type produced) 2024-01-13 16:26:54 -05:00
Matthew Wilson
2a59c22cb5
fix #11581 (copies of hydras must ETB with counters) (#11639)
* fix: Issue 11581

* Add `setStrictChooseMode(true)` to unit tests

---------

Co-authored-by: Matthew Wilson <matthew_w@vaadin.com>
2024-01-13 15:42:36 -05:00
Oleg Agafonov
95481cd736 Mana Maze - fixed game error on usage (closes #11572, closes #11575); 2024-01-13 11:42:22 +04:00
xenohedron
7d821ef922 fix #11626 (Runadi, Behemoth Caller) 2024-01-11 00:34:02 -05:00
Oleg Agafonov
b6042f7b22 tests: improved load tests with AI games, added parallel option (play multiple AI games at the same time and show final result table, auto-generated decks can be repeatable by random seed - see test_TwoAIPlayGame_Multiple); 2024-01-10 18:53:44 +04:00
Oleg Agafonov
eedb9e6054 server, tests: improved game error and AI logs, added docs, added error stats in load test's result table (related to #11572); 2024-01-08 23:21:44 +04:00
Oleg Agafonov
b3c55555a1 tests: fixed error on load tests end (related to #11572), improved logs, improved session lifecycle on load tests;
tests: added additional test for Mana Maze and deep copy (related to #11572);
docs: added more info to network related code;
2024-01-08 04:14:27 +04:00
xenohedron
98a3d8b947
fix that Manamorphose can't be used to cast Imperiosaur (#11620) 2024-01-07 14:22:20 -05:00
xenohedron
3712d2319d add test for Fight 2024-01-06 16:21:10 -05:00
xenohedron
784a0f564b fix #11606 (PreventDamageToSourceEffect zcc check) 2024-01-06 14:57:56 -05:00
xenohedron
518407be73 fix regression: Michiko Konda, Truth Seeker
missing a check in SourceDealsDamageToYouTriggeredAbility::checkTrigger

added test
2024-01-03 01:14:46 -05:00
xenohedron
e6bd35eb77
refactor selecting cards from multiple zones (#11584)
* refactor selecting cards from multiple zones

fix MV <= controlled lands predicate

fix filter checks without source parameter

* fix test choice
2023-12-31 14:25:25 -05:00
xenohedron
9b3ff32a33
Rework sacrifice effects to support "can't be sacrificed" (#11587)
* add TargetSacrifice and canBeSacrificed

* SacrificeTargetCost refactor, now uses TargetSacrifice, constructors simplified, subclasses aligned

* fix text errors introduced by refactor

* refactor SacrificeEffect, SacrificeAllEffect, SacrificeOpponentsEffect

* cleanup keyword abilities involving sacrifice

* fix a bunch of custom effect classes involving sacrifice

* fix test choices

* update Assault Suit implementation

* fix filter check arguments

* add documentation to refactored common classes

* [CLB] Implement Jon Irenicus, Shattered One

* implement "{this} can't be sacrificed"

* add tests for Assault Suit and Jon Irenicus

* refactor out PlayerToRightGainsControlOfSourceEffect

* implement [LTC] Hithlain Rope

* add choose hint to all TargetSacrifice

---------

Co-authored-by: Evan Kranzler <theelk801@gmail.com>
Co-authored-by: PurpleCrowbar <26198472+PurpleCrowbar@users.noreply.github.com>
2023-12-31 14:10:37 -05:00
Oleg Agafonov
7d860378f7 tests: added Mana Maze test to reproduce stack overflow error (#11572, #11575) 2023-12-24 01:30:26 +04:00
xenohedron
7ff2570024 fix #11520 (Elite Spellbinder)
and similar card InvasionOfGobakhan
2023-12-21 22:32:33 -05:00
Oleg Agafonov
0dbd86fb58 Merge fix 2023-12-14 22:25:45 +04:00
Oleg Agafonov
10641f8d63 GUI: hand - added default card sorting on mulligan (lands > other > creatures; mana value, name); 2023-12-14 22:13:07 +04:00
Oleg Agafonov
525ca9a1a2 tests: fixed random fails due wrong mana usage 2023-12-13 20:30:39 +04:00
Oleg Agafonov
d5b582c1b3 images: fixed miss images for double faced tokens like Incubator/Phyrexian (closes #11535); 2023-12-10 15:59:27 +04:00
Oleg Agafonov
725a27d6ad Double faced tokens - fixed wrong abilities on the back side (example: Incubator/Phyrexian tokens with transform, fixes #10351); 2023-12-10 15:01:00 +04:00
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
Oleg Agafonov
f5c47686ac server: fixed broken games with banned players (regression) 2023-12-09 18:28:21 +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
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
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
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
Oleg Agafonov
11a19f9a43
tests: added test to check jboss serialization and java 17 compatibility (related to #5862, part of #6197) (#11499) 2023-12-01 14:24:34 +04:00
xenohedron
c164d70135 remove PlayersAttackedThisTurnWatcher from default watchers 2023-11-30 00:56:32 -05:00
Oleg Agafonov
2eac541b80 gui: fixed broken watcher view mode (closes #11481) 2023-11-28 08:04:14 +04:00
Oleg Agafonov
c5632f6868 refactor: removed client side threads from a server, improved test log files rotation; 2023-11-27 18:13:05 +04:00