Commit graph

3356 commits

Author SHA1 Message Date
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
Evan Kranzler
3cbfe4d623 [BOK] reworked implementation of Shirei, Shizo's Caretaker and added test 2022-02-24 20:15:15 -05:00
Evan Kranzler
c97039366d added an additional test for conspire 2022-02-24 08:58:18 -05:00
Evan Kranzler
f32d0b3e6e fixed issues with Conspire, added additional tests 2022-02-23 21:37:42 -05:00
Alex Vasile
6d02a902b7
fix what is almost certainly a typo (#8693) 2022-02-20 01:07:55 -05:00
Evan Kranzler
fe42bc6e49 added Heart of Kiran test 2022-02-19 17:19:52 -05:00
Evan Kranzler
972ad38e85 [NEO] added test for Hotshot Mechanic 2022-02-19 14:48:44 -05:00
Evan Kranzler
8040e7d1e8 [NEC] fixed Kotori, Pilot Prodigy's granted crew ability not animating vehicles (fixes #8713) 2022-02-18 22:22:44 -05:00
Alex W. Jackson
4c32272505 [AKR] does *not* have a dedicated nonbasic land slot (see https://youtu.be/XJgQKO5qd44?t=463) 2022-02-18 17:09:25 -05:00
Evan Kranzler
4ede390e40 some reworking of Equip, Fortify, and Reconfigure 2022-02-17 18:08:22 -05:00
Evan Kranzler
e296b62014 [NEO] Implemented Storyweave 2022-02-15 18:18:02 -05:00
Evan Kranzler
4591ac07cc
Reworking goad effects (ready for review) (#8034)
* changing goad to designation, refactored goad effects to be continuous

* [AFC] Implemented Vengeful Ancestor

* reworked effects which goad an attached creature

* updated goading implementation

* updated combat with new goad logic

* some more changes, added a test

* another fix

* update to test, still fails

* added more failing tests

* more failing tests

* added additional goad check

* small fix to two tests (still failing

* added a regular combat test (passes and fails randomly)

* fixed bug in computer player random selection

* some changes to how TargetDefender is handled

* removed unnecessary class

* more combat fixes, tests pass now

* removed tests which no longer work due to combat changes

* small merge fix

* [NEC] Implemented Komainu Battle Armor

* [NEC] Implemented Kaima, the Fractured Calm

* [NEC] added all variants
2022-02-15 09:18:21 -05:00
Evan Kranzler
54203c16d3
[NEO] Implementing Compleated mechanic and hybrid phyrexian mana (ready for review) (#8677)
* [NEO] Implemented Tamiyo, Compleated Sage

* replaced PhyrexianManaCost calls with ManaCostsImpl calls

* updated phyrexian mana implementation

* added phyrexian hybrid symbol support

* updated starting loyalty implementation for planeswalkers

* change compleated to singleton

* implemented Compleated ability

* added some missing loyalty setters

* changed when loyalty is added to a walker to fix bugs

* slight change to some tests to fix them from failing

* fixed token issue
2022-02-10 10:25:23 -05:00
Evan Kranzler
495fc57540 [NEO] Implemented Reconfigure abliity 2022-02-06 12:27:12 -05:00
Evan Kranzler
d030848552
Reworking "as long as you control this" effects (WIP) (#8620)
* added WhileControlled duration, removed SourceOnBattlefieldControlUnchangedCondition

* refactored effects which keep things tapped

* a few additional missed cards

* refactored cards which check for being controlled and tapped

* [NEO] Implemented Kyodai, Soul of Kamigawa
2022-01-30 22:00:10 -05:00
Oleg Agafonov
a5eb025155 * Sneak Attack - fixed that it doesn't give haste to MDF cards (#8474); 2021-11-23 00:55:24 +04:00
Oleg Agafonov
524f46e7e5 * Uba Mask - fixed that it doesn't work with MDF cards (#8222); 2021-11-17 19:23:16 +04:00
Oleg Agafonov
afdae939c3 * Becomes a copy abilities: improved support with MDF cards (#8335); 2021-11-17 16:27:18 +04:00
Evan Kranzler
4a99b7689f fixed a test failure 2021-11-14 10:52:08 -05:00
Alex W. Jackson
bb2546badd
Refactor rules text generation for P/T boost effects. Fixes #8421 2021-11-10 06:40:11 -05:00
Oleg Agafonov
3515647c7b [MID] Tests: added test for disturb ability; 2021-11-09 10:14:50 +04:00
Evan Kranzler
30afb11cd2
Implementing Daybound/Nightbound mechanic (#8200)
* adding initial day/night support in game state

* remove card exclusion for testing

* added functional implementation to abilities from main branch

* functionally implemented NightCondition

* updated DayNightHint

* added support for nightbound entering transformed at night

* [MID] Implemented Unnatural Moonrise

* [MID] Implemented The Celestus

* added some docs

* changed access for state day/night methods

* added transformation to day/night switch

* re-added unfinished filter, removed day/night cards

* fixed some errors with transforming

* added hints to all day/night cards

* added transformation prevention plus a test

* added Immerwolf test

* [MID] Implemented Tovolar, Dire Overlord / Tovolar, The Midnight Scourge

* refactored some cards to not use isTransformable

* removed transformable parameter

* simplified some transform code

* fixed null pointer exception

* removed unnecessary canTransform method

* fixed a small error

* reworked implementation of rule 701.28f

* small change in transform logic

* fixed failiing test

* fixed verify failure

* small merge change

* added support for day/night switching based on spells cast

* [MID] Implemented Curse of Leeches / Leeching Lurkers

* moved day/night handling to untap step

* added tests for cards which set day and trigger from a change

* [MID] Implemented Ludevic, Necrogenius / Olag, Ludevic's Hubris

* added support for creatures transforming to match day/night when necessary

* fixed verify failures

* fixed another verify failure

* remove temporary verify skip

* added transform message

* removed unnecessary transform message

* [MID] Implemented Angelic Enforcer / Enduring Angel

* updated DayNightHint with more information

* fixed verify failure

* merge fix

* fixed Startled Awake / Persistent Nightmare / Moonmist interaction

* added another test for Moonmist

* merge fix

* merge fix

* [MID] Implemented Baneblade Scoundrel / Baneclaw Marauder

* merge fix

* [MID] various text fixes

* [MID] a few more text fixes

* Merge fix

* Improved transform game logs (hints, source), fixed day/night logs, fixed miss game param (due code style);

* fixed a test failure

* Merge fix

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-11-05 23:11:23 +04:00
Evan Kranzler
5203714d07 [VOW] Implemented Rending Flame 2021-10-31 15:22:40 -04:00
Daniel Bomar
83d37a7f35
Fixed Yixlid Jailer interaction with cards moving to graveyard (#8402)
* Fixed Yixlid Jailer interaction with cards moving to graveyard (fixes #8311)

* Yixlid Jailer - Revert previous workaround and add rules modifying effect
2021-10-24 02:57:02 -05:00
Daniel Bomar
b63623b40f
[AFC] Fixed Belt of Giant Strength cost reduction (fixes #8347) 2021-10-23 15:40:58 -05:00
Daniel Bomar
060ea7da83
Add sub abilities in TokenImpl.addAbility and PermanentImpl.addAbility (fixes #8343) 2021-10-22 17:32:51 -05:00
Daniel Bomar
27d4fb13c3
Fixed combat information not being preserved in LKI and added unit test 2021-10-21 20:24:51 -05:00
Daniel Bomar
c89fba48ca
Add unit test for Ward ability 2021-10-18 19:09:08 -05: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
Jeff Wadsworth
4f1c91ecb1 - removed some text from test 2021-10-04 09:45:25 -05:00
Jeff Wadsworth
fa18679ce8 - added test for Gisa, Glorious Resurrector 2021-10-04 09:43:32 -05:00
Oleg Agafonov
58ab020065 Dev: pom clean up, improved parent/child structure; 2021-10-03 18:11:56 +04:00
Oleg Agafonov
08407eef25 Dev: migrated to single logger lib (replaced slf4j usage by log4j), clean up and documented pom files, updated some libs; 2021-10-02 11:09:09 +04:00
Oleg Agafonov
074f26d199
Merge pull request #8351 from magefree/dependabot/maven/com.sun.xml.bind-jaxb-impl-3.0.2
Bump jaxb-impl from 2.3.3 to 3.0.2
2021-10-01 22:22:45 +04:00
Oleg Agafonov
301539d75b Server improves:
* Server: improved messages on register/reset dialogs;
* Tests: added database compatible tests on new code or libs (auth db);
2021-10-01 21:52:09 +04:00
Oleg Agafonov
1c6eb10bd1 Dev: migrated to single json lib (removed json-simple from deck import code), clean up guava lib usage in cards; 2021-10-01 17:57:54 +04:00
Oleg Agafonov
fa70af6131 Dev: removed test data from resources to data folder; 2021-10-01 14:10:39 +04:00
dependabot[bot]
4e6de42e71
Bump jaxb-impl from 2.3.3 to 3.0.2
Bumps jaxb-impl from 2.3.3 to 3.0.2.

---
updated-dependencies:
- dependency-name: com.sun.xml.bind:jaxb-impl
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-01 09:43:33 +00:00
Oleg Agafonov
c899c332b8 Dev: updated json lib, added tests; 2021-10-01 13:41:54 +04:00
Evan Kranzler
1b36053b17 [AFC] added passing and failing tests for Belt of Giant Strength (#8347) 2021-09-30 20:46:03 -04:00
Oleg Agafonov
f9beed6a89 Dev: clear pom files, fixed wrong test packages and scope, added zip tests; 2021-09-29 16:01:36 +04:00
Oleg Agafonov
0e1abaec5d Dauthi Voidwalker - fixed that it doesn't work with cards (related to a3ca9fc03a); 2021-09-27 23:29:41 +04:00
Oleg Agafonov
42325c7c2e AI improves:
* AI: fixed that AI was able to targeting an invalid player targets in some use cases (#5630);
* AI: fixed that AI was able to ignore targeted triggers in some use cases;
* AI: improved player targeting for not own chooses (if it's make a choice for another player);
2021-09-26 18:40:26 +04:00
jeff@delmarus.com
de378577a6 - Added test for #5630 2021-09-25 09:22:47 -05:00
Oleg Agafonov
95b782d519 Tests for #5630 2021-09-25 18:09:21 +04:00
Jeff Wadsworth
c6e385e321 - Added test for #8293 2021-09-24 09:51:31 -05:00
Evan Kranzler
3a3e3fda48 various files converted from CRLF to LF 2021-09-23 19:37:47 -04:00
Evan Kranzler
4ab41a5b12 [MID] updated Teferi, Who Slows the Sunset emblem 2021-09-22 09:39:21 -04:00
Oleg Agafonov
d35e1fbfb1 * Play card without mana - fixed that some cards did not allow to choose a casting spell from split/mdfc cards (#7410); 2021-09-21 15:30:40 +04:00
Oleg Agafonov
6bc5a00e8a * Alternative costs - fixed that it can be activated on free cast (example: cascade with overload, #6925, #7410, #7741, #6342); 2021-09-21 14:22:46 +04:00
Oleg Agafonov
c49ca90b84 Tests: execute time stats in logs are disabled by default; 2021-09-21 12:14:22 +04:00
Oleg Agafonov
46081d9185 GUI related improves:
* GUI: fixed that choose triggers/piles dialog doesn't close correctly before cast mode choose (#8225);
* GUI: fixed that some choose dialogs doesn't update battlefield state (example: choose amount, choose mana);
* Game: fixed duplicated json logs at the game's end;
2021-09-20 02:17:22 +04:00
Oleg Agafonov
a3ca9fc03a Dauthi Voidwalker - correct code for #8141 and same cards (see comments in fd719ad287); 2021-09-19 04:01:01 +04:00
Oleg Agafonov
2cf005f971 Tests: improved performance in game tests; 2021-09-18 22:10:55 +04:00
Oleg Agafonov
f107c1e4db Tests: improved performance in game tests; 2021-09-18 00:24:10 +04:00
Oleg Agafonov
021a2d251c Improves in some effects:
* ConditionalAsThoughEffect - improved support with target effects (see comments from e6e802033b);
* TargetCardInLibrary - added additional checks on wrong usage (must be used inside effects only, not as ability's target);
* PlayFromNotOwnHandZone - fixed wrong playable mark on battlefield's permanents (AI related too);
2021-09-17 21:21:37 +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
83017e3c51 Devs: added docs and todo about short living LKI, LKI and current problems; 2021-09-05 18:49:44 +04:00
Oleg Agafonov
bf67c4c6b4 * Tap any number of untapped creatures - added card hint, improved targeting, fixed cheating (example: Harmony Of Nature); 2021-09-05 13:02:16 +04:00
Oleg Agafonov
5f70b92278
Merge pull request #8115 from magefree/dependabot/maven/org.glassfish.jaxb-jaxb-runtime-3.0.2
Bump jaxb-runtime from 2.3.3 to 3.0.2
2021-09-05 01:41:57 +04:00
Oleg Agafonov
7ff6e73a19
Merge pull request #8178 from awjackson/csp_booster_fix
Fix Coldsnap booster generation
2021-09-05 01:34:46 +04:00
Oleg Agafonov
473a81e13c * Mana pay to cast - fixed random values in games with AI (example: Marath, Will of the Wild, see #8204); 2021-09-04 20:34:32 +04:00
Oleg Agafonov
3a8e04f2bc * Mana pay to cast - fixed wrong mana calc for commanders (example: Marath, Will of the Wild, see #8204); 2021-09-04 19:24:35 +04:00
Oleg Agafonov
b56aef9341 * Emergent Sequence - fixed that it doesn't put counters if no land play before (#8208); 2021-09-04 18:45:32 +04:00
Oleg Agafonov
421cac0ce3 * AI: fixed that computer can broke some non mana pays (Echo, Escalate, Recover, Tap source unless pay, Slow Motion, #8182); 2021-09-03 02:11:21 +04:00
Oleg Agafonov
4d0761fa27 AI: added support of TargetCard targeting in hand, graveyard, exile zones. Added additional checks for tests. 2021-09-03 00:26:39 +04:00
Evan Kranzler
d0b35c7572 fixed a test failure but for real this time 2021-09-01 07:18:17 -04:00
Evan Kranzler
d241ae99bb fixed a test failure 2021-08-31 21:27:57 -04:00
Alex W. Jackson
37df2436a8 Coldsnap boosters don't have a land slot; snow basic lands are regular commons 2021-08-30 20:33:30 -04:00
Oleg Agafonov
2158d682cc Prepare new release 2021-08-30 14:44:03 +04:00
Raphael-Schulz
f03a410b9e
[AFR] Implemented Xanathar, Guild Kingpin (#8045)
* [AFR] Implemented Xanathar, Guild Kingpin

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-08-28 23:55:41 +04:00
Oleg Agafonov
91d577b0af Test framework: fixed that ai play step command doesn't work correctly on declare attackers and blockers steps; 2021-08-27 21:43:44 +04:00
Oleg Agafonov
d481172eb4 Code: added test coverage reports by JaCoCo lib (generate by command like "mvn install -Djacoco.skip=false");
Code: added test coverage support for Sonar reports;
2021-08-27 20:51:42 +04:00
Evan Kranzler
f8d030bef4
Adding dice rolling trigger/replacement (ready for review) (#7989)
* [AFR] Implemented DiceRolledTriggeredAbility
* [AFR] Implemented Brazen Dwarf
* [AFR] Implemented Feywild Trickster
* [AFC] Implemented Reckless Endeavor
* [AFR] Implemented Pixie Guide
* [AFR] Implemented Critical Hit
* [AFR] Implemented Netherese Puzzle Ward
* [AFC] Implemented Neverwinter Hydra
* [AFR] Implemented Farideh, Devil's Chosen
* [AFR] Implemented Barbarian Class
* [AFC] Implemented Vrondiss, Rage of Ancients
* [AFC] Implemented Arcane Endeavor
* Test framework: added planar die rolls support
* Test framework: added random results set up support in AI simulated games;
* AI: improved roll die results chooses in computer games;
* Roll die: improved combo support for planar die and roll die effects;

Co-authored-by: Daniel Bomar <dbdaniel42@gmail.com>
Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-08-26 14:06:10 +04:00
Evan Kranzler
3dff1783ac [TSP] fixed Gauntlet of Power adding mana to the wrong mana pool (fixes #8154) 2021-08-24 08:24:08 -04:00
Evan Kranzler
8fe0467893 reworked mana text generation to fit canonical symbol order 2021-08-23 18:32:21 -04:00
Ingmar Goudt
e10da89463 test for #7912 2021-08-22 14:35:17 +02:00
Ingmar Goudt
271f7b812f fix #8097,
the sacrifice target cost was optional, but SacrificeCost.canPay first checks if there are valid targets. In this scenario there were none, but the spell should still be playable
2021-08-22 12:01:10 +02:00
Oleg Agafonov
7dcdc12c0f * Target permanent or suspended card - added AI support, fixed rollback errors in AI games (example: Shivan Sand-Mage, see #7896); 2021-08-21 17:19:45 +04:00
Oleg Agafonov
e9c68d2a5c Test framework improves (related to #7896):
* added real time command to check card's counters (example: suspended cards with Time counters, see checkCardCounters);
* added target type support: TargetPermanentOrSuspendedCard;
* improves error logs for miss modes and unsupported target types;
2021-08-21 15:02:42 +04:00
Oleg Agafonov
9fa487e60a * Suspend ability - fixed that suspend can be activated from opponent's hand; 2021-08-20 15:40:42 +04:00
Oleg Agafonov
fb4065ba66 Little fixes 2021-08-20 09:38:16 +04:00
Oleg Agafonov
b9db36eb22 Tests: improved performance 2021-08-13 09:17:33 +04:00
Oleg Agafonov
49308bcd4f * Performance: optimized cards database to increase tests and boosters generation; 2021-08-12 23:59:08 +04:00
Oleg Agafonov
a6a02b369f Tests: added test for Intet, the Dreamer and split cards; 2021-08-12 14:16:29 +04:00
Oleg Agafonov
9f882824a0 * Gain ability effect: fixed rollback error with AI games and too many cards (related to d202278ccd); 2021-08-12 00:08:08 +04:00
dependabot[bot]
60bd3caaef
Bump jaxb-runtime from 2.3.3 to 3.0.2
Bumps jaxb-runtime from 2.3.3 to 3.0.2.

---
updated-dependencies:
- dependency-name: org.glassfish.jaxb:jaxb-runtime
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-09 11:01:20 +00:00
Evan Kranzler
b9c55a984d [MH2] added collation info 2021-08-07 20:40:46 -04:00
Evan Kranzler
bcd000ac99 [J21] Implemented Boneyard Aberration 2021-08-06 21:05:20 -04:00
Evan Kranzler
b45514ecfb [J21] Implemented Wingsteed Trainer 2021-08-06 17:35:43 -04:00
Evan Kranzler
9ba9243db5 added test for seek mechanic 2021-08-06 17:35:43 -04:00
Ingmar Goudt
3a6cdd2615 test for #8008 2021-08-06 23:26:24 +02:00
Evan Kranzler
f5687acfad [J21] Implemented Faceless Agent 2021-08-06 08:52:31 -04:00
Oleg Agafonov
53aababd44 * Additional costs - added support of X costs on free cast (example: Kicker X, see Thieving Skydiver and Etali, Primal Storm combo);
* As an additional cost discard X cards - fixed wrong text (example: Channeled Force, Firestorm);
2021-08-05 16:18:04 +04:00
Oleg Agafonov
d62cf17422 * Twinning Glass - removed unnecessary confirm dialog, added additional tests (#4721); 2021-08-05 15:37:07 +04:00
Oleg Agafonov
7a3521b02b Tests: added serialization test for all cards (run manually); 2021-08-04 22:40:24 +04:00
Oleg Agafonov
a5b41ea920 * Marshland Bloodcaster - fixed game freeze on usage;
* Kentaro, the Smiling Cat - fixed game freeze on usage;
2021-08-02 17:40:35 +04:00
jeffwadsworth
237e8344b3 - added test for Kardur, Doomscourge and Kithkin Mourncaller. it was quite useful find another issue that was fixed. removed sim() check from Abandoned Sarcophagus. 2021-07-31 21:27:58 -05:00
Oleg Agafonov
810e1babd5 Tests: added booster stats collection script (see #8081); 2021-07-31 19:13:00 +04:00
Evan Kranzler
1baf523522 add boolean int method for setChoice 2021-07-31 08:11:57 -04:00
Oleg Agafonov
530cd627cc * Copy spell - improved support for some cards and abilities (#8074); 2021-07-31 15:48:57 +04:00
Oleg Agafonov
6e0184a38d Real fix for 4125d1eb46, updated outdated comments. 2021-07-31 09:47:29 +04:00
Evan Kranzler
0136b986e4 added tests for mana from copied spells, currently fails for scepter plus drain (related to #8074) 2021-07-30 22:04:15 -04:00
Evan Kranzler
4125d1eb46 fixed tapped for mana events not working for sacrificed tokens 2021-07-30 21:54:00 -04:00
Oleg Agafonov
dc09f279ed Fixed NPE error in card icons 2021-07-29 12:27:23 +04:00
Evan Kranzler
70b040473b updated ManaSpentToCastCount, added tests 2021-07-27 20:53:43 -04:00
Oleg Agafonov
c4dc83dec9 [AFR] fixed Bruenor Battlehammer - correct tests, getPlayable support, additional info in choose pay dialog; 2021-07-27 18:30:24 +04:00
Evan Kranzler
806eba9691 [AFR] fixed Bruenor Battlehammer (fixes #8055) 2021-07-27 09:59:57 -04:00
Evan Kranzler
960146d554 added boolean set choice 2021-07-27 08:58:27 -04:00
Ingmar Goudt
65211b62fe Fix Extraplanar Lens, solve issue #8050 2021-07-27 00:08:48 +02:00
Oleg Agafonov
c6a3d5e588 Prepare new release 2021-07-25 01:15:33 +04:00
Oleg Agafonov
24847c1fa7 Tests: added name test for +2 mace; 2021-07-24 15:50:18 +04:00
Evan Kranzler
214b688fdb
Update effects and abilities which involve tapping permanents for mana (#7679)
Abilities which use trigger from or replace tapping for mana now save the permanent in case it leaves the battlefield.
fixes #7671, fixes #7770
* Merge fix and additional comments, Winter's Night fixed

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-07-22 05:09:07 +04:00
Oleg Agafonov
e330ed6c7b Test framework: improves logs in choices errors; 2021-07-21 20:15:47 +04:00
Oleg Agafonov
7ccb390e4d * GUI: added card icon for announced X value (activate ability); 2021-07-19 14:25:51 +04:00
Oleg Agafonov
76082e1d7a * GUI: added card icon for announced X value (card cast); 2021-07-19 13:40:21 +04:00