* create new abstract class for batch event framework
* adjust CardUtil.getEventTargets to support new framework
* update TappedBatchEvent to new framework
* update UntappedBatchEvent to new framework
* slight cleanup
* update LifeLostBatchEvent to new framework
* update ZoneChangeBatchEvent to new framework
* complete refactor by moving damage events to new framework
* remove old code no longer used
* clean up some nonsense code in star wars card
* fix watcher checking id before event type
* fix wrong id usage
* fix missed wrong id usage
* [WHO] Implement Amy Pond
* [WHO] Implement Rory Williams
* Modified ExileSpellWithTimeCountersEffect to include the ability to give the card suspend, simplified Epochrasite
* adjustments
---------
Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
* 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
* implement [WHO] Donna Noble
* Changed trigger to DAMAGED_BATCH_FOR_PERMANENTS, check for need of separate targets
* fix short circuit operator
* simplify control path in paired damage trigger
* Initial commit, missing tests
* use CardUtil.getEventTargets
* Implement Donna Noble using DamagedBatchForOnePermanentEvent
* fix double-effect bug
* remove unnecessary custom effect
* Fix addSimultaneousDamage to avoid adding damage events to existing DamagedBatchForOnePlayerEvent instances when they shouldnt
* Add clarifying comment
* Incorporate batching of DAMAGED_BATCH_FOR_ONE_PERMANENT into if-else if tree to match new logic
* Add tests
* make ability inline
* Move DamageBatchTests
* Change batch events to take first event in constructor
* Fix addSimultaneousDamage to avoid adding damage events to existing DamagedBatchForOnePlayerEvent instances when they shouldnt
* Add clarifying comment
* Switch to common class for exiling top cards of your library
* Replace some custom classes with ReturnFromExileForSourceEffect; text-gen additions to that Effect
* Knowledge Vault: add tap cost to 1st ability, fix text on 3rd ability; Petradon: remove unused import
* [MKM] Implement Connecting the Dots
* [PIP] Implement Expert-Level Safe
* Set staticText in constructor
* Use {this} in Expert-Level Safe text
* Use createObjectRealtedWindowTitle for exile names
* Remove unnecessary field