* simplify BeginningOfEndStepTriggeredAbility
* more simplifications
* move to common class
* find and replace to common class
* simplify again
* align parameter order
* package reorg
* simplify BeginningOfCombatTriggeredAbility constructors
* simplify BeginningOfFirstMainTriggeredAbility constructors
* text fixes
* update docs
* replace applyEffects() with processAction() for card usages
* update Goblin Welder and test
* add test for Historian's Wisdom
* enable other related tests
* only reset short living LKI for process action, not all apply effects
* update docs
* remove applyEffects from condition in Historian's Wisdom
* add another test case
* Added method to set triggered abilities to optional
* TokenCopy effect now copies permanentModifier
* Implemented Shaun, Father of Synths
* remove TODO
* Made `setOptional` chainable
* 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>
* minor refactor EntersBattlefieldEffect
* more minor refactoring
* text fix
* fix more text
* more text adjustments
* more text discrepancy fixes
* continue the text fixes
* followup fixes and more fixes
* comment out rule override to use generated text instead
* new ETB Opponent trigger class
* text improvements
* update ETB cast trigger
* remove controlledtext parameter
* more text improvements
* more fixes
* lots of other fixes
* most of the remaining fixes
* fix halana text
* fix smoke shroud text
* improve text gen
* remove rule param from constructors
* minor adjustments
* whenever a player puts
* final fixes
* standardize when/whenever phrase generation
* move "or battle" to its own class
* move "or planeswalker" to its own class
* remove strange way of setting custom text
* finally remove getTriggerPhrase
* copy constructor visibility
* fix Vraska
* Fix text: duplicate ("you control") in Champion ability
* New static filter "artifacts and enchantments"
* Text fixes [CHK] [BOK] [SOK]
* Fix Genju text without breaking the effect this time
* Add string rule logic to TriggeredAbilityImpl
* Fix string logic in TriggeredAbilityImpl
* Revert adjustment that fixes some problems but causes others
* replaced blocking/blocked by predicates
* added test for knight of dusk (currently fails)
* added source parameter to filters and everything else that needs it
* some changes to various predicates
* test fix
* small changes to filter code
* merge fix
* fixed a test failure
* small change to Karn, Scion of Urza
* removed sourceId from filter methods and other similar places
* added new getobject method to fix some test failures
* a few more fixes
* fixed merge conflicts
* merge fix