- Added basic AI support for Fell the Mighty.

This commit is contained in:
Sloth
2015-10-21 20:40:12 +00:00
parent 8b3fadaead
commit 9102e9c964
3 changed files with 40 additions and 1 deletions

View File

@@ -83,6 +83,24 @@ public class PumpAi extends PumpAiBase {
if (sa.getParam("AILogic").equals("Never")) { if (sa.getParam("AILogic").equals("Never")) {
return false; 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)) { if (ComputerUtil.preventRunAwayActivations(sa)) {

View File

@@ -59,6 +59,15 @@ public class CardLists {
}); });
} }
public static CardCollection filterPower(final Iterable<Card> in, final int atLeastPower) {
return CardLists.filter(in, new Predicate<Card>() {
@Override
public boolean apply(Card c) {
return c.getNetPower() >= atLeastPower;
}
});
}
public static final Comparator<Card> ToughnessComparator = new Comparator<Card>() { public static final Comparator<Card> ToughnessComparator = new Comparator<Card>() {
@Override @Override
public int compare(final Card a, final Card b) { public int compare(final Card a, final Card b) {
@@ -99,6 +108,18 @@ public class CardLists {
Collections.sort(list, CmcComparatorInv); Collections.sort(list, CmcComparatorInv);
} // sortCMC } // sortCMC
/**
* <p>
* sortAttackLowFirst.
* </p>
*
* @param list
* a {@link forge.CardList} object.
*/
public static void sortByToughnessAsc(final List<Card> list) {
Collections.sort(list, ToughnessComparator);
} // sortAttackLowFirst()
/** /**
* <p> * <p>
* sortAttackLowFirst. * sortAttackLowFirst.

View File

@@ -1,7 +1,7 @@
Name:Fell the Mighty Name:Fell the Mighty
ManaCost:4 W ManaCost:4 W
Types:Sorcery 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:DBDestroy:DB$ DestroyAll | ValidCards$ Creature.powerGTX | References$ X
SVar:X:ParentTargeted$CardPower SVar:X:ParentTargeted$CardPower
SVar:RemAIDeck:True SVar:RemAIDeck:True