* 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