Added Collector's Info sorting type in the deckbuilder card filter

This commit is contained in:
Christian 'ketura' McCarty
2024-12-07 01:01:43 -06:00
parent fa3d854f47
commit 2d46f50cb1
2 changed files with 38 additions and 0 deletions

View File

@@ -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>"

View File

@@ -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;