forked from External/mage
fix (mostly text) for [MH3] and [M3C]
This commit is contained in:
parent
3dc9f5d382
commit
60193e797d
20 changed files with 68 additions and 45 deletions
|
|
@ -31,7 +31,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class ArgentDais extends CardImpl {
|
||||
|
||||
private static final FilterNonlandPermanent filter = new FilterNonlandPermanent("another nonland permanent");
|
||||
private static final FilterNonlandPermanent filter = new FilterNonlandPermanent("another target nonland permanent");
|
||||
|
||||
static {
|
||||
filter.add(AnotherPredicate.instance);
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ public final class AzlaskTheSwellingScourge extends CardImpl {
|
|||
// Scions and Spawns you control gain indestructible and annihilator 1 until end of turn.
|
||||
Ability ability = new SimpleActivatedAbility(new BoostControlledEffect(
|
||||
SourceControllerCountersCount.EXPERIENCE, SourceControllerCountersCount.EXPERIENCE, Duration.EndOfTurn
|
||||
).setText("creatures you control get +X/+X until end of turn, where X is the number of the experience counters you have."), new ManaCostsImpl<>("{W}{U}{B}{R}{G}"));
|
||||
).setText("creatures you control get +X/+X until end of turn, where X is the number of experience counters you have."), new ManaCostsImpl<>("{W}{U}{B}{R}{G}"));
|
||||
ability.addEffect(new GainAbilityControlledEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn, filter2)
|
||||
.setText("Scions and Spawns you control gain indestructible"));
|
||||
ability.addEffect(new GainAbilityControlledEffect(new AnnihilatorAbility(1), Duration.EndOfTurn, filter2)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.AsEntersBattlefieldAbility;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
|
|
@ -8,22 +7,23 @@ import mage.abilities.costs.common.PayLifeCost;
|
|||
import mage.abilities.effects.common.ExileGraveyardAllTargetPlayerEffect;
|
||||
import mage.abilities.effects.common.TapSourceUnlessPaysEffect;
|
||||
import mage.abilities.mana.BlackManaAbility;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.TargetPlayer;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.cards.ModalDoubleFacedCard;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.TargetPlayer;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author grimreap124
|
||||
*/
|
||||
public final class BoggartTrawler extends ModalDoubleFacedCard {
|
||||
|
||||
public BoggartTrawler(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo,
|
||||
new CardType[] { CardType.CREATURE }, new SubType[] { SubType.GOBLIN }, "{2}{B}",
|
||||
"Boggart Bog", new CardType[] { CardType.LAND }, new SubType[] {}, "");
|
||||
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.GOBLIN}, "{2}{B}",
|
||||
"Boggart Bog", new CardType[]{CardType.LAND}, new SubType[]{}, "");
|
||||
|
||||
this.getLeftHalfCard().setPT(new MageInt(3), new MageInt(1));
|
||||
|
||||
|
|
@ -36,7 +36,7 @@ public final class BoggartTrawler extends ModalDoubleFacedCard {
|
|||
// As Boggart Bog enters the battlefield, you may pay 3 life. If you don’t, it enters the battlefield tapped.
|
||||
this.getRightHalfCard()
|
||||
.addAbility(new AsEntersBattlefieldAbility(new TapSourceUnlessPaysEffect(new PayLifeCost(3)),
|
||||
"you may pay 3 life. If you don’t, it enters the battlefield tapped"));
|
||||
"you may pay 3 life. If you don't, it enters the battlefield tapped"));
|
||||
this.getRightHalfCard().addAbility(new BlackManaAbility());
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,7 +38,10 @@ public final class BreakerOfCreation extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
// When you cast this spell, you gain 1 life for each colorless permanent you control.
|
||||
this.addAbility(new CastSourceTriggeredAbility(new GainLifeEffect(xValue)));
|
||||
this.addAbility(new CastSourceTriggeredAbility(
|
||||
new GainLifeEffect(xValue)
|
||||
.setText("you gain 1 life for each colorless permanent you control")
|
||||
));
|
||||
|
||||
// Hexproof from each color
|
||||
this.addAbility(HexproofFromEachColorAbility.getInstance());
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ public final class CaythFamedMechanist extends CardImpl {
|
|||
// Other nontoken creatures you control have fabricate 1.
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
|
||||
new FabricateAbility(1), Duration.WhileOnBattlefield,
|
||||
StaticFilters.FILTER_CREATURES_NON_TOKEN
|
||||
StaticFilters.FILTER_CREATURES_NON_TOKEN, true
|
||||
)));
|
||||
|
||||
// {2}, {T}: Choose one --
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ public final class ConsumingCorruption extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{B}{B}");
|
||||
|
||||
// Consuming Corruption deals X damage to target creature or planeswalker and you gain X life, where X is the number of Swamps you control.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(xValue).setText("deals X damage to target creature or planeswalker"));
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(xValue).setText("{this} deals X damage to target creature or planeswalker"));
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(xValue).setText("and you gain X life, where X is the number of Swamps you control"));
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker());
|
||||
this.getSpellAbility().addHint(hint);
|
||||
|
|
|
|||
|
|
@ -39,8 +39,8 @@ public final class FlareOfFortitude extends CardImpl {
|
|||
|
||||
// Until end of turn, your life total can't change, and permanents you control gain hexproof and indestructible.
|
||||
this.getSpellAbility().addEffect(
|
||||
new LifeTotalCantChangeControllerEffect(Duration.UntilYourNextTurn)
|
||||
.setText("Until your next turn, your life total can't change")
|
||||
new LifeTotalCantChangeControllerEffect(Duration.EndOfTurn)
|
||||
.setText("Until end of turn, your life total can't change")
|
||||
);
|
||||
this.getSpellAbility().addEffect(
|
||||
new GainAbilityAllEffect(
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ public final class FlareOfMalice extends CardImpl {
|
|||
this.addAbility(new AlternativeCostSourceAbility(new SacrificeTargetCost(filter)).setRuleAtTheTop(true));
|
||||
|
||||
// Each opponent sacrifices a creature or planeswalker with the greatest converted mana value among creatures and planeswalkers they control.
|
||||
this.getSpellAbility().addEffect(new SacrificeOpponentsEffect(filter));
|
||||
this.getSpellAbility().addEffect(new SacrificeOpponentsEffect(filterCreatureOrPlaneswalker));
|
||||
}
|
||||
|
||||
private FlareOfMalice(final FlareOfMalice card) {
|
||||
|
|
|
|||
|
|
@ -1,33 +1,33 @@
|
|||
package mage.cards.h;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.constants.SubType;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.effects.common.CastSourceTriggeredAbility;
|
||||
import mage.abilities.effects.common.UntapTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainControlTargetEffect;
|
||||
import mage.abilities.keyword.DevoidAbility;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.abilities.keyword.AnnihilatorAbility;
|
||||
import mage.abilities.keyword.DevoidAbility;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import mage.target.targetadjustment.EachOpponentPermanentTargetsAdjuster;
|
||||
import mage.target.targetpointer.EachTargetPointer;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author grimreap124
|
||||
*/
|
||||
public final class HideousTaskmaster extends CardImpl {
|
||||
|
||||
public HideousTaskmaster(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[] { CardType.CREATURE }, "{6}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{6}{R}");
|
||||
|
||||
this.subtype.add(SubType.ELDRAZI);
|
||||
this.power = new MageInt(7);
|
||||
|
|
@ -48,10 +48,19 @@ public final class HideousTaskmaster extends CardImpl {
|
|||
ability.addEffect(new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn)
|
||||
.setTargetPointer(new EachTargetPointer()).setText("They gain trample"));
|
||||
ability.addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn)
|
||||
.setTargetPointer(new EachTargetPointer()).setText("haste"));
|
||||
.setTargetPointer(new EachTargetPointer()).setText(", haste"));
|
||||
ability.addEffect(new GainAbilityTargetEffect(new AnnihilatorAbility(1), Duration.EndOfTurn)
|
||||
.setTargetPointer(new EachTargetPointer()).setText("and annihilator 1 until end of turn"));
|
||||
.setTargetPointer(new EachTargetPointer()).setText(", and annihilator 1 until end of turn"));
|
||||
this.addAbility(ability);
|
||||
|
||||
// Trample
|
||||
this.addAbility(TrampleAbility.getInstance());
|
||||
|
||||
// Haste
|
||||
this.addAbility(HasteAbility.getInstance());
|
||||
|
||||
// Annihilator 1
|
||||
this.addAbility(new AnnihilatorAbility(1));
|
||||
}
|
||||
|
||||
private HideousTaskmaster(final HideousTaskmaster card) {
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ public final class KamiOfJealousThirst extends CardImpl {
|
|||
);
|
||||
ability.addEffect(new GainLifeEffect(2).concatBy("and"));
|
||||
ability.setMaxActivationsPerTurn(1);
|
||||
ability.addEffect(new InfoEffect("This ability costs {4}{B} less to activate if you've drawn three or more cards this turn."));
|
||||
ability.addEffect(new InfoEffect("This ability costs {4}{B} less to activate if you've drawn three or more cards this turn. Activate only once each turn."));
|
||||
ability.setCostAdjuster(KamiOfJealousThirstAdjuster.instance);
|
||||
this.addAbility(ability.addHint(CardsDrawnThisTurnDynamicValue.getHint()));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import mage.abilities.keyword.HasteAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -29,7 +30,7 @@ public final class RecklessPyrosurfer extends CardImpl {
|
|||
this.addAbility(HasteAbility.getInstance());
|
||||
|
||||
// Landfall -- Whenever a land enters the battlefield under your control, Reckless Pyrosurfer gains battle cry until end of turn.
|
||||
this.addAbility(new LandfallAbility(new GainAbilitySourceEffect(new BattleCryAbility())));
|
||||
this.addAbility(new LandfallAbility(new GainAbilitySourceEffect(new BattleCryAbility(), Duration.EndOfTurn)));
|
||||
}
|
||||
|
||||
private RecklessPyrosurfer(final RecklessPyrosurfer card) {
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ public final class RipplesOfUndeath extends CardImpl {
|
|||
public RipplesOfUndeath(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{B}");
|
||||
|
||||
// At the beginning of your precombat main phase, mill three cards. Then you may pay {1} and 3 life. If you do, put a card from among those cards into your hand.
|
||||
// At the beginning of your precombat main phase, mill three cards. Then you may pay {1} and 3 life. If you do, put one of the cards milled this way into your hand.
|
||||
this.addAbility(new BeginningOfPreCombatMainTriggeredAbility(
|
||||
new RipplesOfUndeathEffect(), TargetController.YOU, false
|
||||
));
|
||||
|
|
@ -51,7 +51,7 @@ class RipplesOfUndeathEffect extends OneShotEffect {
|
|||
|
||||
RipplesOfUndeathEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "mill three cards. Then you may pay {1} and 3 life. If you do, put a card from among those cards into your hand.";
|
||||
staticText = "mill three cards. Then you may pay {1} and 3 life. If you do, put one of the cards milled this way into your hand.";
|
||||
}
|
||||
|
||||
private RipplesOfUndeathEffect(final RipplesOfUndeathEffect effect) {
|
||||
|
|
|
|||
|
|
@ -69,7 +69,11 @@ public final class SorinRavenousNeonate extends CardImpl {
|
|||
this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new FoodToken()), 2));
|
||||
|
||||
// -1: Sorin, Ravenous Neonate deals damage equal to the amount of life you gained this turn to any target.
|
||||
Ability ability = new LoyaltyAbility(new DamageTargetEffect(ControllerGainedLifeCount.instance), -1);
|
||||
Ability ability = new LoyaltyAbility(
|
||||
new DamageTargetEffect(ControllerGainedLifeCount.instance)
|
||||
.setText("{this} deals damage equal to the amount of life you gained this turn to any target"),
|
||||
-1
|
||||
);
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability.addHint(ControllerGainedLifeCount.getHint()), new PlayerGainedLifeWatcher());
|
||||
|
||||
|
|
|
|||
|
|
@ -27,9 +27,7 @@ public final class StaticPrison extends CardImpl {
|
|||
// When Static Prison enters the battlefield, exile target nonland permanent an opponent controls until Static Prison leaves the battlefield. You get {E}{E}.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new ExileUntilSourceLeavesEffect());
|
||||
ability.addEffect(new GetEnergyCountersControllerEffect(2));
|
||||
ability.addTarget(new TargetPermanent(
|
||||
0, 1, StaticFilters.FILTER_OPPONENTS_PERMANENT_NON_LAND
|
||||
));
|
||||
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_OPPONENTS_PERMANENT_NON_LAND));
|
||||
this.addAbility(ability);
|
||||
|
||||
// At the beginning of your precombat main phase, sacrifice Static Prison unless you pay {E}.
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ class SuppressionRayTargetEffect extends OneShotEffect {
|
|||
|
||||
SuppressionRayTargetEffect() {
|
||||
super(Outcome.Tap);
|
||||
staticText = "Tap all creatures target player controls."
|
||||
staticText = "Tap all creatures target player controls. "
|
||||
+ "You may pay X {E}, then choose up to X creatures tapped this way. "
|
||||
+ "Put a stun counter on each of them.";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package mage.cards.t;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.LandfallAbility;
|
||||
|
|
@ -11,24 +10,25 @@ import mage.abilities.effects.ContinuousEffectImpl;
|
|||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.keyword.DredgeAbility;
|
||||
import mage.cards.Card;
|
||||
import mage.constants.*;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.PlantToken;
|
||||
import mage.game.permanent.token.ZombieToken;
|
||||
import mage.players.Player;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Grath
|
||||
*/
|
||||
public final class TheNecrobloom extends CardImpl {
|
||||
|
||||
public TheNecrobloom(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{B}{G}");
|
||||
|
||||
|
||||
this.supertype.add(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.PLANT);
|
||||
this.power = new MageInt(2);
|
||||
|
|
@ -41,7 +41,7 @@ public final class TheNecrobloom extends CardImpl {
|
|||
new CreateTokenEffect(new ZombieToken()),
|
||||
new CreateTokenEffect(new PlantToken()),
|
||||
TheNecrobloomCondition.instance, "create a 0/1 green Plant creature token. If you control " +
|
||||
"seven or more lands with different names, create 2/2 black Zombie creature token instead"
|
||||
"seven or more lands with different names, create a 2/2 black Zombie creature token instead"
|
||||
)));
|
||||
|
||||
// Land cards in your graveyard have dredge 2.
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ public final class ThrabenCharm extends CardImpl {
|
|||
// Choose one --
|
||||
// * Thraben Charm deals damage equal to twice the number of creatures you control to target creature.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(xValue)
|
||||
.setText("{this} deals damage equal to the number of creatures you control to target creature or planeswalker"));
|
||||
.setText("{this} deals damage equal to twice the number of creatures you control to target creature"));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
this.getSpellAbility().addHint(CreaturesYouControlHint.instance);
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import mage.abilities.common.SimpleStaticAbility;
|
|||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.common.SourceMatchesFilterCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostEnchantedEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.keyword.BestowAbility;
|
||||
|
|
@ -46,7 +46,7 @@ public final class TritonWavebreaker extends CardImpl {
|
|||
)));
|
||||
|
||||
// Enchanted creature gets +1/+1 and has prowess.
|
||||
Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(1, 1));
|
||||
Ability ability = new SimpleStaticAbility(new BoostEnchantedEffect(1, 1));
|
||||
ability.addEffect(new GainAbilityAttachedEffect(
|
||||
new ProwessAbility(), AttachmentType.AURA
|
||||
).setText("and has prowess"));
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ public final class WhiteOrchidPhantom extends CardImpl {
|
|||
|
||||
// When White Orchid Phantom enters the battlefield, destroy up to one target nonbasic land. Its controller may search their library for a basic land card, put it onto the battlefield tapped, then shuffle.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect());
|
||||
ability.addTarget(new TargetNonBasicLandPermanent());
|
||||
ability.addTarget(new TargetNonBasicLandPermanent(0, 1));
|
||||
ability.addEffect(new SearchLibraryPutInPlayTargetControllerEffect(true));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,10 +11,18 @@ import mage.filter.predicate.Predicates;
|
|||
*/
|
||||
public class TargetNonBasicLandPermanent extends TargetLandPermanent {
|
||||
|
||||
private static final FilterLandPermanent filter = new FilterLandPermanent("nonbasic land");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(SuperType.BASIC.getPredicate()));
|
||||
}
|
||||
|
||||
public TargetNonBasicLandPermanent() {
|
||||
this.filter = new FilterLandPermanent();
|
||||
this.filter.add(Predicates.not(SuperType.BASIC.getPredicate()));
|
||||
this.targetName = "nonbasic land";
|
||||
this(1, 1);
|
||||
}
|
||||
|
||||
public TargetNonBasicLandPermanent(int minNumTargets, int maxNumTargets) {
|
||||
super(minNumTargets, maxNumTargets, filter, false);
|
||||
}
|
||||
|
||||
protected TargetNonBasicLandPermanent(final TargetNonBasicLandPermanent target) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue