Commit graph

3341 commits

Author SHA1 Message Date
PurpleCrowbar
58364784fb
[DMU] Implement Zur, Eternal Schemer (#9406) 2022-09-04 22:27:51 -04:00
Alex Vasile
9c59ec698d [GRN] Fix Wand of Vertebrae not working properly. Closes #9464 2022-09-04 20:43:21 -04:00
Alex Vasile
09b069ceb2
[DMU] Implement Thran Portal (#9456)
* [NCC] Implement Thran Portal

* Address comments

* Fixed usage of {this}
2022-09-04 14:50:44 -04:00
Alex Vasile
c16ead128b [NCC] Address comments for Lethal Scheme 2022-09-04 13:26:26 -04:00
Susucre
c2fd90877b
[NCC] Lethal Scheme (#9100) 2022-09-04 13:05:36 -04:00
Alex W. Jackson
addfd5166e Add new methods to Target and TargetPointer to help generate card rules text. Currently only used by ExileUntilSourceLeavesEffect 2022-09-04 05:15:12 -04:00
Alex Vasile
07a142c9e8
Refactor: Add proper support for modifying and querying base P/T (#9409) 2022-09-01 19:57:30 -04:00
RJayz
3c3ba6f5a9
[CLB] Implemented Gale, Waterdeep Prodigy (#9423) 2022-08-30 21:53:33 -04:00
Alex Vasile
7e3b0f98e6 [MOR] Fixed Shared Animosity incorrectly calculating creature count for boost effect. Closes #9428. 2022-08-29 22:17:07 -04:00
Alex Vasile
a29d5c70cb [AVR] Fixed Stolen Goods not working with dual face cards. Closes #9430. 2022-08-29 21:04:49 -04:00
Evan Kranzler
697586a552
[DMU] Implement Enlist ability (#9431)
* implement enlist ability

* remove skips for enlist

* [DMU] Implemented Guardian of New Benalia

* add test for enlist
2022-08-29 18:51:13 -04:00
RJayz
6e246ded6a
[CLB] Implemented Scion of Halaster (#9417) 2022-08-27 17:37:40 -04:00
Evan Kranzler
90bd0dbf63
Implement Read Ahead mechanic (#9407)
* implement Read Ahead mechanic

* [DMU] Implemented The World Spell

* [DMU] Implemented The Elder Dragon War

* added read ahead test

* fix verify failure

* small change to test

* fix read ahead text
2022-08-27 14:53:39 -04:00
Alex Vasile
258ec26fec Added tests to try to capture sacrifice lands automatically going to the graveyard. For #8980. 2022-08-26 20:59:49 -04:00
Alex Vasile
c670ec5764 Fixed intermittent test failure for Soul Warden 2022-08-26 20:22:57 -04:00
Alex Vasile
4368bae50c [LGN] Fixed Ward Sliver not properly giving protection. Closes #9418 2022-08-26 20:19:41 -04:00
Alex Vasile
ebd7d3ef15 Added extra test to explicitly test that it's not possible to target 2022-08-26 20:16:29 -04:00
Alex Vasile
20a50af475 Fixed typo in assertAbility 2022-08-26 19:10:39 -04:00
Alex Vasile
8bdd8b2bed Fix Ethereal Valkyrie test randomly failing (caused by AI the incorrectly tapping mana) 2022-08-26 18:17:38 -04:00
RJayz
6f461f9669
[CLB] Implemented Neera, Wild Mage (#9415) 2022-08-26 15:19:40 -04:00
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
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