* Fix Angel of Jubilation and Yasharn, Implacable Earth
* canPaySacrificeCost filter was not checking if the source ability was a spell or activated ability
* Create common CantPayLifeOrSacrificeEffect
* add some docs for CantPayLifeOrSacrificeEffect
* change player pay life restrictions and remove player sacrifice cost filter
* pay life cost restriction is now an enum set so multiple effects apply together
* sacrifice cost filter was removed and replaced with PAY_SACRIFICE_COST event
* convert CantPayLifeEffect to CantPayLifeOrSacrificeAbility
* Changed to combine life restriction and sacrifice cost restriction
* update bargain ability cost adjustors using canPay
* fix Thran Portal
* Effect was incorrectly adjusting the cost of mana abilities on itself.
* Fixed ability adding type to itself during ETB
* Add additional tests
* update PayLifeCostRestrictions to be mutually exclusive
Fixes the trigger firing for all attacking creatures, not just equipped
ones.
Restores the equipped predicate removed in commit db193bd4 (#13707) and
adds tests to prevent future regressions.
- refactor: simplified target implementation from a dozen canTarget, canChoose and possibleTargets methods to canTarget/possibleTargets only (part of #13638, #13766);
- refactor: fixed wrong target implementations in many cards (example: TargetCardInHand for opponent's hand, close#6210);
- AI: now human, AI and test players -- all use possibleTargets logic in most use cases instead filters or custom validation;
- AI: improved AI sims support for multiple targets abilities;
- AI: improved AI stability, freezes and targets errors in some use cases;
- now game logs will show stack ability on push and on resolve (before any choices);
- now game logs will show used choices made by cast/activate, setChoice, setMode and addTarget commands (not work for AI tests, part of #13832);
- improved choice logic for modes and yes/not dialogs (now it's use a more strictly checks, use TestPlayer.MODE_SKIP to stop mode selection);
- improved error logs and testable dialogs menu in cheat mode;
* add foretell tests
* rework foretell events and watcher
* refactor: not static inner classes
* refactor: move becomes foretold code from Ethereal Valkyrie to ForetellAbility
* add watcher for edge cases
* fix Ethereal Valkyrie to not leak face down card name in log
* fix some access modifiers
* refactor: make copy-pasted code common
* add initial warp mechanic implementation
* a few small changes
* add hand restriction
* add void support
* add test
* [EOE] Implement Timeline Culler
* add void test
* [EOE] Implement Close Encounter
* [EOE] Implement Tannuk, Steadfast Second
* a few requested changes
* add comment
* [EOE] Implement Full Bore
* small rewrite
* merge fix
* remove reminder text
* small code rewrite
- dev: added data collectors API to collect and process game data in real time;
- tests: added game logs output in all unit tests (enabled by default);
- tests: added games history storage (decks, game logs, chats - disabled by default);
- refactor: migrated AI's target amount code to shared selection logic;
- ai: fixed game freezes on some use cases;
- tests: added AI's testable dialogs for target amount;
- tests: improved load tests result table, added game cycles stats;
- Dwarven Catapult - fixed game error on usage;