From bb1a0859620d74e1a2933a21a9ae59ab8b549f13 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Tue, 2 Feb 2021 16:30:12 -0500 Subject: [PATCH] more text fixes --- .../src/mage/cards/r/RousingOfSouls.java | 2 +- .../src/mage/cards/s/SelvalasCharge.java | 2 +- .../src/mage/cards/w/WoodvineElemental.java | 2 +- .../src/mage/cards/w/WoollyRazorback.java | 2 +- Mage.Sets/src/mage/cards/w/WordsOfWisdom.java | 4 +-- .../src/mage/cards/w/WormsOfTheEarth.java | 2 +- .../src/mage/cards/w/WormwoodTreefolk.java | 4 +-- Mage.Sets/src/mage/cards/w/WrapInFlames.java | 12 ++++----- Mage.Sets/src/mage/cards/w/WreckingOgre.java | 18 +++++++------ .../src/mage/cards/w/WrensRunVanquisher.java | 2 +- .../src/mage/cards/w/WrexialTheRisenDeep.java | 4 +-- .../abilities/keyword/ChampionAbility.java | 2 +- .../mage/abilities/keyword/FadingAbility.java | 2 +- .../abilities/keyword/ForecastAbility.java | 25 +++++++------------ 14 files changed, 39 insertions(+), 44 deletions(-) diff --git a/Mage.Sets/src/mage/cards/r/RousingOfSouls.java b/Mage.Sets/src/mage/cards/r/RousingOfSouls.java index 2741301ba8..8b455ab43f 100644 --- a/Mage.Sets/src/mage/cards/r/RousingOfSouls.java +++ b/Mage.Sets/src/mage/cards/r/RousingOfSouls.java @@ -47,7 +47,7 @@ class RousingOfSoulsEffect extends OneShotEffect { public RousingOfSoulsEffect() { super(Outcome.Benefit); - this.staticText = "Parley — Each player reveals the top card of their library. For each nonland card revealed this way, you create a 1/1 white Spirit creature token with flying"; + this.staticText = "Parley — Each player reveals the top card of their library. For each nonland card revealed this way, you create a 1/1 white Spirit creature token with flying"; } public RousingOfSoulsEffect(final RousingOfSoulsEffect effect) { diff --git a/Mage.Sets/src/mage/cards/s/SelvalasCharge.java b/Mage.Sets/src/mage/cards/s/SelvalasCharge.java index d75a5ca0e4..41d52b62af 100644 --- a/Mage.Sets/src/mage/cards/s/SelvalasCharge.java +++ b/Mage.Sets/src/mage/cards/s/SelvalasCharge.java @@ -46,7 +46,7 @@ class SelvalasChargeEffect extends OneShotEffect { public SelvalasChargeEffect() { super(Outcome.Benefit); - this.staticText = "Parley — Each player reveals the top card of their library. For each nonland card revealed this way, you create a 3/3 green Elephant creature token"; + this.staticText = "Parley — Each player reveals the top card of their library. For each nonland card revealed this way, you create a 3/3 green Elephant creature token"; } public SelvalasChargeEffect(final SelvalasChargeEffect effect) { diff --git a/Mage.Sets/src/mage/cards/w/WoodvineElemental.java b/Mage.Sets/src/mage/cards/w/WoodvineElemental.java index 710eae7d7f..46d2659f0a 100644 --- a/Mage.Sets/src/mage/cards/w/WoodvineElemental.java +++ b/Mage.Sets/src/mage/cards/w/WoodvineElemental.java @@ -27,7 +27,7 @@ import mage.players.Player; */ public final class WoodvineElemental extends CardImpl { - static final private String rule = "Parley — Whenever {this} attacks, each player reveals the top card of their library. " + static final private String rule = "Parley — Whenever {this} attacks, each player reveals the top card of their library. " + "For each nonland card revealed this way, attacking creatures you control get +1/+1 until end of turn. Then each player draws a card."; public WoodvineElemental(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/w/WoollyRazorback.java b/Mage.Sets/src/mage/cards/w/WoollyRazorback.java index 101a29b030..d0b5e5ef2e 100644 --- a/Mage.Sets/src/mage/cards/w/WoollyRazorback.java +++ b/Mage.Sets/src/mage/cards/w/WoollyRazorback.java @@ -48,7 +48,7 @@ public final class WoollyRazorback extends CardImpl { new SourceHasCounterCondition(CounterType.ICE), "and it has defender")); this.addAbility(ability); // Whenever Woolly Razorback blocks, remove an ice counter from it. - this.addAbility(new BlocksSourceTriggeredAbility(new RemoveCounterSourceEffect(CounterType.ICE.createInstance()), false)); + this.addAbility(new BlocksSourceTriggeredAbility(new RemoveCounterSourceEffect(CounterType.ICE.createInstance()).setText("remove an ice counter from it"), false)); } public WoollyRazorback(final WoollyRazorback card) { diff --git a/Mage.Sets/src/mage/cards/w/WordsOfWisdom.java b/Mage.Sets/src/mage/cards/w/WordsOfWisdom.java index a380639980..f5f939d0cf 100644 --- a/Mage.Sets/src/mage/cards/w/WordsOfWisdom.java +++ b/Mage.Sets/src/mage/cards/w/WordsOfWisdom.java @@ -24,7 +24,7 @@ public final class WordsOfWisdom extends CardImpl { // You draw two cards, then each other player draws a card. - this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2)); + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2).setText("you draw two cards")); this.getSpellAbility().addEffect(new WordsOfWisdomEffect()); } @@ -42,7 +42,7 @@ class WordsOfWisdomEffect extends OneShotEffect { public WordsOfWisdomEffect() { super(Outcome.Detriment); - this.staticText = "then each other player draws a card"; + this.staticText = ", then each other player draws a card"; } public WordsOfWisdomEffect(final WordsOfWisdomEffect effect) { diff --git a/Mage.Sets/src/mage/cards/w/WormsOfTheEarth.java b/Mage.Sets/src/mage/cards/w/WormsOfTheEarth.java index 6503ed779f..a3fc5545e8 100644 --- a/Mage.Sets/src/mage/cards/w/WormsOfTheEarth.java +++ b/Mage.Sets/src/mage/cards/w/WormsOfTheEarth.java @@ -36,7 +36,7 @@ public final class WormsOfTheEarth extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new WormsOfTheEarthEnterEffect())); // At the beginning of each upkeep, any player may sacrifice two lands or have Worms of the Earth deal 5 damage to that player. If a player does either, destroy Worms of the Earth. - this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new WormsOfTheEarthDestroyEffect(), TargetController.ANY, false)); + this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new WormsOfTheEarthDestroyEffect(), TargetController.EACH_PLAYER, false)); } public WormsOfTheEarth(final WormsOfTheEarth card) { diff --git a/Mage.Sets/src/mage/cards/w/WormwoodTreefolk.java b/Mage.Sets/src/mage/cards/w/WormwoodTreefolk.java index 372e3f6646..07c818aa4b 100644 --- a/Mage.Sets/src/mage/cards/w/WormwoodTreefolk.java +++ b/Mage.Sets/src/mage/cards/w/WormwoodTreefolk.java @@ -32,13 +32,13 @@ public final class WormwoodTreefolk extends CardImpl { // {G}{G}: Wormwood Treefolk gains forestwalk until end of turn and deals 2 damage to you. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(new ForestwalkAbility(false), Duration.EndOfTurn), new ManaCostsImpl("{G}{G}")); - ability.addEffect(new DamageControllerEffect(2)); + ability.addEffect(new DamageControllerEffect(2).setText("and deals 2 damage to you")); this.addAbility(ability); // {B}{B}: Wormwood Treefolk gains swampwalk until end of turn and deals 2 damage to you. ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(new SwampwalkAbility(false), Duration.EndOfTurn), new ManaCostsImpl("{B}{B}")); - ability.addEffect(new DamageControllerEffect(2)); + ability.addEffect(new DamageControllerEffect(2).setText("and deals 2 damage to you")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/w/WrapInFlames.java b/Mage.Sets/src/mage/cards/w/WrapInFlames.java index 27d80b4fb0..b10f6b78d9 100644 --- a/Mage.Sets/src/mage/cards/w/WrapInFlames.java +++ b/Mage.Sets/src/mage/cards/w/WrapInFlames.java @@ -1,7 +1,5 @@ - package mage.cards.w; -import java.util.UUID; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.combat.CantBlockTargetEffect; import mage.cards.CardImpl; @@ -10,19 +8,19 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** - * * @author North */ public final class WrapInFlames extends CardImpl { public WrapInFlames(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{R}"); - + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{R}"); // Wrap in Flames deals 1 damage to each of up to three target creatures. Those creatures can't block this turn. - this.getSpellAbility().addEffect(new DamageTargetEffect(1)); - this.getSpellAbility().addEffect(new CantBlockTargetEffect(Duration.EndOfTurn)); + this.getSpellAbility().addEffect(new DamageTargetEffect(1).setText("{this} deals 1 damage to each of up to three target creatures.")); + this.getSpellAbility().addEffect(new CantBlockTargetEffect(Duration.EndOfTurn).setText("Those creatures can't block this turn")); this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 3)); } diff --git a/Mage.Sets/src/mage/cards/w/WreckingOgre.java b/Mage.Sets/src/mage/cards/w/WreckingOgre.java index 3f70285ed1..a8004852e2 100644 --- a/Mage.Sets/src/mage/cards/w/WreckingOgre.java +++ b/Mage.Sets/src/mage/cards/w/WreckingOgre.java @@ -1,7 +1,5 @@ - package mage.cards.w; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.common.continuous.BoostTargetEffect; @@ -11,17 +9,18 @@ import mage.abilities.keyword.DoubleStrikeAbility; 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 java.util.UUID; /** - * * @author Plopman */ public final class WreckingOgre extends CardImpl { public WreckingOgre(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}"); this.subtype.add(SubType.OGRE); this.subtype.add(SubType.WARRIOR); @@ -30,9 +29,14 @@ public final class WreckingOgre extends CardImpl { // Double strike this.addAbility(DoubleStrikeAbility.getInstance()); + // Bloodrush - {3}{R}{R}, Discard Wrecking Ogre: Target attacking creature gets +3/+3 and gains double strike until end of turn. - Ability ability = new BloodrushAbility("{3}{R}{R}", new BoostTargetEffect(3, 3, Duration.EndOfTurn)); - ability.addEffect(new GainAbilityTargetEffect(DoubleStrikeAbility.getInstance(), Duration.EndOfTurn)); + Ability ability = new BloodrushAbility("{3}{R}{R}", new BoostTargetEffect( + 3, 3, Duration.EndOfTurn + ).setText("target attacking creature gets +3/+3")); + ability.addEffect(new GainAbilityTargetEffect( + DoubleStrikeAbility.getInstance(), Duration.EndOfTurn + ).setText("and gains double strike until end of turn")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/w/WrensRunVanquisher.java b/Mage.Sets/src/mage/cards/w/WrensRunVanquisher.java index 4eee3a1b6f..d56ec48001 100644 --- a/Mage.Sets/src/mage/cards/w/WrensRunVanquisher.java +++ b/Mage.Sets/src/mage/cards/w/WrensRunVanquisher.java @@ -37,7 +37,7 @@ public final class WrensRunVanquisher extends CardImpl { this.getSpellAbility().addCost(new OrCost( new RevealTargetFromHandCost(new TargetCardInHand(filter)), new GenericManaCost(3), - "reveal a Elf card from your hand or pay {3}")); + "reveal an Elf card from your hand or pay {3}")); // Deathtouch this.addAbility(DeathtouchAbility.getInstance()); diff --git a/Mage.Sets/src/mage/cards/w/WrexialTheRisenDeep.java b/Mage.Sets/src/mage/cards/w/WrexialTheRisenDeep.java index f4c5dde4c7..195b6d133a 100644 --- a/Mage.Sets/src/mage/cards/w/WrexialTheRisenDeep.java +++ b/Mage.Sets/src/mage/cards/w/WrexialTheRisenDeep.java @@ -109,7 +109,7 @@ class WrexialTheRisenDeepTriggeredAbility extends TriggeredAbilityImpl { return "Whenever {this} deals combat damage to a player, " + "you may cast target instant or sorcery card " + "from that player's graveyard without paying its mana cost. " - + "If that card would be put into a graveyard this turn, exile it instead"; + + "If that spell would be put into a graveyard this turn, exile it instead"; } } @@ -119,7 +119,7 @@ class WrexialTheRisenDeepEffect extends OneShotEffect { super(Outcome.PlayForFree); staticText = "you may cast target instant or sorcery card from " + "that player's graveyard without paying its mana cost. " - + "If that card would be put into a graveyard this turn, exile it instead"; + + "If that spell would be put into a graveyard this turn, exile it instead"; } public WrexialTheRisenDeepEffect(final WrexialTheRisenDeepEffect effect) { diff --git a/Mage/src/main/java/mage/abilities/keyword/ChampionAbility.java b/Mage/src/main/java/mage/abilities/keyword/ChampionAbility.java index 620bd70251..ee8a5f517a 100644 --- a/Mage/src/main/java/mage/abilities/keyword/ChampionAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/ChampionAbility.java @@ -126,7 +126,7 @@ public class ChampionAbility extends StaticAbility { @Override public String getRule() { StringBuilder sb = new StringBuilder("Champion ").append(objectDescription); - sb.append("(When this enters the battlefield, sacrifice it unless you exile another "); + sb.append(" (When this enters the battlefield, sacrifice it unless you exile another "); sb.append(objectDescription); sb.append(" you control. When this leaves the battlefield, that card returns to the battlefield.)"); return sb.toString(); diff --git a/Mage/src/main/java/mage/abilities/keyword/FadingAbility.java b/Mage/src/main/java/mage/abilities/keyword/FadingAbility.java index 09c2adc224..03d388091c 100644 --- a/Mage/src/main/java/mage/abilities/keyword/FadingAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/FadingAbility.java @@ -34,7 +34,7 @@ public class FadingAbility extends EntersBattlefieldAbility { ruleText = "Fading " + fadeCounter + (shortRuleText ? "" : " (This permanent enters the battlefield with " + fadeCounter + " fade counters on it." - + " At the beginning of your upkeep, remove a fade counter from this permanent. If you can't, sacrifice the permanent."); + + " At the beginning of your upkeep, remove a fade counter from this permanent. If you can't, sacrifice the permanent.)"); } public FadingAbility(final FadingAbility ability) { diff --git a/Mage/src/main/java/mage/abilities/keyword/ForecastAbility.java b/Mage/src/main/java/mage/abilities/keyword/ForecastAbility.java index 3c78dc5c45..5cb06f17dc 100644 --- a/Mage/src/main/java/mage/abilities/keyword/ForecastAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/ForecastAbility.java @@ -1,15 +1,14 @@ package mage.abilities.keyword; -import mage.abilities.common.LimitedTimesPerTurnActivatedAbility; +import mage.abilities.ActivatedAbilityImpl; +import mage.abilities.condition.Condition; +import mage.abilities.condition.common.IsStepCondition; import mage.abilities.costs.Cost; import mage.abilities.costs.common.RevealSourceFromYourHandCost; import mage.abilities.effects.Effect; import mage.constants.PhaseStep; import mage.constants.Zone; -import mage.game.Game; - -import java.util.UUID; /** * 702.56. Forecast 702.56a A forecast ability is a special kind of activated @@ -25,10 +24,14 @@ import java.util.UUID; * * @author LevelX2 */ -public class ForecastAbility extends LimitedTimesPerTurnActivatedAbility { +public class ForecastAbility extends ActivatedAbilityImpl { + + private static final Condition upkeepCondition = new IsStepCondition(PhaseStep.UPKEEP, true); public ForecastAbility(Effect effect, Cost cost) { super(Zone.HAND, effect, cost); + this.maxActivationsPerTurn = 1; + this.condition = upkeepCondition; this.addCost(new RevealSourceFromYourHandCost()); } @@ -41,18 +44,8 @@ public class ForecastAbility extends LimitedTimesPerTurnActivatedAbility { return new ForecastAbility(this); } - @Override - public ActivationStatus canActivate(UUID playerId, Game game) { - // May be activated only during the upkeep step of the card's owner - // Because it can only be activated from a players hand it should be ok to check here with controllerId instead of card.getOwnerId(). - if (!game.isActivePlayer(controllerId) || PhaseStep.UPKEEP != game.getStep().getType()) { - return ActivationStatus.getFalse(); - } - return super.canActivate(playerId, game); - } - @Override public String getRule() { - return "Forecast — " + super.getRule() + " (Activate this ability only during your upkeep.)"; + return "Forecast — " + super.getRule() + " (Activate this ability only during your upkeep and only once each turn)"; } }