From b138ec3e1dba93f407598379c28a404ef942958d Mon Sep 17 00:00:00 2001 From: Myrd Date: Thu, 12 Feb 2015 05:11:55 +0000 Subject: [PATCH] Make CreatureEvaluator implement Function, so that a separate class isn't needed for that. --- .../src/main/java/forge/ai/ComputerUtilCard.java | 13 +++---------- .../src/main/java/forge/ai/CreatureEvaluator.java | 9 ++++++++- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtilCard.java b/forge-ai/src/main/java/forge/ai/ComputerUtilCard.java index 1c9f04f3d6b..d7955869f04 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtilCard.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtilCard.java @@ -1,6 +1,5 @@ package forge.ai; -import com.google.common.base.Function; import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.Iterables; @@ -235,7 +234,7 @@ public class ComputerUtilCard { * @return the card */ public static Card getBestCreatureAI(final Iterable list) { - return Aggregates.itemWithMax(Iterables.filter(list, CardPredicates.Presets.CREATURES), ComputerUtilCard.fnEvaluateCreature); + return Aggregates.itemWithMax(Iterables.filter(list, CardPredicates.Presets.CREATURES), ComputerUtilCard.creatureEvaluator); } /** @@ -248,7 +247,7 @@ public class ComputerUtilCard { * @return a {@link forge.game.card.Card} object. */ public static Card getWorstCreatureAI(final Iterable list) { - return Aggregates.itemWithMin(Iterables.filter(list, CardPredicates.Presets.CREATURES), ComputerUtilCard.fnEvaluateCreature); + return Aggregates.itemWithMin(Iterables.filter(list, CardPredicates.Presets.CREATURES), ComputerUtilCard.creatureEvaluator); } // This selection rates tokens higher @@ -352,12 +351,6 @@ public class ComputerUtilCard { return getCheapestPermanentAI(list, null, false); } - public static final Function fnEvaluateCreature = new Function() { - @Override - public Integer apply(Card a) { - return ComputerUtilCard.evaluateCreature(a); - } - }; public static final Comparator EvaluateCreatureComparator = new Comparator() { @Override public int compare(final Card a, final Card b) { @@ -389,7 +382,7 @@ public class ComputerUtilCard { } public static int evaluateCreatureList(final CardCollectionView list) { - return Aggregates.sum(list, fnEvaluateCreature); + return Aggregates.sum(list, creatureEvaluator); } public static boolean doesCreatureAttackAI(final Player ai, final Card card) { diff --git a/forge-ai/src/main/java/forge/ai/CreatureEvaluator.java b/forge-ai/src/main/java/forge/ai/CreatureEvaluator.java index 09fafc96ab6..ac25d7313c7 100644 --- a/forge-ai/src/main/java/forge/ai/CreatureEvaluator.java +++ b/forge-ai/src/main/java/forge/ai/CreatureEvaluator.java @@ -1,9 +1,11 @@ package forge.ai; +import com.google.common.base.Function; + import forge.game.card.Card; import forge.game.spellability.SpellAbility; -public class CreatureEvaluator { +public class CreatureEvaluator implements Function { protected int getEffectivePower(final Card c) { return c.getNetCombatDamage(); } @@ -11,6 +13,11 @@ public class CreatureEvaluator { return c.getNetToughness(); } + @Override + public Integer apply(Card c) { + return evaluateCreature(c); + } + public int evaluateCreature(final Card c) { int value = 80; if (!c.isToken()) {