- fixed broken cards with once per turn choose (example: Galadriel, Light of Valinor, closes#11362);
- fixed cheat to skip required mode by cancel button (example: Black Market Connections, closes#11149, closes#10611);
- fixed empty modes list if nothing available to choose;
- improved compatibility with max modes and other modification effects;
- fixed that non-valid modes can be selected in some use cases;
* Lynde trigger references objects
* Changed triggered ability auto-order to care about targets
* Copy card test
* When a copy effect comes in as a copy of an aura,
it checks if it's already attached before asking player to attach
* add comments and null check per review
---------
Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
* fixed code coverage data lost on failed tests;
* fixed code coverage report duplication and improved performance;
* fixed that sonar analyser can't see code coverage for some modules;
* added new aggregation module: Mage.Reports (used for code coverage report generation);
* reorganized pom and added additional instructions for jacoco and sonar usage;
* [LCI] Implement Spring-Loaded Sawblades / Bladewheel Chariot
* [LCI] Implement Sunbird Standard / Sunbird Effigy
* card filter needs to have an owner predicate
* [LCI] Implement Throne of the Grim Captain / The Grim Captain
* make default constructor for craft with artifact
* dedupe some code
* refactor constructors for simplicity
* add currently failing test
* Adds two tests on interactions between card-changing effects and Transform. One works, the other currently fails.
* add check that moonmist flip worked
Update `StackAbility::createSingleCopy` to properly set controller
Includes test coverage
---------
Co-authored-by: Rowan Gudmundsson <rowan.gudmundsson@oddball.io>
Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
* [MAT] Fix Feast of the Victorious Dead
* Fix Awaken the Maelstrom allowing no distribution in a case the player should distribute
* fix more cards distributing counters without targetting
Prototype is a SpellAbilityType, for which alternate costs are permitted. It has a continuous effect that applies on the battlefield as well as a method to modify the spell on the stack. Permanents have an isPrototyped flag that copy effects can check explicitly (same brittle method as transformed permanents use; reworking copy effects to streamline them is a separate scope).
Many test cases have been added to confirm functionality (thanks to Zerris for additional test suggestions).
---------
Co-authored-by: Susucre <34709007+Susucre@users.noreply.github.com>
Co-authored-by: Evan Kranzler <theelk801@gmail.com>
Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
* simplify LoyaltyAbility constructors
* remove unused constructors in ActivatedAbilityImpl
* cleanup
* remove null rule setting
* another unused constructor
* fix escape ability reminder text
* escape text adjustment
* simplify Trigons, remove Costs constructor
* rework Villainous Ogre, remove another class and constructor
* fix test using wrong text for trigon ability
* Development Liberated Livestock
* Liberated Livestock version 1 - choose from hand or graveyard
* Liberated Livestock ready to merge into main
* Worked out some kinks and added author text
* Implemented changes suggested by xenohedron
* Removed game.pause / unpause
* adjust and cleanup
related to #11213, eliminate manual zone choice
align tests to new functionality
---------
Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
* adjust ExileThenReturnTargetEffect
* initial rework ExileReturnBattlefieldNextEndStepTargetEffect
(test coverage provided by CloudshiftTest)
* refactor some more cards
* refactor more straightforward cards
* add params and more refactoring
* text fixes
* maintain order in set
* fix Lae'zel's Acrobatics and add test
* 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