* [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>
* 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
* 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
* 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
* [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
* - Implemented Myojin of Cryptic Dreams and Myojin of Grim Betrayal.
- Updated CardsPutIntoGraveyardWatcher to keep track of all cards that entered the graveyard.
- Added documentation to CardsPutIntoGraveyardWatcher.
* Fixed add indestructible counter ability
* Implemented empty functions `setIsAllCreatureTypes` for Commander.
* Rather than copy and pasting the code, call source object
* Add pass-through for isAllCreatureTypes
* Implemented Shadowgrange Archfiend
* Changed MadnessAbility to work with cards which also require life to be paid as part of the madness cost (so far only Shadowgrange Archfiend).
* Updated Shadowgrange Archfiend to work with new Madness implementation (and actually cost life to cast using madness)
* Removed unnecessary variable
* Implemented Mirage Phalanx
* Changed based on first set of comments
* Reordered variables in alphabetical order
* Added support for removing abilities from a token before creating it.
* Fixed typo in CreateTokenCopyTargetEffect, should have been getAddedPermanents not getAddedPermanent (with the s).
* Updated how soulbond is removed from MiragePhalanx tokens
* Fixed missing fields in the copy constructor
* - Refactoring the exileTokensCreated function to exile all tokens as a single trigger.
- Changed Mirage Phalanx to use the new exileTokensCreated function
- changed ’ to '
* Implemented Donal, Herald of Wings
* Made the spell work only once per turn
* Made the spell work only once per turn
* - Changed based on Nykthos Paragon
- Fixed properly adjusting power and toughness
- Fixed card text