* [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>
* 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
* [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>
* 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>