diff --git a/Mage.Sets/src/mage/cards/a/AshenGhoul.java b/Mage.Sets/src/mage/cards/a/AshenGhoul.java index dd6e82e095e..5e9a82f57e3 100644 --- a/Mage.Sets/src/mage/cards/a/AshenGhoul.java +++ b/Mage.Sets/src/mage/cards/a/AshenGhoul.java @@ -1,12 +1,11 @@ package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.condition.Condition; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.Card; @@ -19,8 +18,9 @@ import mage.constants.Zone; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** - * * @author TheElk801 */ public final class AshenGhoul extends CardImpl { @@ -85,6 +85,6 @@ enum AshenGhoulCondition implements Condition { @Override public String toString() { - return "only during your upkeep and only if three or more creature cards are above {this}"; + return "during your upkeep and only if three or more creature cards are above this card"; } } diff --git a/Mage.Sets/src/mage/cards/f/FracturedPowerstone.java b/Mage.Sets/src/mage/cards/f/FracturedPowerstone.java index 844b5135367..33882c5b5c8 100644 --- a/Mage.Sets/src/mage/cards/f/FracturedPowerstone.java +++ b/Mage.Sets/src/mage/cards/f/FracturedPowerstone.java @@ -46,7 +46,7 @@ class FracturedPowerstoneEffect extends OneShotEffect { FracturedPowerstoneEffect() { super(Outcome.Benefit); - staticText = "Roll the planar"; + staticText = "Roll the planar die"; } private FracturedPowerstoneEffect(final FracturedPowerstoneEffect effect) { diff --git a/Mage.Sets/src/mage/cards/g/GeneralJarkeld.java b/Mage.Sets/src/mage/cards/g/GeneralJarkeld.java index 5228667b22a..7644cc8e9b4 100644 --- a/Mage.Sets/src/mage/cards/g/GeneralJarkeld.java +++ b/Mage.Sets/src/mage/cards/g/GeneralJarkeld.java @@ -2,10 +2,10 @@ package mage.cards.g; import mage.MageInt; import mage.abilities.Ability; +import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.IsStepCondition; import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -59,7 +59,9 @@ class GeneralJarkeldSwitchBlockersEffect extends OneShotEffect { GeneralJarkeldSwitchBlockersEffect() { super(Outcome.Benefit); - this.staticText = "Switch the blocking creatures of two target attacking creatures"; + this.staticText = "choose two target blocked attacking creatures. If each of those creatures could be " + + "blocked by all creatures that the other is blocked by, each creature that's blocking exactly one " + + "of those attacking creatures stops blocking it and is blocking the other attacking creature"; } private GeneralJarkeldSwitchBlockersEffect(final GeneralJarkeldSwitchBlockersEffect effect) { diff --git a/Mage.Sets/src/mage/cards/i/IcatianMoneychanger.java b/Mage.Sets/src/mage/cards/i/IcatianMoneychanger.java index af622448496..6be449221af 100644 --- a/Mage.Sets/src/mage/cards/i/IcatianMoneychanger.java +++ b/Mage.Sets/src/mage/cards/i/IcatianMoneychanger.java @@ -1,11 +1,11 @@ package mage.cards.i; import mage.MageInt; +import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.IsStepCondition; import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.dynamicvalue.common.CountersSourceCount; import mage.abilities.effects.common.DamageControllerEffect; import mage.abilities.effects.common.GainLifeEffect; @@ -44,7 +44,8 @@ public final class IcatianMoneychanger extends CardImpl { // Sacrifice Icatian Moneychanger: You gain 1 life for each credit counter on Icatian Moneychanger. Activate this ability only during your upkeep. this.addAbility(new ActivateIfConditionActivatedAbility( - new GainLifeEffect(new CountersSourceCount(CounterType.CREDIT)), + new GainLifeEffect(new CountersSourceCount(CounterType.CREDIT)) + .setText("you gain 1 life for each credit counter on this creature"), new SacrificeSourceCost(), IsStepCondition.getMyUpkeep() )); } diff --git a/Mage.Sets/src/mage/cards/i/IceCauldron.java b/Mage.Sets/src/mage/cards/i/IceCauldron.java index b186b8b45b5..1980a525c01 100644 --- a/Mage.Sets/src/mage/cards/i/IceCauldron.java +++ b/Mage.Sets/src/mage/cards/i/IceCauldron.java @@ -78,7 +78,7 @@ class IceCauldronExileEffect extends OneShotEffect { public IceCauldronExileEffect() { super(Outcome.Benefit); - this.staticText = "and exile a nonland card from your hand. You may cast that card for as long as it remains exiled"; + this.staticText = "you may exile a nonland card from your hand. You may cast that card for as long as it remains exiled"; } private IceCauldronExileEffect(final IceCauldronExileEffect effect) { @@ -157,7 +157,7 @@ class IceCauldronNoteManaEffect extends OneShotEffect { public IceCauldronNoteManaEffect() { super(Outcome.Benefit); - this.staticText = "Note the type and amount of mana spent to pay this activation cost"; + this.staticText = "and note the type and amount of mana spent to pay this activation cost"; } private IceCauldronNoteManaEffect(final IceCauldronNoteManaEffect effect) { diff --git a/Mage.Sets/src/mage/cards/i/InfiniteHourglass.java b/Mage.Sets/src/mage/cards/i/InfiniteHourglass.java index e086c769569..794d4a13062 100644 --- a/Mage.Sets/src/mage/cards/i/InfiniteHourglass.java +++ b/Mage.Sets/src/mage/cards/i/InfiniteHourglass.java @@ -44,7 +44,7 @@ public final class InfiniteHourglass extends CardImpl { // {3}: Remove a time counter from Infinite Hourglass. Any player may activate this ability but only during any upkeep step. this.addAbility(new ActivateIfConditionActivatedAbility( new RemoveCounterSourceEffect(CounterType.TIME.createInstance()), new GenericManaCost(3), condition - ).setMayActivate(TargetController.ANY)); + ).withConditionText("any player may activate this ability but only during any upkeep step").setMayActivate(TargetController.ANY)); } private InfiniteHourglass(final InfiniteHourglass card) { diff --git a/Mage.Sets/src/mage/cards/n/NemesisPhoenix.java b/Mage.Sets/src/mage/cards/n/NemesisPhoenix.java index d58da3b3b3e..9bf9a9f8466 100644 --- a/Mage.Sets/src/mage/cards/n/NemesisPhoenix.java +++ b/Mage.Sets/src/mage/cards/n/NemesisPhoenix.java @@ -39,7 +39,7 @@ public final class NemesisPhoenix extends CardImpl { this.addAbility(new ActivateIfConditionActivatedAbility( Zone.GRAVEYARD, new ReturnToBattlefieldUnderOwnerControlSourceEffect(true, true, -1) - .setText("return {this} from your graveyard to the battlefield tapped and attacking"), + .setText("return this card from your graveyard to the battlefield tapped and attacking"), new ManaCostsImpl<>("{2}{R}"), NemesisPhoenixCondition.instance )); } diff --git a/Mage/src/main/java/mage/abilities/common/ActivateIfConditionActivatedAbility.java b/Mage/src/main/java/mage/abilities/common/ActivateIfConditionActivatedAbility.java index ad45dc342fe..06906571472 100644 --- a/Mage/src/main/java/mage/abilities/common/ActivateIfConditionActivatedAbility.java +++ b/Mage/src/main/java/mage/abilities/common/ActivateIfConditionActivatedAbility.java @@ -10,6 +10,7 @@ import mage.constants.EffectType; import mage.constants.TimingRule; import mage.constants.Zone; import mage.game.Game; +import mage.util.CardUtil; /** * @author LevelX2 @@ -53,22 +54,28 @@ public class ActivateIfConditionActivatedAbility extends ActivatedAbilityImpl { @Override public String getRule() { - StringBuilder sb = new StringBuilder(super.getRule()); - if (condition.toString().startsWith("You may also")) { - sb.append(' ').append(condition.toString()).append('.'); - return sb.toString(); + if (conditionText != null) { + if (conditionText.isEmpty()) { + return super.getRule(); + } + return super.getRule() + ' ' + CardUtil.getTextWithFirstCharUpperCase(conditionText) + '.'; } + String conditionText = condition.toString(); + if (conditionText.startsWith("You may also")) { + return super.getRule() + ' ' + conditionText + '.'; + } + StringBuilder sb = new StringBuilder(super.getRule()); if (condition instanceof InvertCondition) { sb.append(" You can't activate this ability "); } else { sb.append(" Activate only "); } - if (!condition.toString().startsWith("during") - && !condition.toString().startsWith("before") - && !condition.toString().startsWith("if")) { + if (!conditionText.startsWith("during") + && !conditionText.startsWith("before") + && !conditionText.startsWith("if")) { sb.append("if "); } - sb.append(condition.toString()); + sb.append(conditionText); if (timing == TimingRule.SORCERY) { sb.append(" and only as a sorcery"); }