From 5ac9d3fdffb7eea666bf488f17752ca87ea8e56d Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 2 Jun 2021 15:52:41 -0400 Subject: [PATCH] AbilityUtils support for Count$CardNumTypes / Count$RememberedCardNumTypes --- .../java/forge/game/ability/AbilityUtils.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java index b1b7d415f21..36df10af917 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -1966,6 +1966,15 @@ public class AbilityUtils { if (sq[0].contains("CardSumPT")) { 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")) { return doXMath(CardUtil.getColors(c).countColors(), expr, c, ctb); @@ -3647,6 +3656,12 @@ public class AbilityUtils { return someCards; } + public static int getNumberOfTypes(final Card card) { + EnumSet types = EnumSet.noneOf(CardType.CoreType.class); + Iterables.addAll(types, card.getType().getCoreTypes()); + return types.size(); + } + public static int getCardTypesFromList(final CardCollectionView list) { EnumSet types = EnumSet.noneOf(CardType.CoreType.class); for (Card c1 : list) {