* Add starting point: have exile top w/ any color cast, right duration
* Use random opponent
* Add delayed triggered ability
* rename MageIdentifier to AlternateCast
* Fix FiresOfMountDoomDelayedTriggeredAbility
* Add test for Fires of Mount Doom
* Add test for The Ruinous Powers
* Null checks
* Start on Ian Malcolm, Chaotician, missing key effects
* fox ANY clause in DrawNthCardTriggeredAbility
* Get exile effect working
* Start using Evelyn, the Covetous code
* align exile effect
* align player clause
* align card type clause
* align counter check clause
* align mana clause
* add ownership clause
* remove redundant comments
* fix redundant mana clause description
* fix counter clause in mana cost effect
* fix active clause in mana effect
* use MageObjectReference to associate exiled cards with an Ian Malcolm instance
* optimize imports
* Start tests, failing currently
* fix test and add blink test
* fix signature of constructor
* fix order of super() call in checkTrigger
* clarify hash maps in watcher
* use correct AsThoughEffect
* document header of checkExile
* generalize modal and double faced cards for LKI fetch
* remove land played event for watcher
* Use custom MageIdentifier to filter usedMap
* fix name of existing test
* adjust class name
* generate text
* use common class for Danitha
* add test
* update Gisa and Geralf
* rework Cemetery Illuminator, add test
* simplify effects allowing play from top of library
* simplify common classes which were bloated to support a single card
* simplify another
* remove unused import from test
* rework to check spell ability
* add more test cases
* add test cases
* add failing test case
* common watcher and hint for "once each turn, you may cast..."
* fix Assemble the Players to check spell ability, add test
* apply same improvements to Johann, Apprentice Sorcerer
* Improve some "mana spent -> give effect to permanent spell" cards
make effect source be the SpellAbility itself
* Implement Intrepid Paleontologist and tests
* Use a common class for the "specific MOR ETBs with counter" effect
* Prevent casting non-owned dinosuars
* Rename AddCounterEnteringMOR to AddCounterEnteringCreature
* fixes from review
* Rework AsThoughEffect
* some cleanup of MageIdentifer
* refactor ActivationStatus
* fix bolas's citadel
* fix a couple of the Alternative Cost being applied too broadly.
* fix Risen Executioneer
* allow cancellation of AsThough choice.
* fix One with the Multiverse
* cleanup cards needing their own MageIdentifier
* last couple of fixes
* apply reviews for cleaner code.
* some more cleanup
* 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>