Added - draft format info now displays excluded cards
This commit is contained in:
@@ -7,7 +7,9 @@ import org.apache.commons.lang3.StringEscapeUtils;
|
|||||||
import org.json.simple.JSONArray;
|
import org.json.simple.JSONArray;
|
||||||
import org.json.simple.JSONObject;
|
import org.json.simple.JSONObject;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.stream.StreamSupport;
|
import java.util.stream.StreamSupport;
|
||||||
|
|
||||||
public class TableDraftDefinitionHtmlBuilder {
|
public class TableDraftDefinitionHtmlBuilder {
|
||||||
@@ -21,11 +23,70 @@ public class TableDraftDefinitionHtmlBuilder {
|
|||||||
builder.append(getStartingCollection(definition, library));
|
builder.append(getStartingCollection(definition, library));
|
||||||
builder.append(getCardSets(definition, library, formatLibrary));
|
builder.append(getCardSets(definition, library, formatLibrary));
|
||||||
|
|
||||||
|
builder.append(getExcludedCards(definition, library, formatLibrary));
|
||||||
|
|
||||||
builder.append(getClosingSection());
|
builder.append(getClosingSection());
|
||||||
|
|
||||||
return builder.toString();
|
return builder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static String getExcludedCards(JSONObject definition, LotroCardBlueprintLibrary library, LotroFormatLibrary formatLibrary) {
|
||||||
|
SortAndFilterCards sortAndFilterCards = new SortAndFilterCards();
|
||||||
|
|
||||||
|
StringBuilder builder = new StringBuilder();
|
||||||
|
String code = (String) definition.get("code");
|
||||||
|
|
||||||
|
Set<String> notIncluded = new HashSet<>();
|
||||||
|
|
||||||
|
if (code.contains("fotr")) {
|
||||||
|
for (int i = 1; i <= 363; i++) {
|
||||||
|
notIncluded.add("1_" + i);
|
||||||
|
}
|
||||||
|
for (int i = 1; i <= 121; i++) {
|
||||||
|
notIncluded.add("2_" + i);
|
||||||
|
notIncluded.add("3_" + i);
|
||||||
|
}
|
||||||
|
} else if (code.contains("ttt")) {
|
||||||
|
for (int i = 1; i <= 363; i++) {
|
||||||
|
notIncluded.add("4_" + i);
|
||||||
|
}
|
||||||
|
for (int i = 1; i <= 121; i++) {
|
||||||
|
notIncluded.add("5_" + i);
|
||||||
|
notIncluded.add("6_" + i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (notIncluded.isEmpty()) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONArray cardSets = (JSONArray) definition.get("card-sets");
|
||||||
|
for (JSONObject cardSet : (Iterable<JSONObject>) cardSets) {
|
||||||
|
if (cardSet.containsKey("card-set")) {
|
||||||
|
List<String> cardList = (List<String>) cardSet.get("card-set");
|
||||||
|
cardList.forEach(notIncluded::remove);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
builder.append("<h2>Excluded from Draft:</h2>");
|
||||||
|
DefaultCardCollection setCards = new DefaultCardCollection();
|
||||||
|
for (String card : notIncluded) {
|
||||||
|
setCards.addItem(library.getBaseBlueprintId(card), 1);
|
||||||
|
}
|
||||||
|
builder.append("<br/>");
|
||||||
|
builder.append("<b>FP Cards:</b><br/>");
|
||||||
|
for (CardCollection.Item item : sortAndFilterCards.process("side:FREE_PEOPLE sort:side,cardType,culture,name", setCards.getAll(), library, formatLibrary)) {
|
||||||
|
builder.append(generateCardTooltip(item.getBlueprintId(), library)).append("<br/>");
|
||||||
|
}
|
||||||
|
builder.append("<b>Shadow Cards:</b><br/>");
|
||||||
|
for (CardCollection.Item item : sortAndFilterCards.process("side:SHADOW sort:side,cardType,culture,name", setCards.getAll(), library, formatLibrary)) {
|
||||||
|
builder.append(generateCardTooltip(item.getBlueprintId(), library)).append("<br/>");
|
||||||
|
}
|
||||||
|
|
||||||
|
builder.delete(builder.length() - 5, builder.length());
|
||||||
|
return builder.toString();
|
||||||
|
}
|
||||||
|
|
||||||
private static String getCardSets(JSONObject definition, LotroCardBlueprintLibrary library, LotroFormatLibrary formatLibrary) {
|
private static String getCardSets(JSONObject definition, LotroCardBlueprintLibrary library, LotroFormatLibrary formatLibrary) {
|
||||||
SortAndFilterCards sortAndFilterCards = new SortAndFilterCards();
|
SortAndFilterCards sortAndFilterCards = new SortAndFilterCards();
|
||||||
|
|
||||||
@@ -217,14 +278,12 @@ public class TableDraftDefinitionHtmlBuilder {
|
|||||||
set = String.format("%02d", setnum);
|
set = String.format("%02d", setnum);
|
||||||
subset = "E";
|
subset = "E";
|
||||||
version = 1;
|
version = 1;
|
||||||
}
|
} else if (setnum >= 70 && setnum <= 89) {
|
||||||
else if(setnum >= 70 && setnum <= 89) {
|
|
||||||
setnum -= 70;
|
setnum -= 70;
|
||||||
set = String.format("%02d", setnum);
|
set = String.format("%02d", setnum);
|
||||||
subset = "E";
|
subset = "E";
|
||||||
version = 1;
|
version = 1;
|
||||||
}
|
} else if (setnum >= 100 && setnum <= 149) {
|
||||||
else if(setnum >= 100 && setnum <= 149) {
|
|
||||||
setnum -= 100;
|
setnum -= 100;
|
||||||
set = "V" + setnum;
|
set = "V" + setnum;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user