* 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;
Adds target and/or target adjuster to cards whose abilities have the word "target", cards S-Z.
Add `spellCast` value to `CastSpellPaidBySourceTriggeredAbility`.
Adds target and/or target adjuster to cards whose abilities have the word "target", cards H-R.
fix EffectKeyValue text, NestOfScarabs
Add X value to effects for CycleTriggeredAbility, use with ValorsFlagship and SharkTyphoon, add test
- refactor: removed outdated/unused code from AI, battlefield score, targeting, etc;
- ai: removed all targeting and filters related logic from ComputerPlayer;
- ai: improved targeting with shared and simple logic due effect's outcome and possible targets priority;
- ai: improved get amount selection (now AI will not choose big and useless values);
- ai: improved spell selection on free cast (now AI will try to cast spells with valid targets only);
- tests: improved result table with first bad dialog info for fast access (part of #13638);
Adds target and/or target adjuster to cards whose abilities have the word "target", cards A-G.
Creates SourceDealsNoncombatDamageToOpponentTriggeredAbility and DefineByTriggerTargetAdjuster