Fix some issues when rendering Level up cards

This commit is contained in:
Lyu Zong-Hong
2021-07-29 17:36:16 +09:00
parent 35749300ce
commit c936b9fed9

View File

@@ -272,36 +272,47 @@ public class FCardImageRenderer {
String [] paragraphs = linebreakPattern.split(text); String [] paragraphs = linebreakPattern.split(text);
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
String text1 = "", text2 = "", text3 = ""; String text1 = "", text2 = "", text3 = "";
String level2 = null, level3 = null; String level2 = "", level3 = "";
String ptOverride2 = null, ptOverride3 = null; String ptOverride2 = null, ptOverride3 = null;
boolean matchedLevel = false;
for (String pg : paragraphs) { for (String pg : paragraphs) {
if (pg.matches(".*[0-9]+-[0-9]+")) { if (pg.matches("(.*[0-9]+-[0-9]+)|(.*[0-9]+\\+)")) {
text1 = sb.toString(); //add space before numbers in case there is no space.
pg = pg.replaceAll("([^0-9 ]+)(([0-9]+-[0-9]+)|([0-9]+\\+))", "$1 $2");
if (level2.isEmpty()) {
text1 = sb.toString();
level2 = pg;
} else {
text2 = sb.toString();
level3 = pg;
}
sb.setLength(0); sb.setLength(0);
level2 = pg;
matchedLevel = true;
continue;
} else if (pg.matches(".*[0-9]+\\+")) {
text2 = sb.toString();
sb.setLength(0);
level3 = pg;
matchedLevel = true;
continue; continue;
} }
if (!matchedLevel) { if (pg.matches("[0-9]+/[0-9]+")) {
if (sb.length() > 0)
sb.append("\n");
sb.append(pg);
} else {
if (ptOverride2 == null) if (ptOverride2 == null)
ptOverride2 = pg; ptOverride2 = pg;
else else
ptOverride3 = pg; ptOverride3 = pg;
continue;
} }
matchedLevel = false; if (sb.length() > 0)
sb.append("\n");
sb.append(pg);
} }
text3 = sb.toString(); text3 = sb.toString();
//handle the case that translated text doesn't contains P/T info.
if (ptOverride2 == null) {
paragraphs = linebreakPattern.split(state.getOracleText());
for (String pg : paragraphs) {
if (pg.matches("[0-9]+/[0-9]+")) {
if (ptOverride2 == null)
ptOverride2 = pg;
else
ptOverride3 = pg;
}
}
}
int textX = x + artInset; int textX = x + artInset;
//draw text box //draw text box