mirror of
https://github.com/correl/mage.git
synced 2024-11-14 19:19:32 +00:00
Merge pull request #10399 from xenohedron/cleanup-becomescreaturesource
Cleanup: BecomesCreatureSourceEffect
This commit is contained in:
commit
a7c3cb9797
120 changed files with 294 additions and 286 deletions
|
@ -29,7 +29,7 @@ public final class AngelsTomb extends CardImpl {
|
||||||
.withColor("W")
|
.withColor("W")
|
||||||
.withSubType(SubType.ANGEL)
|
.withSubType(SubType.ANGEL)
|
||||||
.withAbility(FlyingAbility.getInstance()),
|
.withAbility(FlyingAbility.getInstance()),
|
||||||
"", Duration.EndOfTurn)
|
CardType.ARTIFACT, Duration.EndOfTurn)
|
||||||
.setText("have {this} become a 3/3 white Angel artifact creature with flying until end of turn");
|
.setText("have {this} become a 3/3 white Angel artifact creature with flying until end of turn");
|
||||||
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(
|
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(
|
||||||
Zone.BATTLEFIELD,
|
Zone.BATTLEFIELD,
|
||||||
|
@ -47,4 +47,4 @@ public final class AngelsTomb extends CardImpl {
|
||||||
public AngelsTomb copy() {
|
public AngelsTomb copy() {
|
||||||
return new AngelsTomb(this);
|
return new AngelsTomb(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,7 +72,7 @@ class AnsweredPrayersEffect extends OneShotEffect {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
game.addEffect(new BecomesCreatureSourceEffect(
|
game.addEffect(new BecomesCreatureSourceEffect(
|
||||||
new AnsweredPrayersToken(), "enchantment", Duration.EndOfTurn
|
new AnsweredPrayersToken(), CardType.ENCHANTMENT, Duration.EndOfTurn
|
||||||
), source);
|
), source);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ public final class AtarkaMonument extends CardImpl {
|
||||||
.withSubType(SubType.DRAGON)
|
.withSubType(SubType.DRAGON)
|
||||||
.withType(CardType.ARTIFACT)
|
.withType(CardType.ARTIFACT)
|
||||||
.withAbility(FlyingAbility.getInstance()),
|
.withAbility(FlyingAbility.getInstance()),
|
||||||
"", Duration.EndOfTurn), new ManaCostsImpl<>("{4}{R}{G}")));
|
CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{4}{R}{G}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private AtarkaMonument(final AtarkaMonument card) {
|
private AtarkaMonument(final AtarkaMonument card) {
|
||||||
|
|
|
@ -36,7 +36,7 @@ public final class AzoriusKeyrune extends CardImpl {
|
||||||
.withSubType(SubType.BIRD)
|
.withSubType(SubType.BIRD)
|
||||||
.withType(CardType.ARTIFACT)
|
.withType(CardType.ARTIFACT)
|
||||||
.withAbility(FlyingAbility.getInstance()),
|
.withAbility(FlyingAbility.getInstance()),
|
||||||
"", Duration.EndOfTurn), new ManaCostsImpl<>("{W}{U}")));
|
CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{W}{U}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private AzoriusKeyrune(final AzoriusKeyrune card) {
|
private AzoriusKeyrune(final AzoriusKeyrune card) {
|
||||||
|
|
|
@ -27,7 +27,7 @@ import mage.target.TargetPermanent;
|
||||||
*/
|
*/
|
||||||
public final class BlinkmothNexus extends CardImpl {
|
public final class BlinkmothNexus extends CardImpl {
|
||||||
|
|
||||||
private static final FilterPermanent filter = new FilterPermanent("Blinkmoth");
|
private static final FilterPermanent filter = new FilterPermanent("Blinkmoth creature");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
filter.add(SubType.BLINKMOTH.getPredicate());
|
filter.add(SubType.BLINKMOTH.getPredicate());
|
||||||
|
@ -45,7 +45,7 @@ public final class BlinkmothNexus extends CardImpl {
|
||||||
.withSubType(SubType.BLINKMOTH)
|
.withSubType(SubType.BLINKMOTH)
|
||||||
.withType(CardType.ARTIFACT)
|
.withType(CardType.ARTIFACT)
|
||||||
.withAbility(FlyingAbility.getInstance()),
|
.withAbility(FlyingAbility.getInstance()),
|
||||||
"land", Duration.EndOfTurn), new GenericManaCost(1)));
|
CardType.LAND, Duration.EndOfTurn), new GenericManaCost(1)));
|
||||||
|
|
||||||
// {1}, {T}: Target Blinkmoth creature gets +1/+1 until end of turn.
|
// {1}, {T}: Target Blinkmoth creature gets +1/+1 until end of turn.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(1, 1, Duration.EndOfTurn), new GenericManaCost(1));
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(1, 1, Duration.EndOfTurn), new GenericManaCost(1));
|
||||||
|
|
|
@ -32,8 +32,7 @@ public final class BogardanDragonheart extends CardImpl {
|
||||||
|
|
||||||
// Sacrifice another creature: Until end of turn, Bogardan Dragonheart becomes a Dragon with base power and toughness 4/4, flying, and haste.
|
// Sacrifice another creature: Until end of turn, Bogardan Dragonheart becomes a Dragon with base power and toughness 4/4, flying, and haste.
|
||||||
this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect(
|
this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect(
|
||||||
new BogardanDragonheartToken(), null, Duration.EndOfTurn, false,
|
new BogardanDragonheartToken(), CardType.CREATURE, Duration.EndOfTurn
|
||||||
false, null, null, false
|
|
||||||
), new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE))));
|
), new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ public final class BorosKeyrune extends CardImpl {
|
||||||
.withSubType(SubType.SOLDIER)
|
.withSubType(SubType.SOLDIER)
|
||||||
.withType(CardType.ARTIFACT)
|
.withType(CardType.ARTIFACT)
|
||||||
.withAbility(DoubleStrikeAbility.getInstance()),
|
.withAbility(DoubleStrikeAbility.getInstance()),
|
||||||
"", Duration.EndOfTurn), new ManaCostsImpl<>("{R}{W}")));
|
CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{R}{W}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private BorosKeyrune(final BorosKeyrune card) {
|
private BorosKeyrune(final BorosKeyrune card) {
|
||||||
|
|
|
@ -49,7 +49,7 @@ public final class CaveOfTheFrostDragon extends CardImpl {
|
||||||
.withColor("W")
|
.withColor("W")
|
||||||
.withSubType(SubType.DRAGON)
|
.withSubType(SubType.DRAGON)
|
||||||
.withAbility(FlyingAbility.getInstance()),
|
.withAbility(FlyingAbility.getInstance()),
|
||||||
"land", Duration.EndOfTurn), new ManaCostsImpl<>("{4}{W}")));
|
CardType.LAND, Duration.EndOfTurn), new ManaCostsImpl<>("{4}{W}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private CaveOfTheFrostDragon(final CaveOfTheFrostDragon card) {
|
private CaveOfTheFrostDragon(final CaveOfTheFrostDragon card) {
|
||||||
|
|
|
@ -41,7 +41,7 @@ public final class CelestialColonnade extends CardImpl {
|
||||||
.withSubType(SubType.ELEMENTAL)
|
.withSubType(SubType.ELEMENTAL)
|
||||||
.withAbility(FlyingAbility.getInstance())
|
.withAbility(FlyingAbility.getInstance())
|
||||||
.withAbility(VigilanceAbility.getInstance()),
|
.withAbility(VigilanceAbility.getInstance()),
|
||||||
"land", Duration.EndOfTurn), new ManaCostsImpl<>("{3}{W}{U}")));
|
CardType.LAND, Duration.EndOfTurn).withDurationRuleAtStart(true), new ManaCostsImpl<>("{3}{W}{U}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private CelestialColonnade(final CelestialColonnade card) {
|
private CelestialColonnade(final CelestialColonnade card) {
|
||||||
|
@ -53,4 +53,4 @@ public final class CelestialColonnade extends CardImpl {
|
||||||
return new CelestialColonnade(this);
|
return new CelestialColonnade(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,7 +45,7 @@ public final class ChimericEgg extends CardImpl {
|
||||||
.withSubType(SubType.CONSTRUCT)
|
.withSubType(SubType.CONSTRUCT)
|
||||||
.withType(CardType.ARTIFACT)
|
.withType(CardType.ARTIFACT)
|
||||||
.withAbility(TrampleAbility.getInstance()),
|
.withAbility(TrampleAbility.getInstance()),
|
||||||
"", Duration.EndOfTurn), new RemoveCountersSourceCost(new Counter(CounterType.CHARGE.getName(), 3))));
|
CardType.ARTIFACT, Duration.EndOfTurn), new RemoveCountersSourceCost(new Counter(CounterType.CHARGE.getName(), 3))));
|
||||||
}
|
}
|
||||||
|
|
||||||
private ChimericEgg(final ChimericEgg card) {
|
private ChimericEgg(final ChimericEgg card) {
|
||||||
|
|
|
@ -31,7 +31,7 @@ public final class ChimericIdol extends CardImpl {
|
||||||
new CreatureToken(3, 3, "3/3 Turtle artifact creature")
|
new CreatureToken(3, 3, "3/3 Turtle artifact creature")
|
||||||
.withSubType(SubType.TURTLE)
|
.withSubType(SubType.TURTLE)
|
||||||
.withType(CardType.ARTIFACT),
|
.withType(CardType.ARTIFACT),
|
||||||
"", Duration.EndOfTurn));
|
CardType.ARTIFACT, Duration.EndOfTurn));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -44,4 +44,4 @@ public final class ChimericIdol extends CardImpl {
|
||||||
public ChimericIdol copy() {
|
public ChimericIdol copy() {
|
||||||
return new ChimericIdol(this);
|
return new ChimericIdol(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,10 +13,7 @@ import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.effects.common.continuous.SetBasePowerToughnessSourceEffect;
|
import mage.abilities.effects.common.continuous.SetBasePowerToughnessSourceEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.*;
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.constants.Duration;
|
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.counters.CounterType;
|
import mage.counters.CounterType;
|
||||||
import mage.game.permanent.token.custom.CreatureToken;
|
import mage.game.permanent.token.custom.CreatureToken;
|
||||||
|
|
||||||
|
@ -32,13 +29,13 @@ public final class ChimericMass extends CardImpl {
|
||||||
this.addAbility(new EntersBattlefieldAbility(new EntersBattlefieldWithXCountersEffect(CounterType.CHARGE.createInstance())));
|
this.addAbility(new EntersBattlefieldAbility(new EntersBattlefieldWithXCountersEffect(CounterType.CHARGE.createInstance())));
|
||||||
|
|
||||||
// {1}: Until end of turn, Chimeric Mass becomes a Construct artifact creature with "This creature's power and toughness are each equal to the number of charge counters on it."
|
// {1}: Until end of turn, Chimeric Mass becomes a Construct artifact creature with "This creature's power and toughness are each equal to the number of charge counters on it."
|
||||||
// set to character defining to prevent setting P/T again to 0 becuase already set by CDA of the token
|
CountersSourceCount count = new CountersSourceCount(CounterType.CHARGE);
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(
|
||||||
new CreatureToken(0, 0, "Construct artifact creature with \"This creature's power and toughness are each equal to the number of charge counters on it.\"")
|
new CreatureToken(0, 0, "Construct artifact creature with \"This creature's power and toughness are each equal to the number of charge counters on it.\"")
|
||||||
.withType(CardType.ARTIFACT)
|
.withType(CardType.ARTIFACT)
|
||||||
.withSubType(SubType.CONSTRUCT)
|
.withSubType(SubType.CONSTRUCT)
|
||||||
.withAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SetBasePowerToughnessSourceEffect(new CountersSourceCount(CounterType.CHARGE)))),
|
.withAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SetBasePowerToughnessSourceEffect(count, count, Duration.WhileOnBattlefield, SubLayer.SetPT_7b))),
|
||||||
"", Duration.EndOfTurn, false, true), new GenericManaCost(1)));
|
CardType.ARTIFACT, Duration.EndOfTurn).withDurationRuleAtStart(true), new GenericManaCost(1)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private ChimericMass(final ChimericMass card) {
|
private ChimericMass(final ChimericMass card) {
|
||||||
|
@ -50,4 +47,4 @@ public final class ChimericMass extends CardImpl {
|
||||||
return new ChimericMass(this);
|
return new ChimericMass(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,9 +3,11 @@ package mage.cards.c;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect;
|
import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect;
|
||||||
|
import mage.abilities.effects.common.continuous.LoseAbilitySourceEffect;
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
@ -29,14 +31,17 @@ public final class ChimericSphere extends CardImpl {
|
||||||
.withSubType(SubType.CONSTRUCT)
|
.withSubType(SubType.CONSTRUCT)
|
||||||
.withType(CardType.ARTIFACT)
|
.withType(CardType.ARTIFACT)
|
||||||
.withAbility(FlyingAbility.getInstance()),
|
.withAbility(FlyingAbility.getInstance()),
|
||||||
"", Duration.EndOfTurn), new ManaCostsImpl<>("{2}")));
|
CardType.ARTIFACT, Duration.EndOfTurn).withDurationRuleAtStart(true), new ManaCostsImpl<>("{2}")));
|
||||||
|
|
||||||
// {2}: Until end of turn, Chimeric Sphere becomes a 3/2 Construct artifact creature without flying.
|
// {2}: Until end of turn, Chimeric Sphere becomes a 3/2 Construct artifact creature without flying.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(
|
||||||
new CreatureToken(3, 2, "3/2 Construct artifact creature without flying")
|
new CreatureToken(3, 2, "3/2 Construct artifact creature")
|
||||||
.withSubType(SubType.CONSTRUCT)
|
.withSubType(SubType.CONSTRUCT)
|
||||||
.withType(CardType.ARTIFACT),
|
.withType(CardType.ARTIFACT),
|
||||||
"", Duration.EndOfTurn), new ManaCostsImpl<>("{2}")));
|
CardType.ARTIFACT, Duration.EndOfTurn).withDurationRuleAtStart(true), new ManaCostsImpl<>("{2}"));
|
||||||
|
ability.addEffect(new LoseAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn).setText("and loses flying"));
|
||||||
|
this.addAbility(ability);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private ChimericSphere(final ChimericSphere card) {
|
private ChimericSphere(final ChimericSphere card) {
|
||||||
|
@ -48,4 +53,3 @@ public final class ChimericSphere extends CardImpl {
|
||||||
return new ChimericSphere(this);
|
return new ChimericSphere(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,11 +46,8 @@ public final class ChromiumTheMutable extends CardImpl {
|
||||||
// Discard a card: Until end of turn, Chromium, the Mutable becomes a Human with base power and toughness 1/1, loses all abilities, and gains hexproof. It can't be blocked this turn.
|
// Discard a card: Until end of turn, Chromium, the Mutable becomes a Human with base power and toughness 1/1, loses all abilities, and gains hexproof. It can't be blocked this turn.
|
||||||
Ability ability = new SimpleActivatedAbility(
|
Ability ability = new SimpleActivatedAbility(
|
||||||
new BecomesCreatureSourceEffect(
|
new BecomesCreatureSourceEffect(
|
||||||
new ChromiumTheMutableToken(), null, Duration.EndOfTurn,
|
new ChromiumTheMutableToken(), CardType.CREATURE, Duration.EndOfTurn
|
||||||
false, false, null, null, true
|
).andLoseAbilities(true),
|
||||||
).setText("Until end of turn, {this} becomes "
|
|
||||||
+ "a Human with base power and toughness 1/1, "
|
|
||||||
+ "loses all abilities, and gains hexproof"),
|
|
||||||
new DiscardCardCost()
|
new DiscardCardCost()
|
||||||
);
|
);
|
||||||
ability.addEffect(
|
ability.addEffect(
|
||||||
|
|
|
@ -39,7 +39,7 @@ public final class ChronatogTotem extends CardImpl {
|
||||||
.withColor("U")
|
.withColor("U")
|
||||||
.withSubType(SubType.ATOG)
|
.withSubType(SubType.ATOG)
|
||||||
.withType(CardType.ARTIFACT),
|
.withType(CardType.ARTIFACT),
|
||||||
"", Duration.EndOfTurn
|
CardType.ARTIFACT, Duration.EndOfTurn
|
||||||
), new ManaCostsImpl<>("{1}{U}")));
|
), new ManaCostsImpl<>("{1}{U}")));
|
||||||
|
|
||||||
// {0}: Chronatog Totem gets +3/+3 until end of turn. You skip your next turn. Activate this ability only once each turn and only if Chronatog Totem is a creature.
|
// {0}: Chronatog Totem gets +3/+3 until end of turn. You skip your next turn. Activate this ability only once each turn and only if Chronatog Totem is a creature.
|
||||||
|
|
|
@ -73,7 +73,7 @@ class CrawlingBarrensEffect extends OneShotEffect {
|
||||||
}
|
}
|
||||||
game.addEffect(new BecomesCreatureSourceEffect(new CreatureToken(
|
game.addEffect(new BecomesCreatureSourceEffect(new CreatureToken(
|
||||||
0, 0, "0/0 Elemental creature"
|
0, 0, "0/0 Elemental creature"
|
||||||
).withSubType(SubType.ELEMENTAL), "land", Duration.EndOfTurn), source);
|
).withSubType(SubType.ELEMENTAL), CardType.LAND, Duration.EndOfTurn), source);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,11 +36,13 @@ public final class CreepingTarPit extends CardImpl {
|
||||||
|
|
||||||
// {1}{U}{B}: Until end of turn, Creeping Tar Pit becomes a 3/2 blue and black Elemental creature and can't be blocked. It's still a land.
|
// {1}{U}{B}: Until end of turn, Creeping Tar Pit becomes a 3/2 blue and black Elemental creature and can't be blocked. It's still a land.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(
|
||||||
new CreatureToken(3, 2, "3/2 blue and black Elemental creature and can't be blocked")
|
new CreatureToken(3, 2, "3/2 blue and black Elemental creature")
|
||||||
.withColor("BU")
|
.withColor("BU")
|
||||||
.withSubType(SubType.ELEMENTAL)
|
.withSubType(SubType.ELEMENTAL)
|
||||||
.withAbility(new CantBeBlockedSourceAbility()),
|
.withAbility(new CantBeBlockedSourceAbility()),
|
||||||
"land", Duration.EndOfTurn), new ManaCostsImpl<>("{1}{U}{B}")));
|
CardType.LAND, Duration.EndOfTurn)
|
||||||
|
.setText("{this} becomes a 3/2 blue and black Elemental creature until end of turn and can't be blocked this turn. It's still a land"),
|
||||||
|
new ManaCostsImpl<>("{1}{U}{B}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private CreepingTarPit(final CreepingTarPit card) {
|
private CreepingTarPit(final CreepingTarPit card) {
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
package mage.cards.d;
|
package mage.cards.d;
|
||||||
|
|
||||||
import mage.abilities.Ability;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.DiesAttachedTriggeredAbility;
|
import mage.abilities.common.DiesAttachedTriggeredAbility;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
import mage.abilities.costs.mana.GenericManaCost;
|
import mage.abilities.costs.mana.GenericManaCost;
|
||||||
import mage.abilities.effects.ContinuousEffectImpl;
|
import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect;
|
||||||
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
|
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
|
||||||
import mage.abilities.keyword.EquipAbility;
|
import mage.abilities.keyword.EquipAbility;
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
|
@ -12,11 +12,10 @@ import mage.abilities.keyword.WardAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.*;
|
import mage.constants.*;
|
||||||
import mage.game.Game;
|
import mage.game.permanent.token.TokenImpl;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.target.common.TargetControlledCreaturePermanent;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import mage.target.common.TargetControlledCreaturePermanent;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
|
@ -33,7 +32,7 @@ public final class DancingSword extends CardImpl {
|
||||||
|
|
||||||
// When equipped creature dies, you may have Dancing Sword become a 2/1 Construct artifact creature with flying and ward {1}. If you do, it isn't an Equipment.
|
// When equipped creature dies, you may have Dancing Sword become a 2/1 Construct artifact creature with flying and ward {1}. If you do, it isn't an Equipment.
|
||||||
this.addAbility(new DiesAttachedTriggeredAbility(
|
this.addAbility(new DiesAttachedTriggeredAbility(
|
||||||
new DancingSwordEffect(), "equipped creature", true
|
new BecomesCreatureSourceEffect(new DancingSwordToken(), CardType.ARTIFACT, Duration.WhileOnBattlefield).andNotEquipment(true), "equipped creature", true
|
||||||
).setTriggerPhrase("When equipped creature dies, "));
|
).setTriggerPhrase("When equipped creature dies, "));
|
||||||
|
|
||||||
// Equip {1}
|
// Equip {1}
|
||||||
|
@ -50,65 +49,25 @@ public final class DancingSword extends CardImpl {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class DancingSwordEffect extends ContinuousEffectImpl {
|
class DancingSwordToken extends TokenImpl {
|
||||||
|
|
||||||
DancingSwordEffect() {
|
public DancingSwordToken() {
|
||||||
super(Duration.Custom, Outcome.Benefit);
|
super("", "2/1 Construct artifact creature with flying and ward {1}. If you do, it isn't an Equipment");
|
||||||
staticText = "you may have {this} become a 2/1 Construct artifact creature " +
|
cardType.add(CardType.ARTIFACT);
|
||||||
"with flying and ward {1}. If you do, it isn't an Equipment";
|
cardType.add(CardType.CREATURE);
|
||||||
|
subtype.add(SubType.CONSTRUCT);
|
||||||
|
power = new MageInt(2);
|
||||||
|
toughness = new MageInt(1);
|
||||||
|
this.addAbility(FlyingAbility.getInstance());
|
||||||
|
this.addAbility(new WardAbility(new GenericManaCost(1), false));
|
||||||
}
|
}
|
||||||
|
|
||||||
private DancingSwordEffect(final DancingSwordEffect effect) {
|
private DancingSwordToken(final DancingSwordToken token) {
|
||||||
super(effect);
|
super(token);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public DancingSwordToken copy() {
|
||||||
public DancingSwordEffect copy() {
|
return new DancingSwordToken(this);
|
||||||
return new DancingSwordEffect(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) {
|
|
||||||
Permanent permanent = source.getSourcePermanentIfItStillExists(game);
|
|
||||||
if (permanent == null) {
|
|
||||||
discard();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
switch (layer) {
|
|
||||||
case TypeChangingEffects_4:
|
|
||||||
permanent.removeAllCardTypes();
|
|
||||||
permanent.addCardType(game, CardType.ARTIFACT);
|
|
||||||
permanent.addCardType(game, CardType.CREATURE);
|
|
||||||
permanent.removeAllSubTypes(game);
|
|
||||||
permanent.addSubType(game, SubType.CONSTRUCT);
|
|
||||||
return true;
|
|
||||||
case AbilityAddingRemovingEffects_6:
|
|
||||||
permanent.addAbility(FlyingAbility.getInstance(), source.getSourceId(), game);
|
|
||||||
permanent.addAbility(new WardAbility(new GenericManaCost(1)), source.getSourceId(), game);
|
|
||||||
return true;
|
|
||||||
case PTChangingEffects_7:
|
|
||||||
if (sublayer == SubLayer.SetPT_7b) {
|
|
||||||
permanent.getPower().setModifiedBaseValue(2);
|
|
||||||
permanent.getToughness().setModifiedBaseValue(1);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Game game, Ability source) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasLayer(Layer layer) {
|
|
||||||
switch (layer) {
|
|
||||||
case TypeChangingEffects_4:
|
|
||||||
case AbilityAddingRemovingEffects_6:
|
|
||||||
case PTChangingEffects_7:
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ public final class DarksteelBrute extends CardImpl {
|
||||||
new CreatureToken(2, 2, "2/2 Beast artifact creature")
|
new CreatureToken(2, 2, "2/2 Beast artifact creature")
|
||||||
.withSubType(SubType.BEAST)
|
.withSubType(SubType.BEAST)
|
||||||
.withType(CardType.ARTIFACT),
|
.withType(CardType.ARTIFACT),
|
||||||
"", Duration.EndOfTurn), new GenericManaCost(3)));
|
CardType.ARTIFACT, Duration.EndOfTurn), new GenericManaCost(3)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private DarksteelBrute(final DarksteelBrute card) {
|
private DarksteelBrute(final DarksteelBrute card) {
|
||||||
|
@ -44,4 +44,4 @@ public final class DarksteelBrute extends CardImpl {
|
||||||
return new DarksteelBrute(this);
|
return new DarksteelBrute(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@ public final class DaxossTorment extends CardImpl {
|
||||||
.withSubType(SubType.DEMON)
|
.withSubType(SubType.DEMON)
|
||||||
.withAbility(FlyingAbility.getInstance())
|
.withAbility(FlyingAbility.getInstance())
|
||||||
.withAbility(HasteAbility.getInstance()),
|
.withAbility(HasteAbility.getInstance()),
|
||||||
"previous types", Duration.EndOfTurn)));
|
CardType.ENCHANTMENT, Duration.EndOfTurn)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private DaxossTorment(final DaxossTorment card) {
|
private DaxossTorment(final DaxossTorment card) {
|
||||||
|
|
|
@ -53,11 +53,11 @@ public final class DenOfTheBugbear extends CardImpl {
|
||||||
"Whenever this creature attacks, create a 1/1 red Goblin creature token that's tapped and attacking."
|
"Whenever this creature attacks, create a 1/1 red Goblin creature token that's tapped and attacking."
|
||||||
);
|
);
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(
|
||||||
new CreatureToken(3, 2, "3/2 red Goblin creature with \"Whenever this creature attacks, create a 1/1 red Goblin creature token that's tapped and attacking\"")
|
new CreatureToken(3, 2, "3/2 red Goblin creature with \"Whenever this creature attacks, create a 1/1 red Goblin creature token that's tapped and attacking.\"")
|
||||||
.withColor("R")
|
.withColor("R")
|
||||||
.withSubType(SubType.GOBLIN)
|
.withSubType(SubType.GOBLIN)
|
||||||
.withAbility(ability),
|
.withAbility(ability),
|
||||||
"land", Duration.EndOfTurn), new ManaCostsImpl<>("{3}{R}")));
|
CardType.LAND, Duration.EndOfTurn).withDurationRuleAtStart(true), new ManaCostsImpl<>("{3}{R}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private DenOfTheBugbear(final DenOfTheBugbear card) {
|
private DenOfTheBugbear(final DenOfTheBugbear card) {
|
||||||
|
|
|
@ -35,7 +35,7 @@ public final class DimirKeyrune extends CardImpl {
|
||||||
.withColor("UB")
|
.withColor("UB")
|
||||||
.withSubType(SubType.HORROR)
|
.withSubType(SubType.HORROR)
|
||||||
.withAbility(new CantBeBlockedSourceAbility()),
|
.withAbility(new CantBeBlockedSourceAbility()),
|
||||||
"", Duration.EndOfTurn), new ManaCostsImpl<>("{U}{B}")));
|
CardType.ARTIFACT, Duration.EndOfTurn).withDurationRuleAtStart(true), new ManaCostsImpl<>("{U}{B}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private DimirKeyrune(final DimirKeyrune card) {
|
private DimirKeyrune(final DimirKeyrune card) {
|
||||||
|
|
|
@ -39,7 +39,7 @@ public final class DireMimic extends CardImpl {
|
||||||
new CreatureToken(
|
new CreatureToken(
|
||||||
5, 5, "Shapeshifter artifact creature " +
|
5, 5, "Shapeshifter artifact creature " +
|
||||||
"with base power and toughness 5/5", SubType.SHAPESHIFTER
|
"with base power and toughness 5/5", SubType.SHAPESHIFTER
|
||||||
).withType(CardType.ARTIFACT), "", Duration.EndOfTurn
|
).withType(CardType.ARTIFACT), CardType.ARTIFACT, Duration.EndOfTurn
|
||||||
), new GenericManaCost(3)));
|
), new GenericManaCost(3)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ public final class DreadStatuary extends CardImpl {
|
||||||
public DreadStatuary(UUID ownerId, CardSetInfo setInfo) {
|
public DreadStatuary(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.LAND},null);
|
super(ownerId,setInfo,new CardType[]{CardType.LAND},null);
|
||||||
this.addAbility(new ColorlessManaAbility());
|
this.addAbility(new ColorlessManaAbility());
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new DreadStatuaryToken(), "land", Duration.EndOfTurn), new ManaCostsImpl<>("{4}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new DreadStatuaryToken(), CardType.LAND, Duration.EndOfTurn), new ManaCostsImpl<>("{4}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private DreadStatuary(final DreadStatuary card) {
|
private DreadStatuary(final DreadStatuary card) {
|
||||||
|
|
|
@ -32,7 +32,7 @@ public final class DromokaMonument extends CardImpl {
|
||||||
|
|
||||||
// {4}{G}{W}: Dromoka Monument becomes a 4/4 green and white Dragon artifact creature with flying until end of turn.
|
// {4}{G}{W}: Dromoka Monument becomes a 4/4 green and white Dragon artifact creature with flying until end of turn.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect
|
||||||
(new DromokaMonumentToken(), "", Duration.EndOfTurn), new ManaCostsImpl<>("{4}{G}{W}")));
|
(new DromokaMonumentToken(), CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{4}{G}{W}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private DromokaMonument(final DromokaMonument card) {
|
private DromokaMonument(final DromokaMonument card) {
|
||||||
|
@ -44,7 +44,7 @@ public final class DromokaMonument extends CardImpl {
|
||||||
return new DromokaMonument(this);
|
return new DromokaMonument(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
private class DromokaMonumentToken extends TokenImpl {
|
private static class DromokaMonumentToken extends TokenImpl {
|
||||||
DromokaMonumentToken() {
|
DromokaMonumentToken() {
|
||||||
super("", "4/4 green and white Dragon artifact creature with flying");
|
super("", "4/4 green and white Dragon artifact creature with flying");
|
||||||
cardType.add(CardType.ARTIFACT);
|
cardType.add(CardType.ARTIFACT);
|
||||||
|
|
|
@ -103,7 +103,7 @@ class EbonyFlyEffect extends OneShotEffect {
|
||||||
new CreatureToken(result, result)
|
new CreatureToken(result, result)
|
||||||
.withType(CardType.ARTIFACT)
|
.withType(CardType.ARTIFACT)
|
||||||
.withAbility(FlyingAbility.getInstance()),
|
.withAbility(FlyingAbility.getInstance()),
|
||||||
"", Duration.EndOfTurn, false, false
|
CardType.ARTIFACT, Duration.EndOfTurn
|
||||||
), source);
|
), source);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ public final class EnsouledScimitar extends CardImpl {
|
||||||
this.subtype.add(SubType.EQUIPMENT);
|
this.subtype.add(SubType.EQUIPMENT);
|
||||||
|
|
||||||
// {3}: Ensouled Scimitar becomes a 1/5 Spirit artifact creature with flying until end of turn.
|
// {3}: Ensouled Scimitar becomes a 1/5 Spirit artifact creature with flying until end of turn.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new EnsouledScimitarToken(), "", Duration.EndOfTurn), new ManaCostsImpl<>("{3}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new EnsouledScimitarToken(), CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{3}")));
|
||||||
// Equipped creature gets +1/+5.
|
// Equipped creature gets +1/+5.
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 5)));
|
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 5)));
|
||||||
// Equip {2}
|
// Equip {2}
|
||||||
|
@ -65,4 +65,4 @@ class EnsouledScimitarToken extends TokenImpl {
|
||||||
public EnsouledScimitarToken copy() {
|
public EnsouledScimitarToken copy() {
|
||||||
return new EnsouledScimitarToken(this);
|
return new EnsouledScimitarToken(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@ public class EyeOfMalcator extends CardImpl {
|
||||||
new BecomesCreatureSourceEffect(
|
new BecomesCreatureSourceEffect(
|
||||||
new CreatureToken(
|
new CreatureToken(
|
||||||
4, 4, "4/4 Phyrexian Eye artifact creature", SubType.PHYREXIAN, SubType.EYE
|
4, 4, "4/4 Phyrexian Eye artifact creature", SubType.PHYREXIAN, SubType.EYE
|
||||||
).withType(CardType.ARTIFACT), "", Duration.EndOfTurn
|
).withType(CardType.ARTIFACT), CardType.ARTIFACT, Duration.EndOfTurn
|
||||||
).setText("{this} becomes a 4/4 Phyrexian Eye artifact creature until end of turn"),
|
).setText("{this} becomes a 4/4 Phyrexian Eye artifact creature until end of turn"),
|
||||||
StaticFilters.FILTER_CONTROLLED_ANOTHER_ARTIFACT
|
StaticFilters.FILTER_CONTROLLED_ANOTHER_ARTIFACT
|
||||||
).setTriggerPhrase("Whenever another artifact enters the battlefield under your control, "));
|
).setTriggerPhrase("Whenever another artifact enters the battlefield under your control, "));
|
||||||
|
|
|
@ -30,7 +30,7 @@ public final class FacelessHaven extends CardImpl {
|
||||||
|
|
||||||
// {S}{S}{S}: Faceless Haven becomes a 4/3 creature with vigilance and all creature types until end of turn. It's still a land.
|
// {S}{S}{S}: Faceless Haven becomes a 4/3 creature with vigilance and all creature types until end of turn. It's still a land.
|
||||||
this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect(
|
this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect(
|
||||||
new FacelessHavenToken(), "land", Duration.EndOfTurn
|
new FacelessHavenToken(), CardType.LAND, Duration.EndOfTurn
|
||||||
).setText("{this} becomes a 4/3 creature with vigilance and all creature types until end of turn. It's still a land"), new ManaCostsImpl<>("{S}{S}{S}")));
|
).setText("{this} becomes a 4/3 creature with vigilance and all creature types until end of turn. It's still a land"), new ManaCostsImpl<>("{S}{S}{S}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ public final class FaerieConclave extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
|
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
|
||||||
this.addAbility(new EntersBattlefieldTappedAbility());
|
this.addAbility(new EntersBattlefieldTappedAbility());
|
||||||
this.addAbility(new BlueManaAbility());
|
this.addAbility(new BlueManaAbility());
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new FaerieConclaveToken(), "land", Duration.EndOfTurn), new ManaCostsImpl<>("{1}{U}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new FaerieConclaveToken(), CardType.LAND, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{U}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private FaerieConclave(final FaerieConclave card) {
|
private FaerieConclave(final FaerieConclave card) {
|
||||||
|
|
|
@ -32,7 +32,7 @@ public final class ForbiddingWatchtower extends CardImpl {
|
||||||
this.addAbility(new WhiteManaAbility());
|
this.addAbility(new WhiteManaAbility());
|
||||||
|
|
||||||
// {1}{W}: Forbidding Watchtower becomes a 1/5 white Soldier creature until end of turn. It's still a land.
|
// {1}{W}: Forbidding Watchtower becomes a 1/5 white Soldier creature until end of turn. It's still a land.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new ForbiddingWatchtowerToken(), "land", Duration.EndOfTurn), new ManaCostsImpl<>("{1}{W}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new ForbiddingWatchtowerToken(), CardType.LAND, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{W}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private ForbiddingWatchtower(final ForbiddingWatchtower card) {
|
private ForbiddingWatchtower(final ForbiddingWatchtower card) {
|
||||||
|
|
|
@ -36,7 +36,7 @@ public final class ForiysianTotem extends CardImpl {
|
||||||
this.addAbility(new RedManaAbility());
|
this.addAbility(new RedManaAbility());
|
||||||
|
|
||||||
// {4}{R}: Foriysian Totem becomes a 4/4 red Giant artifact creature with trample until end of turn.
|
// {4}{R}: Foriysian Totem becomes a 4/4 red Giant artifact creature with trample until end of turn.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new ForiysianTotemToken(), "", Duration.EndOfTurn), new ManaCostsImpl<>("{4}{R}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new ForiysianTotemToken(), CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{4}{R}")));
|
||||||
|
|
||||||
// As long as Foriysian Totem is a creature, it can block an additional creature each combat.
|
// As long as Foriysian Totem is a creature, it can block an additional creature each combat.
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new CanBlockAdditionalCreatureEffect(1), new SourceMatchesFilterCondition(new FilterCreaturePermanent()), ruleText)));
|
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new CanBlockAdditionalCreatureEffect(1), new SourceMatchesFilterCondition(new FilterCreaturePermanent()), ruleText)));
|
||||||
|
|
|
@ -27,7 +27,7 @@ public final class FountainOfIchor extends CardImpl {
|
||||||
|
|
||||||
// {3}: Fountain of Ichor becomes a 3/3 Dinosaur artifact creature until end of turn.
|
// {3}: Fountain of Ichor becomes a 3/3 Dinosaur artifact creature until end of turn.
|
||||||
this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect(
|
this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect(
|
||||||
new FountainOfIchorToken(), "", Duration.EndOfTurn
|
new FountainOfIchorToken(), CardType.ARTIFACT, Duration.EndOfTurn
|
||||||
), new GenericManaCost(3)));
|
), new GenericManaCost(3)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,8 +34,8 @@ public final class FrostwalkBastion extends CardImpl {
|
||||||
|
|
||||||
// {1}{S}: Until end of turn, Frostwalk Bastion becomes a 2/3 Construct artifact creature. It's still a land.
|
// {1}{S}: Until end of turn, Frostwalk Bastion becomes a 2/3 Construct artifact creature. It's still a land.
|
||||||
this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect(
|
this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect(
|
||||||
new FrostwalkBastionToken(), "land", Duration.EndOfTurn
|
new FrostwalkBastionToken(), CardType.LAND, Duration.EndOfTurn
|
||||||
), new ManaCostsImpl<>("{1}{S}")));
|
).withDurationRuleAtStart(true), new ManaCostsImpl<>("{1}{S}")));
|
||||||
|
|
||||||
// Whenever Frostwalk Bastion deals combat damage to a creature, tap that creature and it doesn't untap during its controller's next untap step.
|
// Whenever Frostwalk Bastion deals combat damage to a creature, tap that creature and it doesn't untap during its controller's next untap step.
|
||||||
Ability ability = new DealsDamageToACreatureTriggeredAbility(
|
Ability ability = new DealsDamageToACreatureTriggeredAbility(
|
||||||
|
@ -75,4 +75,4 @@ class FrostwalkBastionToken extends TokenImpl {
|
||||||
public FrostwalkBastionToken copy() {
|
public FrostwalkBastionToken copy() {
|
||||||
return new FrostwalkBastionToken(this);
|
return new FrostwalkBastionToken(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,7 @@ public final class GhituEncampment extends CardImpl {
|
||||||
this.addAbility(new EntersBattlefieldTappedAbility());
|
this.addAbility(new EntersBattlefieldTappedAbility());
|
||||||
this.addAbility(new RedManaAbility());
|
this.addAbility(new RedManaAbility());
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new BecomesCreatureSourceEffect(new GhituEncampmentToken(), "land", Duration.EndOfTurn),
|
new BecomesCreatureSourceEffect(new GhituEncampmentToken(), CardType.LAND, Duration.EndOfTurn),
|
||||||
new ManaCostsImpl<>("{1}{R}")));
|
new ManaCostsImpl<>("{1}{R}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ public final class GideonAllyOfZendikar extends CardImpl {
|
||||||
this.setStartingLoyalty(4);
|
this.setStartingLoyalty(4);
|
||||||
|
|
||||||
// +1: Until end of turn, Gideon, Ally of Zendikar becomes a 5/5 Human Soldier Ally creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.
|
// +1: Until end of turn, Gideon, Ally of Zendikar becomes a 5/5 Human Soldier Ally creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.
|
||||||
LoyaltyAbility ability = new LoyaltyAbility(new BecomesCreatureSourceEffect(new GideonAllyOfZendikarToken(), "planeswalker", Duration.EndOfTurn), 1);
|
LoyaltyAbility ability = new LoyaltyAbility(new BecomesCreatureSourceEffect(new GideonAllyOfZendikarToken(), CardType.PLANESWALKER, Duration.EndOfTurn), 1);
|
||||||
Effect effect = new PreventAllDamageToSourceEffect(Duration.EndOfTurn);
|
Effect effect = new PreventAllDamageToSourceEffect(Duration.EndOfTurn);
|
||||||
effect.setText("Prevent all damage that would be dealt to him this turn");
|
effect.setText("Prevent all damage that would be dealt to him this turn");
|
||||||
ability.addEffect(effect);
|
ability.addEffect(effect);
|
||||||
|
|
|
@ -60,7 +60,7 @@ public final class GideonBattleForged extends CardImpl {
|
||||||
this.addAbility(loyaltyAbility);
|
this.addAbility(loyaltyAbility);
|
||||||
|
|
||||||
// 0: Until end of turn, Gideon, Battle-Forged becomes a 4/4 Human Soldier creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.
|
// 0: Until end of turn, Gideon, Battle-Forged becomes a 4/4 Human Soldier creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.
|
||||||
LoyaltyAbility ability3 = new LoyaltyAbility(new BecomesCreatureSourceEffect(new GideonBattleForgedToken(), "planeswalker", Duration.EndOfTurn), 0);
|
LoyaltyAbility ability3 = new LoyaltyAbility(new BecomesCreatureSourceEffect(new GideonBattleForgedToken(), CardType.PLANESWALKER, Duration.EndOfTurn), 0);
|
||||||
effect = new PreventAllDamageToSourceEffect(Duration.EndOfTurn);
|
effect = new PreventAllDamageToSourceEffect(Duration.EndOfTurn);
|
||||||
effect.setText("Prevent all damage that would be dealt to him this turn");
|
effect.setText("Prevent all damage that would be dealt to him this turn");
|
||||||
ability3.addEffect(effect);
|
ability3.addEffect(effect);
|
||||||
|
|
|
@ -57,7 +57,7 @@ public final class GideonBlackblade extends CardImpl {
|
||||||
// As long as it's your turn, Gideon Blackblade is a 4/4 Human Soldier creature with indestructible that's still a planeswalker.
|
// As long as it's your turn, Gideon Blackblade is a 4/4 Human Soldier creature with indestructible that's still a planeswalker.
|
||||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||||
new BecomesCreatureSourceEffect(
|
new BecomesCreatureSourceEffect(
|
||||||
new GideonBlackbladeToken(), "planeswalker", Duration.WhileOnBattlefield
|
new GideonBlackbladeToken(), CardType.PLANESWALKER, Duration.WhileOnBattlefield
|
||||||
), MyTurnCondition.instance, "As long as it's your turn, " +
|
), MyTurnCondition.instance, "As long as it's your turn, " +
|
||||||
"{this} is a 4/4 Human Soldier creature with indestructible that's still a planeswalker."
|
"{this} is a 4/4 Human Soldier creature with indestructible that's still a planeswalker."
|
||||||
)).addHint(MyTurnHint.instance));
|
)).addHint(MyTurnHint.instance));
|
||||||
|
@ -165,4 +165,4 @@ class GideonBlackbladeEffect extends OneShotEffect {
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,7 +49,7 @@ public final class GideonChampionOfJustice extends CardImpl {
|
||||||
// 0: Until end of turn, Gideon becomes an indestructible Human Soldier creature with power and toughness each equal to the number of loyalty counters on him. He's still a planeswalker. Prevent all damage that would be dealt to him this turn.
|
// 0: Until end of turn, Gideon becomes an indestructible Human Soldier creature with power and toughness each equal to the number of loyalty counters on him. He's still a planeswalker. Prevent all damage that would be dealt to him this turn.
|
||||||
LockedInDynamicValue loyaltyCount = new LockedInDynamicValue(new CountersSourceCount(CounterType.LOYALTY));
|
LockedInDynamicValue loyaltyCount = new LockedInDynamicValue(new CountersSourceCount(CounterType.LOYALTY));
|
||||||
LoyaltyAbility ability2 = new LoyaltyAbility(new BecomesCreatureSourceEffect(
|
LoyaltyAbility ability2 = new LoyaltyAbility(new BecomesCreatureSourceEffect(
|
||||||
new GideonChampionOfJusticeToken(), "planeswalker", Duration.EndOfTurn, false, false, loyaltyCount, loyaltyCount)
|
new GideonChampionOfJusticeToken(), CardType.PLANESWALKER, Duration.EndOfTurn).withDynamicPT(loyaltyCount, loyaltyCount)
|
||||||
.setText("Until end of turn, {this} becomes a Human Soldier creature with power and toughness each equal to the number of loyalty counters on him and gains indestructible. He's still a planeswalker."), 0);
|
.setText("Until end of turn, {this} becomes a Human Soldier creature with power and toughness each equal to the number of loyalty counters on him and gains indestructible. He's still a planeswalker."), 0);
|
||||||
ability2.addEffect(new PreventAllDamageToSourceEffect(Duration.EndOfTurn).setText("prevent all damage that would be dealt to him this turn"));
|
ability2.addEffect(new PreventAllDamageToSourceEffect(Duration.EndOfTurn).setText("prevent all damage that would be dealt to him this turn"));
|
||||||
this.addAbility(ability2);
|
this.addAbility(ability2);
|
||||||
|
|
|
@ -51,7 +51,7 @@ public final class GideonJura extends CardImpl {
|
||||||
this.addAbility(ability2);
|
this.addAbility(ability2);
|
||||||
|
|
||||||
// 0: Until end of turn, Gideon Jura becomes a 6/6 Human Soldier creature that's still a planeswalker. Prevent all damage that would be dealt to him this turn.
|
// 0: Until end of turn, Gideon Jura becomes a 6/6 Human Soldier creature that's still a planeswalker. Prevent all damage that would be dealt to him this turn.
|
||||||
LoyaltyAbility ability3 = new LoyaltyAbility(new BecomesCreatureSourceEffect(new GideonJuraToken(), "planeswalker", Duration.EndOfTurn), 0);
|
LoyaltyAbility ability3 = new LoyaltyAbility(new BecomesCreatureSourceEffect(new GideonJuraToken(), CardType.PLANESWALKER, Duration.EndOfTurn), 0);
|
||||||
Effect effect = new PreventAllDamageToSourceEffect(Duration.EndOfTurn);
|
Effect effect = new PreventAllDamageToSourceEffect(Duration.EndOfTurn);
|
||||||
effect.setText("Prevent all damage that would be dealt to him this turn");
|
effect.setText("Prevent all damage that would be dealt to him this turn");
|
||||||
ability3.addEffect(effect);
|
ability3.addEffect(effect);
|
||||||
|
|
|
@ -44,7 +44,7 @@ public final class GideonMartialParagon extends CardImpl {
|
||||||
|
|
||||||
// 0: Until end of turn, Gideon, Martial Paragon, becomes a 5/5 Human Soldier creature with indestructible that's still a planeswalker.
|
// 0: Until end of turn, Gideon, Martial Paragon, becomes a 5/5 Human Soldier creature with indestructible that's still a planeswalker.
|
||||||
// Prevent all damage that would be dealt to him this turn.
|
// Prevent all damage that would be dealt to him this turn.
|
||||||
ability = new LoyaltyAbility(new BecomesCreatureSourceEffect(new GideonMartialParagonToken(), "planeswalker", Duration.EndOfTurn), 0);
|
ability = new LoyaltyAbility(new BecomesCreatureSourceEffect(new GideonMartialParagonToken(), CardType.PLANESWALKER, Duration.EndOfTurn), 0);
|
||||||
effect = new PreventAllDamageToSourceEffect(Duration.EndOfTurn);
|
effect = new PreventAllDamageToSourceEffect(Duration.EndOfTurn);
|
||||||
effect.setText("Prevent all damage that would be dealt to him this turn");
|
effect.setText("Prevent all damage that would be dealt to him this turn");
|
||||||
ability.addEffect(effect);
|
ability.addEffect(effect);
|
||||||
|
|
|
@ -42,7 +42,7 @@ public final class GideonOfTheTrials extends CardImpl {
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// 0: Until end of turn, Gideon of the Trials becomes a 4/4 Human Soldier creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.
|
// 0: Until end of turn, Gideon of the Trials becomes a 4/4 Human Soldier creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.
|
||||||
ability = new LoyaltyAbility(new BecomesCreatureSourceEffect(new GideonOfTheTrialsToken(), "planeswalker", Duration.EndOfTurn), 0);
|
ability = new LoyaltyAbility(new BecomesCreatureSourceEffect(new GideonOfTheTrialsToken(), CardType.PLANESWALKER, Duration.EndOfTurn), 0);
|
||||||
effect = new PreventAllDamageToSourceEffect(Duration.EndOfTurn);
|
effect = new PreventAllDamageToSourceEffect(Duration.EndOfTurn);
|
||||||
effect.setText("Prevent all damage that would be dealt to him this turn");
|
effect.setText("Prevent all damage that would be dealt to him this turn");
|
||||||
ability.addEffect(effect);
|
ability.addEffect(effect);
|
||||||
|
|
|
@ -41,7 +41,7 @@ public final class GideonTheOathsworn extends CardImpl {
|
||||||
|
|
||||||
// +2: Until end of turn, Gideon, the Oathsworn becomes a 5/5 white Soldier creature that's still a planeswalker. Prevent all damage that would be dealt to him this turn.
|
// +2: Until end of turn, Gideon, the Oathsworn becomes a 5/5 white Soldier creature that's still a planeswalker. Prevent all damage that would be dealt to him this turn.
|
||||||
Ability ability = new LoyaltyAbility(new BecomesCreatureSourceEffect(
|
Ability ability = new LoyaltyAbility(new BecomesCreatureSourceEffect(
|
||||||
new GideonTheOathswornToken(), "planeswalker", Duration.EndOfTurn
|
new GideonTheOathswornToken(), CardType.PLANESWALKER, Duration.EndOfTurn
|
||||||
), 2);
|
), 2);
|
||||||
ability.addEffect(new PreventAllDamageToSourceEffect(
|
ability.addEffect(new PreventAllDamageToSourceEffect(
|
||||||
Duration.EndOfTurn
|
Duration.EndOfTurn
|
||||||
|
|
|
@ -34,10 +34,10 @@ public final class GlintHawkIdol extends CardImpl {
|
||||||
|
|
||||||
// Whenever another artifact enters the battlefield under your control, you may have {this} become a 2/2 Bird artifact creature with flying until end of turn.
|
// Whenever another artifact enters the battlefield under your control, you may have {this} become a 2/2 Bird artifact creature with flying until end of turn.
|
||||||
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(
|
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(
|
||||||
Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GlintHawkIdolToken(), "", Duration.EndOfTurn), filter, true));
|
Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GlintHawkIdolToken(), CardType.ARTIFACT, Duration.EndOfTurn), filter, true));
|
||||||
|
|
||||||
// {W}: Glint Hawk Idol becomes a 2/2 Bird artifact creature with flying until end of turn.
|
// {W}: Glint Hawk Idol becomes a 2/2 Bird artifact creature with flying until end of turn.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GlintHawkIdolToken(), "", Duration.EndOfTurn), new ColoredManaCost(ColoredManaSymbol.W)));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GlintHawkIdolToken(), CardType.ARTIFACT, Duration.EndOfTurn), new ColoredManaCost(ColoredManaSymbol.W)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public GlintHawkIdol (final GlintHawkIdol card) {
|
public GlintHawkIdol (final GlintHawkIdol card) {
|
||||||
|
|
|
@ -30,7 +30,7 @@ public final class GolgariKeyrune extends CardImpl {
|
||||||
this.addAbility(new GreenManaAbility());
|
this.addAbility(new GreenManaAbility());
|
||||||
|
|
||||||
// {B}{G}: Golgari Keyrune becomes a 2/2 black and green Insect artifact creature with deathtouch until end of turn.
|
// {B}{G}: Golgari Keyrune becomes a 2/2 black and green Insect artifact creature with deathtouch until end of turn.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GolgariKeyruneToken(), "", Duration.EndOfTurn), new ManaCostsImpl<>("{B}{G}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GolgariKeyruneToken(), CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{B}{G}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private GolgariKeyrune(final GolgariKeyrune card) {
|
private GolgariKeyrune(final GolgariKeyrune card) {
|
||||||
|
|
|
@ -31,7 +31,7 @@ public final class GruulKeyrune extends CardImpl {
|
||||||
this.addAbility(new GreenManaAbility());
|
this.addAbility(new GreenManaAbility());
|
||||||
|
|
||||||
// {R}{G}: Gruul Keyrune becomes a 3/2 red and green Beast artifact creature with trample until end of turn.
|
// {R}{G}: Gruul Keyrune becomes a 3/2 red and green Beast artifact creature with trample until end of turn.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GruulKeyruneToken(), "", Duration.EndOfTurn), new ManaCostsImpl<>("{R}{G}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GruulKeyruneToken(), CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{R}{G}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private GruulKeyrune(final GruulKeyrune card) {
|
private GruulKeyrune(final GruulKeyrune card) {
|
||||||
|
|
|
@ -30,7 +30,7 @@ public final class GruulWarPlow extends CardImpl {
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURES)));
|
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURES)));
|
||||||
|
|
||||||
// {1}{R}{G}: Gruul War Plow becomes a 4/4 Juggernaut artifact creature until end of turn.
|
// {1}{R}{G}: Gruul War Plow becomes a 4/4 Juggernaut artifact creature until end of turn.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GruulWarPlowToken(), "", Duration.EndOfTurn), new ManaCostsImpl<>("{1}{R}{G}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GruulWarPlowToken(), CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{R}{G}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private GruulWarPlow(final GruulWarPlow card) {
|
private GruulWarPlow(final GruulWarPlow card) {
|
||||||
|
|
|
@ -30,7 +30,7 @@ public final class GuardianIdol extends CardImpl {
|
||||||
// {tap}: Add {C}.
|
// {tap}: Add {C}.
|
||||||
this.addAbility(new ColorlessManaAbility());
|
this.addAbility(new ColorlessManaAbility());
|
||||||
// {2}: Guardian Idol becomes a 2/2 Golem artifact creature until end of turn.
|
// {2}: Guardian Idol becomes a 2/2 Golem artifact creature until end of turn.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GuardianIdolGolemToken(), "", Duration.EndOfTurn), new ManaCostsImpl<>("{2}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GuardianIdolGolemToken(), CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{2}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private GuardianIdol(final GuardianIdol card) {
|
private GuardianIdol(final GuardianIdol card) {
|
||||||
|
@ -46,7 +46,7 @@ public final class GuardianIdol extends CardImpl {
|
||||||
class GuardianIdolGolemToken extends TokenImpl {
|
class GuardianIdolGolemToken extends TokenImpl {
|
||||||
|
|
||||||
public GuardianIdolGolemToken() {
|
public GuardianIdolGolemToken() {
|
||||||
super("Golem", "2/2 Golem artifact creature token");
|
super("Golem", "2/2 Golem artifact creature");
|
||||||
cardType.add(CardType.ARTIFACT);
|
cardType.add(CardType.ARTIFACT);
|
||||||
cardType.add(CardType.CREATURE);
|
cardType.add(CardType.CREATURE);
|
||||||
subtype.add(SubType.GOLEM);
|
subtype.add(SubType.GOLEM);
|
||||||
|
@ -60,4 +60,4 @@ class GuardianIdolGolemToken extends TokenImpl {
|
||||||
public GuardianIdolGolemToken copy() {
|
public GuardianIdolGolemToken copy() {
|
||||||
return new GuardianIdolGolemToken(this);
|
return new GuardianIdolGolemToken(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,8 +25,7 @@ public final class HalcyonGlaze extends CardImpl {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{U}{U}");
|
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{U}{U}");
|
||||||
|
|
||||||
// Whenever you cast a creature spell, Halcyon Glaze becomes a 4/4 Illusion creature with flying in addition to its other types until end of turn.
|
// Whenever you cast a creature spell, Halcyon Glaze becomes a 4/4 Illusion creature with flying in addition to its other types until end of turn.
|
||||||
Effect effect = new BecomesCreatureSourceEffect(new HalcyonGlazeToken(), "enchantment", Duration.EndOfTurn);
|
Effect effect = new BecomesCreatureSourceEffect(new HalcyonGlazeToken(), CardType.ENCHANTMENT, Duration.EndOfTurn);
|
||||||
effect.setText("{this} becomes a 4/4 Illusion creature with flying in addition to its other types until end of turn");
|
|
||||||
this.addAbility(new SpellCastControllerTriggeredAbility(effect, StaticFilters.FILTER_SPELL_A_CREATURE, false));
|
this.addAbility(new SpellCastControllerTriggeredAbility(effect, StaticFilters.FILTER_SPELL_A_CREATURE, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ public final class HallOfStormGiants extends CardImpl {
|
||||||
.withColor("U")
|
.withColor("U")
|
||||||
.withSubType(SubType.GIANT)
|
.withSubType(SubType.GIANT)
|
||||||
.withAbility(new WardAbility(new GenericManaCost(3))),
|
.withAbility(new WardAbility(new GenericManaCost(3))),
|
||||||
"land", Duration.EndOfTurn).setText(
|
CardType.LAND, Duration.EndOfTurn).setText(
|
||||||
"Until end of turn, Hall of Storm Giants becomes a 7/7 blue Giant creature with ward {3}. " +
|
"Until end of turn, Hall of Storm Giants becomes a 7/7 blue Giant creature with ward {3}. " +
|
||||||
"It's still a land. " +
|
"It's still a land. " +
|
||||||
"<i>(Whenever it becomes the target of a spell or ability an opponent controls, " +
|
"<i>(Whenever it becomes the target of a spell or ability an opponent controls, " +
|
||||||
|
|
|
@ -37,7 +37,7 @@ public final class HauntedPlateMail extends CardImpl {
|
||||||
// {0}: Until end of turn, Haunted Plate Mail becomes a 4/4 Spirit artifact creature that's no longer an Equipment. Activate this ability only if you control no creatures.
|
// {0}: Until end of turn, Haunted Plate Mail becomes a 4/4 Spirit artifact creature that's no longer an Equipment. Activate this ability only if you control no creatures.
|
||||||
Ability ability = new ConditionalActivatedAbility(
|
Ability ability = new ConditionalActivatedAbility(
|
||||||
Zone.BATTLEFIELD,
|
Zone.BATTLEFIELD,
|
||||||
new BecomesCreatureSourceEffect(new HauntedPlateMailToken(), "", Duration.EndOfTurn),
|
new BecomesCreatureSourceEffect(new HauntedPlateMailToken(), CardType.ARTIFACT, Duration.EndOfTurn).andNotEquipment(true),
|
||||||
new ManaCostsImpl<>("{0}"),
|
new ManaCostsImpl<>("{0}"),
|
||||||
new PermanentsOnTheBattlefieldCondition(StaticFilters.FILTER_PERMANENT_CREATURE, ComparisonType.EQUAL_TO, 0),
|
new PermanentsOnTheBattlefieldCondition(StaticFilters.FILTER_PERMANENT_CREATURE, ComparisonType.EQUAL_TO, 0),
|
||||||
"{0}: Until end of turn, Haunted Plate Mail becomes a 4/4 Spirit artifact creature that's no longer an Equipment. Activate only if you control no creatures.");
|
"{0}: Until end of turn, Haunted Plate Mail becomes a 4/4 Spirit artifact creature that's no longer an Equipment. Activate only if you control no creatures.");
|
||||||
|
|
|
@ -35,7 +35,7 @@ public final class HiddenAncients extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{G}");
|
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{G}");
|
||||||
|
|
||||||
// When an opponent casts an enchantment spell, if Hidden Ancients is an enchantment, Hidden Ancients becomes a 5/5 Treefolk creature.
|
// When an opponent casts an enchantment spell, if Hidden Ancients is an enchantment, Hidden Ancients becomes a 5/5 Treefolk creature.
|
||||||
TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new HiddenAncientsTreefolkToken(), "", Duration.WhileOnBattlefield, true, false),
|
TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new HiddenAncientsTreefolkToken(), null, Duration.WhileOnBattlefield),
|
||||||
filter, false);
|
filter, false);
|
||||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
||||||
"When an opponent casts an enchantment spell, if {this} is an enchantment, {this} becomes a 5/5 Treefolk creature."));
|
"When an opponent casts an enchantment spell, if {this} is an enchantment, {this} becomes a 5/5 Treefolk creature."));
|
||||||
|
|
|
@ -35,7 +35,7 @@ public final class HiddenGibbons extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{G}");
|
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{G}");
|
||||||
|
|
||||||
// When an opponent casts an instant spell, if Hidden Gibbons is an enchantment, Hidden Gibbons becomes a 4/4 Ape creature.
|
// When an opponent casts an instant spell, if Hidden Gibbons is an enchantment, Hidden Gibbons becomes a 4/4 Ape creature.
|
||||||
TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new HiddenGibbonsApe(), "", Duration.WhileOnBattlefield, true, false),
|
TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new HiddenGibbonsApe(), null, Duration.WhileOnBattlefield),
|
||||||
filter, false);
|
filter, false);
|
||||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
||||||
"When an opponent casts an instant spell, if {this} is an enchantment, {this} becomes a 4/4 Ape creature."));
|
"When an opponent casts an instant spell, if {this} is an enchantment, {this} becomes a 4/4 Ape creature."));
|
||||||
|
|
|
@ -30,7 +30,7 @@ public final class HiddenGuerrillas extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{G}");
|
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{G}");
|
||||||
|
|
||||||
// When an opponent casts an artifact spell, if Hidden Guerrillas is an enchantment, Hidden Guerrillas becomes a 5/3 Soldier creature with trample.
|
// When an opponent casts an artifact spell, if Hidden Guerrillas is an enchantment, Hidden Guerrillas becomes a 5/3 Soldier creature with trample.
|
||||||
TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new HiddenGuerrillasSoldier(), "", Duration.WhileOnBattlefield, true, false),
|
TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new HiddenGuerrillasSoldier(), null, Duration.WhileOnBattlefield),
|
||||||
new FilterArtifactSpell(), false);
|
new FilterArtifactSpell(), false);
|
||||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
||||||
"When an opponent casts an artifact spell, if {this} is an enchantment, {this} becomes a 5/3 Soldier creature with trample."));
|
"When an opponent casts an artifact spell, if {this} is an enchantment, {this} becomes a 5/3 Soldier creature with trample."));
|
||||||
|
|
|
@ -12,7 +12,6 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Duration;
|
import mage.constants.Duration;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.SuperType;
|
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.StaticFilters;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
|
@ -50,7 +49,7 @@ public final class HiddenHerd extends CardImpl {
|
||||||
class HiddenHerdAbility extends TriggeredAbilityImpl {
|
class HiddenHerdAbility extends TriggeredAbilityImpl {
|
||||||
|
|
||||||
public HiddenHerdAbility() {
|
public HiddenHerdAbility() {
|
||||||
super(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new HiddenHerdBeast(), "", Duration.WhileOnBattlefield, true, false), false);
|
super(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new HiddenHerdBeast(), null, Duration.WhileOnBattlefield), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public HiddenHerdAbility(final HiddenHerdAbility ability) {
|
public HiddenHerdAbility(final HiddenHerdAbility ability) {
|
||||||
|
|
|
@ -46,8 +46,8 @@ class HiddenPredatorsStateTriggeredAbility extends StateTriggeredAbility {
|
||||||
}
|
}
|
||||||
|
|
||||||
public HiddenPredatorsStateTriggeredAbility() {
|
public HiddenPredatorsStateTriggeredAbility() {
|
||||||
super(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new HiddenPredatorsToken(), "", Duration.Custom, true, false));
|
super(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new HiddenPredatorsToken(), null, Duration.Custom));
|
||||||
setTriggerPhrase("When an opponent controls a creature with power 4 or greater, if {this} is an enchantment");
|
setTriggerPhrase("When an opponent controls a creature with power 4 or greater, if {this} is an enchantment, ");
|
||||||
}
|
}
|
||||||
|
|
||||||
public HiddenPredatorsStateTriggeredAbility(final HiddenPredatorsStateTriggeredAbility ability) {
|
public HiddenPredatorsStateTriggeredAbility(final HiddenPredatorsStateTriggeredAbility ability) {
|
||||||
|
|
|
@ -38,7 +38,7 @@ public final class HiddenSpider extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{G}");
|
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{G}");
|
||||||
|
|
||||||
// When an opponent casts a creature spell with flying, if Hidden Spider is an enchantment, Hidden Spider becomes a 3/5 Spider creature with reach.
|
// When an opponent casts a creature spell with flying, if Hidden Spider is an enchantment, Hidden Spider becomes a 3/5 Spider creature with reach.
|
||||||
TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new HiddenSpiderToken(), "", Duration.WhileOnBattlefield, true, false),
|
TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new HiddenSpiderToken(), null, Duration.WhileOnBattlefield),
|
||||||
filter, false);
|
filter, false);
|
||||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
||||||
"When an opponent casts a creature spell with flying, if {this} is an enchantment, {this} becomes a 3/5 Spider creature with reach."));
|
"When an opponent casts a creature spell with flying, if {this} is an enchantment, {this} becomes a 3/5 Spider creature with reach."));
|
||||||
|
|
|
@ -29,7 +29,7 @@ public final class HiddenStag extends CardImpl {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{G}");
|
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{G}");
|
||||||
|
|
||||||
// Whenever an opponent plays a land, if Hidden Stag is an enchantment, Hidden Stag becomes a 3/2 Elk Beast creature.
|
// Whenever an opponent plays a land, if Hidden Stag is an enchantment, Hidden Stag becomes a 3/2 Elk Beast creature.
|
||||||
Effect effect = new BecomesCreatureSourceEffect(new ElkBeastToken(), "", Duration.WhileOnBattlefield, true, false);
|
Effect effect = new BecomesCreatureSourceEffect(new ElkBeastToken(), null, Duration.WhileOnBattlefield);
|
||||||
TriggeredAbility ability = new OpponentPlaysLandTriggeredAbility(Zone.BATTLEFIELD, effect, false);
|
TriggeredAbility ability = new OpponentPlaysLandTriggeredAbility(Zone.BATTLEFIELD, effect, false);
|
||||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
||||||
"Whenever an opponent plays a land, if Hidden Stag is an enchantment, Hidden Stag becomes a 3/2 Elk Beast creature."));
|
"Whenever an opponent plays a land, if Hidden Stag is an enchantment, Hidden Stag becomes a 3/2 Elk Beast creature."));
|
||||||
|
|
|
@ -36,7 +36,7 @@ public final class HissingQuagmire extends CardImpl {
|
||||||
this.addAbility(new GreenManaAbility());
|
this.addAbility(new GreenManaAbility());
|
||||||
|
|
||||||
// {1}{B}{G}: Hissing Quagmire becomes a 2/2 black and green Elemental creature with deathtouch until end of turn. It's still a land.
|
// {1}{B}{G}: Hissing Quagmire becomes a 2/2 black and green Elemental creature with deathtouch until end of turn. It's still a land.
|
||||||
Effect effect = new BecomesCreatureSourceEffect(new HissingQuagmireToken(), "land", Duration.EndOfTurn);
|
Effect effect = new BecomesCreatureSourceEffect(new HissingQuagmireToken(), CardType.LAND, Duration.EndOfTurn);
|
||||||
effect.setText("{this} becomes a 2/2 black and green Elemental creature with deathtouch until end of turn. It's still a land");
|
effect.setText("{this} becomes a 2/2 black and green Elemental creature with deathtouch until end of turn. It's still a land");
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{1}{B}{G}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{1}{B}{G}")));
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,8 +63,8 @@ public final class HiveOfTheEyeTyrant extends CardImpl {
|
||||||
3, 3, "3/3 black Beholder creature with menace and " +
|
3, 3, "3/3 black Beholder creature with menace and " +
|
||||||
"\"Whenever this creature attacks, exile target card from defending player's graveyard.\""
|
"\"Whenever this creature attacks, exile target card from defending player's graveyard.\""
|
||||||
).withSubType(SubType.BEHOLDER).withColor("B").withAbility(new MenaceAbility()).withAbility(ability),
|
).withSubType(SubType.BEHOLDER).withColor("B").withAbility(new MenaceAbility()).withAbility(ability),
|
||||||
"land", Duration.EndOfTurn
|
CardType.LAND, Duration.EndOfTurn
|
||||||
), new ManaCostsImpl<>("{3}{B}")));
|
).withDurationRuleAtStart(true), new ManaCostsImpl<>("{3}{B}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private HiveOfTheEyeTyrant(final HiveOfTheEyeTyrant card) {
|
private HiveOfTheEyeTyrant(final HiveOfTheEyeTyrant card) {
|
||||||
|
|
|
@ -34,7 +34,7 @@ public final class HostileDesert extends CardImpl {
|
||||||
// {2}, Exile a land card from your graveyard: Hostile Desert becomes a 3/4 Elemental creature until end of turn. It's still a land.
|
// {2}, Exile a land card from your graveyard: Hostile Desert becomes a 3/4 Elemental creature until end of turn. It's still a land.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(
|
||||||
new CreatureToken(3, 4, "3/4 Elemental creature", SubType.ELEMENTAL),
|
new CreatureToken(3, 4, "3/4 Elemental creature", SubType.ELEMENTAL),
|
||||||
"land", Duration.EndOfTurn), new GenericManaCost(2));
|
CardType.LAND, Duration.EndOfTurn), new GenericManaCost(2));
|
||||||
ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(new FilterLandCard("land card from your graveyard"))));
|
ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(new FilterLandCard("land card from your graveyard"))));
|
||||||
addAbility(ability);
|
addAbility(ability);
|
||||||
}
|
}
|
||||||
|
@ -47,4 +47,4 @@ public final class HostileDesert extends CardImpl {
|
||||||
public HostileDesert copy() {
|
public HostileDesert copy() {
|
||||||
return new HostileDesert(this);
|
return new HostileDesert(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ public final class InkmothNexus extends CardImpl {
|
||||||
this.addAbility(new ColorlessManaAbility());
|
this.addAbility(new ColorlessManaAbility());
|
||||||
|
|
||||||
// {1}: Inkmoth Nexus becomes a 1/1 Blinkmoth artifact creature with flying and infect until end of turn. It's still a land. (It deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)
|
// {1}: Inkmoth Nexus becomes a 1/1 Blinkmoth artifact creature with flying and infect until end of turn. It's still a land. (It deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)
|
||||||
Effect effect = new BecomesCreatureSourceEffect(new InkmothNexusToken(), "land", Duration.EndOfTurn);
|
Effect effect = new BecomesCreatureSourceEffect(new InkmothNexusToken(), CardType.LAND, Duration.EndOfTurn);
|
||||||
effect.setText("{this} becomes a 1/1 Phyrexian Blinkmoth artifact creature with flying and infect until end of turn. It's still a land. <i>(It deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)</i>");
|
effect.setText("{this} becomes a 1/1 Phyrexian Blinkmoth artifact creature with flying and infect until end of turn. It's still a land. <i>(It deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)</i>");
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new GenericManaCost(1)));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new GenericManaCost(1)));
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,8 +31,8 @@ public final class IzzetKeyrune extends CardImpl {
|
||||||
|
|
||||||
// {U}{R}: Until end of turn, Izzet Keyrune becomes a 2/1 blue and red Elemental artifact creature.
|
// {U}{R}: Until end of turn, Izzet Keyrune becomes a 2/1 blue and red Elemental artifact creature.
|
||||||
this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect(
|
this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect(
|
||||||
new IzzetKeyruneToken(), "", Duration.EndOfTurn
|
new IzzetKeyruneToken(), CardType.ARTIFACT, Duration.EndOfTurn
|
||||||
), new ManaCostsImpl<>("{U}{R}")));
|
).withDurationRuleAtStart(true), new ManaCostsImpl<>("{U}{R}")));
|
||||||
|
|
||||||
// Whenever Izzet Keyrune deals combat damage to a player, you may draw a card. If you do, discard a card.
|
// Whenever Izzet Keyrune deals combat damage to a player, you may draw a card. If you do, discard a card.
|
||||||
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
|
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
|
||||||
|
|
|
@ -21,7 +21,7 @@ public final class JadeIdol extends CardImpl {
|
||||||
|
|
||||||
public JadeIdol(UUID ownerId, CardSetInfo setInfo) {
|
public JadeIdol(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}");
|
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}");
|
||||||
this.addAbility(new SpellCastControllerTriggeredAbility(new BecomesCreatureSourceEffect(new JadeIdolToken(), "", Duration.EndOfTurn), StaticFilters.FILTER_SPIRIT_OR_ARCANE_CARD, false));
|
this.addAbility(new SpellCastControllerTriggeredAbility(new BecomesCreatureSourceEffect(new JadeIdolToken(), CardType.ARTIFACT, Duration.EndOfTurn), StaticFilters.FILTER_SPIRIT_OR_ARCANE_CARD, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
private JadeIdol(final JadeIdol card) {
|
private JadeIdol(final JadeIdol card) {
|
||||||
|
@ -51,4 +51,4 @@ class JadeIdolToken extends TokenImpl {
|
||||||
public JadeIdolToken copy() {
|
public JadeIdolToken copy() {
|
||||||
return new JadeIdolToken(this);
|
return new JadeIdolToken(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@ public final class JadeStatue extends CardImpl {
|
||||||
|
|
||||||
|
|
||||||
// {2}: Jade Statue becomes a 3/6 Golem artifact creature until end of combat. Activate this ability only during combat.
|
// {2}: Jade Statue becomes a 3/6 Golem artifact creature until end of combat. Activate this ability only during combat.
|
||||||
this.addAbility(new ConditionalActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect (new JadeStatueToken(), "", Duration.EndOfCombat), new ManaCostsImpl<>("{2}"), new IsPhaseCondition(TurnPhase.COMBAT), "{2}: {this} becomes a 3/6 Golem artifact creature until end of combat. Activate only during combat."));
|
this.addAbility(new ConditionalActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect (new JadeStatueToken(), CardType.ARTIFACT, Duration.EndOfCombat), new ManaCostsImpl<>("{2}"), new IsPhaseCondition(TurnPhase.COMBAT), "{2}: {this} becomes a 3/6 Golem artifact creature until end of combat. Activate only during combat."));
|
||||||
}
|
}
|
||||||
|
|
||||||
private JadeStatue(final JadeStatue card) {
|
private JadeStatue(final JadeStatue card) {
|
||||||
|
|
|
@ -32,7 +32,7 @@ public final class KolaghanMonument extends CardImpl {
|
||||||
|
|
||||||
// {4}{B}{R}: Kolaghan Monument becomes a 4/4 black and red Dragon artifact creature with flying until end of turn.
|
// {4}{B}{R}: Kolaghan Monument becomes a 4/4 black and red Dragon artifact creature with flying until end of turn.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect
|
||||||
(new KolaghanMonumentToken(), "", Duration.EndOfTurn), new ManaCostsImpl<>("{4}{B}{R}")));
|
(new KolaghanMonumentToken(), CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{4}{B}{R}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private KolaghanMonument(final KolaghanMonument card) {
|
private KolaghanMonument(final KolaghanMonument card) {
|
||||||
|
@ -44,7 +44,7 @@ public final class KolaghanMonument extends CardImpl {
|
||||||
return new KolaghanMonument(this);
|
return new KolaghanMonument(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
private class KolaghanMonumentToken extends TokenImpl {
|
private static class KolaghanMonumentToken extends TokenImpl {
|
||||||
KolaghanMonumentToken() {
|
KolaghanMonumentToken() {
|
||||||
super("", "4/4 black and red Dragon artifact creature with flying");
|
super("", "4/4 black and red Dragon artifact creature with flying");
|
||||||
cardType.add(CardType.ARTIFACT);
|
cardType.add(CardType.ARTIFACT);
|
||||||
|
|
|
@ -89,7 +89,7 @@ class LairOfTheHydraEffect extends OneShotEffect {
|
||||||
new CreatureToken(xValue, xValue, "X/X green Hydra creature")
|
new CreatureToken(xValue, xValue, "X/X green Hydra creature")
|
||||||
.withColor("G")
|
.withColor("G")
|
||||||
.withSubType(SubType.HYDRA),
|
.withSubType(SubType.HYDRA),
|
||||||
"land", Duration.EndOfTurn), source
|
CardType.LAND, Duration.EndOfTurn), source
|
||||||
);
|
);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ public final class LavaclawReaches extends CardImpl {
|
||||||
this.addAbility(new RedManaAbility());
|
this.addAbility(new RedManaAbility());
|
||||||
|
|
||||||
// {1}{B}{R}: Until end of turn, Lavaclaw Reaches becomes a 2/2 black and red Elemental creature with ": This creature gets +X/+0 until end of turn." It's still a land.
|
// {1}{B}{R}: Until end of turn, Lavaclaw Reaches becomes a 2/2 black and red Elemental creature with ": This creature gets +X/+0 until end of turn." It's still a land.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new LavaclawReachesToken(), "land", Duration.EndOfTurn), new ManaCostsImpl<>("{1}{B}{R}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new LavaclawReachesToken(), CardType.LAND, Duration.EndOfTurn).withDurationRuleAtStart(true), new ManaCostsImpl<>("{1}{B}{R}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private LavaclawReaches(final LavaclawReaches card) {
|
private LavaclawReaches(final LavaclawReaches card) {
|
||||||
|
|
|
@ -38,7 +38,7 @@ public final class LevitatingStatue extends CardImpl {
|
||||||
this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect(
|
this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect(
|
||||||
new CreatureToken(
|
new CreatureToken(
|
||||||
1, 1, "1/1 Construct artifact creature", SubType.CONSTRUCT
|
1, 1, "1/1 Construct artifact creature", SubType.CONSTRUCT
|
||||||
).withType(CardType.ARTIFACT), "", Duration.EndOfTurn
|
).withType(CardType.ARTIFACT), CardType.ARTIFACT, Duration.EndOfTurn
|
||||||
), new GenericManaCost(2)));
|
), new GenericManaCost(2)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ public final class LumberingFalls extends CardImpl {
|
||||||
this.addAbility(new GreenManaAbility());
|
this.addAbility(new GreenManaAbility());
|
||||||
|
|
||||||
// {2}{G}{U}: Lumbering Falls becomes a 3/3 green and blue Elemental creature with hexproof until end of turn. It's still a land.
|
// {2}{G}{U}: Lumbering Falls becomes a 3/3 green and blue Elemental creature with hexproof until end of turn. It's still a land.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new LumberingFallsToken(), "land", Duration.EndOfTurn), new ManaCostsImpl<>("{2}{G}{U}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new LumberingFallsToken(), CardType.LAND, Duration.EndOfTurn), new ManaCostsImpl<>("{2}{G}{U}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private LumberingFalls(final LumberingFalls card) {
|
private LumberingFalls(final LumberingFalls card) {
|
||||||
|
|
|
@ -17,7 +17,6 @@ import mage.constants.SubType;
|
||||||
import mage.constants.Duration;
|
import mage.constants.Duration;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.events.GameEvent;
|
|
||||||
import mage.game.permanent.token.TokenImpl;
|
import mage.game.permanent.token.TokenImpl;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
import mage.util.CardUtil;
|
import mage.util.CardUtil;
|
||||||
|
@ -32,7 +31,7 @@ public final class LurkingEvil extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{B}{B}{B}");
|
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{B}{B}{B}");
|
||||||
|
|
||||||
// Pay half your life, rounded up: Lurking Evil becomes a 4/4 Horror creature with flying.
|
// Pay half your life, rounded up: Lurking Evil becomes a 4/4 Horror creature with flying.
|
||||||
Effect effect = new BecomesCreatureSourceEffect(new LurkingEvilToken(), null, Duration.EndOfGame, true, false);
|
Effect effect = new BecomesCreatureSourceEffect(new LurkingEvilToken(), null, Duration.EndOfGame);
|
||||||
effect.setText("{this} becomes a 4/4 Phyrexian Horror creature with flying");
|
effect.setText("{this} becomes a 4/4 Phyrexian Horror creature with flying");
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new LurkingEvilCost()));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new LurkingEvilCost()));
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ public final class LurkingJackals extends CardImpl {
|
||||||
class LurkingJackalsStateTriggeredAbility extends StateTriggeredAbility {
|
class LurkingJackalsStateTriggeredAbility extends StateTriggeredAbility {
|
||||||
|
|
||||||
public LurkingJackalsStateTriggeredAbility() {
|
public LurkingJackalsStateTriggeredAbility() {
|
||||||
super(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new LurkingJackalsToken(), "", Duration.Custom, true, false));
|
super(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new LurkingJackalsToken(), null, Duration.Custom));
|
||||||
setTriggerPhrase("When an opponent has 10 or less life, if {this} is an enchantment, ");
|
setTriggerPhrase("When an opponent has 10 or less life, if {this} is an enchantment, ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,9 +103,9 @@ class LurkingJackalsStateTriggeredAbility extends StateTriggeredAbility {
|
||||||
class LurkingJackalsToken extends TokenImpl {
|
class LurkingJackalsToken extends TokenImpl {
|
||||||
|
|
||||||
public LurkingJackalsToken() {
|
public LurkingJackalsToken() {
|
||||||
super("Dog", "3/2 Dog creature");
|
super("Dog", "3/2 Jackal creature");
|
||||||
cardType.add(CardType.CREATURE);
|
cardType.add(CardType.CREATURE);
|
||||||
subtype.add(SubType.DOG);
|
subtype.add(SubType.JACKAL);
|
||||||
power = new MageInt(3);
|
power = new MageInt(3);
|
||||||
toughness = new MageInt(2);
|
toughness = new MageInt(2);
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ public final class LurkingSkirge extends CardImpl {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{B}");
|
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{B}");
|
||||||
|
|
||||||
// When a creature is put into an opponent's graveyard from the battlefield, if Lurking Skirge is an enchantment, Lurking Skirge becomes a 3/2 Imp creature with flying.
|
// When a creature is put into an opponent's graveyard from the battlefield, if Lurking Skirge is an enchantment, Lurking Skirge becomes a 3/2 Imp creature with flying.
|
||||||
TriggeredAbility ability = new PutIntoGraveFromBattlefieldAllTriggeredAbility(new BecomesCreatureSourceEffect(new LurkingSkirgeToken(), "", Duration.WhileOnBattlefield, true, false), false, filter, false);
|
TriggeredAbility ability = new PutIntoGraveFromBattlefieldAllTriggeredAbility(new BecomesCreatureSourceEffect(new LurkingSkirgeToken(), null, Duration.WhileOnBattlefield), false, filter, false);
|
||||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
||||||
"When a creature is put into an opponent's graveyard from the battlefield, if {this} is an enchantment, {this} becomes a 3/2 Phyrexian Imp creature with flying."));
|
"When a creature is put into an opponent's graveyard from the battlefield, if {this} is an enchantment, {this} becomes a 3/2 Phyrexian Imp creature with flying."));
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ public final class MishrasFactory extends CardImpl {
|
||||||
2, 2,
|
2, 2,
|
||||||
"2/2 Assembly-Worker artifact creature",
|
"2/2 Assembly-Worker artifact creature",
|
||||||
SubType.ASSEMBLY_WORKER
|
SubType.ASSEMBLY_WORKER
|
||||||
).withType(CardType.ARTIFACT), "land", Duration.EndOfTurn
|
).withType(CardType.ARTIFACT), CardType.LAND, Duration.EndOfTurn
|
||||||
), new GenericManaCost(1)));
|
), new GenericManaCost(1)));
|
||||||
|
|
||||||
// {tap}: Target Assembly-Worker creature gets +1/+1 until end of turn.
|
// {tap}: Target Assembly-Worker creature gets +1/+1 until end of turn.
|
||||||
|
|
|
@ -42,7 +42,7 @@ public final class MishrasFoundry extends CardImpl {
|
||||||
2, 2,
|
2, 2,
|
||||||
"2/2 Assembly-Worker artifact creature",
|
"2/2 Assembly-Worker artifact creature",
|
||||||
SubType.ASSEMBLY_WORKER
|
SubType.ASSEMBLY_WORKER
|
||||||
).withType(CardType.ARTIFACT), "land", Duration.EndOfTurn
|
).withType(CardType.ARTIFACT), CardType.LAND, Duration.EndOfTurn
|
||||||
), new GenericManaCost(2)));
|
), new GenericManaCost(2)));
|
||||||
|
|
||||||
// {1}, {T}: Target attacking Assembly-Worker gets +2/+2 until end of turn.
|
// {1}, {T}: Target attacking Assembly-Worker gets +2/+2 until end of turn.
|
||||||
|
|
|
@ -37,7 +37,7 @@ public final class MobilizedDistrict extends CardImpl {
|
||||||
|
|
||||||
// {4}: Mobilized District becomes a 3/3 Citizen creature with vigilance until end of turn. It's still a land. This ability costs {1} less to activate for each legendary creature and planeswalker you control.
|
// {4}: Mobilized District becomes a 3/3 Citizen creature with vigilance until end of turn. It's still a land. This ability costs {1} less to activate for each legendary creature and planeswalker you control.
|
||||||
Ability ability = new SimpleActivatedAbility(new BecomesCreatureSourceEffect(
|
Ability ability = new SimpleActivatedAbility(new BecomesCreatureSourceEffect(
|
||||||
new MobilizedDistrictToken(), "land", Duration.EndOfTurn
|
new MobilizedDistrictToken(), CardType.LAND, Duration.EndOfTurn
|
||||||
).setText("{this} becomes a 3/3 Citizen creature with vigilance until end of turn. " +
|
).setText("{this} becomes a 3/3 Citizen creature with vigilance until end of turn. " +
|
||||||
"It's still a land. This ability costs {1} less to activate " +
|
"It's still a land. This ability costs {1} less to activate " +
|
||||||
"for each legendary creature and planeswalker you control."
|
"for each legendary creature and planeswalker you control."
|
||||||
|
|
|
@ -2,6 +2,7 @@ package mage.cards.m;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import mage.MageObject;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
|
@ -21,13 +22,11 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.constants.*;
|
import mage.constants.*;
|
||||||
import mage.filter.FilterCard;
|
import mage.filter.FilterCard;
|
||||||
import mage.filter.FilterPermanent;
|
import mage.filter.FilterPermanent;
|
||||||
import mage.filter.StaticFilters;
|
|
||||||
import mage.filter.common.FilterControlledLandPermanent;
|
import mage.filter.common.FilterControlledLandPermanent;
|
||||||
import mage.filter.common.FilterLandCard;
|
import mage.filter.common.FilterLandCard;
|
||||||
import mage.filter.predicate.Predicates;
|
import mage.filter.predicate.Predicates;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.token.custom.CreatureToken;
|
import mage.game.permanent.token.custom.CreatureToken;
|
||||||
import mage.players.Player;
|
|
||||||
import mage.target.common.TargetCardInLibrary;
|
import mage.target.common.TargetCardInLibrary;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -64,9 +63,8 @@ public final class MonumentToPerfection extends CardImpl {
|
||||||
).withType(CardType.ARTIFACT)
|
).withType(CardType.ARTIFACT)
|
||||||
.withAbility(IndestructibleAbility.getInstance())
|
.withAbility(IndestructibleAbility.getInstance())
|
||||||
.withAbility(new ToxicAbility(9)),
|
.withAbility(new ToxicAbility(9)),
|
||||||
null, Duration.Custom, true,
|
CardType.ARTIFACT, Duration.Custom
|
||||||
false, null, null, true
|
).andLoseAbilities(true), new GenericManaCost(3), MonumentToPerfectionCondition.instance
|
||||||
), new GenericManaCost(3), MonumentToPerfectionCondition.instance
|
|
||||||
).addHint(MonumentToPerfectionValue.getHint()));
|
).addHint(MonumentToPerfectionValue.getHint()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,7 +100,7 @@ enum MonumentToPerfectionValue implements DynamicValue {
|
||||||
.getBattlefield()
|
.getBattlefield()
|
||||||
.getActivePermanents(filter, sourceAbility.getControllerId(), game)
|
.getActivePermanents(filter, sourceAbility.getControllerId(), game)
|
||||||
.stream()
|
.stream()
|
||||||
.map(permanent -> permanent.getName())
|
.map(MageObject::getName)
|
||||||
.filter(s -> s.length() > 0)
|
.filter(s -> s.length() > 0)
|
||||||
.distinct()
|
.distinct()
|
||||||
.mapToInt(x -> 1)
|
.mapToInt(x -> 1)
|
||||||
|
@ -136,4 +134,4 @@ enum MonumentToPerfectionCondition implements Condition {
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "there are nine or more lands with different names among the basic, Sphere, and Locus lands you control";
|
return "there are nine or more lands with different names among the basic, Sphere, and Locus lands you control";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@ public final class Mutavault extends CardImpl {
|
||||||
this.addAbility(new ColorlessManaAbility());
|
this.addAbility(new ColorlessManaAbility());
|
||||||
// {1}: Mutavault becomes a 2/2 creature with all creature types until end of turn. It's still a land.
|
// {1}: Mutavault becomes a 2/2 creature with all creature types until end of turn. It's still a land.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new BecomesCreatureSourceEffect(new MutavaultToken(), "land", Duration.EndOfTurn),
|
new BecomesCreatureSourceEffect(new MutavaultToken(), CardType.LAND, Duration.EndOfTurn),
|
||||||
new ManaCostsImpl<>("{1}")));
|
new ManaCostsImpl<>("{1}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,8 +44,7 @@ public final class MythRealized extends CardImpl {
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.LORE.createInstance()), new ManaCostsImpl<>("{2}{W}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.LORE.createInstance()), new ManaCostsImpl<>("{2}{W}")));
|
||||||
|
|
||||||
// {W}: Until end of turn, Myth Realized becomes a Monk Avatar creature in addition to its other types and gains "This creature's power and toughness are each equal to the number of lore counters on it."
|
// {W}: Until end of turn, Myth Realized becomes a Monk Avatar creature in addition to its other types and gains "This creature's power and toughness are each equal to the number of lore counters on it."
|
||||||
Effect effect = new BecomesCreatureSourceEffect(new MythRealizedToken(), null, Duration.EndOfTurn);
|
Effect effect = new BecomesCreatureSourceEffect(new MythRealizedToken(), CardType.ENCHANTMENT, Duration.EndOfTurn).withDurationRuleAtStart(true);
|
||||||
effect.setText("Until end of turn, {this} becomes a Monk Avatar creature in addition to its other types ");
|
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{W}"));
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{W}"));
|
||||||
ability.addEffect(new SetBasePowerToughnessSourceEffect(loreCounterCount, loreCounterCount, Duration.EndOfTurn, SubLayer.SetPT_7b).setText("and gains \"This creature's power and toughness are each equal to the number of lore counters on it.\""));
|
ability.addEffect(new SetBasePowerToughnessSourceEffect(loreCounterCount, loreCounterCount, Duration.EndOfTurn, SubLayer.SetPT_7b).setText("and gains \"This creature's power and toughness are each equal to the number of lore counters on it.\""));
|
||||||
|
|
||||||
|
@ -65,7 +64,7 @@ public final class MythRealized extends CardImpl {
|
||||||
class MythRealizedToken extends TokenImpl {
|
class MythRealizedToken extends TokenImpl {
|
||||||
|
|
||||||
public MythRealizedToken() {
|
public MythRealizedToken() {
|
||||||
super("", "Monk Avatar creature in addition to its other types and gains \"This creature's power and toughness are each equal to the number of lore counters on it.\"");
|
super("", "Monk Avatar creature");
|
||||||
cardType.add(CardType.CREATURE);
|
cardType.add(CardType.CREATURE);
|
||||||
subtype.add(SubType.MONK);
|
subtype.add(SubType.MONK);
|
||||||
subtype.add(SubType.AVATAR);
|
subtype.add(SubType.AVATAR);
|
||||||
|
|
|
@ -32,7 +32,7 @@ public final class NantukoMonastery extends CardImpl {
|
||||||
this.addAbility(new ColorlessManaAbility());
|
this.addAbility(new ColorlessManaAbility());
|
||||||
// Threshold - {G}{W}: Nantuko Monastery becomes a 4/4 green and white Insect Monk creature with first strike until end of turn. It's still a land. Activate this ability only if seven or more cards are in your graveyard.
|
// Threshold - {G}{W}: Nantuko Monastery becomes a 4/4 green and white Insect Monk creature with first strike until end of turn. It's still a land. Activate this ability only if seven or more cards are in your graveyard.
|
||||||
Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(
|
Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(
|
||||||
new NantukoMonasteryToken(), "land", Duration.EndOfTurn), new ManaCostsImpl<>("{G}{W}"),
|
new NantukoMonasteryToken(), CardType.LAND, Duration.EndOfTurn), new ManaCostsImpl<>("{G}{W}"),
|
||||||
new CardsInControllerGraveyardCondition(7));
|
new CardsInControllerGraveyardCondition(7));
|
||||||
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
ability.setAbilityWord(AbilityWord.THRESHOLD);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
|
@ -36,7 +36,7 @@ public final class NeedleSpires extends CardImpl {
|
||||||
this.addAbility(new WhiteManaAbility());
|
this.addAbility(new WhiteManaAbility());
|
||||||
|
|
||||||
// {2}{R}{W}: Needle Spires becomes a 2/1 red and white Elemental creature with double strike until end of turn. It's still a land.
|
// {2}{R}{W}: Needle Spires becomes a 2/1 red and white Elemental creature with double strike until end of turn. It's still a land.
|
||||||
Effect effect = new BecomesCreatureSourceEffect(new NeedleSpiresToken(), "land", Duration.EndOfTurn);
|
Effect effect = new BecomesCreatureSourceEffect(new NeedleSpiresToken(), CardType.LAND, Duration.EndOfTurn);
|
||||||
effect.setText("{this} becomes a 2/1 red and white Elemental creature with double strike until end of turn. It's still a land");
|
effect.setText("{this} becomes a 2/1 red and white Elemental creature with double strike until end of turn. It's still a land");
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{2}{R}{W}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{2}{R}{W}")));
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,7 @@ public final class NogiDracoZealot extends CardImpl {
|
||||||
new CreatureToken(5, 5, "Dragon with base power and toughness 5/5 and gains flying")
|
new CreatureToken(5, 5, "Dragon with base power and toughness 5/5 and gains flying")
|
||||||
.withSubType(SubType.DRAGON)
|
.withSubType(SubType.DRAGON)
|
||||||
.withAbility(FlyingAbility.getInstance()),
|
.withAbility(FlyingAbility.getInstance()),
|
||||||
"", Duration.EndOfTurn), false
|
CardType.CREATURE, Duration.EndOfTurn), false
|
||||||
), condition, "Whenever {this} attacks, if you control three or more Dragons, until end of turn, " +
|
), condition, "Whenever {this} attacks, if you control three or more Dragons, until end of turn, " +
|
||||||
"{this} becomes a Dragon with base power and toughness 5/5 and gains flying"
|
"{this} becomes a Dragon with base power and toughness 5/5 and gains flying"
|
||||||
);
|
);
|
||||||
|
|
|
@ -32,7 +32,7 @@ public final class OjutaiMonument extends CardImpl {
|
||||||
|
|
||||||
// {4}{W}{U}: Ojutai Monument becomes a 4/4 white and blue Dragon artifact creature with flying until end of turn.
|
// {4}{W}{U}: Ojutai Monument becomes a 4/4 white and blue Dragon artifact creature with flying until end of turn.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect
|
||||||
(new OjutaiMonumentToken(), "", Duration.EndOfTurn), new ManaCostsImpl<>("{4}{W}{U}")));
|
(new OjutaiMonumentToken(), CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{4}{W}{U}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private OjutaiMonument(final OjutaiMonument card) {
|
private OjutaiMonument(final OjutaiMonument card) {
|
||||||
|
|
|
@ -36,7 +36,7 @@ public final class OpalAcrolith extends CardImpl {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{W}");
|
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{W}");
|
||||||
|
|
||||||
// Whenever an opponent casts a creature spell, if Opal Acrolith is an enchantment, Opal Acrolith becomes a 2/4 Soldier creature.
|
// Whenever an opponent casts a creature spell, if Opal Acrolith is an enchantment, Opal Acrolith becomes a 2/4 Soldier creature.
|
||||||
TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalAcrolithToken(), "", Duration.WhileOnBattlefield, true, false),
|
TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalAcrolithToken(), null, Duration.WhileOnBattlefield),
|
||||||
filter, false);
|
filter, false);
|
||||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
||||||
"Whenever an opponent casts a creature spell, if Opal Acrolith is an enchantment, Opal Acrolith becomes a 2/4 Soldier creature."));
|
"Whenever an opponent casts a creature spell, if Opal Acrolith is an enchantment, Opal Acrolith becomes a 2/4 Soldier creature."));
|
||||||
|
|
|
@ -31,7 +31,7 @@ public final class OpalArchangel extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{4}{W}");
|
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{4}{W}");
|
||||||
|
|
||||||
// When an opponent casts a creature spell, if Opal Archangel is an enchantment, Opal Archangel becomes a 5/5 Angel creature with flying and vigilance.
|
// When an opponent casts a creature spell, if Opal Archangel is an enchantment, Opal Archangel becomes a 5/5 Angel creature with flying and vigilance.
|
||||||
TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalArchangelToken(), "", Duration.WhileOnBattlefield, true, false),
|
TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalArchangelToken(), null, Duration.WhileOnBattlefield),
|
||||||
new FilterCreatureSpell(), false);
|
new FilterCreatureSpell(), false);
|
||||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
||||||
"When an opponent casts a creature spell, if {this} is an enchantment, {this} becomes a 5/5 Angel creature with flying and vigilance."));
|
"When an opponent casts a creature spell, if {this} is an enchantment, {this} becomes a 5/5 Angel creature with flying and vigilance."));
|
||||||
|
|
|
@ -40,7 +40,7 @@ public final class OpalAvenger extends CardImpl {
|
||||||
class OpalAvengerStateTriggeredAbility extends StateTriggeredAbility {
|
class OpalAvengerStateTriggeredAbility extends StateTriggeredAbility {
|
||||||
|
|
||||||
public OpalAvengerStateTriggeredAbility() {
|
public OpalAvengerStateTriggeredAbility() {
|
||||||
super(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new OpalAvengerToken(), "", Duration.Custom, true, false));
|
super(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new OpalAvengerToken(), null, Duration.Custom));
|
||||||
setTriggerPhrase("When you have 10 or less life, if {this} is an enchantment, ");
|
setTriggerPhrase("When you have 10 or less life, if {this} is an enchantment, ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ public final class OpalCaryatid extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{W}");
|
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{W}");
|
||||||
|
|
||||||
// When an opponent casts a creature spell, if Opal Caryatid is an enchantment, Opal Caryatid becomes a 2/2 Soldier creature.
|
// When an opponent casts a creature spell, if Opal Caryatid is an enchantment, Opal Caryatid becomes a 2/2 Soldier creature.
|
||||||
TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalCaryatidSoldierToken(), "", Duration.WhileOnBattlefield, true, false),
|
TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalCaryatidSoldierToken(), null, Duration.WhileOnBattlefield),
|
||||||
new FilterCreatureSpell(), false);
|
new FilterCreatureSpell(), false);
|
||||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
||||||
"When an opponent casts a creature spell, if {this} is an enchantment, {this} becomes a 2/2 Soldier creature."));
|
"When an opponent casts a creature spell, if {this} is an enchantment, {this} becomes a 2/2 Soldier creature."));
|
||||||
|
|
|
@ -30,7 +30,7 @@ public final class OpalChampion extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{W}");
|
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{W}");
|
||||||
|
|
||||||
// When an opponent casts a creature spell, if Opal Champion is an enchantment, Opal Champion becomes a 3/3 Knight creature with first strike.
|
// When an opponent casts a creature spell, if Opal Champion is an enchantment, Opal Champion becomes a 3/3 Knight creature with first strike.
|
||||||
TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalChampionKnight(), "", Duration.WhileOnBattlefield, true, false),
|
TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalChampionKnight(), null, Duration.WhileOnBattlefield),
|
||||||
new FilterCreatureSpell(), false);
|
new FilterCreatureSpell(), false);
|
||||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
||||||
"When an opponent casts a creature spell, if {this} is an enchantment, {this} becomes a 3/3 Knight creature with first strike."));
|
"When an opponent casts a creature spell, if {this} is an enchantment, {this} becomes a 3/3 Knight creature with first strike."));
|
||||||
|
|
|
@ -30,7 +30,7 @@ public final class OpalGargoyle extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{W}");
|
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{W}");
|
||||||
|
|
||||||
// When an opponent casts a creature spell, if Opal Gargoyle is an enchantment, Opal Gargoyle becomes a 2/2 Gargoyle creature with flying.
|
// When an opponent casts a creature spell, if Opal Gargoyle is an enchantment, Opal Gargoyle becomes a 2/2 Gargoyle creature with flying.
|
||||||
TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalGargoyleToken(), "", Duration.WhileOnBattlefield, true, false),
|
TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalGargoyleToken(), null, Duration.WhileOnBattlefield),
|
||||||
new FilterCreatureSpell(), false);
|
new FilterCreatureSpell(), false);
|
||||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
||||||
"When an opponent casts a creature spell, if {this} is an enchantment, {this} becomes a 2/2 Gargoyle creature with flying."));
|
"When an opponent casts a creature spell, if {this} is an enchantment, {this} becomes a 2/2 Gargoyle creature with flying."));
|
||||||
|
|
|
@ -32,7 +32,7 @@ public final class OpalGuardian extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{W}{W}{W}");
|
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{W}{W}{W}");
|
||||||
|
|
||||||
// When an opponent casts a creature spell, if Opal Guardian is an enchantment, Opal Guardian becomes a 3/4 Gargoyle creature with flying and protection from red.
|
// When an opponent casts a creature spell, if Opal Guardian is an enchantment, Opal Guardian becomes a 3/4 Gargoyle creature with flying and protection from red.
|
||||||
TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalGuardianGargoyle(), "", Duration.WhileOnBattlefield, true, false),
|
TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalGuardianGargoyle(), null, Duration.WhileOnBattlefield),
|
||||||
new FilterCreatureSpell(), false);
|
new FilterCreatureSpell(), false);
|
||||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT),
|
||||||
"When an opponent casts a creature spell, if {this} is an enchantment, {this} becomes a 3/4 Gargoyle creature with flying and protection from red."));
|
"When an opponent casts a creature spell, if {this} is an enchantment, {this} becomes a 3/4 Gargoyle creature with flying and protection from red."));
|
||||||
|
|
|
@ -30,7 +30,7 @@ public final class OrzhovKeyrune extends CardImpl {
|
||||||
this.addAbility(new BlackManaAbility());
|
this.addAbility(new BlackManaAbility());
|
||||||
|
|
||||||
// {W}{B}: Orzhov Keyrune becomes a 1/4 white and black Thrull artifact creature with lifelink until end of turn.
|
// {W}{B}: Orzhov Keyrune becomes a 1/4 white and black Thrull artifact creature with lifelink until end of turn.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new OrzhovKeyruneToken(), "", Duration.EndOfTurn), new ManaCostsImpl<>("{W}{B}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new OrzhovKeyruneToken(), CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{W}{B}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private OrzhovKeyrune(final OrzhovKeyrune card) {
|
private OrzhovKeyrune(final OrzhovKeyrune card) {
|
||||||
|
|
|
@ -37,7 +37,7 @@ public final class PhyrexianTotem extends CardImpl {
|
||||||
this.addAbility(new BlackManaAbility());
|
this.addAbility(new BlackManaAbility());
|
||||||
// {2}{B}: {this} becomes a 5/5 black Horror artifact creature with trample until end of turn.
|
// {2}{B}: {this} becomes a 5/5 black Horror artifact creature with trample until end of turn.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(
|
||||||
new PhyrexianTotemToken(), "", Duration.EndOfTurn), new ManaCostsImpl<>("{2}{B}")));
|
new PhyrexianTotemToken(), CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{2}{B}")));
|
||||||
// Whenever {this} is dealt damage, if it's a creature, sacrifice that many permanents.
|
// Whenever {this} is dealt damage, if it's a creature, sacrifice that many permanents.
|
||||||
this.addAbility(new PhyrexianTotemTriggeredAbility());
|
this.addAbility(new PhyrexianTotemTriggeredAbility());
|
||||||
}
|
}
|
||||||
|
@ -116,4 +116,4 @@ class PhyrexianTotemTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
public String getRule() {
|
public String getRule() {
|
||||||
return "Whenever {this} is dealt damage, if it's a creature, sacrifice that many permanents.";
|
return "Whenever {this} is dealt damage, if it's a creature, sacrifice that many permanents.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ public final class RagingRavine extends CardImpl {
|
||||||
this.addAbility(new RedManaAbility());
|
this.addAbility(new RedManaAbility());
|
||||||
Effect effect = new BecomesCreatureSourceEffect(
|
Effect effect = new BecomesCreatureSourceEffect(
|
||||||
new CreatureToken(3, 3, "3/3 red and green Elemental creature", SubType.ELEMENTAL).withColor("RG"),
|
new CreatureToken(3, 3, "3/3 red and green Elemental creature", SubType.ELEMENTAL).withColor("RG"),
|
||||||
"land", Duration.EndOfTurn);
|
CardType.LAND, Duration.EndOfTurn);
|
||||||
effect.setText("Until end of turn, {this} becomes a 3/3 red and green Elemental creature");
|
effect.setText("Until end of turn, {this} becomes a 3/3 red and green Elemental creature");
|
||||||
// {2}{R}{G}: Until end of turn, Raging Ravine becomes a 3/3 red and green Elemental creature with "Whenever this creature attacks, put a +1/+1 counter on it." It's still a land.
|
// {2}{R}{G}: Until end of turn, Raging Ravine becomes a 3/3 red and green Elemental creature with "Whenever this creature attacks, put a +1/+1 counter on it." It's still a land.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{2}{R}{G}"));
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{2}{R}{G}"));
|
||||||
|
@ -59,4 +59,4 @@ public final class RagingRavine extends CardImpl {
|
||||||
return new RagingRavine(this);
|
return new RagingRavine(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ public final class RakdosKeyrune extends CardImpl {
|
||||||
this.addAbility(new RedManaAbility());
|
this.addAbility(new RedManaAbility());
|
||||||
|
|
||||||
// {B}{R}: Rakdos Keyrune becomes a 3/1 black and red Devil artifact creature with first strike until end of turn.
|
// {B}{R}: Rakdos Keyrune becomes a 3/1 black and red Devil artifact creature with first strike until end of turn.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new RakdosKeyruneToken(), "", Duration.EndOfTurn), new ManaCostsImpl<>("{B}{R}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new RakdosKeyruneToken(), CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{B}{R}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private RakdosKeyrune(final RakdosKeyrune card) {
|
private RakdosKeyrune(final RakdosKeyrune card) {
|
||||||
|
|
|
@ -24,9 +24,7 @@ public final class ReptilianReflection extends CardImpl {
|
||||||
|
|
||||||
// Whenever you cycle a card, Reptilian Reflection becomes a 5/4 Dinosaur creature with trample and haste in addition to its other types until end of turn.
|
// Whenever you cycle a card, Reptilian Reflection becomes a 5/4 Dinosaur creature with trample and haste in addition to its other types until end of turn.
|
||||||
this.addAbility(new CycleControllerTriggeredAbility(new BecomesCreatureSourceEffect(
|
this.addAbility(new CycleControllerTriggeredAbility(new BecomesCreatureSourceEffect(
|
||||||
new ReptilianReflectionToken(), "enchantment", Duration.EndOfTurn
|
new ReptilianReflectionToken(), CardType.ENCHANTMENT, Duration.EndOfTurn), true));
|
||||||
).setText("have {this} become a 5/4 Dinosaur creature with trample and haste " +
|
|
||||||
"in addition to its other types until end of turn"), true));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private ReptilianReflection(final ReptilianReflection card) {
|
private ReptilianReflection(final ReptilianReflection card) {
|
||||||
|
|
|
@ -37,8 +37,7 @@ public final class Riddleform extends CardImpl {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{U}");
|
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{U}");
|
||||||
|
|
||||||
// Whenever you cast a noncreature spell, you may have Riddleform become a 3/3 Sphinx creature with flying in addition to its other types until end of turn.
|
// Whenever you cast a noncreature spell, you may have Riddleform become a 3/3 Sphinx creature with flying in addition to its other types until end of turn.
|
||||||
Effect effect = new BecomesCreatureSourceEffect(new RiddleformToken(), "", Duration.EndOfTurn);
|
Effect effect = new BecomesCreatureSourceEffect(new RiddleformToken(), CardType.ENCHANTMENT, Duration.EndOfTurn);
|
||||||
effect.setText("have {this} become a 3/3 Sphinx creature with flying in addition to its other types until end of turn.");
|
|
||||||
this.addAbility(new SpellCastControllerTriggeredAbility(Zone.BATTLEFIELD, effect, filterNonCreature, true, true));
|
this.addAbility(new SpellCastControllerTriggeredAbility(Zone.BATTLEFIELD, effect, filterNonCreature, true, true));
|
||||||
|
|
||||||
// {2}{U}: Scry 1.
|
// {2}{U}: Scry 1.
|
||||||
|
|
|
@ -24,7 +24,7 @@ public final class RustedRelic extends CardImpl {
|
||||||
// Metalcraft — Rusted Relic is a 5/5 Golem artifact creature as long as you control three or more artifacts.
|
// Metalcraft — Rusted Relic is a 5/5 Golem artifact creature as long as you control three or more artifacts.
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
|
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
|
||||||
new ConditionalContinuousEffect(
|
new ConditionalContinuousEffect(
|
||||||
new BecomesCreatureSourceEffect(new RustedRelicToken(), "artifact", Duration.WhileOnBattlefield),
|
new BecomesCreatureSourceEffect(new RustedRelicToken(), CardType.ARTIFACT, Duration.WhileOnBattlefield),
|
||||||
MetalcraftCondition.instance,
|
MetalcraftCondition.instance,
|
||||||
"{this} is a 5/5 Golem artifact creature as long as you control three or more artifacts"))
|
"{this} is a 5/5 Golem artifact creature as long as you control three or more artifacts"))
|
||||||
.setAbilityWord(AbilityWord.METALCRAFT)
|
.setAbilityWord(AbilityWord.METALCRAFT)
|
||||||
|
@ -59,4 +59,4 @@ class RustedRelicToken extends TokenImpl {
|
||||||
public RustedRelicToken copy() {
|
public RustedRelicToken copy() {
|
||||||
return new RustedRelicToken(this);
|
return new RustedRelicToken(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ public final class SanguineStatuette extends CardImpl {
|
||||||
.withType(CardType.ARTIFACT)
|
.withType(CardType.ARTIFACT)
|
||||||
.withSubType(SubType.VAMPIRE)
|
.withSubType(SubType.VAMPIRE)
|
||||||
.withAbility(HasteAbility.getInstance()),
|
.withAbility(HasteAbility.getInstance()),
|
||||||
"", Duration.EndOfTurn
|
CardType.ARTIFACT, Duration.EndOfTurn
|
||||||
).setText("have {this} become a 3/3 Vampire artifact creature with haste until end of turn"), filter, false, true));
|
).setText("have {this} become a 3/3 Vampire artifact creature with haste until end of turn"), filter, false, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ public final class SelesnyaKeyrune extends CardImpl {
|
||||||
this.addAbility(new WhiteManaAbility());
|
this.addAbility(new WhiteManaAbility());
|
||||||
|
|
||||||
// {G}{W}: Selesnya Keyrune becomes a 3/3 green and white Wolf artifact creature until end of turn.
|
// {G}{W}: Selesnya Keyrune becomes a 3/3 green and white Wolf artifact creature until end of turn.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new SelesnyaKeyruneToken(), "", Duration.EndOfTurn), new ManaCostsImpl<>("{G}{W}")));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new SelesnyaKeyruneToken(), CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{G}{W}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private SelesnyaKeyrune(final SelesnyaKeyrune card) {
|
private SelesnyaKeyrune(final SelesnyaKeyrune card) {
|
||||||
|
|
|
@ -36,7 +36,7 @@ public final class ShamblingVent extends CardImpl {
|
||||||
|
|
||||||
// {1}{W}{B}: Shambling Vent becomes a 2/3 white and black Elemental creature with lifelink until end of turn. It's still a land.
|
// {1}{W}{B}: Shambling Vent becomes a 2/3 white and black Elemental creature with lifelink until end of turn. It's still a land.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(
|
||||||
new ShamblingVentToken(), "land", Duration.EndOfTurn), new ManaCostsImpl<>("{1}{W}{B}")));
|
new ShamblingVentToken(), CardType.LAND, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{W}{B}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private ShamblingVent(final ShamblingVent card) {
|
private ShamblingVent(final ShamblingVent card) {
|
||||||
|
@ -68,4 +68,4 @@ class ShamblingVentToken extends TokenImpl {
|
||||||
public ShamblingVentToken copy() {
|
public ShamblingVentToken copy() {
|
||||||
return new ShamblingVentToken(this);
|
return new ShamblingVentToken(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue