mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48:00 +00:00
Card.keywordsToText improve etb/cast keywords WotC likes give many times
This commit is contained in:
@@ -2257,7 +2257,7 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
|||||||
|| keyword.equals("Exalted") || keyword.equals("Extort")|| keyword.equals("Flanking")
|
|| keyword.equals("Exalted") || keyword.equals("Extort")|| keyword.equals("Flanking")
|
||||||
|| keyword.equals("Horsemanship") || keyword.equals("Infect")|| keyword.equals("Persist")
|
|| keyword.equals("Horsemanship") || keyword.equals("Infect")|| keyword.equals("Persist")
|
||||||
|| keyword.equals("Phasing") || keyword.equals("Shadow")|| keyword.equals("Skulk")
|
|| keyword.equals("Phasing") || keyword.equals("Shadow")|| keyword.equals("Skulk")
|
||||||
|| keyword.equals("Undying") || keyword.equals("Wither") || keyword.equals("Cascade")
|
|| keyword.equals("Undying") || keyword.equals("Wither")
|
||||||
|| keyword.equals("Mentor") || keyword.equals("Training")) {
|
|| keyword.equals("Mentor") || keyword.equals("Training")) {
|
||||||
if (sb.length() != 0) {
|
if (sb.length() != 0) {
|
||||||
sb.append("\r\n");
|
sb.append("\r\n");
|
||||||
@@ -2267,6 +2267,25 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
|||||||
sb.append(" (").append(inst.getReminderText()).append(")");
|
sb.append(" (").append(inst.getReminderText()).append(")");
|
||||||
printedKW.add(keyword);
|
printedKW.add(keyword);
|
||||||
}
|
}
|
||||||
|
} else if (keyword.equals("Cascade")) { // this could become a list for easy keywords that stack
|
||||||
|
if (printedKW.contains(keyword)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (sb.length() != 0) {
|
||||||
|
sb.append("\r\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
StringBuilder descStr = new StringBuilder(keyword);
|
||||||
|
int times = 0;
|
||||||
|
for (KeywordInterface keyw : keywords) {
|
||||||
|
String kw = keyw.getOriginal();
|
||||||
|
if (kw.equals(keyword)) {
|
||||||
|
descStr.append(times == 0 ? "" : ", " + StringUtils.uncapitalize(keyword));
|
||||||
|
times++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sb.append(descStr).append(" ").append(" (").append(inst.getReminderText()).append(")");
|
||||||
|
printedKW.add(keyword);
|
||||||
} else if (keyword.startsWith("Ward")) {
|
} else if (keyword.startsWith("Ward")) {
|
||||||
final String[] k = keyword.split(":");
|
final String[] k = keyword.split(":");
|
||||||
final Cost cost = new Cost(k[1], false);
|
final Cost cost = new Cost(k[1], false);
|
||||||
@@ -2308,21 +2327,32 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
|||||||
sb.append(" ").append(Localizer.getInstance().getMessage("lblSagaFooter")).append(" ").append(TextUtil.toRoman(getFinalChapterNr())).append(".");
|
sb.append(" ").append(Localizer.getInstance().getMessage("lblSagaFooter")).append(" ").append(TextUtil.toRoman(getFinalChapterNr())).append(".");
|
||||||
sb.append(")").append("\r\n\r\n");
|
sb.append(")").append("\r\n\r\n");
|
||||||
} else if (keyword.startsWith("Backup")) {
|
} else if (keyword.startsWith("Backup")) {
|
||||||
|
if (printedKW.contains("Backup")) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
boolean plural = false;
|
||||||
|
|
||||||
|
StringBuilder descStr = new StringBuilder("Backup ");
|
||||||
|
int times = 0;
|
||||||
|
for (KeywordInterface keyw : keywords) {
|
||||||
|
String kw = keyw.getOriginal();
|
||||||
|
if (kw.startsWith("Backup")) {
|
||||||
final String[] k = keyword.split(":");
|
final String[] k = keyword.split(":");
|
||||||
String magnitude = k[1];
|
String magnitude = k[1];
|
||||||
boolean multi = k.length >= 4;
|
if (times == 0 && k[2].endsWith("s")) {
|
||||||
int times = multi ? Integer.parseInt(k[3]) : 1;
|
plural = true;
|
||||||
|
}
|
||||||
StringBuilder descStr = new StringBuilder("Backup " + magnitude);
|
descStr.append(times == 0 ? magnitude : ", backup " + magnitude);
|
||||||
for (int t = times; t > 1; t--) {
|
times++;
|
||||||
descStr.append(", backup ").append(magnitude);
|
}
|
||||||
}
|
}
|
||||||
sb.append(descStr).append(" ").append(" (");
|
sb.append(descStr).append(" ").append(" (");
|
||||||
String remStr = inst.getReminderText();
|
String remStr = inst.getReminderText();
|
||||||
if (k[2].endsWith("s")) {
|
if (plural) {
|
||||||
remStr = remStr.replace("ability", "abilities");
|
remStr = remStr.replace("ability", "abilities");
|
||||||
}
|
}
|
||||||
sb.append(remStr).append(multi ? " Each backup ability triggers separately." : "").append(")");
|
sb.append(remStr).append(times > 1 ? " Each backup ability triggers separately." : "").append(")");
|
||||||
|
printedKW.add("Backup");
|
||||||
} else if (keyword.startsWith("MayEffectFromOpening")) {
|
} else if (keyword.startsWith("MayEffectFromOpening")) {
|
||||||
final String[] k = keyword.split(":");
|
final String[] k = keyword.split(":");
|
||||||
// need to get SpellDescription from Svar
|
// need to get SpellDescription from Svar
|
||||||
|
|||||||
Reference in New Issue
Block a user