Commit graph

3271 commits

Author SHA1 Message Date
Alex Vasile
b705ba48cf [CLB] Fixed Astarion's Thirst not giving counters properly. Closes #9414 2022-08-25 20:38:18 -04:00
Alex Vasile
4b9b419f2e Fixed Grips of Chaos test failing randomly, and added explanation 2022-08-25 20:19:49 -04:00
Alex Vasile
9d54aee3ba [CLB] Fix Myrkul's Edict not sacrificing creatures on 1-9. For #9381. 2022-08-25 15:54:10 -04:00
Alex Vasile
473ecc3292 [SNC] Fix Unlucky Witness not letting you play cards. Closes #9413. 2022-08-25 14:50:30 -04:00
Alex Vasile
37f4f40a2c Fix many tests with wrong commands 2022-08-25 00:52:20 -04:00
Alex Vasile
dca1b5e110 [BNG] Fix Astral Cornucopia not producing enough mana. Closes #9392. 2022-08-24 20:10:00 -04:00
Alex Vasile
ac13be90cf Fixed what is almost certainly a typo 2022-08-24 18:59:34 -04:00
Edoardo Mortara
77e61fe056
[CLB] Implement Banishment (#9400) 2022-08-23 18:25:28 -04:00
Alex Vasile
e5b66a34fd - Fixed bug ShanidSleepersScourgeTest
- Moved ShanidSleepersScourgeTest into correct folder
2022-08-23 09:55:07 -04:00
Alex Vasile
4999fb02b9 Fixed typo in assertAbilities 2022-08-23 09:53:48 -04:00
Evan Kranzler
681b882c6f fixed test failure 2022-08-23 09:44:32 -04:00
Edoardo Mortara
8aed9d473a
[DMC] Implement Shanid, Sleepers' Scourge (#9390) 2022-08-22 22:48:10 -04:00
Alex Vasile
9b2abfb1bb Fixed AnnihilatorTest 2022-08-22 12:44:22 -04:00
Alex Vasile
346be39f2a [STX] Fix Mage Duel cost reduction. Closes #9395. 2022-08-21 11:03:59 -04:00
Alex Vasile
5e6921b346 Added waitStackResolved to EtherealValkyrieTest to address warnings 2022-08-20 16:07:00 -04:00
Alex Vasile
b501669365 Removed all calls to assertAllCommandsUsed() and made it private since it will be automatically called 2022-08-20 07:52:01 -04:00
Alex Vasile
3c0951c350 Enabled assertAllCommandsUsed by default and fixed remaining tests 2022-08-20 07:36:32 -04:00
Alex Vasile
89466d0f8f Added test for Aura cards cast with Disturb. Closes #9360. 2022-08-12 23:46:46 -04:00
Alex Vasile
65122676e5 [KHC] Fix Ethereal Valkyrie and added tests. Closes #9361 2022-08-12 23:17:36 -04:00
Alex Vasile
c0c5c63284 Fixed "One mana of any color" abilities from allowing you to make {C}. Closes #9351. 2022-08-12 21:33:02 -04:00
Alex Vasile
8b71e0a444 [DEV] JDK 11+ support. All builds still target Java 1.8. 2022-08-05 00:17:00 -04:00
the-red-lily
2d56e23148
Copies of Approach of the Second Sun now cause lifegain (#9172) 2022-08-03 14:42:06 -04:00
Alex Vasile
c34c6a59df
Test for Copied Gilded Drake reverting control when killed (#9198) 2022-07-27 08:05:10 -04:00
Spencer Lanman
40fbb9af9b
[NCC] Implement Smuggler's Share (#9295) 2022-07-23 11:07:07 -04:00
Alex Vasile
9715021a35 Fixed GoadAllEffect from affecting creatures that ETB after it resolves. Closes #9227. 2022-07-17 19:41:45 -04:00
Alex Vasile
8c22db650a [CLB] Fixed connive fizzling on stack when permanent that connived leaves the battlefield. Closes #9252. 2022-07-17 18:24:35 -04:00
Alex Vasile
8878dc5cc7 Added failing ignore test for #7655 2022-07-17 13:23:58 -04:00
Alex Vasile
e50e17efe7 [SCG] Added ignored test for bug with Decree of Pain effect resolution 2022-07-14 10:37:18 -04:00
Alex W. Jackson
59d3d83de0 Fix test failure caused by 2aa17d6153 2022-07-13 04:17:32 -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 Vasile
96f6fbefc8
GUI: Autochoose targets if choice can be made (#9206) 2022-07-08 21:58:42 -04:00
Alex Vasile
69f9331d87
[AFC] Fix OneOrMoreDiceRolledTriggeredAbility to not trigger from Chaos Dragon (#9201) 2022-07-08 21:40:05 -04:00
DeepCrimson
f99da274cd
Refactor: Remove Unused ComputerPlayer3 (#9220) 2022-07-04 23:13:23 -04:00
DeepCrimson
01e7549104
Refactor: Remove Unused RandomPlayer (#9218) 2022-07-04 23:04:27 -04:00
Susucre
98c554a59f
[NCC] Implemented Jolene, the Plunder Queen (#9093) 2022-07-04 09:55:47 -04:00
DeepCrimson
21e5d36962
Refactor: Fix Spelling in CardTestPlayerAPIImpl.java (#9216) 2022-07-03 18:32:03 -04:00
DeepCrimson
6d4c422720
Refactor: Remove String Concatenation In Loop (#9217) 2022-07-03 17:49:53 -04:00
DeepCrimson
87908dc808
Refactor: Clean Up Unused Method getPlayerFromName (#9215) 2022-07-03 17:49:23 -04:00
DeepCrimson
7bb851e0a5
Refactor: Fix spelling of 'controller' (#9163) 2022-06-26 22:58:06 -04:00
DeepCrimson
2d2b7ae835
Refactor: Return true instead of !false (#9164) 2022-06-26 22:56:31 -04:00
DeepCrimson
e1cf2fd7e0
Move useRedDefault() method to only test which uses it (#9104)
Co-authored-by: DeepCrimson <deepcrimson@users.noreplyl.github.com>
Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2022-06-17 08:55:53 +04:00
DeepCrimson
ce33b5f218
Refactor: Delete Unused useWhiteDefault() Test Method (#9095)
* Format CardTestAPIImpl.java and CardTestPlayerAPIImpl.java

* Delete unused useWhiteDefault() test method

* Address JayDi's formatting feedback

Co-authored-by: DeepCrimson <>
2022-06-17 08:38:16 +04:00
DeepCrimson
882afbf8b5
Fix remaining raw unparameterized usages of ManaCostImpl 2022-06-16 14:53:44 -07:00
Alex Vasile
44f8377f7e [AFC] Added test for Share the Spoils for #9046 2022-06-16 14:18:27 -04:00
DeepCrimson
3ae5f4979d
Refactor: Remove redundant boxing/unboxing to parse int primitives (#9065) 2022-06-12 12:46:59 -04:00
DeepCrimson
048fcba222
Test for Unlicensed Hearse (#9094) 2022-06-12 09:21:12 -04:00
DeepCrimson
d60f487239
Refactor: Remove unused player param from additional constructor (#9042) 2022-06-08 22:51:24 -04:00
Alexander Novotny
b853633190
Refactor: Removed unused JFX import (#9075) 2022-06-07 17:01:54 -04:00
DeepCrimson
abed4219e0
Replace stream with succinct String.join (#9037) 2022-06-03 15:32:19 -04:00
DeepCrimson
ef5bd74f27
Removing Unnecessary StringBuilder (#9064) 2022-06-03 15:31:37 -04:00
Alex Vasile
e679574a15
Fixes for Mana.enough and Mana.needed. For #8153 (#8663)
Fixes to Mana.enough:

mana of any color (ManaType.Any) was being used to pay for colourless mana.
Fixes for Mana.needed:

mana of any color (ManaType.Any) was being used to pay for colourless mana.
calculation for generic mana remaining was using min(0, available) instead of max(0, available) meaning that leftover mana of other types was never used to pay for any leftover generic costs.
Other:

Added tests for both .needed and .enough.
Moved tests some tests from ManaUtilTest to ManaTest
Simplified Mana.subtractCosts by calling Mana.substract first to make use of common functionality.
Added more documentation
Added tests for both .needed
Added more tests for .enough to cover the changes with colourless mana.
2022-06-01 08:13:37 -06:00
DeepCrimson
33eeffa4d0
Fix typo in comment (#9038) 2022-05-30 07:21:36 -06:00
DeepCrimson
7942c58541 Remove unused player parameter from createPlayer method 2022-05-29 23:33:23 -07:00
Alex Vasile
01be1b1a6b Fixing several tests. Working towards enabling assertAllCommandsUsed() inside execute(). 2022-05-29 21:03:57 -06:00
DeepCrimson
80f6db1245
Fix spelling for SHOW_COMMAND_GRAVEYARD (#9034) 2022-05-29 20:15:12 -06:00
Oleg Agafonov
a62f29a7c9 Tests: improved load test (commander game is default now, custom decks support instead random) 2022-05-29 01:35:19 +04:00
teskogi
7ec94425df
Implement Aeon Engine (#8804)
Co-authored-by: teskogi <tojile7269@yeafam.com>
2022-05-25 15:33:28 -05:00
Alex Vasile
015cdf3136
Revert "Added missing fields to many copy constructors. (#8957)" (#8999)
This reverts commit 82708e4273.

Some of these (AI related result in bloated memory usage, needs more investigation).
2022-05-25 12:57:24 -06:00
Alex Vasile
2f3831599d Added player's name to assertGraveyardCount 2022-05-25 11:06:26 -06:00
Alex Vasile
82708e4273
Added missing fields to many copy constructors. (#8957) 2022-05-25 09:51:18 -06:00
Alex Vasile
db68e4798a Fixing several tests. Working towards enabling assertAllCommandsUsed() inside execute(). 2022-05-24 21:20:09 -06:00
Alex Vasile
3a098270fb More assertAllCommandsUsed() test fixes. 2022-05-17 21:43:04 -06:00
Alex Vasile
e83ffb2ad7 Fixing several tests. Working towards enabling assertAllCommandsUsed() inside execute(). 2022-05-16 15:29:15 -06:00
Alex Vasile
2497e44182 Fixing several tests. Working towards enabling assertAllCommandsUsed() inside execute(). 2022-05-15 10:51:38 -06:00
Grath
ac2eb9056d
Reflection of Kiki-Jiki token being sacrificed incorrectly for #8742 (#8743)
Reflection of Kiki-Jiki tokens were being sacrificed even if not under the control of Reflection of Kiki-Jiki controller.
2022-05-13 14:56:47 -06:00
Alex Vasile
0022dc8c37 Fixing several tests. Working towards enabling assertAllCommandsUsed() inside execute(). 2022-05-13 14:40:54 -06:00
teskogi
1538714555
Fractured powerstone (#8805)
* Implement Fractured Powerstone

* Rebase fix FracturedPowerstone

Co-authored-by: teskogi <tojile7269@yeafam.com>
2022-05-06 11:25:46 -05:00
Jeff Wadsworth
b279d4b318 - Fixed #8839 and added test for it. 2022-05-06 10:23:10 -05:00
Jeff Wadsworth
751a9f8afc - added test for #8876 2022-05-03 17:15:40 -05:00
Evan Kranzler
0e3252d256
Implementing Blitz mechanic (WIP) (#8835)
* added blitz mechanic (mostly copy/paste of dash)

* renamed class

* reworked alt cost abilities, greatly reduced redundant code

* updated text generation

* removed all skips

* added test for blitz

* changed blitz implementation

* [SNC] Implemented Tenacious Underdog
2022-04-24 12:03:25 -04:00
Evan Kranzler
9ead88bacb [SNC] Implemented Endless Detour 2022-04-19 18:40:45 -04:00
Alex W. Jackson
dc7dcec39a
Refactor LookLibraryAndPickControllerEffect (#8841) 2022-04-16 00:32:24 -04:00
Daniel Bomar
21a1cfbea9
[SNC] Fixed shield counter interaction with damage can't be prevented effects 2022-04-15 08:27:21 -05:00
Daniel Bomar
63239fe8e6
[SNC] Implemented shield counter mechanic (#8830)
* [SNC] Implemented shield counter mechanic

* Rework shield counter to be a global replacement effect

* Add unit test for shield counter

Co-authored-by: Evan Kranzler <theelk801@gmail.com>
2022-04-14 09:43:12 -04:00
Evan Kranzler
6e65db284c
Implemented "Until your next end step" duration (#8831)
* initial implementation of until next end step duration

* added test, reworked effect duration
2022-04-10 17:57:58 -04:00
Alex W. Jackson
a48dedcd76 [ALA] Finish fixing Death Baron and add test 2022-04-08 01:42:41 -04:00
Evan Kranzler
09402609ef [DTK] reworked Living Lore, fixed death trigger 2022-04-04 23:04:09 -04:00
Evan Kranzler
26ae7b7281 replaced various instances of instanceof lambda functions with 2022-04-03 11:11:07 -04:00
Alex W. Jackson
c58eeef77d Fix that Warbringer's cost reduction doesn't apply when checking playable (for real this time) 2022-04-03 10:19:22 -04:00
Alex W. Jackson
081b2f2f39 Replace more custom effects with SavedDamageValue 2022-04-02 02:11:12 -04:00
Alex W. Jackson
46f98a0f88 Fix #8812 and add test 2022-03-31 21:30:46 -04:00
Evan Kranzler
676c3a8bb4 fixed interactions between effects which replace a token and effects which care about tokens after they've been made 2022-03-31 19:58:20 -04:00
Evan Kranzler
f6306630b3 [TSP] fixed implementation of Weatherseed Totem 2022-03-25 22:21:21 -04:00
Evan Kranzler
effdf14579 [VOW] fixed Savior of Ollenbock issues (fixes #8786) 2022-03-25 17:35:27 -04:00
Evan Kranzler
80e11b2052
(WIP) Replacing blocking/blocked by predicates (#8729)
* replaced blocking/blocked by predicates

* added test for knight of dusk (currently fails)

* added source parameter to filters and everything else that needs it

* some changes to various predicates

* test fix

* small changes to filter code

* merge fix

* fixed a test failure

* small change to Karn, Scion of Urza

* removed sourceId from filter methods and other similar places

* added new getobject method to fix some test failures

* a few more fixes

* fixed merge conflicts

* merge fix
2022-03-23 18:45:02 -04:00
Evan Kranzler
0f1375ca60 fixed various instances of mana costs which don't include braces 2022-03-21 19:10:38 -04:00
Evan Kranzler
02017b9a88
Implementing The Prismatic Piper (Ready for review) (#8164)
* [CMR] Implemented The Prismatic Piper

* updated commander validation to handle The Prismatic Piper

* created abstract base class for commander variants

* added ability to prismatic piper

* added game init handling

* small revert

* small reorganization of tests

* added some validation tests for piper

* added more tests for piper

* add another test

* added decklist comments to tests

* added some more piper tests

* added another test

* added mana option tests

* added a companion test

* fix conflict

* updated abstract commander to work with Friends forever

* merge fix

* Deck: added details for illegal validation of companion card;

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2022-03-17 18:02:29 -04:00
Alex Vasile
b40bde5e12
[AFC] Implemented Share the Spoils (#8583)
* Preliminary implementation of Share the Spoils.

* Added tracking of cards in exile to MageTestPlayerBase in order to help with testing of cards such as Share the Spoils which put and take cards out of exile a lot.

* Moved Share the Spoils to the correct set list.

* Fixed bug with using ’ instead of ' for card text.

* Add method to assert number of cards exiled into a specific exile zone.

* Further implementation of ShareTheSpoils and it's tests.

* Fixed a bug in the calcualtiong of exileNUmber. (I misunderstood what the copy() method was for)

* - Added a watcher which should limit player to only cast the spell once per turn.
- Fixed the tests to run properly (using .LOST instead of .LOSES for the GameEvent).
- A bit of cleaning up of the class

* Updated tests and card to capture both conceding and losing the game through other means.

* Further implementation. All parts are working (though not correctly).

* All pieces are now working. But, both the spend any mana and exile a card off the top of library activate when ANY card is played from exile, not just one exiled with Share the Spoils.

* Replaced changed how I move card from top of library to correct exile zone. Instead of using moveCards() and moveToAnotherZone(), I am not using moveCardsToExile().

* A new card is now properly exiled whenever one is played with Share the Spoils

* Moved inner class out and passing exileId as parameter instead

* Updated text based on comments

* Added several more tests

* Made changes to how exileId is handled based on comments

* Made changes based on comments

* Further changes based on comments

* Add a few more tests (will have to fix them once the exile zone issue is fixed)

* Added workaround for #8706

* Get most of the tests working

* Simplified cardId handling

* Reformat file based on comment

* - Added setStrictChooseMode to all tests
- Properly using checkPlayableAbility for all checks where things can't be played/cast.

* Fixed a missing getMainCardId call that made difficult cards unplayable

* - Simplified handling of casting only once per turn. I don't see the point to keeping the MageReference object. using a simple boolean instead
- This also fixes a bug where multiple cards could be played in the same turn.

* Fixed test for difficult cards.

* Reworked spend mana effect based on Dead Man's chest

* Added a check again a null watcher

* Fixed typo in checkManaSpendingForOtherExileSource

* Fixed tests to use proper checkPlayableAbility syntax.

Co-authored-by: Evan Kranzler <theelk801@gmail.com>
2022-03-15 18:34:36 -04:00
Evan Kranzler
06eeb90b3d replaced some more card moving method calls 2022-03-15 18:08:36 -04:00
Alex Vasile
6a7b2e80ac
Refactoring + Fix of several cards (#8699)
* Simplified Azorius Aethermage

* - Flattened the if statements
- Renamed the custom effects and abilities to be more readable
- Changed certain functiosn to be private

* Flatten Thieves Auction

* Flatten Possibility Storm

* Flatten Aminatous Augury

* Minor refactoring

* Flattening and adjusting access modifiers

* Aetherspouts should have been using getPlayersInRange. Current implementation was affecting all players

* Simplified Akoum Hellkite

* Simplified Ali From Cairo

* Flattened An-Havva Constable

* Flattened Aura Finesse and Autum Willow

* Fixed All Hallow's Eve since it didn't work.

* Several small simplifications

* Flattening/Simplification of several classes

* Added test for Azorius Aethermage

* Added test for Abandoned Sarcophagus

* Updated test with docstring instead of comment

* Update AzoriusAethermageTest.java

* Update BattlegateMimic.java

* Update AetherworksMarvel.java

* Update AetherworksMarvel.java

* Update AzoriusAethermageTest.java

* Update AzoriusAethermageTest.java

Co-authored-by: Jeff Wadsworth <jeffwadsworth@users.noreply.github.com>
2022-03-15 16:57:16 -05:00
Evan Kranzler
9e0ea945ca
Refactoring token names to reflect new rule (ready for review) (#8446)
* updated Riptide Replicator and Volrath's Laboratory

* refactored token names

* some test fixes

* more test fixes

* even more test fixes

* the final test fixes

* fixed a few missed tokens

* merge fix

* fixed a test failure

* fixed test failure

* updated ignored verify test

* fixed token images not appearing

* updated tests
2022-03-14 22:37:21 -04:00
Evan Kranzler
83c94322c6 refactored some instances of Player::moveCardToExileWithInfo 2022-03-14 21:14:12 -04:00
Evan Kranzler
8198322ba5 some changes to ExileSourceCost 2022-03-14 20:31:40 -04:00
Jeff Wadsworth
fe089a9972 - added test for Foretell keyword 2022-03-14 16:51:44 -05:00
Alex W. Jackson
9af399eadb Better changeling token workaround; add additional test (fixes #8766) 2022-03-14 02:43:12 -04:00
Evan Kranzler
82832046b3 fixed issues with changeling tokens not counting as they enter 2022-03-13 22:25:44 -04:00
Evan Kranzler
bbb9382150
Reworking effects which allow casting spells from a selection of cards (ready for review) (#8136)
* added function for casting spells with specific attributes from a selection of cards

* updated cascade to use new method

* refactored various cards to use new methods

* added TestPlayer method

* fixed a small error

* text fix

* broke out some repeated code

* added missing notTarget setting

* add additional retain zone check

* some more cards refactored

* more refactoring

* added interface for split/modal cards

* reworked spell casting methods

* reworked multiple cast to prevent unnecessary dialogs

* fixed test failures due to change in functionality

* add AI code

* small nonfunctional change

* reworked Kaya, the Inexorable

* added currently failing test

* added more tests

* updated Geode Golem implementation

* fixed adventure/cascade interaction, added/updated tests

* some nonfunctional refactoring

* added interface for subcards

* [AFC] Implemented Fevered Suspicion

* [AFC] Implemented Extract Brain

* [AFC] updated Arcane Endeavor implementation

* [C17] reworked implementation of Izzet Chemister

* [ZEN] reworked implemented of Chandra Ablaze

* additional merge fix

* [SLD] updated Eleven, the Mage

* [NEO] Implemented Discover the Impossible

* [NEO] Implemented The Dragon-Kami Reborn / Dragon-Kami's Egg

* [NEO] Implemented Invoke Calamity

* [AFR] Implemented Rod of Absorption

* [VOC] Implemented Spectral Arcanist

* [VOC] added additional printings

* [NEO] added all variants

* [SLD] updated implementation of Ken, Burning Brawler
2022-03-09 08:03:54 -05:00
Evan Kranzler
5b543dc819 fixed test failure 2022-03-08 10:02:44 -05:00
Evan Kranzler
6c643fdc5e [EVE] fixed implementation of Hotheaded Giant 2022-02-28 08:45:13 -05:00
Evan Kranzler
cf9a2f936a a few more getId fixes 2022-02-26 10:23:13 -05:00