AbilityUtils support for Count$CardNumTypes / Count$RememberedCardNumTypes

This commit is contained in:
Northmoc
2021-06-02 15:52:41 -04:00
parent de73ed1986
commit 5ac9d3fdff

View File

@@ -1966,6 +1966,15 @@ public class AbilityUtils {
if (sq[0].contains("CardSumPT")) { if (sq[0].contains("CardSumPT")) {
return doXMath((c.getNetPower() + c.getNetToughness()), expr, c, ctb); return doXMath((c.getNetPower() + c.getNetToughness()), expr, c, ctb);
} }
if (sq[0].contains("CardNumTypes")) {
Card ce;
if (sq[0].contains("Remembered")) {
ce = (Card) c.getFirstRemembered();
} else {
ce = c;
}
return doXMath(getNumberOfTypes(ce), expr, c, ctb);
}
if (sq[0].contains("CardNumColors")) { if (sq[0].contains("CardNumColors")) {
return doXMath(CardUtil.getColors(c).countColors(), expr, c, ctb); return doXMath(CardUtil.getColors(c).countColors(), expr, c, ctb);
@@ -3647,6 +3656,12 @@ public class AbilityUtils {
return someCards; return someCards;
} }
public static int getNumberOfTypes(final Card card) {
EnumSet<CardType.CoreType> types = EnumSet.noneOf(CardType.CoreType.class);
Iterables.addAll(types, card.getType().getCoreTypes());
return types.size();
}
public static int getCardTypesFromList(final CardCollectionView list) { public static int getCardTypesFromList(final CardCollectionView list) {
EnumSet<CardType.CoreType> types = EnumSet.noneOf(CardType.CoreType.class); EnumSet<CardType.CoreType> types = EnumSet.noneOf(CardType.CoreType.class);
for (Card c1 : list) { for (Card c1 : list) {