mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
- Cleaned up the code I added recently to return a list of cards sharing the highest cmc. Thanks for the assistence Max!
This commit is contained in:
@@ -263,36 +263,21 @@ public class CardLists {
|
||||
/**
|
||||
* Given a List<Card> cardList, return a List<Card> 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<Card> getCardsWithHighestCMC(Iterable<Card> cardList) {
|
||||
final List<Card> tiedForHighest = new ArrayList<Card>();
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user