Merge branch 'pump_sb' into 'master'

Pump auto stackdescription sb improvements

See merge request core-developers/forge!5359
This commit is contained in:
Michael Kamensky
2021-09-14 20:28:53 +00:00

View File

@@ -179,46 +179,50 @@ public class PumpEffect extends SpellAbilityEffect {
final int atk = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("NumAtt"), sa, true); final int atk = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("NumAtt"), sa, true);
final int def = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("NumDef"), sa, true); final int def = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("NumDef"), sa, true);
boolean gains = sa.hasParam("NumAtt") || sa.hasParam("NumDef") || !keywords.isEmpty(); boolean gets = (sa.hasParam("NumAtt") || sa.hasParam("NumDef"));
boolean gains = !keywords.isEmpty();
if (gains) { if (gets) {
sb.append("gets ");
if (atk != 0) {
sb.append(atk > 0 ? "+" : "").append(atk).append("/");
} else {
sb.append(def < 0 ? "-" : "+").append(atk).append("/");
}
if (def != 0) {
sb.append(def > 0 ? "+" : "").append(def).append(" ");
} else {
sb.append(atk < 0 ? "-" : "+").append(def).append(" ");
}
sb.append(gains ? "and gains " : "");
} else if (gains) {
sb.append("gains "); sb.append("gains ");
} }
if (sa.hasParam("NumAtt") || sa.hasParam("NumDef")) {
if (atk >= 0) {
sb.append("+");
}
sb.append(atk);
sb.append("/");
if (def >= 0) {
sb.append("+");
}
sb.append(def);
sb.append(" ");
}
for (int i = 0; i < keywords.size(); i++) { for (int i = 0; i < keywords.size(); i++) {
sb.append(keywords.get(i)).append(" "); sb.append(keywords.get(i).toLowerCase());
sb.append(keywords.size() > 2 && i+1 != keywords.size() ? ", " : "");
sb.append(keywords.size() == 2 && i == 0 ? " " : "");
sb.append(i+2 == keywords.size() ? "and " : "");
} }
if (sa.hasParam("CanBlockAny")) { if (sa.hasParam("CanBlockAny")) {
if (gains) { if (gets || gains) {
sb.append(" and "); sb.append(" and ");
} }
sb.append("can block any number of creatures "); sb.append("can block any number of creatures");
} else if (sa.hasParam("CanBlockAmount")) { } else if (sa.hasParam("CanBlockAmount")) {
if (gains) { if (gets || gains) {
sb.append(" and "); sb.append(" and ");
} }
String n = sa.getParam("CanBlockAmount"); String n = sa.getParam("CanBlockAmount");
sb.append("can block an additional "); sb.append("can block an additional ");
sb.append("1".equals(n) ? "creature" : Lang.nounWithNumeral(n, "creature")); sb.append("1".equals(n) ? "creature" : Lang.nounWithNumeral(n, "creature"));
sb.append(" each combat "); sb.append(" each combat");
} }
if (!"Permanent".equals(sa.getParam("Duration"))) { if (!"Permanent".equals(sa.getParam("Duration"))) {
sb.append("until end of turn."); sb.append(" until end of turn.");
} else { } else {
sb.append("."); sb.append(".");
} }