* New common class for "Whenever a source deals damage to {this}, " which resolves#9340
* Merge `PutLibraryIntoGraveTargetEffect` with functionally identical `MillCardsTargetEffect`
* Text fix on `RevealDragonFromHandCost` noticed in #10593
* Text fix following up on #10594
* Fix#9419 bug with EntersBattlefieldThisOrAnotherTriggeredAbility
* Add test for Radagast as well as Risen Reef and Caldaia Guardian
* Minor associated cleanup for EntersBattlefieldAllTriggeredAbility
* New PermanentEnteringBattlefieldManaValue
* [CSP] Fix the RevealTargetFromHandCost not allowing payment when no valid card to reveal
* cleanup text of cost
* fix martyr of bones text
* fix test using a Martyr of Sands
* [LTR] Implement Shelob, Child of Ungoliant
This is almost working.
I could not figure out why, but tokens made with the trigger still have subtypes, even though it has only artifact as its type.
* fix subtype of the token copy not being cleaned.
fixed Myrkul, Lord of Bones that had the same issue.
removed game argument from CreateTokenCopyTargetEffect's PermanentModifier. It was only used by Myrkul, and with no effect.
There is room to refactor some of the cards that allow casting from an exile zone (for instance Gonti, Lord of Luxury, Dead Man's Chest or Thief of Sanity), but that felt complex enough I did not want to risk it.
Each one bring some additional complexity to the effect.
Tested that Dryad Arbor can not be cast from the exiled zone, did not attempt morphed Zoetic Cavern.
* Refactor OnLeaveReturnExiledAbility
to accommodate hand zone as well as battlefield
* Cleanup Brain Maggot and Kitesail Freebooter
* Refactor to include delayed trigger with main effect
* minor cleanup
* merge fix
* further adjustments
* Cleanup Valki, God of Lies
* fix test choices
Did not test the final code for Stone of Erech, when a filter was added to the ReplacementEffect :(
Added an unit test, just to be safer this time around.
* Fixed issue with UntapTargetCost
The target was allowed to actually target, so things like Halo Fountain wouldn't work on creatures with shroud.
UntapTargetCost also keeps track of the permanents which were untapped, in case those are needed.
Changed Benthic Explorers to use new UntapTargetCost
* Fixed potential bug with Benthic Explorers