Added Collector's Info sorting type in the deckbuilder card filter
This commit is contained in:
@@ -337,6 +337,7 @@ var CardFilter = Class.extend({
|
||||
this.sortLabel = $("<label for='sortSelect' class='filterLabel'>Sort by:</label>");
|
||||
this.sortSelect = $("<select id='sortSelect' class='filterInput'>"
|
||||
+ "<option value='name' selected='selected'>Name</option>"
|
||||
+ "<option value='collinfo,set' >Collector's Info</option>"
|
||||
+ "<option value='twilight,name'>Twilight</option>"
|
||||
+ "<option value='siteNumber,name'>Site Number</option>"
|
||||
+ "<option value='strength,name'>Strength</option>"
|
||||
|
||||
@@ -227,6 +227,10 @@ public class SortAndFilterCards {
|
||||
comparators.addComparator(new PacksFirstComparator(new CultureComparator(cardBPCache)));
|
||||
case "name" ->
|
||||
comparators.addComparator(new PacksFirstComparator(new NameComparator(cardBPCache)));
|
||||
case "collinfo" ->
|
||||
comparators.addComparator(new PacksFirstComparator(new CollInfoComparator(cardBPCache, cardLibrary)));
|
||||
case "set" ->
|
||||
comparators.addComparator(new PacksFirstComparator(new SetComparator()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -557,6 +561,39 @@ public class SortAndFilterCards {
|
||||
}
|
||||
}
|
||||
|
||||
private static class CollInfoComparator implements Comparator<CardItem> {
|
||||
private final Map<String, LotroCardBlueprint> _cardBlueprintMap;
|
||||
private final LotroCardBlueprintLibrary _library;
|
||||
|
||||
private CollInfoComparator(Map<String, LotroCardBlueprint> cardBlueprintMap, LotroCardBlueprintLibrary library) {
|
||||
_cardBlueprintMap = cardBlueprintMap;
|
||||
_library = library;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compare(CardItem o1, CardItem o2) {
|
||||
var split1 = _library.getBaseBlueprintId(o1.getBlueprintId()).split("_");
|
||||
var split2 = _library.getBaseBlueprintId(o2.getBlueprintId()).split("_");
|
||||
var set1 = Integer.parseInt(split1[0]);
|
||||
var card1 = Integer.parseInt(split1[1]);
|
||||
var set2 = Integer.parseInt(split2[0]);
|
||||
var card2 = Integer.parseInt(split2[1]);
|
||||
|
||||
if(set1 == set2)
|
||||
return card1 - card2;
|
||||
|
||||
return set1 - set2;
|
||||
}
|
||||
}
|
||||
|
||||
private static class SetComparator implements Comparator<CardItem> {
|
||||
|
||||
@Override
|
||||
public int compare(CardItem o1, CardItem o2) {
|
||||
return Integer.parseInt(o1.getBlueprintId().split("_")[0]) - Integer.parseInt(o2.getBlueprintId().split("_")[0]);
|
||||
}
|
||||
}
|
||||
|
||||
private static class TwilightComparator implements Comparator<CardItem> {
|
||||
private final Map<String, LotroCardBlueprint> _cardBlueprintMap;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user