rework text generation for modes with costs and/or flavor words

This commit is contained in:
theelk801 2025-06-02 12:37:34 -04:00
parent cb7620860b
commit ca1145c967

View file

@ -8,6 +8,7 @@ import mage.util.CardUtil;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Optional;
/** /**
* @author BetaSteward_at_googlemail.com * @author BetaSteward_at_googlemail.com
@ -29,11 +30,21 @@ public class Effects extends ArrayList<Effect> {
} }
public String getTextStartingUpperCase(Mode mode) { public String getTextStartingUpperCase(Mode mode) {
String text = getText(mode); StringBuilder text = Optional
if (text.length() > 3) { .of(getText(mode))
return CardUtil.getTextWithFirstCharUpperCase(text); .map(s -> s.length() > 3 ? CardUtil.getTextWithFirstCharUpperCase(s) : s)
.map(StringBuilder::new)
.get();
// cost
if (mode.getCost() != null) {
text.insert(0, " &mdash; ");
text.insert(0, mode.getCost().getText());
} }
return text; // flavor word
if (mode.getFlavorWord() != null) {
text.insert(0, CardUtil.italicizeWithEmDash(mode.getFlavorWord()));
}
return text.toString();
} }
public String getText(Mode mode) { public String getText(Mode mode) {
@ -115,20 +126,6 @@ public class Effects extends ArrayList<Effect> {
sbText.append('.'); sbText.append('.');
} }
if (mode.getCost() != null || mode.getFlavorWord() != null) {
sbText.replace(0, 1, sbText.substring(0, 1).toUpperCase());
}
// cost
if (mode.getCost() != null) {
sbText.insert(0, " &mdash; ");
sbText.insert(0, mode.getCost().getText());
}
// flavor word
if (mode.getFlavorWord() != null) {
sbText.insert(0, CardUtil.italicizeWithEmDash(mode.getFlavorWord()));
}
return sbText.toString(); return sbText.toString();
} }