mage/Mage.Server.Plugins
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
..
Mage.Deck.Constructed update ban lists 2025-03-31 16:16:40 -04:00
Mage.Deck.Limited version bump 2025-02-01 20:16:27 +04:00
Mage.Game.BrawlDuel version bump 2025-02-01 20:16:27 +04:00
Mage.Game.BrawlFreeForAll version bump 2025-02-01 20:16:27 +04:00
Mage.Game.CanadianHighlanderDuel version bump 2025-02-01 20:16:27 +04:00
Mage.Game.CommanderDuel version bump 2025-02-01 20:16:27 +04:00
Mage.Game.CommanderFreeForAll version bump 2025-02-01 20:16:27 +04:00
Mage.Game.CustomPillarOfTheParunsDuel version bump 2025-02-01 20:16:27 +04:00
Mage.Game.FreeForAll version bump 2025-02-01 20:16:27 +04:00
Mage.Game.FreeformCommanderDuel version bump 2025-02-01 20:16:27 +04:00
Mage.Game.FreeformCommanderFreeForAll version bump 2025-02-01 20:16:27 +04:00
Mage.Game.FreeformUnlimitedCommander version bump 2025-02-01 20:16:27 +04:00
Mage.Game.MomirDuel version bump 2025-02-01 20:16:27 +04:00
Mage.Game.MomirGame version bump 2025-02-01 20:16:27 +04:00
Mage.Game.OathbreakerDuel version bump 2025-02-01 20:16:27 +04:00
Mage.Game.OathbreakerFreeForAll version bump 2025-02-01 20:16:27 +04:00
Mage.Game.PennyDreadfulCommanderFreeForAll version bump 2025-02-01 20:16:27 +04:00
Mage.Game.TinyLeadersDuel version bump 2025-02-01 20:16:27 +04:00
Mage.Game.TwoPlayerDuel version bump 2025-02-01 20:16:27 +04:00
Mage.Player.AI Reworked cost adjuster logic for better support of X and cost modification effects: 2025-04-08 22:39:10 +04:00
Mage.Player.AI.DraftBot version bump 2025-02-01 20:16:27 +04:00
Mage.Player.AI.MA FDN New Combat Rules (#13279) 2025-03-30 14:42:05 -07:00
Mage.Player.AIMCTS FDN New Combat Rules (#13279) 2025-03-30 14:42:05 -07:00
Mage.Player.Human Reworked cost adjuster logic for better support of X and cost modification effects: 2025-04-08 22:39:10 +04:00
Mage.Tournament.BoosterDraft version bump 2025-02-01 20:16:27 +04:00
Mage.Tournament.Constructed version bump 2025-02-01 20:16:27 +04:00
Mage.Tournament.Sealed version bump 2025-02-01 20:16:27 +04:00
pom.xml version bump 2025-02-01 20:16:27 +04:00