forked from External/mage
lots of text fixes
This commit is contained in:
parent
0081279d15
commit
2013895530
142 changed files with 261 additions and 403 deletions
|
|
@ -31,8 +31,8 @@ public final class AbundantMaw extends CardImpl {
|
|||
this.addAbility(new EmergeAbility(this, new ManaCostsImpl<>("{6}{B}")));
|
||||
|
||||
// When you cast Abundant Maw, target opponent loses 3 life and you gain 3 life.
|
||||
Ability ability = new CastSourceTriggeredAbility(new GainLifeEffect(3));
|
||||
ability.addEffect(new LoseLifeTargetEffect(3).concatBy("and"));
|
||||
Ability ability = new CastSourceTriggeredAbility(new LoseLifeTargetEffect(3));
|
||||
ability.addEffect(new GainLifeEffect(3).concatBy("and"));
|
||||
ability.addTarget(new TargetOpponent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ public final class AceFearlessRebel extends CardImpl {
|
|||
ability,
|
||||
new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT_AN),
|
||||
"Sacrifice an artifact?"
|
||||
)).setTriggerPhrase("Nitro-9"));
|
||||
)).withFlavorWord("Nitro-9"));
|
||||
|
||||
// Doctor's companion
|
||||
this.addAbility(DoctorsCompanionAbility.getInstance());
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetCardInHand;
|
||||
|
||||
|
|
@ -34,7 +33,7 @@ public final class AdvancedStitchwing extends CardImpl {
|
|||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
// {2}{U}, Discard two cards: Return Advanced Stitchwing from your graveyard to the battlefield tapped.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(true), new ManaCostsImpl<>("{2}{U}"));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(true, false), new ManaCostsImpl<>("{2}{U}"));
|
||||
ability.addCost(new DiscardTargetCost(new TargetCardInHand(2, StaticFilters.FILTER_CARD_CARDS)));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ public final class Aeolipile extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}");
|
||||
|
||||
// {1}, {tap}, Sacrifice Aeolipile: Aeolipile deals 2 damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl<>("{1}"));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2, "it"), new ManaCostsImpl<>("{1}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ public final class AerieOuphes extends CardImpl {
|
|||
|
||||
// Sacrifice Aerie Ouphes: Aerie Ouphes deals damage equal to its power to target creature with flying.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new SourcePermanentPowerCount())
|
||||
.setText("{this} deals damage equal to its power to target creature with flying"), new SacrificeSourceCost());
|
||||
.setText("it deals damage equal to its power to target creature with flying"), new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
this.addAbility(ability);
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ public final class AncientHydra extends CardImpl {
|
|||
// Fading 5
|
||||
this.addAbility(new FadingAbility(5, this));
|
||||
// {1}, Remove a fade counter from Ancient Hydra: Ancient Hydra deals 1 damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl<>("{1}"));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1, "it"), new ManaCostsImpl<>("{1}"));
|
||||
ability.addCost(new RemoveCountersSourceCost(CounterType.FADE.createInstance(1)));
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.a;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -25,7 +24,7 @@ import mage.filter.common.FilterControlledPermanent;
|
|||
public final class AngelicOverseer extends CardImpl {
|
||||
|
||||
private static final String rule1 = "As long as you control a Human, {this} has hexproof";
|
||||
private static final String rule2 = "and is indestructible";
|
||||
private static final String rule2 = "and indestructible";
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("Human");
|
||||
|
||||
static {
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ public final class ArixmethesSlumberingIsle extends CardImpl {
|
|||
// Arixmethes, Slumbering Isle enters the battlefield tapped with five slumber counters on it.
|
||||
Ability ability = new EntersBattlefieldAbility(
|
||||
new TapSourceEffect(true), false, null,
|
||||
"{this} enters the battlefield tapped with five slumber counters on it", null
|
||||
"{this} enters the battlefield tapped with five slumber counters on it.", null
|
||||
);
|
||||
ability.addEffect(new AddCountersSourceEffect(CounterType.SLUMBER.createInstance(5)));
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ public final class ArmageddonClock extends CardImpl {
|
|||
// {4}: Remove a doom counter from Armageddon Clock. Any player may activate this ability but only during any upkeep step.
|
||||
ActivatedAbilityImpl ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
|
||||
new RemoveCounterSourceEffect(CounterType.DOOM.createInstance()), new ManaCostsImpl<>("{4}"), new IsStepCondition(PhaseStep.UPKEEP, false),
|
||||
"Remove a doom counter from {this}. Any player may activate this ability but only during any upkeep step");
|
||||
"{4}: Remove a doom counter from {this}. Any player may activate this ability but only during any upkeep step.");
|
||||
|
||||
ability.setMayActivate(TargetController.ANY);
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.a;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -13,7 +12,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterEnchantmentPermanent;
|
||||
|
||||
/**
|
||||
|
|
@ -26,8 +24,9 @@ public final class AuraFlux extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{U}");
|
||||
|
||||
// Other enchantments have "At the beginning of your upkeep, sacrifice this enchantment unless you pay {2}."
|
||||
Ability gainedAbility = new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new GenericManaCost(2)), TargetController.YOU, false);
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(gainedAbility, Duration.WhileOnBattlefield, new FilterEnchantmentPermanent("enchantments"), true)));
|
||||
Ability gainedAbility = new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new GenericManaCost(2))
|
||||
.setText("sacrifice this enchantment unless you pay {2}"), TargetController.YOU, false);
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityAllEffect(gainedAbility, Duration.WhileOnBattlefield, new FilterEnchantmentPermanent("enchantments"), true)));
|
||||
}
|
||||
|
||||
private AuraFlux(final AuraFlux card) {
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ public final class AvatarOfFury extends CardImpl {
|
|||
|
||||
// If an opponent controls seven or more lands, Avatar of Fury costs {6} less to cast.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(6, AvatarOfFuryCondition.instance)
|
||||
.setText("if an opponent controls seven or more lands, Avatar of Fury costs {6} less to cast"))
|
||||
.setText("if an opponent controls seven or more lands, this spell costs {6} less to cast"))
|
||||
.addHint(new ConditionHint(AvatarOfFuryCondition.instance, "Opponent controls seven or more lands"))
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ public final class AvatarOfHope extends CardImpl {
|
|||
|
||||
// If you have 3 or less life, Avatar of Hope costs {6} less to cast.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(6, AvatarOfHopeCondition.instance)
|
||||
.setText("if you have 3 or less life, Avatar of Hope costs {6} less to cast"))
|
||||
.setText("if you have 3 or less life, this spell costs {6} less to cast"))
|
||||
.addHint(new ConditionHint(AvatarOfHopeCondition.instance))
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ public final class AvatarOfWill extends CardImpl {
|
|||
|
||||
// If an opponent has no cards in hand, Avatar of Will costs {6} less to cast.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SpellCostReductionSourceEffect(6, OpponentHasNoCardsInHandCondition.instance)
|
||||
.setText("If an opponent has no cards in hand, Avatar of Will costs {6} less to cast")
|
||||
.setText("If an opponent has no cards in hand, this spell costs {6} less to cast")
|
||||
).addHint(new ConditionHint(OpponentHasNoCardsInHandCondition.instance, "Opponent has no cards in hand"))
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ public final class BarbarianRing extends CardImpl {
|
|||
|
||||
// Threshold - {R}, {T}, Sacrifice Barbarian Ring: Barbarian Ring deals 2 damage to any target. Activate this ability only if seven or more cards are in your graveyard.
|
||||
Ability thresholdAbility = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
|
||||
new DamageTargetEffect(2),
|
||||
new DamageTargetEffect(2, "it"),
|
||||
new ManaCostsImpl<>("{R}"),
|
||||
new CardsInControllerGraveyardCondition(7));
|
||||
thresholdAbility.addCost(new TapSourceCost());
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ public final class BattlewiseHoplite extends CardImpl {
|
|||
|
||||
// Heroic - Whenever you cast a spell that targets Battlewise Hoplite, put a +1/+1 counter on Battlewise Hoplite, then scry 1.
|
||||
Ability ability = new HeroicAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()));
|
||||
ability.addEffect(new ScryEffect(1, false));
|
||||
ability.addEffect(new ScryEffect(1, false).concatBy(", then"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -10,10 +9,9 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.GameEvent.EventType;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
|
||||
|
|
@ -27,7 +25,7 @@ public final class BenefactorsDraught extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{G}");
|
||||
|
||||
// Untap all creatures.
|
||||
this.getSpellAbility().addEffect(new UntapAllEffect(new FilterCreaturePermanent()));
|
||||
this.getSpellAbility().addEffect(new UntapAllEffect(StaticFilters.FILTER_PERMANENT_CREATURES));
|
||||
|
||||
// Until end of turn, whenever a creature an opponent controls blocks, draw a card.
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new BenefactorsDraughtTriggeredAbility()));
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -40,7 +39,7 @@ public final class Bereavement extends CardImpl {
|
|||
|
||||
class BereavementTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
public BereavementTriggeredAbility() {
|
||||
BereavementTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new DiscardTargetEffect(1));
|
||||
}
|
||||
|
||||
|
|
@ -72,6 +71,6 @@ class BereavementTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever a green creature dies, its controller discards a card";
|
||||
return "Whenever a green creature dies, its controller discards a card.";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ public final class BlightedGorge extends CardImpl {
|
|||
|
||||
// {4}{R}, {T}, Sacrifice Blighted Gorge: Blighted Gorge deals 2 damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||
new DamageTargetEffect(2),
|
||||
new DamageTargetEffect(2, "it"),
|
||||
new ManaCostsImpl<>("{4}{R}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ class BloodMoneyEffect extends OneShotEffect {
|
|||
|
||||
BloodMoneyEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "destroy all creatures. For each nontoken creature destroyed this way, create a tapped Treasure token";
|
||||
staticText = "destroy all creatures. For each nontoken creature destroyed this way, you create a tapped Treasure token";
|
||||
}
|
||||
|
||||
private BloodMoneyEffect(final BloodMoneyEffect effect) {
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ public final class BoneDragon extends CardImpl {
|
|||
// {3}{B}{B}, Exile seven other cards from your graveyard: Return Bone Dragon from your graveyard to the battlefield tapped.
|
||||
Ability ability = new SimpleActivatedAbility(
|
||||
Zone.GRAVEYARD,
|
||||
new ReturnSourceFromGraveyardToBattlefieldEffect(true),
|
||||
new ReturnSourceFromGraveyardToBattlefieldEffect(true, false),
|
||||
new ManaCostsImpl<>("{3}{B}{B}")
|
||||
);
|
||||
ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(7, filter)));
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ public final class BoneyardWurm extends CardImpl {
|
|||
this.subtype.add(SubType.WURM);
|
||||
|
||||
// Boneyard Wurm's power and toughness are each equal to the number of creature cards in your graveyard.
|
||||
DynamicValue value = new CardsInControllerGraveyardCount(StaticFilters.FILTER_CARD_CREATURE);
|
||||
DynamicValue value = new CardsInControllerGraveyardCount(StaticFilters.FILTER_CARD_CREATURES);
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(value)));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,15 +4,14 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.DamageControllerEffect;
|
||||
import mage.abilities.effects.common.FlipCoinEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.DjinnToken;
|
||||
import mage.players.Player;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
|
@ -25,7 +24,10 @@ public final class BottleOfSuleiman extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}");
|
||||
|
||||
// {1}, Sacrifice Bottle of Suleiman: Flip a coin. If you lose the flip, Bottle of Suleiman deals 5 damage to you. If you win the flip, create a 5/5 colorless Djinn artifact creature token with flying.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BottleOfSuleimanEffect(), new GenericManaCost(1));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new FlipCoinEffect(
|
||||
new CreateTokenEffect(new DjinnToken()),
|
||||
new DamageControllerEffect(5)
|
||||
), new GenericManaCost(1));
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
@ -39,37 +41,3 @@ public final class BottleOfSuleiman extends CardImpl {
|
|||
return new BottleOfSuleiman(this);
|
||||
}
|
||||
}
|
||||
|
||||
class BottleOfSuleimanEffect extends OneShotEffect {
|
||||
|
||||
public BottleOfSuleimanEffect() {
|
||||
super(Outcome.PutCreatureInPlay);
|
||||
staticText = "Flip a coin. If you lose the flip, {this} deals 5 damage to you. If you win the flip, create a 5/5 colorless Djinn artifact creature token with flying.";
|
||||
}
|
||||
|
||||
private BottleOfSuleimanEffect(final BottleOfSuleimanEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BottleOfSuleimanEffect copy() {
|
||||
return new BottleOfSuleimanEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player you = game.getPlayer(source.getControllerId());
|
||||
if (you != null) {
|
||||
if (you.flipCoin(source, game, true)) {
|
||||
DjinnToken token = new DjinnToken();
|
||||
token.putOntoBattlefield(1, game, source, source.getControllerId());
|
||||
return true;
|
||||
} else {
|
||||
you.damage(5, source.getSourceId(), source, game);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,7 +42,8 @@ public final class BrassTalonChimera extends CardImpl {
|
|||
|
||||
// Sacrifice Brass-Talon Chimera: Put a +2/+2 counter on target Chimera creature. It gains first strike. (This effect lasts indefinitely.)
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.P2P2.createInstance()), new SacrificeSourceCost());
|
||||
ability.addEffect(new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield).setText("It gains first strike. <i>(This effect lasts indefinitely.)</i>"));
|
||||
ability.addEffect(new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield)
|
||||
.setText("It gains first strike. <i>(This effect lasts indefinitely.)</i>"));
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,32 +1,24 @@
|
|||
|
||||
|
||||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.EntersBattlefieldAllTriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
|
||||
|
||||
public final class BronzebeakMoa extends CardImpl {
|
||||
|
||||
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another creature under your control");
|
||||
static {
|
||||
filter.add(AnotherPredicate.instance);
|
||||
}
|
||||
public BronzebeakMoa (UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{W}");
|
||||
this.subtype.add(SubType.BIRD);
|
||||
|
|
@ -35,8 +27,8 @@ public final class BronzebeakMoa extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Whenever another creature enters the battlefield under your control, Bronzebeak Moa gets +3/+3 until end of turn.
|
||||
this.addAbility(new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD, new BoostSourceEffect(3,3, Duration.EndOfTurn),filter,false));
|
||||
|
||||
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(
|
||||
new BoostSourceEffect(3,3, Duration.EndOfTurn), StaticFilters.FILTER_ANOTHER_CREATURE));
|
||||
}
|
||||
|
||||
private BronzebeakMoa(final BronzebeakMoa card) {
|
||||
|
|
|
|||
|
|
@ -1,27 +1,31 @@
|
|||
|
||||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterUntappedCreature;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.permanent.TappedPredicate;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author noxx
|
||||
*/
|
||||
public final class BuildersBlessing extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("untapped creatures");
|
||||
static {
|
||||
filter.add(TappedPredicate.UNTAPPED);
|
||||
}
|
||||
|
||||
public BuildersBlessing(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{W}");
|
||||
|
||||
|
||||
// Untapped creatures you control get +0/+2.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(0, 2, Duration.WhileOnBattlefield, new FilterUntappedCreature("untapped creatures"))));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostControlledEffect(0, 2, Duration.WhileOnBattlefield, filter)));
|
||||
}
|
||||
|
||||
private BuildersBlessing(final BuildersBlessing card) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -10,7 +9,6 @@ import mage.constants.CardType;
|
|||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.GameEvent.EventType;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
|
|
@ -38,12 +36,10 @@ public final class BurningVengeance extends CardImpl {
|
|||
|
||||
class BurningVengeanceOnCastAbility extends TriggeredAbilityImpl {
|
||||
|
||||
private static final String abilityText = "Whenever you cast a spell from your graveyard, {this} deals 2 damage to any target";
|
||||
|
||||
BurningVengeanceOnCastAbility() {
|
||||
super(Zone.BATTLEFIELD, new DamageTargetEffect(2), false);
|
||||
TargetAnyTarget target = new TargetAnyTarget();
|
||||
this.addTarget(target);
|
||||
this.addTarget(new TargetAnyTarget());
|
||||
setTriggerPhrase("Whenever you cast a spell from your graveyard, ");
|
||||
}
|
||||
|
||||
private BurningVengeanceOnCastAbility(final BurningVengeanceOnCastAbility ability) {
|
||||
|
|
@ -65,8 +61,4 @@ class BurningVengeanceOnCastAbility extends TriggeredAbilityImpl {
|
|||
return new BurningVengeanceOnCastAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return abilityText;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,29 +1,33 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterUntappedCreature;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.permanent.TappedPredicate;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author KholdFuzion
|
||||
|
||||
*/
|
||||
public final class Castle extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("untapped creatures");
|
||||
static {
|
||||
filter.add(TappedPredicate.UNTAPPED);
|
||||
}
|
||||
|
||||
public Castle(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{W}");
|
||||
|
||||
|
||||
// Untapped creatures you control get +0/+2.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(0, 2, Duration.WhileOnBattlefield, new FilterUntappedCreature())));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostControlledEffect(0, 2, Duration.WhileOnBattlefield, filter)));
|
||||
}
|
||||
|
||||
private Castle(final Castle card) {
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public final class ChamberOfManipulation extends CardImpl {
|
|||
controlAbility.addTarget(new TargetCreaturePermanent());
|
||||
controlAbility.addCost(new DiscardTargetCost(new TargetCardInHand()));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(controlAbility, AttachmentType.AURA,
|
||||
Duration.WhileOnBattlefield, "Enchanted land has \"{t}, Discard a card: Gain control of target creature until end of turn.\"")));
|
||||
Duration.WhileOnBattlefield, "Enchanted land has \"{T}, Discard a card: Gain control of target creature until end of turn.\"")));
|
||||
}
|
||||
|
||||
private ChamberOfManipulation(final ChamberOfManipulation card) {
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ public final class CinderElemental extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// {X}{R}, {tap}, Sacrifice Cinder Elemental: Cinder Elemental deals X damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.REGULAR), new ManaCostsImpl<>("{X}{R}"));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.REGULAR, "it"), new ManaCostsImpl<>("{X}{R}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
|
|
|
|||
|
|
@ -43,7 +43,8 @@ public final class ClaimFame extends SplitCard {
|
|||
// Aftermath
|
||||
getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true));
|
||||
// Target creature gets +2/+0 and gains haste until end of turn.
|
||||
getRightHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(2, 0, Duration.EndOfTurn));
|
||||
getRightHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(2, 0, Duration.EndOfTurn)
|
||||
.setText("target creature gets +2/+0"));
|
||||
getRightHalfCard().getSpellAbility().addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn)
|
||||
.setText("and gains haste until end of turn"));
|
||||
getRightHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ public final class CoercivePortal extends CardImpl {
|
|||
false, false, "<i>Will of the council</i> — " +
|
||||
"At the beginning of your upkeep, starting with you, each player votes for carnage or homage. " +
|
||||
"If carnage gets more votes, sacrifice {this} and destroy all nonland permanents. " +
|
||||
"If homage gets more votes or the vote is tied, draw a card"
|
||||
"If homage gets more votes or the vote is tied, draw a card."
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.*;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.GameEvent.EventType;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetLandPermanent;
|
||||
|
|
@ -38,7 +37,7 @@ public final class ConsecrateLand extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Enchanted land is indestructible and can't be enchanted by other Auras.
|
||||
Ability ability2 = new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(IndestructibleAbility.getInstance(), AttachmentType.AURA, Duration.WhileOnBattlefield, "Enchanted land is indestructible"));
|
||||
Ability ability2 = new SimpleStaticAbility(new GainAbilityAttachedEffect(IndestructibleAbility.getInstance(), AttachmentType.AURA, Duration.WhileOnBattlefield, "Enchanted land has indestructible"));
|
||||
ability2.addEffect(new ConsecrateLandRuleEffect());
|
||||
this.addAbility(ability2);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ public final class CracklingTriton extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// {2}{R}, Sacrifice Crackling Triton: Crackling Triton deals 2 damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl<>("{2}{R}"));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2, "it"), new ManaCostsImpl<>("{2}{R}"));
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ public final class CurseOfOblivion extends CardImpl {
|
|||
// At the beginning of enchanted player's upkeep, that player exiles two cards from their graveyard.
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new ExileFromZoneTargetEffect(
|
||||
Zone.GRAVEYARD, StaticFilters.FILTER_CARD_CARDS, 2, false
|
||||
).setText("that player exiles two cards from their graveyard"), TargetController.ENCHANTED, false));
|
||||
), TargetController.ENCHANTED, false));
|
||||
}
|
||||
|
||||
private CurseOfOblivion(final CurseOfOblivion card) {
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ class CurseOfVitalityEffect extends OneShotEffect {
|
|||
|
||||
CurseOfVitalityEffect() {
|
||||
super(Outcome.Benefit);
|
||||
this.staticText = "gain 2 life. Each opponent attacking that player does the same.";
|
||||
this.staticText = "you gain 2 life. Each opponent attacking that player does the same.";
|
||||
}
|
||||
|
||||
private CurseOfVitalityEffect(final CurseOfVitalityEffect effect) {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ public final class CyclopeanMummy extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// When Cyclopean Mummy dies, exile it.
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new ExileSourceEffect()));
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new ExileSourceEffect().setText("exile it")));
|
||||
}
|
||||
|
||||
private CyclopeanMummy(final CyclopeanMummy card) {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
|
||||
|
||||
package mage.cards.d;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -27,8 +25,9 @@ public final class DecimatorWeb extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}");
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseLifeTargetEffect(2), new ManaCostsImpl<>("{4}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addEffect(new AddCountersTargetEffect(CounterType.POISON.createInstance()));
|
||||
ability.addEffect(new MillCardsTargetEffect(6));
|
||||
ability.addEffect(new AddCountersTargetEffect(CounterType.POISON.createInstance())
|
||||
.setText(", gets a poison counter"));
|
||||
ability.addEffect(new MillCardsTargetEffect(6).setText(", then mills six cards"));
|
||||
ability.addTarget(new TargetOpponent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,11 +14,11 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.counters.CounterType;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
|
@ -41,7 +41,7 @@ public final class DelifsCube extends CardImpl {
|
|||
// {2}, Remove a cube counter from Delif's Cube: Regenerate target creature.
|
||||
ability = new SimpleActivatedAbility(new RegenerateTargetEffect(), new GenericManaCost(2));
|
||||
ability.addCost(new RemoveCountersSourceCost(CounterType.CUBE.createInstance()));
|
||||
ability.addTarget(new TargetControlledCreaturePermanent());
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.d;
|
||||
|
||||
import mage.MageInt;
|
||||
|
|
@ -25,7 +24,7 @@ import java.util.UUID;
|
|||
* @author noxx
|
||||
*/
|
||||
public final class DevoutChaplain extends CardImpl {
|
||||
private static final FilterControlledPermanent humanFilter = new FilterControlledPermanent("untapped Human you control");
|
||||
private static final FilterControlledPermanent humanFilter = new FilterControlledPermanent("untapped Humans you control");
|
||||
|
||||
static {
|
||||
humanFilter.add(TappedPredicate.UNTAPPED);
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ public final class DivebomberGriffin extends CardImpl {
|
|||
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
// {tap}, Sacrifice Divebomber Griffin: Divebomber Griffin deals 3 damage to target attacking or blocking creature.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(3), new TapSourceCost());
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(3, "it"), new TapSourceCost());
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent(new FilterAttackingOrBlockingCreature()));
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ class DoomfallEffect extends OneShotEffect {
|
|||
|
||||
public DoomfallEffect() {
|
||||
super(Outcome.Exile);
|
||||
this.staticText = "target player exiles a creature they control";
|
||||
this.staticText = "target opponent exiles a creature they control";
|
||||
}
|
||||
|
||||
private DoomfallEffect(final DoomfallEffect effect) {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ import java.util.UUID;
|
|||
public final class EarlOfSquirrel extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Creature tokens you control");
|
||||
private static final FilterCreaturePermanent filter2 = new FilterCreaturePermanent("Squirrels you control");
|
||||
private static final FilterCreaturePermanent filter2 = new FilterCreaturePermanent("Squirrels");
|
||||
|
||||
static {
|
||||
filter.add(TokenPredicate.TRUE);
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ import mage.constants.Zone;
|
|||
import mage.game.Game;
|
||||
import mage.game.events.DamagedPlayerEvent;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.GameEvent.EventType;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
|
||||
/**
|
||||
|
|
@ -80,6 +79,6 @@ class EdricSpymasterOfTrestTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever a creature deals combat damage to one of your opponents, its controller may draw a card";
|
||||
return "Whenever a creature deals combat damage to one of your opponents, its controller may draw a card.";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import mage.abilities.effects.common.PreventAllDamageToAllEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.permanent.TokenPredicate;
|
||||
|
||||
|
|
@ -34,7 +33,7 @@ public final class EmmaraTandris extends CardImpl {
|
|||
this.toughness = new MageInt(7);
|
||||
|
||||
// Prevent all damage that would be dealt to creature tokens you control.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new PreventAllDamageToAllEffect(Duration.WhileOnBattlefield, StaticFilters.FILTER_CREATURE_TOKENS)));
|
||||
this.addAbility(new SimpleStaticAbility(new PreventAllDamageToAllEffect(Duration.WhileOnBattlefield, filter)));
|
||||
}
|
||||
|
||||
private EmmaraTandris(final EmmaraTandris card) {
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ class EnterTheGodEternalsEffect extends OneShotEffect {
|
|||
EnterTheGodEternalsEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "{this} deals 4 damage to target creature and you gain life equal to the damage dealt this way. "
|
||||
+ "Target player mills four cards. Amass 4.";
|
||||
+ "Target player mills four cards. Amass Zombies 4.";
|
||||
}
|
||||
|
||||
private EnterTheGodEternalsEffect(final EnterTheGodEternalsEffect effect) {
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ public final class FaerieNoble extends CardImpl {
|
|||
// Other Faerie creatures you control get +0/+1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(0, 1, Duration.WhileOnBattlefield, filter, true)));
|
||||
// {tap}: Other Faerie creatures you control get +1/+0 until end of turn.
|
||||
Effect effect = new BoostControlledEffect(1, 0, Duration.WhileOnBattlefield, filter, true);
|
||||
Effect effect = new BoostControlledEffect(1, 0, Duration.EndOfTurn, filter, true);
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new TapSourceCost());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.f;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -54,7 +53,7 @@ class FatalMutationAbility extends TriggeredAbilityImpl {
|
|||
|
||||
public FatalMutationAbility(Effect effect) {
|
||||
super(Zone.BATTLEFIELD, effect, false);
|
||||
setTriggerPhrase("Whenever enchanted creature is turned face up, ");
|
||||
setTriggerPhrase("When enchanted creature is turned face up, ");
|
||||
}
|
||||
|
||||
private FatalMutationAbility(final FatalMutationAbility ability) {
|
||||
|
|
@ -81,4 +80,3 @@ class FatalMutationAbility extends TriggeredAbilityImpl {
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,25 +1,24 @@
|
|||
|
||||
package mage.cards.f;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostAllEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.AbilityPredicate;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author noxx
|
||||
*/
|
||||
public final class FavorableWinds extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures you control with flying");
|
||||
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creatures you control with flying");
|
||||
|
||||
static {
|
||||
filter.add(new AbilityPredicate(FlyingAbility.class));
|
||||
|
|
@ -29,7 +28,7 @@ public final class FavorableWinds extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U}");
|
||||
|
||||
// Creatures you control with flying get +1/+1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter, false)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, filter, false)));
|
||||
}
|
||||
|
||||
private FavorableWinds(final FavorableWinds card) {
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ public final class FiveAlarmFire extends CardImpl {
|
|||
//Whenever a creature you control deals combat damage, put a blaze counter on Five-Alarm Fire.
|
||||
this.addAbility(new FiveAlarmFireTriggeredAbility());
|
||||
//Remove five blaze counters from Five-Alarm Fire: Five-Alarm Fire deals 5 damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(5), new RemoveCountersSourceCost(CounterType.BLAZE.createInstance(5)));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(5, "it"), new RemoveCountersSourceCost(CounterType.BLAZE.createInstance(5)));
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.f;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -24,9 +23,8 @@ public final class FleetfeatherSandals extends CardImpl {
|
|||
this.subtype.add(SubType.EQUIPMENT);
|
||||
|
||||
// Equipped creature has flying and haste.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD,
|
||||
new GainAbilityAttachedEffect(FlyingAbility.getInstance(), AttachmentType.AURA, Duration.WhileInGraveyard));
|
||||
ability.addEffect(new GainAbilityAttachedEffect(HasteAbility.getInstance(), AttachmentType.AURA, Duration.WhileInGraveyard));
|
||||
Ability ability = new SimpleStaticAbility(new GainAbilityAttachedEffect(FlyingAbility.getInstance(), AttachmentType.EQUIPMENT));
|
||||
ability.addEffect(new GainAbilityAttachedEffect(HasteAbility.getInstance(), AttachmentType.EQUIPMENT).setText("and haste"));
|
||||
this.addAbility(ability);
|
||||
// Equip {2}
|
||||
this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2)));
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ public final class FlitterstepEidolon extends CardImpl {
|
|||
this.addAbility(new CantBeBlockedSourceAbility());
|
||||
// Enchanted creature gets +1/+1 and can't be blocked.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1,1, Duration.WhileOnBattlefield));
|
||||
ability.addEffect(new CantBeBlockedAttachedEffect(AttachmentType.AURA));
|
||||
ability.addEffect(new CantBeBlockedAttachedEffect(AttachmentType.AURA).setText("and can't be blocked"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ public final class FontOfIre extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{R}");
|
||||
|
||||
// {3}{R}, Sacrifice Font of Ire: Font of Ire deals 5 damage to target player.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(5), new ManaCostsImpl<>("{3}{R}"));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(5, "it"), new ManaCostsImpl<>("{3}{R}"));
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetPlayerOrPlaneswalker());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -34,9 +34,9 @@ public final class FromUnderTheFloorboards extends CardImpl {
|
|||
// If From Under the Floorboards's madness cost was paid, instead create X of those tokens tapped and you gain X life.
|
||||
DynamicValue xValue = new FromUnderTheFloorboardsManacostVariableValue();
|
||||
Effect effect = new CreateTokenEffect(new ZombieToken(), xValue, true, false);
|
||||
effect.setText("Create three 2/2 black Zombie creature tokens tapped and you gain 3 life. If {this} madness cost was paid, instead create X of those tokens tapped and you gain X life");
|
||||
effect.setText("Create three tapped 2/2 black Zombie creature tokens and you gain 3 life. If this spell's madness cost was paid, instead create X of those tokens");
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(xValue));
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(xValue).concatBy("and"));
|
||||
}
|
||||
|
||||
private FromUnderTheFloorboards(final FromUnderTheFloorboards card) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.g;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -21,7 +20,9 @@ public final class GerrardsBattleCry extends CardImpl {
|
|||
public GerrardsBattleCry(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{W}");
|
||||
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE, false), new ManaCostsImpl<>("{2}{W}")));
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||
new BoostControlledEffect(1, 1, Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURES, false),
|
||||
new ManaCostsImpl<>("{2}{W}")));
|
||||
}
|
||||
|
||||
private GerrardsBattleCry(final GerrardsBattleCry card) {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ import mage.players.Player;
|
|||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import mage.target.targetadjustment.TargetAdjuster;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
|
@ -51,7 +50,7 @@ public final class GiftOfDoom extends CardImpl {
|
|||
));
|
||||
ability2.addEffect(new GainAbilityAttachedEffect(
|
||||
IndestructibleAbility.getInstance(), AttachmentType.AURA
|
||||
));
|
||||
).setText("and indestructible"));
|
||||
this.addAbility(ability2);
|
||||
|
||||
// Morph—Sacrifice another creature.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.g;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
|
|
@ -18,7 +17,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.target.TargetPermanent;
|
||||
|
|
@ -44,8 +43,7 @@ public final class GleamOfAuthority extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature gets +1/+1 for each +1/+1 counter on other creatures you control
|
||||
DynamicValue amount = new CountersOnControlledCount();
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(amount, amount, Duration.WhileOnBattlefield)
|
||||
this.addAbility(new SimpleStaticAbility(new BoostEnchantedEffect(CountersOnControlledCount.instance, CountersOnControlledCount.instance)
|
||||
.setText("Enchanted creature gets +1/+1 for each +1/+1 counter on other creatures you control.")
|
||||
));
|
||||
|
||||
|
|
@ -53,7 +51,7 @@ public final class GleamOfAuthority extends CardImpl {
|
|||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(VigilanceAbility.getInstance(), AttachmentType.AURA));
|
||||
Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BolsterEffect(1), new ManaCostsImpl<>("{W}"));
|
||||
gainedAbility.addCost(new TapSourceCost());
|
||||
ability.addEffect(new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA).setText("and \"{W}, {T}: Bloster 1.\""));
|
||||
ability.addEffect(new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA).setText("and \"{W}, {T}: Bolster 1.\""));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
@ -67,22 +65,14 @@ public final class GleamOfAuthority extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class CountersOnControlledCount implements DynamicValue {
|
||||
|
||||
static FilterCreaturePermanent filter = new FilterCreaturePermanent();
|
||||
|
||||
CountersOnControlledCount() {
|
||||
}
|
||||
|
||||
private CountersOnControlledCount(final CountersOnControlledCount dynamicValue) {
|
||||
super();
|
||||
}
|
||||
enum CountersOnControlledCount implements DynamicValue {
|
||||
instance;
|
||||
|
||||
@Override
|
||||
public int calculate(Game game, Ability sourceAbility, Effect effect) {
|
||||
int count = 0;
|
||||
Permanent enchantment = game.getPermanent(sourceAbility.getSourceId());
|
||||
for (Permanent permanent : game.getState().getBattlefield().getAllActivePermanents(filter, sourceAbility.getControllerId(), game)) {
|
||||
for (Permanent permanent : game.getBattlefield().getAllActivePermanents(StaticFilters.FILTER_PERMANENT_CREATURE, sourceAbility.getControllerId(), game)) {
|
||||
if (!permanent.getId().equals(enchantment.getAttachedTo())) {
|
||||
count += permanent.getCounters(game).getCount(CounterType.P1P1);
|
||||
}
|
||||
|
|
@ -92,7 +82,7 @@ class CountersOnControlledCount implements DynamicValue {
|
|||
|
||||
@Override
|
||||
public CountersOnControlledCount copy() {
|
||||
return new CountersOnControlledCount(this);
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.g;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -25,7 +24,7 @@ public final class Goblinslide extends CardImpl {
|
|||
this.addAbility(new SpellCastControllerTriggeredAbility(new DoIfCostPaid(
|
||||
new CreateTokenEffect(new GoblinToken(true)),
|
||||
new GenericManaCost(1)),
|
||||
StaticFilters.FILTER_SPELL_NON_CREATURE,
|
||||
StaticFilters.FILTER_SPELL_A_NON_CREATURE,
|
||||
false
|
||||
));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ import mage.filter.predicate.mageobject.ColorPredicate;
|
|||
*/
|
||||
public final class GodPharaohsFaithful extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell("a blue, black or red spell");
|
||||
private static final FilterSpell filter = new FilterSpell("a blue, black, or red spell");
|
||||
static {
|
||||
filter.add(Predicates.or(new ColorPredicate(ObjectColor.BLUE), new ColorPredicate(ObjectColor.BLACK), new ColorPredicate(ObjectColor.RED)));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -109,6 +109,6 @@ class GroundPounderTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever you roll a 5 or higher on a die, {this} gains trample until end of turn";
|
||||
return "Whenever you roll a 5 or higher on a die, {this} gains trample until end of turn.";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.g;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -12,7 +11,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.permanent.AttackingPredicate;
|
||||
|
||||
|
|
@ -33,10 +31,9 @@ public final class GruulWarChant extends CardImpl {
|
|||
|
||||
|
||||
// Attacking creatures you control get +1/+0 and have menace. (They can't be blocked except by two or more creatures.)
|
||||
Ability ability = new SimpleStaticAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new GainAbilityAllEffect(new MenaceAbility(false), Duration.WhileOnBattlefield, filter));
|
||||
ability.addEffect(new BoostAllEffect(1,0, Duration.WhileOnBattlefield, filter, false));
|
||||
Ability ability = new SimpleStaticAbility(new BoostAllEffect(1,0, Duration.WhileOnBattlefield, filter, false));
|
||||
ability.addEffect(new GainAbilityAllEffect(new MenaceAbility(false), Duration.WhileOnBattlefield, filter)
|
||||
.setText("and have menace"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,10 @@
|
|||
|
||||
|
||||
package mage.cards.h;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostAllEffect;
|
||||
import mage.abilities.effects.common.counter.AddPoisonCounterTargetEffect;
|
||||
import mage.abilities.keyword.InfectAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -14,9 +12,8 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.AbilityPredicate;
|
||||
import mage.target.TargetPlayer;
|
||||
|
||||
|
|
@ -26,7 +23,7 @@ import mage.target.TargetPlayer;
|
|||
*/
|
||||
public final class HandOfThePraetors extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with infect");
|
||||
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creatures you control with infect");
|
||||
private static final FilterSpell filterSpell = new FilterSpell("a creature spell with infect");
|
||||
|
||||
static {
|
||||
|
|
@ -44,7 +41,7 @@ public final class HandOfThePraetors extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
this.addAbility(InfectAbility.getInstance());
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter, true)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, filter, true)));
|
||||
SpellCastControllerTriggeredAbility ability = new SpellCastControllerTriggeredAbility(new AddPoisonCounterTargetEffect(1), filterSpell, false);
|
||||
ability.addTarget(new TargetPlayer());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.h;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -18,10 +17,9 @@ public final class HarrowingJourney extends CardImpl {
|
|||
public HarrowingJourney(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{B}");
|
||||
|
||||
|
||||
// Target player draws three cards and loses 3 life.
|
||||
this.getSpellAbility().addEffect(new DrawCardTargetEffect(3));
|
||||
this.getSpellAbility().addEffect(new LoseLifeTargetEffect(3));
|
||||
this.getSpellAbility().addEffect(new LoseLifeTargetEffect(3).setText("and loses 3 life"));
|
||||
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
|
||||
|
||||
package mage.cards.h;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -66,7 +64,7 @@ class HiredTorturerEffect extends OneShotEffect {
|
|||
|
||||
public HiredTorturerEffect() {
|
||||
super(Outcome.Detriment);
|
||||
staticText = "and reveals a card at random from their hand";
|
||||
staticText = ", then reveals a card at random from their hand";
|
||||
}
|
||||
|
||||
private HiredTorturerEffect(final HiredTorturerEffect effect) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.h;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -18,10 +17,9 @@ public final class HorrifyingRevelation extends CardImpl {
|
|||
public HorrifyingRevelation(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{B}");
|
||||
|
||||
|
||||
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||
this.getSpellAbility().addEffect(new DiscardTargetEffect(1));
|
||||
this.getSpellAbility().addEffect(new MillCardsTargetEffect(1));
|
||||
this.getSpellAbility().addEffect(new MillCardsTargetEffect(1).setText(", then mills a card"));
|
||||
}
|
||||
|
||||
private HorrifyingRevelation(final HorrifyingRevelation card) {
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ public final class IcatianJavelineers extends CardImpl {
|
|||
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.JAVELIN.createInstance()), "with a javelin counter on it"));
|
||||
|
||||
// {tap}, Remove a javelin counter from Icatian Javelineers: Icatian Javelineers deals 1 damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new TapSourceCost());
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1, "it"), new TapSourceCost());
|
||||
ability.addCost(new RemoveCountersSourceCost(CounterType.JAVELIN.createInstance()));
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ import mage.filter.predicate.mageobject.ColorPredicate;
|
|||
*/
|
||||
public final class Insight extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell("green spell");
|
||||
private static final FilterSpell filter = new FilterSpell("a green spell");
|
||||
|
||||
static {
|
||||
filter.add(new ColorPredicate(ObjectColor.GREEN));
|
||||
|
|
@ -28,7 +28,7 @@ public final class Insight extends CardImpl {
|
|||
|
||||
|
||||
// Whenever an opponent casts a green spell, you draw a card.
|
||||
this.addAbility(new SpellCastOpponentTriggeredAbility(new DrawCardSourceControllerEffect(1), filter, false));
|
||||
this.addAbility(new SpellCastOpponentTriggeredAbility(new DrawCardSourceControllerEffect(1, "you"), filter, false));
|
||||
}
|
||||
|
||||
private Insight(final Insight card) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.i;
|
||||
|
||||
import mage.MageInt;
|
||||
|
|
@ -26,7 +25,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class IronHeartChimera extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Chimera creature you control");
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Chimera creature");
|
||||
|
||||
static {
|
||||
filter.add(SubType.CHIMERA.getPredicate());
|
||||
|
|
@ -44,7 +43,8 @@ public final class IronHeartChimera extends CardImpl {
|
|||
|
||||
// Sacrifice Iron-Heart Chimera: Put a +2/+2 counter on target Chimera creature. It gains vigilance.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.P2P2.createInstance()), new SacrificeSourceCost());
|
||||
ability.addEffect(new GainAbilityTargetEffect(VigilanceAbility.getInstance(), Duration.WhileOnBattlefield));
|
||||
ability.addEffect(new GainAbilityTargetEffect(VigilanceAbility.getInstance(), Duration.WhileOnBattlefield)
|
||||
.setText("It gains vigilance. <i>(This effect lasts indefinitely.)</i>"));
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package mage.cards.i;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.Mode;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -42,11 +41,11 @@ class IronMaidenEffect extends OneShotEffect {
|
|||
|
||||
private IronMaidenEffect(final IronMaidenEffect effect) {
|
||||
super(effect);
|
||||
this.staticText = "Iron Maiden deals X damage to that player, where X is the number of cards in their hand minus 4";
|
||||
}
|
||||
|
||||
public IronMaidenEffect() {
|
||||
super(Outcome.Damage);
|
||||
this.staticText = "{this} deals X damage to that player, where X is the number of cards in their hand minus 4";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.j;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -10,9 +9,9 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -20,12 +19,10 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
*/
|
||||
public final class JadeBearer extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filterYourAnotherMerfolk = new FilterCreaturePermanent();
|
||||
private static final FilterControlledCreaturePermanent filter =
|
||||
new FilterControlledCreaturePermanent(SubType.MERFOLK, "another target Merfolk you control");
|
||||
static {
|
||||
filterYourAnotherMerfolk.add(AnotherPredicate.instance);
|
||||
filterYourAnotherMerfolk.add(SubType.MERFOLK.getPredicate());
|
||||
filterYourAnotherMerfolk.add(TargetController.YOU.getControllerPredicate());
|
||||
filterYourAnotherMerfolk.setMessage("another " + SubType.MERFOLK.toString() + " you control");
|
||||
filter.add(AnotherPredicate.instance);
|
||||
}
|
||||
|
||||
public JadeBearer(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
@ -38,7 +35,7 @@ public final class JadeBearer extends CardImpl {
|
|||
|
||||
// When Jade Bearer enters the battlefield, put a +1/+1 counter on another target Merfolk you control.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance()), false);
|
||||
ability.addTarget(new TargetCreaturePermanent(filterYourAnotherMerfolk));
|
||||
ability.addTarget(new TargetPermanent(filter));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
@ -50,4 +47,4 @@ public final class JadeBearer extends CardImpl {
|
|||
public JadeBearer copy() {
|
||||
return new JadeBearer(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ public final class JujuBubble extends CardImpl {
|
|||
|
||||
// When you play a card, sacrifice Juju Bubble.
|
||||
this.addAbility(new PlayCardTriggeredAbility(TargetController.YOU, Zone.BATTLEFIELD,
|
||||
new SacrificeSourceEffect(), false));
|
||||
new SacrificeSourceEffect(), false).setTriggerPhrase("When you play a card, "));
|
||||
|
||||
// {2}: You gain 1 life.
|
||||
this.addAbility(new SimpleActivatedAbility(new GainLifeEffect(1), new GenericManaCost(2)));
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.k;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -33,7 +32,7 @@ public final class KarplusanHound extends CardImpl {
|
|||
Ability ability = new ConditionalInterveningIfTriggeredAbility(
|
||||
new AttacksTriggeredAbility(new DamageTargetEffect(2), false),
|
||||
new PermanentsOnTheBattlefieldCondition(filter),
|
||||
"if you control a Chandra planeswalker, "
|
||||
"Whenever {this} attacks, if you control a Chandra planeswalker, "
|
||||
+ "this creature deals 2 damage to any target"
|
||||
);
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
|
|
|
|||
|
|
@ -57,8 +57,7 @@ class KjeldoranEliteGuardEffect extends OneShotEffect {
|
|||
KjeldoranEliteGuardEffect() {
|
||||
super(Outcome.Neutral);
|
||||
staticText = "Target creature gets +2/+2 until end of turn. "
|
||||
+ "When that creature leaves the battlefield this turn, sacrifice Kjeldoran Elite Guard. "
|
||||
+ "Activate only during combat.";
|
||||
+ "When that creature leaves the battlefield this turn, sacrifice Kjeldoran Elite Guard.";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.l;
|
||||
|
||||
import mage.MageInt;
|
||||
|
|
@ -44,7 +43,8 @@ public final class LeadBellyChimera extends CardImpl {
|
|||
|
||||
// Sacrifice Lead-Belly Chimera: Put a +2/+2 counter on target Chimera creature. It gains trample.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.P2P2.createInstance()), new SacrificeSourceCost());
|
||||
ability.addEffect(new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield));
|
||||
ability.addEffect(new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield)
|
||||
.setText("It gains trample. <i>(This effect lasts indefinitely.)</i>"));
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class LozhanDragonsLegacy extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell("an Adventure spell or Dragon spell");
|
||||
private static final FilterSpell filter = new FilterSpell("an Adventure or Dragon spell");
|
||||
private static final FilterPermanentOrPlayer filter2
|
||||
= new FilterAnyTarget("any target that isn't a commander");
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -46,8 +45,7 @@ public final class MalakirSoothsayer extends CardImpl {
|
|||
new TapSourceCost());
|
||||
ability.setAbilityWord(AbilityWord.COHORT);
|
||||
ability.addCost(new TapTargetCost(new TargetControlledCreaturePermanent(1, 1, filter, false)));
|
||||
Effect effect = new LoseLifeSourceControllerEffect(1);
|
||||
effect.setText("and you lose a life");
|
||||
Effect effect = new LoseLifeSourceControllerEffect(1).concatBy("and");
|
||||
ability.addEffect(effect);
|
||||
this.addAbility(ability);
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ import mage.game.permanent.Permanent;
|
|||
*/
|
||||
public final class ManorGargoyle extends CardImpl {
|
||||
|
||||
private static final String rule = "{this} is indestructible as long as it has defender.";
|
||||
private static final String rule = "{this} has indestructible as long as it has defender.";
|
||||
|
||||
public ManorGargoyle(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{5}");
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ public final class MiirymSentinelWyrm extends CardImpl {
|
|||
Zone.BATTLEFIELD, new CreateTokenCopyTargetEffect(true).setIsntLegendary(true),
|
||||
filter, false, SetTargetPointer.PERMANENT, "Whenever another nontoken Dragon " +
|
||||
"enters the battlefield under your control, create a token that's a copy of it, " +
|
||||
"except the token isn't legendary if that Dragon is legendary."
|
||||
"except the token isn't legendary."
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ public final class MizziumTank extends CardImpl {
|
|||
// Whenever you cast a noncreature spell, Mizzium Tank becomes an artifact creature and gets +1/+1 until end of turn.
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(new AddCardTypeSourceEffect(
|
||||
Duration.EndOfTurn, CardType.ARTIFACT, CardType.CREATURE
|
||||
).setText("{this} becomes an artifact creature"), StaticFilters.FILTER_SPELL_NON_CREATURE, false);
|
||||
).setText("{this} becomes an artifact creature"), StaticFilters.FILTER_SPELL_A_NON_CREATURE, false);
|
||||
ability.addEffect(new BoostSourceEffect(
|
||||
1, 1, Duration.EndOfTurn
|
||||
).setText("and gets +1/+1 until end of turn"));
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ public final class MoggFanatic extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Sacrifice Mogg Fanatic: Mogg Fanatic deals 1 damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new SacrificeSourceCost());
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1, "it"), new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -32,7 +31,8 @@ public final class MortalWound extends CardImpl {
|
|||
Ability ability = new EnchantAbility(auraTarget);
|
||||
this.addAbility(ability);
|
||||
// When enchanted creature is dealt damage, destroy it.
|
||||
this.addAbility(new DealtDamageAttachedTriggeredAbility(new DestroyAttachedToEffect("it"), false));
|
||||
this.addAbility(new DealtDamageAttachedTriggeredAbility(new DestroyAttachedToEffect("it"), false)
|
||||
.setTriggerPhrase("When enchanted creature is dealt damage, "));
|
||||
}
|
||||
|
||||
private MortalWound(final MortalWound card) {
|
||||
|
|
|
|||
|
|
@ -22,7 +22,8 @@ public final class Mugging extends CardImpl {
|
|||
|
||||
// Mugging deals 2 damage to target creature. That creature can't block this turn.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(2));
|
||||
this.getSpellAbility().addEffect(new CantBlockTargetEffect(Duration.EndOfTurn));
|
||||
this.getSpellAbility().addEffect(new CantBlockTargetEffect(Duration.EndOfTurn)
|
||||
.setText("That creature can't block this turn"));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.EntersBattlefieldAllTriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -33,7 +32,7 @@ public final class MummyParamount extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Whenever another Zombie enters the battlefield under your control, Mummy Paramount gets +1/+1 until end of turn.
|
||||
this.addAbility(new EntersBattlefieldAllTriggeredAbility(new BoostSourceEffect(1, 1, Duration.EndOfTurn), filter));
|
||||
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(new BoostSourceEffect(1, 1, Duration.EndOfTurn), filter));
|
||||
}
|
||||
|
||||
private MummyParamount(final MummyParamount card) {
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ public final class NissasRevelation extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{5}{G}{G}");
|
||||
|
||||
// Scry 5, then reveal the top card of your library. If it's a creature card, you draw cards equal to its power and you gain life equal to its toughness.
|
||||
this.getSpellAbility().addEffect(new ScryEffect(5));
|
||||
this.getSpellAbility().addEffect(new ScryEffect(5, false));
|
||||
this.getSpellAbility().addEffect(new NissasRevelationEffect());
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ public final class NoMercy extends CardImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever a creature deals damage to you, destroy it";
|
||||
return "Whenever a creature deals damage to you, destroy it.";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ public final class NoxiousGhoul extends CardImpl {
|
|||
// Whenever Noxious Ghoul or another Zombie enters the battlefield, all non-Zombie creatures get -1/-1 until end of turn.
|
||||
this.addAbility(new EntersBattlefieldThisOrAnotherTriggeredAbility(new BoostAllEffect(
|
||||
-1, -1, Duration.EndOfTurn, filter, false
|
||||
), filter2, false, true));
|
||||
), filter2));
|
||||
}
|
||||
|
||||
private NoxiousGhoul(final NoxiousGhoul card) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.o;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -6,7 +5,6 @@ import mage.MageInt;
|
|||
import mage.abilities.costs.common.ExertSourceCost;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.effects.mana.AddManaOfAnyColorEffect;
|
||||
import mage.abilities.effects.mana.ManaEffect;
|
||||
import mage.abilities.mana.AnyColorManaAbility;
|
||||
import mage.abilities.mana.SimpleManaAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -33,7 +31,7 @@ public final class OasisRitualist extends CardImpl {
|
|||
this.addAbility(new AnyColorManaAbility());
|
||||
// {T}, Exert Oasis Ritualist: Add two mana of any one color to your manna pool.
|
||||
SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD,
|
||||
(ManaEffect) new AddManaOfAnyColorEffect(2).setText("Add two mana of any one color to your manna pool. <i> (An exerted creature won't untap during your next untap step.)</i>"),
|
||||
new AddManaOfAnyColorEffect(2).setText("Add two mana of any one color. <i>(An exerted creature won't untap during your next untap step.)</i>"),
|
||||
new TapSourceCost());
|
||||
ability.addCost(new ExertSourceCost());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -41,9 +41,9 @@ public final class OketrasLastMercy extends CardImpl {
|
|||
|
||||
class OketrasLastMercyEffect extends OneShotEffect {
|
||||
|
||||
public OketrasLastMercyEffect() {
|
||||
OketrasLastMercyEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "Your life total becomes your starting life total";
|
||||
staticText = "Your life total becomes equal to your starting life total";
|
||||
}
|
||||
|
||||
private OketrasLastMercyEffect(final OketrasLastMercyEffect effect) {
|
||||
|
|
|
|||
|
|
@ -41,8 +41,7 @@ public final class OraclesInsight extends CardImpl {
|
|||
|
||||
// Enchanted creature has "{T}: Scry 1, then draw a card."
|
||||
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1, false), new TapSourceCost());
|
||||
Effect effect = new DrawCardSourceControllerEffect(1);
|
||||
effect.setText("then draw a card");
|
||||
Effect effect = new DrawCardSourceControllerEffect(1).concatBy(", then");
|
||||
ability.addEffect(effect);
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability, AttachmentType.AURA, Duration.WhileOnBattlefield)));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ public final class PainKami extends CardImpl {
|
|||
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.REGULAR), new ManaCostsImpl<>("{X}{R}"));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.REGULAR, "it"), new ManaCostsImpl<>("{X}{R}"));
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ public final class PharikasCure extends CardImpl {
|
|||
// Pharika's Cure deals 2 damage to target creature and you gain 2 life.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(2));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(2));
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(2).concatBy("and"));
|
||||
}
|
||||
|
||||
private PharikasCure(final PharikasCure card) {
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ public final class PharikasMender extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// When Pharika's Mender enters the battlefield, you may return target creature or enchantment card from your graveyard to your hand.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnFromGraveyardToHandTargetEffect());
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnFromGraveyardToHandTargetEffect(), true);
|
||||
Target target = new TargetCardInYourGraveyard(filter);
|
||||
ability.addTarget(target);
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -108,6 +108,6 @@ class PolisCrusherTriggeredAbility extends TriggeredAbilityImpl {
|
|||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever {this} deals combat damage to a player,"
|
||||
+ " if {this} is monstrous, destroy target enchantment that player controls";
|
||||
+ " if {this} is monstrous, destroy target enchantment that player controls.";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.p;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -8,7 +7,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.stack.StackObject;
|
||||
import mage.players.Player;
|
||||
|
|
@ -23,9 +21,8 @@ public final class PsychicStrike extends CardImpl {
|
|||
public PsychicStrike(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{U}{B}");
|
||||
|
||||
|
||||
// Counter target spell. Its controller puts the top two cards of their library into their graveyard.
|
||||
this.getSpellAbility().addTarget(new TargetSpell(StaticFilters.FILTER_SPELL));
|
||||
this.getSpellAbility().addTarget(new TargetSpell());
|
||||
this.getSpellAbility().addEffect(new PsychicStrikeEffect());
|
||||
}
|
||||
|
||||
|
|
@ -41,9 +38,9 @@ public final class PsychicStrike extends CardImpl {
|
|||
|
||||
class PsychicStrikeEffect extends OneShotEffect {
|
||||
|
||||
public PsychicStrikeEffect() {
|
||||
PsychicStrikeEffect() {
|
||||
super(Outcome.Detriment);
|
||||
staticText = "Counter target spell. Its controller puts the top two cards of their library into their graveyard";
|
||||
staticText = "Counter target spell. Its controller mills two cards";
|
||||
}
|
||||
|
||||
private PsychicStrikeEffect(final PsychicStrikeEffect effect) {
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ public final class PurgeTheProfane extends CardImpl {
|
|||
// Target opponent discards two cards and you gain 2 life.
|
||||
this.getSpellAbility().addEffect(new DiscardTargetEffect(2));
|
||||
this.getSpellAbility().addTarget(new TargetOpponent());
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(2));
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(2).concatBy("and"));
|
||||
}
|
||||
|
||||
private PurgeTheProfane(final PurgeTheProfane card) {
|
||||
|
|
|
|||
|
|
@ -1,10 +1,9 @@
|
|||
|
||||
package mage.cards.r;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.dynamicvalue.common.StaticValue;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
|
|
@ -35,8 +34,10 @@ public final class RagebloodShaman extends CardImpl {
|
|||
// Trample
|
||||
this.addAbility(TrampleAbility.getInstance());
|
||||
// Other Minotaur creatures you control get +1/+1 and have trample.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(StaticValue.get(1), StaticValue.get(1), Duration.WhileOnBattlefield, filter, true)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield, filter, true)));
|
||||
Ability ability = new SimpleStaticAbility(new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter, true));
|
||||
ability.addEffect(new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield, filter, true)
|
||||
.setText("and have trample"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
private RagebloodShaman(final RagebloodShaman card) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.r;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -28,7 +27,6 @@ public final class RaidersSpoils extends CardImpl {
|
|||
public RaidersSpoils(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{B}");
|
||||
|
||||
|
||||
// Creatures you control get +1/+0.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 0, Duration.WhileOnBattlefield)));
|
||||
|
||||
|
|
@ -50,6 +48,7 @@ class RaidersSpoilsTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
RaidersSpoilsTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new DoIfCostPaid(new DrawCardSourceControllerEffect(1), new PayLifeCost(1)), false);
|
||||
setTriggerPhrase("Whenever a Warrior you control deals combat damage to a player, ");
|
||||
}
|
||||
|
||||
private RaidersSpoilsTriggeredAbility(final RaidersSpoilsTriggeredAbility ability) {
|
||||
|
|
@ -75,9 +74,5 @@ class RaidersSpoilsTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever a Warrior you control deals combat damage to a player, you may pay 1 life. If you do, draw a card";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ public final class RasputinDreamweaver extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Rasputin Dreamweaver enters the battlefield with seven dream counters on it.
|
||||
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.DREAM.createInstance(7)), "seven dream counters on it"));
|
||||
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.DREAM.createInstance(7)), "with seven dream counters on it"));
|
||||
|
||||
// Remove a dream counter from Rasputin: Add {C}.
|
||||
this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(1),
|
||||
|
|
|
|||
|
|
@ -1,18 +1,18 @@
|
|||
|
||||
package mage.cards.r;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.ExertCreatureControllerTriggeredAbility;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DamagePlayersEffect;
|
||||
import mage.abilities.effects.common.GainLifeEffect;
|
||||
import mage.abilities.effects.common.LoseLifeOpponentsEffect;
|
||||
import mage.abilities.keyword.ExertAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -32,12 +32,8 @@ public final class ResoluteSurvivors extends CardImpl {
|
|||
this.addAbility(new ExertAbility(null, false));
|
||||
|
||||
// Whenever you exert a creature, Resolute Survivors deals 1 damage to each opponent and you gain 1 life.
|
||||
Effect effect = new LoseLifeOpponentsEffect(1);
|
||||
effect.setText("Whenever you exert a creature, {this} deals 1 damage to each opponent");
|
||||
Ability ability = new ExertCreatureControllerTriggeredAbility(effect);
|
||||
effect = new GainLifeEffect(1);
|
||||
effect.setText("and you gain 1 life");
|
||||
ability.addEffect(effect);
|
||||
Ability ability = new ExertCreatureControllerTriggeredAbility(new DamagePlayersEffect(1, TargetController.OPPONENT));
|
||||
ability.addEffect(new GainLifeEffect(1).concatBy("and"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ public final class ReverentMantra extends CardImpl {
|
|||
|
||||
// Choose a color. All creatures gain protection from the chosen color until end of turn.
|
||||
this.getSpellAbility().addEffect(new GainProtectionFromColorAllEffect(
|
||||
Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE
|
||||
Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_ALL_CREATURES
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.r;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -49,9 +48,10 @@ public final class RhonassMonument extends CardImpl {
|
|||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpellsCostReductionControllerEffect(filter, 1)));
|
||||
|
||||
// Whenever you cast a creature spell, target creature you control gets +2/+2 and gains trample until end of turn.
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(new BoostTargetEffect(2, 2, Duration.EndOfTurn), filter2, false);
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(new BoostTargetEffect(2, 2, Duration.EndOfTurn)
|
||||
.setText("target creature you control gets +2/+2"), filter2, false);
|
||||
Effect effect = new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn);
|
||||
effect.setText(" and gains trample until end of turn");
|
||||
effect.setText("and gains trample until end of turn");
|
||||
ability.addEffect(effect);
|
||||
ability.addTarget(new TargetControlledCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue