* Implemented chooseTargetAmount and new GUI dialog (distribute damage, distribute mana)
* Added tests and AI support;
* Test framework: added aliases support in TargetAmount dialogs;
Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
* added parameter for player adding counters to players
* added parameter for player adding counters to cards/permanents
* updated methods to use new parameter
* fixed a few initial errors
* refactored instances of cards that add counters by a player other than the controller
* fixed some instances of incorrect arguments
* refactored abilities that trigger off of a particular player adding counters
* a few more cards that were missed
* [KHM] Implemented Vorinclex, Monstrous Raider
* added test for Vorinclex, Monstrous Raider
* fixed a test failure
- Add reference to original library in `FluentBuilder`.
- Change `I<Name>` notation to `<Name>Impl` notation.
- Move error config to test resources
- Add comment with config instruction
- Add config to the documentation
- Remove all enum static managers
- Introduce interfaces for the managers
- Define new application wiring class (`ManagerFactory`)
- Externalise the configuration
Additional fixes for pvs-studio report, see #7021
* Rename BasicSaheekiSublimeArtificerTest.java to BasicSaheeliSublimeArtificerTest.java
* S3Uploader.java: Remove redundant null check
* Effects.java: remove redundant check. When in the else part, the lastRule already is guaranteed to not end on a dot
* TableController.java: change warning message when match == null to avoid nullpointer exception
* Reverted already fixed line from, see #7021
Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
* Added partly valid status for deck legality panel (if all cards are fine but user must add more cards to complete, see #6854);
* Improved legality errors sorting (important errors visible at the top now, e.g. commander's errors);
* AI can't activate or play some things, but you can instruct it to do that;
* insert special command in init.txt to enable it: [@activate opponent ability]
* use cheat button to activate that command;
* you will see all playable abilities for your opponent;
* select any ability to activate (it will be activated by opponent);
* maybe buggy as all other cheat engine commands;