Remove duplicate code for X costs (#12551)

* Replace "([a-zA-Z]+).getManaCostsToPay().getX()" with CardUtil.getSourceCostsTag(game, $1, "X", 0)
Fix Disrupting Shoal

* Change final card .getX() calls

* Condense all ManacostVariableValue enum values into "instance"

* Further removal of getX, Display X symbol for non-mana X cards

* Fix test

* Fully remove ManaCosts.getX

* Replace all different X dynamic values with GetXValue

* Remove individual cards checking getAmount for X values (leaving cost reduction that does not use X)

* Add null check for game object inside getSourceCostsTagsMap

* fix build errors

* fix Vicious Betrayal

* text fix
This commit is contained in:
ssk97 2024-07-22 22:57:47 -07:00 committed by GitHub
parent 1cb902fc43
commit e8808c3ae3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
509 changed files with 1322 additions and 1571 deletions

View file

@ -8,10 +8,11 @@ import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.effects.Effect;
import mage.cards.Card;
import mage.game.Game;
import mage.util.CardUtil;
/**
* Calculates the converted mana costs of a card that was exiled from hand as
* cost. If no card was exiled the getManaCostsToPay().getX() will be used as
* cost. If no card was exiled CardUtil.getSourceCostsTag(game, the, "X", 0) will be used as
* value.
*
* @author LevelX2
@ -30,7 +31,7 @@ public enum ExileFromHandCostCardConvertedMana implements DynamicValue {
return xValue;
}
}
return sourceAbility.getManaCostsToPay().getX();
return CardUtil.getSourceCostsTag(game, sourceAbility, "X", 0);
}
@Override