diff --git a/Mage.Sets/src/mage/cards/b/BrokenAmbitions.java b/Mage.Sets/src/mage/cards/b/BrokenAmbitions.java index cccf4aed4ee..b22f48055d2 100644 --- a/Mage.Sets/src/mage/cards/b/BrokenAmbitions.java +++ b/Mage.Sets/src/mage/cards/b/BrokenAmbitions.java @@ -45,18 +45,21 @@ public final class BrokenAmbitions extends CardImpl { class BrokenAmbitionsEffect extends OneShotEffect { + private static final String effectText = "Counter target spell unless its controller pays {X}. Clash with an opponent. If you win, that spell's controller puts the top four cards of their library into their graveyard"; + protected Cost cost; protected DynamicValue genericMana; public BrokenAmbitionsEffect(Cost cost) { super(Outcome.Benefit); this.cost = cost; - this.staticText = "Counter target spell unless its controller pays {X}. Clash with an opponent. If you win, that spell's controller mills four cards"; + this.staticText = effectText; } public BrokenAmbitionsEffect(DynamicValue genericMana) { super(Outcome.Detriment); this.genericMana = genericMana; + this.staticText = effectText; } public BrokenAmbitionsEffect(final BrokenAmbitionsEffect effect) { @@ -67,6 +70,7 @@ class BrokenAmbitionsEffect extends OneShotEffect { if (effect.genericMana != null) { this.genericMana = effect.genericMana.copy(); } + this.staticText = effectText; } @Override diff --git a/Mage.Sets/src/mage/cards/c/ClotSliver.java b/Mage.Sets/src/mage/cards/c/ClotSliver.java index e7bd0f90394..d3ba912fbbf 100644 --- a/Mage.Sets/src/mage/cards/c/ClotSliver.java +++ b/Mage.Sets/src/mage/cards/c/ClotSliver.java @@ -1,7 +1,6 @@ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -16,6 +15,8 @@ import mage.constants.SubType; import mage.constants.Zone; import mage.filter.FilterPermanent; +import java.util.UUID; + /** * @author Loki */ @@ -33,7 +34,7 @@ public final class ClotSliver extends CardImpl { this.power = new MageInt(1); this.toughness = new MageInt(1); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new GenericManaCost(2)), Duration.WhileOnBattlefield, filter, false))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect("this permanent"), new GenericManaCost(2)), Duration.WhileOnBattlefield, filter, false))); } public ClotSliver(final ClotSliver card) { diff --git a/Mage.Sets/src/mage/cards/h/HoldTheGates.java b/Mage.Sets/src/mage/cards/h/HoldTheGates.java index e8b5b306757..83d95b9eaf2 100644 --- a/Mage.Sets/src/mage/cards/h/HoldTheGates.java +++ b/Mage.Sets/src/mage/cards/h/HoldTheGates.java @@ -28,9 +28,10 @@ public final class HoldTheGates extends CardImpl { // Creatures you control get +0/+1 for each Gate you control and have vigilance. Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, - new BoostControlledEffect(StaticValue.get(0), GateYouControlCount.instance, Duration.WhileOnBattlefield)); + new BoostControlledEffect(StaticValue.get(0), GateYouControlCount.instance, Duration.WhileOnBattlefield) + .setText("Creatures you control get +0/+1 for each Gate you control ")); ability.addEffect(new GainAbilityControlledEffect(VigilanceAbility.getInstance(), Duration.WhileOnBattlefield, new FilterControlledCreaturePermanent("Creatures")) - .setText("Creatures you control get +0/+1 for each Gate you control and have vigilance")); + .setText("and have vigilance")); ability.addHint(GateYouControlHint.instance); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/i/IlhargTheRazeBoar.java b/Mage.Sets/src/mage/cards/i/IlhargTheRazeBoar.java index b17883fd8ac..25a75accab5 100644 --- a/Mage.Sets/src/mage/cards/i/IlhargTheRazeBoar.java +++ b/Mage.Sets/src/mage/cards/i/IlhargTheRazeBoar.java @@ -95,7 +95,7 @@ class IlhargTheRazeBoarEffect extends OneShotEffect { } game.getCombat().addAttackingCreature(permanent.getId(), game); Effect effect = new ReturnToHandTargetEffect(); - effect.setText("return {this} to its owner's hand"); + effect.setText("return " + permanent.getName() + " to its owner's hand"); effect.setTargetPointer(new FixedTarget(permanent, game)); game.addDelayedTriggeredAbility(new AtTheBeginOfNextEndStepDelayedTriggeredAbility(effect), source); return true; diff --git a/Mage.Sets/src/mage/cards/l/LilianaDreadhordeGeneral.java b/Mage.Sets/src/mage/cards/l/LilianaDreadhordeGeneral.java index a538d5ada61..5b77db31f2a 100644 --- a/Mage.Sets/src/mage/cards/l/LilianaDreadhordeGeneral.java +++ b/Mage.Sets/src/mage/cards/l/LilianaDreadhordeGeneral.java @@ -31,7 +31,7 @@ import java.util.UUID; */ public final class LilianaDreadhordeGeneral extends CardImpl { - private static final FilterControlledPermanent filter = new FilterControlledCreaturePermanent("creatures"); + private static final FilterControlledPermanent filter = new FilterControlledCreaturePermanent(" creatures"); public LilianaDreadhordeGeneral(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{4}{B}{B}"); diff --git a/Mage.Sets/src/mage/cards/o/OliviaVoldaren.java b/Mage.Sets/src/mage/cards/o/OliviaVoldaren.java index 0c9b7699604..bd8eafb3da7 100644 --- a/Mage.Sets/src/mage/cards/o/OliviaVoldaren.java +++ b/Mage.Sets/src/mage/cards/o/OliviaVoldaren.java @@ -1,7 +1,6 @@ package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -24,6 +23,8 @@ import mage.filter.predicate.mageobject.CardIdPredicate; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author nantuko @@ -55,7 +56,11 @@ public final class OliviaVoldaren extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // {1}{R}: Olivia Voldaren deals 1 damage to another target creature. That creature becomes a Vampire in addition to its other types. Put a +1/+1 counter on Olivia Voldaren. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl("{1}{R}")); + Ability ability = new SimpleActivatedAbility( + Zone.BATTLEFIELD, + new DamageTargetEffect(1).setText("{this} deals 1 damage to another target creature"), + new ManaCostsImpl("{1}{R}") + ); ability.addTarget(new TargetCreaturePermanent(filter)); Effect effect = new AddCardSubTypeTargetEffect(SubType.VAMPIRE, Duration.WhileOnBattlefield); effect.setText("That creature becomes a Vampire in addition to its other types"); diff --git a/Mage.Sets/src/mage/cards/s/StonebrowKrosanHero.java b/Mage.Sets/src/mage/cards/s/StonebrowKrosanHero.java index 468f5855e0f..c5ffaa03273 100644 --- a/Mage.Sets/src/mage/cards/s/StonebrowKrosanHero.java +++ b/Mage.Sets/src/mage/cards/s/StonebrowKrosanHero.java @@ -1,7 +1,6 @@ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksCreatureYouControlTriggeredAbility; import mage.abilities.effects.Effect; @@ -10,19 +9,21 @@ import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.Duration; +import mage.constants.SubType; import mage.constants.SuperType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.AbilityPredicate; +import java.util.UUID; + /** * * @author emerald000 */ public final class StonebrowKrosanHero extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creature you control with trample"); + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent(" creature you control with trample"); static { filter.add(new AbilityPredicate(TrampleAbility.class)); } diff --git a/Mage.Sets/src/mage/cards/w/WarrenScourgeElf.java b/Mage.Sets/src/mage/cards/w/WarrenScourgeElf.java index 2969aa1cfdc..739f123d832 100644 --- a/Mage.Sets/src/mage/cards/w/WarrenScourgeElf.java +++ b/Mage.Sets/src/mage/cards/w/WarrenScourgeElf.java @@ -1,7 +1,6 @@ package mage.cards.w; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; @@ -10,13 +9,15 @@ import mage.constants.CardType; import mage.constants.SubType; import mage.filter.FilterCard; +import java.util.UUID; + /** * * @author North */ public final class WarrenScourgeElf extends CardImpl { - private static final FilterCard filter = new FilterCard("Goblin"); + private static final FilterCard filter = new FilterCard("Goblins"); static { filter.add(SubType.GOBLIN.getPredicate()); diff --git a/Mage/src/main/java/mage/abilities/effects/common/RegenerateSourceEffect.java b/Mage/src/main/java/mage/abilities/effects/common/RegenerateSourceEffect.java index 9bd10c46457..a1776b4b176 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/RegenerateSourceEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/RegenerateSourceEffect.java @@ -2,10 +2,10 @@ package mage.abilities.effects.common; -import mage.constants.Duration; -import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.effects.ReplacementEffectImpl; +import mage.constants.Duration; +import mage.constants.Outcome; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; @@ -21,6 +21,11 @@ public class RegenerateSourceEffect extends ReplacementEffectImpl { staticText = "Regenerate {this}"; } + public RegenerateSourceEffect(String targetName) { + super(Duration.EndOfTurn, Outcome.Regenerate); + staticText = "Regenerate " + targetName; + } + public RegenerateSourceEffect(final RegenerateSourceEffect effect) { super(effect); } diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/AddCardSubTypeTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/AddCardSubTypeTargetEffect.java index cf3e77643ca..e013d1b60e8 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/AddCardSubTypeTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/AddCardSubTypeTargetEffect.java @@ -47,13 +47,21 @@ public class AddCardSubTypeTargetEffect extends ContinuousEffectImpl { @Override public String getText(Mode mode) { + 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 "); } - sb.append(" becomes ").append(addedSubType).append(" in addition to its other types ").append(duration.toString()); + 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(); } } diff --git a/Mage/src/main/java/mage/game/command/emblems/DomriRadeEmblem.java b/Mage/src/main/java/mage/game/command/emblems/DomriRadeEmblem.java index d71bb577c14..700f2ebbdf7 100644 --- a/Mage/src/main/java/mage/game/command/emblems/DomriRadeEmblem.java +++ b/Mage/src/main/java/mage/game/command/emblems/DomriRadeEmblem.java @@ -1,7 +1,7 @@ package mage.game.command.emblems; -import mage.abilities.Ability; +import mage.abilities.CompoundAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.DoubleStrikeAbility; @@ -22,16 +22,15 @@ public final class DomriRadeEmblem extends Emblem { // "Creatures you control have double strike, trample, hexproof and haste." public DomriRadeEmblem() { - this.setName("Emblem Domri"); + this.setName("Emblem Domri Rade"); FilterPermanent filter = new FilterControlledCreaturePermanent("Creatures"); - GainAbilityControlledEffect effect = new GainAbilityControlledEffect(DoubleStrikeAbility.getInstance(), Duration.EndOfGame, filter); - Ability ability = new SimpleStaticAbility(Zone.COMMAND, effect); - effect = new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.EndOfGame, filter); - ability.addEffect(effect); - effect = new GainAbilityControlledEffect(HexproofAbility.getInstance(), Duration.EndOfGame, filter); - ability.addEffect(effect); - effect = new GainAbilityControlledEffect(HasteAbility.getInstance(), Duration.EndOfGame, filter); - ability.addEffect(effect); - this.getAbilities().add(ability); + + CompoundAbility compoundAbilities = new CompoundAbility( + DoubleStrikeAbility.getInstance(), + TrampleAbility.getInstance(), + HexproofAbility.getInstance(), + HasteAbility.getInstance() + ); + this.getAbilities().add(new SimpleStaticAbility(Zone.COMMAND, new GainAbilityControlledEffect(compoundAbilities, Duration.EndOfGame, filter))); } }