diff --git a/forge-ai/src/main/java/forge/ai/ability/PumpAi.java b/forge-ai/src/main/java/forge/ai/ability/PumpAi.java index 94011c7d42b..209885ee6a5 100644 --- a/forge-ai/src/main/java/forge/ai/ability/PumpAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/PumpAi.java @@ -83,6 +83,24 @@ public class PumpAi extends PumpAiBase { if (sa.getParam("AILogic").equals("Never")) { return false; } + if (sa.getParam("AILogic").equals("FellTheMighty")) { + CardCollection aiList = ai.getCreaturesInPlay(); + if (aiList.isEmpty()) { + return false; + } + CardLists.sortByPowerAsc(aiList); + Card lowest = aiList.get(0); + if (!sa.canTarget(lowest)) { + return false; + } + CardCollection oppList = ai.getOpponent().getCreaturesInPlay(); + oppList = CardLists.filterPower(oppList, lowest.getNetPower()+1); + if (ComputerUtilCard.evaluateCreatureList(oppList) > 200) { + sa.resetTargets(); + sa.getTargets().add(lowest); + return true; + } + } } if (ComputerUtil.preventRunAwayActivations(sa)) { diff --git a/forge-game/src/main/java/forge/game/card/CardLists.java b/forge-game/src/main/java/forge/game/card/CardLists.java index 3cb07a0a6b5..ceb42afbd80 100644 --- a/forge-game/src/main/java/forge/game/card/CardLists.java +++ b/forge-game/src/main/java/forge/game/card/CardLists.java @@ -59,6 +59,15 @@ public class CardLists { }); } + public static CardCollection filterPower(final Iterable in, final int atLeastPower) { + return CardLists.filter(in, new Predicate() { + @Override + public boolean apply(Card c) { + return c.getNetPower() >= atLeastPower; + } + }); + } + public static final Comparator ToughnessComparator = new Comparator() { @Override public int compare(final Card a, final Card b) { @@ -99,6 +108,18 @@ public class CardLists { Collections.sort(list, CmcComparatorInv); } // sortCMC + /** + *

+ * sortAttackLowFirst. + *

+ * + * @param list + * a {@link forge.CardList} object. + */ + public static void sortByToughnessAsc(final List list) { + Collections.sort(list, ToughnessComparator); + } // sortAttackLowFirst() + /** *

* sortAttackLowFirst. diff --git a/forge-gui/res/cardsfolder/f/fell_the_mighty.txt b/forge-gui/res/cardsfolder/f/fell_the_mighty.txt index e62df184b03..c2884e62681 100644 --- a/forge-gui/res/cardsfolder/f/fell_the_mighty.txt +++ b/forge-gui/res/cardsfolder/f/fell_the_mighty.txt @@ -1,7 +1,7 @@ Name:Fell the Mighty ManaCost:4 W Types:Sorcery -A:SP$ Pump | Cost$ 4 W | ValidTgts$ Creature | StackDescription$ None | SubAbility$ DBDestroy | SpellDescription$ Destroy all creatures with power greater than target creature's power. +A:SP$ Pump | Cost$ 4 W | ValidTgts$ Creature | StackDescription$ None | SubAbility$ DBDestroy | AILogic$ FellTheMighty | SpellDescription$ Destroy all creatures with power greater than target creature's power. SVar:DBDestroy:DB$ DestroyAll | ValidCards$ Creature.powerGTX | References$ X SVar:X:ParentTargeted$CardPower SVar:RemAIDeck:True