From de73ed198637ae8461d0c124685e59c74420a4de Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 2 Jun 2021 15:51:13 -0400 Subject: [PATCH 1/2] mount_velus_manticore.txt --- .../cardsfolder/upcoming/mount_velus_manticore.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/mount_velus_manticore.txt diff --git a/forge-gui/res/cardsfolder/upcoming/mount_velus_manticore.txt b/forge-gui/res/cardsfolder/upcoming/mount_velus_manticore.txt new file mode 100644 index 00000000000..e1201774f06 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/mount_velus_manticore.txt @@ -0,0 +1,12 @@ +Name:Mount Velus Manticore +ManaCost:2 R R +Types:Enchantment Creature Manticore +PT:3/4 +T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | Execute$ TrigDiscard | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ At the beginning of combat on your turn, you may discard a card. When you do, CARDNAME deals X damage to any target, where X is the number of card types the discarded card has. +SVar:TrigDiscard:DB$ Discard | Defined$ You | NumCards$ 1 | Mode$ TgtChoose | RememberDiscarded$ True | SubAbility$ DBImmediateTrigger +SVar:DBImmediateTrigger:DB$ ImmediateTrigger | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ GE1 | Execute$ TrigDamage | RememberObjects$ RememberedCard | SubAbility$ DBCleanup | TriggerDescription$ When you do, CARDNAME deals X damage to any target, where X is the number of card types the discarded card has. +SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ X +SVar:X:Count$RememberedCardNumTypes +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +AI:RemoveDeck:Random +Oracle:At the beginning of combat on your turn, you may discard a card. When you do, Mount Velus Manticore deals X damage to any target, where X is the number of card types the discarded card has. From 5ac9d3fdffb7eea666bf488f17752ca87ea8e56d Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 2 Jun 2021 15:52:41 -0400 Subject: [PATCH 2/2] 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) {