diff --git a/Mage.Sets/src/mage/cards/d/DwarvenSong.java b/Mage.Sets/src/mage/cards/d/DwarvenSong.java index ac6962d25f4..359651315cf 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenSong.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenSong.java @@ -19,9 +19,8 @@ public final class DwarvenSong extends CardImpl { public DwarvenSong(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{R}"); - // Any number of target creatures become red until end of turn. + // One or more target creatures become red until end of turn. Effect effect = new BecomesColorTargetEffect(ObjectColor.RED, Duration.EndOfTurn); - effect.setText("One or more target creatures become red until end of turn"); this.getSpellAbility().addEffect(effect); this.getSpellAbility().addTarget(new TargetCreaturePermanent(1, Integer.MAX_VALUE)); } diff --git a/Mage.Sets/src/mage/cards/h/HeavensGate.java b/Mage.Sets/src/mage/cards/h/HeavensGate.java index de276f74512..2c3048d285c 100644 --- a/Mage.Sets/src/mage/cards/h/HeavensGate.java +++ b/Mage.Sets/src/mage/cards/h/HeavensGate.java @@ -9,7 +9,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.StaticFilters; import mage.target.common.TargetCreaturePermanent; /** @@ -21,11 +20,10 @@ public final class HeavensGate extends CardImpl { public HeavensGate(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{W}"); - // Any number of target creatures become white until end of turn. + // One or more target creatures become white until end of turn. Effect effect = new BecomesColorTargetEffect(ObjectColor.WHITE, Duration.EndOfTurn); - effect.setText("Any number of target creatures become white until end of turn"); this.getSpellAbility().addEffect(effect); - this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, Integer.MAX_VALUE, StaticFilters.FILTER_PERMANENT_CREATURE, false)); + this.getSpellAbility().addTarget(new TargetCreaturePermanent(1, Integer.MAX_VALUE)); } diff --git a/Mage.Sets/src/mage/cards/s/SeaKingsBlessing.java b/Mage.Sets/src/mage/cards/s/SeaKingsBlessing.java index 378d1b6c094..aae45f2b50f 100644 --- a/Mage.Sets/src/mage/cards/s/SeaKingsBlessing.java +++ b/Mage.Sets/src/mage/cards/s/SeaKingsBlessing.java @@ -9,7 +9,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.StaticFilters; import mage.target.common.TargetCreaturePermanent; /** @@ -21,11 +20,10 @@ public final class SeaKingsBlessing extends CardImpl { public SeaKingsBlessing(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{U}"); - // Any number of target creatures become blue until end of turn. + // One or more target creatures become blue until end of turn. Effect effect = new BecomesColorTargetEffect(ObjectColor.BLUE, Duration.EndOfTurn); - effect.setText("Any number of target creatures become blue until end of turn"); this.getSpellAbility().addEffect(effect); - this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, Integer.MAX_VALUE, StaticFilters.FILTER_PERMANENT_CREATURE, false)); + this.getSpellAbility().addTarget(new TargetCreaturePermanent(1, Integer.MAX_VALUE)); } diff --git a/Mage.Sets/src/mage/cards/s/SylvanParadise.java b/Mage.Sets/src/mage/cards/s/SylvanParadise.java index ecce014a3e9..3eb3ca91b20 100644 --- a/Mage.Sets/src/mage/cards/s/SylvanParadise.java +++ b/Mage.Sets/src/mage/cards/s/SylvanParadise.java @@ -21,11 +21,10 @@ public final class SylvanParadise extends CardImpl { public SylvanParadise(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{G}"); - // Any number of target creatures become green until end of turn. + // One or more target creatures become green until end of turn. Effect effect = new BecomesColorTargetEffect(ObjectColor.GREEN, Duration.EndOfTurn); - effect.setText("Any number of target creatures become green until end of turn"); this.getSpellAbility().addEffect(effect); - this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, Integer.MAX_VALUE, StaticFilters.FILTER_PERMANENT_CREATURE, false)); + this.getSpellAbility().addTarget(new TargetCreaturePermanent(1, Integer.MAX_VALUE)); } diff --git a/Mage.Sets/src/mage/cards/t/TouchOfDarkness.java b/Mage.Sets/src/mage/cards/t/TouchOfDarkness.java index 05b859668d8..3eae29876df 100644 --- a/Mage.Sets/src/mage/cards/t/TouchOfDarkness.java +++ b/Mage.Sets/src/mage/cards/t/TouchOfDarkness.java @@ -9,7 +9,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.filter.StaticFilters; import mage.target.common.TargetCreaturePermanent; /** @@ -21,11 +20,10 @@ public final class TouchOfDarkness extends CardImpl { public TouchOfDarkness(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{B}"); - // Any number of target creatures become black until end of turn. + // One or more target creatures become black until end of turn. Effect effect = new BecomesColorTargetEffect(ObjectColor.BLACK, Duration.EndOfTurn); - effect.setText("Any number of target creatures become black until end of turn"); this.getSpellAbility().addEffect(effect); - this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, Integer.MAX_VALUE, StaticFilters.FILTER_PERMANENT_CREATURE, false)); + this.getSpellAbility().addTarget(new TargetCreaturePermanent(1, Integer.MAX_VALUE)); } diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesColorTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesColorTargetEffect.java index 6820e727ff4..7ec8fb0f896 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesColorTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesColorTargetEffect.java @@ -135,15 +135,14 @@ public class BecomesColorTargetEffect extends ContinuousEffectImpl { if (staticText != null && !staticText.isEmpty()) { return staticText; } - StringBuilder sb = new StringBuilder(); - sb.append("Target ").append(mode.getTargets().get(0).getTargetName()); - sb.append(" becomes "); + StringBuilder sb = new StringBuilder(getTargetPointer().describeTargets(mode.getTargets(), "it")); + sb.append(getTargetPointer().isPlural(mode.getTargets()) ? " become " : " becomes "); if (setColor == null) { sb.append("the color of your choice"); } else { sb.append(setColor.getDescription()); } - if (!duration.toString().equals("")) { + if (!duration.toString().isEmpty()) { sb.append(' ').append(duration.toString()); } return sb.toString(); diff --git a/Mage/src/main/java/mage/target/TargetImpl.java b/Mage/src/main/java/mage/target/TargetImpl.java index 6d343f62607..018be941284 100644 --- a/Mage/src/main/java/mage/target/TargetImpl.java +++ b/Mage/src/main/java/mage/target/TargetImpl.java @@ -45,15 +45,15 @@ public abstract class TargetImpl implements Target { @Override public abstract TargetImpl copy(); - public TargetImpl() { + protected TargetImpl() { this(false); } - public TargetImpl(boolean notTarget) { + protected TargetImpl(boolean notTarget) { this.notTarget = notTarget; } - public TargetImpl(final TargetImpl target) { + protected TargetImpl(final TargetImpl target) { this.targetName = target.targetName; this.zone = target.zone; this.maxNumberOfTargets = target.maxNumberOfTargets; @@ -103,7 +103,10 @@ public abstract class TargetImpl implements Target { StringBuilder sb = new StringBuilder(); int min = getMinNumberOfTargets(); int max = getMaxNumberOfTargets(); - if (!getTargetName().startsWith("X") && (min != 1 || max != 1)) { + if (min > 0 && max == Integer.MAX_VALUE) { + sb.append(CardUtil.numberToText(min)); + sb.append(" or more "); + } else if (!getTargetName().startsWith("X") && (min != 1 || max != 1)) { if (min < max && max != Integer.MAX_VALUE) { if (min == 1 && max == 2) { sb.append("one or ");