text improvements

This commit is contained in:
xenohedron 2024-04-17 20:51:15 -04:00
parent 52530b173d
commit fc3551fc0a
6 changed files with 38 additions and 31 deletions

View file

@ -55,14 +55,12 @@ public class AddCountersPlayersEffect extends OneShotEffect {
case ANY:
return game.getState().getPlayersInRange(source.getControllerId(), game);
case YOU:
return Arrays.asList(source.getControllerId());
return Collections.singletonList(source.getControllerId());
case CONTROLLER_ATTACHED_TO:
List<UUID> list = new ArrayList<>();
Optional.ofNullable(source.getSourcePermanentOrLKI(game))
.filter(Objects::nonNull)
.map(Permanent::getAttachedTo)
.map(game::getControllerId)
.filter(Objects::nonNull)
.ifPresent(list::add);
return list;
default:
@ -102,23 +100,26 @@ public class AddCountersPlayersEffect extends OneShotEffect {
StringBuilder sb = new StringBuilder();
switch (targetController) {
case OPPONENT:
sb.append("each opponent gets");
sb.append("each opponent gets ");
break;
case ANY:
case EACH_PLAYER:
sb.append("each player gets");
sb.append("each player gets ");
break;
case YOU:
sb.append("you get");
sb.append("you get ");
break;
case CONTROLLER_ATTACHED_TO:
sb.append("its controller gets");
sb.append("its controller gets ");
break;
default:
throw new UnsupportedOperationException(targetController + " not supported");
}
sb.append(' ');
sb.append(counter.getDescription());
if (amount.toString().equals("X")) {
sb.append("X ").append(counter.getName()).append(" counters");
} else {
sb.append(counter.getDescription());
}
return sb.toString();
}
}

View file

@ -23,7 +23,7 @@ import java.util.UUID;
public class AddCountersTargetEffect extends OneShotEffect {
private Counter counter;
private DynamicValue amount;
private final DynamicValue amount;
public AddCountersTargetEffect(Counter counter) {
this(counter, counter.getName().equals(CounterType.M1M1.getName()) ? Outcome.UnboostCreature : Outcome.Benefit);

View file

@ -14,11 +14,13 @@ public class FilterPermanentThisOrAnother extends FilterPermanent {
public FilterPermanentThisOrAnother(FilterPermanent otherFilter, boolean onlyControlled) {
this(otherFilter, onlyControlled, generateFilterMessage(otherFilter));
}
public FilterPermanentThisOrAnother(FilterPermanent otherFilter, boolean onlyControlled, String name) {
super(name);
this.otherFilter = otherFilter;
this.onlyControlled = onlyControlled;
}
@Override
public boolean match(Permanent permanent, UUID playerId, Ability source, Game game) {
if (!super.match(permanent, playerId, source, game)) {

View file

@ -916,7 +916,14 @@ public final class CardUtil {
}
public static String getAddRemoveCountersText(DynamicValue amount, Counter counter, String description, boolean add) {
StringBuilder sb = new StringBuilder(add ? "put " : "remove ");
boolean targetPlayerGets = add && (description.endsWith("player") || description.endsWith("opponent"));
StringBuilder sb = new StringBuilder();
if (targetPlayerGets) {
sb.append(description);
sb.append(" gets ");
} else {
sb.append(add ? "put " : "remove ");
}
boolean xValue = amount.toString().equals("X");
if (xValue) {
sb.append("X ").append(counter.getName()).append(" counters");
@ -925,7 +932,9 @@ public final class CardUtil {
} else {
sb.append(counter.getDescription());
}
sb.append(add ? " on " : " from ").append(description);
if (!targetPlayerGets) {
sb.append(add ? " on " : " from ").append(description);
}
if (!amount.getMessage().isEmpty()) {
sb.append(xValue ? ", where X is " : " for each ").append(amount.getMessage());
}