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.sortLabel = $("<label for='sortSelect' class='filterLabel'>Sort by:</label>");
|
||||||
this.sortSelect = $("<select id='sortSelect' class='filterInput'>"
|
this.sortSelect = $("<select id='sortSelect' class='filterInput'>"
|
||||||
+ "<option value='name' selected='selected'>Name</option>"
|
+ "<option value='name' selected='selected'>Name</option>"
|
||||||
|
+ "<option value='collinfo,set' >Collector's Info</option>"
|
||||||
+ "<option value='twilight,name'>Twilight</option>"
|
+ "<option value='twilight,name'>Twilight</option>"
|
||||||
+ "<option value='siteNumber,name'>Site Number</option>"
|
+ "<option value='siteNumber,name'>Site Number</option>"
|
||||||
+ "<option value='strength,name'>Strength</option>"
|
+ "<option value='strength,name'>Strength</option>"
|
||||||
|
|||||||
@@ -227,6 +227,10 @@ public class SortAndFilterCards {
|
|||||||
comparators.addComparator(new PacksFirstComparator(new CultureComparator(cardBPCache)));
|
comparators.addComparator(new PacksFirstComparator(new CultureComparator(cardBPCache)));
|
||||||
case "name" ->
|
case "name" ->
|
||||||
comparators.addComparator(new PacksFirstComparator(new NameComparator(cardBPCache)));
|
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 static class TwilightComparator implements Comparator<CardItem> {
|
||||||
private final Map<String, LotroCardBlueprint> _cardBlueprintMap;
|
private final Map<String, LotroCardBlueprint> _cardBlueprintMap;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user