mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
ComputerUtilCard: add evaluateCreatureListByName
This commit is contained in:
@@ -3,7 +3,6 @@ package forge.ai;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
@@ -16,6 +15,7 @@ import org.apache.commons.lang3.tuple.Pair;
|
|||||||
import com.google.common.base.Predicate;
|
import com.google.common.base.Predicate;
|
||||||
import com.google.common.base.Predicates;
|
import com.google.common.base.Predicates;
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
|
||||||
import forge.card.CardType;
|
import forge.card.CardType;
|
||||||
import forge.card.ColorSet;
|
import forge.card.ColorSet;
|
||||||
@@ -406,6 +406,21 @@ public class ComputerUtilCard {
|
|||||||
return Aggregates.sum(list, creatureEvaluator);
|
return Aggregates.sum(list, creatureEvaluator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Map<String, Integer> evaluateCreatureListByName(final CardCollectionView list) {
|
||||||
|
// Compute value for each possible target
|
||||||
|
Map<String, Integer> values = Maps.newHashMap();
|
||||||
|
for (Card c : list) {
|
||||||
|
String name = c.getName();
|
||||||
|
int val = evaluateCreature(c);
|
||||||
|
if (values.containsKey(name)) {
|
||||||
|
values.put(name, values.get(name) + val);
|
||||||
|
} else {
|
||||||
|
values.put(name, val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return values;
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean doesCreatureAttackAI(final Player ai, final Card card) {
|
public static boolean doesCreatureAttackAI(final Player ai, final Card card) {
|
||||||
AiAttackController aiAtk = new AiAttackController(ai);
|
AiAttackController aiAtk = new AiAttackController(ai);
|
||||||
Combat combat = new Combat(ai);
|
Combat combat = new Combat(ai);
|
||||||
@@ -547,7 +562,7 @@ public class ComputerUtilCard {
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
final Map<String, Integer> map = new HashMap<String, Integer>();
|
final Map<String, Integer> map = Maps.newHashMap();
|
||||||
|
|
||||||
for (final Card c : list) {
|
for (final Card c : list) {
|
||||||
final String name = c.getName();
|
final String name = c.getName();
|
||||||
@@ -591,7 +606,7 @@ public class ComputerUtilCard {
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
final Map<String, Integer> map = new HashMap<String, Integer>();
|
final Map<String, Integer> map = Maps.newHashMap();
|
||||||
|
|
||||||
for (final Card c : list) {
|
for (final Card c : list) {
|
||||||
for (final String var : c.getType()) {
|
for (final String var : c.getType()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user