From 9333d4fe4f6db298c705f5809762980c3637cee9 Mon Sep 17 00:00:00 2001 From: moomarc Date: Tue, 19 Mar 2013 14:18:47 +0000 Subject: [PATCH] - Cleaned up the code I added recently to return a list of cards sharing the highest cmc. Thanks for the assistence Max! --- src/main/java/forge/CardLists.java | 35 +++++++++--------------------- 1 file changed, 10 insertions(+), 25 deletions(-) diff --git a/src/main/java/forge/CardLists.java b/src/main/java/forge/CardLists.java index ee63fb297cd..fe8e16c4cff 100644 --- a/src/main/java/forge/CardLists.java +++ b/src/main/java/forge/CardLists.java @@ -263,36 +263,21 @@ public class CardLists { /** * Given a List cardList, return a List that are tied for having the highest CMC. * - * @param cardList the Card List to be filtered. - * @return CardList the list of Cards sharing the highest CMC. + * @param cardList the Card List to be filtered. + * @return the list of Cards sharing the highest CMC. */ public static List getCardsWithHighestCMC(Iterable cardList) { final List tiedForHighest = new ArrayList(); int highest = 0; for (final Card crd : cardList) { - if (crd.isSplitCard()) { - if (crd.getCMC(Card.SplitCMCMode.LeftSplitCMC) > highest) { - highest = crd.getCMC(Card.SplitCMCMode.LeftSplitCMC); - tiedForHighest.clear(); - tiedForHighest.add(crd); - } else if (crd.getCMC(Card.SplitCMCMode.LeftSplitCMC) == highest && !tiedForHighest.contains(crd)) { - tiedForHighest.add(crd); - } - if (crd.getCMC(Card.SplitCMCMode.RightSplitCMC) > highest) { - highest = crd.getCMC(Card.SplitCMCMode.RightSplitCMC); - tiedForHighest.clear(); - tiedForHighest.add(crd); - } else if (crd.getCMC(Card.SplitCMCMode.RightSplitCMC) == highest && !tiedForHighest.contains(crd)) { - tiedForHighest.add(crd); - } - } else { - if (crd.getCMC() > highest) { - highest = crd.getCMC(); - tiedForHighest.clear(); - tiedForHighest.add(crd); - } else if (crd.getCMC() == highest && !tiedForHighest.contains(crd)) { - tiedForHighest.add(crd); - } + int curCmc = crd.isSplitCard() ? Math.max(crd.getCMC(Card.SplitCMCMode.LeftSplitCMC), crd.getCMC(Card.SplitCMCMode.RightSplitCMC)) : crd.getCMC(); + + if (curCmc > highest) { + highest = curCmc; + tiedForHighest.clear(); + } + if (curCmc >= highest) { + tiedForHighest.add(crd); } } return tiedForHighest;