* 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
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);
tests: fixed wrong permanent structure for battlefield cards (addCard command);
tests: added docs and additional runtime checks;
game: Modal double-faced cards - improved support, no more other side effects on battlefield;
game: Copy abilities - improved stability and cards support;
game: Player under control - improved stability and related cards support (possible NPE errors, additional runtime checks);
server: fixed bloated logs with game timer;
AI: fixed wrong timer in computer games;
* Implementing "case" mechanic
* [MKM] Implement Case of the Burning Masks
* [MKM] Implement Case of the Filched Falcon
* [MKM] Implement Case of the Crimson Pulse
* [MKM] Implement Case of the Locked Hothouse
* Address PR comments
* some minor adjustments
* adjustments to hints
---------
Co-authored-by: Matthew Wilson <matthew_w@vaadin.com>
Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
* add test case for face-down permanent losing abilities
* rework BecomesFaceDownCreatureEffect to layer 1b
* add test for becoming Treasure
* small refactor: Minimus Containment
* add mycosynth lattice test
Introduced TargetCardAndOrCardInGraveyard, derived from the Library one.
Did not achieved everything I wanted in the tests, as the choice seems to be accepted.
Tested it live, no particular issue, you can't select more than one per category.
* Fix Sanctuary Blade ability causing a trigger
* Remove unnecessary logic and correct test
* Re-add strict choose mode
---------
Co-authored-by: Matthew Wilson <matthew_w@vaadin.com>
If the Goldberry and the target permanent had different counts of counters, they would not be filtered out from her first ability's effect. Fix this by using the Keys (counter name strings) rather than the Values (Counters).