* enters the battlefield, -> enters,
* {this} enters the battlefield -> {this} enters
* EntersBattlefieldAbility
* , it enters
* enters the battlefield under your control -> you control enters
* rework some trigger phrase logic
* fix tests
* Apply fix for ZONE_CHANGE_GROUP events making tokens controlled by different players
* Add test
* Remove unused import
* Fix implementation
* Rewrite to use ZONE_CHANGE_BATCH
* Fix OPPONENT case
* Add default case
* refactor to avoid using stream as local variable and use ZoneChangeEvents in filters
* Fix typo
* Implement Eluge, the Shoreless Sea (missing mana cost reduction clause)
* implement ability to convert colored to generic costs in SpellsCostReductionControllerEffect
* fix text generation on SpellsCostReductionControllerEffect
* remove unnecessary setText() calls on SpellsCostReductionControllerEffect
* make logfile from master run
* Fix plurality detection
* Eliminate unnecessary setText() calls in other cards
* Delete logfile
* remove redundant type cast
* Add parameter documentation
* refactor: added helper emblems instead rad counter's inherent emblems (use initGameDefaultHelperEmblems to define new card hints or other fake objects);
* refactor: added card hints support for emblems, planes and other command objects;
* GUI: added storm counter as default card hint (use hints tool to see it, closes#12360);
* Replace "([a-zA-Z]+).getManaCostsToPay().getX()" with CardUtil.getSourceCostsTag(game, $1, "X", 0)
Fix Disrupting Shoal
* Change final card .getX() calls
* Condense all ManacostVariableValue enum values into "instance"
* Further removal of getX, Display X symbol for non-mana X cards
* Fix test
* Fully remove ManaCosts.getX
* Replace all different X dynamic values with GetXValue
* Remove individual cards checking getAmount for X values (leaving cost reduction that does not use X)
* Add null check for game object inside getSourceCostsTagsMap
* fix build errors
* fix Vicious Betrayal
* text fix
* create threshold condition, refactor cards to use it
* fix threshold condition
* a couple more text fixes
---------
Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
* Implement Time Reaper, start rework
* Create DamagedPlayerControlsTargetAdjuster, convert Aberrant to use it
* Always add targets for EachOpponentPermanentTargetsAdjuster
* Improve target name, finish Time Reaper
* Convert some cards
* Improve documentation, more cards
* More cards, fix cards that needed to use owner instead of controller
* Fix unfinished AlelaCunningConqueror changes
* more cards
* All remaining cards
* Fix target type
* Remove outdated attempt at TargetController.SOURCE_EFFECT_TARGET_POINTER
* Finish removal of SOURCE_EFFECT_TARGET_POINTER
* Change targetAdjuster blueprint target to be set inside setTargetAdjuster, add error checking
* Always add Target Adjuster after Target
* Add comment
* Fix TolarianContemptTest to skip opponent with no valid targets
* Forgot to git add the new abstract GenericTargetAdjuster
* Test now possible after merge, fix missed ChangeOfPlans adjuster order
* Text and optional-ness fixes
* Always set target pointer