* remove unused scoring system code
* add test for Alms Collector replacement effect
* flatten draw cards into single method in PlayerImpl
* remove outdated MageAction framework
* clarify game event for drawing two or more cards
* clarify methods for getting cards from library
* implement [WHO] River Song
* fix error
* adjust library methods
* add lots of test cases for draw replacement effects
* fix#12616
* track cards drawn this way through multi draw replacement as well
* add test for River Song
* remove redundant comment
Complete rework of Unbound Flourishing, removing the multiplier code for casting X spells.
Adds ActivateAbilityTriggeredAbility, NotManaAbilityPredicate, AbilitySourceAttachedPredicate
CopyStackObjectEffect now uses a MOR.
OrTriggeredAbility now works with target pointer setting abilities.
xenodron mentionned that one of the use of setSourceId is to more easily find the Event that use non-standard
sourceId.
So reverting the change made in a previous commit.
It was a non-functional change meant to ease new
BatchEvent sharing sourceId, but I'll use setSourceId
instead there.
I did check the BEGINNING_PHASE_PRE usage, and found none that wanted to watch the extra beginning phases.
Of note, we may want to have separate 'beginning of turn'/'beginning of game' events, if there is ever a way to skip beginning phases.
* create new abstract class for batch event framework
* adjust CardUtil.getEventTargets to support new framework
* update TappedBatchEvent to new framework
* update UntappedBatchEvent to new framework
* slight cleanup
* update LifeLostBatchEvent to new framework
* update ZoneChangeBatchEvent to new framework
* complete refactor by moving damage events to new framework
* remove old code no longer used
* clean up some nonsense code in star wars card
* fix watcher checking id before event type
* fix wrong id usage
* fix missed wrong id usage
* 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
* refactor: improved target pointer init code and logic, added docs and runtime checks;
* game: fixed miss or wrong init calls in some continuous effects;
* game: fixed wrong usage of target pointers (miss copy code, miss npe checks);
* 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>
* Switch Convoke to using costs tag system
* Add Convoke copy/clone tests
* update author name on sufficiently changed files
* Remove now-unused CONVOKED event
* 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
* [WOE] Implement Sharae of Numbing Depths
* change EventType.TAPPED's playerId to be the source's controller
There seems to have been no usage of the previous playerId, and it can be retrieve from the target anyway.
* apply review -- cleaner and check for creatures.
* adjust clash effect
* Make clash not a singleton
* Add unit test for Clash effect
* fix test (skip init shuffling)
* Fix CLASHED event flag logic and add to unit test
* Additional test and comments
* comments in GameEvent
* param name typo
* remove skip
* initial implementation of the ring mechanic
* some changes
* rework ring-bearer choosing
* [LTR] Implement Call of the Ring
* update ring-bearer condition