refactor getStartingPlaneswalkerOptions

This commit is contained in:
Anthony Calosa
2021-04-25 11:49:05 +08:00
parent 9b83c78346
commit d227da0c10
2 changed files with 16 additions and 6 deletions

View File

@@ -628,6 +628,21 @@ public final class CardDb implements ICardDatabase, IDeckGenPool {
})); }));
} }
public Collection<PaperCard> getAllNonPromosNonReprintsNoAlt() {
return Lists.newArrayList(Iterables.filter(getAllCardsNoAlt(), new Predicate<PaperCard>() {
@Override
public boolean apply(final PaperCard paperCard) {
CardEdition edition = null;
try {
edition = editions.getEditionByCodeOrThrow(paperCard.getEdition());
} catch (Exception ex) {
return false;
}
return edition != null && (edition.getType() != Type.PROMOS||edition.getType() != Type.REPRINT);
}
}));
}
public String getName(final String cardName) { public String getName(final String cardName) {
if (alternateName.containsKey(cardName)) { if (alternateName.containsKey(cardName)) {
return alternateName.get(cardName); return alternateName.get(cardName);

View File

@@ -12,7 +12,6 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import forge.card.CardEdition;
import forge.card.CardRarity; import forge.card.CardRarity;
import forge.card.CardRules; import forge.card.CardRules;
import forge.card.CardType; import forge.card.CardType;
@@ -187,13 +186,9 @@ public class ConquestUtil {
public static Iterable<PaperCard> getStartingPlaneswalkerOptions(final PaperCard startingCommander) { public static Iterable<PaperCard> getStartingPlaneswalkerOptions(final PaperCard startingCommander) {
final byte colorIdentity = startingCommander.getRules().getColorIdentity().getColor(); final byte colorIdentity = startingCommander.getRules().getColorIdentity().getColor();
final List<String> selected = Lists.newArrayList(); final List<String> selected = Lists.newArrayList();
return Iterables.filter(FModel.getMagicDb().getCommonCards().getUniqueCards(), new Predicate<PaperCard>() { return Iterables.filter(FModel.getMagicDb().getCommonCards().getAllNonPromosNonReprintsNoAlt(), new Predicate<PaperCard>() {
@Override @Override
public boolean apply(PaperCard card) { public boolean apply(PaperCard card) {
if (FModel.getMagicDb().getEditions().get(card.getEdition()).getType() == CardEdition.Type.PROMOS
|| FModel.getMagicDb().getEditions().get(card.getEdition()).getType() == CardEdition.Type.REPRINT) {
return false; // exclude promos from the starting planeswalker set
}
if (selected.contains(card.getName())) { if (selected.contains(card.getName())) {
return false; return false;
} }