1
0
Fork 0
mirror of https://github.com/correl/mage.git synced 2025-04-10 17:00:08 -09:00

Refactor to single constructor with CardType enum

This commit is contained in:
xenohedron 2023-05-21 22:51:04 -04:00
parent 00ca915581
commit aecdde421b
119 changed files with 167 additions and 182 deletions
Mage.Sets/src/mage/cards
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s

View file

@ -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);
} }
} }

View file

@ -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;
} }

View file

@ -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) {

View file

@ -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) {

View file

@ -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));

View file

@ -32,7 +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 new BogardanDragonheartToken(), CardType.CREATURE, Duration.EndOfTurn
).withDurationRuleAtStart(true), new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE)))); ).withDurationRuleAtStart(true), new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE))));
} }

View file

@ -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) {

View file

@ -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) {

View file

@ -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).withDurationRuleAtStart(true), 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) {

View file

@ -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) {

View file

@ -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);
} }
} }

View file

@ -38,7 +38,7 @@ public final class ChimericMass extends CardImpl {
.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(new CountersSourceCount(CounterType.CHARGE)))),
"", Duration.EndOfTurn).withDurationRuleAtStart(true), new GenericManaCost(1))); CardType.ARTIFACT, Duration.EndOfTurn).withDurationRuleAtStart(true), new GenericManaCost(1)));
} }
private ChimericMass(final ChimericMass card) { private ChimericMass(final ChimericMass card) {

View file

@ -29,14 +29,14 @@ 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).withDurationRuleAtStart(true), 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( this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(
new CreatureToken(3, 2, "3/2 Construct artifact creature and loses flying") new CreatureToken(3, 2, "3/2 Construct artifact creature and loses flying")
.withSubType(SubType.CONSTRUCT) .withSubType(SubType.CONSTRUCT)
.withType(CardType.ARTIFACT), .withType(CardType.ARTIFACT),
"", Duration.EndOfTurn).withDurationRuleAtStart(true), new ManaCostsImpl<>("{2}"))); CardType.ARTIFACT, Duration.EndOfTurn).withDurationRuleAtStart(true), new ManaCostsImpl<>("{2}")));
} }
private ChimericSphere(final ChimericSphere card) { private ChimericSphere(final ChimericSphere card) {

View file

@ -46,7 +46,7 @@ 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
).andLoseAbilities(true).setText("Until end of turn, {this} becomes " ).andLoseAbilities(true).setText("Until end of turn, {this} becomes "
+ "a Human with base power and toughness 1/1, " + "a Human with base power and toughness 1/1, "
+ "loses all abilities, and gains hexproof"), + "loses all abilities, and gains hexproof"),

View file

@ -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.

View file

@ -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;
} }
} }

View file

@ -40,7 +40,7 @@ public final class CreepingTarPit extends CardImpl {
.withColor("BU") .withColor("BU")
.withSubType(SubType.ELEMENTAL) .withSubType(SubType.ELEMENTAL)
.withAbility(new CantBeBlockedSourceAbility()), .withAbility(new CantBeBlockedSourceAbility()),
"land", Duration.EndOfTurn) 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"), .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}"))); new ManaCostsImpl<>("{1}{U}{B}")));
} }

View file

@ -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);
} }
} }

View file

@ -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)
.setText("{this} becomes a 5/5 Demon creature with flying and haste in addition to its other types until end of turn"))); .setText("{this} becomes a 5/5 Demon creature with flying and haste in addition to its other types until end of turn")));
} }

View file

@ -57,7 +57,7 @@ public final class DenOfTheBugbear extends CardImpl {
.withColor("R") .withColor("R")
.withSubType(SubType.GOBLIN) .withSubType(SubType.GOBLIN)
.withAbility(ability), .withAbility(ability),
"land", Duration.EndOfTurn).withDurationRuleAtStart(true), new ManaCostsImpl<>("{3}{R}"))); CardType.LAND, Duration.EndOfTurn).withDurationRuleAtStart(true), new ManaCostsImpl<>("{3}{R}")));
} }
private DenOfTheBugbear(final DenOfTheBugbear card) { private DenOfTheBugbear(final DenOfTheBugbear card) {

View file

@ -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).withDurationRuleAtStart(true), new ManaCostsImpl<>("{U}{B}"))); CardType.ARTIFACT, Duration.EndOfTurn).withDurationRuleAtStart(true), new ManaCostsImpl<>("{U}{B}")));
} }
private DimirKeyrune(final DimirKeyrune card) { private DimirKeyrune(final DimirKeyrune card) {

View file

@ -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)));
} }

View file

@ -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) {

View file

@ -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);

View file

@ -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 CardType.ARTIFACT, Duration.EndOfTurn
), source); ), source);
return true; return true;
} }

View file

@ -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);
} }
} }

View file

@ -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, "));

View file

@ -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}")));
} }

View file

@ -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) {

View file

@ -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) {

View file

@ -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)));

View file

@ -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)));
} }

View file

@ -34,7 +34,7 @@ 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
).withDurationRuleAtStart(true), 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.

View file

@ -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}")));
} }

View file

@ -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);

View file

@ -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);

View file

@ -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;
} }
} }

View file

@ -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).withDynamicPT(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);

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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

View file

@ -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) {

View file

@ -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) {

View file

@ -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) {

View file

@ -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) {

View file

@ -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) {

View file

@ -25,7 +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"); 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));
} }

View file

@ -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, " +

View file

@ -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),
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.");

View file

@ -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), 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."));

View file

@ -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), 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."));

View file

@ -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), 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."));

View file

@ -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), false); super(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new HiddenHerdBeast(), null, Duration.WhileOnBattlefield), false);
} }
public HiddenHerdAbility(final HiddenHerdAbility ability) { public HiddenHerdAbility(final HiddenHerdAbility ability) {

View file

@ -46,7 +46,7 @@ class HiddenPredatorsStateTriggeredAbility extends StateTriggeredAbility {
} }
public HiddenPredatorsStateTriggeredAbility() { public HiddenPredatorsStateTriggeredAbility() {
super(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new HiddenPredatorsToken(), Duration.Custom)); 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, ");
} }

View file

@ -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), 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."));

View file

@ -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); 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."));

View file

@ -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}")));
} }

View file

@ -63,7 +63,7 @@ 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
).withDurationRuleAtStart(true), new ManaCostsImpl<>("{3}{B}"))); ).withDurationRuleAtStart(true), new ManaCostsImpl<>("{3}{B}")));
} }

View file

@ -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);
} }
} }

View file

@ -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)));
} }

View file

@ -31,7 +31,7 @@ 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
).withDurationRuleAtStart(true), 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.

View file

@ -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);
} }
} }

View file

@ -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) {

View file

@ -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);

View file

@ -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;
} }

View file

@ -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).withDurationRuleAtStart(true), 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) {

View file

@ -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)));
} }

View file

@ -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) {

View file

@ -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(), Duration.EndOfGame); 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()));
} }

View file

@ -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)); 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, ");
} }

View file

@ -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), 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."));
} }

View file

@ -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.

View file

@ -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.

View file

@ -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."

View file

@ -63,7 +63,7 @@ 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)),
"", Duration.Custom CardType.ARTIFACT, Duration.Custom
).andLoseAbilities(true), new GenericManaCost(3), MonumentToPerfectionCondition.instance ).andLoseAbilities(true), new GenericManaCost(3), MonumentToPerfectionCondition.instance
).addHint(MonumentToPerfectionValue.getHint())); ).addHint(MonumentToPerfectionValue.getHint()));
} }

View file

@ -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}")));
} }

View file

@ -44,7 +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);
effect.setText("Until end of turn, {this} becomes a Monk Avatar creature in addition to its other types "); 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.\""));

View file

@ -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);

View file

@ -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}")));
} }

View file

@ -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"
); );

View file

@ -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) {

View file

@ -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), 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."));

View file

@ -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), 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."));

View file

@ -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)); 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, ");
} }

View file

@ -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), 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."));

View file

@ -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), 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."));

View file

@ -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), 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."));

View file

@ -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), 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."));

View file

@ -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) {

View file

@ -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.";
} }
} }

View file

@ -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);
} }
} }

View file

@ -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) {

View file

@ -24,7 +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
).setText("have {this} become a 5/4 Dinosaur creature with trample and haste " + ).setText("have {this} become a 5/4 Dinosaur creature with trample and haste " +
"in addition to its other types until end of turn"), true)); "in addition to its other types until end of turn"), true));
} }

View file

@ -37,7 +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."); 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));

View file

@ -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);
} }
} }

View file

@ -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));
} }

View file

@ -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) {

View file

@ -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);
} }
} }

View file

@ -32,7 +32,7 @@ public final class SilumgarMonument extends CardImpl {
// {4}{U}{B}: Silumgar Monument becomes a 4/4 blue and black Dragon artifact creature with flying until end of turn. // {4}{U}{B}: Silumgar Monument becomes a 4/4 blue and black 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}{U}{B}"))); (new OjutaiMonumentToken(), CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{4}{U}{B}")));
} }
private SilumgarMonument(final SilumgarMonument card) { private SilumgarMonument(final SilumgarMonument card) {

Some files were not shown because too many files have changed in this diff Show more