* 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
Face down changes:
* GUI: added visible face down type and real card name for controller/owner (opponent can see it after game ends);
* GUI: added day/night button to view real card for controller/owner (opponent can see it after game ends);
* game: fixed that faced-down card can render symbols, abilities and other hidden data from a real card;
* images: added image support for normal faced-down cards;
* images: added image support for morph and megamorph faced-down cards;
* images: added image support for foretell faced-down cards;
Other changes:
* images: fixed missing tokens from DDD set;
* images: no more client restart to apply newly downloaded images or render settings;
* images: improved backface image quality (use main menu -> symbols to download it);