update some text generation logic

This commit is contained in:
xenohedron 2023-07-19 20:30:01 -04:00
parent f944408252
commit ad86a52ba4
3 changed files with 12 additions and 25 deletions

View file

@ -7,6 +7,7 @@ import mage.abilities.effects.ContinuousEffectImpl;
import mage.constants.*;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.util.CardUtil;
/**
* @author nantuko
@ -48,18 +49,10 @@ public class AddCardSubTypeTargetEffect extends ContinuousEffectImpl {
if (staticText != null && !staticText.isEmpty()) {
return staticText;
}
StringBuilder sb = new StringBuilder();
if (!mode.getTargets().isEmpty()) {
sb.append("Target ").append(mode.getTargets().get(0).getTargetName());
} else {
sb.append("It ");
}
if (addedSubType.toString().matches("(?i)^[AEIOUYaeiouy].*$")) {
sb.append(" becomes an ");
} else {
sb.append(" becomes a ");
}
sb.append(addedSubType).append(" in addition to its other types ").append(duration.toString());
return sb.toString();
return getTargetPointer().describeTargets(mode.getTargets(), "it") +
(getTargetPointer().isPlural(mode.getTargets()) ? " become " : " becomes ") +
CardUtil.addArticle(addedSubType.toString()) +
" in addition to its other types" +
(duration.toString().isEmpty() ? "" : ' ' + duration.toString());
}
}

View file

@ -67,8 +67,8 @@ public class AddCardTypeTargetEffect extends ContinuousEffectImpl {
if (staticText != null && !staticText.isEmpty()) {
return staticText;
}
StringBuilder sb = new StringBuilder();
sb.append("Target ").append(mode.getTargets().get(0).getTargetName()).append(" becomes ");
StringBuilder sb = new StringBuilder(getTargetPointer().describeTargets(mode.getTargets(), "it"));
sb.append(getTargetPointer().isPlural(mode.getTargets()) ? " become " : " becomes ");
boolean article = false;
for (CardType cardType : addedCardTypes) {
if (!article) {

View file

@ -92,15 +92,9 @@ public class BecomesColorOrColorsTargetEffect extends OneShotEffect {
if (staticText != null && !staticText.isEmpty()) {
return staticText;
}
StringBuilder sb = new StringBuilder();
if (!mode.getTargets().isEmpty()) {
sb.append("target ");
sb.append(mode.getTargets().get(0).getFilter().getMessage());
sb.append(" becomes the color or colors of your choice");
if (!duration.toString().isEmpty()) {
sb.append(' ').append(duration.toString());
}
}
return sb.toString();
return getTargetPointer().describeTargets(mode.getTargets(), "it") +
(getTargetPointer().isPlural(mode.getTargets()) ? " become " : " becomes ") +
"the color or colors of your choice"
+ (duration.toString().isEmpty() ? "" : ' ' + duration.toString());
}
}