foul-magics/Mage/src/main/java/mage/util
Oleg Agafonov bae3089abb Reworked cost adjuster logic for better support of X and cost modification effects:
Improves:
* refactor: split CostAdjuster logic in multiple parts - prepare X, prepare cost, increase cost, reduce cost;
* refactor: improved VariableManaCost to support min/max values, playable and AI calculations, test framework;
* refactor: improved EarlyTargetCost to support mana costs too (related to #13023);
* refactor: migrated some cards with CostAdjuster and X to EarlyTargetCost (Knollspine Invocation, etc - related to #13023);
* refactor: added shared code for "As an additional cost to cast this spell, discard X creature cards";
* refactor: added shared code for "X is the converted mana cost of the exiled card";
* tests: added dozens tests with cost adjusters;

Bug fixes:
* game: fixed that some cards with CostAdjuster ignore min/max limits for X (allow to choose any X, example: Scorched Earth, Open The Way);
* game: fixed that some cards ask to announce already defined X values (example: Bargaining Table);
* game: fixed that some cards with CostAdjuster do not support combo with other cost modification effects;
* game, gui: fixed missing game logs about predefined X values;
* game, gui: fixed wrong X icon for predefined X values;

Test framework:
* test framework: added X min/max check for wrong values;
* test framework: added X min/max info in miss X value announce;
* test framework: added check to find duplicated effect bugs (see assertNoDuplicatedEffects);

Cards:
* Open The Way - fixed that it allow to choose any X without limits (close #12810);
* Unbound Flourishing - improved combo support for activated abilities with predefined X mana costs like Bargaining Table;
2025-04-08 22:39:10 +04:00
..
functions Create copy effects - fixed that it can't copy second side of the modal double-faced card (close #11307, close #13269); 2025-01-29 00:51:34 +04:00
validation [WHO] Implement The Thirteenth Doctor 2023-08-05 13:44:40 -04:00
CardUtil.java Reworked cost adjuster logic for better support of X and cost modification effects: 2025-04-08 22:39:10 +04:00
CircularList.java multiple player/opponent choose - fixed that game ask players in random order instead APNAP (closes #12532); 2024-07-01 13:22:58 +04:00
ClassScanner.java
Copier.java Performance: fixed server's big memory usage in long games and in big stack sizes (related to #11285, fixes #9302) 2023-10-14 15:54:10 +04:00
CopierObjectInputStream.java
Copyable.java
DateFormat.java
DebugUtil.java AI: improved performance and fixed crashes on use cases with too much target options like "deals 5 damage divided as you choose" (related to #11285): 2025-02-06 17:40:22 +04:00
DeckBuildUtils.java tests: added tests for auto-lands suggestion in deck editor and tourney (related to #13127) 2024-12-16 21:50:27 +04:00
DeckUtil.java server: fixed wrong cheater detection in some tourney sideboardings (closes #11877) 2024-06-11 00:30:00 +04:00
FastByteArrayInputStream.java
FastByteArrayOutputStream.java
GameLog.java Turn under control reworked: 2025-01-07 12:38:01 +04:00
JarVersion.java
JsonUtil.java
ManaUtil.java [TDM] Implement omen mechanic (#13501) 2025-04-08 08:54:18 -04:00
MessageToClient.java
MultiAmountMessage.java GUI: introduced default card hints: 2024-07-27 09:40:41 +04:00
RandomUtil.java
StreamUtils.java
SubTypes.java implement [M3C] Planar Nexus [MH3] Omo, Queen of Vesuva and [UNF] Nearby Planet ; introduce AllNonbasicLandTypes status (#12203) 2024-06-07 18:36:41 +02:00
TargetAddress.java
ThreadLocalStringBuilder.java
ThreadUtils.java download: improved images download from scryfall source: 2024-08-01 11:46:37 +04:00
TournamentUtil.java tests: added tests for auto-lands suggestion in deck editor and tourney (related to #13127) 2024-12-16 21:50:27 +04:00
TreeNode.java
XmageThreadFactory.java download: reworked connection: 2024-07-31 21:25:56 +04:00