* Limited-style sideboarding with unlimited basics enabled for Freeform Unlimited Commander
* FreeformUnlimitedCommander does not depend on FreeformCommanderFreeForAll anymore.
FreeformUnlimitedCommander has sideboarding.
In two-player matches of FreeformUnlimitedCommander, the player who goes first doesn't draw a card on their first turn anymore.
* FreeformUnlimitedCommanderTypeTest takes into account that sideboarding is allowed
* Fix to startingPlayerSkipsDraw condition
---------
Co-authored-by: sprangg <a@b.c>
* replace addSuperType with supertype.add in card constructors
* more supertype replacements
* update MDFC supertype implementation
* remove unnecessary class
* update test
* Fix error in draft pick logger that was failing on chaos drafts with fewer than 3 sets
* Implement Remixed Booster Draft
* Add debug test
* minor cleanup
* Cleanup unnecessary checks
* Fix elimination tournament type
* Add note for future improvement
* add types and subtypes
* add startingDefense attribute
* [MOM] Implement Invasion of Ravnica / Guildpact Paragon
* fix two small errors
* refactor various instances of "any target"
* fully implement defense counters
* battles can now be attacked
* [MOM] Implement Invasion of Dominaria / Serra Faithkeeper
* [MOM] Implement Invasion of Innistrad / Deluge of the Dead
* [MOM] Implement Invasion of Kaladesh / Aetherwing, Golden-Scale Flagship
* [MOM] Implement Invasion of Kamigawa / Rooftop Saboteurs
* [MOM] Implement Invasion of Karsus / Refraction Elemental
* [MOM] Implement Invasion of Tolvada / The Broken Sky
* simplify battle info ability
* fix verify failure
* some more fixes for attacking battles
* [MOM] Implement Invasion of Kaldheim / Pyre of the World Tree
* [MOM] Implement Invasion of Lorwyn / Winnowing Forces
* [MOM] Implement Invasion of Moag / Bloomwielder Dryads
* [MOM] Implement Invasion of Shandalar / Leyline Surge
* [MOM] Implement Invasion of Belenon / Belenon War Anthem
* [MOM] Implement Invasion of Pyrulea / Gargantuan Slabhorn
* [MOM] Implement Invasion of Vryn / Overloaded Mage-Ring
* [MOM] Implement Marshal of Zhalfir
* [MOM] Implement Sunfall
* implement protectors for sieges
* partially implement siege defeated trigger
* fix verify failure
* some updates to blocking
* [MOM] Implement Invasion of Mercadia / Kyren Flamewright
* [MOM] Implement Invasion of Theros / Ephara, Ever-Sheltering
* [MOM] Implement Invasion of Ulgrotha / Grandmother Ravi Sengir
* [MOM] Implement Invasion of Xerex / Vertex Paladin
* add initial battle test
* fix verify failure
* [MOM] Implement Invasion of Amonkhet / Lazotep Convert
* [MOM] update spoiler
* update how protectors are chosen
* update text
* battles can't block
* add control change test
* rename battle test for duel
* add multiplayer test
* [MOM] Implement Invasion of Alara / Awaken the Maelstrom
* [MOM] Implement Invasion of Eldraine
* [MOM] Implement Invasion of Ergamon / Truga Cliffhanger
* [MOM] Implement Invasion of Ixalan / Belligerent Regisaur
* battles now cast transformed (this is super hacky but we need to refactor TDFCs anyway)
* add TODO
* add ignore for randomly failing test
* a few small fixes
* add defense to MtgJsonCard (unused like loyalty)
* implement ProtectorIdPredicate
* small fixes
The Add Land dialog now only adds regular basic lands and never snow-covered ones, unless you specifically select a set that only contains snow basics (e.g. MH1) Sets that only contain snow basics are not selectable when adding lands to a Limited deck.
* 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>
* 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